本文详细分析了Frozen Heart漏洞,这一漏洞源于Fiat-Shamir变换的安全性问题。在阐述Fiat-Shamir变换及其在零知识证明中的应用后,文章探讨了弱Fiat-Shamir变换如何导致攻击者在不知秘密值的情况下伪造证明,从而威胁零知识证明系统的安全性。最后,作者强调在实施过程中必须认真审查Fiat-Shamir变换的正确性。
本文介绍了Fiat-Shamir变换在零知识证明(ZKPs)和多方计算(MPC)中的重要性,并强调了正确实现该变换的挑战。为了帮助开发者避免常见错误,Trail of Bits发布了一个名为Decree的Rust库,该库旨在简化Fiat-Shamir transcript的规范和强制执行,并通过Inscribe trait确保包含上下文信息。
Trail of Bits 公开披露了多个零知识证明系统(包括 PlonK 和 Bulletproofs)实现中的严重漏洞,这些漏洞由 Fiat-Shamir 转换的不安全实现引起,允许恶意用户伪造随机语句的证明。
本文是Schnorr签名安全系列文章的第二部分,主要讲解了如何将Schnorr身份证明协议转化为签名方案,并论证转换后的签名协议的正确性。文章详细解释了Fiat-Shamir变换,以及如何通过将 Schnorr 签名的攻击化约为对 Schnorr ID 协议的攻击来证明Schnorr签名的安全性。