專利名稱:橢圓曲線密碼協(xié)處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種橢圓曲線密碼協(xié)處理器。
背景技術(shù):
無線傳感器網(wǎng)絡(Wireless Sensor Network,WSN)是由部署在監(jiān)測區(qū)域內(nèi)大量的廉價微型傳感器組成,通過無線通信方式形成的一個多跳的自組織的網(wǎng)絡系統(tǒng),其目的是協(xié)作地感知、采集和處理網(wǎng)絡覆蓋區(qū)域中被感知對象的信息,并發(fā)送給觀察者。WSN通常部署在無人維護、不可控制的環(huán)境中,除了具有一般無線網(wǎng)絡所面臨的信息泄露、信息篡改、 重放攻擊、拒絕服務等多種威脅外,WSN還面臨傳感節(jié)點容易被攻擊者物理操縱,并獲取存儲在傳感節(jié)點中的所有信息,從而控制部分網(wǎng)絡的威脅。用戶不可能接受并部署一個沒有解決好安全和隱私問題的傳感網(wǎng)絡,因此在進行WSN協(xié)議和軟件設計時,必須充分考慮WSN 可能面臨的安全問題,并把安全機制特別是身份驗證和訪問控制集成到系統(tǒng)設計中去。一種解決方案是采用對稱密碼來實現(xiàn),這種解決方案采用集中式的密鑰管理體系,驗證節(jié)點的標識然后分發(fā)密鑰供節(jié)點間建立安全的通道。這種集中式的密鑰管理體系解決方案對于小型和獨立的傳感網(wǎng)絡是有效的,但是對于網(wǎng)絡系統(tǒng)的發(fā)展是一種阻礙。另一種解決方案就是采用公鑰密碼來實現(xiàn),基于公鑰密碼(非對稱密碼)的解決方案不需要一個活動的中心控制器,而是使每個節(jié)點獨立運作和合作。每個設備都發(fā)布自己的密鑰和安全策略。標識和策略可以集中創(chuàng)建,然后分發(fā)給節(jié)點,使網(wǎng)絡運行。而采用公鑰密碼的解決方案就需要每個傳感器節(jié)點和RFID標簽上帶有公鑰密碼協(xié)處理器。目前的公鑰密碼主要有RSA和橢圓曲線密碼系統(tǒng)(ECC),ECC在1985年分別由 Victor Miller和Neal Koblitz獨立提出,其安全性是基于橢圓曲線群上的離散對數(shù)問題 (ECDLP)。與RSA相比,它的每位具有更高的安全強度,導致ECC在實現(xiàn)方面運算速度高同時所需電路面積小,功耗低,存儲空間小,占用帶寬小,更適用于無線傳感器網(wǎng)絡這種資源受限制的環(huán)境。ECC中核心運算就是基域上的基本運算和橢圓曲線上的點乘運算。對于橢圓曲線系統(tǒng)來說,基域的選擇包括素域(P為素數(shù))和(m為擴張次數(shù))二元擴域。然而,現(xiàn)有的橢圓曲線密碼協(xié)處理器仍存在結(jié)構(gòu)復雜、功耗高等缺點,無法有效用于無線傳感器節(jié)點和RFID標簽等這類資源極度受限的環(huán)境中。
發(fā)明內(nèi)容
本發(fā)明的目的在于,提供一種橢圓曲線密碼協(xié)處理器,其結(jié)構(gòu)簡單,體積小,接口方式簡單;采用狀態(tài)機方式,使運算速度大大加快;對橢圓曲線點乘運算過程進行了優(yōu)化, 減少了中間變量,從而減少了寄存器個數(shù);最大可能的復用了基域上模加和模乘電路,減小了電路面積。為了實現(xiàn)上述目的,本發(fā)明提供一種橢圓曲線密碼協(xié)處理器,其包括一運算控制器、運算器、參數(shù)寄存器、及RAM,其中,
該運算控制器分別與運算器、參數(shù)寄存器及RAM電性連接,用于橢圓曲線點乘運算及產(chǎn)生控制信號給運算器完成基域上模加與模乘運算;該運算器分別與參數(shù)寄存器及RAM電性連接,用于基域上模加與模乘運算;該參數(shù)寄存器用于存放橢圓曲線方程中的參數(shù)和預計算參數(shù);該RAM接收外部發(fā)送的數(shù)據(jù)及存儲運算結(jié)果,與外部進行數(shù)據(jù)交互。所述運算控制器包括數(shù)個有限狀態(tài)機、基本運算控制單元、計數(shù)器、及命令寄存器,該數(shù)個有限狀態(tài)機用于控制完成橢圓曲線上點運算,該基本運算控制單元用于產(chǎn)生控制信號給運算器完成基域上模加與模乘運算。所述數(shù)個有限狀態(tài)機包括第一有限狀態(tài)機、第二有限狀態(tài)機及第三有限狀態(tài)機, 第三有限狀態(tài)機調(diào)度第一有限狀態(tài)機及第二有限狀態(tài)機來完成橢圓曲線上點運算。所述運算器包括基域上模加與模乘電路。所述基域上模加與模乘電路設有移位寄存器、第一寄存器及第二寄存器,該第一寄存器及第二寄存器分別用于在基域上模加電路中載入數(shù)據(jù),第二寄存器中數(shù)據(jù)在經(jīng)過相應時鐘周期后為模加結(jié)果,該移位寄存器及第一寄存器還分別用于在基域上模乘電路中載入數(shù)據(jù),第二寄存器中數(shù)據(jù)在經(jīng)過相應時鐘周期后為模加結(jié)果。所述RAM通過外部地址和數(shù)據(jù)總線與外部交換數(shù)據(jù),該運算控制器可向一外部 CPU發(fā)出內(nèi)部運算狀態(tài)信號。本發(fā)明的有益效果本發(fā)明提供一種橢圓曲線密碼協(xié)處理器,其結(jié)構(gòu)簡單,體積小,接口方式簡單;采用狀態(tài)機方式,使運算速度大大加快;對橢圓曲線點乘運算過程進行了優(yōu)化,減少了中間變量,從而減少了寄存器個數(shù);最大可能的復用了基域上模加和模乘電路,減小了電路面積。為了能更進一步了解本發(fā)明的特征以及技術(shù)內(nèi)容,請參閱以下有關(guān)本發(fā)明的詳細說明與附圖,然而附圖僅提供參考與說明用,并非用來對本發(fā)明加以限制。
下面結(jié)合附圖,通過對本發(fā)明的具體實施方式
詳細描述,將使本發(fā)明的技術(shù)方案及其它有益效果顯而易見。附圖中,圖1為本發(fā)明橢圓曲線密碼協(xié)處理器的電路結(jié)構(gòu)原理圖;圖2為圖1中運算器的電路結(jié)構(gòu)原理圖;圖3為圖2中每個運算單元的電路結(jié)構(gòu)原理圖;圖4為本發(fā)明中第一有限狀態(tài)機的工作流程圖;圖5為本發(fā)明中第二有限狀態(tài)機的工作流程圖;圖6為本發(fā)明中第三有限狀態(tài)機的工作流程圖。
具體實施例方式為更進一步闡述本發(fā)明所采取的技術(shù)手段及其效果,以下結(jié)合本發(fā)明的優(yōu)選實施例及其附圖進行詳細描述。作為本發(fā)明的一種選擇性實施例,本發(fā)明選取的橢圓曲線為上的橢圓曲線,π 上不可約多項式為f(x) =χ2、χ74+1,β , Z E F m且匕乒0;如圖1-6所示,本
1 2^33,2
發(fā)明提供一種橢圓曲線密碼協(xié)處理器,其包括一運算控制器110、運算器120、參數(shù)寄存器 130、及RAM140,其中,該運算控制器110分別與運算器120、參數(shù)寄存器130及RAM140電性
連接,用于橢圓曲線點乘運算及產(chǎn)生控制信號給運算器120完成基域F2233上模加與模乘
運算;該運算器120分別與參數(shù)寄存器130及RAM140電性連接,用于基域&233上模加與模
乘運算;該參數(shù)寄存器130用于存放橢圓曲線方程中的參數(shù)b和預計算參數(shù)A = X(P2-P1); 該RAM140接收外部發(fā)送的數(shù)據(jù)及存儲運算結(jié)果,與外部進行數(shù)據(jù)交互。本發(fā)明通過一運算控制器110、運算器120、參數(shù)寄存器130、及RAM140來完成橢圓曲線密碼的處理運算,其結(jié)構(gòu)簡單。具體的,該RAM140接收外部發(fā)送的數(shù)據(jù)及存儲運算結(jié)果,與外部進行數(shù)據(jù)交互, RAM140通過外部地址和數(shù)據(jù)總線與外部交換數(shù)據(jù),外部數(shù)據(jù)寫入RAM140后,運算控制器 110產(chǎn)生控制信號將RAM140中的數(shù)據(jù)讀出,寫入相應的寄存器單元,當所需數(shù)據(jù)寫完后,運算控制器110啟動控制信號或者狀態(tài)機。運算控制器110還會向RAM140寫入中間結(jié)果或者最終運算結(jié)果。運算控制器110還會向外部發(fā)出CPU發(fā)出內(nèi)部運算狀態(tài)信號。該運算控制器110包括數(shù)個有限狀態(tài)機、基本運算控制單元112、計數(shù)器113、及命令寄存器114,該數(shù)個有限狀態(tài)機用于控制完成橢圓曲線上點運算,該基本運算控制單元
112用于產(chǎn)生控制信號給運算器120完成基域&233上模加與模乘運算。優(yōu)選的,該數(shù)個有限狀態(tài)機包括第一有限狀態(tài)機115、第二有限狀態(tài)機116及第三有限狀態(tài)機117,第三有限狀態(tài)機117調(diào)度第一有限狀態(tài)機115及第二有限狀態(tài)機116來完成橢圓曲線上點運算。圖2為運算器130的的電路結(jié)構(gòu)原理圖,該運算器120包括基域上模加與模乘電路;所述基域上模加與模乘電路設有移位寄存器A、第一寄存器B及第二寄存器T,該第一寄
存器B及第二寄存器T分別用于在基域上模加電路中載入數(shù)據(jù),第二寄存器T中數(shù)據(jù)
在經(jīng)過相應時鐘周期后為模加結(jié)果,該移位寄存器A及第一寄存器B還分別用于在基域上模乘電路中載入數(shù)據(jù),第二寄存器T中數(shù)據(jù)在經(jīng)過相應時鐘周期后為模加結(jié)果;進一步的, 在該電路中,121為連接在上述三個寄存器之間的數(shù)個運算單元(cell),122為與門;圖3
是圖2中每個運算單元具體的電路。當計算基域F2233上模加時,122上的cmd置為0,重置
移位寄存器A,將參與運算的操作數(shù)分別載入到第一寄存器B和第二寄存器T中,載入到第二寄存器T中的數(shù)記為C,經(jīng)過一個時鐘周期,第二寄存器T中的值即為模加結(jié)果。當計算
基域F2233上模乘時,122上的cmd置為1,參與模乘運算的操作數(shù)分別載入到移位寄存器A
"233"
和第一寄存器B中,移位寄存器A優(yōu)選為桶移位寄存器,每次向左移d位,經(jīng)過y個時鐘
α
周期,第二寄存器τ中的值即為模乘結(jié)果。從圖2和圖3可以看出,模乘運算與模加運算相比,僅多了移位寄存器A和一部分與門電路,cmd的值不同,其他均為完全復用;同時電路僅有與門和異或門構(gòu)成,電路簡單,功耗低。
該運算控制110中的三個狀態(tài)機協(xié)同完成橢圓曲線上的點乘運算。其中有限狀態(tài)機3分別調(diào)度有限狀態(tài)機1和2來完成橢圓曲線點乘運算。圖6是本發(fā)明中的第三有限狀態(tài)機的控制流程圖在步驟601,置 Pl = P ;P2 = 2P ;在步驟602,置 i = 1-2 ;在步驟603,判斷ki是否為0,如果是,則調(diào)度第一有限狀態(tài)機(如圖4所示),結(jié)束后執(zhí)行步驟604 ;如果否,則調(diào)度第二有限狀態(tài)機(如圖5所示),結(jié)束后執(zhí)行步驟604 ;在步驟604,執(zhí)行i—;在步驟605,判斷i是否小于0,如果否則執(zhí)行步驟603,如果是則結(jié)束。圖4本發(fā)明第一有限狀態(tài)機的控制流程圖在步驟401,計算 X2 = X2 · Z1 ;在步驟402,計算 Z2 = X1 · Z2 ;在步驟403,計算rX = W,在步驟404,計算 & = Z2+X2 ;在步驟405,計算Z2 = Z22 ;在步驟406,計算 X2 = X4 · Z1 ;在步驟407,計算 I2 = X2+T。圖5本發(fā)明第二有限狀態(tài)機的控制流程圖在步驟 501,計算 Ji1 = X12 ;在步驟502,計算Z1 = Z12 ;在步驟503,計算Γ = Zf ;在步驟504,計算 Z1 = X1 · Z1 ;在步驟505,計算T = T2 ;在步驟506,計算 T = b · T ;在步驟507,計算 JT1 = X12 ;在步驟508,計算 \ = X^T。通過圖4和圖5的流程中可看出,在計算過程中,本發(fā)明只需要增加一個中間的第二寄存器T就可以完成整個運算,這是完成計算所需的最少的寄存器個數(shù),從而能減小電路面積,降低功耗。綜上所述,本發(fā)明提供一種橢圓曲線密碼協(xié)處理器,其結(jié)構(gòu)簡單,體積小,接口方式簡單;采用狀態(tài)機方式,使運算速度大大加快;對橢圓曲線點乘運算過程進行了優(yōu)化,減少了中間變量,從而減少了寄存器個數(shù);最大可能的復用了基域上模加和模乘電路,減小了電路面積。以上所述,對于本領(lǐng)域的普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案和技術(shù)構(gòu)思作出其他各種相應的改變和變形,而所有這些改變和變形都應屬于本發(fā)明權(quán)利要求的保護范圍。
權(quán)利要求
1.一種橢圓曲線密碼協(xié)處理器,其特征在于,包括一運算控制器、運算器、參數(shù)寄存器、及RAM,其中,該運算控制器分別與運算器、參數(shù)寄存器及RAM電性連接,用于橢圓曲線點乘運算及產(chǎn)生控制信號給運算器完成基域上模加與模乘運算;該運算器分別與參數(shù)寄存器及RAM電性連接,用于基域上模加與模乘運算;該參數(shù)寄存器用于存放橢圓曲線方程中的參數(shù)和預計算參數(shù);該RAM接收外部發(fā)送的數(shù)據(jù)及存儲運算結(jié)果,與外部進行數(shù)據(jù)交互。
2.如權(quán)利要求1所述的橢圓曲線密碼協(xié)處理器,其特征在于,所述運算控制器包括數(shù)個有限狀態(tài)機、基本運算控制單元、計數(shù)器、及命令寄存器,該數(shù)個有限狀態(tài)機用于控制完成橢圓曲線上點運算,該基本運算控制單元用于產(chǎn)生控制信號給運算器完成基域上模加與模乘運算。
3.如權(quán)利要求2所述的橢圓曲線密碼協(xié)處理器,其特征在于,所述數(shù)個有限狀態(tài)機包括第一有限狀態(tài)機、第二有限狀態(tài)機及第三有限狀態(tài)機,第三有限狀態(tài)機調(diào)度第一有限狀態(tài)機及第二有限狀態(tài)機來完成橢圓曲線上點運算。
4.如權(quán)利要求1所述的橢圓曲線密碼協(xié)處理器,其特征在于,所述運算器包括基域上模加與模乘電路。
5.如權(quán)利要求4所述的橢圓曲線密碼協(xié)處理器,其特征在于,所述基域上模加與模乘電路設有移位寄存器、第一寄存器及第二寄存器,該第一寄存器及第二寄存器分別用于在基域上模加電路中載入數(shù)據(jù),第二寄存器中數(shù)據(jù)在經(jīng)過相應時鐘周期后為模加結(jié)果,該移位寄存器及第一寄存器還分別用于在基域上模乘電路中載入數(shù)據(jù),第二寄存器中數(shù)據(jù)在經(jīng)過相應時鐘周期后為模加結(jié)果。
6.如權(quán)利要求1所述的橢圓曲線密碼協(xié)處理器,其特征在于,所述RAM通過外部地址和數(shù)據(jù)總線與外部交換數(shù)據(jù),該運算控制器可向一外部CPU發(fā)出內(nèi)部運算狀態(tài)信號。
全文摘要
本發(fā)明提供一種橢圓曲線密碼協(xié)處理器,其包括一運算控制器、運算器、參數(shù)寄存器、及RAM,其中,該運算控制器分別與運算器、參數(shù)寄存器及RAM電性連接,用于橢圓曲線點乘運算及產(chǎn)生控制信號給運算器完成基域上模加與模乘運算;該運算器分別與參數(shù)寄存器及RAM電性連接,用于基域上模加與模乘運算;該參數(shù)寄存器用于存放橢圓曲線方程中的參數(shù)和預計算參數(shù);該RAM接收外部發(fā)送的數(shù)據(jù)及存儲運算結(jié)果,與外部進行數(shù)據(jù)交互。本發(fā)明接口方式簡單;采用狀態(tài)機方式,使運算速度大大加快;對橢圓曲線點乘運算過程進行了優(yōu)化,減少了中間變量,從而減少了寄存器個數(shù);最大可能的復用了基域上模加和模乘電路,減小了電路面積。
文檔編號H04L9/32GK102412965SQ20111022728
公開日2012年4月11日 申請日期2011年8月9日 優(yōu)先權(quán)日2011年8月9日
發(fā)明者孫永戰(zhàn) 申請人:深圳市德卡科技有限公司