密码学史话:从尤利乌斯·凯撒到量子宇宙

 密码学是安全通信的基柱,在信息网络时代广泛应用于各个领域。从凯撒的字母替换,二战时期各国间情报较量,量子密码术,到时下流行的区块链、比特币,关于密码学历史精彩绝伦。有人设计密码就有人破译密码,在这场智与智的较量中,产生无数经典。密码学涉及代数、组合、数论、量子等多方面的基础,相关的技术种类繁多,一时难窥其全貌。本文尽量抛开繁琐的细节,带你回顾密码学历史,从整体上了解密码的世界。

内容概要:

1、密码学的诞生
简述人类史上为什么会出现密码学。
2、密码学家都干了什么
阐述从凯撒密码到量子密钥分发,密码学家用怎样的工具解决了哪些问题。
3、恐怖的量子幽灵
简述量子的历史,量子鬼魅般的特性以及对哲学、科学(物理学)和密码学的影响。
4、量子密码与后量子时代
阐述BB84量子密钥分发协议,简介后量子时代密码方向。
5、密码学大事记
列举一些密码学历史上的重要事件。

一、密码学的诞生

  本来通信是很安全的,自从有了研究安全问题的人,通信就再不安全了,如前所述,密码学就是要解决安全通信的问题。我们先设定几个通信中的参与者,罗列出在通信中可能存在的不安全的隐患,然后一路跟随密码学的发展历程,看看这门学科是怎样逐步解决这些问题的。通信双方就用大家都喜闻乐见的Alice和Bob,通信的破坏者叫Eve。
请想象一下现在Alice要和比基尼海滩的Bob通信,商讨一下怎样梦游仙境,于是她向Bob发送了一封邮件,但是潜在的Eve可能从中作梗。Alice主要有这么几点担心:
1、Eve截获了邮件,看到了邮件中梦游仙境的具体计划。
2、Eve截获了邮件,把梦游仙境改成梦游地狱再发给Bob。
3、Eve假装成Alice自己,给Bob发送了不可描述的邮件。
4、Bob回信说愿意同行,但最后却又不承认自己发过邮件。
我们把这些问题梳理抽象下,就提炼出通信安全面临的威胁和需要解决的问题,如下图所示:

  接下来我们就跟随密码学发展历程看看怎样利用密码工具应对这些通信安全威胁。

二、密码学家都干了什么

2.1、手工密码

  首先,密码学中最好理解的也是最原始的需求就是加密,字面来说就是能让通信内容变得无法解读,使干预者即使截获通信消息也不知道什么意思。
隐写术同样可以做到隐藏消息,比如唐伯虎著名的"我为秋香",不同在于密码隐藏的是内容,隐写术隐藏的是消息本身,在这里就不做详细讨论了。

  加密的需求可追溯到很早,约公元前60年罗马时期,尤里乌斯•凯撒作为一名杰出军事领袖,设计了一种军事信息加密方法,即使这些信息被截获,敌方也不一定能看懂——这就是著名的凯撒密码,也算是最早的密码实例。凯撒密码是通过将明文中使用字母表按照一定的字数“平移”来进行加密,如下图,明文“cipher”平移3位后得到的密文是“flskhu”,解密时反方向移动3位就可以还原获得明文。

  凯撒密码通过替换操作实现,所以这种密码称为替换密码,许多侦探小说中都有相关的情节,比如爱伦坡的《金甲虫》,福尔摩斯中《跳舞的小人》等等。单表、多表代替密码也由此发展而来。

  这种简单的加密方式存在致命缺陷:替换过后并没有掩盖字母的频率信息,比如英文字母中E在单词中出现的频率最高,所以积累一定量的密文后通过频率分析就能很快还原出替换表。

2.2、机械密码

  随着密码机的出现,加解密由手工步入机械时代。Enigma作为机械密码的典型代表,是二战中德国发明使用的加解密机器。Enigma在德语中是“谜”的意思,其发明者谢尔比乌斯使用能够转动的圆盘和电路,创造出了人类手工所无法实现的高强度密码。
