加密算法与量子计算的赛跑

  作者:凯尔茜·休斯敦-爱德华兹

  未来量子计算机的问世将威胁所有经典加密信息的安全,密码学家正争分夺秒地开发能难倒量子计算机的加密算法。

  快速发展的量子计算机

  全世界的数字安全专家都把目光投向了量子年时钟(Y2Q clock)。这台时钟不断计时着,终点是人们预测量子计算机能破解现代某种重要加密算法的时间点。这种加密算法非常精妙,它可以用公开的密钥为信息加密,因而被称为公钥加密算法。尽管信息加密算法听上去有些陌生,但对于时常用互联网传递信息的我们,它无处不在。在上网购物时,它能确保我们的信用卡号码安全;当我们更新手机软件的时候,它能确保更新来自手机公司而非黑客。举报人需要用信息加密的途径联系记者,企业也需要安全的途径发送机密文件。

  但量子计算机会让标准的公钥加密算法失效。“这是非常严峻的情形”,云端安全联盟量子安全防护工作组的联合主席布鲁诺·赫特纳说道,“如果量子计算机明天就能建成,我们从此将没有任何办法进行安全的通话。”

加密算法与量子计算的赛跑

  赫特纳是量子年时钟的创建者之一。Y2Q这个名字模仿了20世纪90年代末的“千年虫”Y2K危机。20世纪很多软件使用两位数表示年份,这意味着2000年与1900年,在计算机中都表示为“00”。当时人们预计使用这种日期表示法的程序会在新千年到来之际出现故障,这可能会导致大量系统崩溃。但最终,没有哪家银行在跨年时崩溃,没有电网断电,也没有飞机从天上坠落。计算机程序的世纪交替,过渡得很平滑,主要是因为企业和政府都抓紧时间修复了Y2K问题。

  量子计算机究竟会在何时发展到足以碾压密码学的程度?没有人能确切知道。当前量子年时钟的倒计时终点是2030年4月14日,这只是一个猜测。但大多数研究者都相信这一变革会在未来几十年内发生。“对信息安全的威胁正在逼近”,赫特纳说,而量子年时钟是一个警示,“把日期贴上去,可以帮助人们保持警醒。”

  不过,对于需要长期保密的政府等机构,真正的截止日期还要早得多。如果今天发送的加密数据被长期储存起来,那未来的量子计算机就可以解码今天的加密信息。“如果你想保密20年,而你认为可以破解密码的量子计算机在20年内就会出现,那你今天就需要着手解决问题了。”美国密歇根大学的计算机科学家克里斯·派克特说。

  美国国家标准与技术研究院预见到这一威胁,于2016年举办了一场公开比赛,征集“后量子”或者“抗量子”的加密算法——也就是可以在当前的计算机上执行,但加密强度高到量子计算机也没办法破解的算法。为了强调时间紧迫,美国国会于2022年12月通过了《量子计算网络安全防范法案》,要求政府机构制定过渡到后量子加密算法的计划。

  美国国家标准与技术研究院的比赛进行了四轮。第一轮允许参赛者提交方案,每轮评审之后晋级的组可以调整方案并提交下一轮的版本,新一轮评审将更为严格。最终,研究院选择了一个叫CRYSTALS-Kyber的方案作为公钥加密组的优胜方案。数字签名组则选出了三个优胜方案,其中数字签名可用来安全地识别信息发送者。研究院正在和研究者合作,将获胜的算法写成标准,以便程序员开始将这些算法纳入当前的加密系统中,奠定后量子保密的基础。

  但有些令人担忧的是,选中的四个算法中有三个(包括CRYSTALS-Kyber)都是基于“格”的——格是指高维空间中周期排列的点阵,关于它有一些难解的数学问题。专家都相信这类问题很难解,但没人能确保未来的研究不会破解这些算法。

  加密算法的更迭

  纵观密码学的发展,已知最早的一种加密算法就是把字母替换成别的符号。在凯撒写的信中,他会把每个字母替换成罗马字母表往后三位的字母。用英语举例的话,就是把“a”换成“d”,“b”换成“e”,以此类推。如果要解开凯撒写的密文,你只需要反过来,把字母往前移三位就好。

  凯撒的替换加密算法有无数种原理相同的变体——在课堂上传纸条的小朋友也可以自己做一套,比如把“a”换成心形,“b”换成星形,等等——但这些都很容易破解。没收纸条的老师可能会注意到,文字中有不少单独出现的三角,表示某个单字母的单词,由此就能推断出三角代表“I”或者“a”。一般来说,通过比较不同符号的频率,并与常见英语文本中字母的出现频率进行对照,破译密码的人可以解出更复杂的替换方案。

加密算法与量子计算的赛跑