密码学课程实验教学改革探索

2021-12-12 10:07束妮娜王怀习王晨
大学·教学与教育 2021年10期
关键词:模块化

束妮娜 王怀习 王晨

摘  要:信息技术的飞速发展,使得网络安全越来越重要。密码学课程是信息安全及其相关专业的一门十分重要的专业基础课。本文针对密码学课程实验环节存在的主要问题,提出基于攻防思想的模块化实验内容设计方法,对观察实验、验证实验、操作实验、编程实验和自主实验五大模块进行细化设计,力求使实验模块设计贴近网络安全竞赛实际,应根据学生能力设置分层目标,以期为密码学实验教学提供有益建议。

关键词:密码学课程;实验内容;模块化;竞赛驱动

中图分类号:G642    文献标识码:A    文章编号:1673-7164(2021)39-0107-03

随着网络和信息技术日新月异的发展,网络空间安全变得越来越重要,事关国家安全和世界和平,目前已得到了世界各国的高度重视,并纷纷将其提升为国家战略。为加强我国网络空间安全研究和人才培养,教育部将网络空间安全设立为一级学科,之后国内掀起了开展网络空间安全学科建设和深化研究的热潮。密码学是网络空间安全的基础理论和核心知识单元,从底层的物理设备到高层的系统应用,密码技术贯穿网络空间安全的每一层。

一、密码学实验环节存在的主要问题

高校密码学课程一直安排了实验环节,但是实验课的内容设置、学时安排及考核方式等方面存在以下较难克服的问题[1]:

算法编程实现难的问题。现代密码学算法常涉及较多数学知识,且算法本身较为抽象和复杂,学生理解起来很困难,特别对于某些数学基础和编程能力较弱同学来说压力更大,难以完全独立自主完成学习任务。

学时少但实验耗时多的问题。某些复杂的算法实现及综合设计实验等很难在规定的课时内完成,需要学生利用课余时间加以补充,但是由于实验基础环境配置复杂,尚无系统便捷的线上实验平台,学生离开实验室便无法开展实验,因此学生解决复杂问题的积极性和主动性受到很大影响。

考核方式僵化的问题。目前密码学课程实验的形式因内容不同呈现了多样化的趋势,但大都还是采用较为僵化的传统方式(如实验报告等)进行考核,既难以精准考查学生的学习效果,又难以实现层次化、个性化培养。

针对以上问题,课题组进行了深入研究,并且结合学院以往的教学经验,提出基于攻防思想的模块化实验内容设计,探索竞赛驱动与分层目标相结合的教学模式,以更加人性化的方式为学生提供良好的实验环境,激发其学习积极性和主动性。

二、基于攻防思想的模块化实验内容设计

密码学的教学内容主要包含密码编码学和密码分析学,也就是说密码学具有显著的攻防对抗的特点[2],但是,由于密码分析难度大,加上课时有限,学生在参加各类安全竞赛时,此类题目得分率不高。实际上,从训练学生的程序思维和实践能力考虑,密码分析的内容也应该在实验中加强。因此,实验内容可以分为两大类,密码编码实验和密码分析实验。密码编码实验主要由密码算法组成,覆盖了分组密码、公钥密码、古典密码、HASH算法等。例如,在古典密码方面,实现Caesar密码、仿射密码、Vigenere密码、Hill密码等;在分组密码方面,实现DES、AES算法等;在HASH算法方面,实现MD5、SHA算法等;在公钥密码方面,实现RSA算法。密码分析实验主要针对不同的密码算法,开展相应的密码分析。例如针对维吉尼亚密码的频率分析攻击;针对DES算法的差分攻击;针对RSA算法的共模、低加密指数、低解密指数等攻击;针对MD5算法的生日攻击。

每一大类设计观察实验、验证实验、操作实验、编程实验和自主实验5个模块。

(一)观察实验

该部分实验的内容是对一些重要密码算法流程的观察和理解,教师主要可以通过Flash或模拟器等网上现有资源或自制演示工具,使学生对算法原理和流程有感性的认识。例如Enigma是二战时期德军使用的密码机,是目前为止应用于实战的密码体制中被分析得最为透彻的密码装备,在密码学历史上具有举足轻重的地位,了解它的内部构造和运行原理,对理解传统密码学有重要作用。网上关于Enigma的介绍很多,教师完全可以直接利用现成的模拟器边演示边讲解,既能吸引学生的注意力,又能使原理更易理解。AES作为新的加密标准,是学生必须掌握的典型算法,但算法流程复杂,且涉及很多数学知识,如果仅仅依靠理论讲授很难理解,因此,可以利用Flash将抽象的过程形象化,使学生对算法有直观的认识。观察实验大部分可以在课堂完成,也可以让学生课后利用网站进行自主学习,以达到最佳教学效果。

