经典密码学
对称密钥系统
凯撒密码是一种对称(私钥)加密方法:使用一套密钥对信息进行加密,然后使用同一套密钥对密文解密成译文。也就是说加密密钥和解密密钥是相同的。
词频统计可以很容易破解凯撒密码,一次性密码本(Vernam密码,1917年由香农证明)也属于对称加密,是一种无法被破解的加密技术,但要求使用与待发送消息长度相同或更长的一次性预共享密钥。
密钥至少与消息一样长
密钥完全随机
密钥用完即弃,并准备新的密钥
但在实际中,Vernam \text{Vernam} Vernam 密码并没有什么用,因为在密钥上的成本已经超过了消息本身。
非对称密钥系统
密码学的核心在于密钥的传递,而非密文本身,因为密文是向公共广播的,非对称密钥系统就是加密和解密使用不同的密钥,且加密密钥可以公开,称为公钥,而解密密钥必须保密,称为私钥。任何加密都可以看作是一个函数,若加密密钥的函数是 f : P → C f{:}P \to C f : P → C ,那么解密密钥的函数就是 f − 1 : C → P f^{-1}{:}C \to P f − 1 : C → P 。非对称密钥系统的核心在于,加密函数 f f f 容易计算,但是其逆函数解密函数 f − 1 f^{-1} f − 1 很难计算。RSA \text{RSA} RSA 就是一种最广泛的非对称密钥系统。
RSA \text{RSA} RSA 是最早的一套公钥系统,RSA \text{RSA} RSA 的非对称性源于分解两个大质数乘积的困难性,其算法主要为四步:密钥生成 、密钥分发 、加密 、解密 。
RSA \text{RSA} RSA 算法的核心原理在于:通过模幂运算,可以找到三个非常大的正整数 e , d , n e,d,n e , d , n 使得对于所有整数 m , 0 ≤ m < n m,0 \le m < n m , 0 ≤ m < n ,都有
( m e ) d ≡ m ( m o d n ) (m^e)^d\equiv m\ ({\mathrm{mod}}\ n)
( m e ) d ≡ m ( mod n )
式中 m m m 是要加密的对象,e , n e,n e , n 是公钥,d d d 是私钥(解密时也要用到 n n n ,可以看作私钥的一部分),即使知道 e , n e,n e , n 甚至 m m m ,也很难计算出 d d d 。
step1.密钥生成
随机选择两个大质数 p p p 和 q q q 。
计算 n = p q n = pq n = pq ,作为私钥和公钥的模数。
计算欧拉熵函数 ϕ ( n ) = ( p − 1 ) ( q − 1 ) \phi(n) = (p-1)(q-1) ϕ ( n ) = ( p − 1 ) ( q − 1 ) ,并保密。
选择一个整数 e e e ,满足 1 < e < ϕ ( n ) 1 < e < \phi(n) 1 < e < ϕ ( n ) 且 gcd ( e , ϕ ( n ) ) = 1 \gcd(e, \phi(n)) = 1 g cd( e , ϕ ( n )) = 1 ,也就是 e e e 和 ϕ ( n ) \phi(n) ϕ ( n ) 互质,作为公钥指数。
定义私钥指数 d d d ,使得 d ⋅ e = 1 ( m o d ϕ ( n ) ) d\cdot e=1({\mathrm{mod}}\ \phi(n)) d ⋅ e = 1 ( mod ϕ ( n )) ,e e e 公布为公钥,d d d 作为私钥保密。
公钥由模数 n n n 和公钥指数 e e e 组成,私钥由必须严格保密的私钥指数 d d d 构成。此外,p p p 、q q q 和 ϕ ( n ) \phi(n) ϕ ( n ) 也必须保密,因为它们可用于计算 d d d 。
step2.密钥分发
假设 Bob \text{Bob} Bob 想要发送信息给 Alice \text{Alice} Alice ,如果他们决定使用 RSA \text{RSA} RSA 加密算法,Bob \text{Bob} Bob 需要知道 Alice \text{Alice} Alice 的公钥来加密消息,而 Alice \text{Alice} Alice 必须使用她的私钥来解密消息。为了确保 Bob \text{Bob} Bob 能够发送加密消息,Alice \text{Alice} Alice 会通过一个可靠(但不一定保密)的途径将她的公钥(由模数 n n n 和加密指数 e e e 组成)传输给 Bob \text{Bob} Bob 。Alice \text{Alice} Alice 的私钥(解密指数 d d d )始终不会被分发或共享。
step3.加密
在 Bob \text{Bob} Bob 获得 Alice \text{Alice} Alice 的公钥后,他可以将消息 m m m (满足 0 ≤ m < n 0 \le m < n 0 ≤ m < n )发送给 Alice \text{Alice} Alice 。随后,他使用 Alice \text{Alice} Alice 的公钥 ( n , e ) (n,e) ( n , e ) 来加密消息 m m m ,生成密文 c c c
c ≡ m e ( m o d n ) c \equiv m^e\ ({\mathrm{mod}}\ n)
c ≡ m e ( mod n )
step3.解密
Alice \text{Alice} Alice 收到密文 c c c 后,使用她的私钥 ( n , d ) (n,d) ( n , d ) 来解密密文,恢复原始消息 m m m
c d ≡ ( m e ) d ≡ m ( m o d n ) c^d \equiv \left(m^e\right)^d \equiv m\ ({\mathrm{mod}}\ n)
c d ≡ ( m e ) d ≡ m ( mod n )
BB84 协议
RSA \text{RSA} RSA 协议的前提是假设某些数学问题在计算上是不可行的,但随着计算能力的提升和算法的改进,这些假设可能会被打破,从而威胁到加密系统的安全性。因为量子算法(如 Shor 算法)可以高效地解决这些问题。因此,寻找不依赖于计算复杂性假设的加密方法变得尤为重要。BB84 \text{BB84} BB84 协议是一个不使用纠缠的量子密钥分发方案。其具有以下特点
一次性密码本、非对称密钥系统
通过量子信道分发密钥
通过经典信道发送密文
BB84 \text{BB84} BB84 的安全性由量子不可克隆定理保证。
BB84 \text{BB84} BB84 使用激光的极化偏振态进行通信
Alice \text{Alice} Alice 选择 4 n 4n 4 n 个随机数据比特
Alice \text{Alice} Alice 随机选择基用于制备 4 n 4n 4 n 个比特,并将结果通过量子信道发送给 Bob \text{Bob} Bob
Bob \text{Bob} Bob 随机选择基用于测量 4 n 4n 4 n 个接收到的比特
接下来的步骤都在经典信道上进行,也就是说接下来的操作全被认为是公开的
Bob \text{Bob} Bob 公布选择的基,Alice \text{Alice} Alice 告诉 Bob \text{Bob} Bob 相同的基的位置,并舍弃不同的基,根据概率,剩下约 2 n 2n 2 n 个比特
Alice \text{Alice} Alice 选择部分数据(例如 n n n 比特)作为检验比特,告诉 Bob \text{Bob} Bob 公开比较,如果误码率过高,说明有窃听者存在,协议失败,否则继续(正常情况下误码率应接近于 0 0 0 ),检验完后舍弃。
Alice \text{Alice} Alice 和 Bob \text{Bob} Bob 对剩余的 n n n 位进行纠错、保密放大和认证,最后获得 m m m 比特共享密钥。
由于 Alice \text{Alice} Alice 随机选择制备方向,Bob \text{Bob} Bob 随机选择测量方向,只有两个方向的结果一致时,Bob \text{Bob} Bob 才能完全正确测量出 Alice \text{Alice} Alice 发送的比特,否则猜对的概率为一半。Alice \text{Alice} Alice 和 Bob \text{Bob} Bob 在概率上应有约 50 % 50\% 50% 的测量基一致,从而得到一半的共享比特。然而 Eve \text{Eve} Eve 的出现会将这个数量从 50 % 50\% 50% 降低到 25 % 25\% 25% ,从而被 Alice \text{Alice} Alice 和 Bob \text{Bob} Bob 发现。
需要注意的是,通过 BB84 \text{BB84} BB84 ,双方共享的是密钥而不是密文,所以可以随便舍弃不一致的测量基,双方可以一直运行协议直到获得足够长度的共享密钥,然后只需将积累的密钥作为一次性密码本,将信息加密后通过经典信道发送即可。
最后,因为信道的噪声和其他不可避免的误差,Alice \text{Alice} Alice 和 Bob \text{Bob} Bob 可以对共享密钥通过经典过程进行纠错,并进行认证,从而降低密钥的误码率。但在纠错以及认证的过程中需要使用经典信道,那么 Eve \text{Eve} Eve 就可以通过这些公开的信息获得一些关于密钥的信息,因此 Alice \text{Alice} Alice 和 Bob \text{Bob} Bob 还需要通过保密增强来减少 Eve \text{Eve} Eve 获得的信息,从而确保最终的共享密钥是安全的。
信息纠错 :使用二分法检验二进制数的奇偶性,找出并纠正错误。
保密增强 :若经过纠错后的字符串长度为 n n n ,Eve \text{Eve} Eve 对该字符串的估计信息量为 t t t ,为了实现安全性,Alice \text{Alice} Alice 和 Bob \text{Bob} Bob 至少需要从 n n n 比特中再舍弃 t t t 比特,在这个至少的基础上,舍弃的比特越多,共享密钥安全性越高,但最终密钥的长度也越短。例如,如果 Alice \text{Alice} Alice 和 Bob \text{Bob} Bob 从 n − t n-t n − t 个比特中进一步舍弃 s s s 个比特,那么 Eve \text{Eve} Eve 最后对 k = n − t − s k=n-t-s k = n − t − s 个比特的共享密钥的信息就被限制在 2 − s / ln 2 2^{-s}/\ln 2 2 − s / ln 2 以内,也就是说,Eve \text{Eve} Eve 得到的信息随着 s s s 的增加而指数级减少。
BB84 \text{BB84} BB84 协议的有效性基于海森堡原理。Eve \text{Eve} Eve 无法同时测量同一量子比特沿 σ x ( ⊗ ) \sigma_x \left(\otimes\right) σ x ( ⊗ ) 和 σ z ( ⊕ ) \sigma_z \left(\oplus\right) σ z ( ⊕ ) 方向的偏振 [ σ x , σ z ] ≠ 0 \left[\sigma_x,\sigma_z\right] \neq 0 [ σ x , σ z ] = 0 。
量子不可克隆定理保证了 Eve \text{Eve} Eve 无法确定区分非正交量子态。
在 Alice \text{Alice} Alice 和 Bob \text{Bob} Bob 选择的基相同的情况下,Eve \text{Eve} Eve 的测量会引入变化,对于每个比特,Eve \text{Eve} Eve 有 50 % 50\% 50% 的概率选择了错误的基,而在这种情况下,Bob \text{Bob} Bob 有 50 % 50\% 50% 的概率测量到错误的结果。因此对每个比特,Eve \text{Eve} Eve 的使得 Bob \text{Bob} Bob 测量错误的概率为 25 % 25\% 25% ,因此所有比特都正确的概率为 ( 3 4 ) n \left(\frac{3}{4}\right)^n ( 4 3 ) n ,至少有一个比特出错的概率如下所示,当 n n n 足够大时,概率趋近于 1 1 1 ,所以几乎总是能够检测到窃听者的存在。
P ( n ) = 1 − ( 3 4 ) n P(n)=1-\left(\frac{3}{4}\right)^n
P ( n ) = 1 − ( 4 3 ) n
量子隐形传态
可以把任意的未知量子态传输到目标位置,但传输的是态的信息而不是态本身。即便 Alice \text{Alice} Alice 仅向 Bob \text{Bob} Bob 发送经典信息,量子隐形传态技术也能使量子信息能够从 Alice \text{Alice} Alice 传输至 Bob \text{Bob} Bob 。
假设 Alice \text{Alice} Alice 有一个未知的量子态,那么可以进行下图所示的步骤
∣ ψ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\psi\rangle = \alpha |0\rangle + \beta |1\rangle
∣ ψ ⟩ = α ∣0 ⟩ + β ∣1 ⟩
step1 :前两个量子门可产生贝尔态
∣ ψ + ⟩ = 1 2 ( ∣ 01 ⟩ + ∣ 10 ⟩ ) = C N O T ( H ⊗ I ) ∣ 01 ⟩ |\psi^+\rangle=\frac{1}{\sqrt{2}}\left(|01\rangle+|10\rangle\right)=\mathrm{CNOT}(H\otimes I)|01\rangle
∣ ψ + ⟩ = 2 1 ( ∣01 ⟩ + ∣10 ⟩ ) = CNOT ( H ⊗ I ) ∣01 ⟩
这个 EPR \text{EPR} EPR 对的前半部分发送给 Alice \text{Alice} Alice ,后半部分发送给 Bob \text{Bob} Bob ,所以,Alice \text{Alice} Alice 手上有两个量子比特(未知态和 EPR \text{EPR} EPR 对的前半部分),Bob \text{Bob} Bob 手上有一个量子比特(EPR \text{EPR} EPR 对的后半部分)。整个系统的初始态由直积给出
∣ ψ ⟩ ⊗ ∣ ψ + ⟩ = ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) ⊗ 1 2 ( ∣ 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} ∣ ψ ⟩ ⊗ ∣ ψ + ⟩ = ( α ∣0 ⟩ + β ∣1 ⟩) ⊗ 2 1 ( ∣01 ⟩ + ∣10 ⟩ ) = 2 α ( ∣001 ⟩ + ∣010 ⟩ ) + 2 β ( ∣101 ⟩ + ∣110 ⟩ )
前两个 qubit \text{qubit} qubit 属于 Alice \text{Alice} Alice ,第三个 q u b i t qubit q u bi t 属于 Bob \text{Bob} Bob ,我们的目的就是将系数 α \alpha α 和 β \beta β 从 Alice \text{Alice} Alice 的第一个 qubit \text{qubit} qubit 传输到 Bob \text{Bob} Bob 的第三个 qubit \text{qubit} qubit 。
step2 :Alice \text{Alice} Alice 对她的两个 qubit \text{qubit} qubit 进行了一个基矢变换,最终将系统态表示为贝尔基的线性组合
∣ ψ ⟩ ⊗ ∣ ψ + ⟩ = α 2 ( ∣ ϕ + ⟩ + ∣ ϕ − ⟩ ) ∣ 1 ⟩ + α 2 ( ∣ ψ + ⟩ + ∣ ψ − ⟩ ) ∣ 0 ⟩ + β 2 ( ∣ ψ + ⟩ − ∣ ψ − ⟩ ) ∣ 1 ⟩ + β 2 ( ∣ ϕ + ⟩ − ∣ ϕ − ⟩ ) ∣ 0 ⟩ = 1 2 ∣ ψ + ⟩ ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) + 1 2 ∣ ψ − ⟩ ( α ∣ 0 ⟩ − β ∣ 1 ⟩ ) + 1 2 ∣ ϕ + ⟩ ( α ∣ 1 ⟩ + β ∣ 0 ⟩ ) + 1 2 ∣ ϕ − ⟩ ( α ∣ 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} ∣ ψ ⟩ ⊗ ∣ ψ + ⟩ = 2 α ( ∣ ϕ + ⟩ + ∣ ϕ − ⟩ ) ∣1 ⟩ + 2 α ( ∣ ψ + ⟩ + ∣ ψ − ⟩ ) ∣0 ⟩ + 2 β ( ∣ ψ + ⟩ − ∣ ψ − ⟩ ) ∣1 ⟩ + 2 β ( ∣ ϕ + ⟩ − ∣ ϕ − ⟩ ) ∣0 ⟩ = 2 1 ∣ ψ + ⟩ ( α ∣0 ⟩ + β ∣1 ⟩) + 2 1 ∣ ψ − ⟩ ( α ∣0 ⟩ − β ∣1 ⟩) + 2 1 ∣ ϕ + ⟩ ( α ∣1 ⟩ + β ∣0 ⟩ ) + 2 1 ∣ ϕ − ⟩ ( α ∣1 ⟩ − β ∣0 ⟩ )
这时,只要Alice \text{Alice} Alice 在贝尔基上进行一次测量,就能以相同的概率 1 / 4 1/4 1/4 得到四种结果中的一种 :∣ ψ + ⟩ , ∣ ψ − ⟩ , ∣ ϕ + ⟩ , ∣ ϕ − ⟩ |\psi^{+}\rangle,|\psi^{-}\rangle,|\phi^{+}\rangle,|\phi^{-}\rangle ∣ ψ + ⟩ , ∣ ψ − ⟩ , ∣ ϕ + ⟩ , ∣ ϕ − ⟩ 。但此时,我们还无法确定 Bob \text{Bob} Bob 的 qubit \text{qubit} qubit 在四个态中的哪一个。
我们是无法通过某个测量仪器读取一个纠态的,但是通过以下幺正变换,贝尔测量就能转换为计算基中的标准测量
B = ( H ⊗ I ) C N O T B=(H\otimes I)\mathrm{CNOT}
B = ( H ⊗ I ) CNOT
从线路图中可以看出,这个幺正操作和纠缠态的产生互为逆操作,能够将贝尔态转换为计算基态,∣ ϕ + ⟩ → ∣ 00 ⟩ \ket{\phi^+} \to \ket{00} ∣ ϕ + ⟩ → ∣ 00 ⟩ ,∣ ψ + ⟩ → ∣ 01 ⟩ \ket{\psi^+} \to \ket{01} ∣ ψ + ⟩ → ∣ 01 ⟩ ,∣ ϕ − ⟩ → ∣ 10 ⟩ \ket{\phi^-} \to \ket{10} ∣ ϕ − ⟩ → ∣ 10 ⟩ ,∣ ψ − ⟩ → ∣ 11 ⟩ \ket{\psi^-} \to \ket{11} ∣ ψ − ⟩ → ∣ 11 ⟩ ,这个幺正变换作用后,系统态变为
B ∣ ψ ⟩ ⊗ ∣ ψ + ⟩ = 1 2 ∣ 01 ⟩ ( α ∣ 0 ⟩ + β ∣ 1 ⟩ ) + 1 2 ∣ 11 ⟩ ( α ∣ 0 ⟩ − β ∣ 1 ⟩ ) + 1 2 ∣ 00 ⟩ ( α ∣ 1 ⟩ + β ∣ 0 ⟩ ) + 1 2 ∣ 10 ⟩ ( α ∣ 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} B ∣ ψ ⟩ ⊗ ∣ ψ + ⟩ = 2 1 ∣01 ⟩ ( α ∣0 ⟩ + β ∣1 ⟩ ) + 2 1 ∣11 ⟩ ( α ∣0 ⟩ − β ∣1 ⟩ ) + 2 1 ∣00 ⟩ ( α ∣1 ⟩ + β ∣0 ⟩ ) + 2 1 ∣10 ⟩ ( α ∣1 ⟩ − β ∣0 ⟩ )
step3 :Alice \text{Alice} Alice 在计算基中测量其持有的两个量子比特。四种可能的结果( 00 00 00 、01 01 01 、10 10 10 和 11 11 11 )提供了两比特的经典信息,这四种结果与 Bob \text{Bob} Bob 的单量子比特一一对应。
step4 :Alice \text{Alice} Alice 将测量结果通过经典信道发送给 Bob \text{Bob} Bob 。
step5 :根据 Alice \text{Alice} Alice 发送的两比特经典信息,Bob \text{Bob} Bob 对其量子比特进行相应的幺正变换 U U U ,从而将其量子比特恢复为原始的未知态 ∣ ψ ⟩ = α ∣ 0 ⟩ + β ∣ 1 ⟩ |\psi\rangle = \alpha |0\rangle + \beta |1\rangle ∣ ψ ⟩ = α ∣0 ⟩ + β ∣1 ⟩
Alice \text{Alice} Alice 的信息
Bob \text{Bob} Bob 的量子比特
Bob \text{Bob} Bob 的操作
Bob \text{Bob} Bob 的结果
01 01 01
α ∣ 0 ⟩ + β ∣ 1 ⟩ \alpha|0\rangle+\beta|1\rangle α ∣0 ⟩ + β ∣1 ⟩
I I I
α ∣ 0 ⟩ + β ∣ 1 ⟩ \alpha|0\rangle+\beta|1\rangle α ∣0 ⟩ + β ∣1 ⟩
11 11 11
α ∣ 0 ⟩ − β ∣ 1 ⟩ \alpha|0\rangle-\beta|1\rangle α ∣0 ⟩ − β ∣1 ⟩
σ z \sigma_z σ z
α ∣ 0 ⟩ + β ∣ 1 ⟩ \alpha|0\rangle+\beta|1\rangle α ∣0 ⟩ + β ∣1 ⟩
00 00 00
α ∣ 1 ⟩ + β ∣ 0 ⟩ \alpha|1\rangle+\beta|0\rangle α ∣1 ⟩ + β ∣0 ⟩
σ x \sigma_x σ x
α ∣ 0 ⟩ + β ∣ 1 ⟩ \alpha|0\rangle+\beta|1\rangle α ∣0 ⟩ + β ∣1 ⟩
10 10 10
α ∣ 1 ⟩ − β ∣ 0 ⟩ \alpha|1\rangle-\beta|0\rangle α ∣1 ⟩ − β ∣0 ⟩
i σ y i\sigma_y i σ y
α ∣ 0 ⟩ + β ∣ 1 ⟩ \alpha|0\rangle+\beta|1\rangle α ∣0 ⟩ + β ∣1 ⟩
传输的对象是量子态的信息,而不是量子态的实体。
量子隐形传态并不违反不可克隆定理,因为在传态过程中,原始量子态在 Alice \text{Alice} Alice 处塌缩了。
量子隐形传态需要经典信息的传输,因此其传输速度不能超过光速。