不经意传输协议:保护隐私的双向通信协议

不经意传输协议 (Oblivious Transfer) 是一种保护隐私的双向通信协议,允许通信双方以一种选择模糊化的方式传送消息。当传输 1 条消息时,接收方以 1/2 的概率得到发送的消息,但发送方不知道接收方是否得到。当传输 2 条消息时,接收方得到其中的一条消息,但发送方不知道接收方得到的是哪一条。当传输 n 条消息时,接收方得到其中的 m 条消息,但发送方不知道接收方得到的是哪 m 条。

协议原理:

假设 Alice 想要将两份消息发送给 Bob,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 密钥解密每一份消息时,他能读其中之一,另一份在他看起来是毫无意义的。

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

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

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

这个协议确保 Alice 发送给 Bob 两份消息中的一份,但它不保证 Bob 想收到其中的任何一份,也没有办法阻止 Alice 发送给 Bob 两份完全无用的消息。

说到底,密码协议还是要建立在相互信住的基础上。

应用场景:

例如 Alice 是机密的出售者,Alice 列举了 n 个问题,意欲出售各个问题的答案,Bob 想买其中 1 个问题的答案,但又不想让 Alice 知道自己买的是哪个问题的答案。

解决方案:

  1. Alice 生成 n 个公钥/私钥密钥对,每个密钥对对应一个问题的答案。她把所有的公开密钥发送给 Bob。

  2. Bob 选择一个对称算法 (如 DES) 密钥。他选择一个公开密钥,并用它加密他想买的问题的编号。他把这个加密的编号发送给 Alice,且不告诉她他用的是哪一个公开密钥加密的编号。

  3. Alice 解密 Bob 的编号 n 次,每次用一个她的私钥来解密 Bob 的编号。在一种情况下,她使用了正确的密钥并成功地解密了 Bob 的编号。在另一种情况下,她使用了错误的密钥,只是产生了一堆毫无意义而看上去又像一个随机编号的比特。由于她不知道正确的编号,故她不知道哪个是正确的。

  4. Alice 加密每个问题的答案,每个答案用一个不同的在上一步中产生的 DES 密钥 (一个真的和 n-1 个毫无意义的),并把所有的答案都发送给 Bob。

  5. Bob 收到 n 个加密的答案,但只能解密其中一个,即与他发送给 Alice 的加密编号相对应的答案。其他的答案在他看起来是毫无意义的。

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

安全需求:

  • 机密性:Bob 的编号和问题的答案都是加密的,只有拥有正确密钥的人才能解密。- 完整性:协议中的信息没有被篡改或损坏。- 认证性:Bob 可以验证 Alice 的身份,因为只有 Alice 才能解密他发送的加密编号,并且只有 Alice 才能提供正确的私钥。- 不可否认性:Alice 不能否认她发送的答案,因为 Bob 有她的私钥来验证。- 公平性:Bob 和 Alice 都有相同的机会获得他想要的信息,即 Bob 以 1/n 的概率获得他想要的答案,而 Alice 不知道 Bob 获得了哪一个答案。
不经意传输协议:保护隐私的双向通信协议

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

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