Enigma由键盘、齿轮、电池和灯泡组成。发送者和接收者各自拥有一台机器,发送者用Enigma将明文加密通过无线电发送给接收者,接收者将密文用自己的Enigma解密,从而得到明文。当然发送者和接收者需要事先商量好相同的密码本,按密码本同步操作。

  当时,Enigma被认为是一种无法破解的密码机,为了破译Enigma,欧洲各国的密码破译者付出了巨大的努力。英国的密码专家们在布莱切利园中进行了破译工作,其中,现代计算机之父艾伦.图灵也是破译团队的一员。图灵根据之前所获得的情报继续研究,终于在1940年研制出用于破译的机器。

  现在公认的第一台计算机ENIAC于1946年2月14日在美国宾夕法尼亚大学诞生,但是早在二战时期英国为破译Enigma就已经发明了计算机COLOSSUS(巨人),但受制于政府保密的需要,COLOSSUS到75年才部分解密,也因此失去了第一的历史时机。
Enigma的破译过程十分冗长和复杂,在此不做赘述。感兴趣的读者请参阅《密码故事:人类智力的另类较量》以及《艾伦.图灵传:入迷的解密者》。

2.3、两个原则

  20世纪,以香农(C·E·Shannon)为代表的数学家和密码学家发表了一系列重要成果,为密码学指明了新的方向,我们来简单看看几条原则。

