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