不经意传输协议是一种密码学技术,允许一方(Bob)从另一方(Alice)接收信息,而Alice并不知道Bob接收了哪条信息。这是一个重要的隐私保护工具,可以应用于各种场景,例如匿名购买、安全的投票系统等等。

协议原理

假设Alice想要发送两条消息给Bob,Bob希望收到其中的一条消息,而Alice不知道Bob接收了哪一条。

  1. Alice 生成两个公钥/私钥密钥对,总共四个密钥。她将两个公开密钥发送给 Bob。
  2. Bob 选择一个对称算法(例如DES)密钥,并使用Alice的其中一个公开密钥加密该密钥。他将加密后的密钥发送给Alice,但不告诉她他使用的是哪个公开密钥。
  3. Alice 使用她的两个私钥分别解密Bob的密钥。在一种情况下,她使用了正确的密钥并成功地解密了Bob的DES密钥。在另一种情况下,她使用了错误的密钥,只是产生了一堆毫无意义的比特。由于她不知道正确的明文,因此她不知道哪个是正确的。
  4. Alice 将她的两条消息分别用两个不同的DES密钥(一个正确的和一个毫无意义的)加密,并将两条加密后的消息都发送给Bob。
  5. Bob 收到两条消息,其中一条是用正确的DES密钥加密的,另一条是用无意义的DES密钥加密的。他用自己的DES密钥解密这两条消息,就能读懂其中一条,而另一条则显得毫无意义。
  6. 在协议完成之后,Alice 将她的私钥交给Bob,以便他能验证她没有进行欺骗。因为Alice无法知道两个DES密钥中的哪一个是真正的,所以这个协议能够防止Alice的攻击。她加密了两条消息,但Bob只能恢复出其中的一条 - 直到第6步。它同样能够防止Bob的攻击,因为在第6步之前,他没有办法得到Alice的私钥来确定加密另一条消息的DES密钥。

应用:匿名购买

我们可以使用类似的不经意传输协议来解决一个问题:Alice是机密的出售者,Alice列举了很多问题,意欲出售各个问题的答案,Bob想买其中一个问题的答案,但又不想让Alice知道自己买的是哪个问题的答案。

具体步骤如下:

  1. Alice 生成两个公钥/私钥密钥对,并将两个公钥发送给Bob。
  2. Bob 选择一个对称算法(例如DES)密钥,并使用其中一个公钥加密该密钥。他将加密后的密钥发送给Alice,但不告诉她他使用的是哪个公钥。
  3. Alice 使用她的两个私钥分别解密Bob的密钥。在一种情况下,她使用了正确的密钥并成功地解密了Bob的DES密钥。在另一种情况下,她使用了错误的密钥,只是产生了一堆毫无意义的比特。由于她不知道正确的明文,因此她不知道哪个是正确的。
  4. Alice 列举出所有问题及其答案,并将它们用两个不同的DES密钥加密。其中一个DES密钥是正确的,另一个是随机的。
  5. Bob 选择一个问题,并使用正确的DES密钥解密该问题的答案。他无法解密另一个问题的答案,因为他只有无意义的DES密钥。
  6. 在完成交易后,Alice 将她的私钥交给Bob以验证她没有进行欺骗。Bob可以使用她的私钥来解密另一个问题的答案,以确保Alice没有使用错误的DES密钥加密答案。

这个协议可以确保Bob能够购买一个问题的答案,而Alice无法知道他购买的是哪个问题的答案。同时,它也可以防止Alice和Bob之间的欺骗。

总结

不经意传输协议是一种重要的密码学技术,可以用于保护隐私,例如匿名购买、安全的投票系统等等。它利用密钥交换和加密技术,确保一方能够接收信息,而另一方不知道接收了哪条信息。


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

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