一種基于指令的大數(shù)點加、倍點運算電路及實現(xiàn)方法
【專利摘要】本發(fā)明公開了一種基于指令的大數(shù)點加、倍點運算電路,包括有限域運算層基礎(chǔ)運算電路,以及運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器,基礎(chǔ)運算電路根據(jù)運算命令操作碼寄存器中存儲的運算命令操作碼及運算順序,對操作數(shù)地址寄存器中存儲的操作數(shù)地址對應(yīng)的操作數(shù)進行基礎(chǔ)運算,并將運算結(jié)果存儲至操作結(jié)果地址寄存器存儲的操作結(jié)果地址處。本發(fā)明還提供一種基于指令的大數(shù)點加、倍點運算電路實現(xiàn)方法本發(fā)明。本發(fā)明解決了點加、倍點運算過程中對于有限域運算層的有序調(diào)用問題,并且結(jié)構(gòu)簡單、運算順序可配置,方便算法升級。
【專利說明】-種基于指令的大數(shù)點加、倍點運算電路及實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及微電子【技術(shù)領(lǐng)域】,尤其設(shè)及一種基于指令的大數(shù)點加、倍點運算電路 及實現(xiàn)方法。
【背景技術(shù)】
[000引 目前基于有限域上楠圓曲線離散對數(shù)問題的非對稱密碼算法ECC (Elliptic 化rve化yptography)被公認(rèn)為是最高比特強度的公鑰密碼體制,廣泛應(yīng)用于快速加密、密 鑰交換、身份驗證、數(shù)字簽名、保密通信等領(lǐng)域。
[0003] SM2楠圓曲線公鑰密碼算法作為ECC算法中的一種,加密強度為256位,安全性高、 存儲空間小、可W快速完成簽名、密鑰交換W及加密應(yīng)用。
[0004] SM2相關(guān)的運算邏輯可W視為獨立的單元進行設(shè)計,并且采用層次化的劃分方式 可W分為有限域運算層W及楠圓曲線運算層。有限域運算層的主要功能是提供SM2算法所 需要的數(shù)論運算支持,包括256位大整數(shù)模加、模減、模乘、模逆、模幕、比較。楠圓曲線運 算層由有限域運算層的各種基礎(chǔ)運算按照一定的規(guī)則進行排序后構(gòu)成,包括點加、倍點、點 乘、坐標(biāo)轉(zhuǎn)換。
[0005] 在楠圓曲線密碼體制中,核屯、運算是點乘,我們可W將點乘分解為兩種基本運算: 點加W及倍點,點加和倍點運算可W采用不同的坐標(biāo)系來實現(xiàn)。常用的坐標(biāo)系是仿射坐標(biāo) 系和化cobi投影坐標(biāo)系。本發(fā)明適用于基數(shù)在素數(shù)域中化cobian加重射影坐標(biāo)系下的楠 圓曲線公鑰密碼算法。在化cobian加重射影坐標(biāo)系下,令0點表示無窮遠(yuǎn)點,在有限域巧 內(nèi),E(巧)上點的加法運算定義如下: (1) 0+0=0 ; (2) --P = X,y, Z G E巧)I I 0,P+0=0+P=P ; (3) --P = X,y,z G E(Fp) II 0,P 的逆元素??P = Wx,?%3y,uz),u G Fp且 u 聲 0, P+(-P)=0 ; (4) 設(shè)點 Pi = (X。y。Zi) G E(Fp) I I 0, P2 = (X2, 72,Z2) G E(Fp) I I 0, Ps= Pi + P2 = (X3,73,Z3)聲0,若Pi聲P2,進行點加運算,則; 入 1 = XiZgS,入2 = X2Zi2,入 3 =入 1 --入2,入4 = YlZgS,入 5 = Y2Zi3,入6 =入4 --入 5, 入7 =入1 +入2,入8 =入4 +入5,Xs =入6] --入7入3],入9 =入7入3] -- 2又3, 73=(入 9 入 6 --入 8 入 S') /2,Z3 = Z& 入 3; 若P 1 = P2,進行倍點運算,則; 入 1 = 3Xi2 + aZi*,入 2 = AXiYi],入 3 = 8yi4,X3 =入 -- 2 入 2,73 =入1 (入 2 --又3) -- 入 3,Z3 二 2yiZi。
[0006] 對算法運算序列和硬件資源調(diào)度方式的優(yōu)化可W提升楠圓曲線密碼算法的性 能。如中國第CN101782845A發(fā)明針對點加和倍點算法,重新排列了修改的化cobian坐 標(biāo)點的點加和倍點運算序列,提出了一種實現(xiàn)點加運算和倍點運算的新方法;如中國第 CN101221491A發(fā)明利用化cobian坐標(biāo)系下楠圓曲線點加的計算公式,提取出相互獨立的 操作,構(gòu)造S級流水線電路結(jié)構(gòu);如中國第CNIO1262345A發(fā)明利用化cob ian坐標(biāo)系下楠圓 曲線倍點的計算公式,提取出相互獨立的操作,構(gòu)造=級流水線電路結(jié)構(gòu)。W上實現(xiàn)方法采 用固定運算序列,在系統(tǒng)升級W及可拓展性方面存在不足。
【發(fā)明內(nèi)容】
[0007] 為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于指令的大數(shù)點加、倍點運 算電路及實現(xiàn)方法,解決點加、倍點運算過程中對于有限域運算層的有序調(diào)用問題,結(jié)構(gòu)簡 單、運算順序可配置,方便算法升級。
[000引為實現(xiàn)上述目的,本發(fā)明采取如下技術(shù)方案: 一種基于指令的大數(shù)點加運算電路,包括有限域運算層基礎(chǔ)運算電路,W及運算命令 操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器,所述基礎(chǔ)運算電路根據(jù)運算命令 操作碼寄存器中存儲的運算命令操作碼及運算順序,對操作數(shù)地址寄存器中存儲的操作數(shù) 地址對應(yīng)的操作數(shù)進行基礎(chǔ)運算,并將運算結(jié)果存儲至操作結(jié)果地址寄存器存儲的操作結(jié) 果地址處。
[0009] 更進一步的,操作數(shù)地址和操作結(jié)果地址的地址尋址采用格式一致的指令結(jié)構(gòu), 包括操作數(shù)所在RAM選擇指令、操作數(shù)所在RAM地址指令。
[0010] 更進一步的,操作數(shù)所在RAM地址指令采用間接尋址的方式,經(jīng)地址指令解析電 路,查找當(dāng)前指令所對應(yīng)的地址。
[0011] 更進一步的,所述運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存 器均為非循環(huán)移位寄存器;優(yōu)選的,所述基礎(chǔ)運算電路包括模加運算電路、模減運算電路和 模乘運算電路。
[0012] 一種基于指令的大數(shù)倍點運算電路,包括有限域運算層基礎(chǔ)運算電路,W及運算 命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器,所述基礎(chǔ)運算電路根據(jù)運算 命令操作碼寄存器中存儲的運算命令操作碼及運算順序,對操作數(shù)地址寄存器中存儲的操 作數(shù)地址對應(yīng)的操作數(shù)進行基礎(chǔ)運算,并將運算結(jié)果存儲至操作結(jié)果地址寄存器存儲的操 作結(jié)果地址處。
[0013] 更進一步的,操作數(shù)地址和操作結(jié)果地址的地址尋址采用格式一致的指令結(jié)構(gòu), 包括操作數(shù)所在RAM選擇指令、操作數(shù)所在RAM地址指令。
[0014] 更進一步的,操作數(shù)所在RAM地址指令采用間接尋址的方式,經(jīng)地址指令解析電 路,查找當(dāng)前指令所對應(yīng)的地址。
[0015] 更進一步的,運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器均 為非循環(huán)移位寄存器;優(yōu)選的,所述基礎(chǔ)運算電路包括模加運算電路、模減運算電路和模乘 運算電路。
[0016] 一種基于指令的大數(shù)點加、倍點運算電路實現(xiàn)方法,包括如下步驟: (1) CPU向運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器依次寫入 所執(zhí)行的運算命令操作碼、操作數(shù)地址、操作結(jié)果地址; (2) 尋址并提取操作數(shù)地址寄存器當(dāng)前運算操作數(shù)地址對應(yīng)操作數(shù),然后輸入運算命 令操作碼寄存器當(dāng)前執(zhí)行運算命令對應(yīng)的基礎(chǔ)運算電路中進行運算,并將運算結(jié)果存儲至 操作結(jié)果地址寄存器當(dāng)前操作結(jié)果地址處; (3) 運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器左移進入下一次 執(zhí)行操作,判斷運算命令操作碼寄存器當(dāng)前運算命令操作碼是否全零,若是,表示楠圓曲線 運算完成,否則,重復(fù)步驟(2); (4) 楠圓曲線運算完成后,運算命令操作碼寄存器產(chǎn)生中斷信號通知CPU本次運算完 成,運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器返回到默認(rèn)狀態(tài)。
[0017] 優(yōu)選的,基礎(chǔ)運算電路包括模加運算電路、模減運算電路和模乘運算電路;所述運 算命令操作碼寄存器包括=個命令操作碼分別對應(yīng)模加運算電路、模減運算電路和模乘運 算電路。
[001引有益效果;(1)本發(fā)明采用自定義的運算操作碼、地址操作碼,構(gòu)建了內(nèi)部指令, 數(shù)據(jù)運算過程按照指令有步驟進行,避免了地址沖突,簡化了運算電路的設(shè)計復(fù)雜度。
[0019] (2)在傳統(tǒng)運算電路設(shè)計方法,運算過程中各階段的運算順序一般為固定,若后續(xù) 算法升級后,原電路并不能直接適用于新算法,需要對原硬件電路進行重新設(shè)計,增加了設(shè) 計成本和產(chǎn)品研發(fā)周期。在本方法中,采用現(xiàn)有運算順序可W完成點加、倍點操作,同時操 作碼寄存器單元面向CPU開放,軟件只需要重新配置運算操作碼寄存器、地址操作碼寄存 器,即可調(diào)整運算順序,方便算法進行升級。
[0020] (3)本發(fā)明在進行運算的全過程中,CPU不需要進行參與,只在運算開始前寫入原 始數(shù)據(jù),并在運算完成后讀出運算結(jié)果,降低了對CPU的載荷。
[0021] (4)本發(fā)明中采用間接尋址的方式,通過地址碼解析電對地址操作碼進行解析,可 W通過重新定義地址碼與實際地址的對應(yīng)規(guī)則,在不同的應(yīng)用環(huán)境下進行靈活配置,電路 結(jié)構(gòu)改動小。
【專利附圖】
【附圖說明】
[0022] 圖1為本發(fā)明提供的基于指令的大數(shù)點力日、倍點運算電路原理框圖。
[0023] 圖2為本發(fā)明運算命令操作碼的基本格式。
[0024] 圖3為本發(fā)明地址操作碼的基本格式。
【具體實施方式】
[0025] 下面結(jié)合附圖對本發(fā)明作更進一步的說明。
[0026] 本發(fā)明適用于基數(shù)在素域中化cobian加重射影坐標(biāo)系下的SM2楠圓曲線公鑰密 碼算法。完成一次SM2點加、倍點運算,需要多次調(diào)用有限域運算層,然而不同的算法實現(xiàn), 所采用的調(diào)用順序并不一致,因此需要一種擴展性強的點加、倍點運算方式。
[0027] 如圖1所示,本發(fā)明提供的一種基于指令的大數(shù)點加、倍點運算電路,包括運算命 令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器,W及有限域運算層中的模加運 算電路、模減運算電路和模乘運算電路,本實施例中優(yōu)選W模加運算電路、模減運算電路和 模乘運算電路作為基本運算單元實現(xiàn)有限域運算層的各種基礎(chǔ)運算,實際使用過程中,可 W根據(jù)需要增加或減少調(diào)用基礎(chǔ)運算單元的次數(shù),并且本實施例中的各基礎(chǔ)運算單元可采 用所有實現(xiàn)其運算功能的硬件邏輯單元,比如模加器、模減器或模乘器;另外,各基礎(chǔ)運算 單元之間還可采用所有實現(xiàn)其運算功能的硬件邏輯結(jié)構(gòu)。
[002引本發(fā)明通過自建指令:運算命令操作碼、操作數(shù)地址、操作結(jié)果地址,分別存儲在 運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器中,其中: 運算命令操作碼由2比特信號表示,表示點加和/或倍點運算順序,對應(yīng)規(guī)則;"01"表 示對兩個操作數(shù)進行模加運算;"10"表示對兩個操作數(shù)進行模減運算;"11"表示對兩個操 作數(shù)進行模乘運算;"00"表示當(dāng)前楠圓曲線運算完成,如表1所示。
[0029] 表1運算命令操作碼
【權(quán)利要求】
1. 一種基于指令的大數(shù)點加運算電路,包括有限域運算層基礎(chǔ)運算電路,其特征在于: 還包括運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器,所述基礎(chǔ)運算電 路根據(jù)運算命令操作碼寄存器中存儲的運算命令操作碼及運算順序,對操作數(shù)地址寄存器 中存儲的操作數(shù)地址對應(yīng)的操作數(shù)進行基礎(chǔ)運算,并將運算結(jié)果存儲至操作結(jié)果地址寄存 器存儲的操作結(jié)果地址處。
2. 根據(jù)權(quán)利要求1所述的一種基于指令的大數(shù)點加運算電路,其特征在于:所述操作 數(shù)地址和操作結(jié)果地址的地址尋址采用格式一致的指令結(jié)構(gòu),包括操作數(shù)所在RAM選擇指 令、操作數(shù)所在RAM地址指令。
3. 根據(jù)權(quán)利要求2所述的一種基于指令的大數(shù)點加運算電路,其特征在于:所述操作 數(shù)所在RAM地址指令采用間接尋址的方式,經(jīng)地址指令解析電路,查找當(dāng)前指令所對應(yīng)的 地址。
4. 根據(jù)權(quán)利要求1所述的一種基于指令的大數(shù)點加運算電路,其特征在于:所述運算 命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器均為非循環(huán)移位寄存器;所述 基礎(chǔ)運算電路包括模加運算電路、模減運算電路和模乘運算電路。
5. -種基于指令的大數(shù)倍點運算電路,包括有限域運算層基礎(chǔ)運算電路,其特征在于: 還包括運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器,所述基礎(chǔ)運算電 路根據(jù)運算命令操作碼寄存器中存儲的運算命令操作碼及運算順序,對操作數(shù)地址寄存器 中存儲的操作數(shù)地址對應(yīng)的操作數(shù)進行基礎(chǔ)運算,并將運算結(jié)果存儲至操作結(jié)果地址寄存 器存儲的操作結(jié)果地址處。
6. 根據(jù)權(quán)利要求5所述的一種基于指令的大數(shù)倍點運算電路,其特征在于:所述操作 數(shù)地址和操作結(jié)果地址的地址尋址采用格式一致的指令結(jié)構(gòu),包括操作數(shù)所在RAM選擇指 令、操作數(shù)所在RAM地址指令。
7. 根據(jù)權(quán)利要求6所述的一種基于指令的大數(shù)倍點運算電路,其特征在于:所述操作 數(shù)所在RAM地址指令采用間接尋址的方式,經(jīng)地址指令解析電路,查找當(dāng)前指令所對應(yīng)的 地址。
8. 根據(jù)權(quán)利要求5所述的一種基于指令的大數(shù)倍點運算電路,其特征在于:所述運算 命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器均為非循環(huán)移位寄存器;所述 基礎(chǔ)運算電路包括模加運算電路、模減運算電路和模乘運算電路。
9. 一種權(quán)利要求1或5所述基于指令的大數(shù)點加、倍點運算電路實現(xiàn)方法,其特征在于 包括如下步驟: (1) CPU向運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器依次寫入 所執(zhí)行的運算命令操作碼、操作數(shù)地址、操作結(jié)果地址; (2) 尋址并提取操作數(shù)地址寄存器當(dāng)前運算操作數(shù)地址對應(yīng)操作數(shù),然后輸入運算命 令操作碼寄存器當(dāng)前執(zhí)行運算命令對應(yīng)的基礎(chǔ)運算電路中進行運算,并將運算結(jié)果存儲至 操作結(jié)果地址寄存器當(dāng)前操作結(jié)果地址處; (3) 運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器左移進入下一次 執(zhí)行操作,判斷運算命令操作碼寄存器當(dāng)前運算命令操作碼是否全零,若是,表示橢圓曲線 運算完成,否則,重復(fù)步驟(2); (4 )橢圓曲線運算完成后,運算命令操作碼寄存器產(chǎn)生中斷信號,通知CPU本次運算完 成,運算命令操作碼寄存器、操作數(shù)地址寄存器、操作結(jié)果地址寄存器返回到默認(rèn)狀態(tài)。
10.根據(jù)權(quán)利要求9所述的一種基于指令的大數(shù)倍點運算電路,其特征在于:所述基礎(chǔ) 運算電路包括模加運算電路、模減運算電路和模乘運算電路;所述運算命令操作碼寄存器 包括三個命令操作碼分別對應(yīng)模加運算電路、模減運算電路和模乘運算電路。
【文檔編號】G06F7/72GK104503730SQ201410573820
【公開日】2015年4月8日 申請日期:2014年10月24日 優(yōu)先權(quán)日:2014年10月24日
【發(fā)明者】劉奇浩, 孫曉寧, 劉大銪, 趙陽, 王運哲, 劉守浩 申請人:山東華芯半導(dǎo)體有限公司