《密码学基础教学大纲设计完整版.doc》由会员分享,可在线阅读,更多相关《密码学基础教学大纲设计完整版.doc(38页珍藏版)》请在三一办公上搜索。
1、密码学基础课程教学大纲(课程代码:07310620)课程简介密码学基础是信息安全专业的一门技术基础课程,该课程的学习将为后续的信息安全课程打下基础,同时也为将来从事信息安全研究和安全系统的设计提供必要的基础。该课程主要讲授流密码(古典密码学)分组密码学、公钥密码学、密钥分配与管理、信息认证和杂凑算法、数字签名以及网络加密与认证等几个部分,在其中将学习各种加解密、散列函数、单向函数、签名模式及伪随机发生器等多种密码学工具,以及如何应用这些工具设计一个实现基本信息安全目标的系统(目前学时不够,没有安排)。基本密码学工具的掌握和应用这些工具构造安全服务就是本课程的基本目标。本课程具有如下特点:(一)
2、依赖很强的数学基础 本课程需要数论、近世代数、概率论、信息论、计算复杂性等数学知识作为学习的基础。这些数学基础的讲解既要体现本身的体系性,同时还要兼顾密码学背景。(二)可扩展性强 各种具体方法的学习不是本课程的最终目标,背后的基本原理以及应用这些原理设计新工具的能力才是本课程的最终目标。(三)课程内容复杂且涉及面广 由于密码学内容丰富,且包含许多复杂的知识点,所以本课程的讲授以线为主,即在基本主线的勾勒基础上对授课内容及复杂程度做出取舍。 本课程先修课程有:数据结构、近世代数、概率论、高等数学、高级语言程序设计等。后续课程有信息安全扫描技术、PKI技术、病毒学等专业课程。 课程教材选用国内信息
3、安全优秀教材杨波编著的现代密码学(清华大学出版社),同时参考国外优秀教材: 经典密码学与现代密码学,Richard Spillman,清华大学出版社、Douglas R. Stinson著,冯登国译的密码学原理和实践,电子工业出版社,2003年2月第二版。另外还向学生推荐国内的一些具有特色的操作系统教材如胡向东编写的应用密码学教程(电子工业出版社)等。实验教材选用自编的实验指导书,同时参考上海交大的“信息安全综合实验系统实验指导书”,除了这些教材之外,学校的图书馆为师生提供了相关的学术期刊和图书。课程教学体系:理论课程(34学时)课程实验(16学时)。达到从算法验证、综合设计、到创新应用知识的
4、逐步提高、全面培养的目的。相应的教学材料由教学大纲、实验大纲、实验指导书等。实践环节的实验条件有:计算机科学技术系的实验中心(实施课程实验)。课程教学安排 序号内容课时数备注一密码学概述2二古典密码学算法(一)2三古典密码学算法(二)2课后习题四 分组密码体制:数论基础2五中国剩余定理2六Feistel 网络结构2七DES加密算法2课后习题八置换和代换2九公钥密码体制的基本原理2十RSA算法2十一背包密码体制2课后习题十二DES算法实验2实验课十三3 DES算法实验2实验课十四单钥、公钥加密体制的密钥分配2十五密钥托管与消息认证码2十六杂凑函数2课后习题十七RSA算法实验4实验课十八数字签字原
5、理2十九密码认证协议2二十网络通信加密与PGP2二十一AES算法实验4实验课二十二MD5算法实验4实验课第一部分:理论课大纲【教学目的及要求】密码学基础是计算机信息安全中的核心课程,所以改专业的学生均需学习并掌握密码学的相关技术理论和工具方法,这是深入理解和从事有关信息安全行业工作的基础。因此密码学基础在信息安全专业课程中占有不可替代的地位。本课程的先修课程有数据结构、概率论、高等数学、高级语言程序设计等,学生应掌握程序设计、数据结构、编译原理和计算机组成等方面的基础知识,具有一定的独立编程能力。通过本课程学习培养学生动手能力,对密码学的原理、思想和算法都有清晰、深入的理解。让学生通过多个密码
6、算法的程序设计实现,更好地掌握密码算法设计的机理和方法。同时,基于密码系统设计的基本方法和基本步骤,帮助学生理解密码学在信息安全中的地位,并引导了解密码学领域及信息安全领域的新进展、新方向。掌握本课程后,可以为后期信息安全扫描技术、PKI技术、病毒学等课程的学习,以及网络安全的分析、设计与开发奠定坚实的专业基础。 通过本课程的学习各种加解密、散列函数、单向函数、签名模式及伪随机发生器等多种密码学工具,培养学生的实际动手能力和提高分析问题解决问题的能力,为学生今后从事各种实际工作,如设计、分析和改进各种加解密数据包提供必要的软件基础,以便能得心应手地用好和管好计算机,更好地完成各种计算机安全保密
7、任务以及如何应用这些工具设计一个实现基本信息安全目标的系统(目前学时不够,没有安排)。基本密码学工具的掌握和应用这些工具构造安全服务就是本课程的基本目标。【重点和难点】本课程的重点是:密码学中的数论知识,密码学中常见的代数结构,熵理论概要,加解密都是明密文集合上的数学变换:代换和置换、SPN(代换-置换网)。两种常见的DES分析方法:线性分析和差分分析手段。三种常见的信息认证方法:加密,消息认证码(MAC)和散列函数,常见的密码学协议,包括密钥分发、密钥协商、认证等内容。 难点有:移位加密、代换密码、维吉尼亚密码、希尔密码等古典加密算法与古典置换密码:行置换加密、块置换加密等。数据加密标准(D
8、ES)、S-盒设计方法、高级加密标准(AES)、 RSA公钥密码算法、ElGamal公钥密码算法、椭圆曲线加密算法(ECC)、背包加密算法、MD5散列算法等。【教学方法】在密码学基础教学中采用面授和多媒体教学手段相结合的方式进行。面授教学是教学相长、教学互动的最好的模式。采用这种教学相长的启发式教学方法,课堂上组织讨论,使课堂气氛活跃,学生的学习兴趣、能动性大大提高。实际教学中使用多媒体教学手段在教育多功能教室上课,进行实时的、多媒体、交互式的教学,以动画生动表现动态过程,以拟人手段讲解难点,提高学生学习兴趣。 密码学基础实验环境(软件)为上海交大的“信息安全综合实验系统平台”。学生利用这个实
9、验环境通过实践进一步掌握密码学领域的基本原理、基本思想及基本算法原理。使学生对密码系统设计和分析的基本方法和步骤形成一个清晰、全面的认识。【课时安排】课时安排(共50学时)序号 教 学 内 容讲授学时 试验学时(一) 第一章 引言 2(二) 第二章 流密码4(三) 第三章 分组密码体制86(四) 第四章 公钥密码 88(五) 第五章 密钥分配与密钥管理32(六) 第六章 消息认证与杂凑算法3(七)第七章 数字签字和密码协议4(八)第八章 网络加密与认证2【主要参考书】课程教材选用国内信息安全优秀教材杨波编著的现代密码学(清华大学出版社),同时参考国外优秀教材: 经典密码学与现代密码学,Rich
10、ard Spillman,清华大学出版社、Douglas R. Stinson著,冯登国译的密码学原理和实践,电子工业出版社,2003年2月第二版。另外还向学生推荐国内的一些具有特色的操作系统教材如胡向东编写的应用密码学教程(电子工业出版社)等。实验教材选用自编的实验指导书,同时参考上海交大的“信息安全综合实验系统实验指导书”,除了这些教材之外,学校的图书馆为师生提供了相关的学术期刊和图书。一、密码学概述【教学目的及要求】课前言;了解信息安全面临的威胁;了解信息安全的模型;了解密码学的基本概念【重点和难点】重点:密码学基本概念、术语【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码
11、学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】课前言:本章是引言,包括:信息安全面临的威胁 信息安全的模型 密码学基本概念 (一)密码学简介1.信息安全的模型信息安全的基本模型。安全传输技术有以下两个基本成分:(1)消息的安全传输,包括对消息的加密和认证。加密的目的是将消息搞乱让对手无法读懂,认证的目的是检查发送者的身份。(2)通信双方共享的某些秘密信息,如加密密钥。第三方的作用是负责向通信双方发布秘密信息或者在通信双方有争议时进行仲裁。安全的网络通信必须考虑的4个方面。(二)若干基本概念2.密码学基本概念密码学主要是研究通信安全保密的学科,包括两个分支:密码编码学和密码分析
12、学。密码编码学主要研究对信息进行变换,以保护信息在信道的传递过程中不被他人窃取、解密和利用的方法。密码分析学主要研究如何分析和破译密码密码系统的组成:密码系统由明文空间、密文空间、密码方案和密钥空间组成。明文空间:待加密的信息称为明文,明文的全体称为明文空间。明文用M(Message)或P(Plain Text)表示。密文空间:经过伪装后的明文,全体可能出现的密文的集合成为密文空间。用C(Cipher)表示。密码方案:密码方案确切地描述了加密变换和解密变换的具体规则。包括对明文进行加密时所使用的一组规则(加密算法)的描述,以及对密文进行还原时所使用的一组规则(解密算法)的描述。密钥空间:加密和
13、解密算法的操作通常在称为密钥的元素(加密密钥和解密密钥)的控制下进行。密钥的全体称为密钥空间。用K表示从数学角度来讲,一个密码系统是一族映射,它在密钥的控制下将明文空间中的每一个元素映射到密文空间上的某个元素。这族映射由密码方案确定,具体使用哪一个映射由密钥决定。二、古典密码学算法()【教学目的及要求】要求学生了解并掌握:流密码的基本概念;掌握线性反馈移位寄存器;了解非线性序列【重点和难点】重点:线性反馈移位寄存器难点:线性反馈移位寄存器。【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】本节是流密码,包括:流密码的基
14、本概念 线性反馈移位寄存器 非线性序列(一)线性反馈移位寄存器移位寄存器是流密码产生密钥流的一个主要组成部分。GF(2)上一个n级反馈移位寄存器由n个二元存储器与一个反馈函数f(a1,a2,an)组成,如图2.8所示。图2.8 GF(2)上的n级反馈移位寄存器每一存储器称为移位寄存器的一级,在任一时刻,这些级的内容构成该反馈移位寄存器的状态,每一状态对应于GF(2)上的一个n维向量,共有2n种可能的状态。每一时刻的状态可用n长序列a1,a2,an或n维向量 (a1,a2,an)表示,其中ai是第i级存储器的内容。初始状态由用户确定,当第i个移位时钟脉冲到来时,每一级存储器ai都将其内容向下一级
15、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(linear feedback shift register)。此时f可写为f(a1,a2,an)=cna1cn-1a2c1an三、古典密码学算法()【教学目的及要求】要求学生了解并掌握 :几种典型的古典密码体制;
16、古典密码的统计分析【重点和难点】重点:几种典型的古典密码体制难点:Playfair体制【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】本节是古典密码学,包括:几种典型的古典密码体制 古典密码的统计分析(一)古典密码学的基本算法加解密都是明密文集合上的数学变换,古典密码学立足于两类基本操作:代换和置换。基于这两类操作,产生了相应的古典代换密码:移位加密、代换密码、仿射密码、维吉尼亚密码、希尔密码等古典加密算法等;和古典置换密码:行置换加密、块置换加密等。密码编码学和密码分析学是相辅相成的,所以需对古典密码学进行一定的密
17、码分析。 基于语言中字符概率的密码分析以及各种古典加密算法对该种分析的抵抗性。四、分组密码体制:数论基础【教学目的及要求】要求学生了解并掌握与课程相关的数学知识。【重点和难点】重点:模运算、欧拉定理、中国剩余定理。难点:乘法逆元。【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】本节是数论简介,包括:模运算 费尔玛定理和欧拉定理 中国剩余定理(一)数论简介密码学中的数论知识,密码学中常见的代数结构,完善保密性,熵理论概要。 需要让学生认识到基本密码学工具(如加解密算法)都是集合上的数学变换,而一般都是在某种代数结构上建
18、立若干代数运算。数论是密码学特别是公钥密码学的基本工具,本章主要介绍密码学中常用的一些数论知识。1.素数和互素数因子:设a,b(b0)是两个整数,如果存在另一整数m,使得a=mb,则称b整除a,记为b|a,且称b是a的因子。整数具有以下性质: a|1,那么a=1。 a|b且b|a,则a=b。 对任一b (b0),b|0。 b|g,b|h,则对任意整数m、n有b|(mg+nh)。素数称整数p(p1)是素数,如果p的因子只有1,p。互素数最大公因子定义:称c是两个整数a、b的最大公因子,如果 c是a的因子也是b 的因子,即c是a、b的公因子。 a和b的任一公因子,也是c的因子。互素:如果gcd(a
19、,b)=1,则称a和b互素。2.同余的定义及表示 。如果(a mod n)=(b mod n),则称两整数a和b模n同余,记为ab mod n。称与a模n同余的数的全体为a的同余类,记为a,称a为这个同余类的表示元素。注意: 如果a0(mod n),则n|a。(二)费尔玛定理和欧拉定理1.费尔玛定理定理4.2 (Fermat)若p是素数,a是正整数且gcd(a, p)=1,则ap-11 mod p。 2.欧拉函数设n是一正整数,小于n且与n互素的正整数的个数称为n的欧拉函数,记为(n)。例如: (6)=2 ,(7)=6 ,(8)=4。定理4.3 若n是两个素数p和q的乘积,则(n)=(p)(q
20、)=(p-1)(q-1)。3.欧拉定理若a和n互素,则a(n)1 mod n。欧几里得算法欧几里得(Euclid)算法是数论中的一个基本技术,是求两个正整数的最大公因子的简化过程。而推广的Euclid算法不仅可求两个正整数的最大公因子,而且当两个正整数互素时,还可求出其中一个数关于另一个数的乘法逆元。 五、中国剩余定理【教学目的及要求】要求学生了解并掌握与课程相关的定理知识。【重点和难点】重点:中国剩余定理。【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】中国剩余定理是数论中最有用的一个工具,定理说如果已知某个数关于
21、一些两两互素的数的同余类集,就可重构这个数。定理4.5(中国剩余定理) 设m1,m2,mk是两两互素的正整数,则一次同余方程组对模M有惟一解:中国剩余定理提供了一个非常有用的特性,即在模M下可将非常大的数x由一组小数(a1,a2,ak)表达。例4.5 将973 mod 1813由模数分别为37和49的两个数表示。解: 取x=973, M=1813, m1=37,m2=49。由a1973 mod m111,a2973 mod m342得x在模37和模49下的表达为(11,42)。六、Feistel 网络结构【教学目的及要求】需要掌握数据加密标准与掌握分组密码的运行模式【重点和难点】重点:Feis
22、tel 网络结构。【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】本章是分组密码体制包括:Feistel 网络结构 数据加密标准DES 分组密码的运行模式(一)Feistel 网络结构基于Shannon的理论,可通过乘积密码原理来提高密码变换的复杂性和抗分析性;如果选取置换和代换作为乘积密码的基本单元,就必须采用分组密码。将二者结合起来,就形成了分组密码学的基本结构:SPN(代换-置换网)。基于这一核心,Horst Feistel提出了一个目前分组密码学中最常见的结构,在这一结构基础上,产生了数据加密标准(DES)。
23、有两种常见的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:VnKVm,Vn和Vm
24、分别是n维和m维矢量空间,K为密钥空间通常取m=n。若mn,则为有数据扩展的分组密码;若mn,则为有数据压缩的分组密码。2.分组密码和流密码的区别(1)它与流密码不同之处在于输出的每一位数字不是只与相应时刻输入的明文数字有关,而是与一组长为n的明文数字有关。在相同密钥下,分组密码对长为n的输入明文组所实施的变换是等同的,所以只需研究对任一组明文数字的变换规则。这种密码实质上是字长为n的数字序列的代换密码。(2)分组密码每次处理一个输入分组,相应地输出一个输出分组。流密码则是连续地处理输入元素,每次输出一个元素。(三)Feistel密码结构首先明确输入为明文和密钥,输出为密文。明文在输入时分为左
25、右两半,密文是将输出的左右两半合并到一起产生的。加密过程是n轮迭代变换,每轮结构相同,只是各轮子密钥彼此不同而且与K也不同每轮迭代满足的规律,其第i轮迭代的输入为前一轮输出的函数:Li = Ri-1Ri = Li-1F (Ri-1,Ki)其中Ki是第i轮用的子密钥,由加密密钥K得到。七、DES加密算法【教学目的及要求】掌握数据加密标准的运行步骤【重点和难点】重点:DES加密算法。难点:S盒变换。【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】(一)数据加密标准数据加密标准(data encryption standa
26、rd, DES)是迄今为止世界上最为广泛使用和流行的一种分组密码算法,它的分组长度为64比特,密钥长度为56比特,它是由美国IBM公司研制的,是早期的称作Lucifer密码的一种发展和修改。(二)DES描述图3.5是DES加密算法的框图,其中明文分组长为64比特,密钥长为56比特。图的左边是明文的处理过程,有3个阶段,首先是一个初始置换IP,用于重排明文分组的64比特数据。然后是具有相同功能的16轮变换,每轮中都有置换和代换运算,第16轮变换的输出分为左右两半,并被交换次序。最后再经过一个逆初始置换IP-1(为IP的逆)从而产生64比特的密文。和Feistel密码一样,DES的解密和加密使用同
27、一算法,但子密钥使用的顺序相反。(二)二重DES为了提高DES的安全性,并利用实现DES的现有软硬件,可将DES算法在多密钥下多重使用。二重DES是多重使用DES时最简单的形式,如图3.8所示。其中明文为P,两个加密密钥为K1和K2,密文为:C=Ek2Ek1P解密时,以相反顺序使用两个密钥:P = Dk1Dk2C因此,二重DES所用密钥长度为112比特,强度极大地增加。 八、置换和代换【教学目的及要求】掌握代换与置换的区别以及实现方法【重点和难点】迭代置换与代换【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】(一)代
28、换 代换法是将明文中的每个元素映射成另一个元素或者说将明文字母替换成其他字母,数字或符号的方法.如果把明文看做是二进制序列的话,那么代换就是用密文位串代替明文位串.如Casear密码,对字母表中每个字母用它之后的第三个字母来代换。 Casear密码是单表代换密码,Playfair是多表代换密码。 如果明文和密文的分组长为n比特,则明文的每一个分组都有2n个可能的取值.为使加密运算可逆(使解密运算可行),明文的每一个分组都应产生惟一的一个密文分组,这样的变换是可逆的,称明文分组到密文分组的可逆变换为代换. 下图表示n=4的代换密码的一般结构: 如果分组长度太小,系统则等价于古典的代换密码,容易通
29、过对明文的统计分析而被攻破.这个弱点不是代换结构固有的,如果分组长度足够大,而且从明文到密文可有任意可逆的代换,那么明文的统计特性将被隐藏而使以上的攻击不能奏效.(二)置换另一种加密方法是将明文中的元素重新排列,这种技术称为置换密码.最简单的例子是栅栏技术,按照对角线的顺序写入明文,而按行的顺序读出作为密文.例如:,用深度为2的栅栏技术加密信息“meet me after the toga party”,可写为 m e m a t r h t g p r y e t e f e t e o a a t加密后的信息是MEMATRHTGPRYETEFETEOAAT九、公钥密码体制的基本原理【教学目
30、的及要求】要求学生了解并掌握公钥密码体制的基本原理;理解RSA算法【重点和难点】重点:RSA算法【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】本章是公钥密码包括:公钥密码体制的基本原理 RSA算法 背包密码体制公钥密码学基于的基本原理是构造单向陷门函数。可以有多种单向陷门函数来实现公钥密码。基于素数分解的单向性再加上陷门信息就形成了RSA公钥密码算法。基于求解离散对数的单向型再加上陷门信息就形成了ElGamal公钥密码算法,如果离散对数问题作用在椭圆曲线群上,就形成了椭圆曲线加密算法(ECC)。基于其它复杂问题,如
31、背包问题,可行成背包加密算法。本章还包含了对于各种公钥加密的基本密码分析及简单结论。 (一)公钥密码体制在公钥密码体制以前的整个密码学史中,所有的密码算法,都是基于代换和置换这两个基本工具。而公钥密码体制则为密码学的发展提供了新的理论和技术基础,一方面公钥密码算法的基本工具不再是代换和置换,而是数学函数;另一方面公钥密码算法是以非对称的形式使用两个密钥,两个密钥的使用对保密性、密钥分配、认证等都有着深刻的意义。可以说公钥密码体制的出现在密码学史上是一个最大的而且是惟一真正的革命。1产生背景公钥密码体制的概念是在解决单钥密码体制中最难解决的两个问题时提出的,这两个问题是密钥分配和数字签字。单钥密
32、码体制在进行密钥分配时(看第5章),要求通信双方或者已经有一个共享的密钥,或者可籍助于一个密钥分配中心。对第一个要求,常常可用人工方式传送双方最初共享的密钥,这种方法成本很高,而且还完全依赖信使的可靠性。第二个要求则完全依赖于密钥分配中心的可靠性。第二个问题数字签字考虑的是如何为数字化的消息或文件提供一种类似于为书面文件手书签字的方法。1976年W.Diffie和M.Hellman对解决上述两个问题有了突破,从而提出了公钥密码体制。2公钥密码体制的原理(1)加密原理公钥密码算法的最大特点是采用两个相关密钥将加密和解密能力分开,其中一个密钥是公开的,称为公开密钥,简称公开钥,用于加密;另一个密钥
33、是为用户专用,因而是保密的,称为秘密密钥,简称秘密钥,用于解密。因此公钥密码体制也称为双钥密码体制。算法有以下重要特性: 已知密码算法和加密密钥,求解密密钥在计算上是不可行的。(2)加密过程 要求接收消息的端系统,产生一对用来加密和解密的密钥。 端系统B将加密密钥(如图中的PKB)予以公开。另一密钥则被保密(图中的SKB)。 A要想向B发送消息m,则使用B的公开钥加密m。 B收到密文c后,用自己的秘密钥SKB解密。因为只有B知道SKB,所以其他人都无法对c解密。3)数字签字公钥加密算法不仅能用于加、解密,还能用于对发方A发送的消息m提供认证。用户A用自己的秘密钥SKA对m加密,表示为c=ESK
34、Am将c发往B。B用A的公开钥PKA对c解密,表示为m=DPKAc因为从m得到c是经过A的秘密钥SKA加密,只有A才能做到。因此c可当做A对m的数字签字。另一方面,任何人只要得不到A的秘密钥SKA就不能篡改m,所以以上过程获得了对消息来源和消息完整性的认证。十、RSA算法【教学目的及要求】要求学生了解并掌握RSA算法以及背包密码体制【重点和难点】重点:RSA算法,背包密码体制。【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】(一)RSA算法1密钥的产生(1)选两个保密的大素数p和q。(2)计算n=pq,(n)=(p-
35、1)(q-1),其中(n)是n的欧拉函数值。(3)选一整数e,满足1e(n),且gcd(n),e)=1。(4)计算d,满足de1 mod (n),即d是e在模(n)下的乘法逆元,因e与(n)互素,由模运算可知,它的乘法逆元一定存在。(5)以e,n为公开钥,d,n为秘密钥。2加密加密时首先将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log2n。然后对每个明文分组m,作加密运算: cme mod n3解密对密文分组的解密运算为: mcd mod n十一、背包密码体制【教学目的及要求】要求学生熟练利用背包密码体制加解密【重点和难点】重点:背包密码体制。【教学方法】多媒体教学【课
36、时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】(一)背包问题:设A=(a1,a2,an)是由n个不同的正整数构成的n元组,s是另一已知的正整数。背包问题就是从A中求出所有的ai,使其和等于s。其中A称为背包向量,s是背包的容积。例如,A=(43, 129, 215, 473, 903, 302, 561, 1165, 697, 1523),s=3231。由于3231=129+473+903+561+1165,所以从A中找出的满足要求的数有129、473、903、561、1165。原则上讲,通过检查A的所有子集,总可找出问题的解(如果有解的话
37、)。本例A的子集共有210=1024个(包括空集)。然而如果A中元素个数n很大,子集个数2n将非常大。如A中有300个元素,A的子集有2300。寻找满足要求的A的子集没有比穷搜索更好的算法,因此背包问题是NPC问题。如何由背包问题构造公钥密码体制由背包问题构造公钥密码体制同样是要构造一个单向函数f,将x(1x2n-1)写成长为n的二元表示0001,0010,0011,1111。上例中f(364) = f(0101101100) = 129+473+903+561+1165 = 3231。由f的定义可见,已知x很容易求f(x),但已知f(x)求x就是要解背包问题。当然在实际应用中,n不能太小,比
38、如说,至少为200。(二)背包公钥密码系统的实现方案用f对明文消息m加密时,首先将m写成二元表示,再将其分成长为n的分组(最后一个分组不够长的话,可在后面填充一些0),然后求每一分组的函数值,以函数值作为密文分组。超递增背包向量为使接收方能够解密,就需找出单向函数f(x)的陷门。为此需引入一种特殊类型的背包向量。已知s为背包容积,对A从右向左检查每一元素,以确定是否在解中。若san,则an在解中,令xn=1;若san,则an不在解中,令xn=0。下面令s, sai,知ABxk,所以t-1c mod k=ABx,是惟一的。十二、单钥、公钥加密体制的密钥分配【教学目的及要求】要求学生了解掌握单钥加
39、密体制的密钥分配;掌握公钥加密体制的密钥管理【重点和难点】重点:单钥加密体制的密钥分配,公钥加密体制的密钥管理【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】本章是密钥分配与密钥管理包括:单钥加密体制的密钥分配 公钥加密体制的密钥管理(一)密钥管理密码系统的强度也依赖于密钥分配技术。两个用户(主机、进程、应用程序)在用单钥密码体制进行保密通信时,首先必须有一个共享的秘密密钥,而且为防止攻击者得到密钥,还必须时常更新密钥。因此,密码系统的强度也依赖于密钥分配技术。1两个用户A和B获得共享密钥的方法(1)密钥由A选取并通
40、过物理手段发送给B。(2)密钥由第三方选取并通过物理手段发送给A和B。 (3)如果A、B事先已有一密钥,则其中一方选取新密钥后,用已有的密钥加密新密钥并发送给另一方。(4)如果A和B与第三方C分别有一保密信道,则C为A、B选取密钥后,分别在两个保密信道上发送给A、B。2密钥分配方法中存在的问题前两种方法称为人工发送。在通信网中,若只有个别用户想进行保密通信,密钥的人工发送还是可行的。然而如果所有用户都要求支持加密服务,则任意一对希望通信的用户都必须有一共享密钥。如果有n个用户,则密钥数目为n(n-1)/2。因此当n很大时,密钥分配的代价非常大,密钥的人工发送是不可行的。对于第3种方法,攻击者一
41、旦获得一个密钥就可获取以后所有的密钥;而且用这种方法对所有用户分配初始密钥时,代价仍然很大。第4种方法比较常用,其中的第三方通常是一个负责为用户分配密钥的密钥分配中心。这时每一用户必须和密钥分配中心有一个共享密钥,称为主密钥。通过主密钥分配给一对用户的密钥称为会话密钥,用于这一对用户之间的保密通信。通信完成后,会话密钥即被销毁。如上所述,如果用户数为n,则会话密钥数为n(n-1)/2。但主密钥数却只需n个,所以主密钥可通过物理手段发送。十三、密钥托管与消息认证码【教学目的及要求】要求学生了解美国国家安全局的密钥托管系统与机制【重点和难点】重点:公钥加密体制的密钥管理【教学方法】多媒体教学【课时
42、安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践【课程主要内容】(一)密钥托管补充:密钥托管就是将专用密钥存放在一个高度可信的企业或机构那里以防万一它们丢失或因其它原因需要恢复。我们举一人个日常生活中的例子来说明这个问题。用户可以将钥匙存放在附近的警察局里,这样一旦丢失了钥匙他就可以到警察那里找钥匙开门,或者是如果警察觉得有必要的话他们也可以进入你的房子。既然你将密钥放到另一个机构那里去保存,这个机构就必须是非常可信的。密钥托管也叫作密钥恢复。 密钥托管加密技术提供了一个备用的解密途径,政府机构在需要时,可通过密钥托管技术解密用户的信息,而用户的密钥若丢失或损坏,也可通过密钥托管技术恢复自己的密钥。所以这个备用的手段不仅对政府有用,而且对用户自己也有用。1美国托管加密标准简介1993年4月,美国政府为了满足其电信安全、公众安全和国家安全,提出了托管加密标准EES(escrowed encryption standard)。十四、杂凑函数【教学目的及要求】要求学生掌握消息认证码的含义;比较杂凑函数的输出【重点和难点】重点:消息认证码、杂凑函数难点:杂凑函数【教学方法】多媒体教学【课时安排】2学时【主要参考书】经典密码学与现代密码学、应用密码学教程、密码学原理和实践