本文介绍了SHAKE128和SHAKE256这两种可扩展输出函数(XOF),它们是SHA-3的变体,可以生成任意长度的哈希值。同时,还介绍了cSHAKE128和cSHAKE256,它们允许在哈希过程中添加上下文字符串,从而实现域分离。文章通过代码示例展示了如何在Zig语言中使用这些函数,并演示了如何使用上下文字符串来区分不同的哈希应用场景,例如添加pepper字符串。
本文介绍了NIST(美国国家标准与技术研究院)批准的TupleHash算法,该算法基于SHA-3,用于生成可变长度的哈希值,尤其适用于处理字符串序列,它能区分顺序不同的字符串组合,文章展示了如何在Zig语言中实现TupleHash128和TupleHash256,并通过示例验证了其独特性。
本文介绍了在 Zig 编程语言中使用 Ed25519 和 ECDSA 实现数字签名的方法。通过 Zig 语言,开发者可以在嵌入式系统中高效地进行签名生成和验证,确保数据的完整性和真实性。文章分别提供了 Ed25519 和 ECDSA 的原理概述、代码示例和运行结果,展示了如何在 Zig 中使用这两种签名算法。
本文讨论了微软和谷歌等公司逐渐采用 Rust 语言来替代 C/C++ 的趋势,Rust 在内存安全和代码质量方面的优势,以及学习 Rust 的一些挑战和益处。文章还分享了谷歌关于开发者学习 Rust 语言的调查结果,包括学习时间、编译器速度以及最具挑战性的领域等。
这篇文章介绍了模n乘法群(Z/nZ)*的概念,它由与n互质的整数组成。文章解释了如何计算这个群的元素,以及如何找到乘法逆元。通过Python代码示例展示了计算Z/nZ从1到100的乘法群,并给出了结果。
本文介绍了后量子密码(PQC)数字证书的准备工作。随着RSA和ECC密钥易受Shor算法攻击,PKI需要转向使用ML-DSA或SLH-DSA的公钥,并使用相应的私钥对证书进行签名。文章提供了一个自签名数字证书的创建过程,以及使用OpenSSL生成ML-DSA或SLH-DSA密钥对和创建CSR的示例。
本文介绍了ECDSA签名中的确定性签名方法,传统的ECDSA签名在生成签名时依赖随机数nonce,这可能导致安全问题和测试困难。确定性签名通过RFC 6979标准,使用消息和私钥的哈希来生成nonce,从而确保相同的消息和私钥每次都生成相同的签名。OpenSSL 3.6实现了这一标准,并提供了相应的命令行选项。
本文介绍了密码学中的二次剩余和三次剩余问题。二次剩余问题是寻找满足 x² ≡ a (mod p) 的 x 值,如果存在这样的 x,则 a 是模 p 的二次剩余。三次剩余问题类似,寻找满足 x³ ≡ a (mod p) 的 x 值。文章给出了判断是否存在解的方法,并提供了在线工具和代码示例。
本文分析了一种基于Cubic Pell曲线的RSA变体加密方法。作者尝试使用ChatGPT生成代码,但结果不理想,随后作者分享了从Sage代码转换而来的Python代码,并提供了在线测试链接,证明了该方案的可行性。
React2Shell漏洞(CVE-2025-55182)允许未经身份验证的远程代码执行,CVSS评分为10分。受影响的版本包括React 19.0到19.2.0以及Next.js 15和16。Lachlan Davidson发现了这个漏洞,并提供了三个PoC。AWS检测到利用此漏洞的探测活动,建议立即进行补丁。