亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

提高大整數Montgomery模乘運算速度的方法

文檔序號:6615769閱讀:359來源:國知局
專利名稱:提高大整數Montgomery模乘運算速度的方法
技術領域
本發(fā)明涉及的是一種加密算法,特別涉及的是一種提高大整數 Montgomery才莫乘運算速度的方法。
背景技術
隨著Internet的迅猛發(fā)展,網絡安全問題顯得越來越重要,相關網絡安全協(xié) 議應運而生,而這些協(xié)議又是以高效安全的加密算法為前提的。
加密算法分為對稱加密算法和非對稱加密算法。在網絡上進行數據傳輸時, 通常使用對稱加密算法加密所要傳輸的數據,而用非對稱加密算法加密密鑰。
就非對稱加密算法來說,目前RSA與ECC的應用比較普及。RSA與大素 數域上的ECC的底層運算都離不開大整數模乘運算,大整數模乘運算的速度直接 決定了 RSA與ECC加密算法的速度。
在目前的所有有效的大整數模乘算法中,Montgomery算法在大多數環(huán)境下被 認為是最為高效的。而在具體以字為單位實現Montgomery算法的方法 中,CIOS(Coarsely Integrated Operand Scanning)算法復雜度最低?,F將此算法描述 如下
假設Montgomery算法的參數為(M,M'[O], r, n, X,Y ) , M為大整數,r = 2w
為最小字處理單元,n為大整數的字個數。M'[O] = M-'[O] mod r。 X,Y為要計算
Montgomery模乘的乘數。CIOS算法如下 z. = 0 to —1{ C = 0;
<formula>formula see original document page 4</formula>(C) = r[w]+c; = &
T[" + 1] = C; C = 0;
m = r
*M'〔0] mod
ybr y = i w—i{
(C,S) = r[/| + m*M[7.] + C;
(。)=r["]+c;
r[w —1] = S;
:r["] = r["+i]+c;
在大整數運算中,關鍵運算為乘法運算,加法運算時間都可忽略不計,上述
CIOS中乘法的次數為2w2 +w 。如何減少乘法運算的次數,成為改進Montgomery CIOS算法的關鍵。
一些學者注意到了這一點,文章《Dual-Residue Montgomery Multiplication》
也闡述了一種提高速度的方案,該文章的主要創(chuàng)新點如下
為了提高運算速度,他將乘數中的一個拆分為高低項之和,J^^,+K,然 后并行計算Z1V^ modM, JO^-" modM的值。
因為6<"所以^7^—* modM通過CIOS算法比原來的運算量小,而X7^-" modM中的^的字凄t比原來少,而兩項的計算又是并4亍的,所以運算速度比原來 得到提高。
但是該文章中僅對一個乘數進行了拆分,Z7^-" modM的計算中乘法的運算 量在取6 = 「"/2]時約為6"2/4 + w。
鑒于上述問題,本發(fā)明創(chuàng)作者經過長時間的研究和試驗,在此算法的基礎上 獲得一種提高大整數運算速度的方法。

發(fā)明內容
本發(fā)明的目的在于,提供一種提高大整數Montgomery模乘運算速度的 方法,用以克服上述缺陷。
為實現上述目的,本發(fā)明采用的技術方案在于,提供一種提高大整數Mon t gomery模乘運算速度的方法,其包括的步驟為
步驟a:將兩個大整數乘數X、 Y分別拆分為高數位^。=1〃「"^ , 4 = y /「"/2,,和低數位= X mod r「"/21 , & = 7 mod r"—「"'2,;
步驟b:并行計算^義6, Z,"/"外"modM, X,。}>—「"/2lmodM, Z,"^-" mod
M;
步驟c:計算(A義6 + ^。V"「"外"mod M+義,。V—「""mod M + X"j-" mod M) mod M的值,得到最終結果;
其中M為大整數,廣=2"為最小字處理單元,n為大整數M的字個數。 其中,所述步驟b中計算^j/"叫—"mod M的步驟為 步驟bll:取i二0;
步驟 b12 :令 C=0,從 j = 0 到 j= "-「"/2,-l依次計算 (c,^^r[乂]+A力-]u/]+c; r[y] = &從j= "-「"/2]到j= "-l依次計算 (dr[刀+c;r[y.]^
步驟bl3:令(Or["] + C; 2T"] = & r[" + l] = C; C = 0; w = :T
*M'
mod 步驟 b14 :令(C,S) = :T
+ m*M'
,從 j=l 到 n-1 依次計算 (C," = 7U] + m * M[刀+ C; 7U — 1] =
步驟b 15:令(C, 。 = r["〗+ C; r[M -1] = & :T["] = T[" +1] + C;
步驟bl6:如果t"-「"/2"]-l,返回T
…7111 —i];否則令2' = 2 + 1,執(zhí)行上述步 驟bl2;
其中,i、 j、 C為變量,M為大整數,廣=2"為最小字處理單元,n為大整數 M的字個凄t, M'[O] = M-'[O] modr。
其中,所述步驟b中計算X,。y,_「, mod M的步驟為 步驟b21:令i二0;
步驟 b22 : 令 C=0,從 j = 0 到 j= 「"/2,-1依次計算 (C,。-r[刀+ XJ乂],山〗+ C; 7U] = &從j= 「"/2,到j = "-l依次計算 (dr[乂] + C; 21/] = &
步驟b23:令COr["] + C; r["] = >S; T["+ 1] = C; C = 0; m = r
*ikT
mod r;
步驟b24 : 令(C,S) = :T
+ w*M'
, 從j=l 到 j = n-1 依次計算 (C,= 7U] + m * + C; r[y' — 1] = &
步驟b25:令(or["]+c; 1] = & r["] = r["+i]+c;
步驟b26:如果t「w/2,-l,返回710]…7111 —否則令/ = / + 1,執(zhí)行上述步驟b22;
其中,i、 j、 C為變量,M為大整數,"=2*為最小字處理單元,n為大整數 M的字個數,M'[O] = M-'[O] modr。
其中,所述步驟b中計算ZJj-" modM的步驟為 步驟b31:令i二0;
步驟 b32 : 令 C=0,從 j = 0 到 j= 「"/2"j-l依次計算 ((^) = 71/] +W]*, + C ; 71/] = &
從7' = 「"/2]到j= —i依次計算(c,s) = r[y] + C; 71/] = S;
步驟b33: 4^(C,S) = r["〗+ C;r[w] = S;r[" + l] = C;C = 0;/w = :r
*M'
mod 步驟 b34 : 令(C,S) = r
+ w*M'
, 從 j=l 到 j=n-l 依次計算 (C, = r[/] + w *玲.]+ C; 7U -1] =
步驟b35: (C,S) = r["] + C;r[w-1] = S;= r[w + l] + C ; 步驟b36:如果i' <「"/2")-1,貝"'=/ + 1,執(zhí)行上述步驟b32; 步驟b37:令/ =「"/2"|; 步驟b38:令C = 0;w = r
*M'
mod r;
步驟 b39 : 令(C,S) = r
+ m*M'
, 從j=l 到 j=n-l 依次計算 (C, S) = 71/] + w * + C; r[y' -1] = S;
步驟b3A: (C,S) = r["] + C; T["-1] = S;= r[" +1] + C ;
步驟b3B:如果/</7-1,則令f = / + l并執(zhí)行上述步驟b38;否則返回
r[o]...r[n-i];
其中,i、 j、 C為變量,M為大整數,r-2"為最小字處理單元,n為大整數 M的字個數,M'[O] = M-'[O] modr。
與現有技術相比本發(fā)明的優(yōu)點在于,首先其是針對Montgomery算法本身的 改進;其次在n充分大時,本發(fā)明比Montgomery CIOS實現節(jié)省約的時間37.5%, 比《Dual-Residue Montgomery Multiplication中的對偶剩余算法的還要快,該算 法約節(jié)省時間25%。
具體實施例方式
申請人認為具體實施方式
里,闡述的比較清楚不需要在配合附圖
進行說明, 對本發(fā)明上述的和另外的技術特征和優(yōu)點下邊將作更詳細的說明。
本發(fā)明的提高大整數Montgomery模乘運算速度的方法的流程,其是以Montgomery算法為基礎的,利用對偶剩余原理,將兩個乘數分別拆分為高低項之 和,然后并行計算拆分后的Montgomery模乘,從而使得大整數模乘速度提高0.6 倍。其包括的步驟為
步驟a:將兩個大整數乘數X、 Y分別拆分為高數位^a:X〃「""1 , ^ = y/廣「"M ,和低數位義,。=Z mod 一。, , & = y mod r"-「"",;
步驟b:并行計算^。^, A。V「"外"modM,義,。V—「""modM, X " mod
M;
步驟c:計算(^。^ + ^。V「"外"mod M+ 「一mod M+ mod
M) mod M的值,得到最終結果;
其中M為大整數,^ = 2^為最小字處理單元,n為大整數M的字個數。 其中,所述步驟b中計算J^。V「""" modM的步驟為 步驟bll:取i二0;
步驟 b12 : 令 C=0,從 j = 0 到 j= "-「"/2]-l依次計算 (C,S卜7I/] + ^L/]^卩]+ C; 7U] = S;從j= "-「"/2,到j= "-1依次計算 (C,S) = 71/] + C; rm = S;
步驟bl3:令(C,S)二r["] + C;r["hS;r[" + l]-C;C:0;/7^r
承似'
mod
步驟 M4 : 令(C,S) = r
+ j*M'
, 從 j=l 到 n-1 依次計算 (C, S) = r[刀+ m * M[刀+ C; r[卜1] = S;
步驟b 15:令(C, S) = + C; r[" — 1] = S; = T[" +1] + C;
步驟bl6:如果t"-「"/2]-l,返回7
…77[11—1].,否則令/ = / + 1,執(zhí)行上述步 驟bl2;
其中,i、 j、 C為變量,M為大整數,,=2"為最小字處理單元,n為大整數 M的字個數,M'
-M-1
modr。
其中,所述步驟b中計算X,。I^-「"^mod M的步驟為 步驟b21:令i-0;
步驟 b22 :令 C=0,從 j = 0 到 j= 「"/2]-l依次計算
(c,s) = r[;]+jrA。[y〗*i;[/]+c; r[/i=s;從j= 「"/2]到j = "-i依次計算 (c,s) = r[/|+c; =
步驟b23:令(C, S) = r["] + C; r["] = r["+1] = C; C = 0; w = T
* M'[O] mod r; 步驟b24 : 令(C,S) = r
+ w*M'
, 從j=l 到 j = n-1 依次計算
(c, s) = r[/〗+*則+c; r[/ -1] = &步驟b25:令(dT[w] + C; r[w_l] = >S; = T[w + 1] + C;
步驟b26:如果/ = 「"/2>1,返回710]…7111 —否則令/ = / + 1,執(zhí)行上述步驟
b22;
其中,i、 j、 C為變量,M為大整數,,=2"為最小字處理單元,n為大整數 M的字個數,M'[O]:M-'[O] modr。
其中,所述步驟b中計算X,。"^-" modM的步驟為 步驟b31:令〗=0;
步驟b32 :令C=0,從 j= 0到j= 「"/2]-1依次計算
(c,>s) = r[)]+w]*,+c; r[y] = &
從)=「"/21到j=" -1依次計算(c,=r[y]+c;= &
步驟b33:令(C,S)二r["] + C; = & r[" + l] = C; C = 0; w = :r
*M'
mod
步驟 b34 :令(C,S):r
+ m承M'
, 從 j=l 到 j=n-l 依次計算
(c, = r[y]+m * +c; r[ _/—1] = &
步驟b35: (C) = r["] + C; r["-l] = S; r[w] = :T[" + l] + C; 步驟b36:如果z' <「w/2]-l,則z'= "1,執(zhí)行上述步驟b32; 步驟b37:令Z =「"/2]; 步驟b38:令C = 0;m = :T
*,
mo";
步驟 b39 : 令(C,S) = r
+ m*JkT
, 從 j=l 到 j=n-l 依次計算
(c, = r[y]+m * +c; r[) -1] = &
步驟b3A: (dr["]+c;r["-i;n r|>] = r["+i]+c;
步驟b3B:如果"m-1,則令/ = / + 1并執(zhí)行上述步驟b38;否則返回
r[o]…r[n-i];
其中,i、 j、 C為變量,M為大整數,^ = 2"為最小字處理單元,n為大整數 M的字個數,M'[O] = M—'[O] modr。 以16進制表示如下
M: 6C7511628CC295716464B4F4D98AB347C452724FF9B5A55FB F792769BEC2A64AA187B72835E72610A8679317B867061131
605E653891 AT
: 25758871n: 32
X: 6C7511628CC295716464B4F4D98AB347C452724FF9B5A55FB F792769BEC2A64AA187B72835E72610A8679317B867061131 F583F34943021745C1F45A7EF1043D24E7341BBBF12019287 5012613337
Y: 6C7511628CC295716464B4F4D98AB347C452724FF9B5A55FB F792769BEC2A64AA187B72835E72610A8679317B867061131 F583F34943021745C1F45A7EF2734B6597211CCEF15015253 E012E11732
按照上述方法,首先對X,Y進行拆分,然后并行計算,最后進行模加運算, 即可得到最終結果。
以上所述僅為本發(fā)明的較佳實施例,對本發(fā)明而言僅僅是說明性的,而非限 制性的。本專業(yè)技術人員理解,在本發(fā)明權利要求所限定的精神和范圍內可對其 進行許多改變,修改,甚至等效,但都將落入本發(fā)明的保護范圍內。
權利要求
1、一種提高大整數Montgomery模乘運算速度的方法,其特征在于,其包括的步驟為步驟a將兩個大整數乘數X、Y分別拆分為高數位和低數位步驟b并行計算XhaYhb,XlaYlbr-n modM;步驟c計算的值,得到最終結果;其中M為大整數,r=2w為最小字處理單元,n為大整數M的字個數。
2、 根據權利要求1所述的提高大整數Montgomery模乘運算速度的方法,其 特征在于,所述步驟b中計算XA。i;/"/21-" mod M的步驟為步驟M1:取i二O;步驟 b12 :令 C=0,從 j = 0 到 j= "-「"/2,-1依次計算 (c,。 = rL/]+zjy.]*i^]+c; r[)] = &從j= "-「"/2,到j= "-1依次計算 (dr[刀+c; 71/] = &步驟bl3:令(dT["] + C; r["] = S; T["+ 1] = C; C = 0; w = r
*M'
mod 步驟 M4 :令(<^。 = 110] + *似'
,從 j=l 到 n陽l 依次計算 (C, 。 = r[乂] + m * M[刀+ C; 7T乂 -1] = &步驟bl5:令(c,s)-r["] + c; r["-1] = & r["] = r[" +1] + c;步驟bl6:如果/ = "-「"/2]-1,返回^0]…T[n — U;否則令,=,+ 1,執(zhí)行上述步 驟bl2;其中,i、 j、 C為變量,M為大整數,,=2^為最小字處理單元,n為大整數 M的字個凄t, M'[O] = AT1
modr。
3、 根據權利要求1所述的提高大整數Montgomery模乘運算速度的方法,其 特征在于,所述步驟b中計算^7,—「一mod M的步驟為步驟b21:令i二0;步驟 b22 :令 C=0,從 j = 0 到j= 「"/2]-l依次計算(c,。 = r[7']+xA。[7]*};w + c; r[)] = 1s;從j= 「"/2]到j = "-1依次計算 (c,s) = r[7]+c; r[7.] = &步驟b23:令(C,^r[w] + C; r["] = S; r["+l] = C; C = 0; m = r
* AT[O] mod步驟b24 : 令(C,>S) = r
+ m*M'
, 從j=l 到 j = n-l 依次計算 (C, <S) = 7U] +附*M[7] + C; r[) -1] = &步驟b25:令(C,^T[w] + C; = & r[w] = r[w + l] + C;步驟b26:如果/ = 「"/2]-1,返回710]…7111 — 1^否則令""l,執(zhí)行上述步驟b22;其中,i、 j、 C為變量,M為大整數,,=2^為最小字處理單元,n為大整數 M的字個數,M'[O] = M_1
modr。
4、根據權利要求1所述的提高大整數Montgomery模乘運算速度的方法,其 特征在于,所述步驟b中計算Z,。iV"-" modM的步驟為步驟b31:令i二0;步驟 b32 : 令 C=0,從 j = 0 到 j= 「"/2]-1依次計算 (c, s) = r[)]+x力。[y] [z.] + c; = &從)=「"/2]到—1;依次計算(c,。 = r[)] + C; 71/] = & 步驟b33:令(C,^71"] + C; r[w] = & r[w + l] = C; C = 0; m = T
*M'
mod r; 步驟 b34 : 令(C,S) = r
+ m*AT
, 從 j=l 到 j=n-l 依次計算 (C, 。 = r[刀+ w * M[刀+ C; 7U _ 1] = &步驟b35: (C,>S) = r["] + C; r["-l]"; r["] = T[" + l] + C; 步驟b36:如果/<「"/2,-1,則"/ + 1,執(zhí)行上述步驟b32; 步驟b37:令/ =「"/2,; 步驟b38:令C = 0;m = r
*M'
mod r ;步驟 b39 : 令(C,。 = r
+ m*M'
, 從 j=l至'J j=n-l 依次計算 (C, S) = r[刀+附* M[乂] + c; r[y -1] = &步驟b3A: (C,S) = r["] + C; r["-l] = S;= r[w +1] + C;步驟b3B:如果/〈w-l,則令/ = / + 1并#丸行上述步驟b38 ;否則返回r[o]…r[n-i];其中,i、 j、 C為變量,M為大整數,/^2w為最小字處理單元,n為大整數 M的字個凄史,M'[O] = M '
modr。
全文摘要
本發(fā)明為一種提高大整數Montgomery模乘運算速度的方法,其包括的步驟為步驟a將兩個大整數乘數X、Y分別拆分為高數位X<sub>ha</sub>=X/r<sup>「n/2</sup>,Y<sub>hb</sub>=Y/r<sup>n-「n/2</sup>,和低數位X<sub>la</sub>=X mod r<sup>「n/2</sup>,Y<sub>lb</sub>=Y mod r<sup>n-「n/2</sup>;步驟b并行計算X<sub>ha</sub>Y<sub>hb</sub>,X<sub>ha</sub>Y<sub>lb</sub>r<sup>「n/2-n</sup>mod M,X<sub>la</sub>Y<sub>hb</sub>r-<sup>-「n/2</sup>mod M,X<sub>la</sub>Y<sub>lb</sub>r<sup>-n</sup> mod M;步驟c計算(X<sub>ha</sub>Y<sub>hb</sub>+X<sub>ha</sub>Y<sub>lb</sub>r<sup>「n/2-n</sup> modM+X<sub>la</sub>Y<sub>hb</sub>r<sup>-「n/2</sup>mod M+X<sub>la</sub>Y<sub>lb</sub>r<sup>-n</sup> mod M)mod M的值,得到最終結果;其中M為大整數,r=2<sup>w</sup>為最小字處理單元,n為大整數M的字個數。
文檔編號G06F7/72GK101470598SQ20071030456
公開日2009年7月1日 申請日期2007年12月28日 優(yōu)先權日2007年12月28日
發(fā)明者瑤 丁, 張慶勝, 磊 王, 程登峰 申請人:航天信息股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1