亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

應用蒙哥馬利算法的冪剩余運算器的制作方法

文檔序號:6571006閱讀:303來源:國知局
專利名稱:應用蒙哥馬利算法的冪剩余運算器的制作方法
技術領域
本發(fā)明涉及在信息通信網(wǎng)絡、交通、金融、醫(yī)療、流通等領域中使用的信息的加密技術和解密技術中使用的冪剩余運算器,特別是涉及使用了蒙哥馬利(Montgomery)算法的冪剩余運算器。
背景技術
伴隨信息通信技術的發(fā)展,越來越重視確保信息網(wǎng)絡上的安全性(防止數(shù)據(jù)的盜用或破壞)。因此,大多采用信息的加密技術和解密技術,其應用領域不單停留于信息通信領域,而是正在擴展到交通、金融、醫(yī)療、流通等的身邊的領域。對于這種加密技術和解密技術,要求能根據(jù)簡單的原理來實現(xiàn)高度的安全性。
為了使這種技術的理解變得容易,首先說明信息的加密、解密的概念。在密碼的世界中,“非對稱密碼算法”從本質上來說,是優(yōu)良的。所謂非對稱密碼算法,是指用于加密密鑰與解密密鑰的算法不同、不能從其某一方“容易地計算”另一方的密碼。利用冪剩余運算(對某個數(shù)X進行幾次乘法運算并用N除后的余數(shù)的計算)的RSA(Rivest-Shamir-Adleman方案)密碼是典型的非對稱密碼算法。
用冪剩余運算基本上按下式(1)生成RSA密碼。式(1)意即XY除以N所得的余數(shù)。此外,在式(1)中,X是加密(解密)對象的明文,Y和N是加密(解密)用的密鑰。
XYmodN …(1)用該冪剩余運算,使信息的加密和解密簡便,而且,只要加長運算對象X、Y、N的位長,就可以使各密鑰的解讀變得困難。
但是,加長運算對象的位長,冪剩余運算需要的時間也長。因此,減少運算對象的位長較長的冪剩余運算的時間成為關鍵。
其次,以RSA密碼為例,說明用冪剩余運算的加密和解密的步驟。(1)RSA密碼的加密用下式(2)
C=MemodN …(2)解密用下式(3)M=CdmodN …(3)以上式中,M是成為加密對象的明文,C是已被加密的明文即密碼文。此外,式(2)中的e和N是加密密鑰,式(3)中的d和N是解密密鑰。以下的式(4)和式(5)之間有預定的關系N=p·q…(4)1≡e·dmod{LCM(p-1,q-1)}…(5)式中,「≡」表示左邊與右邊互為同余,「 LCM 」是最小公倍數(shù),p和q是互為素數(shù)的整數(shù),e和N是公開密鑰,d、p和q是秘密密鑰。
式(4)和式(5)都定義了密碼算法中的冪剩余運算的數(shù)值的條件。式(4)表示N是互為素數(shù)的大的素數(shù)p和q的積,由于p和q都是奇數(shù),當然,N就必須是奇數(shù)。式(5)表示用式(4)的p和q分別減1后的最小公倍數(shù)去除e和d的積e·d所得的余數(shù)為1。
在式(4)和式(5)的指定條件下,用式(2)對明文M進行加密,用式(3)對已被加密的明文(密碼文C)進行解密。其次,說明在加密、解密中使用的冪剩余運算方法。使整數(shù)e的二進制數(shù)展開為e=ek-1…e1e0,通過使用在以下的流程1中示出的迭代平方乘積法執(zhí)行A=MemodN的冪剩余運算。
(流程1)
beginA=1for i=k-1 to 0beginA=A2modN…(6)If ei=1 then A=A·MmodN…(7)endend在A中存儲的值為打算求出的冪剩余運算的解。
如上所述,如式(6)和式(7)中所示,其運算是以乘法運算和除法運算(mod計算)為基礎。乘法運算是對A×A或A×M的A賦以初始值為1。除法運算是用各自的乘法運算得到的值對modN(求出用N除所得的余數(shù)的運算)賦值。將該“乘法運算和除法運算”(A×AmodN、A×MmodN)作為一對運算,按照“e”的位值,進行重復的運算。即,從“e”的最高位開始到最低位的各位的內容,進行“乘法運算和除法運算”。
關于冪剩余運算,如上所示,反復進行基本的求余運算(mod計算)可以得到解,但其反復運算的次數(shù)多至幾百~幾千次,用軟件也能很好地進行處理。但是,用硬件來實現(xiàn)該求余數(shù)運算本身、即除法運算,必須有大規(guī)模的運算電路和復雜的處理程序。為此,希望有所改善。通常,由于e、d、M、N等使用了約1024位的大的整數(shù),故即使使用高速指數(shù)計算法,在1次的RSA運算中,也必須進行平均約1500次的多重精度乘法運算和余數(shù)計算。特別是,關于求余計算,提出了近似法、余數(shù)表方式、蒙哥馬利算法等多種高速化方法。
為了高速地處理以這樣的RSA密碼為代表的多種公開密鑰密碼中利用的冪剩余運算,要求每一次的求余計算的高速化。蒙哥馬利算法是高速地進行求余計算的算法。特別是,在乘法余數(shù)運算中,由于能用移位來簡化除法運算,故具有能高速地處理在公開密鑰密碼(RSA密碼等)中使用的冪剩余數(shù)運算的特征。
另一方面,根據(jù)中國剩余定理(又稱“孫子定理”),可以用復合數(shù)為模的求余運算來計算出以該復合數(shù)的互為素數(shù)的各素因數(shù)為模的余數(shù)。如果將其應用于1024位長RSA密碼處理,則作為實際上必須的硬件,不是1024位長的模N的冪剩余運算電路,而只是以512位長的整數(shù)(在此,相當于p和q)為模的運算電路。因此,可與硬件的小型化聯(lián)系在一起。
由于執(zhí)行作為冪剩余運算的基礎的求余運算(mod計算)的程序非常復雜,故如上所述,其運算電路變得大規(guī)?;?。因此,蒙哥馬利提出了不用前面那樣的一般的方法來進行求余運算(mod計算)、而是通過進行“乘法運算”和簡單的位串處理來得到解的解決方案。以下,簡單地說明蒙哥馬利提出的方法。說明作為實現(xiàn)求余運算高速化的一種方法的蒙哥馬利算法。
蒙哥馬利算法是基于這樣的事實模N(N>1)和與模N互素的基數(shù)R(R>N)的用法容許僅當T為被除數(shù),基數(shù)R為除數(shù)時進行TR-1modN的計算,其中,N、R、和T是整數(shù)。被除數(shù)T是滿足0≤T<R·N的數(shù)。R-1是基數(shù)R關于模N的倒數(shù)。還可以考慮滿足R·R-1-N·N’=1的整數(shù)N’(0≤R-1<N、0≤N’<R)。再者,對于基數(shù)R,若用2的冪,基數(shù)R的除法運算就可以用移位操作代替。因此,可實現(xiàn)T→TR-1mod(在被除數(shù)為T的TR-1mod)的計算的高速處理。
T→TR-1mod的算法MR(T)由下面的算法1給出。注意在算法1中已證明(T+m·N)/R必定整除。
(算法1)T→TR-1modN的算法Y=MR(T)由以下的方程給出M=(TmodR)·N′modR…(8)Y=(T+m·N)/R …(9)if Y≥N then Y=Y-NY<N then return Y對于單一的MR,只進行TR-1modN計算,而不求出余數(shù)TmodN。于是,為了求出余數(shù)TmodN,如以下所示那樣用MR(T)與預先求出的R2modN的積再次進行MR運算即可。
MR(MR(T)·(R2modN))=(TR-1modN)·(R2modN)·R-1modN=TR-1·R2·R-1modN=TmodN這樣,可求出余數(shù)TmodN。
按利用上述冪剩余運算的迭代平方乘積法(迭代平方法)的蒙哥馬利算法執(zhí)行的乘法余數(shù)運算方法,如下所示。從密鑰e高位開始進行檢索,在密鑰位的值為1的情況下,進行MR(X·Y)的蒙哥馬利乘法余數(shù)運算。
Y=Rr(Rr=R2modN(R=2k+2))X=MX=MR(X,Y)…(10)Y=MR(1·Y)…(11)for j=k to 1if ej==1 then Y=MR(X·Y)…(12)if j>1 then Y=MR(X·Y)…(13)endY=MR(1·Y)…(14)Y=YmodN…(15)式中,MR(X·Y)與MR(Y·X)相等,ej表示密鑰e的第j位(比特)。在512位長的整數(shù)的情況下,k=512,512位的冪剩余運算可利用514位的蒙哥馬利乘法余數(shù)運算和512位余數(shù)運算來實現(xiàn)。
用硬件實現(xiàn)的最佳基數(shù)W的逐次計算,可以求出蒙哥馬利乘法余數(shù)運算的結果P=MR(B·A),其方法如下。
W=2dN0′=N′modWP=0for j=0 to kM=(PmodW)·N0′…(16)P=((P+(AmodW)·B·W+M·N)/W)mod2k…(17)A=A/W…(18)end式中,d是依賴于硬件的正數(shù)數(shù)。因此,可以求出蒙哥馬利乘法余數(shù)運算結果P。用d=1的基數(shù)2的逐次計算來求出514位蒙哥馬利乘法余數(shù)運算結果P=MR(B·A),其方法如下。
N0′=N′mod2P=0for j=0 to 514M=(P mod 2)·N0′ …(19)P=((P+(Amod2)·B·2+M·N)/2)mod2154…(20)A=A/2…(21)end如上所述,為了實現(xiàn)冪剩余運算,以往采用了下述的方法在硬件方面,對于512位長的冪剩余運算使用蒙哥馬利法;在軟件方面,用中國剩余定理處理,用硬件實現(xiàn)的方法很多,實際上采用了各種各樣的方式。
但是,在現(xiàn)有的電路中,用圖8中示出的那樣的程序進行了處理。即,采用安裝了在512位長的冪剩余運算中使用蒙哥馬利法的電路的硬件,按原樣執(zhí)行了式(10)~(18)。例如,在ej==0時,跳過式(12)。另一方面,在式(17)中執(zhí)行了每次全部的計算。因此,需要復雜的處理程序,期望實現(xiàn)進一步的高速化。此外,由于希望有可減小電路規(guī)模、適合于LSI(大規(guī)模集成)化的電路,故必須盡可能簡化運算處理、削減整體的計算量,可謀求提高處理速度。

