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