2

我检出了TripleDES。它的块大小是64位。是否有8位块大小的公私密钥加密算法?

有8位块大小的算法吗?

感谢

编辑:我打算不使用该完美的保护,但对于一个刚刚在案件的情况,其中一个谁看到的代码应该找不到明文。所以8位对我来说还挺好的。

+0

也许你可以添加一些关于你想用算法做什么的信息? – Jacco 2010-03-08 17:31:55

回答

2

RSA与8位密钥:)

认真不过,基于块的cyphers是无状态的 - 块的密文只取决于块的明文,而不是以前的块(否则就成为一个流密码)。对8位块进行操作的块密码可以很容易地被强制使用,所以没有意义。

+0

我们可以在.NET中实现8位RSA吗? – 2010-03-10 06:26:40

+0

我不这么认为。而且,就像我和托曼已经说过的那样,它几乎就像没有加密。 – 2010-03-10 15:21:28

6

带有8位块的分组密码意味着每个输入块可以被加密为256个可能的值 - 这意味着攻击者有1/256的猜测输入值的机会。结果很难安全地使用这样的算法。尽管如此,在8位块上定义一个块密码并且“完美地”完成它是possible;只是不要指望它通常是有用的。还有一种“无数据块”密码,称为“流密码”,它可以逐字节地加密数据(甚至“逐位”);大多数只是伪随机生成器,它们会从一个密钥中产生任意数量的字节。生成的流只是要与数据结合使用XOR进行加密。传统的流密码是RC4;但newer and better流密码已被设计。

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

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

+0

伟大的答案谢谢! – 2010-03-09 04:39:14