我之所以读到这篇文章,是因为苏联人对他们的一次性护垫不够小心,他们无意中重用了一些东西,让西方破坏了他们的加密通讯。
这是否意味着在使用这样一种技术时,您实际上必须拥有所有以前使用过的技术的列表,以确保您不重用任何技术?即使你有一种真正的随机性方法,在创建它们的时候,难道就没有可能再次产生同样的方法了吗?
我可以想象,拥有所有以前使用过的产品都会带来相当大的风险。
发布于 2017-04-22 20:02:55
一个时间垫只是一个随机的秘密密钥,用于加密与密钥大小相同的一些文本。没有必要记住使用哪一次垫,如果你只是在使用后销毁它。没有必要保留它,因为您已经将它用于加密一次。
发布于 2017-04-22 20:03:11
如果您对每条消息使用一个新的随机一次性便携板,则不需要跟踪您使用的消息。
您意外地创建了一个与以前使用的相同的机会几乎为零。也就是说,这就像意外地创建一个一次性的便携板,根本不改变你的信息,或者把你的信息转换成一个长度相同但意义相反的信息。
事实上,您对随机生成的OTP施加的任何约束都会降低它们的有效性,因为它们不再是随机的,攻击者可能会利用这一点。
发布于 2017-04-22 22:19:48
这是否意味着在使用这样一种技术时,您实际上必须拥有所有以前使用过的技术的列表,以确保您不重用任何技术?
这必须在原始上下文中看到,在原始上下文中,双方将共享由一个冗长的随机序列组成的代码簿。
通常,您使用给定的序列--您需要发送1000个字符的消息,在代码簿中使用第一个未使用的OTP字符,然后销毁它们。您注意到OTP键中的位置,并将其发送。您的控件有完整的代码簿,可以重构消息。
如果您不实际销毁您刚才使用的密钥,那么您将暴露您自己的解密过去的消息,如果这本书被捕获。
要获得一本新的代码书,您需要以某种方式交付它,这是一项风险很大的业务。因此,重复使用旧密钥的诱惑就在那时,OTP密码不再是完全安全的了。使用同一密钥的次数越多,其安全性就越低。
如果敌人截取一条15273键的2000字符信息(使用OTP 15273至17272),另一条1000字符消息使用键16517 (使用OTP 16517至17516),他现在有两个16517到17272的序列,它们都是用相同的字符编码的。
模型
假设我们使用带数字的10基OTP,并设想我们使用模和“编码”。因此,密钥5编码的7变为7+5 mod 10 = 2。
如果您拦截一个加密的"2“,您知道它是由A+B=2生成的,但是A的值是多少?B呢?你不可能知道。7+5和8+4都让你.实际上,你有所有的十个可能性,因此,一个完美的密码。在不知道密钥的情况下,消息可以是任何消息。
但是现在您拦截了一个加密的"4“,并且知道它是由C+D=4生成的,但是由于密钥重用,B和D是一样的,所以您也知道C+B=4。
从第一个关系中减去第二个关系
A+B = 2
C+B = 4我们得出的结论是,A+ by = all = - 2,即第一个消息的第n个字符和第二个消息的第m个字符相差2。由于这两条消息都需要有意义,所以它们根本就不可能是任何消息,而且只要稍微尝试和错误,您就可以阅读这两种信息了--这并不比Sudoku更复杂:
First message : ATTACK AT DAWN
Second message shifted using A-C rule: BQF ORXTNABERN <-- 1st msg can't be it
First message : HELLO WORLD OF
Second message shifted using A-C rule: QUEAMISH OSSIF <-- now we're somewherehttps://security.stackexchange.com/questions/157914
复制相似问题