欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

改進(jìn)的歸約計(jì)算的制作方法

文檔序號:6487267閱讀:186來源:國知局
專利名稱:改進(jìn)的歸約計(jì)算的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于執(zhí)行歸約運(yùn)算的方法和用于執(zhí)行歸約運(yùn)算的設(shè)備。
橢圓曲線密碼學(xué)涉及使用對GF(p)上的橢圓曲線關(guān)系的計(jì)算,并且要求例如在密碼處理器中實(shí)現(xiàn)公開密鑰算法期間重復(fù)地執(zhí)行長整數(shù)乘法。
典型情況下,必須執(zhí)行乘法運(yùn)算數(shù)百次以便完成加密或解密運(yùn)算,因此重要的是,用于執(zhí)行這些運(yùn)算的密碼裝置使用高速乘法器來迅速地執(zhí)行長整型乘法。
這種密碼算法日益用于例如智能卡之類的電子裝置中,并且在這些應(yīng)用中嚴(yán)重地限制了處理能力和功率消耗。
一個(gè)常規(guī)的計(jì)算方法是Quisquater系統(tǒng),其使用下列運(yùn)算來對最高有效字進(jìn)行運(yùn)算R’=R+(-N’*MSW),其中N’是N的特定倍數(shù)。實(shí)際上,-N’用于其2的補(bǔ)碼表示。
歸約運(yùn)算是低效的,并且結(jié)果可能太大,需要把(-N)與R’相加。
另一常規(guī)的計(jì)算方法是Mongomery系統(tǒng),其使用下列運(yùn)算來對最低有效字進(jìn)行運(yùn)算R’=R+N*Q其中Q=LSW*M mod 2n。
歸約運(yùn)算同樣是低效的并且可能太大而多出一位,這要求通過減去N來還原。
因此本發(fā)明的目的是提供更高效的歸約運(yùn)算。
本發(fā)明的另一目的是向歸約運(yùn)算提供較低數(shù)量的乘法運(yùn)算。
本發(fā)明的另一目的是提供一種在計(jì)算操作中只提供很少的溢出的歸約運(yùn)算。
本發(fā)明的另一目的是提供一種歸約運(yùn)算,在所述歸約運(yùn)算中可以更快地完成所述歸約運(yùn)算。
依照一個(gè)方面,本發(fā)明提供了一種依照密碼計(jì)算來執(zhí)行歸約運(yùn)算的方法,所述方法包括選擇模數(shù),其中所述模數(shù)的第一段具有多個(gè)“1”最高有效字狀態(tài),而第二段包括多個(gè)“1”或“0”狀態(tài),借此由這兩個(gè)段形成的數(shù)是模數(shù)或模數(shù)的倍數(shù),并且對所述模數(shù)/倍數(shù)進(jìn)行歸約運(yùn)算。
通過選擇特定形式的模數(shù)/倍數(shù)用于計(jì)算,歸約運(yùn)算只涉及很少的乘法運(yùn)算。
從而,由本發(fā)明所提供的顯著益處在于降低了用于完成整個(gè)計(jì)算操作所花費(fèi)的時(shí)間。
此外,與常規(guī)的加密方法相比,保持了由本發(fā)明方法所提供的安全度。
優(yōu)選地是,所述方法包括監(jiān)視前導(dǎo)“1”的數(shù)目以便確定該數(shù)目是否小于(k-2)。有益地是,當(dāng)前導(dǎo)“1”的數(shù)目小于(k-2)時(shí),開始下一計(jì)算。
從而,本發(fā)明的進(jìn)一步優(yōu)點(diǎn)在于可以同時(shí)處理多個(gè)乘法運(yùn)算,借此降低了為完成計(jì)算操作所花費(fèi)的時(shí)間。
在本發(fā)明192位ECC和64位字長的一個(gè)實(shí)施例中,模數(shù)包括138位的第一段和54位的第二段。
在本發(fā)明的128位ECC和64位字長的另一實(shí)施例中,模數(shù)包括74位的第一段和54位的第二段。
在本發(fā)明的256位ECC和64位字長的另一實(shí)施例中,模數(shù)包括202位的第一段和54位的第二段。
本發(fā)明還可以對多個(gè)模數(shù)起作用,所述模數(shù)具有比字長的倍數(shù)更少的有效位。在該情況下,系統(tǒng)對模數(shù)的倍數(shù)起作用,所述模數(shù)具有所要求的前導(dǎo)1的數(shù)目。僅在最后,必須把結(jié)果還原為原始的(較小的)模數(shù)。
在一個(gè)優(yōu)選方案中,本發(fā)明的方法利用由m個(gè)字組成的模數(shù),除最低有效字(LSW)之外的所有字由“1”組成,并且所述LSW例如具有十個(gè)前導(dǎo)“1”。其可以是任何數(shù)目,記住如果它越大,那么常常要求附加的歸約越少。
依照另一方面,本發(fā)明提供了可直接裝入數(shù)字計(jì)算機(jī)內(nèi)部存儲器的計(jì)算機(jī)程序產(chǎn)品,包括用于當(dāng)所述產(chǎn)品在計(jì)算機(jī)上運(yùn)行時(shí)執(zhí)行本發(fā)明方法的軟件代碼部分。
依照另一方面,本發(fā)明提供了可直接裝入數(shù)字計(jì)算機(jī)內(nèi)部存儲器的計(jì)算機(jī)程序,包括用于當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí)執(zhí)行本發(fā)明方法的軟件代碼部分。
依照另一方面,本發(fā)明為使本發(fā)明具體化的計(jì)算機(jī)程序提供了一種載體,所述載體可以包括電子信號。
依照另一方面,本發(fā)明提供了計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)程序或本發(fā)明的載體的電子分布。
依照另一方面,本發(fā)明提供了一種依照密碼計(jì)算來執(zhí)行歸約運(yùn)算的設(shè)備,所述設(shè)備包括用于選擇模數(shù)或模數(shù)的倍數(shù)的裝置,其中所述模數(shù)的第一段具有多個(gè)“1”狀態(tài),而第二段具有多個(gè)“1”或“0”狀態(tài),借此由這兩個(gè)段形成的數(shù)是模數(shù)或模數(shù)的倍數(shù)。
為了可以更容易地理解本發(fā)明,現(xiàn)在僅以舉例形式參考附圖給出了描述,其中

