密码学基础教学大纲完整版.docx
《密码学基础教学大纲完整版.docx》由会员分享,可在线阅读,更多相关《密码学基础教学大纲完整版.docx(34页珍藏版)》请在冰豆网上搜索。
密码学基础教学大纲完整版
《密码学基础》课程教学大纲
(课程代码:
07310620)
课程简介
密码学基础是信息安全专业的一门技术基础课程,该课程的学习将为后续的信息安全课程打下基础,同时也为将来从事信息安全研究和安全系统的设计提供必要的基础。
该课程主要讲授流密码(古典密码学)分组密码学、公钥密码学、密钥分配与管理、信息认证和杂凑算法、数字签名以及网络加密与认证等几个部分,在其中将学习各种加解密、散列函数、单向函数、签名模式及伪随机发生器等多种密码学工具,以及如何应用这些工具设计一个实现基本信息安全目标的系统(目前学时不够,没有安排)。
基本密码学工具的掌握和应用这些工具构造安全服务就是本课程的基本目标。
本课程具有如下特点:
(一)依赖很强的数学基础
本课程需要数论、近世代数、概率论、信息论、计算复杂性等数学知识作为学习的基础。
这些数学基础的讲解既要体现本身的体系性,同时还要兼顾密码学背景。
(二)可扩展性强
各种具体方法的学习不是本课程的最终目标,背后的基本原理以及应用这些原理设计新工具的能力才是本课程的最终目标。
(三)课程内容复杂且涉及面广
由于密码学内容丰富,且包含许多复杂的知识点,所以本课程的讲授以线为主,即在基本主线的勾勒基础上对授课内容及复杂程度做出取舍。
本课程先修课程有:
数据结构、近世代数、概率论、高等数学、高级语言程序设计等。
后续课程有信息安全扫描技术、PKI技术、病毒学等专业课程。
课程教材选用国内信息安全优秀教材杨波编著的《现代密码学》(清华大学出版社),同时参考国外优秀教材:
《经典密码学与现代密码学》,RichardSpillman,清华大学出版社、DouglasR.Stinson著,冯登国译的《密码学原理和实践》,电子工业出版社,2003年2月第二版。
另外还向学生推荐国内的一些具有特色的操作系统教材如胡向东编写的《应用密码学教程》(电子工业出版社)等。
实验教材选用自编的实验指导书,同时参考上海交大的“信息安全综合实验系统实验指导书”,除了这些教材之外,学校的图书馆为师生提供了相关的学术期刊和图书。
课程教学体系:
理论课程(34学时)课程实验(16学时)。
达到从算法验证、综合设计、到创新应用知识的逐步提高、全面培养的目的。
相应的教学材料由教学大纲、实验大纲、实验指导书等。
实践环节的实验条件有:
计算机科学技术系的实验中心(实施课程实验)。
课程教学安排
序号
内容
课时数
备注
一
密码学概述
2
二
古典密码学算法
(一)
2
三
古典密码学算法
(二)
2
课后习题
四
分组密码体制:
数论基础
2
五
中国剩余定理
2
六
Feistel网络结构
2
七
DES加密算法
2
课后习题
八
置换和代换
2
九
公钥密码体制的基本原理
2
十
RSA算法
2
十一
背包密码体制
2
课后习题
十二
DES算法实验
2
实验课
十三
3DES算法实验
2
实验课
十四
单钥、公钥加密体制的密钥分配
2
十五
密钥托管与消息认证码
2
十六
杂凑函数
2
课后习题
十七
RSA算法实验
4
实验课
十八
数字签字原理
2
十九
密码认证协议
2
二十
网络通信加密与PGP
2
二十一
AES算法实验
4
实验课
二十二
MD5算法实验
4
实验课
第一部分:
理论课大纲
【教学目的及要求】
密码学基础是计算机信息安全中的核心课程,所以改专业的学生均需学习并掌握密码学的相关技术理论和工具方法,这是深入理解和从事有关信息安全行业工作的基础。
因此密码学基础在信息安全专业课程中占有不可替代的地位。
本课程的先修课程有《数据结构》、《概率论》、《高等数学》、《高级语言程序设计》等,学生应掌握程序设计、数据结构、编译原理和计算机组成等方面的基础知识,具有一定的独立编程能力。
通过本课程学习培养学生动手能力,对密码学的原理、思想和算法都有清晰、深入的理解。
让学生通过多个密码算法的程序设计实现,更好地掌握密码算法设计的机理和方法。
同时,基于密码系统设计的基本方法和基本步骤,帮助学生理解密码学在信息安全中的地位,并引导了解密码学领域及信息安全领域的新进展、新方向。
掌握本课程后,可以为后期《信息安全扫描技术》、《PKI技术》、《病毒学》等课程的学习,以及网络安全的分析、设计与开发奠定坚实的专业基础。
通过本课程的学习各种加解密、散列函数、单向函数、签名模式及伪随机发生器等多种密码学工具,培养学生的实际动手能力和提高分析问题解决问题的能力,为学生今后从事各种实际工作,如设计、分析和改进各种加解密数据包提供必要的软件基础,以便能得心应手地用好和管好计算机,更好地完成各种计算机安全保密任务以及如何应用这些工具设计一个实现基本信息安全目标的系统(目前学时不够,没有安排)。
基本密码学工具的掌握和应用这些工具构造安全服务就是本课程的基本目标。
【重点和难点】
本课程的重点是:
密码学中的数论知识,密码学中常见的代数结构,熵理论概要,加解密都是明密文集合上的数学变换:
代换和置换、SPN(代换-置换网)。
两种常见的DES分析方法:
线性分析和差分分析手段。
三种常见的信息认证方法:
加密,消息认证码(MAC)和散列函数,常见的密码学协议,包括密钥分发、密钥协商、认证等内容。
难点有:
移位加密、代换密码、维吉尼亚密码、希尔密码等古典加密算法与古典置换密码:
行置换加密、块置换加密等。
数据加密标准(DES)、S-盒设计方法、高级加密标准(AES)、RSA公钥密码算法、ElGamal公钥密码算法、椭圆曲线加密算法(ECC)、背包加密算法、MD5散列算法等。
【教学方法】
在《密码学基础》教学中采用面授和多媒体教学手段相结合的方式进行。
面授教学是教学相长、教学互动的最好的模式。
采用这种教学相长的启发式教学方法,课堂上组织讨论,使课堂气氛活跃,学生的学习兴趣、能动性大大提高。
实际教学中使用多媒体教学手段在教育多功能教室上课,进行实时的、多媒体、交互式的教学,以动画生动表现动态过程,以拟人手段讲解难点,提高学生学习兴趣。
密码学基础实验环境(软件)为上海交大的“信息安全综合实验系统平台”。
学生利用这个实验环境通过实践进一步掌握密码学领域的基本原理、基本思想及基本算法原理。
使学生对密码系统设计和分析的基本方法和步骤形成一个清晰、全面的认识。
【课时安排】课时安排(共50学时)
序号
教学内容
讲授学时
试验学时
(一)
第一章引言
2
(二)
第二章流密码
4
(三)
第三章分组密码体制
8
6
(四)
第四章公钥密码
8
8
(五)
第五章密钥分配与密钥管理
3
2
(六)
第六章消息认证与杂凑算法
3
(七)
第七章数字签字和密码协议
4
(八)
第八章网络加密与认证
2
【主要参考书】
课程教材选用国内信息安全优秀教材杨波编著的《现代密码学》(清华大学出版社),同时参考国外优秀教材:
《经典密码学与现代密码学》,RichardSpillman,清华大学出版社、DouglasR.Stinson著,冯登国译的《密码学原理和实践》,电子工业出版社,2003年2月第二版。
另外还向学生推荐国内的一些具有特色的操作系统教材如胡向东编写的《应用密码学教程》(电子工业出版社)等。
实验教材选用自编的实验指导书,同时参考上海交大的“信息安全综合实验系统实验指导书”,除了这些教材之外,学校的图书馆为师生提供了相关的学术期刊和图书。
一、密码学概述
【教学目的及要求】
课前言;
了解信息安全面临的威胁;了解信息安全的模型;了解密码学的基本概念
【重点和难点】
重点:
密码学基本概念、术语
【教学方法】多媒体教学
【课时安排】2学时
【主要参考书】
《经典密码学与现代密码学》、《应用密码学教程》、《密码学原理和实践》
【课程主要内容】
课前言:
本章是引言,包括:
信息安全面临的威胁
信息安全的模型
密码学基本概念
(一)密码学简介
1.信息安全的模型
信息安全的基本模型。
安全传输技术有以下两个基本成分:
(1)消息的安全传输,包括对消息的加密和认证。
加密的目的是将消息搞乱让对手无法读懂,认证的目的是检查发送者的身份。
(2)通信双方共享的某些秘密信息,如加密密钥。
第三方的作用是负责向通信双方发布秘密信息或者在通信双方有争议时进行仲裁。
安全的网络通信必须考虑的4个方面。
(二)若干基本概念
2.密码学基本概念
密码学主要是研究通信安全保密的学科,包括两个分支:
密码编码学和密码分析学。
密码编码学主要研究对信息进行变换,以保护信息在信道的传递过程中不被他人窃取、解密和利用的方法。
密码分析学主要研究如何分析和破译密码
密码系统的组成:
密码系统由明文空间、密文空间、密码方案和密钥空间组成。
明文空间:
待加密的信息称为明文,明文的全体称为明文空间。
明文用M(Message)或P(PlainText)表示。
密文空间:
经过伪装后的明文,全体可能出现的密文的集合成为密文空间。
用C(Cipher)表示。
密码方案:
密码方案确切地描述了加密变换和解密变换的具体规则。
包括对明文进行加密时所使用的一组规则(加密算法)的描述,以及对密文进行还原时所使用的一组规则(解密算法)的描述。
密钥空间:
加密和解密算法的操作通常在称为密钥的元素(加密密钥和解密密钥)的控制下进行。
密钥的全体称为密钥空间。
用K表示
从数学角度来讲,一个密码系统是一族映射,它在密钥的控制下将明文空间中的每一个元素映射到密文空间上的某个元素。
这族映射由密码方案确定,具体使用哪一个映射由密钥决定。
二、古典密码学算法(Ⅰ)
【教学目的及要求】
要求学生了解并掌握:
流密码的基本概念;掌握线性反馈移位寄存器;了解非线性序列
【重点和难点】
重点:
线性反馈移位寄存器
难点:
线性反馈移位寄存器。
【教学方法】多媒体教学
【课时安排】2学时
【主要参考书】
《经典密码学与现代密码学》、《应用密码学教程》、《密码学原理和实践》
【课程主要内容】
本节是流密码,包括:
流密码的基本概念
线性反馈移位寄存器
非线性序列
(一)线性反馈移位寄存器
移位寄存器是流密码产生密钥流的一个主要组成部分。
GF
(2)上一个n级反馈移位寄存器由n个二元存储器与一个反馈函数f(a1,a2,…,an)组成,如图2.8所示。
图2.8GF
(2)上的n级反馈移位寄存器
每一存储器称为移位寄存器的一级,在任一时刻,这些级的内容构成该反馈移位寄存器的状态,每一状态对应于GF
(2)上的一个n维向量,共有2n种可能的状态。
每一时刻的状态可用n长序列a1,a2,…,an或n维向量(a1,a2,…,an)表示,其中ai是第i级存储器的内容。
初始状态由用户确定,当第i个移位时钟脉冲到来时,每一级存储器ai都将其内容向下一级ai-1传递,并根据寄存器此时的状态a1,a2,…,an计算f(a1,a2,…,an),作为下一时刻的an。
反馈函数f(a1,a2,…,an)是n元布尔函数,即n个变元a1,a2,…,an可以独立地取0和1这两个可能的值,函数中的运算有逻辑与、逻辑或、逻辑补等运算,最后的函数值也为0或1。
如果移位寄存器的反馈函数f(a1,a2,…,an)是a1,a2,…,an的线性函数,则称之为线性反馈移位寄存器LFSR(linearfeedbackshiftregister)。
此时f可写为f(a1,a2,…,an)=cna1⊕cn-1a2…⊕c1an
三、古典密码学算法(Ⅱ)
【教学目的及要求】
要求学生了解并掌握:
几种典型的古典密码体制;古典密码的统计分析
【重点和难点】
重点:
几种典型的古典密码体制
难点:
Playfair体制
【教学方法】多媒体教学
【课时安排】2学时
【主要参考书】
《经典密码学与现代密码学》、《应用密码学教程》、《密码学原理和实践》
【课程主要内容】
本节是古典密码学,包括:
几种典型的古典密码体制
古典密码的统计分析
(一)古典密码学的基本算法
加解密都是明密文集合上的数学变换,古典密码学立足于两类基本操作:
代换和置换。
基于这两类操作,产生了相应的古典代换密码:
移位加密、代换密码、仿射密码、维吉尼亚密码、希尔密码等古典加密算法等;和古典置换密码:
行置换加密、块置换加密等。
密码编码学和密码分析学是相辅相成的,所以需对古典密码学进行一定的密码分析。
基于语言中字符概率的密码分析以及各种古典加密算法对该种分析的抵抗性。
四、分组密码体制:
数论基础
【教学目的及要求】
要求学生了解并掌握与课程相关的数学知识。
【重点和难点】
重点:
模运算、欧拉定理、中国剩余定理。
难点:
乘法逆元。
【教学方法】多媒体教学
【课时安排】2学时
【主要参考书】
《经典密码学与现代密码学》、《应用密码学教程》、《密码学原理和实践》
【课程主要内容】
本节是数论简介,包括:
模运算
费尔玛定理和欧拉定理
中国剩余定理
(一)数论简介
密码学中的数论知识,密码学中常见的代数结构,完善保密性,熵理论概要。
需要让学生认识到基本密码学工具(如加解密算法)都是集合上的数学变换,而一般都是在某种代数结构上建立若干代数运算。
数论是密码学特别是公钥密码学的基本工具,本章主要介绍密码学中常用的一些数论知识。
1.素数和互素数
因子:
设a,b(b≠0)是两个整数,如果存在另一整数m,使得a=mb,则称b整除a,记为b|a,且称b是a的因子。
整数具有以下性质:
①a|1,那么a=±1。
②a|b且b|a,则a=±b。
③对任一b(b≠0),b|0。
④b|g,b|h,则对任意整数m、n有b|(mg+nh)。
素数
称整数p(p>1)是素数,如果p的因子只有±1,±p。
互素数
最大公因子定义:
称c是两个整数a、b的最大公因子,如果
①c是a的因子也是b的因子,即c是a、b的公因子。
②a和b的任一公因子,也是c的因子。
互素:
如果gcd(a,b)=1,则称a和b互素。
2.同余的定义及表示。
如果(amodn)=(bmodn),则称两整数a和b模n同余,记为a≡bmodn。
称与a模n同余的数的全体为a的同余类,记为[a],称a为这个同余类的表示元素。
注意:
如果a≡0(modn),则n|a。
(二)费尔玛定理和欧拉定理
1.费尔玛定理
定理4.2(Fermat)若p是素数,a是正整数且gcd(a,p)=1,则ap-1≡1modp。
2.欧拉函数
设n是一正整数,小于n且与n互素的正整数的个数称为n的欧拉函数,记为φ(n)。
例如:
φ(6)=2,φ(7)=6,φ(8)=4。
定理4.3若n是两个素数p和q的乘积,则φ(n)=φ(p)×φ(q)=(p-1)×(q-1)。
3.欧拉定理
若a和n互素,则aφ(n)≡1modn。
欧几里得算法
欧几里得(Euclid)算法是数论中的一个基本技术,是求两个正整数的最大公因子的简化过程。
而推广的Euclid算法不仅可求两个正整数的最大公因子,而且当两个正整数互素时,还可求出其中一个数关于另一个数的乘法逆元。
五、中国剩余定理
【教学目的及要求】
要求学生了解并掌握与课程相关的定理知识。
【重点和难点】
重点:
中国剩余定理。
【教学方法】多媒体教学
【课时安排】2学时
【主要参考书】
《经典密码学与现代密码学》、《应用密码学教程》、《密码学原理和实践》
【课程主要内容】
中国剩余定理是数论中最有用的一个工具,定理说如果已知某个数关于一些两两互素的数的同余类集,就可重构这个数。
定理4.5(中国剩余定理)设m1,m2,…,mk是两两互素的正整数,则一次同余方程组对模M有惟一解:
中国剩余定理提供了一个非常有用的特性,即在模M下可将非常大的数x由一组小数(a1,a2,…,ak)表达。
例4.5将973mod1813由模数分别为37和49的两个数表示。
解:
取x=973,M=1813,m1=37,m2=49。
由a1≡973modm1≡11,a2≡973modm3≡42得x在模37和模49下的表达为(11,42)。
六、Feistel网络结构
【教学目的及要求】
需要掌握数据加密标准与掌握分组密码的运行模式
【重点和难点】
重点:
Feistel网络结构。
【教学方法】多媒体教学
【课时安排】2学时
【主要参考书】
《经典密码学与现代密码学》、《应用密码学教程》、《密码学原理和实践》
【课程主要内容】
本章是分组密码体制包括:
Feistel网络结构
数据加密标准DES
分组密码的运行模式
(一)Feistel网络结构
基于Shannon的理论,可通过乘积密码原理来提高密码变换的复杂性和抗分析性;如果选取置换和代换作为乘积密码的基本单元,就必须采用分组密码。
将二者结合起来,就形成了分组密码学的基本结构:
SPN(代换-置换网)。
基于这一核心,HorstFeistel提出了一个目前分组密码学中最常见的结构,在这一结构基础上,产生了数据加密标准(DES)。
有两种常见的DES分析方法:
线性分析和差分分析。
两种分析方法都是应用DES中S-盒设计上的某些不均衡性造成的,所以有必要提出新的S-盒设计方法。
由于DES存在安全性问题,产生了高级加密标准(AES)。
线性密码分析和差分密码分析的工作原理。
AES的S-盒设计,它采用了一套完整的数学计算。
(二)分组密码概述
1.分组密码定义:
分组密码是将明文消息编码表示后的数字序列x0,x1,…,xi,…划分成长为n的组x=(x0,x1,…,xn-1),各组(长为n的矢量)分别在密钥k=(k0,k1,…,kt-1)控制下变换成等长的输出数字序列y=(y0,y1,…,ym-1)(长为m的矢量),其加密函数E:
Vn×K→Vm,Vn和Vm分别是n维和m维矢量空间,K为密钥空间
通常取m=n。
若m>n,则为有数据扩展的分组密码;若m2.分组密码和流密码的区别
(1)它与流密码不同之处在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是与一组长为n的明文数字有关。
在相同密钥下,分组密码对长为n的输入明文组所实施的变换是等同的,所以只需研究对任一组明文数字的变换规则。
这种密码实质上是字长为n的数字序列的代换密码。
(2)分组密码每次处理一个输入分组,相应地输出一个输出分组。
流密码则是连续地处理输入元素,每次输出一个元素。
(三)Feistel密码结构
首先明确输入为明文和密钥,输出为密文。
明文在输入时分为左右两半,密文是将输出的左右两半合并到一起产生的。
加密过程是n轮迭代变换,每轮结构相同,只是各轮子密钥彼此不同而且与K也不同
每轮迭代满足的规律,其第i轮迭代的输入为前一轮输出的函数:
Li=Ri-1
Ri=Li-1⊕F(Ri-1,Ki)
其中Ki是第i轮用的子密钥,由加密密钥K得到。
七、DES加密算法
【教学目的及要求】
掌握数据加密标准的运行步骤
【重点和难点】
重点:
DES加密算法。
难点:
S盒变换。
【教学方法】多媒体教学
【课时安排】2学时
【主要参考书】
《经典密码学与现代密码学》、《应用密码学教程》、《密码学原理和实践》
【课程主要内容】
(一)数据加密标准
数据加密标准(dataencryptionstandard,DES)是迄今为止世界上最为广泛使用和流行的一种分组密码算法,它的分组长度为64比特,密钥长度为56比特,它是由美国IBM公司研制的,是早期的称作Lucifer密码的一种发展和修改。
(二)DES描述
图3.5是DES加密算法的框图,其中明文分组长为64比特,密钥长为56比特。
图的左边是明文的处理过程,有3个阶段,首先是一个初始置换IP,用于重排明文分组的64比特数据。
然后是具有相同功能的16轮变换,每轮中都有置换和代换运算,第16轮变换的输出分为左右两半,并被交换次序。
最后再经过一个逆初始置换IP-1(为IP的逆)从而产生64比特的密文。
和Feistel密码一样,DES的解密和加密使用同一算法,但子密钥使用的顺序相反。
(二)二重DES
为了提高DES的安全性,并利用实现DES的现有软硬件,可将DES算法在多密钥下多重使用。
二重DES是多重使用DES时最简单的形式,如图3.8所示。
其中明文为P,两个加密密钥为K1和K2,密文为:
C=Ek2[Ek1[P]]
解密时,以相反顺序使用两个密钥:
P=Dk1[Dk2[C]]
因此,二重DES所用密钥长度为112比特,强度极大地增加。
八、置换和代换
【教学目的及要求】
掌握代换与置换的区别以及实现方法
【重点和难点】
迭代置换与代换
【教学方法】多媒体教学
【课时安排】2学时
【主要参考书】
《经典密码学与现代密码学》、《应用密码学教程》、《密码学原理和实践》
【课程主要内容】
(一)代换
代换法是将明文中的每个元素映射成另一个元素或者说将明文字母替换成其他字母,数字或符号的方法.如果把明文看做是二进制序列的话,那么代换就是用密文位串代替明文位串.如Casear密码,对字母表中每个字母用它之后的第三个字母来代换。
Casear密码是单表代换密码,Playfair是多表代换密码。
如果明文和密文的分组长为n比特,则明文的每一个分组都有2n个可能的取值.为使加密运算可逆(使解密运算可行),明文的每一个分组都应产生惟一的一个密文分组,这样的变换是可逆的,称明文分组到密文分组的可逆变换为代换..
下图表示n=4的代换密码的一般结构:
如果分组长度太小,系统则等价于古典的代换密码,容易通过对明文的统计分析而被攻破.这个弱点不是代换结构固有的,如果分组长度足够大,而且从明文到密文可有任意可逆的代换,那么明文的统计特性将被隐藏而使以上的攻击不能奏效.
(二)置换
另一种加密方法是将明文中的元素重新排列,这种技术称为置换密码.
最简单的例子是栅栏技术,按照对角线的顺序写入明文,而按行的顺序读出作为密文.
例如:
,用深度为2的栅栏技术加密信息“meetmeafterthetogaparty”,可写为
mematrhtgpry
etefeteoaat
加密后的信息是MEMATRHTGPRYETEFETEOAAT
九、公钥密码体制的基本原理
【教学目的及要求】
要求学生了解并掌握公钥密码体制的基本原理;理解RSA算法
【重点和难点】
重点:
RSA算法
【教学方法】多媒体教学
【课时安排】2学时
【主要参考书】
《经典密码学与现代密码学》、《应用密码学教程》、《密码学原理和实践》
【课程主要内容】
本章是公钥密码包括:
公钥密码体制的基本原理
RSA算法
背包密码体制
公钥密码学基于的基本原理是构造单向陷门函数。
可以有多种单向陷门函数来实现公钥密码。
基于素数分解的单向性再加上陷门信息就形成了RSA公钥密码算法。
基于求解离散对数的单向型再加上陷门信息就形成了ElGamal公钥密码算法,如果离散对数问题作用在椭圆曲线群上,就形成了椭圆曲线加密算法(ECC)。