Substitution-Cipher

書本密碼是否可以證明是安全的?

  • March 20, 2017

我見過密碼(通常在間諜劇節目中)涉及拿一本書並寫下單個角色的索引。本質上,它是一個密鑰替換密碼,其中密鑰是書的名稱和確切的版本號。

例子:

想像一本書有 500 頁,每頁大約 60 行,每行 80 個字元。我們可能會寫238:4:64來指定我們在第 238 頁,第 4 行,第 64 個字元。一條五字元的消息可能會被加密為114:25:22 374:41:46 182:17:62 63:53:8 50:8:18.

在不知道這本書是什麼的情況下,我想這可以證明是安全的,只要加密的人從不重複使用索引。我在這個假設中正確嗎?


為了好玩,你可以試試這個: 12:9:3 183:15:7 238:14:11 310:9:38 194:11:17 7:1:1

我正在使用一種page:line:character格式,忽略標題、空格和標點符號。這本書是查爾斯·達爾文的《物種起源》,第 6 版。

注意:我不是想讓你破解它,只是添加它,因為它很好地展示了它的工作方式:)

使用書本作為鍵與一次性便箋簿比較相似,因為書本可以被認為是一個隨機的字元流。但這僅在某種程度上是正確的:一本書由具有含義的單片語成,這意味著可能出現在位置 321:42:35 的字元與出現在位置 321:42:34 和 321:42 的字元並非不相關: 36. 因此,僅僅不重用精確的索引值是不夠的;您應該避免使用來自同一個單詞的兩個索引值。這會縮短給定書籍作為密碼密鑰的生命週期。

另一個問題是“隨機選擇”。當您要加密一個字母時,您必須選擇書中與該字母對應的索引值之一。人類非常不擅長在腦海中做出隨機選擇。但非隨機選擇可能會表現出偏見。所以加密過程很重要,沒有完整描述。一個公正的過程會讓你使用骰子隨機選擇頁面、行和列;如果這與您的目標字母不符,請再試一次。這很乏味。

此外,為了避免重複使用給定的索引,您必須保留您使用過的索引位置的列表,例如通過標記書中已經使用的字母。這本書不再是一個不起眼的物體:你有一個物理鑰匙(“使用這個,我的意思是特定的印刷實例,書”),而不是一個只有大腦的鑰匙(“使用這本書”)。

當然,任何已經掃描了數百萬本書並將文本提取到可搜尋的電腦結構中的人,都可以在幾分鐘內輕鬆嘗試所有現有的書籍,並在解密結果看起來像是有意義的單詞時報告命中。因此,您將受制於 Google(以及任何獲得 Google 服務的人)。

引用自:https://crypto.stackexchange.com/questions/1317