本文讨论了开发者在Dart/Flutter生态系统中使用不安全的伪随机数生成器(PRNG)所导致的安全漏洞,导致多个项目受到威胁。具体案例包括Dart SDK的漏洞、Proton Wallet的加密缺陷以及SelfPrivacy的可预测密码问题。文章深入分析了这些漏洞的技术细节和影响,并强调了使用安全、加密的随机数生成器的重要性。
本文介绍了Rabin函数,一种基于大素数分解难度的单向置换函数,并展示了如何利用其后门函数(已知素数因子)来逆转伪随机序列。文章提供Python代码示例,演示了在已知素数p和q的情况下,如何从当前值计算出序列中的前一个x值,揭示了其背后的数学原理。