亚洲自拍偷拍网,亚洲国产精品欧美日韩一区二区,国产精品视频播放,欧美一区二区三区不卡免费,欧美福利在线视频,国产黄色片一级

您好!歡迎光臨烜芯微科技品牌官網(wǎng)!

深圳市烜芯微科技有限公司

ShenZhen XuanXinWei Technoligy Co.,Ltd
二極管、三極管、MOS管、橋堆

全國服務熱線:18923864027

  • 熱門關鍵詞:
  • 橋堆
  • 場效應管
  • 三極管
  • 二極管
  • 基于FPGA的可重構密碼芯片設計介紹
    • 發(fā)布時間:2024-09-26 17:56:39
    • 來源:
    • 閱讀次數(shù):
    基于FPGA的可重構密碼芯片設計介紹
    目前,國內外廣泛使用的密碼處理芯片大都是實現(xiàn)某種特定密碼算法的專用芯片,如MD5芯片、SHA一1芯片等。由于專用密碼芯片實現(xiàn)的密碼算法是確定的且不可更改的,因此難以滿足不同密碼用戶多層次的安全性需要。為克服這一缺陷,本文介紹了SHA一1、SHA224及SHA256三種安全雜湊算法的基本流程,采用可重構體系結構的設計思想和方法設計出一款可實現(xiàn)這三種算法的可重構密碼芯片,并對關鍵路徑進行了優(yōu)化設計。最后給出了基于Ahera公司的Cyclone系列FPGA的可重構密碼芯片的實現(xiàn)結果。
    1.算法簡介
    1.1SHA-1算法介紹
    SHA-1算法輸入報文的最大長度不超過264bit,輸入按512bit分組進行處理,產生的輸出是一個160bit的報文摘要。該算法處理包括以下幾個步驟:
    (1)附加填充比特。對報文進行填充使報文長度與448模512同余(長度=48 mod 512),填充的比特數(shù)范圍從1到512,填充比特串的最高位為1,其余位為0。
    (2)附加長度值。將用64bit表示的初始報文(填充前)的位長度附加在步驟(1)的結果后(低位字節(jié)優(yōu)先)。
    (3)初始化緩存。使用一個160bit的緩存存放該散列函數(shù)的中間值及最終結果。該緩存的值分別表示為A=67452301。B=EFCDAB89,C=0x98BADCEF,D=0x10325476,E=C3D2E1F0。
    (4)處理512bit(16個字)報文分組序列。算法的核心是一個包含四個循環(huán)的模塊,每個循環(huán)由20個處理步驟組成。四個循環(huán)有相似的結構,但每個循環(huán)使用不同的邏輯函數(shù),分別表示為f1、f2、f3、f4。每個循環(huán)都以當前正在處理的512bit和160-bit緩存值A、B、C、D、E為輸入,然后更新緩存內容。每個循環(huán)還使用一個額外的常數(shù)值,對應的四輪Kt取值及邏輯函數(shù)ft如表1所示。第四循環(huán)最后一步的輸出與第一循環(huán)的輸入進行模232相加后得到下一個512bit分組計算所需的A、B、C、D、E值。
    FPGA可重構密碼芯片
    (5)所有的512bit分組處理完畢后,最后一個分組產生的輸出便是160bit的報文摘要。圖1說明了SHA一1算法中每一處理步驟所包含的操作。
    FPGA可重構密碼芯片
    圖1 基本的SHA-1操作(單步)
    1.2SHA-224/SHA-256算法介紹
    SHA-224/SHA-256算法輸入報文的最大長度不超過264bit,輸入按512bit分組進行處理,產生的輸出是一個224bit或256bit的報文摘要。該算法處理包括以下幾個步驟:
    (1)和(2)與SHA-1算法的前兩步相同。
    (3)初始化緩存。使用一個256bit的緩存存放該散列函數(shù)的中間值及最終結果。當執(zhí)行SHA-224算法時,該緩存的值分別表示為A=0xC1059ED8,B=0x367CD507,C=0x3070DD17,D=0xF70E5939,E=0xFFC00B31,F(xiàn)=0x68581511,G=0x64F98FA7,H=0xBEFA4FA4;當執(zhí)行SHA一256算法時,該緩存的值分別表示為:A=0x6A09E667=0xBB67AE85,C=0x3C6EF372,D=0xA54FF53A,E=0x510E527F,F(xiàn)=0x9B05688C,G=0x1F83D9AB,H=0x5BEOCD19。
    (4)處理512bit(16個字)報文分組序列。該算法使用六種基本邏輯函數(shù),由64步迭代運算組成。每步都以256bit緩存值A、B、C、D、E、F、G、H為輸入,然后更新緩存內容。每步使用一個32bit常數(shù)值Kt和一個32bitWt。六種基本函數(shù)如下:
    FPGA可重構密碼芯片
    Wt是由當前的輸入分組(512bit長)導出的32bit長的數(shù)。在所有64次運算完成之后,將其輸出A、B、C、D、E、F、G、H與第一步的輸入A、B、C、D、E、F、G、H的值對應進行模232相加。然后將其結果作為下一分組數(shù)據(jù)A、B、C、D、E、F、G、H的值繼續(xù)運行算法。
    (5)所有的512bit分組處理完畢后,對于SHA256算法,最后一個分組產生的輸出便是256bit的報文摘要;若是SHA-224算法,則最后一個分組產生的輸出取前224bit作為報文摘要。圖2說明了SHA-224/SHA-256算法每一處理步驟所包含的操作。
    FPGA可重構密碼芯片
    圖2 基本的SHA-224/SHA-256單步運算
    2.電路結構
    2.1總體結構設計
    本設計采用可重構密碼芯片的設計思想,通過對SHA-1、SHA-224、SHA-256三種算法分析可以看出,這三種算法的Wt生成電路和移位存儲模塊是可重用的部件。數(shù)據(jù)通路中的CSA加法器、存放雜湊值的移位寄存器以及常數(shù)值存儲模塊K也都是可重用的部件。按照上述分析,把該芯片分為三大模塊:存儲模塊、控制模塊、可重用處理模塊。其中,存儲模塊用于存儲各種算法所需的常數(shù)值。控制模塊用于接收外部的控制信號和選擇算法信號,控制各種算法的存儲和運算。可重用處理模塊用于對各種算法進行可重構計算。根據(jù)整體算法要求,又將其再往下劃分為七個功能子模塊。本設計充分利用FPGA可重構計算的特點,對可重用的模塊進行可重構計算以實現(xiàn)對FPGA資源的靈活有效利用。SHA-1/SHA-224/SHA-256可重構運算電路IPCORE由以下七個子模塊構成:控制電路、Wt生成電路、Kt常數(shù)寄存器、填充電路、運算電路、HASH值暫存寄存器、移位寄存器。本設計總體結構框圖如圖3所示。
    FPGA可重構密碼芯片
    圖3 SHA-1/SHA-224/SHA-256可重構芯片電路設計整體架構
    其中,Kt常數(shù)寄存器子模塊和HASH值暫存寄存器子模塊屬于存儲模塊;Wt生成電路子模塊、填充電路子模塊、運算電路子模塊、移位寄存器子模塊屬于可重用處理模塊。控制電路子模塊屬于控制模塊。每個子模塊具體功能為:Wt生成電路負責對每組512bit的輸入數(shù)據(jù)生成64個或80個32bit的字并送入運算通路。Kt常數(shù)寄存器用于存儲64個或80個32bit的常量。控制電路負責接收外部的控制信號,并產生所有的內部控制信號,采用計數(shù)器電路生成。填充電路接收輸入數(shù)據(jù),產生每個512bit分組并送入Wt生成電路。運算電路負責計算多個模232加法。然后將其結果送入移位寄存器。HASH值暫存寄存器用于存儲5個或8個32bit寄存器的初始值以及每個512bit分組運算完畢后的5個或8個32bit寄存器的臨時值。移位寄存器負責對每步運算的數(shù)據(jù)進行移位存儲。當HASH運算結束時,移位寄存器將其本身值與HASH值暫存寄存器中的值相加。當外部讀信號有效時,電路實現(xiàn)串行移位功能,在控制信號作用下,將寄存器內的數(shù)據(jù)順序讀出。
    CLK是系統(tǒng)時鐘信號;RESET是復位信號,RESET有效時,所有寄存器復位;INIT是初始化信號,INIT有效時,初始化摘要計算,在每一批數(shù)據(jù)進行摘要運算之前,首先執(zhí)行初始化操作,然后按512bit分組寫入數(shù)據(jù);WEN是寫使能信號,WEN有效時,在CLK時鐘上升沿將512bit的數(shù)據(jù)分16次由32bit數(shù)據(jù)總線寫入芯片內部數(shù)據(jù)寄存器;REN是讀使能信號,REN有效時,將內部運算結果讀出數(shù)據(jù)端口;DATAIN是數(shù)據(jù)輸入,即輸入的512bit分組數(shù)據(jù)。SEL是選擇算法指令信號,用來選擇所需的算法。READY是運算狀態(tài)信號,每512bit分組運算完畢后,READY變?yōu)橛行В却x出或外部數(shù)據(jù)繼續(xù)輸入。DIGEST是摘要值輸出,即REN信號有效時輸出的相應摘要值。
    2.2控制電路設計
    控制電路的核心是一個7位計數(shù)器,每來一個時鐘信號,便進行加1操作,根據(jù)不同的計數(shù)值可給出不同的控制信號。依照算法要求,每處理一組5l2bit分組數(shù)據(jù)時,若執(zhí)行SHA-1算法則需要80步運算;若執(zhí)行SHA-224/SHA-256算法則需要64步。為實現(xiàn)邏輯資源的可重構,達到計數(shù)器資源重用的目的,就需要計數(shù)器在不同的算法下產生不同的控制信號。本控制電路采用增加選擇算法信號(SEL)來實現(xiàn),其結構如圖4所示。其中READY信號表示每一分組運算完成信號。ADD信號表示分組運算的最后一步各寄存器的值與第一步計算時的各寄存器的輸入值相加信號。START信號表示移位寄存器移位信號。
    FPGA可重構密碼芯片
    圖4 SHA-1/SHA-224/SHA-256控制電路設計
    2.3數(shù)據(jù)路徑優(yōu)化設計
    SHA-1運算模塊使用五個寄存器(見圖1)存放散列函數(shù)每一步運算的中間結果;SHA-224/SHA-256運算模塊則采用八個寄存器(見圖2)存放散列函數(shù)每一步運算的中間結果。為實現(xiàn)可重構計算以使不同算法邏輯單元重用,本設計采用八級移位寄存器A、B、C、D、E、F、G、H實現(xiàn),每個寄存器32bit位寬。當執(zhí)行SHA一1算法時,使用前五個32bit移位寄存器;當執(zhí)行SHA-224/SHA-256算法時,使用全部八個移位寄存器。當RESET信號有效時,寄存器初始化,電路將根據(jù)不同算法給寄存器賦初值。數(shù)據(jù)路徑設計的關鍵是計算每步A寄存器的值。當執(zhí)行SHA-1算法時,At+1=(Et+ft(Bt,Ct,Dt)+At(<<<5)+Wt+Kt)mod232;當執(zhí)行SHA-224/SHA-256算法時:At+1=(Ht+∑t(Et)+Ch(Et,F(xiàn)t,Gt)+Kt+Wt+∑0(At)+Maj(At,Bt,Ct)mod232
    式中:At、Bt、Ct、Dt、Et、Ft、Gt、Ht、Wt、Kt是第t時刻的各寄存器的值、消息分組和常數(shù)值。At+1是第t+1時刻的A寄存器的值。
    SHA-1/SHA-224/SHA-256運算模塊的關鍵路徑的設計是計算At+1,在這一路徑中,需要完成多個多變量邏輯函數(shù)和多個連續(xù)32位加法的運算。可以看出,At+1計算主要包括非線性函數(shù)運算、加法運算和移位。其中非線性函數(shù)運算只是完成信號在不同輸入輸出之間的切換,只需用組合邏輯電路設計,不會產生太大的延遲;移位只占用布線資源,同樣不會對電路的速度有影響;而加法運算由于進位會在電路上產生延遲,因此應盡量對其進行優(yōu)化,否則會影響電路運算速度。因此在電路的設計上采用保存進位加法器(CSA),以減少延遲。由于SHA-1算法執(zhí)行的是五個連續(xù)32位加法,而SHA-224/SHA-256執(zhí)行的是七個連續(xù)32位加法,而且SHA-1與SHA-224/SHA-256所使用的邏輯函數(shù)和輸入寄存器的值不同,這就需要將各個不同的函數(shù)變換的值提前計算出來,再根據(jù)選擇的算法對不同的值進行選擇,然后送入CSA加法器的輸入端。
    本設計電路由五級保存進位加法器(CSA)和兩個串行進位加法器(CPA)構成,實現(xiàn)了保存進位加法器對不同算法的重用,其結構如圖5所示。
    FPGA可重構密碼芯片
    圖5 連加運算優(yōu)化電路
    3.性能評估
    以上設計采用VHDL語言描述,在QuartusII 4.2環(huán)境下編譯綜合,選用Altera Cyclone系列器件為目標器件進行整體綜合、仿真和底層布局,采用FIPS180-2給出的測試數(shù)據(jù)進行仿真,采用單個分組和多個分組分別進行測試,均得到正確結果。
    在本設計中,當電路執(zhí)行SHA-1算法時運算一個512bit分組需要82個時鐘周期,其中第一個為數(shù)據(jù)準備周期,第2~81個為運算周期,第82個為移位寄存器的值與HASH值暫存寄存器的值相加并將其結果送入移位寄存器的周期;當執(zhí)行SHA-224/SHA-256算法時運算一個512bit分組需要66個時鐘周期,其中第一個為數(shù)據(jù)準備周期,第2~65個周期為運算周期,第66為移位寄存器的值與HASH值暫存寄存器的值相加并將其結果送入移位寄存器的周期。該模塊的運算速度可以通過下面公式得出:
    運算速度=(分組長度/運算耗用的時鐘周期數(shù))×系統(tǒng)時鐘頻率,單位為Mbps
    將實現(xiàn)的可重構算法分別下載到Altera Cyclone系列器件后測得的主要性能指標在表2中給出。
    FPGA可重構密碼芯片
    本設計的創(chuàng)新點是利用可重構設計思想對SHA-1、SHA-224、SHA-256三種不同算法的可重用模塊進行可重構計算,通過FPGA實現(xiàn)時既能靈活實現(xiàn)不同算法,又能實現(xiàn)資源的充分利用,節(jié)約大量邏輯資源。為進一步說明本設計對FPGA資源利用情況,下面將這三種算法的專用芯片與可重構SHA-1/SHA-224/SHA-256算法芯片的一些參數(shù)進行比較,如表3所示。這里要說明的是這三種算法的參數(shù)均是采用類似SHA-1/SHA-224/SHA-256的總體電路架構設計得到的。選擇的器件均是EP1C20F324C6。
    FPGA可重構密碼芯片
    結束語
    本文總結了基于FPGA的可重構密碼芯片設計方案。該可重構密碼芯片是一種創(chuàng)新性的密碼芯片,它很好地克服了傳統(tǒng)的密碼芯片只能實現(xiàn)特定密碼算法的弊端,使得密碼使用者能夠在它上面很方便地選擇所需要的密碼算法,從而大大提高了密碼系統(tǒng)的靈活性。可重構密碼芯片可作為構建密碼系統(tǒng)的核心部件而廣泛應用于保密通信、網(wǎng)絡終端加密設備等領域,因此該研究方向具有重要的政治、軍事和經(jīng)濟意義。
    〈烜芯微/XXW〉專業(yè)制造二極管,三極管,MOS管,橋堆等,20年,工廠直銷省20%,上萬家電路電器生產企業(yè)選用,專業(yè)的工程師幫您穩(wěn)定好每一批產品,如果您有遇到什么需要幫助解決的,可以直接聯(lián)系下方的聯(lián)系號碼或加QQ/微信,由我們的銷售經(jīng)理給您精準的報價以及產品介紹
     
    聯(lián)系號碼:18923864027(同微信)
     
    QQ:709211280

    相關閱讀
    主站蜘蛛池模板: 久久这里只有精品66re99| 伊人久久综合热线大杳蕉下载| 男女爱视频免费高清在线观看| 久久er国产精品免费观看1| 看毛片网| 国产成人精品男人免费| 色激情综合网| 久久成人综合| 国产精品福利久久香蕉中文| 韩国三级hd中文字幕久久精品| 日本久久精品视频| 亚洲最大在线视频| 99热成人精品免费久久| 欧美成a人片免费看久久| 九九精品99久久久香蕉| 视频亚洲一区| 打飞机导航| 国产成人综合在线观看网站| 免费人成网站在线高清| 色综合伊人色综合网站中国| 天天精品| 日本高清免费中文在线看| 亚洲国产成人久久综合一区| 亚洲一区二区欧美日韩| 亚洲精品高清视频| 青草免费在线| 99re热久久| 大乳欲妇三级一区二区三区| 国产免费高清在线精品一区| 国产成人在线视频免费观看| 亚洲视频免费在线观看| 亚洲成年人在线观看| 日本免费一二区| 亚洲国产成人久久精品影视| 中文字幕在线观看一区二区三区| 趣享网盘| 66av视频| 国产成人综合在线| 最新国产精品视频免费看| 成在线人免费视频一区二区三区| 国产成在线观看免费视频成本人|