本文介绍了椭圆曲线密码学(ECC)中椭圆曲线上的点群、子群和阶的概念,并结合Baby Jubjub曲线,通过Go语言代码示例展示了如何寻找曲线上的有效点以及如何使用生成器点和基点来访问不同的点群。文章还提及了ECC抗经典计算攻击的强度。
本文介绍了 Baby Jubjub 椭圆曲线在零知识证明中的应用。Baby Jubjub 曲线因其高效的计算特性和与现有技术的兼容性,成为 zk-SNARK 电路的理想选择。文章详细阐述了 Baby Jubjub 曲线的参数设置、生成点以及点加运算的实现,并提供了 Go 语言的示例代码,展示了如何在实际应用中使用该曲线进行标量乘法和点加运算,并且介绍了在以太坊中的应用。
本文探讨了密码学中零值(zero value)和单位元(identity element)可能引发的问题。零值可能导致计算短路、信息丢失,甚至导致签名验证失效;针对椭圆曲线,如果使用户陷入使用弱生成值的陷阱,攻击者可以利用零点问题,比如通过“伪造公钥攻击”篡改签名,在代码中,需要检查零值以防止攻击。
本文深入探讨了比特币中使用的 RIPEMD160 和 SHA-256 哈希算法,分析了中本聪选择这两种算法的原因,包括抵抗长度扩展攻击、生成较短的公钥ID,以及增加安全性,文章还给出了生成比特币密钥的示例代码,并解释了RIPEMD160在比特币密钥生成中的作用。
本文介绍了VeraCrypt中使用的经典加密算法,包括Twofish, Serpent, Camellia, Kuznyechik,以及其支持的哈希算法,如SHA-256, SHA-512, BLAKE2s-256, Whirlpool, Streebog。同时,文章还回顾了TrueCrypt的历史,包括其突然停止开发以及可能的原因,并讨论了TrueCrypt的替代方案。
本文介绍了NFT(非同质化代币)的概念和应用,并展示了如何使用智能合约创建和分配NFT。文章通过一个实际的例子,展示了如何为学生的课程成绩创建NFT,并将其分配给学生。
本文介绍了如何从以太坊私钥派生出公钥和公有地址。文章解释了以太坊中使用的椭圆曲线加密(ECC)secp256k1,展示了通过私钥生成公钥并进一步生成公有地址的步骤,并提供了一个Python代码示例,演示了如何使用私钥计算出相应的公有地址。
本文介绍了后量子密码学中的多变量二次(MQ)签名方案,重点比较了UOV(Unbalanced Oil and Vinegar)和MAYO签名方案。UOV签名速度快、签名尺寸小,但是密钥尺寸太大。MAYO是UOV的变体,具有更小的公钥尺寸,在NIST的额外签名竞赛中表现出潜力。
本文介绍了ML-KEM(Module-Learning Key Encapsulation Mechanism),一种后量子密码学中的密钥封装方法,旨在替代传统的Diffie-Hellman密钥交换。文章通过逐步指南,阐述了ML-KEM的原理,包括密钥生成、封装和解封装过程,并提供了使用wolfCrypt库进行ML-KEM-512实现的示例代码。
本文分析了RSA密钥的结构和生成过程,包括模数N的计算、公钥和私钥的构成,以及如何使用中国剩余定理(CRT)加速解密过程。通过wolfSSL库生成RSA密钥,并展示了DER和PEM格式的密钥,以及如何解析ANS.1格式以查看密钥参数,最后验证了p和q的乘积是否等于模数N。