發(fā)明內容本發(fā)明是為了解決上述的課題而進行的,其目的在于提供能實現(xiàn)高速處理的冪剩余運算器。
按照本發(fā)明的某個方面的冪剩余運算器包含寄存器,保持對使進行蒙哥馬利乘法余數(shù)運算時的一方的自變量為2倍的值與余數(shù)的模進行了加法運算的值;蒙哥馬利乘法余數(shù)運算執(zhí)行部,與寄存器連接,參照在寄存器中已被保持的值,執(zhí)行蒙哥馬利乘法余數(shù)運算;以及冪剩余運算執(zhí)行部,與蒙哥馬利乘法余數(shù)運算執(zhí)行部連接,在與蒙哥馬利乘法余數(shù)運算執(zhí)行部之間進行數(shù)據(jù)的輸入輸出,執(zhí)行冪剩余運算。
通過在寄存器中保持在蒙哥馬利乘法余數(shù)運算中頻繁地使用的值,可高速地執(zhí)行蒙哥馬利乘法余數(shù)運算。
較為理想的是,冪剩余運算執(zhí)行部與用二進制數(shù)表示的冪指數(shù)的各位的值無關地在蒙哥馬利乘法余數(shù)運算執(zhí)行部中執(zhí)行蒙哥馬利乘法余數(shù)運算并執(zhí)行冪剩余運算。
與冪指數(shù)的各位的值無關地始終執(zhí)行蒙哥馬利乘法余數(shù)運算。因此,即使在將冪剩余運算器用于加密裝置和解密裝置的情況下,可確保抗時序攻擊的性能。
更為理想的是,冪剩余運算器還包含保持冪剩余運算執(zhí)行部中的運算模式的模式寄存器,冪剩余運算執(zhí)行部根據(jù)在模式寄存器中已被保持的值,判斷是否執(zhí)行基于用二進制數(shù)表示的冪指數(shù)的各位的值的蒙哥馬利乘法余數(shù)運算,并執(zhí)行蒙哥馬利乘法余數(shù)運算。
根據(jù)在模式寄存器中已被保持的值,判斷是否執(zhí)行基于用二進制數(shù)表示的冪指數(shù)的各位的值的蒙哥馬利乘法余數(shù)運算。因此,如果在測試時執(zhí)行基于用二進制數(shù)表示的冪指數(shù)的各位的值的蒙哥馬利乘法余數(shù)運算,在實際使用時與冪指數(shù)的各位的值無關地始終執(zhí)行蒙哥馬利乘法余數(shù)運算,則可縮短測試時間,而且可確??箷r序攻擊的性能。
更為理想的是,冪剩余運算執(zhí)行部根據(jù)用二進制數(shù)表示的冪指數(shù)的各位的值,判斷是否執(zhí)行蒙哥馬利乘法余數(shù)運算,并執(zhí)行蒙哥馬利乘法余數(shù)運算。
根據(jù)用二進制數(shù)表示的冪指數(shù)的各位的值,判斷是否執(zhí)行蒙哥馬利乘法余數(shù)運算,并執(zhí)行蒙哥馬利乘法余數(shù)運算。因此,有在出現(xiàn)1作為位的值之前的期間中預先知道蒙哥馬利乘法余數(shù)運算的結果的情況。通過在這樣的情況下跳過處理,可高速地進行處理。
更為理想的是,冪剩余運算執(zhí)行部包含對二進制數(shù)的位串進行加法運算的加法運算器,加法運算器包含將二進制數(shù)的位串分割為各個規(guī)定的位、在分割后的位串相互間進行加法運算的多個子加法運算器。
通過將加法運算器分割為子加法運算器來執(zhí)行流水線處理,可高速地進行加法運算。因此,可高速地執(zhí)行冪剩余運算。
更為理想的是,冪剩余運算器還包含與蒙哥馬利乘法余數(shù)運算執(zhí)行部和冪剩余運算執(zhí)行部連接的、供取出運算的一部分并執(zhí)行的電路。
通過取出在冪剩余運算時進行的各種運算并執(zhí)行,可實現(xiàn)多種加密處理。
通過參照附圖的后述的本發(fā)明的詳細的說明,本發(fā)明的上述和其它的目的、特征、方面和優(yōu)點會變得更加明白。
(四)附圖的簡單說明

