不经意传输:如何安全地发送多条消息
'不经意传输'是一种加密协议,允许 Alice 向 Bob 安全地发送多条消息,而 Bob 只能解密其中的一条。Alice 并不知道 Bob 解密了哪一条消息。
协议描述:
以下描述了不经意传输协议的步骤,用于传输两条消息。
- Alice 生成两个公钥/私钥密钥对,总共四个密钥。她将两个公开密钥发送给 Bob。
- Bob 选择一个对称算法(如 DES)密钥。他选择 Alice 的一个公开密钥,并用它加密他的 DES 密钥。他将这个加密的密钥发送给 Alice,但不告诉她他使用的是哪个公开密钥加密的 DES 密钥。
- Alice 解密 Bob 的密钥两次,每次使用一个私钥。在一种情况下,她使用了正确的密钥并成功解密了 Bob 的 DES 密钥。在另一种情况下,她使用了错误的密钥,只产生了一堆毫无意义的比特,看起来像一个随机的 DES 密钥。由于她不知道正确的明文,所以她不知道哪个是正确的。
- Alice 使用上一步中产生的两个 DES 密钥(一个真实和一个毫无意义的)分别加密她的两条消息,并将两条消息都发送给 Bob。
- Bob 收到一条用正确 DES 密钥加密的消息和一条用无意义 DES 密钥加密的消息。当 Bob 用他的 DES 密钥解密每条消息时,他能读懂其中之一,另一条在他看来是毫无意义的。
- 在协议完成,并且知道了两种可能传输的结果后,Alice 必须把她的两个私钥给 Bob,以便他能验证她没有进行欺骗。毕竟,她可以用第 (4) 步中的两个密钥加密同一消息。这时 Bob 就可以弄清楚第二条消息。
扩展到三条消息:
根据上面的例子,传输三条消息时的协议可以是:
- Alice 生成三个公钥/私钥密钥对,总共六个密钥。她将三个公开密钥发送给 Bob。
- Bob 选择一个对称算法(如 DES)密钥。他选择 Alice 的一个公开密钥,并用它加密他的 DES 密钥。他将这个加密的密钥发送给 Alice,但不告诉她他使用的是哪个公开密钥加密的 DES 密钥。
- Alice 解密 Bob 的密钥三次,每次使用一个私钥。在两种情况下,她使用了正确的密钥并成功解密了 Bob 的 DES 密钥。在第三种情况下,她使用了错误的密钥,只产生了一堆毫无意义的比特,看起来像一个随机的 DES 密钥。由于她不知道正确的明文,所以她不知道哪个是正确的。
- Alice 使用上一步中产生的三个 DES 密钥(一个真实和两个毫无意义的)分别加密她的三条消息,并将三条消息都发送给 Bob。
- Bob 收到一条用正确 DES 密钥加密的消息和两条用无意义 DES 密钥加密的消息。当 Bob 用他的 DES 密钥解密每条消息时,他能读懂其中之一,另外两条在他看来是毫无意义的。
- 在协议完成,并且知道了三种可能传输的结果后,Alice 必须把她的两个私钥给 Bob,以便他能验证她没有进行欺骗。毕竟,她可以用第 (4) 步中的三个密钥加密同一消息。这时 Bob 就可以弄清楚第三条消息。
安全性分析:
该协议防止 Alice 进行攻击,因为她无法知道三个 DES 密钥中的哪一个是真实的。她加密了三条消息,但 Bob 只能恢复出其中的一条,直到第 (6) 步。
该协议同样防止 Bob 进行攻击,因为在第 (6) 步之前,他没有办法得到 Alice 的私钥来确定加密另外两条消息的 DES 密钥。
总结:
不经意传输协议是一种安全有效的通信协议,允许 Alice 安全地向 Bob 发送多条消息,而 Bob 只能解密其中的一条。该协议利用了公钥加密和对称加密的结合,并通过验证步骤防止一方进行欺骗。
原文地址: https://www.cveoy.top/t/topic/oIxP 著作权归作者所有。请勿转载和采集!