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