CS note-taking
目前內容將陸續轉移至https://zake7749.github.io/
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.選擇明文攻擊
:公開加密器,攻擊者可以自由輸入明文及得到該明文的密文,藉此試圖破解算法。
儘管選擇明文攻擊於設計角度上看似不合理,但在近代密碼學中,十分強調在公開演算法的情況下,還能保證安全的才是優秀的演算法,這是為了避免開發者本身預先對算法預先留下了暗門,卻因為算法黑箱而無法得知,使得維護者或開發者成為最危險的攻擊者,因此必須公開算法接受檢視。
沒有留言:
張貼留言
較新的文章
較舊的文章
首頁
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言