專利名稱:計(jì)算經(jīng)典模乘的模乘方法以及可擴(kuò)展模乘器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體涉及一種計(jì)算經(jīng)典模乘A.Β mod M的模乘方法以及可擴(kuò)展模乘器。
背景技術(shù):
在很 多非對(duì)稱加密算法中,例如RSA (公鑰加密算法)和ECC (Error CorrectingCode,錯(cuò)誤檢查和糾正)中,大整數(shù)模乘運(yùn)算是其基本運(yùn)算。由于大整數(shù)模乘運(yùn)算中運(yùn)算量很大,通常會(huì)采用硬件實(shí)現(xiàn)的蒙哥馬利模乘器進(jìn)行計(jì)算。蒙哥馬利模乘算法的基礎(chǔ)思想是借助一個(gè)新的特殊剩余系,將普通的模乘轉(zhuǎn)換為容易計(jì)算的特殊模乘。盡管如此,隨著密鑰長(zhǎng)度增大,相應(yīng)的硬件規(guī)模也會(huì)增加?,F(xiàn)有技術(shù)中,利用可擴(kuò)展的蒙哥馬利模乘器,只需較少的運(yùn)算部件和充足的存儲(chǔ)器,就能實(shí)現(xiàn)可變及更長(zhǎng)精度的整數(shù)模乘。蒙哥馬利模乘器在可擴(kuò)展架構(gòu)下變得更為簡(jiǎn)便,提高了運(yùn)算的效率和IC設(shè)計(jì)的自由度。但是,蒙哥馬利模乘畢竟不同于經(jīng)典模乘,如果運(yùn)算非連續(xù)、操作數(shù)不斷變化,則相應(yīng)操作的運(yùn)算代價(jià)會(huì)比實(shí)際大為增加。事實(shí)上,經(jīng)典模乘也可以通過(guò)Jeong-Burleson算法實(shí)現(xiàn)。Jeong-Burleson算法最初提出的結(jié)構(gòu)是直接利用預(yù)計(jì)算、交疊的模乘運(yùn)算、長(zhǎng)整數(shù)的保留進(jìn)位加法實(shí)現(xiàn)。因此,提供一種基于Jeong-Burleson算法的模乘方法及可擴(kuò)展模乘器,可以有效的計(jì)算可變長(zhǎng)度的經(jīng)典模乘。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問(wèn)題本發(fā)明的目的在于提供一種低延遲的、可擴(kuò)展的、基于Jeong-Burleson算法的模乘方法及模乘器,從而有效的計(jì)算可變長(zhǎng)度的經(jīng)典模乘。(二)技術(shù)方案本發(fā)明技術(shù)方案如下:一種模乘方法,其中,被乘數(shù)A、乘數(shù)B以及模數(shù)M均為η位二進(jìn)制數(shù),被乘數(shù)A包括M個(gè)字;中間變量包括二進(jìn)制數(shù)Cn,Sn以及hn,hn為進(jìn)位信號(hào);預(yù)計(jì)算值D[2u]= (u.2n)Mod Μ, I < u < 5 ;外循環(huán)量 i= (O, I,..., n_l);內(nèi)循環(huán)量 j= (O, I,..., m_l);模乘運(yùn)算(Cn, Sn, hn) =(A.B) Mod M 包括步驟:S1.定義 Sh=O,CL1=O, =0, U^1=O, hf} =0;S2.令外循環(huán)量i=0,從乘數(shù)B最高位開(kāi)始外循環(huán);S3.賦值(X12k + Cf-1) + = 2C^-l) + 2S^l) + 2h^2) + b A(m~1}+D[2u^]im-l);S4.令內(nèi)循環(huán)量j=l,從被乘數(shù)A最高字開(kāi)始內(nèi)循環(huán);
S5.賦值々- + Cf卜1勹)+ Sfn^n = 2C=+J) + 252—+ 2/fi—2—力+Dih^l Γ-H + b;S6.令內(nèi)循環(huán)量j加1,重復(fù)內(nèi)循環(huán)直到j(luò)=m_l ;退出內(nèi)循環(huán);S7.令外循環(huán)量i加I,重復(fù)外循環(huán)直到i=n_l ;退出外循環(huán);S8.返回冗余形式的模乘值(Cn,Sn, hn)并對(duì)其進(jìn)行后處理。本發(fā)明還提供了一種實(shí)現(xiàn)上述模乘方法的可擴(kuò)展模乘器:一種可擴(kuò)展模乘器,包括依次連接的接收單元、運(yùn)算模塊以及后處理電路;所述接收單元存儲(chǔ)輸入的乘數(shù)、被乘數(shù)、模數(shù)以及預(yù)計(jì)算值;所述運(yùn)算模塊根據(jù)上述的模乘方法輸出運(yùn)算所得的冗余形式的模乘值;所述后 處理電路將冗余形式的模乘值轉(zhuǎn)化為非冗余形式。優(yōu)選的,所述運(yùn)算模塊包括串聯(lián)在所述接收單元與后處理電路之間的若干處理單元,最前端的處理單元與最末端的處理單元之間串聯(lián)有存儲(chǔ)中間變量的寄存器。優(yōu)選的,所述處理單元包括依次連接的第一級(jí)保留進(jìn)位加法器、第二級(jí)保留進(jìn)位加法器以及第三級(jí)保留進(jìn)位加法器,與所述第三級(jí)保留進(jìn)位加法器連接、選擇Ui值以及比值的多路選擇器,傳遞預(yù)計(jì)算值的若干寄存器,存儲(chǔ)中間結(jié)果的寄存器;Γ=—11的低w-1位、_1]的低w-Ι位、1 +/011-1)經(jīng)過(guò)第一級(jí)保留進(jìn)位加法器相加,最低位由上一處理單元的進(jìn)位值填滿;第一級(jí)保留進(jìn)位加法器的輸出除最高位進(jìn)位外和上一處理單元輸入的作為第二級(jí)保留進(jìn)位加法器的輸入,第二級(jí)保留進(jìn)位加法器的輸
出與預(yù)計(jì)算值作為第三級(jí)保留進(jìn)位加法器的輸入;其中,w為每次處理的字長(zhǎng)。(三)有益效果本發(fā)明基于Jeong-Burleson算法,提出了一種計(jì)算經(jīng)典模乘A.Β mod M的可擴(kuò)展方法以及相應(yīng)的可擴(kuò)展模乘器;該模乘方法及可擴(kuò)展模乘器通過(guò)將任務(wù)分配至各個(gè)處理單元,在每個(gè)處理單元中按字操作,一方面,能夠利用有限的邏輯資源和充足的存儲(chǔ)器計(jì)算任意長(zhǎng)度或者長(zhǎng)度可變的模乘運(yùn)算,并且,對(duì)于乘數(shù)、被乘數(shù)不斷變化的情形,本發(fā)明的模乘方法及可擴(kuò)展模乘器計(jì)算量更少;另一方面,提供了一種選擇設(shè)計(jì)參數(shù)、優(yōu)化性能的途徑;同時(shí),新的預(yù)計(jì)算值與低延遲結(jié)構(gòu)也提高了運(yùn)算的效率。
圖1是本發(fā)明實(shí)施例中可擴(kuò)展模乘器的結(jié)構(gòu)示意圖;圖2是本發(fā)明實(shí)施例中處理單元的機(jī)構(gòu)示意圖;圖3是本發(fā)明實(shí)施例中處理單元進(jìn)位信號(hào)的產(chǎn)生流程圖;圖4是本發(fā)明實(shí)施例中工作時(shí)數(shù)據(jù)在相鄰處理單元間傳遞的流向示意圖;圖5是本發(fā)明實(shí)施例中在一系列連續(xù)時(shí)鐘周期內(nèi)各個(gè)處理單元的任務(wù)分布示意圖;圖6是本發(fā)明實(shí)施例中二種計(jì)算任務(wù)的具體邏輯意圖;圖7是本發(fā)明實(shí)施例中在某一時(shí)刻各個(gè)單元中的迭代層次和操作字的序號(hào)示意圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式
做進(jìn)一步描述。以下實(shí)施例僅用于說(shuō)明本發(fā)明,但不用來(lái)限制本發(fā)明的范圍。本發(fā)明所提供的一種模乘方法,其主要算法如下所示:
權(quán)利要求
1.一種計(jì)算經(jīng)典模乘的模乘方法,其特征在于,其中,被乘數(shù)A、乘數(shù)B以及模數(shù)M均為η位二進(jìn)制數(shù),被乘數(shù)A包括M個(gè)字;中間變量包括二進(jìn)制數(shù)Cn,Sn以及hn,hn為進(jìn)位信號(hào);預(yù)計(jì)算值 D[2u]= (u.2η)Μο(1 Μ, I < u < 5 ;外循環(huán)量 i= (O, I,…,n_l);內(nèi)循環(huán)量 j= (O,1,;模乘運(yùn)算(Cn,Sn, hn) = (A.B) Mod M 包括步驟:51.定義S—fO,CL1=O, /^)=0, U^1=O, hf]=0; 52.令外循環(huán)量i=0,從乘數(shù)B最高位開(kāi)始外循環(huán);53.賦值Qf12k+ C” + Sr(m-1} = 2C^rl) + 2 !;-1) + 2 -2) + b n_H Alm^ 54.令內(nèi)循環(huán)量j=l,從被乘數(shù)A最高字開(kāi)始內(nèi)循環(huán); 55.賦值h;m-l-J、2k + Cf-1-.7) + _w) = 2C^l-J) ++ 2h^-2-}} + 41 -1^; 56.令內(nèi)循環(huán)量j加1,重復(fù)內(nèi)循環(huán)直到j(luò)=m-l;退出內(nèi)循環(huán); 57.令外循環(huán)量i加I,重復(fù)外循環(huán)直到i=n-l;退出外循環(huán); 58.返回冗余形式的模乘值(Cn,Sn,hn)并對(duì)其進(jìn)行后處理。
2.一種計(jì)算經(jīng)典模乘的可擴(kuò)展模乘器,其特征在于,包括依次連接的接收單元、運(yùn)算模塊以及后處理電路; 所述接收單元存儲(chǔ)輸入的乘數(shù)、被乘數(shù)、模數(shù)以及預(yù)計(jì)算值; 所述運(yùn)算模塊根據(jù)權(quán)利要求1所述的模乘方法輸出運(yùn)算所得的冗余形式的模乘值; 所述后處理電路將冗余形式的模乘值轉(zhuǎn)化為非冗余形式。
3.根據(jù)權(quán)利要求2所述的可擴(kuò)展模乘器,其特征在于,所述運(yùn)算模塊包括串聯(lián)在所述接收單元與后處理電路之間的若干處理單元,最前端的處理單元與最末端的處理單元之間串聯(lián)有存儲(chǔ)中間變量的寄存器。
4.根據(jù)權(quán)利要求3所述的可擴(kuò)展模乘器,其特征在于,所述處理單元包括依次連接的第一級(jí)保留進(jìn)位加法器、第二級(jí)保留進(jìn)位加法器以及第三級(jí)保留進(jìn)位加法器,與所述第三級(jí)保留進(jìn)位加法器連接、選擇Ui值以及hi值的多路選擇器,傳遞預(yù)計(jì)算值的若干寄存器,存儲(chǔ)中間結(jié)果的寄存器; 的低w-1位、的低w-1位、Dim-1)經(jīng)過(guò)第一級(jí)保留進(jìn)位加法器相加,最低位由上一處理單元的進(jìn)位值填滿;第一級(jí)保留進(jìn)位加法器的輸出除最高位進(jìn)位外和上一處理單元輸入的λ=—2)作為第二級(jí)保留進(jìn)位加法器的輸入,第二級(jí)保留進(jìn)位加法器的輸出與預(yù)計(jì)算值作為第三級(jí)保留進(jìn)位加 法器的輸入;其中,w為每次處理的字長(zhǎng)。
全文摘要
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,具體涉及一種模乘方法以及可擴(kuò)展模乘器。本發(fā)明基于Jeong-Burleson算法,提出了一種計(jì)算經(jīng)典模乘A·B mod M的可擴(kuò)展方法以及相應(yīng)的可擴(kuò)展模乘器;該模乘方法及模乘器通過(guò)將任務(wù)分配至各個(gè)處理單元,在每個(gè)處理單元中按字操作,一方面,能夠利用有限的邏輯資源和充足的存儲(chǔ)器計(jì)算任意長(zhǎng)度或者長(zhǎng)度可變的模乘運(yùn)算,并且,對(duì)于乘數(shù)、被乘數(shù)不斷變化的情形,本發(fā)明的模乘方法及模乘器計(jì)算量更少;另一方面,提供了一種選擇設(shè)計(jì)參數(shù)、優(yōu)化性能的途徑;同時(shí),新的預(yù)計(jì)算值與低延遲結(jié)構(gòu)也提高了運(yùn)算的效率。
文檔編號(hào)G06F7/72GK103176768SQ20131010266
公開(kāi)日2013年6月26日 申請(qǐng)日期2013年3月27日 優(yōu)先權(quán)日2013年3月27日
發(fā)明者李樹(shù)國(guó), 吳燾, 劉理天 申請(qǐng)人:清華大學(xué)