《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 一種基于FPGA的可重構密碼芯片的設計與實現

一種基于FPGA的可重構密碼芯片的設計與實現

2008-05-20
作者:楊曉輝, 戴紫彬

  摘 要: 介紹了SHA-1、SHA224及SHA256三種" title="三種">三種安全雜湊算法的基本流程,采用可重構" title="可重構">可重構體系結構的設計思想和方法設計出一款可實現這三種算法的可重構密碼芯片,并對關鍵路徑進行了優化設計。最后給出了基于Altera公司的Cyclone系列FPGA的可重構密碼芯片的實現結果。
  關鍵詞: SHA-1/SHA-224/SHA-256 可重構密碼芯片 FPGA


  目前,國內外廣泛使用的密碼處理芯片大都是實現某種特定密碼算法" title="密碼算法">密碼算法的專用芯片,如MD5芯片、SHA-1芯片等。由于專用密碼芯片實現的密碼算法是確定的且不可更改的,因此難以滿足不同密碼用戶多層次的安全性需要。為克服這一缺陷,本文設計一種新型的密碼處理芯片——可重構密碼芯片。
  可重構密碼芯片是采用可重構體系結構設計而成的用于對數據進行加/解密處理的集成電路芯片。其內部邏輯電路能夠根據不同密碼算法的需求重新組織,構成不同的電路結構,實現不同的功能,從而能夠靈活、快速地實現多種不同的密碼算法[1]。此外,由于可重構體系結構設計是建立在某些硬件資源能夠被不同應用需求重復使用的基礎之上的,所以其消耗的硬件資源要比只實現某種算法的專用芯片所占用的硬件資源的總和要少得多。可重構密碼芯片不僅可以靈活實現多種密碼算法,還可以更加有效地利用硬件資源以達到節約邏輯資源的目的。本文在分析SHA-1/SHA-224/256 [2]算法的基礎上,選用Altera公司的Cyclone系列器件,采用VHDL語言進行描述,并給出一種能實現該可重構密碼芯片的電路設計方案。
1 算法簡介
1.1 SHA-1算法介紹[3]

  SHA-1算法輸入報文的最大長度不超過264bit,輸入按512bit分組進行處理,產生的輸出是一個160bit的報文摘要。該算法處理包括以下幾個步驟:
  (1)附加填充比特。對報文進行填充使報文長度與448模512同余(長度=448 mod 512),填充的比特數范圍從1到512,填充比特串的最高位為1,其余位為0。
  (2)附加長度值。將用64bit表示的初始報文(填充前)的位長度附加在步驟(1)的結果后(低位字節優先)。
  (3)初始化緩存。使用一個160bit的緩存存放該散列函數的中間值及最終結果。該緩存的值分別表示為A=67452301,B=EFCDAB89,C=0x98BADCEF,D=0x10325476,E=C3D2E1F0。
  (4)處理512bit(16個字)報文分組序列。算法的核心是一個包含四個循環的模塊,每個循環由20個處理步驟組成。四個循環有相似的結構,但每個循環使用不同的邏輯函數,分別表示為f1、f2、f3、f4。每個循環都以當前正在處理的512bit和160-bit緩存值A、B、C、D、E為輸入,然后更新緩存內容。每個循環還使用一個額外的常數值Kt,對應的四輪Kt取值及邏輯函數ft如表1所示。第四循環最后一步的輸出與第一循環的輸入進行模232相加后得到下一個512bit分組計算所需的A、B、C、D、E值。
  (5)所有的512bit分組處理完畢后,最后一個分組產生的輸出便是160bit的報文摘要。圖1說明了SHA-1算法中每一處理步驟所包含的操作。


