APP下载

结合国产密码算法的应用密码学课程教学探讨

2018-04-02贾忠田

计算机教育 2018年3期
关键词:密码学开源密码

刘 悦,贾忠田,张 波

(济南大学 信息科学与工程学院,山东 济南 250022)

0 引 言

随着网络安全问题隐患日益增多,信息安全学科逐渐成为信息科学产业中一个非常重要的分支。密码技术是信息安全的理论基础和核心技术,并且是一个多学科交叉的技术,包含计算机、网络、通信、电子、数论、概率统计等相关专业的内容[1]。因此,如何设计应用密码学课程的教学内容,建设辅助性的实验教学方案是今后需要持续研究的问题。

1 应用密码学课程存在问题

1.1 教学内容的设置问题

密码学是一门需要有宽广深厚的数学和电子通信理论基础的综合性交叉学科课程,内容包括初等数论、椭圆曲线、概率论、信息论、数理统计、随机过程、编码、计算复杂性等[2]。通过对国内外高校的密码学课程教学内容设置进行调研发现,国内外高校密码学教学核心内容的设置基本一致,包含密码学基础、古典密码、分组密码、序列密码、公钥密码、哈希函数、数字签名、密钥管理、PKI、安全协议等知识。不同高校针对本科生开设的密码学课程知识点略有不同,教学内容也存在部分不同,从课程名就能看出区别,如国内开设的密码学课程名为现代密码学、密码学导论、现代密码学理论与实践、密码学、密码学基础、计算机安全学等;国外开设的密码学课程名称为Fundamentals of Cryptography, Cryptography and Data Security,Advanced Applied Cryptography Principles of Cryptography, Cryptography and Network Security,Computer Network Security等。由于济南大学网络工程专业后续开设了网络安全协议课程,因此密码学课程中不包括安全协议内容。对于涉及应用领域多、实践要求强的密码学课程,合理设置其教学内容具有一定难度。

1.2 教材的选取问题

教材的合理选取是课程教学成功的关键之一,教材选取不当会带来教师教学和学生学习的双重困难。当前,课程教学不是缺少教材,而是教材太多。国内外与密码学课程相关的教材版本很多,在众多教材中选取适合网络工程专业应用型培养目标,并能结合我国信息安全国情的教材,有一定难度。部分教材侧重密码算法的数学理论,对于非数学专业出身的网络工程专业本科学生而言,由于缺少相应知识,他们很难理解和掌握这些教材的内容。国外教材侧重讲解国际密码算法,有些教材讲到的算法浅显易懂,但是没有涉及国内密码算法;虽然国内教材有些讲授了部分国内密码算法,但是涉及较多数学知识。

1.3 数学知识的讲解问题

对于应用型网络工程专业学生而言,应用密码学课程教学的主要目的是让学生理解和掌握常用密码算法的原理,侧重密码算法的应用性,而不是理论性,但是课程中不可避免要涉及数论知识、线性代数等与密码学相关的数学知识,这些知识对于学生来说抽象而不易理解。此外,应用密码学算法本身有些也比较难,对学生而言,算法的执行过程是透明的,仅仅通过教师的板书和演示文稿,无法直观地看到算法的执行过程和数据的动态变化,由此会引发畏难情绪,影响学习积极性。

表1 课程教学内容的学时安排

1.4 实验问题

密码学课程一般都设有实验学时,高校普遍也都有专门的安全实验平台,最大的问题是这些平台都需要专门的实验室软硬件环境支撑,学生不能在学习过程中随时进行实验验证,导致学生对密码学不求甚解,无法真正体会密码学算法的设计和学习用途。此外,国内现有的密码学教学实验平台缺乏可视化过程,仅仅用于实现输入、加密和解密过程,不利于学生对密码算法的理解。

2 应用密码学课程改进措施

2.1 结合国产密码算法的教学内容改进

根据《中华人民共和国国家安全法》第24条、25条规定[3]“国家加强自主创新能力建设,加快发展自主可控的战略高新技术和重要领域核心关键技术”“实现网络和信息核心技术、关键基础设施和重要领域信息系统及数据的安全可控”,国家密码管理局批准了一系列国家密码标准,包括祖冲之序列密码算法、SM4分组密码算法、SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM9标识密码算法等。以往密码学的教学以及课程教材,都是重点讲述国际密码算法,较少讲授国产密码算法,而国产密码算法成为国际标准势在必行。2016年10月,密码算法标准草案SM2、SM9进入ISO 14888-3正式文本阶段,开启了我国自主设计的对称密码算法进入ISO的历程。因此,让学生熟悉并掌握具有自主知识产权的国产密码算法是非常有必要的,有利于学生未来从事信息安全工作时能尽快使用上国产密码算法。

