單個字符的加密
回答
恐怕迄今爲止所有答案都是錯誤的!看來我不能回覆他們,但是詢問你是否需要更多關於他們錯誤原因的信息。這裏是正確的答案:
約80位。
「nonce」(有時稱爲IV)需要一些位。當您加密時,您將密鑰,明文和隨機數組合在一起以產生密文,並且您絕不能使用相同的隨機數兩次。因此,隨機數需要多大取決於您計劃使用相同密鑰的頻率;如果您不會使用超過256次的密鑰,則可以使用8位隨機數。請注意,只有加密方需要確保它不使用隨機數兩次;解密方只需要關心它是否在意防止重放攻擊。
你需要8比特的有效載荷,因爲這是你有多少比特的明文。
最後,您需要大約64位的認證標籤。在這個長度下,攻擊者必須先平均嘗試平均2^63個虛假消息,然後才能獲得遠程端接受的消息。不要以爲你可以沒有認證標籤;這對整個模式的安全至關重要。
把這些放在一起使用AES鏈接模式,如EAX或GCM,你會得到80位密文。
關鍵尺寸不是一個考慮因素。
如果您使用一次性打擊墊,則可以使用與明文相同的打印位數。
這是有可能的,儘管它會涉及使用獨立進程生成和交換許多一次性打印墊。 – SystemicPlural 2010-03-30 08:20:54
這很難回答。你一定要先閱讀一些基礎知識。你可以用一個位(哈夫曼編碼風格)'加密'一個'a',當然你也可以使用更多的位。沒有任何上下文的數字像256位是毫無意義的。
這裏有一些東西讓你開始: Information Theory - 特別是。看看Shannon的開創性論文 One Time Pad - 臭名昭著的安全,但不切實際,加密方案 Huffman encoding - 不加密,但是它展示了上述觀點
256位只是密鑰大小的一個例子。我問這是否也是最小的加密消息大小。例如,如果我使用256位密鑰加密「a」,加密的消息是否最少爲256位長。 – SystemicPlural 2010-03-30 08:16:24
雖然這個問題有點模糊,首先這將取決於你是否使用流密碼或分組密碼。
對於流密碼,您將得到相同數量的輸出位 - 因此輸入字母大小的二進制對數將有意義。分組密碼需要固定大小的輸入塊,因此您可以用零填充「a」並對其進行加密,從而將塊大小最小化,就像您已經提出的那樣。
感謝流密碼是我正在尋找的。 – SystemicPlural 2010-03-30 08:34:57
- 1. 加密:將字符串數組轉換爲單個字符串
- 2. 加密和解密一個字符串
- 3. 加密和解密一個字符串。
- 4. 加密/解密字符串
- 5. 解密字符串加密
- 6. 如何在AES加密中加密/解密多個字符串?
- 7. 加密字符串
- 8. 字符串加密
- 9. 簡單的字符串加密/解密算法
- 10. 加密密鑰和加密字符串的解密
- 11. 加密字符的問題*
- 12. 僅使用java中的密碼加密對字符串字符進行加密
- 13. 簡單的雙向加密,輸出一個長的字母數字字符串
- 14. 加密web.config中的密碼字符串
- 15. JavaScript的加密庫不能加密和解密一個簡單的例子程序中的字符串
- 16. 將\ 000添加到密碼字符串中的每個字符
- 17. 使用多個加密保持加密字符串安全
- 18. 爲每個字母加上字符加密文本框的值
- 19. OpenSSL加密/解密只解密前7個字符?
- 20. AES加密 - 如何以後解密加密的字符串?
- 21. C++簡單的數字加密字母
- 22. S/Mime加密字符串
- 23. Java字符串加密
- 24. PHP字符類型加密
- 25. 查詢字符串加密
- 26. PHP加密空字符串
- 27. 簡單的字符串加密 - 更高的ascii字符的安全
- 28. 加密和解密字符串
- 29. 加密/解密字符串(PHP)
- 30. 解密SHA加密字符串
這是非常清楚的解釋。因此,一個16位隨機數將允許重複使用65,536,這給了我88位的密文。比未加密字符的位數稍多11倍。謝謝。 – SystemicPlural 2010-04-01 08:13:56
我想弗蘭克所說的是,如果你對密文進行編碼,那麼它將會進一步縮小它。含義88位是最差的情況。 – SystemicPlural 2010-04-01 09:03:32
Nonces,認證標籤 - 如果問題只針對「加密一個字符」,那麼這些都不是隱含的,因爲所有這些都取決於您選擇的加密模式,算法等,正如我試圖指出的那樣。因此,現在有*錯誤的答案......沒有任何問題的進一步澄清,你可以任意具體而不用有用。只是我2美分。 – hermannloose 2010-04-01 09:43:43