如果我刚刚用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. CFB中的C#AES加密,其中明文长度等于加密长度
- 4. Imageview揭示动画
- 5. SAS显示比列长度长的值
- 6. 的getBytes超过数据长度,但幅度明显小于长度
- 7. 用Silverlight揭示内容
- 8. 揭示模块模式
- 9. Javascript揭示模块模式
- 10. 动态隐藏揭示
- 11. Zurb基础揭示模态
- 12. 揭示模式用例
- 13. 用不透明度增长和缩小效果来显示div
- 14. 由CCCrypt解码的明文长度有误
- 15. 带有任意长度明文的AES测试向量
- 16. 如何显示比控件(文本框)长度更长的文本的toolPopup?
- 17. 试图揭示悬停在文本上的隐藏文字
- 18. Javascript数组显示长度为0时的长度
- 19. 红宝石长度不显示数组的正确长度
- 20. iPhone/iPad:UITextView最长的文本长度
- 21. 长文本字段的最大长度
- 22. 是否可以声明数组没有明确的长度?
- 23. 了解声明数组长度
- 24. DIV或jQuery显示幻灯片/揭示?
- 25. UIWebView文本长度
- 26. ASP.NET MVC显示列长度
- 27. 音频文件的长度
- 28. Datagridviewtextboxcolumn的长度和文本?
- 29. XML文件的长度
- 30. dojo gfx的文字长度
附加详细信息如下:我将纯文本的长度存储在数据库中,以便稍后可以删除由CBC引起的空字节。 – Tower 2010-01-01 13:49:51