为什么DES只能用于56bit密钥?如果我们使用更长的键,会发生什么?另外,为什么明文的长度必须是64位?为什么DES只能用于56bit密钥?为什么明文的长度必须是64位?
1
A
回答
2
当时美国法规要求用户使用强于56位密钥的密钥,提交至“密钥恢复”以启用执法后门访问。
因此,作为标准,在最大允许密钥长度为56位时指定了DES。如果您使用了更长的密钥,则不会与其他DES系统兼容。
参见:http://en.wikipedia.org/wiki/56-bit_encryption
如果要实现一个系统&具有的加密选择,更现代的&更强的密码是绝对推荐。目前的标准将是AES(高级加密系统),它是广泛可用的,强大的,并允许密钥大小从128 - 256位。
对于桌面或服务器应用程序,AES-256将是一个很好的默认选择。
参见:http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
当加密数据,明文必须经常“填充”的最小尺寸。密码依赖于多个位之间的混淆和相互作用,以保护明文的秘密,避免潜在揭示密钥。对于没有填充的简短明文,混淆和交互作用被删除,因为数学复杂性下降很大。
只加密一个没有填充的字符,例如'y'或'n'响应可能会将2^256的空间缩小到可能的2^24。这可能会在几分钟内被破解。这将使攻击者能够猜测密钥的大部分,迅速将其破解,然后(最糟糕的是)解密通道上的所有其他流量。
相关问题
- 1. ValueError:密钥必须是128位长XTEA
- 2. 错误:RSA密钥长度必须至少为512位?
- 3. 为什么WinRT类型必须密封?
- 4. 为什么我必须声明var = Class.new?
- 5. DES加密明文与密码长度
- 6. 为什么WPA2-PSK密钥长度限制为63个字符?
- 7. 为什么我们必须输入vim〜/ .vimrc,为什么不只是vim〜.vimrc?
- 8. 为什么OpenSSL :: PKCS5.pbkdf2_hmac_sha1生成不同长度的密钥?
- 9. 为什么UISearchDisplayController必须是类变量?
- 10. 为什么x86-64的jmpq只需要32位长度的地址?
- 11. 为什么推介密钥?
- 12. 为什么长度不适用于NSString?
- 13. 为什么必须'自动'声明都是相同的类型?
- 14. 为什么锁定对象必须是只读的?
- 15. 为什么CORS基于目标服务器?为什么我必须使用JSONP?
- 16. 为什么jsp中的EL函数必须声明为静态?
- 17. Python的加密库 - ValueError异常:密文长度必须等于密钥大小
- 18. 为什么我的Java密钥输入有时只能工作?
- 19. ValueError:AES密钥长度必须为16,24或32字节PyCrypto 2.7a1
- 20. EhCache:什么是用于密钥身份?
- 21. 密钥的值为零。为什么?
- 22. 为什么mapping.xml和configuration.xml必须位于pojo包之外?
- 23. 为什么必须使用“throws IOException”
- 24. 为什么必须使用malloc?
- 25. 为什么我必须使用-lstdC++ fs?
- 26. 为什么必须使用value.length?
- 27. 为什么必须调用io_service :: reset()?
- 28. 为什么我必须使用this.canvas?
- 29. 为什么我必须使用Sobel Operator?
- 30. Zend_Db_Table_Row:为什么我必须使用createRow()?
我真的刚刚开始学习密码学。谢谢。那么,对于纯文本来说,64位是最小的? –
另外,为什么DES工作?这很难理解......我的意思是使用S盒似乎是一个非常糟糕的主意。如果DES的设计者放置某些位,那么他们可以很容易地解密它。你如何证明它是安全的?或者这是不可能的? –
顺便说一句,如果64位是最低限度,如果我使用101位纯文本会发生什么?这些位如何划分? –