加载中...

CSPRNG(Cryptographically Secure Pseudo-Random Number Generator)是满足密码学强度要求的伪随机数生成器:输出在计算上与真随机不可区分,即使攻击者获得部分输出也无法预测后续输出或倒推先前输出。
线性同余、梅森旋转(Mersenne Twister)等统计型 PRNG 只求分布均匀,观察少量输出即可完全重建内部状态,绝不能用于生成密钥、nonce、会话令牌。CSPRNG 通常从硬件事件、中断时序等熵源收集随机性,再用密码原语(如 ChaCha20、AES-CTR、哈希)扩展输出,如 Linux 的 /dev/urandom 与 getrandom()、Windows 的 BCryptGenRandom。
随机数缺陷是密码系统崩塌的高发点:2008 年 Debian OpenSSL 熵源被误删导致可预测密钥;2012 年研究发现大量 RSA 公钥因嵌入式设备熵不足而共享素因子;ECDSA 随机数偏差导致私钥泄露的案例屡见不鲜。
始终使用操作系统或成熟密码库提供的 CSPRNG 接口,避免自造生成器或用时间戳做种子。

登录 后参与讨论
暂无讨论,来发表第一条评论吧