閱讀Martin Eker?a ,Johan H?astad在17年二月份發(fā)表的Quantum algorithms for?computing short discrete logarithms and factoring RSA integers的文章,本人有所收獲,在此寫個(gè)小文。
文章基于量子計(jì)算機(jī)上主要描述了計(jì)算短離散對(duì)數(shù)的量子算法和分解RSA大整數(shù)量子算法。
首先,我們對(duì)比一下傳統(tǒng)計(jì)算機(jī)和量子計(jì)算機(jī)。量子計(jì)算機(jī)是指利用量子相干疊加的原理,理論上具有超快的并行計(jì)算機(jī)。能實(shí)現(xiàn)當(dāng)下的許多優(yōu)化。相對(duì)比傳統(tǒng)計(jì)算機(jī)一位只能表示一種狀態(tài)0/1,量子計(jì)算機(jī)的優(yōu)勢(shì)是,當(dāng)它有N個(gè)量子比特時(shí),由于狀態(tài)的相互疊加,它可以最多同時(shí)處于2^N個(gè)狀態(tài)。并且,量子計(jì)算機(jī)是可逆計(jì)算機(jī),經(jīng)典計(jì)算機(jī)是不可逆的,會(huì)有熱損耗,理論上量子計(jì)算機(jī)耗能可以降到極低。這為量子算法的實(shí)現(xiàn)提供了基礎(chǔ)。
量子算法在算法需要的次數(shù)、算法復(fù)雜度和量子計(jì)算機(jī)的需要之間進(jìn)行權(quán)衡取舍。用量子算法進(jìn)行RSA大整數(shù)分解比Shor算法簡單,要求也少。例如:分解數(shù)n位,Shor算法指數(shù)需要2n位,量子算法需(1/2+1/s)n位。量子算法和Shor算法主要的技術(shù)都在于計(jì)算模冪的疊加運(yùn)算。模冪的疊加運(yùn)算也是主要障礙。
下面主要概括文章中的量子計(jì)算、計(jì)算短離散對(duì)數(shù)、分解大整數(shù)
(一)量子計(jì)算
1)首先,先了解量子系統(tǒng)。每個(gè)狀態(tài)位用|j>表示(0 ≤ j< 2n),狀態(tài)的疊加即為量子系統(tǒng)。系統(tǒng)表達(dá)式函數(shù)如下:
(其中復(fù)振幅
aj?∈?R是一個(gè)非負(fù)實(shí)波,相位
)故而,系統(tǒng)表達(dá)函數(shù)亦可表示為:
2)通過建設(shè)性干預(yù)手段,離散量子傅里葉變換算法(QFT)放大一系列所需要的狀態(tài)的幅度,所需狀態(tài)的的折疊概率會(huì)增大。如果量子比特形成了最大程度的糾纏,他們的波函數(shù)坍縮結(jié)果就完全相關(guān)。
QFT將每個(gè)狀態(tài)映射到n個(gè)量子位寄存器中
所以,QFT映射下的量子系統(tǒng)函數(shù)為
系統(tǒng)疊加到k的概率為
在和的運(yùn)算中術(shù)語用向量C表示。如果向量C幾乎指向相同一個(gè)方向,那么它們的規(guī)范總和有很大可能概率。那么我們就說,對(duì)于k,建立了建設(shè)性干預(yù)。
主張一:
(二)計(jì)算短離散對(duì)數(shù)
計(jì)算離散對(duì)數(shù)可用于攻擊一些非對(duì)稱加密算法,例如DH加密,選擇和比較非對(duì)稱密碼參數(shù)。計(jì)算短離散對(duì)數(shù)的生成算法包括兩個(gè)階段:初始化量子階段和經(jīng)典后處理階段。
初始化量子階段:輸入生成元g和x = [d] g得到一對(duì)(j,k)。
經(jīng)典后處理階段:用一個(gè)經(jīng)典的算法來描述,基于lattice-based技術(shù),經(jīng)典算法輸入一系列s對(duì)(j,k),計(jì)算輸出d。
具體算法如下:
令:
int d(0<d<2^m);
固定int s>=1;
int l close to m/s;
g為階數(shù)r>=2^(l+m)+2^ld的一個(gè)有限循環(huán)群的生成元;
g疊加到長度為l + m位的指數(shù)上的指數(shù)運(yùn)算
input g,x = [d] g;
output (j,k);
when s>=1
calculate (j,k);
return d。
(解決離散對(duì)數(shù)問題d = log?g?x)
Tips1
良好對(duì)的定義:
當(dāng)j為整數(shù)(0<=j<2^(l+m)),如果
(j決定k,dj mod 2^(l+m),最高階為l)
至少有2^(l+m-1)個(gè)不同的j,才會(huì)有一個(gè)k,使得(j,k)為良好對(duì)。
Tips2
為了降低產(chǎn)生一個(gè)良好對(duì)的概率,我們首先需要對(duì)(a,b)數(shù)量的下界產(chǎn)生具體確定的e
定義:Te表示對(duì)(a,b)的數(shù)量,e=a-bd
(其中,a,b均為整數(shù)并且0<=a<2^(l+m),0<=b<2^l)
文章主張二:
文章主張三:
文章主張四:
從算法的單個(gè)執(zhí)行中,獲得特別良好對(duì)(j,k)的概率至少為2^(-m-l-2)
算法單次運(yùn)行結(jié)果產(chǎn)生一副良好對(duì)的概率至少為2^(-3)
Tips3
基于lattice-based技術(shù),經(jīng)典算法輸入一系列s對(duì)(j,k),計(jì)算輸出d
Lattice格子定義:(L由下列行跨度產(chǎn)生的整數(shù))
從對(duì)(j,k)中恢復(fù)d
具體算法如下:
令
for all
使得
if最后一個(gè)分組u==d,return d;
else fail;
(三)分解大整數(shù)
分解RSA大整數(shù)作為一個(gè)短離散對(duì)數(shù)問題,因?yàn)樗惴珊雎匀航M的順序,所以產(chǎn)生了比Shor算法需求小的因數(shù)分解法用于RSA中的大整數(shù)分解。
首先,我們通過將分解因式的問題作為解短離散對(duì)數(shù)問題對(duì)待,來獲得兩個(gè)因子。一個(gè)方法就是N近似φ(N),這使得我們解決短的離散對(duì)數(shù)問題時(shí)不需要事先知道順序。其次,我們通過執(zhí)行量子算法產(chǎn)生一系列的部分結(jié)果來獲得兩個(gè)因素。我們可以基于lattice-based技術(shù)在經(jīng)典后期處理中恢復(fù)離散對(duì)數(shù)d。它從產(chǎn)生的一系列部分結(jié)果中構(gòu)造格L和向量v,通過L趨近于V恢復(fù)d。
具體算法如下:
任意素?cái)?shù)p,q(p>2^(n-1),q<2^n);
?N=p*q;
φ(N)=(p-1)(q-1);
t>=gcd(p-1,q-1);
φ(N)/t>(p+q-2)/2;
G的生成元為g(1<g<N-1)
根據(jù)g和x計(jì)算短離散對(duì)數(shù)d=(p+q-2)/2;
when(0<d<2^m)
m=n+1;
階數(shù)φ(N)/t>=2^(l+m+1));
if s>=1,l=m/s=(n+1)/s;
t<2^(n-l-4)概率很高;
φ(N)=(p-1)(q-1)>=2^(2(n-1))'
N=(2d-q+2)q? (其中2d+2=p+q)
if c=d+1,
return p,q;
總結(jié):
量子算法和Shor算法主要的技術(shù)以及主要障礙都在于計(jì)算模冪的疊加運(yùn)算。但是我認(rèn)為最主要的障礙是量子計(jì)算機(jī)技術(shù)未成熟。量子算法基于量子計(jì)算機(jī)上,倘若我們擁有實(shí)用的量子計(jì)算機(jī),在此條件下會(huì)有更多優(yōu)秀的算法。
目前,量子算法正在等待量子計(jì)算機(jī)的問世,量子計(jì)算機(jī)現(xiàn)仍然處于研究階段,基于其中的量子算法也需要等待。就好比阿基米德曾經(jīng)說過,“給我一個(gè)支點(diǎn),我能撬動(dòng)整個(gè)地球”,理論上是可行的。但是實(shí)際上造這樣的桿又是困難的。量子算法的實(shí)踐仍然有很大的探索空間。
值得慶幸的是,造出玻色彩樣裝置為制造通用的量子計(jì)算機(jī)掃清了重要的技術(shù)障礙。不過,因?yàn)榱孔颖忍卦蕉啵圃祀y度就越大。現(xiàn)在科學(xué)家在超導(dǎo)量子計(jì)算中,只能完全操控9個(gè)量子比特。在超導(dǎo)量子處理器中,中國科學(xué)家做到了讓10個(gè)量子比特形成最大程度的糾纏態(tài),使得它們的波函數(shù)坍縮結(jié)果完全相關(guān)。雖然離我們?nèi)粘J褂玫?048比特相差甚遠(yuǎn),但是這一天會(huì)到來的。量子計(jì)算機(jī)讓我們看到了超越經(jīng)典計(jì)算機(jī)巨大的潛力,它的能力范圍到底有多廣還在探索中。
量子算法的高效會(huì)使得一些加密算法變得不堪一擊,但是各類學(xué)界都是矛和盾相互推進(jìn)的,沒有絕對(duì)安全的密碼,也沒有對(duì)任何密碼都絕對(duì)高效的破解方法。用量子的方法來對(duì)付傳統(tǒng)的方法,比較有優(yōu)勢(shì),但是新的攻擊總會(huì)出現(xiàn),有量子的攻擊,也會(huì)有量子的防守。
在未來,要想有實(shí)用的量子計(jì)算機(jī),用上量子算法,我們還有很多路要走,期待那一天的到來。