经典密码学

对称密钥系统

凯撒密码是一种对称(私钥)加密方法:使用一套密钥对信息进行加密,然后使用同一套密钥对密文解密成译文。也就是说加密密钥和解密密钥是相同的。

词频统计可以很容易破解凯撒密码,一次性密码本(Vernam密码,1917年由香农证明)也属于对称加密,是一种无法被破解的加密技术,但要求使用与待发送消息长度相同或更长的一次性预共享密钥。

  • 密钥至少与消息一样长
  • 密钥完全随机
  • 密钥用完即弃,并准备新的密钥

但在实际中,Vernam\text{Vernam} 密码并没有什么用,因为在密钥上的成本已经超过了消息本身。

非对称密钥系统

密码学的核心在于密钥的传递,而非密文本身,因为密文是向公共广播的,非对称密钥系统就是加密和解密使用不同的密钥,且加密密钥可以公开,称为公钥,而解密密钥必须保密,称为私钥。任何加密都可以看作是一个函数,若加密密钥的函数是 f:PCf{:}P \to C,那么解密密钥的函数就是 f1:CPf^{-1}{:}C \to P。非对称密钥系统的核心在于,加密函数 ff 容易计算,但是其逆函数解密函数 f1f^{-1} 很难计算。RSA\text{RSA} 就是一种最广泛的非对称密钥系统。

RSA\text{RSA} 是最早的一套公钥系统,RSA\text{RSA} 的非对称性源于分解两个大质数乘积的困难性,其算法主要为四步:密钥生成密钥分发加密解密

RSA\text{RSA} 算法的核心原理在于:通过模幂运算,可以找到三个非常大的正整数 e,d,ne,d,n 使得对于所有整数 m,0m<nm,0 \le m < n,都有

(me)dm (mod n)(m^e)^d\equiv m\ ({\mathrm{mod}}\ n)

式中 mm 是要加密的对象,e,ne,n 是公钥,dd 是私钥(解密时也要用到 nn,可以看作私钥的一部分),即使知道 e,ne,n 甚至 mm,也很难计算出 dd

step1.密钥生成

  1. 随机选择两个大质数 ppqq

  2. 计算 n=pqn = pq,作为私钥和公钥的模数。

  3. 计算欧拉熵函数 ϕ(n)=(p1)(q1)\phi(n) = (p-1)(q-1),并保密。

  4. 选择一个整数 ee,满足 1<e<ϕ(n)1 < e < \phi(n)gcd(e,ϕ(n))=1\gcd(e, \phi(n)) = 1,也就是 eeϕ(n)\phi(n) 互质,作为公钥指数。

  5. 定义私钥指数 dd,使得 de=1(mod ϕ(n))d\cdot e=1({\mathrm{mod}}\ \phi(n))ee 公布为公钥,dd 作为私钥保密。

公钥由模数 nn 和公钥指数 ee 组成,私钥由必须严格保密的私钥指数 dd 构成。此外,ppqqϕ(n)\phi(n) 也必须保密,因为它们可用于计算 dd

step2.密钥分发

假设 Bob\text{Bob} 想要发送信息给 Alice\text{Alice},如果他们决定使用 RSA\text{RSA} 加密算法,Bob\text{Bob} 需要知道 Alice\text{Alice} 的公钥来加密消息,而 Alice\text{Alice} 必须使用她的私钥来解密消息。为了确保 Bob\text{Bob} 能够发送加密消息,Alice\text{Alice} 会通过一个可靠(但不一定保密)的途径将她的公钥(由模数 nn 和加密指数 ee 组成)传输给 Bob\text{Bob}Alice\text{Alice} 的私钥(解密指数 dd)始终不会被分发或共享。

step3.加密

Bob\text{Bob} 获得 Alice\text{Alice} 的公钥后,他可以将消息 mm (满足 0m<n0 \le m < n)发送给 Alice\text{Alice}。随后,他使用 Alice\text{Alice} 的公钥 (n,e)(n,e) 来加密消息 mm,生成密文 cc

cme (mod n)c \equiv m^e\ ({\mathrm{mod}}\ n)

