首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >零知识证明使用哈希链-在算法中有缺陷吗?

零知识证明使用哈希链-在算法中有缺陷吗?
EN

Cryptography用户
提问于 2018-04-14 05:11:20
回答 1查看 1K关注 0票数 6

我偶然看到一篇博客文章http://blog.stratumn.com/zkp-hash-chains/,它提供了一个Protocol to prove in zero-knowledge that an integer (such as age or balance) is greater than a known threshold.

它是基于本文:可验证的网络广告交换方案

该议定书如下:

  1. 提供证明服务的受信任的中央文档授权机构。为了证明她的年龄,P已经要求这个权威机构提供一个秘密的S。当局将一个秘密(256位) S分配给P。假设P的(S)是:
  2. 然后,该机构计算出一个大于P的年龄的散列链: EncryptedAge=HASH^{ActualAge+1} (S)
  3. P还计算Proof=HASH ^ {1+ActualAge−AgeToProve} (S)
  4. 然后P发送给另一方:
    1. 权威机构签署的证明工具包(其中包含她的EncryptedAge )
    2. 她计算出来的证据

  5. 需要验证P的年龄的一方是:
    1. 从管理局的信息中提取P的EncryptedAge
    2. 计算: VerifiedAge=HASH ^ {AgeToProve} (证明)
    3. 比较VerifiedAge == EncryptedAge__。如果相同,则验证年龄大于年龄。

下面是JavaScript中用于测试上述协议的代码:https://repl.it/repls/SmartOccasionalQueries

我认为协议中有一个缺陷,它发生在这一步:

代码语言:javascript
复制
Proof=HASH ^ {1+ActualAge−AgeToProve} (S)

1+ActualAge等于AgeToProve时,哈希将不应用于S

  1. 最后把这个秘密作为证据。S应该被保密。
  2. 它以验证年龄==加密年龄的计算结束,尽管事实并非如此,例如:https://repl.it/repls/OrderlyPalegreenScriptinglanguages

下面是使用Age = 19AgeToProof = 20的博客示例:

EN

回答 1

Cryptography用户

回答已采纳

发布于 2018-04-14 08:55:59

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

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

复制
相关文章

相似问题

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