不经意传输协议:发送n条消息,接收方获得m条
根据上面的例子,传输n条消息时,接收方得到其中的m条的协议可以采用类似的方法。具体步骤如下:
(1) 发送方产生n个公钥/私钥密钥对,或总共2n个密钥。将n个公开密钥发送给接收方。
(2) 接收方选择一个对称算法(如DES)密钥,并选择发送方的一个公开密钥,用它加密他的DES密钥。他将这个加密的密钥发送给发送方,且不告诉她他用的是她的哪一个公开密钥加密的DES密钥。
(3) 发送方解密接收方的密钥n次,每次用一个她的私钥来解密接收方的密钥。在一种情况下,她使用了正确的密钥并成功地解密接收方的DES密钥。在另一种情况下,她使用了错误的密钥,只是产生了一堆毫无意义而看上去又像一个随机DES密钥的比特。由于她不知道正确的明文,故她不知道哪个是正确的。
(4) 发送方加密她的n份消息,每一份用一个不同的在上一步中产生的DES密钥(一个真的和n-1个毫无意义的),并将n份消息都发送给接收方。
(5) 接收方收到n-1份用无意义DES密钥加密的消息及一份用正确DES密钥加密的消息。当接收方用他的DES密钥解密每一份消息时,他能读其中之一,其他的在他看起来是毫无意义的。
(6) 在协议完成,并且知道了两种可能传输的结果后,接收方必须要求发送方提供私钥以验证她没有进行欺骗。发送方必须提供n个私钥,以便接收方能够验证所有的加密消息。如果发送方提供的私钥与之前发送的公钥不一致,则说明发送方进行了欺骗。
通过这种方法,接收方可以得到其中的m条消息,而发送方无法知道接收方得到了哪些消息。同时,发送方也无法进行欺骗,因为他必须提供所有的私钥以验证所有的加密消息。
原文地址: https://www.cveoy.top/t/topic/oIyT 著作权归作者所有。请勿转载和采集!