step3.解密
Alice\text{Alice} 收到密文 cc 后,使用她的私钥 (n,d)(n,d) 来解密密文,恢复原始消息 mm

cd(me)dm (mod n)c^d \equiv \left(m^e\right)^d \equiv m\ ({\mathrm{mod}}\ n)

BB84 协议

RSA\text{RSA} 协议的前提是假设某些数学问题在计算上是不可行的,但随着计算能力的提升和算法的改进,这些假设可能会被打破,从而威胁到加密系统的安全性。因为量子算法(如 Shor 算法)可以高效地解决这些问题。因此,寻找不依赖于计算复杂性假设的加密方法变得尤为重要。BB84\text{BB84} 协议是一个不使用纠缠的量子密钥分发方案。其具有以下特点

  1. 一次性密码本、非对称密钥系统

  2. 通过量子信道分发密钥

  3. 通过经典信道发送密文

BB84\text{BB84} 的安全性由量子不可克隆定理保证。


BB84\text{BB84} 使用激光的极化偏振态进行通信

  1. Alice\text{Alice} 选择 4n4n 个随机数据比特

  2. Alice\text{Alice} 随机选择基用于制备 4n4n 个比特,并将结果通过量子信道发送给 Bob\text{Bob}

  3. Bob\text{Bob} 随机选择基用于测量 4n4n 个接收到的比特

接下来的步骤都在经典信道上进行,也就是说接下来的操作全被认为是公开的

  1. Bob\text{Bob} 公布选择的基,Alice\text{Alice} 告诉 Bob\text{Bob} 相同的基的位置,并舍弃不同的基,根据概率,剩下约 2n2n 个比特

  2. Alice\text{Alice} 选择部分数据(例如 nn 比特)作为检验比特,告诉 Bob\text{Bob} 公开比较,如果误码率过高,说明有窃听者存在,协议失败,否则继续(正常情况下误码率应接近于 00),检验完后舍弃。

  3. Alice\text{Alice}Bob\text{Bob} 对剩余的 nn 位进行纠错、保密放大和认证,最后获得 mm 比特共享密钥。


由于 Alice\text{Alice} 随机选择制备方向,Bob\text{Bob} 随机选择测量方向,只有两个方向的结果一致时,Bob\text{Bob} 才能完全正确测量出 Alice\text{Alice} 发送的比特,否则猜对的概率为一半。Alice\text{Alice}Bob\text{Bob} 在概率上应有约 50%50\% 的测量基一致,从而得到一半的共享比特。然而 Eve\text{Eve} 的出现会将这个数量从 50%50\% 降低到 25%25\%,从而被 Alice\text{Alice}Bob\text{Bob} 发现。

需要注意的是,通过 BB84\text{BB84},双方共享的是密钥而不是密文,所以可以随便舍弃不一致的测量基,双方可以一直运行协议直到获得足够长度的共享密钥,然后只需将积累的密钥作为一次性密码本,将信息加密后通过经典信道发送即可。

最后,因为信道的噪声和其他不可避免的误差,Alice\text{Alice}Bob\text{Bob} 可以对共享密钥通过经典过程进行纠错,并进行认证,从而降低密钥的误码率。但在纠错以及认证的过程中需要使用经典信道,那么 Eve\text{Eve} 就可以通过这些公开的信息获得一些关于密钥的信息,因此 Alice\text{Alice}Bob\text{Bob} 还需要通过保密增强来减少 Eve\text{Eve} 获得的信息,从而确保最终的共享密钥是安全的。

信息纠错:使用二分法检验二进制数的奇偶性,找出并纠正错误。

