本文介绍了在Lambda-Ingo ZK CTF比赛中提出的挑战及其解决方案,包括Plonk中的常见攻击(frozen heart和缺乏blinding polynomials)以及利用FRI生成伪造证明或从witness中恢复信息。作者还提到将在Lambdaworks exercises repo中添加更多练习和案例研究,以便人们学习构建证明系统以及在实现中可能出现的一些常见陷阱和漏洞。
本文探讨了使用Rust构建安全可靠系统的挑战,尽管Rust在内存管理和并发方面有优势,但仍存在内存泄漏、错误处理、线程安全、宏滥用和不安全代码等潜在漏洞。强调了在工程实践中,即使使用最佳实践,也可能出现bug,因此需要谨慎对待潜在的漏洞,并采取措施来最小化风险。
本文介绍了MLIR(Multi-Level Intermediate Representation),这是一个旨在统一不同编译器子系统并从LLVM的开发经验中吸取教训的基础设施项目。
本文深入探讨了PLONK(Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge)的工作原理和协议基础,PLONK 是一种常用的零知识简洁非交互式知识论证(ZK-SNARK)。
本文深入探讨了NTRU密码系统,解释了其公钥和私钥的结构,并展示了如何将NTRU密钥搜索问题转化为在特定格中寻找短向量的问题。文章还讨论了使用暴力破解方法寻找短向量的复杂性,表明对于足够大的维度,这种方法是不可行的。
本文介绍了公钥加密和格密码学的基本概念。公钥加密使用公钥和私钥加密信息,而格密码学利用多维空间中的点阵结构来构建加密方案,以抵抗量子计算机的攻击。文章还提到了NTRU加密方案,并解释了其加密和解密的过程。
本文介绍了差分模糊测试(Differential Fuzzing)的概念、使用场景和结构。差分模糊测试通过生成大量随机输入,比较同一算法的不同实现,以发现逻辑错误。文章还提供了一个使用Rust的libfuzzer工具的差分模糊测试示例,并讨论了如何处理不同实现间输入输出格式的差异,以确保测试的有效性。
文章讨论了零知识证明(ZKPs)等密码学技术在应对日益复杂的社会挑战中的作用,强调了其在区块链、人工智能、硬件安全、国家安全以及数据隐私保护等多个领域的潜在应用。文章指出,随着AI普及和中心化信任的减弱,ZKPs和同态加密等技术将变得至关重要,并表示将致力于支持相关技术的初创企业。
本文深入探讨了使用Go语言编写的快速ZK-SNARK库Gnark,该库提供高层和低层API,用于设计零知识证明电路。文章通过实例展示了如何使用Gnark进行ZK证明的生成和验证,并分析了在使用低层API时发现的一些问题,如需要手动构建电路约束以及可能存在的安全隐患,最后总结了Gnark在ZKP应用开发中的优缺点,适合希望深入了解Gnark库的开发者阅读。
本文介绍了Apple的GPU编程框架Metal及其编程语言MSL,并展示了如何使用Rust wrapper(Metal-rs)在GPU上进行计算,并通过一个简单的数组乘积例子说明了Metal的基本结构和编程方法。文章还简要概述了FFT算法及其在加速多项式乘法中的应用,为后续在GPU上实现FFT算法做铺垫。