量子计算机有一天可能会让加密失效,同样还有自旋电子也会对现在的加密方式有同样的威胁。但事实上,我们可能甚至不需要下一代的算力来破解加密——它现在已经真真切切地在发生了。
加密为何失效?
有许多因素会产生加密产生弱点,从而被犯罪分子或者国家黑客利用进行破解。这些因素的关键是密码的不完全使用——包括加密库本身,以及使用加密库的方式。像心脏滴血,或者最近Java
15及以上版本中椭圆加密算法的实现错误,都会使基于其之上的程序产生隐患。库的不正确使用、信息熵的不足、或者使用弱加密,都会对应用产生直接影响。其他加密的失败使用包括使用弱口令,使用失陷机器的凭证等。将这些技术配合上“先窃取后解密(harvest-now-decrypt-later)”攻击,加密技术已经不像以前那样有效了。
密码学的基石——数学
加解密的基础恰恰是那些极其困难的数学问题。公钥加密的黄金标准,RSA就是基于大数因数分解的复杂性。正方向很简单,并且很快就能计算出来:找一些素数并相乘。但是反向操作就难多了:给定一个整数,它是哪些素数的乘积?这个因数分解的尝试可以追溯到2,000年前的欧几里得时代。
尽管说传统的二进制计算机上还没有一个真正的解决方案,但是并不意味着这种方案不存在。经过2,000年的专研,大部分数学家都认同传统计算机能使用的因数分解算法短期内不会出现。Peter Shor证明了用量子计算机可以在多项式时间内进行合数的因数分解——但这种类型的量子计算机暂时来看不可能有效地批量生产。
为了提前准备Shor的算法会落地的那天的到来,NIST组织了一场后量子加密大赛。现在已经是第六个年头了,原本82个提交的方案预计今年将宣布最后剩下的四个名单,剩下的候补方案都是非对称加密算法(类似于RSA的概念),被认为能够抵御可以在可实现的量子计算机上的自旋电子算法的算力破解。这些新算法的数学相关问题出现得更晚,并且还尚未被完全研究。
在复杂数学的领域,"世纪"是一个常见的时间单位。举个例子,费马的最后一个定理花了358年才被证明。同样的逻辑,对于彩虹算法出现了一个之前不知道或者未被预见到的弱点,这丝毫不让人惊讶——尽管说它曾被认为是最能抵御量子破解的算法,现在它已经被认为不适合被NIST所使用。这也是NIST鼓励组织拥抱加密灵活性,为后量子加密时代做准备。
更复杂的问题在于,我们不知道,也不会知道哪些方法是有效的,哪些技术会被使用,或者谁会破解我们现在赖以守护数字宇宙的加密模式。我们只知道,大型量子计算机已经被投入使用。如果现在有一个国家,或者犯罪大师,能够将大合数分解为素数乘积,这个人会告知天下吗?这是现代密码的基础问题:我们不知道哪个加密会被破解、何时被破解、如何被破解。但是,我们可以确认的是,加密方式一定会被破解。
向华尔街取经,多样操作
要在这样的不确定性下加固IT环境和守护数字资产,我们可以从华尔街那里学校一些战略层面的建议。为了应对贷款和股票的不确定性与风险,金融机构通常会采取多线程操作。通过将投资分散到多个不同资产层级、地区和行业,整个投资组合的风险可以大大降低。
这个策略应该在加密层面,同样适用于企业IT人员和SOC团队。使用混合多层的多种加密技术能让数据更加安全地移动,即使某一层加密中出现漏洞。我们不会总是知道密码栈的哪一个部分被破解了,以及如何被破解的,但是如果加密方式足够多样化,就不会有问题。
从行业角度,我们需要能够支撑多种策略的并发执行,并且做好各种加密方式的更新。需要混合非对称加密和对称加密技术,通过带外数据频道进行密钥传输。最重要的是,需要有行业范围的基线来评估加密策略到底有多多样化。
点评
量子计算机的出现是必然的,而依靠量子计算机的算力暴力破解当前主流的加密方式也只是时间问题。如何在后量子密码时代,建设有效的密码体系,是一大重要任务。这个月,拜登签发的两份与量子密码相关的行政令,也表现出即使是美国,也在国家层面对量子密码以及抗量子加密方面的重视。
但是,采取多样性的加密在商用环境下是否可取,却存在着疑问。诚然,多层复杂加密一定程度上能够防止单个加密方式被破解导致的机密性隐患,但是在具体落地技术实践方面,即使是当前的加密方式,依然会对算力产生不小的负担——多层加密对算力的消耗显然会更大,反而不利于基于数据的业务开展。