保密增强:若经过纠错后的字符串长度为 nnEve\text{Eve} 对该字符串的估计信息量为 tt,为了实现安全性,Alice\text{Alice}Bob\text{Bob} 至少需要从 nn 比特中再舍弃 tt 比特,在这个至少的基础上,舍弃的比特越多,共享密钥安全性越高,但最终密钥的长度也越短。例如,如果 Alice\text{Alice}Bob\text{Bob}ntn-t 个比特中进一步舍弃 ss 个比特,那么 Eve\text{Eve} 最后对 k=ntsk=n-t-s 个比特的共享密钥的信息就被限制在 2s/ln22^{-s}/\ln 2 以内,也就是说,Eve\text{Eve} 得到的信息随着 ss 的增加而指数级减少。


  • BB84\text{BB84} 协议的有效性基于海森堡原理。Eve\text{Eve} 无法同时测量同一量子比特沿 σx()\sigma_x \left(\otimes\right)σz()\sigma_z \left(\oplus\right) 方向的偏振 [σx,σz]0\left[\sigma_x,\sigma_z\right] \neq 0

  • 量子不可克隆定理保证了 Eve\text{Eve} 无法确定区分非正交量子态。

  • Alice\text{Alice}Bob\text{Bob} 选择的基相同的情况下,Eve\text{Eve} 的测量会引入变化,对于每个比特,Eve\text{Eve}50%50\% 的概率选择了错误的基,而在这种情况下,Bob\text{Bob}50%50\% 的概率测量到错误的结果。因此对每个比特,Eve\text{Eve} 的使得 Bob\text{Bob} 测量错误的概率为 25%25\%,因此所有比特都正确的概率为 (34)n\left(\frac{3}{4}\right)^n,至少有一个比特出错的概率如下所示,当 nn 足够大时,概率趋近于 11,所以几乎总是能够检测到窃听者的存在。

P(n)=1(34)nP(n)=1-\left(\frac{3}{4}\right)^n

量子隐形传态

可以把任意的未知量子态传输到目标位置,但传输的是态的信息而不是态本身。即便 Alice\text{Alice} 仅向 Bob\text{Bob} 发送经典信息,量子隐形传态技术也能使量子信息能够从 Alice\text{Alice} 传输至 Bob\text{Bob}

假设 Alice\text{Alice} 有一个未知的量子态,那么可以进行下图所示的步骤

ψ=α0+β1|\psi\rangle = \alpha |0\rangle + \beta |1\rangle

量子隐形传态

step1:前两个量子门可产生贝尔态

ψ+=12(01+10)=CNOT(HI)01|\psi^+\rangle=\frac{1}{\sqrt{2}}\left(|01\rangle+|10\rangle\right)=\mathrm{CNOT}(H\otimes I)|01\rangle

这个 EPR\text{EPR} 对的前半部分发送给 Alice\text{Alice},后半部分发送给 Bob\text{Bob},所以,Alice\text{Alice} 手上有两个量子比特(未知态和 EPR\text{EPR} 对的前半部分),Bob\text{Bob} 手上有一个量子比特(EPR\text{EPR} 对的后半部分)。整个系统的初始态由直积给出

ψψ+=(α0+β1)12(01+10)=α2(001+010)+β2(101+110)\begin{aligned} |\psi\rangle\otimes|\psi^{+}\rangle & =\quad(\alpha|0\rangle+\beta|1\rangle)\otimes\frac{1}{\sqrt{2}}\left(|01\rangle+|10\rangle\right) \\ & =\quad\frac{\alpha}{\sqrt{2}}\left(|001\rangle+|010\rangle\right)+\frac{\beta}{\sqrt{2}}\left(|101\rangle+|110\rangle\right) \end{aligned}

前两个 qubit\text{qubit} 属于 Alice\text{Alice},第三个 qubitqubit 属于 Bob\text{Bob},我们的目的就是将系数 α\alphaβ\betaAlice\text{Alice} 的第一个 qubit\text{qubit} 传输到 Bob\text{Bob} 的第三个 qubit\text{qubit}

step2Alice\text{Alice} 对她的两个 qubit\text{qubit} 进行了一个基矢变换,最终将系统态表示为贝尔基的线性组合

