專利名稱:一種模乘運(yùn)算電路和一種運(yùn)用該模乘運(yùn)算電路的加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及RSA加密技術(shù),尤其涉及一種模乘運(yùn)算電路和一種運(yùn)用該模乘運(yùn)算電路的加密方法。
背景技術(shù):
信息時(shí)代的飛速發(fā)展,給人們帶來(lái)了新的生活方式,也給人們帶來(lái)了信息安全的觀念。公開密鑰密碼體制是現(xiàn)代密碼學(xué)的最重要的發(fā)明和進(jìn)展,其中,RSA公鑰密碼算法是目前比較安全且使用最廣泛的一種加密算法,主要應(yīng)用于智能IC卡和網(wǎng)絡(luò)安全產(chǎn)品。
RSA是一種公開密鑰機(jī)理的加密算法。所謂公開密鑰,就是每個(gè)用戶擁有兩個(gè)密碼,一個(gè)公開(e),一個(gè)保密(d)。對(duì)明文加密,可以使用其中任一密碼,但解密必須使用另一個(gè)密碼。加密/解密算法是公開的,但是算法是不可逆的。
RSA算法的加密過程為C=ME(modN),解密過程為M=CD(modN)。其中,M為明文,即待加密的數(shù)據(jù),C為密文,即加密以后的數(shù)據(jù),E為加密密鑰,D為解密密鑰,N為模數(shù),N越大,運(yùn)算過程越復(fù)雜,加密速度越慢,但同時(shí)破譯也就越困難。
RSA算法之所以具有安全性,是基于數(shù)論中的一個(gè)特性事實(shí)即將兩個(gè)大的質(zhì)數(shù)合成一個(gè)大數(shù)很容易,而相反的過程則非常困難。在當(dāng)今技術(shù)條件下,當(dāng)n足夠大時(shí),為了找到d,欲從n中通過質(zhì)因子分解試圖找到與d對(duì)應(yīng)的p、q是極其困難甚至是不可能的。由此可見,RSA的安全性是依賴于作為公鑰的大數(shù)n的位數(shù)長(zhǎng)度的。為保證足夠的安全性,一般認(rèn)為現(xiàn)在的個(gè)人應(yīng)用需要用384或512比特位的n,公司需要用1024比特位的n,極其重要的場(chǎng)合應(yīng)該用2048比特位的n。
RSA的加密過程,即C=ME(modN),就是一系列的模乘運(yùn)算。M為u位二進(jìn)制整數(shù)(mu-1mu-2…m1m0)2,即待加密的數(shù)據(jù),N為u位二進(jìn)制整數(shù)(nu-1nu-2…n1n0)2,即模數(shù),E為u位二進(jìn)制整數(shù)(eu-1eu-2…e1e0)2,為加密密鑰,其算法如下<pre listing-type="program-listing"> ME(M,E,N)<!-- SIPO <DP n="1"> --><dp n="d1"/> { C=1; P=M mod N; for i=0 to u-1 do { if(ei=1) C=P*C(mod N); P=P*P(mod N); } return C; }</pre>其中大數(shù)位數(shù)往往多達(dá)512bit或更多,運(yùn)算量極大,因此,解決模乘運(yùn)算即成為RSA加密的核心問題。
現(xiàn)有技術(shù)中常用到兩種改進(jìn)的蒙哥馬利(Montgomery)算法,基為32和基為2的算法。
基為32的算法如下<pre listing-type="program-listing"> MM(X,Y,M) { P0=0; for i=0 to 31 do { Ti=xi*Y; qi=(Pi+Ti)*m0’(mod r); Pi+1=(Pi+Ti+qi*M)/r; } if(P32>M) P32=P32-M; Return P32; }</pre>
r=32,m0’為M的低32bit關(guān)于232的逆元。若算法的基為2時(shí),r=2,m0’=1。
基為2的算法如下<pre listing-type="program-listing"> MM(X,Y,M) { P=0 for i=0 to 1023 do { P=P+xi*Y if P
=1 then P=P+M P=P div 2 } if(P>M) P=P-M Return P }</pre>可見,當(dāng)我們令基為2時(shí),算法得到了很大的簡(jiǎn)化,避免了采用基為32時(shí)逆元的的求解。但是現(xiàn)有技術(shù)中使用基為2的改進(jìn)的蒙哥馬利算法的模乘運(yùn)算電路存在速度慢,面積大的缺點(diǎn)。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種模乘運(yùn)算電路和一種運(yùn)用該模乘運(yùn)算電路的加密方法,模乘運(yùn)算采用基為2的改進(jìn)的蒙哥馬利算法,電路采用處理單元局部互連的脈動(dòng)陣列結(jié)構(gòu)。
為了達(dá)到上述目的,辦法明采用如下技術(shù)方案本發(fā)明的模乘電路包括512個(gè)基本運(yùn)算電路,排成32列16行的矩陣;基本運(yùn)算電路包括,兩個(gè)多路選擇器,兩個(gè)一位加法器,多路選擇器1的輸入為被乘數(shù)Y的第j位Y[j]、0、乘數(shù)X的第i位X[i],其輸出連接到一位加法器1的輸入,多路選擇器2的輸入為模M的第j位M[j]、0、Ip
,其輸出連接到一位加法器2的輸入,一位加法器1的進(jìn)位輸入為cp1_in,另一個(gè)輸入為部分積P的第j位P[j],其輸出連接到一位加法器2的輸入,進(jìn)位輸出為cp1_out,一位加法器2的進(jìn)位輸入為cp2_in,其結(jié)果輸出到Po[j],進(jìn)位輸出為cp2_out;所述32列16行矩陣的最右側(cè)一列的16個(gè)基本運(yùn)算電路的加法器進(jìn)位輸入為cp1
,cp2
,最左側(cè)一列的16個(gè)基本運(yùn)算電路的加法器進(jìn)位輸出為cp1[31,i],cp2[31,i],其余基本運(yùn)算電路的進(jìn)位輸入為其右側(cè)的基本運(yùn)算電路的進(jìn)位輸出;在同一行中的32個(gè)基本運(yùn)算電路的多路選擇器2的輸入Ip
是相同的,都是該行最右側(cè)的基本運(yùn)算電路中的一位加法器1的輸出;除第1行的32個(gè)基本運(yùn)算電路以外,每一行的基本運(yùn)算電路的輸入P[j]是上一行的基本運(yùn)算電路的輸出Po[j-1]。
本發(fā)明的運(yùn)用該模乘運(yùn)算電路的加密方法,計(jì)算乘數(shù)X與被乘數(shù)Y的模乘,運(yùn)用公式X*YmodM,X、Y、M都是n位的二進(jìn)制數(shù),包括以下步驟1)取出X的第1位X0,作為所述模乘電路第1行的32個(gè)基本運(yùn)算電路的輸入X[i];2)第1行最右側(cè)的基本運(yùn)算電路輸入P[j]、Y[j]、M[j]、cp1_in、cp2_in后,該基本運(yùn)算電路計(jì)算得到Ip
、cp1_out、cp2_out、Po[j],Ip
輸入到該行的32個(gè)基本運(yùn)算電路的Ip
,cp1_out、cp2_out輸出到該基本運(yùn)算電路的左側(cè)的一個(gè)基本運(yùn)算電路,Po[j]輸出到下一行的[j-1]列基本運(yùn)算電路;3)第1行的32個(gè)基本運(yùn)算電路按從右到左的順序依次完成計(jì)算,得到X0與Y的前32位數(shù)的乘積,將第1行最左側(cè)的基本運(yùn)算電路計(jì)算所得的cp1_out、cp2_out作為輸入在輸入到第1行最右側(cè)的基本運(yùn)算電路中,進(jìn)行X0與Y的下32位數(shù)的模乘運(yùn)算;4)重復(fù)步驟2)和步驟3)(n/32)*33次以后,完成X0與n位二進(jìn)制數(shù)Y的模乘運(yùn)算;5)步驟4)得到的結(jié)果Po[j]作為第2行的基本運(yùn)算電路的P[j-1]的輸入,取出X的第2位X1作為所述模乘電路第2行的32個(gè)基本運(yùn)算電路的輸入X[i];6)類似所述步驟2)、3)、4),完成X1與n位二進(jìn)制數(shù)Y的模乘運(yùn)算;7)類似所述步驟1)、2)、3)、4),完成X0到X15與n位二進(jìn)制數(shù)Y的模乘運(yùn)算;8)重復(fù)步驟7)n/16次以后,完成n位二進(jìn)制數(shù)X和n位二進(jìn)制數(shù)Y的一次模乘運(yùn)算。
Xi與Y的模乘運(yùn)算中計(jì)算得到的Po[j]直接作為Xi+1中的P[j-1]的輸入,不必等到Xi與Y的模乘運(yùn)算全部完成。
圖1是本發(fā)明的基本運(yùn)算電路的電路原理圖。
圖2是本發(fā)明的基本運(yùn)算電路的電路圖。
圖3是本發(fā)明的模乘電路的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖進(jìn)一步說明本發(fā)明的技術(shù)方案,本發(fā)明提供一種模乘運(yùn)算電路和一種運(yùn)用該模乘運(yùn)算電路的加密方法,模乘運(yùn)算采用基為2的改進(jìn)的蒙哥馬利算法,電路采用處理單元局部互連的脈動(dòng)陣列結(jié)構(gòu)。
本發(fā)明的模乘運(yùn)算電路包括512個(gè)基本運(yùn)算電路,排成32列16行的矩陣;基本運(yùn)算電路包括,如圖1所示,兩個(gè)多路選擇器101和102,兩個(gè)一位加法器103和104,多路選擇器101的輸入為被乘數(shù)Y的第j位Y[j]、0、乘數(shù)X的第I位X[i],輸出到一位加法器103,多路選擇器102的輸入為模M的第j位M[j]、0、Ip
,輸出到一位加法器104,一位加法器103將多路選擇器101的輸出和部分積P的第j位P[j]相加,進(jìn)位輸入為cp1_in,結(jié)果輸出到一位加法器104,進(jìn)位輸出為cp1_out,一位加法器104將一位加法器103和多路選擇器102的輸出相加,進(jìn)位輸入為cp2_in,結(jié)果輸出到Po[j],進(jìn)位輸出為cp2_out;所述32列16行矩陣,如圖3所示,最右側(cè)一列的16個(gè)基本運(yùn)算電路的加法器進(jìn)位輸入為cp1
,cp2
,最左側(cè)一列的16個(gè)基本運(yùn)算電路的加法器進(jìn)位輸出為cp1[31,i],cp2[31,i],其余基本運(yùn)算電路的進(jìn)位輸入為其右側(cè)的基本運(yùn)算電路的進(jìn)位輸出;在同一行中的32個(gè)基本運(yùn)算電路的多路選擇器102的輸入Ip
是相同的,都是該行最右側(cè)的基本運(yùn)算電路中的一位加法器103的輸出;除第1行的32個(gè)基本運(yùn)算電路以外,每一行的基本運(yùn)算電路的輸入P[j]是上一行的基本運(yùn)算電路的輸出Po[j-1]。
32列16行的矩陣,除第1行的32個(gè)基本運(yùn)算電路以外,每一行的基本運(yùn)算電路的輸入P[j]是上一行的基本運(yùn)算電路的輸出Po[j-1],矩陣排列為一菱形。
本發(fā)明的運(yùn)用該模乘運(yùn)算電路的加密方法,計(jì)算X與Y的模乘,運(yùn)用公式X*YmodM,X、Y、M都是n位的二進(jìn)制數(shù),包括以下步驟1)取出X的第1位X0,作為模乘電路第1行的32個(gè)基本運(yùn)算電路的輸入X[i];2)第1行最右側(cè)的基本運(yùn)算電路輸入P[j]、Y[j]、M[j]、cp1_in、cp2_in后,該基本運(yùn)算電路計(jì)算得到Ip
、cp1_out、cp2_out、Po[j],Ip
輸入到該行的32個(gè)基本運(yùn)算電路的Ip
,cp1_out、cp2_out輸出到該基本運(yùn)算電路的左側(cè)的一個(gè)基本運(yùn)算電路,Po[j]輸出到下一行的[j-1]列基本運(yùn)算電路;3)第1行的32個(gè)基本運(yùn)算電路按從右到左的順序依次完成計(jì)算,得到X0與Y的前32位數(shù)的乘積,將第1行最左側(cè)的基本運(yùn)算電路計(jì)算所得的cp1_out、cp2_out作為輸入在輸入到第1行最右側(cè)的基本運(yùn)算電路中,進(jìn)行X0與Y的下32位數(shù)的模乘運(yùn)算;4)重復(fù)步驟2)和步驟3)(n/32)*33次以后,完成X0與n位二進(jìn)制數(shù)Y的模乘運(yùn)算;5)步驟4)得到的結(jié)果Po[j]作為第2行的基本運(yùn)算電路的P[j-1]的輸入,取出X的第2位X1作為所述模乘電路第2行的32個(gè)基本運(yùn)算電路的輸入X[i];6)類似所述步驟2)、3)、4),完成X1與n位二進(jìn)制數(shù)Y的模乘運(yùn)算;7)類似所述步驟1)、2)、3)、4),完成X0到X15與n位二進(jìn)制數(shù)Y的模乘運(yùn)算;8)重復(fù)步驟7)n/16次以后,完成n位二進(jìn)制數(shù)X和n位二進(jìn)制數(shù)Y的一次模乘運(yùn)算。
Xi與Y的模乘運(yùn)算中計(jì)算得到的Po[j]直接作為Xi+1中的P[j-1]的輸入,不必等到Xi與Y的模乘運(yùn)算全部完成。
運(yùn)算時(shí),模乘運(yùn)算電路矩陣的第1行基本運(yùn)算電路的輸入P[31]至P
的初始值為0。
圖1是本發(fā)明的基本運(yùn)算電路的電路原理圖,一個(gè)基本運(yùn)算電路包括兩個(gè)多路選擇器101和102,兩個(gè)一位加法器103和104。根據(jù)X[i]的取值來(lái)要求出X[i]*Y[j]的值,這時(shí)的求解需要多路選擇器101,判斷X[i]=0時(shí),輸出為0,X[i]=1時(shí),輸出即為Y[j],再用一位加法器103計(jì)算P[j]與多路選擇器103的輸出的和。再將一位加法器103的輸出作為多路選擇器102的輸入Ip
,當(dāng)Ip
=0,輸出0,Ip
=1,輸出M[j],多路選擇器102輸出的結(jié)果作為一位加法器104的輸入用來(lái)計(jì)算P[j]+M[j],結(jié)果輸出到Po[j],兩個(gè)一位加法器的進(jìn)位輸出為cp1_out,cp2_out。
圖2是本發(fā)明的基本運(yùn)算電路的一種具體實(shí)施方式
的電路圖。
圖3是本發(fā)明的模乘電路的結(jié)構(gòu)示意圖。本發(fā)明的模乘電路包括512個(gè)基本運(yùn)算電路,排列成32列16行的矩陣。每一行的32個(gè)基本運(yùn)算電路組成一個(gè)基本矩陣。下面以計(jì)算1024位二進(jìn)制數(shù)的模乘為例,詳細(xì)描述本發(fā)明的模乘運(yùn)算電路和運(yùn)用該模乘運(yùn)算電路的加密方法。
根據(jù)模乘運(yùn)算的公式X*YmodM,1024位的模乘運(yùn)算來(lái)說,X、Y、M都是1024位的二進(jìn)制數(shù)。首先計(jì)算出取X的第一位X0時(shí),與Y的前32bit數(shù)的乘積P,以及P與M的和,再由所得的各輸出值作為計(jì)算下面32位數(shù)的輸入值,輸出至下一個(gè)基本矩陣,以此類推,直至算完取X0時(shí)的所有運(yùn)算,即完成改模乘運(yùn)算的第一次循環(huán),加上保留的兩位進(jìn)位位,共需要使用基本矩陣33次。
在做第二次循環(huán)時(shí),第一次計(jì)算所得P值,需經(jīng)過一次移位操作后作為第二次循環(huán)運(yùn)算的輸入,所以,實(shí)際上在第一次循環(huán)中計(jì)算出P[1]值就可作為第二次循環(huán)中P
的輸入,不必等到第一次循環(huán)全部完成,以此類推,我們將基本矩陣進(jìn)行擴(kuò)展,使其行數(shù)增至16行,因其數(shù)據(jù)傳輸?shù)奶厥庑裕@個(gè)32列16行的矩陣為一菱形矩陣。
在第一次循環(huán)中,最右邊的處理單元負(fù)責(zé)完成最低位的運(yùn)算,如圖1所示,根據(jù)X
即X[i](i=0)時(shí)的取值來(lái)求出X
*Y
的值,這時(shí)的求解需要多路選擇器101,判斷X
=0時(shí),輸出為0,X
=1時(shí),輸出即為Y
,用一位加法器103計(jì)算P
與多路選擇器102的輸出的和,此時(shí)P
的值為0。將一位加法器103的輸出作為多路選擇器102的輸入Ip
,當(dāng)Ip
=0,輸出0,Ip
=1,輸出M
,輸出的結(jié)果作為一位加法器104的輸入用來(lái)計(jì)算一位加法器103的輸出與M
的和,負(fù)責(zé)第一位計(jì)算的基本運(yùn)算電路的加法器的進(jìn)位送入負(fù)責(zé)第二位計(jì)算的處理單元中。
其余各位的計(jì)算均采用同樣的基本運(yùn)算電路,一行32個(gè)基本運(yùn)算電路稱為一個(gè)基本矩陣,在計(jì)算1024位數(shù)時(shí),將最后兩位進(jìn)位計(jì)入在內(nèi),重復(fù)使用33次基本矩陣可完成X0與Y的模乘運(yùn)算。
在第二次循環(huán)即計(jì)算X1與Y的模乘運(yùn)算值中,同樣使用32個(gè)基本運(yùn)算電路,所不同的是,由于在算法中,每一次循環(huán)的最后一步計(jì)算是除2求商操作,對(duì)于二進(jìn)制數(shù)來(lái)說,就是一次移位操作。因此,將第一次循環(huán)操作中計(jì)算得到的結(jié)果P右移一位后作為第二次循環(huán)的輸入數(shù)據(jù)。由于P右移了一位,所以對(duì)于第2次循環(huán)來(lái)說,最左側(cè)的基本運(yùn)算單元的P[j]不是從上一次循環(huán)的結(jié)果中得到的,這個(gè)P[j]的值是隨著部分積P的變化而相應(yīng)變化的,其初始值為0。使用16行這樣的32個(gè)處理單元來(lái)完成16次循環(huán)操作,這樣就構(gòu)成了一個(gè)32*16的矩陣,如圖3所示,這個(gè)矩陣第一行P[j]輸入分別為P[31]至P
,它們的初始值為0,在運(yùn)算過程中會(huì)隨著部分積P的變化而相應(yīng)的變化,重復(fù)使用33次該矩陣,就可以完成1024位數(shù)的16次循環(huán),即X0到X15與Y的模乘運(yùn)算,重復(fù)使用33*64次該矩陣,可完成1024位數(shù)的1024次循環(huán),即完成一次模乘運(yùn)算(注改進(jìn)的蒙哥馬利算法需在模冪運(yùn)算中做一次調(diào)整,故此處所得并不是真正的模乘結(jié)果)。
本發(fā)明的模乘運(yùn)算電路和運(yùn)用該模乘運(yùn)算電路的加密方法可以根據(jù)要計(jì)算數(shù)據(jù)的位數(shù)確定使用矩陣的次數(shù),完成對(duì)不同位數(shù)數(shù)據(jù)的模乘運(yùn)算。
由于使用了上述技術(shù)方案,避免了逆元的求解,同時(shí)簡(jiǎn)化了電路,由于不必等待第一次循環(huán)全部結(jié)束便可以開始下一次循環(huán)的運(yùn)算,所以提高了運(yùn)算速度?,F(xiàn)有采用基為2的蒙哥馬利算法的模乘電路完成一次1024位的模乘運(yùn)算需要200k個(gè)時(shí)鐘周期,而采用本發(fā)明的模乘運(yùn)算電路完成同樣的操作則只需要10857個(gè)時(shí)鐘周期。
本發(fā)明的模乘運(yùn)算電路通信局域化,排列規(guī)則,沒有大量的預(yù)處理也不需要大容量存儲(chǔ)器,非常適于VLSI實(shí)現(xiàn)。再者,由于通信是局域化的,處理器之間的連線可以很短,非常適于深亞微米工藝制造,可有效的節(jié)約芯片面積。
權(quán)利要求
1.一種模乘運(yùn)算電路,其特征在于,包括512個(gè)基本運(yùn)算電路,排成32列16行的矩陣;基本運(yùn)算電路包括,兩個(gè)多路選擇器(101)和(102),兩個(gè)一位加法器(103)和(104),多路選擇器(101)的輸入為被乘數(shù)Y的第j位Y[j]、0、乘數(shù)X的第i位X[i],其輸出連接到一位加法器(103)的輸入,多路選擇器(102)的輸入為模M的第j位M[j]、0、Ip
,其輸出連接到一位加法器(104)的輸入,一位加法器(103)的進(jìn)位輸入為cp1_in,另一個(gè)輸入為部分積P的第j位P[j],其輸出連接到一位加法器(104)的輸入,進(jìn)位輸出為cp1_out,一位加法器(104)的進(jìn)位輸入為cp2_in,其結(jié)果輸出到Po[j],進(jìn)位輸出為cp2_out;所述32列16行矩陣的最右側(cè)一列的16個(gè)基本運(yùn)算電路的加法器進(jìn)位輸入為cp1
,cp2
最左側(cè)一列的16個(gè)基本運(yùn)算電路的加法器進(jìn)位輸出為cp1[31,i]cp2[31,i],其余基本運(yùn)算電路的進(jìn)位輸入為其右側(cè)的基本運(yùn)算電路的進(jìn)位輸出;在同一行中的32個(gè)基本運(yùn)算電路的多路選擇器(102)的輸入Ip
是相同的,都是該行最右側(cè)的基本運(yùn)算電路中的一位加法器(103)的輸出;除第1行的32個(gè)基本運(yùn)算電路以外,每一行的基本運(yùn)算電路的輸入P[j]是上一行的基本運(yùn)算電路的輸出Po[j-1]。
2.如權(quán)利要求1所述的模乘運(yùn)算電路,其特征在于,所述32列16行的矩陣,除第1行的32個(gè)基本運(yùn)算電路以外,每一行的基本運(yùn)算電路的輸入P[j]是上一行的基本運(yùn)算電路的輸出Po[j-1],所述矩陣排列為一菱形。
3.一種運(yùn)用所述模乘運(yùn)算電路的加密方法,計(jì)算乘數(shù)X與被乘數(shù)Y的模乘,運(yùn)用公式X*YmodM,X、Y、M都是n位的二進(jìn)制數(shù),其特征在于,包括以下步驟1)取出X的第1位X0,作為所述模乘電路第1行的32個(gè)基本運(yùn)算電路的輸入X[i];2)第1行最右側(cè)的基本運(yùn)算電路輸入P[j]、Y[j]、M[j]、cp1_in、cp2_in后,該基本運(yùn)算電路計(jì)算得到Ip
、cp1_out、cp2_out、Po[j],Ip
輸入到該行的32個(gè)基本運(yùn)算電路的Ip
,cp1_out、cp2_out輸出到該基本運(yùn)算電路的左側(cè)的一個(gè)基本運(yùn)算電路,Po[j]輸出到下一行的[j-1]列基本運(yùn)算電路;3)第1行的32個(gè)基本運(yùn)算電路按從右到左的順序依次完成計(jì)算,得到X0與Y的前32位數(shù)的乘積,將第1行最左側(cè)的基本運(yùn)算電路計(jì)算所得的cp1_out、cp2_out作為輸入在輸入到第1行最右側(cè)的基本運(yùn)算電路中,進(jìn)行X0與Y的下32位數(shù)的模乘運(yùn)算;4)重復(fù)步驟2)和步驟3)(n/32)*33次以后,完成X0與n位二進(jìn)制數(shù)Y的模乘運(yùn)算;5)步驟4)得到的結(jié)果Po[j]作為第2行的基本運(yùn)算電路的P[j-1]的輸入,取出X的第2位X1作為所述模乘電路第2行的32個(gè)基本運(yùn)算電路的輸入X[i];6)類似所述步驟2)、3)、4),完成X1與n位二進(jìn)制數(shù)Y的模乘運(yùn)算;7)類似所述步驟1)、2)、3)、4),完成X0到X15與n位二進(jìn)制數(shù)Y的模乘運(yùn)算;8)重復(fù)步驟7)n/16次以后,完成n位二進(jìn)制數(shù)X和n位二進(jìn)制數(shù)Y的一次模乘運(yùn)算。
4.如權(quán)利要求3所述的運(yùn)用所述模乘運(yùn)算電路的加密方法,其特征在于,Xi與Y的模乘運(yùn)算中計(jì)算得到的Po[j]直接作為Xi+1中的P[j-1]的輸入,不必等到Xi與Y的模乘運(yùn)算全部完成。
5.如權(quán)利要求3所述的運(yùn)用所述模乘運(yùn)算電路的加密方法,其特征在于,所述模乘運(yùn)算電路矩陣的第1行的輸入P[31]至P
的初始值為0。
全文摘要
一種模乘運(yùn)算電路和一種運(yùn)用該模乘運(yùn)算電路的加密方法,該模乘運(yùn)算電路包括512個(gè)基本運(yùn)算電路,排成32列16行的矩陣;基本運(yùn)算電路包括,兩個(gè)多路選擇器和兩個(gè)一位加法器;32列16行的矩陣最右側(cè)一列的16個(gè)基本運(yùn)算電路的加法器進(jìn)位輸入為cp1
,cp2
,最左側(cè)一列的16個(gè)基本運(yùn)算電路的加法器進(jìn)位輸出為cp1[31,i],cp2[31,i],其余基本運(yùn)算電路的進(jìn)位輸入為其右側(cè)的基本運(yùn)算電路的進(jìn)位輸出;除第1行的32個(gè)基本運(yùn)算電路以外,每一行的基本運(yùn)算電路的輸入P[j]是上一行的基本運(yùn)算電路的輸出Po[j-1];使用該模乘運(yùn)算電路的加密方法按照從右到左,從上到下的順序依次使用這512個(gè)基本運(yùn)算電路進(jìn)行模乘運(yùn)算;本發(fā)明簡(jiǎn)化了電路,提高了運(yùn)算速度并有效的節(jié)約了芯片面積。
文檔編號(hào)G06F7/38GK1525307SQ03115529
公開日2004年9月1日 申請(qǐng)日期2003年2月26日 優(yōu)先權(quán)日2003年2月26日
發(fā)明者白寧, 高璐琳, 印義言, 白 寧 申請(qǐng)人:上海華園微電子技術(shù)有限公司