济南大学密码学课程重点突出应用性,兼顾密码学和数学理论基础。随着国产密码算法逐步成为国际密码标准,我们调整了授课内容,在不同章节增加相应的国产密码算法的讲解和分析,具体的教学内容分配见表1。

密码学数学基础是学习密码学不可或缺的部分,主要以后续应用到的知识为主,要求学生掌握的理论知识包括整除、素数、模幂和模逆运算、欧几里得算法和扩展欧几里得算法、费马定理、欧拉定理、中国剩余定理等[4]。综合教学经验和学生反馈可知,学生普遍对数学部分的理解有一定难度,希望增加练习来促进对知识的掌握,因此我们将密码学课程用到的所有数学知识归类合并后一起讲解,将该部分内容设置为8个学时,结合数学开源软件一边授课一边实验,并增加大量练习题,主要以实用为主,忽略繁琐的数学推导过程。

2.2 密码学课程教材的选择

网络工程专业的定位是培养应用型网络人才,因此教材选择遵循实用为主的方针,从学生角度出发,选择学生更容易理解的教材。国内外都有很多密码学课程经典教材,国外普遍使用William Stallings的《密码编码学与网络安全》[5],如Tufts大学、Virginia大学、中国科学技术大学、大连理工大学等都采用此版教材;国内教材也有很多,如杨波的《现代密码学(第3版)》、谷利泽的《现代密码学教程(第2版)》、杨义先的《应用密码学》、Jonathan Katz的《Introduction to Modern Cryptography》《现代密码学——原理与协议》(中文版)等。通过对比分析,我们选择采用国内外教材相结合的方式,指定了两本教材作为课程主要教材,一本是《密码编码学与网络安全(第6版)》,另一本是谷利泽的《现代密码学教程(第2版)》。中外两本教材互为补充,学生能更好地理解密码算法。

2.3 基于多个开源软件的交叉实验教学改进

济南大学应用密码学课程设有16学时的课内实验。课内实验部分采用基于多个开源免费软件的交叉辅助实验工具,之所以采用开源免费软件作为实验平台,主要是因为现有安全实验室配备的实验平台是由北京西普阳光教育科技股份有限公司(以下简称西普科技)提供的软硬件结合的信息安全实验平台,一旦脱离相应的安全硬件环境,软件就无法运行。2016年,西普科技推出一个线上实验吧,但是此系统是基于虚拟机环境,学生远程登录模拟运行密码算法时,运行速度相对较慢。采用开源免费密码算法软件,则可以实现在任何时间、任何地点、任何环境下,学生都能随时进行实验,既方便学生学习和练习,又使得学生不必考虑购买软件的经济问题。因此,我们借助搜索引擎,借鉴国外高校密码实验环境的选取,在国外高校及研究机构的网站中选择了3个开源软件,它们各有特长,互为补充,很好地实现了从验证、测试、练习、可视化显示到构建密码学多种算法的实验。学生通过交叉使用这3个软件,能够较好地理解各种密码算法的原理和运行过程。3个开源密码软件的对比介绍如下。

一是密码学软件CrypTool[6]。CrypTool是一系列4个软件,我们在课内实验中让学生练习使用其中3个系列的软件。这套软件的优点是功能强大,既可以进行普通密码算法的加密、解密和分析实现,又提供众多可视化的算法分步动态演示,还提供传播广泛的免费E-Learning程序。值得一提的是,CryTool2提供了一种无需学习太多密码算法内部知识,就可以用组件方式把密码算法的应用构建起来,图形化实现使初级用户更容易理解和学习密码的方式。

二是SageMath软件[7]。SageMath(改名前为Sage)是一个数学软件系统,建立在众多开源软件包基础上,包括代数、组合数学、计算数学和微积分。SageMath是由华盛顿大学William Stein主导下,多位数学家开发的,William Stallings在《密码编码学与网络安全》一书中推荐使用该实验软件。这个软件不是专门为密码学设计的,但是可以用来进行密码学实验。SageMath软件的优点在于其提供了各种数学运算,密码学中用到的模运算、最大公因数、群环域等,在此系统中只要很简单的命令就可以完成,是密码学中进行数学知识教学的极好的辅助工具。另外,此软件还提供在线和脱机两种运行环境,学生可以根据需要选择运行,尤其值得称赞的是此软件的在线云平台运行速度快,适合应用。