1.2 SHA-224/SHA-256算法介紹
  SHA-224/SHA-256算法輸入報文的最大長度不超過264bit,輸入按512bit分組進行處理,產生的輸出是一個224bit或256bit的報文摘要。該算法處理包括以下幾個步驟:
  (1)和(2)與SHA-1算法的前兩步相同。
  (3)初始化緩存。使用一個256bit的緩存存放該散列函數的中間值及最終結果。當執行SHA-224算法時,該緩存的值分別表示為A= 0xC1059ED8, B=0x367CD507, C=0x3070DD17,D=0xF70E5939,E=0xFFC00B31,F=0x68581511,G=0x64F98FA7,H=0xBEFA4FA4;當執行SHA-256算法時,該緩存的值分別表示為A=0x6A09E667,B=0xBB67AE85,C=0x3C6EF372,D=0xA54FF53A,E=0x510E527F,F=0x9B05688C,G=0x1F83D9AB, H=0x5BE0CD19。


  (4)處理512bit(16個字)報文分組序列。該算法使用六種基本邏輯函數,由64步迭代運算組成。每步都以256bit緩存值A、B、C、D、E、F、G、H為輸入,然后更新緩存內容。每步使用一個32bit常數值Kt和一個32bit Wt。六種基本函數如下:
  
  Wt是由當前的輸入分組(512bit長)導出的32bit長的數。在所有64次運算完成之后,將其輸出A、B、C、D、E、F、G、H與第一步的輸入A、B、C、D、E、F、G、H的值對應進行模232相加。然后將其結果作為下一分組數據A、B、C、D、E、F、G、H的值繼續運行算法。
  (5)所有的512bit分組處理完畢后,對于SHA256算法,最后一個分組產生的輸出便是256bit的報文摘要;若是SHA-224算法,則最后一個分組產生的輸出取前224bit作為報文摘要。圖2說明了SHA-224/SHA-256算法每一處理步驟所包含的操作。


2 電路結構
2.1總體結構設計

  本設計采用可重構密碼芯片的設計思想,通過對SHA-1、SHA-224、SHA-256 三種算法分析可以看出,這三種算法的Wt生成電路和移位存儲模塊是可重用的部件。數據通路中的CSA加法器、存放雜湊值的移位寄存器" title="移位寄存器">移位寄存器以及常數值存儲模塊Kt也都是可重用的部件。按照上述分析,把該芯片分為三大模塊:存儲模塊、控制模塊、可重用處理模塊。其中,存儲模塊用于存儲各種算法所需的常數值。控制模塊用于接收外部的控制信號" title="控制信號">控制信號和選擇算法信號,控制各種算法的存儲和運算。可重用處理模塊用于對各種算法進行可重構計算。根據整體算法要求,又將其再往下劃分為七個功能子模塊。本設計充分利用FPGA可重構計算的特點,對可重用的模塊進行可重構計算以實現對FPGA資源的靈活有效利用。 SHA-1/SHA-224/SHA-256可重構運算電路IP CORE由以下七個子模塊構成:控制電路、Wt生成電路、Kt常數寄存器、填充電路、運算電路、HASH值暫存寄存器、移位寄存器。本設計總體結構框圖如圖3所示。


  其中,Kt常數寄存器子模塊和HASH值暫存寄存器子模塊屬于存儲模塊;Wt生成電路子模塊、填充電路子模塊、運算電路子模塊、移位寄存器子模塊屬于可重用處理模塊。控制電路子模塊屬于控制模塊。每個子模塊具體功能為:Wt生成電路負責對每組512bit的輸入數據生成64個或80個32bit 的字并送入運算通路。Kt常數寄存器用于存儲64個或80個32bit的常量。控制電路負責接收外部的控制信號,并產生所有的內部控制信號,采用計數器電路生成。填充電路接收輸入數據,產生每個512bit分組并送入Wt生成電路。運算電路負責計算多個模232加法。然后將其結果送入移位寄存器。HASH值暫存寄存器用于存儲5個或8個32bit寄存器的初始值以及每個512bit分組運算完畢后的5個或8個32bit寄存器的臨時值。移位寄存器負責對每步運算的數據進行移位存儲。當HASH運算結束時,移位寄存器將其本身值與HASH值暫存寄存器中的值相加。當外部讀信號有效時,電路實現串行移位功能,在控制信號作用下,將寄存器內的數據順序讀出。
  CLK是系統時鐘信號;RESET是復位信號,RESET有效時,所有寄存器復位;INIT是初始化信號,INIT有效時,初始化摘要計算,在每一批數據進行摘要運算之前,首先執行初始化操作,然后按512bit分組寫入數據;WEN是寫使能信號,WEN有效時,在CLK時鐘上升沿將512bit的數據分16次由32bit數據總線寫入芯片內部數據寄存器;REN是讀使能信號,REN有效時,將內部運算結果讀出數據端口;DATAIN是數據輸入,即輸入的512bit分組數據。SEL是選擇算法指令信號,用來選擇所需的算法。READY是運算狀態信號,每512bit分組運算完畢后, READY變為有效,等待讀出或外部數據繼續輸入。DIGEST是摘要值輸出,即REN信號有效時輸出的相應摘要值。
