BlowFish 448对大文件的限制


0

我正在考虑使用BlowFish 448加密文档,媒体等,一些文件的大小超过20GB。是否存在使用BlowFish而非AES 256的风险?如果是这样,他们是什么?


我不知道文件大小与风险有什么关系 - 现在是时候你可能更担心20Gb文件了。
Cylindric

基于答案Blowfish (and most other block ciphers of the same era, like 3DES and IDEA) have a 64 bit block size, which is considered insufficient for the large file sizes which are common these days (the larger the file, and the smaller the block size, the higher the probability of a repeated block in the ciphertext - and such repeated blocks are extremely useful in cryptanalysis)大小似乎是一个问题,但我不确定是否同样适用于BlowFish 448.
PeanutsMonkey

Answers:


0

加密算法实际可以处理的文件大小没有限制 - 但是,根据用例,存在较大数据大小固有的理论风险

首先,目前还不知道Blowfish是否会被打破

其次,它是一个分组密码,因此只是一个原始代码。所有分组密码都与CBC 等操作模式结合使用。由于生日悖论,在2 ^ 32个块(对于64位块大小的密码)之后,可能发生冲突。这基本上意味着在(64 * 2 ^ 32)/((1024)^ 3)千兆字节后,你有一个问题。对你来说幸运的是,大约256千兆字节,所以目前这只是一个理论问题。

显然,如果我们使用128位块,我们将使用公式(128 * 2 ^ 64)/((1024)^ 3),这给我们一个疯狂的(类似4万亿)千兆字节。

底线:对于20GB的文件,这应该更好。


是否有大于128位的密码?
PeanutsMonkey

@PeanutsMonkey用于输入块大小还是键?例如,AES256使用128位输入块,但是使用256位密钥(它实际上在密钥调度中内部扩展)。我不知道任何256输入块密钥。128位空间通常被认为是不切实际的搜索 - 尽管这是对关键空间的讨论,它同样适用于碰撞的机会,这只有助于密码分析(与实际找到密钥不同)。

64位是8个字节,因此正确的公式是(8 * 2 ^ 32)/((1024)^ 3)千兆字节,即32千兆字节。
于洪宝
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.