资源描述:
《第2章古典密码学》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第1章密码学概述第2章古典密码技术第3章分组密码第4章公钥密码体制第5章散列函数与消息鉴别第6章数字签名技术第7章密钥管理技术第8章身份鉴别技术第9章序列密码第10章密码技术应用课程主要内容第2章古典密码技术本章主要内容替代密码置换密码周期置换密码列置换密码转轮机密码古典密码的统计分析单表替代密码分析多表替代密码分析对Hill密码的已知明文分析第2章古典密码技术2.1替代密码替代是古典密码中用到的最基本的处理技巧之一;替代密码是指先建立一个替换表,加密时将需要加密的明文依次通过查表,替换为相应的字符,明文字符被逐个替换后,生成无任何意义的字符串,即密文,替代密
2、码的密钥就是其替换表;根据密码算法加解密时使用替换表多少的不同,替代密码又可分为单表替代密码和多表替代密码。单表替代密码的密码算法加解密时使用一个固定的替换表;多表替代密码的密码算法加解密时使用多个替换表。第2章古典密码技术2.1.1单表替代密码单表替代密码对明文中的所有字母都使用一个固定的映射(明文字母表到密文字母表)。设A={a0,a1,…,an-1}为包含了n个字母的明文字母表;B={b0,b1,…,bn-1}为包含n个字母的密文字母表,单表替代密码使用了A到B的映射关系:f:A→B,f(ai)=bj一般情况下,f是一一映射,以保证加密的可逆性。加密变换
3、过程就是将明文中的每一个字母替换为密文字母表的一个字母。而单表替代密码的密钥就是映射f或密文字母表。经常密文字母表与明文字母表的字符集是相同的,这时的密钥就是映射f。下面给出几种典型的单表替代密码。第2章古典密码技术一般单表替代密码一般单表替代密码的原理是以26个英文字母集合上的一个置换π为密钥,对明文消息中的每个字母依次进行变换。可描述为:明文空间M和密文空间C都是26个英文字母的集合,密钥空间K={π:Z26→Z26
4、π是置换},是所有可能置换的集合。对任意π∈K,定义:加密变换:eπ(m)=π(m)=c解密变换:dπ(c)=π-1(c)=m,π-1是π的
5、逆置换。【例2.1】设置换π的对应关系如下:abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnm试用单表替代密码以π为密钥对明文消息message加密,然后写出逆置换,并对密文解密。解:以π为密钥用单表替代密码对明文消息message加密,所得密文消息为:π(m)π(e)π(s)π(s)π(a)π(g)π(e)=dtllqut2.1.1单表替代密码(续)第2章古典密码技术一般单表替代密码算法特点:密钥空间K很大,
6、K
7、=26!=4×1026,破译者穷举搜索计算不可行,1微秒试一个密钥,遍历全部密钥需要1013
8、年。移位密码体制是替换密码体制的一个特例,它仅含26个置换做为密钥空间。密钥π不便记忆。针对一般替换密码密钥π不便记忆的问题,又衍生出了各种形式单表替代密码。移位密码明文空间M、密文空间C都是和密钥空间K满足即把26个英文字母与整数0,1,2,…,25一一对应,如表2.1所示。2.1.1单表替代密码(续)表2.1字母数字映射表第2章古典密码技术加密变换,E={E:Z26→Z26,Ek(m)=m+k(mod26)
9、m∈M,k∈K}解密变换,D={D:Z26→Z26,Dk(c)=c-k(mod26)
10、c∈C,k∈K}解密后再把Z26中的元素转换英文字母。显然,移位
11、密码是前面一般单表替代密码的一个特例。当移位密码的密钥k=3时,就是历史上著名的凯撒密码(Caesar)。根据其加密函数特点,移位密码也称为加法密码。仿射密码仿射密码也是一般单表替代密码的一个特例,是一种线性变换。仿射密码的明文空间和密文空间与移位密码相同,但密钥空间为K={(k1,k2)
12、k1,k2∈Z26,gcd(k1,26)=1}对任意m∈M,c∈C,k=(k1,k2)∈K,定义加密变换为c=Ek(m)=k1m+k2(mod26)相应解密变换为:m=Dk(c)=k1-1(c-k2)(mod26)2.1.1单表替代密码(续)第2章古典密码技术相应解密变换为
13、:其中,。很明显,k1=1时即为移位密码,而k2=1则称为乘法密码。【例2.3】设明文消息为china,密钥试用仿射密码对其进行加密,然后再进行解密。解:利用扩展的欧几里德算法(参见附录A.1.2)可计算出加密变换为:解密变换为:明文消息对应的数字依次为2,7,8,13,0,用仿射密码对明文进行加密如下:2.1.1单表替代密码(续)第2章古典密码技术密文消息为unwpc。而解密过程如下:即恢复明文消息为china。仿射密码要求(k1,26)=1,否则就会有多个明文字母对应一个密文字母的情况。由于与26互素的整数有12个,故仿射密码密钥空间大小为
14、K
15、=12×2
16、6=312。若将仿射密码的加密函数换为