密码学课程群教学方法探索与实践

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0 引言

随着网络空间安全一级学科的设置,以及数字货币、区块链、移动终端等新技术、新应用的不断涌现和飞速发展,密码学逐渐褪去了神秘的面纱呈现在大众面前。越来越多的高校开始培养密码学类专业人才,设置密码学课程群是其中一项重要的举措。密码学课程作为信息安全专业的核心课程,为信息安全研究提供了理论依据和应用实践,在网络空间安全学科建设中具有非常重要的作用。

密码学是一门集数学、计算机科学、通信和信息系统等多学科为一体的交叉学科,是一门综合性的尖端学科[1]。北京航空航天大学(以下简称“北航”)网络空间安全学院的密码学课程群包括“信息安全数学基础”“密码学”“密码学实验”,这些是核心专业课,也是信息安全专业和信息对抗专业的必修课。该类课程具有理论性强、涉及数学知识面广(如数论、近世代数、椭圆曲线等)等特点。教师如何在密码学课程群的教学过程中,促使学生由被动学习转变为主动学习,教师身份由知识的灌输者转变为学生的帮助

密码学课程群

教学方法探索与实践

郭 华,兰雨晴,高 莹,刘建伟

(北京航空航天大学网络空间安全学院,北京 100191)

【摘要】密码学课程群在网络空间安全学科建设中具有非常重要的作用。针对密码学课程群理论性、实践性强的特点,教师通过在课堂教学中引入编程、学术论文、实例应用、学科竞赛(如密码竞赛等),并结合国家密码

标准和自主操作系统安全等方法,促使学生由被动学习转变为主动学习,实践证明,该方法取得了良好的教

学效果。

【关键词】密码学课程群;主动学习;教学模式

【中图分类号】G642 【文献标识码】A 【文章编号】2095-5065(2019)04-0052-04

收稿日期:2019-1-26

作者介绍:郭华(1980—),女,河南巩义人,博士,副教

授,研究方向为密码学、安全协议。

兰雨晴(1969—),男,博士,教授,研究方向为安全可信

操作系统研制及可信计算研究、可信云、大数据;

高莹(1977—),女,湖北大悟人,博士,副教授,研究方

向为密码学、区块链;

刘建伟(1964—),男,山东烟台人,博士,教授,博士生

导师,北京市教学名师,研究方向为通信网络安全、密码

学、密码协议等。

基金项目:2019年北京航空航天大学教改项目“面向一流

网络安全学院建设示范的卓越人才培养模式探索”(项目

编号:BHJG391901);2018年北京航空航天大学双百工程

“密码学”(项目编号:403904)。

52

者,是密码学课程群教学中亟须解决的问题。

1 密码学课程群特点

密码学课程群同其他课程群相比,有如下明显不同[2]。

(1)密码学课程群综合性强,课程覆盖面广。密码学是理论性、实践性很强的交叉性学科,学科知识跨度非常大。密码学课程群涉及初等数论、近世代数、概率论、密码学、信息论等基础性学科;密码学相关应用包括:“操作系统”“数据库”“计算机网络”“程序设计”等课程。

(2)密码学课程群知识体系、知识内容更新速度较快。随着攻击手段与防范技术的日新月异,需要随时更新、补充密码学课程群的内容。

(3)密码学课程群实践性较强,与实际结合非常紧密。在密码学课程群中,传统教学停留在课堂讲解概念、算法流程和课后布置作业上,学生对抽象概念不十分理解,大多停留在概念的死记硬背及生搬硬套上,不能做到知识的深刻理解和灵活运用,为后续课程的深层次理解带来一定难度。不能掌握抽象概念,学生便不能从学习中得到乐趣。兴趣是最好的教师,对于不感兴趣的课程,学生不会投入热情和精力。在信息安全专业课程中,学生有“密码学课程难,难于上青天”的恐惧心理,出现“教师卖力讲、学生懵懂听”的现象,导致学生对密码学课程群兴趣降低。

传统的填鸭式教学已不能满足密码学课程群的教学要求。为了提高教师教学效果,已相继提出多种新颖的教学方法[3-8]。自2012 年起,笔者的教学团队负责北航计算机学院(2018年5月转入网络空间安全学院)密码学课程群中数论、密码学、密码学实验等内容的本研教学工作。在教学中,积极吸取其他知名高校密码学课程群的教学经验,积极探索使学生变被动学习为主动学习的教学方法。2 密码学课程群教学方法