三是Cryptography Visualization Software[8]。这是由6个独立软件构成的一个可视化、跨平台的软件序列,包含Vigenère、DES、AES、RSA、SHA和ECC的虚拟化实现。此系列软件是美国自然科学基金资助开发的用于教学的密码软件,优点是每个软件独立运行,占用空间小,灵活使用,而且软件中包含演示模式和练习模式,学生可以自行输入数据,进行练习操作,达到更好理解算法的目的。

学生在实验中,通过交叉使用多个开源密码软件,一方面,能更全面地理解密码学算法的原理;另一方面,也可以比较不同软件的优劣,进而在未来工作和学习中进行程序设计时,能考虑更全面,设计更完善。这3种开源软件对于我国学生而言,主要问题是没有国产密码算法的实现。我们所培养的网络安全方向的学生,应该在掌握国际通用密码算法的基础上,更好地掌握我国自主研发的密码算法,虽然目前网上可以找到SM系列密码算法的软件源码,但是至今还没有一个可以方便学生学习的开源免费国产密码算法实验平台,因此,开发出一个通用开源免费国产密码算法实验平台是非常必要的。

2.4 结合密码竞赛的教学反思

2016年7—11月,笔者首次带领济南大学学生参加“2016年第二届全国密码技术竞赛”,虽然没有进入决赛,但是经过数月参赛准备,还是有很多感慨,结合密码学教学经验,我们也进行诸多反思。一是最新密码理论的缺失,此前我们只采用《密码编码学与网络安全(第六版)》一本教材,虽然这是一本不断更新的教材,但是没有后量子密码、量子密码、混沌密码等密码学新知识,学生在参加初赛时就曾遇到部分没有见过的概念名词;二是学生编程能力的欠缺,网络工程专业的学生普遍认为程序设计是计算机专业学习的内容,网络工程专业不需要太多编程,这种错误思想导致学生不重视编程能力的培养,等到进行程序设计算法时,设计和调试程序的能力偏低。通过参加密码竞赛,我们深刻认识到密码学教学的内容和方法有待改进,实践课程教学中的能力培养有待加强。

3 结 语

应用密码学作为信息安全的核心,是网络工程专业必修的专业基础课。近5年来,我们对应用密码学课程持续进行教学改进,综合学生反馈和新技术发展,参加全国密码竞赛,满足企业需求,不断进行改革尝试。随着各方对信息安全领域重视度越来越高,密码技术不断推陈出新,密码学的教学也需要与时俱进,以实现良好发展。

参考文献:

[1]崔艳荣. 面向应用型人才培养的“密码学”教学探讨[J]. 长江大学学报, 2012(5): 173-175.

[2]张仕斌.“应用密码学”课程教学方法研究与实践[J]. 信息安全与通信保密, 2012(7): 77-80.

[3]中央政府门户网站. 中华人民共和国国家安全法[EB/OL].(2015-07-01)[2017-06-10]. http://www.gov.cn/zhengce/2015-07/01/content_2893902.htm.

[4]胡小明, 杨寅春, 吴秀梅, 等. 信息安全专业密码学课程教学改革[J]. 计算机教育, 2014(1): 49-52.

[5]Stallings W. 密码编码学与网络安全: 原理与实践[M]. 6版. 北京: 电子工业出版社, 2015.

[6]CrypTool Portal. The CrypTool portal[EB/OL]. [2017-06-10]. https://www.cryptool.org/en.

[7]Sage[EB/OL]. [2017-06-08]. http://www.sagemath.org/.

[8]NSF. Cryptography visualization software downloads[EB/OL]. (2015-04-06)[2017-06-10]. http://www.cs.mtu.edu/~shene/NSF-4/.

猜你喜欢

密码学开源密码
密码里的爱
图灵奖获得者、美国国家工程院院士马丁·爱德华·海尔曼:我们正处于密钥学革命前夕
五毛钱能买多少头牛
2019开源杰出贡献奖
密码抗倭立奇功
费马小定理和素数在密码学的应用
密码藏在何处
大家说:开源、人工智能及创新
开源中国开源世界高峰论坛圆桌会议纵论开源与互联网+创新2.0
夺命密码