本文介绍了蒙哥马利曲线和应用实例Curve25519,Curve25519得到广泛使用,其自身的长处简单说明,没有展开
文章详细介绍了如何使用多项式承诺方案在零知识证明中验证多项式乘法的正确性,包括算法步骤和优化方法,并附有代码实现。
Ed25519使用了扭曲爱德华曲线,签名过程和之前介绍过的Schnorr,secp256k1, sm2都不一样,最大的区别在于没有使用随机数,这样产生的签名结果是确定性的,即每次对同一消息签名结果相同。
本文介绍了在椭圆曲线背景下的配对技术,强调其在零知识证明协议和BLS签名中的应用。文中详细阐述了一维函数、阿贝尔群和计算难题,并通过具体示例深入探讨了配对的定义及相关性质。强调了对于椭圆曲线配对的计算需求及安全性考虑,同时对Weil和Tate配对进行了说明,最后指出将在后续文章中探讨具体的加密应用。
这篇文章全面介绍了椭圆曲线数字签名算法(ECDSA)的基本概念及其在以太坊中的应用,讲解了公钥加密、数字签名的生成与验证过程,以及ECDSA的安全性基础。了解这些内容对于理解区块链技术中的身份验证和签名至关重要。
本文详细介绍了Schnorr签名和Musig的实现原理。首先讲解了与椭圆曲线相关的基础知识,然后深入探讨了Schnorr签名的签名和验证过程,以及为什么需要随机数nonce。接着介绍了Musig的聚合公钥和签名的实现,包括如何通过多轮通信防止关键取消攻击,确保多个参与者的安全和隐私。
本节扩展了一般椭圆曲线上密码协商的原理,原理更简单易于理解,接着讨论了大素数判定的方法,这是在密码学实现中普遍使用的方法,给出了简单的论证,并不详细
本文将介绍一种新的椭圆曲线实例-- Baby Jubjub Elliptic Curve。
深入解析椭圆曲线
以太坊是一个公共的区块链网络,可以通过各种不同类型的账户访问。与比特币类似,底层密码学用的是SECP256K1椭圆曲线。但这是什么意思呢?什么是账户?什么是密钥?什么是地址?为什么要校验checksum ?
有限域上的椭圆曲线是零知识证明的基础。零知识的实现是基于离散对数问题。从计算的角度来看,F_p是个有限域,在之基础上建立的椭圆曲线点的运算都是在这个域范围内。有限域上的椭圆曲线上有很多循环子群F_r,具有加法同态的特性。离散对数问题指的是,在循环子群上已知两点,却很难知道两点的标量。
文章详细介绍了BLS12-381椭圆曲线的参数化和实例化过程,包括如何计算其基础域模数和子群,以及构造效率的双线性配对函数的步骤。尤其关注了适合zk-SNARK使用的结构和性能要求,提供了具体的生成器和序列化形式的实现细节。
本文介绍了椭圆曲线在加密和数字签名中的应用,详细阐述了公钥和私钥基于离散对数问题的生成原理,以及椭圆曲线集成加密方案(ECIES)和椭圆曲线数字签名算法(ECDSA)的工作机制。文章强调椭圆曲线群运算在保障加密和签名安全性中的核心作用,并指出哈希函数等进阶主题将在后续讨论。
Constantine是一个高性能密码学库,专注于区块链协议和零知识证明系统。它提供常数时间实现的密码学原语,支持多种椭圆曲线和协议,包括以太坊BLS签名、KZG承诺等,并提供Nim、C、Rust、Go等多种语言的接口。该库旨在提供快速、紧凑和强化的椭圆曲线密码学解决方案。
本文探讨了zkSNARK技术在Groth16协议中的可塑性攻击漏洞,解释了攻击者如何通过修改证明中的椭圆曲线点来生成新的有效证明,并提供了相关的代码示例。