导航菜单

基于CrypTool的应用密码学实验设计

潘 林,王金双,陈 融,袁志坚,张 涛

(解放军理工大学,江苏 南京 210007)

摘 要:针对当前应用密码学实验课程的实验项目设计存在的内容单薄、难度失衡等问题,介绍基于开源软件CrypTool设计的一套应用密码学实验,其中涵盖古典密码学、现代密码学、身份认证与数字签名三大部分的实验项目。

教育期刊网 http://www.jyqkw.com
关键词 :CrypTool;密码学;实验

基金项目:理工大学2013年教育教学重点课题(GJ1303012)。

第一作者简介:潘林,女,讲师,研究方向为信息安全,hibiscusPL@163.com。

1 密码学实验存在的问题

密码学是信息安全专业的核心课程和主干课程,理论性深入,实践性也很强。一方面,它在理论上需要较多的数学知识作为学习基础;另一方面,它在密码算法实现和应用方面都具有很强的实践性。

密码学实验课程是密码学理论课程的配套实验课程,更强调密码技术的实现应用。然而,正如罗芳等撰文指出的那样,当前各大高校信息安全专业的密码学实验课程存在着一些普遍问题[1]:①学时较少,局限于古典密码和DES密码的算法体验等基础性实验,内容相对单薄;②DES、RSA等算法编程难度大,直接影响学生的编程实验兴趣;③缺少密文分析和密码破译实验,但是现实网络应用当中,密文分析及密码破译是黑客们很重要的一个攻击手段,同时也是算法编写者验证算法安全性的手段;④鉴于课时所限,大部分的密码学实验课题之间完全独立,缺乏密码应用系统实验,直接影响学生的积极性和学习兴趣。

针对以上问题,在信息安全专业的应用密码学课程建设中,我们提出基于开源软件CrypTool设计一套应用密码学实验项目,以达到既能帮助学生通过实验验证和加深理解密码学原理的目的,又能激发学生学习和应用密码学技术的兴趣,还能进一步提高学生的密码应用创新的能力。

2 实验平台CrypTool

CrypTool是一个专门为密码学教学而设计的免费、开源Windows图形化软件。CrypTool的研发始于1988年,最初目的是提高德意志银行员工的计算机安全意识。目前,CrypTool已成为开源软件,全球60多位志愿者为其提供了200多个密码学的算法实现功能,被全球许多著名大学所采用。CrypTool不仅包含了丰富的密码学算法和密码分析工具,还提供了详细的文档来解释算法以及可能的攻击,并通过封装对外提供可视化的图形界面。因此,CrypTool 既可以作为密码学基本概念的可视化工具(包括数字签名、对称非对称、混合加密、协议等),又可以被IT专家用于评估算法。

CrypTool目前主要有3个版本:CrypTool-1、CrypTool-2和JCryptool。

CrypTool-1是使用C++实现的Windows应用程序,可用于算法可视化展示和加密—解密—破译实验。主要功能不但涵盖古典密码学和现代密码学的所有算法及部分算法的动态演示过程,还包括了消息认证、数字签名等其他信息安全功能的实现,以及安全协议如密钥交换协议Diffie-Hellman的分步实现过程。

CrypTool-2是基于可视化编程概念在Visual Studio平台上使用C#实现的Windows应用程序,支持基于图形化密码学算法组件来创建项目描述密码在机密性、完整性等方面的应用,用户可以将最初始的各种算法进行组合和变换得到可视化的结果。CrypTool-2灵活性还体现在开发人员可以通过插件在.net框架下增加新功能。

JcrypTool是在Eclipse开发环境中使用Java语言实现的应用程序,在CrypTool1.4的基础上丰富了内容,既包含一些算法体验,也为开发人员提供实现插件程序的环境。Jcryptool支持Windows、Linux等多种操作系统,也支持插件程序,使得新的加密算法和协议可以很容易地被添加到环境中。

这3个版本都需要下载和安装后才能得以运行,在线运行的CrypTool-Online则无需下载安装,只要访问www.cryptool-online.org <http://www.cryptool-online.org/>即可。

3 实验设计思路

高等教育发展的核心任务是提高质量。高等教育中,实践教学是学生理解并运用理论知识、接受科学思维方法、培养创新意识和能力的重要手段。要提高实践教学的质量,就需要面向不同实践能力学员、把创新教学的理念贯穿于实践环节始终,引领学生以浓厚的兴趣完成实践教学的每个环节[2]。

密码技术是信息安全的关键技术之一,几乎所有的信息安全技术都应用到密码技术。密码设计与分析具有深入的理论性,但是密码算法只有实际实现才能应用,才能发挥密码算法的作用。因此,密码学实践能力成为信息安全专业学生应当具备的实践能力的重要组成部分。

作为密码学理论课程的配套实验课程,密码学实验课程的人才培养目标更加强调密码技术的实现应用。通过密码学实践能力的培养,学生应掌握密码标准算法的实现与应用能力,能够使用常用密码软件工具,进而具有一定的密码应用能力[3]。

实验任务应包括3个层次:①帮助学生理解密码学理论知识,尤其是理解加密算法和密码分析方法;②培养提高学生将理论知识转换为实际成果的能力,主要是将算法编程实现成为可以实际应用的程序;③拓展学生的视野,设置常用密码应用的模拟情景,为学生将来的实际工作打下基础。

密码学主要包括古典密码体制、现代密码体制、消息认证、身份认证与数字签名等内容,它们各自具有不同的特点,实践内容选取的方向也就各不相同。