圖1是示出冪剩余運算電路的硬件結構的框圖。
圖2是示出執(zhí)行在運算電路內設置的流水線處理的加法運算器的硬件結構的框圖。
圖3是冪剩余運算處理的流程圖。
圖4~圖7是示出信號的時序的時序圖。
圖8是現(xiàn)有的冪剩余運算處理的流程圖。
具體實施例方式參照圖1,本發(fā)明的第1實施例的冪剩余運算電路包含作為與外部總線的接口的I/F(接口)電路101;保持密鑰e的e寄存器102;保持進行蒙哥馬利變換的乘數(shù)Y的Y寄存器103;保持密鑰N的N寄存器104;保持蒙哥馬利變換運算時進行的2B+N的值的B2N寄存器105;保持明文X的X寄存器106;進行加密和解密用的運算電路107;保持運算結果P的P寄存器108;以及起到作為冪剩余運算執(zhí)行時的狀態(tài)機作用的冪剩余控制電路109。
冪剩余運算電路還包含起到作為蒙哥馬利乘法余數(shù)運算和余數(shù)運算的執(zhí)行時的狀態(tài)機作用的蒙哥馬利乘法余數(shù)、余數(shù)控制電路110;進行加法運算和減法運算的運算控制的加法運算、減法運算控制電路111;保持各種模式的模式寄存器112;保持指令的指令寄存器113;保持狀態(tài)的狀態(tài)寄存器114;用來進行各種寄存器與運算電路107之間的數(shù)據(jù)輸入輸出的內部總線115。
在進行冪剩余運算時,為了實現(xiàn)高速化,使用了蒙哥馬利法的乘法余數(shù)運算,但在進行該蒙哥馬利法的運算[P=MR(B·A)]之前,進行[2B+N]的計算,將其結果存儲在B2N寄存器105中。
說明蒙哥馬利法的MR(B·A)的運算操作。在此,考慮B=X、A=Y的情況。首先,求[2B+N]。進行[2B+N]的計算如下所述。運算電路107將0與在N寄存器104中已被保持的值進行加法運算,存儲在P寄存器108中。運算電路107使X寄存器106中保持的值為2倍,將該值與在P寄存器108中已被保持的值進行加法運算,寫入到P寄存器108中。蒙哥馬利乘法余數(shù)、余數(shù)控制電路110將P寄存器108中已被保持的值寫入到B2N寄存器105中。其次,按式(19)、(20)和(21)的運算重復執(zhí)行515次。
在計算蒙哥馬利乘法余數(shù)運算中的式(20)時,在Amod2==1和M==1的情況下,從B2N寄存器105讀出數(shù)據(jù),用運算電路107對經(jīng)內部總線115讀出的數(shù)據(jù)與在P寄存器108中已被存儲的值進行加法運算。此外,在Amod2==0和M==1的情況下,從N寄存器104讀出數(shù)據(jù),用運算電路107與在P寄存器108中已被存儲的值進行加法運算。在Amod2==0和M==0的情況下,執(zhí)行
的加法運算。通過使在內部總線115中流過的數(shù)據(jù)為0等來生成0。e寄存器102是保持密鑰e的寄存器,Y寄存器103是保持密鑰Y的寄存器,N寄存器104是保持模N的寄存器,X寄存器106是保持模X的寄存器,P寄存器108是保持在蒙哥馬利乘法余數(shù)運算的式(19)和(20)中出來的值P的寄存器。
參照圖2,說明在運算電路107中設置的執(zhí)行流水線處理的加法運算器。
該加法運算器中,將進行蒙哥馬利乘法余數(shù)運算的加法運算器的結構分割為多個子加法運算器,作成了減少加法運算器的進位的級數(shù)的結構。加法運算器包含子加法運算器內的進位電路(SubC電路)727~741;在子加法運算器內表示發(fā)生進位的可能性的進位電路(LookC電路)742~752;用來在子加法運算器間使進位傳輸?shù)倪M位電路(MainC電路)720和726;用來得到加法運算結果的進位電路(SlaveC電路)716~719和721~725;以及實際上進行加法運算處理的加法電路(adder)701~715。
進位電路(LookC電路)742~752,假定在低位的子加法運算器中發(fā)生了進位,進行位相互間的加法運算,判斷發(fā)生進位的可能性。
作為一例,說明執(zhí)行15位的流水線處理的加法運算器。
在15位的情況下,從低位開始,定為4+5+6=15的級的數(shù)目是適當?shù)摹J紫?,?級的子加法運算器內以普通的方式進行加法運算,檢測出進位,可得到加法運算結果。在5級的子加法運算器中,利用SlaveC電路和加法電路可得到包含來自4級的子加法運算器的進位在內的5級的加法運算結果。此外,以另外的方式同時在SubC電路中檢測出只在5級內的進位。此外,在LookC電路中,假定從低位開始發(fā)生了進位,檢測出進位信號。
然后,MainC電路720根據(jù)來自4級的子加法運算器的進位信號選擇來自SubC電路735和LookC電路745的信號的哪一個信號進位到下一個6級的子加法運算器上。同樣地在6級的子加法運算器中也得到加法運算結果。
例如,設想在4級的子加法運算器中進行[1111+1110]的加法運算的情況。在各位中的運算如下所述。
0位0+1=1 沒有進位1位1+1=0 有進位2位1+1+1(來自1位的進位)=1有進位3位1+1+1(來自2位的進位)=1有進位此時,從SubC電路730將「有進位」的信號供給MainC電路720。于是,此時MainC電路720將從低位的子加法運算器開始作為有進位而進行了加法運算的LookC電路742~746的進位作為5級的子加法運算器的進位輸出給6級的子加法運算器。相反,如果從SubC電路730將「沒有進位」的信號供給MainC電路720,則MainC電路720輸出SubC電路735的進位。
在沒有以這種方式作為子加法運算器來分割的情況下,由于14位的加法運算必須有來自0位的進位來進行加法運算,故需要14級的電路部分的時間,但如果分割為多個子加法運算器,則來自0位的進位用SubC電路727~730、MainC電路720、SlaveC電路721~725的10級部分的處理時間就可以。
例如,說明對

