本文来自微信公众号“数世咨询”,作者/茉泠。
作为NIST后量子密码标准化第四代备选名单中的一员,SIKE(超奇异同源密钥封装)加密算法被研究人员在PC端上轻易破解。这使得人们对后量子时代产生了一些必要的先入之见。
NIST正在通过一种竞赛手段,为后量子时代开发新的加密算法。Shor的算法已经向我们说明:作为现代互联网通信的基础,现有的RSA加密技术可能会在未来十年内被破解。
IBM目前拥有127个量子位的量子处理器。IBM量子安全公司的CTO,Mike Osborne表示:能够帮助我们获得100万量子比特(cubits)的“路线图”,其价值或多或少也能高达4000量子比特(cubits)。所谓的密码学相关量子机器的时代离我们越来越近了。
基于RSA的通信目前正面临着一种被称为“现在获取,以后解密”的危机。敌对国家可以窃取或复制当前的加密数据,以期望能够在未来的几年中将其破解。
许多秘密都具有数十年的有效期。例如,在个人层面上,包括社会保险号码以及家庭内部秘密;在国家层面上,包括国家机密、国际政策以及秘密活动背后的真相。RSA面临的威胁十分紧迫,因此NIST正在寻找一种量子安全的可行替代方案。
SIKE crack事件警示着我们:针对加密的威胁已然存在,甚至后量子加密也有可能会被经典计算机所破解。
一些密码学理论
NIST正在考虑一种属于“quantum safe”的新算法。它与“quantum secure”不同。‘Safe’意味着当前并不存在已知的方法来破解该算法。而‘Secure’则意味着可以通过数学方法或其他的方式来证明该算法是无法被破解的。现有的算法以及当前NIST竞赛中的算法,均被认为属于“quantum safe”,而非“quantum secure”。
正如SIKE crack事件展示的那样,所有的quantum safe加密只有在它们被破解之前才算是安全的。
实现量子安全quantum security只有一种可能性,即一次性密钥(one-time pad,OTP)。一次性密钥是一种无法被破解的加密方法。它需要一个尺寸不小于所发送消息的一次性预共享密钥。发送的消息在理论上是安全的。也就是说,它提供了完美的加密措施。无论是经典计算机还是量子计算机都无法通过数学的方式将其破解。
但这也存在一定的难点,即需要利用真正的随机数来生成如此长度的密钥,并将该密钥传送到目的地。目前为止,要通过电子手段来完成这些是不切实际的。
即使是在量子计算机的创建阶段,唯一能够“幸存”的的加密方式也只有一次性密钥加密。但首先,密钥的分发的随机性和均匀性仍存在问题。其次,密钥的长度需要大于或等于所发送消息的长度,这意味着需要更多的计算时间,通常要比其他经典算法慢。第三个问题在于密钥的分发以及初始密钥的的传输。为了确保其保密性,以往该过程都是通过面对面的交换方式来实现的。
上述这些就是该问题的核心所在。NIST的算法只能说是相对安全,而OTP则可以实现绝对的安全。然而它实际上却并不实用。SIKE crack事件强调的是绝对安全,而非相对安全。任何相对安全的算法只有在其被破解之前,或者说能够破解它们的新方法出现之前,才算得上是安全的。即使是在保持安全的时间里,其所加密的数据仍易于被获取,并用于未来的解密。
任何时间,任何数学上的算法都可能会遭遇该情况。最初RSA密钥的长度为128位,并被认为预计数百万年之后才能被破解。但随着计算机的发展,算法的寿命也逐渐缩短,于是增加密钥的长度变得十分必要。如今,RSA需要超过2000位的密钥长度才能够在经典计算机面前保持相对安全,但其在Shor的量子计算机面前仍无法实现绝对安全。
因此,依赖任何数学方式的加密方法都无法保证是绝对安全的。并且倘若一种算法被破解,那么所有使用该算法的加密通信都可能会被泄密。而SIKE crack事件也证明了:即使没有量子计算机,攻击者同样可以做到这一点。因此,即使在最好的情况下,NIST的quantum safe算法,也无法保证持续的安全性。
大量的研究机构和公司都在研究这些问题。在未来,我们将看到基于OTP概念的算法,用以解决当前面临的危机。它们将利用信息理论,成为NIST标准化算法的可行替代方案。
OTP的利与弊
NIST竞赛仅专注于开发新的加密算法。理论上,这些算法应该能够在量子解密的攻击中“存活”下来。这对于当前的现状是一种渐进式进步。然而开发出来的均是quantum safe加密。quantum safe与quantum security不同。这些加密通信只有在其被破解之前才能保持加密状态,也就是说无法永久地保持安全性。
历史和数学理论表明,这些情况的发生是不可避免的。当其发生时,我们将面临与如今相同的境况。以往收集到的所有使用该算法加密的数据都将会被对手所破解。但是,既然已经有了替代方案(即一次性密钥加密)可以抵抗量子解密,那么为什么这种方法没有被采用呢?
一次性密钥加密在理论上提供了完美的安全性,但其在使用方面仍存在一定的缺陷,使得它不切实际。首先,一次性密钥必须由真正的随机源生成,而这并不像听起来那样简单。
这就是为什么Qrypt要使用由橡树岭国家实验室(the Oak Ridge National Laboratory)以及阿拉莫斯国家实验室(the Los Alamos National Laborator)许可的量子随机数生成器(quantum random number generators,QRNGs)。这些量子熵源是科学上唯一已知的真正随机源。
其次,OTP的大小也是一个问题。一次性密钥必须要和所加密的信息一样长。所以,如果想加密一条长消息,那么一次性密钥的大小将比NIST所选算法的密钥大得多。
更长的密钥是争取更高安全性所必须付出的代价。所有的机密系统均是如此。密钥越短,那么安全性也就越低。NIST的另一个决赛选手是“Classic McEliece”,其密钥的长度就十分巨大,但其仍有可能会成为标准化。在许多常见的用例中,对于消息或小文件的传递,McEliece密钥往往比OTP大得多。”
同时,认证也是需要担心的方面。一次性密钥加密是无法提供身份验证的。“能够为任何类型的数据或端点提供身份验证”的想法可能源于NSA对QKD的反对。NSA曾表示:QKD不提供验证QKD传输源的方法。
还有一个简单的反例:任意长度的OTP都可以被赋予hash值,并在通信双方之间明确地发送,以验证它们是否具有相同的OTP。
另外,顾名思义,一次性密钥只能使用一次,这同样是它不切实际的一点。
这是为了实现更高的安全性,而做出的权衡。对加密密钥的重复利用意味着一旦密钥被破解或者被获取访问权限,那么之前所有使用该密钥加密的数据都会被解密。OTP只会被使用一次,所以即使有人非法访问了其中一个OTP,也无法对其他加密数据造成威胁。”
OTP最主要的问题大概在于密钥的交换。使用一次性密钥进行加密通信时,必须要与对方进行密钥的交换。
这种大规模的密钥交换几乎是不可能的,并且也无法实现与之前从未沟通过的另一方进行通信。我们可以通过线下的邮件或快递的方式来发送一次性密钥,但是却不能通过电子的方式来发送。然而,如果可以通过线下方式安全地传送一次性密钥,那么为什么不直接传递要分享的信息呢。
密钥传输以及大规模分发困难等问题同样适用于NIST目前正在考虑的所有公钥加密密钥。除了大小之外,OTP并没有什么独特之处。OTP可以被持续地生成,并在以后创建消息时使用。两个过程没有理由同时进行,除非它是一个实时的通信渠道。
现代的加密系统克服了这些障碍,而且非常高效。
现代的加密系统是一种一刀切的解决方案,十分高效。但代价是安全性更低。长期以来,云计算、高带宽网络以及分布式的数据中心已经克服了使用OTP的障碍。在RSA基础上发展而来的PQC改变了一种基于20世纪70年代的前互联网架构算法(通信双方通过一个铜线通道以及若干网络交换机相连接)。
当下的例子
目前,一些公司已经在他们的技术中使用了OTP的概念。Rixon和Qrypt公司就是例子。前者是借用OTP思想来保护数据,而后者则可以实现真正的OTP通信。
Rixon
Rixon传递了一个基于云的无保险库标识化系统。从客户端收到的信息会被立即发送到云中并进行标识化。返回给客户的数据中每一个字符都会被进行随机的标识化,并且该标记化过程由客户端的客户本人所控制。
在标记化过程中,没有直接使用加密算法或加密密钥,只有一系列的大量随机化步骤。其目的并非是提供安全通信,也不是提供一次性加密密钥,而是从客户的电脑上删除纯文本数据,以防止它们被盗。
然而,该过程借用了OTP的许多概念。任何密钥的破解都无法用来帮助对数据进行大规模的非法访问。因为每个字符都是被单独进行标识化的,因此即使该字符的标识化过程被破解或窃取,攻击者也只能实现对单个字符的解密。
所以结果就是,任何两组数据都不会具有相同的加密过程。这与OTP方法相类似。
加密通信离不开强大的密钥管理系统,其中密钥循环以及密钥失效是每一种加密管理系统的基石。一段时间后,所有系统的效率都会越来越低,这往往是由于流程和程序出现了问题了。文书方面的工作容易调整,但现实是,密钥管理系统已逐渐过时,变得不再有效。随着时间的推移,组织会产生一种安全的错觉,而密钥则会被盗,被泄露,并为人所知。
这些情况在量子时代会变得更糟。随着量子处理器的出现(当然,并不是说它们是破解加密的真正必要条件),随着这些速度极快的处理器的出现,加密技术的失误与弱点将变得更加明显。
Qrypt
Qrypt通过一个量子程序来生成真正的随机数。这是唯一已知的能够产生真正随机数的方法。该公司还开发了一种方法,能够同时向发送方和接收方提供相同的随机数。通信双方均可以使用这些随机数来生成加密密钥,从而不再需要通过不可信的互联网来传递密钥。
最初目的主要是为密钥的生成提供真正的随机数,因为随机数的质量差是加密方面的主要攻击向量。其次的目的是通过在通信双方之间建立相同的密钥来消除通过不可信的网络发送密钥的需要。
该过程可用于提高当前经典算法以及NIST的PQC算法的安全性,也可用来促进一次性密钥加密的安全性(同样的过程可以作为一次性密钥来使用).
加密的未来
毫无疑问,当前的加密算法在量子时代之前就需要被更新迭代。NIST专注于坚持现有的方法,即通过使用更复杂的算法来对抗更强大的计算机。
倘若一次性密钥加密仍不切实际,那么这将是唯一有效发展方向。
但初创公司已经证明:过去阻碍电子OTP出现的问题正在被新型的云技术所规避。这非常值得欣慰,因为在NIST的量子安全(safe)解决方案和OTP的quantum secure解决方案之间终于有了一个真正的选择。