ψψ+=α2(ϕ++ϕ)1+α2(ψ++ψ)0+β2(ψ+ψ)1+β2(ϕ+ϕ)0=12ψ+(α0+β1)+12ψ(α0β1)+12ϕ+(α1+β0)+12ϕ(α1β0)\begin{aligned} |\psi\rangle\otimes|\psi^{+}\rangle & ={\frac{\alpha}{2}\left(|\phi^{+}\rangle+|\phi^{-}\rangle\right)|1\rangle+\frac{\alpha}{2}\left(|\psi^{+}\rangle+|\psi^{-}\rangle\right)|0\rangle} \\ & \quad+\frac{\beta}{2}\left(|\psi^{+}\rangle-|\psi^{-}\rangle\right)|1\rangle+\frac{\beta}{2}\left(|\phi^{+}\rangle-|\phi^{-}\rangle\right)|0\rangle \\ & =\frac{1}{2}|\psi^{+}\rangle(\alpha|0\rangle+\beta|1\rangle)+\frac{1}{2}|\psi^{-}\rangle(\alpha|0\rangle-\beta|1\rangle) \\ & \quad+\frac{1}{2}|\phi^{+}\rangle\left(\alpha|1\rangle+\beta|0\rangle\right)+\frac{1}{2}|\phi^{-}\rangle\left(\alpha|1\rangle-\beta|0\rangle\right) \end{aligned}

这时,只要Alice\text{Alice} 在贝尔基上进行一次测量,就能以相同的概率 1/41/4 得到四种结果中的一种 :ψ+,ψ,ϕ+,ϕ|\psi^{+}\rangle,|\psi^{-}\rangle,|\phi^{+}\rangle,|\phi^{-}\rangle。但此时,我们还无法确定 Bob\text{Bob}qubit\text{qubit} 在四个态中的哪一个。

我们是无法通过某个测量仪器读取一个纠态的,但是通过以下幺正变换,贝尔测量就能转换为计算基中的标准测量

B=(HI)CNOTB=(H\otimes I)\mathrm{CNOT}

从线路图中可以看出,这个幺正操作和纠缠态的产生互为逆操作,能够将贝尔态转换为计算基态,ϕ+00\ket{\phi^+} \to \ket{00}ψ+01\ket{\psi^+} \to \ket{01}ϕ10\ket{\phi^-} \to \ket{10}ψ11\ket{\psi^-} \to \ket{11},这个幺正变换作用后,系统态变为

Bψψ+=1201(α0+β1)+1211(α0β1)+1200(α1+β0)+1210(α1β0)\begin{aligned} B|\psi\rangle\otimes|\psi^{+}\rangle & =\frac{1}{2}|01\rangle\left(\alpha|0\rangle+\beta|1\rangle\right)+\frac{1}{2}|11\rangle\left(\alpha|0\rangle-\beta|1\rangle\right) \\ & \quad+\frac{1}{2}|00\rangle\left(\alpha|1\rangle+\beta|0\rangle\right)+\frac{1}{2}|10\rangle\left(\alpha|1\rangle-\beta|0\rangle\right) \end{aligned}

step3Alice\text{Alice} 在计算基中测量其持有的两个量子比特。四种可能的结果( 0000010110101111)提供了两比特的经典信息,这四种结果与 Bob\text{Bob} 的单量子比特一一对应。

step4Alice\text{Alice} 将测量结果通过经典信道发送给 Bob\text{Bob}

step5:根据 Alice\text{Alice} 发送的两比特经典信息,Bob\text{Bob} 对其量子比特进行相应的幺正变换 UU,从而将其量子比特恢复为原始的未知态 ψ=α0+β1|\psi\rangle = \alpha |0\rangle + \beta |1\rangle

Alice\text{Alice} 的信息 Bob\text{Bob} 的量子比特 Bob\text{Bob} 的操作 Bob\text{Bob} 的结果
0101 α0+β1\alpha|0\rangle+\beta|1\rangle II α0+β1\alpha|0\rangle+\beta|1\rangle
1111 α0β1\alpha|0\rangle-\beta|1\rangle σz\sigma_z α0+β1\alpha|0\rangle+\beta|1\rangle
0000 α1+β0\alpha|1\rangle+\beta|0\rangle σx\sigma_x α0+β1\alpha|0\rangle+\beta|1\rangle
1010 α1β0\alpha|1\rangle-\beta|0\rangle iσyi\sigma_y α0+β1\alpha|0\rangle+\beta|1\rangle
  • 传输的对象是量子态的信息,而不是量子态的实体。
  • 量子隐形传态并不违反不可克隆定理,因为在传态过程中,原始量子态在 Alice\text{Alice} 处塌缩了。
  • 量子隐形传态需要经典信息的传输,因此其传输速度不能超过光速。