本文介绍了如何使用 Zig 编程语言和 OpenSSL 库进行集成,以实现包括 MD5、SHA1、SHA-256 等多种哈希算法。文章提供了 Zig 代码示例,展示了如何调用 OpenSSL 的 EVP 接口来计算哈希值,并提供了在 Windows 环境下编译和运行该代码的步骤。
本文介绍了ChaCha20流密码及其优化的变体ChaCha12和ChaCha8,以及它们结合Poly1305 MAC的用法。文章还探讨了XChaCha20/12/8,它使用更大的nonce以增强安全性。此外,文章还赞扬了密码学家Daniel J. Bernstein在密码学和隐私保护方面的贡献,并概述了他的重要工作和对密码学领域的影响。
本文介绍了基于配对的密码学的聚合签名和阈值签名技术,通过BLS签名方法,可以将多个签名聚合成一个签名,同时可以使用聚合公钥进行验证。此外,文章还探讨了如何将私钥拆分为多个 shares,实现阈值签名,最后提供了 Zig 语言的实例代码。
本文介绍了基于配对的密码学的优势,包括聚合签名和阈值签名。聚合签名可以将多个签名合并为一个签名,并使用聚合公钥进行验证。阈值签名可以将私钥分成多个份额,只有达到一定数量的份额才能生成有效签名。文章还提供了使用Zig语言实现的BLS签名、聚合签名和阈值签名的示例代码。
文章讨论了英国银行在采用后量子密码(PQC)技术方面的进展,特别是在TLS协议中集成ML-KEM-768密钥交换算法。文章通过OpenSSL命令测试了各大银行网站对X25519MLKEM768的支持情况,发现少数银行(如Santander)已支持,但大多数银行仍在采用传统的RSA或ECDSA签名。
文章讨论了英国银行采用后量子密码(PQC)的进展,特别是将 ML-KEM-768 集成到 TLS 协议中以替换 ECDH,并用 ML-DSA 替换签名算法 RSA 和 ECDSA。作者通过 OpenSSL 命令测试了各银行网站对 X25519MLKEM768 的支持情况,发现 Santander 等银行已支持,但大多数银行仍在采用 RSA 签名。
本文介绍了姚期智院士提出的百万富翁问题,并在此基础上探讨了社会主义百万富翁问题(SMP)。SMP旨在验证两位百万富翁是否拥有相同的财富,而不泄露各自的实际金额。文章详细阐述了基于Baudot方法的SMP解决方案,并通过Zig语言实现了一个代码示例,展示了如何在实际应用中验证这一概念。
本文介绍了使用 Zig 编程语言实现基于 Fiat-Shamir 启发式的非交互式零知识证明(NIZKP),并结合有限域算术运算,通过示例代码详细展示了如何在 secp256k1 曲线以及 NIST P256、Ristretto255、Edwards25519 和 P384 曲线上验证 Peggy 知道秘密 x,同时比较了使用有限域和标量值进行计算的不同方法。
本文介绍了有限域(Finite Field)的概念,它在密码学中的重要性,以及如何在 Zig 编程语言中实现有限域的计算。通过示例展示了在有限域上进行加法、减法、乘法和指数运算,并提供了 Zig 语言的源代码和在线演示。
本文介绍了使用 Zig 语言实现 NaCl Box 加密方法的三种方式:Box、Sealed Box 和 Secret Box。Box 方法使用公钥加密和私钥签名;Secret Box 方法使用共享密钥加密;Sealed Box 方法使用公钥加密,实现匿名发送。文章提供了相应的 Zig 代码示例,并展示了消息加密和解密的过程。