首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏网络安全技术点滴分享

    Bulletproofs中的Frozen Heart漏洞:零知识证明系统的致命缺陷

    Bulletproofs中的Frozen Heart漏洞零知识证明与Fiat-Shamir变换本文假设读者已具备零知识证明的基础知识。如需深入了解,可参考Matt Green的入门指南等资源。 关于Fiat-Shamir变换的详细解释,可查阅作者先前撰写的博客文章。ZKDocs也提供了相关主题的更多信息。 Frozen Heart漏洞技术分析Bulletproofs存在多个Fiat-Shamir变换点(具体数量取决于参数配置),可能以不同方式被滥用。 原始Bulletproofs论文作者推荐的不安全Fiat-Shamir实现方式导致了该漏洞,影响ING Bank的zkrp、SECBIT Labs的ckb-zkp以及Adjoint, Inc.的bulletproofs 漏洞核心问题根据Fiat-Shamir安全实现准则:哈希计算必须包含零知识证明语句中的所有公共值(g, h, V, n)以及证明过程中生成的所有随机承诺值。

    28510编辑于 2025-08-21
  • 来自专栏密码学和区块链

    Schnorr 协议

    而采用 Hash 函数的方法来把一个交互式的证明系统变成非交互式的方法被称为 Fiat-Shamir 变换。 零知识证明 Schnorr 协议经过 Fiat-Shamir 变换之后,就具有 NIZK 性质。 Schnorr 协议,对于任意的 Public-Coin 协议,都可以用 Fiat-Shamir 变换来把整个协议压缩成一步交互,也就是一个非交互式的证明系统。 通过 Fiat-Shamir 变换,可以把 Bob 每一次的挑战行为用一次随机预言来代替。 下面是一个示例图,大家可以迅速理解这个 Fiat-Shamir 变换的做法。

    1.7K40发布于 2020-12-16
  • 来自专栏AI SPPECH

    039_密码学实战:零知识证明技术深度解析——从交互式协议到zkSNARK实现的完整指南

    第三章 非交互式零知识证明 3.1 Fiat-Shamir变换 Fiat-Shamir变换是将交互式零知识证明转换为非交互式零知识证明的关键技术: 基本思想:使用密码学哈希函数代替验证者的随机挑战 变换过程 response(commitment, c, secret) 最终证明为:(commitment, r) 验证者计算c = H(commitment || public_inputs)并验证响应 以下是Fiat-Shamir 变换的简化实现: import hashlib def fiat_shamir_transform(interactive_protocol, public_inputs): """执行Fiat-Shamir 使用Fiat-Shamir变换生成挑战c # 将公共参数和承诺组合起来作为哈希输入 challenge_data = f"{self.p}:{self.g}:{y}:{t 总结与未来展望 8.1 零知识证明技术总结 零知识证明技术已经从理论研究发展到实际应用: 基本概念:零知识证明的核心是在不泄露信息的情况下证明知识 交互式协议:通过多轮交互实现零知识证明 非交互式证明:通过Fiat-Shamir

    50010编辑于 2025-11-18
  • 来自专栏本体研究院

    本体技术视点 | 为什么 BIP - 340 选择引入 Schnorr 签名算法?

    Schorr 签名算法是将密码学中著名的 Fiat-Shamir 转换应用到 Schnorr 身份鉴别协议转换而来。算法的正确性显而易见,它的安全性也在相应的安全模型下得到了证明。

    1K20发布于 2021-11-16
  • 来自专栏密码学和区块链

    Zerocoin: Anonymous Distributed E-Cash from Bitcoin

    我们使用Fiat-Shamir变换将其转换为非交互式证明,并使用以下表示法引用生成的证明: 构造 现在描述一个具体的分散式电子现金方案(Decentralized E-Cash Scheme)。 相反,我们使用 来签名交易哈希,要求我们将交易摘要包括在针对 Fiat-Shamir proofs 的挑战的哈希计算中。

    2.7K20发布于 2020-12-24
  • 来自专栏绿盟科技研究通讯

    区块链隐私保护技术解析——零知识证明

    详细的过程如下: 关于非交互式零知识证明的实现,例如在上述方案的基础上,使用Fiat-Shamir启发式,令x=hash(A0,……Am),证明者可以不通过和验证者交互生成一个关于witness的证明 简洁性(Succinct):证明是简短的,并且可以容易验证(验证者计算量小) 非交互式(Non-interactive):不需要上面验证者对x的提问是一次交互,采用Fiat-Shamir启发式即可替换为非交互式

    3.4K20编辑于 2022-03-11
  • 来自专栏机器之心

    若通过验证可颠覆美国后量子密码设计,清华陈一镭预印论文破解格密码

    在个人介绍中,陈一镭的研究成果主要包括设计了格问题的量子算法,建立了多线性映射和代码混淆在格问题上安全实现的基础,提出了证明 Fiat-Shamir 假设的方法,以及提出了一个不可逆群的构造。

    31110编辑于 2024-04-12
  • 来自专栏Python中文社区

    破解验证,让爬取更随心所欲!

    这种验证具可以限制爬虫批量的抓取数据,因为它的有效时间很短,而且这个钥匙是第一无二的,例如用md5、RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr

    2.1K91发布于 2018-01-31
  • 来自专栏腾讯技术工程官方号的专栏

    拿什么保护你,我的区块链

    我们可以用 Fiat-Shamir 启发式把交互式的证明转化成非交互式的证明,也就是证明者算出一个非交互式证明之后,任何人都能在没有证明者协助的情况下进行验证 (类似签名中的验签)。 关于  protocol 和 Fiat-Shamir 协议的基本概念,可以参考下面的知识小课堂。 证明输入中的  其实是  的一个 Pedersen 承诺。

    1.8K41发布于 2020-07-27
  • 来自专栏区块链入门

    HTTPS协议原理和流程分析

    普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等

    16.1K32发布于 2019-05-14
  • 来自专栏区块链大本营

    剖析区块链生态中的法治信任和社群信任

    idemix使用非交互式的Fiat-Shamir启发协议构造零知识证明。对于一个承诺y,证明方需证明自己知道x,使得y = gx。

    1.2K90发布于 2018-05-10
  • 来自专栏AI SPPECH

    008_具身人工智能的数据隐私保护:联邦学习与同态加密在多传感器环境中的应用

    generate_challenge_response(self, offset, r): """生成挑战响应(简化示例)""" # 在实际的零知识证明系统中,这将涉及交互式挑战-响应协议 # 或使用 Fiat-Shamir

    39410编辑于 2025-11-19
  • 来自专栏前沿安全技术

    苹果 AirDrop 的设计缺陷与改进

    这可以再次使用 Schnorr 的协议和 Fiat-Shamir 启发式有效地实例化。或者,Apple 可以选择密钥 αi 并将它们与签名值 Yσ,i 一起交给客户端设备。

    2.1K30编辑于 2023-06-27
  • 来自专栏计算机工具

    区块链中的共识机制以及共识算法

    Fiat-Shamir启发式允许我们用非交互式的随机神谕访问代替交互式步骤3,但在实践中,使用的是Hash函数。

    2.6K10编辑于 2024-12-13
领券