现代密码学教学实践探索与改革

    边胜琴 姚宣霞 崔晓龙 郑榕

    

    

    

    摘? 要 现代密码学是信息安全专业的主干课程,从课程的特点和工程应用的角度出发,在实验内容和实验方法上进行教学改革,验证型实验侧重理解和应用;算法设计实验训练编程思想和工程实践能力;综合型实验侧重密码分析。实践证明,学生学习的积极性有所提升,教学质量和教学效果总体让人满意。

    关键词 现代密码学;信息安全;实验;编程

    中图分类号:G642.0? ? 文献标识码:B

    文章编号:1671-489X(2020)10-0084-03

    Abstract Modern cryptography is the main course of information security major. From the perspective of the characteristics of the course and engineering application, the teaching reform is carried out in the experimental content and methods. The verification experi-ment focuses on understanding and application; the algorithm design experiment, training of programming ideas and engineering practice ability; the comprehensive experiment focuses on cryptanalysis. Practice has proved that students enthusiasm for learning has been improved, and teaching quality and teaching effect are generally satisfactory.

    Key words modern cryptography; information security; experiment; programming

    1 引言

    隨着计算机网络的广泛应用,各种移动支付已经成为人们生活的一部分。科学技术为生活带来便利的同时,也带来越来越多的信息安全问题,信息安全已经受到社会各界的高度重视。2015年,网络空间安全被定为一级学科,设在工学门类。密码技术作为信息安全的核心技术,获得越来越多的关注。

    密码学是一门集数学、计算机应用、通信科学等学科于一身的交叉学科,内容广泛,实践性强,各个知识点之间既相互独立又联系紧密,仅靠理论教学难以达到教学目标,必须理论联系实际,结合具体实验环境,开展实验教学,提高实验教学质量,激发学生学习兴趣,提高学生的工程应用能力。

    2 密码学课程的特点

    现代密码学是北京科技大学信息安全专业的必修课,开设在第四学期,学生已经修完高等数学、信息导论等先修课程,具备了高等数学的必要知识。课程教学目标是学生能够掌握密码学算法的原理,对加密、解密技术具有一定的实际应用能力,为今后从事信息安全理论研究工作奠定基础。

    课程的主要内容包括密码学的基本概念、古典密码学、对称密码、非对称密码、流密码、数字签名、散列函数等,涵盖了密码学的多个方面。密码学理论基础比较深奥,尤其是抽象代数和数论部分,学生理解起来有一定难度。密码学实验开设的目的在于:

    1)帮助学生理解基础理论,将算法核心部分分步进行演示;

    2)提供实践应用环境,帮助学生掌握密码算法的应用方法,提高学习兴趣。

    实验最好采取多种实验方式,提高生动性、可视性、真实性,最好将密码算法的迭代过程一步一步地显示出来,帮助学生尽快理解和掌握密码理论。

    3 密码学实验内容组织

    密码学涉及算法较多,逻辑推理性强,课程教学具有一定难度,单纯以教师讲授为中心的教学,存在以下几个方面的问题:

    1)教学方法单一,学生学习兴趣不高,难以从中获得探究乐趣;

    2)理论抽象,学生对知识的理解难以深入,编程实现困难;

    3)理论与实践脱节,学生不了解密码学在工程技术方面的应用。

    为了解决上述问题,提高学生的工程应用能力,在课程内容和实验设置上做了一些改进:

    1)理论课堂,在基本概念和基本理论教授的基础上,增加密码分析和密码破译环节,提高学生兴趣;

    2)从经典算法的源代码入手,分析算法的核心部分,讨论算法的复杂度,选择部分算法让学生自己编程实现,提高学生的动手能力;

    3)从行业案例出发,让学生感受密码学的用途,激发积极探索的学习热情(电子支付、身份认证、人脸识别和数据安全等知识点在实际生活中的应用广泛,相应的案例不难找出)。

    密码学实验一共12学时,包括验证型实验、算法设计实验、综合应用实验。实验教学内容需要合理安排,按照由易到难、由简单到综合的原则,选择有代表性的经典的算法进行学习,重要的是让学生理解算法的设计思路,学会应用,培养密码学思维方式。实验目的是让学生掌握信息的保密性、认证性、完整性和不可否认性的属性,以及这种属性的理论保证。具体学时安排如表1所示。

    4 密码学实验教学方法

    实验设备主要有两种,分别是西普信息安全实验平台、红亚信息安全云平台。学生通过客户端能访问平台服务器,选择相应的课程模块,即可进行相应的实验。实验平台不仅提供经典密码算法,还提供部分攻击和防御工具,比如端口扫描、漏洞扫描、密码破解、数据库入侵、Web攻击、缓冲区溢出等,交互性比较好,学生上手容易。在教学过程中,教师根据不同的实验类型提出不同的要求:验证型实验,主要侧重理解和应用;流密码算法,面向字节,要求学生自己编程实现;杂凑函数,侧重综合应用和分析,主要是观察输入和输出之间的关系,改变一个字符,产生的消息摘要会怎么变化。

    DES和AES密码? 对称密码DES和AES算法采用验证方式学习。数据加密标准(DES)是由IBM公司研制的,美国国家标准局1977年批准它供非机密机构保密通信使用。它是一种典型的传统密码体制,主要采用换位和置换方法加密,是目前最为常用的分组密码系统。数据以64位为一组进行加密,密匙长度是56位(因为每个第八位都用作奇偶校验),密匙是任意的56位的数,而且可以任意改变。弱秘钥问题在DES算法中不会出现,算法的保密性主要依赖于秘钥的安全性,因为加密和解密的算法相同。

    DES自行编程实现的难度较大,因为算法针对二进制进行运算,涉及的矩阵非常多,矩阵里面的元素,每一轮都会全部发生改变。针对DES和AES算法,主要是让学生读懂源程序,理解置换和迭代,能够正确地使用算法进行加密和解密。DES程序运行结果如图1所示。

    流密码算法? 流密码部分,要求学生编程实现RC4和SM4,掌握序列密码的基本原理、实现方法及加解密特点,并分析算法的安全性和优缺点。加密过程指出明文、密钥、所得密文;解密过程指出密文、密钥、所得明文是否符合预期结果,如果不符合,简单分析一下原因。实验报告要给出算法流程图和关键代码。

    RC4是Ron Rivest于1987年为RSA公司设计的一种加密算法,面向字节操作,具有密钥长度可变的特点,是目前为数不多的公开的流密码算法。目前的RC4至少使用128位的密钥。RC4的算法可简单描述为:对于n位长的字,有共N=2n个内部置换状态,矢量S=S[0],S[1],…,S[N-1],这些状态是保密的。

    對每个S[i],根据当前S的值,将S[i]与S中的另一个元素置换,当S[N-1]完成置换后,操作再从S[0]开始重复。加密时将K值与下一个明文字节进行异或运算;解密时将K值与下一个密文字节进行异或运算。RC4程序运行结果如图2所示。

    实验中有一个问题需要注意,那就是于密文和明文格式的转换:从text转换为16进制,再从16进制转换为text文本。否则,输出的ASCII码值有时会超出有符号含义的码值范围,会显示乱码;转换成16进制就没有这个问题了。

    杂凑函数SHA-1? SHA-1散列算法的输入消息以512 bit的分组为单位处理,输出是160 bit的消息摘要。SHA-1算法能很好地对抵抗强行攻击。同时,因为SHA-1算法的循环步骤有80次,所以其运行速度比较慢。在西普实验平台上,测试向量文本框中输入四个26个字母的序列,点击“运行”,SHA-1算法的运行结果会出现在信息摘要文本框中。依次执行第一轮变换、第二轮变换、第三轮变换……最后得到该分组的信息摘要结果。杂凑函数SHA-1分步演示结果如图3所示。

    5 结语

    加强信息安全人才实践能力培养,应该从理论教学和实验教学同时入手,不断扩展和完善,理论教学侧重理解和算法分析,实验设计侧重应用和实现,激发学生学习兴趣,拓展学生专业视野,培养学生解决实际问题的能力以及灵活应用的工程实践能力。

    参考文献

    [1]郭华,李舟军,张习勇.从程序思维能力看密码学实验的教学[J].计算机教育,2014(13):35-38.

    [2]潘林,王金双,陈融,等.基于CrypTool的应用密码学实验设计[J].计算机教育,2015(6):101-103.

    [3]马秀文.密码学课程教学方法的探究:以天津工业大学为例[J].课程教育研究,2018(37):218-219.

    [4]吴旭光,韩益亮.密码学实验课程SPOC建设探讨[J].计算机教育,2018(3):32-35.

    [5]李景涛,刘洋.面向密码学基础的互动式教学方法研究[J].计算机教育,2018(9):40-43.

    [6]侍伟敏,周艺华,杨宇光,等.信息安全专业密码学课程体系的建设[J].计算机教育,2018(3):124-127.

    [7]李晓伟,陈本辉,杨邓奇.应用型信息安全专业密码学课程创新探索[J].高教学刊,2019(1):41-43.