《密码学基础》课件第1章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《密码学基础》课件第1章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码学基础 密码学 基础 课件
- 资源描述:
-
1、1.1 密码学的基本概念 1.2 几种典型的古典密码体制 1.3 古典密码的统计分析 习题 1.1 密码学的基本概念密码学的基本概念密码学有着悠久而神秘的历史,人们很难对密码学的起始时间给出准确的定义。一般认为人类对密码学的研究与应用已经有几千年的历史,该学科一直广泛应用于军事领域。密码学正式作为一门科学的理论基础应该首推1949年美国科学家Shannon的一篇文章保密通信的信息理论,他在研究保密机的基础上,提出了将密码建立在解某个已知数学难题基础上的观点。20世纪70年代,以公钥密码体制的提出和数据加密标准DES的问世为标志,现代密码学开始蓬勃发展。随着计算机技术和网络技术的发展,互联网的普
2、及和网上业务的大量开展,人们更加关注密码学,更加依赖密码技术。保密是密码学的核心。密码学的基本目的是面对攻击者Oscar,在被称为Alice和Bob的通信双方之间应用不安全的信道进行通信时,设法保证通信安全。密码学研究对通信双方要传输的信息进行何种保密变换以防止未被授权的第三方对信息的窃取。此外,密码技术还可以用来进行信息鉴别、数据完整性检验、数字签名等。在通信过程中,Alice和Bob也分别被称为信息的发送方和接收方。Alice要发送给Bob的信息称为明文(Plaintext)。为了保证信息不被未经授权的Oscar识别,Alice需要使用密钥(Key)对明文进行加密,加密得到的结果称为密文(
3、Ciphertext)。密文一般是不可理解的,Alice将密文通过不安全的信道发送给Bob,同时通过安全的通信方式将密钥发送给Bob。Bob在接收到密文和密钥的基础上,可以对密文进行解密,从而获得明文;对于Oscar,他可能会窃听到信道中的密文,但由于无法得到加密密钥,因此无法知道相应的明文。图1-1给出了保密通信的一般机制。根据加密和解密过程所采用密钥的特点可以将加密算法分为两类:对称加密算法和公开密钥加密算法。图1-1 保密通信的一般机制对称加密算法也称为传统加密算法,是指解密密钥与加密密钥相同或者能够从加密密钥中直接推算出解密密钥的加密算法。通常在大多数对称加密算法中解密密钥与加密密钥是
4、相同的,所以这类加密算法要求Alice和Bob在进行保密通信前,通过安全的方式商定一个密钥。对称加密算法的安全性依赖于密钥的选择。公开密钥加密算法也称为公钥加密算法,是指用来解密的密钥不同于进行加密的密钥,也不能够通过加密密钥直接推算出解密密钥的加密算法。一般情况下,加密密钥是可以公开的,任何人都可以应用加密密钥来对信息进行加密,但只有拥有解密密钥的人才可以解密出被加密的信息。在以上过程中,加密密钥称为公钥,解密密钥称为私钥。在图1-1所示的保密通信机制中,为了在接收端能够有效地恢复出明文信息,要求加密过程必须是可逆的。从上述图示可见,加密方法、解密方法、密钥和消息(明文、密文)是保密通信中的
5、几个关键要素,它们构成了相应的密码体制。定义定义1.1.1 密码体制 密码体制的构成包括以下要素:(1)M:明文消息空间,表示所有可能的明文组成的有限集。(2)C:密文消息空间,表示所有可能的密文组成的有限集。(3)K:密钥空间,表示所有可能的密钥组成的有限集。(4)E:加密算法集合。(5)D:解密算法集合。该密码体制应该满足的基本条件是:对任意的keyK,存在一个加密规则ekeyE和相应的解密规则dkeyD,使得对任意的明文xM,ekey(x)C且dkey(ekey(x)=x。在以上密码体制的定义中,最关键的条件是加密过程ekey的可逆性,即密码体制不仅能够对明文x应用ekey进行加密,而且
6、应该可以使用相应的dkey对得到的密文进行解密,从而恢复出明文。显然,密码体制中的加密函数ekey必须是一个一一映射。要避免出现在加密时x1x2,而对应的密文ekey(x1)=ekey(x2)=y的情况,否则在解密过程无法准确确定密文y对应的明文x。古典密码是密码学的渊源,虽然古典密码都比较简单而且容易破译,但研究古典密码的设计原理和分析方法对于理解、设计以及分析现代密码技术是十分有益的。本节介绍几种典型的古典密码体制。1.2.1 棋盘密码棋盘密码棋盘密码是公元前2世纪前后由希腊人提出来的,在当时得到了广泛的应用。棋盘密码通过将26个英文字母设法变成十位数来达到加密的目的。棋盘密码的密钥是一个
7、55的棋盘,将26个英文字母放置在里面,其中字母i和j被放在同一个方格中,如下表所示:1.2 几种典型的古典密码体制几种典型的古典密码体制在给定了字母排列结果的基础上,每一个字母都会对应一个数字,其中是该字母所在行的标号,是该字母所在列的标号。通过设计的棋盘就可以对英文消息进行加密,如u对应的是22,f对应的是34。例例1.1 如果明文消息是Information Security则相应的密文序列是23 54 34 24 14 55 31 15 23 24 54 32 13 51 22 14 23 15 21解密过程应用相同的棋盘排列,根据密文给出的字母所在位置来恢复相应的明文消息。棋盘密码的
8、任一个密钥是25个英文字母(将字母i和j看成一个字母)在55的棋盘里的一种不重复排列。由于所有可能的排列有25!种,因此棋盘密码的密钥空间大小为25!。所以,对于棋盘密码,如果采用密钥穷举搜索的方法进行攻击,计算量会相当大。1.2.2 移位密码移位密码移位密码的加密对象为英文符号。移位密码采用每一字母向前推移key位的方式实现加密。换句话说,移位密码实现了26个英文字母的循环移位。由于英文字符有26个字母,因此可以在英文字母表和Z26=0,1,26之间建立一一对应的映射关系。当取密钥key=3时,得到的移位密码称为凯撒密码,因为该密码体制首先被Julius Caesar所使用。定义定义1.2.
9、1 移位密码体制 令M=C=K=Z26。对任意的keyZ26,xM,yC,定义ekey(x)=(x+key)mod26dkey(y)=(y-key)mod26在使用移位密码体制对英文符号进行加密之前,首先需要在26个英文字母与Z26中的元素之间建立一一对应关系,然后应用以上密码体制进行相应的加密计算和解密计算。例例1.2 设移位密码的密钥为key=7,英文字符与Z26中的元素之间的对应关系如下表所示:假设明文为ENCRYPTION,则加密过程如下:首先将明文根据对应关系表映射到Z26,得到相应的整数序列04 13 02 17 24 15 19 08 14 13然后将每个数字与7相加,同时对26
10、进行取模运算,得到11 20 09 24 05 22 00 15 21 20最后再应用对应关系表将以上数字转化成英文字符,即得相应的密文为LUJYFWAPVU解密是加密的逆过程。首先应用对应关系表将密文转化成数字,再将每个数字减去7后和26进行取模运算,对计算结果使用原来的对应关系表即可还原成英文字符,从而解密出相应的明文。移位密码的加密和解密过程都是循环移位运算,由于26个英文字母顺序移位26次后还原,因此移位密码的密钥空间大小为25。1.2.3 代换密码代换密码26个英文字母和Z26的元素之间可以建立一个一一对应关系,于是Z26上的任一个置换也就对应了26个英文字母表上的一个置换。因此可以
11、借助Z26上的置换来改变英文字符的原有位置,以达到加密的目的,Z26上的置换看成了加密所需的密钥。这样可以将加密和解密过程直接看做是对英文字母表进行了置换变换。定义定义1.2.2 代换密码体制 令M=C=Z26,K是Z26上所有可能置换构成的集合。对任意的置换K,xM,yC,定义 e(x)=(x)d(y)=-1(y)这里和-1互为逆置换。例例1.3 设置换如下:其中大写字母为明文字符,小写字母为密文字符。根据以上对应关系,置换对应的逆置换-1为假设明文为ENCRYPTION,则相应的密文为tfeknhzogf。代换密码的任一个密钥都是26个英文字母的一种置换。由于所有可能的置换有26!种,因此
12、代换密码的密钥空间大小为26!。所以,对代换密码如果采用密钥穷举搜索的方法进行攻击,计算量会相当大。1.2.4 维吉尼亚密码维吉尼亚密码前面介绍的移位密码和代换密码体制中,一旦加密密钥被选定,则英文字母表中每一个字母对应的数字都会被加密成惟一的一个密文数字。这种密码体制被称为单表代换密码。本小节介绍一种多表代换密码维吉尼亚密码(Vigenre Cipher),它是由法国人Blaise de Vigenre在16世纪提出的。定义定义1.2.3 维吉尼亚密码体制维吉尼亚密码体制 令m是一个正整数,相应地定义M=C=K=(Z26)m。对任意的密钥key=(k1,k2,km)K,(x1,x2,xm)M
13、,(y1,y2,ym)C,定义ekey(x1,x2,xm)=(x1+k1,x2+k2,xm+km)mod 26dkey(y1,y2,ym)=(y1-k1,y2-k2,ym-km)mod 26如果已经在26个英文字母和Z26之间建立了一一对应的关系,则每一个密钥keyK都相当于一个长度为m的字母串,被称为密钥字。例例1.4 令m=8,密钥字为Computer,则根据例1.2中的对应关系可知,密钥字对应的数字序列为key=(02,14,12,15,20,19,04,17)。假设明文消息为Block cipher design principles加密过程首先将明文字符串对应为数字,每8个分为一组,
14、使用密钥字对分组明文消息进行模26下的加密运算,加密过程如下所示:所以相应的密文序列为Dzarevmgjsdsylmxpddxhvmgnse解密过程使用相同的密钥字,进行相应的逆运算即可。维吉尼亚密码的密钥空间大小为26m,所以即使m的值较小,相应的密钥空间也会很大。在维吉尼亚密码体制中,一个字母可以被映射为m个字母中的某一个,这样的映射关系也比单表代换密码更为安全一些。1.2.5 仿射密码仿射密码仿射密码是代换密码的一个特例。仿射密码的密码体制定义如下。定义定义1.2.4 仿射密码体制令M=C=Z26,K=(k1,k2)Z26Z26:gcd(k1,26)=1。对任意的密钥key=(k1,k2
15、)K,xM,yC,定义ekey(x)=(k1x+k2)mod 26dkey(y)=(y-k2)mod 26其中,表示k1在Z26中的乘法逆,gcd(k1,26)=1表示k1与26互素。根据数论中的相关结论,当且仅当gcd(k1,26)=1时,同余方程y(k1x+k2)mod 26有惟一解x。当k1=1时,仿射密码变成了移位密码。11k11k例例1.5 设已知仿射密码的密钥k=(11,3),则可知11-1 mod 26=19。假设明文为13,那么相应的密文为y=(113+3)mod 26=16解密过程为x=19(16-3)mod 26=13在Z26中,满足条件gcd(k1,26)=1的k1只有1
16、2个值(它们分别是1,3,5,7,9,11,15,17,19,21,23,25),因此仿射密码的密钥空间大小为1226=312。有关元素的乘法逆的具体计算方法,本书在附录中给出了详细的计算过程。对于Z26中与26互素的元素,相应的乘法逆为1-1 mod 26=13-1 mod 26=95-1 mod 26=217-1 mod 26=1511-1 mod 26=1917-1 mod 26=2325-1 mod 26=25上面给出的Z26上与26互素的元素逆元结论很容易通过乘法逆的定义进行验证,如1119=2091 mod 26。1.2.6 置换密码置换密码前面几小节介绍的加密方式的共同特点是通过
17、将英文字母改写成另一个表达形式来达到加密的效果。本节介绍另一种加密方式,通过重新排列消息中元素的位置而不改变元素本身的方式,对一个消息进行变换。这种加密机制称为置换密码(也称为换位密码)。置换密码是古典密码中除代换密码外的重要一类,它被广泛应用于现代分组密码的构造。定义定义1.2.5 置换密码体制 令m2是一个正整数,M=C=(Z26)m,K是Zm=1,2,m上所有可能置换构成的集合。对任意的(x1,x2,xm)M,K,(y1,y2,ym)C,定义其中,和-1互为Zm上的逆置换,m称为分组长度。对于长度大于分组长度m的明文消息,可对明文消息先按照长度m进行分组,然后对每一个分组消息重复进行同样
18、的置乱加密过程。),(),()(1)2(1)1(121mmyyyyyyd),(),()()2()1(21mmxxxxxxe例例1.6 令m=4,=(1),(2),(3),(4)=(2,4,1,3)。假设明文为Information security is important加密过程首先根据m=4,将明文分为6个分组,每个分组4个字符。Info rmat ions ecur ityi simp orta nt然后应用置换变换加密成下面的密文:noif mtra osin creu tiiy ipsm raot tn解密密钥为-1=(1)-1,(2)-1,(3)-1,(4)-1)=(3,1,4,2
19、)在以上加密过程中,首先应用给定的分组长度m对消息序列进行分组,当消息长度不是分组长度的整数倍时,可以在最后一段分组消息后面添加足够的特殊字符,从而保证能够以m为消息分组长度。例1.6中,我们在最后的分组消息tn后面增加了2个空格,以保证分组长度的一致性。对于固定的分组长度m,Zm上共有m!种不同的排列,所以相应的置换密码共有m!种不同的密钥。应注意的是,置换密码并未改变密文消息中英文字母的统计特性,所以置换密码对于抗频度分析技术来说是不安全的。1.2.7 Hill密码密码置换密码的主要思想体现在“分组置换”,置换方式过于简单会使其安全性不高。为了进一步增加安全性,1929年Hill提出了一种
20、多表代换密码Hill密码。该算法保留了置换密码的加密框架,所不同的是将分组后的每个部分采用线性变换的方式得到密文。即将明文消息按照步长m进行分组,对每一组的m个明文字母通过线性变换将其转换成m个相应的密文字母。这样密钥由一个较为简单的排列问题改变成较为复杂的mm阶可逆矩阵。在使用Hill密码前,首先将英文的26个字母和数字126按自然顺序进行一一对应以方便处理。定义定义1.2.6 Hill密码体制 令m2是一个正整数,M=C=(Z26)m,K 是定义在Z26上的所有大小为mm的可逆矩阵的集合。对任意的A K,定义eA(x)=xA mod 26dA(y)=yA-1 mod 26例例1.7 令m=
21、4,密钥为则相应的Z26上的逆矩阵为明文为Hill4116109485105965968A25222252562021181121520231A将以上明文转换成对应的数字序列7 8 11 11根据密钥A 可知,相应的密文为于是相应的密文序列为Ytix 2381924 26mod41161094851059659681111874321yyyy已知密文消息和密钥A 的逆矩阵A-1,根据Hill密码体制的定义,对应的解密过程如下:于是相应的明文消息为Hill。通过例1.7可以发现,Hill密码对于相同的明文字母,可能有不同的密文字母与之对应。一般情况下,Hill密码能够较好地抵御基于字母出现频率的
展开阅读全文