首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZKP:具有保密消息和已知哈希的非对称加密

ZKP:具有保密消息和已知哈希的非对称加密
EN

Cryptography用户
提问于 2019-04-12 08:14:24
回答 2查看 491关注 0票数 1

我正在搜索一个支持非对称加密的ZKP包,以便实现以下场景:

卡罗尔用爱丽丝的公钥加密消息m,并将密文发送给爱丽丝。鲍伯和艾丽斯都知道\operatorname{hash}(m),但是因为m是用爱丽斯的公钥加密的,所以鲍勃不知道m--只有爱丽丝知道m

这里是需要ZKP的部分: Alice想要向Bob证明这个密文实际上是对哈希为\operatorname{hash}(m)的消息的加密。

换句话说,我想证明我有一个值,它的散列等于y=散列( a ),其加密形式是z= enc(a),但我不想显示a。

我在ZKP包中进行了彻底的搜索,但是没有一个能实现加密,所以我认为ZKP不是解决方案。

是否有任何可用的软件包支持我想要做的?

EN

回答 2

Cryptography用户

发布于 2019-04-23 10:43:17

如果你想证明一个像散列(A)= y这样的语句,我建议你使用一个通用的零知识协议来证明一个布尔电路的计算,它用一个目击者来证明,比如现在的这里这里。作者首次发表了SHA256在github上的参考实现。尽管要另外证明z= enc(a)这样的语句并不是不可能的,但出于以下几个原因,我建议您不要这样做:

  • 由于预期的电路尺寸和深度,性能可能会很差。
  • 考虑到你想要安全对付的对手模型和你选择的算法,如果你不注意的话,仍然有可能产生攻击。
票数 1
EN

Cryptography用户

发布于 2019-04-15 09:39:57

如果可能,只需使用用于身份验证的HMAC包装消息(在您的示例中是hash(m))即可。

根据维基百科的说法:

在密码学中,HMAC (有时扩展为密钥散列消息身份验证代码或基于哈希的消息身份验证代码)是一种特定类型的消息身份验证代码(MAC),涉及密码散列函数和秘密加密密钥。它可以用于同时验证消息的数据完整性和身份验证,就像对任何MAC一样。

有大量的HMAC实现,因此很容易找到适合您需要的包。

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

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

复制
相关文章

相似问题

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