古典密码学的算法通常都比较简单易于理解,而且算法的编程实现和应用编程难度不大,所以这部分的实验项目多偏向于密码分析的应用;现代密码学特点通常算法都比较难,不容易理解,独立编程实现难度较大,加解密过程复杂,所以这部分的实验项目多偏向于对算法和编码过程的理解、算法的分析比较、算法的应用编程;身份认证与数字签名的实际应用较广泛,所以这部分的实验项目多偏向于以模拟应用加强对相关原理的理解。

4 实验项目设计

(1)代换密码的手工破译实验。实验目的是让学生掌握基于Cryptool工具进行手工密码破译的方法,加深学生对密码学英文术语的印象。实验内容是已知给定的一段密文中第一个密文词Ivxzoo对应的明文是“Recall”, 使用CrypTool进行密码分析,并恢复加密密钥和明文。实验结果要求提交以上代换密码使用的密钥即字母映射表以及恢复出的明文。

(2)恺撒密码破译实验。实验目的是为了让学生掌握在Cryptool软件环境中使用频率分析破译恺撒密码的方法,学会使用熵值、字母频率等工具进行明文和密文的比较,理解唯密文分析的过程和结果。实验内容为已知给定的一段密文是基于恺撒密码加密的,利用CrypTool工具对其进行破译;计算明文和密文的字母频率分布并比较,总结明密文字母频率满足的规律并给出解释;计算明文和密文的熵值,比较明密文熵值的规律并给出解释;思考恺撒密码成功破译条件:当文档少于20个字符时破译成功概率。实验结果要求提交实验中得到的密钥、熵值、明密文字母频率分布图、恺撒密码成功破译的条件。

(3)维吉尼亚密码破译实验。实验目的是为了让学生掌握在Cryptool软件环境中进行多表加密算法唯密文分析的方法,理解字母频率、自相关等密码分析工具的使用原理。实验内容为已知给定的密文是使用维吉尼亚密码加密的,破译并解释破译原理;比较明文和密文的字母统计频率并给出解释;计算明文和密文熵值并给出解释。实验结果要求提交密钥、明密文字母频率分布图、熵值。

(4)Hill密码破译实验。实验目的是为了让学生掌握在Cryptool软件环境中对Hill密码进行已知明文分析的过程,理解破译原理。实验内容是根据已知的利用HILL密码加密的明文和对应密文,破译该密码使用的密钥,并解释破译原理。实验结果要求提交密钥和体现密码分析过程的重要截图。

(5)DES算法的加密和破译实验。实验目的是为了让学生掌握在Cryptool软件环境中使用DES算法进行加密的方法,理解穷举破译的过程和结果。实验内容是分别采用DES-ECB和DES-CBC算法加密同一个字符串,比较得到的两组密文之间的差异,并给出解释;分别加密两个有部分差异的字符串,比较两组密文的差异并给出解释;使用DES-CBC和Triple-DES(CBC)分别加密一段相同的明文,比较穷举破解所需要的时间。实验结果要求提交对DES算法的各种情况分析结果。

(6)RSA破译和与AES的性能对比实验。实验目的是为了让学生掌握在Cryptool软件环境中使用RSA进行加密的方法,体验大因子分解得到大素数的过程及其安全性。实验内容是根据给定的RSA模数N、公钥e和密文,恢复出明文;新建一个25MB大小的文件,分别利用AES和RSA算法对其进行加解密,并对比AES和RSA加密和解密性能,分析它们性能差异的原因。实验结果要求提交分析出的私钥和明文,AES和RSA性能分析结果。

(7)AES-RSA混合加密实验。实验目的是为了让学生通过实验加深理解对称密码体制和公钥密码体制作用,理解会话密钥的作用和基于公钥加密进行会话密钥分发的流程。实验内容是按照指定的流程完成原理体验,包括体验混合加密流程,解释此过程中涉及的session key、asymmetric key各自发挥的作用,体验解密流程并解密原理以及解密过程中遇到的PIN的作用、私钥作用。

(8)散列函数的性质验证实验。实验目的是为了让学生掌握在Cryptool软件环境中使用散列函数生成散列值的方法,并验证散列函数的一些基本性质。实验内容是分别使用MD5、SHA-1、SHA-256等算法生成散列值,观察输入长度与输出长度之间的关系,不同散列算法产生的输出长度的区别;观察改变输入1个字符时,输出发生的改变,并结合散列函数实现给出解释;对散列函数的基本性质进行验证;对散列函数存在冲突/碰撞给出理论解释。实验结果要求提交各种分析验证的结果截图及说明。

5 结 语

从新的信息安全专业人才培养目标、实验课程标准出发设计实验项目,并利用CrypTool工具验证实验结果,在教学中取得了较好的教学效果。下一步应充分利用CrypTool工具的3个不同版本,根据它们各自的特点,进一步完善和丰富各类实验内容,特别是建设密码应用系统类综合实验项目。实验项目内容更加贴近当代商务、公务、军事等与生活工作密切相关的应用情景,使这些基于CrypTool的实验更好地为应用密码学的教学和实践服务。在激发学生对密码技术产生兴趣之后,能培养提高学生将理论知识转换为实际成果的能力,同时又能拓展学生的视野,使其兴趣长久、能力持续。

教育期刊网 http://www.jyqkw.com
参考文献:

[1] 罗芳. 信息化条件下创新型密码人才培养模式探究[J]. 计算机教育, 2012(8): 5-7.

[2] 沈瑛. 密码学多层次教学实践[J]. 计算机教育, 2007(24): 85-88.

[3] 教育部信息安全类专业教学指导委员会. 信息安全类专业指导性专业规范[EB/OL]. [2014-11-22]. http://wenku.baidu.com/link url.

(编辑:郭田珍)

下载文本