让我们想象一下,一个密码的工作原理如下:
不是特别复杂,甚至不是安全的。但是..。
如果我想做频率分析呢?
例如,用Base64编码的“R联RUNFORYOURLIFE”是:
UlVORk9SWU9VUkxJRkU=
当字符集被洗牌时,最终的密码文本可以如下所示:
xv24DYG9qxG2xYg6DYxf
关键是:
yhAc5bTOWeYvBXCpVuoMJLdg8P1jHN3ZIsi67SrK4E_D9-x2qRQmnlkwUaFt0G=zf
这是一个洗牌版本的:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_=
我们还假设后续消息中的字符集顺序相同(即重复使用键)。
既然字节基本上是分开的,导致不同的字符单位可能或不相对应,那么频率分析仍然可行吗?在加密前以这种方式编码明文是否增加了任何形式的安全性?
我的问题主要涉及更长的信息,因为我的例子可能太短,无法进行任何真正的分析。
发布于 2014-11-14 09:56:39
这是我可以做频率分析的一种方法。首先,假设原始文本对每个字符使用一个字节(8位)(这不会失去通用性,因为我认为其他编码可以使用类似的结构)。其次,注意base64字符代表6位。这意味着前4个base64字符编码了明文的前3个字节,即前3个字符(因为4*6 = 3*8)。接下来的4个base64字符将对接下来的3个明文字符进行编码,等等。
利用这一观测可以很容易地进行频率分析。只需计算所有3个明文字符串的频率,以及所有4个密文字符串的频率。然后像往常一样进行频率分析攻击,但要记住,明文中的3个字符对应于4个密文字符。
请注意,可能有更明智的方法,但至少这是一个。
https://crypto.stackexchange.com/questions/20167
复制相似问题