@@ -180,4 +180,181 @@ QFT 的量子门复杂度为 \(\mathcal{O}(n^2)\)。
180
180
\frac{1}{\sqrt{2^n}} (\left\lvert 0 \right\rangle + e^{2\pi i \overline{0.\varphi_n}} \left\lvert 1 \right\rangle) \otimes \cdots \otimes (\left\lvert 0 \right\rangle + e^{2\pi i \overline{0.\varphi_1 \varphi_2 \cdots \varphi_n}} \left\lvert 1 \right\rangle)
181
181
\]
182
182
183
- 最后,对 \( R_p\) 的量子态进行逆量子傅立叶变换(IQFT),得 \( \left\lvert \varphi_1 \varphi_2 \cdots \varphi_n \right\rangle\) ,从而得到 \( \varphi\) 的估计值。
183
+ 最后,对 \( R_p\) 的量子态进行逆量子傅立叶变换(IQFT),得 \( \left\lvert \varphi_1 \varphi_2 \cdots \varphi_n \right\rangle\) ,从而得到 \( \varphi\) 的估计值。
184
+
185
+ ## Shor 算法
186
+
187
+ ### RSA
188
+
189
+ 制造公钥和私钥:
190
+
191
+ 1 . 获得两个大质数 \( p_1\) 和 \( p_2\) 。
192
+ 2 . 计算 \( n = p_1 p_2\) ,\( \phi(n) = (p_1 - 1)(p_2 - 1)\) 。
193
+ 3 . 取一个与 \( \phi(n)\) 互质的整数 \( e\) 。
194
+ 4 . 计算 \( e\) 在模 \( \phi(n)\) 下的逆元 \( d\) ,满足 \( ed \equiv 1 \mod \phi(n)\) 。
195
+ 5 . 公钥为 \( (n, e)\) ,私钥为 \( (n, d)\) 。
196
+
197
+ 接收方计算出公钥和私钥后,将公钥发送给发送方,发送方使用公钥加密信息,接收方使用私钥解密信息。
198
+
199
+ - 发送方加密信息 \( a\) :\( C = a^e \mod n\) 。发送密文 \( C\) 。
200
+ - 接收方解密信息 \( C\) :\( a = C^d \mod n\) 。
201
+
202
+ 破解 RSA 的难度在于分解 \( n\) 。
203
+
204
+ ### Shor 算法
205
+
206
+ Shor 算法包含经典计算和量子计算。
207
+
208
+ 经典计算部分:
209
+
210
+ !!! note "阶"
211
+
212
+ 定义 \(r = \mathrm{ord}_n(a)\) 为满足 \(a^r \equiv 1 \mod n\) 的最小正整数 \(r\),称为 \(a\) 关于模 \(n\) 的阶。
213
+
214
+ 1 . 随机选取小于 \( n\) 的整数 \( a\) ,且 \( \gcd(a, n) = 1\) 。
215
+ 2 . 计算 \( r = \mathrm{ord}_ n(a)\) 。(量子计算部分)
216
+ 3 . 若 \( r\) 为奇数,回到第一步。
217
+ 4 . 若 \( r\) 为偶数,计算 \( x \equiv a^{r/2} \mod n\) ,则
218
+
219
+ \[
220
+ \begin{aligned}
221
+ x^2 &\equiv 1 \mod n \\
222
+ (x - 1)(x + 1) &\equiv 0 \mod n
223
+ \end{aligned}
224
+ \]
225
+
226
+ 则设 \( (x - 1)(x + 1) = tn = (t_1p_1)(t_2p_2)\) ,有
227
+
228
+ \[
229
+ \begin{aligned}
230
+ x - 1 &\equiv 0 \mod p_1 \Rightarrow p_1 = \gcd(x - 1, n) \\
231
+ x + 1 &\equiv 0 \mod p_2 \Rightarrow p_2 = \gcd(x + 1, n)
232
+ \end{aligned}
233
+ \]
234
+
235
+ 若 \( p_1 = 1\) 或 \( p_2 = 1\) ,回到第一步。否则,得到 \( p_1\) 和 \( p_2\) 为 \( n\) 的质因数。
236
+
237
+ ### Shor 算法求阶
238
+
239
+ 定义酉变换 \( U\) :
240
+
241
+ \[
242
+ \begin{aligned}
243
+ &U\left\lvert y \right\rangle = \left\lvert ay \mod n \right\rangle \\
244
+ \Rightarrow\ &U^2\left\lvert y \right\rangle = U\left\lvert ay \mod n \right\rangle = \left\lvert a^2 y \mod n \right\rangle \\
245
+ \Rightarrow\ &U^t\left\lvert y \right\rangle = \left\lvert a^t y \mod n \right\rangle
246
+ \end{aligned}
247
+ \]
248
+
249
+ 定义量子态 \( \left\lvert u_s \right\rangle\) :
250
+
251
+ \[
252
+ \left\lvert u_s \right\rangle = \frac{1}{\sqrt{r}} \sum_ {k=0}^{r-1} e^{-\frac{2\pi i sk}{r}} \left\lvert a^k \mod n \right\rangle
253
+ \]
254
+
255
+ 性质:
256
+
257
+ - \( U\left\lvert u_s \right\rangle = e^{2\pi i s / r} \left\lvert u_s \right\rangle\) 。
258
+ - \( \displaystyle\frac{1}{\sqrt{r}} \sum_ {s=0}^{r-1} \left\lvert u_s \right\rangle = \left\lvert 1 \right\rangle\) 。
259
+
260
+ 对 \( U\) 和 \( \left\lvert 1 \right\rangle\) 进行 QPE,即可等概率得到相位 \(\{ 0, 1/r, 2/r, \cdots, (r-1)/r\}\) 。
261
+
262
+ 构造算子 \( U\) :令 \( f(x) = a^x \mod n\) ,枚举所有可能的 \( x\) ,写出变换前的量子态 \( \left\lvert x \right\rangle \left\lvert 0 \right\rangle\) ,变换后的量子态 \( \left\lvert x \right\rangle \left\lvert f(x) \right\rangle\) ,构造 \( U\) :
263
+
264
+ \[
265
+ U = \sum_ {x=0}^{n-1} \left\lvert x \right\rangle \left\lvert 0 \right\rangle \left\langle x \right\rvert \left\langle f(x) \right\rvert
266
+ \]
267
+
268
+ ## Grover 算法
269
+
270
+ 搜索算法,用于在无序数据库中搜索目标元素,将 \( \mathcal{O}(N)\) 的经典时间复杂度降低到 \( \mathcal{O}(\sqrt{N})\) 。
271
+
272
+ 设所有正解的叠加态为 \( \left\lvert \beta \right\rangle\) ,所有错误解的叠加态为 \( \left\lvert \alpha \right\rangle\) ,则:
273
+
274
+ <div align =" center " ><img src =" /assets/img/CS/quantum/chapter3/grover_circuit.png " width =" 40% " ></div >
275
+
276
+ Grover 算法通过旋转初始量子态,使其不断接近 \( \left\lvert \beta \right\rangle\) 。
277
+
278
+ ### Oracle
279
+
280
+ Oracle 用于判断当前量子态是否为目标态。
281
+
282
+ \[
283
+ \left\lvert x \right\rangle \xrightarrow{\mathrm{Oracle}} (-1)^{f(x)} \left\lvert x \right\rangle
284
+ \]
285
+
286
+ 其中 \( f(x) = 1\) 表示目标态,\( f(x) = 0\) 表示非目标态。
287
+
288
+ ### Grover 算子
289
+
290
+ <div align =" center " ><img src =" /assets/img/CS/quantum/chapter3/grover_operator.png " width =" 70% " ></div >
291
+
292
+ #### 作用 Oracle
293
+
294
+ 几何意义是将量子态关于 \( \left\lvert \alpha \right\rangle\) 翻转。
295
+
296
+ <div align =" center " ><img src =" /assets/img/CS/quantum/chapter3/grover_oracle.png " width =" 50% " ></div >
297
+
298
+ #### 作用 Diffusion
299
+
300
+ 酉矩阵表示为 \( H^{\otimes n} (2\left\lvert 0^n \right\rangle \left\langle 0^n \right\rvert - I) H^{\otimes n}\) ,令 \( \left\lvert \psi \right\rangle = H^{\otimes n} \left\lvert 0^n \right\rangle\) ,则 Diffusion 算子为 \( U_s = (2\left\lvert \psi \right\rangle \left\langle \psi \right\rvert - I)\) 。即将量子态关于 \( \left\lvert \psi \right\rangle\) 翻转。
301
+
302
+ <div align =" center " ><img src =" /assets/img/CS/quantum/chapter3/grover_rest.png " width =" 50% " ></div >
303
+
304
+ !!! note "翻转算子"
305
+
306
+ 设 \(\left\lvert v \right\rangle = p\left\lvert \psi \right\rangle + q\left\lvert \psi \right\rangle_{\perp}\),则:
307
+
308
+ \[
309
+ \begin{aligned}
310
+ U_s \left\lvert v \right\rangle &= (2\left\lvert \psi \right\rangle \left\langle \psi \right\rvert - I) (p\left\lvert \psi \right\rangle + q\left\lvert \psi \right\rangle_{\perp}) \\
311
+ &= 2p\left\lvert \psi \right\rangle \left\langle \psi \vert \psi \right\rangle + 2q\left\lvert \psi \right\rangle \left\langle \psi \right\rvert \left\lvert \psi \right\rangle_{\perp} - p\left\lvert \psi \right\rangle - q\left\lvert \psi \right\rangle_{\perp}
312
+ \end{aligned}
313
+ \]
314
+
315
+ 由于归一化条件,有 \(\left\lvert \psi \vert \psi \right\rangle = 1\),所以
316
+
317
+ \[
318
+ \begin{aligned}
319
+ U_s \left\lvert v \right\rangle &= 2p\left\lvert \psi \right\rangle - p\left\lvert \psi \right\rangle - q\left\lvert \psi \right\rangle_{\perp} \\
320
+ &= p\left\lvert \psi \right\rangle - q\left\lvert \psi \right\rangle_{\perp}
321
+ \end{aligned}
322
+ \]
323
+
324
+ 故翻转算子 \(U_s\) 的作用是将量子态关于 \(\left\lvert \psi \right\rangle\) 翻转。
325
+
326
+ #### 几何意义
327
+
328
+ 证明作用一次 G 算子,可以将量子态向目标态 \( \left\lvert \beta \right\rangle\) 旋转 \( \theta\) 角度。即
329
+
330
+ \[
331
+ G^k \left\lvert \psi \right\rangle = \cos(\frac{2k + 1}{2} \theta) \left\lvert \alpha \right\rangle + \sin(\frac{2k + 1}{2} \theta) \left\lvert \beta \right\rangle
332
+ \]
333
+
334
+ 设初始态中有 \( M\) 个目标态,\( N - M\) 个非目标态,则
335
+
336
+ \[
337
+ \psi = \sqrt{\frac{N - M}{N}} \left\lvert \alpha \right\rangle + \sqrt{\frac{M}{N}} \left\lvert \beta \right\rangle
338
+ \]
339
+
340
+ 则 \( \theta/2\) 为初始态与 \( \left\lvert \alpha \right\rangle\) 的夹角,有
341
+
342
+ \[
343
+ \theta = 2 \arccos(\sqrt{\frac{N - M}{N}})
344
+ \]
345
+
346
+ #### 复杂度分析
347
+
348
+ 假设 \( M \ll N\) ,则有近似
349
+
350
+ \[
351
+ \theta \approx \sin(\theta) = \frac{2\sqrt{M(N - M)}}{N} \approx 2\sqrt{\frac{M}{N}}
352
+ \]
353
+
354
+ 要让量子态接近 \( \left\lvert \beta \right\rangle\) ,即令 \( \displaystyle\frac{2k + 1}{2} \theta = \frac{\pi}{2}\) ,代入上式得
355
+
356
+ \[
357
+ k = \frac{\pi}{2\theta} - \frac{1}{2} \approx \frac{\pi}{4} \sqrt{\frac{N}{M}} - \frac{1}{2} = \mathcal{O}(\sqrt{N/M})
358
+ \]
359
+
360
+ 所以 Grover 算法的复杂度为 \( \mathcal{O}(\sqrt{N/M})\) 。
0 commit comments