张 权,谢晓霞
(国防科技大学电子科学与工程学院,湖南长沙 410073)
“密码学”教学方法探索与实践
张 权,谢晓霞
(国防科技大学电子科学与工程学院,湖南长沙 410073)
本文研究了电子和通信专业高年级本科生“密码学”选修课的教学方法。针对教学中存在的数学基础欠缺、教学内容抽象、课时少、内容多等难点问题。笔者研究了教学内容的组织、教学素材的编制、教学实践的安排、学习兴趣的激励以及考核方式的设计等方面的相关方法。
密码学;教学内容;教学方法
随着信息安全在信息技术领域的重要性日益突出,国内许多高校的相关专业都开设了信息安全系列专业课程。“密码学”作为信息安全理论与技术的基础,其教学效果直接关系到一系列信息安全类课程的教学质量。许多院校的电子和通信专业也开设了“密码学”选修课程。
密码学是数学在通信和信息技术领域的一项特殊应用,因此“密码学”课程涉及数论、群论和计算复杂度理论等相关数学基础知识。例如密码学中的公钥加密算法RSA必须采用数论的方法证明。基于离散对数的密码算法也必须借助于群论才能证明其安全性。对称密钥加密算法抵御各种攻击的能力,需要借助计算复杂度理论来进行阐述[1]。而电子和通信专业的本科生通常不具备这些数学基础。故必须精心设计教学方法,把相关的数学基础知识穿插在“密码学”的教学中。
“密码学”课程内容本身比较抽象,有些概念不易理解。例如对于密码算法到底是否应该开放这一点,学生普遍认为受限的密码算法比开放的密码算法更难以被破解,因而密码算法的安全性应完全寓于密钥。针对这种情况,必须引导学生从多个角度考虑理解问题。如能从密码系统用户的角度去考虑算法开放性的优缺点,就比较容易得出全面准确的结论。
密码学本身的内容非常丰富,光密码算法方面,就有古典密码算法、对称密码算法和公钥密码算法等几类,每一类又各有多种具体的密码算法。此外还有保证数据完整性、认证性的多种算法和协议。通常”密码学”课程的学时数在50-70之间。但是,作为电子和通信类本科生的选修课程,只能安排30学时左右。为此,就必须在教学内容组织、教学素材制作及教学方法设计上有所创新。
笔者设定的32学时“密码学”选修课采用如下教学内容组织。
(1)古典密码算法虽然已经丧失安全性方面的作用,但该算法的历史故事对于学生提高学习密码学的兴趣大有帮助。因此在课程伊始花费了2学时左右讲授这部分内容。
(2)我们用3-4学时介绍现代对称密钥密码DES算法。理由是:①数据加密标准DES算法在密码学中被认为是应用最广泛的密码算法;②DES算法是Feistel型密码算法的典型代表,籍此可让学生理解对称密钥密码算法实现混淆和弥散的基本方法;③虽然单重DES目前已经很容易被破解,但其衍生算法如3DES等目前仍然被认为是比较安全的,而且许多新的算法的安全性也往往以3DES为参照。
(3)Rijndael算法作为新的AES标准,同时作为SPN型密码算法的代表,用2学时介绍可确保学生掌握Rijndael的操作过程。由于Rijndael算法中用到了有限域上的运算,在学生未掌握相关数学知识的情况下,可以通过将相应的域运算转化成查表操作的方式进行介绍。
(4)对于公钥密码算法,目前主流的基于大数因子分解问题、有限域上的离散对数问题和椭圆曲线上的离散对数问题等。通常以介绍RSA算法为主,花费3-4学时。教学过程中应该从实现RSA算法的角度出发,把每一步涉及到的数学问题逐一地进行介绍,这样可以使学生快速掌握RSA算法的实现过程,同时又不至于陷入纯数学的分析和讨论中去。
(5)在学生理解了公钥密码算法的本质属性是单向陷门函数之后,可以从单向陷门函数的角度出发,即单向性和陷门如何实现,分别用1-2课时介绍基于离散对数和基于椭圆曲线的公钥密码算法。
(6)在系统介绍密码算法的基础上,再讲授数据完整性的算法,如MD、SHA和CBC-MAC等不超过4学时。主要教学内容可以通过课后作业或者实验任务的形式让学生自己学习。
(7)密码协议是“密码学”教学中的可选内容,但是对于保证信息安全中三大安全需求,即保密性、数据完整性和认证性的概念完整,认证协议的介绍往往不可或缺。认证协议的教学可以采用两种方法组织内容:第一是从协议的基本概念入手,然后引入认证协议,再沿着认证协议的发展历程,选取若干具有代表性的认证协议进行讲妥;第二种方法是直接选取几种目前应用较为广泛的认证协议,例如对Kerberos进行解剖式的讲解。相比之下前一种方式更容易被学生接受,但是需要至少4学时以上;第二种方式一般只要2学时,在实例选取适当的情况下,也能够获得较好的教学效果。
(8)在组织教学内容时,可以适当穿插介绍部分数学知识以及与算法相关的特性,例如数论相关知识、Feistel型密码算法的特性、分组密码加密模式及其特性等。
(9)为了提高学生学习密码学的积极性,可以让学生自己体会密码学知识在抵御黑客攻击、保护信息安全中的作用;通过大量的黑客攻击实例或者泄密案列,让学生体会到密码学的重要性。
优秀的教学素材在教学中可以达到事半功倍的效果,教学素材编制是密码学教学备课的重要任务。
(1)对于一些较抽象的内容,尽可能利用图形化的方式展现其特点。例如在分组密码加密模式中,CBC模式与ECB模式的比较在教学中往往不容易为学生理解。笔者在教学实践中利用两种模式分别对一幅RGB图片进行加密,ECB模式加密的图片明显保留了原始图片的结构信息,对比结果使学生清楚地认识到CBC模式的优点。我们还鼓励学生在课后采用图像纹理分析的方法(例如共现矩阵法)研究两种加密模式的差别。
(2)对于那些运算步骤较多的密码学算法,尽量采用动画演示材料进行教学。像 DES算法、AES算法以及MD5算法等在因特网上都有的免费的动画作品,只要稍加改进就可以满足课堂教学的需要。例如包含在Cryptool教学演示软件中的 Rijndael算法演示动画以及ECC演示程序都是非常好的教学素材。笔者还曾用Flash编制了多种密码算法的操作过程演示动画,在教学中取得了很好的效果。
(3)对于偏重数学理论的密码算法,则应当尽可能地采用运算实例进行讲解。例如在RSA教学中,为了让学生完整地掌握RSA加解密过程,可以选取一些较小的数值,按照RSA的运算过程进行计算。
“密码学”课程不仅具有突出的理论性,也强调实践性。实践内容设计和考核可以从两方面着手。
(1)让学生用软硬件实现重要的密码算法。在笔者教学过程中,曾经尝试过两种方式增强学生对DES算法的理解。第一是给定明文和密钥,让学生计算若干轮DES运算的结果;第二是让学生自己编制DES加密软件。第二种方法的效果明显优于第一种。学生通过编程调试等工作,牢固掌握了DES算法的每一步操作;而且完成了自己的加密软件作品后,萌发了浓厚的兴趣,开始主动编制其它密码算法的软件。
(2)让学生动手编制教学内容相关的动画作品。在笔者的教学实践中,曾经给学生演示了多种密码算法相关的动画作品,有学生主动对某些动画进行改进。后来改进或编制新的教学动画演示作品便成了一项有效的实践活动,部分优秀的作品被笔者使用作为教学素材。
考核遵循的原则是:注重学生密码学理论和工程能力的鉴定,同时兼顾学习兴趣的培养。例如,笔者在2008年的考核中,以当时热播的电影《达芬奇密码》中的情节设计了一道密码算法安全性分析的考题,结果在考试后很长时间里,仍然有学生与笔者讨论该题目的解决方法。在今年的考核中,以世界杯为背景设计了一道密码协议考题,也引起了学生强烈的兴趣,设计出来的协议非常具有创意。
[1] 王育民,通信网的安全理论与技术[M].西安:西安电子科技大学出版社,1999
[2] 蔡乐才主编,应用密码学[M].北京:中国电力出版社,2005
An Exploration and Implementation of the Teaching Method of Cryp tography
ZHANG Quan,XIE X iao-xia
(Co llegeo f Electronic Science and Engineering,NationalUniversity o f Defense Technology,Changsha 410073,China)
The teaching method of cryptography is given to senior undergraduate students whose major is electronics and communications.Aiming at the deficiency ofm athematics and finity o f teaching hour,this paper discusses some solutions to the above problems in organization of course content,com pilation of teachingm aterial,arrangement of teaching p ractice,p romotion o f the undergraduate's interest and design of the evaluating mode.
cryptography;course content;teachingmethod
G642
A
1008-0686(2011)02-0108-03
2010-09-21;
2011-01-03
张 权(1974-),男,博士,副教授,主要从事通信保密与信息安全的教学与科研工作,E-mail:quanzhang@nudt.edu.cn
谢晓霞(1974-),女,硕士,副教授,主要从事信号处理的教学与科研工作,E-m ail:xiexiaoxia75793@163.com