Alice 向 Bob 传输三条消息,Bob 只能收到其中一条:一种安全的加密方案
(1) Alice 产生三个公钥/私钥密钥对,或总共六个密钥。她把三个公开密钥发送给 Bob。 (2) Bob 选择一个对称算法 (如 DES) 密钥。他选择 Alice 的一个公开密钥,并用它加密他的 DES 密钥。他把这个加密的密钥发送给 Alice,并不告诉她他用的是她的哪一个公开密加密的 DES 密钥。 (3) Alice 解密 Bob 的密钥三次,每次用一个她的私钥来解密 Bob 的密钥。在一种情况下,她使用了正确的密钥并成功地解密 Bob 的 DES 密钥。在另外两种情况下,她使用了错误的密钥,只是产生了一堆毫无意义而看上去又像一个随机 DES 密钥的比特。由于她不知道正确的明文,故她不知道哪个是正确的。 (4) Alice 加密她的三份消息,每一份用一个不同的在上一步中产生的 DES 密钥 (一个真的和两个毫无意义的),并把三份消息都发送给 Bob。 (5) Bob 收到一份用正确 DES 密钥加密的消息及两份用无意义 DES 密钥加密的消息。当 Bob 用他的 DES 密钥解密每一份消息时,他能读其中之一,另外两份在他看起来是毫无意义的。 (6) 在协议完成,并且知道了三种可能传输的结果后,Alice 必须把她的两个错误的私钥给 Bob,以便他能验证她没有进行欺骗。毕竟,她可以用第 (4) 步中的三个密钥加密同一消息。这时 Bob 就可以弄清楚另外两份消息。
因为 Alice 无法知道三个 DES 密钥中的哪一个是真的,故这个协议能防止 Alice 的攻击。她加密三份消息,但 Bob 只能恢复出其中的一个 - 直到第 (6) 步。它同样能防止 Bob 的攻击,因为在第 (6) 步之前,他没有办法得到 Alice 的两个错误的私钥来确定加密另外两份消息的 DES 密钥。
原文地址: http://www.cveoy.top/t/topic/fZY6 著作权归作者所有。请勿转载和采集!