《密码学实验》课程教学实践探索
来源:用户上传
作者:
摘要:《密码学》是信息安全专业的一门重要的专业基础课,《密码学实验》是针对《密码学》课程里的主要密码算法和密码技术设置的一门独立实践课程。本文对该课程中实验内容的设计和实验类型的设置进行了总结分析,并从学时设定、实验类型、实验内容及实验方式等方面给出了几点改进的措施。
关键词:密码学;密码学实验;信息安全;实验内容;实验类型
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2019)10-0120-02
当今社会已进入信息时代,人们几乎每天都面临着信息的传输、保存和接收。然而随着计算机与网络技术的发展,木马、病毒等也随之肆意传播,导致秘密信息泄露、认证信息篡改,这些都严重地危害了人们的生活。现在,不仅是政府、军事、金融等部门,甚至是我们每个人都非常关注信息安全技术的实施与发展。密码学理论与技术保证了信息的保密性、真实性、完整性,是保障信息安全的重要理论基石[1]。
一、课程实验内容
信息安全是一门集数学、计算机、通信、法律等学科基础理论的综合性学科,《密码学》课程是信息安全专业的一门重要的专业基础课。《密码学》课程主要包括古典密码、序列密码、分组密码、公钥密码、密钥分配与管理、HASH函数算法、数字签名、认证协议等理论内容[2]。对于信息安全本科专业的学生来说,除了要掌握密码算法与密码技术的相关理论,还要熟悉密码算法的编程实现和密码技术的相关应用。为此,我校2012级信息安全系课程体系中将《密码学实验》作为一门独立实践课程,以SimpleISES信息安全实验教学系统为辅助实验平台[3],对应于《密码学》课程的教学内容,实验项目分别为:古典密码算法实验(4学时);分组密码算法实验(4学时);公钥密码算法实验(4学时);HASH函数算法实验(2学时);PGP实验(2学时);PKI实验(4学时),共计20学时。
二、实验类型分析
《密码学实验》课程中的实验类型主要包含验证型、设计型、综合型三种。
1.验证型实验。验证型实验主要是学生使用程序或软件对算法或技术进行验证。对于密码算法而言,主要是完成对明文加密和对密文解密的验证。利用信息安全实验教学系统对算法中间结果进行验证,例如分组密码算法中加密过程每一轮的输出结果和密钥生成过程中每一轮子密钥的产生,公钥密码算法中公钥和私钥的产生等。对于HASH函数算法而言,主要是对每一轮中每一步的输出结果验证和对相似度较高消息的HASH函数输出值的比较验证。对于数字签名算法而言,主要是对签名结果进行验证。验证型实验主要是培养学生对密码学基本理论知识的认知能力。
2.设计型实验。设计型实验主要是学生使用C语言对算法或算法中的模块进行编程设计,例如古典密码算法中的替代密码算法和置换密码算法,RSA算法中扩展的欧几里德算法和Miller-Rabin素性检测算法等。在设计型实验中,学生首先对密码学中的经典算法进行分析和功能分解,然后编写各个功能函数,最后完成程序的整体实现。通过设计型实验,加深学生对算法设计原理的理解。
3.综合型实验。综合型实验主要是学生在信息安全实验教学系统上完成密码技术的综合应用。学生通过进行公钥证书申请、颁发、吊销、交叉认证等一系列实验,对PKI证书管理有了更深的认识。通过使用证书对本地文件进行数字签名和实现IIS双向认证,进一步理解密码学认证技术。
三、关于实验内容及实验类型的思考与分析
在《密码学实验》这门课中,验证型实验是非常必要的。因为老师在讲授密码学理论课时,学生对密码学中一些原理和算法的理解仅仅是停留在理论层面,并沒有实践层面上的认知。尽管验证型实验相对其他实验类型来说,操作简单,但其作用却比较大。验证型实验实现了学生对密码学从理论层面到实践层面的认知过渡。因此我们在以往实验项目类型的设计上,验证型实验相对多一些。
然而,对于信息安全专业本科学生来说,在完成密码算法与密码技术验证实验的基础上,还要进一步熟悉密码算法与密码技术主要步骤的实现。因此密码算法的程序编写也是《密码学实验》这门课的重要内容,设计型实验也是这门课程的主要实验类型。通过对密码算法的理解,编写程序实现密码算法是将密码理论运用到实际中的重要基础。但是有些算法让学生在有限的学时内进行程序编写是有难度的,故可以将算法分解为模块,让学生完成算法模块的分析和程序编写[4-5]。综合型实验是在学生完成验证型实验和设计型实验之后,在学生熟悉密码学基本原理和应用技术的基础上所设计的实验。这种类型的实验旨在培养学生的密码理论与密码技术的综合应用能力。
四、改进措施
基于以上对《密码学实验》课程内容的总结和分析,为了进一步提高信息安全专业本科学生密码算法与密码技术的实践能力。笔者建议可以从以下五个方面进行改进:
第一,《密码学实验》课程学时较少,致使有些实验项目不能开展,建议增加学时。流密码(又被称作序列密码)和Diffie-Hellman密钥协商是我们在《密码学》课程中讲授的重要密码算法,但由于实验学时少,这两部分算法没有安排实验。在实验学时充裕的前提下,可以考虑增加序列密码算法实验和密钥协商算法实验。
第二,针对《密码学实验》验证型实验项目较多的问题,在机房进行《密码学》部分课程内容的授课,因而可适当安排一些实验项目在《密码学》课程中进行。老师可以一边讲授理论知识,一边演示实验教学系统算法实验的步骤,学生同时在计算机上完成算法各个步骤的验证实验。
第三,分组密码算法(DES、IDEA、AES等)和HASH函数(MD5、SHA-1等)在算法的步骤中都存在循环移位、逻辑运算及模运算。公钥密码算法和公钥数字签名算法如(RSA、ElGamal、椭圆曲线等)都包含素数判定、模乘逆元求解、原根判定、模乘、模幂等步骤。因此我们可以将这些共同的步骤或运算的实现专门放在密码共用模块实验项目中进行,而后在各个密码算法实验项目,可以直接调用并整合相关模块实现不同密码算法,这样既帮助学生建立不同算法之间的联系,又将复杂的密码算法分解为各个小算法,学生通过实现各个小算法进而实现整个算法。 第四,增加綜合型实验项目的比重。近年来,密码算法与密码技术在云计算、物联网安全、数字版权保护、区块链技术等实际应用中的运用,使其不断充实与发展。因而,今后我们考虑在实验项目中加入一些密码技术应用的综合型实验,以加强学生对密码学新技术与新应用的认识和理解,激发学生的学习兴趣,培养学生的创新思维能力。
第五,将实验项目个人完成的方式改为小组完成的方式。三人为一小组,各组按实验内容进行分工,最终完成整个实验项目并提交实验报告。通过小组实验方式,不仅可以发挥个人特长,而且可以培养学生团结互助的团队协作精神。
五、结论
为了适应学校培养实践能力较强、具有创新意识与国际化意识的高素质应用型人才的人才培养目标,笔者针对《密码学实验》这门实践课程的实验教学,从实验学时、实验内容、实验类型、实验方式等方面提出了几项改进措施。总之,在今后的实验教学中以提高学生密码算法与密码技术的应用实践能力为主要目标,继续深入探索,以获得有效的实践教学方法和经验。
参考文献:
[1]杨波.现代密码学[M].第3版.北京:清华大学出版社,2015:1-4.
[2]任亚唯.信息安全本科专业密码学课程教学理念与教学方法探讨[J].课程教育研究,2012,(35):24-25.
[3]北京西普阳光教育科技有限公司.SimpleISES信息安全实验教学系统实验指导书[M].2011.
[4]张京良,刘珑龙.算法分拆式密码学实验方法[J].计算机教育,2011,(3):71-74.
[5]秦艳琳,吴晓平.模块化密码学实验教学方法研究[J].计算机教育,2013,(2):70-73.
Cryptography Experiment Teaching Practice and Exploration
REN Ya-wei
(School of Information Management,Beijing Information Science & Technology University,Beijing 100192,China)
Abstract:Cryptography is an important specialized elementary course of information security. Cryptography experiment is an independent practice,which is set according to the main cryptography algorithms and cryptography technologies.This paper summarizes and analyzes experiment content design and experiment type setting.Furthermore, this paper presents some improvement measures from period setting,experiment type,experiment content and experiment mode.
Key words:Cryptography;Cryptography experiment;information security;experiment content;experiment type
转载注明来源:https://www.xzbu.com/9/view-14745303.htm