說完了前面那些,想起個事,本系列依據內容主要來自《現代密碼學》馬春光編著。我就是學這本書的。學習
好了,古典密碼就是古時候的密碼,哈哈,逗你玩的,shannon的保密系統的通訊理論發表前的都是古典密碼,會在密碼學簡史中介紹這位牛人的。加密
學習古典密碼學的意義:學習設計原理和分析方法spa
古典密碼也是,倆門派:置換和代換,顧名思義,一個是換了個原來有的,一個是換了個原來沒有的。學術點講就是前者明文和密文空間同樣,後者 不同。你要是問我啥是明文空間和密文空間啊,我就呵呵。是M 和 C。m明文的集合,c密文的集合。對了明文有時候用p表示哦,plaintext。設計
置換密碼就是列置換和週期置換兩兄弟,倒序那個算撿來的吧。ip
列置換:顧名思義,操做及輸出都是以列爲單位。將明文以密鑰長度爲列數造成矩陣,按照密鑰的順序進行列選出,而後一列一列的輸出。ci
列置換密碼(距陣置換密碼)io
明文:ming chen jiu dian fa dong fan gongclass
密鑰: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也是對合運算。
古典密碼的統計分析:
單表代換密碼中明文的統計特性在密文中仍然體現,容易被破譯。加法和乘法知道一個密文對應的明文就完了,仿射強點,兩個。
統計字母出現頻率就是一種統計分析方法。依照正常字母頻率表逐個對照。