2014年11月13日 星期四

古典密碼學

索引 #1.加密工具
  • 密碼棒
  • 卡爾達諾漏格板
  • 旋轉機
  • 一次性密碼本
#2.加密算法
  • 凱撒密碼
  • 希爾密碼
  • 路由加密
  • 單字母替換密碼
  • 維吉尼雅密碼
#3.攻擊類型 
  • 僅知密文攻擊
  • 已知明文攻擊
  • 選擇明文攻擊

加密工具 #1.密碼棒
取布條將其纏繞於木棒上,橫向寫下明文後取下布條。解密時,必須取得相同直徑的木棒。

#2.卡爾達諾漏格板


依照漏格書寫明文以及觀看明文。

#3.旋轉機(Rotar machine)


#4.一次性密碼本

藉由亂數產生的一本加密用密碼本,可以把它想成一組金鑰,每當要產生明文時,將明文與密碼本的內容相加,如明文中的字母C (3)與密碼本的字母 X (25),3+25=28,因為28超過了26個英文字母,而對28取餘數得2,即得加密完成的密文字母B。
一次性密碼本有三個限制:
  • 確定密碼本是由隨機產生的
  • 密碼本必須只能使用一次
  • 因為要與明文相加,密碼本至少要與明文一樣長

加密算法 #1.凱撒密碼

已知明文字母P,引入一個參數K,得出密文 C = (P + K)mod 26
例如 ABCDEFGHIJK,在K=3時,得出密文DEFGHIJKLMN。(K=3是最初的凱撒密碼)
解密時 P = (C - K)mod 26。

因其架構簡單,現今已能用暴力法輕易破解,故只用於字謎類遊戲(ROT-13)。

#2.希爾密碼

使用矩陣進行加密,由密文構成的密文矩陣C = KP,其中P為明文構成的明文矩陣,K為密鑰矩陣,密鑰矩陣須為可逆才可供解密。


 
希爾加密避開了頻率分析攻擊,然而在已知明文的情況下,可透過逆運算求得金鑰,無法保證安全性。

#3.路由加密

近似於密碼棒,採用直書橫寫進行加密。

#4.單字母替換密碼

與凱撒密碼同為單字母取代的概念。將26個英文字母分別做對應,比如A對應C,B對應F,替換不受限於特定規則,也不要求有跡可循,純粹是做出26個字母的明文密文對應表,以供加密與解密時使用。儘管其複雜度遠遠高於凱撒密碼,但明文字母與密文字母仍屬一對一對應,同樣易受頻率分析(分析字母出現的頻率)攻擊破解。

#5.維吉尼雅密碼


上圖其實是由26個凱薩密碼構成的。
維吉尼雅密碼引入了金鑰的概念,假設要加密ABCDEFG,使用密鑰CIP。首先,先將密鑰長度補至和明文一樣長:

ABCDEFG
CIPCIPC

接下來,取第A行第C列得A,取第B行第I列得J...取第G行第C列得I,如此完成加密。在配合一次性密碼本的情況下,維吉尼亞密碼是足夠安全的。
攻擊類型#1.僅知密文攻擊:攻擊者在只知道密文的情況下試圖求得明文或金鑰。

#2.已知明文攻擊:攻擊者在知道部分明文與密文配對的情況下試圖破解。

#3.選擇明文攻擊:公開加密器,攻擊者可以自由輸入明文及得到該明文的密文,藉此試圖破解算法。

儘管選擇明文攻擊於設計角度上看似不合理,但在近代密碼學中,十分強調在公開演算法的情況下,還能保證安全的才是優秀的演算法,這是為了避免開發者本身預先對算法預先留下了暗門,卻因為算法黑箱而無法得知,使得維護者或開發者成為最危險的攻擊者,因此必須公開算法接受檢視。

沒有留言:

張貼留言