橢圓域曲線運(yùn)算方法和橢圓域曲線運(yùn)算器的制造方法
【專利摘要】本發(fā)明公開了一種橢圓域曲線運(yùn)算方法和橢圓域曲線運(yùn)算器,涉及到的運(yùn)算比較全面,采用點(diǎn)乘次數(shù)k的新的NAF表示方法,似的k的二進(jìn)制表示中的非零元素的個(gè)數(shù)減少,從而減少了點(diǎn)加運(yùn)算的次數(shù),進(jìn)而減少了點(diǎn)乘的整體運(yùn)算時(shí)間,而具有比較高的運(yùn)算效率。
【專利說明】橢圓域曲線運(yùn)算方法和橢圓域曲線運(yùn)算器
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種橢圓域曲線運(yùn)算方法和橢圓域運(yùn)算器。
【背景技術(shù)】
[0002]對(duì)數(shù)據(jù)進(jìn)行加密是一種常用且行之有效的信息安全策略。目前基于有限域上橢圓曲線離散對(duì)數(shù)問題的非對(duì)稱密碼算法ECC (Emmiptic Curve Cryptography,橢圓曲線密碼)被公認(rèn)為是最高比特強(qiáng)度的公鑰密碼體制,廣泛應(yīng)用于快速加密、密鑰交換、身份驗(yàn)證、數(shù)字簽名、保密通信等領(lǐng)域,是1985年分別由Mimmer和Kobmitz獨(dú)立提出的。相對(duì)于其他的公鑰密碼系統(tǒng)(如RSA和EmGamam),橢圓曲線密碼系統(tǒng)具有計(jì)算速度快、存儲(chǔ)空間小、帶寬要求低等優(yōu)點(diǎn)。
[0003]橢圓曲線公鑰密碼算法作為ECC算法中的一種,加密強(qiáng)度為256位,安全性高、存儲(chǔ)空間小、可以快速完成簽名、密鑰交換以及加密應(yīng)用。
[0004]橢圓曲線公鑰密碼算法相關(guān)的運(yùn)算邏輯可以做為獨(dú)立的單元進(jìn)行設(shè)計(jì),并且采用層次化的劃分方式可以分為有限域運(yùn)算層以及橢圓曲線運(yùn)算層。
[0005]有限域運(yùn)算層的主要功能是提供橢圓加密算法所需要的數(shù)論運(yùn)算支持,包括256位大整數(shù)模加、模減、模乘、模逆、模冪、比較運(yùn)算。
[0006]橢圓曲線運(yùn)算層由有限域運(yùn)算層的各種基礎(chǔ)運(yùn)算按照一定的規(guī)則進(jìn)行排序后構(gòu)成,包括點(diǎn)加、倍點(diǎn)、點(diǎn)乘、坐標(biāo)轉(zhuǎn)換等運(yùn)算。點(diǎn)乘運(yùn)算是在點(diǎn)加、倍點(diǎn)的基礎(chǔ)上實(shí)現(xiàn)的,同時(shí)需要有限域運(yùn)算的支持,因此點(diǎn)乘運(yùn)算速度決定了加密機(jī)制運(yùn)算速度。
[0007]當(dāng)前,提升系統(tǒng)整體運(yùn)算可以通過兩種方法來實(shí)現(xiàn):一、提升有限域運(yùn)算層的基礎(chǔ)運(yùn)算速度,如中國第CN101782845A號(hào)發(fā)明申請(qǐng)公開針對(duì)點(diǎn)加和倍點(diǎn)算法,重新排列了修改的Jacobian坐標(biāo)點(diǎn)的點(diǎn)加和倍點(diǎn)運(yùn)算序列,提出了 一種實(shí)現(xiàn)點(diǎn)加運(yùn)算和倍點(diǎn)運(yùn)算的新方法。
[0008]再如中國第CN101221491A號(hào)發(fā)明專利申請(qǐng)公開利用Jacobian坐標(biāo)系下橢圓曲線點(diǎn)加的計(jì)算公式,提取出相互獨(dú)立的操作,構(gòu)造三級(jí)流水線電路結(jié)構(gòu)。
[0009]二、優(yōu)化點(diǎn)乘運(yùn)算電路的基礎(chǔ)運(yùn)算調(diào)用方式,如中國第CN1822539A發(fā)明申請(qǐng)公開采用32個(gè)子寄存器構(gòu)成寄存器堆作為數(shù)據(jù)暫存單元,緩解大數(shù)模運(yùn)算過程中寄存器堆的復(fù)用問題。
[0010]但是上述發(fā)明專利申請(qǐng)公開的方案均受運(yùn)算所限制,只能支持模(Mod)運(yùn)算,對(duì)上層運(yùn)算產(chǎn)生的中間變量則無能為力。
【發(fā)明內(nèi)容】
[0011]本發(fā)明的目的在于提供一種橢圓域曲線運(yùn)算方法,提高運(yùn)算速度,本發(fā)明還提供了一種橢圓域曲線運(yùn)算器。
[0012]依據(jù)本發(fā)明的一個(gè)方面的一種橢圓域曲線運(yùn)算方法,用于基數(shù)在素域中Jacobian加重射影坐標(biāo)系下的橢圓曲線公鑰密碼算法,該方法基于模的運(yùn)算,并同時(shí)基于點(diǎn)的運(yùn)算;
其中基于點(diǎn)的運(yùn)算為對(duì)初始點(diǎn)P的運(yùn)算,并對(duì)給定的標(biāo)量k采用有符號(hào)編碼中的非相鄰有符號(hào)二進(jìn)制編碼生成k的NAF表達(dá)式:NAF (kp) = (kpm-Ι……kplkpO),其中m為NAF表達(dá)式的位寬;
并對(duì)初始點(diǎn)P進(jìn)行倍點(diǎn),生成的倍點(diǎn):1P、2P、……np ;n為大于等于8小于等于17的自然數(shù);
對(duì)NAF (kp)與生成的倍點(diǎn)進(jìn)行點(diǎn)乘,直到運(yùn)算完成,輸出運(yùn)算結(jié)果。
[0013]根據(jù)權(quán)利要求1所述的橢圓域曲線運(yùn)算方法,其特征在于,對(duì)生成的倍點(diǎn)采用給定的數(shù)列通式選擇出初始倍點(diǎn),用于初始的點(diǎn)乘運(yùn)算,并在后續(xù)的點(diǎn)乘運(yùn)算中,給出點(diǎn)乘運(yùn)算邏輯;
若按照點(diǎn)乘運(yùn)算邏輯的路徑若邏輯出初始倍點(diǎn),則直接調(diào)用該邏輯出的初始倍點(diǎn)進(jìn)行運(yùn)算,若邏輯出其余的倍點(diǎn),則生成邏輯出的相應(yīng)倍點(diǎn)后進(jìn)行點(diǎn)乘運(yùn)算,直到的運(yùn)算完成。
[0014]依據(jù)本發(fā)明的另一個(gè)方面的一種橢圓域曲線運(yùn)算器,用于基數(shù)在素域中Jacobian加重射影坐標(biāo)系下的橢圓曲線公鑰密碼算法,包括模的運(yùn)算器和基于點(diǎn)的運(yùn)算器;
其中點(diǎn)的運(yùn)算器為對(duì)初始點(diǎn)P的運(yùn)算器,并對(duì)給定的標(biāo)量k采用有符號(hào)編碼中的非相鄰有符號(hào)二進(jìn)制編碼生成k的NAF表達(dá)式:NAF (kp) = (kpm-Ι……kplkpO),其中m為NAF表達(dá)式的位寬;
該點(diǎn)的運(yùn)算器還包 括倍點(diǎn)運(yùn)算器,對(duì)初始點(diǎn)P進(jìn)行倍點(diǎn),生成的倍點(diǎn):1P、2P、……np ;η為大于等于8小于等于17的自然數(shù);
以及點(diǎn)乘運(yùn)算器,對(duì)NAF (kp)與生成的倍點(diǎn)進(jìn)行點(diǎn)乘,直到運(yùn)算完成,輸出運(yùn)算結(jié)果。
[0015]依據(jù)本發(fā)明,涉及到的運(yùn)算比較全面,采用點(diǎn)乘次數(shù)k的新的NAF表示方法,似的k的二進(jìn)制表示中的非零元素的個(gè)數(shù)減少,從而減少了點(diǎn)加運(yùn)算的次數(shù),進(jìn)而減少了點(diǎn)乘的整體運(yùn)算時(shí)間,而具有比較高的運(yùn)算效率。
【專利附圖】
【附圖說明】
[0016]圖1為依據(jù)本發(fā)明的一種橢圓域運(yùn)算裝置的結(jié)構(gòu)框圖。
[0017]圖2為基于橢圓加密算法的點(diǎn)乘運(yùn)算狀態(tài)轉(zhuǎn)移圖。
[0018]圖3為非臨接表達(dá)式NAF (k)運(yùn)算狀態(tài)轉(zhuǎn)移圖。
[0019]圖4為預(yù)計(jì)算狀態(tài)轉(zhuǎn)移圖。
【具體實(shí)施方式】
[0020]如圖1所示,為橢圓域運(yùn)算裝置的基本配置,它由五個(gè)部分構(gòu)成,分別是系統(tǒng)總線數(shù)據(jù)接口模塊、配置接口模塊、配置寄存器模塊、運(yùn)算單元模塊、數(shù)據(jù)存儲(chǔ)單元模塊。
[0021]基于所述系統(tǒng)總線數(shù)據(jù)接口模塊,圖1所示的橢圓域運(yùn)算裝置在系統(tǒng)中以系統(tǒng)總線從設(shè)備的形式出現(xiàn),掛在應(yīng)用系統(tǒng)的總線上,構(gòu)成系統(tǒng)總線的從設(shè)備。
[0022]通過配置接口模塊對(duì)輔助操作數(shù)、運(yùn)算類型進(jìn)行配置,運(yùn)算完成后讀出中斷信息。
[0023]通過系統(tǒng)總線數(shù)據(jù)接口模塊配置操作數(shù)。
[0024]運(yùn)算單元模塊負(fù)責(zé)完成各種運(yùn)算,包括基于模的加法、減法、乘法、取逆、取冪運(yùn)算,基于點(diǎn)的加法、乘法運(yùn)算,并在運(yùn)算完成后產(chǎn)生中斷標(biāo)志位,構(gòu)成所述中斷信息,以使配置接口模塊能夠讀取運(yùn)算單元模塊的運(yùn)行狀態(tài)。
[0025]數(shù)據(jù)存儲(chǔ)單元模塊由4塊單口 RAM構(gòu)成,負(fù)責(zé)存儲(chǔ)初始操作數(shù)及運(yùn)算結(jié)果,配合運(yùn)算單元調(diào)度完成數(shù)據(jù)的正確轉(zhuǎn)移。
[0026]其中的操作數(shù)可以構(gòu)成為如下所述的倍點(diǎn)。
[0027]在這樣的一個(gè)實(shí)施例中,橢圓域曲線運(yùn)算器,用于基數(shù)在素域中Jacobian加重射影坐標(biāo)系下的橢圓曲線公鑰密碼算法,包括模的運(yùn)算器和基于點(diǎn)的運(yùn)算器;
其中點(diǎn)的運(yùn)算器為對(duì)初始點(diǎn)P的運(yùn)算器,并對(duì)給定的標(biāo)量k采用有符號(hào)編碼中的非相鄰有符號(hào)二進(jìn)制編碼生成k的NAF表達(dá)式:NAF (kp) = (kpm-Ι……kplkpO),其中m為NAF表達(dá)式的位寬;
該點(diǎn)的運(yùn)算器還包括倍點(diǎn)運(yùn)算器,對(duì)初始點(diǎn)P進(jìn)行倍點(diǎn),生成的倍點(diǎn):IP、2P、……np ;η為大于等于8小于等于17的自然數(shù);
以及點(diǎn)乘運(yùn)算器,對(duì)NAF (kp)與生成的倍點(diǎn)進(jìn)行點(diǎn)乘,直到運(yùn)算完成,輸出運(yùn)算結(jié)果。
[0028]如圖2所示,整個(gè)點(diǎn)乘運(yùn)算階段分為三部分,分別為標(biāo)量k的NAF表達(dá)式計(jì)算,初始預(yù)計(jì)算,類迭代乘法計(jì)算。
[0029]通過對(duì)標(biāo)量k進(jìn)行重新編碼,采用有符號(hào)二進(jìn)制編碼來減少二進(jìn)制編碼中的非零元個(gè)數(shù),能夠有效減 少點(diǎn)乘運(yùn)算中的點(diǎn)加運(yùn)算次數(shù),達(dá)到提升點(diǎn)乘算法效率的目的。
[0030]本發(fā)明所提出的k的NAF表達(dá)式計(jì)算電路,采用有符號(hào)編碼中的非相鄰有符號(hào)二進(jìn)制表示編碼NAF,使得k的二進(jìn)制表示中的非零元素的個(gè)數(shù)減少,減少點(diǎn)加次數(shù),減少點(diǎn)乘運(yùn)算步驟,電路運(yùn)算狀態(tài)轉(zhuǎn)移圖如圖3所示。
[0031]具體如下:
NAF_IDME:k的NAF表達(dá)式計(jì)算初始化階段,等待NAF計(jì)算啟動(dòng)信號(hào),由所述配置接口模塊給出,啟動(dòng)后,進(jìn)入下一步驟,即NAF_RK ;
NAF_RK:將標(biāo)量k從存儲(chǔ)單元3中從低位開始讀出,進(jìn)入循環(huán)加法器進(jìn)行計(jì)算,讀操作結(jié)束后,進(jìn)入NAF_K ;
NAF_K:生成 NAF(k) = Gv1...l^k。),進(jìn)入 NAF_K2KP ;
NAF_K2KP:進(jìn)行NAF (k)向NAF (kp)的轉(zhuǎn)換,轉(zhuǎn)換完成后進(jìn)入NAF_D0NE ;
NAF_D0NE:k的NAF計(jì)算完成,產(chǎn)生運(yùn)算完成中斷,中斷被清O后,進(jìn)入NAF_IDME,等待下一次運(yùn)算,以響應(yīng)新的請(qǐng)求。
[0032]計(jì)算標(biāo)量k的NAF (非鄰接形式)表達(dá)式的算法I如下:
輸入:k
輸出:NAF(kp)。
[0033]1.臨時(shí)變量c — k,k的NAF表達(dá)式位寬m — O ;向左的箭頭表示賦值,即設(shè)定一個(gè)臨時(shí)變量c,其初始值是k,而k的NAF表達(dá)式的初始位寬為0,m表示k的NAF表示式的位寬。
[0034]2.當(dāng)C〉O時(shí),重復(fù)執(zhí)行:
2.1 如果 c % 2 = = I,則 km— 2 (c mod 4),c — c km;否則 km — O ;“%”表示數(shù)學(xué)運(yùn)算“除法運(yùn)算后取余數(shù)”,“==”表示數(shù)學(xué)運(yùn)算符“等于”。
[0035]2.2 c - c/2, m —m + I。“/”表示數(shù)學(xué)運(yùn)算“除法運(yùn)算后取整數(shù)”
3.生成NAF (k) = (kw.l^ko)。[0036]4.1從m-1到0,重復(fù)執(zhí)行
如果 kj == I && ki_! == O && ki_2 == -1 貝丨J kpi= O,1,i — 1- 3 ;
否則如果1^ == -1 && ki_! == O && ki_2 == I 則 Iipi= O, kp^^kpi^= -1,i — 1- 3 ;
否則 Icpi= ki; i — 1-1。
[0037]5.生成 NAF(kp) = ( Iqv1 …Icp1Iip0)
預(yù)計(jì)算過程如圖3所示,對(duì)初始點(diǎn)P進(jìn)行倍點(diǎn)、點(diǎn)加運(yùn)算,可得到1P、2P…13P中任意一點(diǎn),由于可用RAM容量有限,暫存1P、5P、9P、13P點(diǎn),剩余點(diǎn)則在后續(xù)運(yùn)算過程中動(dòng)態(tài)生成,運(yùn)算過程狀態(tài)轉(zhuǎn)移圖如圖4所示。
[0038]PRE_IDME:預(yù)計(jì)算過程初始化階段,等待預(yù)計(jì)算啟動(dòng)信號(hào),進(jìn)入PRE_RM。
[0039]PRE_RM:將點(diǎn)P (xp,yp,zp)從存儲(chǔ)單元3中讀入到存儲(chǔ)單元I和存儲(chǔ)單元2中,將蒙哥馬利乘法輔助算子R,從存儲(chǔ)單元4讀入到存儲(chǔ)單元2中,讀操作結(jié)束后,進(jìn)入PRE_DP。
[0040]PRE_DP:對(duì)存儲(chǔ)單元I中的數(shù)據(jù)進(jìn)行倍點(diǎn)運(yùn)算,運(yùn)算完成后,判斷倍點(diǎn)運(yùn)算次數(shù)信號(hào)pre_dp_cnt,若為初次運(yùn)算,則產(chǎn)生2P點(diǎn)后進(jìn)入PRE_DPM ;若為2次運(yùn)算,則產(chǎn)生4P點(diǎn)后進(jìn)入PRE_DPM ;若為3次運(yùn)算,則產(chǎn)生8P點(diǎn)后,進(jìn)入PRE_MZ2B ;若為4次運(yùn)算,則產(chǎn)生12P點(diǎn)后,進(jìn)入PRE_MZ2B。pre_dp_cnt進(jìn)行步長(zhǎng)為I的累加。
[0041]PRE_MZ2B:判斷倍點(diǎn)運(yùn)算次數(shù)信號(hào)pre_dp_cnt與點(diǎn)加運(yùn)算次數(shù)信號(hào)pre_ap_cnt。pre_dp_cnt為2次運(yùn)算同時(shí)pre_ap_cnt為初次運(yùn)算,進(jìn)入PRE_AP,其它情況則進(jìn)入PRE_M1P。
[0042]PRE_AP:對(duì)存儲(chǔ)單元2中的數(shù)據(jù)進(jìn)行點(diǎn)加運(yùn)算,運(yùn)算完成后,判斷點(diǎn)加運(yùn)算次數(shù)信號(hào)pre_ap_cnt,若為初次運(yùn)算,則產(chǎn)生5P點(diǎn)后進(jìn)入PRE_DPM ;若為2次運(yùn)算,則產(chǎn)生6P點(diǎn)后進(jìn)入PRE_M6P ;若為3次運(yùn)算,則產(chǎn)生8P點(diǎn)后,進(jìn)入PRE_CPA ;若為4次運(yùn)算,則產(chǎn)生12P點(diǎn)后,進(jìn)入PRE_CPA。
[0043]PRE_M1P:將P點(diǎn)從存儲(chǔ)單元3中讀入到存儲(chǔ)單元I,與存儲(chǔ)單元2中的xP點(diǎn)進(jìn)行加法運(yùn)算,生成P+xP點(diǎn),運(yùn)算完成后進(jìn)入PRE_MZ2B。
[0044]PRE_M6P:將存儲(chǔ)單元2中的6P點(diǎn)讀入到存儲(chǔ)單元I中,準(zhǔn)備進(jìn)行12P點(diǎn)計(jì)算,讀入完成后,進(jìn)入PRE_DP。
[0045]PRE_CPA:判斷讀次數(shù)信號(hào) pre_rd_cnt,若 pre_rd_cnt 為 O,進(jìn)入 PRE_DPM ;若 pre_rd_cnt 為 I,進(jìn)入 PRE_M4P ;若 pre_rd_cnt 為 2,則進(jìn)入 PRE_DPM。判斷完成后,pre_rd_cnt進(jìn)行步長(zhǎng)為I的累加。
[0046]PRE_DPM:將存儲(chǔ)單元2中的結(jié)果讀入到存儲(chǔ)單元3中,讀出完成后,判斷倍點(diǎn)運(yùn)算次數(shù)信號(hào)pre_dp_cnt與點(diǎn)加運(yùn)算次數(shù)信號(hào)pre_ap_cnt。pre_dp_cnt為2次運(yùn)算,同時(shí)pre_ap_cnt為初次運(yùn)算,進(jìn)入PRE_DP ;pre_dp_cnt為3次運(yùn)算,同時(shí)pre_ap_cnt為初次運(yùn)算,進(jìn)入PRE_M1P ;pre_dp_cnt為3次運(yùn)算,同時(shí)pre_ap_cnt為2次運(yùn)算,進(jìn)入PRE_MZ2B ;pre_dp_cnt 為 4 次運(yùn)算,同時(shí) pre_ap_cn 為 4 次運(yùn)算,且 pre_rd_cnt 為 I,進(jìn)入 PRE_CPA ;pre_dp_cnt 為 4 次運(yùn)算,同時(shí) pre_ap_cnt 為 4 次運(yùn)算,且 pre_rd_cnt 為 2 進(jìn)入 PRE_D0NE。
[0047]PRE_D0NE:預(yù)計(jì)算完成,產(chǎn)生運(yùn)算完成中斷,中斷被清O后,進(jìn)入PRE_IDME,等待下一次運(yùn)算。
[0048]系統(tǒng)整體算法2如下:
輸入:標(biāo)量k,每個(gè)字所占位寬W,點(diǎn)P。[0049]輸出:Q= kP。
[0050]1.預(yù)計(jì)算:
對(duì)i從I到2w-3,計(jì)算Pi — iP。
[0051]2.Q — O。
[0052]3.1從m-1到0,重復(fù)執(zhí)行
3.1 若 Iipi= O,則 t — 1,u — O ;
否則,尋找一個(gè)最大的t < w使得u — kp^…,Iqvw是奇數(shù)。
[0053]3.2 Q — 2lQ
3.3 若u > 0,則Q — Q + Pu;
否則,若 u〈 0,則 Q — Q + P_u。
[0054]4.4 i — 1- t。
[0055]5.返回 Q。 [0056]從上述方案可以看出:
本方法適用于基數(shù)在素域中Jacobian加重射影坐標(biāo)系下的橢圓曲線公鑰密碼算法。為了滿足橢圓加密算法性能的要求,采用軟硬件協(xié)同工作的方式實(shí)現(xiàn)橢圓加密算法,將耗時(shí)的關(guān)鍵運(yùn)算用本方法直接實(shí)現(xiàn),其余部分用外部控制器的軟件實(shí)現(xiàn)。采用本方法,有以下有益效果:
1、涉及運(yùn)算全面,可以實(shí)現(xiàn)基于模的加法、減法、乘法、取逆、取模、取冪運(yùn)算;可以實(shí)現(xiàn)基于點(diǎn)的加法、乘法運(yùn)算;同時(shí)可以進(jìn)行RSA相關(guān)的基于模的2048位的加法、減法、比較、乘法運(yùn)算,所有運(yùn)算接口向外開放,可以通過總線寄存器接口進(jìn)行配置,靈活性大;
2、本方法利用了點(diǎn)乘次數(shù)k的新的NAF表示方法,使得k的二進(jìn)制表示中的非零元素的個(gè)數(shù)減少,所以進(jìn)行點(diǎn)加運(yùn)算的次數(shù)就會(huì)減少,減少了點(diǎn)乘的整體運(yùn)算時(shí)間;
3、本方法在預(yù)計(jì)算階段,采用4點(diǎn)計(jì)算法,可保證后續(xù)運(yùn)算點(diǎn)在最短時(shí)間內(nèi)完成,同時(shí)又不占用過多的數(shù)據(jù)存儲(chǔ)空間。
[0057]關(guān)于倍點(diǎn)的個(gè)數(shù),在前述的預(yù)計(jì)算中有所體現(xiàn),其數(shù)量的多寡跟硬件配置和加密的復(fù)雜程度相關(guān),本領(lǐng)域的技術(shù)人員據(jù)此可進(jìn)行選擇,推薦8~17個(gè),在硬件有更好的配置時(shí),可以選擇更多的個(gè)數(shù)。
【權(quán)利要求】
1.一種橢圓域曲線運(yùn)算方法,用于基數(shù)在素域中Jacobian加重射影坐標(biāo)系下的橢圓曲線公鑰密碼算法,其特征在于,該方法基于模的運(yùn)算,并同時(shí)基于點(diǎn)的運(yùn)算; 其中基于點(diǎn)的運(yùn)算為對(duì)初始點(diǎn)P的運(yùn)算,并對(duì)給定的標(biāo)量k采用有符號(hào)編碼中的非相鄰有符號(hào)二進(jìn)制編碼生成k的NAF表達(dá)式:NAF (kp)= (kpm-Ι……kplkpO),其中m為NAF表達(dá)式的位寬; 并對(duì)初始點(diǎn)P進(jìn)行倍點(diǎn),生成的倍點(diǎn):1P、2P、……np ;n為大于等于8小于等于17的自然數(shù); 對(duì)NAF (kp)與生成的倍點(diǎn)進(jìn)行點(diǎn)乘,直到運(yùn)算完成,輸出運(yùn)算結(jié)果。
2.根據(jù)權(quán)利要求1所述的橢圓域曲線運(yùn)算方法,其特征在于,對(duì)生成的倍點(diǎn)采用給定的數(shù)列通式選擇出初始倍點(diǎn),用于初始的點(diǎn)乘運(yùn)算,并在后續(xù)的點(diǎn)乘運(yùn)算中,給出點(diǎn)乘運(yùn)算邏輯; 若按照點(diǎn)乘運(yùn)算邏輯的路徑若邏輯出初始倍點(diǎn),則直接調(diào)用該邏輯出的初始倍點(diǎn)進(jìn)行運(yùn)算,若邏輯出其余的倍點(diǎn),則生成邏輯出的相應(yīng)倍點(diǎn)后進(jìn)行點(diǎn)乘運(yùn)算,直到的運(yùn)算完成。
3.根據(jù)權(quán)利要求2所述的橢圓域曲線運(yùn)算方法,其特征在于,所述數(shù)列通式采用等差數(shù)列通式。
4.根據(jù)權(quán)利要求2或3所述的橢圓域曲線運(yùn)算方法,其特征在于,點(diǎn)乘運(yùn)算邏輯采用倍點(diǎn)運(yùn)算次數(shù)和點(diǎn)加運(yùn)算次數(shù),給出不同倍點(diǎn)運(yùn)算次數(shù)和點(diǎn)加運(yùn)算次數(shù)的組合,以適配于各倍點(diǎn),并在相應(yīng)的倍點(diǎn)運(yùn)算或者點(diǎn)加運(yùn)算完成后,相應(yīng)的次數(shù)加一。
5.根據(jù)權(quán)利要求1至3任一所述的橢圓域曲線運(yùn)算方法,其特征在于,所述倍點(diǎn)的個(gè)數(shù)為13。
6.根據(jù)權(quán)利要求2所述的橢圓域曲線運(yùn)算方法,其特征在于,將初始倍點(diǎn)存放到存儲(chǔ)單元,其余的倍點(diǎn)在點(diǎn)乘運(yùn)算邏輯中生成。
7.一種橢圓域曲線運(yùn)算器,用于基數(shù)在素域中Jacobian加重射影坐標(biāo)系下的橢圓曲線公鑰密碼算法,其特征在于,包括模的運(yùn)算器和基于點(diǎn)的運(yùn)算器; 其中點(diǎn)的運(yùn)算器為對(duì)初始點(diǎn)P的運(yùn)算器,并對(duì)給定的標(biāo)量k采用有符號(hào)編碼中的非相鄰有符號(hào)二進(jìn)制編碼生成k的NAF表達(dá)式:NAF (kp) = (kpm-Ι……kplkpO),其中m為NAF表達(dá)式的位寬; 該點(diǎn)的運(yùn)算器還包括倍點(diǎn)運(yùn)算器,對(duì)初始點(diǎn)P進(jìn)行倍點(diǎn),生成的倍點(diǎn):1P、2P、……np ;η為大于等于8小于等于17的自然數(shù); 以及點(diǎn)乘運(yùn)算器,對(duì)NAF (kp)與生成的倍點(diǎn)進(jìn)行點(diǎn)乘,直到運(yùn)算完成,輸出運(yùn)算結(jié)果。
【文檔編號(hào)】G06F7/72GK103942031SQ201410171041
【公開日】2014年7月23日 申請(qǐng)日期:2014年4月28日 優(yōu)先權(quán)日:2014年4月28日
【發(fā)明者】劉奇浩, 劉大銪, 高美洲 申請(qǐng)人:山東華芯半導(dǎo)體有限公司