1、量子概念
量子(Quantum)属于一个微观的物理概念。如果一个物理量存在最小的不可分割的基本单位,那么称这个物理量是可量子化的,并把物理量的基本单位称为量子。现代物理中,将微观世界中所有的不可分割的微观粒子(光子、电子、原子等)或其状态等物理量统称为量子。
量子这个概念最早由德国物理学家普朗克在1900年提出的,他假设黑体辐射中的辐射能量是不连续的,只能取能量基本单位的整数倍,这很好地解释了黑体辐射的实验现象。即假设对于一定频率的电磁辐射,物体只以“量子”的方式吸收和发射,每个“量子”的能量可以表示为:E=hν,h为普朗克常数。
2、量子基本特性
作为一种微观粒子,量子具有许多特别的基本特性,如量子力学三大基本原理:
量子测不准
也称为不确定性原理,即观察者不可能同时知道一个粒子的位置和它的速度,粒子位置的总是以一定的概率存在某一个不同的地方,而对未知状态系统的每一次测量都必将改变系统原来的状态。也就是说,测量后的微粒相比于测量之前,必然会产生变化。
量子不可克隆
量子不可克隆原理,即一个未知的量子态不能被完全地克隆。在量子力学中,不存在这样一个物理过程:实现对一个未知量子态的精确复制,使得每个复制态与初始量子态完全相同。
量子不可区分
量子不可区分原理,即不可能同时精确测量两个非正交量子态。事实上,由于非正交量子态具有不可区分性,无论采用任何测量方法,测量结果的都会有错误。
除此之外,还包括以下基本特性:
量子态叠加性(superposition)
量子状态可以叠加,因此量子信息也是可以叠加的。这是量子计算中的可以实现并行性的重要基础,即可以同时输入和操作个量子比特的叠加态。
量子态纠缠性(entanglement)
两个及以上的量子在特定的(温度、磁场)环境下可以处于较稳定的量子纠缠状态,基于这种纠缠,某个粒子的作用将会瞬时地影响另一个粒子。爱因斯坦称其为: “幽灵般的超距作用”。
量子态相干性(interference)
量子力学中微观粒子间的相互叠加作用能产生类似经典力学中光的干涉现象。
二、密码学基础
1、密码学基本原则
在设计算法时,必须假设敌人已经知道了算法和密文,唯一不知道的是密钥。密码学的研究目标就是,让敌人在这种情况下破译不了密文。算法、密文、密钥三个元素,缺一个密钥,让你死活破译不了;三缺一干着急,这是设计密码体系时的基本原则。
2、一次性便签--one time pad
(1)密钥是一串随机的字符串;
(2)密钥的长度跟明文一样,甚至更长;
(3)每传送一次密文就更换密钥,即“一次一密”。
香农证明了一个数学定理:密钥如果满足以上三个条件,那么通信就是“绝对安全”的。
三、加密通信
四、量子密钥分发(Quantum Key Distribution)
量子密钥是一串随机的字符串,长度也可随意设定,而且每次需要传输信息时都重新产生一段密钥,这样就完全满足了香农定理的三个要求(密钥随机,长度不小于明文,一次一密),因此用量子密钥加密后的密文是不可破译的。
------------------------------------------------
以下内容涉及较多计算,请读者耐心阅读
------------------------------------------------
五、BB84协议
1、名称由来
BB84协议是美国科学家Charles H. Bennett和加拿大科学家Gilles Brassard在1984年提出的,BB84是两人姓的首字母加上年份的缩写。
2、操作过程
Alice拿一个随机数发生器,产生1个随机数0或者1(记作a),用a来决定选择哪个基组:得到0就用|0>和|1>的基组,得到1就用|+>和|->的基组;选定基组之后,再产生1个随机数(记作a′),根据这第二个随机数决定在基组中选择哪个状态:得到0就在|0>和|1>中选择|0>或者在|+>和|->中选择|+>,得到1就在|0>和|1>中选择|1>或者在|+>和|->中选择|->。经过这样双重的随机选择之后,A把选定的随机数 a' 保留,把由a'的值所决定的光子发送出去(一个一个连续的发出,a'决定的是光子的状态)。
B接到光子的时候,并不知道它是属于哪个基组的。B也拿一个随机数发生器,产生1个随机数(记作b),得到0的时候就在|0>和|1>的基组中测量,得到1的时候就在|+>和|->的基组中测量。B测得|0>或者|+>就记下一个0,测得|1>或者|->就记下一个1,我们把这个数记为b′。
如果Bob猜对了基组,也就是a = b,那么所得到的那个光子的状态就是B的基组中的一个,测量以后不会变,a′必然等于b′。而如果B猜错了基组,a ≠ b,那么光子的状态就不是B的基组中的一个,所以测量后会突变,a′和b′就不一定相等了(有一半的概率不同)。把这样的操作重复若干次,双方发送和测量若干个光子。
结束后,双方公布自己的第一个序列,也就是a和b随机数序列(注意不是把发送出去的光子随机数序列公布,而是第1个序列),比如说Alice这一方的a序列是0110,Bob这一方的b序列是1100。然后找出其中相同的部分,就是第2位(1)和第4位(0)。那么Bob就知道自己这里接收到的光子的第2个和第4个,与Alice那边是同一个基组,所以测量以后得到的结果b'(b'的第2个与第4个)必然与Alice那里所保留的a' (a'的第2个与第4个)相同。
简要来说,BB84协议操作过程中同时利用了量子信道和经典信道:
量子信道部分
(1) Alice发送随机的量子比特串给Bob。Alice随机选择四种偏振片,制备不同偏振状态的光量子,得到足够多的随机量子比特并将其发送给Bob。
(2) Bob随机选择测量基测量量子比特。由于Bob并不知道光量子是由发送端那一种测量基编码的,所以他也只能随机选择测量基来进行测量。当选择正确的测量基时,测量的结果正确。当使用错误的测量结果时,测量结果错误。
经典信道部分
(3) Bob将使用的测量基发送给Alice。
(4) Alice将接收的测量基与使用的测量基进行比较,并通过信息告诉Bob哪些位置的测量基是正确的。
(5) Bob根据Alice的消息剔除错误的量子比特,并将选择少部分正确的测量结果告诉Alice。
(6) Alice确认Bob测量结果的正确性。若错误,则说明存在量子信道可能存在窃听,停止通信或者返回第 (1) 步(由于实际的量子信道中也存在噪声,因此会根据一个错误率阈值判断是否窃听和停止通信)。若正确,剔除部分的量子比特,剩下的二进制串作为最终的密钥。并发送确认信息给Bob。
(7) Bob收到确认信息。同样剔除部分的量子比特,剩下的二进制串作为最终的密钥。
3、Eve窃听
Eve进行窃听的话,对基组进行猜测,就有一半的概率猜错,猜错以后就会改变光子的状态。例如Alice发出的状态是|+>(这对应于a= 1, a′ = 0),Eve用|0>和|1>的基组来测量|+>,就会以一半的概率把它变成|0>,一半的概率把它变成|1>;然后B再去测量这个光子。如果Bob用的基组是|0>和|1>(b = 0),测量结果是|1> ,公布后会发现这里a ≠ b,这个数据就被抛弃。而如果Bob用的基组是|+>和|->(b = 1),公布后会发现这里a = b, 这个数据要保留。这时b′等于什么呢?无论光子状态是|0>还是|1>(E测量后状态变成|0>或|1>,正常该是|+>),在|+>和|->的基组下测量时都以一半的概率变成|+>(b′ = 0),一半的概率变成|->(b′ = 1);而无E窃听测量的情况下B应该测得的是 |+> 状态(b'=0); 也就是在有E窃听测量的情况下B得出的密钥有一定比例和A的密钥不同。
只要Eve猜错了基组,a′和b′就会有一半的概率不同;Eve猜错基组的概率是一半;所以在E做了测量的情况下a′和b′不同的概率是1/2 × 1/2= 1/4。
为了知道有没有窃听,Alice和Bob在得到a′和b′序列后,再挑选一段公布。这是BB84协议中的第二次公布。
第一次公布的是双方随机选择的基组的情况,基组一样的就认为是要保留的;第二次公布是保留下来的数据的一部分,这个保留的数据原本是要作为密钥的不能全公布出来,可是为了安全、不被窃听,只能牺牲掉一段;如果发现公布出来的那一部分双方有很大差异,就说明有人窃听。
如果Eve选错了测量基(50%概率),那么必然会改变信号,使得Alice发送的信号和Bob接收的信号不一致。经过上述协议后,Alice和Bob端的量子密钥不一样,会造成Bob端无法解码或者误码率增大。因而B可以通过上述现象,判断是否存在窃听者Eve。事实上通过计算可以发现,Eve在窃听100个码元后,不被发现的概率仅为3.2* 10^(-13),更何况现实通信的数据远不止100个码元。
六、量子密码术的安全性
1、如果成功生成了密钥,那么密文即使被截获了也不会被破译;
2、没有传递密钥的信使;
3、不会被计算技术的进步破解;
4、如果在密钥生成过程中有人窃听,那么会被通信方发现,仍然不会泄密。