假设我把字母A分配给0-100范围内的随机数。明文字符到密文值的映射构成了我的密码字母表(和键)。
我使用普通的替换密码加密一条消息。然后,我使用不在我的密码字母表中使用的0-100范围内的数字,创建一个与我的初始密文长度相同的随机值序列。然后,我随机地编织我的初始密码文本和随机序列在一起。
具体来说,我会从第一个密文字符开始,随机决定是否添加噪音。如果我决定添加噪声,我将插入第一个未使用的元素从我的随机序列,无论是在当前的密文字符之前或之后(再次随机选择)。当我到达密码文本的末尾时,随机序列中可能仍有未使用的值。如果存在,则返回到密文的第一个字符(可能是加密的值或上次传递中添加的噪声),然后继续随机插入值,直到使用了来自随机序列的所有值。
最后的结果是要传输的消息。如果你知道关键的描述是微不足道的,因为你可以忽略“噪音”。但如果你不知道钥匙你会怎么解密这个?具体来说,从有意义的数据中分离噪声的技术是什么,还是有其他的攻击方案?
注:我问这个问题是因为业余爱好者的好奇心。我知道现代加密算法是安全的,不需要被干扰。我知道我描述的结果是更大的传输,等等,我只想知道你是如何打破它的。
发布于 2018-05-05 07:27:23
我做了一些模拟,发现在添加噪音后,普通英文字母(e,a,t,r,s等)仍然像拇指疼一样突出。知道代表这些字母的字符,并假设攻击者知道我们添加了噪音,这只会比直接的替换攻击更难。
但这让我思考,如果对于每个字母A,我选择了一些随机数来表示这个字母。当与任何其他值连接时,每个随机序列都必须是唯一可识别的(我不知道生成这类密钥的简单方法,但如果您小心的话,可以手动构造)。例如,我可以为A、B和C选择以下值:
A: 36 52 47
B: 36
C: 95 47
给定字符串"36 52 47 95 47 95 47 36 36 46 36“,我们可以看出它代表了"ACCAB”字符,但如果不知道键,频率分析就无法工作(例如,B在我们的明文中显示一次,但相应的密码文本值36显示三次)。
我不知道这种类型的字母是否有名字,但我意识到它本身并没有那么强。我们可以查看密文中数字对的频率,并确定哪些数字更有可能是同一字符表示的一部分。如果你能正确地把数字分开,那么这和标准的替换密码是一样的。
但是如果我们在这个奇怪的随机字符长度的字母表中加上噪音,就像最初描述的那样,我无法确定哪一组数字代表单个字符,而基本频率分析不起作用。我遗漏了什么?
https://crypto.stackexchange.com/questions/58957
复制相似问题