如果我剛剛用CBC和Rijndael將一些純文本加密爲密文,告訴世界原始純文本的長度是x字節是不安全的嗎?它看起來總是和密文的長度一樣,所以我認爲它並不重要,但是它有什麼重要的塊模式或密碼?揭示明文的長度?
揭示明文的長度?
回答
您應該使用PKCS5填充方案。該方案總是附加額外的信息,包括已添加的額外字節數。在解密之後,檢查最後的塊以查看應拋棄多少個字節。
有關原始郵件長度的信息很難壓制。即使使用填充來阻塞大小,也可以推斷出原始消息的長度爲n,n-1,n-2,...或n-blocksize + 1個字節。大多數加密協議很少或沒有努力隱藏明文長度。
輸出的長度並不總是相同的。但是,如果純文本的長度都差不多,密文的長度可以是相同的,由於填充(Rijndael算法/ AES是一種分組密碼) http://en.wikipedia.org/wiki/Padding_(cryptography)
而且它如果你告訴削弱你的安全世界是明文的長度,所以除非有很好的理由,否則我會反對。
而且看看CBC是如何工作的:
http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation#Cipher-block_chaining_.28CBC.29
我需要這個長度,以便稍後可以去掉由CBC引起的空字節。所以,長度以純文本形式存儲在數據庫中。 – Tower 2010-01-01 13:47:33
Rijndael算法是塊密碼,所以純文本將被填充到一個完整的塊。 (這可能會被加密層隱藏)。
所以加密的消息文本長度將指示明文的長度。
如果您通過消息長度泄漏信息,那麼您將不得不做自己的填充。事實上,發送消息可能會泄漏信息,因此當您沒有任何要發送的內容時,您需要發送無操作消息。
明文通常與密文的長度不同。純文本在加密之前填充。如果您發送「是」或「否」兩種不同的信息中的一種,那麼發送原始長度可能不是一個好主意。如果你的所有消息長度相同,那麼發佈這個長度是可以的。
- 1. Rijndael的管理:明文長度detction
- 2. 揭示閃亮文檔中的文字
- 3. 創建透明度的動畫,揭示三維網格中的網格
- 4. DES加密明文與密碼長度
- 5. LI中的文本長度不明的文本中的文本
- 6. CFB中的C#AES加密,其中明文長度等於加密長度
- 7. Imageview揭示動畫
- 8. UILabel - 顯示...當文本長度超過一定長度時
- 9. 未捕獲的錯誤:沒有明確呼籲揭示
- 10. 隱藏和揭示文字css
- 11. SAS顯示比列長度長的值
- 12. 的MySQL AES_ENCRYPT()長度 - 公式說明
- 13. 的getBytes超過數據長度,但幅度明顯小於長度
- 14. 文本文件的長度
- 15. Typescript揭示模塊模式
- 16. 動態隱藏揭示
- 17. 用Silverlight揭示內容
- 18. CSS3哈弗揭示DIV
- 19. 揭示模式用例
- 20. Zurb基礎揭示模態
- 21. 點擊揭示和消除
- 22. 揭示模塊模式
- 23. Javascript揭示模塊模式
- 24. 用不透明度增長和縮小效果來顯示div
- 25. 由CCCrypt解碼的明文長度有誤
- 26. 帶有任意長度明文的AES測試向量
- 27. 點的長度的長度
- 28. file.write()事先不知道文件長度的文件長度 - python
- 29. 如何顯示比控件(文本框)長度更長的文本的toolPopup?
- 30. 試圖揭示懸停在文本上的隱藏文字
附加詳細信息如下:我將純文本的長度存儲在數據庫中,以便稍後可以刪除由CBC引起的空字節。 – Tower 2010-01-01 13:49:51