(二)验证实验

该部分实验的内容是对各类密码算法的验证,主要可以通过算法验证软件或实验系统,使学生深刻理解密码算法原理及流程,通过交互式操作熟练掌握密码算法的工作模式、参数设置等。此模块的实验可以采用两类验证软件来完成,一类是已有的“黑盒式”的验证软件(如CrypTool、CAP等)来验证算法的加、解密流程,这类实验难度不大。但是,这类软件仅提供加、解密界面,学生只能输入明文(密文)然后得到密文(明文)外,关于算法的总体流程和各个步骤的详细情况难以深入了解,因此,可以采用另一类自研的验证软件,这类软件除了能够提供常见的加、解密界面,还能清晰地展现算法的整体流程和步骤细节,而且能够交互式设定每个步骤中的参数。课程中验证实验主要包括古典密码算法验证、DES算法验证、AES算法验证、RSA算法验证和SHA-1算法验证[3]。

(三)操作实验

该部分实验的内容是熟悉密码工具和安全软件的使用,使得学生能够在需要时熟练地应用这些工具,课程主要采用CrypTool和PGP密碼工具。PGP是目前最为普遍使用的一个应用于邮件和文件的加密软件,结合了对称密码、公钥密码和散列算法等多种技术,可以说是一个集大成的软件。软件操作可以在单机上练习,也可以师生互动的形式完成。教师通过软件生成自己的公钥并分发给学生,教师利用公钥向学生发送加密的信息,教师再用自己的私钥解开密文;再互换身份完成这一系列操作。在这个过程中,教师可以直接检验学生完成实验的准确率,而且教师的参与也大大提高了学生的积极性。

(四)编程实验

该部分实验的内容是完成密码学中重要算法及分析程序的编写,该模块是较高层次的实验模块,目的是促使学生理解算法结构,提高编程能力,掌握算法设计原理。实验中古典密码部分(仿射密码和Vigenre密码等)较为简单,大部分学生都可以顺利地独立完成,但现代密码算法(如DES、AES、RSA等)的编程难度较大,很多学生面对这些算法,往往不知道该如何下手,因此就会投机取巧从网上寻找原代码,违背了实验设置的根本目的。因此,重点要考虑的问题是如何在不影响实验目的的基础上以适当的方式降低编程难度,使学生既有能力又有兴趣在有限的时间内完成实验。教师通常可以采用以下两种思路:

一是对算法进行简化和降维处理。为了降低编程难度,教师可以让学生对简化的密码算法进行编程实现;再如RSA等公钥算法,可以要求学生选择较小的参数来完成编程实验,因此绕过了大素数选择、大数的模幂运算等编程难点,这就会在很大程度上降低编程的整体难度。

二是对算法进行关键部分编程或拼装式编程。关键部分编程是指将算法中较为简单的部分事先提供,只让学生编写算法的关键部件并调试成功,这种方式可以节省学生的时间而又不影响学生对算法的理解及编程的能力。拼装式编程是指按照面向对象的编程思想对算法进行“拆解”,然后给学生提供各个模块的源代码,让其拼接并调试完成一个完整的程序,这种方式可以促使学生参考和阅读优秀的源代码,从一定程度上减少编程工作量,降低实验难度,激发学生的积极性,从而提高实验效率。

在具体实施时,课题组以上述思路指导,依托EduCoder平台,构建了系统便捷的实验平台,让学生可以充分利用课余时间,提高算法编程能力。

(五)自主实验

该部分实验的内容是分析某类网络空间安全问题所涉及的密码学知识,综合运用所学知识设计針对该类问题的解决方案或应用系统。自主实验采用开放式教学模式,教师可以参考各类学科竞赛中的命题来设置实验选题范围,也可以让学生根据兴趣自主选题。自主实验可以采用分组的形式完成,也可以让能力较强的学生单独完成,以此培养学生的独立思考能力和开拓创新意识,为学生后续的科研工作奠定良好的基础。

