TWI469609B - 密碼編譯系統之金鑰恢復機制 - Google Patents

密碼編譯系統之金鑰恢復機制 Download PDF

Info

Publication number
TWI469609B
TWI469609B TW99105492A TW99105492A TWI469609B TW I469609 B TWI469609 B TW I469609B TW 99105492 A TW99105492 A TW 99105492A TW 99105492 A TW99105492 A TW 99105492A TW I469609 B TWI469609 B TW I469609B
Authority
TW
Taiwan
Prior art keywords
data
key
block
aes
bits
Prior art date
Application number
TW99105492A
Other languages
English (en)
Other versions
TW201121279A (en
Inventor
Vincent Dupaquis
Michel Douguet
Original Assignee
Inside Secure
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 Inside Secure filed Critical Inside Secure
Publication of TW201121279A publication Critical patent/TW201121279A/zh
Application granted granted Critical
Publication of TWI469609B publication Critical patent/TWI469609B/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
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Description

密碼編譯系統之金鑰恢復機制
一般而言,本申請案之標的物係關於密碼編譯系統。
高級加密標準(AES)係針對一密碼編譯演算法之一國家標準與技術研究院技術規範,其可保護對稱金鑰密碼編譯中所使用之電子資料。AES演算法可加密(加密器)及解密(解密器)呈電子資料形式之資訊。加密將電子資料轉換為稱作密文之一難理解的形式;解密該密文將電子資料轉換回至其稱作明文之原始形式。AES演算法係能夠使用128、192及256個位元之密碼編譯金鑰來加密及解密128位元區塊中之電子資料之一迭代、對稱金鑰區塊譯碼。
公開金鑰譯碼可使用一對密碼編譯金鑰。然而,AES演算法使用相同的密碼編譯金鑰來加密及解密電子資料。AES演算法係一區塊譯碼。由區塊譯碼返回之經加密資料可具有與輸入資料相同的位元數目。AES演算法對資料區塊執行其譯碼,從而使其成為一迭代譯碼。迭代譯碼可使用重複執行輸入資料之排列及替換之一循環結構。
每一經譯碼之資料區塊皆使用相同的密碼編譯金鑰來加密或解密資料。AES演算法加密或解密128位元區塊中之資料。該128位元資料區塊藉由AES演算法之每一加密或解密皆可使用複數個AES運算。一128位元資料區塊使用複數個AES運算(其中迭代地執行一連續運算群組)之加密或解密可稱為一回合。AES演算法亦採用密碼編譯金鑰且執行一金鑰擴展來產生供用於AES加密演算法中之一金鑰排程。另一選擇為,在一128位元資料區塊之一解密中,AES演算法以經排程之金鑰開始且執行一反向金鑰排程運算來產生加密中所使用之密碼編譯金鑰以便解密該128位元區塊中之資料。
一128位元資料區塊之每一加密皆需要密碼編譯金鑰連同一128位元輸入資料區塊一起作為輸入。用於加密之大於128個位元之輸入電子資料可被劃分為多個128位元區塊。每一128位元區塊皆可使用AES演算法進行加密。AES演算法採用密碼編譯金鑰且執行一金鑰擴展常式來產生一金鑰排程,從而變換原始密碼編譯金鑰。
一128位元資料區塊之每一解密皆需要經排程之金鑰連同一128位元輸入資料區塊一起作為輸入。用於解密之大於128個位元之輸入電子資料可被劃分為多個128位元區塊。每一128位元區塊皆可使用AES演算法進行解密。AES演算法可反向且以相反次序執行用於加密之AES運算。AES演算法採用經排程之金鑰且執行一反向金鑰排程運算來確定用於加密之原始密碼編譯金鑰。
習用密碼編譯系統將加密所需之金鑰或解密所需之金鑰排程保存於一緩衝器中,該緩衝器與AES演算法在加密或解密運算期間所使用之工作區緩衝器分開。在每一128位元區塊加密或解密之前,該系統自該單獨的緩衝器分別復原該金鑰或經排程之金鑰。另一選擇為,某些習用密碼編譯系統針對經加密或經解密之每一128位元資料區塊向執行加密或解密之一譯碼引擎提供該金鑰或經排程之金鑰。此可導致對密碼編譯金鑰或金鑰排程之額外處置及操縱。此額外處置及操縱可包括對該金鑰及其排程之保密。
在某些實施方案中,一密碼編譯系統可執行一金鑰恢復運算。在加密情形中,在加密一128位元資料區塊結束時,該系統可對用於加密之經排程之金鑰執行一反向金鑰排程運算以恢復原始密碼編譯金鑰。此金鑰可放置於金鑰緩衝器中以供用於下一加密過程中。在解密情形中,在解密一128位元資料區塊結束時,該系統可對用於解密之密碼編譯金鑰執行一金鑰排程運算以恢復金鑰排程。
在一譯碼運算期間執行一金鑰恢復運算可消除需要一譯碼引擎維持分別用於加密或解密之金鑰或金鑰排程之一複本。另外,其可消除對金鑰及金鑰排程之不必要的處置及操縱。在一加密情形中,密碼編譯系統無需針對用於加密之每一128位元資料區塊將金鑰重新載入至譯碼引擎中。在解密情形中,密碼編譯系統無需針對用於解密之每一128位元資料區塊將金鑰排程重新載入至譯碼引擎中。
一AES譯碼引擎之實施方案
圖1係一高級加密標準(AES)譯碼引擎100之一實例性實施方案之一方塊圖。引擎100可執行一AES計算,該AES計算可包含對電子資料區塊進行之分別產生密文及明文之AES加密及解密運算。引擎100可包含於一密碼編譯系統中。
如圖1中所示,引擎100包含可向一AES區塊102提供輸入之暫存器,該AES區塊可啟用並控制由AES區塊102執行之AES加密及解密運算。暫存器可為AES運算提供資料(例如,密文或明文)。暫存器可提供密碼編譯金鑰資料以供用於AES加密及解密運算中。另外,暫存器可提供與由AES區塊102執行之AES運算有關的結果及狀況資訊。暫存器可提供該等AES運算之所得資料(例如,密文或明文)。除非另外指示,否則該等暫存器含有八個位元(一位元組)值。下文將更詳細地闡述具體暫存器、其值及功能。
密碼編譯系統中所包含之一功率管理控制暫存器中之一AES ON位元可控制AES譯碼引擎100之啟用。當AES ON位元設置為等於0時,該密碼編譯系統可關閉引擎100,從而最小化該引擎之電流消耗且將引擎100置於一掉電模式中。在掉電模式期間,引擎100之暫存器中所含有之值不可用於讀取或寫入。此情形之例外狀況係一AES遮罩暫存器116。該密碼編譯系統可讀取AES遮罩暫存器116,該遮罩暫存器可含有AES譯碼引擎100之版本號。另外,引擎100中所包含之大多數暫存器之內容可在掉電模式期間得以維持。將AES ON位元設置為等於1使引擎100加電並啟用該引擎,從而將其置於一計算模式中。使引擎100加電增加其電流消耗。引擎100可使用AES運算執行AES計算。使用AES ON位元可藉由在不使用AES譯碼引擎100時使其掉電來最小化包含引擎100之一密碼編譯系統中之功率消耗。
一AES運算暫存器(AESOP)可包含可輸入至AES區塊102之六個位元104a至104f。六個位元104a至104f可選擇譯碼類型(加密或解密)、金鑰排程及AES運算中所使用之密碼編譯金鑰中所含有之位元數目。當一AES開始位元104b(AESOP.START)設置為等於1時,其可在AES區塊102中開始所請求之譯碼運算(加密或解密)。當AES區塊102完成所請求之譯碼(加密或解密)時,清零AES開始位元104b(將其設置為等於0)。一AES譯碼位元104a(AESOP.CIPHER)可係一加密方向(或譯碼類型選擇)位元。將AES譯碼位元104a設置為等於1通知AES區塊102其將執行一AES加密。將AES譯碼位元104a設置為等於0通知AES區塊102其將執行一AES解密。
AES金鑰選擇位元104e、104f(分別為AESOP.KEYSEL0及AESOP.KEYSEL1)可為一輸入密碼編譯金鑰選擇三個可能的輸入大小中之一者:128、192或256個位元。AES區塊102可將該密碼編譯金鑰用於AES運算。在將AES開始位元104b設置為等於1(此開始AES運算)之前設置AES金鑰選擇位元104e、104f。在AES開始位元104b等於1之同時對AES金鑰選擇位元104e、104f做出改變導致一故障情況在AES區塊102中出現。AES區塊102藉由清零AES開始位元104b(將其設置為等於0)及將一AES狀況暫存器故障偵測位元108a設置為等於1來指示出現了一故障。AES輸入資料暫存器106(AESDI[0...F])、AES輸出資料暫存器114(AESDO[0...F])及AES金鑰暫存器112(AESK[0...31])保持不變。下文將更詳細地闡述此等暫存器。
AES運算位元104c、104d(分別為AESOP.AESOP0及AESOP.AESOP1)可在AES開始位元104b設置為等於1時選擇發起四個可能的AES運算中之一者。清零AES運算位元104c、104d兩者(將其等設置為等於0)為由譯碼位元104a之值確定之選定譯碼運算選擇無金鑰恢復。將AES運算位元104c、104d兩者設置為等於1選擇一循環冗餘校驗(CRC)金鑰計算來驗證輸入密碼編譯金鑰之完整性。清零AES運算位元104c(將其設置為等於0)且將AES運算位元104d設置為等於1為由譯碼位元104a之值確定之選定譯碼運算選擇金鑰恢復。將AES運算位元104c設置為等於1且清零AES運算位元104d(將其設置為等於0)選擇一AES金鑰排程運算。下文將參照圖3更詳細地闡述使用AES運算暫存器來建立且開始AES運算。
一密碼編譯系統可設置或清零可包含四個位元110a至110d之一AES控制暫存器(AESCR)之位元以控制AES區塊102中所執行之AES運算之態樣。將XOR金鑰資料輸入位元110a(AESCR.XKDI)設置為等於1允許將寫入至一選定輸入資料暫存器(例如,AES輸入資料暫存器106(AESDI[0...15]))之輸入資料與該暫存器中已含有之資料進行互斥或運算(XOR)。清零XOR金鑰資料輸入位元110a(將其設置為等於0)允許AES譯碼引擎100直接將資料寫入至一選定輸入資料暫存器(例如,AES輸入資料暫存器106),從而覆寫該資料暫存器中所含有之任何先前資料。
將XOR金鑰資料輸入位元110a設置為等於1亦可允許將寫入至一選定金鑰暫存器(例如,金鑰暫存器112(AESK[0...31]))之輸入資料與該金鑰暫存器中已含有之資料進行互斥或運算(XOR)。清零XOR金鑰資料輸入位元110a(將其設置為等於0)允許AES譯碼引擎100直接將資料寫入至一選定金鑰暫存器(例如,金鑰暫存器112),從而覆寫該金鑰暫存器中所含有之任何先前資料。
在某些實施方案中,密碼編譯系統可在實施基於AES之譯碼區塊鏈訊息鑑別碼(CBC-MAC)演算法時將XOR金鑰資料輸入位元110a設置為等於1。
對XOR金鑰資料輸入位元110a之設置或清零可在將AES開始位元104b設置為等於1(此起始譯碼運算)之前出現或與其同時出現。XOR金鑰資料輸入位元110a可不在AES計算期間(以將AES開始位元104b設置為等於1之後開始至AES計算結束時)寫入。
金鑰資料暫存器位元110b及110c(分別為AESCR.RTKDR0及AESCR.RTKDR1)之結果可確定將一AES區塊運算之結果儲存於何處。在圖1中所示之實施方案中,清零金鑰資料暫存器位元110b之結果(將其設置為等於0)。在清零金鑰資料暫存器位元110b之結果(將其設置為等於0)時將金鑰資料暫存器位元110c之結果設置為等於1將AES區塊102中所執行之一AES區塊運算之結果儲存於輸出資料暫存器114(AESDO[0...15])及輸入資料暫存器106中。在保持金鑰資料暫存器位元110b之結果被清零之同時清零金鑰資料暫存器位元110c(將其設置為等於0)之結果將AES區塊102中所執行之一AES區塊運算之結果儲存於輸出資料暫存器114中。
對金鑰資料暫存器位元110b及110c之設置或清零可與將AES開始位元104b設置為等於1同時出現。在已將AES開始位元104b設置為等於1時設置或清零金鑰資料暫存器位元110b及110c之結果可導致一故障情況在AES區塊102中出現。AES區塊102藉由清零AES開始位元104b(將其設置為等於0)及將AES狀況暫存器故障偵測位元108a設置為等於1指示出現了一故障。AES輸入資料暫存器106(AESDI[0...F])、AES輸出資料暫存器114(AESDO[0...F])及AES金鑰暫存器112(AESK[0...31])保持不變。
AES資料遮掩啟用位元110d(AESCR.DATAMSK)控制AES譯碼引擎100中之一資料遮掩特徵。將AES資料遮掩啟用位元110d設置為等於1啟用該資料遮掩特徵。清零AES資料遮掩啟用位元110d(將其設置為等於0)停用該資料遮掩特徵。當被啟用時,該資料遮掩特徵可以一AES遮罩暫存器116(AESMSK)之內容遮掩AES輸入資料暫存器106中所含有之用於加密或解密之輸入資料。下文將對此進行更詳細地闡述。
AES譯碼引擎100可包含AES CRC暫存器118(AESCRC0及AESCRC1),當組合時,該等AES CRC暫存器含有對用於AES運算之輸入密碼編譯金鑰執行之一循環冗餘校驗(CRC)之一16位元結果。引擎100可對128、192及256個位元之輸入密碼編譯金鑰執行CRC校驗。AES區塊102可使用對該金鑰執行之CRC之結果來在該金鑰用於任何AES運算之前偵測該金鑰之任一資料損壞。
AES譯碼引擎100可包含一AES遮罩暫存器116(AESMSK),該遮罩暫存器可含有一一位元組(八位元)遮罩值。密碼編譯系統使遮罩暫存器116載入有一一位元組遮罩值。在AES運算開始之前,引擎100可在一逐位元組基礎上藉助遮罩暫存器116遮掩輸入密碼編譯金鑰資料。與AES運算開始之同時,引擎100亦可在一逐位元組基礎上藉助該遮罩暫存器遮掩用於加密或解密之輸入資料。
AES譯碼引擎100可在一逐位元組基礎上藉由將遮罩暫存器116中之值與輸入密碼編譯金鑰之每一位元組進行互斥或運算(XOR)來以該金鑰之值遮掩遮罩暫存器116之內容。引擎100可將所得之經遮掩之金鑰寫入至金鑰暫存器112中。金鑰遮掩可在任何AES運算開始之前出現。若清零XOR金鑰資料輸入位元110a(將其設置為等於0),則可出現以剛剛闡述之方式對輸入密碼編譯金鑰之遮掩。將XOR金鑰資料輸入位元110a設置為等於1允許將寫入至金鑰暫存器112之一輸入金鑰資料與金鑰暫存器112中已含有之資料進行互斥或運算(XOR)。
在某些實施方案中,AES譯碼引擎100可執行一密碼編譯金鑰CRC計算。可在一逐位元組基礎上將輸入密碼編譯金鑰資料與遮罩暫存器116之內容進行互斥或運算(XOR)。引擎100可將所得之經XOR之金鑰位元組寫入至金鑰暫存器112。金鑰暫存器112可被輸入至一AES CRC計算引擎(例如,包含於AES區塊102中)。CRC計算引擎可使用AES CRC暫存器118中所含有之一值作為供用於CRC計算中之一初始值來執行一CRC計算。
若在AES運算開始時將AES遮罩暫存器116中之AES資料遮掩啟用位元110d設置為等於1,則AES譯碼引擎100可藉助輸入資料暫存器106中之每一者遮掩遮罩暫存器116。AES譯碼引擎100可藉由將遮罩暫存器116中之值與輸入資料暫存器中之值進行互斥或運算(XOR)來執行該遮掩。AES區塊102可接收所得之經遮掩之輸入資料暫存器。
當AES ON位元設置為等於0時,AES譯碼引擎100可被置於一關閉模式中。在此模式中,該密碼編譯系統可讀取可含有引擎100之版本號之AES遮罩暫存器116。該密碼編譯系統可讀取遮罩暫存器116且確定該系統中所包含之引擎100之版本號。
AES輸出資料暫存器114(AESDO[0...F])可係十六個八位元(一位元組)暫存器,其含有由AES譯碼引擎100中之AES區塊102執行之一AES計算之結果。AES輸入資料暫存器106(AESDI[0...F])可係十六個八位元(一位元組)暫存器,其含有由AES譯碼引擎100中之AES區塊102執行之AES計算中所使用之用於加密或解密之輸入資料。在起始引擎100中之AES運算之開始之前,密碼編譯系統自資料匯流排120使輸入資料暫存器106載入有用於加密或解密之輸入資料。如先前所闡述,亦可在起始AES運算之開始之前對輸入資料暫存器106中所含有之輸入資料有條件地執行遮掩作業。
AES金鑰暫存器112(AESK[0...31])可係32個八位元(一位元組)暫存器,其含有供用於由AES譯碼引擎100中之AES區塊102執行之AES計算中之密碼編譯金鑰值。該密碼編譯系統自資料匯流排120使金鑰暫存器112載入有可係128、192或256個位元(分別為16個位元組、24個位元組或32個位元組)之一密碼編譯金鑰。如先前所闡述,亦可對金鑰暫存器112選擇性地執行遮掩作業。
該密碼編譯系統可讀取一AES狀況暫存器(AESSR)之位元以確定與AES譯碼引擎100有關的狀況資訊及與由AES區塊102執行之AES運算有關的狀況資訊。當AES區塊102已完成AES計算時,可將一AES中斷旗標位元108b(AESSR.AESIRQ)設置為等於1。若該密碼編譯系統中所包含之額外暫存器位元經恰當地設置,則設置中斷旗標位元108b可導致在該密碼編譯系統中產生一中斷。
當故障偵測位元108a(AESSR.FAULT)設置為等於1時,其指示當AES區塊102在執行一AES運算之同時曾出現過一問題。在某些實施方案中,AES區塊102可藉由將其內部狀態與所請求之運算相比較來偵測該問題。
舉例而言,AES區塊102可在AES區塊102接收到一無效請求時將故障偵測位元108a設置為等於1。在另一實例中,AES區塊102可在內部校驗其運算一致性且可在出現一不一致時將故障偵測位元108a設置為等於1。在一替代實例中,AES區塊102可計數其對一輸入資料區塊執行之AES回合的數目。AES區塊102可確定該AES區塊應對一128位元資料區塊執行之回合數目,此乃因該回合數目係基於AES運算中所使用之金鑰之大小(例如,使用一128位元金鑰之一AES譯碼對一128位元資料區塊執行10個回合)。若實際回合數目與所計算之回合數目不同,則AES區塊102可將故障偵測位元108a設置為等於1。
若在AES區塊102執行一AES計算期間出現一故障,則在該AES計算結束時由AES區塊102將故障偵測位元108a設置為等於1,同時將中斷旗標位元108b設置為等於1。在某些情形中,AES區塊102偵測一AES計算期間之一故障可導致AES區塊102繼續一錯誤的AES計算。舉例而言,AES區塊102可使用一被損壞的金鑰或AES區塊102之自該AES計算得出之輸出資料可被損壞。在某些情形中,AES區塊102可準備故障偵測位元108a之設置且在完成從而導致錯誤的輸出資料之前停止該AES計算。
基本AES演算法
AES演算法可對稱作如下狀態之一4×4矩陣執行AES運算,在該狀態中該矩陣中之每一元係一個資料位元組(八個位元)。該狀態含有總共16個資料位元組或128個資料位元。針對AES演算法之用於加密或解密之輸入位元組陣列亦為組織成一4×4矩陣之128個資料位元。對使用該狀態之輸入資料執行AES運算以產生輸出資料,該輸出資料亦呈一4×4矩陣之形式,其中該矩陣中之每一元係一個位元組(八個位元)。AES演算法對每一128位元資料區塊執行多個AES運算回合。可基於密碼編譯金鑰之大小來確定回合數目。密碼編譯系統可將大於128個位元之輸入資料劃分為若干128個資料位元。此等資料區塊可被連續地輸入至如圖1中所示之AES區塊102中。
一回合中之所有AES運算皆可反向。AES區塊102可反向且以一相反次序執行用於執行輸入資料之加密之運算以執行輸入資料之一解密。
在輸入資料之一加密中,AES區塊102可將密碼編譯金鑰擴展為一金鑰排程。AES演算法可採用該金鑰且執行一金鑰擴展常式來產生一金鑰排程。該金鑰排程可將一金鑰擴展為若干單獨的金鑰(子金鑰),其中AES區塊102可將該等子金鑰用於AES演算法之每一回合。該等子金鑰亦可稱作回合金鑰。金鑰擴展常式可使用AES運算來擴展金鑰,其中經擴展金鑰之長度可等於:區塊大小*回合數目+1(例如,一128位元金鑰擴展為一176位元組金鑰,一192位元金鑰擴展為一208位元組金鑰,且一256位元金鑰擴展為240位元組金鑰)。AES區塊102可將該經擴展金鑰之一不同部分用於AES演算法之每一回合。在輸入資料之一解密中,AES區塊102可使用金鑰排程來解密該輸入資料。AES區塊102可執行一反向金鑰排程運算來產生用於加密該輸入資料之密碼編譯金鑰。
使用金鑰恢復之一AES區塊之實施方案
圖2係圖1之高級加密標準(AES)區塊102中所包含之一AES系統200之一實施方案之一方塊圖。系統200可使用金鑰恢復來執行用於一128位元輸入資料區塊之加密或解密之AES運算。一旦該128位元輸入資料區塊之加密或解密已完成,便將結果輸出至AES譯碼引擎100且系統200可接收該輸入資料以用於下一128位元資料區塊加密或解密。
如圖2中所示,系統200包含一輸入/輸出資料區塊202。輸入/輸出資料區塊202可將用於加密或解密之一128位元輸入資料區塊提供至一AES資料處理加密/解密區塊204。輸入/輸出資料區塊202亦可自AES資料處理加密/解密區塊204接收所得之經加密或或經解密128位元輸出資料區塊。資料處理加密/解密區塊204可對由輸入/輸出資料區塊202接收之每一128位元資料區塊執行AES運算。
在使用AES譯碼引擎100開始資料加密或解密之前,密碼編譯系統可將一密碼編譯金鑰載入至金鑰暫存器112中,如圖1中所示。在第一128位元輸入資料區塊之加密或解密開始之前,可將金鑰暫存器112載入至金鑰暫存器區塊208中。
當執行資料加密或解密時,一AES金鑰處理加密/解密區塊206可使用一密碼編譯金鑰執行一金鑰擴展常式來產生一金鑰排程。金鑰暫存器區塊208可在任何AES加密運算開始之前最初儲存該密碼編譯金鑰。金鑰暫存器區塊208可係足夠大以緩衝整個金鑰(例如,256個位元或32個位元組(例如,金鑰暫存器112)),其中該金鑰可係128、192或最大256個位元。
在對系統200中之一第一128位元輸入資料區塊之加密或解密運算期間,可覆寫自金鑰暫存器112載入至金鑰暫存器區塊208中之初始密碼編譯金鑰。在執行譯碼運算時可使用含有金鑰值之暫存器作為一工作區。在對下一128位元輸入資料區塊執行隨後的加密或解密運算之前,系統200可將該密碼編譯金鑰復原至金鑰暫存器區塊208中。
不同金鑰暫存器區塊及金鑰排程運算之實施方案
在某些實施方案中,在每一128位元輸入資料區塊加密或解密運算之前,AES譯碼系統100可將金鑰暫存器112載入至暫存器區塊208中。此實施方案可需要針對已處理之每一128位元資料區塊處置密碼編譯金鑰一次。對於一大的資料區塊,此可導致對密碼編譯金鑰之大數目次操縱。另外,在某些實施方案中,系統200可每次在密碼編譯金鑰自金鑰暫存器112載入至暫存器區塊208中時校驗該密碼編譯金鑰之完整性。此可增加AES譯碼引擎100之計算吞吐量。
在某些實施方案中,系統100可將該密碼編譯金鑰之兩個複本儲存於金鑰暫存器區塊208中。在執行加密或解密運算之同時,可保存該金鑰之一個複本且將其用於復原可在工作區計算期間被覆寫之該金鑰之另一複本。此實施方案可需要金鑰暫存器區塊208中之額外暫存器以用於儲存該密碼編譯金鑰,從而增加金鑰暫存器區塊208之閘計數。此增加包含AES譯碼引擎100之積體處理器之閘計數。增加之閘計數可增加積體處理器之佔用面積且增加其能量消耗。
在某些實施方案中,系統200可在系統200執行一第一128位元輸入資料區塊之一加密之後將密碼編譯金鑰復原至金鑰暫存器區塊208中。系統200可對用於加密第一128位元輸入資料區塊之金鑰排程執行使用一反向金鑰排程之一金鑰恢復運算以恢復加密下一128位元輸入資料區塊所需之密碼編譯金鑰。產生一金鑰排程之並將其用於加密128位元輸入資料區塊導致使金鑰資料發生變化,以使得初始密碼編譯金鑰值不再可用於系統200。系統200可在第一128位元輸入資料區塊經加密之後且在加密下一128位元輸入資料區塊之前執行該金鑰恢復運算。系統200可將所恢復之金鑰儲存於保存自金鑰暫存器112接收之初始密碼編譯金鑰之相同暫存器中之金鑰暫存器區塊208中。系統200可在第一128位元輸入資料區塊已經加密且輸出至輸出資料區塊202時覆寫可已用作用於加密運算之一工作區之此等暫存器中所含有之任何資料。
在某些實施方案中,系統200可在系統200執行一第一128位元輸入資料區塊之一解密之後將金鑰排程復原至金鑰暫存器區塊208中。一解密可使用一加密所使用之相同的AES運算。然而,將該等運算反向且然後以一相反次序實施。一第一128位元輸入資料區塊之解密以一初始金鑰排程開始。一反向金鑰排程運算可確定用於加密原始資料之原始密碼編譯金鑰。該反向金鑰排程運算及其在解密128位元輸入資料區塊中之使用可導致使金鑰排程資料發生變化,以使得初始金鑰排程資料不再可用於系統200。系統200可在第一128位元輸入資料區塊經解密之後且在解密下一128位元輸入資料區塊之前執行一金鑰恢復運算。該金鑰恢復運算藉由對所得之密碼編譯金鑰運行一金鑰擴展運算來執行一金鑰排程運算以產生且復原金鑰排程。系統200可將所恢復之金鑰排程儲存於保存初始金鑰排程之相同暫存器中之金鑰暫存器區塊208中。系統200可在第一128位元輸入資料區塊已經解密且輸出至輸出資料區塊202時覆寫可已用作用於解密之一工作區之此等暫存器中所含有之任何資料。
金鑰恢復運算可增加AES譯碼引擎100之計算吞吐量。然而,AES區塊102不需要引擎100將金鑰暫存器112載入至金鑰暫存器區塊208中以復原密碼編譯金鑰,從而導致較少的金鑰操縱及計算,此乃因系統200可每次在金鑰值載入至系統200中時校驗該金鑰值之完整性。另外,由於因密碼編譯金鑰亦不保存於金鑰暫存器區塊208中而使用較少的暫存器,因此金鑰暫存器區塊208中可需要較少的閘。
在某些實施方案中,圖1中之AES譯碼引擎100可係一密碼編譯系統中所包含之一積體處理器,該密碼編譯系統可包含用於在該密碼編譯系統中執行特定作業之額外積體處理器。可期望最小化引擎100之佔用面積以幫助最小化該密碼編譯系統之佔用面積。減少引擎100中之AES區塊102中所包含之系統200中之金鑰儲存所需之暫存器的數目可幫助減小積體處理器之大小及密碼編譯系統之整體大小。
AES運算暫存器
圖3A係顯示一高級加密標準(AES)運算暫存器中之位元及與位元值相關聯之運算之一表300。參照圖1,AES運算暫存器(AESOP)包含AES運算位元104c、104d(分別為AESOP0及AESOP1)、AES金鑰選擇位元104e、104f(分別為REYSEL0及KEYSEL1)及AES譯碼位元104a(CIPHER)。
當AES開始位元104b設置為等於1時,AES運算位元104c、104d可選擇發起四個可能的AES運算中之一者:具有金鑰恢復之一譯碼運算,無金鑰恢復之一譯碼運算,一金鑰排程運算或一CRC計算。AES譯碼位元104a可在加密與解密運算之間進行選擇。AES金鑰選擇位元104e、104f可選擇三個可能的輸入大小中之一者用於一輸入密碼編譯金鑰:128、192或256個位元。
清零AES運算位元104c、104d兩者(將其等設置為等於0)選擇無金鑰恢復之一運算。另外,清零AES金鑰選擇位元104e、104f兩者(將其等設置為等於0)選擇使用一128位元金鑰之無金鑰恢復之一AES運算。清零AES譯碼位元104a(將其設置為等於0)或將其設置為等於1分別確定該運算將係一解密抑或一加密。
清零AES運算位元104c、104d兩者(將其等設置為等於0)選擇無金鑰恢復之一運算。另外,將AES金鑰選擇位元104e設置為等於1且清零AES金鑰選擇位元104f(將其設置為等於0)選擇使用一192位元金鑰之無金鑰恢復之一AES運算。清零AES譯碼位元104a(將其設置為等於0)或將其設置為等於1分別確定該運算將係一解密抑或一加密。
清零AES運算位元104c、104d兩者(將其等設置為等於0)選擇無金鑰恢復之一運算。另外,清零AES金鑰選擇位元104e(將其設置為等於0)且將AES金鑰選擇位元104f設置為等於1選擇使用一256位元金鑰之無金鑰恢復之一AES運算。清零AES譯碼位元104a(將其設置為等於0)或將其設置為等於1分別確定該運算將係一解密抑或一加密。
清零AES運算位元104d(將其設置為等於0)且將AES運算位元104c設置為等於1選擇一金鑰排程運算。另外,清零AES金鑰選擇位元104e、104f兩者(將其等設置為等於0)選擇使用一128位元金鑰之一金鑰排程運算。清零AES譯碼位元104a(將其設置為等於0)或將其設置為等於1分別確定該金鑰排程運算將係一金鑰排程抑或一反向金鑰排程運算。
清零AES運算位元104d(將其設置為等於0)且將AES運算位元104c設置為等於1選擇一金鑰排程運算。另外,將AES金鑰選擇位元104e設置為等於1且清零AES金鑰選擇位元104f(將其設置為等於0)選擇使用一192位元金鑰之一金鑰排程運算。清零AES譯碼位元104a(將其設置為等於0)或將其設置為等於1分別確定該金鑰排程運算將係一金鑰排程抑或一反向金鑰排程運算。
清零AES運算位元104d(將其設置為等於0)且將AES運算位元104c設置為等於1選擇一金鑰排程運算。另外,清零AES金鑰選擇位元104e(將其設置為等於0)且將AES金鑰選擇位元104f設置為等於1選擇使用一256位元金鑰之一金鑰排程運算。清零AES譯碼位元104a(將其設置為等於0)或將其設置為等於1分別確定該金鑰排程運算將係一金鑰排程抑或一反向金鑰排程運算。
清零AES運算位元104c(將其設置為等於0)且將AES運算位元104d設置為等於1選擇具有金鑰恢復之一運算。另外,清零AES金鑰選擇位元104e、104f兩者(將其等設置為等於0)選擇使用一128位元金鑰之具有金鑰恢復之一AES運算。清零AES譯碼位元104a(將其設置為等於0)或將其設置為等於1分別確定該運算將係一解密抑或一加密。
清零AES運算位元104c(將其設置為等於0)且將AES運算位元104d設置為等於1選擇具有金鑰恢復之一運算。另外,將AES金鑰選擇位元104e設置為等於1且清零AES金鑰選擇位元104f(將其設置為等於0)選擇使用一192位元金鑰之具有金鑰恢復之一AES運算。清零AES譯碼位元104a(將其設置為等於0)或將其設置為等於1分別確定該運算將係一解密抑或一加密。
清零AES運算位元104c(將其設置為等於0)且將AES運算位元104d設置為等於1選擇具有金鑰恢復之一運算。另外,清零AES金鑰選擇位元104e(將其設置為等於0)且將AES金鑰選擇位元104f設置為等於1選擇使用一256位元金鑰之具有金鑰恢復之一AES運算。清零AES譯碼位元104a(將其設置為等於0)或將其設置為等於1分別確定該運算將係一解密抑或一加密。
將AES運算位元104c、104d兩者皆設置為等於1選擇一金鑰CRC計算。另外,清零AES金鑰選擇位元104e、104f兩者(將其等設置為等於0)且清零AES譯碼位元104a(將其設置為等於0)選擇一AES-128金鑰CRC運算。
將AES運算位元104c、104d兩者皆設置為等於1選擇一金鑰CRC計算。另外,將AES金鑰選擇位元104e設置為等於1、清零AES金鑰選擇位元104f(將其設置為等於0)且清零AES譯碼位元104a(將其設置為等於0)選擇一AES-192金鑰CRC運算。
將AES運算位元104c、104d兩者皆設置為等於1選擇一金鑰CRC計算。另外,清零AES金鑰選擇位元104e(將其設置為等於0)、將AES金鑰選擇位元104f設置為等於1且清零AES譯碼位元104a(將其設置為等於0)選擇一AES-256金鑰CRC運算。
AES計算定時
圖3B係顯示使用AES運算暫存器選擇之AES運算354之執行時間352(以中央處理單元(CPU)循環計)之一表350。圖3A中之表300顯示用於選擇AES運算354之AES運算暫存器之位元的值。
一般而言,使用較大密碼編譯金鑰之AES運算需要完成較多CPU循環。使用金鑰恢復之AES運算亦使用較多CPU循環。然而,CPU循環增加可由儲存密碼編譯金鑰所需之金鑰暫存器的數目減少抵消,從而減小積體處理器之大小。另外,金鑰恢復減少密碼編譯金鑰之不必要操縱的量,從而減少該密碼編譯系統中之安全性問題。
AES金鑰狀態圖
圖4係顯示一AES區塊(例如,圖1中之AES區塊102)中之實例性高級加密標準(AES)金鑰狀態之一狀態圖400。圖400顯示加密及解密中所使用之一AES密碼編譯金鑰之可能的金鑰狀態及金鑰值。圖400顯示該金鑰可演變之方式與AES區塊所執行之運算之間的一聯繫。圖4中所示之AES運算可係由圖3中所示之高級加密標準(AES)運算暫存器中之位元選擇且由AES區塊102中所包含之圖2中之AES系統200執行之AES運算。
互連線顯示AES運算。實線顯示符合FIPS-197 AES標準之運算。虛線顯示不符合FIPS-197 AES標準之運算,該FIPS-197 AES標準可涉及AES運算之一不尋常使用。
當AES區塊處於一金鑰狀態402中時,執行具有金鑰恢復之一AES加密運算404可使AES區塊返回至金鑰狀態402。當AES區塊處於一金鑰排程狀態406中時,執行具有金鑰恢復之一AES解密運算408可使AES區塊返回至金鑰排程狀態404。
當AES區塊處於金鑰狀態402中時,執行無金鑰恢復之一AES加密運算410可將AES區塊置於金鑰排程狀態406中。當AES區塊處於金鑰排程狀態406中時,執行無金鑰恢復之一AES解密運算412可將AES區塊置回至金鑰排程狀態402中。
當AES區塊處於金鑰狀態402中時,執行一金鑰排程運算414可將AES區塊置於金鑰排程狀態402中。當AES區塊處於金鑰排程狀態406中時,執行一反向金鑰排程運算416可將AES區塊置於金鑰排程狀態406中。
不符合的運算可導致AES區塊轉變至不期盼之狀態中。當AES區塊處於金鑰狀態402中時,執行無金鑰恢復之一AES解密運算418可將AES區塊置於一不期盼之金鑰狀態420中。當AES區塊處於金鑰狀態402中時,執行一反向金鑰排程運算420可將AES區塊置於一不期盼之金鑰狀態422中。當AES區塊處於金鑰狀態402中時,執行具有金鑰恢復之一AES解密運算432可將AES區塊置回至金鑰狀態402中。然而,一AES解密運算使用一金鑰排程作為其輸入金鑰,因此該AES區塊將不可能執行此運算。
當處於金鑰排程狀態406中時,執行無金鑰恢復之一AES加密運算424可將AES區塊置回至一不期盼之金鑰狀態426中。當處於金鑰排程狀態406中時,執行一金鑰排程運算428可將AES區塊置回至一不期盼之金鑰狀態430中。當AES區塊處於金鑰排程狀態406中時,執行具有金鑰恢復之一AES加密運算434可將AES區塊置回至金鑰排程狀態402中。然而,一AES加密運算使用一金鑰作為其輸入金鑰,因此該AES區塊將不可能執行此運算。
一加密過程之實施方案
圖5係一密碼編譯系統中之一加密過程500之一實施方案之一流程圖。該密碼編譯系統可包含圖1中所示之AES譯碼引擎100。該加密過程可使用如圖1至4中所闡述之AES演算法。
過程500以密碼編譯系統接收用於加密之一資料區塊開始(步驟502)。該密碼編譯系統確定一資料子區塊中所包含之位元數目,其中該資料子區塊之大小小於該所接收之資料區塊之大小(步驟504)。舉例而言,如參照圖1所闡述,供用於一AES演算法中之一資料子區塊可係128個位元。可將輸入資料區塊劃分為若干資料子區塊,其中每一資料子區塊係128個位元。該密碼編譯系統確定該輸入資料區塊中所包含之128位元資料區塊的數目n (步驟506)。接下來,該密碼編譯系統獲得一密碼編譯金鑰(步驟508)。該密碼編譯系統使用AES演算法及該密碼編譯金鑰來加密第n 個128位元資料子區塊(步驟510)。舉例而言,該密碼編譯系統中所包含之AES譯碼引擎100可加密第n 個128位元資料子區塊。
該密碼編譯系統使用一金鑰恢復運算來恢復該密碼編譯金鑰(步驟512)。舉例而言,該密碼編譯系統中之AES譯碼引擎100中之AES區塊102可包含一金鑰恢復運算以恢復該金鑰以供用於下一子區塊加密中。該密碼編譯系統可遞減資料子區塊之數目(步驟514)。若存在剩餘資料子區塊待加密(在步驟516中n 不等於0),則過程500繼續至步驟510。然後,該密碼編譯系統使用步驟512中恢復之金鑰來加密另一資料子區塊。若不存在剩餘資料子區塊待加密(在步驟516中n 等於0),則該密碼編譯系統可輸出經加密之所接收資料區塊(步驟518)。過程500結束。
在某些實施方案中,過程500可以第一子區塊開始且以第n 個子區塊結束加密該等資料子區塊,其中輸入資料區塊包含n 個子區塊。
一解密過程之實施方案
圖6係一密碼編譯系統中之一解密過程600之一實施方案之一流程圖。該密碼編譯系統可包含圖1中所示之AES譯碼引擎100。該解密過程可使用如圖1至4中所闡述之AES演算法。
過程600以密碼編譯系統接收用於解密之一資料區塊開始(步驟602)。該密碼編譯系統確定一資料子區塊中所包含之位元數目,其中該資料子區塊之大小小於所接收之資料區塊之大小(步驟604)。舉例而言,如參照圖1所闡述,供用於一AES演算法中之一資料子區塊可係128個位元。可將輸入資料區塊劃分為若干資料子區塊,其中每一資料子區塊係128個位元。該密碼編譯系統確定該輸入資料區塊中所包含之128位元資料區塊之數目n (步驟606)。接下來,該密碼編譯系統獲得一金鑰排程(步驟608)。該密碼編譯系統使用AES演算法及該金鑰排程來解密第n 個128位元資料子區塊(步驟610)。舉例而言,該密碼編譯系統中所包含之AES譯碼引擎100可解密第n 個128位元資料子區塊。
該密碼編譯系統使用一反向金鑰恢復運算來恢復該金鑰排程(步驟612)。舉例而言,該密碼編譯系統中之AES譯碼引擎100中之AES區塊102可包含一反向金鑰恢復運算以恢復該金鑰排程以供用於下一子區塊解密中。該密碼編譯系統可遞減資料子區塊之數目(步驟614)。若存在剩餘資料子區塊待解密(在步驟616中n 不等於0),則過程600繼續至步驟610。然後,該密碼編譯系統使用步驟612中恢復之金鑰來解密另一資料子區塊。若不存在剩餘資料子區塊待解密(在步驟616中n 等於0),則該密碼編譯系統可輸出經解密之所接收資料區塊(步驟618)。過程600結束。
在某些實施方案中,過程600可以第一子區塊開始且以第n 個子區塊結束解密該等資料子區塊,其中輸入資料區塊包含n 個子區塊。
統架構
圖7係可包含一密碼編譯系統之一系統之一實施方案之一方塊圖,該密碼編譯系統可包含如圖1中所示之一高級加密標準(AES)譯碼引擎。系統700包含一處理器710、一記憶體720、一儲存裝置730、及一輸入/輸出裝置740。組件710、720、730及740中之每一者係使用一系統匯流排750互連。處理器710能夠處理用於在系統700內執行之指令。在某些實施方案中,處理器710係一單執行緒處理器。在另一實施方案中,處理器710係一多執行緒處理器。處理器710能夠處理記憶體720中或儲存裝置730上所儲存之指令以在輸入/輸出裝置740上顯示一使用者介面之圖形資訊。
記憶體720儲存系統700內之資訊。在某些實施方案中,記憶體720係一電腦可讀媒體。在其他實施方案中,記憶體720係一揮發性記憶體單元。在其他實施方案中,記憶體720係一非揮發性記憶體單元。
儲存裝置730能夠為系統700提供大容量儲存。在某些實施方案中,儲存裝置730係一電腦可讀媒體。在各種不同實施方案中,儲存裝置730可係一軟碟裝置、一硬碟裝置、一光碟裝置或一磁帶裝置。
輸入/輸出裝置740為系統700提供輸入/輸出作業。在某些實施方案中,輸入/輸出裝置740包含一鍵盤及/或指向裝置。在其他實施方案中,輸入/輸出裝置740包含用於顯示圖形使用者介面之一顯示單元。
所闡述之特徵可實施於數位電子電路中或電腦硬體、韌體、軟體中或其組合中。該等特徵可實施於有形地體現於一資訊載體中(例如,一機器可讀儲存裝置中或一所傳播之信號中)以供由一可程式化處理器執行之一電腦程式產品中;且方法步驟可由一可程式化處理器執行,該可程式化處理器執行一指令程式以藉由對輸入資料進行操作並產生輸出來執行所闡述實施方案之功能。所闡述之特徵可有利地實施於可在一可程式化系統上執行之一個或多個電腦程式中,該可程式化系統包含至少一個可程式化處理器(其經耦合以自一資料儲存系統接收資料及指令且將資料及指令傳輸至該資料儲存系統)、至少一個輸入裝置及至少一個輸出裝置。一電腦程式係一電腦中可直接或間接用於執行某一活動或引起某一結果之一指令集。可以任一形式的程式化語言(包含編譯語言或解譯語言)寫入一電腦程式,且可以任一形式部署該電腦程式,包含部署為一獨立程式或部署為一模組、組件、子常式或適合用於一計算環境中之其他單元。
舉例而言,用於執行一指令程式之適合的處理器包含通用及專用微處理器兩者及任一種電腦之唯一處理器或多個處理器中之一者。一般而言,一處理器將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之必需元件係用於執行指令之一處理器及用於儲存指令及資料之一個或多個記憶體。一般而言,一電腦亦將包含用於儲存資料檔案之一個或多個大容量儲存裝置或以運作方式耦合以與其通信;此等裝置包含:磁碟(例如,內部硬碟及可抽換式磁碟);磁光碟;及光碟。適合於有形地體現電腦程式指令及資料之儲存裝置包含所有形式的非揮發性記憶體,舉例而言,包含:半導體記憶體裝置(例如,EPROM、EEPROM及快閃記憶體裝置);磁碟(例如,內部硬碟及可抽換式磁碟);磁光碟;以及CD-ROM及DVD-ROM磁碟。該處理器及該記憶體皆可由ASIC(專用積體電路)進行補充或併入於ASIC中。
為實現與一使用者之互動,該等特徵可實施於具有用於向該使用者顯示資訊之一顯示裝置(例如,一CRT(陰極射線管)或LCD(液晶顯示器)監視器)及該使用者可藉助其向電腦提供輸入之一鍵盤及一指向裝置(例如,一滑鼠或一軌跡球)之一電腦上。
該等特徵可實施於包含一後端組件(例如一資料伺服器)或包含一中間軟體組件(例如一應用程式伺服器或一網際網路伺服器)或包含一前端組件(例如具有一圖形使用者介面或一網際網路瀏覽器之一用戶端電腦)或其任一組合之一電腦系統中。該系統之組件可藉助任一數位資料通信形式或媒體(例如一通信網路)來連接。通信網路之實例包含(例如)一LAN、一WAN以及形成網際網路之電腦及網路。
該電腦系統可包含用戶端及伺服器。一用戶端通常與伺服器彼此遠離且通常透過一網路互動。用戶端與伺服器之間的關係藉助運行於各別電腦上且彼此之間具有一用戶端-伺服器關係之電腦程式而產生。
本文已闡述若干實施方案。然而,應理解,可對本發明做出各種修改。舉例而言,可組合、刪除、修改或補充一個或多個實施方案之元件以形成其他實施方案。該等圖中所繪示之邏輯流程未必需要所顯示之特定次序或順序次序來達成所期望之結果。另外,可提供其他步驟,或可自所闡述之流程除去若干步驟,且可向所闡述之系統添加或自所闡述之系統移除其他組件。因此,其他實施方案亦歸屬於以下申請專利範圍之範疇內。
100...譯碼引擎
102...AES區塊
104a...AES譯碼位元
104b...AES開始位元
104c...AES運算位元
104d...AES運算位元
104e...AES金鑰選擇位元
104f...AES金鑰選擇位元
106...AES輸入資料暫存器
108a...AES狀態暫存器故障偵測位元
108b...AES中斷旗標位元
110a...XOR金鑰資料輸入位元
110b...金鑰資料暫存器位元
110c...金鑰資料暫存器位元
110d...AES資料遮掩啟用位元
112...金鑰暫存器
114...AES輸出資料暫存器
116...AES遮罩暫存器
118...AES CRC暫存器
120...資料匯流排
200...AES系統
202...輸入/輸出資料區塊
204...AES資料處理加密/解密區塊
206...AES金鑰處理加密/解密區塊
208...金鑰暫存器區塊
700...系統
710...處理器
720...記憶體
730...儲存裝置
740...輸入/輸出裝置
750...系統匯流排
圖1係一高級加密標準(AES)譯碼引擎之一實例性實施方案之一方塊圖;
圖2係一高級加密標準(AES)區塊中所包含之一AES系統之一實例性實施方案之一方塊圖;
圖3A係顯示一高級加密標準(AES)運算暫存器中之位元及與位元值相關聯之運算之一表;
圖3B係顯示使用AES運算暫存器選擇之高級加密標準(AES)運算之執行時間之一表;
圖4係顯示一AES區塊中之實例性高級加密標準(AES)金鑰狀態之一狀態圖;
圖5係一密碼編譯系統中之一加密過程之一實例性實施方案之一流程圖;
圖6係一密碼編譯系統中之一解密過程之一實例性實施方案之一流程圖;及
圖7係可包含一密碼編譯系統之一系統之一實例性實施方案之一方塊圖。
(無元件符號說明)

Claims (16)

  1. 一種密碼編譯系統,其包括:一暫存器,其含有一金鑰;一輸入/輸出資料區塊,含有用於加密之資料;一處理器,其耦合至該暫存器及該輸入/輸出資料區塊,且可運作以用於:從該輸入/輸出資料區塊接收資料,該資料包括一第一資料子區塊,其中該第一資料子區塊中之位元之數目小於或等於該資料區塊中之位元之總數目;在該第一資料子區塊上執行一第一加密運算,該加密運算包含從內含於暫存器之一初始金鑰來計算一金鑰排程資料,其中該計算使用該暫存器作為一工作區且覆寫該初始金鑰,導致內含於暫存器的資料不同於初始金鑰,該資料包括該金鑰排程資料;且在該第一資料子區塊上的該第一加密運算結束時:在該第一加密運算提供的該金鑰排程資料上執行一反向金鑰排程運算以恢復該初始金鑰;將所恢復之金鑰復原於暫存器中,其中該復原覆寫了暫存器中除了初始金鑰的資料。
  2. 如請求項1之系統,進一步包括: 一運算暫存器,包括一或多個位元,其中在執行該第一加密運算前,該一或多個位元經設置用於具有金鑰恢復之加密運算。
  3. 一種密碼編譯系統,其包括:一輸入/輸出資料區塊,含有用於解密之資料;一暫存器,其含有一金鑰排程資料;一處理器,其耦合至該暫存器及該輸入/輸出資料區塊,且可運作以用於:從該輸入/輸出資料區塊接收資料,該資料包括一第一資料子區塊,其中該第一資料子區塊中之位元之數目小於或等於該資料區塊中之位元之總數目;在該第一資料子區塊上執行一第一解密運算,該解密運算包含從內含於暫存器之一初始金鑰排程資料來計算一反向金鑰排程運算,其中該計算使用該暫存器作為一工作區且覆寫該金鑰排程資料,導致內含於暫存器的資料不同於該金鑰排程資料,該資料包括該金鑰;且在該第一資料子區塊上的該第一解密運算結束時:在該金鑰上執行一金鑰排程運算以恢復該初始金鑰排程資料;將所恢復之金鑰排程資料復原於暫存器中,其中該復原覆寫了暫存器中除了金鑰排程資 料的資料。
  4. 如請求項3之系統,進一步包括:一運算暫存器,包括一或多個位元,其中在執行該第一解密運算前,該一或多個位元經設置用於具有金鑰恢復之解密運算。
  5. 一種用於在一密碼編譯系統中加密資料之方法,該方法包括:接收用於加密之一資料區塊;確定一資料子區塊中之一位元數目,其中一資料子區塊中之位元數目小於或等於該資料區塊中之位元數目;確定包含於該資料區塊之複數個資料子區塊;獲得一初始金鑰,該初始金鑰內含於一暫存器中;對一第一資料子區塊執行一加密運算,其中該加密運算包括:使用該暫存器作為一工作區、從該初始金鑰計算金鑰排程資料,其中該計算覆寫該初始金鑰,導致內含於暫存器的資料不同於初始金鑰,該資料包括該金鑰排程資料;在該第一資料子區塊上的該加密運算結束時:在該加密運算提供的該金鑰排程資料上執行一反向金鑰排程運算以恢復該初始金鑰;及將所恢復之金鑰復原於暫存器中,其中該復原覆寫了暫存器中除了初始金鑰的資料;使用該所恢復之金鑰在一第二資料子區塊上執行該加 密運算。
  6. 如請求項5之方法,進一步包括:在該第一資料子區塊上執行該第一加密運算前,確定包括於一運算暫存器的一或多個位元經設置用於具有金鑰恢復之加密運算。
  7. 如請求項5之方法,其中該位元數目係128。
  8. 一種用於在一密碼編譯系統中解密資料之方法,該方法包括:接收用於解密之一資料區塊;確定一資料子區塊中之一位元數目,其中一資料子區塊中之該位元數目小於或等於該資料區塊中之位元數目;確定包含於該資料區塊之複數個資料子區塊;獲得一初始金鑰排程資料,該初始金鑰排程資料內含於一暫存器中;對一第一資料子區塊執行一解密運算,其中該解密運算包括:以一反向金鑰排程運算從該初始金鑰排程資料計算一金鑰,其中該計算使用該暫存器作為一工作區,且覆寫該金鑰排程資料,導致內含於暫存器的資料不同於金鑰排程資料,該資料包括該金鑰;在該第一資料子區塊上的該解密運算結束時:在該金鑰上執行一該金鑰排程運算以恢復該初始金鑰排程資料;及 將所恢復之金鑰排程資料復原於暫存器中,其中該復原覆寫了暫存器中除了金鑰排程資料的資料;使用該所恢復之金鑰排程在一第二資料子區塊上執行該解密運算。
  9. 如請求項8之方法,進一步包括:在該第一資料子區塊上執行該第一解密運算前,確定包括於一運算暫存器的一或多個位元經設置用於具有金鑰恢復之解密運算。
  10. 如請求項8之方法,其中該位元數目係128。
  11. 一種用於在一密碼編譯系統中加密資料之系統,該系統包括:一介面,其可運作以接收用於加密之一資料區塊;及一處理器,其耦合至該介面,該處理器可運作以用於:確定一資料子區塊中之一位元數目,其中一資料子區塊中之該位元數目小於或等於該資料區塊中之位元數目;確定包含於該資料區域之複數個資料子區塊;獲得一初始金鑰,該初始金鑰內含於一暫存器中;對一第一資料子區塊執行一加密運算,其中該加密運算包括:使用該暫存器作為一工作區計算金鑰排程資料,其中該計算覆寫該初始金鑰,導致內含於暫存 器的資料不同於金鑰資料,該資料包括該金鑰排程資料;在該第一資料子區塊上的該加密運算結束時:在該第一加密運算提供的該金鑰排程資料上執行一反向金鑰排程運算,以恢復該初始金鑰;及將所恢復之金鑰資料復原於暫存器中,其中該復原覆寫了暫存器中除了初始金鑰的資料;使用該所恢復之金鑰在一第二資料子區塊上執行該加密運算。
  12. 如請求項11之系統,進一步包括一運算暫存器,該運算暫存器包括一或多個位元,其中:在該資料子區塊上執行該第一加密運算前,該一或多個位元經設置用於具有金鑰恢復之加密運算。
  13. 如請求項11之系統,其中該位元數目係128。
  14. 一種用於在一密碼編譯系統中解密資料之系統,該系統包括:一介面,其可運作以接收用於解密之一資料區塊;及一處理器,其以運作方式耦合至該介面,該處理器可運作以用於:確定一資料子區塊中之一位元數目,其中一資料子區塊中之該位元數目小於或等於該資料區塊中之位元數目; 確定包含於該資料區域之複數個資料子區塊;獲得一初始金鑰排程資料,該初始金鑰排程資料內含於一暫存器中;對一第一資料子區塊執行一解密運算,其中該解密運算包括:以一反向金鑰排程運算從該初始金鑰排程資料計算一金鑰,其中該計算使用該暫存器作為一工作區,且覆寫該金鑰排程資料,導致內含於暫存器的資料不同於金鑰排程資料,該資料包括該金鑰;在該第一資料子區塊上的該解密運算結束時:在該金鑰上執行一該金鑰排程運算以恢復該初始金鑰排程資料;及將所恢復之金鑰排程資料復原於暫存器中,其中該復原覆寫了暫存器中除了金鑰排程資料的資料;使用該所恢復之金鑰排程在一第二資料子區塊上執行該解密運算。
  15. 如請求項14之系統,其中該位元數目係128。
  16. 如請求項14之系統,進一步包括一運算暫存器,該運算暫存器包括一或多個位元,其中:在該第一資料子區塊上執行該第一解密運算前,該一或多個位元經設置用於具有金鑰恢復之解密運算。
TW99105492A 2009-02-27 2010-02-25 密碼編譯系統之金鑰恢復機制 TWI469609B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/395,504 US8233620B2 (en) 2009-02-27 2009-02-27 Key recovery mechanism for cryptographic systems

Publications (2)

Publication Number Publication Date
TW201121279A TW201121279A (en) 2011-06-16
TWI469609B true TWI469609B (zh) 2015-01-11

Family

ID=42667096

Family Applications (1)

Application Number Title Priority Date Filing Date
TW99105492A TWI469609B (zh) 2009-02-27 2010-02-25 密碼編譯系統之金鑰恢復機制

Country Status (7)

Country Link
US (1) US8233620B2 (zh)
EP (1) EP2401837A2 (zh)
KR (1) KR20110129932A (zh)
CN (1) CN102334307B (zh)
CA (1) CA2751623A1 (zh)
TW (1) TWI469609B (zh)
WO (1) WO2010126647A2 (zh)

Families Citing this family (148)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
EP2718844B1 (en) 2011-06-06 2019-08-07 Certicom Corp. Squaring binary finite field elements
US20130067212A1 (en) * 2011-09-14 2013-03-14 Augustin J. Farrugia Securing implementation of cryptographic algorithms using additional rounds
US9596080B2 (en) * 2011-12-15 2017-03-14 Inside Secure Method of generating prime numbers proven suitable for chip cards
CN104012030B (zh) * 2011-12-21 2018-04-13 英特尔公司 用于保护对称加密密钥的系统及方法
KR101330664B1 (ko) * 2012-06-15 2013-11-15 한국전자통신연구원 저전력 암호화 장치 및 방법
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US9413781B2 (en) 2013-03-15 2016-08-09 Fireeye, Inc. System and method employing structured intelligence to verify and contain threats at endpoints
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9189627B1 (en) 2013-11-21 2015-11-17 Fireeye, Inc. System, apparatus and method for conducting on-the-fly decryption of encrypted objects for malware detection
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9292686B2 (en) 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US9485088B2 (en) * 2014-10-31 2016-11-01 Combined Conditional Access Development And Support, Llc Systems and methods for dynamic data masking
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
EP3086585B1 (en) * 2015-04-23 2019-12-11 Nxp B.V. Method and system for securing data communicated in a network
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10204532B2 (en) * 2015-09-25 2019-02-12 Intel Corporation Multiple input cryptographic engine
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10826933B1 (en) 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
US11057240B2 (en) 2018-12-20 2021-07-06 Rolls-Royce North American Technologies Inc. Method and process for securing an executable image
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11886585B1 (en) 2019-09-27 2024-01-30 Musarubra Us Llc System and method for identifying and mitigating cyberattacks through malicious position-independent code execution
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040208318A1 (en) * 2003-04-18 2004-10-21 Via Technologies Inc. Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7257229B1 (en) * 2002-06-07 2007-08-14 Winbond Electronics Corporation Apparatus and method for key scheduling

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH088897A (ja) 1994-06-15 1996-01-12 Nippon Telegr & Teleph Corp <Ntt> データの暗号化・復号処理方法及び暗号装置
US20080192928A1 (en) 2000-01-06 2008-08-14 Super Talent Electronics, Inc. Portable Electronic Storage Devices with Hardware Security Based on Advanced Encryption Standard
KR100525389B1 (ko) * 2001-01-17 2005-11-02 엘지전자 주식회사 실시간 입력 스트림의 암호화/복호화 장치
US7280657B2 (en) 2001-06-13 2007-10-09 Itt Manufacturing Enterprises, Inc. Data encryption and decryption system and method using merged ciphers
US7221763B2 (en) 2002-04-24 2007-05-22 Silicon Storage Technology, Inc. High throughput AES architecture
JP2005527853A (ja) * 2002-05-23 2005-09-15 アトメル・コーポレイション 高度暗号化規格(aes)のハードウェア暗号法エンジン
US20040047466A1 (en) 2002-09-06 2004-03-11 Joel Feldman Advanced encryption standard hardware accelerator and method
JP2004133087A (ja) * 2002-10-09 2004-04-30 Sony Corp ブロック暗号方法およびブロック暗号回路
US20080019524A1 (en) 2006-06-29 2008-01-24 Kim Moo S Apparatus and method for low power aes cryptographic circuit for embedded system
JP4905000B2 (ja) 2006-09-01 2012-03-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7822206B2 (en) * 2006-10-26 2010-10-26 International Business Machines Corporation Systems and methods for management and auto-generation of encryption keys
JP5055993B2 (ja) * 2006-12-11 2012-10-24 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7949130B2 (en) 2006-12-28 2011-05-24 Intel Corporation Architecture and instruction set for implementing advanced encryption standard (AES)
US8538015B2 (en) 2007-03-28 2013-09-17 Intel Corporation Flexible architecture and instruction for advanced encryption standard (AES)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257229B1 (en) * 2002-06-07 2007-08-14 Winbond Electronics Corporation Apparatus and method for key scheduling
US20040208318A1 (en) * 2003-04-18 2004-10-21 Via Technologies Inc. Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine

Also Published As

Publication number Publication date
US8233620B2 (en) 2012-07-31
CA2751623A1 (en) 2010-11-04
EP2401837A2 (en) 2012-01-04
TW201121279A (en) 2011-06-16
KR20110129932A (ko) 2011-12-02
CN102334307B (zh) 2015-04-01
CN102334307A (zh) 2012-01-25
WO2010126647A3 (en) 2010-12-29
WO2010126647A2 (en) 2010-11-04
US20100220863A1 (en) 2010-09-02

Similar Documents

Publication Publication Date Title
TWI469609B (zh) 密碼編譯系統之金鑰恢復機制
US9654282B2 (en) Flexible architecture and instruction for advanced encryption standard (AES)
US8983063B1 (en) Method and system for high throughput blockwise independent encryption/decryption
EP2096787B1 (en) Method and apparatus for optimizing advanced encryption standard (AES) encryption and decryption in parallel modes of operation
WO2008083365A1 (en) Architecture and instruction set for implementing advanced encryption standard (aes)
WO2008121734A1 (en) Method and apparatus for advanced encryption standard (aes) block cipher