2.2 控制電路設計
  控制電路的核心是一個7位計數器,每來一個時鐘信號,便進行加1操作,根據不同的計數值可給出不同的控制信號。依照算法要求,每處理一組512 bit分組數據時,若執行SHA-1算法則需要80步運算;若執行SHA-224/SHA-256算法則需要64步。為實現邏輯資源的可重構,達到計數器資源重用的目的,就需要計數器在不同的算法下產生不同的控制信號。本控制電路采用增加選擇算法信號(SEL)來實現,其結構如圖4所示。其中READY信號表示每一分組運算完成信號。ADD信號表示分組運算的最后一步各寄存器的值與第一步計算時的各寄存器的輸入值相加信號。START信號表示移位寄存器移位信號。


2.3 數據路徑優化設計
  SHA-1運算模塊使用五個寄存器(見圖1)存放散列函數每一步運算的中間結果;SHA-224/SHA-256運算模塊則采用八個寄存器(見圖2)存放散列函數每一步運算的中間結果。為實現可重構計算以使不同算法邏輯單元重用,本設計采用八級移位寄存器A、B、C、D、E、F、G、H實現,每個寄存器32bit位寬。當執行SHA-1算法時,使用前五個32bit 移位寄存器;當執行SHA-224/SHA-256算法時,使用全部八個移位寄存器。當RESET信號有效時,寄存器初始化,電路將根據不同算法給寄存器賦初值。數據路徑設計的關鍵是計算每步A寄存器的值。當執行SHA-1算法時, At+1=(Et+ft(Bt,Ct,Dt)+At(〈〈〈5)+Wt+Kt) mod 232 ;當執行SHA-224/SHA-256算法時,At+1=(Ht+Σ1(Et)+Ch(Et,Ft,Gt)+Kt+Wt+Σ0(At)+Maj(At,Bt,Ct) mod 232
  式中:At、Bt、Ct、Dt、Et、Ft、Gt、Ht、Wt、Kt是第t時刻的各寄存器的值、消息分組和常數值。At+1是第t+1時刻的A寄存器的值。
  SHA-1/SHA-224/SHA-256運算模塊的關鍵路徑的設計是計算At+1,在這一路徑中,需要完成多個多變量邏輯函數和多個連續32位加法的運算。可以看出,At+1計算主要包括非線性函數運算、加法運算和移位。其中非線性函數運算只是完成信號在不同輸入輸出之間的切換,只需用組合邏輯電路設計,不會產生太大的延遲;移位只占用布線資源,同樣不會對電路的速度有影響;而加法運算由于進位會在電路上產生延遲,因此應盡量對其進行優化,否則會影響電路運算速度。因此在電路的設計上采用保存進位加法器(CSA),以減少延遲。由于SHA-1 算法執行的是五個連續32位加法,而SHA-224/SHA-256執行的是七個連續32位加法,而且SHA-1與SHA-224/SHA-256所使用的邏輯函數和輸入寄存器的值不同,這就需要將各個不同的函數變換的值提前計算出來,再根據選擇的算法對不同的值進行選擇,然后送入CSA加法器的輸入端。
  本設計電路由五級保存進位加法器(CSA)和兩個串行進位加法器(CPA)構成,實現了保存進位加法器對不同算法的重用,其結構如圖5所示。
3 性能評估
  以上設計采用VHDL語言描述,在QuartusII 4.2環境下編譯綜合,選用Altera Cyclone[4]系列器件為目標器件進行整體綜合、仿真和底層布局,采用FIPS 180-2給出的測試數據進行仿真,采用單個分組和多個分組分別進行測試,均得到正確結果。
  在本設計中,當電路執行SHA-1算法時運算一個512bit分組需要82個時鐘周期,其中第一個為數據準備周期,第2~81個為運算周期,第82個為移位寄存器的值與HASH值暫存寄存器的值相加并將其結果送入移位寄存器的周期;當執行SHA-224/SHA-256算法時運算一個512bit分組需要66個時鐘周期,其中第一個為數據準備周期,第2~65個周期為運算周期,第66為移位寄存器的值與HASH值暫存寄存器的值相加并將其結果送入移位寄存器的周期。該模塊的運算速度可以通過下面公式得出:
  運算速度=(分組長度/運算耗用的時鐘周期數)×系統時鐘頻率,單位為Mbps
  將實現的可重構算法分別下載到Altera Cyclone系列器件后測得的主要性能指標在表2中給出。


  本設計的創新點是利用可重構設計思想對SHA-1、SHA-224、SHA-256三種不同算法的可重用模塊進行可重構計算,通過FPGA實現時既能靈活實現不同算法,又能實現資源的充分利用,節約大量邏輯資源。為進一步說明本設計對FPGA資源利用情況,下面將這三種算法的專用芯片與可重構SHA-1/SHA-224/SHA-256算法芯片的一些參數進行比較,如表3 所示。這里要說明的是這三種算法的參數均是采用類似SHA-1/SHA-224/SHA-256的總體電路架構設計得到的。選擇的器件均是EP1C20F324C6。
  本文在分析SHA-1/224/256三種不同的雜湊算法的基礎上,通過Altera公司的Cyclone系列FPGA設計了一款可重構密碼芯片。可重構密碼芯片是一種創新性的密碼芯片,它很好地克服了傳統的密碼芯片只能實現特定密碼算法的弊端,使得密碼使用者能夠在它上面很方便地選擇所需要的密碼算法,從而大大提高了密碼系統的靈活性。可重構密碼芯片可作為構建密碼系統的核心部件而被廣泛應用于保密通信、網絡終端加密設備等領域,因此該研究方向具有重要的政治、軍事和經濟意義[5]
參考文獻
1 曲英杰. 可重構密碼協處理器的組成與結構. 計算機工程與應用, 2003;23:32~34
2 National Institute of Standards and Technology.Announcing the Secure Hash Standard. FIPS 180-2,2002 August 1:9~20,71~72
3 杜艷華,戴紫彬. 安全散列算法SHA-1的IP CORE的設計與實現.電子技術學院學報, 2004;16(1):17~19
4 Altera Corporation. Cyclone Device Handbook .Volume 1.available at http://www.Altera.com.
5 曲英杰,劉衛東,戰嘉瑾. 可重構密碼協處理器簡介及其特性. 計算機工程, 2004;30(13)

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲乱码视频| 亚洲大片精品永久免费| 在线观看欧美日韩| 国产综合久久久久久鬼色| 国产精品视屏| 国产精品综合网站| 国产精品视频观看| 国产精品亚洲激情 | 久久欧美肥婆一二区| 久久高清一区| 久久av资源网| 久久精品夜色噜噜亚洲aⅴ| 欧美一区二区视频免费观看| 午夜精品理论片| 午夜天堂精品久久久久| 亚洲欧美清纯在线制服| 午夜日韩电影| 久久精彩免费视频| 久久频这里精品99香蕉| 免费一级欧美片在线播放| 欧美成人激情视频| 欧美日韩成人一区二区三区| 欧美日韩1080p| 欧美天堂亚洲电影院在线播放| 欧美无砖砖区免费| 国产精品萝li| 国产自产高清不卡| 亚洲国产精品va| 亚洲美女黄网| 亚洲永久在线观看| 久久精品二区亚洲w码| 91久久精品www人人做人人爽| 亚洲精品欧美日韩| 亚洲影音一区| 久久久久国产精品人| 免费在线成人av| 欧美日韩免费观看一区| 国产精品美女黄网| 国一区二区在线观看| 亚洲成人在线观看视频| 日韩午夜高潮| 欧美一区午夜精品| 亚洲精品一区二区三区99| 亚洲一级影院| 欧美怡红院视频| 美女视频网站黄色亚洲| 欧美性色视频在线| 国内揄拍国内精品久久| 亚洲精品欧美精品| 香蕉久久久久久久av网站| 亚洲精品老司机| 欧美夜福利tv在线| 欧美国产视频日韩| 国产精品一区在线观看| 亚洲电影在线免费观看| 亚洲午夜精品久久| 亚洲国产精品久久久久秋霞影院| 中文欧美字幕免费| 久久精品视频va| 欧美日韩国产黄| 国产一区二区三区久久| 日韩视频免费大全中文字幕| 香港成人在线视频| 一区二区高清视频| 久久精选视频| 欧美手机在线视频| 在线不卡中文字幕播放| 亚洲午夜成aⅴ人片| 亚洲国产天堂网精品网站| 亚洲在线免费观看| 老牛影视一区二区三区| 国产精品免费看| 亚洲黄色成人| 欧美一区二区三区精品电影| 在线视频亚洲一区| 美日韩免费视频| 国产目拍亚洲精品99久久精品| 亚洲国产精品女人久久久| 午夜精品视频| 亚洲午夜久久久久久尤物| 噜噜噜91成人网| 国产精品综合视频| 亚洲理伦在线| 亚洲精品久久久久| 久久久人成影片一区二区三区 | 亚洲日本成人网| 久久久精品性| 国产精品自拍一区| 一本大道久久a久久综合婷婷| 亚洲国产三级网| 久久精品水蜜桃av综合天堂| 国产精品高潮视频| 亚洲精品一区二区三区婷婷月| 亚洲第一综合天堂另类专| 欧美在线视频免费| 国产精品久久久久高潮| 99国产精品久久| 日韩系列欧美系列| 欧美成人免费一级人片100| 国内免费精品永久在线视频| 亚洲欧美亚洲| 午夜日韩在线观看| 欧美亚日韩国产aⅴ精品中极品| 亚洲精品国久久99热| 亚洲啪啪91| 欧美插天视频在线播放| 黑人一区二区| 久久爱www| 在线欧美福利| 亚洲国产一区在线观看| 久久国产88| 久久久久久电影| 国产日韩一区二区三区| 亚洲一区国产视频| 亚洲欧美卡通另类91av| 国产精品ⅴa在线观看h| 一本久道综合久久精品| 一区二区三区视频观看| 欧美精品免费看| 亚洲免费观看视频| 正在播放欧美一区| 欧美三日本三级三级在线播放| 99日韩精品| 亚洲欧美日韩国产另类专区| 欧美天天视频| 亚洲欧美日韩高清| 久久福利资源站| 国内精品99| 亚洲黑丝在线| 欧美另类高清视频在线| 日韩视频一区二区| 亚洲一区自拍| 国产日本亚洲高清| 亚洲一区欧美二区| 久久久精品动漫| 在线观看亚洲视频| 夜夜嗨av色综合久久久综合网| 欧美色网一区二区| 亚洲伊人色欲综合网| 久久精品国产96久久久香蕉| 国内成+人亚洲| 亚洲精选一区| 国产精品v日韩精品v欧美精品网站| 日韩午夜电影av| 99热精品在线| 欧美亚韩一区| 亚洲欧美日韩一区在线| 久久久久国内| 亚洲二区在线观看| 这里只有精品在线播放| 国产精品毛片a∨一区二区三区| 欧美一区二区三区免费视| 久久久久久穴| 亚洲精品国产视频| 亚洲欧美影音先锋| 狠狠久久综合婷婷不卡| 亚洲美女免费视频| 国产精品美女久久久| 久久精品国产一区二区电影| 欧美精品日日鲁夜夜添| 亚洲一区制服诱惑| 玖玖玖国产精品| 亚洲免费观看高清在线观看| 欧美在线三级| 91久久亚洲| 久久精品欧美日韩精品| 亚洲精品免费看| 久久成人国产| 亚洲精品一区二区三区av| 欧美一区二区三区视频在线| 在线精品高清中文字幕| 亚洲一区二区三区涩| 国产自产精品| 亚洲视频在线播放| 国产一区二区三区在线免费观看 | 久久精品国产69国产精品亚洲 | 久久深夜福利免费观看| 99国产精品久久久久久久久久 | 国产午夜精品视频| 夜久久久久久| 黄色综合网站| 亚洲男人的天堂在线观看 | 亚洲日本中文字幕区 | 久久这里有精品15一区二区三区| 日韩亚洲精品电影| 看片网站欧美日韩| 亚洲欧美日韩区| 欧美日韩精品是欧美日韩精品| 久久高清一区| 国产精品裸体一区二区三区| 亚洲精品综合精品自拍| 国产一区二区中文字幕免费看| 亚洲一区二区三区国产| 亚洲第一综合天堂另类专| 欧美综合77777色婷婷| 日韩亚洲一区二区| 欧美大色视频| 久久精品观看| 国产视频在线一区二区| 亚洲一区二区三区在线播放|