国产精品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>

      雙核公鑰密碼算法運(yùn)算協(xié)處理器的一種實(shí)現(xiàn)方法

      文檔序號(hào):7967030閱讀:375來源:國知局
      專利名稱:雙核公鑰密碼算法運(yùn)算協(xié)處理器的一種實(shí)現(xiàn)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及信息安全密碼領(lǐng)域,具體的說,涉及到公鑰密碼運(yùn)算協(xié)處理器的硬件實(shí)現(xiàn)。 主要針對RSA、 ECC公鑰密碼算法中核心運(yùn)算的硬件實(shí)現(xiàn)方法。
      背景技術(shù)
      隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及,大量的電子數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)绞澜绺鞯爻蔀榭赡?。但在具?重大的經(jīng)濟(jì)價(jià)值或關(guān)系國家、軍隊(duì)的命運(yùn)等重要數(shù)據(jù)的傳輸過程中,任何一點(diǎn)泄露和差錯(cuò)都 可能造成不可估量的損失。而密碼技術(shù)則是信息安全的保障及核心技術(shù)。公鑰密碼算法大多 基于數(shù)學(xué)難解問題,目前具有較高的安全性。其中ECC和RSA是己經(jīng)成熟的公鑰密碼算法, 使用也頗為廣泛。
      針對最常用的公鑰密碼算法RSA和ECC,基本運(yùn)算分別如下
      RSA:
      密鑰對生成隨機(jī)大素?cái)?shù)p和q, n=pq, 4> (n) = (p - 1) (q_l),隨機(jī)選取整數(shù)e,滿足 gcd(e, d) (n)):l,計(jì)算^e — 'mod4) (n),密鑰對(e,d); 加密C=M'; (mod n); 解密M=Cd (mod n);
      其中M是明文,待加密數(shù)據(jù),C是密文,加密后數(shù)據(jù),e是私鑰,加密密鑰,d是公鑰, 解密密鑰,n是模數(shù)。
      在加解密運(yùn)算中,模冪運(yùn)算由一系列模乘運(yùn)算組成。此外,解密運(yùn)算時(shí)可以使用中國剩 余定理(CRT)使模冪運(yùn)算大數(shù)的位數(shù)減少一半。
      通常實(shí)現(xiàn)時(shí),使用蒙哥馬利(Montgomery)模乘算法,在運(yùn)算過程中有大量大數(shù)需要存 儲(chǔ),算法安全性依賴于大數(shù)的位數(shù)長度,一般都會(huì)選擇512bit長度以上,存儲(chǔ)量極大。關(guān)鍵
      運(yùn)算為模乘。 ECC:
      密鑰對生成選定橢圓曲線,基點(diǎn)G (Gx, Gy),階為N;在[l, 2,, N-l]中任意選 取隨機(jī)數(shù)A作為私鑰;點(diǎn)乘AG:P (Px, Py)為公鑰。
      加密(ECIES):取任意隨機(jī)數(shù)K在[l, 2,, N-l]中,計(jì)算KG二H (Hx, Hy)、 KP=Q (Qx, Qy)和C3:M xor Qx, C={Hx, Hy, C3 }。其中M為明文,待加密數(shù)據(jù)。C為密文,加密后數(shù)
      據(jù)。點(diǎn)H、 Q為橢圓曲線上的點(diǎn)。點(diǎn)G為基點(diǎn),點(diǎn)P為公鑰。隨機(jī)整數(shù)A為私鑰。 解密(ECIES): i十算A討(Ix, Iy), M=C3 xor Ix。 可看出,ECC的核心運(yùn)算是點(diǎn)乘運(yùn)算。
      通常實(shí)現(xiàn)時(shí),使用一系列倍點(diǎn)和點(diǎn)加運(yùn)算組成?;具\(yùn)算由模乘、模加和模減構(gòu)成。一
      般來說ECC沒有亞指數(shù)攻擊,所以它的密鑰長度大大的減少,256bit即可滿足一般要求。
      基于如上分析,ECC和RSA公鑰體制中兼容最基本運(yùn)算模乘、模加和模減。而且RSA支 持到位寬2048bit, ECC支持到位寬256bit.這樣大數(shù)的存儲(chǔ)和運(yùn)算速度問題一直是硬件實(shí)現(xiàn) 中的難點(diǎn)。
      通常情況下,現(xiàn)有的實(shí)現(xiàn)一般都采用單核(即單個(gè)運(yùn)算模塊)和單RAM模塊的技術(shù),這 樣在速度和靈活性上無法得到突破性的提高。

      發(fā)明內(nèi)容
      針對大數(shù)存儲(chǔ)和運(yùn)算速度難點(diǎn),本發(fā)明提供一種公鑰密碼算法協(xié)處理器的實(shí)現(xiàn)方法,在 協(xié)處理器中實(shí)現(xiàn)ECC和RSA的最基本運(yùn)算模乘、取模、模加和模減。本發(fā)明能夠在解決大數(shù) 存儲(chǔ)問題的基礎(chǔ)上,同時(shí)節(jié)約面積資源,并且能夠提高后端版圖布線利用率。同時(shí),雙核運(yùn) 算模塊的使用,大大提高了公鑰密碼運(yùn)算效率。
      本發(fā)明公開了一種硬件協(xié)處理器的實(shí)現(xiàn)方法雙核,是指協(xié)處理器中包含兩個(gè)完全相同 的運(yùn)算模塊,每個(gè)運(yùn)算模塊都有各自的RAM模塊、算法模塊和控制模塊。這兩個(gè)運(yùn)算模塊既 可以獨(dú)立地進(jìn)行公鑰算法的基本運(yùn)算,也可以在控制模塊的控制下協(xié)同運(yùn)算,以滿足不同公 鑰算法協(xié)議的要求。兩個(gè)運(yùn)算模塊之間還可以實(shí)現(xiàn)內(nèi)部相互交換數(shù)據(jù),數(shù)據(jù)不需要讀出即可 以參加下一次運(yùn)算,大大加快了運(yùn)算速度。最典型的情況是利用CRT (中國剩余定理)進(jìn) 行RSA解密運(yùn)算時(shí),可以利用兩個(gè)運(yùn)算模塊同時(shí)進(jìn)行模乘運(yùn)算。
      本發(fā)明還能夠很好地解決在地址線資源有限的情況下靈活實(shí)現(xiàn)公鑰核心運(yùn)算的問題。實(shí) 現(xiàn)該功能的部件是兩個(gè)完全相同的運(yùn)算模塊和接口控制模塊,每個(gè)運(yùn)算模塊包括RAM模塊、 控制模塊和算法模塊。
      1>多RAM模塊,用于存儲(chǔ)運(yùn)算過程中的大數(shù)以及運(yùn)算過程中數(shù)據(jù)的交互,還方便對不 同地址進(jìn)行同時(shí)讀寫。協(xié)處理器中使用一個(gè)雙端口 RAM和一個(gè)單端口 RAM。雙端口 RAM用于協(xié)處理器與外部交換數(shù)據(jù)以及緩存運(yùn)算中間結(jié)果,單端口 RAM用于緩存運(yùn)算 過程中的部分中間結(jié)果以及最終結(jié)果。這種結(jié)構(gòu)的好處是既可以避免大量寄存器堆
      砌造成的面積過大,也可以避免用兩塊雙口 RAM所造成的面積浪費(fèi),同時(shí)還可以提 高后端的布線利用率。另外使用兩個(gè)RAM比單獨(dú)使用一個(gè)RAM速度上有一定的提高。 對RAM地址空間的讀寫控制可以在運(yùn)算過程中并行實(shí)現(xiàn),并不會(huì)增加額外的時(shí)間開銷。
      2>控制模塊,主要包括接口控制、對RAM的讀寫控制、對專用寄存器的讀寫控制、握
      手信號(hào)的控制和算法模塊的所有開關(guān)控制。 3>算法模塊,包括模乘運(yùn)算(最高支持2048bit)、模加運(yùn)算(最高支持256bit)、模
      減運(yùn)算(最高支持256bit)、取模運(yùn)算(支持2048bit對1024bit取模和1024bit對
      512bit取模)。
      在不同的應(yīng)用中,資源的提供也不盡相同,本發(fā)明給出地址線只有1根的情況下方便靈 活實(shí)現(xiàn)公鑰密碼基本運(yùn)算。
      一位地址線,在運(yùn)算過程中標(biāo)示兩個(gè)地址命令寄存器和數(shù)據(jù)寄存器。這樣通過內(nèi)部命 令或者地址譯碼,進(jìn)行相關(guān)操作或者將數(shù)據(jù)送到相應(yīng)的RAM空間。在實(shí)現(xiàn)運(yùn)算需要完整的指 令集,包括七類強(qiáng)制終止并復(fù)位指令、寫參數(shù)指令、寫數(shù)據(jù)指令、寫命令指令、讀參數(shù)指
      令、讀數(shù)據(jù)指令和讀命令指令。為保證協(xié)處理器的正常工作,操作流程包括 1>輸入寫參數(shù)指令(地址線置0);
      2〉輸入?yún)?shù)(地址線置l);
      3〉輸入寫數(shù)據(jù)指令(地址線置0);
      4>輸入數(shù)據(jù)(地址線置1);
      5〉輸入運(yùn)算指令(地址線置0);
      6〉等待運(yùn)算結(jié)束,輸出結(jié)果數(shù)據(jù)(地址線置l)。
      在操作流程中需注意
      *若整個(gè)公鑰運(yùn)算中協(xié)處理器的下一次操作流程中所使用輸入?yún)?shù)與剛結(jié)束的這
      次運(yùn)算相同,可以不用重復(fù)輸入(即1〉和2〉可省略)。
      參若整個(gè)公鑰運(yùn)算中協(xié)處理器的下一次操作流程中所使用數(shù)據(jù)是剛結(jié)束的這次運(yùn) 算的結(jié)果數(shù)據(jù),那么剛結(jié)束的運(yùn)算結(jié)果數(shù)據(jù)可以不用輸出而直接開始下一次操作
      流程(7〉可省略)。但需要清楚了解運(yùn)算結(jié)果數(shù)據(jù)在RAM中的存放地址。 本發(fā)明具有以下優(yōu)點(diǎn)-1〉本發(fā)明使用雙核,即兩個(gè)運(yùn)算模塊,既可以同時(shí)進(jìn)行兩個(gè)相同的運(yùn)算,也可以同時(shí)進(jìn) 行兩個(gè)不同的運(yùn)算,便于進(jìn)行多線程操作,從而大大提高運(yùn)算效率。
      2>本發(fā)明使用RAM模塊存儲(chǔ)算法運(yùn)算中的大數(shù),這樣不僅節(jié)約了面積資源,還提高后端 版圖布線利用率。雖然增加RAM接口控制部分,但是由于算法本身特性,對RAM的讀寫 可以在運(yùn)算期間并行實(shí)現(xiàn),不會(huì)增加時(shí)間上的開銷。
      3〉本發(fā)明可支持在地址線資源有限的情況下靈活方便地使用指令實(shí)現(xiàn)數(shù)據(jù)輸入輸出,運(yùn) 算控制以及測試。
      4>本發(fā)明可兼容實(shí)現(xiàn)ECC和RSA兩種通用公鑰密碼體制的基本運(yùn)算,能滿足不同系統(tǒng)的要 求,可以通過軟件控制來實(shí)現(xiàn)不同協(xié)議的公鑰密碼運(yùn)算。


      圖1為協(xié)處理器的整體結(jié)構(gòu)示意圖; 圖2為運(yùn)算模塊的結(jié)構(gòu)示意圖; 圖3使用協(xié)處理器的操作流程圖。
      具體實(shí)施例方式
      本發(fā)明的具體實(shí)施基本和說明書中所闡述的結(jié)構(gòu)和原理一致,以下結(jié)合附圖,具體說明 本發(fā)明。
      本發(fā)明公開了一種公鑰算法協(xié)處理器的硬件實(shí)現(xiàn)方法,能夠很好的解決由于公鑰密碼運(yùn) 算中大數(shù)位數(shù)過長造成存儲(chǔ)量過大問題。實(shí)現(xiàn)該功能的部件是兩個(gè)完全相同的運(yùn)算模塊和接 口控制模塊,每個(gè)運(yùn)算模塊包括RAM模塊、控制模塊和算法模塊。
      請參閱圖l,其為本發(fā)明硬件協(xié)處理器的整體結(jié)構(gòu)示意圖,根據(jù)本示意圖,本硬件部件由
      運(yùn)算模塊l、運(yùn)算模塊2和接口及控制模塊部分構(gòu)成。
      其中,所述接口及控制模塊,是把兩個(gè)運(yùn)算模塊的接口合并為一個(gè)10,根據(jù)指令來選擇 是操作單個(gè)運(yùn)算模塊,還是兩個(gè)運(yùn)算模塊同時(shí)操作。注意,除非輸入數(shù)據(jù)相同,兩個(gè)運(yùn)算模 塊的數(shù)據(jù)不能同時(shí)輸入。
      運(yùn)算模塊,請參閱圖2,其為運(yùn)算模塊的結(jié)構(gòu)示意圖。
      圖2中所述RAM模塊,包括一個(gè)雙端口 RAM和一個(gè)單口 RAM,圖中單口 RAM是在運(yùn)算期間
      算法模塊存儲(chǔ)中間數(shù)據(jù),圖中雙口 RAM是存儲(chǔ)協(xié)處理器輸入輸出數(shù)據(jù)以及部分中間結(jié)果。 圖2中所述控制模塊,包括對2個(gè)RAM的讀寫控制、對專用寄存器的讀寫控制、握手信
      號(hào)的控制和算法模塊的所有開關(guān)控制。在結(jié)構(gòu)示意圖中沒有標(biāo)識(shí)出專用寄存器,大概有模長
      N、模乘參數(shù)MC等。
      圖2中所述IF,指運(yùn)算模塊的一些接口轉(zhuǎn)換。
      請參閱圖3,該圖描述了使用上述說明的硬件部件,操作協(xié)處理器的流程,具體步驟如

      1>用戶發(fā)送置數(shù)指令,此時(shí)地址線addFO。此指令中相關(guān)位應(yīng)包括要置的數(shù)據(jù)是送
      入專用寄存器,還是送入RAM中,如果是送入RAM,還需要標(biāo)明在RAM中的位置,
      RAM中只用來存放大數(shù); 2〉用戶輸入數(shù)據(jù),此時(shí)地址線addr-l。數(shù)據(jù)包括運(yùn)算的操作數(shù)和參數(shù),以模乘運(yùn)算
      X*Y(mod M)為例,操作數(shù)X和Y,參數(shù)有模數(shù)M、模長N和運(yùn)算需要數(shù)據(jù)MC。其
      他運(yùn)算根據(jù)算法類推; 3>用戶發(fā)送運(yùn)算指令,此時(shí)地址線addr-0。運(yùn)算類型有模乘、模加、模減和取模運(yùn)
      算。指令中應(yīng)該表明兩個(gè)運(yùn)算模塊各自的操作。注意,在發(fā)送運(yùn)算指令之前,運(yùn)
      算所需要的操作數(shù)和參數(shù)必須已經(jīng)輸入; 4>協(xié)處理器進(jìn)行運(yùn)算;
      5>判斷運(yùn)算是否結(jié)束, 一般情況下應(yīng)該有一個(gè)握手信號(hào)表明運(yùn)算是否結(jié)束,這個(gè)信
      號(hào)既可以作為中斷也可以作為查詢。 6〉用戶讀取結(jié)果數(shù)據(jù)。 在整個(gè)流程中,根據(jù)協(xié)議決定運(yùn)算的順序,如果相鄰兩次運(yùn)算有相同的操作數(shù)或參數(shù), 可以不重復(fù)輸入;如果下一次運(yùn)算的操作數(shù)是此次運(yùn)算的結(jié)果數(shù)據(jù),用戶也可以不讀出結(jié)果 數(shù)據(jù),在內(nèi)部直接運(yùn)算即可。
      權(quán)利要求
      1.一種公鑰密碼算法協(xié)處理器的實(shí)現(xiàn)方法,其硬件是由兩個(gè)相同的運(yùn)算模塊組成,每個(gè)運(yùn)算模塊包括RAM模塊、算法模塊和控制模塊,其特征在于協(xié)處理器包括雙核、多RAM模塊、控制模塊和一位地址線,使用該協(xié)處理器需要完整的指令集,并按一定的操作流程執(zhí)行。
      2. 如權(quán)利要求1所述多RAM模塊,其特征在于協(xié)處理器中使用一個(gè)雙端口 RAM和一 個(gè)單端口 RAM。
      3. 如權(quán)利要求1所述雙核,其特征是指協(xié)處理器中包含兩個(gè)完全相同的運(yùn)算模塊,每 個(gè)運(yùn)算模塊都有各自的RAM模塊、算法模塊和控制模塊。
      4. 如權(quán)利要求1所述控制模塊,其特征是主要包括接口控制、對RAM的讀寫控制、 對專用寄存器的讀寫控制、握手信號(hào)的控制和算法模塊的所有開關(guān)控制。
      5. 如權(quán)利要求1所述一位地址線,其特征是在運(yùn)算過程中標(biāo)示兩個(gè)地址命令寄存器 和數(shù)據(jù)寄存器。
      6. 如權(quán)利要求1所述為保證協(xié)處理器正常工作的操作流程,其步驟如下-1>輸入寫參數(shù)指令(地址線置0);2>輸入?yún)?shù)(地址線置l);3>輸入寫數(shù)據(jù)指令(地址線置0);4>輸入數(shù)據(jù)(地址線置1);5>輸入運(yùn)算指令(地址線置0);6>等待運(yùn)算結(jié)束,輸出結(jié)果數(shù)據(jù)(地址線置l)。
      7. 如權(quán)利要求1所述算法模塊中包括模乘運(yùn)算、模加運(yùn)算、模減運(yùn)算、取模運(yùn)算。
      全文摘要
      本發(fā)明提供一種雙核公鑰密碼算法協(xié)處理器的實(shí)現(xiàn)方法,能夠很好的解決由于運(yùn)算中大數(shù)寬度過長導(dǎo)致的存儲(chǔ)量過大問題。通過本發(fā)明描述的方式,只需增加必要的控制部分,并且不增加額外時(shí)間開銷,就能達(dá)到在一定程度上節(jié)約面積資源,并提高后端版圖布線利用率。同時(shí)雙核運(yùn)算模塊的使用,大大提高了公鑰密碼運(yùn)算效率。一位地址線的設(shè)計(jì),不僅可適應(yīng)在資源有限的情況下使用協(xié)處理器,還便于簡化整個(gè)公鑰密碼算法流程的運(yùn)算。在流程中協(xié)處理器的結(jié)果數(shù)據(jù)可以不從接口輸出,只需根據(jù)算法需要直接參與下一個(gè)運(yùn)算。實(shí)現(xiàn)該功能的部件是兩個(gè)完全相同的運(yùn)算模塊和接口控制模塊,每個(gè)運(yùn)算模塊包括RAM模塊、控制模塊和算法模塊。
      文檔編號(hào)H04L9/30GK101170406SQ20061011409
      公開日2008年4月30日 申請日期2006年10月27日 優(yōu)先權(quán)日2006年10月27日
      發(fā)明者余秋芳, 關(guān)紅波, 勇 田, 胡曉波, 陳學(xué)振, 陳立志 申請人:北京中電華大電子設(shè)計(jì)有限責(zé)任公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1