Encryption

在沒有電氣或任何其他復雜設備的情況下生成真正隨機的一次性墊的最快方法是什麼?

  • April 8, 2020

我想盡可能快地生成一個真正隨機的一次性墊,但不使用任何電子設備或任何其他復雜的設備。最快的方法是什麼?

我們將生成大量真正隨機的字母,用作一次性密碼(有時也稱為 Vernam Cipher)。

拿到大約 56 面骰子——它們很容易從遊戲公司訂購——還有一個帶蓋子的可搖晃的盒子,盒子大約 30 厘米見方

建立一個隨機表格:在一張紙上,繪製或列印一個六列六行的表格。對列和行進行編號,從 1 到 6。按順序執行應該沒問題。把骰子放在盒子裡,搖晃、搖晃、扭動和滾動——用你自己的判斷。這一步不應該很短。讓骰子落到盒子底部的一側,然後將它們排成兩排。現在根據盒子中對齊的骰子對開始填寫您的表格。行列。1/4 A、4/3 B、5/1 C等。繼續前進,直到輸入字母表中的所有字母。如果您使用的是俄語字母,您將有三個空格。如果您使用英文字母表,您將有十個空格。

生成您的密鑰:搖動、嘎嘎聲、扭動和滾動——請查閱表格以獲得您的結果:5/1… C | 6/2… X | 1/1… P | 等等重複。不要走任何捷徑。不要看你的結果並說它們不是隨機的,因為盒子裡有太多的一個數字彼此相鄰。這就是它有時的樣子。不要引入偏見。

保護您的密鑰:物理安全現在是一個重要問題。您必須保護該密鑰免受損害。如果您還可以安全地共享該密鑰,那麼您創建的流量至少會使用真正的一次性密碼本進行加密。

此外:您還有兩個額外的問題——您將如何驗證您的消息,它是否具有完整性?

冒著提供常識性答案的風險:

購買骰子:購買一堆用於龍與地下城等角色扮演遊戲的骰子。如果您正在為基本的拉丁字元(例如 A 到 Z、大小寫、數字和一些標點符號)製作填充物,您可能需要(26 個大寫字母 + 26 個小寫字母 + 10 個數字 + 一些標點符號 + 一些特殊控制項,例如頁面每條消息的數字或簽名)= 略低於 100。這意味著每個字元有兩個不同顏色的十面骰子。如果要對字節(0-255)進行編碼,請使用兩個八面骰子和一個四面骰子。如果您只想要幾百個單詞的微小詞彙,那麼整個消息將在每組骰子中。

建立一個物理模具架:您想一次做一堆數字,而不必停下來一遍又一遍。聽起來很花哨?不,只需使用帶有單獨隔間的塑膠儲物盒,例如其中一個。在每個隔間中放置一組骰子。您應該能夠一次搖動整個盒子,並且能夠在不打開它的情況下讀取每個隔間的一個數字。

製作你的空書:製作一個空表格以列印與模具架大小相同的數字網格。您可能想計劃折疊並以一種棘手的方式將其剪斷,以製作一本適合您錢包或鞋子的小書。製作足夠的空表格副本。

填寫你的書:拿一些複寫紙,把你的兩張紙疊放在一些堅硬的或扔掉的表面上,然後開始搖動你的盒子。把它們寫下來。複寫紙讓你只寫一次,寫完後你可以把它燒掉。您可能想要為頁面編號。您可以包含密鑰或表格以更快地破譯;默默無聞不是你的安全。

同意你的協議:首先就如何傳遞消息達成一致。圖片中帶有數字的公告板上的有趣傳單?收音機?如果您可以將加密的消息公開,那麼就很難看出誰在和誰說話。決定你們是否都打算在使用一次後撕掉和處理頁面。您是否在您的消息中提及上次收到的消息?

傳遞並保護您的密鑰:這可能是困難的部分;如果其他人看到這本書,他們可以假裝是發件人。

練習:來來回回發傻消息,弄清楚哪些咖啡店拉下通知,學習快速編碼和解密,注意如何抓住加密文本而不是太明顯。安全地檢索您的書,或至少從中檢索一頁。讓它變得有趣。

對於人們來說,這可能是一種有趣的愛好,可以在周圍傳遞小紙條,開玩笑,當然還有抱怨老師。

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