不经意传输协议:保护隐私的双向通信协议
不经意传输协议:保护隐私的双向通信协议
不经意传输协议 (Oblivious Transfer) 是一种保护隐私的双向通信协议,允许通信双方以一种选择模糊化的方式传送消息。当传输 1 条消息时,接收方以 1/2 的概率得到发送的消息,但发送方不知道接收方是否得到。当传输 2 条消息时,接收方得到其中的一条消息,但发送方不知道接收方得到的是哪一条。当传输 n 条消息时,接收方得到其中的 m 条消息,但发送方不知道接收方得到的是哪 m 条。
协议原理:
假设 Alice 想要将两份消息发送给 Bob,Bob 想要接收其中一份,但 Alice 不希望知道 Bob 选择的是哪一份。
-
Alice 生成两个公钥/私钥密钥对,或总共四个密钥。她把两个公开密钥发送给 Bob。
-
Bob 选择一个对称算法 (如 DES) 密钥。他选择 Alice 的一个公开密钥,并用它加密他的 DES 密钥。他把这个加密的密钥发送给 Alice,且不告诉她他用的是她的哪一个公开密钥加密的 DES 密钥。
-
Alice 解密 Bob 的密钥两次,每次用一个她的私钥来解密 Bob 的密钥。在一种情况下,她使用了正确的密钥并成功地解密 Bob 的 DES 密钥。在另一种情况下,她使用了错误的密钥,只是产生了一堆毫无意义而看上去又像一个随机 DES 密钥的比特。由于她不知道正确的明文,故她不知道哪个是正确的。
-
Alice 加密她的两份消息,每一份用一个不同的在上一步中产生的 DES 密钥 (一个真的和一个毫无意义的),并把两份消息都发送给 Bob。
-
Bob 收到一份用正确 DES 密钥加密的消息及一份用无意义 DES 密钥加密的消息。当 Bob 用他的 DES 密钥解密每一份消息时,他能读其中之一,另一份在他看起来是毫无意义的。
-
Bob 现在有了 Alice 两份消息中的一份,而 Alice 不知道他能读懂哪一份。很遗憾,如果协议到此为止,Alice 有可能进行欺骗。另一个步骤必不可少。
-
在协议完成,并且知道了两种可能传输的结果后,Alice 必须把她的私钥给 Bob,以便他能验证她没有进行欺骗。毕竟,她可以用第 (4) 步中的两个密钥加密同一消息。这时 Bob 就可以弄清楚第二份消息。
因为 Alice 无法知道两个 DES 密钥中的哪一个是真的,故这个协议能防止 Alice 的攻击。她加密两份消息,但 Bob 只能恢复出其中的一个 - 直到第 (6) 步。它同样能防止 Bob 的攻击,因为在第 (6) 步之前,他没有办法得到 Alice 的私钥来确定加密另一份消息的 DES 密钥。
这个协议确保 Alice 发送给 Bob 两份消息中的一份,但它不保证 Bob 想收到其中的任何一份,也没有办法阻止 Alice 发送给 Bob 两份完全无用的消息。
说到底,密码协议还是要建立在相互信住的基础上。
应用场景:
例如 Alice 是机密的出售者,Alice 列举了 n 个问题,意欲出售各个问题的答案,Bob 想买其中 1 个问题的答案,但又不想让 Alice 知道自己买的是哪个问题的答案。
解决方案:
-
Alice 生成 n 个公钥/私钥密钥对,每个密钥对对应一个问题的答案。她把所有的公开密钥发送给 Bob。
-
Bob 选择一个对称算法 (如 DES) 密钥。他选择一个公开密钥,并用它加密他想买的问题的编号。他把这个加密的编号发送给 Alice,且不告诉她他用的是哪一个公开密钥加密的编号。
-
Alice 解密 Bob 的编号 n 次,每次用一个她的私钥来解密 Bob 的编号。在一种情况下,她使用了正确的密钥并成功地解密了 Bob 的编号。在另一种情况下,她使用了错误的密钥,只是产生了一堆毫无意义而看上去又像一个随机编号的比特。由于她不知道正确的编号,故她不知道哪个是正确的。
-
Alice 加密每个问题的答案,每个答案用一个不同的在上一步中产生的 DES 密钥 (一个真的和 n-1 个毫无意义的),并把所有的答案都发送给 Bob。
-
Bob 收到 n 个加密的答案,但只能解密其中一个,即与他发送给 Alice 的加密编号相对应的答案。其他的答案在他看起来是毫无意义的。
-
在协议完成,并且知道了两种可能传输的结果后,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 著作权归作者所有。请勿转载和采集!