三、竞赛驱动与分层目标相结合的教学模式

(一)竞赛驱动教学法

学科竞赛是培养创新型高素质人才的有效途径之一,但无论是哪一类的竞赛,密码学都占有举足轻重的地位。基于这一背景,在密码学实验环节,建议教师以竞赛为驱动,以项目开发的形式组织实验。在这一过程中,一定要充分体现以学生为中心的教学理念[4-5]。教师具体可以按照以下几个步骤组织:首先,教师根据竞赛要求提供选题,并且给出明确的目标和要求;由学生自行选择感兴趣且符合要求的项目,在教师的指导下确定最终目标[6]。其次,学生查阅材料,进行小组讨论,在初步分析并检验项目的可行性之后,给出具体的项目设计方案并提交教师,由教师审查修订并最终确定。再次,学生按设计方案实施项目研发。在此过程中,教师要适时组织学生进行讨论,及时发现项目研发过程中出现的问题并提出有益建议[7]。最后,教师对学生提交的作品进行验收和评价。学生在截止时间前上交作品,教师检验作品是否达到既定目标,并且给出客观评价,指出可以进一步改进的方向[8-9]。

(二)分层目标教学

根据密码学实验的任务,分层目标教学主要考虑以下三个方面。

第一,分层制定任务。设计单次实验任务时,教师不但要考虑对多数学生程序思维能力的初步培养,还要考虑对部分学生程序思维能力的提高,因此,单次实验任务以及总体实验任务都应具有阶梯性[10]。教师可根据学生的掌握程度以及实际的动手能力,将学生分为不同的层次进行分层教学,对能力较强的学生可以制定较复杂的任务,对于能力较弱的学生制定较简单的任务。

第二,分层实施任务。实验任务中设置基础性的必做题和拓展性的选做题,兼顾不同层次学生的需求。对于能力较强的学生,教师可要求其完成较高的学习目标,遇到困难时引导学生通过查阅资料和讨论来解决问题;对于能力较差的学生,则要求其完成最基本的学习目标,并给予详细指导[11-12]。

第三,分层考核评价:在完成前两个方面的工作之后,建立合理的分层考核评价机制。能力较差的学生完成基本的实验内容则认定其通过考核,针对能力较强的学生,教师可鼓励其完成高阶的实验内容并指导其参加各类学科竞赛。

四、结语

密码学课程是网络空间安全学科中的一门重要专业基础课,实验环节是实现课程总体目标的重要环节。基于攻防思想的模块化实验内容设计、竞赛驱动与分层目标相结合的教学模式,提升了学生动手实践能力,在密码学竞赛中取得了显著的效果,后续还要在实验平台建设和考核方式制订等方面进一步研究。

参考文献:

[1] 李曦. 密码学课程实践教学存在的问题及改进措施[J]. 高等教育研究,2011(02):23-24.

[2] 朱晓玲,侯整风,胡东辉. 渗透攻防思维的密码学实践教学探索[J]. 安顺学院学报,2016(06):124-126.

[3] 赵英娜,张艳博,李娟. 学科竞赛促进教学改革与创新实践能力培养的讨论[J]. 中国电力教育,2014(12):131-132.

[4] 刘杨,王佰玲. 面向网络空间安全新工科的密码学教学研究[J]. 高教学刊,2018(12):472-475.

[5] 刘小虎,张玉臣,韩继红,等. 依托学科竞赛的网络空间安全专业人才创新能力培养[J]. 计算机教育,2019(06):35-38.

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

[7] 郭华,兰雨晴,高莹,等. 密码学课程群 教学方法探索与实践[J]. 工业和信息化教育,2019(04):52-55.

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

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

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

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

[12] 孙菁,傅德胜. 《密码学》课程教学方法的探索与实践[J]. 信息网络安全,2009(07):65-67.

(责任编辑:淳洁)

猜你喜欢
模块化
用模块化思维打造组织
模块化设计的“高等数学”信息化教学探索与实践
老年大学模块化课程体系建设的实践研究
基于 LabVIEW 的高速公路机电工程检测系统模块化设计
JGJ/T 435—2018施工现场模块化设施技术标准
大众MEB电动车模块化平台
高中语文模块化教学的常见问题及解决策略
模块化微流控系统与应用
TE Connectivity针对可穿戴设备、智能手机和移动设备推出全新模块化连接器
AP1000模块化施工在进度计划管理工作的体现