从上面的分析可以看出,密码学课程课堂教学应该解决的核心问题是如何既能够找出密码学本身的完整体系和特点,又能对信息安全教学的立体式框架起到一个衍射作用。
2、课堂教学
《密码学》理论教学内容的核心问题主要在于如何让学生建立密码学的基本概念、基本模型以及基本理论,并最终达到信息安全的立体体系的建立。在实际教学内容中,遇到的困难是:《密码学》对数学基础要求较多,没有数论和抽象代数的基础,要了解密码学的基本内容就很困难。特别是对于我校计算机专业的学生来说,由于没有相应的先修课,必须在《密码学》课程中介绍这些数学基础内容,教学内容多,课时有限,难度大。与此同时,我们看到计算机专业的学生,先修了大量计算机相关课程,对现代密码学的重要实现工具——计算机理论及其应用的掌握比其他专业的学生要强。因此,在设计《密码学》课堂教学内容时,可以针对学生专业特点,涉及到必备的数学概念在讲到具体密码算法时讲解,不单独讲课;在讲具体算法的同时,找来或教师自己动手制作该算法应用的例子,在课堂多媒体教学环境中演示给学生看,进一步要求学生通过编程实践等手段实现相应的算法。这样一来,既符合《密码学》实践性很强的特点,也很好的贴合了学生的专业特点,并且能够激发学生感受《密码学》理论在信息安全中的地位和作用,对他们今后再接触信息安全相关知识起到很好的承前启后的作用,实践证明,教学效果较好。
下面是我校《密码学》课程小组在参考一些《密码学》教材[3-5]的基础上,结合本单位的教学实践,列出一种17教学周,每周2学时,总课时为34学时,其中包含6个课程内上机学时4个课程外上机学的《密码学》教学内容和课时分配的安排方案:
大致教学内容可以分为以下部分:
1、密码学概论和古典密码(1学时)。这部分的主要内容包括:密码学的基本概念,包括密码学的基本任务和研究内容,保密通信系统的基本组成,安全性定义等。本部分目的是形成对密码学整体框架的初步印象,为今后的学习打下基础。
2、古典密码(2学时)。这一章节主要从两条线去讲解古典密码体系——密码编码和密码分析,内容包括两类典型的古典密码体制——单表置换和多表置换。因为就密码学本身而言,密码学主要由密码编码学和密码分析学两部分组成,两者相辅相成、对立统一,共同为达到信息安全的基本目标服务。由于古典密码体制固有的特点,其编码方法对数学基础的要求仅需要数学求模的相关知识,密码分析方法也仅涉及概率统计相关知识,比起现代密码编码学、分析学所需要的复杂数学知识,本章对学生数学基础的要求不高。本章安排编码学为主线,而辅以分析学内容能够很好的体现密码学完整的两方面体系,最终给学生清晰地总结出这两条主线的轮廓,为学生今后的自学构建方法学基础。
3、分组密码(10学时)。主要内容包括分组密码的设计方法;DES、AES和IDEA加密算法。本部分目的是介绍常见的现代分组密码算法。AES和IDEA算法中涉及数论中的有限域求模逆运算,该数学知识贯穿分组密码编码学的整个过程,是一个难点,本章要花大量时间详细讲解。同时,也应当看到,分组密码体制安全性依据的本质是“混乱”、“扩散”以及乘积密码理论,在混乱替换表已经给出的情况下,利用高级编程语言定义数据结构,通过循环来实现,对计算机专业的学生而言,并非难事,可以事先准备好代码,讲课时结合具体代码讲解算法,更利于学生接受和理解。
4、公钥密码(6学时)。主要内容包括公钥密码的基本思想,计算复杂性概念;RSA公钥密码体制;ElGamal公钥密码体制;Rabin密码的加密算法。本部分介绍公钥密码的基本思想——单向函数和常见算法。几个加密算法涉及计算数论中离散对数、大数分解、平方剩余概念的初步,相关的数学理论公式繁多,理解起来有一定难度。但这些数学理论应用到加密算法后,都有相应的快速算法,如RSA加密算法中有模密快速算法、大数分解算法,ELGamal有简单的离散对数算法,并且这些快速算法的程序代码都已经很成熟,仍采用前面的方法:结合代码讲解算法,利于学生接受和理解。在课时有限,无法透彻解释椭圆曲线数学问题的情况下,基于椭圆曲线的加密算法课堂不予讲解。
5、序列密码(6学时)。主要内容包括密钥生成器、线性和非线性反馈移位寄存器、组合函数。本部分目的是介绍序列密码的基本思想和方法。可事先准备好相关代码材料,课堂演示密钥生成器、线性和非线性反馈移位寄存器等的实现,效果非常好。这里涉及有限域的一些概念,在数学知识上必须要讲清多项式模运算和本原多项式的概念。具体的算法不做讲解。
6、数字签名和Hash函数(3学时)。数字签名的基本概念;RSA签名;ElGamal签名;数据完整性,Hash函数。本部分目的是介绍数字签名的原理和常见基本算法,以及Hash函数的概念。涉及的数学基础与公钥密码相同。课堂实例可使用数据加密的应用软件PGP工具在教学过程中进行现场演示数字签名的使用,并要求学生课后发送数字签名邮件作业。
3、实践教学
计算机专业的课程大多注重实践性,密码学课程同样不例外,应精心设计实验教学环境,让学生通过多个密码算法的程序设计实现,更好地掌握密码算法设计的机理和方法,并能掌握密码学系统设计的基本方法和步骤,理解密码学在信息安全中的重要地位,了解密码学领域的新进展、新应用,使学生学完课程后,对密码学的原理、思想和算法都有清晰、深入的理解。
(责任编辑:adminadmin2008)