專利名稱:基于密碼學技術(shù)應用的大數(shù)快速分解方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全和密碼學技術(shù)應用領(lǐng)域,特別是涉及一種基于密碼學技術(shù)應用的大數(shù)快速分解方法。
背景技術(shù):
在現(xiàn)代密碼學中,密碼的安全性是第一位的。由于數(shù)學問題的算法求解的復雜性可通過計算復雜性理論來描述,并可為破譯密碼和計算復雜度提供實際的度量方法。因此,當今的大部分密碼系統(tǒng),常??蓺w結(jié)為求解某個數(shù)學問題。而計算復雜性理論中的一些典型的數(shù)學問題又給人們提供了設(shè)計實用安全的高強度密碼系統(tǒng)的基礎(chǔ)。例如基于NPC類中的背包問題而設(shè)計的公開鑰密碼系統(tǒng),基于NP問題的大數(shù)因式分解問題的RSA公開鑰密碼系統(tǒng)等。大數(shù)分解是數(shù)學領(lǐng)域的一大難題,在密碼學中,1977年,Rivest, Samir和Adleman 聯(lián)合提出一種基于數(shù)論中歐拉定理的公鑰密碼系統(tǒng),簡稱RSA公鑰系統(tǒng),RSA公鑰密碼體制就是基于這種假設(shè)找到兩個大的素數(shù)相對不是很難,但是把一個大的合數(shù)分解成它的素因子形式卻極為困難。這個體制運行如下C = M0 (mod N) M = Cd (mod N)其中,M是明文;C是密文;N = P *q是模數(shù),P和q是不同的大素數(shù);e是公開的加密指數(shù)(密鑰),d是私有的解密指數(shù)(密鑰)且滿足ed = I (mod Φ (N)),(N, e)必須公開,但是d(還有Φ(Ν))需要保密。由于函數(shù)f:M—C是單向陷門函數(shù),因為由快速指數(shù)算法它是容易計算的,而它的逆Γ1 :C —M是難以計算的,對于不知道解密密鑰(陷門信息)d的人而言,為了找到d他們將不得不對η進行因式分解,并計算Φ (η),然而對于那些知道d的人而言,則Γ1的計算如同f的計算一樣的簡單,這就是RSA密碼思想。由于RSA的安全性相對較高,因此在當今公鑰系統(tǒng)中得到廣泛應用。RSA的安全性是基于難于對大數(shù)進行因子分解,后者是數(shù)學上的一個著名難題。由于大數(shù)分解在RSA公鑰系統(tǒng)中的實際用途,導致了對它進行破譯和對它安全性進行評估的雙重現(xiàn)實需求。目前,最有效的因子分解算法,以運行時間特征分類,主要可歸為以下兩大類1.運行時間主要依賴于待分解整數(shù)N的大小,并不十分依賴于找到的因子P的大小2.運行時間主要依賴于N中P (找到的N的因子)的大小。目前,被采用的因子分解方法有很多,最簡單的因子分解方法為試除法,它是通過嘗試的所有可能的因子來得到η的完整素因子分解式n = P1 · ρ2 · · · · pt, P1彡ρ2彡· · 彡pt。試除法檢測對排除小因子是很有效的,但此方法不能用來進行完全分解,除非η是一個很小的數(shù),比如說是11 < IO8 ;還有費馬分解因子方法,該方法是對于一個給定的大于I的奇數(shù)η,可用此算法來確定η的不超過士的最大因子。而目前被廣泛使用的通用整數(shù)因子分解方法有下述三種,即連分數(shù)方法(簡稱CFRAC)、二次篩法(簡稱QS)和數(shù)域篩法(簡稱NFS)。連分數(shù)方法(簡稱CFRAC)是第一個現(xiàn)代通用的因子分解方法。二次篩法(QS)由Carl POmerance于1982年首先提出的,由于運算的復雜性,運算的時間一直是各類算法關(guān)注的首要問題。1983年,Davis,Holdredge和Simmons成功地選用二次篩選法分解了 69位十進制數(shù),1989年Lerntra和Manasse又利用這個方法把計算分配給數(shù)百臺離得很遠的工作站分解了 106位的十進制數(shù),1994年4月,Atkins, Graff, Lenstra和Leyland再次利用
二次篩選法分解了稱為RSA-129的129位十進制的數(shù),組織了 600名專家、1600臺計算機聯(lián)網(wǎng)計算了 9個月,獲得成功,由此說明RSA的安全性作為密碼系統(tǒng),η應大于200位。上世紀末和本世紀初,大數(shù)分解又取得了新的進展,1999年,RSA-155(512bits)被成功分解,花了五個月時間(約8000MIPS)和224CPU hours,是在一臺有3. 2G中央內(nèi)存的Cray C916計算機上完成的;2002年,RSA-158也被成功因數(shù)分解。盡管上述分解因子的嘗試工作都取得了成功,但其破解的復雜性和艱難程度也由此可見一斑。然而,目前還沒有任何一種算法能夠完全解決大數(shù)分解問題,前面提到的幾種算法大都是利用大數(shù)的特定構(gòu)成,對大數(shù)進行的嘗試性分解,很多情況下都不能成功,因此,對密碼設(shè)計者而言,只要能夠避開這幾種算法的假定條件,理論上講,他設(shè)計的密碼就是相對安全的。對此,本申請人于2011年提出了專利名稱為“一種適用于信息加密技術(shù)應用的素數(shù)族快速生成方法”,專利申請?zhí)枮?01110253413. 7的發(fā)明專利,目的就是能夠避 開現(xiàn)有技術(shù)幾種算法的假定條件,利用素數(shù)族快速生成方法,設(shè)計出相對安全的密碼,本發(fā)明就是在此專利技術(shù)上進行的改進專利。
發(fā)明內(nèi)容
本發(fā)明的目的就是針對現(xiàn)有技術(shù)的不足和缺陷,提供一種適用于RSA公鑰密碼破譯和對RSA公鑰體系安全性重新評估的,基于密碼學技術(shù)應用的大數(shù)快速分解方法。為了達到上述目的,本發(fā)明采用如下技術(shù)方案;采用同余理論與合數(shù)分布規(guī)律的有機結(jié)合,生成一種新的、創(chuàng)造性的大數(shù)快速分解方法,其具體步驟如下,一種基于密碼學技術(shù)應用的大數(shù)快速分解方法步驟I,壓縮正整數(shù),建立模M = 30的縮剩余系。選取M = 30為模,求其對正整數(shù)的同余類,并做出其縮剩余系,由Euler函數(shù)
= ^ni7--](1.1)
PlmV PJ場φ(30)=8從而可形成八個等差數(shù)列,步驟2,建立殆素數(shù)族。在與模M= 30互素的八類中各取出一個代表數(shù)a1;,…,a8,它們依次為1、7、11、13、17、19、23、29于是7以上的素數(shù)P均可用模M = 30的縮剩余系表出,SP
αχP = <
(mod 30)(1.2)
8本發(fā)明將上式表示的全部數(shù)值定義為殆素數(shù)族,并記作Kp,于是有Kp = a+30 (η-1)其中η 彡 1,a < 30、且(a,30) = I
步驟3,根據(jù)計算機存儲空間的許可和實際需要,可選定30η為最大取值范圍;步驟4,生成殆素數(shù)族Kp1, Kp2,…,Kps,其中,Kps彡30η_1 ;步驟5,將擬分解的大數(shù)M代入公式Kp = a+30 (η-1)即Μ= a+30 (n-1)從而可找出該數(shù)值M在殆素數(shù)表中的確定位置,即所在列(η)和行(a)的位置;步驟6,將該數(shù)位進行設(shè)定,即當計算機執(zhí)行刪除程序并刪除到該數(shù)位時,程序能夠自動停止并發(fā)出提示;步驟7,采用刪除法,刪除殆素數(shù)族中的合數(shù),按照殆素數(shù)族Kp1, Kp2,…,Kpffl的數(shù)值大小(其中母依次進行如下操作根據(jù)含Kpi因子的合數(shù)的分布特點,將 含Kpi因子的合數(shù)全部刪除,直至要選擇的范圍30η,而勿需任何復雜運算;步驟8,當刪除操作運行到刪除數(shù)值M所在位置時,程序自動停止運行并發(fā)出提示;步驟9,程序停止前正執(zhí)行的是刪除某素因子合數(shù)的操作,該素因子即為數(shù)值M的因子;步驟10,將其另一個因子也按上述方法處理,直至確認它也是素因子為止。本發(fā)明的大數(shù)快速分解法,是采用同余理論和基于對合數(shù)分布規(guī)律性的深入了解,創(chuàng)造的一種新的大數(shù)快速分解方法,本方法的一個最大特點是,在η內(nèi)先期生成虛擬殆素表族表、通過對虛擬殆素表族表中合數(shù)的分布規(guī)律的掌握,逆向找出大數(shù)的生成因子,完全勿須依賴計算速度和給定的大數(shù)本身具有的漏洞,就可對η內(nèi)任意選取的一個大數(shù)進行快速因子分解,從而在計算機上實現(xiàn)了無復雜運算的快速因子分解。在所述的適用于大數(shù)快速分解方法中,將模M = 30的縮剩余系生成的八個等差數(shù)列按下述方式排列生成殆素數(shù)族表(在正整數(shù)范圍內(nèi)篩除掉2、3、5及其它們的倍數(shù),但7以上的素數(shù)盡在其中)如下殆素數(shù)族表
^J(n)
1 2 3 4 5 6 7 8 -η
行(__________
a-l ~ 3 -~61 91 121 151 181 2Π ~ 1+30(η - I)
a 2=77376797127157187217~7+30(η - I)
a 3 = 11 ΙTlTl101131161191221~ll+30(n - I)
a 4 = 13~~~134373103133163193223~13+30(η - I )
a 5 = 17174777107137167197227~17+30(η - I)
a 6 = 19194979109139~~~169199229~19+30(η - I)
a r=23235383Π3143173203233~23+30(η - I )
a 8=29295989Π9"""149179209239~29+30(η - I)根據(jù)含Kpi因子(I除外)的合數(shù)在殆素數(shù)族中的分布特點,可以證得以下的普遍性結(jié)論①以某Kp為因數(shù)的合數(shù)在數(shù)表中按周期變化重復出現(xiàn),其周期長度(占有列數(shù))恰好與該Kp的數(shù)值相等;②在每一周期內(nèi),必有八個而且僅有八個以該Kp為因數(shù)的合數(shù)(在始周期,Kp自身占據(jù)了一個合數(shù)位置);③在每一周期,這八個合數(shù)平均分布于各行,即一個周期內(nèi),各行只能出現(xiàn)一個以該Kp為因數(shù)的合數(shù);④在同一行內(nèi),以該Kp做主乘因數(shù)的合數(shù),它的另一個因數(shù)的數(shù)值則是隨著周期增加而遞增30。對任意的擬分解大數(shù)M,立即就可在虛擬殆素數(shù)族表中找出它所對應的列與行,應用上述規(guī)律,可逆向找出形成該大數(shù)的素因子,而勿需任何復雜運算。采用本發(fā)明大數(shù)快速分解方法,不同于傳統(tǒng)大數(shù)分解方法,即須依賴計算速度以及利用大數(shù)的特定構(gòu)成才可對某一大數(shù)進行分解,而是完全勿須依賴計算速度和給定的大數(shù)本身具有的漏洞,就可對η內(nèi)任意選取的一個大數(shù)進行快速因子分解;不同于傳統(tǒng)大數(shù) 分解方法必須進行大量的耗時巨多的運算,而是應用計算機軟件經(jīng)過簡單的鑒別處理即可實現(xiàn),勿需任何復雜運算,因此可以實現(xiàn)快速分解;從而能極大地推動相關(guān)公鑰體系安全性的評估和改善,廣泛應用于信息安全和密碼學技術(shù)應用領(lǐng)域。
圖I為本發(fā)明的大數(shù)快速分解總體流程圖;圖2為本發(fā)明工作原理框圖
具體實施例方式下面結(jié)合附圖I及圖2與具體實施例對本發(fā)明作進一步詳細的說明;根據(jù)附圖I的流程及附圖2的工作原理圖對某一大數(shù)進行快速分解應用示例(I)確定擬分解的大數(shù)為M = 1010+1 ;(2)代入公式1(^+1 = 30 (n-1)+a,其中,η代表的是該大數(shù)M在殆素數(shù)族表中的列數(shù),a代表的是該大數(shù)M在殆素數(shù)族表中所在行的首位數(shù);(3)計算(101Q+l)/30 = 333333333+11/30,從而確定該數(shù)值M在可能素數(shù)表中的位置是n = 333333334列,a = a3 = 11,即該數(shù)值是在首位數(shù)為“ 11”的行上;(4)啟動計算刪除程序,依次刪除含7、11、13、…素因子的合數(shù);(5)當在刪除含101因子的合數(shù)的過程中,計算機刪除程序停止,并發(fā)出了提示,從而確定101是1010+1的一個素因子,并有M1 = (1010+1)/101 = 99009901 ;(6)計算990099073Q = 330033+1/30,從而確定該數(shù)值M1在殆素數(shù)族表中的位置是η = 330034列,a = ai = 1,,即該數(shù)值是在首位數(shù)為“I”的行上;(7)繼續(xù)刪除程序,對99009901重新啟動計算刪除程序,依次刪除含7、11、13、…素因子的合數(shù);(8)當在刪除含3541素因子合數(shù)的過程中,計算刪除程序停止,并發(fā)出提示,從而確定 3541 也是 101Q+1 的一個素因子,并有 M2 = 9900990V354i = 27961 ;(9)繼續(xù)刪除程序,對27961,依次刪除含7、11、13、…,直至S素因子的合數(shù);計算過程停止,從而確定27961是素數(shù);
(10)計算輸出最終結(jié)果,即M = 1010+1 = 101X3541X27961 ;目前,廣為應用的RSA密碼系統(tǒng)的基本原理,需要完成下列步驟(I)選擇或挑選兩個不相同的大素數(shù)P和q ;(2)計算 N = pq ;(3)根據(jù)歐拉函數(shù),不大于N而且與N互質(zhì)的整數(shù)個數(shù)供砂=(P-n ((4)選擇一個整數(shù)e與(p-1) (q_l)互質(zhì),并且e小于(p_l) (q_l);(5)用以下公式計算 d :dXe ξ I (mod(p-l) (q-1));(6)將p和q的紀錄銷毀;(N, e)是公鑰,(N, d)是私鑰,(N, d)是秘密的,用戶A將他的公鑰(N,e)傳給用戶B,而將他的私鑰(N,d)密藏起來。加密消息假設(shè)用戶B想給用戶A發(fā)送一個消息m,他知道用戶A產(chǎn)生的N和e。他使用預先與用戶A約定好的格式將m轉(zhuǎn)換為一個小于N的整數(shù)M,比如他可以將每一個字轉(zhuǎn)換為這個字的Unicode碼,然后將這些數(shù)字連在一起組成一個數(shù)字。假如他的信息非常長的話,他可以將這個信息分為幾段,然后將每一段轉(zhuǎn)換為M。用下面這個公式他可以將M加密為C M0 = C (mod N)計算c并不復雜。用戶B算出C后就可以將它傳遞給用戶A。解密消息用戶A得到用戶B的消息C后就可以利用他的密鑰d來解碼。他可以用以下這個公式來將C轉(zhuǎn)換為M Cd = M (mod N)得到M后,他可以將原來的信息m重新復原。利用本發(fā)明方法可以快速對RSA密碼系統(tǒng)的大數(shù)N進行分解,從而找出密鑰d,并對其密文進行破譯。下面是對RSA密碼系統(tǒng)進行破譯的一個簡單應用示例(I)由于(N,e)是公鑰,公鑰是公開的,假如是(143,7);(2)對N進行分解,從而可得到兩個素數(shù)p = 11,q = 13 ;(3)計算秘密的歐拉函數(shù)Φ (η) = (p-1) X (q-1) = 120 ;(4)由于e = 7,從而可確定d。使(dXe)mod 120 = I,且d < 120,正確值為d =103 ;因為103X7 = 721 = 6X 120+1 = I (modl20)從而確定該組數(shù)的私鑰為(143,103);如果利用RSA密 碼系統(tǒng)發(fā)送的明文是χ = 85,通過公鑰(n,e) = (143,7)計算出加密值y = xe (mod N) = 857modl43 = 123 ;收到密文y = 123后,利用(n, d) = (143,103)計算明文χ = yd(mod N) = 123103modl43 = 85。
權(quán)利要求
1.一種基于密碼學技術(shù)應用的大數(shù)快速分解方法其分解步驟如下 步驟1,壓縮正整數(shù),建立模M = 30的縮剩余系。選取M = 30為模,求其對正整數(shù)的同余類,并做出其縮剩余系,由Euler函數(shù)
2.如權(quán)利要求I所述基于密碼學技術(shù)應用的大數(shù)快速分解方法應用于信息安全和密碼學技術(shù)應用領(lǐng)域。
全文摘要
本發(fā)明公開了一種基于密碼學技術(shù)應用的大數(shù)快速分解方法,采用同余理論與合數(shù)分布規(guī)律的有機結(jié)合,通過壓縮正整數(shù)、建立殆素數(shù)族、選定最大取值范圍、生成殆素數(shù)族、分解大數(shù)、對數(shù)位進行設(shè)定及刪合數(shù)除等步驟,生成一種創(chuàng)造性的大數(shù)快速分解方法。本方法不同于傳統(tǒng)大數(shù)分解方法,不須依賴計算速度就可對n內(nèi)任意選取的一個大數(shù)進行快速因子分解,不必進行大量耗的復雜運算,而是應用計算機軟件經(jīng)過簡單的鑒別處理即可實現(xiàn),因此可以實現(xiàn)快速分解。從而能極大地推動相關(guān)公鑰體系安全性的評估和改善,可廣泛應用于信息安全和密碼學技術(shù)應用領(lǐng)域。
文檔編號H04L9/30GK102769528SQ20121019773
公開日2012年11月7日 申請日期2012年6月15日 優(yōu)先權(quán)日2012年6月15日
發(fā)明者劉詩章, 賀漫古, 陳豫生 申請人:劉詩章, 賀漫古, 陳豫生