2.3.1 Kerckhoff's Principle原则

  一个通用的密码系统通常满足两点(Kerckhoff's Principle)密码系统的设计不应当保密, 其原理与细节应当公开。密码系统应当做到, 只要密钥隐秘即安全。
在古典密码时代,德军还会想方设法保密恩尼格玛机的内部结构和使用说明书,而英国人明明破解了Enigma机,还要想方设法装成没有破解的样子,这些障眼法就是为了保护加密的过程。但是到了现代密码时代,这些个加密解密的过程根本不用保密,甚至完全公开。

2.3.2 扩散与混淆

  扩散(diffusion)和混淆(confusion)是C香农提出的设计密码体制的两种基本方法,其目的是为了抵抗对手对密码体制的统计分析。
所谓扩散就是让明文中的每一位影响密文中的许多位,或者说让密文中的每一位受明文中的许多位的影响,这样可以隐蔽明文的统计特性。
所谓混淆就是将密文与密钥之间的统计关系变得尽可能复杂,使得对手即使获取了关于密文的一些统计特性,也无法推测密钥。
简单来说,之前通过流一般的加密方式,明文和密文的位置是相同的,此种密码称为序列密码或者流密码。那么能不能将明文分个组,加密时颠来倒去再增加迷惑性呢?答案是肯定的,这就是分组密码。分组密码有不同的模式(ECB、CBC、CFB、OFB、CTR等),有些就可以实现之前所说的颠来倒去的功能。
序列密码和分组密码各有优缺点,序列密码是一个随时间变化的加密变换,具有转换速度快、低错误传播的优点,硬件实现电路更简单;缺点是:低扩散(意味着混乱不够)、插入及修改的不敏感性。分组密码使用的是一个不随时间变化的固定变换,具有扩散性好、插入敏感等优点;缺点是:加解密处理速度慢、存在错误传播。

2.3.3 一次一密完善保密性

  一次一密(One-Time-Pad)简单来说就是在序列加密中,明文和加密密钥等长,密钥序列永不重复,相当于密钥序列可以无限续杯,其保密性不言而喻。

  由此可知序列密码的核心就是如何有效生成伪随机序列,为啥用伪随机,因为此时无法模拟真随机,总不能每次都掷硬币吧,但是继续向下看就知道,量子表示不服。

2.4、对称密码的集大成者

2.4.1 DES

  随着计算机的不断普及,通信加密的需求也相应增加。密码的使用也由军方和政府慢慢扩大到商用。就像只有相同接口的手机才能用共用数据线充电一样,密码算法也需要标准化。最终,美国政府决定制定一套标准的加密方案,让不同的组织之间能够秘密通信。lucifer是当时已经建立起来的并作为候选的密码算法之一,由IBM的德裔物理学家和密码学家霍斯特·费斯妥(Horst Feistel)发明,它的加密和解密过程互为逆运算。

  Lucifer这个名字的由来也很有趣,据说当初设计者一直把这套算法叫做“示范算法”(Demonstration),但70年代的操作系统对文件名长度有限制,于是只能截取前几位字母Demon,而Demon又是“恶魔”的意思,后来大家就索性用传说中恶魔的名字——路西法(Lucifer)来称呼这个算法。从1976年11月起,lucifer密码正式成为美国国家标准局的加密系统官方标准,简称DES(Data Encryption Standard)。
DES的加密方式如下图,其中右边是密钥生成方式,右边是加密过程,加解密互逆且对称。

  我们把DES这样加解密对称的密码算法称为对称密码,如下图所示:

  其保密性完全依赖于双方共享的保密密钥K,而算法完全公开,这也符合之前提到的kerckhoffs原则。
由于美国国家标准局的限制(想掌控一切,你懂的),强制规定DES密钥长度为64bit(56bit有效位+8bit校验),密钥过短使得DES无法抗击密钥穷举攻击,现代通信已不再使用,但并不影响其在密码学中集大成者的经典地位,而其密钥加长版3DES也仍活跃于通信加密中。

2.4.2 AES

  2001年11月26日美国国家标准与技术研究院(NIST)将Rijdael选为高级加密标准(Advanced Encryption Standard,AES),该算法作为DES的替代者由比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijdael(发音近于 "Rhine doll")命名。
不同于DES的Feistel结构,AES采用轮换-置换方案,更好的实践了混淆与扩散原则。

  DES和AES的加密细节不是本文重点,在此略过,感兴趣的小伙伴可以自行查找相关资料学习。
到此处我们回头看看之前Alice和Bob的通信问题,机密性可以通过加密算法实现,完整性、认证和不可否认似乎还没解决。不仅如此,使用对称密码还派生出新的问题。一个是Alice和Bob怎样安全的共享同一个密钥,计算机时代总不能还事先交换密码本;二是假如Alice不仅要与Bob通信,还要联系派大星、章鱼哥、蟹老板甚至整个比基尼海滩的住户,那么就要和每个人分别共享密钥,为了保密这些密钥还需各不相同,这样别说去梦游仙境,在家数密钥都数不过来。

2.5、单向函数与公钥密码体制

  接下来我们就一气呵成,给出上述所有问题的解决方案。

2.5.1 单向散列函数

  先看定义,单向散列函数,又称单向Hash(哈希)函数、杂凑函数,就是把任意长的输入消息串变化成固定长的输出串且由输出串难以得到输入串的一种函数。
简单来说哈希函数的性质有这么三点:

  • 不管输入多长的数据哈希后都是固定长度的
  • 不同数据哈希后的结果不同
  • 经过哈希后的数据不可还原

  哈希函数的第二个性质正是我们需要的,这相当于给数据做了指纹,Alice将发送的消息和消息的哈希值一同传给Bob,Bob对消息用同样的哈希算法运算,对比结果是否与Alice的发过来的一致,如果相同说明消息是完整未篡改的。当然,EVE可以把消息和哈希值一起伪造了传给Bob,所以哈希函数无法单独解决认证问题,还要结合其他密码工具。
我们在平时下载软件时镜像网站常常提供哈希值方便校验,用的也是这个原理

2.5.2 消息认证码

  哈希函数与密钥关联就可以完成身份认证,只不过在这里密钥提供身份标识,哈希没唱上主角,只利用其第一个特性使得验证更加便捷,如下图所示:

2.5.3 两把锁的箱子——Diffie-Hellman算法

  Alice不想存那么多不同的密钥,能不能在每次通信前协商解决呢,这么私密的是当然要偷偷聊,每次都去咖啡厅钱包也受不了。抛开网络,想象一下在现实生活中能怎么解决,比如用下面这个两把锁的箱子传递东西。

  • Alice和Bob各有一把锁的钥匙,但不通用。
  • Alice把信息放进箱子里,锁上自己的锁,寄给Bob,此时Bob没锁。
  • Bob收到后由于没有Alice的钥匙无法打开箱子,但是自己可以把锁锁上,寄还给Alice,此时两把锁都锁上了。
  • Alice收到箱子后把自己的锁打开,把箱子再寄给Bob。
  • Bob收到箱子,此时只有自己的锁锁上,打开箱子看内容。
  • 由于全程都有锁,寄箱子途中别人无法打开。
    只要在通信中实现这样的模型,就可以解决协商问题,下面两位数学家就做到了,Diffie和Hellman利用了mod(模)运算巧妙地解决了密钥交换的问题。

  左边看着像大侠的赛博朋克就是Diffie,右边的是Hellman
算法如下图所示,虽然p,G,G^A,G^B公开,但是鉴于计算离散对数的困难性,他无法知道A和B的具体值,也就无从知晓密钥G^AB是什么。

  根据公式直接跳过的原则,简单来说Diffie-Hellman算法利用拆分使得原本对双方相同的密钥被拆分成了两部分,变得不再对称。在密码学中引入非对称和数学难题求解为对称密码的困境指明了新的方向。

2.5.4 公钥密码体制与RSA

  在Diffie-Hellman算法我们提到了解决对称密码困境的方法是利用非对称(看起来像废话)。
非对称即把密钥拆成两个:公钥和私钥,对于这样的密码我们称之为非对称密码或公钥密码。公钥密码的诞生不但解决了之前密钥传递、不可否认性等问题,通过公钥技术为基础实现的PKI(公钥基础设施)更构建了庞大的密码信任体系。
公钥密码有通过一对公私钥对实现加密和签名:

  • 私钥自己掌握,是保密的,公钥公开。
  • 用公钥加密,只有对应的私钥可以解密。
  • 用私钥加密(称之为数字签名),只有对应公钥可以解密。
  • 只知道公钥推不出私钥,但是私钥可以推出公钥。
    加密和解密本为互逆过程,这样在其中增加一个陷门,就是私钥,知道私钥就可以为所欲为,不知道就只能干瞪眼,数学中将这种方法叫单项陷门函数。回顾之前的哈希就是无陷门的单项函数,因为知道什么都回不去了。
    举个例子:超市里面的存包处,所有顾客有硬币就可以存包。硬币就是“公钥”,顾客把包放进箱子里,(明文加密),箱子锁上以后就没人能打开。这个时候窃听者也拿不走存进去的包。这个明文(包),只有私钥才能打开。客户存完包以后会生成一个私钥,只要这个钥匙在手,就可以随时开箱拿包。
    公钥密码里比较经典(容易理解)的就是大名鼎鼎的RSA了,RSA是由三个提出者 Ron Rivest、Adi Shamir和Leonard Adleman的姓氏首字母组成的。这三个人风格迥异,组成了一个技能互补的完美团队。

自左至右:Adi Shamir, Ron Rivest, Leonard Adleman
下面我们看看RSA的加解密过程:

  RSA的公私钥生成:

  RSA的过程还是比较清晰的,从事后诸葛亮的角度看也比较简单,我们看看(跳过)就好。
理论上只要能构建单项陷门函数都可以作为公钥算法,比较经典的还有ELGamal算法和椭圆曲线等等,对此感兴趣对小伙伴(不包括我)可以自行搜索算法细节学习。
文章到了这里我们再回头看,是否解决了Alice和Bob的所有通信安全问题呢?(也是够

困难的)

  看似我们已经基本解决了问题,另外再补充两句:
1. 对于Alice要和包括Bob在内的多人通信问题,每个人只需保存自己的私钥,因为公钥公开,所以可以随时获取。但万一EVe生成假公私钥对,声称公钥是Bob的怎么办呢(被迫害妄想症),当然是打妖妖灵。就是找个权威机构(CA),Alice信任CA,只留CA的公钥,想和Bob通信就找CA,CA给Alice发个数据包,里面包含Bob的公钥和CA用私钥的签名。Alice用CA的公钥验证签名,如果正确就相信包里是真的Bob的公钥了。就这样信任链越做越大,就变成了PKI(公钥基础设施)。这个就像我们信任政府,所以信任政府给你发的身份证件,安心和你通信一个道理。
2. 由于公钥密码基于数学难题,加解密速度相对较慢,所以一般只用其做密钥交换。简单来说就是Alice生成一个此次通信密钥S,将S用Bob的公钥加密发给他,Bob收到后用字节的私钥解密得到S,双方用S作为密钥,用AES等对称加密算法通信,这样就叫混合密码体制。
这样密码学就完美解决了Alice和Bob等通信问题,从此两人可以愉快的梦游仙境了...

Eve说:你们确实在做梦,为什么呢,(量子)他来了,请闭眼。

三、恐怖的量子幽灵

  和Alice与Bob一样开心的还有物理学家。
由伽利略和牛顿奠定的古典物理学理论,到了19世纪40年代以后,由于海王星和能量守恒原理的发现,法拉第、麦克斯韦电磁理论的辉煌成就以及分子运动论的建立,而包罗大至日月星辰,小至原子、分子的物理世界。这一理论在科学的各个领域中所向披靡,使当时不少物理学家认为,物理理论已接近最后完成,今后只需在细节上作些补充和发展,在小数点第六位上做文章。
如果说相对论给力之前的物理学很好的纠正,就好像牛顿发现了正方形,而爱因斯坦跟全面的发现了四边形一样,那么量子的发现就是一把利剑,让所有物理学家都怀疑物理学和科幻小说没什么区别。

3.1、1900量子元年

  量子一词来自拉丁语quantus,意为“有多少”,代表“相当数量的某物质”,它最早是由德国物理学家普朗克在1900年提出的。他假设黑体辐射中的辐射能量是不连续的,只能取能量基本单位的整数倍,从而很好地解释了黑体辐射的实验现象。

3.2、光到底是波还是粒子

  学过中学物理的都知道,这个问题争论了近三百年。如果你进行双缝干涉实验,那光就展现波动性——电磁波。如果你进行光电效应实验那光就展现粒子性——具有动量的光子。但在同一时刻粒子性和波动性是排斥的,这就是波尔的互补原理,所以光具有波粒二象性。玻尔的互补原理和海森堡的不确定性原理、波恩的波函数统计诠释以及相关联的量子观念,构成了被当今物理学界最为认可的量子力学思想——哥本哈根诠释。由于体系过于庞大在此不再展开,下面只挑一些扯淡的理论分享。

3.3、量子的扯淡理论

“上帝不仅掷骰子,而且有时还把骰子掷到人们看不到的地方去”。

3.3.1 海森堡不确定性原理

  不确定性原理(Uncertainty principle)是由海森堡于1927年提出,这个理论是说,你不可能同时知道一个粒子的位置和它的速度,粒子位置的不确定性,必然大于或等于普朗克常数除于4π(ΔxΔp≥h/4π),这表明微观世界的粒子行为与宏观物质很不一样。
跳过定义用简单的话来说就是:你对粒子的位置测量得越准确,你对速度的测量就越不准确,反之亦然。如果要想测定一个量子的精确位置的话,那么就需要用波长尽量短的波,这样的话,对这个量子的扰动也会越大,对它的速度测量也会越不精确;如果想要精确测量一个量子的速度,那就要用波长较长的波,那就不能精确测定它的位置。

3.3.2 薛定谔的猫

  上面提到的双缝干涉相信大家在中学都学过,主要因为光的波动性互相干扰产生明暗相间的条纹。现在问题来了,当我们用一个粒子通过双缝时也出现了明暗相间的条纹。于是物理学家就正是变为科幻写手开始了他们的扯淡之路。
* 扯淡解释一:这个光子在通过双缝时变成两个鬼光子,分别从两个孔通过,然后互相干涉产生了明暗相间的条纹。通过双缝时光子处于两个叠加态,即从一个缝通过也从另一个缝通过,此中状态为重叠状态,我们无法观测到。著名的薛定谔的猫很好的描述了这个状态。
薛定谔的猫是奥地利著名物理学家薛定谔提出的一个思想实验,是指将一只猫关在装有少量镭和氰化物的密闭容器里。镭的衰变存在几率,如果镭发生衰变,会触发机关打碎装有氰化物的瓶子,猫就会死;如果镭不发生衰变,猫就存活。根据量子力学理论,由于放射性的镭处于衰变和没有衰变两种状态的叠加,猫就理应处于死猫和活猫的叠加状态。

  当妹子因为生气对你说“滚”时,你究竟要真的滚还是走过去抱紧她?这种现象叫“薛定谔的滚”,即当一个妹子叫你滚的时候,你永远不知道是在叫你滚还是叫你过来抱紧,此时就处于滚与不滚的量子叠加态。
* 比扯淡更扯淡解释二:这个光子在通过双缝时出现了两个平行宇宙,在一个宇宙中光子从一个孔通过,在另一宇宙中通过另一个孔,就这样物理学家获得奥斯卡最佳编剧指日可待了。

3.4、量子恐怖在哪

3.4.1 对科学的冲击

  我们从量子的几个原理看出量子世界的本质就是概率。传统观念中的严格因果关系在量子世界是不存在的,必须以一种统计性的解释来取而代之。换句话说,我们不知道一个东西在不在某个地方,只能说,这个东西有多少可能在某个地方。
我们一直认为科学就是客观确定的,而从量子理论发现,其既不客观(只有观察才知道猫是死是活,观察前它既死又活,主观观察者居然对实验产生了影响),也不确定(都是概率,完全随机)。至此以因果律为基础的科学轰然倒塌,物理学家都开始怀疑物理学完全是臆想出来的。

3.4.2 对哲学的冲击

  量子理论不但推翻了物质纯粹的客观实在性,还瓦解了决定论与必然性。想想客观实在、物质、决定论是不是经常出现在某门必考科目里。量子理论向世界宣告,必然性是随机性的特殊表现,确定性是不确定性的特殊表现。
人们从蒙昧时期的杂乱无章的表象逐渐认识世界,发现了世界受必然性、规律性、确定性支配的本质;又经过对经典物理学的辩证否定,发现世界的必然性、规律性、确定性,是寓于绝对的随机性、概率性与不确定性之中的,只是它们的一种特殊表现而已。

3.4.3 对密码学的冲击

  我们知道密钥(私钥)对保密性是现代加密的基础,因为算法公开,所以被人知道密钥(私钥)就等于没有加密。不管是对称密码密钥的穷举难题还是非对称基于的数学难题,都是假设攻击者的计算能力有限,不可能在短时间内做到。但是运用量子的计算机做到了。
经典计算机以位的形式编码信息;每个位编码两个可能的值:0或1。一个量子位同时编码两个值:0和1。两个经典位编码4个可能值(00、01、10、11)之一,而两个量子位则同时编码这4个状态的任何叠加,虽然我们在度量时只能获取这些值中的一个。四个量子位同时编码16个值的任何叠加态。依此类推,编码的值的个数呈指数增长。100个量子位能够编码的信息超出当今最大的计算机系统所能提供的信息。
简而言之,量子计算机就是运算快到无法想象的计算机,现在常用算法的密钥长度用量子计算机分分穷举出来,计算数学难题也和口算题差不多。这样现有密码算法在量子计算机面前犹如一丝不挂。
量子理论也并非只有冲击,量子计算和量子通信作为量子理论运用较好的领域如火如荼的发展着,而密码学也利用量子的不确定性,诞生了量子密码。

四、量子密码与后量子时代

4.1 BB84协议

  之前讨论到只有“一次一密”才具有完善保密性,所以只要实现安全共享无限长密钥在理论上就可以做到无条件安全。
而量子密码或者说量子密钥分发,就是利用量子力学的基本原理,用单个光子或者其他微观粒子的量子态做载体,来实现通信双方分享无限长的密钥,若有人去窃听,势必会改变其量子状态,这样通信双方就可以发现窃听。
比较著名也是最早的量子密钥分发协议是BB84,由物理学家Bennett和密码学家Brassard发明。据说因为火车晚点,两人闲着没事才想到了这个协议,充分体现有些事想做成需要机遇和巧合。
我们先看一些基础知识,因为光子有两个偏振方向,而且相互垂直。所以,单光子源每次生成的单个光子,可以是这样:

  我们可以简单选取“加号”或“乘号”的测量方式,对单光子源产生的单光子进行测量。

  当测量基和光子偏振方向一致,就可以得出确切结果,如果不一致就有50%概率为0,50%概率为1,而且还会改变光子的偏振方向。两种测量基对不同偏振方向光子的测量结果归纳如下:

  首先,Alice随机选择一串01比特序列,并随机选择测量机,这样就可以确定传输的每个光子偏振方向,并将光子发送给Bob(暂且不考虑单光子怎样传输):

  Bob接收到光子后随机选择测量机对其测量,当然有对有错:

  最后,Alice和Bob通过传统不安全信道对比测量机(QQ,微信,陌陌),去掉不同测量基测量的比特,剩下的作为密钥:
假如Eve只窃听Aice和Bob对比测量基,会得到这样的信息:不同不同相同相同不同不同相同相同,这个对他来说没有任何意义。Eve只能去测量传输的光子。因为量子的不可克隆性,Eve没有办法复制光子。Eve只有在光子传输时猜对Alice和Bob选用相同测量基的位置,并自己也选用同样的测量基测量(三方一致)才能获得密钥,这显然是不可能实现的。
另外,由于错误测量基会导致光子偏振方向改变,Alice和Bob在形成密钥后只要随机选择一些位上的比特比较是否相同,如果错误就很容易发现通信过程被窃听了。
值得注意的是,虽然BB84中篡改很容被发现,但其可用性堪忧。因为一旦Eve持续发起篡改干扰,密钥分发就无法完成,充分体现了我不知道也不让你知道的锲而不舍。

4.2、后量子时代密码

  后量子密码是什么?一句话概括:后量子密码(Post-quantum Cryptography (PQC)),是能够抵抗量子计算机对现有密码算法攻击的新一代密码算法。
NIST PQC标准征集工作于2016年正式启动。截至2017.11.30 ,NIST共收到82个算法草案。在进行初步筛选后,NIST公布了69个完整且适合的草案。在69个候选草案中,主要包括以下4种数学方法构造的后量子密码算法:

  • 格 (Lattice-based)
  • 编码 (Code-based)
  • 多变量 (Multivariate-based)
  • 哈希 (Hash-based)

  从NIST公布至今,密码学界对这些算法进行了详细的密码分析,目前已有近1/3的算法被发现存在各种各样的缺陷,近1/5的算法已被彻底攻破,后量子时代的密码之路任重而道远。

五、密码学大事记

  • 公元前60年,凯撒密码
  • 1949年,香农发表保密系统的通信理论
  • 1976年,Diffie-Hellman算法,公钥密码学
  • 1977年,RSA算法
  • 1982年,拜占庭将军问题
  • 1982年,盲签名技术,数字现金 eCash
  • 1984年,BB84协议
  • 1985年,零知识证明
  • 1985年,椭圆曲线加密算法
  • 1991年,用时间戳保证数据安全的协议
  • 1992年,密码朋克邮件列表
  • 1993年,密码朋克宣言
  • 1997年,哈希现金机制
  • 1998年,B-money
  • 1998年,BitGold
  • 1999年,P2P
  • 2001年,BitTorrent协议
  • 2002年,Kademlia
  • 2004年,Ripplepay
  • 2005年,RPoW
  • 2008年,比特币白皮书
  • 2009年,比特币“创世区块“

参考资料

《图解密码技术》 结城浩著,周自恒译 人民邮电出版社
《上帝掷骰子吗?:量子物理史话》曹天元著 北京联合出版公司
《哲学家们都干了些什么》 林欣浩著 北京联合出版公司
《现代密码学(第4版)》杨波著 清华大学出版社
https://www.ichunqiu.com/course/51209
http://www.tup.tsinghua.edu.cn/upload/books/yz/070910-01.pdf
https://zhuanlan.zhihu.com/p/96069439
https://zhuanlan.zhihu.com/p/22474140
https://zhuanlan.zhihu.com/p/49211385
https://www.36kr.com/p/1724842852353
https://blog.csdn.net/wowotuo/article/details/83832722
https://baijiahao.baidu.com/s?id=1594512062830295717&wfr=spider&for=pc
http://blog.nsfocus.net/quantum-information-technology/
https://baike.baidu.com/tashuo/browse/content?id=f1121e7fcade2bfa90961bfd
https://cloud.tencent.com/developer/article/1507468
https://k.sina.cn/article_6812746441_1961242c900100gmf3.html

Subscribe to XiaoShin
Receive the latest updates directly to your inbox.
Verification
This entry has been permanently stored onchain and signed by its creator.