用于計算短離散對數(shù)和分解RS大整數(shù)的量子算法

閱讀Martin Eker?a Johan H?astad在17年二月份發(fā)表的Quantum algorithms for?computing short discrete logarithms and factoring RSA integers的文章,本人有所收獲,在此寫個小文。

文章基于量子計算機(jī)上主要描述了計算短離散對數(shù)的量子算法和分解RSA大整數(shù)量子算法。

首先,我們對比一下傳統(tǒng)計算機(jī)和量子計算機(jī)。量子計算機(jī)是指利用量子相干疊加的原理,理論上具有超快的并行計算機(jī)。能實現(xiàn)當(dāng)下的許多優(yōu)化。相對比傳統(tǒng)計算機(jī)一位只能表示一種狀態(tài)0/1,量子計算機(jī)的優(yōu)勢是,當(dāng)它有N個量子比特時,由于狀態(tài)的相互疊加,它可以最多同時處于2^N個狀態(tài)。并且,量子計算機(jī)是可逆計算機(jī),經(jīng)典計算機(jī)是不可逆的,會有熱損耗,理論上量子計算機(jī)耗能可以降到極低。這為量子算法的實現(xiàn)提供了基礎(chǔ)。

量子算法在算法需要的次數(shù)、算法復(fù)雜度和量子計算機(jī)的需要之間進(jìn)行權(quán)衡取舍。用量子算法進(jìn)行RSA大整數(shù)分解比Shor算法簡單,要求也少。例如:分解數(shù)n位,Shor算法指數(shù)需要2n位,量子算法需(1/2+1/s)n位。量子算法和Shor算法主要的技術(shù)都在于計算模冪的疊加運算。模冪的疊加運算也是主要障礙。

下面主要概括文章中的量子計算、計算短離散對數(shù)、分解大整數(shù)

(一)量子計算

1)首先,先了解量子系統(tǒng)。每個狀態(tài)位用|j>表示(0 j< 2n),狀態(tài)的疊加即為量子系統(tǒng)。系統(tǒng)表達(dá)式函數(shù)如下:


(其中復(fù)振幅

aj??R是一個非負(fù)實波,相位


)故而,系統(tǒng)表達(dá)函數(shù)亦可表示為:


2)通過建設(shè)性干預(yù)手段,離散量子傅里葉變換算法(QFT)放大一系列所需要的狀態(tài)的幅度,所需狀態(tài)的的折疊概率會增大。如果量子比特形成了最大程度的糾纏,他們的波函數(shù)坍縮結(jié)果就完全相關(guān)。

QFT將每個狀態(tài)映射到n個量子位寄存器中


所以,QFT映射下的量子系統(tǒng)函數(shù)為

系統(tǒng)疊加到k的概率為


在和的運算中術(shù)語用向量C表示。如果向量C幾乎指向相同一個方向,那么它們的規(guī)范總和有很大可能概率。那么我們就說,對于k,建立了建設(shè)性干預(yù)。

主張一:


(二)計算短離散對數(shù)

計算離散對數(shù)可用于攻擊一些非對稱加密算法,例如DH加密,選擇和比較非對稱密碼參數(shù)。計算短離散對數(shù)的生成算法包括兩個階段:初始化量子階段和經(jīng)典后處理階段。

初始化量子階段:輸入生成元g和x = [d] g得到一對(j,k)。


經(jīng)典后處理階段:用一個經(jīng)典的算法來描述,基于lattice-based技術(shù),經(jīng)典算法輸入一系列s對(j,k),計算輸出d。

具體算法如下:

令:

int d(0<d<2^m);

固定int s>=1;

int l close to m/s;

g為階數(shù)r>=2^(l+m)+2^ld的一個有限循環(huán)群的生成元;

g疊加到長度為l + m位的指數(shù)上的指數(shù)運算

input g,x = [d] g;

output (j,k);

when s>=1

calculate (j,k);

return d。

(解決離散對數(shù)問題d = log?g?x)

Tips1

良好對的定義:

