1 200413954 (1) 玖、發明說明 【發明所屬之技術領域】 本發明係關於資訊處理方法,特別是例如 高的1C卡等之耐篡改裝置。 【先前技術】 在RSA之高速運算手法的CRT (Chinese Theory :中國餘數定理)運算方式中,在計算的 驟中,計算X mod p。第1圖係顯示CRT運算:ΐ 步驟。首先,對於以ρ還原之値,進行餘數幕 1 0 1 〇 ),對於以q還原之値,進行冪次餘數運寞 。最後,合成2個冪次餘數運算結果(1 0 3 0 ), 終的結果。在最初之以P還原之値的餘數冪次這 )及以q還原之値的冪次餘數運算(1 020 )的:* ,分別需要計算對於祕密指數P之餘數、對於i 之餘數。在計算冪次餘數上,藉由重複進行餘· 現。 在1010、1 020之冪次計算上,通常利用力[ 。所謂加法鏈係利用例如在計算Ζ = ΑΛ L時,將 開爲二進制,予以置換, L=L[n-l]*2A(n-l)+L[n-2]*2A(n-2) + 〜+L[l]*2Al+L[0]*2」 ,指數之加法成爲乘法,指數之乘法成爲冪次則 法則,將Ζ = ΑΛ L之計算置換爲: Z: = (-((AAL[n-l] Λ2 *((AAL[n-2] Λ 2 * ··· * (ΑΛ L[0]) 於機密性
Remainder 丨最初的步 ί式之處理 ;次運算( Ε ( 1 020 ) 而獲得最 【算(1010 t初步驟中 B密指數q J乘法而實 ]法鏈手法 指數L展 (式 1) —算之指數 (式2) (2) 200413954 ΑΛ L[i]在 L[i] = l 時,成爲 a,如爲 L[i] =1,在L[i] = 0時,如省略1之乘法,藉由以 L時之成爲1的位元數次的乘法和m -1次之平 以計算Α Λ L。 如以程式表現時,則成爲: Z=1 for ( i = n-1 ; i> = 〇 ; i + +) { w : =w*w; if ( L[i]= =1) then Z : =Z*A; else W := 在餘數乘法方式上’可分爲大大利用: Montgomery)餘數乘法,和不是如此之兩種。 第2圖係利用蒙哥馬利餘數乘法時之藉由 次餘數計算之處理流程。η係顯示儲存p上足 。首先,以2020求X對於Ρ的餘數。在蒙哥 法中,在乘算時,被乘上2Λ (-n) modP,所. 2Λη乘上操作數(operand)。以下,設R = 2 數乘上R時,也是利用蒙哥馬利餘數乘法。預 RΛ 2後,利用蒙哥馬利餘數乘法,乘於X m 0 d xR mod Ρ ( 2040 )。由於利用蒙哥馬利餘數乘 算之初期値,以1乘上R之R代替1。乘法之 數之最上位的位元各1位元予以取出,所以在 定表示最上位位元之位置的n-1 (2050)。由 =0 時,Α Λ 0 2進制表不 方計算,可 W* 1 * 衰哥馬利( 加法鏈的冪 夠之位兀長 馬利餘數乘 “預先將 Λ η。在操作 先計算 Ρ,獲得 法,所以運 處理係由指 計數器i設 指數上位位 •6- (3) (3)200413954 元依序調查是否立起1 ( 2060 ),如爲0,乘上意指1之 R ( 2070 ),如立起 1,於 W 乘上 xRmodP(=AR) (2080 )。乘上意指1之R的處理2070,不對計算結果 產生影響,所以在重視處理速度時,可以省略。1位元份 移動位元之位置計數器(2090 ),檢查是否到達最下位位 元(2100 ),在未達最下位位元時,將結果平方(21 10 ) ,對於指數之下一位元,由3060之處理開始重複處理。 在2100至最下位位元而處理結束時,爲了去除乘上2Λ η 之影響,所以乘上2 Λ ( -η )。在蒙哥馬利餘數乘法中, 計算與1之乘積時,係與乘上2Λ (-η)相等(3120)。 最後,結果在Ρ以上時(2130 ),減去Ρ ( 2140 )。在一 連串之處理中,2 0 2 0之餘數運算結果,如第3圖所示’ 以Ρ之倍數(3 0 1 0 )爲界,基於比Ρ大或者小,其値大爲 變動,有成爲攻擊點之可能性。 「圖4」係利用不是蒙哥馬利之餘數乘法,進行藉由 加法鏈之冪次餘數運算時的處理流程。將Ρ之位元長設爲 η。接著,首先在4020求X對於Ρ之餘數。與利用蒙哥馬 利餘數乘法時的處理相同,求得此對於Ρ之餘數的運算也 有成爲攻擊點之可能性。由於利用通常之餘數乘法’所以 運算之初期値設爲1,由最上位之位元各1位元取出’所 以在計數器i設定顯示最上位位元之位置的η· 1 ( 4040 ) 。由指數上位位元依序調查是否立起1( 4050 ),如立起 1,則對於W乘上X m 〇 d P ( = A ) ( 4 0 7 0 ) ’如位元値爲 〇,乘上意指1 (4060)。另外’由於乘上1之處理4060 -7- (4) 200413954 ,並不對計算結果產生影響,所以在重視處理速 以省略。在4070之處理中,x mod p之値被使 數,所以此也有成爲攻擊對象之可能性。將位元 下移動1位元(3 0 8 0 ),在未到達最下位時,將 (3 090 ),進行指數之下一位元的處理。在至最 處理結束時,該時間點的W成爲計算結果。 如上述般,在利用蒙哥馬利餘數乘法時,進 餘數乘法時,藉由P之餘數乘法結果在處理之最 要,有成爲攻擊點之可能性。 RS A密碼係標準用於認證或祕密金鑰之配送 ,在金融用途等,其之運算的安全性受到非常高 RSA密碼之高速運算手法雖然利用中國人餘數定 手法被廣爲利用,但是在其之最初的運算中,需 密質數P之餘數計算。此計算係將祕密質數P用 算,所以自古以來便是攻擊的對象。在藉由P之 的問題點爲,如第2圖所示般,在X爲p之倍 2010)的値x<kp中,X mod p与p,變成大的値 面,在x>xp時,xmodp^O,成爲小的値。xm 以P爲界,大爲變動,所以輸入X比祕密指數P ,有可以辨識爲電流値等之側通道資訊(sid< information)之危險性。在RSA密碼中,以大 現在,使用512位元程度之質數)p、q之積N 做因數分解爲安全性之根據,N作爲公開金鑰之 而公開給使用者。祕密質數P或者q如洩漏時, 度時,可 用於操作 之位置往 結果平方 下位爲止 行通常之 初都爲必 等的密碼 的重視。 理之計算 要藉由祕 於明的計 餘數計算 數附近( ,另一方 〇 d p之値 大或者小 5 channel 的質數( 無法容易 一部份, N/p可容 -8 - 200413954
易加以計算,所以藉由以公開金鑰e之(p _ 1 ) ( q- 1 )爲 除數之倒算,可以求得祕密金鑰d。倒算係可以藉由延伸 歐幾里德互除法而容易計算。本發明係關於高速且安全進 行適於C RT之餘數計算的計算方法及裝置。 【發明內容】 不直接計算X mod P,預先乘上 2Λ ( m + n ) mod p 或者2Λ (2n) modp,之後’乘上2Λ (-η)或者 2Λ ( -m ),以計算2Λ η mod ρ。ρ爲大的質數,所以經常 成爲奇數,與2的冪次經常互爲質數,所以 2A ( - m ) mod ρ 或者 2Λ (-n) mod ρ — 定存在。另外 ,2Λ n mod ρ之値即使在輸入x在ρ之附近時,也不會發 生依存於X和Ρ之大小關係的値之大的變化, 2Amx mod ρ之位元長成爲接近Ρ之位元長的値。因此, 不可能由洩漏資訊推算X和P之大小關係,可以防止祕密 金鑰的洩漏。在利用蒙哥馬利餘數乘法時,乘上2 Λ η之 形式,其原樣成爲蒙哥馬利格式,在以後之處理,可以利 用習知的處理流程。 在不利用蒙哥馬利餘數乘法時’在指數運算計算的最 後,乘上(2Λ (-η) ) Λ ( 2Λ η-1 ) modp,藉由補正乘 上2 Λ n m o d ρ之影響,可以獲得正確的結果。 再利用蒙哥馬利乘法以外的餘數乘法時,於進行乘法 和自乘後,乘上R/ (-2) modp。預先計算 RΛ (-2m) modp,最後’乘上 -9- (6) (6)200413954 RA (-(2Am) +1) modp 予以補正。 【實施方式】 第5圖係顯示利用蒙哥馬利餘數乘法時的本發明之一 貫施例。設πι爲輸入X之儲存所必要的位元長,η爲p之 儲存所必要之位元長。0$xSP*Q,所以一定是mgn。 首先,計算 U = 2aU — SQR = 2a ( 2 η ) U mod P ( 5 03 0 )。第 7圖顯示計算U — SQR = 2A ( 2i〇 U mod P之部份的詳細處 理流程。在第7圖中,雖顯示了 2AL*U mod P之計算步 驟,以L = 2n,可以利用第7圖之處理。U_SQR之位元長 係成爲m-2n或者n中的長的一方的位元長。5 040之計算 成爲· A_R= ( X*U 一 SQR + M*p ) /2Λ m (式 3) x<2Am,M<2Am 之故, A_R<U—SQR+p (式 4) ° P之位元長在n以下,所以A-R之位元長成爲 MAX ( m-2n、n)。此位元長在n以下時,需要: m-2n<n (式 5 ) m<3n (式 6 ) 。通常之情形下,2n<3n,所以A-R之位元長成 爲η °在進行5 05 0之處理上,需要5 040之處理結果成爲 η以下。在沒有滿足m<3n時,進行藉由第6圖所示之別 的實施例的方法。如以別的方式書寫5 〇 5 〇之處理時,雖 成爲 -10- (7) (7)200413954 (A-R + (-A,R*PA (-l)mod 2Λ η)*ρ)/2Λ n (式 7) ,但是由於Α_:Κ<2Λ 11,而且 (_A R*pA (-1) mod2An) <2 η’ 所以 (A-R + (_A一R*P〜(])m〇d 2Λ η)*ρ)/2Λ η <1+Ρ (式 8) 5 05 0之處理後的A__R —定成爲Ρ以下,可以η位元 長表現。另外,在5050中,A_R之値與Ρ成爲相等只在 X之値成爲P的倍數時。 以數學式表現5030至5050之處理時’ 成爲· A_R 三 χ*2Λ (2η)*2Λ (ιη)*2Λ (-m)*2(-n) mod P (式 9) 三 x * 2Λ ( 2n + m-m-n ) mod Ρ (式 10) 三 χ*2Λ n mod Ρ (式 1 1) 5 05 0以後之處理,與第3圖之3 05 0以後的處理相同 °x之値成爲ρ之倍數時,以第2圖中之2130、2140之 處理,在最終予以補正之。 第6圖係顯示利用蒙哥馬利餘數乘法時的本發明之別 的一貫施例。設m爲輸入x之儲存所必要的位元長,η爲 Ρ之儲存所必要之位元長。〇SxSP*Q,所以一定是m-n 。首先,設 L = n + m,依據第 7圖所示之流程,計算 U’ —SQR = 2a ( n + m ) u mod Ρ (6030)。在進行 6040 以後 之處理上’雖然需要U,_SQR之位元數在m以下,但是 U’-SQR 一定在m位元以下。在6050之處理中,雖爲: -11 - (8) (8)200413954 (A-R + (-A^R*PA (1 ) mod 2Am)*p)/2Am (式 12) ,但是由於 A_R<2An,而且(-A-R*〆(])mod 2Am) <2Λ m,所以 (A-R + (-A一R*P' (-Omod 2λ m)*P)/2〜m <1+p (式 13) 5〇6〇之處理後的A_R —定成爲P以下,可以n位元 長表現。另外,在605 0中,A_R之値與p成爲相等只在 X之値成爲p的倍數時。 以1個數學式表現6030至6050之處理時, 成爲: A_R = X * 2 Λ (n + m) * 2 Λ (m) * 2 Λ (-m) * 2 (-m) mod P (式 14) =x * 2Λ ( n + m + m-m-m ) mod P (式 15) ΞΧ*2Ληηΐ0(ΐΡ (式 16) 605 0以後之處理,與第3圖之3 05 0以後的處理相同 °X之値成爲P之倍數時,以第2圖中之2130、2140之 處理’在最終予以補正之。另外,與第5圖之實施例不同 ’不需要m<3n之條件。 胃7 Μ «示第5、第6圖所示實施例所必要的計算 2 Λ I^U mod p之實施例。第7圖之步驟係藉由下位位元起 之加法鍵’計算W : =2Λ L*R mod P。W之初期値係控制 在m位兀之形式,使之成爲We 2* ( 2Λ m) mod P之値 。以2進制袠現L時,在最上位以外的位元沒有1時,雖 可只以L次之餘數自乘計算而予以計算,但是在L最上 -12- (9) 200413954 位位元以外有成爲1之位元時,在中途需要進行乘算。因 此’準備顯示在L最上位以外的位元位置是否發現1之變 數mill ( 7005 ) 。7010之處理係P之最上位位元成爲與m 的最上位位元之位置相等而減去進行移位之値,以使之控 制在m位元之値用的處理。7020、7030、7040、7050之 處理係設W之最上位2位元爲〇之處理。此處理係進行 爲使最終的運算結果控制在η位元用。進行處理是否到達 最上位位元之檢查(7060),在到達時,檢查變數mu 1之 値(7 0 8 0 ),如爲1,在Y儲存相當於L之中途位元的結 果’對於W乘上 Y ( 7090 ),當成結果。在處理沒有到 達最上位位元時,進行L之最下位位元位置是否有1之檢 查(70 70 ),在有1時,在變數Y保存W之値。檢查 mul之値(7100 ),在最上位以外的位元開始見到1時, 將W之値帶入γ(7120),在mul設定1(7130) 。7120 之處理本來等於在Y帶入1,計算Y: =Y*W。另外,在 7 100之檢查中,已經在最上位以外的位元見到1時,以 蒙哥馬利餘數乘法進行R之餘數自乘計算(7 1 40 ),將L 往右移位1位元(7150),重複7060起之處理。 7 140之Υ*Υ*2Λ ( -m) mod p之計算係等於: (A* A + M*p ) / ( 2Λ m ) (式 17) 。此處, Μ = -Υ*Υ*(ρΛ („!) m〇d2Am<2Am (式 18) 。因此, (式 19) (Υ*Υ + Μ*ρ)/(2Λ m)<(Y*Y + 2A m*p)/(2A m) -13- (10) (10)200413954 另外,如設將γ儲存在m位元長之記憶體時的最上 位之成爲〇的位元數爲s時,則爲: Υ<2λ ( m-s ) (式 20 ) Υ< = 2λ (m-s) -1 (式 21) (Y*Y + 2Am*p)/(2Am)< = ((2A(m-s)-l)A2 + 2Am*p)/2Am (式 22) = 2A(m-2s)-2A(l-s) + 2A(-m) + p (式 23) <2Λ(m-2s)+p+l (式 24) 之故,7140之(Y*Y + M*P) / 2Am之運算結果爲··每進 行1次運算,最上位之〇的位元之數字成爲s[t+l]: = 2s[t] - 1。因此,在2Λ ( m-2s )比p大時,在t次計算後 ,由最上位起連續之0的位元數成爲s[0]* 2Λ (卜1), 如2Λ ( m - 2 s )比ρ小,位元長則由ρ決定。在8 0 2 0、 8030、8040、8050之處理中,最上位之2位元設定爲〇, 所以s[0] = 2,實行t次8140後之位元數成爲m_2A t或者 η。另外,t之次數爲t = l〇g2(L)之故,位元數成爲max (m-L 、 η) 。 第8圖係顯不利用通常之餘數乘法時的本發明之一實 施例。設m爲輸入X之儲存所必要之位元長,η爲Ρ之儲 存所必要之位元長。首先,依據第9圖之流程,計算 2Λ n mod Ρ 9設爲R(8020)。接著,對於輸入x乘上 R ( 8030)。最後計算進行補正用之R — ITOTAL ( 8040) ,此處理如P已\經確定,可以獨立於輸入値X而計算,所 以也可以預先計算後予以保存。在實際的計算中,首先, 依據「第10圖」之步驟計算2A(-n)m〇dP,當成 -14- (11) (11)200413954 R —INV,以R及R — INV爲基礎,依據第1圖之步驟,計 算(R — INV ) Λ ( 2Λ n-1 ) mod Ρ,當成 R_ITOTAL。由於 利用通常之餘數計算,所以運算的初期値W設爲1,在計 數器i設定顯示最上位位元之位置的η - 1 ( 8 0 5 0 )。由指 數上位位元依序調查是否立起1 ( 8 060 ),如立起1,則 對於W乘上xRmodP(=A —R) (4080),如位元値爲〇 ,乘上意指1之R ( 8 0 70 )。將位元之位置往下移動1位 元(8 0 9 0 ),檢查處理是否到達最下位位元而結束(8 1 0 0 ),在處理未到達最下位時,將結果平方(8 1 1 0 ),進行 指數之下一位元的處理。在8070、8080之處理中,與通 常之處理相比,R —定每次被多乘之故,所以處理至最下 位位址結束時,變成被多餘乘上ΙΙΛ ( 2Λ n-1 )。爲了去除 多餘乘上之RA ( 2Λ n-1 )的影響,最後乘上r_it〇TAL ( 8210)。 第9圖係在第8圖之實施例中的8 0 2 0中計算2Λ L mod Ρ處理的一實施例。在以2進制表現L時,於最上位 以外的位元沒有1時,雖可以L次之餘數自乘計算而予以 計算,但是在L最上位位元以外有成爲1之位元時,需要 在中途進行乘算。準備顯示是否在L之最上位以外的位元 位置發現1之變數mul,將其初期化爲0(9005)。接著 ,以2初期化R ( 90 1 0 )。進行處理是否到達最上位位元 時的檢查(9060),在到達時,檢查變數mul之値(9080 )’如爲1 ’在Y儲存相當於L之中途的位兀之結果,所 以對於R乘上γ( 9090 ),當成結果。在處理未達最上位 -15- (12) (12)200413954 位元時,進行L之最下位位元位置是否有1之檢查(9070 ),在發現時,保存在變數Y。檢查mul之値(9100), 在最上位以外之位元開始發現1時,將R之値帶入Y ( 9120),於mul設定1(9130) 。9120之處理本來等於將 1帶入Y,計算Y : =Y*R。另外,在9100之檢查中,於 最上位以外之位元已經在過去發現1時,對於Y之値乘 上現在的R之値(9110)。計算R之餘數自乘(9140) ,將L往右移位1位元份後(9150 ),再度回到由9060 開始之處理。
第10圖係在第8圖之實施例中的8040計算RJNV : =2Λ ( -n ) mod P之處理的一實施例。第10圖之步驟係 藉由由下位位元起之加法鏈以計算R_INV ·· =2Λ ( -L ) mod Ρ °以2進制表現L時,在最上位以外的位元沒有1 時’雖可只以L次之餘數自乘計算而予以計算,但是在L 最_h位位7C以外有成爲1之位元時,在中途需要進行乘算 。因此’準備顯示在L最上位以外的位元位置是否發現1 之變數mul,將其初期化爲〇 ( 1〇〇〇5 )。接著,以17/ 2 初期化R ( 1 〇〇丨〇 )。在初期化爲i / 2時,雖可以將1往 右移位1次’但是將1往右移位時,會成爲0,所以首先 ’加上P後,才進行往右移位。P之値爲大的質數,所以 一定成爲奇數。因此,1+P —定成爲偶數,可以往右移位 。接著’進行處理是否到達最上位位元時的檢查(1 0060 )’在到達時,檢查變數mul之値(10080),如爲1, 在Y儲存相當於L之中途的位元之結果,所以在r_INV -16- (13) (13)200413954 乘上R( 10090),當成結果。在處理未到達最上位位元 時,進行最上位以外之位元位置是否有1之檢查(1 0070 ),在發現時,保存於變數Y。檢查mul之値(9100 ), 在最上位以外之位元開始發現1時,將R之値帶入Y ( 9120),在mul設定1(9130) 。9120之處理本來等於將 1帶入Y,計算Y:=Y*R。另外,在9100之檢查中,於 最上位以外之位元已經在過去發現1時,對於Y之値乘 上現在的R之値(9110)。計算R之餘數自乘(9140) ,將L往右移位1位元份後(9150 ),再度回到由9060 開始之處理。 第 11圖係在第 8圖之實施例中的 8040中計算 R_ITOTAL : = ( R_INV ) Λ (2Λη-1) mod Ρ 之處理的一實 施例。運算方法係如式26所示,藉由在R_INVA ( 2Λ η ) 乘上R而進行。R_INVA ( 2Λ η )係藉由η次重複餘數自 乘運算而計算。 (R_INV)A(2An-l)mod Ρ二 R—ΙΝνΛ(2Λη)* R_INVA(-1) mod Ρ (式 25) -R_INVA (2Λ n)* R mod P (式 26) 首先,以R — INV初期化R —ITOTAL ( 1 1010 ),接著 ,將進行餘數自乘運算之次數η帶入變數i ( 1 1 020 ),將 R_I TOTAL之餘數自乘値帶入r_it〇TAL( 11030),由計 數器用變數i減去i ( 1 1 040 ),計數器變數i之値如比0 大(1 1 05 0 ),則重複由1 1〇3〇起之處理。最後,將R對 R_ ITOTAL進行餘數乘算之値帶入r_it〇TAL ( 11060), 送返結果。 -17- (14) (14)200413954 附記: 1 · 一種處理方法,其特徵爲:在除數N之計算上’ 對非操作數事先乘上冪次方與N互爲質數之値的値,在 計算後,藉由乘上對於與上述N互爲質數之値的冪次方 値之除數N的倒數而予以計算。 2 · —種處理方法,是針對在除數N之餘數計算上, 對非操作數事先乘上冪次方與N互爲質數之値的値,在 計算後,藉由乘上對於與上述N互爲質數之値的冪次方 値之除數N的倒數之處理方法,其特徵爲:除數N係比2 大的質數之積,使用2作爲與上述N互爲質數之値。 3 · —種資訊處理裝置,是針對具有蒙哥馬利餘數乘 法裝置,設P爲質數,對於x>P之X,在計算 X* ( 2Λ n) mod Ρ之資訊處理裝置,其特徵爲:設儲存 輸入値X所必要之位元長爲m,在將輸入値轉換爲 X * ( 2Λ n ) mod Ρ 時,計算 2Λ ( 2m + n ) mod P,或者事 先準備好,藉由蒙哥馬利餘數乘法裝置,計算 χ1=χ*2Λ (2m + n)*(2A(_m))mod Ρ = χ*2Λ(2Λη) mod Ρ,另外, 計算 x2: = x 1 * ( 2Λ ( -m ) ) mod P = x* ( 2Λη) mod P, 不用明的求得xmodP而可計算x* (2Λη) modP。 4 · 一種資訊處理方法,是針對以Ρ爲質數,對於 x>P之X,計算X* ( 2Λ n) mod Ρ之資訊處理方法,其特 徵爲:設除數爲Ρ,輸入値爲X,儲存除數Ρ所必要之充 分的位元數爲η,儲存輸入値X所必要之位元長爲m,在 -18- (15) (15)200413954 將輸入値轉換爲x* ( 2Λ n) mod Ρ時,計算 2 Λ ( 2m + n ) mod P,或者預先準備好,藉由冡哥馬利餘 數乘法,計算 Χ1=Χ*2Λ(2Μ + Ν)*(2Λ(-Μ))ΜΟϋ Ρ = Χ* 2Λ(Μ + Ν) MOD Ρ,另 外,計算 x2:=xl*(2A(-m))mod Ρ = χ*(2Λη) mod P,不用明 的求得xmodP而可計算x* (2Λη) modP。 5 . —種資訊處理裝置,是針對具有蒙哥馬利餘數乘 法裝置,設P爲質數,對於x>P之X,在計算 X* ( 2Λ n ) mod Ρ之資訊處理裝置,其特徵爲:設除數 爲Ρ,輸入値爲X,儲存除數Ρ所必要之充分的位元數爲 η,儲存輸入値X所必要之位元長爲m,在將輸入値轉換 爲 χ*(2Λη) mod P 時,計算 2Λ (m + 2n) mod P,或 者預先準備好,藉由蒙哥馬利餘數乘法裝置,計算 xl=x*2A(m + 2n)*(2A(-m))mod Ρ = χ*2Λ(2η) mod Ρ,另外, 計算 x2: = x 1 * ( 2Λ ( - η ) ) mod Ρ = χ* ( 2Λη) mod Ρ, 不用明的求得xmodP而可計算χ* (2Λη) modP。 6 · —種資訊處理方法,是針對以P爲質數,對於 x>P2 X,計算X* (2Λη) mod Ρ之資訊處理方法,其特 徵爲:設除數爲P,輸入値爲X,儲存除數ρ所必要之充 分的位元數爲η,儲存輸入値x所必要之位元長爲m,在 將輸入値轉換爲X * ( 2 Λ n ) m o d Ρ時,計算 2Λ ( m + 2n) m o d Ρ,或者預先準備好,藉由蒙哥馬利餘 數乘法,計算 xl=x*2A(m + 2n)*(2A(-m))m〇d Ρ = χ*2Λ(2η) mod Ρ,另外, -19- (16) (16)200413954 計算 x2: = xl *(2A(-n))mod Ρ = χ*(2Λη) mod P,不用明的求 得 xmodP 而可計算 x* (2Λη) modP。 7. 一種資訊處理裝置,是針對設除數爲P,儲存除 數P所必要之充分的位元數爲η,儲存輸入値X所必要之 位元長爲m,設指數爲d,各s位元取出冪次之指數,合 成每s位元之冪次運算結果,而進行XΛ d m 〇 d P之冪次餘 數運算的資訊處理裝置,其特徵爲:設各s位元取出之指 數的第i個之指數爲d[i]時,代替運算xA d[i]mod P,而 利用(2Λη) Λ (2As-l) *xAd[i] mod P 進行運算,在計 算(2Λη) Λ ( 2Λ η-1 ) *xAdmodP 後,乘上 2 Λ ( -η ) Λ ( 2Λ η- 1 ) modP,以計算 xAdmodP。 8 . —種資訊處理方法,是針對設除數爲Ρ,儲存除 數Ρ所必要之充分的位元數爲η,儲存輸入値X所必要之 位元長爲m,設指數爲d,各s位元取出冪次之指數,合 成每s位元之冪次運算結果,而進行xA d mod P之冪次餘 數運算的資訊處理方法,其特徵爲:設各s位元取出之指 數的第i個之指數爲d[i]時,代替運算xAd[i]mod P,而 利用(2Λη) Λ (2As-l) *xAd[i] mod P 進行運算,在計 算(2Λ η ) Λ ( 2Λ η-1 ) *χΛ d mod Ρ 後,乘上 2Λ ( - η ) Λ ( 2Λ η -1 ) modP,以計算 xAdmodP。 發明之效果 如依據本發明,在冪次餘數運算的CRT計算中,可 以不直接進行藉由祕密質數之輸入値的餘數計算而予以計 -20- (17) (17)200413954 算,所以難於一面改變輸入而一面觀測消耗電流等,以推 測祕密質數。「第1 2圖」係顯示藉由通例之方法的計算 時之X mod P的位元長及權重(在以2進制表現値時,成 爲1之位元的數字)。「第13圖」係顯示本發明之相當 於X mod P之χ*2Λη mod P之位元長及權重。在第12圖 中,雖然輸入資料之値和X mod P之間沒有顯現依存性, 但是在第13途中’不依存於輸入資料’位元長及權重成 爲—*定値,可以確認沒有顯現依存性。 【圖式簡單說明】 第1圖係通例之RSA用CRT運算方式之處理流程。 第2圖係利用蒙哥馬利餘數乘法時的通例之適於CRT 方式冪次餘數運算之處理流程。 第3圖係X和以祕密質數p進行X之餘數計算的結果 曲線。 第4圖係利用通常之餘數乘法時的通例之適於CRT 方式冪次餘數運算之處理流程。 第5圖係依據本發明之利用蒙哥馬利餘數乘法的安全 的餘數運算處理之一實施例。 第6圖係依據本發明之利用蒙哥馬利餘數乘法的安全 的餘數運算處理之別的一實施例。 第7圖係依據本發明之利用蒙哥馬利餘數乘法的安全 的餘數運算處理之部份處理一實施例° 第8圖係依據本發明之安全的冪次餘數運算處理的一 »21 - (18) (18)200413954 實施例。 第9圖係依據本發明之安全的冪次餘數運算處理的部 份處理一實施例。 第1 〇圖係依據本發明之安全的冪次餘數運算處理的 部份處理一實施例。 第1 1圖係依據本發明之安全的冪次餘數運算處理的 部份處理一實施例。 第1 2圖係通例之X和以祕密質數p進行X之餘數計 算的結果曲線圖。 第1 3圖係依據本發明之X和以祕密質數p進行X之 餘數計算的結果曲線圖。 -22-