国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于有限域gf(2的制作方法

      文檔序號:6560783閱讀:171來源:國知局
      專利名稱:基于有限域gf(2的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明為針對有限域GF(2m)上圓錐曲線的公鑰密碼體制而建立在硬件芯片上的加密、解密方法,屬于信息安全領(lǐng)域。
      背景技術(shù)
      密碼技術(shù)已經(jīng)成為信息安全的核心技術(shù)。人們利用計算機(jī)網(wǎng)絡(luò)通信時,所面臨的信息保密性、完整性、可用性和防欺騙性等問題,都可以通過密碼技術(shù)來解決。當(dāng)今的密碼技術(shù)可以大致分為兩種體制私鑰密碼體制(又稱對稱密碼體制)和公鑰密碼體制(又稱非對稱密碼體制)。由于公鑰密碼體制在密鑰協(xié)商、數(shù)字簽名、消息認(rèn)證等方面的重要優(yōu)勢,因此,已逐漸成為當(dāng)今密碼技術(shù)的核心。
      圓錐曲線密碼體制是一種新型的公鑰密碼體制,在圓錐曲線上的各項(xiàng)計算比橢圓曲線上更簡單,并且圓錐曲線上的離散對數(shù)問題在圓錐曲線的階和橢圓曲線的階相同的情況下,是一個不比橢圓曲線容易的問題。所以,圓錐曲線密碼學(xué)已成為密碼學(xué)中的一個重要的研究領(lǐng)域,迄今為止對圓錐曲線密碼學(xué)的研究成果都是以有限域GF(p)上的圓錐曲線為基礎(chǔ)的算法,沒有任何裝置出現(xiàn)。由于在有限域GF(2m)上的各項(xiàng)運(yùn)算更適宜軟、硬件實(shí)現(xiàn),因此,若把有限域GF(p)上的圓錐曲線公鑰密碼算法推廣到有限域GF(2m)上,并利用硬件對運(yùn)算進(jìn)行處理和實(shí)現(xiàn),將顯著提高圓錐曲線公鑰密碼算法的運(yùn)算速度。利用有限域GF(2m)上的圓錐曲線公鑰思想在硬件芯片上實(shí)現(xiàn)圓錐曲線公鑰密碼算法大大拓展了該算法在實(shí)際中的應(yīng)用。

      發(fā)明內(nèi)容
      本發(fā)明的主要目的在于提出在硬件平臺上提高圓錐曲線公鑰加密、解密計算速度的方法。本發(fā)明具體的創(chuàng)新點(diǎn)在于提出了基于有限域GF(2m)的圓錐曲線,并通過ElGamal公鑰加密方案實(shí)現(xiàn)基于圓錐曲線上的加密、解密算法,及此算法在硬件芯片上的實(shí)現(xiàn)。
      一種基于有限域GF(2m)的圓錐曲線公鑰加密方法,其特征在于,它包括以下步驟
      1)將有限域GF(2m)上的圓錐曲線C(GF(2m))固化在Flash Rom中,其中圓錐曲線C(GF(2m))的定義為C(GF(2m))∶y2+xy=ax2+bx modf(x),a,b∈GF(2m)為圓錐曲線上的參數(shù),且其中f(x)是構(gòu)造有限域GF(2m)的既約多項(xiàng)式,次數(shù)m=deg(f)為域長度,引入?yún)?shù)t,其幾何解釋為原點(diǎn)(0,O)和點(diǎn)P=p(t)∈C(GF(2m))所確定直線的斜率,那么,有限域GF(2m)上圓錐曲線的全部點(diǎn)表示為C(GF(2m))∶P={p(t)=(x,y)=(b(t2+t+a)-1,bt(t2+t+a)-1)|t∈GF(2m),t2+t≠a}∪{p(∞)=(0,0)}其中,(t2+t+a)-1為(t2+t+a)在有限域GF(2m)上的乘法逆元,它可利用擴(kuò)展歐幾里得算法求解;將圓錐曲線C(GF(2m))上的加法運(yùn)算規(guī)則、加法逆運(yùn)算規(guī)則、編碼算法規(guī)則、解碼算法規(guī)則固化在圓錐曲線基本運(yùn)算單元CCCB中,其中圓錐曲線C(GF(2m))上加法運(yùn)算的定義為①對于P=p(t)∈C(GF(2m)),滿足p(t)p(∞)=p(∞)p(t)=p(t);②設(shè)P1=p(t1),P2=p(t2),P3=p(t3)∈C(GF(2m))且t1,t2≠∞,定義P1P2=P3,即p(t1)p(t2)=p(t3),其中 圓錐曲線C(GF(2m))上的加法逆運(yùn)算的定義為C(GF(2m))上點(diǎn)P=p(t)的逆元記作-P,-P也是C(GF(2m))上一點(diǎn),且-P=p(t+1),-p(∞)=p(∞);編碼算法的定義為m→p(m)或m→(xm,ym)=(b(m2+m+a)-1,bm(m2+m+a)-1);解碼算法的定義為p(m)→m或ym xm-1→m;圓錐曲線C(GF(2m))上的點(diǎn)和加法運(yùn)算構(gòu)成有限交換群,且該群的階#C(GF(2m)),即圓錐曲線C(GF(2m))的點(diǎn)數(shù)為 將標(biāo)量乘運(yùn)算規(guī)則固化在標(biāo)量乘運(yùn)算單元CCCM中,其中圓錐曲線C(GF(2m))上標(biāo)量乘運(yùn)算的定義為k是一個整數(shù)且P=p(t)∈C(GF(2m)),記 2)隨機(jī)數(shù)發(fā)生器RG隨機(jī)選擇圓錐曲線C(GF(2m)上的一個基點(diǎn)P=p(g),并隨機(jī)產(chǎn)生一個整數(shù)d,其中點(diǎn)P的階為ord(P),d∈
      ,將d作為私鑰,控制器Controller啟動圓錐曲線公鑰加密/解密芯片CCED,圓錐曲線公鑰加密/解密芯片CCED的標(biāo)量乘運(yùn)算單元CCCM自動進(jìn)行私鑰d與基點(diǎn)P的標(biāo)量乘運(yùn)算Q=p(q)=dP==dp(g),得到公鑰Q,以上參數(shù)暫存在參數(shù)寄存器PReg中,并保存到Flash ROM中;3)圓錐曲線公鑰加密/解密芯片CCED的主控制器MC將加密解密流程控制器ENDEU的工作模式選為加密,加密解密流程控制器ENDEU控制圓錐曲線基本運(yùn)算單元CCCB將存儲器Memory中的明文m編碼為M=p(m),并從FlashROM中獲取公鑰Q,然后隨機(jī)數(shù)發(fā)生器RG隨機(jī)生成整數(shù)k∈
      ,加密解密流程控制器ENDEU控制標(biāo)量乘運(yùn)算單元CCCM將k分別與圓錐曲線基點(diǎn)P和公鑰Q進(jìn)行標(biāo)量乘運(yùn)算,得到kP和kQ,其中kP記為c1;然后,加密解密流程控制器ENDEU控制圓錐曲線基本運(yùn)算單元CCCB將M與kQ做加法運(yùn)算,得到M(kQ),記為c2,則對明文m的加密結(jié)果為(c1,c2),并將密文(c1,c2)輸出到存儲器Memory;4)圓錐曲線公鑰加密/解密芯片CCED的主控制器MC將加密解密流程控制器ENDEU的工作模式選為解密,圓錐曲線基本運(yùn)算單元CCCB控制標(biāo)量乘運(yùn)算單元CCCM讀取暫存在Flash Rom中的私鑰d與c1進(jìn)行點(diǎn)乘運(yùn)算得到dc1,然后,加密解密流程控制器ENDEU控制圓錐曲線基本運(yùn)算單元CCCB計算dc1的逆元-(dc1)以及c2與-(dc1)的加法運(yùn)算,得到p(m),并將p(m)解碼為明文m,輸出到存儲器Memory。
      一種實(shí)現(xiàn)基于有限域GF(2m)的圓錐曲線公鑰加密方法的裝置,其特征在于主要由圓錐曲線公鑰加密/解密芯片CCED與控制器Controller、存儲器Memory和隨機(jī)數(shù)發(fā)生器RG組成,它們組合使用完成數(shù)據(jù)加密和解密運(yùn)算RG產(chǎn)生系統(tǒng)建立時所需的隨機(jī)數(shù),控制器Controller通過圓錐曲線公鑰加密/解密芯片CCED來選擇工作方式為輸入?yún)?shù)、加密或解密,圓錐曲線公鑰加密/解密芯片CCED通過加法運(yùn)算、加法逆運(yùn)算、編碼算法、解碼算法和標(biāo)量乘運(yùn)算完成數(shù)據(jù)的加密或解密運(yùn)算,運(yùn)算結(jié)果回送存儲器Memory;所述的圓錐曲線加密解密芯片CCED主要由Flash ROM、參數(shù)寄存器PReg、輸入寄存器IReg、加密解密流程控制器ENDEU、圓錐曲線基本運(yùn)算單元CCCB、標(biāo)量乘運(yùn)算單元CCCM、二進(jìn)制域控制運(yùn)算單元F2M、和主控制器MC模塊組成,各模塊之間的邏輯關(guān)系為
      Flash ROM用于存儲定義在有限域GF(2m)上的圓錐曲線C(GF(2m))、加密參數(shù)和解密參數(shù)以供參數(shù)寄存器PReg讀寫;參數(shù)寄存器PReg用于為加密解密流程控制器ENDEU提供參數(shù),將讀入的數(shù)據(jù)進(jìn)行整理、寫入Flash ROM或從Flash ROM中讀取參數(shù);輸入寄存器IReg用于暫存明文和密文,將讀入的數(shù)據(jù)進(jìn)行整理,并輸出到加密解密流程控制器ENDEU中;加密解密流程控制器ENDEU用于進(jìn)行加密或解密每一步流程的控制,從輸入寄存器Ireg中讀取數(shù)據(jù),并交給標(biāo)量乘運(yùn)算單元CCCM或圓錐曲線基本運(yùn)算單CCCB進(jìn)行計算;圓錐曲線基本運(yùn)算單元CCCB用于實(shí)現(xiàn)在GF(2m)域上的加、乘、求逆運(yùn)算,它在加密解密流程控制器ENDEU與標(biāo)量乘運(yùn)算單元CCCM的控制下進(jìn)行工作,并根據(jù)所選擇運(yùn)算的流程啟動二進(jìn)制域控制運(yùn)算單元F2M來執(zhí)行所選運(yùn)算在GF(2m)域上的流程;標(biāo)量乘運(yùn)算單元CCCM用于實(shí)現(xiàn)圓錐曲線的標(biāo)量乘計算,在加密解密流程控制器ENDEU的控制下通過啟動圓錐曲線基本運(yùn)算單元CCCB來進(jìn)行工作,在啟動圓錐曲線基本運(yùn)算單元CCCB的過程中,通過標(biāo)量乘運(yùn)算單元CCCM將加密解密流程控制器ENDEU暫停工作,直到該標(biāo)量乘運(yùn)算完成;二進(jìn)制域控制運(yùn)算單元F2M為圓錐曲線基本運(yùn)算單元CCCB和標(biāo)量乘運(yùn)算單元CCCM運(yùn)算的基礎(chǔ),它用于實(shí)現(xiàn)二進(jìn)制計算,通過譯碼器選擇性地啟動二進(jìn)制域加法運(yùn)算器F2MA、乘法運(yùn)算器F2MM及求逆運(yùn)算器F2MR進(jìn)行計算,并暫存運(yùn)算結(jié)果;主控制器MC用于控制的圓錐曲線加密解密芯片CCED的工作模式。
      本發(fā)明把有限域GF(p)上的圓錐曲線公鑰密碼算法推廣到有限域GF(2m)上,并利用硬件對運(yùn)算進(jìn)行處理和實(shí)現(xiàn),顯著提高了圓錐曲線公鑰密碼算法的運(yùn)算速度,并大大拓展了圓錐曲線公鑰密碼算法在實(shí)際中的應(yīng)用。


      圖1圓錐曲線加密/解密芯片與控制器、存儲器、隨機(jī)數(shù)發(fā)生器集成圖;圖2圓錐曲線C(GF(2m))上實(shí)現(xiàn)ElGamal加密方案算法框圖;圖3圓錐曲線加密/解密芯片內(nèi)部結(jié)構(gòu)及數(shù)據(jù)通路圖。
      具體實(shí)施例方式根據(jù)圖2-3完成本發(fā)明的具體實(shí)現(xiàn)過程,具體的實(shí)施方案為1.有限域GF(2m)上圓錐曲線基本計算模塊的原理1)將有限域GF(2m)上的圓錐曲線C(GF(2m))固化在Flash Rom中,其中圓錐曲線C(GF(2m))的定義為C(GF(2m))∶y2+xy≡ax2+bx modf(x),a,b∈GF(2m),其中f(x)是構(gòu)造有限域GF(2m)的既約多項(xiàng)式,次數(shù)m=deg(f)。引入?yún)?shù)t,其幾何解釋為原點(diǎn)(0,0)和點(diǎn)P=p(t)∈C(GF(2m))所確定直線的斜率。從而,有限域GF(2m)上圓錐曲線的全部點(diǎn)表示為C(GF(2m))∶P={p(t)=(x,y)=(b(t2+t+a)-1,bt(t2+t+a)-1)|t∈GF(2m),t2+t≠a}∪{p(∞)=(0,0)}其中,(t2+t+a)-1為(t2+t+a)在有限域GF(2m)上的乘法逆元,可利用擴(kuò)展歐幾里得算法求解。
      2)圓錐曲線C(GF(2m))上加法運(yùn)算定義為①對于P=p(t)∈C(GF(2m)),滿足p(t)p(∞)=p(∞)p(t)=p(t)。②設(shè)P1=p(t1),P2=p(t2),P3=p(t3)∈C(GF(2m))且t1,t2≠∞,定義P1P2=P3,即p(t1)p(t2)=p(t3),其中 以上運(yùn)算在CCCB的控制下,讀取ENDEU、CCCM中的參數(shù)和數(shù)據(jù),在F2MA、F2MM、F2MR中完成計算,并將計算結(jié)果由CCCB傳送至ENDEU或CCCM中保存。
      圓錐曲線C(GF(2m))上求逆運(yùn)算定義為C(GF(2m))上點(diǎn)P=p(t)的逆元記作-P,-P也是C(GF(2m))上一點(diǎn),且-P=p(t+1),-p(∞)=p(∞)。以上運(yùn)算在CCCB的控制下,讀取ENDEU或CCCM中的參數(shù)和數(shù)據(jù),在F2MA、F2MM、F2MR中完成計算,并將計算結(jié)果由CCCB傳送至ENDEU或CCCM中保存。
      3)圓錐曲線C(GF(2m))上標(biāo)量乘運(yùn)算定義為k是一個整數(shù)且P=p(t)∈C(GF(2n)),記
      以上運(yùn)算在CCCM的控制下,讀取ENDEU中的參數(shù)和數(shù)據(jù),在CCCB中完成計算,并將計算結(jié)果由CCCM傳送至ENDEU中保存。
      4)圓錐曲線C(GF(2m))上的點(diǎn)和加法運(yùn)算構(gòu)成有限交換群,且該群的階#C(GF(2m)),即圓錐曲線C(GF(2m))的點(diǎn)數(shù)為 5)利用圓錐曲線群(C(GF(2m)),)構(gòu)造密碼算法時,需要將明文與圓錐曲線C(GF(2m))上點(diǎn)的形式相互轉(zhuǎn)換。當(dāng)需要將明文m變換為點(diǎn)M=p(m)的形式時,編碼算法為m→p(m),解碼算法為p(m)→m;當(dāng)需要將明文m變換為點(diǎn)M=(x,y)的形式時,編碼算法為m→(xm,ym)=(b(m2+m+a)-1,bm(m2+m+a)-1),解碼算法為ym xm-1→m。以上運(yùn)算在CCCB的控制下,讀取ENDEU中的參數(shù)和數(shù)據(jù),在F2MA、F2MM、F2MR中完成計算,并將計算結(jié)果由CCCB傳送至ENDEU中保存。
      2.利用圓錐曲線C(GF(2m))實(shí)現(xiàn)E1Gamal公鑰加密方案的系統(tǒng)建立過程1)RG隨機(jī)選擇圓錐曲線C(GF(2m)上一點(diǎn)P=p(g),點(diǎn)P的階為ord(P);2)利用RG產(chǎn)生隨機(jī)整數(shù)d∈
      ,將d作為私鑰;3)利用CCCM計算點(diǎn)Q=p(q)=dP=dp(g),將Q作為公鑰。
      3.利用圓錐曲線C(GF(2m))實(shí)現(xiàn)E1Gamal公鑰加密方案的加密過程1)從IReg讀取明文m;2)利用CCCB將明文m編碼為M=p(m)的形式;3)在Flash ROM中通過PReg查找公鑰Q;4)利用RG產(chǎn)生隨機(jī)整數(shù)k∈
      ;5)利用CCCM計算密文c1=kP=kp(g);6)利用CCCM、CCCB計算密文c2=M(kQ)=p(m)(kp(q));7)通過DATA_OUT將密文(c1,c2)傳送到Memory。
      4.利用圓錐曲線C(GF(2m))實(shí)現(xiàn)E1Gamal公鑰加密方案的解密過程1)從IReg讀取密文(c1,c2);
      2)利用CCCM計算點(diǎn)dc1;3)利用CCCB計算點(diǎn)dc1的逆元-(dc1);4)利用CCCB恢復(fù)數(shù)據(jù)p(m)=c2(-(dc1));5)利用CCCB將p(m)解碼為明文m;5.圓錐曲線加密/解密芯片模塊及工作過程如圖3所示,圓錐曲線加密/解密芯片由寄存器、流程控制單元和數(shù)學(xué)運(yùn)算單元三類模塊組成,各個模塊的功能如下1)Flash ROMFlash ROM中存儲了圓錐曲線加密系統(tǒng)中的所有參數(shù),包括加密與解密兩套參數(shù)。其中加密密鑰包括域長度的定義、不可約多項(xiàng)式的定義、圓錐曲線參數(shù)a與b、公鑰Q(x,y);解密密鑰除此之外還包括私鑰d。不同的密鑰分別存放在各自固定的地址中,并可以讀取和擦寫。
      2)參數(shù)寄存器(PReg)用于暫存參數(shù),并將參數(shù)寫入Flash ROM或從中讀取之用。
      3)輸入寄存器(IReg)用于暫存輸入的明文或密文,將讀入的數(shù)據(jù)進(jìn)行整理,并輸出到ENDEU中。
      4)加密解密流程控制器(ENDEU)進(jìn)行加密或解密每一步流程的控制,從IReg中讀取數(shù)據(jù),并交給CCCM或CCCB進(jìn)行計算。ENDEU通過A/R/P/RP與M引腳來選擇不同類型的運(yùn)算,包括圓錐曲線加、求逆、編碼、解碼、標(biāo)量乘共5種運(yùn)算。數(shù)據(jù)按流程逐步進(jìn)行計算,啟動加密或解密的流程通過E/D引腳的輸入來進(jìn)行控制。運(yùn)算完成后,該模塊的CR輸出高電平,并由DATA_OUT端口輸出結(jié)果。
      5)圓錐曲線基本運(yùn)算單元(CCCB)在ENDEU與CCCM的控制下進(jìn)行工作,并根據(jù)A/R/P/RP引腳的輸入選擇進(jìn)行不同的運(yùn)算。并根據(jù)所選擇運(yùn)算的流程啟動F2M來執(zhí)行該運(yùn)算在有限域GF(2m)上的流程。在有限域GF(2m)上的加、乘、求逆元運(yùn)算通過SELT引腳來進(jìn)行選擇。
      6)標(biāo)量乘運(yùn)算單元(CCCM)完成圓錐曲線標(biāo)量乘運(yùn)算。該運(yùn)算在ENDEU的控制下通過啟動CCCB來進(jìn)行。另外,在啟動CCCB的過程中,通過CCCM的RD2引腳將ENDEU暫停工作,直至該標(biāo)量乘運(yùn)算完成。
      7)二進(jìn)制域控制運(yùn)算單元(F2M)在CCCB的SELT引腳控制下通過。通過A/M/R引腳的輸入來選擇所進(jìn)行的計算,該模塊運(yùn)行時所需的計算均通過譯碼器啟動二進(jìn)制域加法(F2MA)、乘法(F2MM)、求逆(F2MR)運(yùn)算器來進(jìn)行。其中,F(xiàn)2MA、F2MM、F2MR作為三種基本的計算單元。
      圓錐曲線加密/解密芯片如圖3所示,其工作方式如下1)芯片復(fù)位時,Reset置低電平,從而使各個寄存器清零,芯片工作時,由CLK管腳來提供時鐘輸入。
      2)當(dāng)芯片工作時,置Reset為高電平。芯片首先從Flash ROM中讀取圓錐曲線的各個參數(shù)及公鑰(解密時還要讀取私鑰)。所讀取的內(nèi)容通過ADDR管腳輸出的地址來進(jìn)行控制。讀取的過程通過Flash ROM與參數(shù)寄存器(PReg)各自的rd與RD1管腳來進(jìn)行控制,每次讀取時,RD1輸出低電平到rd,讀取完成后輸出高電平表示讀取結(jié)束。
      3)MC將獲得的數(shù)據(jù)(明文、密文或密鑰)通過D1_out端口輸入到輸入寄存器中,此時的P/D管腳須為高電平,IReg在讀取數(shù)據(jù)時將RD置為低電平,讀取完成后將其RD管腳置為高電平,并輸入到MC的rd管腳中,即表示不再讀取直到下次數(shù)據(jù)輸入。
      4)當(dāng)需要重新輸入系統(tǒng)參數(shù)時,也可通過MC進(jìn)行參數(shù)輸入,此時的P/D管腳輸入為低電平,表示外部輸入為參數(shù)。輸入的參數(shù)在Para_S的控制下逐一由D2_out管腳輸入到PReg中,并由PReg在ADDR地址的控制下逐一輸入到Flash ROM中。
      5)CCED以加密或解密的方式工作根據(jù)E/D引腳的輸入來確定,當(dāng)E/D引腳輸入高電平時,芯片以加密方式工作,否則以解密方式工作。在輸入?yún)?shù)的狀態(tài)下,即P/D引腳為高時,E/D輸入高電平或低電平分別代表輸入加密參數(shù)與解密參數(shù)。
      6)加密和解密的計算在ENDEU的控制下進(jìn)行,針對加密和解密時需要的幾種運(yùn)算加、標(biāo)量乘、求逆、編碼、解碼,該控制器分別通過啟動CCCM和CCCB進(jìn)行計算,啟動不同的運(yùn)算模塊通過M引腳與A/R/P/RP[1:0]引腳來控制。數(shù)據(jù)的交換由ENDEU的D_in/out完成。特別地,當(dāng)啟動CCCB時,CCCM被由流程控制運(yùn)算器的M引腳對標(biāo)量乘運(yùn)算器的EN腳輸出高電平而被屏蔽。
      7)由于CCCM依賴其他圓錐曲線的基本運(yùn)算,因而該模塊也需啟動通過CCCB來實(shí)現(xiàn)。CCCM通過其A/R/P/RP[1:0]管腳到CCCM的A/R/P/RP[1:0]管腳來選擇所需要的運(yùn)算。當(dāng)該模塊啟動基本運(yùn)算器時,其RD2引腳輸出高電平,并輸入ENDEU的EN使其停止工作。二者之間的數(shù)據(jù)交換通過CCCM的D2_in/out與CCCB的D1_in/out進(jìn)行,并通過CCCM的RD2和CCCB的RD1相互控制。
      8)在CCCB運(yùn)行過程中,始終需要有限域GF(2m)上運(yùn)算的支持,這種支持通過二進(jìn)制域控制運(yùn)算單元(F2M)來獲得。二者之間分別通過D3_in/out與D1_in/out來交換數(shù)據(jù)并通過各自的rd3、RD3與rd1、RD1來進(jìn)行控制。CCCB通過管腳SELT[1:0]輸入到F2M的A/M/R[1:0]來選擇當(dāng)前采用何種計算。
      9)F2M由SELT[1:0]通過譯碼器來選擇二進(jìn)制域的加法運(yùn)算器(F2MA)、二進(jìn)制域乘法運(yùn)算器(F2MM)及二進(jìn)制域求逆運(yùn)算器(F2MR)各自的EN來啟動當(dāng)前所需的運(yùn)算,以上三個運(yùn)算器均通過各自的D_in/out獲得輸入并在計算完成后返回計算結(jié)果,運(yùn)算的控制由各自的RD及rd進(jìn)行。
      10)當(dāng)加密或解密完成后,ENDEU的CR輸出高電平,表示計算已經(jīng)完成,等待外部讀取數(shù)據(jù)。當(dāng)所有工作均完成后,可由RESET輸入低電平,從而使整個設(shè)備復(fù)位。
      權(quán)利要求
      1.一種基于有限域GF(2m)的圓錐曲線公鑰加密方法,其特征在于,它包括以下步驟1)將有限域GF(2m)上的圓錐曲線C(GF(2m))固化在Flash Rom中,其中圓錐曲線C(GF(2m))的定義為C(GF(2m))y2+xy≡ax2+bx modf(x),a,b∈GF(2m)為圓錐曲線上的參數(shù),且其中f(x)是構(gòu)造有限域GF(2m)的既約多項(xiàng)式,次數(shù)m=deg(f)為域長度,引入?yún)?shù)t,其幾何解釋為原點(diǎn)(0,0)和點(diǎn)P=p(t)∈C(GF(2m))所確定直線的斜率,那么,有限域GF(2m)上圓錐曲線的全部點(diǎn)表示為C(GF(2m))P={p(t)=(x,y)=(b(t2+t+a)-1,bt(t2+t+a)-1)|t∈GF(2m),t2+t≠a}∪{p(∞)=(0,0)}其中,(t2+t+a)-1為(t2+t+a)在有限域GF(2m)上的乘法逆元,它可利用擴(kuò)展歐幾里得算法求解;將圓錐曲線C(GF(2m))上的加法運(yùn)算規(guī)則、加法逆運(yùn)算規(guī)則、編碼算法規(guī)則、解碼算法規(guī)則固化在圓錐曲線基本運(yùn)算單元CCCB中,其中圓錐曲線C(GF(2m))上加法運(yùn)算的定義為①對于P=p(t)∈C(GF(2m)),滿足p(t)p(∞)=p(∞)p(t)=p(t);②設(shè)P1=p(t1),P2=p(t2),P3=p(t3)∈C(GF(2m))且t1,t2≠∞,定義P1P2=P3,即p(t1)p(t2)=p(t3),其中 圓錐曲線C(GF(2m))上的加法逆運(yùn)算的定義為C(GF(2m))上點(diǎn)P=p(t)的逆元記作-P,-P也是C(GF(2m))上一點(diǎn),且-P=p(t+1),-p(∞)=p(∞);編碼算法的定義為m→p(m)或m→(xm,ym)=(b(m2+m+a)-1,bm(m2+m+a)-1);解碼算法的定義為p(m)→m或ym xm-1→m;圓錐曲線C(GF(2m))上的點(diǎn)和加法運(yùn)算構(gòu)成有限交換群,且該群的階#C(GF(2m)),即圓錐曲線C(GF(2m))的點(diǎn)數(shù)為 將標(biāo)量乘運(yùn)算規(guī)則固化在標(biāo)量乘運(yùn)算單元CCCM中,其中圓錐曲線C(GF(2m))上標(biāo)量乘運(yùn)算的定義為k是一個整數(shù)且P=p(t)∈C(GF(2m)),記 2)隨機(jī)數(shù)發(fā)生器RG隨機(jī)選擇圓錐曲線C(GF(2m)上的一個基點(diǎn)P=p(g),并隨機(jī)產(chǎn)生一個整數(shù)d,其中點(diǎn)P的階為ord(P),d∈
      ,將d作為私鑰,控制器Controller啟動圓錐曲線公鑰加密/解密芯片CCED,圓錐曲線公鑰加密/解密芯片CCED的標(biāo)量乘運(yùn)算單元CCCM自動進(jìn)行私鑰d與基點(diǎn)P的標(biāo)量乘運(yùn)算Q=p(q)=dP==dp(g),得到公鑰Q,以上參數(shù)暫存在參數(shù)寄存器PReg中,并保存到Flash ROM中;3)圓錐曲線公鑰加密/解密芯片CCED的主控制器MC將加密解密流程控制器ENDEU的工作模式選為加密,加密解密流程控制器ENDEU控制圓錐曲線基本運(yùn)算單元CCCB將存儲器Memory中的明文m編碼為M=p(m),并從FlashROM中獲取公鑰Q,然后隨機(jī)數(shù)發(fā)生器RG隨機(jī)生成整數(shù)k∈
      ,加密解密流程控制器ENDEU控制標(biāo)量乘運(yùn)算單元CCCM將k分別與圓錐曲線基點(diǎn)P和公鑰Q進(jìn)行標(biāo)量乘運(yùn)算,得到kP和kQ,其中kP記為c1;然后,加密解密流程控制器ENDEU控制圓錐曲線基本運(yùn)算單元CCCB將M與kQ做加法運(yùn)算,得到M(kQ),記為c2,則對明文m的加密結(jié)果為(c1,c2),并將密文(c1,c2)輸出到存儲器Memory;4)圓錐曲線公鑰加密/解密芯片CCED的主控制器MC將加密解密流程控制器ENDEU的工作模式選為解密,圓錐曲線基本運(yùn)算單元CCCB控制標(biāo)量乘運(yùn)算單元CCCM讀取暫存在Flash Rom中的私鑰d與c1進(jìn)行點(diǎn)乘運(yùn)算得到dc1,然后,加密解密流程控制器ENDEU控制圓錐曲線基本運(yùn)算單元CCCB計算dc1的逆元-(dc1)以及c2與-(dc1)的加法運(yùn)算,得到p(m),并將p(m)解碼為明文m,輸出到存儲器Memory。
      2.一種實(shí)現(xiàn)基于有限域GF(2m)的圓錐曲線公鑰加密方法的裝置,其特征在于主要由圓錐曲線公鑰加密/解密芯片CCED與控制器Controller、存儲器Memory和隨機(jī)數(shù)發(fā)生器RG組成,它們組合使用完成數(shù)據(jù)加密和解密運(yùn)算RG產(chǎn)生系統(tǒng)建立時所需的隨機(jī)數(shù),控制器Controller通過圓錐曲線公鑰加密/解密芯片CCED來選擇工作方式為輸入?yún)?shù)、加密或解密,圓錐曲線公鑰加密/解密芯片CCED通過加法運(yùn)算、加法逆運(yùn)算、編碼算法、解碼算法和標(biāo)量乘運(yùn)算完成數(shù)據(jù)的加密或解密運(yùn)算,運(yùn)算結(jié)果回送存儲器Memory;所述的圓錐曲線加密解密芯片CCED主要由Flash ROM、參數(shù)寄存器PReg、輸入寄存器IReg、加密解密流程控制器ENDEU、圓錐曲線基本運(yùn)算單元CCCB、標(biāo)量乘運(yùn)算單元CCCM、二進(jìn)制域控制運(yùn)算單元F2M、和主控制器MC模塊組成,各模塊之間的邏輯關(guān)系為Flash ROM用于存儲定義在有限域GF(2m)上的圓錐曲線C(GF(2m))、加密參數(shù)和解密參數(shù)以供參數(shù)寄存器PReg讀寫;參數(shù)寄存器PReg用于為加密解密流程控制器ENDEU提供參數(shù),將讀入的數(shù)據(jù)進(jìn)行整理、寫入Flash ROM或從Flash ROM中讀取參數(shù);輸入寄存器IReg用于暫存明文和密文,將讀入的數(shù)據(jù)進(jìn)行整理,并輸出到加密解密流程控制器ENDEU中;加密解密流程控制器ENDEU用于進(jìn)行加密或解密每一步流程的控制,從輸入寄存器lreg中讀取數(shù)據(jù),并交給標(biāo)量乘運(yùn)算單元CCCM或圓錐曲線基本運(yùn)算單CCCB進(jìn)行計算;圓錐曲線基本運(yùn)算單元CCCB用于實(shí)現(xiàn)在GF(2m)域上的加、乘、求逆運(yùn)算,它在加密解密流程控制器ENDEU與標(biāo)量乘運(yùn)算單元CCCM的控制下進(jìn)行工作,并根據(jù)所選擇運(yùn)算的流程啟動二進(jìn)制域控制運(yùn)算單元F2M來執(zhí)行所選運(yùn)算在GF(2m)域上的流程;標(biāo)量乘運(yùn)算單元CCCM用于實(shí)現(xiàn)圓錐曲線的標(biāo)量乘計算,在加密解密流程控制器ENDEU的控制下通過啟動圓錐曲線基本運(yùn)算單元CCCB來進(jìn)行工作,在啟動圓錐曲線基本運(yùn)算單元CCCB的過程中,通過標(biāo)量乘運(yùn)算單元CCCM將加密解密流程控制器ENDEU暫停工作,直到該標(biāo)量乘運(yùn)算完成;二進(jìn)制域控制運(yùn)算單元F2M為圓錐曲線基本運(yùn)算單元CCCB和標(biāo)量乘運(yùn)算單元CCCM運(yùn)算的基礎(chǔ),它用于實(shí)現(xiàn)二進(jìn)制計算,通過譯碼器選擇性地啟動二進(jìn)制域加法運(yùn)算器F2MA、乘法運(yùn)算器F2MM及求逆運(yùn)算器F2MR進(jìn)行計算,并暫存運(yùn)算結(jié)果;主控制器MC用于控制的圓錐曲線加密解密芯片CCED的工作模式。
      全文摘要
      一種基于有限域GF(文檔編號G06F17/00GK1920841SQ20061011246
      公開日2007年2月28日 申請日期2006年8月21日 優(yōu)先權(quán)日2006年8月21日
      發(fā)明者蔡永泉, 趙磊, 靳巖巖, 肖創(chuàng)柏 申請人:北京工業(yè)大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1