當(dāng)j為整數(shù)(0<=j<2^(l+m)),如果


(j決定k,dj mod 2^(l+m),最高階為l)

至少有2^(l+m-1)個不同的j,才會有一個k,使得(j,k)為良好對。

Tips2

為了降低產(chǎn)生一個良好對的概率,我們首先需要對(a,b)數(shù)量的下界產(chǎn)生具體確定的e

定義:Te表示對(a,b)的數(shù)量,e=a-bd

(其中,a,b均為整數(shù)并且0<=a<2^(l+m),0<=b<2^l)

文章主張二:


文章主張三:


文章主張四:


從算法的單個執(zhí)行中,獲得特別良好對(j,k)的概率至少為2^(-m-l-2)

算法單次運行結(jié)果產(chǎn)生一副良好對的概率至少為2^(-3)

Tips3

基于lattice-based技術(shù),經(jīng)典算法輸入一系列s對(j,k),計算輸出d

Lattice格子定義:(L由下列行跨度產(chǎn)生的整數(shù))


從對(j,k)中恢復(fù)d

具體算法如下:

for all


使得



if最后一個分組u==d,return d;

else fail;

(三)分解大整數(shù)

分解RSA大整數(shù)作為一個短離散對數(shù)問題,因為算法可忽略群組的順序,所以產(chǎn)生了比Shor算法需求小的因數(shù)分解法用于RSA中的大整數(shù)分解。

首先,我們通過將分解因式的問題作為解短離散對數(shù)問題對待,來獲得兩個因子。一個方法就是N近似φ(N),這使得我們解決短的離散對數(shù)問題時不需要事先知道順序。其次,我們通過執(zhí)行量子算法產(chǎn)生一系列的部分結(jié)果來獲得兩個因素。我們可以基于lattice-based技術(shù)在經(jīng)典后期處理中恢復(fù)離散對數(shù)d。它從產(chǎn)生的一系列部分結(jié)果中構(gòu)造格L和向量v,通過L趨近于V恢復(fù)d。

具體算法如下:

任意素數(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計算短離散對數(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ù)以及主要障礙都在于計算模冪的疊加運算。但是我認(rèn)為最主要的障礙是量子計算機(jī)技術(shù)未成熟。量子算法基于量子計算機(jī)上,倘若我們擁有實用的量子計算機(jī),在此條件下會有更多優(yōu)秀的算法。

目前,量子算法正在等待量子計算機(jī)的問世,量子計算機(jī)現(xiàn)仍然處于研究階段,基于其中的量子算法也需要等待。就好比阿基米德曾經(jīng)說過,“給我一個支點,我能撬動整個地球”,理論上是可行的。但是實際上造這樣的桿又是困難的。量子算法的實踐仍然有很大的探索空間。

值得慶幸的是,造出玻色彩樣裝置為制造通用的量子計算機(jī)掃清了重要的技術(shù)障礙。不過,因為量子比特越多,制造難度就越大。現(xiàn)在科學(xué)家在超導(dǎo)量子計算中,只能完全操控9個量子比特。在超導(dǎo)量子處理器中,中國科學(xué)家做到了讓10個量子比特形成最大程度的糾纏態(tài),使得它們的波函數(shù)坍縮結(jié)果完全相關(guān)。雖然離我們?nèi)粘J褂玫?048比特相差甚遠(yuǎn),但是這一天會到來的。量子計算機(jī)讓我們看到了超越經(jīng)典計算機(jī)巨大的潛力,它的能力范圍到底有多廣還在探索中。

量子算法的高效會使得一些加密算法變得不堪一擊,但是各類學(xué)界都是矛和盾相互推進(jìn)的,沒有絕對安全的密碼,也沒有對任何密碼都絕對高效的破解方法。用量子的方法來對付傳統(tǒng)的方法,比較有優(yōu)勢,但是新的攻擊總會出現(xiàn),有量子的攻擊,也會有量子的防守。

在未來,要想有實用的量子計算機(jī),用上量子算法,我們還有很多路要走,期待那一天的到來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容