从RSA到格密码:密码学的信任正在经历一场无声的崩溃

🔑 关键词:RSA,格密码,后量子密码,可信随机数,实现安全

📖 摘要:对比RSA与格密码的数学假设,指出真正的风险在实现环节,提出建立可审计信任的新视角。

最近我花了一晚上时间,把一台老服务器上的TLS证书从RSA-2048换成了基于格密码的CRYSTALS-Kyber实验实现。过程没什么波澜,倒是心里越来越不是滋味。RSA的大整数分解问题这么多年没被推翻但也从没被证明是难的,我们却把整座互联网的秘密都押在它上面。现在格密码又成了后量子时代的救世主,可仔细一看,它只不过是把赌注从一张牌桌挪到了另一张牌桌。数学上的困难假说,换成了一条更复杂的、同样没有严格证明的路。没人愿意承认,我们所谓的信任,其实是一座建立在沙滩上的堡垒。

图片

你要是真去翻历史,会发现最吓人的攻击从来不是大型计算机迎面对撞数学难题,而是那些藏在暗处的实现漏洞。2006年Debian的OpenSSL包因为一句注释把随机数种子压缩到只剩一个进程ID,生成的RSA私钥实际只有32768种可能。这个bug存在了两年半,影响的SSH会话和证书不计其数。我当时试着用那个年代的脚本重新生成私钥,几秒钟就能撞出真实可用的密钥。那件事之后我就对“算法强度”这个词有了心理阴影。你说RSA-2048需要10^17年才能暴力分解,可如果你的随机数源少得可怜,数学再完美也挡不住三岁小孩的字典攻击。

图片

再看NIST后量子竞赛里入选的CRYSTALS-Kyber,官方给出的参数安全级别建立在MLWE等格问题上,量子算法目前确实拿它没办法。但我在自己笔记本上测试开源实现时发现,朴素版本和恒定时间版本在密钥生成上的速度差异能到35%左右。恒定时间很慢,却是抵御时序侧信道的基本功。问题在于,绝大多项目为了性能会悄悄去掉那层保护。还有密钥的存储环境、固件更新曲线、供应链里某个不起眼的伪随机数芯片,随便一个环节崩了,格密码的理论优势就瞬间归零。我们花了几十年研究越造越复杂的数学结构,却连“随机数到底随不随机”这种最基本的问题都没能给出一个让人睡想安稳的答案。

图片

我并不是反对后量子密码,相反,我觉得那批数学家很酷。只是我的观点更固执一些:与其拼命寻找量子计算机也解不开的难题,还不如把资源砸进可审计的随机性来源、开放硬件设计和透明的协议实现上。想象一下,一个完全开源、每一条代码路径都可验证的密码学芯片,比任何高阶数学都更能托住信任。可我清楚,这种事情在商业世界比证明一个格问题难得多。所以,我的态度变得悲观而实际:我们正用越来越复杂的数学幻觉,一层又一层地盖住那堆同样脆弱的工程现实。这种信任体系崩起来一定不是轰然巨响,大概率只是一声无声的叹息。

图片