波雷費密碼 Playfair Cipher 及 希爾密碼 Hill Cipher 原理簡述
本篇可以看做是以前“密碼史簡介(對稱加密以解密)”這篇的番外,附連結:
http://blog.csdn.net/jerry81333/article/details/52708379
波雷費密碼 Playfair Cipher:
1854年面世,曾在一戰時期被英軍所使用,二戰時期澳大利亞所使用(話說土澳這樣真的好嗎,人家德軍都是One-time-pad了、、、)
具體步驟:
1. 建立金鑰,或者說是5*5的金鑰矩陣:
a. 選取一個英文字作金鑰。除去重複出現的字母。將金鑰的字母逐個逐個加入5×5的矩陣內,剩下的空間將未加入的英文字母依a-z的順序加入。(將Q去除,或將I和J視作同一 字。)
b. 將要加密的訊息分成兩個一組。若組內的字母相同,將X(或Q)加到該組的第一個字母后,重新分組。若剩下一個字,也加入X字。
c. 在每組中,找出兩個字母在矩陣中的地方。
例如,取“playfair example”為金鑰,得到的金鑰矩陣如下圖所示:
2. 加密流程(3個條件):
a. 若兩個字母不在同一直行或同一橫列,在矩陣中找出另外兩個字母,使這四個字母成為一個長方形的四個角。
b. 若兩個字母在同一橫列,取這兩個字母右方的字母(若字母在最右方則取最左方的字母)。
c. 若兩個字母在同一直行,取這兩個字母下方的字母(若字母在最下方則取最上方的字母)。
例如,使用上例的金鑰加密“Hide the gold in the tree stump”,首先轉換成兩兩分組:
HI DE TH EG OL DI NT HE TR EX ES TU MP
更具上述金鑰及條件進行轉化,得到最終密文:
BM OD ZB XD NA BE KU DM UI XM MO UV IF
解密流程反之亦然。
希爾密碼 Hill Cipher:
古典密碼學中為數不多的能將字母頻率規律隱藏起來的一種加密方式,其本質其實十分簡單。
本質:
C = 密文,P = 明文,E = 加密操作,D = 解密操作,K = 金鑰(在這裡是多維矩陣)
C = E ( K , P ) = PK mod 26
P = D ( K , C ) = CK^-1 mod 26 = PKK^-1 = P
其本質就是運用了KK^-1 = 1的概念,至於mod 26是因為26個字母的緣故。
舉例:
加密:
解密:
優點:
1. 加密矩陣階數越大,破解所需難度也越大。
2.利用線性代數的乘法抵抗住了字元頻率的攻擊。
缺點:
1.線性變換的安全性很脆弱,易被攻擊擊破