针对密码学课程群教学中“学生难以提高密码学课程群兴趣的问题”,结合北航教学培养要求,笔者提出了一系列教学改革举措,并取得了较为明显的效果。

(1)引入编程环节,教学生主动探索算法的原理。在密码学课程群中,密码学基础、初等数论、抽象代数等学科的共同特点是概念有鲜明的算法特性。如果教师只是简单地进行课堂讲解,学生对算法的理解就会被动地停留在表层。为使学生变被动为主动,笔者结合工科学生喜欢动手编程的特点,将基本概念用编程方式讲解,引导学生利用编程实现重要算法,并鼓励学生对已有算法进行优化,提高学生对密码学课程群中基础课程的学习兴趣,教学取得了良好效果。

①用编程讲解定义。例如,密码学中对公钥密码体制的定义,将定义中的6元组通过程序语言归类为程序的输入、输出和子程序,根据每个子程序涉及输入、输出和每个子程序之间的关系,引导学生绘制相关的模块关系图(见图1)和子算法的流程图(见图2),加深学生对基本定义的理解,并帮助学生进行后续具体算法的学习和实现。

图1 公钥加密算法的模块关系图

②编程实现算法。笔者提炼出一些经典且易于实现的算法给学生编程使用,并引导学生通过编程实验验证一些规律,加深学生对基本定义和算法思想的理解。在编程过程中,教师通过引导

53

学生观察对比算法的计算时间、存储空间,帮助学生深刻理解算法的设计思想。

例如,在扩展欧几里得算法、广义欧几里得算法中,学生通过对比内存占用量,理解广义欧几里得算法的高效,通过改进算法的形式,提高算法性能,并证明了相应理论。

③编程优化算法。编程实验引发了学生对算法进一步优化的兴趣。例如,在实现初等数论中的厄拉多塞筛法时,课本中算法采用递归的方法直接实现,学生通过编程发现,引入标志位,不断删除当前小表中第一个数的倍数,避免了使用递归调用,大大节省了内存。

此外,学生在进一步优化算法的过程中发现,每次删除倍数时,只需从N开始查找,进一步提高算法的执行效率。由此,学生很容易理解后面的素数判定定理中N的设置原因。

(2)利用学术论文提高学生的探究能力。课堂教学中,笔者讲授基本概念、算法后,引导学生阅读典型的学术论文,并鼓励学生进行课堂讲解与讨论,得到了意想不到效果。例如,在对称密码体制中,学生在学习混淆概念和扩散概念后,学习经典的DES算法和AES算法,并分析在两种算法中,如何做到混淆和扩散。

笔者为进一步加强学生对上述概念的理解,布置学生阅读MARS、IDEA、TWO FISH等经典对称加密算法。在这些算法中,教师引导学生分析算法的结构、主要构件,以及哪些构件实现了混淆、哪些构件实现了扩散,加强了学生对基本概念的理解。

例如,公钥签名算法中,除了基本的签名算法,还有关于盲签名、环签名、群签名和代理签名等外文文献的阅读与讨论,学生不但深入理解了经典签名算法的设计思想,而且针对攻击者不同能力、不同场景需求,设计满足不同安全性的签名方案,进一步加深学生对信息安全中攻防的理解。

(3)引入实例加深学生对基本概念的理解。密码学中很多概念比较抽象,教师需要利用实例让学生了解抽象概念。

例如,在讲解数字证书时,一个证书中涉及许多元素(如证书颁发机构、证书有效期、所使用的签名算法、签名哈希算法、公钥等),非常抽象。在实际应用中,因为https域名的网站中有证书的信息,所以教师在授课过程中,通过向学生展示一个具体的数字证书,帮助学生理解数字证书的设计思想和具体形式,加深学生对基本概念的理解。

(4)利用密码竞赛提高学生对密码学知识的应用能力。密码学是一门理论性、实践性很强的学科。学生应在理解密码学基本概念、基本定义、经典算法的基础上,正确、高效地实现密码算法,用密码学知识解决实际应用问题。学生在密码竞赛中,应用到密码学、操作系统、计算机原理、安卓编程和并行计算等方面知识。因此,笔者结合各种密码竞赛、科研项目等,培养学生密码工程实践的能力。

2018年北航本科有3支团队在全国密码技术竞赛中,分别取得了特等奖、二等奖和三等奖,作品涉及密码算法的优化、密码算法解决文件加密

图2 公钥加密子算法的流程图

54

相关文档
最新文档