说完了前面那些,想起个事,本系列依据内容主要来自《现代密码学》马春光编著。我就是学这本书的。
好了,古典密码就是古时候的密码,哈哈,逗你玩的,shannon的保密系统的通信理论发表前的都是古典密码,会在密码学简史中介绍这位牛人的。
学习古典密码学的意义:学习设计原理和分析方法
古典密码也是,俩门派:置换和代换,顾名思义,一个是换了个原来有的,一个是换了个原来没有的。学术点讲就是前者明文和密文空间一样,后者 不一样。你要是问我啥是明文空间和密文空间啊,我就呵呵。是M 和 C。m明文的集合,c密文的集合。对了明文有时候用p表示哦,plaintext。
置换密码就是列置换和周期置换两兄弟,倒序那个算捡来的吧。
列置换:顾名思义,操作及输出都是以列为单位。将明文以密钥长度为列数形成矩阵,按照密钥的顺序进行列选出,然后一列一列的输出。
列置换密码(距阵置换密码)
明文:ming chen jiu dian fa dong fan gong
密钥:yu lan hua
去掉密钥重复字母:yulanh,得出距阵列数为6;将明文按行填充距阵。
得到密钥字母顺序: 653142;
按列(依顺序)写出距阵中的字母。
密文:giffg hddn0 njngn cuaa0 inano meiog
解密:加密的逆过程;
周期置换:其实就是在列置换的基础上,进行行输出。
周期置换密码
– 明文:mingchen jiu dian fa dong fan gong
– 加密密钥:3421(i=1,2,3,4的一个置换f (i) =3,4,2,1)
– 加密:将明文分组(4个字母一组),然后根据规定顺序变换
– ming chen jiud ianf adon gfan gong
– ngim enhc udij nfai onda anfg ngog
– 密文:ngimenhcudijnfaiondaanfgngog
– 解密密钥:4312(3412的逆置换)
没啥说的,直接来代换密码:
也是两个流派,单表替换和多表替换。
单表代换密码:一个密文字母表。加法密码(著名的凯撒密码就是)乘法密码和仿射密码。
主要说下仿射密码
f(mi)=ci=mj,j=k1i+k2 mod n ,i,ki,k2{0,1,...,n-1}
多表代换密码:多个密文字母表。Vigenere密码,Playfair密码和hill密码
主要说下Vigenere密码
Vigenere密码是周期代替密码
当周期为1时,就是单表代替密码(加法密码)。
用户钥:有限序列k =(k1,k2,…,kd)
工作钥:无限序列K=(K1,K2,…,Ki,…) ,是用户钥的
周期性(周期为d)扩展,即
Ki=ki mod d ,i =1,2,3,…
明文:M=m1m2…mi…ml
密文:C=c1c2…ci…cl
工作钥:K=K1K2…Ki…Kl
加密:ci=mi+Kimodn,其中n为明文字母表的长度
例:用户钥为cat,对明文“vigenere cipher”加密
M: v i g e n e r e c i p h e r
C: x i z g n x t e v k p a g r
此例n=26;c:2,a:0,t:19
代数密码:vernam密码
模2加运算,为什么提这个密码呢,因为他有个特点,就是加密和解密变换相同,称为对合运算。加密时是模2加,解密时也是与密钥模2加。著名的DES也是对合运算。
古典密码的统计分析:
单表代换密码中明文的统计特性在密文中仍然体现,容易被破译。加法和乘法知道一个密文对应的明文就完了,仿射强点,两个。
统计字母出现频率就是一种统计分析方法。依照正常字母频率表逐个对照。
字母频率分析法对单表代换算法最有效。原因如上
hill密码算法抵抗频率分析攻击能力最强,而对已知明文攻击最弱。hill密码是广义仿射密码,就是变换矩阵。
重合指数法对单表代换密码算法的破解最有效。
|
单表代换 |
多表代换 |
基本思想 |
明文消息中相同的字母,在加密时都是用同一固定的字母代换。
|
明文消息中出现的同一个字母,在加密时不是完全被同一个固定的字母代换而是根据其出现的位置次序用不同的字母代换。 |
优点 |
破译难度稍高,密钥更改便捷,增加了单表代换密码体制的灵活性。 |
多表代换密码的破译则相对复杂,因为明文的统计特性通过多个表的平均作用而而被隐藏起来了,能更好的抵抗明文分析。 |
缺点 |
通过统计分析地方法很容易破解。
|
Hill密码体制,可能抵抗不了已知明文攻击。 |