TWI439101B - 用於產生一鑑定鑑認碼之裝置與方法 - Google Patents

用於產生一鑑定鑑認碼之裝置與方法 Download PDF

Info

Publication number
TWI439101B
TWI439101B TW096143306A TW96143306A TWI439101B TW I439101 B TWI439101 B TW I439101B TW 096143306 A TW096143306 A TW 096143306A TW 96143306 A TW96143306 A TW 96143306A TW I439101 B TWI439101 B TW I439101B
Authority
TW
Taiwan
Prior art keywords
circuit
value
lfsr
logic
shift register
Prior art date
Application number
TW096143306A
Other languages
English (en)
Other versions
TW200833054A (en
Inventor
Christian Gehrmann
Bernard Smeets
Original Assignee
Ericsson Telefon Ab L M
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 Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Publication of TW200833054A publication Critical patent/TW200833054A/zh
Application granted granted Critical
Publication of TWI439101B publication Critical patent/TWI439101B/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/04Masking or blinding
    • H04L2209/043Masking or blinding of tables, e.g. lookup, substitution or mapping
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Sorption Type Refrigeration Machines (AREA)
  • Gyroscopes (AREA)
  • Lubricants (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)

Description

用於產生一鑑定鑑認碼之裝置與方法
本發明係關於以有效方式提供資料完整性保護。
對於許多類型之可程式化電子設備,需要保護設備免受非法之重新程式化。此為(例如)行動通信設備(例如,蜂巢式電信設備)之情況下之狀況,其中不僅需要確保僅一種類型之經核準之軟體在設備上執行,而且需要提供用於儲存於設備中之敏感資訊之安全鎖定機制(例如,安全用戶資訊模組(SIM)鎖定機制)。一用於防止未經授權之重新程式化之系統解決方法中的一重要因素為一次可程式(OTP)記憶體之使用。如其名稱所表示的,OTP記憶體為准許資訊至記憶體區域之單一記錄的一類型之記憶體器件。OTP記憶體為非揮發性的(亦即,其保持其資訊,即使當斷電時亦如此)。最初,OTP處於未經程式化之狀態。接著,存在一程式化階段,其中對記憶體位元進行程式化(例如,一個接一個或作為單一操作中之整個區塊,特定實施例與此論述不相關)。在記錄資訊(在下文中被稱作"OTP資料")之後,藉由防止任何資訊被寫入記憶體之彼部分中的若干技術中之任一者鎖定OTP記憶體。常常,一旦OTP進入其"鎖定"狀態中,資訊就不可被抹除。在某些實施例中,僅在對記憶體位元之整個區塊應用抹除時才准許抹除;不可對個別記憶體位置選擇性地應用抹除。
OTP記憶體可用於許多類型之應用中。僅作為許多可能實例中之一者,在定製行動設備之前,必須有可能將設備軟體儲存於非揮發性記憶體(例如,快閃記憶體器件)中。因此,存在一允許將新軟體及參數程式化至設備中之易損之"原始狀態"。因此,確保設備一旦離開工廠就不可能以任何不受控制之方式使設備恢復此"原始"狀態係重要的,因為此將允許非法之重新程式化。對於此目的,一OTP記憶體非常有用,因為其內容可用於保持區別已離開工廠之設備與未離開工廠之設備之資訊。一旦完成設備之定製,就可在OTP記憶體中(例如)設定一所謂的生產旗標。此旗標接著向設備啟動及載入器軟體通知設備經定製且任何重新程式化需要特殊授權。
利用OTP資訊之軟體通常在設備之主處理器(例如,例如行動電話之行動通信設備之主基頻處理器)上執行。此暗示最安全的基於OTP之解決方法為OTP記憶體駐留於與主處理器相同之積體電路("晶片")(例如,行動電話中之基頻處理器)上之解決方法,因為此將使OTP讀取功能之篡改更加困難。遺憾地,由於許多技術及成本限制,並非總可能提供晶片上OTP記憶體。因此,必須常常在一外部硬體組件中實現OTP記憶體。在此種配置中,必然存在一用於將自外部硬體組件所讀出之OTP傳送至主處理器之通信鏈路。此通信鏈路使OTP讀取功能暴露於OTP記憶體與基頻晶片之間的資料轉移之操作。所操作之資料可使得設備在其"原始"狀態中呈現黑色,且因此易經受未經授權之重新程式化。
至此關於OTP記憶體所描述之情形僅為當儲存於周邊器件上之資料(下文中稱作"周邊資料"或"PD")當由一"主"處理器讀取時暴露於未經授權之操作時所引起的更一般問題之一實例。
可藉由以密碼構件保護PD讀取操作而顯著減小此威脅。更具體言之,主處理器可藉由在或大約在其自周邊記憶體起始一讀取操作時向外部硬體組件發布一隨機(或偽隨機)查問字(RND)來確定其自其本身與周邊記憶體(例如,OTP記憶體)之間的通信鏈路所接收之資料是否為可信的。外部硬體組件讀取來自周邊記憶體之資料且使用一加密程序來導出來自周邊資料之"訊息鑑認碼"(MAC)、先前儲存之密鑰(K),及隨機查問字(RND)。接著將所產生之MAC連同周邊資料一起傳回主處理器。亦維護密鑰K之複本之主處理器使用密鑰K、所接收之周邊資料及所發布之隨機查問字(RND)計算一參考MAC之值。若MAC之值等於所接收之MAC值,則將所接收之周邊資料視為有效(亦即,其未經篡改)。
用於此及其他目的而建構MAC之最常用方式為基於所謂的單向雜湊函數,諸如,SHA-1及MD5。感興趣之讀者可參考J.Menezes、P.C.van Oorschot及S.A.Vanstone之Handbook of Applied Cryptography (第9.4章,第338-351(1997)頁)以獲得更多細節。最廣泛使用之MAC函數之一為實際上基於單向雜湊函數之HMAC函數。感興趣之讀者可參考"HMAC Keyed-Hashing for Message Authentication",(IETF RFC 2104)。
若將(例如)出於提供一用於保護由一周邊單元供應之資料(例如,上述所論述之OTP資料)之完整性的機制之目的而在彼周邊單元中產生一MAC,則需要使用最小的可能組件實施MAC計算硬體。遺憾地,一基於單向雜湊函數或區塊密碼之MAC實施例相當複雜,且因此不會滿足此標準。舉例而言,一單獨的最佳SHA-1硬體實施例通常具有一大約14 K閘極之尺寸。
因此,需要提供可以一組件有效方式實施之高安全資料完整性裝置及方法。
應強調,術語"包含"當用於此說明書中時欲用以指定所述特徵、整體、步驟或組件之存在;但此等術語之使用不排除一或多個其他特徵、整體、步驟、組件或其群之存在或添加。
根據本發明之一態樣,前述及其他目標在涵蓋用於產生一鑑認碼之方法及/或裝置之實施例中達成。此涉及在一裝置中包含線性反饋移位暫存器(LFSR)電路及連接至LFSR之額外電路,該LFSR包含一移位暫存器及反饋電路,從而在第一操作模式中使得LFSR電路與額外電路一起充當一密鑰產生器;且在第二操作模式中使得LFSR電路與額外電路一起充當一乘法器。
在另一態樣中,在一電子電路中執行該方法,且該方法涉及自該電子電路外部之一源接收一隨機查問字RND。藉由在該隨機查問字RND之至少一部分與一密鑰值K之至少一部分之間執行一邏輯運算而產生一第一值,其中K儲存於電子電路上。藉由在隨機查問字RND之至少另一部分與密鑰值K之至少另一部分之間執行一邏輯運算而產生一第二值。使得LFSR電路自該第一值產生一第一偽隨機值,且使得額外電路用作一自該第二值產生一第二偽隨機值之第二線性反饋移位暫存器。藉由使得LFSR電路與額外電路一起充當密鑰產生器而自該第一偽隨機值及該第二偽隨機值產生一第一密鑰值K'。
在再一態樣中,使得LFSR電路與額外電路同時產生一系列項K' i +1 及(m1 K'+m2 K'2 +...+m i K' i ),1 i l ,其中m1, m2 ,...,m l 藉由將周邊資料PD表示為一域GF(2 n )(其中,n 為一大於零之整數)中之元素之一l值組而導出。
在又一態樣中,藉由在隨機查問字RND之至少一部分與密鑰值K之至少一部分之間執行一邏輯運算而產生一第三值。藉由在隨機查問字RND之至少另一部分與密鑰值K之至少另一部分之間執行一邏輯運算而產生一第四值。使得LFSR電路自該第三值產生一第三偽隨機值;且使得額外電路用作自該第四值產生一第四偽隨機值之第二線性反饋移位暫存器。藉由使得LFSR電路與額外電路一起充當密鑰產生器而自該第三偽隨機值及該第四偽隨機值產生一第二密鑰值K"。使得額外電路組合該第二密鑰值K"與(m1 K'+m2 K'2 +...+m l K' l ),藉此產生一訊息鑑認碼MAC:MAC=K"+m1 K'+m2 K'2 +...+m l K' l
在某些實施例中,產生一鑑認碼涉及產生使得線性反饋移位暫存器(LFSR)電路、多用途邏輯電路、求和電路與代換邏輯電路一起充當一流加密產生器之複數個控制信號。此外,使得LFSR電路與多用途邏輯電路之反饋電路一起充當一乘法器且將藉此產生之乘法之乘積儲存於多用途邏輯電路之移位暫存器中。
LFSR電路包括一移位暫存器及反饋電路,其中該反饋電路徑組態以產生一自由該移位暫存器之對應的一或多級供應之一或多個輸出信號所導出的反饋信號。反饋電路經組態以根據一由該等控制信號中之一或多者指定之函數產生反饋信號,且經組態以使該反饋信號可用於移位暫存器之一輸入級。
多用途邏輯電路包含移位暫存器及反饋電路,其中待經由多用途邏輯電路之反饋電路反饋之信號由至少兩個源中之一者選擇性地供應:(1)由LFSR電路之移位暫存器之對應的一或多級供應之一或多個輸出信號;或(2)由多用途邏輯電路之移位暫存器之對應的一或多級供應之一或多個輸出信號。
再者,多用途邏輯電路之反饋電路經組態以根據一由該等控制信號中之一或多者指定之函數產生一反饋信號,且經組態以使該反饋信號可用於多用途邏輯電路之移位暫存器之一輸入級。
上文所提及之求和電路係用於對由LFSR電路、多用途邏輯電路及代換邏輯電路供應之信號進行求和。且,代換邏輯電路具有一用於接收由求和電路供應之一或多個信號之輸入埠,及一用於將信號供應至求和電路之輸出埠。
在另一態樣中,一表示為K'暫存器之移位暫存器經操作以接收及儲存由求和電路供應之一或多個信號。
在又一態樣中,將具有值1之雙基礎表示法(dual-base representation)載入至LFSR電路之移位暫存器中;且使得將K'暫存器之輸出信號供應至多用途邏輯電路以在乘法期間用作一運算元。此對於產生儲存於K'暫存器中之值之雙基礎表示法有用。
在再一態樣中,回應於控制信號之第三狀態,將一來自多用途邏輯電路之移位暫存器之值複製至LFSR電路之移位暫存器中。作為利用此函數之一實例,此准許在一隨後之乘法運算中使用先前運算之結果。
在又一態樣中,同時執行以下操作:.使得LFSR電路與多用途邏輯電路之反饋電路一起充當一產生一第一乘積之乘法器,且當產生該第一乘積時將該第一乘積儲存於多用途邏輯電路之移位暫存器中;及.使得LFSR電路與補充反饋電路一起充當一產生一第二乘積之乘法器,且當產生該第二乘積時將該第二乘積儲存於一補充移位暫存器中。
在符合此態樣之實施例中,待經由補充反饋電路反饋之信號為由LFSR電路之移位暫存器之一或多級供應的輸出信號;且補充反饋電路根據一由該等控制信號中之一或多者指定之函數產生一反饋信號。使該反饋信號可用於補充移位暫存器之一輸入級。
在再一態樣中,藉由依次組合由求和電路供應之一或多個信號與由補充移位暫存器供應之對應數目之信號而產生一總和。
在又一態樣中,將該總和供應至補充反饋電路。操作補充反饋電路以將總和供應至補充移位暫存器。
在再一態樣中,在一電子電路中產生一訊息鑑認碼MAC,其中該MAC保護一資料值PD之完整性。此涉及自電子電路外部之一源接收一隨機查問字RND。自RND及K估計一產生一第一加密值K'之第一函數G(RND,K),其中K為一儲存於電子電路上之密鑰值。自RND及K估計一產生一第二加密值K"之第二函數F(RND,K)。根據下式產生訊息鑑認碼:MAC=K"+m1 K'+m2 K'2 +...+m l K' l ,其中m1, m2 ,...,m l 藉由將資料值PD表示為一域GF(2n )(其中,n 為一大於零之整數)中之元素之一l 值組而導出。
在另一態樣中,估計第一函數G(RND,K)包含藉由在隨機查問字RND之至少一部分與密鑰值K之至少一部分之間執行一邏輯運算而產生一第一值。藉由在隨機查問字RND之至少另一部分與密鑰值K之至少另一部分之間執行一邏輯運算而產生一第二值。利用一第一線性反饋移位暫存器自該第一值產生一第一偽隨機值。利用一第二線性反饋移位暫存器自該第二值產生一第二偽隨機值。將該第一及該第二偽隨機值應用至一流加密產生器以藉此產生第一加密值K'。
在又一態樣中,估計第二函數F(RND,K)包含藉由在隨機查問字RND之至少一部分與密鑰值K之至少一部分之間執行一邏輯運算而產生一第三值。藉由在隨機查問字RND之至少另一部分與密鑰值K之至少另一部分之間執行一邏輯運算而產生一第四值。利用第一線性反饋移位暫存器自該第三值產生一第三偽隨機值。利用第二線性反饋移位暫存器自該第四值產生一第四偽隨機值。將該第三及該第四偽隨機值應用至流加密產生器以藉此產生第二加密值K"。
在再一態樣中,根據MAC=K"+m1 K'+m2 K'2 +...+m l K' l 產生訊息鑑認碼包含同時操作第一乘法器電路及第二乘法器電路以同時產生各別m i K' i 及K' i +1 項,1 i l ,其中該第一乘法器電路包括第一線性反饋移位暫存器,且該第二乘法器電路包括第二線性反饋移位暫存器。
現將參考諸圖描述本發明之各種特徵,在諸圖中,相同零件用相同參考符號來識別。
現將結合許多例示性實施例更詳細地描述本發明之各種態樣。為促進對本發明之理解,根據待由一電腦系統之元件或能夠執行程式化指令之其他硬體執行的動作之序列來描述本發明之許多態樣。將認識到,在該等實施例中之每一者中,各種動作可藉由專門電路(例如,經互連以執行一專門功能之離散邏輯閘)、藉由一或多個處理器執行之程式指令或藉由兩者之組合來執行。此外,可將本發明額外地考慮為完全體現於任何形式之電腦可讀載體內,諸如,含有將使得一處理器執行本文中所描述之技術的適當組之電腦指令之固態記憶體、磁碟、光碟或載波(諸如,射頻、音頻或光頻載波)。因此,本發明之各種態樣可以許多不同形式來體現,且預期所有該等形式在本發明之範疇內。對於本發明之各種態樣中之每一者,任何該種形式之實施例在本文中可稱作經組態以執行一所描述動作之"邏輯",或替代地稱作執行一所描述動作之"邏輯"。
本發明之態樣可適用於(但不限於)如先前技術部分中所描述的且如圖1中所說明之鑑認程序,圖1為藉以在一包括主處理器之積體電路外部之周邊單元中實施周邊記憶體(例如,一OTP記憶體)之一例示性配置的方塊圖。因此,一PD讀取程序包括一主處理器101朝著一包括周邊記憶體105之周邊單元103發布一隨機查問RND(步驟1)。具有主處理器之單元與周邊單元之間共用之隨機查問(RND)、周邊記憶體內容(PD)及一密鑰107用作一完整性保護演算法之輸入。接著將PD連同來自完整性保護演算法之訊息鑑認碼(MAC)一起發送回主處理器101(步驟2)。MAC為作為儲存於周邊單元103中之訊息(在此狀況下,為自周邊單元之記憶體中讀出之PD)及密鑰K之函數而產生的值。主處理器101藉由基於所接收之PD、其本身的密鑰K之複本109及其對最初發送之隨機查問RND之瞭解來確定所接收之完整性值(MAC)是否為所期望值而檢查所接收之PD之有效性。
本發明之實施例之一態樣係關於用於在產生MAC中使用之特定形式的算術函數。
本發明之實施例之另一態樣係關於能夠計算MAC產生函數之有效硬體組態及演算法。
現將在下文中更詳細地描述此等及其他態樣。
假設H表示MAC函數;亦即,MAC=H(K,RND,PD)。可將MAC函數劃分成三個不同的相異部分:.一遮蔽密鑰導出部分:.一完整性密鑰導出部分:及.一無條件安全MAC部分。
本文中將藉由函數H'()表示無條件安全MAC部分。本文中將藉由函數G()表示完整性密鑰導出部分,且本文中將藉由K'表示完整性密鑰導出部分產生之完整性密鑰:亦即,K'=G(RND,K)(其中RND為隨機查問,且K為前文所描述之密鑰)。完整性密鑰K'用以給出避免代換攻擊之資料完整性保護。
本文中藉由F()表示遮蔽密鑰導出函數,且本文中藉由K"表示遮蔽密鑰導出函數產生之遮蔽密鑰,亦即,K"=F(RND,K)。遮蔽密鑰用以遮蔽/隱蔽受完整性保護之資料,藉此添加增加的安全性。
滿足上文所陳述之標準之函數H可採取許多不同形式中之任一者。本發明之例示性實施例使用將待保護之訊息連同兩個密鑰值一起作為輸入的函數(本文中表示為H')之形式。此等密鑰中之第一者為完整性密鑰K',且此等密鑰中之第二者為遮蔽密鑰K"。因此,可將例示性MAC函數表示為:MAC=H(K,RND,PD)=H'(K",K',PD)=H'(F(RND,K),G(RND,K),PD)
可使用多項式估計建構展現非常高之安全性之函數。此一般原理為已知的,且因此不需要在本文中加以詳細描述。感興趣之讀者可參考G.Kabatanskii、B.Smeets及T.Johansson之"On the cardinality of systematic authentication codes via error-correcting codes"(IEEE transaction on information theory ,第42卷,第2號,1996)以獲得更多資訊。
本發明之實施例藉由在MAC函數H'中使用多項式估計而利用此特徵。因此,計算用於H'之任何給定值涉及三個主要任務:密鑰產生、乘法,及加法。本文中呈現用於進行所有三者之有效方法及構件。
可借助於諸如以下文獻中所描述之技術之求和組合器流密碼技術實現自初始值產生偽隨機密鑰:(例如)J.L.Massey及R.A.Rueppel之"Method of,and Apparatus for,Transforming a Digital Sequence into and Encoded Form"(美國專利第4,797,922號,1989);及Gehrmann、J.Persson及B.Smeets之Bluetooth Security (第74-80頁,Artech House,2004)。該技術依賴於線性反饋移位暫存器("LFSR",其中術語"LFSR"係指移位暫存器與相關聯之反饋電路之組合)及額外支援邏輯電路之使用。
亦可使用LFSR及低複雜性支援硬體非常有效地達成多項式乘法。因此,根據符合本發明之實施例之一態樣,出於密鑰產生及乘法之雙重目的而使用一組LFSR。如將自下文所見,此允許構造完整函數H之一非常有效之硬體實施例。
藉由GF(2 n )表示大小為2 n 之有限域。將PD表示為此域中之元素之一l 值組,亦即,PD=(m1 ,m2 ,...,m l );mi GF(2 n )。接著可將函數H'(K",K',PD)表示為:H'(K",K',PD)=K"+m1 k'+m2 K'2 +...+m l K' l (1)
若對於每一新的MAC計算均完全隨機地選擇密鑰K'及K",則一成功代換攻擊之機率等於l ×2 n 。但是,假定可找到密碼編譯健全之函數F及G,則可認為:當以借助於函數F及G而用自K及RND導出之密鑰替換真正隨機值K'及K"時,此理論值亦成立。
在密鑰產生與乘法中均使用LFSR,且因此LFSR在本發明之各種實施例中起重要作用。圖2為一例示性LFSR 200之方塊圖。LFSR 200包括一具有複數個(n 個)級之移位暫存器201,該複數個(n 個)級包括一輸入級S n -1 及一輸出級S0 。LFSR 200進一步包括具有複數個輸入端之多級反饋邏輯203,該複數個輸入端包括一經連接以接收由移位暫存器201之輸出級S0 供應之輸出信號的第一輸入端,及經連接以接收由移位暫存器201之該等級中之一對應其他級供應的輸出信號之至少一其他輸入端。多級反饋邏輯203包含許多級,該等級經配置以使得每一級產生一包含一對應輸入信號(由移位暫存器201之一對應級供應)與由多級反饋邏輯203之一相鄰先前級產生之反饋信號的總和之反饋信號。
多級反饋邏輯203之其他輸入端之數目及位置將視應用而異。圖2中所描繪之例示性實施例為一一般狀況實施例,其准許用以下方式重新組態LFSR 200。其他級(亦即,除輸入級之外的級)中之每一者包含一加法器(例如,加法器205)及一乘法器(例如,乘法器207)。乘法器207接收一來自移位暫存器201之一對應級之輸出端的信號及一來自多項式之項(例如,Pn-3 )。乘法器207之輸出表示移位暫存器輸出信號與多項式項之乘積。此乘積被供應至加法器205之一輸入端。加法器205之另一輸入端接收來自一相鄰先前級之反饋信號(在此實例中,為由級0產生之反饋信號)。加法器205之輸出表示其兩個輸入之總和;除非不存在額外級(在此狀況下,此輸出為來自多級反饋邏輯203之輸出信號),否則此輸出被供應至多級反饋邏輯203中之下一級。
將可見:可藉由改變多項式項P0 ...Pn-1 而改變多級反饋邏輯203之函數。若預料在建構多級反饋邏輯203之後將不需要改變多級反饋邏輯203之函數,則可藉由消除與多項式項為零之任何級相關聯之加法器及乘法器而節省硬體,因為對應乘法器之輸出將必然亦為零。
亦將認識到,在於任何級處僅使用單一位元二進位值之實施例中,可藉由一單一邏輯"及"閘建構該等乘法器中之每一者,且可藉由一單一邏輯"互斥或"閘建構該等加法器中之每一者。
現轉向對MAC產生函數之態樣之論述,優良密鑰產生演算法F及G可使用前文所提及之所謂的求和組合器流密碼來建構。圖3為本發明之此態樣中所涉及之例示性電路300的方塊圖。電路300包含一第一LFSR 301及一第二LFSR 303。第一及第二LFSR 301、303中之每一者可獨立於另一電路而操作以根據熟知原理產生一偽隨機數。第一LFSR 301具有一反饋多項式Pi (0in-1),該反饋多項式較佳經選擇以在給定第一LFSR 301之長度之情況下獲得一最大長度序列。第二LFSR 303類似地具有一反饋多項式Ii (0in-1),該反饋多項式較佳經選擇以在給定第二LFSR 303之長度之情況下獲得一最大長度序列。可將第二反饋多項式Ii 選擇為與第一反饋多項式Pi 相同或不同。
電路300進一步包括求和電路305及藉由無限脈衝回應(IIR)濾波器307舉例說明之代換邏輯。IIR濾波器307位於求和電路305之輸出端與輸入端之間的反饋路徑中,且因此將輸入中之一者供應至求和電路305。求和電路305亦接收來自第一LFSR 301之輸出端之第二輸入,且接收來自第二LFSR 303之輸出端之第三輸入。
在此例示性實施例中,LFSR 301、303內之每一級僅構成一單一位元。在此例示性實施例中,IIR濾波器307之輸出亦僅為一單一位元。因此,來自求和電路305之輸出將為一在零至三之範圍中之值,其可藉由兩個二進位數位來表示。在此實施例中,此等二進位數位之最有效者用作IIR濾波器307之輸入。此等二進位數位之最低有效者供應流加密產生器之最終輸出(亦即,經加密資料)。
接著在替代實施例中將認識到,第一及第二LFSR之每一級可經設計以持有多位元值。剩餘電路因此將經重新設定大小以適應此改變。然而,為了簡單且沒有關於本發明之範疇內之其他可能實施例的任何暗示或限制起見,此描述之剩餘部分將假定單一位元實施例。
在此例示性實施例中,IIR濾波器307包含具有一作為反饋之多項式f(x)=1+f1 x+f2 x2 +...+f10 x10 +x11 (在GF(2)上)之長度為11的線性移位暫存器之一雙實施例。舉例而言,可選擇f(x)=1+x3 +x5 +x7 +x11 。在此狀況下,IIR濾波器307之輸出為7個變數中之4階2相關性免疫布爾函數(F)之一函數值。實際上,其為一(7,2,4,56)函數。該函數之輸入展示於圖4a中。此意謂,非線性階數為2且函數之任何兩個輸入變數與輸出之間不存在相關性。該函數具有距線性結構之距離56。存在具有此等相同參數之若干布爾函數(F),且可使用此等函數中之任一者。作為一實例,圖4b為展示此等布爾函數中之一者之Walsh譜的表格。
現將論述集中於本發明之與執行乘法有關的實施例之態樣。圖5為一能夠以順序方式(在n 個步驟中)將yGF(2 n )與xGF(2 n )相乘之熟知雙基礎位元串列乘法器的方塊圖。此處y以正常(標準)基礎y=y0 +y1 α+y2 α2 +?y n -1 α n -1 來表示,其中αGF(2n )為多項式p(t)=p0 +p1 t+p2 t2 +?pn-1 tn-1 +pn t n (pi GF(2))之零,且yi GF(2)為y之座標。現假設β01 ,...,β n -1 為如(例如)R.J.McEliece在Finite Fields for Computer Scientists and Engineers (第97-118頁,Kuwer 1987)中所描述之所謂的(迹線)雙基礎。亦即,TR(αi βj )=1,若i=j且否則為0。
此處,Tr()表示迹線函數。接著有可能藉由x之雙表示法如下表示x:
注意,本文中使用[.]符號表示雙座標。
為了使用圖5之組態執行量X與量Y之間的乘法,將X之一雙基礎表示法儲存於LFSR 501之移位暫存器中。將多項式Pi (0i n -1)之項應用至LFSR之乘法器之各別輸入端以根據此項技術中已知之原理達成所需之反饋。
提供多級反饋邏輯503之一第二配置,其包含許多級,每一級包含一乘法器(例如,乘法器505)及一加法器(例如,加法器507)。在每一級處,乘法器產生由LFSR 501之移位暫存器之一對應級供應的一輸出信號與量Y之一對應部分(例如,位元)的乘積。第二多級反饋邏輯503之級經配置以使得每一級產生一包含其本身之乘法器輸出與由第二多級反饋邏輯503之一相鄰先前級產生之反饋信號的總和之反饋信號。當供時脈給LFSR 501之移位暫存器n 次時,在第二多級反饋邏輯503之最末級之輸出端處依次供應乘積XY(以雙基礎表示法表示)。
圖6為展示配備有一用於接收乘法之結果之暫存器601的相同乘法器之方塊圖。結果暫存器601與LFSR 501之移位暫存器之級之間的連接准許將結果暫存器601之內容反饋至LFSR 501之移位暫存器中。如現將不僅參看圖6而且參看圖7(圖7為描繪在例示性過程中執行之步驟的流程圖)所描述的,此構造有益於計算如等式(1)中所需之數字K'、K'2 、…、K' l
作為一初始步驟,需要將K'之一雙基礎表示法載入至LFSR 501之移位暫存器(在下文中稱作X暫存器)中。此可以許多不同方式中之任一者來執行。舉例而言,可在另一電路中計算所需量且接著將所需量記錄至X暫存器中。為了避免使圖式過度複雜化,未描繪用於實現此之連接,但該等連接將可由一般熟習此項技術者容易地確定。
或者,且根據本發明之各種實施例之另一態樣,利用所描繪之電路確定K'之雙基礎表示法。此藉由首先將數字1(其為一可簡單儲存於圖式中未展示之記憶體器件中且視需要而擷取之常數)之雙基礎表示法載入至X暫存器中來達成(步驟701)。(貫穿此描述,方括號用於表示括號內所表示之量之雙基礎表示法)。接著將K'之值應用至乘法器之Y個輸入端(步驟703),且供時脈給X暫存器n 次(步驟705)。以此方式,在n 個步驟中計算乘積1莐=K',K'之雙基礎表示法完成於結果暫存器601中。
在另一態樣中,可藉由接著將結果暫存器601之內容(=K')複製至X暫存器中(步驟707)且繼續將K'之值應用至乘法器之Y個輸入端(709)來計算K'2 之值。接著供時脈給電路另一n 次(步驟711),此實現計算K'.K'=K'2 ,結果(以雙基礎表示法表示)出現於結果暫存器601中。可視需要而重複此運算序列(亦即,將最後計算之值自結果暫存器601移至X暫存器,繼續將K'應用至乘法器之Y個輸入端,且接著供時脈給電路n 次)以獲得K'直至K' l 之逐漸增加的冪(雖然以雙表示法表示)。然而,對於要求計算一MAC碼之應用(或類似應用),結果可保持為雙基礎表示法,因為自雙至正常基礎之映射為一線性映射且因此將不影響MAC碼之安全參數。
圖8為說明可藉由添加一第二結果暫存器801及第三多級反饋邏輯803而達成之額外優點的電路配置之方塊圖。第三多級反饋邏輯803包含許多級,每一級包含一乘法器(例如,乘法器805)及一加法器(例如,加法器807)。在每一級處,第三乘法器產生由LFSR 501之X暫存器之一對應級供應的輸出信號與量M之一對應部分(例如,位元)的乘積。第三多級反饋邏輯803之級經配置以使得每一級產生一包含其本身之乘法器輸出與由第三多級反饋邏輯803之一相鄰先前級產生之反饋信號的總和之反饋信號。當供時脈給LFSR 501之移位暫存器n 次時,在第三多級反饋邏輯803之最末級之輸出端處依次供應乘積XM(以雙基礎表示法表示)。當產生乘積XM時,第三多級反饋邏輯803之最末級與第二結果暫存器801之一輸入級之間的連接准許將乘積XM依次記錄至第二結果暫存器801中。有利地,此可與將來自第二多級反饋邏輯503之最末級之乘積記錄至第一結果暫存器601中同時執行。
藉由具有兩個雙乘法器,現可容易地計算m1 K'+m2 K'2 +...+ml K' l 。一乘法器(LFSR 501與第二多級反饋邏輯503之組合)計算K'、K'2 、...、K' l 之雙表示法,且並行執行之另一乘法器(LFSR 501與第三多級反饋邏輯803之組合)自如由另一乘法器計算之K' i 計算乘積mi K' i
如現將展示的,相對少量之邏輯電路之添加准許在第二結果暫存器801中容易地計算且收集量m1 K'+m2 K'2 +...+ml K' l 。此外,可再用兩個乘法器中之邏輯以不僅產生K'而且產生K"。
圖9為能夠產生R'及K"且接著根據等式(1)使用此等值計算一MAC值之電路900之一例示性實施例的方塊圖。電路900包括產生用於以下所描述之硬體中之所有控制信號及常數之控制及支援邏輯901。控制及支援邏輯901可實施為硬連線及/或可程式化邏輯,一般熟習此項技術者將自以下描述而容易地瞭解控制及支援邏輯901之設計。
電路900包括一LFSR 903、第一多級反饋邏輯905,及一具有移位暫存器功能之第一結果暫存器907。第一多級反饋邏輯905、LFSR 903與第一結果暫存器907之間的可切換連接使得此等邏輯元件能夠如前文結合圖3所描述的(例如,在流密碼模式中)或替代地如前文結合圖6及圖7所描述的(在乘法器模式中)而起作用。詳言之,一組切換器909准許第一多級反饋邏輯905自LFSR 903內之移位暫存器或第一結果暫存器907之各級獲得輸入信號。藉由控制及支援邏輯901產生之控制信號管理對切換器909之控制。控制及支援邏輯901亦產生用以確定以下各者之信號:第一結果暫存器907之內容是否將被直接記錄至LFSR 903內之移位暫存器中,或者結果暫存器907是否將作為一獨立移位暫存器操作。注意,在圖9中,在識別第一多級反饋邏輯905之方框內描繪切換器909。然而,可僅將切換器909簡單考慮為一與多級反饋邏輯905分離且隔開之組件。
電路900進一步包括求和電路911及由一無限脈衝回應(IIR)濾波器913舉例說明之替代邏輯。IIR濾波器913位於求和電路911之輸出端與輸入端之間的反饋路徑中,且因此將輸入中之一者供應至求和電路911。在由控制及支援邏輯901產生之信號之指導下,求和電路911亦能夠接收來自LFSR 903之一輸出端之第二輸入,且能夠接收來自經組態以作為移位暫存器操作之結果暫存器907之一輸出端的第三輸入。
當切換器909經組態以將信號自第一結果暫存器907供應至第一多級反饋邏輯905時,可使結果暫存器907(作為一移位暫存器操作)結合第一多級反饋邏輯905作為一具有多項式項In-1 ,In-2 ,...,I0 之第二LFSR操作,該等多項式項由控制及支援邏輯901產生且供應至位於第一多級反饋邏輯905內之乘法器輸入端。
直至此時所描述之電路可有利地用以產生根據等式(1)產生MAC所需之K'項。舉例而言,可將PD之一第一部分(例如,n 個位元)與隨機查問RND之一第一部分逐位互斥或(XOR)且將結果載入至LFSR 903之X暫存器中。可將PD之一第二部分與隨機查問RND之一第二部分互斥或(XOR)且將彼結果載入至第一結果暫存器907中。PD之第一部分不應與PD之第二部分相同。類似地,隨機查問RND之第一部分不應與隨機查問RND之第二部分相同。藉由將來自多項式P及I之合適之項應用至第一及第二LFSR中之乘法器,可使此等乘法器結合求和電路911及IIR濾波器913作為上述結合圖3所描述之流加密產生器而操作以產生求和電路911之輸出之最低有效位元(LSB)(構成項K'之位元流)。在較佳實施例中,閉合一通向IIR濾波器913之輸入端之切換器912,且准許供時脈給IIR濾波器913連同X暫存器及第一結果暫存器907之內容(經由其各別反饋電路)某一數目之次數(例如,100次)。供時脈給X暫存器及第一結果暫存器907較佳地使其中所含有之值隨機化,且供時脈給IIR濾波器913幫助擾亂求和電路911之輸出端處所呈現之狀態變數。
進一步供時脈給此電路使得產生值K'且使值K'可用於求和電路911之LSB輸出端處。提供另一移位暫存器(K'暫存器915)以用於接收及儲存所產生之值K'。閉合切換器923及929准許在使值K'可用於求和電路911之LSB輸出端處的同時就將值K'載入至K'暫存器915中。
在另一操作模式中,產生多項式m1 K'+m2 K'2 +...+ml K' l 。為實現此目的,結合第一多級反饋邏輯905、第二多級反饋邏輯917、一具有移位暫存器功能之第二結果暫存器919及第二組切換器921來使用LFSR 903。設定切換器909以將來自第一LFSR 903內之移位暫存器之輸出供應至第一多級反饋邏輯905之乘法器輸入端以產生一等效於圖6中所描繪之配置之第一乘法器配置。如前文所描述的,此配置准許在LFSR 903內之X暫存器之內容與供應至第一多級反饋邏輯905之乘法器輸入端之值之間執行乘法。在此實例中,設定切換器以便在來自K'暫存器級之輸出端處供應彼等值。因為必須具有K'之雙基礎表示法,所以此可有利地藉由將數字1之雙基礎表示法載入至LFSR 903之X暫存器中,且供時脈給該邏輯以在LFSR 903之X暫存器與儲存於K'暫存器915中之K'的值之間執行乘法而產生。結果將為儲存於第一結果暫存器907中之K'之雙基礎表示法。在下一個步驟中,可將此值記錄至LFSR 903之X暫存器中。
在將切換器923及925設定至其斷開位置(或以任何替代方式確保傳遞值"0")之情況下,配置現正準備計算多項式m1 K'+m2 K'2 +...+ml K' l 。切換器909繼續將來自LFSR 903內之X暫存器之輸出供應至第一多級反饋邏輯905內之乘法器。亦閉合切換器921以便由LFSR 903內之X暫存器之對應級供應第二多級反饋邏輯917內之乘法器之一輸入。設定LFSR 903內之多項式項P以用於乘法。類似地將第二多級反饋邏輯917內之乘法器之其他輸入設定為表示項m i (0 i l )(見等式(1))之位元,其中m1, m2 ,...,m l 藉由將資料值PD表示為以一域GF(2 n )中之元素之一l 值組而導出。將由第二多級反饋邏輯917產生之結果記錄至第二結果暫存器919中。
此配置現配置得更像圖8中所描繪之配置,且可如上文關於彼圖式所描述而操作以產生多項式m1 K'+m2 K'2 +...+m1 K' l 。詳言之,當供時脈給LFSR 903之移位暫存器經n 次時,在第一多級反饋邏輯905之最末級之輸出端處依次供應乘積K' ×[X 暫存器之內容](以雙基礎表示法表示),且可將此依次記錄至第一結果暫存器907之輸入級中。當如上所述初始化X暫存器之內容以儲存K'之雙基礎表示法時,第一結果暫存器907將因此在結束乘法運算時具有儲存於其中之值K'2 。在此發生之同時,在第二多級反饋邏輯917之最末級之輸出端處依次供應乘積m i ×[X 暫存器之內容](以雙基礎表示法表示),且可將此依次記錄至第二結果暫存器919之輸入級中。當將m i 設定為等於項m1 時,第二結果暫存器919將因此在第一迭代之後具有儲存於其中之值m1 K'。
藉由將第一結果暫存器907之內容記錄至LFSR 903之X暫存器中且亦閉合切換器925(以便將值m1 K'依次供應至加法器927),可產生值K'2 且藉由供時脈給LFSR 903之移位暫存器另一n 次而將值K'2 記錄至第一結果暫存器907中。與此同時,將m i 設定為等於下一項m2 ,以便產生值m1 K'+m2 K'2 且將值m1 K'+m2 K'2 記錄至第二結果暫存器919中。
此過程之進一步迭代產生K'之較高冪(儲存於第一結果暫存器907中)且進一步計算等式(1),直至最終已計算出多項式m1 K'+m2 K'2 +...+m l K' l 且將多項式儲存於第二結果暫存器919中為止。
在處理之下一個階段中,控制及支援邏輯901產生確保第二結果暫存器919之內容在產生K"之值時將保持穩定的信號。值K"之產生較佳遵循上述關於值K'之產生所描述之相同步驟。亦即,結果暫存器907作為一獨立移位暫存器操作,且第一多級反饋邏輯905、求和電路911及IIR濾波器913經組態以結合LFSR 903而作為一流加密產生器操作。可將PD之一部分與隨機查問RND之一部分逐位互斥或(XOR),且將結果載入至LFSR 903之X暫存器中。可將PD之另一部分與隨機查問RND之另一部分逐位互斥或(XOR),且將彼結果載入至第一結果暫存器907中。PD之兩部分不應彼此相同。類似地,隨機查問RND之兩部分不應彼此相同。分別將適合用於加密產生之多項式P及I再次應用至LFSR 903及第一多級反饋邏輯905。閉合通向IIR濾波器913之輸入端之切換器912,且供時脈給IIR濾波器913連同LFSR 903之X暫存器及第一結果暫存器907某一數目之次數(例如,150次)。
接著閉合切換器923及925。進一步供時脈給電路使得自求和電路911之LSB依次移位值K"。在閉合切換器923及925之情況下,在第二多級反饋邏輯917之輸出級處產生值K"+m1 K'+m2 K'2 +...+m1 K' l 。可將此值儲存於第二結果暫存器919中,可由控制及支援邏輯901自第二結果暫存器919擷取此值且將此值用作所產生之MAC值。
在上述配置中,較佳根據小於n 之次數之多項式設定I多項式值(以得到互質之週期)。
上文所描述之實施例僅為例示性的且可導出符合本發明之各種態樣之許多替代實施例。舉例而言,當產生項K'時,提及初始化涉及將PD之一或多個部分與隨機查問RND之一或多個部分逐位互斥或(XOR)。在替代實施例中,可將所得值與函數G()所特有之常數進一步互斥或(XOR)。
類似地,當產生項K"時,提及初始化涉及將PD之一或多個部分與隨機查問RND之一或多個部分逐位互斥或(XOR)。在替代實施例中,可將所得值與函數F()所特有之常數進一步互斥或(XOR)。
在其他替代例中,可藉由用以下方式修改K'計算過程而改良MAC之強度:並非直接讀取求和電路911之輸出端處之K'值,而是可如先前所說明的執行電路以產生一值K。接著將此值載入至第一結果暫存器907中而使X暫存器及電路狀態之剩餘部分保持不變。接著再次供時脈給電路若干次且自求和電路911讀出值K'。必要時,可將此計算過程迭代任意數目之次數。
已在提供資料之完整性保護之情況下呈現上述所描述之實施例。然而,各種實施例不限於此特定應用。亦可使用相同電路來完整性保護共用對稱密鑰之兩個對等點之間的資料通信。在此種狀況下,不使用圖1中所說明之查問回應機制。實情為,兩個對等點可(例如)在通信會話開始之前交換兩個隨機數。接著可(例如)不僅自該等隨機數及共用密鑰K而且自一識別此為待保護之訊息序列中之哪一訊息的索引來產生初始密鑰。此允許在沒有對等點之間的隨機資料之任何新交換的情況下對每一新訊息使用單獨密鑰K"及K'。
亦可將本發明之實施例之各種態樣擴展以涵蓋資料經機密性保護與完整性保護之狀況。在此狀況下,亦可使用加密引擎(例如,圖9中所說明的)以在資料經完整性保護之前或之後加密資料。在此狀況下,加密引擎之初始化密鑰應不同於用於完整性保護之初始化密鑰(亦即,K'及K")。
在其他替代例中,一般熟習此項技術者將認識到,可將圖9中所描述及說明之基本構造擴展以涵蓋更多移位暫存器及反饋多項式而另外保持相同基本結構。此將以較大硬體為代價來允許較高完全性。
各種實施例允許實現相對非常小之完整性保護硬體實施例。可在安全儲存應用中以及安全通信情形中使用符合本發明之實施例。
已參考特定實施例描述本發明。然而,熟習此項技術者將易瞭解,有可能以不同於上文所描述之實施例之形式的特定形式來體現本發明。所描述之實施例僅為說明性的且不應以任何方式考慮為限制性的。
舉例而言,圖9之詳細描述集中於每一例示性元件之操作及每一例示性元件與其他例示性元件之互動。然而,應認識到,元件之例示性組合亦說明替代實施例中所涉及之許多態樣。舉例而言,第一多級反饋邏輯905、第一結果暫存器907及切換器909一起舉例說明包含一移位暫存器及反饋電路之多用途邏輯電路之一實施例,其中待經由多用途邏輯電路之反饋電路反饋之信號係藉由以下中之任一者予以選擇性地供應:1)由LFSR電路903之移位暫存器之對應的一或多級供應之一或多個輸出信號;或2)由多用途邏輯電路之移位暫存器之對應的一或多級供應之一或多個輸出信號。
多用途邏輯電路之反饋電路經組態以根據由該等控制信號中之一或多者指定之一函數產生一反饋信號,且經組態以使該反饋信號可用於多用途邏輯電路之移位暫存器之一輸入級。
多用途邏輯電路之反饋電路之反饋電路能力為:自LFSR 903之移位暫存器或自准許結合LFSR 903使用以執行流密碼運算或乘法函數之多用途邏輯電路本身之移位暫存器(圖9中藉由第一結果暫存器907舉例說明)選擇性地獲得輸入。
再者,藉由進一步提供連接至LFSR 903之移位暫存器之補充反饋電路(例如,第二多級反饋邏輯917),可實現准許執行同時乘法運算之可同時操作之乘法器(各自部分地包括相同之線性反饋移位暫存器,例如,LFSR 903)。此繼而准許同時產生各別m i K' i 及K' i +1 項(1 i l )。
甚至更一般地來觀察,實施例包含LFSR電路及連接至LFSR電路之額外電路,其中控制信號之一第一狀態使得LFSR電路與額外電路一起充當一密鑰產生器;且控制信號之一第二狀態使得LFSR電路與額外電路一起充當一乘法器。
作為替代實施例之另一實例,已描述本發明之使用域GF(2 n )之實施例。然而,熟習此項技術者將認識到,替代實施例可改為使用具有類型GF((2 m )) n 之任何域,或甚至更奇異之具有類型GF((p m ))n 之域,其中"p"為一質數。
在又一實例中,上文所描述之各種實施例無論何時需要有限狀態移位暫存器功能時均依賴於LFSR組態。然而,亦可借助於非線性有限狀態移位暫存器代替LFSR來達成流加密產生。熟習此項技術者將易理解,可自上文所闡述之原理及其他教示中導出各種實施例如何利用非線性有限狀態移位暫存器來代替LFSR。在此說明書中,一般性地使用術語"有限狀態移位暫存器"(FSR)來表示任何類型之移位暫存器/反饋配置,而不管彼配置構成線性反饋移位暫存器還是非線性反饋移位暫存器。
因此,本發明之範疇由附加申請專利範圍給出,而非由先前描述給出,且希望屬於申請專利範圍之範圍內之所有變化及等效物包含於本發明之範疇內。
101...主處理器
103...周邊單元
105...周邊記憶體
107...密鑰
109...密鑰K之複本
200...線性反饋移位暫存器(LFSR)
201...移位暫存器
203...多級反饋邏輯
205...加法器
207...乘法器
300...電路
301...第一LFSR
303...第二LFSR
305...求和電路
307...無限脈衝回應(IIR)濾波器
501...LFSR
503...多級反饋邏輯
505...乘法器
507...加法器
601...結果暫存器
801...第二結果暫存器
803...第三多級反饋邏輯
805...乘法器
807...加法器
900...電路
901...控制及支援邏輯
903...LFSR
905...第一多級反饋邏輯
907...第一結果暫存器
909...切換器
911...求和電路
912...切換器
913...無限脈衝回應(IIR)濾波器
915...K'暫存器
917...第二多級反饋邏輯
919...第二結果暫存器
921...切換器
923...切換器
925...切換器
927...加法器
929...切換器
S0 ...輸出級
Sn-1 ...輸入級
圖1為藉以在容納主處理器之積體電路外部的周邊單元中實施一OTP記憶體之配置的方塊圖。
圖2為一例示性線性反饋移位暫存器之方塊圖。
圖3為符合本發明之實施例之一態樣中的例示性流密碼電路之方塊圖。
圖4a說明符合本發明之實施例之一態樣中的用於一IIR濾波器中之函數之例示性輸入。
圖4b為符合本發明之實施例之一態樣中的用於一IIR濾波器中之例示性布爾(Boolean)函數之Walsh譜的表格。
圖5為一能夠以順序方式(在n 個步驟中)將yGF(2n )與xGF(2 n )相乘之熟知雙基礎位元串列乘法器的方塊圖。
圖6為展示一配備有用於接收乘法之結果之暫存器的乘法器之方塊圖。
圖7為描繪一符合本發明之例示性過程中執行之步驟的流程圖。
圖8為說明將一第二結果暫存器及一第三多級反饋暫存器添加至圖6中所描繪之配置之優點的電路配置之方塊圖。
圖9為能夠產生K'及K"且接著使用此等值計算一MAC值之電路的一例示性實施例之方塊圖。
300...電路
301...第一LFSR
303...第二LFSR
305...求和電路
307...無限脈衝回應(IIR)濾波器
Sn-1 ...輸入級
S0 ...輸出級

Claims (22)

  1. 一種用於產生一鑑定鑑認碼之裝置,該裝置包含:用於產生複數個控制信號之控制及支援邏輯;包含一移位暫存器及反饋電路之線性反饋移位暫存器(LFSR)電路;及連接至該LFSR電路之額外電路,其中:該等控制信號之一第一狀態使得該LFSR電路與該額外電路一起充當一密鑰產生器;且該等控制信號之一第二狀態使得該LFSR電路與該額外電路一起充當一乘法器;其中該額外電路包含:包含一移位暫存器及反饋電路之多用途邏輯電路,其中:待經由該多用途邏輯電路之該反饋電路反饋之信號係藉由該LFSR電路之該移位暫存器之對應的一或多級供應之一或多個輸出信號或藉由該多用途邏輯電路之該移位暫存器之對應的一或多級供應之一或多個輸出信號而選擇性地供應;且該多用途邏輯電路之該反饋電路經組態以根據一由該等控制信號中之一或多者指定之函數產生一反饋信號,且經組態以使該反饋信號可用於該多用途邏輯電路之該移位暫存器之一輸入級;用於對由該LFSR電路、該多用途邏輯電路及代換邏輯 電路供應之信號進行求和之求和電路;及該代換邏輯電路,其具有一用於接收由該求和電路供應之一或多個信號之輸入埠,及一用於將信號供應至該求和電路之輸出埠,且其中:該密鑰產生器為一流加密產生器;該等控制信號之該第一狀態使得該LFSR電路、該多用途邏輯電路、該求和電路與該代換邏輯電路一起充當該流加密產生器;且該等控制信號之該第二狀態使得該LFSR電路與該多用途邏輯電路之該反饋電路一起充當該乘法器。
  2. 如請求項1之裝置,其中該裝置為一電子電路之部分,且該裝置包含:自該電子電路外部之一源接收一隨機查問字RND之邏輯;藉由在該隨機查問字RND之至少一部分與一密鑰值K之至少一部分之間執行一邏輯運算而產生一第一值之邏輯,其中K儲存於該電子電路上;藉由在該隨機查問字RND之至少另一部分與該密鑰值K之至少另一部分之間執行一邏輯運算而產生一第二值之邏輯,其中該控制及支援邏輯包含產生信號之邏輯,該等信號:使得該LFSR電路自該第一值產生一第一偽隨機值; 使得該額外電路用作一自該第二值產生一第二偽隨機值之第二線性反饋移位暫存器;使得該LFSR電路與該額外電路一起充當該密鑰產生器,且使得該密鑰產生器自該第一偽隨機值及該第二偽隨機值產生一第一密鑰值K'。
  3. 如請求項2之裝置,其中該控制及支援邏輯包含產生信號之邏輯,該等信號:使得該LFSR電路與額外電路同時產生一系列項K' i +1 及(m1 K'+m2 K'2 +...+m i K' i )1 i l ,其中m1, m2 ,...,m l 係藉由將周邊資料PD表示為一域GF(2 n )中之元素之一l 值組而導出,其中n 為一大於零之整數。
  4. 如請求項3之裝置,其包含:藉由在該隨機查問字RND之至少一部分與該密鑰值K之至少一部分之間執行一邏輯運算而產生一第三值之邏輯;藉由在該隨機查問字RND之至少另一部分與該密鑰值K之至少另一部分之間執行一邏輯運算而產生一第四值之邏輯,其中該控制及支援邏輯包含產生信號之邏輯,該等信號:使得該LFSR電路自該第三值產生一第三偽隨機值;使得該額外電路用作自該第四值產生一第四偽隨機值之該第二線性反饋移位暫存器;使得該LFSR電路與該額外電路一起充當該密鑰產生 器,且使得該密鑰產生器自該第三偽隨機值及該第四偽隨機值產生一第二密鑰值K";且使得該第二密鑰值K"與(m1 K'+m2 K'2 +...+m l K' l )組合,藉此產生一訊息鑑認碼MAC:MAC=K"+m1 K'+m2 K'2 +...+m l K' l
  5. 如請求項1之裝置,其中該等控制信號之該第二狀態額外地使得將一乘法之乘積儲存於該多用途邏輯電路之該移位暫存器中。
  6. 如請求項1之裝置,其包含:一表示為K'暫存器之移位暫存器,其可操作以接收及儲存由該求和電路供應之一或多個信號。
  7. 如請求項6之裝置,其包含:用於將一值1之一雙基礎表示法載入至該LFSR電路之該移位暫存器中之電路;及用於使得將該K'暫存器之輸出信號供應至該多用途邏輯電路以在乘法期間用作一運算元之電路。
  8. 如請求項1之裝置,其包含:回應於該等控制信號之一第三狀態而用於將一來自該多用途邏輯電路之該移位暫存器之值複製至該LFSR電路之該移位暫存器中的電路。
  9. 如請求項1之裝置,其包含:一補充移位暫存器;及補充反饋電路,其中:待經由該補充反饋電路反饋之信號為由該LFSR電路 之該移位暫存器之一或多級供應的輸出信號;且該補充反饋電路經組態以根據一由該等控制信號中之一或多者指定之函數產生一反饋信號,且經組態以使該反饋信號可用於該補充移位暫存器之一輸入級,其中:該等控制信號之一第三狀態使得同時執行以下操作:該LFSR電路與該多用途邏輯電路之該反饋電路一起充當一產生一第一乘積之乘法器,且當產生該第一乘積時將該第一乘積儲存於該多用途邏輯電路之該移位暫存器中;且該LFSR電路與該補充反饋電路一起充當一產生一第二乘積之乘法器,且當產生該第二乘積時將該第二乘積儲存於該補充移位暫存器中。
  10. 如請求項9之裝置,其包含:一加法器,其用於依次組合由該求和電路供應之一或多個信號與由該補充移位暫存器供應之對應數目之信號。
  11. 如請求項9之裝置,其中:該加法器經連接以將一輸出信號供應至該補充反饋電路;且該補充反饋電路經連接以將該加法器之該輸出信號供應至該補充移位暫存器。
  12. 一種用於在一包含線性反饋移位暫存器(LFSR)電路及連 接至該LFSR之額外電路之裝置中產生一鑑認碼之方法,該LFSR包含一移位暫存器及反饋電路,該方法包含:在一第一操作模式中,使得該LFSR電路與該額外電路一起充當一密鑰產生器;及在一第二操作模式中,使得該LFSR電路與該額外電路一起充當一乘法器;其中該額外電路包含:包含一移位暫存器及反饋電路之多用途邏輯電路,其中:藉由該LFSR電路之該移位暫存器之對應的一或多級供應之一或多個輸出信號或藉由該多用途邏輯電路之該移位暫存器之對應的一或多級供應之一或多個輸出信號而選擇性地供應待經由該多用途邏輯電路之該反饋電路反饋之信號;且該多用途邏輯電路之該反饋電路經組態以根據一由控制信號中之一或多者指定之函數產生一反饋信號,且經組態以使該反饋信號可用於該多用途邏輯電路之該移位暫存器之一輸入級;用於對由該LFSR電路、該多用途邏輯電路及代換邏輯電路供應之信號進行求和之求和電路;及該代換邏輯電路,其具有一用於接收由該求和電路供應之一或多個信號之輸入埠,及一用於將信號供應至該求和電路之輸出埠,且其中: 該第一操作模式包含使得該LFSR電路、該多用途邏輯電路、該求和電路與該代換邏輯電路一起充當該密鑰產生器;且該第二操作模式包含使得該LFSR電路與該多用途邏輯電路之該反饋電路一起充當該乘法器。
  13. 如請求項12之方法,其中該方法係在一電子電路中執行,且該方法包含:自該電子電路外部之一源接收一隨機查問字RND;藉由在該隨機查問字RND之至少一部分與一密鑰值K之至少一部分之間執行一邏輯運算而產生一第一值,其中K儲存於該電子電路上;藉由在該隨機查問字RND之至少另一部分與該密鑰值K之至少另一部分之間執行一邏輯運算而產生一第二值;使得該LFSR電路自該第一值產生一第一偽隨機值;使得該額外電路用作一自該第二值產生一第二偽隨機值之第二線性反饋移位暫存器;藉由使得該LFSR電路與該額外電路一起充當該密鑰產生器而自該第一偽隨機值及該第二偽隨機值產生一第一密鑰值K'。
  14. 如請求項13之方法,其包含:使得該LFSR電路與額外電路同時產生一系列項K' i +1 及(m1 K'+m2 K'2 +...+m i K' i ),1 i l ,其中m1, m2 ,...,m l 係藉由將周邊資料PD表示為一域GF(2 n )中之元素之一l 值組而導出,其中n 為一大於零之整數。
  15. 如請求項14之方法,其包含:藉由在該隨機查問字RND之至少一部分與該密鑰值K之至少一部分之間執行一邏輯運算而產生一第三值;藉由在該隨機查問字RND之至少另一部分與該密鑰值K之至少另一部分之間執行一邏輯運算而產生一第四值;使得該LFSR電路自該第三值產生一第三偽隨機值;使得該額外電路用作自該第四值產生一第四偽隨機值之該第二線性反饋移位暫存器;藉由使得該LFSR電路與該額外電路一起充當該密鑰產生器而自該第三偽隨機值及該第四偽隨機值產生一第二密鑰值K";及使得該額外電路組合該第二密鑰值K"與(m1 K'+m2 K'2 +...+m l K' l ),藉此產生一訊息鑑認碼MAC:MAC=K"+m1 K'+m2 K'2 +...+m l K' l
  16. 如請求項12之方法,其中該第二操作模式額外地包含使得將一乘法之乘積儲存於該多用途邏輯電路之該移位暫存器中。
  17. 如請求項12之方法,其包含:操作一表示為K'暫存器之移位暫存器以接收及儲存由該求和電路供應之一或多個信號。
  18. 如請求項17之方法,其包含:將一值1之一雙基礎表示法載入至該LFSR電路之該移 位暫存器中;及使得將該K'暫存器之輸出信號供應至該多用途邏輯電路以在乘法期間用作一運算元。
  19. 如請求項12之方法,其包含:將一來自該多用途邏輯電路之該移位暫存器之值複製至該LFSR電路之該移位暫存器中。
  20. 如請求項12之方法,其包含:使得同時執行以下操作:該LFSR電路與該多用途邏輯電路之該反饋電路一起充當一產生一第一乘積之乘法器,且當產生該第一乘積時將該第一乘積儲存於該多用途邏輯電路之該移位暫存器中;且該LFSR電路與補充反饋電路一起充當一產生一第二乘積之乘法器,且當產生該第二乘積時將該第二乘積儲存於一補充移位暫存器中,其中:待經由該補充反饋電路反饋之信號為由該LFSR電路之該移位暫存器之一或多級供應的輸出信號;且該補充反饋電路根據一由該等控制信號中之一或多者指定之函數產生一反饋信號,且使該反饋信號可用於該補充移位暫存器之一輸入級。
  21. 如請求項20之方法,其包含:藉由依次組合由該求和電路供應之一或多個信號與由該補充移位暫存器供應之對應數目之信號而產生一總和。
  22. 如請求項21之方法,其包含:將該總和供應至該補充反饋電路;及操作該補充反饋電路以將加法器之輸出信號供應至該補充移位暫存器。
TW096143306A 2006-12-14 2007-11-15 用於產生一鑑定鑑認碼之裝置與方法 TWI439101B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/611,128 US8036380B2 (en) 2006-12-14 2006-12-14 Efficient data integrity protection

Publications (2)

Publication Number Publication Date
TW200833054A TW200833054A (en) 2008-08-01
TWI439101B true TWI439101B (zh) 2014-05-21

Family

ID=38229977

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096143306A TWI439101B (zh) 2006-12-14 2007-11-15 用於產生一鑑定鑑認碼之裝置與方法

Country Status (7)

Country Link
US (1) US8036380B2 (zh)
EP (1) EP2103033B1 (zh)
JP (1) JP5150642B2 (zh)
AT (1) ATE463899T1 (zh)
DE (1) DE602007005843D1 (zh)
TW (1) TWI439101B (zh)
WO (1) WO2008071703A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013126880A1 (en) * 2012-02-23 2013-08-29 Applied Communication Sciences Privacy-preserving publish-subscribe protocol in a cloud-assisted model
TWI517655B (zh) 2013-05-23 2016-01-11 晨星半導體股份有限公司 密碼裝置以及密鑰保護方法
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
US11171949B2 (en) * 2019-01-09 2021-11-09 EMC IP Holding Company LLC Generating authentication information utilizing linear feedback shift registers
KR20230173286A (ko) 2022-06-17 2023-12-27 삼성전자주식회사 Puf를 사용하여 인증 코드를 생성하는 반도체 메모리 장치 및 그것의 메시지 인증 코드 생성 방법

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5351301A (en) 1980-03-03 1994-09-27 The United States Of America As Represented By The Director Of National Security Agency Authenticator circuit
CH664056A5 (de) 1984-11-02 1988-01-29 Borer Communications Ag Verfahren und vorrichtung fuer die umwandlung einer digitalen datensequenz in die verschluesselte form.
US5051999A (en) * 1989-03-13 1991-09-24 Motorola, Inc. Programmable error correcting apparatus within a paging receiver
IL94449A (en) * 1990-05-20 1994-06-24 Fortress U & T 2000 Ltd Method and apparatus for exponentiation over gf(2")
TW266280B (zh) 1993-05-10 1995-12-21 Siemens Ag
US5345507A (en) 1993-09-08 1994-09-06 International Business Machines Corporation Secure message authentication for binary additive stream cipher systems
JPH09507110A (ja) * 1993-11-04 1997-07-15 シーラス ロジック, インコーポレイテッド 有限体反転
US5642367A (en) * 1994-02-07 1997-06-24 Mitsubishi Semiconductor America, Inc. Finite field polynomial processing module for error control coding
US5864491A (en) * 1997-11-10 1999-01-26 Telefonaktiebolaget L M Ericsson Apparatus and associated method for generating a pseudo random number
US6816968B1 (en) 1998-07-10 2004-11-09 Silverbrook Research Pty Ltd Consumable authentication protocol and system
US6463448B1 (en) 1999-09-30 2002-10-08 Agere Systems Guardian Corp. Linear intrasummed multiple-bit feedback shift register
IL132898A (en) * 1999-11-11 2009-09-01 Nds Ltd System for bitstream generation
US6804354B1 (en) 1999-12-02 2004-10-12 Honeywell International Inc. Cryptographic isolator using multiplication
JP3864675B2 (ja) 2000-03-09 2007-01-10 株式会社日立製作所 共通鍵暗号装置
US6963976B1 (en) * 2000-11-03 2005-11-08 International Business Machines Corporation Symmetric key authenticated encryption schemes
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
US7895253B2 (en) * 2001-11-30 2011-02-22 Analog Devices, Inc. Compound Galois field engine and Galois field divider and square root engine and method
US6895545B2 (en) * 2002-01-28 2005-05-17 Broadcom Corporation System and method for generating cyclic codes for error control in digital communications
US7003713B2 (en) 2002-05-16 2006-02-21 Broadcom Corporation Variable Hamming error correction for a one-time-programmable-ROM
ATE318034T1 (de) 2002-09-16 2006-03-15 Gesichertes herstellungsverfahren
DE10250831B3 (de) * 2002-10-31 2004-06-17 Infineon Technologies Ag Vorrichtung und Verfahren zum Erzeugen einer pseudozufälligen Folge von Zahlen
KR100478974B1 (ko) 2002-12-03 2005-03-25 한국전자통신연구원 직렬 유한체 승산기
US7296213B2 (en) * 2002-12-11 2007-11-13 Nvidia Corporation Error correction cache for flash memory
TW200629192A (en) * 2005-02-03 2006-08-16 Sanyo Electric Co Random number generating circuit
JP2008532410A (ja) * 2005-03-01 2008-08-14 エヌエックスピー ビー ヴィ メッセージ認証コードを発生する発生器、発生方法、プログラム要素、及びコンピュータ読取可能媒体
KR100800800B1 (ko) * 2005-08-30 2008-02-04 삼성전자주식회사 선형궤환시프트레지스터를 이용한 부호 생성 방법 및 장치

Also Published As

Publication number Publication date
DE602007005843D1 (de) 2010-05-20
JP5150642B2 (ja) 2013-02-20
EP2103033B1 (en) 2010-04-07
US8036380B2 (en) 2011-10-11
US20080144819A1 (en) 2008-06-19
TW200833054A (en) 2008-08-01
EP2103033A2 (en) 2009-09-23
WO2008071703A3 (en) 2008-09-18
ATE463899T1 (de) 2010-04-15
WO2008071703A2 (en) 2008-06-19
JP2010513941A (ja) 2010-04-30

Similar Documents

Publication Publication Date Title
CN104252881B (zh) 半导体集成电路及系统
EP2526505B1 (en) Device and method for obtaining a cryptographic key
US8135766B2 (en) Method, apparatus and system for resistance to side channel attacks on random number generators
US9158896B2 (en) Method and system for generating a secure key
WO2019121780A1 (en) System and method for boolean masked arithmetic addition
US8144865B2 (en) Protection of the execution of a DES algorithm
JP2010527219A (ja) 物理的に複製不可能な機能を用いて電子機器のセキュリティを電子的に確保する方法およびシステム
WO2002051126A2 (en) Method and system for trusted digital camera
US20070214370A1 (en) Portable terminal
KR20070057968A (ko) 랜덤 함수를 이용한 비밀 공유
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
WO2016200474A1 (en) Techniques for integrated circuit data path confidentiality and extensions thereof
TWI439101B (zh) 用於產生一鑑定鑑認碼之裝置與方法
EP3559799A1 (en) A calculation device for encoded addition
Roy et al. Combining puf with rluts: a two-party pay-per-device ip licensing scheme on fpgas
EP3667505A1 (en) Memory system with an incremental hashing operation and method
JP2004109420A (ja) 乱数生成装置及び乱数生成方法
US7113593B2 (en) Recursive cryptoaccelerator and recursive VHDL design of logic circuits
JP2005045760A (ja) 暗号処理方法及び装置
CN101465726B (zh) 用于秘钥的反破解方法及执行此方法的控制器与储存装置
Chhabra et al. Hardware Obfuscation of AES IP Core Using PUFs and PRNG: A Secure Cryptographic Key Generation Solution for Internet-of-Things Applications
CA2391997C (en) Methods and apparatus for keystream generation
US7860251B1 (en) Encryption-decryption circuit and method of operation
US20060093141A1 (en) Digital encrypted time capsule
JP2005348453A (ja) 携帯カードの保護方法

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees