TW201826162A - 用於藉由位元混合器來產生保密器回合金鑰的方法和系統 - Google Patents

用於藉由位元混合器來產生保密器回合金鑰的方法和系統 Download PDF

Info

Publication number
TW201826162A
TW201826162A TW106134055A TW106134055A TW201826162A TW 201826162 A TW201826162 A TW 201826162A TW 106134055 A TW106134055 A TW 106134055A TW 106134055 A TW106134055 A TW 106134055A TW 201826162 A TW201826162 A TW 201826162A
Authority
TW
Taiwan
Prior art keywords
key
inputs
bit
input
xor
Prior art date
Application number
TW106134055A
Other languages
English (en)
Other versions
TWI744388B (zh
Inventor
拉茲羅 哈爾斯
Original Assignee
美商波音公司
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 美商波音公司 filed Critical 美商波音公司
Publication of TW201826162A publication Critical patent/TW201826162A/zh
Application granted granted Critical
Publication of TWI744388B publication Critical patent/TWI744388B/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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • 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
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Studio Circuits (AREA)
  • Communication Control (AREA)

Abstract

本發明揭示用於產生用於一密碼操作之回合金鑰的系統及方法。該等系統及方法可使用可操作以執行以下操作之邏輯電路:獲得第一輸入及第二輸入;對該等第一輸入及該等第二輸入中之每一者執行一位元混合器操作;及基於該執行而產生回合金鑰。該等第一輸入包括來自一金鑰材料的複數個相等大小的子金鑰、一保密器金鑰,該金鑰材料被劃分成複數個相等大小的金鑰材料子區塊,且該等第二輸入包括一隨機輸入、一或多個先前回合金鑰或一回合數。該密碼操作包括一保密器、一雜湊函數或一串流產生器。該位元混合器操作包括一互斥或(XOR)樹、一取代置換網路或一雙混合費斯妥(Feistel)網路或一旋轉-加法-XOR(RAX)構造。

Description

用於藉由位元混合器來產生保密器回合金鑰的方法和系統
本發明大體上係關於保護電腦系統中之資料。詳言之,係關於資訊保障之三個應用區域中的任一個:保護經傳送訊息之秘密度,係關於保護已存檔資料之秘密度,且係關於保護儲存於電腦系統中之記憶體中的資料,該資料常常在記憶體中之一或多個匯流排上傳送。
為了實現安全通信及對需要高度保護之金融、軍事、醫療或其他資料之保護,基於電腦及微處理器之系統現在實施各種安全措施。此等措施大體上意欲排除敵手對在通信頻道上傳輸、儲存於諸如磁碟機或光學媒體之非揮發性儲存器中、或(例如)由於記憶體與微處理器位於同一電路板上及/或藉由匯流排耦接而儲存於由微處理器存取之記憶體中之資料的違禁存取。
例示性應用區域保護儲存於安全計算系統之記憶體中的資料,但其它類型之應用程式係同等地常見且重要的。對此類處理器之常見類型的攻擊可分類為主動或被動攻擊。在被動攻擊中,敵手讀取記憶體之內容,希望發現類似於通行碼、版權材料等秘密。被動攻擊者亦可監視處理器與記憶體(或一些周邊裝置)之間的資料訊務以發現秘密。
主動攻擊嘗試修改記憶體之內容或記憶體與處理器之間的資料訊務。主動攻擊包括在不同位置之間嘗試拷貝且黏貼記憶體區塊,或回放同一位置或另一位置之先前內容。此類攻擊可例如藉由產生無限迴路來造成傷害,或以其他方式影響在安全微處理器上執行且使用來自受保護記憶體之資料的程式。在已知資料識別攻擊中,敵手可嘗試藉由觀看已知資料至同一位址之寫入來學習加密金鑰。
所儲存、處理或傳輸敏感資料之秘密度及完整性可由密碼構件保障。最重要之密碼工具係區塊保密器(block cipher)。其使用秘密金鑰,秘密金鑰在給定加密演算法下判定其行為。最常使用之保密器執行變換步驟之許多反覆,該等反覆被稱作回合。此等變換步驟受自保密器金鑰衍生之秘密回合金鑰影響。保密器之安全及速度取決於(depend on)如何產生此等回合金鑰。許多目前使用之保密器係慢速的,且消耗大量功率及能量,此係部分地由於產生高度不相關回合金鑰之複雜度。其金鑰產生亦在旁路(side channel)上滲漏可利用的資訊。其他目前使用之保密器使用回合金鑰產生器,回合金鑰產生器產生低品質(相關、偏壓)金鑰。
區塊保密器之回合金鑰必須高度不相關,即使其自同一保密器金鑰衍生亦如此。產生回合金鑰之演算法亦被稱作金鑰排程(key-schedule)。許多保密器使用簡單金鑰排程,比如線性回饋移位暫存器(Linear Feedback Shift Register,LFSR)。此等係易於計算且快速的,但所得回合金鑰係高度相關的。舉例而言,在LFSR狀況下,半數時間回合金鑰僅係先前回合金鑰之1位元旋轉(1-bit rotated version)版本,且在另半數時間,僅極少數位元在旋轉之先前回合金鑰中改變。
若金鑰排程不夠複雜而無法產生不相關的回合金鑰,則保密器需要許多回合以達成高度安全。通常使用之保密器藉由重複簡單步驟,包括旋轉、XOR及位元重排來實現其金鑰排程。其面臨困難的取捨:極少的此類步驟產生相關的回合金鑰,且因此保密器需要許多回合;而執行許多金鑰排程步驟在每一回合處消耗許多時間。不管怎樣,保密器需要大量時間。
目前使用之金鑰排程演算法自先前回合金鑰產生回合金鑰,因此其必須產生所有回合金鑰以獲得最後一個回合金鑰,解密可以此開始。在通用微處理器上之單個保密器操作下,操作之總體數目可與回合金鑰產生之任何次序相同,因此此反覆金鑰排程並不減緩以軟體實施之保密器。另一方面,在以電子硬體實施之系統處,依序回合金鑰產生在解密時引起初始延遲。異常係藉由同一金鑰執行許多解密操作且可快取對應回合金鑰時。然而,大型快取記憶體係物理攻擊之目標,且一次又一次使用同一金鑰將安全系統曝露於旁路攻擊。金鑰滾動(key rolling)改良大部分應用程式之安全性,但其防止對回合金鑰進行快取,且可引起解密之減速。(金鑰滾動意謂著在每個人之後或在少數次使用之後改變加密金鑰。)
因此,迄今為止,工業中仍然需要解決上述缺陷及不足。
根據本發明教示之實例,提供一種用於產生用於一密碼操作之一或多個回合金鑰的方法。該方法包含:獲得一或多個第一輸入及一或多個第二輸入;藉由至少一個電子電路,對該一或多個第一輸入及該一或多個第二輸入中之每一者執行一位元混合器操作;及藉由至少一個電子電 路,基於該執行而產生一或多個回合金鑰。
在一些實例中,該一或多個第一輸入包含來自一金鑰材料的複數個相等大小的子金鑰或一保密器金鑰,該金鑰材料係被劃分成複數個相等大小的金鑰材料子區塊。該一或多個第二輸入包含一隨機產生之固定輸入、一或多個先前回合金鑰或一回合數。在一些實例中,該方法進一步包含自藉由應用一密碼操作之一較短金鑰、具有經寫死(hard coded)之金鑰材料之一位元混合器、一計數器輸入或其組合而產生該一或多個第一輸入。該密碼操作包含一保密器、一雜湊函數或一串流產生器。在一些實例中,該金鑰材料係秘密,在通信方之間共用。在一些實例中,該金鑰材料經寫死。在一些實例中,該金鑰材料係隨機產生。
在一些實例中,該保密器金鑰係藉由對該保密器金鑰之部分及該金鑰材料之部分的互斥或(XOR)操作而與經寫死之金鑰材料組合。在一些實例中,該位元混合器操作包含一互斥或(XOR)樹、一取代置換網路或一雙混合費斯妥(Feistel)網路或一旋轉-加法-XOR(Rotate-Add-XOR)(RAX)構造。在一些實例中,該XOR樹包含複數個否定及(NAND)閘或複數個多工器。如本文中所使用,NAND指非及(NOT-AND)或反及(Negative-AND)邏輯操作。在一些實例中,該產生進一步包含對該執行之一輸出執行一擾亂操作。在一些實例中,該方法進一步包含產生具有該一或多個回合金鑰之一資料區塊。在一些實例中,該方法進一步包含針對一密碼保密器,重複該執行及該產生該一或多個回合金鑰。在一些實例中,該方法進一步包含選擇該位元混合器,其中該位元混合器操作具有包含以下各者之屬性:每一輸入位元影響每一輸出位元,該輸入位元之改變,平均地使得輸出位 元之半數改變;該等輸入位元之改變,得到與該等輸入位元或與輸入之一改變型樣不相關的輸出值,使用金鑰以使其行為對於不知曉該等金鑰之一觀察者而言不可預測,且該等輸入位元及輸出值之固定長度可獨立地且任意地選擇。在一些實例中,該XOR樹進一步包含:對該一或多個第一輸入之每一第一輸入及該一或多個第二輸入之每一第二輸入執行一反及(NAND)邏輯操作,以選擇將該複數個第一輸入中之哪一者輸入至一XOR邏輯操作中,其中該XOR樹之一輸出產生關於用作輸入之該複數個第一輸入的輸出。
在一些實例中,該方法進一步包含對該XOR樹之該輸出執行一擾亂操作以使該位元混合器函數為非線性的。
在一些實例中,該取代置換網路進一步包含:對該複數個第一輸入中之每一者執行一非線性取代操作;對該取代操作之每一輸出執行一置換操作;對該置換操作之每一輸出及該等第一輸入中之一者或該等第二輸入中之一者執行一XOR操作。
在一些實例中,其中,在該雙混合費斯妥網路中,該一或多個第一輸入中之每一者經劃分成初始左半部及初始右半部,該方法進一步包含:針對複數個回合中之每一回合,計算一經更新左半部及一經更新右半部,其中該計算該經更新左半部包含將一第一函數應用於一輸入左半部以產生一第一結果,及混合該第一結果與一輸入右半部,其中計算該經更新右半部包含將一第二函數應用於該輸入左半部以產生一第二結果,及混合該第二結果與一回合金鑰,且其中該輸入左半部及該輸入右半部,針對該複數個回合中之一第一回合係初始左半部及初始右半部,及針對該第一回合之後的每一回合之一緊接先前回合係經更新左半部及經更新右半部。
根據本發明之實例,提供一種用於產生用於一密碼操作之一或多個回合金鑰的系統。該系統包含可操作以執行以下操作之一或多個邏輯電路:獲得一或多個第一輸入及一或多個第二輸入;藉由至少一個電子電路,對該一或多個第一輸入及該一或多個第二輸入中之每一者執行一位元混合器操作;及藉由至少一個電子電路,基於該執行而產生一或多個回合金鑰。在一些實例中,該一或多個第一輸入包含來自劃分成複數個相等大小的金鑰材料子區塊之一金鑰材料的複數個相等大小的子金鑰、一保密器金鑰,且該一或多個第二輸入包含一隨機輸入、一或多個先前回合金鑰、一回合數。在一些實例中,該密碼操作包含一保密器、一雜湊函數或一串流產生器。在一些實例中,該位元混合器操作包含一互斥或(XOR)樹、一取代置換網路或一雙混合費斯妥網路或一旋轉-加法-XOR(RAX)構造。
應理解,前文一般描述與以下詳細描述均僅為例示性及解釋性的,且不欲限制所主張之本發明。
100‧‧‧系統
102‧‧‧請求器
104‧‧‧記憶體
106‧‧‧安全記憶體交易單元(SMTU)
200‧‧‧系統
202‧‧‧微處理器核心
204‧‧‧記憶體
206‧‧‧安全記憶體交易單元(SMTU)
208‧‧‧第一匯流排
210‧‧‧仲裁電路
212‧‧‧嵌入式動態隨機存取記憶體(eDRAM)
214‧‧‧雙資料速率同步動態隨機存取記憶體(DDR DRAM)
216‧‧‧記憶體控制件或介面
218‧‧‧記憶體控制件或介面
220‧‧‧積體電路
222‧‧‧匯流排橋接器
224‧‧‧第二匯流排
226‧‧‧安全處理器
228‧‧‧微處理器核心介面
230‧‧‧第二匯流排介面
232‧‧‧記憶體介面
234‧‧‧命令及控制介面
302‧‧‧命令控制單元
304‧‧‧控制暫存器
306‧‧‧狀態暫存器
308‧‧‧交易仲裁器
310‧‧‧先進先出(FIFO)記憶體
312‧‧‧交易控制單元
314‧‧‧位址轉譯單元
316‧‧‧密碼單元
318‧‧‧金鑰產生器
320‧‧‧加密單元
322‧‧‧資料雜湊單元
324‧‧‧金鑰材料儲存區
326‧‧‧暫存器陣列
328‧‧‧唯讀記憶體區塊(ROM)
500‧‧‧位元混合器操作/雙混合費斯妥網路
600‧‧‧位元混合器操作/雙混合費斯妥網路
700‧‧‧取代置換網路/位元混合器操作
800‧‧‧電路
820‧‧‧電路
840‧‧‧電路
900‧‧‧電路設計
1000‧‧‧XOR樹/位元混合器操作
1100‧‧‧方法
併入於本說明書中且構成本說明書一部分的附圖說明本發明,且連同說明書一起用以解釋本發明之原理。
圖1係根據本發明之實例實施之系統的說明;圖2為一些實例中的可對應於圖1之系統之一系統的說明;圖3係根據實例實施之安全記憶體交易單元的說明;圖4說明根據實例實施之儲存於記憶體位置中之資訊的資料結構;圖5說明根據各種實例實施之雙混合費斯妥網路(double-mix Feistel network,DMFN)之「半金鑰」變體的一個回合; 圖6說明根據各種實例實施之具有「完全大小金鑰」之另一DMFN變體的一個回合;圖7說明根據各種實例實施之取代置換網路的一個回合;圖8A至圖8C說明可用於圖7中之各別S盒的三個組件;圖9說明可用於圖7中之另一S盒的一個組件;圖10說明根據各種實例實施之互斥或(XOR)操作的二進位樹連同「子金鑰」選擇層;且圖11說明根據實例實施之包括方法中之各種操作的流程圖。
現將詳細參考本發明之例示性實施,例示性實施之實例說明於附圖中。在可能時,相同參考數字將在整個圖式中用以指代相同或類似部分。在以下描述中,參考形成其一部分之附圖,且在附圖中藉助於說明展示可實踐本發明之具體例示性實施。足夠詳細地描述此等實施以使得熟習此項技術者能夠實踐本發明,且應理解,可利用其他實施,且可在不偏離本發明之範圍的情況下做出改變。因此,以下描述僅僅係例示性的。
在許多資訊安全應用中,需要徹底混合其輸入值之高效能、固定大小之輸入及輸出函數。被稱作位元混合器之此等函數產生與其輸入不具有統計相關性之輸出值,例如輸入之任何簡單改變平均引起輸出位元之半數改變。另外,位元混合器利用金鑰以變更其行為。當金鑰係秘密時,位元混合器之行為對於觀察者不可預測。
儘管在嵌入式應用中考慮效能及功耗,但高階超大規模整合(very-large-scale integration,VLSI)技術向設計者提供出於改良之安全性而交 換電路大小之某一能力。儘管其他使用係可能的,在下文論述輸入及輸出介面中之一者或兩者在設計內部且因此自觀察者隱藏之應用。在此等情況下,超出通用嚴格雪崩(avalanche)準則之密碼要求在未被消除之情況下最小化。具體言之,主要剩餘攻擊表面變成經由電路之旁路放射而曝露之資料相依資訊,包括回應時間之變化、電磁輻射及功耗之波動。
藉由執行反覆之變換步驟,該變換步驟被稱作回合,區塊保密器使用秘密金鑰來把被稱作明文(plaintext)的資料區塊加密至密文(ciphertext)區塊。衍生自保密器金鑰之回合金鑰影響該變換。保密器之安全及速度取決於如何產生此等回合金鑰。
如下文所述,藉由使用位元混合器、非線性複雜函數,提供受大金鑰材料影響之用於產生不相關回合金鑰的方法和系統。當在電子裝置中實施時,此等回合金鑰產生器比當前演算法快,同時具有極少或不可利用的旁路洩漏,從而改良安全性。此等引起更快且更安全之新保密器,同時降低功率消耗。
所揭示方法藉由使用高度非線性、極複雜之演算法、位元混合器,來改良區塊保密器之所產生回合金鑰的品質,該等方法以電子硬體最佳地實施。其改良產生速度、功率使用及保密器之安全性。將其用於嵌入型系統中(例如,用於飛機之單板電腦中)具有低成本。其並不顯著地增大電路大小,但降低總體功率使用。所部署系統可使用計算系統之較慢電子組件、進一步縮減之成本及能量與功率消耗。亦改良可操作速度及安全性。受影響系統包括飛行電腦、軍事及太空項目、公司網路、個人電腦及膝上型電腦、智慧型行動器件、甚至安全通信網路之安全子系統。高效能電腦、 安全微處理器、安全電子裝置或安全軟體之製造商始終想要改良其產品之品質、速度、安全性及功率使用。所揭示方法及系統改良計算系統之功率使用、效能及安全性:飛行中電腦、軍事及太空項目、公司網路、個人電腦及膝上型電腦、智慧型行動器件、甚至安全通信網路。
根據本發明之實例,回合金鑰(金鑰排程)係內部的,「在」任何反覆安全保密器(其由回合金鑰修改)「內」,且自未變更保密器之主金鑰衍生。位元混合器之輸入之部分係秘密(原始金鑰或先前回合金鑰),但該輸入亦可含有比如當前回合數之公共資訊。位元混合器使用額外金鑰材料,金鑰材料可係秘密,或比如在習知金鑰產生器中公開。公共金鑰材料亦可經寫死或以其他方式比如在習知金鑰產生器中固定。藉由使用所揭示之方法和系統,用於回合金鑰產生的基於位元混合器之演算法可用於任何反覆保密器內,其可提供較快操作(在平行電子硬體中)、較低功率及能量要求、適中電路尺寸、藉由排除回合金鑰之間的統計相關性所達成的改良式安全性,及藉由減少電子硬體實施之旁路洩漏所達成的改良式安全性。由位元混合器使用之金鑰材料經劃分成具有相等大小之夾頭,被稱作「子金鑰」。位元混合器產生具有任意長度之高度不相關回合金鑰,其使得金鑰排程演算法可縮放,亦即適用於任何區塊大小之保密器。
用於回合金鑰產生中之位元混合器的輸入包括保密器之秘密金鑰,且可包括回合計數器及先前回合金鑰中之至少一者。此回合計數器係短的(4…7位元),此係由於沒有實際保密器使用多於128個回合。計數器可藉由打亂及重複其位元(其中一些可能倒置)而展開成與金鑰相同的長度。藉助於一項實例,金鑰排程演算法可使用經展開計數器作為位元混合 器之輸入,且保密器金鑰為位元混合器之金鑰材料(之部分)。最簡單狀況係在保密器金鑰(cipher key)為位元混合器之第一子金鑰(subkey)時。其他子金鑰可(a)保持恆定或(b)藉由簡單演算法自保密器金鑰衍生出。另一實例包括保密器(cipher)之秘密金鑰(secret key)作為位元混合器之輸入,且經展開計數器為位元混合器之第一子金鑰。其他子金鑰(a)保持恆定或(b)藉由簡單演算法自保密器金鑰衍生出。金鑰排程演算法之另一實例,包括經展開計數器及保密器金鑰逐位元(bitwise)進行XOR以提供位元混合器之輸入。可使用具有類似安全性及速度益處的上文實例之替代性變體及組合。當經展開計數器及保密器金鑰經XOR時(上文第三實例),無需在擴展過程中倒置計數器位元中之任一者:用保密器金鑰之1位元進行XOR實際上倒置對應計數器位元。
位元混合器使用大量金鑰材料。當儲存於數位記憶體或暫存器中時,此金鑰材料允許保密器之個人化(依賴於此金鑰材料,定義不同保密器)。其他替代方案為寫死位元混合器之子金鑰。其使得金鑰排程更快,但所得保密器亦係固定的,該等保密器無法個人化。在實際中,此為最常見狀況:當經加密資料被發送至未知實體或自未知實體接收經加密資料時,保密器無法個人化。
所揭示金鑰排程機制中之任一者可直接替換任何現存區塊保密器之金鑰排程。因此,可定義數個新保密器,其相比原始版本在硬體實施中更快且更安全。可使用所揭示金鑰排程進行改良之一些保密器包括(但不限於)Twofish、Serpent、AES(Rijndael)、Blowfish、CAST5、RC4、3DES、Skipjack、Safer+/++、IDEA、SIMON、SPECK、Present、PRINT等。
吾人可大體考慮位元混合為藉由具有任意區塊大小之經減少回合保密器而被執行,其中可經由XOR函數或k至1之S-框,補充輸入或將輸出摺疊在一起(視需要以提供擴展或壓縮)。雖然確實存在其他構造,但根據本發明之實例的位元混合器之屬性包括:每一輸入位元影響每一輸出位元;輸入之簡單改變平均地使得輸出位元之半數改變;輸入之簡單改變得到與輸入或輸入之改變型樣不相關的輸出值,亦即標準統計測試接受對應輸出序列為亂數;使用金鑰以使其行為對於無法存取該等金鑰之觀察者而言不可預測;且該等輸入值及輸出值之固定長度可獨立地且任意地選擇。術語「簡單改變」可為位元中不到半數同時改變的一個改變,或甚至由使用少於一打指令的基於軟體之變換所產生的一個改變。應注意,上文第二個屬性為嚴格雪崩規則(Strict Avalanche Criterion)之一般化,此係具指導性的。對於反覆位元混合器,可判定回合之數目,在改變單個輸入位元之後,需要該回合數目來產生滿足嚴格雪崩規則之輸出值,亦即,不可自亂數區分。
現參看圖1,說明根據本發明之實例實施的系統100。系統可包括以下項中之一或多者:數個組件中之每一者、單元或其類似者(大體為「組件」),其中至少一些可由諸如多工器、暫存器、算術邏輯單元、記憶體、微處理器及其類似者之邏輯電路構成。系統可經設計用於數個不同應用程式中之任一者,且可在系統中具有特定適用性,該等系統包括或耦接至對攻擊敏感之記憶體,諸如飛行中電腦、軍事及太空項目、公司網路、個人電腦及膝上型電腦、智慧型行動器件。如所示,舉例而言,系統可包括在本文中被稱作請求器102之一或多個組件,其可操作以(例如,經組態 以)用一或多個記憶體104起始或以其他方式請求讀取及/或寫入交易(有時被稱作操作),其在一些實例中可出現在其間一或多個匯流排上。
根據實例實施,系統100可進一步包括在本文中被稱作安全記憶體交易單元(secure memory transaction unit,SMTU)106之一或多個組件,其經組態或可操作以加密及解密請求器102與記憶體104之間的資料傳送,且可在並非所有使用記憶體讀取或寫入交易的情況下用於至少一些中。且如下文所述,在一些但可能並非所有實例中,SMTU亦可經組態或可操作以鑑認記憶體之內容。在各種實例中,SMTU設計可為記憶體不可知的(memory agnostic),此係因為記憶體(內部或外部)之類型及位置可對於SMTU為「未知的」。
在一些實例中,SMTU 106可以極高機率向記憶體104中之每一位置提供不同加密。SMTU可將可平行化保密器構造用於記憶體之內容的加密及/或鑑認。在SMTU將可平行化保密器構造用於加密及鑑認中之一者但未用於另一者之一些實例中,SMTU可將數個其他加密中之任一者用於該另一者,諸如高級加密標準(AES)加密之標準操作模式之組合,如藉由使用本文所提供之位元混合器回合金鑰產生所修改。有待儲存於至少記憶體位置視窗內之各別記憶體位置處的明文資料(有時僅被稱作明文或資料)的每一量(例如,16個位元組)可用唯一加密(unique encryption)進行加密(encrypt),且用資料版本值及資料鑑認標籤進行標記,該量可與經加密資料(有時被稱作密文)一起儲存於該記憶體位置處。
在一些實例中,資料版本值可自全域寫入計數器(GWC)(例如,48位元值)衍生,其指示已發生在諸如當前計算會話中之經加密寫入操 作的數目。在其他實例中,資料版本值可使用多個計算會話上的寫入操作數目、時戳或其類似者導出。或在另外其他實例中,資料版本值可自時脈衍生出。
在一些實例中,GWC可在安全操作之每一會話開始時重置。在用作金鑰產生之部分或以其他方法使得加密或資料鑑認多樣化之前,GWC值可不受阻礙地進行儲存或使用使用者資料進行加密,且藉由秘密遮罩值修改。GWC值可在任何寫入操作之前遞增一遞增值,其大小可類似於GWC(例如,48位元值)。此遞增值可為在二進位表示中並不具有許多連續1或0的大的奇數值。合適的遞增值之實例為pi、e、sqrt(2)、sqrt(3)、黃金比例等之位元序列的分段。使用諸如此等值可確保連續GWC值平均而言在大約半個位元中改變。使用奇數GWC遞增值可確保GWC在十年以上連續操作後不會繞回典型應用程式。
記憶體位置處的資料鑑認標籤,可視彼記憶體位置處的密文而定,且呈保密之方式,此係因為敵手無法產生有效資料鑑認標籤,且敵手可能亦無法自資料鑑認標籤推斷關於密文之任何資訊。在一些實例中,資料鑑認標籤可充當訊息鑑認碼、用以鑑認密文且偵測資料竄改及假冒之短資訊段。標籤可藉由允許偵測對密文之任何改變來保護密文之完整性及其真實性兩者。在一些實例中,標籤可藉由一區塊保密器實施,亦即,對密文操作以執行藉由金鑰指定之變換的演算法。
可至少基於資料版本值及記憶體位置之位址,用金鑰產生記憶體位置處的密文及資料鑑認標籤。資料版本值可在記憶體位置處用每一寫入操作更新,且用以產生密文之金鑰可由此隨每一寫入操作以及記憶體 位置之改變而改變。資料鑑認標籤可使用不同於產生密文區塊之金鑰的第二金鑰產生;但類似於彼金鑰,第二金鑰可隨每一寫入操作以及記憶體位置之改變而改變。在一些實例中,可併入諸如安全性模式值之秘密隨機數及其他值,以進一步使得加密及鑑認多樣化。如本文中所描述,術語「隨機」可廣泛用於指代隨機或偽隨機(例如,藉由確定性演算法反覆產生之數,自真隨機種子開始)。
在讀取請求器102已請求來自記憶體之資料的交易期間,SMTU可自記憶體讀取經先前加密之資料(密文)。經加密資料可藉由SMTU解密及鑑認以防竄改標識;且SMTU可在經解密資料(明文)被視為有效的情況下將該資料返回至請求器。在寫入交易中,SMTU可讀取目標位置處的資料,隨後解密且鑑認彼資料正如讀取存取。一旦此係完整的,SMTU便可使得有待寫入之資料與自該位置處讀取之資料合併、進行加密,且接著寫回至記憶體。如此處所使用,合併意謂著替換所讀取回的資料中已經改變的部分。必要時,可在有待寫入完整密文區塊時使用不同方法。在此等情況下,合併操作可變為替代物,且可省略初始讀取操作,從而用安全性換取速度。
在各種實例中,用於為所讀取資料在系統100中之單元之間或內傳送提供安全性的方法可包括:將記憶體104劃分一系列可定址位置(記憶體由此為可定址記憶體),其各自具有一位址且各自儲存經加密資料、資料版本值(有時被稱作版本資訊,或僅被稱為版本值)及資料鑑認標籤。如本文中所描述,記憶體之可定址位置可有時係變化的,但同樣被稱作位址、位置或可定址位置。可將用於經加密資料之唯一加密金鑰,及用於資料鑑 認標籤的不同的唯一鑑認金鑰,用於每一位址。此等金鑰可對於敵手不可預測,且在其被使用前、使用中及使用後保持秘密。
在每一讀取操作中,可在具有各別位址之記憶體位置處讀取資料版本值、資料鑑認標籤及密文區塊。用以產生密文及資料鑑認標籤的各別金鑰,可使用資料版本值及各別位址再生。密文可用其金鑰進行解密以產生其對應明文。且在將第二金鑰用於資料鑑認標籤的情況下,可將密文與資料鑑認標籤進行比較,以驗證其完整性及真實性。
在每一寫入操作中,可將新的明文資料寫入至記憶體104中之記憶體位置。在一些實例中,可每一寫入操作位於該位置處的資料讀取及資料之驗證(SMTU 106將其驗證為有效的)之前。將資料寫入至記憶體位置的過程可包括SMTU更新資料版本值,以便反映所進行的記憶體寫入操作之新數目。SMTU可接著使用新資料之另一加密,其使用經更新資料版本值及記憶體位置之各別位址(且可能隨機數及/或某其他值),且SMTU可產生取決於經加密新資料的新資料鑑認標籤。
在本發明之實例實施之另一態樣中,SMTU 106可經組態或可操作以實施可平行化保密器構造。此保密器可為不可倒置區塊保密器,且包括複數個並聯的不同混合函數及一組合函數。如下文中更詳細地解釋,此等混合函數可包括不同類型函數之相同或不同的組合,諸如費斯妥網路、雙混合費斯妥網路(DMFN)、取代置換網路、逐位元互斥或(XOR)操作之二進位樹一樹有時被簡單地稱作XOR樹,操作減少數目個回合的一些標準加密,及其類似者。實例實施之保密器可以用於加密或鑑認,且可實施於各別電路之至多一個時脈循環中的一或多個邏輯電路中。當將不可倒 置位元混合器用作加密時,在諸如電子碼簿(electronic codebook,ECB)或密碼區塊鏈(cipher-block chaining,CBC)之某些加密模式中可能無解密,儘管串流保密器模式係可能的。
根據實例實施之此另一態樣,SMTU 106可經組態或可操作以接收n位元輸入資料區塊,且藉由保密器自該輸入資料區塊產生m位元輸出資料區塊。區塊大小n可為任意的,且在各種實例中,n可為64位元、128位元或256位元;及m及n數值可相等或不等。輸出資料區塊之生產可包括:SMTU經組態或可操作以將複數個並聯的不同混合函數應用於輸入資料區塊,以產生複數個經更新資料區塊,其中每一混合函數經組態或可操作以將輸入資料區塊映射至複數個經更新資料區塊中的相應一者。SMTU可接著在組合函數中組合複數個經更新資料區塊,以產生輸出資料區塊。
在一些實例中,混合函數可為可倒置的。如上所指出,混合函數可為不同的,且可為數個不同類型混合函數中之任何一或多者。舉例而言,混合函數中之至少一些可藉由包括各別不同回合函數的各別費斯妥網路實施。另外或替代地,舉例而言,混合函數中之至少一些可藉由包括各別不同第一或第二回合函數的各別DMFN實施。另外或替代地,舉例而言,混合函數中之至少一些可藉由包括各別不同取代層或變換層之各別取代置換網路實施。進一步另外或替代地,舉例而言,混合函數中之至少一些可藉由各別XOR樹實施,其中複數個子金鑰可自輸入資料區塊產生且使用各別二進位樹混合。
在一些實例中,在組合函數中,輸出資料區塊之每一位元可取決於輸入資料區塊之一或多個位元,且資料區塊之每一位元可影響輸出 資料區塊之一或多個位元。在更特定實例中,組合函數可藉由逐位元XOR操作或另一適當的可能更複雜的操作實施。
在一些實例中,針對位元混合器函數,m位元輸出資料區塊中之m可與n位元輸入資料區塊中之n具有相同數值。在其他實例中,m可不同於n。此位元混合器函數可用此等位元混合器函數建構,其具有等於長度的輸入及輸出,被稱作區塊長度。舉例而言,若m>n,則位元混合器之區塊大小可為m,經更新資料區塊(位元混合器之輸出)可分割成數段,其可接著組合以產生輸出資料區塊。在另一實例中,若m<n,則位元混合器之區塊大小可為n。在此狀況下,輸入資料區塊之長度可藉由重複某些位元(其中一或多者可倒置),且在各別輸入資料區塊中分配此等重復位元來增大至n,可能針對每一混合函數而不同。位元混合器可接著對此等長度經擴展之輸入資料區塊操作。
在保密器用於鑑認的一些實例中,輸出資料區塊可為資料鑑認標籤,且SMTU 106可經組態或可操作以產生取決於記憶體104中之記憶體位置之各別位址的資料鑑認標籤。在m=208且n=80的一項實例中,用於保密器的輸入資料區塊,可為串接有32位元位址及48位元資料版本值的128位元密文,且資料鑑認標籤可由所得80位元形成。SMTU可接著經進一步組態且可操作以執行寫入操作,以在具有各別位址之記憶體位置處寫入密文區塊及資料鑑認標籤。在此等實例中,受保護記憶體可包括含有資料記錄之複數個記憶體位置視窗,其中每一者儲存具有隨記憶體位置改變之各別資料鑑認標籤的經加密之明文區塊。
在將保密器用於加密的一些實例中,輸出資料區塊可為多位 元填補值(pad value),且SMTU 106可經組態或可操作以基於記憶體104中之記憶體位置的各別位址產生該填補值。在n=m=128的一項實例中,可用由32位元位址構成、串接有48位元資料版本值及組態資料的輸入資料區塊計算該填補。SMTU可接著藉由XOR操作將填補值與明文區塊組合,以產生密文區塊。類似於先前實例,SMTU可經進一步組態或可操作以執行寫入操作,以在具有各別位址之記憶體位置寫入密文區塊。且記憶體可包括一記憶體位置視窗,其中每一者儲存隨記憶體位置改變之複數個各別密文區塊。
圖2說明在一些實例中可對應於圖1之系統100之系統200的一項實例。可根據數個不同方法中之任一者而建構系統。在一些實例中,可根據系統單晶片(system-on-chip,SoC)方法而建構系統,在SoC方法中系統之組件整合至單個積體電路(integrated circuit,IC)(有時稱作「晶片」)中。在一更特定實例中,可根據來自IBM公司之CoreConnect微處理器匯流排架構而建構系統。如本文中所描述,可以諸如SoC或甚至CoreConnect之特定技術的命名法描述系統之各組件或系統之組件的函數。應理解,本文所使用之任何具體命名法僅僅係出於說明之目的,且不應被視為限制本發明之實例實施的範圍。
類似於圖1之系統100,圖2之系統200可包括數個組件,該等組件中之至少一些可由邏輯電路構成。如所展示,舉例而言,系統可包括微處理器核心202、記憶體204及SMTU 206,以上各者在一些實例中可用作或對應於圖1之請求器102、記憶體104及SMTU 106。儘管未展示,但應理解,系統可包括可有時經組態或可操作以用作請求器之其他組件, 請求器同樣可經組態或可操作以起始或以其他方式請求與記憶體之讀取及/或寫入交易的組件。
如圖2中所示,微處理器核心202可連同記憶體204、SMTU 206及其他組件直接地或間接地耦接至第一匯流排208,且第一匯流排之使用可藉由仲裁電路210分配。在一項實例中,微處理器核心可為可購自IBM公司之PowerPC核心,且第一匯流排可為處理器本端匯流排(processor local bus,PLB)。適合之記憶體的實例包括嵌入式動態隨機存取記憶體(embedded dynamic access memory,eDRAM)212,雙資料速率同步(或其他)動態隨機存取記憶體(double data rate synchronous dynamic random access memory,DDR DRAM)214等等,其中一些可藉由各別記憶體控制件或介面216、218耦接至第一匯流排。在系統建構為具有整合至單個積體電路220中之各種組件之SoC的一些實例中,記憶體可在系統之其他組件晶片外(外部),且可藉由晶片上(內部)記憶體控制耦接至第一匯流排。此例如由圖2中之DDR DRAM說明。
耦接至第一匯流排208之組件亦可包括第一匯流排與另一第二匯流排224之間的匯流排橋接器222,第二匯流排諸如額外組件可耦接至之交易匯流排,額外組件諸如安全處理器226及可能可有時用作請求器之組件。在一些實例中,第一匯流排可係具有耦接至其之高效能組件的高速匯流排,且第二匯流排可係低速匯流排。在此等實例中,匯流排橋接器可用以分離高效能組件與低效能組件,此可又改良系統效能。
SMTU 206可經組態或可操作以對諸如微處理器核心202之請求器與eDRAM 212或DDR DRAM 214中之任一者或兩者之間的資料傳遞 進行加密及解密。SMTU可充當伺服藉由微處理器核心或另一請求器起始之讀取及寫入請求的從屬單元,其中SMTU可起始如自特定記憶體位址所請求的讀取或寫入。SMTU可由此為此等交易提供高度的安全。
SMTU 206可以數個不同方式中之任一者在系統200中耦接。如所展示,例如,SMTU可藉由三個雙向外部資料介面耦接至匯流排橋接器222,且可藉由另一雙向外部資料介面耦接至安全處理器226。亦即,SMTU可藉由微處理器核心介面228、第二匯流排介面230及記憶體介面232耦接至匯流排橋接器,且藉由命令及控制介面234耦接至安全處理器。
微處理器核心介面228可經由第一匯流排208耦接至微處理器核心202,以接收控制資訊,諸如自記憶體204讀取資料及/或將資料寫入至該記憶體的請求。第二匯流排介面230可耦接至第二匯流排224,且記憶體介面232可經由第一匯流排耦接至記憶體。匯流排橋接器222可允許微處理器核心介面及記憶體介面上方之交易,僅路由傳送至第一匯流排及自第一匯流排路由傳送,且第二匯流排介面上方之交易僅路由傳送至第二匯流排及自第二匯流排路由傳送。接著,命令及控制介面234可使得安全處理器226能夠經由單獨介面向SMTU提供命令及控制資訊。
圖3係說明圖2之SMTU 206之各種組件的圖式,該等組件中之至少一些同樣可由邏輯電路構成。如所展示,SMTU可包括具有控制暫存器304及狀態暫存器306之命令控制單元302,且命令及控制介面234可耦接至該命令控制單元302。SMTU可包括交易仲裁器308,其耦接至微處理器核心介面228、第二匯流排介面230及記憶體介面232,且經組態或可操作以分配該微處理器核心介面228、該第二匯流排介面230及該記憶體介 面232之使用。微處理器核心介面上之先進先出(FIFO)記憶體310可經組態或可操作以緩衝至仲裁器之交易。
仲裁器308還可耦接至交易控制單元312及位址轉譯單元314,且交易控制單元可又耦接至提供金鑰產生器318、加密單元320及資料雜湊單元322之密碼單元316。密碼單元可耦接至金鑰材料儲存區(key material store,KMS)324,其經組態或可操作以向金鑰產生器提供隨機數,以產生用於加密單元及資料雜湊單元之金鑰。加密單元可經組態或可操作以回應於調用SMTU 206之讀取或寫入請求,用適當記憶體204加密及解密用於所有讀取及寫入操作的資料。且資料雜湊單元可經組態或可操作,以產生用於自記憶體讀取且寫入至該記憶體之經加密資料(密文)的資料鑑認標籤。在一些實例中,加密單元或資料雜湊單元中之任一者或兩者可使用可平行化保密器構造,諸如本文中所描述之可平行化保密器構造。而且,在僅一個單元使用但其他單元並不使用可平行化保密器構造之一些實例中,其他單元可使用數個其他構造中之任一者。舉例而言,加密單元可經組態或可操作以針對加密及解密操作而使用AES加密,或資料雜湊單元可經組態或可操作以使用鍵控雜湊函數,如藉由使用如本文所提供之位元混合器回合金鑰產生來改進。
在一些實例中,KMS 324可包括經組態或可操作以提供隨機數之一或多個暫存器陣列326(有時被稱作KMS記憶體)。因為SMTU依賴於由KMS提供之隨機數,所以使用高品質隨機數常常係合乎需要的。在一些實例中,隨後,KMS可包括提供16K位元隨機數之四個64×64暫存器陣列。在操作之前,KMS單元可用16K位元隨機數初始化,其中在一些實例 中可超出SMTU之範圍而產生。
作為使用真正隨機數之替代方案,在一些實例中,KMS 324可自諸如512×16 ROM之一或多個內建組態/熵唯讀記憶體區塊(read-only memory block,ROM)328初始化,該等ROM中之三者展示為ROM1、ROM2及ROM3。此等ROM可含有在系統設計期間產生之隨機數。將組態ROM用作隨機數之源可使得所產生之金鑰不太隨機,因此降級防竄改機制之強度。然而,存在將ROM用作隨機數源可係合乎需要的應用。一個應用屬於時間關鍵應用,其中與隨機數之產生相關聯的長初始化延遲並非可接受的。另一類型係需要產生可在系統重設之後恢復的加密資料影像或可在不同系統上恢復之影像的應用。
可在下文及在前述相關且併入之'871申請案中找到關於根據實例實施之系統200及SMTU 206之各種特徵的其他資訊。
圖4說明根據本發明之一些實例實施的儲存於記憶體104、204中之加密紀錄的資料結構。如所展示,可使用32位元組區塊來儲存經加密資料,該等區塊中之每一者可包括16個位元組之經加密有效負載(密文)及16個位元組之安全性資料。安全性資料可包括6個位元組之資料版本值(在所說明的實例中,寫入計數器值)及10個位元組之鑑認標籤。6位元組寫入計數器係可每當寫入記憶體位置時遞增的欄位,不論位址為何。因此,遞增值對每一位址係唯一的。用於記憶體位置之加密操作及鑑認金鑰可衍生自其位址和寫入計數器值,且衍生自隨機數。在其他實例中,可在加密中使用更多或更少欄位。因為每16個位元組之經加密資料需要額外個16個位元組以用於鑑認標籤及寫入計數器值,所以記憶體位置之每一視窗的 有效資料儲存容量可係其實體大小之半數。但同樣,在其他實例中,可實施更大或更小之記憶體及不同的資料及標籤大小。
圖5說明根據本發明之實例實施之DMFN 500的一個回合。在DMFN中,藉由被用於壓縮或擴增之位元混合器所需要的重複輸入位元或折迭輸出位元,區塊大小可為輸入大小及輸出大小中之較大一者。具體而言,資料被處置為兩半L及R。在每一回合Round i 中,兩個函數FGL i R i 計算L i+1 R i+1 。最初輸入L 0 R 0 被設定成位元混合器之輸入,而最後的值L r R r 構成輸出。雖然L i+1 係使用輸出FR 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 構成輸出,FG表示第一及第二回合函數,且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閘為實施非或、負或,或否定或邏輯函數的一個閘。
在DMFN之狀況下,第二回合函數(G)可為可倒置的,但其倒置無需可易於計算。類似於第一函數(F),在一些實例中,第二函數可取決於(depend on)回合(例如,G i ),但在其他實例中,第二函數可獨立於(independent of)回合。
在一些實例中,一層非線性取代框(s盒)可用於第二函數(G),該函數可使得其映射為非線性的。在其他實例中,第二函數可執行左半部之環狀移位或旋轉,其可接著與回合金鑰混合,且用該金鑰計算經更新右半部。在更特定實例重,第二函數可產生左半部之三個經環狀移位版本,且其在相同位置處的每三個位元可與此位置中之回合金鑰的位元,一起經XOR以產生所得經更新右半部之位元。就此而言,可展示,在區塊lengths=2n處(其中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無需為可倒置的,因為在反方向上,其倒置甚至不需要用於位元混合器之倒置。在一項實例實施中,使用快速的足夠複雜的構造,其在二進位多項式之伽羅華(Galois)欄位中係非線性的,如下:NAND環狀距離d 3 d 4 之外的兩個L i 經移位版本
NOR環狀距離d 5 d 6 處的兩個其他L i 經移位版本
NAND環狀距離d 7 d 8 處的兩個另外其他L i 經移位版本
XOR上文三個位元區塊L i
在硬體實施中,移位基本上耗費極少時間。就此而論,FG之路徑長度幾乎相等,僅僅需要適中手動工作量來平衡關鍵時序路徑,用於經減少之旁路洩漏。FG可能在某些回合中(若並非所有回合)不同, 或吾人可在我們的實施中使其在所有回合中相同。
應注意,具有可倒置函數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,其說明根據此等其他實例實施之DMFN 600的一個回合。在DMFN中,藉由應用回合金鑰k i 以更改R i+1 而非L i+1 ,計算兩半之工作可經平衡。亦即,兩半可變為在相同時間可用。但R i 可在應用第一函數(F)的同時未經使用。因此,如圖6中所示,R i 可在無攪亂(upset)平衡的情況下與另一回合金鑰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 構成輸出,FG表示第一及第二回合函數,且k i h i 表示回合金鑰。回合r-1處的輸出可為位元混合器之輸出,經更新資料區塊(L r ,R r )。
亦可使用基於熟知取代置換網路的位元混合器之可倒置版本。類似於費斯妥網路及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說明根據本發明之實例實施之取代置換網路700的三個回合。可使用基於熟知取代置換網路的位元混合器之可倒置版本。對於壓縮或擴展變體,區塊大小經選擇為所要輸入及輸出區塊大小中之較大者。若輸入大小較小,則未使用的輸入位元可保持恆定,或重複使用輸入位元, 直至其匹配輸出大小。若所需的輸出大小較小,吾人可經由XOR或其他適當函數捨棄輸出位元或摺疊某些位元,以產生最終輸出。通常根據圖7建構取代置換(Substitution-Permutation,SP)網路,其具有以下3個步驟之若干反覆:1.藉由一系列非線性函數,S盒變換輸入。
2.繞行(reroute)/置換結果之位元
3.用回合金鑰/子金鑰XOR經置換資料
應注意:常常簡化第一及最後一回合,省略一或兩個步驟
若S盒係可倒置的,則SP網路係可倒置的。若S盒係非線性的,則SP網路係非線性的。SP網路可為任意寬度,其中充分混合所需的回合數目取決於其寬度。在硬體實施中,小的S盒傾向於產生更快位元混合器。一個具有3個輸入位元及3個輸出位元的最小實際S盒實施於PRINT保密器中,如藉由Lars Knudsen、Gregor Leander、Axel Poschmann、Matthew J.B.Robshaw在電腦科學講演筆記系列,2010年,第6225卷第16-32頁,密碼硬體及嵌入型系統CHES中所描述,PRINT保密器用於IC列印之區塊保密器。此3×3S盒之三個輸出位元定義如下:F0=A B' C'+A'(C+B)
F1=A' B C+B'(C'+A)
F2=A B C'+C(B'+A')
圖8A-8C展示可用以實施此S盒的各別小型快速電路,其中800展示用於計算F0之電路,820展示用於計算F1之電路,且840展示用於計算F2之電路。其針對每一輸出位元僅需要極少數閘。
類似地,如藉由A.Bogdanov、L.R.Knudsen、G.Leander、C.Paar、A.Poschmann、M.J.B.Robshaw、Y.Seurin、C.Vikkelsoe在電腦科學講演筆記系列,2007年,第4727卷第450-466頁,密碼硬體及嵌入型系統-CHES中的PRESENT保密器(PRESENT:超輕型區塊保密器)中描述實施4×4S盒,如下:F0=A'B C'+A C D+A'B D'+A B'C'+A C'D';F1=A'B'C+B C'D+A B'C'D'+A B C+B CD';F2=A B C'+A C'D+A'B' D'+A'B C+A'B D;F3=A'B D+A' C'D+A B D'+A C'D'+A B'C D+A'B'C D';圖9展示可用以實施四個輸出信號中之一者的例示性電路設計900。此S盒需要稍微更多閘用於每一輸出。可使用其他4×4 S盒設計來達成類似效能及混合屬性。亦可實施較簡單較快S盒,然而,其需要額外回合以達成同樣充分混合屬性,此有效地減小位元混合器之總體效能。
可使用合適的置換,其用於諸如PRINT保密器、PRESENT及AES之保密器中,以及諸如SHA3之雜湊函數中。由上文列出的前兩個保密器使用的簡單置換達成其輸入位元在前幾個回合中之完美分散;受單個輸入位元改變影響的位元被饋入至不同S盒中。此置換如下定義,其中有待混合之輸入區塊大小為b,且S盒之寬度為s:P(i)=si mod b-1對於0 i b-2;且P(b-1)=b-1
mm完美S盒將單個輸入位元改變分配至下一回合之m個位元。在使用適當置換的情況下,此等位元經路由傳送至下一回合之不同S盒,將改變分配至m2個位元。在r個回合之後,輸入中之單個位元改 變影響m r 輸出位元,直至所有位元受影響。吾人想要m r n,亦即r log(n)/log(m),從而單個輸入位元改變影響所有輸出位元。當然地,更多回合將達成更充分混合。
在使用PRINT保密器S盒之SP網路的一實例實施中,輸入及輸出寬度設定成255位元。為達成完美混合,所需回合之理論最小數目為r=log(255)/log(3)5。對1000個隨機金鑰集合之試驗的統計測試指示需要更多回合。九個回合始終足以達成統計上完美的混合。在單一時脈循環中執行9回合(視需要在最差狀況中)允許時鐘速率達至450MHz。在使用PRESENT保密器S盒之SP網路的另一實例實施中,輸入及輸出寬度設定成256位元。為達成完美混合,所需回合之最小數目為r=log(256)/log(4)=4。對1000個隨機金鑰集合之試驗的統計測試指示6個回合足以達成統計上完美的混合。甚至在最差6個回合中,使用PRESENT保密器S盒之SP網路S盒需要比利用PRINT保密器S盒之彼等網路少用3個回合,且在每一回合中更徹底遠離任何線性函數混合。回合差產生效能增大,其中在單一時脈循環執行所有6各回合允許時鐘速率達至500MHz。
圖10說明根據各種實例實施之XOR樹1000。根據使用XOR樹之實例,混合函數可係基於秘密隨機數(例如,KMS 324)及輸入資料區塊。就此而言,子金鑰可為一連串區塊中之秘密隨機數區塊,其位置對應於輸入資料區塊中之某些位元的位置,諸如具有二進位值一(或替代地,零)之彼等位元。子金鑰可接著使用XOR樹混合在一起。
如圖10中所示,XOR樹1000可包括可經實施以進行資料合併操作之複數個XOR邏輯閘。在圖10中,邏輯閘中之每一者表示一系 列閘,一個閘用於其所操作之子金鑰之每一位元。
在基於XOR樹之位元混合器,輸入被分割成多個具有任意長度的非空連續位元集合,從而形成位元群組。來自每一群組之位元使用多工器自金鑰材料選擇子金鑰,其輸出一起逐位元XOR以產生最終位元混合器輸出。雖然XOR操作通常使用ASIC中的2輸入XOR閘之樹實施,但可取決於(例如)提供寬查找表的FPGA中之目標技術,使用多輸入閘或同位產生電路。此構造之位元混合器不僅實施簡單,而且提供高效能、低電力消耗、經改良安全性及最小旁路攻擊表面。
由於基於XOR樹的位元混合器之輸入寬度及輸出寬度可獨立地選擇,因此分別藉由選擇較長輸出寬度或較長輸入寬度,產生擴展及壓縮函數。在具有隨機金鑰材料的情況下,任何單個輸入位元改變會使得輸出藉由隨機子金鑰改變。就此而論,每一輸出位元受任何輸入位元改變影響。此外,在給定位元混合器構造的情況下,多個輸入位元改變會導致輸出藉由本身隨機的隨機子金鑰之經XOR聚合改變。總計,基於XOR樹之位元混合器滿足如上文所述之所要屬性中之每一者,且確保理論上完美之混合。
在一項實例實施中,電路在ASIC中進行評估,其自80位元輸入擴展至256位元輸出,將用於子金鑰選擇之2比1多工器及2輸入XOR閘用以實施七層級XOR樹。即使在電路內之閘具有有限散出型/負載的情況下,位元混合器電路可易於在時脈速率超過1.2吉赫之系統中之單一時脈循環中操作。
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)構造(適合於微處理器實施)。使該構造非線性的另一方式為用類似於圖9中所示之一者的k至1非線性S盒替換XOR樹之一或多個層級中的XOR操作。雖然實施簡單,但額外不均勻電路延遲可能需要手動信號傳播,用於平衡低旁路洩漏。以適中工作量,用S盒,替換XOR樹之一個層級在達至1.0吉赫之時脈速率下達成單一時脈循環操作。
現返回參看圖2及圖3,根據實例實施之記憶體204中之記憶體位置的視窗中之記憶體位置處的寫入操作,可包括微處理器核心202 在記憶體位置處產生對具有各別位址之資料的請求,及將彼位址提供給第一匯流排208上之記憶體204。當然,而非自微處理器核心接收位址,可自諸如直接記憶體存取(DMA)控制器之某一其他請求器提供位址。
所接收位址亦可提供至SMTU 206。在一些實例中,該位址可為邏輯位址,且可藉由位址轉譯單元314轉譯成實體位址。該位址可經由交易控制單元312提供至金鑰產生器318,其可在功能上包括經組態或可操作以產生各別金鑰W、C及D的三個金鑰產生器(有時在本文中被稱作金鑰產生器W、C及D)。三個金鑰產生器中之每一者亦可接收早先儲存於KMS 324中或產生於該KMS中的隨機數。儲存於記憶體位置處的係寫入計數器值(例如,資料版本值)、資料鑑認標籤及密文區塊,且此資訊可提供至交易控制單元。在一些實例中,寫入計數器值可經加密,且此加密可極簡單,且其金鑰可為預定義常量,而無顯著安全性損耗。
加密單元320或SMTU 206之另一組件可使用金鑰W來解密寫入計數器值。加密單元可使用金鑰C來解密密文,而在一些實例中,交易控制單元可使用資料雜湊單元322以基於密文、金鑰D及資料鑑認標籤而驗證密文之完整性。假定驗證了密文之完整性,則經解密密文(現明文)可重寫至記憶體位置。另一方面,未驗證密文真實性之個例可用信號發送錯誤。
在出現錯誤的情況下,其可指示已出現隨機錯誤或可能的資料竄改,且交易控制單元312可作為回應執行數個不同動作中之任一者。舉例而言,交易控制單元可使得系統200執行:(i)停止處理所有讀取及寫入請求;(ii)刪除用於當前會話中之加密的隨機數;(iii)清空參與金鑰產生活動 之所有暫存器;(iv)觸發記憶體清空以用所有零覆寫記憶體視窗之內容;或(v)採用其他動作。在另一實例中,交易控制單元可維持故障計數器,其可回應於錯誤而遞增。在此方法中,若達到錯誤數目之臨限,則交易控制單元可促成上述動作中之任何一或多者。此方法可在有噪聲環境中有用,其中隨機記憶體讀取錯誤間或出現。
在一些實例中,記憶體204中之記憶體位置處的寫入操作,可放在該記憶體位置處的讀取操作之前,諸如上文所述之彼者,以驗證儲存於記憶體位址處的資料係可靠的。若執行先前讀取,則僅當讀取操作建立資料之真實性時,才的確出現寫入操作。在一些實例中,隨後,寫入操作可包括交易控制單元312經組態或可操作,以將待寫入之新資料與經解密密文(明文)合併。
交易控制單元312經組態或可操作以遞增GWC,且將更新值提供至金鑰產生器318之金鑰產生器CD中之每一者。在使用遞增寫入計數器值及記憶體位置之位址的情況下,金鑰產生器CD可產生新金鑰CD,且將金鑰分別提供至加密單元320及資料雜湊單元322。加密單元可使用新金鑰C來加密經合併明文以產生新密文,且資料雜湊單元可使用經再生密文及金鑰D產生新的資料鑑認標籤。金鑰W與經遞增GWC值之組合可用以提供經加密寫入計數器值。所得寫入計數器值、資料鑑認標籤及密文可接著返回且寫入至記憶體位置。
圖11說明根據本發明之實例實施的在電腦系統中提供安全之方法1100中的各種操作。安全性可藉由針對執行密碼操作之保密器產生一或多個回合金鑰而提供。如本文所使用,密碼操作包括一或多個密碼函 數。在1105,方法藉由獲得一或多個第一輸入及一或多個第二輸入開始。在一些實例中,該一或多個第一輸入可包含來自一金鑰材料的複數個相等大小的子金鑰或一保密器金鑰,該金鑰材料係被劃分成複數個相等大小的金鑰材料子區塊,且該一或多個第二輸入可包含一隨機產生之固定輸入、一或多個先前回合金鑰或一回合數。在一些實例中,可自藉由應用一密碼函數之一較短金鑰、具有經寫死之金鑰材料之一位元混合器、一計數器輸入或其組合而產生該一或多個第一輸入。在一些實例中,該密碼函數可包含一保密器、一雜湊函數或一串流產生器。在一些實例中,材料係秘密,且在通信方之間共用。金鑰材料可經寫死。其可隨機產生及儲存。在一些實例中,該保密器金鑰係藉由對該保密器金鑰之部分及該金鑰材料之部分的互斥或(XOR)操作而與經寫死之金鑰材料組合。
在1110,方法藉由以下操作繼續:藉由至少一個電子電路,對該一或多個第一輸入及該一或多個第二輸入中之每一者執行一位元混合器操作。在一些實例中,該位元混合器操作包含一互斥或(XOR)樹、一取代置換網路或一雙混合費斯妥網路或一旋轉-加法-XOR(RAX)構造。在一些實例中,XOR樹包含複數個否定及(NAND)閘或複數個多工器以作為XOR樹之第一層。位元混合器操作經選擇而具有包含以下各者之屬性:每一輸入位元影響每一輸出位元,輸入位元之改變平均地使輸出位元之半數改變;輸入位元之改變得到與輸入位元或輸入之改變型樣不相關的輸出值,使用金鑰以使其行為對於不知曉該等金鑰之觀察者而言不可預測,且該等輸入值及輸出值之固定長度可獨立地且任意地選擇。
在位元混合器操作包含XOR樹之實例中,該方法進一步包 含:對該一或多個第一輸入之每一第一輸入及該一或多個第二輸入之每一第二輸入,執行一反及「NAND」邏輯操作,以選擇將該複數個第一輸入中之哪一者輸入至一XOR邏輯操作中,其中該XOR樹之一輸出產生關於用作輸入之該複數個第一輸入的輸出。
在位元混合器操作包含取代置換網路之實例中,該方法進一步包含對該複數個第一輸入中之每一者執行一非線性取代操作;對該非線性取代操作之每一輸出執行一置換操作;對該置換操作之每一輸出及該等第一輸入中之一者或該等第二輸入中之一者執行一逐位元XOR操作。
在位元混合器操作包含雙混合費斯妥網路之實例中,該一或多個第一輸入中之每一者經劃分成一初始左半部及初始右半部,該方法進一步包含針對複數個回合中之每一回合,計算一經更新左半部及一經更新右半部,其中該計算該經更新左半部包含將一第一函數應用於一輸入左半部以產生一第一結果,及混合該第一結果與一輸入右半部,其中計算該經更新右半部包含將一第二函數應用於該輸入左半部以產生一第二結果,及混合該第二結果與一回合金鑰,且其中該輸入左半部及該輸入右半部,針對該複數個回合中之一第一回合係初始左半部及初始右半部,及針對該第一回合之後的每一回合之一緊接先前回合係經更新左半部及經更新右半部。
在1115,該方法前進以藉由至少一個電子電路,基於該執行而產生一或多個回合金鑰。在一些實例中,該產生進一步包含對該執行之一輸出執行一擾亂操作。在一些實例中,該方法進一步包含使用該一或多個回合金鑰產生一資料區塊。在一些實例中,該方法進一步包含針對一 密碼保密器重複該執行及該產生該一或多個回合金鑰。
在一些實例中,可使用複數個子金鑰產生一密文區塊。該密文可藉由修改現存保密器C,使其成為更快且更安全的保密器D來產生。在此實例中,選擇反覆保密器C(以「回合」工作)。反覆保密器C可為但不限於DES、TDES、AES等。選擇位元混合器B,其輸出大小與C之回合金鑰的大小相同。位元混合器B可為(但不限於)XOR樹、SP網路、DMF網路,如上文所論述。針對位元混合器B選擇固定金鑰材料M,其中M可任意選擇,從而避免簡單的非隨機模式。M可隨機產生,且在所有通信方中分配,其將使用DC具有回合金鑰產生器函數F,其為一些先前回合金鑰之輸入(保密器金鑰為第一輸入)。用B替換F以將C變換成D。B之輸入大小可大於其輸出大小(壓縮函數)。在此狀況下,額外位元可用回合計數器之值填充,且可能用多個先前回合金鑰填充,且可能用保密器金鑰填充。
儘管密碼函數可在數學上安全,但其實體實施可經由旁路漏泄關於資料及金鑰的資訊。旁路包括回應時間改變、電磁輻射、功率消耗波動、甚至器件插腳上的電壓位準改變。因為上文描述之功能可僅僅使用簡單的組合邏輯閘以硬體實施,所以旁路洩漏經最小化。更重要的,由於電路不需要通常為旁路洩漏之主要源的結構,諸如正反器、鎖存器及其他類型之儲存器件,因此該等電路對旁路分析不太敏感。
仍然存在之洩漏亦可使用手動佈局技術遮蔽,以平衡已高度對稱之內部信號路徑,由此保證許多並行切換事件幾乎同時出現。此平衡步驟可能並不必要,此係由於藉由本發明人針對ASIC之32nm SOI目標技術進行的測試中之切換瞬變為皮秒。就此而論,記錄/分析自此等瞬變漏泄 之資訊以致力於建立範本攻擊,將需要具有THz範圍中之取樣率的資料獲取系統,該範圍為比可預見未來中可用的更快的數量級。使用DPA旁路分析工作站,不會量測到可利用的旁路洩漏,諸如在給定變化輸入位元之情況下的功率軌跡與輸出位元之間的相關性。
雖然獲自金鑰材料之不同子金鑰可共用位元,但存在幾個限制。對於XOR樹位元混合器的一個此等限制為,同一金鑰材料位元禁止出現在藉由不同輸入位元群組所選擇的多個子金鑰之相同位置中,此係因為XOR操作可有效地取消此位元。注意,一種簡單的位元再次使用方法為藉由位元旋轉另一子金鑰來產生若干子金鑰。此以及更複雜的金鑰材料映射可用以減小金鑰儲存器之大小,或最小化分配金鑰所需的頻寬。
給定有限頻寬的情況下用於高效率金鑰分配的另一解決方案利用具有經寫死之金鑰材料之第二位元混合器。自較短金鑰,第二位元混合器可反覆地產生用於第一位元混合器之子金鑰。亦可反覆地使用保密器及密碼雜湊函數,以在使用之前填充金鑰材料儲存器。
雖然上文列出之位元混合器經最佳化用於硬體實施,但存在當實施於軟體中時作用良好的構造。儘管單一時脈循環操作係不可能的,但相比具有類似輸入及輸出大小之保密器或雜湊函數,上文實例位元混合器可仍為在軟體中較快的數量級。當無高安全性,僅僅需要一些所產生資料之統計獨立性時,吾人可即使用軟體位元混合器亦節省相當大的計算時間。
藉助於一項實例,較適用於軟體實施之位元混合器家族可為基於旋轉、添加、XOR(RAX)構造的。下方為C中之64位元實例。常量為 經寫死子金鑰,將被來自金鑰儲存器之子金鑰替換。在以下實例中,函數ROL為左旋轉,L及R為小常量,例如,4及9,且內部變數k初始化至0:x=(k+=0x3779884922721DEB);x=(x ^ ROL(x,L) ^ ROL(x,R))+0x49A8D5B36969F969;x=(x ^ ROL(x,L) ^ ROL(x,R))+0x6969F96949A8D5B3;x=(x ^ ROL(x,L) ^ ROL(x,R));存在許多其他資訊安全性應用,其中位元混合器可為有益的。若不僅其金鑰,而且位元混合器之輸入及/或輸出亦保持為自觀測器不可見,則不存在特殊安全性要求,或安全性要求不如保密器或其他密碼函數嚴格,其已經設計用於可見輸入及輸出時的高安全性。硬體位元混合器係極快的,且以低旁路洩漏,自相關輸入產生統計上不相關之輸出。此等屬性在位元混合器用於密碼函數中時改良其安全性。
此外,本發明包含根據以下條款之具體實例:條款1:一種用於產生用於一密碼操作之一或多個回合金鑰的方法,該方法包含:獲得一或多個第一輸入(1105)及一或多個第二輸入(1105);藉由至少一個電子電路,對該一或多個第一輸入及該一或多個第二輸入中之每一者,執行(1110)一位元混合器操作(500、600、700、1000);及藉由至少一個電子電路,基於該執行而產生(1115)一或多個回合金鑰。
條款2:如條款1之方法,其中該一或多個第二輸入(1105)包含隨機產生之固定資料、一或多個先前回合金鑰或一回合數。
條款3:如條款1之方法,其中該一或多個第一輸入(1105)包含來自一金鑰材料的複數個相等大小的子金鑰或一保密器金鑰,該金鑰材料被劃分 成複數個相等大小的金鑰材料子區塊。
條款4:如條款3之方法,其進一步包含自藉由應用一密碼函數之一較短金鑰、具有經寫死之金鑰材料之一位元混合器、一計數器輸入或其組合而產生該一或多個第一輸入。
條款5:如條款4之方法,其中該密碼函數包含一保密器、一雜湊函數或一串流產生器。
條款6:如條款2之方法,其中該金鑰材料係秘密,且在通信方之間共用、經寫死或隨機產生。
條款7:如條款2之方法,其中該保密器金鑰係藉由對該保密器金鑰之部分及該金鑰材料之部分的互斥或「XOR」操作,而與經寫死之金鑰材料組合。
條款8:如條款1之方法,其進一步包含選擇該位元混合器,其中該位元混合器操作具有包含以下各者之屬性:每一輸入位元影響每一輸出位元,該輸入位元之改變平均地使得輸出位之半數改變;該等輸入位元之改變得到與該等輸入位元或輸入之一改變型樣不相關的輸出值,使用金鑰以使其行為對於不知曉該等金鑰之一觀察者而言不可預測,且該等輸入位元及輸出值之固定長度可獨立地且任意地選擇。
條款9:如條款1之方法,其中由一XOR樹(1000)進行之該產生進一步包含對該執行之一輸出執行一擾亂操作。
條款10:如條款1之方法,其進一步包含使用該一或多個先前產生之回合金鑰產生一資料區塊。
條款11:如條款1之方法,其進一步包含針對一密碼保密器重複該執 行及該產生該一或多個回合金鑰。
條款12:如條款1之方法,其中該位元混合器操作包含:用於選擇待合併之資料之一互斥或「XOR」樹(1000),該XOR樹包含複數個否定及「NAND」閘或複數個多工器;一取代置換網路(700);或一雙混合費斯妥網路(500、600);或一旋轉-加法-XOR「RAX」構造。
條款13:如條款12之方法,其中該XOR樹(1000)進一步包含:對該一或多個第一輸入之每一第一輸入及該一或多個第二輸入之每一第二輸入,執行一否定及「NAND」邏輯操作,以選擇將該複數個第一輸入中之哪一者輸入至一XOR邏輯操作中,其中該XOR樹之一輸出產生關於用作輸入之該複數個第一輸入的輸出。
條款14:如條款13之方法,其進一步包含對該XOR樹之該輸出執行一擾亂操作,以使該位元混合器函數為非線性的。
條款15:如條款12之方法,其中該取代置換網路(700)進一步包含:對該複數個第一輸入中之每一者執行一非線性取代操作;對該取代操作之每一輸出執行一置換操作;及對該置換操作之每一輸出及該等第一輸入中之一者或該等第二輸入中之一者執行一XOR操作。
條款16:如條款12之方法,其中,在該雙混合費斯妥網路(500、600)中,該一或多個第一輸入中之每一者經劃分成一初始左半部及初始右半部,該方法進一步包含:針對複數個回合中之每一回合,計算一經更新左半部及一經更新右半部,其中該計算該經更新左半部包含將一第一函數應用於一輸入左半部以產生一第一結果,及混合該第一結果與一輸入右半部,其中計算該經更新右半部包含將一第二函數應用於該輸入左半部以產 生一第二結果,及混合該第二結果與一回合金鑰,且其中該輸入左半部及該輸入右半部,針對該複數個回合中之一第一回合係初始左半部及初始右半部,及針對該第一回合之後的每一回合之一緊接先前回合係經更新左半部及經更新右半部。
條款17:一種用於產生用於一密碼操作之一或多個回合金鑰的系統,該系統包含可操作以執行以下操作之一或多個邏輯電路:獲得一或多個第一輸入及一或多個第二輸入(1105);藉由至少一個電子電路,對該一或多個第一輸入及該一或多個第二輸入中之每一者,執行一位元混合器操作(1110);及藉由至少一個電子電路,基於該執行而產生一或多個回合金鑰(1115)。
條款18:如條款17之系統,其中該一或多個第一輸入(1105)包含來自劃分成複數個相等大小的金鑰材料子區塊之一金鑰材料的複數個相等大小的子金鑰、一保密器金鑰,且該一或多個第二輸入(1105)包含一隨機輸入、一或多個先前回合金鑰、一回合數。
條款19:如條款17之系統,其中該密碼操作包含一保密器、一雜湊函數或一串流產生器。
條款20:如條款17之系統,其中該位元混合器操作包含一互斥或「XOR」樹(1000)、一取代置換網路(700)或一雙混合費斯妥網路(500、600)或一旋轉-加法-XOR「RAX」構造。
為了簡單及說明性目的起見,藉由主要參開其實例實施來描述本發明教示之原理。然而,一般熟習此項技術者將易於認識到,相同原理同等地適用於所有類型之資訊及系統,且可實施於該等資訊及系統中, 且任何此類變化並不脫離本發明教示之真實精神及範圍。此外,在前述詳細描述中,參考了附圖,附圖說明具體的實例實施。可在不背離本發明教示之精神及範圍的情況下對實例實施進行電氣、機械、邏輯及結構改變。前述詳細描述因此並非視為限制性含義,且本發明教示之範圍由所附申請專利範圍及其等效物界定。
本文中所使用之術語及描述僅藉助於說明而闡述,且並不意欲係限制。舉例而言,儘管以頂部到底部方式描述方法,但可以與所說明不同的次序或同時執行方法之步驟。此外,就實施方式或申請專利範圍中使用術語「包括(including)」、「包括(includes)」、「具有(having)」、「具有(has)」、「具有(with)」或其變化形式之程度而言,此類術語意欲以類似於術語「包含(coimprising)」之方式為包括性的。如本文所使用,相對於諸如A及B之物品清單的術語「中之一或多者」意謂僅A、僅B或A及B。熟習此項技術者將認識到此等及其他變化係可能的。
自本說明書之考慮及本文中所揭示之揭示內容的實踐,與本發明教示一致之其他實施將對於熟習此項技術者顯而易見。僅希望說明書及實例被視為例示性的,其中本發明之真正範圍及精神由以下申請專利範圍指示。

Claims (10)

  1. 一種用於產生用於一密碼操作之一或多個回合金鑰的方法,該方法包含:獲得一或多個第一輸入(1105)及一或多個第二輸入(1105);藉由至少一個電子電路,對該一或多個第一輸入及該一或多個第二輸入中之每一者,執行(1110)一位元混合器操作(500、600、700、1000);及藉由至少一個電子電路,基於該執行而產生(1115)一或多個回合金鑰。
  2. 如申請專利範圍第1項之方法,其中該一或多個第二輸入(1105)包含隨機產生之固定資料、一或多個先前回合金鑰或一回合數。
  3. 如申請專利範圍第1項之方法,其中該一或多個第一輸入(1105)包含來自一金鑰材料的複數個相等大小的子金鑰或一保密器金鑰,該金鑰材料被劃分成複數個相等大小的金鑰材料子區塊。
  4. 如申請專利範圍第1項之方法,其中由一XOR樹(1000)進行之該產生進一步包含對該執行之一輸出執行一擾亂操作。
  5. 如申請專利範圍第1項之方法,其進一步包含利用該一或多個先前產生之回合金鑰產生一資料區塊。
  6. 如申請專利範圍第1項之方法,其進一步包含針對一密碼保密器重複該執行及該產生該一或多個回合金鑰。
  7. 如申請專利範圍第1項之方法,其中該位元混合器操作包含:用於選擇待合併之資料之一互斥或「XOR」樹(1000),該XOR樹包含複數個否定及「NAND」閘或複數個多工器;一取代置換網路(700);或一雙混合費斯妥網路(500、600);或一旋轉-加法-XOR「RAX」構造。
  8. 一種用於產生用於一密碼操作之一或多個回合金鑰的系統,該系統包含可操作以執行以下操作之一或多個邏輯電路:獲得一或多個第一輸入及一或多個第二輸入(1105);藉由至少一個電子電路,對該一或多個第一輸入及該一或多個第二輸入中之每一者執行一位元混合器操作(1110);及藉由至少一個電子電路,基於該執行而產生一或多個回合金鑰(1115)。
  9. 如申請專利範圍第8項之系統,其中該一或多個第一輸入(1105)包含來自一金鑰材料的複數個相等大小的子金鑰、一保密器金鑰,該金鑰材料被劃分成複數個相等大小的金鑰材料子區塊,且該一或多個第二輸入(1105)包含一隨機輸入、一或多個先前回合金鑰、一回合數。
  10. 如申請專利範圍第8項之系統,其中該密碼操作包含一保密器、一雜湊函數或一串流產生器。
TW106134055A 2016-12-16 2017-10-02 用於藉由位元混合器來產生保密器回合金鑰的方法和系統 TWI744388B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/381,540 2016-12-16
US15/381,540 US10742405B2 (en) 2016-12-16 2016-12-16 Method and system for generation of cipher round keys by bit-mixers

Publications (2)

Publication Number Publication Date
TW201826162A true TW201826162A (zh) 2018-07-16
TWI744388B TWI744388B (zh) 2021-11-01

Family

ID=60043054

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106134055A TWI744388B (zh) 2016-12-16 2017-10-02 用於藉由位元混合器來產生保密器回合金鑰的方法和系統

Country Status (7)

Country Link
US (1) US10742405B2 (zh)
EP (1) EP3337082B1 (zh)
JP (1) JP7107670B2 (zh)
KR (1) KR102447709B1 (zh)
CN (1) CN108206735B (zh)
SG (1) SG10201710088QA (zh)
TW (1) TWI744388B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI723736B (zh) * 2019-05-17 2021-04-01 開曼群島商創新先進技術有限公司 基於區塊鏈的版權保護方法、裝置及電子設備
TWI735208B (zh) * 2020-04-20 2021-08-01 宜鼎國際股份有限公司 資料防護系統及方法
TWI749654B (zh) * 2019-07-25 2021-12-11 熵碼科技股份有限公司 亂數產生器及產生亂數輸出的方法
TWI766497B (zh) * 2020-12-23 2022-06-01 鴻海精密工業股份有限公司 資料存取方法及系統

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109302280B (zh) * 2018-08-02 2021-11-23 哈尔滨工程大学 一种aes密钥扩展方法
US11070354B2 (en) * 2018-09-24 2021-07-20 Lovely Professional University System and method for generating a symmetrically balanced output
CN109408029A (zh) * 2018-10-17 2019-03-01 南京汽车集团有限公司 车联网下传感器生成随机数的方法
CN109766705B (zh) * 2018-12-10 2021-03-19 北京链化未来科技有限公司 一种基于电路的数据验证方法、装置及电子设备
CN109450618B (zh) * 2019-01-11 2021-12-31 无锡华大国奇科技有限公司 一种基于md5的加密方法及系统
US11956367B2 (en) * 2019-02-19 2024-04-09 Bruno SANGLE-FERRIERE Cryptographic method for verifying data
FR3092923B1 (fr) * 2019-02-19 2021-05-21 Sangle Ferriere Bruno Méthode cryptographique de vérification des données
US11838402B2 (en) * 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
US11283619B2 (en) * 2019-06-20 2022-03-22 The Boeing Company Bit mixer based parallel MAC and hash functions
US11196715B2 (en) * 2019-07-16 2021-12-07 Xilinx, Inc. Slice-aggregated cryptographic system and method
CN110855431A (zh) * 2019-09-12 2020-02-28 南方电网数字电网研究院有限公司 一种密码算法加解密系统
US20210091928A1 (en) * 2019-09-23 2021-03-25 Qualcomm Incorporated Iterative cipher key-schedule cache for caching round keys used in an iterative encryption/decryption system and related methods
CN111478766B (zh) * 2020-01-21 2021-09-28 衡阳师范学院 一种分组密码meg实现方法、装置及存储介质
IL298759A (en) * 2020-06-05 2023-02-01 Schwaderer William David Methods and systems for encrypting shapeshifting data
US11861020B2 (en) * 2020-06-26 2024-01-02 Intel Corporation Generating keys for persistent memory
CN112751663B (zh) * 2020-12-31 2022-12-23 南方电网科学研究院有限责任公司 一种数据加密方法和装置
CN115118527B (zh) * 2022-08-26 2022-11-25 深圳市成为信息股份有限公司 超高频模组与pda的双向认证方法及相关设备
CN115314187B (zh) * 2022-10-08 2023-04-07 湖南密码工程研究中心有限公司 一种轻量级分组密码算法RainSP的实现方法、装置及电子设备

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100389902B1 (ko) * 1997-06-23 2003-09-22 삼성전자주식회사 차분해독법과선형해독법에대하여안전성을보장하는고속블럭암호화방법
CA2319135C (en) * 1998-01-27 2003-06-17 Nippon Telegraph And Telephone Corporation Data transformation device and recording medium having recorded thereon a program for implementing the same
US6192129B1 (en) 1998-02-04 2001-02-20 International Business Machines Corporation Method and apparatus for advanced byte-oriented symmetric key block cipher with variable length key and block
US20030198345A1 (en) * 2002-04-15 2003-10-23 Van Buer Darrel J. Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow
JP4117157B2 (ja) * 2002-07-08 2008-07-16 富士通株式会社 暗号回路
US20040247116A1 (en) * 2002-11-20 2004-12-09 Boren Stephen Laurence Method of generating a stream cipher using multiple keys
US7925013B1 (en) * 2003-06-30 2011-04-12 Conexant Systems, Inc. System for data encryption and decryption of digital data entering and leaving memory
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
JP4961909B2 (ja) * 2006-09-01 2012-06-27 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8094816B2 (en) * 2008-10-21 2012-01-10 Apple Inc. System and method for stream/block cipher with internal random states
EP2443786A1 (en) * 2009-06-19 2012-04-25 Irdeto B.V. White-box cryptographic system with configurable key using intermediate data modification
US8751822B2 (en) * 2010-12-20 2014-06-10 Motorola Mobility Llc Cryptography using quasigroups
US8855302B2 (en) * 2011-06-21 2014-10-07 Intel Corporation Apparatus and method for Skein hashing
JP2013182148A (ja) * 2012-03-02 2013-09-12 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム
US9361106B2 (en) * 2013-12-27 2016-06-07 Intel Corporation SMS4 acceleration processors, methods, systems, and instructions
KR101583285B1 (ko) 2014-07-04 2016-01-07 고려대학교 산학협력단 확장 키를 이용한 블록 암호화 방법 및 그 방법에 따른 장치
US10313128B2 (en) 2014-08-29 2019-06-04 The Boeing Company Address-dependent key generator by XOR tree
US10146701B2 (en) 2014-08-29 2018-12-04 The Boeing Company Address-dependent key generation with a substitution-permutation network
US9946662B2 (en) 2014-08-29 2018-04-17 The Boeing Company Double-mix Feistel network for key generation or encryption
GB2551849B (en) * 2016-06-28 2019-10-09 Mips Tech Llc AES hardware implementation

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI723736B (zh) * 2019-05-17 2021-04-01 開曼群島商創新先進技術有限公司 基於區塊鏈的版權保護方法、裝置及電子設備
TWI749654B (zh) * 2019-07-25 2021-12-11 熵碼科技股份有限公司 亂數產生器及產生亂數輸出的方法
US11876899B2 (en) 2019-07-25 2024-01-16 PUFsecurity Corporation Random number generator and method of generating output random number
TWI735208B (zh) * 2020-04-20 2021-08-01 宜鼎國際股份有限公司 資料防護系統及方法
TWI766497B (zh) * 2020-12-23 2022-06-01 鴻海精密工業股份有限公司 資料存取方法及系統

Also Published As

Publication number Publication date
EP3337082B1 (en) 2020-04-15
SG10201710088QA (en) 2018-07-30
EP3337082A1 (en) 2018-06-20
US20180176011A1 (en) 2018-06-21
JP7107670B2 (ja) 2022-07-27
KR20180070459A (ko) 2018-06-26
KR102447709B1 (ko) 2022-09-26
TWI744388B (zh) 2021-11-01
CN108206735A (zh) 2018-06-26
US10742405B2 (en) 2020-08-11
CN108206735B (zh) 2023-04-14
JP2018109750A (ja) 2018-07-12

Similar Documents

Publication Publication Date Title
TWI744388B (zh) 用於藉由位元混合器來產生保密器回合金鑰的方法和系統
US20230224148A1 (en) System and method for quantum-safe authentication, encryption and decryption of information
US8983063B1 (en) Method and system for high throughput blockwise independent encryption/decryption
US10313128B2 (en) Address-dependent key generator by XOR tree
US8127130B2 (en) Method and system for securing data utilizing reconfigurable logic
JP6900176B2 (ja) ハードウェア支援型の擬似乱数の高速生成
CN109639428B (zh) 从位混合器构造安全散列函数的方法
CN114258660A (zh) 用于密码置换的密码架构
US10146701B2 (en) Address-dependent key generation with a substitution-permutation network
AU773982B2 (en) Method for making data processing resistant to extraction of data by analysis of unintended side-channel signals
US9602281B2 (en) Parallelizable cipher construction
US11763867B2 (en) PUF applications in memories
Zhang et al. Sealer: In-sram aes for high-performance and low-overhead memory encryption
US9946662B2 (en) Double-mix Feistel network for key generation or encryption
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
Zheng et al. Implementation of high throughput XTS-SM4 module for data storage devices
Henricksen et al. The HKC authenticated stream cipher (Ver. 1)
Swayamprakash et al. Design of Advanced Encryption Standard using Verilog HDL
Courtois et al. Understanding the ZK-Crypt-a Hash/Stream Cipher for (Almost) all Reasons