One-Time-Pad
我們可以在 Vernam 密碼中使用數字作為填充 - 為什麼或為什麼不?
我在一些線上轉換器上玩 Vernam 密碼。
但是當我嘗試用數字加密我的消息字元串時,它保持不變。
此外,它忽略了數字並在密鑰中出現一些字母時進行加密。
那麼,我們可以在 Vernam 密碼中使用數字作為填充 - 為什麼或為什麼不呢?
是的,您可以將數字用作一次性鍵盤。事實上,中央情報局過去一直這樣做,許多人也是如此。
當您使用數字時,明文通過引用轉換錶(例如 STASI 使用的古老的“貘”)變成字母。
這裡的加法將是模 10。 Vernam Cipher 或一次性密碼 (OTP) 也可以模 2 完成:
SENDING ------- message: 0 0 1 0 1 1 0 1 0 1 1 1 ... pad: 1 0 0 1 1 1 0 0 1 0 1 1 ... XOR --------------------------- cipher: 1 0 1 1 0 0 0 1 1 1 0 0 ... RECEIVING --------- cipher: 1 0 1 1 0 0 0 1 1 1 0 0 ... pad: 1 0 0 1 1 1 0 0 1 0 1 1 ... XOR --------------------------- message: 0 0 1 0 1 1 0 1 0 1 1 1 ...
或者,它可以以 26 為模(使用英文字母)。例如:
Plaintext: DARLING THE NIST CURVES HAVE BEEN COMPROMISED AND MY RANDOM NUMBER GENERATOR HAS A KLEPTOGRAPHIC BACKDOOR I FEEL SAD Key: NLQVT ZBOFW MFAVS RJMDE PGNEX GGQMU VOFNE PBWXT ICDWK VEEYL EGVWS ZRDKD IDJGO HWKFF MBEGA KEUNQ BEYDO --------------------------------------------------------------------------------------------------------------------------------- Ciphertext: QLHGB MHHMA ZNSOU LAHHW WGIIY KKDOI HDWBQ XTAAT VFPUB VRHMX RAHXW QXHXH ZDCUF OWCFP XFTZO QVUCX JGZDQ MUYBN VQUZE RBR
您無法將數字插入您找到的線上加密/解密工具的原因是該工具僅設計用於模 26 加法字母。
以下是冷戰期間 CIA 一次性按鍵的一個範例:
一次性填充對位和字節進行操作,並且與這些字節代表的符號無關,因此,是的,您也應該能夠使用數字。
當談到 Vernam 密碼時,答案是“你應該,但由於某種原因你不能”。原因很可能是這樣的事實,儘管摩爾斯電碼確實對數字進行了編碼,但它們似乎並未與密碼一起使用,正如維基百科的這張圖片所示
下一點不是你能找到的最嚴格的答案,但它可能會:在尼爾·斯蒂芬森的Cryptonomicon的某個時刻,作者花時間描述了主角是如何
3
使用一次性便箋簿來電報的,將該數字更改為THREE
. 然後對所有五個字母進行加密。可以合理地假設斯蒂芬森已經完成了他的功課。然而後來電傳機使用的鮑多碼也支持數字。所以你的問題的答案是否可以使用數字作為鍵是由於某些歷史原因你不能,並且網站複製了這種行為。
但這仍然是我的猜測,因為您嘗試使用的工具的作者必須說以下內容:
// One-Time Pad // This code was written by Tyler Akins and placed in the public domain. // It would be nice if you left this header intact. http://rumkin.com // Implements a one-time pad for only alphabetic characters. Preserves // the character case in the text (not the key). // encdec = -1 for decode, 1 for encode // text = the text to encode or decode. // key = the key (pad) to use