進行加法運算的情況。SubC電路727進行第0位相互間的加法運算(1+0)。將加法運算結果(1)供給加法電路701。此外,將進位(0)供給SubC電路728和加法電路702。加法電路701將從SubC電路727接受的值作為第0位的加法運算結果來輸出。
SubC電路728進行第1位的值(0和1)與來自第0位的進位(0)的加法運算(0+1+0)。將加法運算結果供給加法電路702。此外,將進位(0)供給SubC電路729和加法電路703。加法電路702對第0位的進位(0)與第2位的加法運算結果(1)進行加法運算,輸出第1位的加法運算結果(1)。同樣,在加法電路703~715中,進行著眼于與前面的位的進位的位的加法運算結果的加法運算。
LookC電路742假定在4級的子加法運算器中發(fā)生了進位,進行第4位的進位的計算。即,執(zhí)行第4位的值相互間的加法運算和與進位(1)的加法運算(0+1+1)。將運算的結果的進位供給LookC電路743。在LookC電路747中也進行同樣的處理。
LookC電路743執(zhí)行第5位的值與來自LookC電路742的進位的加法運算(0+1+1),將運算的結果的進位(1)供給LookC電路744。在LookC電路744~746和748~752中也進行同樣的處理。將LookC電路746的輸出供給MainC電路720。將LookC電路752的輸出供給MainC電路726。
SubC電路731進行第5位相互間的加法運算(0+1)。將加法運算結果(1)供給加法電路705和SlaveC電路716。此外,將進位(0)供給SubC電路732。在SubC電路736中也進行同樣的處理。
SubC電路732進行第6位相互間的加法運算和與第5位的進位(0)的加法運算(0+1+0)。將加法運算結果(1)供給加法電路706和SlaveC電路717。將進位(0)供給SubC電路733。同樣,在SubC電路733~735中,進行著眼于與前面的位的進位的位的值的加法運算。再有,將SubC電路735中的加法運算結果只供給加法電路709。將SubC電路735中的進位供給MainC電路720。在SubC電路736~741中也進行同樣的處理。
SlaveC電路716對第3位的進位(0)與第4位的加法運算結果(1)進行加法運算,將進位供給加法電路706和SlaveC電路717。在SlaveC電路717~719和721~725中也進行同樣的處理。
MainC電路720在SubC電路730輸出的前級的子加法運算器的進位為1的情況下,將LookC電路的輸出供給SlaveC電路721,在進位為0的情況下,將SubC電路735輸出的進位供給SlaveC電路721。在MainC電路726中也進行同樣的處理。
如以上已說明的那樣,進行15位的數(shù)據(jù)相互間的加法運算。即,在用SubC電路、LookC電路和MainC電路進行了計算后,用SlaveC電路和加法電路進行計算。這樣,經(jīng)過二階段來執(zhí)行加法運算處理。
在上例所舉的15位中,沒有發(fā)生太大的級數(shù)目的差,但在更大的位的加法運算器、例如130位中,在不分割的情況下,花費129級部分的處理時間,而在分割了的情況下,用30級部分的處理時間即可。此外,將用來求出來自到達6級的子加法運算器的進位的0位的進位的電路的級數(shù)定為5級(SubC電路727~730、MainC電路720的5級),將用來求出6級的子加法運算器內的進位的電路的級數(shù)定為6級(SubC電路736~741和LookC電路747~752這兩者都有6級)。通過做成這樣的結構,可做成即使在更大的位的加法運算器中也幾乎沒有級數(shù)目差別的結構。由此,對于時序等的電路設計變得容易,具有也可減小電路規(guī)模的效果。
再有,在130位的流水線的加法運算器中,利用4級、5級、6級、7級、8級、9級、10級、11級、12級、13級、14級、15級和16級的子加法運算器來構成加法運算器是適當?shù)摹?br>
圖3是冪剩余運算處理的流程圖。圖4是示出信號的時序的時序圖。
以往,在使用蒙哥馬利法的乘法余數(shù)運算進行冪剩余運算的情況下,在檢索密鑰e的位且ej==1的情況下,執(zhí)行式(12)的[Y=MR(X·Y)],在ej==0的情況下,跳過即不執(zhí)行式(12)[Y=MR(X·Y)]。在本實施例中,與ej的值無關地始終執(zhí)行式(12)的[MR(X·Y)]。在使式(12)的運算結果存儲在Y寄存器103中時,檢驗ej的值301,在ej==1的情況下,輸出Y寄存器寫入信號304,將運算結果寫入到Y寄存器103中,在ej==0的情況下,不輸出Y寄存器寫入信號304,不將運算結果寫入到Y寄存器103中。這樣,通過始終執(zhí)行式(12),可使冪剩余運算時間為恒定。MR(X·Y)運算信號302表示“H”時在運算中。Y寄存器寫入信號303表示“H”時將數(shù)據(jù)寫入到Y寄存器103中。
如上所述,由于始終執(zhí)行式(12)的運算,故運算時間與密鑰的值無關,是恒定的。因此,具有可確保抗時序攻擊的性能的效果。再有,所謂抗時序攻擊的性能,是指著眼于處理時間隨密碼文、密鑰的長度而變化的情況來進行密碼的解讀。
在冪剩余運算器中包含冪剩余控制電路109、蒙哥馬利乘法余數(shù)、余數(shù)控制電路110和加法運算、減法運算控制電路111。因此,通過單獨或組合起來使用這些控制電路,可獨立地執(zhí)行蒙哥馬利乘法余數(shù)運算、余數(shù)運算、存儲運算、加法運算、減法運算、附加條件的加法運算、附加條件的減法運算等各種運算。
這樣,通過能獨立地執(zhí)行構成冪剩余運算的各種運算,可進行RSA密碼以外的各種密碼的運算。此外,在冪剩余運算器因某種原因不工作的情況下,通過獨立地執(zhí)行各種運算,可查明不工作的原因。
如以上所說明的那樣,在本實施例中,通過設置保持頻繁地使用的[2B+N]的結果的B2N寄存器105,可謀求蒙哥馬利乘法余數(shù)運算的高速化和運算電路的簡化。
本發(fā)明的第2實施例的冪剩余運算器具有與第1實施例的冪剩余運算器同樣的硬件結構。因此,在此不重復進行其詳細的說明。
圖5是示出第2實施例中的信號的時序的時序圖。在本實施例中,通過在模式寄存器112中設定規(guī)定的值,可使冪剩余運算的執(zhí)行方法不同。
在跳過模式信號401為“H”的情況下,在ej==0時,不運算式(12),只運算式(13)[Y=MR(Y·Y)]。在跳過模式信號401為“L”的情況下,進行與第1實施例同樣的工作。
如上所述,由于能設定跳過式(12)的運算的模式,故可謀求縮短測試時間。
本發(fā)明的第3實施例的冪剩余運算器具有與第1實施例的冪剩余運算器同樣的硬件結構。因此,在此不重復進行其詳細的說明。
圖6是示出第3實施例中的信號的時序的時序圖。
如果用通常的方法進行冪剩余運算,則式(11)的運算結果為下式,Y=MR(1·Y)=1·R2·R-1modN=RmodN從最初的j=k開始到ej==0之間,如條件式那樣,在式(12)中Y的值不變化。因此,如果只考慮式(13)的運算,則成為下式,Y=MR(Y·Y)=RmodN·RmodN·R-1modN=R·R·R-1modN=RmodN運算結果是相同的。如上所述,在ej==1下,對式(12)[Y=MR(X·Y)]進行運算,在Y的值發(fā)生變化之前,即使對式(13)[Y=MR(Y·Y)]進行運算,Y的值也不變化。于是可知,在ej==1之前,即使不執(zhí)行式(12)和式(13)的運算也沒有關系。
通常,為了使運算時間為恒定,執(zhí)行了全部的運算。但通過在模式寄存器112中設定值,使搜索模式信號501為“H”,在重復運算(式(12)和式(13))中,在ej==1之前,可不執(zhí)行式(12)和式(13)的運算而只執(zhí)行[j-1]的運算。這樣,設置了檢驗ej是否==1的模式。
如上所述,由于可設定跳過式(12)和式(13)的運算的模式,故具有可謀求根據(jù)密鑰e的值而大幅度地縮短測試時間的效果。
本發(fā)明的第4實施例的冪剩余運算器具有與第1實施例的冪剩余運算器同樣的硬件結構。因此,在此不重復進行其詳細的說明。
圖7是示出第4實施例中的信號時序的時序圖。
在本實施例中,可在模式寄存器112中設定在第2實施例中已說明的跳過模式和在第3實施例中已說明的搜索模式這兩者的模式。
例如,在設定了兩者的模式的情況下,在ej==1之前,不執(zhí)行式(12)和式(13)的運算。在一旦ej==1之后,對式(12)和式(13)都進行運算。其后,故根據(jù)ej的值,在ej==0時,跳過式(12),只執(zhí)行式(13)。此外,在ej==1時,執(zhí)行式(12)和式(13)兩者的運算。
如以上所說明的那樣,通過在模式寄存器112中設定跳過模式和搜索模式這兩者的模式,可謀求比第2實施例或第3實施例更加縮短測試時間。
按照本發(fā)明,通過在寄存器中保持在蒙哥馬利乘法余數(shù)運算中頻繁地使用的值,可高速地執(zhí)行蒙哥馬利乘法余數(shù)運算。
以上,參照附圖詳細地說明了本發(fā)明,但這些說明始終是例示性的,而不是在任何意義上來限定本發(fā)明,本發(fā)明的要旨和范圍只由后附的權利要求書來限定,包含與權利要求的范圍均等的意義和范圍內的全部的變更。
權利要求
1.一種冪剩余運算器,其特征在于,包含寄存器,保持對使進行蒙哥馬利乘法余數(shù)運算時的一方的自變量為2倍的值與余數(shù)的模進行了加法運算的值;蒙哥馬利乘法余數(shù)運算執(zhí)行部,與上述寄存器連接,參照在上述寄存器中已被保持的值,執(zhí)行蒙哥馬利乘法余數(shù)運算;以及冪剩余運算執(zhí)行部,與上述蒙哥馬利乘法余數(shù)運算執(zhí)行部連接,在與上述蒙哥馬利乘法余數(shù)運算執(zhí)行部之間進行數(shù)據(jù)的輸入輸出,執(zhí)行冪剩余運算。
2.如權利要求1中所述的冪剩余運算器,其特征在于上述冪剩余運算執(zhí)行部與用二進制數(shù)表示的冪指數(shù)的各位的值無關地在蒙哥馬利乘法余數(shù)運算執(zhí)行部中執(zhí)行蒙哥馬利乘法余數(shù)運算并執(zhí)行冪剩余運算。
3.如權利要求2中所述的冪剩余運算器,其特征在于還包含保持冪剩余運算執(zhí)行部中的運算模式的模式寄存器,上述冪剩余運算執(zhí)行部根據(jù)在上述模式寄存器中已被保持的值,判斷是否執(zhí)行基于用二進制數(shù)表示的冪指數(shù)的各位的值的蒙哥馬利乘法余數(shù)運算,并執(zhí)行蒙哥馬利乘法余數(shù)運算。
4.如權利要求2中所述的冪剩余運算器,其特征在于上述冪剩余運算執(zhí)行部根據(jù)用二進制數(shù)表示的冪指數(shù)的各位的值,判斷是否執(zhí)行蒙哥馬利乘法余數(shù)運算,并執(zhí)行蒙哥馬利乘法余數(shù)運算。
5.如權利要求2中所述的冪剩余運算器,其特征在于上述冪剩余運算執(zhí)行部包含對二進制數(shù)的位串進行加法運算的加法運算器,上述加法運算器包含將二進制數(shù)的位串分割為各個規(guī)定的位、在分割后的位串相互間進行加法運算的多個子加法運算器。
6.如權利要求1中所述的冪剩余運算器,其特征在于還包含保持冪剩余運算執(zhí)行部中的運算模式的模式寄存器,上述冪剩余運算執(zhí)行部根據(jù)在上述模式寄存器中已被保持的值,判斷是否執(zhí)行基于用二進制數(shù)表示的冪指數(shù)的各位的值的蒙哥馬利乘法余數(shù)運算,并執(zhí)行蒙哥馬利乘法余數(shù)運算。
7.如權利要求6中所述的冪剩余運算器,其特征在于上述冪剩余運算執(zhí)行部根據(jù)用二進制數(shù)表示的冪指數(shù)的各位的值,判斷是否執(zhí)行蒙哥馬利乘法余數(shù)運算,并執(zhí)行蒙哥馬利乘法余數(shù)運算。
8.如權利要求6中所述的冪剩余運算器,其特征在于上述冪剩余運算執(zhí)行部包含對二進制數(shù)的位串進行加法運算的加法運算器,上述加法運算器包含將二進制數(shù)的位串分割為各個規(guī)定的位、在分割后的位串相互間進行加法運算的多個子加法運算器。
9.如權利要求6中所述的冪剩余運算器,其特征在于還包含與上述蒙哥馬利乘法余數(shù)運算執(zhí)行部和上述冪剩余運算執(zhí)行部連接的、取出運算的一部分并執(zhí)行的電路。
10.如權利要求1中所述的冪剩余運算器,其特征在于上述冪剩余運算執(zhí)行部根據(jù)用二進制數(shù)表示的冪指數(shù)的各位的值,判斷是否執(zhí)行蒙哥馬利乘法余數(shù)運算,并執(zhí)行蒙哥馬利乘法余數(shù)運算。
11.如權利要求10中所述的冪剩余運算器,其特征在于上述冪剩余運算執(zhí)行部包含對二進制數(shù)的位串進行加法運算的加法運算器,上述加法運算器包含將二進制數(shù)的位串分割為各個規(guī)定的位、在分割后的位串相互間進行加法運算的多個子加法運算器。
12.如權利要求10中所述的冪剩余運算器,其特征在于還包含與上述蒙哥馬利乘法余數(shù)運算執(zhí)行部和上述冪剩余運算執(zhí)行部連接的、取出運算的一部分并執(zhí)行的電路。
13.如權利要求1中所述的冪剩余運算器,其特征在于上述冪剩余運算執(zhí)行部包含對二進制數(shù)的位串進行加法運算的加法運算器,上述加法運算器包含將二進制數(shù)的位串分割為各個規(guī)定的位、在分割后的位串相互間進行加法運算的多個子加法運算器。
14.如權利要求13中所述的冪剩余運算器,其特征在于還包含與上述蒙哥馬利乘法余數(shù)運算執(zhí)行部和上述冪剩余運算執(zhí)行部連接的、取出運算的一部分并執(zhí)行的電路。
15.如權利要求1中所述的冪剩余運算器,其特征在于還包含與上述蒙哥馬利乘法余數(shù)運算執(zhí)行部和上述冪剩余運算執(zhí)行部連接的、取出運算的一部分并執(zhí)行的電路。
全文摘要
本發(fā)明的課題是一種冪剩余運算電路,它包含:作為與外部總線的接口的I/F(接口)電路101;保持密鑰e的e寄存器102;保持進行蒙哥馬利變換的乘數(shù)Y的Y寄存器103;保持密鑰N的N寄存器104;保持蒙哥馬利變換的運算時進行的2B+N的值的B2N寄存器105;保持明文X的X寄存器106;進行加密和解密運算的運算電路107;保持運算結果P的P寄存器108;起到作為冪剩余運算執(zhí)行時的狀態(tài)機的作用的冪剩余控制電路109;起到作為蒙哥馬利乘法余數(shù)運算和余數(shù)運算的執(zhí)行時的狀態(tài)機的作用的蒙哥馬利乘法余數(shù)、余數(shù)控制電路110;以及進行加法運算和減法運算的運算控制的加法運算、減法運算控制電路111。
文檔編號G06F7/60GK1368674SQ0114085
公開日2002年9月11日 申請日期2001年9月21日 優(yōu)先權日2001年1月30日
發(fā)明者朝見和生 申請人:三菱電機株式會社, 三菱電機系統(tǒng)Lsi設計株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1