谷歌在量子计算领域的突破对我们有什么影响?
阅读量:3833139
2019-10-27
近期,谷歌CEO亲自官宣谷歌在量子计算上所取得的突破,一时间震动了整个科技界!甚至有媒体将它与“宇宙大爆炸”,“人类首次登月(谷歌的一小步,人类的一大步)”,“莱特兄弟发明飞机” 相提并论来形容谷歌所取得的成就。在看完媒体的相关报道后,我想和朋友们一起探讨一下它对我们现实生活会产生那些影响。
人类在科技上的一些重大突破,往往都是正面,负面影响并存,例如原子弹的发明,克隆人技术等。显然,量子计算领域的突破也存在两面性,它会对我们的现实生活带来哪些影响呢?
在探讨这个问题之前,让我们先来初步了解一下“古典计算机”与“量子计算机”的区别。
自1946年世界上第一台计算机ENIAC在美国诞生以来,到当前最先进的古典计算机都是采用基于二进制的冯诺依曼体系结构,在物理上只用高、低两个电平或脉,冲的有无表示"1"和"0",在本质上所有古典计算机都只能“理解”0,1代码构成的机器语言。计算机内数据和指令的存储和处理都是由只能表达两种状态:开(0)和关(1)的晶体管和门电路等元件完成。我们今天在计算机上,在互联网上所感知的一切图像,文字,视频,音频都是使用高级编程语言编写经过编译或解释将其翻译成0,1代码后计算机才能识别并执行的指令。
而量子计算是基于量子比特的,其最本质的特征是量子叠加性和量子相干性,在物理上,它与早期古典计算类似,使用真空管、继电器电路或晶体管构建系统,以囚禁的离子,原子,光粒子作为量子位元的超导电路创建量子门和可供操控的量子态。量子位之间的运算只允许在相互接近的量子位之间进行,量子位元之间的运算是通过一条离子链的振动来完成,利用量子力学理论中的量子叠加和量子纠缠效应来执行计算。
古典计算机的原理相对而言比较容易理解,而量子计算机原理理解起来就要困难得多,难就难在对量子力学规律的理解和认知,尤其是量子叠加和量子纠缠概念,就连最早提出量子纠缠概念的爱因斯坦,以及薛定谔(Erwin Schr?dinger)都承认自己难以将这些概解释清楚!如果有人告诉你他能给你解释清楚什么是量子叠加和量子纠缠,我想他不是个知名的量子物理科学家就是个骗子!
我们常人无法真正理解量子叠加和量子纠缠概念,所以不要指望在书本上或通过互联网搜索就能弄懂它,只能是尽可能的对这些概念多一些了解。对于量子叠加,通过“薛定谔的猫”能加强对它的认知,就是一条生命,在某种条件下,在某一时刻,既是死的又是活的,两种状态并存。或者说,某种物质同时存在于不同空间(好比是同一个人同时出现在中国和美国)。而对于量子纠缠的理解就显得更加困难,大抵意思就是两个粒子在某一时刻存在着某种关联,这种关联不受空间距离的限制,用比较俗的描述就是你打了个喷嚏是因为远在地球或太空中另一处的某位好友正在骂你,是不是感觉有些玄乎?但是在微观粒子世界,这些现象是客观存在的,我也不知道我这种理解在多大程度上接近于量子纠缠规律,或许根本就是错误的?还希望有高人指点一二。
构建大型量子计算机的难点,主要在于如何构建大规模的量子位(或许需要一个拥有数亿激光束的系统来构建量子门),并且让这些量子都处于纠缠态且不能有噪声误差。目前谷歌在量子计算上所取得的突破也仅仅只是基于54量子位的,这离实际有意义的大规模应用其实还有非常大的差距。
目前除了物理设备上的局限性外,我觉得另外一个难点在于具备在这种计算机上编程能力的“程序猿”是极度稀缺的稀有物种。毕竟没有能精确,稳定运行在计算机上的软件,量子计算机只不过是一堆精美的,昂贵的“破铜烂铁”。
古典计算机的软件开发人员可以依赖整数和浮点数,具有算术运算符和三角函数的代数表达式,条件分支,循环和嵌套函数来编写软件,换句话讲就是古典计算机提供了丰富的数学计算模型,与人类的数学和逻辑概念紧密匹配,而使用量子计算机,只能依赖于量子力学的原始物理学,没有像古典计算所提供的丰富的抽象和语义。量子计算围绕量子位及其量子状态旋转,量子位可以与另一个量子位叠加并纠缠在一起,而古典计算围绕数字,整数,二进制和十进制以及文本进行旋转。这两个体系之间存在质的差异!
不像古典计算机体系,一个理工科同学通过自学都能掌握编程技术,基于强大的开源类库轻易地编写出精准,稳定,流畅运行的软件。在量子计算机上开发软件,没有简化抽象来与正常的数学和逻辑相关,例如代数表达式,调用函数或有条件地执行操作,您必须学会从原始物理学的层面上进行思考和操作,所以要从事量子计算编程,你大抵首先得是从吸取天地精华的五彩石中蹦出的石猴,然后潜心修炼后变成猴王,再历经磨难后才能成为真正的“量子计算程序猿”。
对于谷歌在量子计算上所取得的突破,无疑是量子计算领域的一个重大里程碑事件,或者是业界所谓的谷歌已经获得了“量子霸权”。它将能解决传统计算机由于运算能力有限导致的各种难题,使得计算能力将实现指数级飞跃,从而实现从人类对深空的探索,生物工程,人工智能,健康医疗等领域的重大突破!
然而,令人担忧的是,它是否会破解现有的主流的信息加密技术,从而影响个人隐私数据,金融行业加密体系,公共事务,国防安全,甚至给世界正常秩序,和平带来威胁呢?
目前的公共密钥密码学(PKC)系统依赖于整数分解和离散对数问题的求解难题,其安全性受到古典计算机的计算能力的限制。
为了可以将密码系统的安全性进行量化,业界采用了“安全位”这个标尺。您可以将其视为通过最有效的攻击破解系统所需的步骤数的函数,加密的安全性取决于密钥的长度和所使用的密码系统,主要包括非对称加密(例如RSA)和对称加密(例如AES)
安全性对比
经典计算机
量子计算机
加密算法
密钥长度
安全位
加密算法
密钥长度
安全位
对称加密
AES-128
128
128
AES-128
128
64
AES-256
256
256
AES-256
256
128
非对称加密
RSA-2048
2048
112
RSA-2048
2048
25
RAS-15360
15360
256
RAS-15360
15360
31
具有112位安全性的系统需要2112步才能破解,这将需要当今最快的古典计算机数十亿年的计算,因此NIST(美国国家标准与技术研究院)批准的加密算法至少提供112位安全性。
从上图的对比中可以看出,AES-128和RSA-2048都可以提供足够的安全位来抵御古典计算机攻击,但不能抵御量子计算攻击。将AES密钥长度加倍到256可产生可接受的128位安全性,而将RSA密钥增加7.5倍以上对量子攻击几乎没有影响。
目前主流的量子计算Shor算法将能够轻易破解RSA和Diffie-Hellman等PKC系统。Grover算法将会降低诸如高级加密标准(AES)之类的对称密码系统的安全性,但幅度不会那么大。虽然量子计算目前还无法破解高安全位的AES加密内容,但它可以先破解AES密钥,然后直接解密AES加密数据,所以AES加密算法仍然存在安全风险!
在成功构建大规模通用量子计算机前,可以相对安全地使用AES-256对称加密算法,但不能使用RSA和Diffie-Hellman等非对称加密算法,因为它可以不需要密钥,直接在短时间内暴力破解加密数据!
量子计算机为什么会有如此大的威力呢?回到上文中提到的两种计算机原理的异同,古典计算机中使用信息的“位”执行计算,也就是高,低电平或电路的开,关,对应0和1两种逻辑状态。而量子计算机使用量子位执行计算,在量子计算机中,由于量子的叠加纠缠原理,它可以有第三种状态,即0和1的叠加,这是量子计算机相对于古典计算机优势的关键所在。例如,一对“位”可以在任何给定时间仅存储四个可能的状态组合(00、01、10或11)之一,而一对“量子位”可以同时存储所有四个组合(22),因为每个量子位可以同时表示两个值,0和1。如果添加更多的量子位,计算能力将成倍增长。三个量子位存储八个组合(23),四个量子位存储16个(24),依此类推,但难点在于随着量子位的增加,它的稳定性也会成指数增长。
量子计算机可以在N个单位的时间内计算出古典计算机需要2N个单位所完成的计算量!换句话说,古典计算机上的指数算法(将某数提升到X的幂)的问题在量子计算机上将变成多项式算法(将X乘以某个数)。
对这个算法差异我们可以用大家比较熟知的折纸算法来理解,50张1毫米的纸堆放起来的厚度仅有5厘米,大概也就手掌的宽度。但如果把1mm的纸张对折50次,其厚度大概超过地球到月球距离的2500多倍!
Google最新的量子计算机具有54个量子位(其实只有53个,因为有一个是坏的),可以存储253个值,或超过10,000,000,000,000,000(10万亿次)组合。当量子力学的另一个基本特性,量子出现纠缠态时,这个数字将变得更加巨大!利用一台古典计算机破解利用目前的加密算法加密的数据少则需要数百年,多则数十亿年的计算量!根据谷歌公布的其量子计算机的计算能力,200秒就能完成世界上最快计算机需要1万年才能完成的计算量,也就是说基于PKC体系的加密数据,最多只需要不到一年的时间就能完成破解!(1万年VS 200秒,十亿年 VS 20000000秒 = 20000000秒 = 0.6年)
出于安全担忧,业界早就开始了抗量子计算破解的加密算法。自2016年4月NIST(美国国家标准与技术研究院)开始接受抗量子计算提案以来,该流程一直在运行(同年,中国也发射了一个量子通信卫星用于具有更高安全级别的量子通信)。2017年11月进入NIST的第一个评估阶段,当时NIST停止接受新算法进行审议。
就在今年(2019年)1月NIST宣布,该项目开始进入第二轮赛选,最初的69项提交中只有26项通过了所谓的“半决赛”(其中,17种用于公钥加密和密钥协议,9种用于数字签名)。
26种通过了NIST半决赛的加密算法
用于公钥加密和密钥协议
用于数字签名
BIKE
CRYSTALS-DILITHIUM
Classic McEliece
FALCON
CRYSTALS-KYBER
GeMSS
FrodoKEM
LUOV
HQC
MQDSS
LAC
Picnic
LEDAcrypt
qTESLA
NewHope
Rainbow
NTRU
SPHINCS+
NTRU Prime
NTS-KEM
ROLLO
Round5
RQC
SABER
SIKE
Three Bears
NIST预计下一阶段的评估将花费12到18个月,之后可能会进行第三轮评估,然后将采用官方标准算法。
我认为Google在量子计算上的突破目前还不会对基于现有的加密体系的普通机构或个人产生颠覆性的破坏,其现实意义在于,它证明了在未来的某天,量子计算被大规模商用成为一种可能,就像一些媒体拿它和人类登月类比(它给人们离开地球,迈向深空探索带来了希望)。同时,也提醒人们尽快研发和制定能抵抗量子计算破坏现有机密体系的加密标准。根据墨菲定律,一件事只要存在可能,那么发生是迟早的事情,它或许会超过超过摩尔定律数十年来描述的指数增长速率而以“双指数速率”扩展的速度向前发展。至于量子计算大规模商用何时到来,虽然很难被推测,但我想它不会很遥远,也许十年之内?
热点问题探讨:
1. 我们的个人银行密码,网上各种密码,加密通信数据会被窃取吗?
短期内不会。除非你是亿亿万富翁,或者国家首脑,否则,黑客不会对破解你的信息产生任何兴趣,窃取你那点信息,还不够为量子计算机增加一个量子位的钱。
2. 比特币会面临崩溃吗?
短期内不会。比特币挖矿使用SHA-256算法,它是一种哈希算法,即单向加密。虽然Grover量子算法能加快对它的攻击,但加倍密钥大小可以有效地阻止这些攻击,例如升级到SHA-512。
3. 国家安全会收到威胁吗?
美国是计算机技术和网络技术的鼻祖,大部分国家早期所使用的网络设备都是欧美国家的,采用的都是古典加密算法或者其升级版,尤其是核心网设备中或许早就存储了海量的敏感加密信息,等着某一天在量子计算上有所突破后轻而易举的解密!在量子计算没有取得如此大的突破之前就爆出了“棱镜门”事件(不知道它们究竟为此付出了多大的成本),所以这个问题留给朋友们自己去判断。
中国或许目前是世界上量子通信领域保持领先的国家,早在2016年就成功发射了第一颗量子卫星MICIUS,随后成功的实现了抗量子计算的安全加密通信。但基于量子卫星的通信系统目前也并非无懈可击,它的密码体系是依靠单个光子来传输量子信息的,每个陆地基站都从接收来自量子卫星的量子密钥,然后对加密信息进行解密。这个通信系统的安全前提是卫星本身不会受到入侵威胁,如果卫星本身受到非法入侵,入侵者就可以从源头读取量子密钥,从而对信息进行解密。
此外,此解决方案只能解决未来对保密要求高的通信问题,对于过去的历史加密信息,起不到保护作用!
4. 目前的4G,5G网络考虑了量子计算威胁吗?
3GPP和IETF都已经开始了推动在蜂窝网络技术(例如5G)中对抗量子计算带来安全威胁的研究。目前所有使用非对称密码技术,例如RSA,DH,ECDSA,ECDH,或基于配对密码技术进行身份验证或密钥交换的系统,例如使用TLS,DTLS,IKEv2,证书和MIKEY-SAKKE的所有系统已经显得非常脆弱!但采用对称算法,例如AKA身份验证,以及无线电加密和完整性算法的系统如果能尽快提高“安全位”,或许在相当长的一段时间内还是比较安全的。我认为3GPP应该尽快引入256位甚至更高的加密算法。