基于不经意传输协议的机密信息出售方案
基于不经意传输协议的机密信息出售方案
不经意传输协议允许发送方发送多条信息,而接收方只能获取其中一条,并且发送方无法得知接收方具体获取了哪条信息。本文将介绍如何利用不经意传输协议设计一个机密信息出售方案。
问题描述:
Alice 是一位机密信息的出售者,她拥有 n 个问题的答案。Bob 想要购买其中一个问题的答案,但他不想让 Alice 知道他购买的是哪个问题的答案。
解决方案:
我们可以使用类似于文章开头描述的不经意传输协议来解决这个问题。具体步骤如下:
-
密钥生成与分发: Alice 随机生成 n 个公钥/私钥密钥对 (pk1, sk1), (pk2, sk2), ..., (pkn, skn),并将 n 个公钥发送给 Bob。
-
Bob 选择密钥并加密: Bob 选择一个对称算法(如 DES)密钥 K,并选择 Alice 的一个公钥 pki (1 <= i <= n) 对 K 进行加密,得到加密后的密钥 C = Enc(pki, K)。Bob 将 C 发送给 Alice,但不告诉 Alice 他使用了哪个公钥进行加密。
-
Alice 解密并加密答案: Alice 使用她所有的私钥 sk1, sk2, ..., skn 依次解密 C。由于只有一个私钥 ski 能够解密 C,Alice 将得到 K = Dec(ski, C)。Alice 使用 K 加密所有问题的答案,每个答案使用不同的随机数进行加密,例如:c1 = Enc'(K, r1, m1), c2 = Enc'(K, r2, m2), ..., cn = Enc'(K, rn, mn)。Alice 将所有加密后的答案 c1, c2, ..., cn 发送给 Bob。
-
Bob 解密答案: Bob 收到所有加密后的答案后,使用密钥 K 解密对应于他所选择公钥 pki 的答案 ci = Dec'(K, ci),即可获得对应问题的答案 mi。
-
验证阶段 (可选): 为了防止 Alice 作弊,例如使用相同的密钥加密所有答案,Bob 可以要求 Alice 在协议结束后公开所有私钥。Bob 可以使用这些私钥解密所有答案,并验证只有一个答案是正确的。
安全需求:
该协议需要满足以下安全需求:
-
不经意性: Alice 无法知道 Bob 购买的是哪个问题的答案。
-
机密性: Bob 无法获得其他问题的答案,只能获得他购买的问题的答案。
-
可验证性: Bob 能够验证 Alice 是否作弊,例如使用相同的密钥加密所有答案。
总结:
本文介绍了一种基于不经意传输协议的机密信息出售方案,该方案能够有效保护买卖双方的利益。该方案简单易于实现,并且能够满足安全需求。
原文地址: https://www.cveoy.top/t/topic/fZ3r 著作权归作者所有。请勿转载和采集!