是否可以区分使用不同加密算法加密的字符串?
如果我有一组来自不同加密算法的 N 个加密字符串(即 100 个来自 AES,150 个来自tripleDES,等等......)我想知道是否有可能出现一个合理的错误,即存在某种聚类字符串(即 AES 集群中的 111,tripleDES 集群中的 139)还简化为加密的密钥或字符串是相同的,并且显然没有先验知识(即使有培训也可能很有趣) .
有一些关于那个的作品,论文,玩具例子吗?
谢谢
是否可以区分使用不同加密算法加密的字符串?
如果我有一组来自不同加密算法的 N 个加密字符串(即 100 个来自 AES,150 个来自tripleDES,等等......)我想知道是否有可能出现一个合理的错误,即存在某种聚类字符串(即 AES 集群中的 111,tripleDES 集群中的 139)还简化为加密的密钥或字符串是相同的,并且显然没有先验知识(即使有培训也可能很有趣) .
有一些关于那个的作品,论文,玩具例子吗?
谢谢
是的,您可以根据密文区分某些密码,但这不适用于所有操作模式。
关键的观察是 AES 和 Triple DES 具有 128 位和 64 位的不同块大小。这意味着一个 7 字节的消息在 3DES 中为 8 个字节,在 AES 中为 16 个字节。但是填充在这方面也有作用。如果明文大小是块大小的倍数,PKCS#5 填充将添加整个填充块。这意味着 8 字节消息对于 3DES 为 16 字节长,对于 AES 为 16 字节长。
例如:如果明文消息的长度是均匀分布的,那么有 50% 的机会可以区分两者,因为 3DES 可以有 24 字节的密文,而 AES 不能。或者换一种说法,你可以在 50% 的时间内找出它是否是 3DES,但你不能确定是否使用了 AES。这个补零的概率是一样的,但是匹配的长度略有不同。
这适用于欧洲央行、加拿大央行和其他一些央行。另一方面,在 CTR 模式下,不能使用密文的长度,因为密文始终与明文具有相同的长度。CTR 模式本质上是一种流密码。
如果块大小没有差异,则无法区分它们,因为现代密码的设计方式与噪声无法区分。