2

我检查了 TripleDES。它的块大小为 64 位。

8位块大小有什么算法吗?

谢谢

编辑:我不打算将其用于完美保护,而是用于以防万一的情况,即看到代码的人不应该找到明文。所以8位对我来说还可以。

4

2 回答 2

6

具有 8 位块的块密码意味着每个输入块可以被加密为 256 个可能的值——这意味着攻击者有 1/256 的机会猜测输入值。事实证明,安全地使用这种算法是非常困难的。然而,可以在 8 位块上定义块密码,并“完美”地做到这一点;只是不要期望它通常有用。

还有“无块”密码,称为“流密码”,它“逐字节”(甚至“逐位”)加密数据;大多数只是伪随机生成器,它们从密钥中产生任意数量的字节。该生成的流只是要与数据组合以使用 XOR 进行加密。传统的流密码是RC4;但是已经设计了更新更好的流密码。

分组密码本身就是一种数学工具。为了真正加密数据,必须正确使用分组密码。关键字是chainingpadding。链接是关于定义实际进入分组密码的内容以及如何处理输出。填充是以可逆的方式向数据添加一些字节,以便填充的消息长度适合所选的链接模式。传统的链接模式称为CBC。一种更新的(并且可以说更好的)链接模式是 CTR(相同链接),它具有避免填充需要的额外好处(CTR 只是将块密码转换为流密码)。

至于分组密码,您应该使用AES而不是 TripleDES。它更快、更安全,符合当前的美国标准。

于 2010-03-08T19:50:30.853 回答
2

带有 8 位密钥的 RSA :)

不过说真的,基于块的密码是无状态的 - 块的密文仅取决于块的明文,而不取决于先前的块(否则它将是流密码)。作用于 8 位块的块密码很容易被暴力破解,所以没有意义。

于 2010-03-08T17:37:33.437 回答