说完了前面那些,想起个事,本系列依据内容主要来自《现代密码学》马春光编著。我就是学这本书的。
好了,古典密码就是古时候的密码,哈哈,逗你玩的,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+Kimod n,其中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也是对合运算。
古典密码的统计分析:
单表代换密码中明文的统计特性在密文中仍然体现,容易被破译。加法和乘法知道一个密文对应的明文就完了,仿射强点,两个。
统计字母出现频率就是一种统计分析方法。依照正常字母频率表逐个对照。