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

一種素域橢圓曲線加密的點(diǎn)乘加速電路的制作方法

文檔序號(hào):7549941閱讀:493來(lái)源:國(guó)知局
專利名稱:一種素域橢圓曲線加密的點(diǎn)乘加速電路的制作方法
技術(shù)領(lǐng)域
本發(fā)明提供一種素域橢圓曲線加密算法的點(diǎn)乘加速電路硬件結(jié)構(gòu),屬于對(duì)復(fù)雜計(jì)算的硬件加速領(lǐng)域。
背景技術(shù)
橢圓曲線密碼(ECC)是1985年由N.Koblitz和V.Miller提出的。橢圓曲線密碼屬于公鑰密碼體制,它的安全性建立在橢圓曲線離散對(duì)數(shù)問(wèn)題(ECDLP)的困難性之上,而現(xiàn)在求解E⑶LP最好的算法具有全指數(shù)時(shí)間復(fù)雜度,這意味著對(duì)于達(dá)到期望的安全程度,橢圓曲線密碼可以使用較RSA密碼更短的密鑰。由于密鑰短的優(yōu)點(diǎn)使得橢圓曲線加解密不僅速度快,而且還能節(jié)省能源、帶寬和存儲(chǔ)空間。具體到橢圓曲線的加密算法的整個(gè)計(jì)算過(guò)程,點(diǎn)乘運(yùn)算是最耗時(shí)的部分。本技術(shù)領(lǐng)域亟待改進(jìn)這一部分的加速電路硬件結(jié)構(gòu)。

