為什麼 ROT13 不提供加密安全?
我可以理解 ROT13 出於明顯的原因並不安全,但我正在尋找理論上的答案。維基百科說“該算法不提供加密安全……”提供加密安全意味著什麼?為什麼它不提供安全性,而不是提供很少的安全性?
是什麼讓 ROT13 容易從自動化程序(例如,一個完全不知道加密密碼是什麼的程序)中破解?密碼如何可測量地“弱”?
我想我明白你的要求。您正在嘗試了解我們如何知道使用了哪種算法,因此我們知道如何攻擊它。這是所謂的密碼分析的一部分,即破解密碼的任務。
如果您使用的是標準電腦協議,則加密算法被定義為協議的一部分。除非兩者都知道正在使用什麼算法,否則電腦無法交談。沒有試圖對其保密。
一般來說,有很多線索會告訴你發生了什麼。如果事情流經埠 443,攻擊者將假定它是 SSL 協議,查找指示正在使用的算法的標頭,然後從那裡開始。
(如果您線上閱讀笑話或電影情節,ROT-13 傳統上用於防止您意外看到妙語或劇透,直到您準備好。因此,ROT-13 實際上是一個事實上的標準. 請注意,“標準”並不一定意味著“安全”。)
但是,即使不了解協議,通常也有其他方法可以確定使用了哪種算法。老派工具是頻率分析。密碼分析員(其工作是破解密碼學的人)可能會繪製出字元的頻率。正常的英文文本遵循這樣的分佈,即字母 E 出現 12% 的時間,T 出現 9%,A、O、I 和 N 各出現約 8%,依此類推。(無意義的單詞 ETAOIN SHRDLU 按降序表示英語中最常見的 12 個字母。)如果密文中的字母分佈大致遵循相同的分佈,密碼分析者可以假設使用轉置密碼來打亂明文字母。如果一組不同的字母遵循相同的分佈,則很可能使用了簡單的替換密碼。
如果分佈更平坦,密碼分析員可能會嘗試測量每隔一個字母、每隔三個字母或每隔四個字母等的分佈。如果分佈突然遵循相同的 12、9、8、8、8、8 曲線,然後密碼分析員發現可能使用了 Vigenere 密碼或多表密碼。
一旦知道算法,下一個任務就是找到密鑰。頻率分析可以幫助處理更簡單的程式碼,但隨著電腦的出現,不同的攻擊成為可能。電腦可以快速嘗試所有可能的密鑰,這稱為暴力攻擊。您必須嘗試的鍵數稱為鍵空間。經典的凱撒密碼是密鑰為 3 的旋轉密碼(每個字母左移 3 位)。凱撒密碼的密鑰空間是 $ 26^1 - 1 $ (有 26 種可能的轉變,但明文不被認為是加密的),或者只有 25 種。因為這些隨著可能的密鑰數量呈指數增長,並且因為暴力破解通常是用電腦完成的,所以通常用權力來指代這些2 指數符號。密鑰大小通常以位數表示。大於或等於 25 的 2 的下一個冪是 32,( $ 32 = 2^5 $ ),所以我們可以說凱撒密碼的密鑰大小是 5。
因為ROT-13的算法和密鑰是已知的(算法是ROTate,密鑰是13)keyspace是1,唯一可能的結果就是解密。ROT13的keysize是 $ 1^{1} = 1 $ . 大於或等於 1 的 2 的下一個冪是 $ 2^0 = 1 $ . 因此密鑰大小(指數)為零。
密鑰大小是算法加密安全的上限,因為它表示使用暴力破解的嘗試次數。40 位密鑰大小 (2^40) 在家用 PC 上很容易被暴力破解。具有 56 位密鑰長度的 DES 在 1990 年代在一台特殊用途的電腦上被暴力破解(Deep Crack)。密鑰大小只是一個上限,因為如果攻擊者能夠找出算法中的加密弱點,他們就可以使用它來減少蠻力嘗試的次數。80 位正好處於被認為是安全的邊緣——電腦能力的進步使得暴力破解更大的密鑰變得越來越可能。
(請注意,這種解釋不適用於 RSA 密鑰,其中分解公鑰是蠻力的方法。今天,1024 位密鑰正處於安全邊緣,預計不會保持安全更長。)
密碼分析是一項引人入勝的研究,強烈推薦給任何對密碼學感興趣的人。能夠破解協議或密碼是了解使協議和密碼更安全所需的第一步。