首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构造某个加密文件的解密与散列匹配的证据?

如何构造某个加密文件的解密与散列匹配的证据?
EN

Cryptography用户
提问于 2018-06-15 02:25:12
回答 1查看 335关注 0票数 3

假设Alice有文件$F$,并生成密钥$K$。她广泛地公布了$hash(F)$的识别信息。她想把文件卖给鲍勃。她用$K$加密文件,并将$E_f = E(F,K)$和$hash(K)$发送给Bob。然而,Bob想要验证这个加密的文件确实是他要求购买的文件。

鲍勃如何验证$hash(Dec(E_f,K)) = hash(f)$只知道$hash(K)$和$E_f$?他不应该能够解密文件,但应该能够证明加密的文件Alice在解密时与散列$hash(f)$匹配。

似乎我需要使用某种ZK防伪,但这可能不起作用,因为证据太大了。

这个问题可能类似于:证明哈希与加密文件匹配,但是,只知道键的散列似乎会带来不同的问题。

这也可以被看作是一个关键$K$的知识证明,这样$hash( K) $与Alice向Bob和$Dec(E_f,K)= hash(f)$显示的那个匹配。

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-06-16 21:15:53

您所描述的非常接近零知识或有支付(ZKCP)提出的交换数字商品比特币。

这个设置是,Alice有一个文件$F$,而Bob会为此付钱。但是他们不信任对方。因此,Alice生成密钥$k$并使用密码$E$加密文件$E_f=E_{K}(F)$,并哈希密钥$y=H(K)$。然后,她向Bob发送$(E_f,y)$,以及知识$(F,k)$的证明,使得$c$是满足$H(K) = y$的密钥$K$下的$F$加密。如果鲍勃对这一证据感到满意,他将在比特币网络上公布一项交易,称有一些比特币被锁在一个账户中,因此无论谁能向账户地址提交$H(K)$的预映像,都可以获取这些比特币。

在您的示例中,您有一个由Alice发布的文件的附加散列值$z$。您似乎希望Bob也能够验证该文件与$z$匹配。在这种情况下,Alice的证明将是一个连接,即$c$是$F$在密钥$K$下的加密,使得$H(K) = y$和$z=hash(F)$。

要做这样的证明,你将需要咆哮(简洁,非互动的知识论据)。从概念上讲,它很简单,证明者表示,他知道的一些秘密,如果由一些已知的函数正确地计算,将产生一些验证者所知道的值。然而,实际的实现可能是相当复杂的,还有一些关于安全属性的警告。

这篇论文包含了更多细节,值得一读:坎帕内利等人的“零知识或有付款:攻击和服务付款”,发表于CCS 2017。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/60041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档