不经意传输协议是一种允许Alice向Bob发送两条消息中的一条,而Alice不知道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密钥解密每一份消息时,他能读其中之一,另一份在他看起来是毫无意义的。

Bob现在有了Alice两份消息中的一份,而Alice不知道他能读懂哪一份。很遗憾,如果协议到此为止,Alice有可能进行欺骗。另一个步骤必不可少。

(6) 在协议完成,并且知道了两种可能传输的结果后,Alice必须把她的私钥给Bob,以便他能验证她没有进行欺骗。毕竟,她可以用第(4)步中的两个密钥加密同一消息。这时Bob就可以弄清楚第二份消息。

因为Alice无法知道两个DES密钥中的哪一个是真的,故这个协议能防止Alice的攻击。她加密两份消息,但Bob只能恢复出其中的一个 - 直到第(6)步。它同样能防止Bob的攻击,因为在第(6)步之前,他没有办法得到Alice的私钥来确定加密另一份消息的DES密钥。

然而,这个协议存在一些安全问题。首先,Bob需要相信Alice没有在第(6)步之前泄露她的私钥给任何其他人。否则,其他人就可以欺骗Bob。其次,如果有人在传输过程中拦截了Bob发送给Alice的加密的DES密钥,那么拦截者就可以解密Bob收到的消息并欺骗Bob。因此,这个协议是不安全的,应该使用更强大的加密和认证技术来保护通信。

不经意传输协议:安全性分析

原文地址: https://www.cveoy.top/t/topic/oIxa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录