openssl河豚键限于256位?

如果我给出一个大于64个hex字符(64 * 4 = 256位)的密钥,我会得到以下错误。

在这里输入图像说明

根据这份官方文件 ,河豚能够支持从32位到448位的密钥。

可变密钥长度:32位至448位

可以绕过这个限制吗? 怎么了?

实际的密钥大小足够大,但是我想尽可能地保证最高的安全性。

谢谢,

虽然algorithm本身支持高达448位的可变密钥长度,但是OpenSSL的实现仅限于256位。 我发现了几个页面提到这个限制; 这一个有一个不错的表: http : //etutorials.org/Programming/secure+programming/Chapter+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

256位和448位对称密钥之间没有有意义的密码区别。 没有人会理智地尝试使用256位的blowfish对称密码。

这是写在1999年,但仍然是真实的: https : //www.schneier.com/crypto-gram-9902.html#snakeoil

实际上,openssl程序中有一个小错误。 它允许长度高达256位的密钥,但实际上,只有头128位用于河豚键。 使用较长密钥的唯一方法是使用lib编写一个程序。

通过在enc中使用-p选项,我们可以validation使用的密钥是128位密钥:

echo toto | openssl enc -bf-cbc -K 000000000000000000000000000000000000000000000000000000 -iv 0 -a -p 

结果:

 salt=801D670000000000 key=00000000000000000000000000000000 iv =0000000000000000 5XAXlTvP0ZE= 

我最近发现了stackexchange的安全网站,并提出了同样的问题。 布伦丹给了我下面的答案 。

我应该删除这个问题吗?