圖1是本發(fā)明應(yīng)用在智能卡中的框圖;圖2是為192位ECC和64位字來具體化本發(fā)明的歸約運(yùn)算的示意圖;圖3是用于128位ECC和64位字的本發(fā)明的另一歸約運(yùn)算的示意圖;圖4是用于256位ECC和64位字的本發(fā)明的另一歸約運(yùn)算的示意圖;圖5是本發(fā)明的硬件實(shí)現(xiàn)方式。
圖1示出了本發(fā)明硬件實(shí)現(xiàn)方式的框圖,包括具有以下組件的智能卡50·微控制器51,用于總控制經(jīng)由接口與外界的通信。它設(shè)置RAM/ROM中數(shù)據(jù)的指針并且起動(dòng)協(xié)處理器。
·到外界的接口,用于例如依照ISO-7816-3與智能卡聯(lián)系。
·只讀存儲器(ROM)52,用于存儲微控制器的程序。
·可編程只讀存儲器(閃存或EEPROM)53,用于非易失性存儲數(shù)據(jù)或程序。
·RAM 54,用于存儲易變數(shù)據(jù),例如用于存儲在計(jì)算期間的中間結(jié)果。
·協(xié)處理器55,專用于執(zhí)行ECC或RSA計(jì)算的特定高速任務(wù)。當(dāng)任務(wù)就緒時(shí),把控制返回到微控制器。
在一個(gè)變式中,利用微處理器、ALU來提供加、減、移位運(yùn)算,利用對控制器進(jìn)行編程來提供控制邏輯,以及由移位寄存器來進(jìn)行程度檢測,從而以軟件實(shí)現(xiàn)本發(fā)明。
在圖2中示出了本發(fā)明的歸約運(yùn)算,利用總共包括192個(gè)位字的模數(shù)來執(zhí)行所述歸約運(yùn)算,并且所述模數(shù)具有兩個(gè)64位的字和10位都為“1”狀態(tài)的第一段。如果總數(shù)是質(zhì)數(shù)的話,模數(shù)的第二段是54位并且可以是任意數(shù)。數(shù)越大,通常所要求的附加歸約越少。
通常,N可以被寫為N=nm-1Bm+1+...n1B+n0(B=264)選擇N的特殊要求是·n1...nm-1是固定的并且只包含1(n1=...nm-1=B-1)。
·n0除也是1的k個(gè)MSB外,通常剩下64-k位可自由選擇。
然后N被寫為N=Bm-B+n0=Bm-n0’,其中n0’=B-n0設(shè)R為結(jié)果,其必須被減少1個(gè)字。
R=rmBm+rm-1Bn-1+...r1B+r0如下通過從R中減去積rmN來歸約結(jié)果R’=R-rm.N=rmBm+rm-1Bm-1+...r1B+r0-rm(Bm-B+n0)=rm-1Bm-1+...+r2B2+r1B+r0+rm.(B-n0)=(R-rmBm)+rm.n0’這意味著為了歸約,省略字rm并且將積rm.n0’加到最低有效字r0。歸約意味著只用一個(gè)乘法來代替通常的m個(gè)乘法。
由于n0<B,所以n0’總是正的。結(jié)果也總是正的。
代替n0,存儲并使用n0’。
在一些情況下,結(jié)果大出1位。于是有必要再減去N。
R’=(Bm+rm-1Bm-1+...+r1B+r0)-(Bm-n0’)=rm-1Bm-1+...+r1B+(r0+n0’)=(R-Bm)+n0’。
這樣,我們只要加上n0’并且丟棄溢出位Bm。
對于每乘以一個(gè)字,就進(jìn)行這種歸約。作為選擇,首先完成所有乘法繼而歸約。這里描述了最后的方法。下面描述針對192位ECC和64位字長(m=3)。
N=B3-B+n0=B3-n0’;29≤n0<B (B=264)。
R是三個(gè)64位字乘以也是三個(gè)64位字的結(jié)果,這產(chǎn)生6個(gè)字(r0...r5)。
然后按如下進(jìn)行歸約·把n0’乘以r4并且加上r1(步驟S1);·把n0’乘以r5并且加上r2以及先前乘法的進(jìn)位c。此外,把r3加到乘法的上半部。結(jié)果由被稱作r2的下半部和上半部q組成(步驟S2);·把q乘以n0’并且加上r0,并且把新的r1加到上半部(步驟S3);·當(dāng)上一次乘法溢出時(shí),把所述溢出加到r2,例如把n0’乘以0(以便得到0),加上r1(把r作為下半部)并且把r2加到上半部(即溢出位)(步驟S4);·當(dāng)這再次給出溢出時(shí)(即僅當(dāng)r2都由1組成時(shí)(概率2-64)),加上n0’(步驟S5)。
·這可以通過將n0’乘以1并且把r0加到下半部,把r1加到上半部來完成。
第二乘法的進(jìn)位(q)被用作下一乘法中的被乘數(shù),并且可以被擴(kuò)大1位。
當(dāng)n0’q乘法的輸入r1不具有8個(gè)前導(dǎo)1時(shí)(概率小于1/256),由于n0’q因n0’而具有至少8個(gè)前導(dǎo)0,所以不會有溢出。在該情況下,程序不等待溢出而繼續(xù)進(jìn)行。
處理溢出需要時(shí)間,因此必須盡可能地使其最小化。據(jù)此,n0具有多個(gè)前導(dǎo)1(k),這樣n0’具有至少k-1個(gè)前導(dǎo)0。
從而,由于q可能會被擴(kuò)大1位,所以積n0’c2具有至少k-2個(gè)前導(dǎo)0。
為了產(chǎn)生溢出,加法B.c0+r0必須具有至少k-2個(gè)前導(dǎo)1以及來自低位的進(jìn)位c。
其發(fā)生的概率小于2-(k-2)。因此通過使k較高,溢出的可能性非常小。
由于r2必須完全由1組成,所以第二溢出的概率非常小(2-64)。
在實(shí)踐中,流水線乘法器用來提供高效的計(jì)算操作,這樣同時(shí)處理多個(gè)乘法。需要花費(fèi)幾個(gè)時(shí)鐘周期來從乘法器獲得結(jié)果。當(dāng)有必要等待以便確定是否出現(xiàn)溢出時(shí),下一乘法直到已經(jīng)計(jì)算溢出才能開始。從而監(jiān)視r(shí)1并且如果它沒有k-2個(gè)前導(dǎo)“1”,那么在稍后幾個(gè)周期都不會有溢出,所以可以開始下一乘法。
在圖3中示出了一個(gè)用于128位ECC和64位字長的不同實(shí)施例,包括了具有128位的模數(shù)N。
在此實(shí)施例中,N=B2-B+n0=B2-n0’;29≤n0<B。
操作數(shù)必須處于正規(guī)空間。
然后如下進(jìn)行歸約·把n0’乘以r3并且加上r1。還把r2加到乘法的上半部(步驟S10);結(jié)果由稱作r1的下半部和稱作q的上半部組成。
·把q乘以n0’并且加上r0,并且把新的r1加到上半部(步驟S11);·當(dāng)上一次乘法給出溢出時(shí),那么例如通過乘法/加法n0’.1+B.r1+r0來加上n0’(步驟12)。
在圖4中示出了256位ECC和64位字長的不同實(shí)施例,包括具有256位的質(zhì)數(shù)。
在此實(shí)施例中,N=B4-B+n0+B4-n0’;29<n0<B。
操作數(shù)必須處于正規(guī)空間。
然后如下進(jìn)行歸約·把n0’乘以r5并且加上r1(步驟S20),產(chǎn)生新的結(jié)果,稱為r1;·把n0’乘以r6并且加上r2和先前乘法的進(jìn)位c(步驟S21),產(chǎn)生新的結(jié)果,稱為r2。
·把n0’乘以r7并且加上r3以及先前乘法的進(jìn)位c。
此外把r4加到乘法的上半部(步驟S22)。步驟由被稱作r3的下半部和上半部q組成。
·把q乘以n0’并且加上r0,并且把新的r1加到上半部(步驟S23);·當(dāng)上一次乘法給出溢出時(shí),把所述溢出加到r2(步驟S24);·當(dāng)這再次給出溢出時(shí),把其加到r3(步驟S25);·當(dāng)這再次給出溢出時(shí),加上n0’(步驟S26)。
第三乘法的進(jìn)位(q)被用作下一乘法中的被乘數(shù),并且在下一乘法中可以被擴(kuò)大1位。
圖5是具有下列組件的本發(fā)明硬件實(shí)現(xiàn)方式的框圖·用于分別存儲輸入操作數(shù)X、Y、U和R的X-、Y-、U-和Z-寄存器10到13;·用于存儲輸出C和R的C-和R-寄存器14、15;·用于存儲中間結(jié)果的RAM 16;·用于執(zhí)行運(yùn)算B.C+R=X*Y+B*U+Z+c的乘法器17;·用于控制在RAM和寄存器之間或在寄存器之間的運(yùn)算和傳輸?shù)臓顟B(tài)機(jī)18。
乘法器17計(jì)算X和Y的積并且如果需要的話,加上先前的進(jìn)位c,所述先前的進(jìn)位在內(nèi)部存儲。結(jié)果被分成兩等份,把Z加到下半部而把U加到上半部。
C-寄存器14的輸出還可以被直接用作y-輸入(例如在圖2中的q)。
在另一形式中,由在微處理器上運(yùn)行的軟件以及移位寄存器來實(shí)現(xiàn)本發(fā)明,所述微處理器具有適當(dāng)?shù)腁LU以便提供加、減和移位運(yùn)算。
權(quán)利要求
1.一種依照密碼計(jì)算來執(zhí)行歸約運(yùn)算的方法,所述方法包括選擇模數(shù),其中所述模數(shù)的第一段具有多個(gè)“1”最高有效字狀態(tài),而第二段包括多個(gè)“1”或“0”狀態(tài),借此由這兩個(gè)段形成的數(shù)是模數(shù)或模數(shù)的倍數(shù),并且對所述模數(shù)/倍數(shù)進(jìn)行歸約運(yùn)算(S1-S5;S10-S12;S20-S26)。
2.如權(quán)利要求1所述的方法,包括實(shí)現(xiàn)多個(gè)乘法運(yùn)算(S1)。
3.如權(quán)利要求2所述的方法,包括實(shí)現(xiàn)多個(gè)乘法運(yùn)算,隨后實(shí)現(xiàn)歸約運(yùn)算(S1,S2)。
4.如權(quán)利要求3所述的方法,包括重復(fù)組合的乘法運(yùn)算和歸約運(yùn)算(S1,S2)。
5.如前面權(quán)利要求中任何一個(gè)所述的方法,包括使用模數(shù)/倍數(shù)的倍數(shù)。
6.如前面權(quán)利要求中任何一個(gè)所述的方法,其中當(dāng)上一次乘法給出溢出時(shí)(S4),把所述溢出加到所選擇的數(shù)的一部分。
7.如權(quán)利要求6所述的方法,其中當(dāng)溢出加法步驟(S4)產(chǎn)生溢出時(shí),那么把n0’(S5)加到所述溢出。
8.如前面權(quán)利要求中任何一個(gè)所述的方法,其中在兩個(gè)相鄰乘法之間的進(jìn)位c被實(shí)現(xiàn)為下一乘法(S2)中的加數(shù)。
9.如前面權(quán)利要求中任何一個(gè)所述的方法,包括監(jiān)視前導(dǎo)“1”的數(shù)目以便確定該數(shù)目是否小于(k-2)。
10.如權(quán)利要求6所述的方法,包括當(dāng)前導(dǎo)“1”的數(shù)目小于(k-2)時(shí)開始下一計(jì)算。
11.如前面權(quán)利要求中任何一個(gè)所述的方法,包括運(yùn)算192位ECC和64位字長,所述模數(shù)包括138位的第一段和54位的第二段。
12.如權(quán)利要求1到10中任何一個(gè)所述的方法,包括運(yùn)算128位ECC和64位字長,所述模數(shù)包括74位的第一段和54位的第二段。
13.如權(quán)利要求1到10中任何一個(gè)所述的方法,包括運(yùn)算256位ECC和64位字長,所述模數(shù)包括202位的第一段和54位的第二段。
14.一種可直接裝入數(shù)字計(jì)算機(jī)內(nèi)部存儲器的計(jì)算機(jī)程序產(chǎn)品,包括用于當(dāng)所述產(chǎn)品在計(jì)算機(jī)上運(yùn)行時(shí)執(zhí)行如權(quán)利要求1到13中任何一個(gè)或多個(gè)所述的方法的軟件代碼部分。
15.一種可直接裝入數(shù)字計(jì)算機(jī)內(nèi)部存儲器的計(jì)算機(jī)程序,包括用于當(dāng)所述程序在計(jì)算機(jī)上運(yùn)行時(shí)執(zhí)行如權(quán)利要求1到13中任何一個(gè)或多個(gè)所述的方法的軟件代碼部分。
16.一種載體,其可以包括用于權(quán)利要求15的計(jì)算機(jī)程序的電子信號。
17.權(quán)利要求14的計(jì)算機(jī)程序產(chǎn)品或權(quán)利要求15的計(jì)算機(jī)程序或權(quán)利要求16的載體的電子分布。
18.一種依照密碼計(jì)算來執(zhí)行歸約運(yùn)算的設(shè)備,所述設(shè)備包括用于選擇模數(shù)或模數(shù)的倍數(shù)的裝置,其中所述模數(shù)的第一段具有多個(gè)“1”狀態(tài),而第二段具有多個(gè)“1”或“0”狀態(tài),借此由這兩個(gè)段形成的數(shù)是模數(shù)或模數(shù)的倍數(shù),還包括用于對所述模數(shù)/倍數(shù)進(jìn)行歸約運(yùn)算的裝置(10-17)。
19.如權(quán)利要求18所述的設(shè)備,包括用于實(shí)現(xiàn)多個(gè)乘法運(yùn)算的裝置(10-17)。
20.如權(quán)利要求19所述的設(shè)備,包括用于實(shí)現(xiàn)多個(gè)乘法運(yùn)算,隨后實(shí)現(xiàn)歸約運(yùn)算的裝置(10-17)。
21.如權(quán)利要求20所述的設(shè)備,包括用于重復(fù)組合的乘法運(yùn)算和歸約運(yùn)算的裝置(10-17)。
22.如權(quán)利要求18到21中任何一個(gè)所述的設(shè)備,包括用于使用模數(shù)/倍數(shù)的倍數(shù)的裝置(10-17)。
23.如權(quán)利要求18到22中任何一個(gè)所述的設(shè)備,包括當(dāng)上一次乘法給出溢出時(shí),把所述溢出加到所選擇的數(shù)的一部分的裝置(10-17)。
24.如權(quán)利要求23所述的設(shè)備,包括當(dāng)溢出加法步驟產(chǎn)生溢出時(shí)把n0’加到所述溢出的裝置(10-17)。
25.如權(quán)利要求18到24中任何一個(gè)所述的設(shè)備,包括用于把在兩個(gè)相鄰乘法之間的進(jìn)位c實(shí)現(xiàn)為下一乘法中加數(shù)的裝置(10-17)。
26.如權(quán)利要求18到25中任何一個(gè)所述的設(shè)備,包括用于監(jiān)視前導(dǎo)“1”的數(shù)目以便確定該數(shù)目是否小于(k-2)的裝置(10-17)。
27.如權(quán)利要求18到26中任何一個(gè)所述的設(shè)備,包括用于當(dāng)前導(dǎo)“1”的數(shù)目小于(k-2)時(shí)開始下一計(jì)算的裝置(10-17)。
28.如權(quán)利要求18到27中任何一個(gè)所述的設(shè)備,包括用于192位ECC和64位字長的裝置(10-17),所述模數(shù)包括74位的第一段和54位的第二段。
29.如權(quán)利要求18到27中任何一個(gè)所述的設(shè)備,包括用于128位ECC和64位字長的裝置(10-17),所述模數(shù)包括74位的第一段和54位的第二段。
30.如權(quán)利要求18到27中任何一個(gè)所述的設(shè)備,包括用于256位ECC和64位字長的裝置(10-17),所述模數(shù)包括202位的第一段和54位的第二段。
31.一種用于執(zhí)行基本上如上所述并且參考附圖1到5中任何一個(gè)或多個(gè)所示的歸約運(yùn)算的方法。
32.一種用于依照密碼計(jì)算來執(zhí)行歸約運(yùn)算的設(shè)備,所述設(shè)備基本上如上所述和/或如參考附圖1到5中的任何一個(gè)或多個(gè)所說明。
33.一種用于依照密碼計(jì)算來執(zhí)行歸約運(yùn)算的方法,所述方法基本上如上所述并且參考附圖1到5中任何一個(gè)或多個(gè)所說明。
全文摘要
橢圓曲線密碼學(xué)歸約技術(shù)利用質(zhì)數(shù),所述質(zhì)數(shù)具有第一段為最高有效字“1”狀態(tài),N=n
文檔編號G06F7/72GK1809806SQ200480017298
公開日2006年7月26日 申請日期2004年6月10日 優(yōu)先權(quán)日2003年6月21日
發(fā)明者G·T·M·胡伯特 申請人:皇家飛利浦電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
临高县| 宣威市| 达拉特旗| 武汉市| 微山县| 永寿县| 浏阳市| 武邑县| 建始县| 东阿县| 六枝特区| 缙云县| 前郭尔| 富顺县| 桂阳县| 南漳县| 泗水县| 乌拉特前旗| 和龙市| 高尔夫| 淮南市| 郎溪县| 申扎县| 沙河市| 长子县| 青铜峡市| 宝鸡市| 西充县| 青海省| 峡江县| 安图县| 鹰潭市| 阿勒泰市| 泾川县| 璧山县| 定边县| 尼玛县| 长沙县| 邢台市| 化州市| 郸城县|