發(fā)明內(nèi)容
本發(fā)明針對(duì)傳統(tǒng)硬件或者軟件算法上點(diǎn)乘運(yùn)算效率低下的問(wèn)題,提供了一種點(diǎn)乘加速電路結(jié)構(gòu),能夠明顯提高點(diǎn)乘運(yùn)算的速度并能減少硬件使用資源。本發(fā)明提供一種素域橢圓曲線加密的點(diǎn)乘加速電路,用于計(jì)算Q = k.Ρ,其中k為計(jì)算點(diǎn)乘的次數(shù),P點(diǎn)是橢圓曲線上的一個(gè)點(diǎn),Q點(diǎn)是橢圓曲線上的另一個(gè)點(diǎn),其特征在于:包括初始化寄存器、點(diǎn)加運(yùn)算模塊、點(diǎn)減運(yùn)算模塊、倍點(diǎn)運(yùn)算模塊、移位寄存器、比較器、二選一選擇器和結(jié)果寄存器,點(diǎn)加運(yùn)算模塊、點(diǎn)減運(yùn)算模塊、倍點(diǎn)運(yùn)算模塊和移位寄存器并行執(zhí)行;所述初始化寄存器,輸入端輸入Q點(diǎn)初始化的值,Q點(diǎn)初始化的值為橫縱坐標(biāo)都為零,輸出端分別接到點(diǎn)加運(yùn)算模塊和點(diǎn)減運(yùn)算模塊;所述點(diǎn)加運(yùn)算模塊,用于計(jì)算Q=Q+P,輸入端接到初始化寄存器的輸出端,輸出端接到二選一選擇器;所述點(diǎn)減運(yùn)算模塊,用于計(jì)算Q=Q-P,輸入端接到初始化寄存器的輸出端,輸出端接到二選一選擇器;所述倍點(diǎn)運(yùn)算模塊,輸入端輸入橢圓曲線上P點(diǎn)坐標(biāo),即P點(diǎn)的橫縱坐標(biāo),輸出端為P點(diǎn)經(jīng)過(guò)倍點(diǎn)P=2P之后的值;所述移位寄存器,輸入值為隨機(jī)數(shù)k經(jīng)過(guò)NAF編碼之后的值NAF (k),將NAF (k)右移兩位后的結(jié)果通過(guò)輸出端接到比較器和二選一選擇器;所述二選一選擇器,用于根據(jù)NAF (k)的低兩位k[1(l]選擇輸出,k[1(l] = 01時(shí)輸出點(diǎn)加運(yùn)算模塊輸出結(jié)果到結(jié)果寄存器,k[10]=ll時(shí)輸出點(diǎn)減運(yùn)算模塊輸出結(jié)果到結(jié)果寄存器;所述比較器,輸入值為移位寄存器的輸出和0,比較后產(chǎn)生控制信號(hào)經(jīng)輸出端接入到結(jié)果寄存器或點(diǎn)加運(yùn)算模塊、點(diǎn)減運(yùn)算模塊、倍點(diǎn)運(yùn)算模塊和移位寄存器;所述結(jié)果寄存器,輸入端接到二選一選擇器的輸出端,在比較器的控制信號(hào)下從輸出端輸出Q點(diǎn)的橫縱坐標(biāo)。而且,執(zhí)行流程采用狀態(tài)機(jī)實(shí)現(xiàn)控制。采用傳統(tǒng)的對(duì)k的二進(jìn)制NAF計(jì)算點(diǎn)乘算法中,點(diǎn)加和倍點(diǎn)運(yùn)算是全串行的,隨著位寬m的增加,計(jì)算時(shí)間成線性增加。本發(fā)明給出了一種全并行的點(diǎn)乘電路,利用了點(diǎn)加運(yùn)算Q=Q+P、倍點(diǎn)運(yùn)算P=2P和NAF移位的并行計(jì)算特征,采用全并行的方式,大大提高了運(yùn)行速度,同時(shí)實(shí)現(xiàn)過(guò)程簡(jiǎn)單。本發(fā)明利用了點(diǎn)乘次數(shù)k的新的NAF表示方法,使得k的二進(jìn)制表示中的非零元素的個(gè)數(shù)減少,所以計(jì)算點(diǎn)加的次數(shù)就會(huì)減少。假設(shè)一個(gè)m位的k,經(jīng)過(guò)NAF編碼之后,點(diǎn)加的平均計(jì)算時(shí)間約為mA/3(A代表點(diǎn)加運(yùn)算時(shí)間)。而且通過(guò)對(duì)NAF (k)的右移操作和對(duì)NAF(k)是否為“O”的判斷,來(lái)控制點(diǎn)加和倍點(diǎn)的運(yùn)算次數(shù)。當(dāng)k的值為“O”時(shí)點(diǎn)加運(yùn)算將會(huì)自動(dòng)終止,節(jié)省了運(yùn)算時(shí)間。本發(fā)明的加速電路比固定地執(zhí)行2m次點(diǎn)操作要靈活得多,同時(shí)算法可以實(shí)現(xiàn)任意位長(zhǎng)的點(diǎn)乘運(yùn)算,電路結(jié)構(gòu)上只需要一個(gè)2m位的移位器和相應(yīng)的控制電路,資源需求少,適合在FPGA或者ASIC中實(shí)現(xiàn)。


圖1是本發(fā)明實(shí)施例點(diǎn)乘運(yùn)算的原理圖;圖2是本發(fā)明實(shí)施例狀態(tài)機(jī)控制點(diǎn)乘運(yùn)算的狀態(tài)圖;圖3是本發(fā)明實(shí)施例點(diǎn)乘電路的結(jié)構(gòu)圖。
具體實(shí)施例方式下面結(jié)合附圖與具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明:通用的橢圓曲線 滿足Weierstrass方程,y2 = x3+ax+b,并且有:a、b e Zp, Zp為素域,Δ = 4a3+27b2幸Omodp, p為素?cái)?shù),初始化橢圓曲線參數(shù)a和b后,確定了本發(fā)明中的橢圓曲線E。素域點(diǎn)乘表示形式一般為:Q = k.P其中k為計(jì)算點(diǎn)乘的次數(shù),點(diǎn)P是橢圓曲線上位寬為m的點(diǎn)。傳統(tǒng)素域點(diǎn)乘算法中采用的點(diǎn)乘次數(shù)k的NAF方法為:輸入:一個(gè)正整數(shù)k輸出:NAF(k)1、i = O ;2、當(dāng)k彡I時(shí),重復(fù)執(zhí)行步驟3至步驟5 ;3、若k是奇數(shù),則kj — 2- (kmod4), k — ^kiCki代表k值相應(yīng)地第i位,i從O開(kāi)始加,即從k的最低位開(kāi)始賦值,通過(guò)步驟5中i的每次加1,最終得到NAF (k)的最高位的值);4、否則,ki —O; 5、k — k/2, i — i+1 ;6、返回(kg,V2,...,k1; k0),即k值經(jīng)過(guò)NAF編碼之后得到的二進(jìn)制數(shù)值,最低位記做1 ,最高位記做kg。NAF方法是將二進(jìn)制表示的k值進(jìn)行重新編碼,編碼后的k值用二進(jìn)制表示每一位會(huì)有三種情況± I和O,經(jīng)過(guò)NAF編碼之后,二進(jìn)制表示的k值中非零元素的個(gè)數(shù)會(huì)減少,在此基礎(chǔ)上,相應(yīng)的需要計(jì)算點(diǎn)加的次數(shù)就會(huì)減少,從而達(dá)到了提高速度的目的。利用二進(jìn)制NAF計(jì)算點(diǎn)乘算法如下:輸入:一個(gè)正整數(shù)k,P e E(Fp) (P是橢圓曲線上的一個(gè)點(diǎn))。輸出:kP。1、用上面的NAF算法計(jì)算NAF (k)。2、Q=O;3、對(duì)于i從m-Ι到0,重復(fù)執(zhí)行步驟3.1至3.33.1Q=2Q03.2若匕=1,則0=0+卩。3.3 若 Iii=-1,則 Q=Q-P。4、返回(Q)。由上面的二進(jìn)制NAF計(jì)算點(diǎn)乘的算法可看出,3.1、3.2和3.3這三個(gè)步驟是相互關(guān)聯(lián)的,只能采用串行的執(zhí)行順序,在速度上受了很大的制約。本發(fā)明將二進(jìn)制NAF計(jì)算點(diǎn)乘的算法進(jìn)行改進(jìn),使得點(diǎn)加和倍點(diǎn)運(yùn)算可以同時(shí)執(zhí)行,在速度上有很大的提高。同時(shí),通過(guò)對(duì)k的移位操作來(lái)控制對(duì)k的低位的判斷,硬件實(shí)現(xiàn)具有簡(jiǎn)潔性。如圖1所示,本發(fā)明的點(diǎn)乘二進(jìn)制算法如下:輸入:k= Gv1…,kAkl (下標(biāo)2代表二進(jìn)制表示),P為有限域(素域或二進(jìn)制域)上的任意一點(diǎn)。輸出:kP運(yùn)算過(guò)程如下:1、計(jì)算 NAF (k);2、Q = 0;3、k關(guān)O情況下,重復(fù)執(zhí)行步驟3.1至3,4 ;3.1 若 k[10] = 01,則 Q=Q+P ;3.2Sk[1(l]=lUjQ=Q-P;3.3P=2P ;3.4k = k >> 2,即將 k 右移 2 位;4、若k = O,則執(zhí)行步驟5 ;5、返回(Q)。點(diǎn)Q的初始值是零,在步驟3中,發(fā)揮硬件電路中并行的特點(diǎn),在狀態(tài)機(jī)的控制下來(lái)實(shí)現(xiàn)點(diǎn)加、點(diǎn)減、倍點(diǎn)和移位的運(yùn)算,最終通過(guò)NAF(k)和零值相等來(lái)退出步驟3,輸出Q點(diǎn)的結(jié)果。這樣就完成了一次點(diǎn)乘運(yùn)算。本發(fā)明實(shí)施例提供的點(diǎn)乘加速電路結(jié)構(gòu)包括:一個(gè)初始化寄存器,輸入端輸入Q點(diǎn)初始化的值,即Q點(diǎn)的橫縱坐標(biāo)都為零(q_x=0, q_y=0 ),輸出端分別接到點(diǎn)加運(yùn)算模塊和點(diǎn)減運(yùn)算模塊。

點(diǎn)加運(yùn)算模塊,具體可設(shè)計(jì)為包括模加、模減、模乘和模逆模塊。為了計(jì)算點(diǎn)加,有公式:
權(quán)利要求
1.一種素域橢圓曲線加密的點(diǎn)乘加速電路,用于計(jì)算Q = k.P,其中k為計(jì)算點(diǎn)乘的次數(shù),P點(diǎn)是橢圓曲線上的一個(gè)點(diǎn),Q點(diǎn)是橢圓曲線上的另一個(gè)點(diǎn),其特征在于:包括初始化寄存器、點(diǎn)加運(yùn)算模塊、點(diǎn)減運(yùn)算模塊、倍點(diǎn)運(yùn)算模塊、移位寄存器、比較器、二選一選擇器和結(jié)果寄存器,點(diǎn)加運(yùn)算模塊、點(diǎn)減運(yùn)算模塊、倍點(diǎn)運(yùn)算模塊和移位寄存器并行執(zhí)行; 所述初始化寄存器,輸入端輸入Q點(diǎn)初始化的值,Q點(diǎn)初始化的值為橫縱坐標(biāo)都為零,輸出端分別接到點(diǎn)加運(yùn)算模塊和點(diǎn)減運(yùn)算模塊; 所述點(diǎn)加運(yùn)算模塊,用于計(jì)算Q=Q+P,輸入端接到初始化寄存器的輸出端,輸出端接到二選一選擇器; 所述點(diǎn)減運(yùn)算模塊,用于計(jì)算Q=Q_P,輸入端接到初始化寄存器的輸出端,輸出端接到二選一選擇器; 所述倍點(diǎn)運(yùn)算模塊,輸入端輸入橢圓曲線上P點(diǎn)坐標(biāo),即P點(diǎn)的橫縱坐標(biāo),輸出端為P點(diǎn)經(jīng)過(guò)倍點(diǎn)P=2P之后的值; 所述移位寄存器,輸入值為隨機(jī)數(shù)k經(jīng)過(guò)NAF編碼之后的值NAF (k),將NAF (k)右移兩位后的結(jié)果通過(guò)輸出端接到比較器和二選一選擇器; 所述二選一選擇器,用于根據(jù)NAF (k)的低兩位k[1(l]選擇輸出,k[1(l] = Ol時(shí)輸出點(diǎn)加運(yùn)算模塊輸出結(jié)果到結(jié)果寄存器,k[10]=ll時(shí)輸出點(diǎn)減運(yùn)算模塊輸出結(jié)果到結(jié)果寄存器; 所述比較器,輸入值為移位寄存器的輸出和0,比較后產(chǎn)生控制信號(hào)經(jīng)輸出端接入到結(jié)果寄存器或點(diǎn)加運(yùn)算模塊、點(diǎn)減運(yùn)算模塊、倍點(diǎn)運(yùn)算模塊和移位寄存器; 所述結(jié)果寄存器,輸入端接到二選一選擇器的輸出端,在比較器的控制信號(hào)下從輸出端輸出Q點(diǎn)的橫縱坐標(biāo)。
2.如權(quán)利要求1所述素域橢圓曲線加密的點(diǎn)乘加速電路,其特征在于:執(zhí)行流程采用狀態(tài)機(jī)實(shí)現(xiàn)控制。
全文摘要
一種素域橢圓曲線加密的點(diǎn)乘加速電路,用于計(jì)算Q=k·P,其中k為計(jì)算點(diǎn)乘的次數(shù),P點(diǎn)是橢圓曲線上的一個(gè)點(diǎn),Q點(diǎn)是橢圓曲線上的另一個(gè)點(diǎn);包括初始化寄存器、點(diǎn)加運(yùn)算模塊、點(diǎn)減運(yùn)算模塊、倍點(diǎn)運(yùn)算模塊、移位寄存器、比較器、二選一選擇器和結(jié)果寄存器,其中點(diǎn)加運(yùn)算模塊、點(diǎn)減運(yùn)算模塊、倍點(diǎn)運(yùn)算模塊和移位寄存器并行執(zhí)行。本發(fā)明通過(guò)對(duì)NAF(k)的右移操作和對(duì)NAF(k)是否為“0”的判斷,來(lái)控制點(diǎn)加和倍點(diǎn)的運(yùn)算次數(shù),NAF(k)為k的非相鄰表示型數(shù)值。當(dāng)k的值為“0”時(shí)點(diǎn)加運(yùn)算將會(huì)自動(dòng)終止,節(jié)省了運(yùn)算時(shí)間。本發(fā)明的加速電路比固定地執(zhí)行2m次點(diǎn)操作要靈活得多,算法在實(shí)現(xiàn)任意位長(zhǎng)的點(diǎn)乘運(yùn)算時(shí)只需要一個(gè)2m位的移位器和相應(yīng)的控制電路,資源需求少,適合在FPGA或者ASIC中實(shí)現(xiàn)。
文檔編號(hào)H04L9/06GK103078732SQ20131000608
公開(kāi)日2013年5月1日 申請(qǐng)日期2013年1月8日 優(yōu)先權(quán)日2013年1月8日
發(fā)明者江先陽(yáng), 周正, 李彬, 唐從學(xué) 申請(qǐng)人:武漢大學(xué)
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宜春市| 鞍山市| 团风县| 两当县| 英超| 峨山| 绿春县| 龙门县| 哈巴河县| 甘谷县| 德州市| 南宁市| 延长县| 兴海县| 龙里县| 孟州市| 新绛县| 旬阳县| 兖州市| 唐海县| 内江市| 深泽县| 即墨市| 宜春市| 邹平县| 北海市| 鲁甸县| 大荔县| 蒲城县| 南部县| 饶阳县| 道孚县| 余江县| 环江| 古蔺县| 石楼县| 兴仁县| 岑巩县| 沾化县| 新巴尔虎左旗| 克东县|