本文介绍了MiMC-Feistel密码,它是一种对称密钥加密方法,基于Feistel网络,并在有限域上进行操作。MiMC-Feistel在多方计算、全同态加密和零知识证明等领域具有应用前景,并且相比AES,其复杂度更低。
本文介绍了在以太坊等区块链中,为了实现零知识证明(ZKP)并提高效率,对哈希函数的需求。传统哈希函数如SHA-256在区块链环境中计算成本高昂,因此提出了Pedersen哈希(基于椭圆曲线数学)和Poseidon哈希(基于有限域计算)作为替代方案,并提供了代码示例。
本文介绍了Pedersen哈希算法,它通过组合椭圆曲线上的点来实现加密哈希过程,使其在零知识证明(ZKP)系统中特别有用。文章解释了Pedersen哈希的基本原理,包括如何将输入消息分解为多个块,并使用这些块基于生成器点生成一系列椭圆曲线点,最后将生成的点相加得到哈希值。
本文介绍了椭圆曲线密码学(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代码示例,演示了如何使用私钥计算出相应的公有地址。