TW578096B - Apparatus and method for a hash processing system using integrated message digest and secure hash architectures - Google Patents

Apparatus and method for a hash processing system using integrated message digest and secure hash architectures Download PDF

Info

Publication number
TW578096B
TW578096B TW091111175A TW91111175A TW578096B TW 578096 B TW578096 B TW 578096B TW 091111175 A TW091111175 A TW 091111175A TW 91111175 A TW91111175 A TW 91111175A TW 578096 B TW578096 B TW 578096B
Authority
TW
Taiwan
Prior art keywords
hash
data
input
read
adder
Prior art date
Application number
TW091111175A
Other languages
English (en)
Inventor
Satish N Anand
Original Assignee
Corrent Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Corrent Corp filed Critical Corrent Corp
Application granted granted Critical
Publication of TW578096B publication Critical patent/TW578096B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

A7 578096 五、發明說明(/ ) [相關申請案] 本申請案係一個非臨時申請案,其在35 U.S.C. sec. 119(c)之下而主張於西兀2〇〇1年6月13日由Satish N. Anand所提出之美國臨時申請案序號第6〇/297,876號(其標 題爲‘利用多個雜湊儲存區域之雜湊處理系統之裝置及方 法)以及於西兀2001年12月1 〇日由Satish N. Anand戶斤 提出之美國臨時申請案序號第60/340,013號(其標題爲“利 用多個雜湊儲存區域之雜湊處理系統之裝置及方法”)之裨 益,其係各自以參照方式而納入本文。 [發明背景] 本發明係槪括關於安全性處理系統,且尤指一種用於 雜湊處理之裝置及方法,運用多個雜湊儲存區域以供於雜 湊處理期間而讀取及寫入資料。 雜湊函數係已廣泛運用於現代密碼學,以產生特別是 壓縮資料、訊息摘要、指紋、與檢查總和(checksum)。一 雜湊函數係一數學函數,其取得一可變長度的輸入字串, 並且將其轉換爲一固定長度的輸出字串。該輸出字串係稱 爲一雜湊値,其典型爲小於輸入字串。一 “單向(one-way) ”雜湊函數係一種其運作於一個方向之雜湊函數,此意指 其爲易於從一輸入字串以計算一雜湊値,但係難以產生其 雜湊至同一値的一第二輸入字串。Bruce Schneier於西元 1996年著作之“應用密碼學”的第429-59頁係包括種種 的單向雜湊演算法之詳細論述。 於其實施雜湊處理之大多數現代安全性應用中,所 _____ 3 ____ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ------ (請先閱讀背面之注意事項再填寫本頁) 一*°J- _線· 578096 B7 五、發明說明(i ) 用的雜湊演算法係如同定義於FIPS PUB Μ0-1之SHA1演 算法、如同定義於RFC 1321之MD5演算法、以及如同定 義於 RFC 2104 之 HMAC-SHA1 與 HMAC-MD5,所有前述 者係以參照方式而整體納入於本文。此等演算法係計算一 序列的位元組之一簽名(signature)或訊息摘要。 MD5與SHA1雜湊演算法係各自需要至少爲十六個32 位元的字組之一暫時運作記憶體。演算法係作業於以64位 兀組的區塊之一輸入資料流。右輸入資料流係並非爲64位 元組的倍數(諸如可能發生在當處理對於一個資料封包之資 料的最後部分時),則演算法係定義一程序以供內在塡充 (implicit padding) 〇 典型而言,暫時運作記憶體係塡以輸入資料流之64位 元組的區塊。若對於一個資料封包之輸入資料的最後區塊 係少於64位元組,則暫時運作記憶體係塡以由演算法所定 義之內在塡充。 SHA1雜湊演算法 如上所述,一種普遍運用之單向雜湊演算法係“安全 雜湊演算法(secure hash algorithm)” 或 “SHA1” ,其係由 美國國家標準暨技術學會(NIST)與美國國家安全機構(NSA) 所硏發。SHA1係詳述於由NIST於西元1993年5月11日 所發行之聯邦資訊處理標準公報180-1 (FIPS PUB 180-1)。 美國聯邦政府係要求SHA1爲運用其標準化的“數位 簽名演算法(DSA,digital signature algorithm)” ,其計算對 於來自一個訊息摘要的訊息之一簽名。另外,美國聯邦政 _— —_4____ 本纸張尺度適用中國國家標準(CNS)A4規格(21〇 X 297公爱) (請先閲讀背面之注意事項再填寫本頁) * 4 . .線- 578096 A7 -— —____B7 ___ 五、發明說明()) -----«— »€-----— (請先閱讀背面之注意事項再填寫本頁) 府係要求SHA1爲運用在每當一安全雜湊演算法被要求用 於一聯邦應用時,且鼓勵其由私人與商業組織之運用。是 以’ SHA1之運用係已經成爲極爲普遍用於其需要一單向 雜湊演算法之應用。 當一個小於264位元之任何長度的輸入訊息係輸入至 SHA1,演算法係產生一個16〇位元的輸出,其稱爲一“訊 息摘要(message digest)” 。SHA1係在當計算一訊息摘要時 而依序處理512位元之訊息區塊。若一訊息係非爲512位 元之倍數,則SHA1係先塡充該訊息以使得該訊息爲512 位元之倍數。塡充後的訊息係接著由SHA1所處理爲n個 512位元的區塊,Mu Μ2,···,Μη,於其各個區塊係由十六 個32位元的字組L〇, ,…,L15所構成。 .線 訊息摘要計算係運用二個緩衝器與八十個32位元字組 的一序列’各個緩衝器由五個32位元的暫存器所組成。第 一個5字組的緩衝器之暫存器係標示爲]^、hb、he、hd、 與he,第二個5字組的緩衝器之暫存器係標示爲、hi、 h2、h3、h4。該80字組的序列之字組係出自於訊息區塊中 的十八個32位兀子組’且係標7P:爲W〇,Wi,。一單 一字組暫存器TEMP係亦運用。 一 回(round) t係執行於SHA1之各個反覆運作 (iteration),於其之一回係定義爲其作業於該8Q字組序列( 稱爲“輸入序列”)的一個字組Wt之計算。是以,各個區 塊之處理係涉及八十個反覆運作。因爲各個反覆運作係耗 時一個時脈週期’各個區塊之處理係運用八十個時脈週期 5 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐—- A7 578096 _____ _B7_________ 五、發明說明(f ) Ο 於八十個反覆運作期間,SHA1係運用—序列之八十 個非線性函數(NLF),fG,A,…,f79。各個函數f t,〇$t^79 ’係作業於三個32位元的字組,且產生一個32位元的字 組作爲輸出。於八十個反覆運作期間,SHA1亦運用一序 列之常數字組,KG,.·.,K79。ft(X,Y,Z)係定義如下: ft(X?Y,Z)=(X and Y) or ((NOT X) AND Z) (0^ 19) ft(X,Y,Z)=X XOR Y XOR Z (20$ 39) ft(X,Y,Z)=(X AND Y) OR (X AND Z) OR (Y AND Z) (40^1^59) ft(X,Y,Z)= X X〇R Y XOR Z (60$t$79) 該演算法亦運用一序列之常數字組,KQ,.··,K79。此等 常數係同於SHA1所運用的常數。此等常數係以十六進制 (hex)而給定爲:
Kt=5A827999 (0^ 19)
Kt=6ED9EBAl (20$ 39)
Kt=8FlBBCDC (40^t^59)
Kt=CA62ClD6 (60^t^79)
欲產生訊息摘要,首先,hO、hi、h2、h3、與h4暫 存器係初始化至一預定組的初始化値。明確而言’暫存器 h0、Μ、h2、h3、與h4係初始化至下列的値(以十六進制 h0=67452301 hl=EFCDAB89 h2=98BADCFE _ 6____—----- 本紙張尺度適用中國國家標準(CNS)A4規格(210 χ 297公釐〉 > ------ (請先閱讀背面之注意事項再填寫本頁) · -線- 578096 A7 ___B7_ 五、發明說明(上) h3=10325476 h4=C3D2ElF0。 該訊息摘要之產生係接著涉及以下作業,其中,區塊 Ml5 M2,...,Mn之各者係依序處理: 1) 將Mx分割爲十六個32位元的字組,L〇, Li,...,L15, 其中L〇係最左的字組,而Mx係欲處理之下一訊息區塊。 2) 令暫存器 ha=h0,hb=hl,hc=h2,hd=h3,且 h4=h4 3) 對於t=0至15,令Wt=Lt;及 對於 t=16 至 79,令 W^S1 (Wt_3 XOR Wt_8 XOR Wt_14 XOR Wt_16), 其中sx表示一左循環移位X位元。 4) 對於t=0至79, TEMP=S5(ha)+ft(hb,hc,hd)+he+Wt+Kt; ha=TEMP; hb=ha; hc=S30(hb); hd=hc; he=hd 5) 令 h0=h0+ha; hl=hl+hb; h2=h2+hc; h3=h3+hd; h4=h4+he 對於下一區塊而重複步驟1-5。 在處理最後一個區塊Mn之後,訊息摘要係由五個字 組h0、hi、h2、h3、h4所表示之160位元的字串。 於諸多情形,SHA1演算法係執行於一特定應用積體 電路(ASIC),於其之作業係運用硬體實施的邏輯閘而執行 。該SHA1演算法之一硬體實施係需有對於32位元的摘要 變數h0、hi、h2、h3、h4之五個暫存器,其係在起始時而 初始化至定値。其亦運用對於暫時週期變數ha、hb、he、 _7 _ 本紙張尺度適用中國國家標準(CNS)A4規格(210 χ 297公釐)
V •I ——,#.! (請先閱讀背面之注意事項再填寫本頁) •線' 578096 A7 -- —__B7____ 五、發明說明(t ) hd、he之暫存器,其分別具有由對於h0、hl、h2、h3、h4 的五個暫存器所載入之其初始値。存有80回之雜湊作業, 其改變ha、hb、he、hd、he暫存器値。最後,在80回之 後,h0、m、h2、h3、h4 變數係分別爲由 ha、hb、he、hd 、he所增量。於SHAi作業之各回,資料係讀取自暫時運 作記憶體’且寫入至暫時運作記憶體。典型而言,於先前 之實施中’於64位元組之各個雜湊作業係對於SHA1之 各回而耗時80個時脈。 MD5演算法 如上所述,一種普遍運用之單向雜湊演算法係“MD5 ’ MD係代表“訊息摘要(message digest)”。MD5係由 Ron L· Rivest所開發,且詳述於其標題爲“MD5訊息摘要 演算法”之論文,RFC 1321(西元1992年4月)。 當一個任意大的輸入訊息係輸入至MD5,演算法係產 生一個128位元的輸出,稱爲該輸入訊息之一 “指紋 (fingerprint)”或“訊息摘要”。MD5係在當計算一訊息摘 要時而依序處理512位元之訊息區塊。若一訊息係非爲 512位元之倍數,則MD5係先塡充該訊息以使得該訊息爲 512位元之倍數。塡充後的訊息係接著由MD5所處理爲η 個512位元的區塊,Ml5 Μ2,...,Μη,其各個區塊係由十六 個32位元的子區塊%所構成,15。MD5之主迴路 係一次一個而處理各個512位元的區塊,且持續對於如同 爲該訊息中之諸多個512位元的區塊。該演算法之輸出係 一組四個32位元的字組,其係連結以形成單一個128位元 ___8_ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)
.V β I n n ϋ —41 ϋ n 1 -ϋ n n 1_1 n · n I (請先閱讀背面之注意事項再填寫本頁) 丨線· 578096 A7 ^___BL_— 五、發明說明(TJ ) 的訊息摘要。一個四字組的暫時緩衝器(ha、hb、he、hd) 係運用以於四個所謂的計算回而計算該訊息摘要,其中ha 、hb、he、與hd各者係一個3 2位兀的暫存器。一個四子 組的摘要緩衝器(h0、hi、h2、h3)係運用以累積來自各回 之結果,且暫存器h0、hi、h2、與h3係初始化至如同定 義於MD5演算法之特定値。 MD5之主迴路具有四“回(round)” ’於其之各回係包 括十六個作業。是以,六十四個作業i (〇^i^63)係執行對 於各個訊息區塊。 於各個作業期間’一非線性函數(NLF,non-linear function)係執行於ha、hb、he、與hd所儲存之四個32位 元的變數之三者。之後,該作業係加上NLF輸出至第四變 數、該訊息之一子區塊Μ厂與一常數字組ti。該作業係接 著執行一可變數目位元之一向左循環移位Si,且加上此結 果至ha、hb、he、或hd之一者的內容。最後,總和係取 代ha、hb、he、或hd之一者的內容,且下一個作業係執 行。運用於該作業的各回(即16個連續作業各組)之NLF係 不同於運用在前一回之NLF。 在第四回之後,ha、hb、he、與hd係分別加至h0、 hi、h2、與h3,且該主迴路係反覆針對下一訊息區塊,直 到最後一個區塊Mn已處理爲止。在處理最後的區塊之後 ’訊息摘要係由儲存於h0、hi、h2、與h3的連結字組所 代表之128位元的字串。 MD5係可由軟體所執行,或執行於一特定應用積體電 _____9__ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ---------!!#.! (請先閱讀背面之注意事項再填寫本頁) 訂· 丨線 578096 A7 _____B7_____ 五、發明說明(S ) 路(ASIC),於其之作業係運用硬體實施的邏輯閘而執行。 於一個作業期間,一非線性函數(NLFi)係應用至儲存於暫 存器ha、hb、he、與hd之變數的三者。所輸入至該NLF 之三個變數係儲存於hb、he、與hd之變數,雖然該等輸 入變數係可能對於其他回而爲不同。該結果係由一第一全 加法器所加至暫存器ha之內容。一第二全加法器係加上第 一全加法器的輸出至對於該回與所執行的作業之適當的子 區塊Wj。之後,一第三全加法器係加上第二全加法器的輸 出至對於該回與所執行的作業之適當的常數字組q。 一移位器(shifter)係以對於該回與所執行的作業之適當 數目的位元\而循環向左移位第三全加法器之輸出。最後 ,暫存器hb之內容係由一第四全加法器而加至移位器之輸 出。第四全加法器之輸出係接著加至暫存器hb之內容,且 該總和係置放於暫存器ha,以供運用於下一個作業期間。 之後,下一個作業係將運用一不同的訊息子區塊W广常數 字組ti、與於向左循環移位作業之移位數目Si,以及欲由 NLF所作業於之一不同組的三個變數。另外,後續作業係 可能(或可能不)運用一不同的NLF。 在關連於一訊息區塊之四回的期間,邏輯方塊係循環 六十四次。再者,邏輯循環的總數目係64η,其中n係於 該訊息中之512位元的區塊數目。於邏輯之各個循環係相 當於一個時脈週期。時脈頻率係受限於與邏輯閘及其他邏 輯構件有關的種種延遲。作業的邏輯深度係確爲實質,因 爲該邏輯係於其他元件間而包括計算複雜的全加法器。關 _ίο____ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ------- (請先閱讀背面之注意事項再填寫本頁) .It ϋ n Jv · .線- 578096 A7 _B7__—_ 五、發明說明(?) 連於此設計的累積延遲係長的,且因此該時脈頻率係必爲 相當低。 現在係更爲詳細描述MD5演算法,如上所述,該四 字組的摘要緩衝器(h〇、hi、h2、h3)係運用以計算訊息摘 要,其中h0、hi、h2、與h3之各者係一個32位元的暫存 器。此等暫存器係初始化至特定値,其係如同運用於標準 MD5實施之相同的初始化値。 如先前所述,MD5之主迴路具有四回t (0$t$3),於 其之各回係包括十六個作業。是以,六十四個作業i $63)係執行對於各個訊息區塊。 於各個作業期間,一非線性函數(NLF)係執行於儲存 在ha、hb、he、與hd之四個32位元的變數之三者。之後 ,該作業係加上該NLF輸出至第四變數、該訊息之一子區 塊Μ广與一常數字組tj。該作業係接著執行一可變數目位 元之一向左循環移位Si,且加上此結果至ha、hb、he、或 hd之一者的內容。最後,該總和係取代hb之內容。其他 的暫存器係更新爲:ha=hd; hd=hc; hc=hb;且hb=總和。 運用在各回之作業(即各組之十六個連續作業)的nlf 係不同於運用在前一回的NLF。各個NLF取得作爲輸入三 個3 2位兀的子組,且產生作爲輸出一個3 2位元的字組。 該四個NLF係定義如後,且係同於運用在標準的MD5實 施之NLF: F(X,Y,Z)=(X AND Y) 〇R ((N〇T X) AND Z)(對於回 1: 15) ____n___ 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) -------!f (請先閱讀背面之注意事項再填寫本頁) 訂·. •線- 578096 A7 _______ B7____ 五、發明說明(仏) G(X,Y,Z)=(X AND Z) OR (Y AND (NOT Z))(對於回 2: 16^1^31) Η(χ,Υ,Ζ)=χ x〇R γ x〇R z (對於回 3: 32$i$47) KX’Y’Z^Y x〇R (X OR (NOT z))(對於回 4: 48$i$ 63) MD5演算法之主迴路係執行如後述。首先,於緩衝器 、h2、h3)之四個暫存器的値係保留且複製至四個 32 位兀的變數 ha、hb、he、與 hd,使得 ha=h0,hb=M, hc=h2 ’ 且 hd=h3。 M四回之各者係係接著執行,藉著應用其爲如同於標 準的MD5實施所運用之相同邏輯的下述邏輯。於以下之函 數中,,,W係代表該訊息之第j個子區塊(〇‘015),‘‘ <<<s係代表s個位元之一向左循環 且“ +,,係表示 字組之加法。 回丨:對於i=0至15, FF(ha,hb,hc,hd,W」,s,ki)係袠示作業 ha=hb+((ha十F(hb,hc,hd)+ W」+ti) <<<s) 回2:對於卜16至31, GG(ha,hb,hc,hd,W」,s,ki)係表示作業 ha=hb+((ha+G(hb,hc,hd)+ W」+ti) <<<s) 回3:對於i=32至47, HH(ha,hb,hc,hd,Wj,s,k〇係袠示作業 ha=hb+((ha+H(hb,hc,hd)+ Wj +ti) <<<s) 回4:對於i=48至63, ______ 12 本纸張尺度適國家標準(CNS)A4規格(21G x 297公餐]〜 ------- 一 ----------♦-------- (請先閱讀背面之注意事項再填寫本頁) 一5J· .線 578096 A7 ______B7____ 五、發明說明(!丨) II(ha,hb,hc,hd,W」,s,kt)係表示作業 (請先閱讀背面之注意事項再填寫本頁) ha=hb+((ha+I(hb,hc,hd)+ Wj +1) <<<s) 於各回期間,由NLF作業之三個變數、訊息子區塊 Wj、常數字組q、與於向左循環移位作業之移位數目s1係 隨著作業不同而改變。對於各回與作業,此等作業係依序 執行,其中該等作業係同於標準MD5實施所述之64個作 業。 在回4係已完成之後,ha、hb、he、與hd係分別加至 h0、hi、h2、與h3之目前內容。主迴路係接著反覆對於後 續的訊息區塊,直到最後的區塊Mn.已經處理爲止。在處 理最後區塊之後,訊息摘要係由儲存於h0、hi、h2、與h3 之連結的字組所表示之128位元的字串。 如上所述,MD5演算法係需有四個32位元的摘要變 數h0、hi、h2、h3,其係在起始時而初始化至定値。其亦 運用暫時週期變數ha、hb、he、hd,其係分別由h0、hi、 h2、h3而載入其初始値。存有64回之雜湊作業,其係於 處理期間而改變ha、hb、he、hd値。最後,在64回之後 ,h0、hi、h2、h3變數係分別由ha、hb、he、hd所增量 。於MD5作業之各回,僅有讀取作業係執行於暫時運作記 憶體。典型而言,於64位元組之各個雜湊作業係對於 MD5之各回而耗時64個時脈。 暫時運作記憶體運用 典型而言,對於64位元組之各個雜湊作業,其包括前 述之SHA1或MD5作業,雜湊方塊係在暫時運作記憶體再 _____ 13_ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 A7 _______B7_____ 五、發明說明(Θ ) ------------------ (請先閲讀背面之注意事項再填寫本頁) 次塡以下個64位元組的輸入資料時而爲閒置(idle)。此塡 充(filling)作業係可能典型耗時16個時脈,以寫入16個字 組之32位元的資料。此等閒置週期係減小一雜湊電路或方 塊之閒置頻寬。將爲令人合意的是,欲具有其實質排除理 想頻寬的此損失之一種雜湊方塊。由於該雜湊作業係耗時 數個時脈週期以完成,通常,下個64位元組的輸入資料流 係累積於一緩衝器,以在雜湊作業爲完成時而立即載入至 暫時運作記憶體。 -線 於標準IPSec與SSL/TLS應用,編密與雜湊作業係均 執行。對於較短的資料封包,雜湊作業係典型需要大於對 應的加密作業之時脈週期數目的一大小規模。若數個雜湊 方塊係運用於同一加密通道,因爲單獨的緩衝器與運作記 憶體之運用,則更多的緩衝與運作記憶體資源係爲該等雜 湊作業所需。將爲令人合意的是欲具有一種雜湊方塊,其 實施對於各個加密通道之二個(或多個)雜湊通道而減小所 需的緩衝與運作記憶體資源之尺寸。 內在塡充(implicit padding) 如上所述,內在塡充係定義用於SHA1與MD5演算法 二者。典型而言,先前的雜湊電路係在一資料區塊已經載 入至暫時運作S憶體之後而執行此種塡充。此種塡充係加 入額外的時脈週期之處理時間,以供欲作雜湊之各個64位 元組的資料區塊。將爲令人合意的是,避免其以塡充位元 組而載入暫時運作記憶體所需之閒置時脈週期,俾使於雜 湊方塊之頻寬係可爲增大。 —_____14___ 各紙張尺度適用中國國家標準_(CNS)A4規格(210 x 297公釐)" ' -- 578096 A7 _ - _ B7________ 五、發明說明(〇 ) ------------------#·丨丨 (請先閱讀背面之注意事項再填寫本頁) 對於改良的雜湊處理系統之需求 隨著對於計算資料之期望係提高,通訊系統係逐漸賦 予更多的要求於密碼演算法之計算速度。因此,具有對於 一種改良的雜湊處理系統之需求,其係以較少的有效時脈 週期而處理SHA1與MD5雜湊作業,其作成緩衝與運作記 憶體之改良利用,且其減少欲在資料雜湊處理前而執行塡 充所用的時間。 [圖式簡單說明] 第一圖係根據本發明的一個實施例之一種雜湊處理系 統之一系統階層架構的方塊圖; 第二圖係根據本發明的一個實施例之於第一圖的雜湊 處理系統中之一雜湊方塊的詳細方塊圖; 第三圖係根據本發明的一個實施例之於第二圖的雜湊 方塊中之一 SHA1加法器的詳細方塊圖; -線 第四圖係根據本發明的一個實施例之於第二圖的雜湊 方塊中之一 MD5加法器的詳細方塊圖;及 第五圖係時序圖,其說明根據本發明的一個實施例之 於第二圖的雜湊方塊中之雜湊通道的運用。 [主要符號說明] 100雜湊處理系統 102加密方塊 103雜湊方塊 104外部介面 105雜湊對齊方塊 ____15 ___ 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公爱) ' 578096 A7 ____B7_ 五、發明說明(fvo 106雜湊記憶體 108、110、112儲存區域 (請先閱讀背面之注意事項再填寫本頁) 114、116雜湊通道 118、120雜湊控制器 122、136雜湊有限狀態機器(雜湊FSM) 124、134雜湊暫存器 126、130 MD5 電路 128、132 SHA1 電路 202-214多工器 216-224暫存器 226 SHA1加法器 228 MD5加法器 230-236計數暫存器 238、244讀取位址暫存器 240、242寫入位址暫存器 246、248塡充電路 250、252寫入致能訊號 302-318邏輯函數方塊 320-340多工器 342-352保留進位加法器 354、356全加法器 358、360函數方塊 362、364暫存器 402-408邏輯函數方塊 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 A7 _________Β7 _ 五、發明說明() 410-416多工器 418、420保留進位加法器(CSA) 422、424全加法器 426函數方塊 428多工器 430暫存器 1102-1110加密資料區塊 Π11雜湊通道0與1 1112-1124雜湊區塊 [較佳實施例詳細說明] 本發明係槪括提出一種改良的雜湊處理系統及方法, 用以降低欲實施SHA1與MD5雜湊演算法所需要的時脈週 期數目,藉著運用一共同的雜湊記憶體,其具有各自耦接 至二或多個雜湊通道的一者之多個儲存區域。本發明係更 提供塡充(paddmg),其係隨著資料爲從共同的雜湊記憶體 讀取所作成’而非要求雜湊記憶體之塡充爲在開始雜湊作 業之前。甚者,本發明係共用暫存器與其他電路資源而用 於其爲實施於各個雜湊通道之MD5與SHA1雜湊電路,且 運用管線式、二通道SHA1與管線式、單通道MD5的雜湊 架構,以相較於先前實施而降低欲實施SHA1與MD5演算 法所需的有效時間。所應注意的是,如本文所用之辭語“ 暫存器(register)”係意欲包括暫存器與其他型式的資料儲 存元件’其係可爲替換運用於下文所述之雜湊處理系統及 方法,舉例而言’諸如爲部分之隨機存取記憶體(RAM)。 _______17_ ^紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) -----------#·1 (請先閱讀背面之注意事項再填寫本頁) -trtz · 線 A7 578096 ____ B7____ 五、發明說明(β ) 第一圖係根據本發明的一個實施例之一種雜湊處理系 統100之一系統階層架構的方塊圖。舉例而言,該系統 100係接受來自一加密方塊102之資料以供雜湊處理(本文 所用之辭語“方塊(block)”係槪括關於一電路)。系統1〇〇 亦可接收來自其他來源的資料以供雜湊處理。該資料係運 用標準對齊技術而於一雜湊對齊方塊105所對齊,且接著 提供以由一雜湊方塊103所雜湊處理。該系統1〇〇包括雜 湊控制器Π8與120 (標示爲雜湊控制〇與雜湊控制丨),其 係耦接至一外部介面104,以提供初始之預先計算的雜湊 摘要並儲存最終的雜湊摘要,且接受諸如欲執行的雜湊型 式(其包括例如 MD5、SHA1、HMAC-MD5、HMAC-SHA1 、PRF、…等等)之控制資訊。控制器us與120亦起始對 於在雜湊通道114或116的一對應者中之一個給定的資料 封包之雜湊作業。一旦一個資料封包之雜湊處理係已經開 始於雜湊通道114或116的一者,同一通道係將運用以完 成該整個資料封包之雜湊處理。 雜湊方塊103包含一共同的雜湊記憶體106,其具有 多個儲存區域。舉例而言,雜湊記憶體丨〇6係一隨機存取 記憶體(RAM)。舉例而言,於圖示之特定實施例中,係具 有二個儲存區域108、110、與112,其標示爲HS0、HS1 、與HS2。雜湊方塊1〇3更包含多個雜湊通道。舉例而言 ,於圖示之特定實施例中,係具有二個雜湊通道U4與 116 ’其標不爲雜湊通道〇與雜湊通道1。於本發明之其他 實施例中’係可能具有超過三個雜湊記憶體儲存區域以及 _ ________ 18 東紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公餐)" ------------------- (請先閱讀背面之注意事項再填寫本頁) 訂-· -線· 578096 A7 ____ B7__ 五、發明說明(叼) 超過二個雜湊通道。 雜湊通道114包含一雜湊有限狀態機器(FSM,finite state machine) 122 (其標示爲雜湊FSM0)、一雜湊暫存器 124 (其標示爲雜湊暫存器0)、MD5電路126 (其實施標準 MD5演算法)、與SHA1電路128 (其實施標準SHA1演算 法PFSM 122係控制於雜湊通道114之所選的雜湊作業之 發生順序。根據本發明,電路126與128係可運用標準的 MD5與SHA1架構而實施,或者係可運用本文所述之特定 架構而實施。根據本發明,電路126與128係共用某些電 路資源,諸如例如多工器與暫存器,.如同下文所更爲詳述 。雜湊通道116包含一雜湊FSM 136、一雜湊暫存器134 ( 其標示爲雜湊暫存器1)、MD5電路130、與SHA1電路 132,其係均爲實質同於雜湊通道114之結構與作業。 於作業期間,雜湊控制0與雜湊控制1之控制器118 與120係分別載入所運用於SHA1或MD5演算法的初始値 至雜湊暫存器〇與雜湊暫存器1之暫存器124與134,且 載入諸如例如雜湊作業的型式與塡充需求之控制資訊至雜 湊通道114與116之中的控制暫存器(未顯示)。 舉例而言,各個儲存區域108、110、與112具有64 位元組之一尺寸。來自雜湊對齊區塊105之資料係槪括爲 連繪域:入各個儲存區域,以一種“循環(round-robin)”方 式’其隨著資料被接收而以諸如例如HS0之一個儲存區域 所開始且繼續以塡入HS1、接著爲HS2、之後再次爲HS0 〇 ___19 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ---------------- (請先閱讀背面之注意事項再填寫本頁) 入-δ · -線 578096 A7 B7 五、發明說明(J ) 於作業期間,當雜湊通道114或116之一者係空出, 則其將接受來自儲存區域HS0、HS1、或HS2之一者的資 料。於雜湊處理期間,中間雜湊計算結果係累積於雜湊暫 存器124與134。一雜湊通道係持續以接受來自雜湊記憶 體106之資料,直到對於一給定的資料封包之所有資料係 均已經透過雜湊通道114或116而處理。之後,雜湊控制 器Π8或120係爲適當讀取來自雜湊暫存器124與134之 最終摘要,且將其提供至外部介面104,舉例而言,以供 進入的資料封包之驗證,或者附加一 MAC至出站 (outbound)的資料封包,或針對由同一晶片(與否)的外部密 碼處理電路(未顯示)之其他目的。 暫存器124與134係一般儲存其爲運用於雜湊處理之 値。舉例而言,諸如HMAC預先處理與虛擬隨機函數 (PRF,pseudo-random function)之某些雜湊演算法係涉及內 部與外部摘要値之計算,其係於雜湊處理期間所再次運用 。內部與外部摘要値係儲存於暫存器124與134。此外, 舉例而言,隨著各個64位元組的區塊之資料係雜湊處理’ 暫存器124與134係累積來自各個64位元組的區塊之結果 而直到完整的封包係處理爲止。 雜湊儲存區域HS0、HS1、與HS2之各者係由雜湊通 道〇與1所共用。雜湊記憶體106係接收來自加密方塊 102之加密資料。加密資料係寫入至雜湊儲存區域之一者 ,例如HS0,直到其爲塡滿爲止。接著,稍後的加密資料 係塡入一後續的儲存區域,例如HS1。其次,儲存區域 ____20____— 一 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公《 ) * n n ϋ —1 n I ι*ϋ ϋ I ϋ ϋ · ϋ I (請先閱讀背面之注意事項再填寫本頁) · ;線 578096 A7 --------B7_______ 五、發明說明(/?) -n I ϋ I# Ιϋ ϋ n ·1»§ n I ·ϋ ·ϋ · m n (請先閱讀背面之注意事項再填寫本頁) HS2係塡入’則前述模式係於作業期間持續以透過HS〇、 HS1、與HS2而旋轉。在寫入資料至雜湊記憶體1〇6之前 ’於雜湊對齊方塊105之雜湊對齊電路(未顯示)係對齊來 自加密方塊102之資料。 當雜湊記憶體106之各個儲存區域係塡滿(或一封包之 末端係由通過至雜湊方塊103之一個位元組計數以透過外 部介面104之來自一外部控制器(未顯示)的一控制訊號而 決定’如同例如由對於封包之雜湊起始位址偏移與雜湊長 度(位元組)所決定),其內容係讀取至雜湊通道114或116 以供雜湊處理。舉例而言,所得的摘要係送至外部控制器。 ‘線· 更爲特定而言,雜湊通道0與雜湊通道1係各自執行 處理於其對應於單一資料封包之例如64位元組的區塊之資 料上。~第一外部FSM (未顯示)係控制對於一第一資料封 包之封包處理’且係耦接以控制雜湊通道〇而執行對於第 一資料封包之雜湊處理。若對於一第二封包之資料係塡入 雜湊記憶體106之儲存區域的一者,則該第二封包之雜湊 處理係將由一第二外部FSM (未顯示)與從該雜湊記憶體 106所送至雜湊通道1以供處理之資料而控制。若雜湊通 道1係亦爲忙碌(busy),則對於第二封包之資料係將等待 於雜湊記憶體106,直到雜湊通道114或116之一者係空 出(free)。因此,槪括而言,當雜湊通道114與116之一者 係空出時,雜湊方塊1〇3係開始雜湊處理下一個封包之資 料。 此外,應係注意的是,雜湊方塊103係典型以一交替 本紙張尺度適用中關家標準(CNS)A4規格(210 X 297公"一" A7 578096 五、發明說明(> ) 、或乒乓(ping-pong)方式而運用雜湊通道114與116,舉 例而言,於單一 IPSec資料通道中之各個連續的資料封包 係運用前一個封包之相反的雜湊通道。然而,當對於一個 新的封包之資料係儲存於雜湊記憶體106,若雜湊通道114 與116係均爲空出,則雜湊處理係爲任意預設(例如至雜湊 通道〇)。因此,鑒於以上論述且根據本發明,雜湊方塊 103係能夠同時雜湊處理一第一資料封包與一第二資料封 包,其係於相同的獨立IPSec資料通道管線。 對於某些安全性通訊協定,一 64位元的區塊之資料係 自雜湊記憶體106之一個儲存區域而讀取超過一次,以進 行反覆的雜湊作業於雜湊通道114或116之一者。舉例而 言,TLS或IPSec係視封包之位元組計數而定以要求一 HMAC作業。亦可有一塡充與一 HMAC週期。因此,舉例 而言,一區塊之資料係可自雜湊記憶體區域HS1而爲連續 讀取三次,並且係送至雜湊通道1以計算一摘要。 舉例而言,當欲實施之安全性通訊協定係TLS虛擬隨 機函數(PRF)模式時,則雜湊通道114與116係爲前後縱排 而運作以同時執行對於第一資料封包之MD5與SHA1處理 。藉著該種前後縱排之作業,雜湊處理時間係可爲槪略削 減一半。於該PRF計算期間,資料係可爲讀取自一個雜湊 儲存區域,例如HS0,且係寫回至另一個雜湊儲存區域,· 例如HS2。然後,在最初16回的計算(例如SHA1計算)之 後,所有的讀取及寫入係僅由區域HS2而可作成。此外, 對於高達128位元組之PRF計算,資料係均可讀取自區域 ____22_____ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) » n ί I -·, n n n »11 n i n *_ϋ · n ϋ (請先閱讀背面之注意事項再填寫本頁) 一SJ·- -線· 578096 A7 ____B7____ 五、發明說明(y丨) HS0 與 HS1。 雜湊通道114與116亦可運作爲前後縱排以進行對於 一資料封包之HMAC預先處理。由HMAC預先處理所計 算的內部與外部摘要係可儲存於例如暫存器124或134, 其內容係可藉著前文所述之外部控制器(未顯示)而透過外 部介面104以接著儲存至一外部資料快取記憶體(未顯示) ,供稍後運用以進行對於一給定資料封包之適當的HMAC 處理。該預先計算的摘要係與如同讀取自雜湊記憶體106 之資料而多工處理,以供下文所更爲詳述之雜湊處理。上 述之預先處理步驟係儲存每64個位元組的資料之二個雜湊 週期,且係必須如同於IPSec與TLS 1.0模式所要求而進 行對於每個資料封包。於IPSec與TLS 1.0模式中之一資 料封包的處理期間,在雜湊處理另一個資料封包之起始, 所儲存的摘要係由外部控制器所恢復至暫存器124或134 。當對於一個資料封包之雜湊處理係完成時,一雜湊完成 訊號係由雜湊方塊103所送出至外部控制器,其係接著透 過外部介面104以自暫存器124或134而讀取對於該封包 之最終的計算摘要。 弟一圖係雜湊方塊103之一個實施例的較詳細方塊圖 。於本文所提供圖式之中,共同的參考數字係運用於共同 的元件。針對說明之簡化,第二圖係實質說明僅有雜湊通 道114。結構與作業之以下論述將亦實質應用至雜湊通道 116 〇 所應注意的是,根據本發明,雜湊通道114與116係 ___ 23____ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) !!丨丨_丨丨 (請先閱讀背面之注意事項再填寫本頁) I - --線· A7 578096 五、發明說明( 共用共同的雜湊記億體106。各個雜湊通道具有獨立的讀 取及寫入資料路徑以讀/寫該雜湊記憶體106之定址。資料 係從雜湊對齊方塊105而於資料匯流排wrdatal以寫入至 雜湊記憶體106。一寫入控制訊號wrl係於寫入期間所運 用,以寫入至其由位址wraddrl所指出的位置。該wraddrl 位址亦包括儲存區域HS〇、HS1或HS2之一者的選擇。 雜湊方塊103包含七個多工器(一槪標示爲“MUX” ) 202-214與暫時的暫存器216-224 (對應於暫時變數ha、hb 、:he、hd與he),其係在雜湊FSM 122之控制下而由MD5 電路126與SHA1電路128 (參見第一圖)所共用。MD5電 路126包含一個四輸入的MD5加法器228,而SHA1電路 128包含一個五輸入的SHA1加法器226。 計數器暫存器 230-236 (標不爲 first、ncount、n2count 、與count)係耦接至加法器226與228。讀取位址暫存器 238與244以及寫入位址暫存器240與242係耦接以讀寫 資料往返於雜湊記憶體106,其係例如爲記憶體映射以提 供各個儲存區域HS0、HS1、與HS2。二組之讀取及寫入 位址暫存器係提供以支援根據本發明之每個週期二回的 SHA1處理,如於下文所更爲詳述。 根據本發明,塡充電路246、248係耦接以提洪對於 讀取自雜湊記憶體106的資料所需之塡充。塡充係實質爲 隨著資料爲正自雜湊記憶體106所讀取而作成(有時候於本 文稱爲“即時(on-the-fly)”之塡充),且於雜湊處理期間而 提供至加法器226或228之一者。所運用之塡充位元組(例 _______24__ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) » n n n ιφ ϋ ϋ ϋ ·11 ϋ ϋ H ϋ · ϋ 1 (請先閱讀背面之注意事項再填寫本頁) ·. .線· 578096 A7 _____Β7___ 五、發明說明(W) --------1-------- (請先閱讀背面之注意事項再填寫本頁) 如爲値0x80或0x00)係取決於輸入資料之尺寸(如同由一模 數(modulus) 64作業所減小)以及所正在讀取之目前位址。 塡充位元組與最終長度位元組係爲即時插入,使得其爲例 如依從於MD5與SHA1演算法之需求。塡充電路246與 248亦具有能力以插入先前計算的內部雜湊摘要,其係爲 需要用於HMAC-MD5與HMAC-SHA1演算法之最終雜湊 回數。塡充電路246與248更具有能力以預先附加之先前 計算的摘要至雜湊記憶體106之資料,如於諸如PRF之某 些演算法中所需。 -丨線 如上所述,於SHA1演算法之執行期間,寫入作業係 執行於雜湊記憶體106。寫入致能訊號250 (其標示爲 chi—md5—shal)與252 (其標示爲ch0-md5—shal)係允許當運 用SHA1時而寫入至雜湊記憶體106。訊號252係由雜湊 通道〇所運用,且寫入係在當ch0_md5_shal爲高時而爲致 動。訊號250係由雜湊通道1所運用。多工器206與212 係運用於SHA1寫入作業期間,如於下文所更爲詳述。 現在係更詳細描述雜湊方塊103,舉例而言,雜湊方 塊103係支援二個雜湊通道114與116,其可獨立運作以 執行諸如 MD5、SHA1、HMAC-MD5、HMAC-SHA1 之雜 湊作業,或者可爲前後縱排而運作以執行諸如預先處理的 HMAC或虛擬隨機函數(PRF)之雜湊作業,如同定義於傳輸 層級安全性(TLS) 1.0規格。 如上所述,係有其對應於雜湊記憶體儲存區域HS0、 HS1、與HS2之三個雜湊組的暫時運作記憶體。如上所述 __25_ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 A7 _____ B7_______ 五、發明說明(好) ,雜湊對齊方塊105係以一循環(round-robin)方式而寫入 資料至儲存區域。舉例而言’若雜湊通道0係已經運作於 來自區域HS0之資料,雜湊對齊方塊105係寫入下一個64 位元組至區域HS1,然後係寫入另一個後續的64位元組至 區域HS2。該三個雜湊儲存區域係運用以作用爲對於雜湊 對齊方塊105之一 FIFO (先進先出)緩衝器,且亦提供三個 雜湊組的暫時運作記憶體,其係由雜湊通道114與116所 共用。 相對於本發明,先前的系統係已要求一單獨的FIFO 緩衝器,其係典型與雜湊運作記憶體爲串聯連接,以供接 收進入資料。根據本發明之系統係減少其關連於運用該種 單獨的緩衝器之延遲,且係不需要對於各個通道之一單獨 的緩衝器(如同於先前系統者),因而減少晶片面積。再者 ’根據本發明,雜湊暫時運作記憶體106由二或多個雜湊 通道之共用係節省緩衝資源。其亦使得二或多個雜湊通道 能夠各自運作於相同的資料,如需於諸如PRF、HMAC預 先處理之某些雜湊作業,其要求SHA1與MD5雜湊處理。 於該種情形,舉例而言,雜湊通道之一者係使用一 MD5雜 湊處理而運作於資料,而另一個雜湊通道係使用一 SHA1 雜湊處理而運作於同一資料。 雜湊控制器118與120係控制於雜湊通道114與116 的作業之起始及完成,且亦對於由其對應的雜湊通道所處 理之資料封包而爲適當續行透過塡充雜湊狀態、HMAC雜 湊狀態、PRJF雜湊狀態、與HMAC:預先處理的雜湊狀態。 —-----26 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 1 H n 14 ϋ ill n n n ϋ ϋ « ϋ I (請先閱讀背面之注意事項再填寫本頁) ·. 線 578096 A7 ________B7__ 五、發明說明(/) _ϋ n n n —Jw I n I -J— —i ϋ n n · n n Γ%先閱tt背面之注意事項再填寫本頁) 雜湊控制器118與120亦在起始一新的雜湊處理之前而恢 復所預先計算的HMAC標準內部摘要或外部摘 暫存器叫其包括對龍 的暫存器),且更控制來自ho、h.l、h2、h3、與M暫存器 的最終訊息摘要之讀取。 線- 對於SHA1演算法之雜湊資料路徑 如對於第三圖之後述於下文,SHA1電路128係實施 爲一種管線、並行之每個時脈週期爲二回的架構。對應於 SHA1計算之二回,每個時脈週期係具有來自儲存區域 HS0 (或者HS1或HS2,如其可爲適用於目前的雜湊作業) 之二個讀取存取以及對於同一個儲存區域HS0 (或者HS1 或HS2)之二個寫入存取。暫存器238與240 (訊號rdaddr 、wraddr)控制對於目前時脈週期的一個雜湊回之讀取與寫 入位址。暫存器242與244 (訊號rdaddrl、wraddrl)控制對 於同一個時脈週期的第一雜湊回之讀取與寫入位址。 來自雜湊記憶體106之讀取資料(資料匯流排rddatad 、:rd2datar2)係由塡充電路246與248 (標示爲“PadDigLen ” mux與mux2)所修正,以提供塡充後的輸入雜湊資料 rddata與rd2data,其爲由SHA1加法器226於目前的二個 雜湊回而所運用。塡充電路246與248係基於該輸入資料 流長度而自動實施即時的內在塡充。更爲明確而言’塡充 電路246與248之各者係多工處理塡充位元組0x80或 0x00、如由MD5與SHA1演算法所需之輸入資料流長度( 以位元計)、及/或於HMAC作業之儲存的內部摘要’均爲 _J7___ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) 578096 A7 ______B7_____ 五、發明說明(〆) 視該雜湊命令與輸入資料流長度而定。 (請先閱讀背面之注意事項再填寫本頁) 欲實施如上所述之即時的塡充,塡充電路246與248 係各自包含標準的多工電路(未顯示),以選擇適當的塡充 位元組、資料流長度、或者先前計算的摘要,適當針對特 定的輸入資料尺寸,以供插入至對於讀取自雜湊儲存區域 之各個32位元的字組之一部分或全部的位元位置。先前計 算的摘要係再次載入至暫存器,且係接著與其讀取自該雜 湊儲存區域之字組而作多工處理。 -線· 雜湊方塊103係接收及儲存例如由雜湊對齊方塊105 所提供之一輸入資料流長度,以供運用於由塡充電路246 與248之塡充及/或其他位元組的多工。即時之塡充係使得 雜湊方塊103能夠達成較爲理想的頻寬,且避免由先前雜 湊電路以塡充位元組載入暫時運作記憶體所需的閒置時脈 。先前的系統係先寫入輸入資料至運作記憶體,檢查該輸 入資料之長度,且然後加上塡充至該運作記憶體。反之, 本發明係允許於一旦所有的輸入資料均寫入至運作記憶體 而起始雜湊處理,無須等待而且同時亦寫入塡充位元組至 該運作記憶體。 雜湊FSM0狀態機器122係控制於該雜湊的諸回之依 序發生。對於64位元組的資料之雜湊作業係完成於41個 時脈。SHA1之80回係完成於40個時脈(即每個時脈週期 二回),而最後一個時脈係運用以分別由以暫存器216-224 的ha、hb、he、hd、與he暫存器216-224之値而增量該暫 存器124之h0、hi、h2、h3、與h4暫存器。 ______28______ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 、 A7 ____B7_____ 五、發明說明(>Ί ) 當訊號hashstart爲作用時,ha、hb、he、hd '與he 暫存器216-224係載入來自h0、hi、h2、h3、與h4暫存 器之初始値。如第二圖所示,所有的多工器(表示爲“MUX ”)係舉例說明以跟隨如下文所述之一種一致的模式。首先 ,若訊號hashstart係作用(active)或邏輯1,則該等三輸入 式的多工器(“mux”)係以其對應於如顯示於多工器之右手 側(如第二圖所不)的第二輸入之値而載入ha、hb、he、hd 、與he暫存器。舉例而言,對於多工器204,値hi係載 入至hb暫存器218。 若訊號hashstart係不作用(inactive)或爲邏輯〇,貝[](於 第二圖所示之各個多工器的左手側)前二個輸入之一者係選 擇。若一 SHA1雜湊係選擇(即訊號md5_shal係作用或爲 邏輯1),則中間的輸入(例如對於多工器204之 shal-templ)係選擇。若一 MD5雜湊係選擇(即訊號 md5_shal係不作用或爲邏輯〇),則對於多工器204之第一 個輸入md5_temp係選擇。ha、hb、he、hd、與he雜湊暫 存器、計數暫存器230-236 (即訊號ncount (其相當於下一 計數)、recount(其相當於下下一個計數)、與first(其指出 一雜湊之第一週期))、以及讀取資料rddata與rd2data係親 接以提供輸入至SHA1加法器226(其係更爲詳述於下文)。 如上所述,於SHA1演算法之執行時,寫入作業係執 行於雜湊記憶體106。二個該種寫入作業係針對各個時脈 週期而作成,其對應於本發明之並行、每個時脈週期二回 的實施。多工器206與212係運用以選擇供寫入之適當的 ___ 29__ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) -1 -^-r0JI . ;線- 578096 A7 ___B7_— 五、發明說明(』) (請先閱讀背面之注意事項再填寫本頁) 資料,以依從標準的SHA1演算法。若選擇輸入訊號 {ncount<16}係假或爲0,則左手側的輸入係運用。若 {ncount<16}係爲真,則右手側的輸入係選擇。由wraddr 與wraddrl所指出之寫入位址的最低四個位元係可爲如同 讀取位址rdaddr與rdaddrl之相同位址,而且最高二個位 元(其指出區域HS0、HS1、或HS2)係可爲相同或不同。一 般而言,寫入以及讀取係運用相同的雜湊儲存區域,但對 PRF與HMAC預先處理命令而言,雜湊通道114與116係 作業於相同資料(例如爲儲存於區域HS0與HS1),第一雜 湊通道114 (執行SHA1)係可讀取來自區域HS0或HS1之 資料並運用HS2以供寫入;另一雜湊通道116 (執行MD5) 係可讀取來自區域HS0或HS1之資料。 根據本發明,槪括而言,當執行SHA1演算法, rdaddi*與wraddr位址係運用以讀取及寫入偶數位址0, 2, 4, ...。rdaddrl與wraddrl位址係運用以讀取及寫入奇數位址 1,3,5,…。欲達成此舉,位址rdaddr[0]與wraddr[0]之各 者的較低位址位元係強制爲〇,而位址rdaddirl[0]與 wraddrl[0]之各者的較低位址位元係強制爲1。 分別對於SHA1演算法的第一與第二回之來自雜湊 FSM0狀態機器122的rdxor與rdX〇r2訊號係指出至雜湊 記憶體106之讀取存取的型式。此等訊號係作用僅爲針對 在回17至80之SHA1演算法。其對於MD5演算法係不作 用。對於回17至80,四個字組係於單一存取作業而讀取 自一雜湊儲存區域(類似於如上所述),且接著爲如下文所 _____30 ___ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 A7 ____B7 __ 五、發明說明(β ) ------------------ (請先閱讀背面之注意事項再填寫本頁) 述而互斥或(exclusively-OR)及移位,以提供一字組Wt (17 St^80)而供處理如由標準SHA1演算法所定義。 於rdaddr與rdaddrl之讀取位址的較高二個位元係指 出雜湊儲存區域。讀取位址的較低四個位元係指出32位元 的字組之16個位置的一者。若rdxor (或rdxor2)訊號係不 作用,則例如由讀取位址rdaddr[3:0](或rdaddrl[3:0])的較 低四個位元所指出之16個位置的一者係返回。 -線· 若rdxor訊號係作用,則對於由rdaddr所指出之第一 讀取而言,係進行在位置rdaddr[3:0] 、(rdaddr[3:0]+2)模 數 16、(rdaddr[3:0]+8)模數 16、與(rdaddr[3:0] + 13)模數 16 之四個讀取存取。此外,.對於前三個讀取存取,由於 SHA1之第一回係僅存取偶數位置0、2、4等等,最小有 效位址位元係強制爲〇。第四讀取存取具有最小有效位址 位元,其係強制爲1。由四個讀取存取所得到之資料係作 互斥或處理(即爲由X0R邏輯運算所組合)及移位,且輸入 至塡充電路246。 若rdx〇r2訊號係作用,則對於由rdaddrl所指出之第 二讀取,係進行在位置 rdaddi*l[3:0] 、(rdaddi*l[3:0]+2)模 數 16、(rdaddrl[3:0] + 8)模數 16、與(rdaddrl[3:0] + 13)模數 16之四個讀取存取。此外,對於前三個讀取存取,由於 SHA1之第二回係僅存取奇數位置1、3、5等等,最小有 效位址位元係強制爲1。 如同本文所述SHA1架構之管線方式的部分者,一字 組係有時必須於一目前時脈週期而讀取自一雜湊儲存區域 _____31__ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 B7 五、發明說明(P ) --------------0H (請先閱讀背面之注意事項再填寫本頁) ,其係由一先前時脈週期所起始之一個寫入作業而仍爲被 寫入;然而,讀取作業係無法自該雜湊儲存區域而讀取一有 效字組,由於其仍含有較舊的資料。根據本發明,欲實施 管線式,所寫入字組的一穩定値係運用以提供對於讀取存 取之字組資訊。更爲明確而言,例如對於第四讀取存取, 於先前的週期所寫入之wrdatal係運用,由於 (rdaddrl[3:0]+13)模數16位置具有較舊的資料,其係將由 目前週期之wrdatal所改寫。由四個讀取存取所得到的資 料係以反或閘處理,且輸入至塡充電路248。 根據本發明所處理爲偶數與奇數位址位置之SHA1之 二回的讀取及寫入存取,係減少對於雜湊儲存區域(HS0、 HS1、HS2)之讀取/寫入處理所需之必要的讀取與寫入解碼 邏輯,因而節省於倂入雜湊處理系統100之晶片上的邏輯 閘面積。 •線· 對於MD5演算法之雜湊資料路徑 如同對於第四圖之稍後論述於下文,MD5演算法係實 施爲一種管線式之每個時脈週期一回的架構。其於各個時 脈週期係運用僅有一個讀取存取至雜湊記憶體106,藉著 運用位址暫存器238 (訊號fdaddr)。 讀取資料rddatar2係由塡充電路246所修正,以提供 輸入資料rddata而供由MD5雜湊的各個單一回之運用。 如同對於SHA1演算法所上述,塡充電路246係實質爲即 時而自動實施內在塡充。 雜湊FSM0狀態機器122係控制於MD5雜湊的諸回之 _32____ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 A7 B7 五、發明說明(}丨) 依序發生。對於64位元組的資料之雜湊作業係完成於65 個時脈。MD5之64回係完成於64個時脈,而最後一個時 脈係運用以分別由ha、hb、he、與hd暫存器216-222之値 而增量該暫存器124之h0、hi、h2、與h3暫存器。暫存 器h4與he係未運用於MD5雜湊處理。 當訊號hashstart係作用時,ha、hb、he、與hd暫存 器216-224係載入以自h〇、hi、h2、與h3暫存器之初始 値。如上所論,若訊號hashstart係作用時,提供値至ha、 hb、he、與hd暫存器216-224之三輸入式的多工器202-214係載入於右手側的第三輸入(如第二圖所示)。若該訊號 hashstart係不作用,於左手側的前二個輸入之一者係選擇 。若MD5係目前選擇的作業(即訊號md_shal係不作用), 則第一個輸入係選擇(例如對於多工器204,md5_temp係 選用)。雜湊暫存器ha、hb、he、與hd、計數暫存器230_ 236 (即訊號count、ncount (其相當於下一計數)、與first( 其指出一雜湊之第一週期))、以及讀取資料rddata係耦接 以提供輸入至MD5加法器228 (其係更爲詳述於下文)。 SHA1加法器 第二圖係根據本發明一個實施例之SHA1加法器226 的詳細方塊圖。加法器226包含數個邏輯函數方塊sepsis , 其實施四個標準 SHA1 函數 (其標示爲 SHA1_F1 、 SHA1—F2、SHA1—F3、與 SHA1—F4)。如圖所示,方塊 302-3 18之各者具有三個輸入訊號。於本文圖式中之標示 爲[1:0]與[3 1:2]的移位記號與類似與否者係指出如於shai __33 本紙張尺度適用中國國家標举(CNS)A4規格(21Q X 297公爱1 " (請先閲讀背面之注意事項再填寫本頁) L^T· -線· 578096 A7 _____ _B7__. 五、發明說明(p) 演算法所定義之標準移位作業。舉例而言,此種移位係可 藉著重新命名訊號以達成而無需運用邏輯閘。 -----------!#i (請先閱讀背面之注意事項再填寫本頁) 加法器226亦包含七個多工器320-340,其各者具有 二個輸入。應注意的是,於第三與四圖所示之二輸入式多 工器(標示爲“MUX”)係運用一個共同表示定義,其在於 當至一多工器之一選擇訊號(例如nc〇imt<40)爲作用或爲邏 輯1時而選擇右手側(如各圖所示)。舉例而言,對於多工 器334,若訊號〜first係邏輯1,則he係輸入。若訊號 〜first係邏輯〇,則he係輸入。亦應注意的是,對於多工 器334,於訊號〜first之“〜”符號係指出此選擇訊號爲作 用於低位,使得於第一週期,first係邏輯1而〜first係邏輯 0 〇 -線- 加法器226更包含保留進位加法器342-352 (標示爲字 首“CSA”)以及全加法器354與356,舉例而言,全加法 器354與356係32位元的加法器。函數方塊358與360係 選擇如同定義於標準SHA1演算法之Kt的値,運用輸入 ncount於方塊358而運用輸入n2count於方塊360。暫存 器362與364係運用以閂鎖於SHA1演算法之執行期間的 中間値,以實施第三圖所示之管線式架構。 更明確描述加法器226之作業,對於各個SHA1雜湊 回,五個輸入項係提供至五輸入的加法器226。加法器226 係實施爲一種保留進位加法器(CSA)樹(tree),其具有對於 各回之例如爲三個CSA加法器與一個全加法器(標示爲 FullAdd32),該全加法器係諸如一個32位元的加法器。第 34_____ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公S ) 578096 A7 ______B7____ 五、發明說明(A) 一回之輸出係訊號shal_templ,而第二回之輸出係訊號 shal_temp2。該二回係實質爲並行計算。SHA1之各回係亦 爲管線式。在暫存器362與364 (暫存器1與暫存器2)前的 所有輸入係提取及計算於一個稍早的時脈週期且閂鎖。輸 出shal_templ與shal_temp2係分別閂鎖至hb與ha暫存 器。 對於加法器226之五個輸入項係更爲詳細描述於後(對 於第一與第二回之各者): 1·第一輸入:讀取資料rddata與rd2data係提取於一個 稍早的時脈,並且係在由暫存器1與暫存器2之閂鎖前而 各自透過一多工器(參考號數336或340)與CSA級(344或 348)所饋送。 2·第二輸入:fsha與fsha2訊號係分別用於回〇至19、 回20至39、回40至59、與回60至79之非線性SHA1函 數 SHA1—FI、SHA1__F2、SHA1—F3、與 SHA1—F4 的一者 之選擇結果。由於二回係爲並行執行且亦爲實施於一種管 線式存取方式,對於該等函數之輸入係對於第一回之第一 週期而爲hb、he、hd且對於第一回之稍後週期而爲 shal—tempi、{ha[l:〇],ha[31:2]}、{ hb[l:〇],hb[31:2]}(顯 示於第三圖之左側)。對於函數之輸入係對於第二回(顯示 於第三圖之右側)係 ha、{ hb[l:〇],hb[31:2]}、與 he。fsha 訊號係計算於稍早於目前時脈週期之一早時脈週期,而 fsha2訊號係計算於目前時脈週期。 3.第三輸入:tk與tk2訊號係得自於SHA1雜湊之Kt __— —_35 ________ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ------------------ (請先閱讀背面之注意事項再填寫本頁) · · •線 578096 A7 _ __ _B7 ___ 五、發明說明(外) (請先閱讀背面之注意事項再填寫本頁) 函數的匹配至標準常數ΚΙ、K2、K3、或K4之一者,其視 t分別爲0至19、20至39、40至59、與60至79之回計 數而定。tk與tk2訊號係基於對於第~回之nc〇unt與對於 第二回之n2count而計算於一個稍早的時脈週期。 4·第四輸入:SHA1之第一回係選擇暫存器he以用於第 一時脈週期,且選擇暫存器he於後續諸回。SHA1之第二 回係選擇暫存器hd以用於第一週期,且選擇{hb[l:0], hb[31:2]}(其如上述之表示法係用於本文以指出對於SHA1 所定義之標準移位)以供雜湊於後續諸回。此等第一與第二 回輸入係計算於一個稍早的時脈週期。 5·第五輸入:於各個時脈週期之SHA1的第一回係運用 {ha[26:0],ha[31:47]}作爲一輸入,而於各個時脈週期之 SHA1的第二回係運用shal—tempi作爲一輸入。此等輸入 之各者係運用於目前時脈週期。 於本發明之如上所述的輸入選擇係使得能夠達成一種 管線式且並行之每週期二回的SHA1實施,其提高雜湊量 。再者,如上所述之根據本發明之管線式、並行的實施係 提供對於第一回之一臨界(critical)路徑,由暫存器1 (362) 至訊號shaljempl至SHAlJF[l-4]函數而後返回至暫存器 1。對於第二回之臨界路徑係由暫存器1至shal_temPl至 shaLtemp2而終止於ha暫存器216。因此,藉著實施於每 週期之二回,上述SHA1實施係相較於先前硬體實施而減 小臨界路徑,且提高對於各個週期之雜湊作業的速度。 此外,根據本發明,對於在SHA1雜湊處理期間所作 __36 ___ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 A7 ___B7 __ 五、發明說明() (請先閱讀背面之注意事項再填寫本頁) 成的讀取及寫入存取之儲存區域HS0、HS1、與HS2係可 爲不同。舉例而言,一讀取存取係可作成至區域HS0或 HS1,而對於同一回之寫入存取係作成至區域HS2。 於SHA1之最初的16個週期,諸如HS0或HS1之一 個儲存區域係可運用作爲讀取組。根據本發明,在最初的 16個週期之後,諸如HS2之一不同的儲存區域係運用作爲 對於在雜湊處理期間的讀取與寫入二者之一寫入組。此舉 係使得能夠於HS0與HS1之資料的雜湊處理,舉例而言, 藉由其爲並行發生於雜湊方塊103之另一雜湊通道的一 MD5雜湊作業(如下文所述),而不會改寫其爲運用於 SHA1雜湊之資料。 --線· 另外’反覆的讀取及寫入作業係可由雜湊通道114或 116所作成於相同的儲存區域108_112,以進行反覆的雜湊 處理。本發明之此個層面係爲有用,例如用於TLS 1.0模 式之虛擬隨機函數(PRF)產生,於其之輸入資料的反覆雜湊 處理係進行於一序列。此舉係避免對於PRF產生之各個 HMAC雜湊回而反覆載入所提供至系統1〇〇之輸入資料流 至雜湊記憶體106。 MD5加法器
第四圖係根據本發明之一個實施例之MD5加法器228 的詳細方塊圖。明確而言,加法器228包含其運用以實施 十MD5函數之邂細函數方塊402-408 (其標示爲]VID5 F 、MD5—G、MD5—Η、與MD5—I)。加法器228亦包含多工 器410-416,其係遵循對於第三圖之上述的二輸入式多工 ΐ氏張尺度適用中闕家標準(CNS)A4規格(21Q χ 297公)- ---- 578096 A7 ___B7_ 五、發明說明(“) 器之選擇慣例。 (請先閱讀背面之注意事項再填寫本頁) 加法器228包含保留進位加法器418與420以及全加 法器422與424,其例如爲32位元之加法器。一函數方塊 426係視輸入ncount而定以選擇對於標準MD5演算法之適 當常數Ti (且提供作爲訊號ti)。一多工器428係基於輸入 訊號count而實施標準MD5旋轉。舉例而言,多工器428 係可實施如同其爲串聯連接之二個四輸入式的多工器,或 者可運用一移位器。一暫存器430 (暫存器3)係運用以閂鎖 於MD5計算執行期間的中間値,以實施如第四圖所示之管 線式架構。 更爲明確敘述加法器228之作業,各個MD5雜湊回 係具有五個輸入項,舉例而言,以至一個四輸入式的加法 器與二輸入式的加法器。四輸入式的加法器係實施例如爲 一 CSA樹(tree),其具有二個CSA加法器418與420以及 一個32位元的全加法器422。四輸入式的加法器之輸出係 由一個常數所旋轉,視由多工器428之回計數而定,且結 果係提供作爲一輸入至二輸入式的全加法器424,其係例 如爲一個32位元的加法器。至加法器228之第五輸入係饋 送至加法器424之另一輸入。該回之輸出係訊號md5_temp ,其係加法器424之輸出。 如上所述,MD5之各回係管線處理。在暫存器3 (430)之前的所有輸入係提取及計算於一個稍早的時脈週期 且作閂鎖。輸出md5_temp係閂鎖至hb暫存器218。 對於加法器228之五個輸入項係更爲詳細描述於後: _38_ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 A7 ------B7_____ 五、發明說明() 1. 第一輸入:讀取資料rddata係提取於一個稍早的時脈 週期,並且係在由暫存器3 (430)之閂鎖前而透過CSA 418 所饋送。 2. 第二輸入:fmd5訊號係分別用於回〇至15、回16至 31、回32至47、與回48至63之非線性MD5函數 MD5—F、MD5—G、MD5_H、MD5J[的一者之選擇結果。 對於該等函數之輸入係訊號hb、he、與hd。fmd5訊號係 計算於目前的時脈週期。 3·第三輸入4訊號係得自於標準MD5雜湊之Ti函數 的選擇至該等常數之一者,其視由0.至63之回計數而定。 此係基於ncount而計算於一個稍早的時脈週期。 4·第四輸入:Mux 416係選擇ha暫存器216以用於第一 時脈週期且選擇hd暫存器以用於後續之回。此輸入係計算 於一個稍早的時脈週期。 5_第五輸入:此輸入係由hb暫存器218所提供。 於一稍早的時脈週期之第一、第三、與第四輸入的選 擇與附加以及至暫存器3 (430)之閂鎖係減小該臨界路徑。 此外’如上所述之本發明係致能一種管線式的MD5實施, 其提高雜湊量。另外,該種管線式實施係提供對於一回之 一臨界路徑,如同爲由he、hb與hd暫存器218-222至 MD5—F (或G或Η或I,如爲適用)函數方塊402-408,至 CSA32 加法器 420,至 FullAdd32 加法器 422,至 RotMux 多工器4M,至FullAdd32加法器424,且然後回到hb暫 存器218。根據本發明之此種實施係使得臨界路徑爲最小 ____39____ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公f ) (請先閱讀背面之注意事項再填寫本頁) 訂· *線 578096 A7 ____Β7____ 五、發明說明(U ) 化,且提高雜湊計算之速度。再者,CSA31加法器418係 並未於臨界路徑。 對於MD5雜湊之雜湊資料係可讀取自區域HS0、HS1 或HS2之一者。類似如上所述,舉例而言,MD5雜湊係可 運用區域HS0或HS1以供雜湊處理,而同時於另一雜湊通 道之SHA1加法器226係運用區域HS0或HS1以供讀取且 運用區域HS2以供寫入。舉例而言,此特點係可用於TLS 1.0模式之虛擬隨機函數(PRF)產生,於其之輸入資料的反 覆雜湊處理係進行於一序列。 雜湊通道與共同的雜湊記憶體之運用 第五圖係一個時序圖,其說明根據本發明的特定實施 例之雜湊通道114與116以及雜湊記憶體106的儲存區域 HS0、HS1、與HS2之運用。更爲明確而言,第五圖係一 個時序圖,其說明於單一 IPSec資料處理通道中之資料封 包的管線方式以及多個雜湊通道114與116 (其由括號 11Π所標示)之運用,其爲針對根據本發明之該種資料處 理通道(雜湊通道114與116係亦於下文描述爲“雜湊通道 〇”與“雜湊通道Γ )。 對應於資料封包(標示爲封包〇、封包1、與封包2)之 64位元組的資料區塊之簡化表示係說明於第五圖,於資料 處理通道之多個加密區塊Π02-1110各者的水平長度係對 應於欲於加密方塊102執行一 64位元組區塊之加密作業的 處理時間(其方向係由“時間”箭號所標示)。雜湊方塊103 係在此描述爲具有二個雜湊通道114與116;然而’熟悉此 __40__________ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) --------.-------- (請先閱讀背面之注意事項再填寫本頁} _ -I線. 578096 A7 ______B7_____ 五、發明說明(β ) 技藝人士將理解的是,於其他的實施例係可運用超過二個 通道。再者,封包0與1係針對解說之目的而顯示爲含有 二個64位元組的加密區塊。於實際作業,封包係可爲於尺 寸變化廣泛。 現在係更爲詳細描述第五圖,封包〇係含有加密資料 區塊1102與1104。資料區塊1102代表欲於加密方塊102 而處理此個64位元組的資料所需的時間。類似而言,區塊 1104代表欲於加密方塊102而處理第二個64位元組的資 料所需的時間。如上文對於雜湊方塊103所述,一旦區塊 1102已經完成加密處理,則進入一雜湊記憶體106之儲存 區域,例如爲HS0。所應注意的是,雜湊記憶體106之塡 入係作成於當例如64位元組的資料區塊爲由加密方塊102 所處理時。假設雜湊通道0係非爲忙碌,則該64位元組的 資料係進入雜湊通道0以供雜湊處理。此係指出於第五圖 之區塊1112。於區塊1112 ’ “雜湊〇”指出雜湊通道〇爲 進行雜湊,而“(HS0)”指出資料爲讀取自雜湊記憶體儲存 區域HS0。當區塊1112係正爲雜湊時,區塊11〇4係持續 以加密處理。 一旦區塊1104係完成加密處理,資料係進入雜湊記 憶體106之下一個儲存區域,其於此例爲HS1。區塊1104 係對應於此資料,且具有記號“(HS1),,以指出資料爲讀取 自儲存區域HS1。由於對於一給定的封包(在此爲封包〇)之 所有資料係處理於相同的雜湊通道,區塊11〇4亦具有記號 雜湊〇” 。對於封包〇之安全性通訊協定係要求塡充以 ------------41__ 芩紙張尺度翻巾國國家標準(CNS)A4規格(210 X 297公爱) -----------I--· I I (請先閲讀背面之注意事項再填寫本貢> 訂· -線 578096 B7 五、發明說明(β) --------------0^ —— (請先閱讀背面之注意事項再填寫本頁) 及於雜湊方塊103之HMAC處理作業(諸如運用於例如 TLS),俾使第二區塊之64位元組係再次讀取自HS1以執 行於雜湊通道0之此等另外的雜湊作業(如爲由區塊1116 與1118所指出)。 當區塊1114係正在雜湊處理時,加密方塊1〇2已完 成於封包0之加密處理且已經接收對於封包1之區塊1106 的資料並開始加密處理。一旦區塊1106係作成加密處理, 資料係以旋轉順序而寫入至下一個雜湊記憶體儲存區域, 其係於此例爲HS2且標示爲於第五圖之區塊1122。因爲連 續的資料封包係典型爲運用交替的雜湊通道114與116而 作處理,且於此例子中之雜湊通道0係運用於封包0,封 包1係處理於雜湊通道1 (標示爲於區塊1122之“雜湊1 •線 當區塊1122係雜湊處理時,封包1之第二資料區塊 Π08係加密處理。一旦區塊1108完成加密處理,則資料 係以如上所述之循環順序而寫入至下一個儲存區域,其於 此例爲HS0且標示爲於第五圖之區塊1124。雜湊通道1係 運用以處理區塊1124,由於此資料係於封包1,其係爲透 過雜湊通道1而作處理。 下一個資料封包(封包2)係已有某些資料寫入至一輸入 FIFO (未顯示),其在加密方塊102之前而爲於資料處理通 道的整體系統管線之部分;然而,封包2之區塊1110係未 開始處理於加密方塊102而直到雜湊通道114與之〜 者爲空出。因此,一旦區塊1Π8完成處理時,則區塊 42 ------ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 B7 五、發明說明() --------·-------- (請先閱讀背面之注意事項再填寫本頁) 1110開始加密處理。當區塊mo係完成,則資料係寫入 至下一個雜湊記憶體106儲存區域,其係於此例爲HS1(且 標示爲於第五圖之區塊Π2.0),雜湊處理起始於雜湊通道〇 。雜湊通道0與雜湊通道1係在當區塊1110爲備妥以供雜 湊時而均爲空出,且封包2係進入雜湊通道〇,由於雜湊 通道〇係已任意選擇作爲預設通道(如上文所述)。當區塊 1120係作雜湊處理之時及之後,另外的資料區塊(未顯示) 可繼續以進入加密方塊102,隨著上述管線以類似方式繼 續以供處理另外的資料區塊與封包。 結論 -線. 藉著上述說明,一種用於雜湊處理之新穎的系統及方 法係已經描述。本發明具有優點爲以較少的有效時脈週期 而處理SHA1與MD5雜湊作業,並改善利用緩衝及運作記 憶體資源,且降低欲在資料雜湊處理之前而執行塡充所用 的時間。本發明亦允許雜湊演算法SHA1、MD5、HMAC-SHA1、HMAC-MD5、雙重雜湊、以及於TLS的虛擬隨機 函數之硬體實施於單一晶片上。舉例而言,本發明係可運 用於虛擬私人網路處理系統,其實施IPSec、負載平衡器 與網頁切換實施,例如SSL 3.0與TLS 1·0。 雖然特定實施例係已經描述於上文,將可理解的是, 本發明之諸多的修改與替代係可作成。舉例而言,雖然一 個特定的硬體實施係.已經描述於上文’其他的實施例係可 運用不同硬體構件,且亦可包括軟體構件。是以,本發明 係已藉由舉例說明而非限制方式作描述。 ___43 —_______ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐)

Claims (1)

  1. 578096 A8 B8 C8 D8 六、申請專利範圍 1. 一種雜湊電路,包含: (請先閲讀背面之注意事項再塡寫本頁) 一雜湊記憶體,以供接收輸入資料,其中該雜湊記憶 體係運用複數個位址位置而存取; 一雜湊通道,耦接以接收來自雑湊記憶體之輸入資料 ,以運用一雜湊演算法而雜湊處理該輸入資料,其中該雜 湊通道係適以實施該雜湊演算法於第一回與第二回,其實 質爲並行運作;及 其中該雜湊電路係執行該雜湊記憶體之一第一讀取存 取以提供一第一資料單元而供處理於雜湊演算法之第一回 ,且執行該雜湊記憶體之一第二讀取存取以提供一第二資 料單元而供處理於雜湊演算法之第二回。 2. 如申請專利範圍第1項之雜湊電路,其中該雜湊演 算法係一安全雜湊演算法。 3. 如申請專利範圍第1項之雜湊電路,其中該第一資 料單元係一第一個32位元字組,而該第二資料單元係一第 二個32位元字組。 4. 如申請專利範圍第1項之雜湊電路,其中: 該雜湊電路係由該複數個位址位置之僅爲偶數的位址 位置而讀取第一資料單元;及 該雜湊電路係由該複數個位址位置之僅爲奇數的位址 位置而讀取第二資料單元。 5. 如申請專利範圍第4項之雜湊電路,其中: 該第一讀取存取更包含讀取及邏輯組合另外的資料單 元,以供處理於雜湊演算法之第一回;及 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 ^__一 六、申請專利範圍 該第二讀取存取更包含讀取及邏輯組合另外的資料單 元,以供處理於雜湊演算法之第二回。 6. 如申請專利範圍第5項之雜湊電路,其中: 該由第一讀取存取之另外的資料單元之邏輯組合係包 含一第一組的32位元字組之互斥或(XOR)的邏輯運算;及 該由第二讀取存取之另外的資料單元之邏輯組合係包 含一第二組的32位元字組之互斥或(XOR)的邏輯運算。 7. —種雜湊電路,包含: 一雜湊記憶體,其接收輸入資料以供雜湊處理; 一塡充電路,耦接以接收來自雜湊記憶體之資料,以 選擇性附加塡充至該輸入資料之部分者而準備用於雜湊處 理; 一雜湊通道,耦接以接收來自塡充電路之資料,以執 行雜湊處理;及 其中該塡充係隨著該輸入資料之部分者爲從雜湊記憶 體所讀取且提供至雜湊通道而實質附加。 8. 如申請專利範圍第7項之雜湊電路,其中: 該雜湊處理包含SHA1演算法; 該雜湊處理係在附加塡充至該輸入資料之部分者前而 開始;及 該塡充係依從SHA1標準演算法而提供一 64位元組區 塊之塡充資料。 9·如申請專利範圍第7項之雜湊電路,其中該塡充電 路係更可運作以選擇性附加一輸入資料流長度至該輸入資 —---...2-__________ 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公楚) (請先閲讀背面之注意事項再塡寫本頁) 、\ίσ 線 578096 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 X 297公釐) 餡 C8 D8 六、申請專利範圍 料之部分者。 10·如申請專利範圍第9項之雜湊電路,其中該塡充電 路係更可運作以選擇性附加一先前計算的HMAC摘要至該 輸入資料之部分者。 11·如申請專利範圍第7項之雜湊電路,其中該塡充電 路包含複數個多工器且係可運作以接收一輸入資料尺寸, 其在寫入輸入資料至雜湊記憶體之時或之前而實質決f, 以供運用於該塡充至輸入資料之部分者的多工。 12. —種雜湊電路,包含: 一加法器,適以實施SHA1演算法,其中該加法器計 算其實質爲並行之SHA1演算法的一第一回與一第二回;及 一雜湊記憶體,耦接以提供資料至該加法器以供雜湊 處理。 13. 如申請專利範圍第12項之雜湊電路,其中對於第 一回’該加法器係適以: 計算一 Kt函數値; 言十算一非線性函數値; 接收一暫時變數he或he輸入; 接收一讀取資料輸入; 接收一移位的暫時變數ha輸入;及 提供一暫時輸出。 14·如申請專利範圍第13項之雜湊電路,其中對於第 二回’該加法器係適以: 計算一 Kt函數値; ^ (請先閲讀背面之注意事項再填寫本頁)
    578096 88s. 六、申請專利範圍 ,計算一非線性函數値; (請先閲讀背面之注意事項再塡寫本頁) 接收一暫時變數hd或移位的暫時變數hb輸入. 接收一讀取資料輸入;及 耦接來自該第一回之暫時輸出以作爲對於第二回之一 輸入。 15·如申請專利範圍第14項之雜湊電路,其中: 該加法器係實施用於該第一回與第二回之各者的一處 理管線,運用一較早的時脈週期與一目前的時脈週期;及 該較早的時脈週期係於時間上爲在該目前的時脈週期 之前。 16. 如申請專利範圍第15項之雜湊電路,其中對於第 一回,該加法器係適以: 計算於該較早的時脈週期之Kt函數値; 計算於該較早的時脈週期之非線性函數値; 線 接收於該較早的時脈週期之暫時變數he或he輸入; 接收於該較早的時脈週期之讀取資料輸入;及 接收於目前的時脈週期之移位的暫時變數ha輸入。 17. 如申請專利範圍第16項之雜湊電路,其中對於第 二回,該加法器係適以: 計算於該較早的時脈週期之Kt函數値; 接收於該較早的時脈週期之暫時變數hd或移位的暫時 變數hb輸入; 接收於該較早的時脈週期之讀取資料輸入; 計算於目前的時脈週期之非線性函數値;及 本紙張尺度適用中國國家標準(CNS〉A4規格(210 X 297公釐) 578096 C8 D8 六、申請專利範圍 耦接來自於目前的時脈週期之該第一回之暫時輸出。 (請先閲讀背面之注意事項再塡寫本頁) 18. 如申請專利範圍第17項之雜湊電路,其中該加法 器包含: 一第一暫存器,對於第一回,以閂鎖其對應於Kt函數 値、非線性函數値、暫時變數he或he輸入、與讀取資料 輸入之一第一總和;及 一第二暫存器,對於第二回,以閂鎖其對應於Kt函數 値、暫時變數hd或移位的暫時變數hb輸入、與讀取資料 輸入之一第二總和。 19. 如申請專利範圍第12項之雜湊電路,其中供處理 於第一回之加法器包含: 一第一保留進位加法器,以接收一非線性函數値、一 Kt函數値、與一暫時變數he或he輸入; 一第二保留進位加法器,耦接以接收來自該雜湊記憶 體之一讀取資料輸入與來自該第一保留進位加法器之一輸 出; 一第三保留進位加法器,以接收一移位的暫時變數ha 輸入,且耦接以接收該第二保留進位加法器之一輸出;及 一暫存器,耦接介於該第二與第三保留進位加法器之 間。 20. 如申請專利範圍第19項之雜湊電路,其中該暫存 器係一第一暫存器,且供處理於第二回之加法器更包含: 一第四保留進位加法器,耦接以接收一 Kt函數値、一 暫時變數hd或移位的暫時變數hb輸入、與一讀取資料輸 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 578096 A8B8C8D8 ‘申請專利範圍 入; 一第五保留進位加法器,以接收一非線性函數値’且 耦接以接收該第四保留進位加法器之一輸出; 一第六保留進位加法器,耦接以接收來自該第一回之 一暫時輸出,且耦接以接收該第五保留進位加法器之一輸 出;及 一第二暫存器,耦接介於該第四與第五保留進位加法 器之間。 (請先閲讀背面之注意事項再塡寫本頁) ,IT-· 線 ^紙張尺度適拜1中國國家標準(CNS)A4規格(21〇 χ 297公f)
TW091111175A 2001-06-13 2002-05-27 Apparatus and method for a hash processing system using integrated message digest and secure hash architectures TW578096B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US29787601P 2001-06-13 2001-06-13
US34001301P 2001-12-10 2001-12-10
US10/144,197 US7213148B2 (en) 2001-06-13 2002-05-13 Apparatus and method for a hash processing system using integrated message digest and secure hash architectures

Publications (1)

Publication Number Publication Date
TW578096B true TW578096B (en) 2004-03-01

Family

ID=27386052

Family Applications (1)

Application Number Title Priority Date Filing Date
TW091111175A TW578096B (en) 2001-06-13 2002-05-27 Apparatus and method for a hash processing system using integrated message digest and secure hash architectures

Country Status (4)

Country Link
US (1) US7213148B2 (zh)
AU (1) AU2002310379A1 (zh)
TW (1) TW578096B (zh)
WO (1) WO2002101525A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US8060755B2 (en) 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7106860B1 (en) * 2001-02-06 2006-09-12 Conexant, Inc. System and method for executing Advanced Encryption Standard (AES) algorithm
US7360076B2 (en) * 2001-06-13 2008-04-15 Itt Manufacturing Enterprises, Inc. Security association data cache and structure
US7286664B1 (en) * 2002-06-03 2007-10-23 Winbond Electronics Corporation Efficient implementation of MD5 message-digest algorithm (RFC1321) on an 8 bit micro-controller
CN100449986C (zh) * 2003-01-28 2009-01-07 华为技术有限公司 一种提高键入-散列法运算速度的方法
US7159122B2 (en) * 2003-05-12 2007-01-02 International Business Machines Corporation Message digest instructions
GB0311857D0 (en) * 2003-05-22 2003-06-25 Nokia Corp Authentication of data
US7395306B1 (en) * 2003-09-03 2008-07-01 Advanced Micro Devices, Inc. Fast add rotate add operation
US7684563B1 (en) * 2003-12-12 2010-03-23 Sun Microsystems, Inc. Apparatus and method for implementing a unified hash algorithm pipeline
US20060080467A1 (en) * 2004-08-26 2006-04-13 Sensory Networks, Inc. Apparatus and method for high performance data content processing
DE102004042978A1 (de) * 2004-08-31 2006-03-09 Siemens Ag Verfahren zur Archivierung von Daten
US7720219B1 (en) * 2004-10-19 2010-05-18 Oracle America, Inc. Apparatus and method for implementing a hash algorithm word buffer
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7822927B1 (en) * 2007-05-14 2010-10-26 Emc Corporation Dynamically configurable reverse DNLC lookup
US7970916B2 (en) * 2007-07-25 2011-06-28 Cisco Technology, Inc. Register clustering in a sip-based network
US8925109B2 (en) * 2010-07-30 2014-12-30 Adobe Systems Incorporated Client-side player file and content license verification
US9721104B2 (en) * 2013-11-26 2017-08-01 Intel Corporation CPU-based measured boot
US10409827B2 (en) * 2014-10-31 2019-09-10 21, Inc. Digital currency mining circuitry having shared processing logic
US9960909B2 (en) * 2014-12-08 2018-05-01 Open-Silicon Inc. High speed and low power hashing system and method
US20160191420A1 (en) * 2014-12-27 2016-06-30 Intel Corporation Mitigating traffic steering inefficiencies in distributed uncore fabric
CN105184175B (zh) * 2015-08-07 2018-07-31 上海斐讯数据通信技术有限公司 一种Linux操作系统中数据的保护方法
US10020934B2 (en) * 2015-11-05 2018-07-10 Intel Corporation Hardware accelerator for cryptographic hash operations
US10454670B2 (en) * 2016-06-10 2019-10-22 Cryptography Research, Inc. Memory optimization for nested hash operations
US10348506B2 (en) * 2016-09-30 2019-07-09 International Business Machines Corporation Determination of state of padding operation
US9800403B1 (en) * 2016-09-30 2017-10-24 International Business Machines Corporation Message processing using extended output functions
US20180183577A1 (en) * 2016-12-28 2018-06-28 Intel Corporation Techniques for secure message authentication with unified hardware acceleration
CN107835071B (zh) * 2017-11-03 2020-02-21 中国人民解放军国防科技大学 一种提高键入-散列法运算速度的方法和装置
RU2686017C1 (ru) * 2018-06-14 2019-04-23 Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ Реконфигурируемый вычислительный модуль

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1384A (en) * 1839-10-31 Cleaning the bails of railroads eroh ice and snow
EP0605927B1 (en) * 1992-12-29 1999-07-28 Koninklijke Philips Electronics N.V. Improved very long instruction word processor architecture
US5757913A (en) * 1993-04-23 1998-05-26 International Business Machines Corporation Method and apparatus for data authentication in a data communication environment
US5664016A (en) * 1995-06-27 1997-09-02 Northern Telecom Limited Method of building fast MACS from hash functions
DE69610548T2 (de) * 1995-07-21 2001-06-07 Koninkl Philips Electronics Nv Multi-media-prozessorarchitektur mit hoher leistungsdichte
US5907619A (en) * 1996-12-20 1999-05-25 Intel Corporation Secure compressed imaging
US6028939A (en) * 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method
US6021201A (en) * 1997-01-07 2000-02-01 Intel Corporation Method and apparatus for integrated ciphering and hashing
US6141422A (en) * 1997-06-04 2000-10-31 Philips Electronics North America Corporation Secure cryptographic multi-exponentiation method and coprocessor subsystem
US6091821A (en) 1998-02-12 2000-07-18 Vlsi Technology, Inc. Pipelined hardware implementation of a hashing algorithm
US6983366B1 (en) 2000-02-14 2006-01-03 Safenet, Inc. Packet Processor
US7177421B2 (en) 2000-04-13 2007-02-13 Broadcom Corporation Authentication engine architecture and method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844053B2 (en) 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7925891B2 (en) 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US8060755B2 (en) 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine

Also Published As

Publication number Publication date
WO2002101525A2 (en) 2002-12-19
WO2002101525A3 (en) 2003-03-06
AU2002310379A1 (en) 2002-12-23
US20020191792A1 (en) 2002-12-19
US7213148B2 (en) 2007-05-01

Similar Documents

Publication Publication Date Title
TW578096B (en) Apparatus and method for a hash processing system using integrated message digest and secure hash architectures
TW589820B (en) Apparatus and method for a hash processing system using multiple hash storage areas
US11822901B2 (en) Cryptography using a cryptographic state
US6870929B1 (en) High throughput system for encryption and other data operations
EP2356771B1 (en) Low latency block cipher
US8737606B2 (en) Method and system for high throughput blockwise independent encryption/decryption
Deepakumara et al. FPGA implementation of MD5 hash algorithm
US20050213756A1 (en) Round key generation for aes rijndael block cipher
US20030091185A1 (en) Key stream cipher device
US20020066014A1 (en) Message digest hardware accelerator
TWI518589B (zh) 用以執行groestl雜湊法之指令
CN209980248U (zh) 电路和电子设备
CN210129870U (zh) 电路和设备
Blaner et al. IBM POWER7+ processor on-chip accelerators for cryptography and active memory expansion
US7403615B2 (en) Methods and apparatus for accelerating ARC4 processing
TWI225355B (en) Method and apparatus for creating a message digest using a multiple round one-way hash algorithm
CN110034918B (zh) 一种sm4加速方法和装置
US7289524B2 (en) Execution unit for a network processor
Momin et al. Unprotected and masked hardware implementations of spook v2
Salomao et al. Hipcrypto: A high-performance VLSI cryptographic chip
JP2004004784A (ja) ハッシュ・アルゴリズムを実装するためのシステム及び方法
Aoki et al. Byte Slicing Grøstl: Improved Intel AES-NI and Vector-Permute Implementations of the SHA-3 Finalist Grøstl
US20240053989A1 (en) Hardware-based message block padding for hash algorithms
US20240061961A1 (en) Hardware-based implementation of secure hash algorithms
US20230283452A1 (en) Method and apparatus supporting tunable alignment for cipher/authentication implementations

Legal Events

Date Code Title Description
MK4A Expiration of patent term of an invention patent