TWI774807B - 用於自位元混合器建構安全雜湊函數之系統和方法 - Google Patents
用於自位元混合器建構安全雜湊函數之系統和方法 Download PDFInfo
- Publication number
- TWI774807B TWI774807B TW107125225A TW107125225A TWI774807B TW I774807 B TWI774807 B TW I774807B TW 107125225 A TW107125225 A TW 107125225A TW 107125225 A TW107125225 A TW 107125225A TW I774807 B TWI774807 B TW I774807B
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- bit
- block
- subsequent
- blocks
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 cryptographic hash functions
- H04L9/3242—Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明提供一種用於使用位元混合器產生訊息鑑別標籤之方法及系統及一種用於使用位元混合器產生雜湊值之方法及系統。該等方法包括藉由以下操作產生一訊息鑑別或雜湊值:獲得一訊息;藉由一電子處理器將該訊息分段、填補成許多相等大小的包含一第一訊息區塊、一或多個後續訊息區塊及一最終訊息區塊的訊息區塊;藉由該電子處理器而使用一初始化值對該第一訊息區塊執行一第一位元混合操作;藉由該電子處理器而使用一先前訊息區塊對該一或多個後續訊息區塊及該最終訊息區塊執行後續位元混合操作;及藉由該電子處理器使用一秘密金鑰元素以基於該第一位元混合操作及該等後續位元混合操作而產生該訊息鑑別標籤。
Description
本發明大體而言係關於資訊保證及安全性。
在資訊保證中,雜湊函數及訊息鑑別碼(message authentication code;MAC)可用以驗證出一些資料提供訊息摘錄,但對手無法重建構訊息(或產生相同訊息摘錄或MAC值之等效替代方案)。在一些應用操作下,速度及功率消耗係關鍵的,但放寬安全要求。其他者需要高安全性、長摘錄。雜湊函數及MAC允許吾人驗證出一些輸入資料映射至給定訊息摘錄,而不允許對手藉由僅知曉摘錄而重建構訊息(或等效替代訊息)。存在包括商用及軍用航空、資料中心、個人電腦之應用需要具有適當選擇之訊息摘錄大小的高安全等級;或放寬安全要求,但運行時間及功率使用係關鍵的。對於此等應用,需要低功率的極快雜湊及MAC函數,但常常額外需要對側頻道攻擊有高抵抗性。
當前使用之雜湊及MAC函數伴隨嚴格輸入及輸出緩衝大小而為不靈活的,其極慢,消耗大量功率/能量且其自身易受側頻道攻擊損壞。所得安全等級固定至幾個預設等級,儘管商用及軍用航空中之許多應用需要比現有解決方案更高等級的安全性或更好的效能。
需要克服上述缺陷之雜湊及MAC函數。
根據本發明之實例,提供一種用於產生一訊息鑑別標籤之電腦實施方法。該方法包含:獲得一訊息;藉由一電子處理器將該訊息分段成許多相等大小的包含一第一訊息區塊、一或多個後續訊息區塊及一最終訊息區塊的訊息區塊;視情況在必要時填補該最後訊息區塊以使該等區塊具有相等大小;藉由該電子處理器而使用一初始化值對該第一訊息區塊執行一第一位元混合操作;藉由該電子處理器而使用一先前訊息區塊對該一或多個後續訊息區塊及該最終訊息區塊執行後續位元混合操作;及藉由該電子處理器以基於該第一位元混合操作及該等後續位元混合操作而產生該訊息鑑別標籤。
根據本發明之實例,提供一種用於產生用於一訊息之一雜湊值之電腦實施方法。該方法包含:獲得該訊息;藉由一電子處理器將該訊息分段成許多相等大小的包含一第一訊息區塊、一或多個後續訊息區塊及一最終訊息區塊的訊息區塊;視情況在必要時填補該最後訊息區塊以使該等區塊具有相等大小;藉由該電子處理器而使用一初始化值對該第一訊息區塊執行一第一位元混合操作;藉由該電子處理器而使用一先前訊息區塊對該一或多個後續訊息區塊及該最終訊息區塊執行後續位元混合操作;及藉由該電子處理器以基於該第一位元混合操作及該等後續位元混合操作而判定該雜湊值。
根據本發明之實例,提供一種電腦系統,其包含:一處理器;一非暫時性電腦可讀取媒體,其儲存在由該處理器執行時執行用於產生一訊息鑑別標籤之一方法的指令,該方法包含:獲得一訊息;藉由一電子處理器將該訊息分段成許多相等大小的包含一第一訊息區塊、一或多個後續訊息區塊及一最終訊息區塊的訊息區塊;視情況必要時填補該最後訊息區塊,以使該等區塊具有相等大小;藉由該電子處理器而使用一初始化值對該第一訊息區塊執行一第一位元混合操作;藉由該電子處理器而使用一先前訊息區塊對該一或多個後
續訊息區塊及該最終訊息區塊執行後續位元混合操作;及藉由該電子處理器以基於該第一位元混合操作及該等後續位元混合操作產生該訊息鑑別標籤。
根據本發明之實例,提供一種電腦系統,其包含:一處理器;一非暫時性電腦可讀取媒體,其儲存在由該處理器執行時執行用於產生一訊息鑑別標籤之一方法的指令,該方法包含:獲得一訊息;藉由一電子處理器將該訊息分段成許多相等大小的包含一第一訊息區塊、一或多個後續訊息區塊及一最終訊息區塊的訊息區塊;視情況必要時填補該最後訊息區塊,以使該等區塊具有相等大小;藉由該電子處理器而使用一初始化值對該第一訊息區塊執行一第一位元混合操作;藉由該電子處理器而使用經處理的先前訊息區塊對該一或多個後續訊息區塊及該最終訊息區塊執行後續位元混合操作;藉由該電子處理器以基於該第一位元混合操作及該等後續位元混合操作產生雜湊值。
100:位元混合器之方塊圖
105:位元混合器
110:n位元輸入
115:金鑰元素
120:m位元輸出
200:聚集位元混合器之方塊圖
205:位元混合器Mix 1
210:位元混合器Mix 2
215:位元混合器Mix 3
220:位元混合器Mix k
225:n位元輸入
230:組合
235:輸出
300:類伽羅華MAC(GMAC)構造
302:計數器0
304:計數器1
306:計數器2
308:加密/密碼E k
310:加密
312:加密
314:明文1
316:明文2
318:密文1
320:密文2
322:鑑別資料
324:位元混合器
326:輸入
328:位元混合器
330:輸出
332:位元混合器
334:位元混合器
336:鑑別標籤
340:雜湊/訊息鑑別碼(MAC)函數
400:類默克爾-達加德構造
402:安全壓縮函數f
404:安全壓縮函數f
406:安全壓縮函數f
408:安全壓縮函數f
410:訊息區塊1
412:訊息區塊2
414:訊息區塊n
416:長度填補
418:初始化向量(IV)
420:最終化
422:雜湊
500:半長度鍵控雙混合費斯妥網路(DMFN)
600:半長度鍵控雙混合費斯妥網路(DMFN)
700:取代置換網路
800:互斥或(XOR)樹
900:系統
902:發送器
904:訊息
906:訊息鑑別碼(MAC)演算法
908:訊息鑑別碼(MAC)資料標籤
910:接收器
912:第二訊息鑑別碼(MAC)資料標籤
1200:電腦裝置
1202:處理器
1204:記憶體裝置
1206:周邊介面
1208:網路介面
1210:儲存裝置
1212:軟體程式
1216:網路
F:回合函數/第一函數
G:第二函數
hi:回合金鑰
ki:回合金鑰/半長度子金鑰
L i+1 :經更新左半部
R i+1 :經更新右半部
可更全面瞭解具體實例之各種特徵,此係因為當結合附圖考慮時參考具體實例之以下詳細描述而變得更好理解,在該等附圖中:圖1展示根據本發明之實例的位元混合器之方塊圖100;圖2展示根據本發明之實例的聚合位元混合器之方塊圖200;圖3展示根據本發明之實例的根據類伽羅華MAC(Galois MAC;GMAC)構造300之雜湊/MAC函數;圖4展示根據本發明之實例的根據類默克爾-達加德(Merkle-Damgard)構造400之雜湊/MAC函數;圖5示出根據本發明之實例實施的可用作圖3及圖4之位元混合器的雙混合費斯妥網路(double-mix Feistel network;DMFN)500之一個回合;圖6示出根據此等其他實例實施的可用作圖3及圖4之位元混合器的DMFN
600之一個回合;圖7示出根據本發明之實例實施的可用作圖3及圖4之位元混合器之取代置換網路700的三個回合;圖8示出根據各種實例實施的可用作圖3及圖4之位元混合器的XOR樹800;圖9示出根據本發明之實例的可使用圖3及圖4之構造的用於訊息鑑別之系統900;圖10示出根據本發明之實例的用於產生訊息鑑別標籤之方法1000;圖11示出根據本發明之實例的用於產生雜湊值之方法1100;及圖12示出可用以執行以上所描述之處理序中之一或多者的可用作行動裝置或伺服器之電腦裝置1200之硬體組態的實例。
現在將詳細參考附圖中所示出之實例實施。在任何可能之處,將貫穿圖式使用相同參考編號來指代相同或相似部件。在以下描述中,參考形成其部分之附圖,且在該等圖式中藉助於說明展示可供實踐本發明之特定例示性具體實例。足夠詳細地描述此等具體實例以使得熟習此項技術者能夠實踐本發明,且應理解,可利用其他具體實例,且可在不偏離本發明之範圍的情況下做出改變。因此,以下描述僅僅係例示性的。
本文中揭示雜湊/MAC函數構造,其比其標準密碼編譯等效者更安全及/或快若干數量級。該等雜湊/MAC函數構造在其實施於電子硬體中時消耗較小功率。此等構造係基於函數、位元混合器之複合構造,即使其使用大量金鑰元素仍為極快的。若金鑰元素保持為秘密的,則吾人獲得提供可選擇的安全等級之MAC構造。若金鑰元素固定(經硬寫碼)且使其為公用的,則所揭示構造提供靈活的雜湊函數。將其用於通信及計算系統中具有低成本,其中電路
大小具有不顯著的增加且其減小功率使用。所部署系統可以改良之速度及以可能較高安全性來使用較慢之電子組件,從而進一步降低成本、計算系統之能耗及功耗。受影響系統包括科學及工程計算,而且包括飛行電腦、軍用及太空計劃、公司網路、個人及膝上型電腦、智慧型行動裝置、甚至安全通信網路之安全子系統。
雜湊函數將具有任意大小之資料映射至具有固定大小之資料。由雜湊函數傳回之值被稱為雜湊值、訊息摘錄、資料指紋或僅稱為雜湊。雜湊函數之所要屬性包括:確定性、均一性、非線性,其被包括於位元混合器之屬性中。雜湊函數之一種用途為在被稱為雜湊表之資料結構處,其廣泛用於電腦軟體中以供快速資料查找。雜湊函數藉由在大檔案中偵測備份記錄而使表或資料庫查找加速。若雜湊函數取決於秘密金鑰,則吾人可具有訊息鑑別碼產生器:MAC產生器。
雜湊函數亦用於密碼術中。密碼編譯雜湊函數允許吾人容易地驗證出一些輸入資料映射至給定雜湊值,但若輸入資料係未知的,則藉由僅知曉雜湊值而故意使得予以重建構(或等效替代者)有其困難度。此屬性係用於確保在存在主動對手的情況下傳輸資料之完整性,且為用於提供訊息鑑別標籤之MAC之構建塊。此類雜湊函數之額外所要屬性為:抗預影像、抗第二預影像及抗碰撞。常常需要具有任意摘錄大小之構造,以提供確切所要的安全強度。
即使在資訊安全領域,亦存在如下應用:其中在對手既不可存取雜湊函數之輸入,亦不可存取雜湊函數之輸出時,可放寬對雜湊/MAC函數之要求。在隨機數產生器處的狀況可能是當大但固定數目個不完美的熵源提供雜湊函數之輸入的時候,其中將其「混合」在一起且減小其聚合大小以擬合至固定緩衝區。原始熵必須儘可能地被保留。(對熵位元進行XOR係浪費的,此係因為其減少至單個位元之輸出,且其亦為不完美的。舉例而言,當使熵源相
關時,其效應可藉由XOR函數而相消,且丟失對應熵。XOR為互斥或(XOR),其亦被稱作析取(exclusive disjunction)或邏輯XOR運算。
亦存在輸入為大的,但具有固定大小之其他應用。輸入必須被減小至較小大小,同時儘可能多地保持來自輸入的熵。舉例而言,在不平衡的費斯妥密碼處,用於大區塊加密(Skipjack、XCB...)中。在此等狀況下,大的位元混合器函數可直接構建於電子硬體中。僅自輸出保持所要位元數,或藉由逐位元XOR運算將輸出位元摺疊至所要長度。
其他應用包括比如檔案之大資料集之總和檢查碼型指紋。循環冗餘檢查(CRC)演算法常用以偵測資料中之隨機誤差。然而,CRC演算法過於簡單,例如某些(常常隨機出現)多個誤差之效應可相消,因此需要較複雜的資料完整性檢查。
若資料中之惡意的有意改變並非關注點,僅具有隨機誤差,則吾人可藉由使用密碼編譯雜湊函數之方案以自位元混合器構建完整性檢查雜湊函數。若位元混合器經實施於電子硬體中,則所得雜湊/MAC函數比當前標準密碼編譯雜湊函數快3個數量級,但在最簡單構造(使用簡單位元混合器)下,其較不安全,因此其不能在每一應用中替換密碼編譯雜湊函數。
下文所論述之位元混合器可為級聯的(一位元混合器之輸出為下一位元混合器之輸入)。在足夠許多階段,級聯的位元混合器變成安全密碼。此屬性允許以速度交換安全性。當位元混合器經實施於硬體中時,在所有安全等級下,所得效能(速度、功率)仍比現有解決方案好至少一數量級。位元混合器使用大量金鑰元素,其經劃分成最常見位元混合器構造之輸入及輸出中之大小較大者之塊(chunk)。其被稱為「子金鑰」。若金鑰元素保持為秘密的,則下文之構造提供MAC函數(僅知曉金鑰元素可供任何人建構或驗證訊息鑑別碼)。若金鑰元素固定(經硬寫碼)且使其為公用的,則下文之構造提
供雜湊函數。
圖1展示根據本發明之實例的位元混合器之方塊圖100。位元混合器105進行操作以將與n位元輸入110之位元相關聯的位元串與金鑰元素115混合以產生m位元輸出120。通常,位元混合器(例如位元混合器105)具有以下屬性:
1.位元混合器將n位元輸入映射至n位元輸出(n=區塊大小,針對實務實施可數以千計)
2.混合係取決於大量秘密金鑰元素(其可自單一金鑰產生或由真亂數產生器產生;可能為此等情況之組合)
3.每一輸入位元以非線性方式影響每一輸出位元
4.輸入位元之大多數非空集合(其係獨立地選自金鑰元素)亦影響每一輸出位元(效應未相消)
5.輸入之大多數一連串改變產生輸出,而與輸入或輸入之改變模式無顯而易見的相關性
實務上,對應位元混合器需要指定其設計:輸入、輸出及金鑰元素。此被稱作「構造」。可並聯地(相對於級聯地)組合多個位元混合器以改良輸入串之混合。圖2展示根據本發明之實例的聚合位元混合器之方塊圖200。位元混合器Mix 1 205、Mix 2 210、Mix 3 215,...,Mix k 220接收同一n位元輸入225且其輸出可經組合(230)且作為m位元輸出(例如具有逐位元XOR運算)而輸出(235)。此構造允許以電路大小交換安全性。位元混合器亦可為級聯的(串聯地連接,可能再使用現有電子電路),其中一位元混合器之輸出為下一位元混合器之輸入。在足夠許多階段,位元混合器變成安全密碼。此屬性允許以速度交換安全性。當位元混合器經實施於硬體中時,在所有安全等級下,所得效能(速度、功率)仍比現有解決方案好至少一數量級。
下文詳細地論述之圖5至圖8展示可用作圖3及圖4之位元混合器的位元混合器之特定實例,圖3展示類伽羅華訊息鑑別碼(GMAC)構造且圖4展示類默克爾-達加德構造,該兩個構造依序處理資料區塊。
圖3展示根據本發明之實例的根據如推導自GCM加密模式之類GMAC構造300的雜湊/MAC函數。在計數器模式加密操作中,在308、310、312處分別使用區塊密碼及金鑰k(諸如AES)將遞增計數器(計數器0 302、計數器1 304、計數器2 306)加密。可將各別計數器302、304、306與初始化向量(IV)組合(例如與初始化向量(IV)序連(concatenating))以提供額外隨機性。將明文劃分成相等大小之區塊明文1 314及明文2 316且分別藉由經加密計數器310、312而互斥或,以分別產生密文1 318及密文2 320。雜湊/MAC函數340包括鑑別資料322(Auth Data 1)(輸入x,輸入y=0),該鑑別資料經輸入於位元混合器324中,該位元混合器輸出且作為輸入326(輸入x)而連同密文1 318(輸入y)提供至位元混合器328。密文2 320(輸入y)及位元混合器328之輸出330(輸入x)經提供至位元混合器332。位元混合器334接收位元混合器332之輸出及資料A(其為僅經鑑別(未經加密)之資料)之長度及密文C之長度的序連值(由len(A)∥len(C)表示)。位元混合器334之輸出係運用經加密計數器0 302以藉由密碼E k 308進行互斥或而產生鑑別標籤336。
鑑別標籤336係藉由將資料區塊饋入GHASH函數中且將結果加密予以建構。此GHASH函數係藉由以下方程式定義GHASH(H,A,C)=X m+n+1
其中H為雜湊金鑰,使用區塊密碼(AES)加密的一串128個零位元,A為僅經鑑別(未經加密)之資料,C為密文,m為A中之128位元區塊之數目,n為C中之128位元區塊之數目(A及C之最終區塊無需確切為128位元),且針對i=0,...,m+n+1,變數X i 被定義為
其中M為與金鑰元素之簡單或聚合位元混合器H:f(x,y)=M H (x∥y),v為A之最終區塊之位元長度,u為C之最終區塊之位元長度,∥表示位元串序連,且len(A)及len(C)分別為A及C之位元長度之64位元表示。應注意,此為反覆演算法:每一X i 取決於X i-1且僅保留最終X i 作為輸出。
圖4展示根據本發明之實例的根據類默克爾-達加德構造400之雜湊/MAC函數。類默克爾-達加德構造400使用安全壓縮函數f 402、404、406、408,其中輸入大於其輸出。儘管不同地編號,但每一函數f 402、404、406、408屬於相同的類型。在一些實例中,函數f 402、404、406、408可藉由可逆位元混合器予以實施,其中其輸出位元的一半被捨棄(或藉由逐位元XOR運算而摺疊至另一半)。在一些實例中,位元混合器之第一子金鑰(例如f 402)可被視為輸入,其使得位元混合器為壓縮函數,而不修改其輸出。將明文劃分成數目為n的相等大小之區塊:訊息區塊1 410、訊息區塊2 412,...,訊息區塊n 414。可視需要將額外填補位元(長度填補416)添加至最後區塊,例如訊息區塊n 414。第一函數(例如f 402)接收初始化向量(IV)418及訊息區塊1 410作為輸入。最終函數(例如f 408)產生輸出(最終化420),接著藉由雜湊函數對該輸出進行雜湊以產生雜湊422。
函數f 402、404、406、408具有具固定大小(位元長度)的2個輸入x及y且計算輸出z。IV為固定常數或某個人化值,其視某些應用需要而改變
最終雜湊值。形式上,z 1=f(IV,B1)且z i+1 =f(z i ,Bi+1),其中i=1...n。雜湊值為F(z i+1),其中給定最終化函數為F。
GHASH函數為默克爾-達加德構造之具現化,其具有一些修改。訊息被分成兩個部分:A及C。明確定義填補方案,其中IV=0且f(x,y)=f H (xy)=(x ⊕ y)H,其中額外輸入(常數H)被稱為「雜湊金鑰」。最終化函數亦具有額外輸入(E K ):F(x)=x ⊕ E K.。
圖5示出根據本發明之實例實施的可用作圖3及圖4之位元混合器之半長度鍵控雙混合費斯妥網路(DMFN)500之一個回合。在DMFN中,藉由視壓縮或擴展位元混合器之需要重複輸入位元或摺疊輸出位元,區塊大小可為輸入大小及輸出大小中之一較大者。具體而言,資料被處置於兩個半部L及R中。在每一回合Round i 中,兩個函數F及G自L t 及R i 計算L i+1 、R i+1 。將第一輸入L 0 及R 0 設定為位元混合器之輸入,而最後值L r 、R r 構成輸出。雖然L i+1 係使用輸出F及R i 之逐位元XOR運算產生,但回合金鑰k i 使用逐位元XOR運算與輸出G混合以產生R i+1 如下。對於DMFN,可針對每一回合i=0,1,...,r-1計算經更新左半部(L i+1 )及經更新右半部(R i+1 ):L i+1=F(L i )⊕ R i
R i+1=G(L i )⊕ k i
在前述內容中,第一輸入L 0 及R 0 被設定為位元混合器之輸入,而最後值L r 、R r 構成輸出,F及G表示第一及第二回合函數,且k i 表示回合金鑰。回合r-1處的輸出可為經更新之資料區塊(L r ,R r )。
在實例實施之費斯妥網路及/或DMFN之狀況下,回合函數(F)可為非線性函數。函數可能為或可能不為可逆的,但在第一函數可逆的情況下應(但無需)很難計算逆(單向函數)。方案之安全性可依賴於回合金鑰k i 之秘密度,且依賴於對F之要求,該F係非線性的,且無逆元素或具有難以計算之逆元素。在一些實例中,該函數可取決於回合(例如,F i ),但在其他
實例中,第一函數可獨立於回合。
合適的回合函數(F)之一項實例包括:複數個邏輯NAND運算,其中每一者針對輸入左半部之各別對經移位版本;及一邏輯XOR,其針對NAND運算之各別輸出。在三個NAND運算之內容背景中,第一函數可包括以下各者:用於第一對L i 經移位版本之第一NAND運算;用於第二對L i 經移位版本之第二NAND運算;用於第三對L i 經移位版本之第三NAND運算;及用於第一、第二及第三NAND運算之各別輸出的XOR運算。在硬體實施中,此等移位或旋轉可並不消耗時間,此係因為其可僅藉由佈線實施。因此,第一函數可僅需要兩個XOR閘延遲之時間加兩個輸入NAND閘之延遲(但AND或NOR閘同樣良好地起作用),此在使用最佳化小區程式庫的情況下,可時間上等效於四個NAND2閘延遲。如本文中所使用,NOR閘為實施非或(Not-OR)、負或(Negative-OR)、或者是否定或(Nagated-OR)邏輯函數的一個閘。
在DMFN之狀況下,第二回合函數(G)可為可逆的,但其逆元素無需可易於計算。與第一函數(F)相似,在一些實例中第二函數可取決於回合(例如Gi),但在其他實例中,第二函數可獨立於回合(在每一回合中相同)。
在一些實例中,一層非線性取代框(s框)可用於第二函數(G),該函數可使得其映射為非線性的。在其他實例中,第二函數可執行左半部之循環移位或旋轉,其可接著與回合金鑰一起混合以計算經更新右半部。在更特定實例中,第二函數可產生左半部之三個經循環移位版本,且其在相同位置處的每三個位元可與此位置中之回合金鑰的位元一起經XOR以產生所得經更新右半部之位元。就此而言,可展示的是在區塊長度=2 n 處(其中n為正整數),將資料之任何三個經循環移位版本進行XOR以定義一可逆函數。與第一函數相似,在硬體實施中,此等移位或旋轉並未消耗時間,此係因為其可僅藉
由適當佈線實施。因此,第二函數及混合運算可僅需要兩個XOR閘延遲之時間,其中每一者具有最佳化小區程式庫,可在時間上等效於1.5至3個NAND2(2-輸入NAND)閘延遲。
若需要可逆位元混合器,則G(或每一G i )必須為可逆函數。G之逆元素無需易於計算,除非亦需要位元混合器之逆元素。因而,其可比典型的非線性可逆S框層更快。此函數G之實例將使用相隔給定循環距離(d 1 ,d 2 )的兩個輸入位元以對G之每一輸入位元進行XOR。在二次冪區塊長度下,當輸出位元計算為相隔給定循環距離的3個輸入位元的XOR時,獲得可逆函數。對於硬體實施,若d 1 及d 2 不大,從而所需佈線不會過長,則計算函數G及XOR回合金鑰佔用最少時間。
若需要非線性位元混合器,則F必須為非線性函數。F並非必須為可逆的,此係因為在反向方向上,即使對於位元混合器之逆元素,亦不需要其逆元素。在一項實例實施中,使用快速的足夠複雜的構造,其在二進位多項式之伽羅華欄位中係非線性的,如下:
1.NAND相隔循環距離d 3 及d 4 的兩個L i 經移位版本
2.NOR循環距離d 5 及d 6 處的兩個其他Li經移位版本
3.NAND循環距離d 7 及d 8 處的兩個另外其他L i 經移位版本
4.XOR上文三個位元區塊至L i
在硬體實施中,移位基本上消耗極少時間。因而,F及G之路徑長度幾乎相等,僅需要適度手動工作量來平衡關鍵時序路徑,以用於減少側頻道洩漏。F及G可能在某些回合中(若並非所有回合)不同,或吾人可在吾人之實施中使其在所有回合中相同。
應注意在具有可逆函數G時,DMFN係可逆的:在知曉回合金鑰k i 及G之逆元素的情況下,L i 可自下而上計算,亦即,L i 可自R i+1 計算。在具有
L i 時,可計算F(L i ),其經XOR至L i+1 ,從而得到R i 。可逆性常常為有用的屬性。其確保所有可能輸出值均出現,且不會有兩個不同輸入值給出相同輸出。
如先前所描述且展示於圖5,半長度子金鑰k i 在每一回合中與G混合。吾人發現,例如在另一半長度子金鑰與R i 混合的情況下,如圖6所示,運用具有完全區塊長度之子金鑰沒有明顯混合改良。儘管如此,構造係不同的,且適合於不同應用。
現在參看圖6,其示出根據此等其他實例實施的可用作圖3及圖4之位元混合器的DMFN 600之一個回合。在DMFN中,藉由應用回合金鑰k i 以變更R i+1 而非L i+1 ,計算兩個半部之工作可經平衡。亦即,兩個半部可變得同時可用。但R i 可在應用第一函數(F)的同時未經使用。因此,如圖6中所展示,R i 可在並未擾亂平衡的情況下與另一回合金鑰h i 混合。且R i+1 及L i+1 兩者可受金鑰元素影響。圖6中所展示之DMFN可在針對第一函數(F)及第二函數(G)選擇具有相似複雜度之函數時達成較好總體混合屬性。在又其他實例中,諸如在第二函數比第一函數計算更慢的情況下,可省略混合k i ,此可產生在混合屬性方面相似於圖5中所展示之DMFN但稍微更快的方案。對於DMFN,可針對每一回合I=0,1,...,r-1計算經更新左半部(L i+1 )及經更新右半部(R i+1 ):L i+1=F(L i )⊕ R i ⊕ h i
R i+1=G(L i )⊕ k i
在前述內容中,第一輸入L 0 及R 0 被設定為位元混合器之輸入,而最後值L r 、R r 構成輸出,F及G表示第一及第二回合函數,且k i 及h i 表示回合金鑰。回合r-1處的輸出可為位元混合器之輸出,經更新資料區塊(L r ,R r )。
亦可使用基於熟知取代置換(substitution-permutation)網路的位元混合器之可逆版本。與費斯妥網路及DMFN相似,實例實施之取代置換網路可按反覆(或回合)加以執行。舉例而言,對於回合(i),輸入資料區塊(D i )可與回合金鑰(k i )混合(例如,經XOR),且結果可經由包括複數個S框(S i )之子
站層(substation layer)及包括置換(P i )之線性變換層混合,以產生經更新資料區塊(D i+1 )。在另一實例中,輸入資料區塊可首先經由取代及線性變換層混合,以產生經更新資料區塊,其可接著與回合金鑰(k i )混合。在任一實例中,S框及置換之任一者或兩者可取決於或獨立於回合。且在一些實例中,用於回合中之至少一者的S框中之至少兩個可為不同的。在一項實例實施中,初始資料區塊(D 0 )可僅為較大資料區塊之子集,該較大資料區塊亦包括至少另一子集(B 0 )。回合金鑰(k i )可與另一子集(B 0 )混合(例如,經XOR),以產生經混合回合金鑰,且其可與用於該回合的輸入資料區塊(D i )混合。或在另一實例中,回合金鑰可與另一子集混合,且所得經混合回合金鑰可在取代及線性變換層之後與經更新資料區塊(D i+1 )混合。
圖7示出根據本發明之實例實施的可用作圖3及圖4之位元混合器之取代置換網路700的三個回合。可使用基於熟知取代置換網路的位元混合器之可逆版本。對於壓縮或擴展變體,區塊大小經選擇為所要輸入及輸出區塊大小中之較大者。若輸入大小較小,則未使用的輸入位元可保持恆定,或重複使用輸入位元,直至其匹配輸出大小。若所需的輸出大小較小,則吾人可經由XOR或其他適當函數而捨棄輸出位元或摺疊某些位元,以產生最終輸出。通常根據圖7構建取代置換(SP)網路,其具有以下3個步驟之若干反覆:
1.藉由一連串非線性函數,S框變換輸入
2.繞行/置換結果之位元
3.運用回合金鑰/子金鑰來XOR經置換資料
應注意:常常簡化第一及最後回合,省略一或兩個步驟
若S框係可逆的,則SP網路係可逆的。若S框係非線性的,則SP網路係非線性的。SP網路可為任意寬度,其中充分混合所需的回合數目取決於其寬度。在硬體實施中,小的S框傾向於產生更快位元混合器。最小實務S框
(具有3個輸入位元及3個輸出位元的S框)係以列印密碼來實施,如Lars Knudsen、Gregor Leander、Axel Poschmann、Matthew J.B.Robshaw.之PRINTcipher:用於IC列印之區塊密碼(A Block Cipher for IC-Printing)(密碼編譯硬體及嵌入式系統,電腦科學系列講座筆記的CHES 2010第6225卷,第16至32頁)所描述。此3×3 S框之三個輸出位元定義如下:
F0=A B' C'+A'(C+B)
F1=A' B C+B'(C'+A)
F2=A B C'+C(B'+A')
圖8示出根據各種實例實施的可用作圖3及圖4之位元混合器的XOR樹800。根據使用XOR樹之實例,混合函數可基於秘密隨機固定資料集,金鑰元素及輸入資料區塊。就此而言,子金鑰可為區塊序列中在對應於輸入資料區塊中之某些位元之位置的位置處之秘密隨機數之區塊,該等位元諸如選擇對應子金鑰(使用例如多工器電路)的彼等位元。子金鑰可接著使用XOR樹而混合在一起。
如圖8中所展示,XOR樹800可包括可經實施以進行資料合併操作之複數個XOR邏輯閘。在圖8中,邏輯閘中之每一者表示一連串閘,每一個閘皆用於其所操作之子金鑰之每一位元。
在基於XOR樹之位元混合器中,輸入被分割成多個具有任意長度的非空連續位元集合,從而形成位元群組。來自每一群組之位元使用多工器自金鑰元素選擇子金鑰,其輸出一起進行逐位元XOR以產生最終位元混合器輸出。雖然XOR運算典型地使用ASIC中的具有2輸入XOR閘之樹實施,但可取決於例如提供寬查找表的FPGA中之目標技術使用多輸入閘或同位產生電路。此構造之位元混合器不僅實施起來簡單,而且提供高效能、低功率消耗、經改良安全性及最小側頻道攻擊表面。
由於基於XOR樹的位元混合器之輸入寬度及輸出寬度可獨立地
選擇,故分別藉由選擇較長輸出寬度或較長輸入寬度以產生擴展及壓縮函數。在具有隨機金鑰元素的情況下,任何單個輸入位元改變將會導致輸出藉由隨機子金鑰而改變。因而,每一輸出位元受任何輸入位元改變所影響。另外,在給出位元混合器構造的情況下,多個輸入位元改變將會導致輸出藉由本身隨機的隨機子金鑰之經XOR聚合而改變。總計,基於XOR樹之位元混合器滿足上文所論述之所要屬性中之每一者,且確保理論上完美之混合。
XOR樹構造在二進位伽羅華欄位中係線性的,此係因為其僅使用位元選擇及XOR運算。在此等構造中,一些4向相關性存在於僅自相關輸入值計算出的某些輸出值中。在此情況下,相關性產生如下。在假定存在至少2個輸入位元群組的情況下,自輸入位元群組B中之一者選擇位元b,且自不同輸入位元群組C選擇位元c。將群組B中的b除外的所有位元保持為恆定,假設K0表示在b為邏輯0時所選擇的子金鑰,且K1表示b為邏輯1時選擇的子金鑰。相似地,假設L0及L1表示基於c之邏輯值所選擇的子金鑰,同時群組C之其他位元保持恆定。最終,假設M表示藉由其他輸入位元群組選擇的所有子金鑰之XOR,其中,其輸入保持為恆定(0,若不再存在位元群組)。自b及c之所有可能2×2值產生的輸出值之XOR會產生0,吾人稱其為「4向相關性」。
(M ⊕ K0 ⊕ L0)⊕(M ⊕ K1 ⊕ L0)⊕(M ⊕ K0 ⊕ L1)⊕(M ⊕ K1 ⊕ L1)=0
在無法觀測到輸出值的應用中,此類型之相關性不會對電路之安全性造成問題。對於此相關性為關注點的應用,輸出可藉由諸如以下各者之非線性函數進行進一步處理:平行集合小非線性函數,諸如S框;非線性函數之集合之輸出,諸如使用原始輸出進行XOR之S框;旋轉-加法-XOR(RAX)構造(適合於微處理器實施)。使該構造非線性的另一方式為運用相似於圖7中所展示之S框的k至1非線性S框來替換XOR樹之一或多個層級中的XOR操作。雖然實施起來簡單,但額外不均勻電路延遲可能需要手動信號傳播,從而平衡
低側頻道洩漏。以適度工作量,用S框替換XOR樹之一個層級達成在上達1.0GHz之時脈速率下的單一時脈循環操作。
圖9示出根據本發明之實例的可使用圖3及圖4之構造的用於訊息鑑別之系統900。訊息904之發送器902經由MAC演算法906(例如圖3之類GMAC構造或圖4之類默克爾-達加德構造)運用被併入第一及最後訊息區塊中的秘密金鑰加以執行,以產生MAC資料標籤908。訊息904及MAC標籤908接著經發送至接收器910。接收器910繼而經由相同MAC演算法906使用相同金鑰來執行傳輸之訊息部分,從而產生第二MAC資料標籤912。接收器910接著將在傳輸中所接收到之第一MAC標籤908與所產生之第二MAC標籤912進行比較。若兩者相同,則接收器910可安全地假定訊息在傳輸期間未被變更或篡改(資料完整性)。
圖10示出根據本發明之實例的用於產生訊息鑑別標籤之方法1000。該方法藉由在1005處獲得訊息開始。訊息可為任何輸入或任意資料,比如辭典條目、檔案內容等。訊息可為明文、密文(加密的)或呈電子格式的任何任意其他類型之資料。方法藉由在1010處將訊息分段成許多相等大小的包含第一訊息區塊、一或多個後續訊息區塊及最終訊息區塊的訊息區塊而繼續。方法藉由在1015處使用初始化值對第一訊息區塊執行第一位元混合操作而繼續。方法藉由在1020處使用先前訊息區塊對一或多個後續訊息區塊及最終訊息區塊執行後續位元混合操作而繼續。方法藉由在1025處基於第一位元混合操作及後續位元混合操作產生訊息鑑別標籤而繼續。位元混合操作可藉由下述來執行:基於圖5及圖6之雙混合費斯妥網路、圖7之取代置換網路、圖8之XOR樹之位元混合器構造;或圖2之兩個或多個位元混合器構造之並行組合。
在一些實例中,方法可進一步包含在1030處填補最終訊息區塊以使該等訊息區塊具有相等大小。在一些實例中,方法可進一步包含在1035處
運用區塊加密演算法將相等大小之訊息區塊中的每一者加密以產生許多經加密訊息區塊。在一些實例中,方法可進一步包含在1040處使用基於最終訊息區塊之輸出及鑑別資料長度及經加密文字區塊之長度之序連來執行最終位元混合操作,且在秘密金鑰下,使用最終位元混合操作之輸出及使用區塊加密演算法而加密的經加密空計數器來執行互斥或運算。在一些實例中,方法可進一步包含在1045處將訊息鑑別標籤與訊息發送至接收器,其中該訊息係明文或加密的。
圖11示出用於根據本發明之實例的產生用於訊息之雜湊值之方法1100。該方法藉由在1105處獲得訊息開始。訊息可為任何輸入或任意資料,比如辭典條目、檔案內容等。訊息可為明文、密文(加密的)或呈電子格式的任何任意其他類型之資料。方法藉由在1110處將訊息分段成許多相等大小的包含第一訊息區塊、一或多個後續訊息區塊及最終訊息區塊的訊息區塊而繼續。在一些實例中,第一訊息區塊、一或多個後續訊息區塊及最終訊息區塊為經加密訊息區塊。方法藉由在1115處使用初始化值對第一訊息區塊執行第一位元混合操作而繼續。方法藉由在1120處使用先前訊息區塊對一或多個後續訊息區塊及最終訊息區塊執行後續位元混合操作而繼續。第一位元混合操作及後續位元混合操作使用公用的金鑰元素。在一些實例中,位元混合操作可藉由下述來執行:基於圖5及圖6之雙混合費斯妥網路、圖7之取代置換網路、圖8之XOR樹之位元混合器構造;或圖2之兩個或多個位元混合器構造之並行組合。方法藉由在1125處基於第一位元混合操作及後續位元混合操作以判定雜湊值而繼續。
在一些實例中,方法可進一步包含在1130處填補最終訊息區塊以使該等訊息區塊具有相等大小。在一些實例中,方法可進一步包含在1135處運用區塊加密演算法將相等大小之訊息區塊中的每一者加密以產生許多經加密訊息區塊。在一些實例中,方法1100可進一步包含在1140處對最終訊息區塊執行與在計算雜湊值時所執行之所有其他位元混合操作不同的位元混合操作,其
中差異為用於第一位元混合操作及後續位元混合操作中之位元混合器之構造、金鑰元素或此兩者。在一些實例中,方法1100可進一步包含運用區塊加密演算法將相等大小之訊息區塊中的每一者加密以產生許多經加密訊息區塊。
圖12示出可用以執行以上所描述之處理序中之一或多者的可用作行動裝置或伺服器之電腦裝置1200之硬體組態的實例。雖然圖12示出電腦裝置1200中所含有之各種組件,但圖12示出電腦裝置之一個實例且可添加額外組件而可移除現有組件。
電腦裝置1200可為任何類型之電腦裝置,諸如桌上型電腦、膝上型電腦、伺服器等;或行動裝置,諸如智慧型電話、平板電腦、蜂巢式電話、個人數位助理等。如圖12中所示出,電腦裝置1200可包括具有變化之核心組態及時脈頻率的一或多個處理器1202。電腦裝置1200亦可包括在電腦裝置1200之操作期間充當主記憶體的一或多個記憶體裝置1204。舉例而言,在操作期間,支援上述操作的軟體之複本可經儲存於一或多個記憶體裝置1204中。電腦裝置1200亦可包括用於實現與人類與電腦裝置1200的互動及其操控的一或多個周邊介面1206,諸如鍵盤、滑鼠、觸控板、電腦螢幕、觸控式螢幕等。
電腦裝置1200亦可包括用於經由一或多個網路進行通信的一或多個網路介面1208,諸如用於使用協定以經由有線或無線媒體進行通信的乙太網路配接器、無線收發器或串列網路組件。電腦裝置1200亦可包括具有變化之實體尺寸及儲存容量的一或多個儲存裝置1210,諸如隨身碟、硬碟機、隨機存取記憶體等,其用於儲存資料,諸如影像、檔案及供一或多個處理器1202來執行之程式指令。
另外,電腦裝置1200可包括實現以上所描述之功能性的一或多個軟體程式1212。該一或多個軟體程式1212可包括致使一或多個處理器1202執行本文中所描述之處理序的指令。該一或多個軟體程式1212之複本可經儲存於
一或多個記憶體裝置1204中及/或一或多個儲存裝置1210中。同樣地,由一或多個軟體程式1212所利用之資料可經儲存於一或多個記憶體裝置1204中及/或一或多個儲存裝置1210中。
在實施中,電腦裝置1200可經由網路1216與其他裝置進行通信。其他裝置可為如上文所描述之任何類型之裝置。網路1216可為任何類型之網路,諸如區域網路、廣域網路、虛擬專用網路、網際網路、企業內部網路、企業間網路、公眾交換電話網路、紅外線網路、無線網路及其任何組合。網路1216可使用多種市售協定中之任一者來支援通信,該等協定諸如TCP/IP、UDP、OSI、FTP、UPnP、NFS、CIFS、AppleTalk及其類似者。舉例而言,網路1216可為區域網路、廣域網路、虛擬專用網路、網際網路、企業內部網路、企業間網路、公眾交換電話網路、紅外線網路、無線網路及其任何組合。
電腦裝置1200可包括如上文所論述之多種資料儲存器及其他記憶體及儲存媒體。此等組件可駐留於多種位置中,諸如跨越網路在電腦中之一或多者的本地(及/或駐留於電腦中之一或多者中)或任何或所有電腦遠端之儲存媒體上。在一些實施中,資訊可駐留於為熟習此項技術者所熟悉的儲存區域網路(「SAN」)中。相似地,可在適當時本地及/或遠端地儲存用於執行歸屬於電腦、伺服器或其他網路裝置之功能之任何所需檔案。
在實施中,如上文所描述之電腦裝置1200之組件無需密封於單個封閉區內或甚至彼此緊鄰地定位。熟習此項技術者將瞭解,上述部件僅為實例,此係因為電腦裝置1200可包括用於執行所揭示實施的任何類型之硬體部件,包括任何所需伴隨的韌體或軟體。電腦裝置1200亦可部分地或整體地藉由電子電路組件或處理器,諸如特殊應用積體電路(ASIC)或場可程式化閘陣列(FPGA)來實施。
另外,本發明包含根據以下條項之具體實例:
條項1:一種用於產生一訊息鑑別標籤之電腦實施方法,該方法包含:獲得一訊息;藉由一電子處理器將該訊息分段成許多相等大小的包含一第一訊息區塊、一或多個後續訊息區塊及一最終訊息區塊的訊息區塊;藉由該電子處理器而使用一初始化值對該第一訊息區塊執行一第一位元混合操作;藉由該電子處理器而使用一先前訊息區塊對該一或多個後續訊息區塊及該最終訊息區塊執行後續位元混合操作;及藉由該電子處理器以基於該第一位元混合操作及該等後續位元混合操作而產生該訊息鑑別標籤。
條項2:如條項1之方法,其中該訊息為一明文訊息或一經加密訊息。
條項3:如條項1之方法,其進一步包含運用一區塊加密演算法將相等大小之該等訊息區塊中的每一者加密以產生許多經加密訊息區塊。
條項4:如條項1之方法,其中該第一訊息區塊、該一或多個後續訊息區塊及該最終訊息區塊為經加密訊息區塊。
條項5:如條項1之方法,其進一步包含將該訊息鑑別標籤與該訊息發送至一接收器,其中該訊息係明文的。
條項6:如條項1之方法,其進一步包含將該訊息鑑別標籤與該訊息發送至一接收器,其中該訊息係加密的。
條項7:如條項1之方法,其中該第一位元混合操作及該等後續位元混合操作係藉由下述來執行:基於一雙混合費斯妥網路、一取代置換網路、一互斥或(XOR)樹之一位元混合器構造,或兩個或多個位元混合器構造之一並行組合。
條項8:如條項1之方法,其中使用一金鑰元素來執行該第一位元混合操作及該等後續位元混合操作。
條項9:如條項8之方法,其中該金鑰元素保持為秘密的且該訊
息鑑別標籤為一訊息鑑別碼。
條項10:如條項1之方法,其進一步包含:使用基於該最終訊息區塊之一輸出以及鑑別資料之一長度及經加密文字區塊之一長度之一序連來執行一最終位元混合操作;且在一秘密金鑰下,使用該最終位元混合操作之一輸出及使用一區塊加密演算法而加密的一經加密空計數器來執行一互斥或運算。
條項11:如條項1之方法,其進一步包含填補該最終訊息區塊以使該等訊息區塊具有相等大小。
條項12:一種用於產生用於一訊息之一雜湊值之電腦實施方法,該方法包含:獲得該訊息;藉由一電子處理器將該訊息分段成許多相等大小的包含一第一訊息區塊、一或多個後續訊息區塊及一最終訊息區塊的訊息區塊;藉由該電子處理器而使用一初始化值對該第一訊息區塊執行一第一位元混合操作;藉由該電子處理器而使用一先前訊息區塊對該一或多個後續訊息區塊及該最終訊息區塊執行後續位元混合操作;及藉由該電子處理器以基於該第一位元混合操作及該等後續位元混合操作而產生該雜湊值。
條項13:如條項12之方法,其中該訊息為一明文訊息、一經加密訊息或呈電子格式的任意其他類型之資料。
條項14:如條項12之方法,其中該第一位元混合操作及該等後續位元混合操作使用公用的金鑰元素。
條項15:如條項12之方法,其進一步包含對該最終訊息區塊執行一最終位元混合操作,該最終位元混合操作與在計算該雜湊值時所執行之該第一位元混合操作及該等後續位元混合操作不同,其中的差異為用於該第一位元混合操作及該等後續位元混合操作中之一位元混合器之一構造、一金鑰元素或此兩者。
條項16:如條項12之方法,其進一步包含運用一區塊加密演算
法將相等大小之該等訊息區塊中的每一者加密以產生許多經加密訊息區塊。
條項17:如條項12之方法,其中該第一訊息區塊、該一或多個後續訊息區塊及該最終訊息區塊為經加密訊息區塊。
條項18:如條項12之方法,其中該第一位元混合操作及該等後續位元混合操作係藉由下述來執行:基於雙混合費斯妥網路、一取代置換網路、一XOR樹之一位元混合器構造,或兩個或多個位元混合器構造之一並行組合。
條項19:一種電腦系統,其包含:一電子處理器;一非暫時性電腦可讀取媒體,其儲存在由該電子處理器執行時執行用於產生一訊息鑑別標籤之一方法的指令,該方法包含:獲得一訊息;將該訊息分段成許多相等大小的包含一第一訊息區塊、一或多個後續訊息區塊及一最終訊息區塊的訊息區塊;使用一初始化值對該第一訊息區塊執行一第一位元混合操作;使用一先前訊息區塊對該一或多個後續訊息區塊及該最終訊息區塊執行後續位元混合操作;及基於該第一位元混合操作及該等後續位元混合操作而產生該訊息鑑別標籤。
條項20:如條項19之電腦系統,其中該第一位元混合操作及該等後續位元混合操作係藉由下述來執行:基於雙混合費斯妥網路、一取代置換網路、一XOR樹之一位元混合器構造,或兩個或多個位元混合器構造之一並行組合。
條項21:如條項19之電腦系統,其中該電子處理器可進一步操作以執行包含以下操作之方法:使用基於該最終訊息區塊之一輸出以及鑑別資料之一長度及經加密文字區塊之一長度之一序連來執行一最終位元混合操作;及使用該最終位元混合操作之一輸出及使用一區塊加密演算法而加密的一經加密空計數器來執行一互斥或運算。
條項22:一種電腦系統,其包含:一電子處理器;一非暫時性電腦可讀取媒體,其儲存在由該電子處理器執行時執行用於產生一雜湊值之一方法的指令,該方法包含:獲得一訊息;將該訊息分段成許多相等大小的包含一第一訊息區塊、一或多個後續訊息區塊及一最終訊息區塊的訊息區塊;使用一初始化值對該第一訊息區塊執行一第一位元混合操作;使用經處理先前訊息區塊對該一或多個後續訊息區塊及該最終訊息區塊執行後續位元混合操作;及基於該第一位元混合操作及該等後續位元混合操作而產生該雜湊值。
條項23:如條項22之電腦系統,其中該第一位元混合操作及該等後續位元混合操作係藉由下述來執行:基於雙混合費斯妥網路、一取代置換網路、一XOR樹之一位元混合器構造,或兩個或多個位元混合器構造之一並行組合。
條項24:如條項22之電腦系統,其中該電子處理器可進一步操作以執行包含以下操作之方法:使用基於該最終訊息區塊之一輸出執行一最終位元混合操作;運用一位元混合器執行與在產生該雜湊值時之該第一位元混合操作及該等後續位元混合操作不同的該最終位元混合操作。
因此,本發明不限於上述具體實例,而是替代地由所附申請專利範圍依據其等效完整範圍來界定。
100:位元混合器之方塊圖
105:位元混合器
110:n位元輸入
115:金鑰元素
120:m位元輸出
Claims (10)
- 一種用於產生一訊息鑑別標籤(336、908、912)之電腦實施方法(1000),該電腦實施方法包含:獲得(1005)一訊息(904);藉由一電子處理器(1202)將該訊息分段(1010)成許多相等大小之訊息區塊(410、412、414),其包含一第一訊息區塊(410)、一或多個後續訊息區塊(412)及一最終訊息區塊(414);藉由該電子處理器使用相應之遞增計數器對該第一訊息區塊(410)、該一或多個後續訊息區塊(412)及該最終訊息區塊(414)執行互斥或(XOR)運算,以產生一第一密文訊息區塊、一或多個後續密文訊息區塊及一最終密文訊息區塊,其中該些遞增計數器分別經過加密;藉由該電子處理器而使用一初始化值(418)對該第一密文訊息區塊執行(1015)一第一位元混合操作(324);藉由該電子處理器而使用一先前密文訊息區塊對該一或多個後續密文訊息區塊及該最終密文訊息區塊執行(1020)後續位元混合操作(328、332);及藉由該電子處理器基於該第一位元混合操作及該些後續位元混合操作而產生(1025、1040)該訊息鑑別標籤。
- 如請求項1所述之電腦實施方法,其中該訊息為一明文訊息(314、316)或一經加密訊息(318、320)。
- 如請求項1所述之電腦實施方法,其進一步包含運用一區塊加密演算法(906)將該些相等大小之訊息區塊中的每一者進行加密(1035)以產生許多經加密訊息區塊。
- 如請求項1所述之電腦實施方法,其中該第一密文訊息區塊、該一或多個後續密文訊息區塊及該最終密文訊息區塊為經加密訊息區塊。
- 如請求項1所述之電腦實施方法,其進一步包含將該訊息鑑別標籤與該訊息發送(1040)至一接收器(910),其中該訊息係一明文訊息(314、316)。
- 如請求項1所述之電腦實施方法,其進一步包含將該訊息鑑別標籤與該訊息發送至一接收器(910),其中該訊息係一加密訊息(318、320)。
- 如請求項1所述之電腦實施方法,其中該第一位元混合操作及該些後續位元混合操作係藉由下述來執行:基於一雙混合費斯妥(Feistel)網路(500、600)、一取代置換(substitution-permutation)網路(700)、一互斥或(XOR)樹(800)之一位元混合器構造(100、200)或兩個或多個位元混合器構造(300、400)之一並行組合(205、210、215、220)。
- 如請求項1所述之電腦實施方法,其中使用一金鑰元素(115)來執行該第一位元混合操作及該些後續位元混合操作。
- 一種電腦系統(900),其包含:一電子處理器(1202);一非暫時性電腦可讀取媒體,其儲存在由該電子處理器執行時執行用於產生一訊息鑑別標籤(336、908、912)之一方法的指令,該方法包含:獲得一訊息(904);將該訊息分段成許多相等大小之訊息區塊(410、412、414),其包含一第一訊息區塊(410)、一或多個後續訊息區塊(412)及一最終訊息區塊(414);使用相應之遞增計數器對該第一訊息區塊(410)、該一或多個後續訊息區塊(412)及該最終訊息區塊(414)執行互斥或(XOR)運算,以產生一第一密文訊息區塊、一或多個後續密文訊息區塊及一最終 密文訊息區塊,其中該些遞增計數器分別經過加密;使用一初始化值(418)對該第一密文訊息區塊執行一第一位元混合操作(324);使用一先前密文訊息區塊對該一或多個後續密文訊息區塊及該最終密文訊息區塊執行後續位元混合操作(328、332);及基於該第一位元混合操作及該些後續位元混合操作而產生該訊息鑑別標籤。
- 如請求項9所述之電腦系統,其中該第一位元混合操作及該些後續位元混合操作係藉由下述來執行:基於雙混合費斯妥網路(500、600)、一取代置換網路(700)、一XOR樹(800)之一位元混合器構造(100、200)或兩個或多個位元混合器構造(300、400)之一並行組合(205、210、215、220)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/726,608 US10944568B2 (en) | 2017-10-06 | 2017-10-06 | Methods for constructing secure hash functions from bit-mixers |
US15/726,608 | 2017-10-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201918926A TW201918926A (zh) | 2019-05-16 |
TWI774807B true TWI774807B (zh) | 2022-08-21 |
Family
ID=63794318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107125225A TWI774807B (zh) | 2017-10-06 | 2018-07-20 | 用於自位元混合器建構安全雜湊函數之系統和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10944568B2 (zh) |
EP (1) | EP3468147B1 (zh) |
JP (1) | JP7222648B2 (zh) |
KR (1) | KR102616064B1 (zh) |
CN (1) | CN109639428B (zh) |
TW (1) | TWI774807B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11764945B2 (en) * | 2018-05-25 | 2023-09-19 | ZenmuTech, Inc | Data processing device, method, and computer program |
FR3092923B1 (fr) * | 2019-02-19 | 2021-05-21 | Sangle Ferriere Bruno | Méthode cryptographique de vérification des données |
US11956367B2 (en) * | 2019-02-19 | 2024-04-09 | Bruno SANGLE-FERRIERE | Cryptographic method for verifying data |
US11469902B2 (en) * | 2019-03-29 | 2022-10-11 | Intel Corporation | Systems and methods of using cryptographic primitives for error location, correction, and device recovery |
CN112054889B (zh) * | 2019-06-06 | 2022-10-18 | 中国科学院苏州纳米技术与纳米仿生研究所 | 消息认证码的生成方法及生成装置、计算机可读存储介质 |
US11283619B2 (en) | 2019-06-20 | 2022-03-22 | The Boeing Company | Bit mixer based parallel MAC and hash functions |
WO2021038281A1 (en) * | 2019-08-30 | 2021-03-04 | Telefonaktiebolaget Lm Ericsson (Publ) | A round-free cryptographic hashing device for secure and low-latency communications |
US11811938B2 (en) * | 2019-12-20 | 2023-11-07 | Micro Focus Llc | Tokenization of arbitrary data types |
US11917072B2 (en) * | 2020-12-03 | 2024-02-27 | International Business Machines Corporation | Implementing opportunistic authentication of encrypted data |
CN113076562A (zh) * | 2021-05-08 | 2021-07-06 | 北京炼石网络技术有限公司 | 基于gcm加密模式的数据库加密字段模糊检索方法 |
CN114495474B (zh) * | 2022-02-16 | 2022-11-22 | 青岛克莱玛物联技术有限公司 | 一种无线遥控装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201412145A (zh) * | 2012-07-16 | 2014-03-16 | 湯姆生特許公司 | 多通道hoa聲訊訊號減少雜訊之編碼方法和裝置以及已減少雜訊的編碼多通道hoa聲訊訊號之解碼方法和裝置 |
US20140317407A1 (en) * | 2011-10-31 | 2014-10-23 | Nec Corporation | Incremental mac tag generation device, method, and program, and message authentication device |
US20160380772A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3119735B2 (ja) * | 1992-10-01 | 2000-12-25 | 松下電器産業株式会社 | ビット攪拌装置 |
EP1254547B1 (en) * | 2000-02-08 | 2005-11-23 | Swisscom Mobile AG | Single sign-on process |
US7725719B2 (en) * | 2005-11-08 | 2010-05-25 | International Business Machines Corporation | Method and system for generating ciphertext and message authentication codes utilizing shared hardware |
JP4810289B2 (ja) * | 2006-04-17 | 2011-11-09 | ルネサスエレクトロニクス株式会社 | メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム |
US8000467B2 (en) * | 2007-03-19 | 2011-08-16 | Stmicroelectronics Sa | Data parallelized encryption and integrity checking method and device |
DE102007052656B4 (de) * | 2007-11-05 | 2010-03-25 | Texas Instruments Deutschland Gmbh | Digital-Verschlüsselungs-Hardware-Beschleuniger |
FR2931326A1 (fr) * | 2008-05-16 | 2009-11-20 | St Microelectronics Rousset | Verification d'integrite d'une cle de chiffrement |
US20120201373A1 (en) * | 2011-02-03 | 2012-08-09 | Futurewei Technologies, Inc. | Design of a Good General-Purpose Hash Function with Limited Resources |
IN2013MU01164A (zh) * | 2013-03-26 | 2015-07-03 | Tata Consultancy Services Ltd | |
SG11201704361XA (en) * | 2014-12-03 | 2017-06-29 | Nagravision Sa | Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method |
US9876641B2 (en) * | 2015-10-08 | 2018-01-23 | The Boeing Company | Data dependent authentication keys for differential power analysis resistant authentication |
US10142103B2 (en) * | 2015-12-07 | 2018-11-27 | The Boeing Company | Hardware assisted fast pseudorandom number generation |
-
2017
- 2017-10-06 US US15/726,608 patent/US10944568B2/en active Active
-
2018
- 2018-07-20 TW TW107125225A patent/TWI774807B/zh active
- 2018-08-24 KR KR1020180098958A patent/KR102616064B1/ko active IP Right Grant
- 2018-09-12 CN CN201811060820.4A patent/CN109639428B/zh active Active
- 2018-10-04 JP JP2018189393A patent/JP7222648B2/ja active Active
- 2018-10-04 EP EP18198697.7A patent/EP3468147B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140317407A1 (en) * | 2011-10-31 | 2014-10-23 | Nec Corporation | Incremental mac tag generation device, method, and program, and message authentication device |
TW201412145A (zh) * | 2012-07-16 | 2014-03-16 | 湯姆生特許公司 | 多通道hoa聲訊訊號減少雜訊之編碼方法和裝置以及已減少雜訊的編碼多通道hoa聲訊訊號之解碼方法和裝置 |
US20160380772A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Keyed-hash message authentication code processors, methods, systems, and instructions |
Also Published As
Publication number | Publication date |
---|---|
CN109639428B (zh) | 2023-09-26 |
KR102616064B1 (ko) | 2023-12-19 |
EP3468147A1 (en) | 2019-04-10 |
US10944568B2 (en) | 2021-03-09 |
CN109639428A (zh) | 2019-04-16 |
JP2019079037A (ja) | 2019-05-23 |
EP3468147B1 (en) | 2021-06-30 |
TW201918926A (zh) | 2019-05-16 |
US20190109715A1 (en) | 2019-04-11 |
JP7222648B2 (ja) | 2023-02-15 |
KR20190039850A (ko) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI774807B (zh) | 用於自位元混合器建構安全雜湊函數之系統和方法 | |
Iwata et al. | CLOC: authenticated encryption for short input | |
Li et al. | Chaotic hash function based on the dynamic S-Box with variable parameters | |
US7912213B2 (en) | Device, system and method for fast secure message encryption without key distribution | |
EP3235162A1 (en) | Stream ciphering technique | |
WO2013065241A1 (ja) | インクリメンタルmacタグ生成装置、方法及びプログラム並びにメッセージ認証装置 | |
Sarkar et al. | Role of cryptography in network security | |
CN102946315B (zh) | 一种采用分组方式构造mac码的方法及系统 | |
Oukili et al. | Hardware implementation of AES algorithm with logic S-box | |
Järvinen | Sharing resources between AES and the SHA-3 second round candidates Fugue and Grøstl | |
Alshawi et al. | Improved Salsa20 stream cipher diffusion based on random chaotic maps | |
Al-Shatari et al. | Composite Lightweight Authenticated Encryption Based on LED Block Cipher and PHOTON Hash Function for IoT Devices | |
Kitsos et al. | Whirlpool hash function: architecture and vlsi implementation | |
Shoukat et al. | Randomized substitution method for effectively secure block ciphers in IOT environment | |
Saravanan et al. | Theoretical survey on secure hash functions and issues | |
Mohanraj et al. | High performance GCM architecture for the security of high speed network | |
Rohit et al. | Practical Forgery attacks on Limdolen and HERN | |
Abdulmonem et al. | Design and implementation of authenticated encryption co-processors for satellite hardware security | |
Hambouz | DLL-AES: Dynamic Layers Lightweight AES Algorithm | |
Padhi et al. | Modified version of XTS (XOR-Encrypt-XOR with Ciphertext Stealing) using tweakable enciphering scheme | |
Morales-Sandoval | Hardware architecture for elliptic curve cryptography and lossless data compression | |
Sailaja et al. | High speed architecture for KECCACK secure hash function | |
Kanso et al. | A variant of Baptista's encryption scheme | |
Pandey et al. | Architecture based on MD5 and MD5-512 Bit Applications | |
Liu et al. | Analysis of the Reconfiguration Feature of Cryptographic Algorithms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent |