量子图像加密解密
- 量子灰度图像表示
- DRPE和量子加密与解密
- 双随机相位编码技术(DRPE)
- 量子图像加密
- 量子图像解密
在老师的建议下补充一点有关量子图像加密和解密的内容。
我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!
量子灰度图像表示
灰度量子态图像的表达式:
∣ I ( θ ) ⟩ = 1 2 n ∑ j = 0 2 2 n − 1 ∣ c j ⟩ ⊗ ∣ j ⟩ |I(\theta)\rangle=\frac{1}{2^{n}} \sum_{j=0}^{2^{2 n}-1}\left|c_{j}\right\rangle \otimes|j\rangle ∣I(θ)⟩=2n1j=0∑22n−1∣cj⟩⊗∣j⟩
∣ c j ⟩ = ( ∣ 0 ⟩ + e i θ j ∣ 1 ⟩ ) \left.\left|c_{j}\right\rangle=(|0\rangle+e^{i \theta_{j}}|1\rangle\right) ∣cj⟩=(∣0⟩+eiθj∣1⟩)
其中, θ j ∈ [ 0 , π 2 ] \theta_{j} \in\left[0, \frac{\pi}{2}\right] θj∈[0,2π],其代表的是灰度信息对应的编码信息, ∣ c j ⟩ \left|c_{j}\right\rangle ∣cj⟩代表图像的灰度信息, ∣ j ⟩ |j\rangle ∣j⟩代表图像中像素所处的位置信息,其中 j = 0 , 1 , ⋯ , 2 2 n − 1 j=0,1, \cdots, 2^{2 n}-1 j=0,1,⋯,22n−1。
编码在位置量子位 ∣ j ⟩ |j\rangle ∣j⟩上的位置信息包含垂直坐标和水平坐标:
∣ j ⟩ = ∣ y ⟩ ∣ x ⟩ = ∣ y n − 1 y n − 2 ⋯ y 0 ⟩ ∣ x n − 1 x n − 2 ⋯ x 0 ⟩ x j , y j ∈ { 0 , 1 } |j\rangle=|y\rangle|x\rangle=\left|y_{n-1} y_{n-2} \cdots y_{0}\right\rangle\left|x_{n-1} x_{n-2} \cdots x_{0}\right\rangle \quad x_{j}, y_{j} \in\{0,1\} ∣j⟩=∣y⟩∣x⟩=∣yn−1yn−2⋯y0⟩∣xn−1xn−2⋯x0⟩xj,yj∈{0,1}
要对灰度图像进行处理时,可以在 ∣ c j ⟩ \left|c_{j}\right\rangle ∣cj⟩ 上执行一个相位门 U = [ 1 0 0 e i ψ j ] U=\left[\begin{array}{ll} 1 & 0 \\ 0 & e^{i \psi_{j}} \end{array}\right] U=[100eiψj]
为什么会进行这样的操作呢?我们继续往后看!
DRPE和量子加密与解密
双随机相位编码技术(DRPE)
假设 f ( x , y ) f(x, y) f(x,y) 是大小为 M × N 的明文图像, ϕ ( x , y ) ϕ(x, y) ϕ(x,y) 是对应的密文图像,DRPE表示的加密和解密过程可分别用以下公式表示:
φ ( x , y ) = F T − 1 { F T { f ( x , y ) exp [ j 2 π n ( x , y ) ] } exp [ j 2 π b ( ξ , η ) ] } \varphi(x, y)=F T^{-1}\{F T\{f(x, y) \exp [j 2 \pi n(x, y)]\} \exp [j 2 \pi b(\xi, \eta)]\} φ(x,y)=FT−1{FT{f(x,y)exp[j2πn(x,y)]}exp[j2πb(ξ,η)]}
f ( x , y ) = F T − 1 { F T { φ ( x , y ) } exp [ − j 2 π b ( ξ , η ) ] } exp [ − j 2 π n ( x , y ) ] f(x, y)=F T^{-1}\{F T\{\varphi(x, y)\} \exp [-j 2 \pi b(\xi, \eta)]\} \exp [-j 2 \pi n(x, y)] f(x,y)=FT−1{FT{φ(x,y)}exp[−j2πb(ξ,η)]}exp[−j2πn(x,y)]
其中, n ( x , y ) n(x, y) n(x,y) 和 b ( ξ , η ) b(ξ,η) b(ξ,η) 分别是空间域和频域中均匀分布在[0,1]上的随机相位函
数, F T FT FT 和 F T − 1 F T^{-1} FT−1分别代表傅里叶变换和傅里叶逆变换。
步骤:
(1)先将输入图像 f ( x , y ) f(x, y) f(x,y) 在空间域里和一个随机相位函数 e x p [ j 2 π n ( x , y ) ] exp[ j2πn(x, y)] exp[j2πn(x,y)] 相乘得到变换后的图像
(2)对变换后的图像进行傅里叶变换,得到频域信号
(3)将频域信号与另一个随机相位函数 e x p [ j 2 π b ( μ , ν ) ] exp[ j2πb(μ,ν)] exp[j2πb(μ,ν)] 相乘
(4)将得到的信息执行傅里叶逆变换,最终得到加密图像 ϕ ( x , y ) ϕ(x, y) ϕ(x,y)
e x p [ j 2 π n ( x , y ) ] exp[ j2πn(x, y)] exp[j2πn(x,y)] 和 e x p [ j 2 π b ( ξ , η ) ] exp[ j2πb(ξ,η)] exp[j2πb(ξ,η)] 分别为输入图像空间域和傅里叶频谱平面上的密钥。正是因为密钥的存在,图像的安全才能得到保障。
量子图像加密
假设原始明文图像为 ∣ O ⟩ = 1 2 n ∑ j = 0 2 2 n − 1 ∣ c j ⟩ ⊗ ∣ j ⟩ |O\rangle=\frac{1}{2^{n}} \sum_{j=0}^{2^{2 n}-1}\left|c_{j}\right\rangle \otimes|j\rangle ∣O⟩=2n1∑j=022n−1∣cj⟩⊗∣j⟩,空间域和量子傅里叶频域的密钥还可表示为 U K 1 = [ 1 0 0 e i ψ j ] U_{K_{1}}=\left[\begin{array}{cc}1 & 0 \\0 & e^{i \psi_{j}}\end{array}\right] UK1=[100eiψj] 和 U K 2 = [ 1 0 0 e i v j ] U_{K_{2}}=\left[\begin{array}{cc}1 & 0 \\0 & e^{i v_{j}}\end{array}\right] UK2=[100eivj],其中 ψ j , v j \psi_{j}, v_{j} ψj,vj 是均匀分布在 0 到 2 π 2π 2π 的实数。
加密的具体步骤:
(1)利用密钥 U K 1 U_{K_{1}} UK1 在空域中编码明文图像,得到编码后的图像|M〉
∣ M ⟩ = K 1 ∣ O ⟩ = U K 1 ⊗ I 2 2 n ∣ O ⟩ = U K 1 ⊗ I 2 2 n 1 2 n ∑ j = 0 2 2 n − 1 ∣ c j ⟩ ⊗ ∣ j ⟩ = 1 2 n ∑ j = 0 2 2 n − 1 U K 1 ∣ c j ⟩ ⊗ ∣ j ⟩ = 1 2 n ∑ j = 0 2 2 n ∣ ∣ c ′ ⟩ ⊗ ∣ j ⟩ \begin{aligned} |M\rangle &=K_{1}|\mathrm{O}\rangle=U_{K_{1}} \otimes I_{2^{2 \mathrm{n}}}|\mathrm{O}\rangle \\ &=U_{K_{1}} \otimes I_{2^{2 \mathrm{n}}} \frac{1}{2^{n}} \sum_{j=0}^{2^{2 n}-1}\left|c_{j}\right\rangle \otimes|j\rangle \\ &=\frac{1}{2^{n}} \sum_{j=0}^{2^{2 n}-1} U_{K_{1}}\left|c_{j}\right\rangle \otimes|j\rangle \\ &=\frac{1}{2^{n}} \sum_{j=0}^{2^{2 n} \mid}\left|c^{\prime}\right\rangle \otimes|j\rangle \end{aligned} ∣M⟩=K1∣O⟩=UK1⊗I22n∣O⟩=UK1⊗I22n2n1j=0∑22n−1∣cj⟩⊗∣j⟩=2n1j=0∑22n−1UK1∣cj⟩⊗∣j⟩=2n1j=0∑22n∣∣c′⟩⊗∣j⟩
其中, ∣ c j ′ ⟩ = ( ∣ 0 ⟩ + e i ( θ j + ψ j ) ∣ 1 ⟩ ) \left.\left|c_{j}^{\prime}\right\rangle=(|0\rangle+e^{i\left(\theta_{j}+\psi_{j}\right)}|1\rangle\right) ∣∣cj′⟩=(∣0⟩+ei(θj+ψj)∣1⟩)
提问:为什么 K 1 ∣ O ⟩ = U K 1 ⊗ I 2 2 n ∣ O ⟩ K_{1}|\mathrm{O}\rangle=U_{K_{1}} \otimes I_{2^{2 \mathrm{n}}}|\mathrm{O}\rangle K1∣O⟩=UK1⊗I22n∣O⟩,可以思考下。如果认真看了“张量网络算法基础(二、量子态、量子算符)这篇博客的小伙伴应该知道答案,没看的小伙伴可以点击链接看一下”单体算符及其运算
(2)对 ∣ M 〉 |M〉 ∣M〉 执行量子傅里叶变换(QFT)操作得到 ( Q F T ∣ M 〉 QFT |M〉 QFT∣M〉)
Q F T ( ∣ M ⟩ ) = Q F T ( 1 2 n ∑ j = 0 2 2 n − 1 ∣ c j ′ ⟩ ⊗ ∣ j ⟩ ) Q F T(|M\rangle)=Q F T\left(\frac{1}{2^{n}} \sum_{j=0}^{2^{2 n}-1}\left|c_{j}^{\prime}\right\rangle \otimes|j\rangle\right) QFT(∣M⟩)=QFT⎝⎛2n1j=0∑22n−1∣∣cj′⟩⊗∣j⟩⎠⎞
(3)利用密钥 U K 2 U_{K_{2}} UK2 对 ( Q F T ∣ M 〉 QFT |M〉 QFT∣M〉 )进行加密,得到 ∣ M 1 〉 |M_{1}〉 ∣M1〉
∣ M 1 ⟩ = K 2 Q F T ( ∣ M ⟩ ) = U K 2 ⊗ I 2 2 n Q F T ( ∣ M ⟩ ) = U K 2 ⊗ I 2 2 n Q F T ( 1 2 2 n ∑ j = 0 2 2 n − 1 ∣ c ′ ⟩ ⊗ ∣ j ⟩ ) = 1 2 n ∑ j = 0 2 2 n − 1 U K 2 Q F T ( ∣ c j ′ ⟩ ⊗ ∣ j ⟩ ) \begin{aligned} \left|M_{1}\right\rangle &=K_{2} Q F T(|M\rangle) \\ &=U_{K_{2}} \otimes I_{2^{2 n}} Q F T(|M\rangle) \\ &=U_{K_{2}} \otimes I_{2^{2 n}} Q F T\left(\frac{1}{2^{2 n}} \sum_{j=0}^{2^{2 n}-1}\left|c^{\prime}\right\rangle \otimes|j\rangle\right) \\ &=\frac{1}{2^{n}} \sum_{j=0}^{2^{2 n}-1} U_{K_{2}} Q F T\left(\left|c_{j}^{\prime}\right\rangle \otimes|j\rangle\right) \end{aligned} ∣M1⟩=K2QFT(∣M⟩)=UK2⊗I22nQFT(∣M⟩)=UK2⊗I22nQFT⎝⎛22n1j=0∑22n−1∣c′⟩⊗∣j⟩⎠⎞=2n1j=0∑22n−1UK2QFT(∣∣cj′⟩⊗∣j⟩)
(4)对 ∣ M 1 〉 |M_{1}〉 ∣M1〉 执行 i n Q F T inQFT inQFT ,得到量子密文图像 ∣ C 〉 |C〉 ∣C〉
∣ C ⟩ = in Q F T ( ∣ M 1 ⟩ ) = in Q F T ( 1 2 n ∑ j = 0 2 2 n − 1 U K 2 Q F T ( ∣ c j ′ ⟩ ⊗ ∣ j ⟩ ) ) \begin{aligned} |C\rangle &=\operatorname{in} Q F T\left(\left|M_{1}\right\rangle\right) \\ &=\operatorname{in} Q F T\left(\frac{1}{2^{n}} \sum_{j=0}^{2^{2 n}-1} U_{K_{2}} Q F T\left(\left|c_{j}^{\prime}\right\rangle \otimes|j\rangle\right)\right) \end{aligned} ∣C⟩=inQFT(∣M1⟩)=inQFT⎝⎛2n1j=0∑22n−1UK2QFT(∣∣cj′⟩⊗∣j⟩)⎠⎞
其中, i n Q F T inQFT inQFT 的量子电路是 Q F T QFT QFT 量子电路的逆序
量子图像解密
加密靠的是密钥,自然解密过程中,只需要提供两个密钥,即相位算子 U K 1 U_{K_{1}} UK1 和 U K 2 U_{K_{2}} UK2 。因为量子计算中的所有变换操作都是可逆的,因此解密过程是加密过程的逆序。
解密的具体步骤:
(1)对 ∣ C 〉 |C〉 ∣C〉 执行 Q F T QFT QFT 操作,得到变换后的图像 ( Q F T ∣ C 〉 QFT |C〉 QFT∣C〉)
Q F T ( ∣ C ⟩ ) = Q F T ( i n Q F T ( ∣ M 1 ⟩ ) ) = ∣ M 1 ⟩ Q F T(|C\rangle)=Q F T\left(i n Q F T\left(\left|M_{1}\right\rangle\right)\right)=\left|M_{1}\right\rangle QFT(∣C⟩)=QFT(inQFT(∣M1⟩))=∣M1⟩
(2)利用 K 2 K_{2} K2 对 ∣ M 1 〉 |M_{1}〉 ∣M1〉 执行解密操作
K 2 − 1 ∣ M 1 ⟩ = U + K 2 ⊗ I 2 2 n ∣ M 1 ⟩ = U + K 2 ⊗ I 2 2 n K 2 Q F T ( ∣ M ⟩ ) = ( U + K 2 ⊗ I 2 2 n ) ( U K 2 ⊗ I 2 2 n ) Q F T ( ∣ M ⟩ ) = U + K 2 U K 2 ⊗ I 2 2 n Q F T ( ∣ M ⟩ ) = Q F T ( M ⟩ ) \begin{aligned} K_{2}^{-1}\left|M_{1}\right\rangle &=U^{+} K_{2} \otimes I_{2^{2 n}}\left|M_{1}\right\rangle \\ &=U^{+} K_{2} \otimes I_{2^{2 n}} K_{2} Q F T(|M\rangle) \\ &=\left(U^{+} K_{2} \otimes I_{2^{2 n}}\right)\left(U_{K_{2}} \otimes I_{2^{2 n}}\right) Q F T(|M\rangle) \\ &=U^{+}{K}_{2} U_{K_{2}} \otimes I_{2^{2 n}} Q F T(|M\rangle) \\ &=Q F T(M\rangle) \end{aligned} K2−1∣M1⟩=U+K2⊗I22n∣M1⟩=U+K2⊗I22nK2QFT(∣M⟩)=(U+K2⊗I22n)(UK2⊗I22n)QFT(∣M⟩)=U+K2UK2⊗I22nQFT(∣M⟩)=QFT(M⟩)
(3)对 ( Q F T ∣ M 〉 QFT |M〉 QFT∣M〉)执行 i n Q F T inQFT inQFT 操作,得到 ∣ M 〉 |M〉 ∣M〉
inQFT ( Q F T ( ∣ M ⟩ ) ) = ∣ M ⟩ \operatorname{inQFT}(Q F T(|M\rangle))=|M\rangle inQFT(QFT(∣M⟩))=∣M⟩
(4)利用密钥 K 1 K_{1} K1 对上一步中得到的 ∣ M 〉 |M〉 ∣M〉 进行解密,得到原始图像 ∣ O 〉 |O〉 ∣O〉
K 1 − 1 ∣ M ⟩ = U + K 1 ⊗ I 2 2 n ∣ M ⟩ = U + K 1 ⊗ I 2 2 n K 1 ∣ O ⟩ = ( U + K 1 ⊗ I 2 2 n ) ( U K 1 ⊗ I 2 2 n ) ∣ O ⟩ = U + K 1 U K 1 ⊗ I 2 2 n ∣ O ⟩ = ∣ O ⟩ \begin{aligned} K_{1}^{-1}|M\rangle &=U^{+}{ }_{K_{1}} \otimes I_{2^{2 n}}|M\rangle \\ &=U^{+}{ }_{K_{1}} \otimes I_{2^{2 n}} K_{1}|O\rangle \\ &=\left(U^{+}{ }_{K_{1}} \otimes I_{2^{2 n}}\right)\left(U_{K_{1}} \otimes I_{2^{2 n}}\right)|O\rangle \\ &=U^{+}{ }_{K_{1}} U_{K_{1}} \otimes I_{2^{2 n}}|O\rangle \\ &=|O\rangle \end{aligned} K1−1∣M⟩=U+K1⊗I22n∣M⟩=U+K1⊗I22nK1∣O⟩=(U+K1⊗I22n)(UK1⊗I22n)∣O⟩=U+K1UK1⊗I22n∣O⟩=∣O⟩
以上就是有关量子图像的加密和解密过程,开学了,近期要去忙其它事情啦!以后有时间尽量更新!
我是一只正在不断学习、希望早日成为小白的小小白,有什么错误欢迎大家批评指正,喜欢的请点个赞哦!