只花4分钟,就破解了量子加密算法的密钥。
用的还是一台有10年“高龄”的台式机。
完全破解也只需62分钟,CPU单核即可搞定。
两位鲁汶大学学者基于数学理论破解量子加密算法的消息,最近轰动了密码学界。
要知道,他们破解的算法SIKE一直以来都被寄予厚望,过去12年都无人破解。
在前不久美国公布的后量子标准算法中,它是4个候选者之一,后续很可能被加入标准算法中。
而他们使用的方法原理,其实在25年前就提出了。
这引发了微软、亚马逊等多家科技巨头对SIKE的重新调查。
同时也让不少密码学大佬开始感慨,理解密码系统,还是要关注数学基础理论啊!
一朝破解12年未被攻破的算法
如上提到的SIKE算法,是一种PQC(后量子计算)算法。
随着量子计算的出现,很多超大计算量问题迎刃而解,但经典加密算法也受到了威胁。
比如著名的RSA算法,其2048位长的加密信息,超算需要80年才能破解,而量子计算暴力破解只要8个小时。
因此,学界提出后量子密码的概念,来抵抗量子计算机的破解。
最近,美国国家标准技术研究所(NIST)刚刚公布了首批后量子密码标准算法,共有4个。
SIKE等另外4个算法,被认定为是候补选手,将进入下一轮的筛选。
SIKE的全称为Supersingular Isogeny Key Encapsulation。
这是一种利用椭圆曲线作为定理的加密算法,看上去可以由一个y?=x?+Ax+B来表述,其中A和B是数字。
该方法的关键之处是使用了同源(Isogenies),也就是把一条椭圆曲线的点映射到另一条椭圆曲线上。
然后,基于Supersingular Isogeny Diffie-Hellman (SIDH) 密钥交换协议,实现后量子密钥封装。
该方法可以抽象为这样一个过程:
假设有Alice和Bob两方想要秘密交换信息,但是处于一个不安全的环境下。
Alice和Bob可以被理解为是两个图(graph),它们有着相同的点,但是边不同。
其中,每个点代表一条不同的椭圆曲线,如果一条椭圆曲线能以特定方式转化为另一条椭圆曲线,即在两点之间画一条边,这条边表示同源关系。
Alice和Bob的边不同,意味着他们分别由不同的同源关系定义。
现在,Alice和Bob从同一个点出发,每个人沿着自己图上的边随机跳跃,并且跟踪从一个点到另一个点的路径。
然后,两个人公布自己到达的中间点,但是路径保密。
再然后,二人交换位置,重复自己之前的秘密路径,这样一来,二人最后会到达同一个点。
这个终点由于可以被秘密确定,所以可将它作为共享密钥。
这种加密方式最大的好处在于,即便是攻击者知道了Alice和Bob发送给彼此的中间点,也无法得知中间的过程。
更没法找到最终的终点。
SIDH/SIKE 也被认为是最早被使用的、基于同源的加密协议之一。
但这种方法有个问题,就是它必须对外提供一个辅助扭转点(auxiliary torsion points),也就是除了Alice和Bob公开交换位点外的一些信息。
很多破解方法都在尝试利用这个信息,这次也是如此。
来自比利时鲁汶大学的学者们,在8月5日的一篇论文中详细解释了破解方法。
作者Thomas Decru表示,虽然椭圆曲线是一维的,但是在数学中,它可以被可视化表示为二维或者任何维度,所以可以在这些广义对象之间创建映射关系。
Decru和Castryck计算了Alice的起点椭圆曲线与公开发给Bob的椭圆曲线的乘积,这样会得到一个阿贝尔曲面。
然后通过一种可以将阿贝尔曲面和椭圆曲线联系起来的数学定理,以及辅助扭转点的信息,他们就能找到Alice和Bob的共享密钥。
破解中用到的关键定理,来自数学家恩斯特·卡尼 (Ernst Kani ) 在1997年发表的一篇论文。
在实际操作中,研究人员通过一台已经用了10年的台式机,只需4分钟就能找到SIKE密钥。
完全攻破SIKE算法也只用了62分钟,而且全程只用了单核。
对此,加密算法专家Christopher Peikert表示,一般当一种加密算法被提出后,往往会立刻出现很多破解方法,但是SIKE在提出的12年来,始终没有被破解过,直到这次“一击即中”。
而SIKE没有被选为PQC标准,也是因为学界担心它还没有被充分研究,有遭受重大攻击的可能。
这一次,SIKE被破解的关键,被归功到了对数学理论的应用。
奥克兰大学的数学家Steven Galbraith认为,此次破解中使用的核心理论来自数学。这也在一定程度上验证了,对于研究密码学,数学基础理论的积累非常重要。
SIKE的提出者之一,加拿大滑铁卢大学教授David Jao肯定了这次工作:
虽然一开始我为SIKE被破解感到难过,但这种利用数学的破解方法实在太妙了。
同时,他也为SIKE在被大范围部署前被破解感到庆幸。
不过,虽然SIKE被破解了,但是其他使用同源方法加密的方法(CSIDH\SQsign)还没有被破解。
值得一提的是,这不是今年第一个被破解的PQC算法。
今年2月,多变量算法Rainbow也被破解了。
苏黎世IBM研究院的学者Ward Beullens,用自己的笔记本电脑计算了一个周末(53个小时),破解了Rainbow的密钥。
这一算法同样是NIST PQC标准算法的候选者之一。