格密码完蛋了!吗?

2024年4月10日,一篇密码学论文发表在 IACR ePrint 上,作者是清华大学陈一镭,而这篇论文并非平平无奇,因为这篇论文的标题是 Quantum Algorithms for Lattice Problems,翻译成中文就是求解格问题的量子算法,说通俗点——格密码也不安全了。

这一研究引起了学界的广泛关注,但是事情反转了,一周之内就有多个实验室发现该攻击手段的漏洞,作者也公开承认该漏洞无法被修复。所以虚惊一场,虽然这篇论文提出了非常新颖的量子算法思路,对学术界依然有启发价值,但它并没有真正破解格密码。目前,基于格的后量子密码依然被认为是安全的。

这篇论文的 url 也十分有趣,正好是 2024 年编号为 555 的论文,即 https://eprint.iacr.org/2024/555.pdf (还是靓号嘞)。该论文需在量子计算机上对格进行攻击,所以作者并没有进行实验,也不能实验(没那么多量子比特嘞),最后因为与高斯函数相关的参数并不会按预期稳定(作者假设稳定来着),导致攻击失败。但是无论如何,格密码确实差点就完蛋了,论文刚发出来的最初那几天,没发现漏洞的人大概觉得那是密码学界的第二次 Shor 时刻——如果陈的论文成立,意味着全人类辛辛苦苦选拔了数年的格密码,还没全面部署就没了。

然而,一次攻击的失败不能等同于系统绝对安全,它只能证明这条进攻路线走不通,未来还都说不好的嘞。

加壳的曙光——多线性映射——但它死掉了

这件事情让我不由想起多线性映射的故事,大概是 2014 年或者 2015 年的样子,西安电子科技大学胡予濮教授团队用零化攻击给 GGH13 多线性映射打烂了。多线性映射能干嘛?双线性映射能三方一轮的密钥交换,那 N 线性映射理论上就可以 N+1 方一轮的密钥交换了!咳咳不止于此密码学有个叫 iO 的东东,翻译是不可区分混淆,说白了就和逆向里的加壳一样,但是不同的是,这里脱壳的难度等同于破解相应的数学困难问题,而不是和攻防里的脱壳一样拿工具就可以办到的,你得拿量子计算机——如果基于格的,那你拿一百万台量子计算机都不用想逆向的事情了。而 iO 这个东东能让加壳变得很轻松,如果 GGH13 是安全的,那可能现在的软件app 啥的都不可能被逆向了,也不用什么版权法了,你要是能逆,顶刊就是你的了;但是西电这个工作说了,这个多线性映射都是不安全滴!西电的这个工作看起来没漏洞,那咋办,那就别办了,所以现在多线性映射彻底似了。

直到 2020 年,才有用更基础的假设构造了 iO 并证明了其安全性,即 JLS20。但是其效率并非多线性映射的成百上千倍,还得再加个指数,工业根本想都不用想,加密个 S-box 就要到天荒地老了。

SIDH 是真完蛋了

SIDH 是超奇异同源密码,还有后续算法 SIKE。它有多奇异呢?它的数学结构极其优美,密钥极小,可谓后量子密码里的贵族。它一路过关斩将,进入了 NIST 后量子密码标准化的第4轮(最终轮)候选名单。业界几乎认定它就是未来的标准之一。

2022 年 7 月,算起来也是 NIST 即将敲定最终标准的前夕,两位比利时鲁汶大学的研究员Castryck 和 Decru 在普通笔记本电脑上,用从 1997 年的一篇冷门数学论文里翻出了一个叫卡尼定理(Kani’s theorem)的数学工具,一个小时就攻破了 SIKE 的最高安全级别。

然后,SIDH 也完蛋了。

和 SIDH 同一时期,一个名为 Rainbow 的基于多变量多项式系统的数字签名算法,同样是NIST标准化第3轮的最终候选者,也被普通笔记本电脑攻破了。

可能密码学总是充满遗憾吧

密码学和密码分析学是矛与盾的极限拉扯。在其他领域,99%证明安全就是一个重大成果,而在密码学中,99.99%的安全也可能存在风险,尤其是规约到了一些数学困难问题上,只要地基出现一丝丝的小裂缝,这个方向可能就荡然无存了。

所以咱研究密码学的,还是得多看多听多学,外面的世界发生太多,历史的一粒沙倒塌下来对个人就是一座山。假如我是 2012 年入学研究生,一看多线性映射是好东西然后就做了,结果我还没毕业呢 GGH13 就没了,那我还能毕业不