现代密码学
学时:3 学分:3
课程属性:专业选修开课单位:理学院
先修课程:高等数学、概率论与数理统计、线性代数
后继课程:信息安全技术
一、课程的性质
本课程是信息与计算科学专业选修课。
二、教学目的
学习和了解密码学的一些基本概念,理解和掌握一些常用密码算法的加密和解密原理,认证理论的概念以及几种常见数字签名算法和安全性分析。
三、教学内容
本课程涉及分组加密、流加密、公钥加密、数字签名、哈希函数、密钥建立与管理、身份识别、认证理论与技术、PKI技术等内容。
四、学时分配
章课程内容学时
1 密码学概论 2
2 古典密码体制 2
3 现代分组密码10
4 流密码 4
5 公开密钥密码体制12
6 密钥管理 2
7 Hash函数 4
8 数字签名 6
9 身份识别 2
10 认证理论与技术 2
11 PKI技术 2
12 密码应用软件 2
13 密码学新进展 2
五、教学方式
本课程是信息与计算科学专业选修课程,理论性较强。
在教学方法上,采用课堂讲授,课后自学,课堂讨论、课下练习编程、课下操作实验等教学形式。
(一)课堂讲授
本课程属理论课程,涉及到较多的数学知识,在讲述的过程中教师应尽量联系生活实际,加深学生对密码算法的认识。
在教学中要求同学重点掌握密码学的基本概念、算法的编程和密码技术的应用,要着重培养学生编写算法的能力,在课程内容方面既要保持理论的系统性,又要注意联系实际应用,并且重视技术科学的一般方法学的培养。
(二)课后自学
为了培养学生整理归纳,综合分析和处理问题的能力,每章都安排一部分内容,课上教师只给出自学提纲,不作详细讲解,课后学生自学(数学部分、加密方法的C与C++实现部分)。
(三)课堂讨论
课堂讨论的目的是活跃学习气氛,开拓思路。
教师应认真组织,安排重点发言,充分调动每一名同学的学习积极性,做好总结。
(四)习题课
习题课以典型例题分析为主,并适当安排开阔思路及综合性的练习及讨论。
共2学时(已包括在前述学时分配中)。
(五)课外作业
课外作业的内容选择基于对基本理论的理解和巩固,培养密码算法的验证和简单的加、解计算能力。
利用所学的密码知识,分析实际问题的解决能力,习题以计算性小题为主,平均每学时1-2道题。
六、考核方式
(一)平时测验
为及时了解教学情况,教师可适当安排期中测验,要求使用1或2个学时,让学生理解如何学习密码学理论部分。
(二)考试
考试可采用闭卷与开卷相结合的形式,以闭卷为主。
闭卷部分的试题包括基本概念,基本理论,分析实际安全问题,题型可采用填空,计算,简答等方式。
开卷部分的考试采用对学生平时编写算法的测试。
总评成绩:学生上课出勤,平时作业,编写算法代码共占30%;期末闭卷考试占70%。
七、教材及教学参考书
[1]张福泰. 密码学教程. 武汉: 武汉大学出版社,2006年9月.
[2]宋震. 密码学. 北京:中国水利水电出版社,2002年7月.
[3]Michael Welschenbach编著,赵振江,连国卿等译. 编码密码学—加密方法的C与C++实现.北京:电子工业出版社,2003年6月.
[4] 钟诚,赵跃华,杨铭熙,叶震,陆向艳,宋建华. 信息安全概论. 武汉: 武汉理工大学出版社,2003年6月.
[5] 冯登国,裴定一. 密码学导引. 北京:科学出版社, 1999年.
[6] 卢开澄. 计算机密码学(第2版). 北京:清华大学出版社,1998年7月。
八、教学基本内容及要求
第1章密码学概论
要求深刻理解与熟练掌握的重点内容有:1.信息安全的基本概念,2. 密码学的基本概念,3.与密码学有关的难解数学问题。
要求一般理解与掌握的内容有:信息安全的基本内容、密码体制分类、密码学的发展历史。
重点:密码体制的分类。
难点:密码体制的攻击类型理解。
第2章古典密码体制
本章主要了解1949年之前的古典密码体制,掌握不同类型的加密方式,并了解和认识无条件安全及古典密码的破译。
本章知识点:代换密码(分类和举例)、置换密码(列置换密码、周期置换密码)、古典密码的破译、无条件安全的一次一密体制。
要求学生能够使用C、C++编写Caesar 密码算法,练习最基本或最简单的加密模式。
为进一步
加强对加密算法的理解,课堂上演示实现的Caesar密码。
第3章现代分组密码
要求掌握分组密码概述,主要使用的结构及模式,详细学习DES、IDEA、RC5、AES算法的流程,特别是如何实现这些算法,并了解每个算法的安全性及其效率。
本章知识点:分组密码概述、Feistel结构、分组密码的使用模式、数据加密标准DES、数据加密算法IDEA、RC5、高级加密标准AES算法。
学习中,为加强学生的编程能力,课堂上先熟悉Visual C++6.0下编写算法的模式(头文件和实现文件的编写模式),并在该界面下演示所有的分组密码算法(如何加密和解密),同时对部分程序算法代码讲解(如何存储数据)。
难点:分组密码的使用模式理解和分组密码实现。
第4章流密码(4学时)
本章要求了解什么是流密码,与分组密码的异同,当前流密码的用途。
掌握密钥流生成器的结构,基于LFSR的流密码模型,同时了解相关LFSR的数学基础。
本章知识点:流密码概述、二元加法流密码(密钥流的性质、密钥流生成器的结构、基于LFSR 的流密码模型)、流密码算法介绍(A5算法、LFSR算法)。
难点:流密码的数学基础(部分数学基础超出学习范围)。
第5章公开密钥密码体制
在数论、近世代数知识的基础上,学习公开密钥密码算法。
要求在区分公开密码密码和分组密码的前提下,掌握不同的公开密钥密码体制(基于大整数、基于离散对数、基于椭圆曲线),并能够编写大整数的基本运算(加法、减法、乘法、除法及求模运算)。
本章知识点:公钥密码体制概述、基于大整数难分解的公钥密码体制(以RSA为代表)、基于离散对数的公钥密码体制(Diffie-Hellman密钥交换协议、ElGamal体制)、基于椭圆曲线的公钥密码体制(数学背景和密码系统)
说明:课堂上演示RSA系统,并对部分代码进行讲解。
难点:编写算法中,大整数的存储问题。
第6章密钥管理
在学习了密码的安全性主要是基于密钥的安全性的基础上,要求理解和掌握密钥的组织结构和种类,密钥是怎样生成的(分析RSA和DES中用的密钥),了解密钥的分配和协商。
本章知识点:密钥的组织结构和种类、密钥生成、密钥分配和密钥协商、秘密共享和密钥托管。
重点:秘密共享方案。
第7章 Hash函数
要求理解和掌握单向函数的基本概念,散列函数的设计与构造,学习MD5、SHA-1算法,并能够编写其中一个算法代码。
本章知识点:单向散列函数概念、MD5算法、安全散列算法SHA-1、消息鉴别码。
说明:区分MD5与SHA-1的异同,课堂演示算法的实现过程。
难点:如何实现算法。
第8章数字签名
要求理解和掌握常规的手写签名与数字签名的不同,了解数字签名在不同资料上的定义,详细学习RSA 数字签名体制、ElGamal数字签名体制、数字签名标准DSS,分析每个算法的安全性。
要求学生在此基础上,能够讨论或独立构造基于不同难题的数字签名。
本章知识点:数字签名的基本概念、RSA 数字签名体制、ElGamal数字签名体制、数字签名标准DSS及其他各类数字签名模式。
说明:课堂演示数字签名软件,增加学生的认识和了解。
第9章身份识别
本章主要要求学生掌握身份识别概念,理解强、弱的身份识别,了解身份识别协议及其安全性问题。
本章知识点:身份识别的概念、弱身份识别、强身份识别、身份识别协议及其安全问题。
重点:身份识别概念,各类身份识别。
难点:身份识别协议理解。
第10章认证理论与技术
本章主要学习认证理论与技术,掌握认证模型和认证协议,了解Kerberos系统和X.509认证服务。
本章知识点:单向认证、双向认证、认证协议、Kerberos系统、X.509认证服务。
重点:认证模型和认证协议。
难点:Kerberos系统与X.509认证服务的理解。
第11章 PKI技术
本章主要掌握PKI技术,认识PKI的功能和要求,了解相关协议和产品。
重点:PKI的组成和功能。
难点:PKI相关协议。
第12章密码应用软件
本章主要学习和认识PGP,掌握IP安全性,了解电子商务安全技术。
本章知识点:安全邮件标准、邮件加密软件、IP安全性和电子商务技术。
重点:各种软件的使用。
第13章密码学新进展
本章主要了解密码学的新进展。
本章知识点:量子密码学、环签名与指定验证人签名、基于身份的公钥体制与无证书公钥体制和DNA密码简介。
重点:新进展的理解。