一種基于預選擇大數(shù)分解的rsa密碼破解系統(tǒng)及方法
【專利摘要】一種基于預選擇大數(shù)分解的RSA密碼破解系統(tǒng)及方法,包括輸入大數(shù)N,進行多項式的選擇;進行篩法產(chǎn)生關系對,包括計算skewness值和實根的最大絕對值Root,隨機選擇若干個b,對Root和skewness構成的閉區(qū)間采取逐步二分的方法,尋找一個傾斜值RS,滿足當限制|a/b|<RS時求得關系數(shù)量最多,令skewness=RS,對于每個b限制a滿足|a/b|<skewness×scale,對a的維度進行篩法過程,獲得關系對(a,b);對所有的關系對(a,b)對應的行構成一個矩陣,對矩陣進行約化處理得到兩個平方數(shù),根據(jù)求解所得平方根分解大數(shù)N,根據(jù)分解結果破解RSA密碼。
【專利說明】—種基于預選擇大數(shù)分解的RSA密碼破解系統(tǒng)及方法
【技術領域】
[0001]本發(fā)明屬于信息安全基礎領域,特別是一種基于預選擇大數(shù)分解的RSA密碼破解系統(tǒng)及方法。
【背景技術】
[0002]密碼是信息安全的關鍵所在。目前主要使用對稱密碼和非對稱密碼,其中一種重要的非對稱密碼是RSA密碼,其安全性基于大數(shù)分解的困難性難題:已知兩個素數(shù),計算乘積是容易的,反之,已知兩個素數(shù)的乘積,求這兩個素數(shù)卻是非常困難的。如果能夠成功解決大數(shù)分解難題,則可以破譯RSA密碼。大數(shù)分解有多種方法,研究的歷史也很長,但從130位大數(shù)開始,所用的分解方法幾乎都是數(shù)域篩法。數(shù)域篩法是目前最快的大數(shù)分解方法。
[0003]數(shù)域篩法[I]基本原理如下:對于待分解的大整數(shù)N,首先要選擇兩個整系數(shù)多項Sf(X)和g(x),其中X為多項式的變量,它們滿足條件:f(x)和g(x)在模N時有共同的整數(shù)根m,即f (m) =Omod N, g(m) =Omod N。記F(x, y)和G(x, y) (x, y為多項式的變量)分
別是 f (X)和 g(x)的齊次化形式,即 F(x,y)=ydlf(x/y),G(x,y)=yd2g(x/y),其中(I1, d2 分別是
f(x),g(x)的次數(shù)。如果存在互素的整數(shù)對(a,b)使得F(a,b)和G(a,b)同時是B光滑的,則稱(a,b)是一個關系。一個整數(shù)是B光滑的,如果它的素因子都不大于B。當找到足夠的關系(a, b)集合S后,就可以構造:
[0004]ll(a,b)es(a - bcq) = )?, where ^a1) = O, P1CZK](1 )
[0005]ri(a,b)es(a - ba2) = β? where g(a2) = 0, p2cZ[a2](2 ) [0006]其中\(zhòng)是€00=0的代數(shù)根,且一般不同于m,Ci2是滿足g (X)=O的根。Z[aJ是Ct1生成的環(huán),這樣P1是形為a。+S1Ot1 +…+ adfia^1的元素,(I1-1為最高次數(shù),系數(shù)^a1…adl_ieZ,z是整數(shù)組成的集合,β2的意義類似。由于存在映射實現(xiàn)兩個根之間的映射,這樣令(P1(Ct1) = m mod N, ψ2(α2) = m mod N,有^吹)=φ2(β丨),如果令
Φι(βι) = X mod NjCp^(P2) = y mod N,則有 x2=y2mod N, x, y 為兩個整數(shù),貝U容易從計算 χ-y
和N的公因子而分解N。
[0007]可以將上述過程劃分為四個步驟:尋找兩個多項式的過程稱作多項式選擇,尋找
關系(a,b)的過程稱作篩法,從關系構造式(1),(2)的過程稱作構造約化矩陣。而從求出
β !的過程稱作求平方根。其中最費時間的步驟是篩法,以收集足夠多的關系(relation),其次是構造約化矩陣步驟,而求根則很成熟,花費的時間也很少。
[0008]多項式的選擇雖然花費的時間在整體方法中不占主要成分,但選擇的多項式的好壞對方法整體影響很大。所謂好的多項式是指多項式可以生產(chǎn)更多的關系。好的多項式不但可以產(chǎn)生更多的關系,而且可以降低矩陣步驟里矩陣的大小。根據(jù)兩個多項式f(x),g(x)中的一個,比如g(x)是線性的還是非線性的,多項式選擇方法可以分為線性方法和非線性方法。線性方法里里主要有base-m方法[I],系數(shù)傾斜方法[2],首系數(shù)非I的kleinjung方法[3]。非線性方法主要有文獻[4,5,6]。目前實際使用的方法都是線性方法。
[0009]目前的篩法主要是平面篩法[I]和格篩法[7]。平面篩法對有限平面內的點(a,b)集合進行篩選,以獲得那些使得兩個多項式都平滑的關系對(a,b)。設a的上界為U,b的上界為V,則有限平面是指a在區(qū)間[-U,U],b在區(qū)間[0,V]范圍內取值,且為整數(shù)。在實際實施的時候,一般都將平面篩法改為線性篩法,即先固定一個b,只在一維維度a的變化范圍內篩選滿足要求的(a,b),然后再對另外一個b再做線性篩法。另外一種方法叫格篩法。該方法涉及兩個整數(shù)界B0,B1.首先在BO至BI的范圍內選擇一個素數(shù)q,該數(shù)稱作特殊數(shù)。篩法在滿足條件a=brmod q的(a,b)內進行,滿足條件的(a,b)構成了格,其中參數(shù)r滿足f(r) =Omod q.然后再選擇BO至BI間的另一個素數(shù)q再進行上述格篩法,具體步驟見[7]。在實際的軟件實現(xiàn)時,兩種方法都在使用,各有利弊。
[0010]參考文獻:
[0011]1、J.P.Buhler, H.W.Lenstra, JR.,C.Pomerance, Factoring Integers With TheNumber Field Sieve, in A.K.Lenstra and H.W.Lenstra, Jr.(eds.), The Development ofthe Number Field Sieve,LNCS1554,50-94, 1993.[0012]2.B.Murphy, Polynomial Selection for the Number Field Sieve IntegerFactorisation Algorithm, Ph.D.thesis, The Australian National University,1999
[0013]3.T.Kleinjung, On Polynomial Selection For The General Number FieldSieve, Mathematics of Computation, Vol.75,N0.256,2037-2047,2006
[0014]4.P.L.Montgomery, Small Geometric Progressions Modulon,manuscript(1995).[0015]5.T.Prest, P.Zimmermann, Non-linear Polynomial Selection For The NumberField Sieve,Journal of Symbolic Computation,Vol.47,Issue4,401-409,2012.[0016]6.R.S.Williams, Cubic Polynomials in the Number Field Sieve, MasterThesis,Texas Tech University, 2010.[0017]7.J.M.Pollard, The Lattice Sieve, the development of the nubmer fieldsieve,Lecture notes in mathematics, Vol.1554, 43-49, 1993.[0018]8.D.Coppersmith, Solving Homogeneous Linear Equations over GF (2) viaBlock Wiedemann Algorithm, Mathematics of Computation.62,333—350,1994.[0019]9.P.L.Montgomery, A Block Lanczos Algorithm for Finding Dependenciesover GF (2) ,Eurocryptr 95,LNCS921,106-120,1995.[0020]10.P.Nguyen, A Montgomery-1 ike Square Root for the Number FieldSieve,Proceedings ANTSIII,Springer-VerlagjLNCS1423, 151-68,1998.
【發(fā)明內容】
[0021]本發(fā)明目的在于針對現(xiàn)有破譯RSA密碼技術中大數(shù)分解方法實際運行時間長的問題,提出新的技術方案提高大數(shù)分解的效率,進而提高破譯RSA密碼的效率。
[0022]本發(fā)明提供的一種基于預選擇大數(shù)分解的RSA密碼破解系統(tǒng),包括以下單元,[0023]大數(shù)輸入單兀,用于輸入大數(shù)N,
[0024]多項式選擇單元,用于根據(jù)大數(shù)輸入單元提供的大數(shù)進行多項式的選擇,得到多項式 f (X),g(x);
[0025]關系對生成單元,用于根據(jù)多項式選擇單元所得多項式f(x),g(x)進行篩法產(chǎn)生關系對(a,b),包括以下子單元,
[0026]初始值計算子單元,用于根據(jù)f (X)和norm計算方式計算skewness值,skewness表示U/V的傾斜度;
[0027]實根計算子單元,用于計算f(x)的實根,并記實根的最大絕對值為Root ;
[0028]傾斜值搜尋子單元,用于隨機選擇若干個b,對實根計算子單元所得Root和初始值計算子單元說的skewness構成的閉區(qū)間采取逐步二分的方法,尋找一個傾斜值RS,滿足當限制I a/b I <RS時求得關系數(shù)量最多,令skewness=RS ;
[0029]篩法子單元,用于對于每個b,限制a滿足I a/b I〈skewness X scale,對a的維度進行篩法過程,獲得關系對(a,b),其中scale是一個預設系數(shù);
[0030]矩陣處理單元,用于對于關系對生成單元所得每個關系對(a,b)得到一行素元素,所有的關系對(a,b)對應的行構成一個矩陣,對矩陣進行約化處理得到兩個平方數(shù)
[0031]平方根求取單元,用于對矩陣處理單元所得兩個平方數(shù)?^,β$求取各自的平方根β!, 口2;
[0032]RSA密碼破解單元,用于根據(jù)平方根求取單元所得平方根β P 02分解大數(shù)N,根據(jù)分解結果破解RSA密碼。
[0033]而且,所述I(X)=CdXd + Ci^1Xd-1 + …+ C0,其中,d 為 f(x)的最高次數(shù),Cd、W
C0為d、d-ι次項系數(shù)…常數(shù)項,多項式選擇單元102包括以下子單元,
[0034]第一系數(shù)確定子單元,用于開始一次構造,選擇d次項系數(shù)Cd ;
[0035]第二系數(shù)確定子單元,用于生成d-Ι和d-2次項系數(shù)Wp2 ;
[0036]第一判斷子單元,用于判斷cd_2是否小于0,如果cd_2小于O成立,則啟動第三系數(shù)確定子單元工作,否則啟動第二判斷子單元工作,
[0037]第三系數(shù)確定子單元,用于生成剩余的其他系數(shù)和常數(shù)項cd_3、Cd_fC(l ;
[0038]第二判斷子單元,用于結束此次構造并判斷構造次數(shù)是否達到預設閾值,是則啟動排序輸出子單元工作,否則啟動第一系數(shù)確定子單元進行下一次構造;
[0039]排序輸出子單元,用于對各次構造所得多項式進行優(yōu)化并計算優(yōu)化后多項式的MurphyE值,根據(jù)MurphyE值進行排序,輸出最大值對應的多項式作為f (x)選擇結果,其中MurphyE表示多項式平滑的概率。
[0040]本發(fā)明還相應提供一種基于預選擇大數(shù)分解的RSA密碼破解方法,包括以下步驟,
[0041]步驟I,輸入大數(shù)N,
[0042]步驟2,根據(jù)步驟I提供的大數(shù)進行多項式的選擇,得到多項式f(x),g(x);
[0043]步驟3,根據(jù)步驟2所得多項式f(x),g(x)進行篩法產(chǎn)生關系對(a,b),包括以下子步驟,
[0044]步驟3.1,根據(jù)f (X)和norm計算方式計算skewness值,skewness表示U/V的傾斜度,U,V是正整數(shù),分別是a,b的取值范圍,即_U〈a〈U,0<b<V ;
[0045]步驟3.2,計算f(x)的實根,并記實根的最大絕對值為Root ;
[0046]步驟3.3,隨機選擇若干個b,對Root和skewness構成的閉區(qū)間采取逐步二分的方法,尋找一個傾斜值RS,滿足當限制|a/b|〈RS時求得關系數(shù)量最多,令skewness=RS ;
[0047]步驟3.4,對于每個b,限制a滿足| a/b |〈skewness X scale,對a的維度進行篩法過程,獲得關系對(a,b),其中scale是一個預設系數(shù);
[0048]步驟4,對于步驟3所得每個關系對(a,b)得到一行素元素,所有的關系對(a,b)對應的行構成一個矩陣,對矩陣進行約化處理得到兩個平方數(shù)1?;
[0049]步驟5,對步驟4所得兩個平方數(shù)丨^的求取各自的平方根
[0050]步驟6,根據(jù)步驟5所得平方根PpP2分解大數(shù)N,根據(jù)分解結果破解RSA密碼。
[0051]而且,步驟2中選擇得到多項式f (X)的方式為,令l'(x)=cdxd_ + cd_1xd_1 +…+ c0,
其中,d為f(x)的最高次數(shù),cd、Ctw…Ctl為d、d-1次項系數(shù)…常數(shù)項,執(zhí)行以下子步驟,
[0052]步驟2.1,開始一次構造,選擇d次項系數(shù)Cd ;
[0053]步驟2.2,生成d-1和d-2次項系數(shù)Ct^Cp2 ;
[0054]步驟2.3,判斷cd_2是否小于0,如果cd_2小于0成立,則進入步驟2.4生成剩余的其他系數(shù)和常數(shù)項,否則進入步驟2`.5,
[0055]步驟2.4,生成剩余的其他系數(shù)和常數(shù)項cd_3、cdy C(l,進入步驟2.5 ;
[0056]步驟2.5,結束此次構造,并判斷構造次數(shù)是否達到預設閾值,是則轉步驟2.6,否則轉步驟2.1進行下一次構造;
[0057]步驟2.6,對各次構造所得多項式進行優(yōu)化并計算優(yōu)化后多項式的MurphyE值,根據(jù)MurphyE值進行排序,輸出最大值對應的多項式作為f (x)選擇結果,其中MurphyE表示多項式平滑的概率。
[0058]本發(fā)明和現(xiàn)有技術方案相比,有如下優(yōu)點:在篩法的過程中,根據(jù)實根的值,通過重新選擇skewness的值可以增加關系的產(chǎn)出量,進一步的通過限制a的范圍,可以節(jié)省最多一半的工作量,但可以獲得90%以上的收益。并且,通過對多項式首系數(shù)的搜索范圍的限制,一方面可以節(jié)省計算量,另一方面所獲得的多項式的質量更好,通過對系數(shù)cd_2符號的限制,在不丟失好的多項式的條件下可以節(jié)省大量的系統(tǒng)資源。因此,本發(fā)明提供了更高效的RSA密碼破譯技術方案,可供國家安全部門等使用。
【專利附圖】
【附圖說明】
[0059]圖1為本發(fā)明實施例的系統(tǒng)結構示意圖。
[0060]圖2為本發(fā)明實施例的多項式選擇過程示意圖。
[0061]圖3為本發(fā)明實施例的篩法過程示意圖。
【具體實施方式】
[0062]下面結合附圖和實施例說明本發(fā)明技術方案[0063]參見圖1,本發(fā)明實施例所提供系統(tǒng)包括以下單元,
[0064]大數(shù)輸入單元101,用于輸入大數(shù)N,
[0065]多項式選擇單元102,用于根據(jù)大數(shù)輸入單元101提供的大數(shù)進行多項式的選擇,得到多項式f (X),g (X);
[0066]關系對生成單元103,用于根據(jù)多項式選擇單元102所得多項式f(x),g(x)進行篩法產(chǎn)生關系對(a,b),
[0067]矩陣處理單元104,用于對于關系對生成單元所得每個關系對(a,b)得到一行素元素,所有的關系對(a,b)對應的行構成一個矩陣,對矩陣進行約化處理得到兩個平方數(shù)
β;,昤
[0068]平方根求取單元105,用于對矩陣處理單元104所得兩個平方數(shù)^,卩$求取各自的平方根β ^ β 2 ;
[0069]RSA密碼破解單元106,用于根據(jù)平方根求取單元105所得平方根β ρ β 2分解大數(shù)N,根據(jù)分解結果破解RSA密碼。
[0070]實施例的系統(tǒng)工作過程為,大數(shù)輸入單元101輸入大數(shù),多項式選擇單元102根據(jù)單元101提供得大數(shù)進行多項式的選擇,其輸出的多項式送給關系對生成單元103進行篩法步驟,當關系對生成單元103產(chǎn)生了足夠的關系后將關系送入矩陣處理單元104,矩陣處理單元104形成由代數(shù)素元作為元素組成的矩陣,并進行約化處理得到兩個平方數(shù),這兩個平方數(shù)被送入平方根求取單元105求取各自的平方根,RSA密碼破解單元106接受這兩個平方根并用于分解大數(shù)及破解RSA密碼。
[0071]實施例的多項式選擇單元102包括以下子單元,
[0072]第一系數(shù)確定子單元,用于開始一次構造,選擇相對較小的d次項系數(shù)Cd ;
[0073]第二系數(shù)確定子單元,用于生成d-Ι和d-2次項系數(shù)Wp2 ;
[0074]第一判斷子單元,用于判斷cd_2是否小于0,如果cd_2小于O成立,則啟動第三系數(shù)確定子單元工作,否則啟動第二判斷子單元工作,
[0075]第三系數(shù)確定子單元,用于生成剩余的其他系數(shù)和常數(shù)項cd_3、Cd_fC(l ;
[0076]第二判斷子單元,用于結束此次構造并判斷構造次數(shù)是否達到預設閾值,是則啟動排序輸出子單元工作,否則啟動第一系數(shù)確定子單元進行下一次構造;
[0077]排序輸出子單元,用于對各次構造所得多項式進行優(yōu)化并計算優(yōu)化后多項式的MurphyE值,根據(jù)MurphyE值進行排序,輸出最大值對應的多項式作為f (x)選擇結果,其中MurphyE表示多項式平滑的概率。
[0078]工作過程為,每次構造先選擇一個Cd,生成對應的一個多項式。國際開源項目以前采用很大的首系數(shù),所得多項式效果不佳,經(jīng)過實驗,實施例選擇相對小的首系數(shù)。第一系數(shù)確定子單元選擇相對小的d次項系數(shù)cd,比如令Cd = 60k, k為自然數(shù),即Cd為60的倍數(shù)。具體實施時,第一次構建時令k=l,第二次構建時令k=2,一k的取值上界參見構造次數(shù)的預設閾值,可根據(jù)運算能力由本領域技術人員事先設定。如果計算能力足夠,也可以令Cd= 12k,30k等。第二系數(shù)確定子單元,根據(jù)第一系數(shù)確定子單元所選得cd,按照現(xiàn)有技術中的base-m或Kleinjung方法生產(chǎn)d_l和d_2次項系數(shù)Cd'cd_2,在第一判斷子單元中判斷cd_2是否小于 0,如果cd_2小于O成立,則轉入第三系數(shù)確定子單元,生成剩余的其他系數(shù)和常數(shù)項,然后啟動第二判斷子單元工作。如果Cd_2小于O不成立,則結束此次構造,直接啟動第二判斷子單元工作。第二判斷子單元結束此次構造并判斷構造次數(shù)是否達到預設閾值,是則啟動排序輸出子單元工作,否則啟動第一系數(shù)確定子單元,轉入第一系數(shù)確定子單元從下一個Cd開始下一次構造過程。構造次數(shù)達到預設閾值后,對每次構造得到的多項式一起進行排序,包括在排序輸出子單元根據(jù)現(xiàn)有技術對各次構造多項式進行優(yōu)化并計算優(yōu)化后多項式的MurphyE值,按該值進行排序,輸出最大值對應的多項式,其中MurphyE反應了多項式平滑的概率,該值越大越好。
[0079]實施例的關系對生成單元103包括以下子單元,
[0080]初始值計算子單元,用于根據(jù)f (X)和norm計算方式計算skewness值,skewness表示U/V的傾斜度,U,V是正整數(shù),分別是a,b的取值范圍,即-u〈a〈u,0<b<V ;
[0081]實根計算子單元,用于計算f(x)的實根,并記實根的最大絕對值為Root ;
[0082]傾斜值搜尋子單元,用于隨機選擇若干個b,對實根計算子單元所得Root和初始值計算子單元所得skewness構成的閉區(qū)間采取逐步二分的方法,尋找一個傾斜值RS,滿足當限制I a/b I <RS時求得關系數(shù)量最多,令skewness=RS ; [0083]篩法子單元,用于對于每個b,限制a滿足I a/b I〈skewness X scale,對a的維度進行篩法過程,獲得關系對(a,b),其中scale是一個預設系數(shù)。
[0084]工作過程為,對于多項式選擇單元102輸出的多項式,在初始值計算子單元里根據(jù)f (X)和norm的計算方式,計算一個skewness值,其中norm是對多項式所能產(chǎn)生關系數(shù)量的一個近似估計,具體計算見文獻[3]。在實根計算子單元計算f(x)的實根,并記實根的最大絕對值為Root。傾斜值搜尋子單元隨機選擇少量的b,對Root和skewness構成的閉區(qū)間采取逐步二分的方法,尋找一個傾斜值RS,滿足當限制|a/b|〈RS時求得關系數(shù)量最多,令SkeWneSS=RS。最后轉入篩法子單元進行處理,篩法子單元對于每個b,限制a滿足
a/b I〈skewness X scale,對a的維度進行篩法過程,獲得關系,其中預設系數(shù)scale是一個經(jīng)驗數(shù)值。
[0085]具體實施時,系統(tǒng)各單元可采用軟件模塊化方式實現(xiàn),相應方法可采用軟件技術實現(xiàn)自動運行,實施例的具體的實施步驟如下:
[0086]步驟I,輸入大數(shù)。
[0087]本方法的輸入為一個大的整數(shù)N,且為合數(shù)。
[0088]步驟2:根據(jù)步驟I提供的大數(shù)進行多項式的選擇,得到多項式f(x),g(x)。
[0089]兩個多項式中通常令f(x)是非線性的,而g(x)是線性的。多項式的好壞主要由
f (x)的質量來決定。令r(x)=cdxd + cd_:1xd_1 +…+ C。,其中,d為f(x)的最高次數(shù),cd、
cd-1…c。為d、d_l次項系數(shù)…常數(shù)項。在用base-m方法或Kleinjung方法生產(chǎn)多項式的過程中,按如下標準進行篩選:首系數(shù)Cd的選擇要在一個相對小的范圍內進行,系數(shù)cd_2要取負的值。此方法也適用非線性方法生產(chǎn)多項式的選擇,當具體實施時采用非線性方法生成若干多項式時,也可按上述標準挑選好的多項式作為g (x),能夠進一步提高多項式質量,考慮效率則可以不作g(x)質量優(yōu)化選擇。
[0090]如圖2所示,步驟2流程可設計為:
[0091]步驟2.1,開始一次構造,選擇相對小的d次項系數(shù)Cd ;
[0092]步驟2.2,生成d-1和d-2次項系數(shù);[0093]步驟2.3,判斷cd_2是否小于0,如果cd_2小于O成立,則進入步驟2.4生成剩余的其他系數(shù)和常數(shù)項,否則進入步驟2.5,
[0094]步驟2.4,生成剩余的其他系數(shù)和常數(shù)項cd_3、cdy C(l,進入步驟2.5 ;
[0095]步驟2.5,結束此次構造,并判斷構造次數(shù)是否達到預設閾值,是則轉步驟2.6,否則轉步驟2.1進行下一次構造;
[0096]步驟2.6,對各次構造所得多項式根據(jù)現(xiàn)有方法進行優(yōu)化并計算優(yōu)化后多項式的MurphyE值,根據(jù)MurphyE值進行排序,輸出最大值對應的多項式作為f (x)選擇結果,其中MurphyE表示多項式平滑的概率。
[0097]實施例中,cd = 60k。具體實施時,第一次執(zhí)行步驟2.1時令k=l,第二次執(zhí)行步驟
2.1時令k=2,…
[0098]步驟3:根據(jù)步驟2所得多項式f(x),g(x)進行篩法產(chǎn)生關系對(a,b)。
[0099]如步驟2所述,仍設f(x)是非線性的,而g(x)是線性的。由f(x)=0可以求得其若干實數(shù)根,求各實數(shù)根的絕對值,并選擇最大的絕對值記為Root。由f (X)和現(xiàn)有技術中norm計算方式可以計算出其最優(yōu)的skewness值,skewness就是U/V的傾斜度,a, b的取值范圍是根據(jù)skewness來調整的,設a的上界為U,b的上界為V,則U,V是正整數(shù),需要滿足U/V=SkeWneSS,a在區(qū)間[_U,U],b在區(qū)間[0,V]范圍內取值,且為整數(shù)。隨機取少量的b (個數(shù)可由本領域技術人員預先設置),在Root和skewness構成的閉區(qū)間采取現(xiàn)有技術中逐步二分的方法,獲得一個傾斜值RS,滿足當限制I a/b I <RS時求得的關系數(shù)量最多,然后令SkeWneSS=RS。實際實施過程中,二分的次數(shù)是一個預設經(jīng)驗值,比如可以僅比較傾斜值為Root和skewness兩個值時產(chǎn)生關系數(shù)量的多少。進一步的當采用線性篩法時,把有限范圍的(a,b)平面,按照b劃分為若干線性空間,即給定一個b,讓a變化。但a的變化范圍進一步得到限制,限制條件為I a/b I〈skewness X scale,其中預設系數(shù)scale是一個大于等于I的一個經(jīng)驗值,等于I時可節(jié)省50%的計算量,該值越大,可節(jié)省的計算量越少,具體數(shù)值可由本領域技術人員預先設置。從而可以求出a的范圍?,F(xiàn)在在a的新范圍內進行線性篩法。具體的篩法方法和文獻[I]介紹的一致。當采用格篩法時,該方法涉及兩個整數(shù)界B0,B1。首先在BO至BI的范圍內選擇一個素數(shù)q。篩法在滿足a=br mod q以及| a/b I〈skewness X scale這兩個條件的(a, b)內進行,滿足條件的(a, b)構成了格,其中參數(shù)r滿足f(r)=0mod q。然后再選擇BO至BI間的另一個素數(shù)記為q,再進行上述格篩法,具體的格篩法見[7]。經(jīng)過此步驟,獲得了足夠多的關系(a,b)。
[0100]如圖3所示,步驟3流程可設計為:
[0101]步驟3.1,根據(jù)f (X)和norm計算方式計算skewness值,skewness表示U/V的傾斜度;
[0102]步驟3.2,計算f(x)的實根,并記實根的最大絕對值為Root ;
[0103]步驟3.3,隨機選擇若干個b,對Root和skewness構成的閉區(qū)間采取逐步二分的方法,尋找一個傾斜值RS,滿足當限制|a/b|〈RS時求得關系數(shù)量最多,令skewness=RS ;
[0104]步驟3.4,對于每個b,限制a滿足| a/b |〈skewness X scale,對a的維度進行篩法過程,獲得關系對(a,b),其中scale是一個預設系數(shù)。
[0105]步驟4:對于步驟3所得每 個關系對(a,b)得到一行素元素,所有的關系對(a,b)對應的行構成一個矩陣,對矩陣進行約化處理得到兩個平方數(shù)。
[0106]對步驟3獲得的關系(a,b),由于F(a,b)和G(a,b)都是平滑的,可以獲得其代數(shù)素元或素數(shù)。對于每個(a,b)都按照文獻[I]中的方法可以得到一行素元素,所有的關系(a,b)對應的行構成一個矩陣。對該矩陣利用文獻[8,9]的方法進行約化處理以獲得若干線性相關組合,并形成兩個形如式(I)和(2 )的代數(shù)平方數(shù)。
[0107]步驟5:對步驟4所得兩個平方數(shù)丨^ Pg求取各自的平方根
[0108]對于步驟4獲得的矩陣可以得到形如式(I)和(2)的兩個代數(shù)平方數(shù)。利用文獻
[10]中的方法可以求得各自對應的平方根。由Pl 出其平方根P1,由^求出其平方根& 2-
[0109]步驟6,根據(jù)步驟5所得平方根P i,P 2分解大數(shù)N,根據(jù)分解結果破解RSA密碼。
[0110]由于存在(P1Oi)= m mod N, cp2(a2) = m mod N,且P1 e Z[aJ, p2cZ[a2],從而可
以計算出(P1(P1) = xm°d NjCp1(P2) = y mod N,則有x2=y2mod N,則容易從計算x-y和N的
公因子而分解N。
[0111]知道了 N的分解N=pq,則可以計算出N的歐拉函數(shù)0(N) = (p - l)(q - 1),則可從
公鑰e,N,以及關系式eel=] mod 0(N),利用現(xiàn)有技術中的輾轉相除法求得私鑰d,從而破解RSA密碼。
[0112]以上僅是用以說明本發(fā)明的具體實施案例而已,并非用以限定本發(fā)明的可實施范圍。熟悉本領域的技術人員在不違背本發(fā)明所指示的精神與原理下所完成的一切等效變形、替換或修飾,仍包含在本發(fā) 明權利要求所限定的范圍內。
【權利要求】
1.一種基于預選擇大數(shù)分解的RSA密碼破解系統(tǒng),其特征在于:包括以下單元, 大數(shù)輸入單元,用于輸入大數(shù)N, 多項式選擇單元,用于根據(jù)大數(shù)輸入單元提供的大數(shù)進行多項式的選擇,得到多項式f (X),g (X); 關系對生成單元,用于根據(jù)多項式選擇單元所得多項式f(x),g(x)進行篩法產(chǎn)生關系對(a,b),包括以下子單元, 初始值計算子單元,用于根據(jù)f (X)和norm計算方式計算skewness值,skewness表示U/V的傾斜度,U, V是正整數(shù),分別是a,b的取值范圍,即-u〈a〈u,0<b<V ; 實根計算子單元,用于計算f(x)的實根,并記實根的最大絕對值為Root ; 傾斜值搜尋子單元,用于隨機選擇若干個b,對實根計算子單元所得Root和初始值計算子單元所得skewness構成的閉區(qū)間采取逐步二分的方法,尋找一個傾斜值RS,滿足當限制I a/b I <RS時求得關系數(shù)量最多,令skewness=RS ; 篩法子單兀,用于對于每個b,限制a滿足I a/b |〈skewness X scale,對a的維度進行篩法過程,獲得關系對(a,b),其中scale是一個預設系數(shù); 矩陣處理單元,用于對于關系對生成單元所得每個關系對(a,b)得到一行素元素,所有的關系對(a,b)對應的行構成一個矩陣,對矩陣進行約化處理得到兩個平方數(shù)β?,β^; 平方根求取單元,用于對矩陣處理單元所得兩個平方數(shù)求取各自的平方根β 1,β 2 ;` RSA密碼破解單元,用于根據(jù)平方根求取單元所得平方根β” 32分解大數(shù)N,根據(jù)分解結果破解RSA密碼。
2.根據(jù)權利要求1所述基于預選擇大數(shù)分解的RSA密碼破解系統(tǒng),其特征在于:所述f(x)=cdxd + C^1Xd-1 +…+ c0,其中,d為f(x)的最高次數(shù),cd、Ctw…C。為d、d_l次項系數(shù)…常數(shù)項,多項式選擇單元102包括以下子單元, 第一系數(shù)確定子單元,用于開始一次構造,選擇d次項系數(shù)Cd ; 第二系數(shù)確定子單元,用于生成d-Ι和d-2次項系數(shù); 第一判斷子單元,用于判斷cd_2是否小于0,如果cd_2小于O成立,則啟動第三系數(shù)確定子單元工作,否則啟動第二判斷子單元工作, 第三系數(shù)確定子單元,用于生成剩余的其他系數(shù)和常數(shù)項cd_3、Cd^Ctl ; 第二判斷子單元,用于結束此次構造并判斷構造次數(shù)是否達到預設閾值,是則啟動排序輸出子單元工作,否則啟動第一系數(shù)確定子單元進行下一次構造; 排序輸出子單元,用于對各次構造所得多項式進行優(yōu)化并計算優(yōu)化后多項式的MurphyE值,根據(jù)MurphyE值進行排序,輸出最大值對應的多項式作為f (x)選擇結果,其中MurphyE表示多項式平滑的概率。
3.一種基于預選擇大數(shù)分解的RSA密碼破解方法,其特征在于:包括以下步驟, 步驟I,輸入大數(shù)N, 步驟2,根據(jù)步驟I提供的大數(shù)進行多項式的選擇,得到多項式f(x),g(x); 步驟3,根據(jù)步驟2所得多項式f(x),g(x)進行篩法產(chǎn)生關系對(a,b),包括以下子步驟, 步驟3.1,根據(jù)f (X)和norm計算方式計算skewness值,skewness表示U/V的傾斜度,U,V是正整數(shù),分別是a,b的取值范圍,即_U〈a〈U,0<b<V ; 步驟3.2,計算f(x)的實根,并記實根的最大絕對值為Root ; 步驟3.3,隨機選擇若干個b,對Root和skewness構成的閉區(qū)間采取逐步二分的方法,尋找一個傾斜值RS,滿足當限制|a/b|〈RS時求得關系數(shù)量最多,令skewness=RS ; 步驟3.4,對于每個b,限制a滿足I a/b |〈skewness X scale,對a的維度進行篩法過程,獲得關系對(a,b),其中scale是一個預設系數(shù); 步驟4,對于步驟3所得每個關系對(a,b)得到一行素元素,所有的關系對(a,b)對應的行構成一個矩陣,對矩陣進行約化處理得到兩個平方數(shù)1?: 步驟5,對步驟4所得兩個平方數(shù)卩^[^求取各自的平方根P1, ^2; 步驟6,根據(jù)步驟5所得平方根分解大數(shù)N,根據(jù)分解結果破解RSA密碼。
4.根據(jù)權利要求3所述基于預選擇大數(shù)分解的RSA密碼破解系統(tǒng),其特征在于:步驟2中選擇得到多項式f(x)的方式為,令R:X)=cdXd+cd_lXd-4…+ Cu其中,d為f(x)的最高次數(shù),cd、Cf1…Ctl為d、 d-l次項系數(shù)…常數(shù)項,執(zhí)行以下子步驟, 步驟2.1,開始一次構造,選擇d次項系數(shù)Cd ; 步驟2.2,生成d-1和d-2次項系數(shù); 步驟2.3,判斷cd_2是否小于0,如果cd_2小于0成立,則進入步驟2.4生成剩余的其他系數(shù)和常數(shù)項,否則進入步驟2.5, 步驟2.4,生成剩余的其他系數(shù)和常數(shù)項cd_3、cd_4...C(l,進入步驟2.5 ; 步驟2.5,結束此次構造,并判斷構造次數(shù)是否達到預設閾值,是則轉步驟2.6,否則轉步驟2.1進行下一次構造; 步驟2.6,對各次構造所得多項式進行優(yōu)化并計算優(yōu)化后多項式的MurphyE值,根據(jù)MurphyE值進行排序,輸出最大值對應的多項式作為f(x)選擇結果,其中MurphyE表示多項式平滑的概率。
【文檔編號】H04L9/30GK103618601SQ201310672540
【公開日】2014年3月5日 申請日期:2013年12月11日 優(yōu)先權日:2013年12月11日
【發(fā)明者】楊敏, 王張宜, 孟慶樹 申請人:武漢大學