TWI573039B - 計算系統及其加解密裝置與加解密方法 - Google Patents

計算系統及其加解密裝置與加解密方法 Download PDF

Info

Publication number
TWI573039B
TWI573039B TW104108334A TW104108334A TWI573039B TW I573039 B TWI573039 B TW I573039B TW 104108334 A TW104108334 A TW 104108334A TW 104108334 A TW104108334 A TW 104108334A TW I573039 B TWI573039 B TW I573039B
Authority
TW
Taiwan
Prior art keywords
data
key
encryption
decryption
input
Prior art date
Application number
TW104108334A
Other languages
English (en)
Other versions
TW201537385A (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 TW201537385A publication Critical patent/TW201537385A/zh
Application granted granted Critical
Publication of TWI573039B publication Critical patent/TWI573039B/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
    • 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/72Signcrypting, i.e. digital signing and encrypting simultaneously
    • 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

Description

計算系統及其加解密裝置與加解密方法
本發明係有關於一種資料加密技術,且特別是有關於一種方法與系統以安全儲存資料於外部記憶體。
一般之密碼程序,諸如加密或解密程序是植基於迦羅瓦域(Galois-Field(GF))法則。GF法則的各式實施方式常見於學術論文或期刊,因此,已為公眾所知悉。舉例而言,U.S.Patent 4,322,577揭露之內容如後,在此作為參考,其提到訊息之內含資訊的加密及解密係藉由將明文訊息分割為二進位資料塊,並進一步將資料塊分為次資料塊,這些次資料塊可被理解為迦羅瓦域中之元。多個元的明文矩陣(M)藉由GF法則乘以一組第一鍵矩陣(A),乘積(M.A)藉由GF法則乘以同組之第二鍵矩陣(B),最終乘積(B.M.A)則被設為加密資訊塊(K)。解密係由將最終乘積(B.M.A)乘以反矩陣(A-1,B-1),此反矩陣(A-1,B-1)係由相同的鍵(a,b)所產生,此鍵(a,b)係用以進行解密或讓整體進入適當之次序。
此外,U.S.Patent 4,975,867揭露之內容如後, 在此作為參考。該案揭露裝置及/或方法使得GF(22M)之單一元分割為兩元,A及B。例如,藉由找出除數A的乘法逆元素以執行程序B/A,隨後,將逆元素乘以分子B。A的乘法逆元素(multiplicative inverse)A-1係由計算轉換因數D而得,隨後,將A乘以D以將其轉換為元C,C同樣為最小GF(2M)的元,此最小GF(2M)為GF(22M)的次域。詳細而言,在GF(22M)中,C相等於A2M+1或A2M.A。其次,在GF(2M)中,C的乘法逆元素C-1可適當地由儲存的查表(look-up table)中取得,此查表包含GF(2M)的2M元。C的乘法逆元素C-1隨後藉由將乘法逆元素C-1乘以轉換因數D,而被轉換為GF(22M)的元,此GF(22M)的元為原始除數A的乘法逆元素A-1。A的乘法逆元素A-1隨後乘以B以計算出商B/A。
U.S.Patent 6,766,345揭露之內容如後,在此作 為參考。該案揭露GF乘法系統,此GF乘法系統包含乘法電路(multiplier circuit)、GF線性轉換電路(Galois-Field linear transformer circuit)及儲存電路(storage circuit)。乘法電路用以將兩多項式中關於GF之係數相乘,以取得其乘積,GF線性轉換電路相應於乘法電路以預測不可約之多項式(irreducible polynomial)中的多項式乘積之模餘數(modulo remainder)。儲存電路用以提供GF線性轉換電路一套係數以預測一預設之不可約多項式中的模餘數。
在基於蒙哥馬利乘法法則(Montgomery multiplication algorithm)的GF(2K)乘法器中(Proceedings of the 2004 IEEE International Symposium on Circuits and Systems(ISCAS 2004),May 23-26,2004,Vancouver,Canada,Fournaris et al.,在此作為參考),揭露兩個有限域(Finite-Field)乘法結構以及採用蒙哥馬利乘法法則之超大型積體電路(Very-Large-Scale Integration,VLSI)。第一結構(Folded)用以最佳化地縮小矽覆蓋區域(gate count),第二結構(Pipelined)用以最佳化地縮減乘法延遲時間。上述結構係依據邏輯閘晶片(gate count-chip)覆蓋區域以及乘法延遲時間來測量,相較於現有乘法器,上述結構具有更適當之結果。
上述現有的方式仍存在不便與缺陷,相關領域莫不費盡心思來謀求解決之道,但長久以來仍未發展出適當的解決方案。
發明內容旨在提供本揭示內容的簡化摘要,以使閱讀者對本揭示內容具備基本的理解。此發明內容並非本揭示內容的完整概述,且其用意並非在指出本發明實施例的重要/關鍵元件或界定本發明的範圍。
本發明之一實施例提供一種加解密裝置,此加解密裝置包含複數個乘法單元及邏輯電路。複數個乘法單元配置為兩個或多個乘法階層,並用以依據迦羅瓦域(Galois-Field(GF))算術的個別迦羅瓦域進行運算(configured to operate in accordance with Galois-Field arithmetic over respective Galois fields)。邏輯電路用以接收輸入資料,輸入資料之字 長超過該些乘法單元中之最大輸入字長,其中邏輯電路持有密碼金鑰,密碼金鑰包含複數個次金鑰,該些次金鑰之數量不超過該些乘法單元之數量,其中邏輯電路藉由應用該些次金鑰於該些乘法單元以對該輸入資料執行密碼程序。
在一些實施例中,輸入資料包含明文資料,其中 密碼金鑰包含加密金鑰,密碼程序包含應用於該明文資料的加密程序。在其餘實施例中,輸入資料包含密文資料,其中密碼金鑰包含解密金鑰,其中密碼程序包含應用於密文資料的解密程序。
在一實施例中,邏輯電路用以於使用該些乘法單 元的第一模式與第二模式之間進行切換,於第一模式,輸入資料包含明文資料,密碼金鑰包含加密金鑰,且密碼程序包含應用於明文資料的加密程序;以及於第二模式,輸入資料包含密文資料,密碼金鑰包含解密金鑰,且密碼程序包含實施於密文資料的解密程序。
在一些實施例中,該些次金鑰包含複數個解密次 金鑰,邏輯電路用以由產生密文資料的加密金鑰來取得該些解密次金鑰。在其餘實施例中,加密金鑰包含複數個加密次金鑰,邏輯電路用以由應用反向操作於每一加密次金鑰來取得每一該些解密次金鑰。在另一實施例中,邏輯電路用以藉由執行位元分離、位元組合以及位元混合的其中至少一者來運用一前一乘法階層的該些乘法單元的該些輸出或輸入資料以提供複數個輸入至預設乘法階層的該些乘法單元中。
在一實施例中,邏輯電路用以於該些解密程序中 運用該些乘法單元的該些輸出,其中該些解密程序的順序係為該些加密程序所採用之順序的反向順序。在另一實施例中,輸入資料包含明文資料或密文資料,其中該密碼金鑰包含鑑別金鑰,密碼程序包含應用於明文資料或密文資料的鑑別程序。
在一些實施例中,邏輯電路用以藉由比較由第一 資料計算而得之第一簽章與由第二資料計算而得之第二簽章來鑑別密文資料,其中第一資料由解密程序之密文資料取得,第二資料由加密程序之明文資料取得。若第一簽章以及第二簽章彼此相等,則密文資料有極高之可能性為正確的資料。在另一實施例中,邏輯電路用以藉由乘法單元處理第一資料、第二資料以及鑑別金鑰以計算第一簽章與第二簽章。於再一實施例中,明文資料包含輸入文字以及輸入鑑別資料,密文資料包含輸出文字以及輸出鑑別資料。邏輯電路用以藉由比較輸入鑑別資料以及輸出鑑別資料以鑑別密文資料。
本發明之另一實施例提供一種加解密方法,其包 含接收輸入資料,上述輸入資料之字長超過該些乘法單元中之最大輸入字長,其中乘法單元配置為兩個或多個乘法階層,並用以依據迦羅瓦域(Galois-Field(GF))算術的個別迦羅瓦域進行運算;持有一密碼金鑰,上述密碼金鑰包含複數個次金鑰,該些次金鑰之數量不超過該些乘法單元之數量;以及應用該些次金鑰於該些乘法單元以對輸入資料執行密碼程序。
本發明之又一實施例提供一種計算系統,其包含 外部記憶體及控制器。控制器包含複數個乘法單元,該些乘法 單元配置為兩個或多個乘法階層。控制器用以依據迦羅瓦域(Galois-Field(GF))算術的個別迦羅瓦域進行運算,並用以接收輸入資料,輸入資料之字長超過該些乘法單元中之最大輸入字長。控制器用以持有密碼金鑰,密碼金鑰包含複數個次金鑰,該些次金鑰之數量不超過該些乘法單元之數量。控制器藉由應用該些次金鑰於該些乘法單元以對輸入資料執行密碼程序。
在參閱下文實施方式後,本發明所屬技術領域中具有通常知識者當可輕易瞭解本發明之基本精神及其他發明目的,以及本發明所採用之技術手段與實施態樣。
20‧‧‧安全計算系統
24‧‧‧控制器
28‧‧‧外部記憶體
32‧‧‧處理器
36‧‧‧記憶體介面
40‧‧‧加解密模組
44‧‧‧加密單元
48‧‧‧解密單元
50‧‧‧加密/解密選擇線
52‧‧‧密鑰
56‧‧‧鑑別單元
208‧‧‧加密資料
212‧‧‧加密資料
216‧‧‧明文
230‧‧‧乘法引擎
234‧‧‧多工器
274‧‧‧串流加解密器
278‧‧‧金鑰
280‧‧‧串流解密器
284‧‧‧金鑰
288‧‧‧密文輸入
320‧‧‧輸入線
58‧‧‧鑑別匯流排
60‧‧‧鑑別金鑰
70‧‧‧加解密器
72‧‧‧明文
74‧‧‧加密金鑰
76‧‧‧密文
78‧‧‧解密金鑰
80‧‧‧GF乘法器
100‧‧‧加解密器
104‧‧‧明文
108‧‧‧加密資料
112‧‧‧加密資料
116‧‧‧明文
120‧‧‧串流金鑰
124‧‧‧金鑰反向模組
130‧‧‧乘法器
134‧‧‧多工器
150‧‧‧分割器
154‧‧‧分割器
158‧‧‧結合器
162‧‧‧結合器
170‧‧‧密文輸出
174‧‧‧串流加解密器
178‧‧‧串流金鑰
328‧‧‧線
340‧‧‧互連邏輯器
344‧‧‧互連邏輯器
348‧‧‧多工器
352‧‧‧乘法引擎
360‧‧‧簽章
364‧‧‧簽章
400‧‧‧安全系統
406‧‧‧明文輸入
408‧‧‧加密資料
412‧‧‧加密資料
418‧‧‧明文輸出
420‧‧‧串流金鑰
421‧‧‧加解密金鑰
422‧‧‧鑑別資料
424‧‧‧金鑰反向器
430‧‧‧乘法器
434‧‧‧多工器
454‧‧‧輸入分割器
462‧‧‧輸入結合器
470‧‧‧密文輸出
474‧‧‧串流加解密器
480‧‧‧串流解密器
488‧‧‧密文輸入
180‧‧‧串流解密器
184‧‧‧金鑰
200‧‧‧加解密器
204‧‧‧明文
490‧‧‧結合單元
492‧‧‧分割器
494‧‧‧認證資料
496‧‧‧比較器
為讓本發明之上述和其他目的、特徵、優點與實施例能更明顯易懂,所附圖式之說明如下:第1圖係依照本發明一實施例繪示一種安全計算系統的示意圖。
第2圖係依照本發明另一實施例繪示一種密碼加密器的示意圖。
第3圖係依照本發明再一實施例繪示一種包含多個迦羅瓦域(Galois-Field(GF))乘法器之加密器之硬體實施方式的示意圖。
第4圖係依照本發明又一實施例繪示一種採用多個迦羅瓦域(Galois-Field(GF))乘法引擎之加密器的硬體實施方式示意圖。
第5圖係依照本發明另一實施例繪示一種鑑別單元的示意圖,此鑑別單元之簽章計算係基於GF乘法。
第6圖係依照本發明再一實施例繪示一種結合加密及鑑別技術之安全系統的硬體實施方式示意圖。
根據慣常的作業方式,圖中各種特徵與元件並未依比例繪製,其繪製方式是為了以最佳的方式呈現與本發明相關的具體特徵與元件。此外,在不同圖式間,以相同或相似的元件符號來指稱相似的元件/部件。
概要
於一般安全計算系統中,控制器儲存加密編碼及/或資料於外部記憶體中。在某些實施例中,控制器包含一些手段用以安全地執行密碼程序,諸如,藉由易遭受各式密碼攻擊的匯流排與外部記憶體通信,但不洩漏任何安全資訊。
當寫入加密資訊至外部記憶體或讀取外部記憶體之加密資訊時,要求於加密程序中產生的額外資訊越少越好。原則上,控制器可採用資料流加解密(stream cipher)以執行低延時(low-latency)加密及解密。然而,由於資料流加解密主要配合多個隨機金鑰以執行互斥或位元(bit-wise XOR),此資料流加解密可能會易於受到單一位元的攻擊。舉例而言,攻擊者可改變位址指標內之位元以取得機密資訊之出入許可及/或中斷控制器的操作。
在其餘例子中,控制器可使用基於迦羅瓦域 (Galois-Field(GF))運算之加密程序的區塊加解密器(block cipher)。在以下說明及專利範圍中,輸入至加解密器(cipher)之輸入資料,於執行加密時被稱為明文(plain text),於執行解密時被稱為密文(cipher text)。上述輸入資料或其衍生物係取於GF乘法運算,因此,可被認為是GF的元素。
以加密的觀點而言,加解密器將輸入資料與一密 鑰(金鑰)相乘以產生加密資料。以解密的觀點而言,可藉由將加密資料與一金鑰相乘以恢復輸入資料,前述金鑰相等於用於加密之金鑰的乘法反元素(如:採用GF法則)。然而,取得反向金鑰之方式包含複雜的運算,此運算將顯著地增加記憶體讀取的延遲時間,或者,可能需要採用大量的反轉表(inversion table)。舉例而言,16位元之金鑰的反轉表大小為1百萬位元(Megabits,Mbs)。
本發明之實施例可提供一種方法及系統,上述方 法及系統可用以執行基於GF乘法運算之密碼程序。在上述技術中,加解密器包含複數個乘法單元以及邏輯電路,以實現上述乘法單元間的內部互連並管理加解碼器內之資料流。在一些實施例中,加解碼器可執行兩種模式,如:加密或解密,其執行方式取決於上述乘法單元間不同的內部互連方式。
上述乘法單元內的每一GF乘法器將由明文或密 文(或由其餘GF乘法單元)取得之子字(sub-word)與由較大之密鑰取得之個別次金鑰(sub-key)相乘。計算複數個用以解密次金鑰的方式顯著地較計算較大之用以解密解密金鑰的方式 簡易。於後文及專利範圍中,乘法單元可包含GF乘法器,或者乘法引擎可包含多個GF乘法器。
在一些實施例中,每一明文及密文可包含16位 元。邏輯電路可分割32位元之加密金鑰為4個8位元之次金鑰,以分別輸入至4個GF乘法器。每一乘法器藉由上述8位元次金鑰其中之一以執行8位元輸入的GF乘法運算,以產生8位元乘積。以加密觀點而言,邏輯電路可分割明文成2個8位元之子字,以分別輸入至2個GF乘法器。
邏輯電路可重新排列上述GF乘法器的8位元輸 出成為2個8位元子字,每一8位元子字輸入至其餘2個乘法器,其8位元輸出被相加以產生16位元密文。以解密觀點而言,邏輯電路可藉由以位元結合(bit-combining)取代位元分割(bit-splitting)之方式以反向上述於加密時的操作。此外,對於解密而言,邏輯電路取得解密次金鑰,其可藉由僅使用一256.8bit=2Kbit的反轉表對每一加密次金鑰計算乘法反元素的方式取得。
在一些實施例中,邏輯電路可應用額外的資料流 加解密操作於16位元加密資料上,以避免於明文相等於零時輸出零密文。邏輯電路於解密時反向上述資料流加解密操作。
在另一實施例中,上述加解密器(支援16位元明 文/密文以及32位元密鑰)之整體用以作為乘法引擎,且加解密器可使用128位元密鑰以分別執行32位元之明文及密文的加密及解密。在本實施例中,加解密器的結構以及資料流相似於前述加解密器,然本實施例之加解密器可適度地對輸入、輸出 及其間之資料大小進行調整。邏輯電路分割128位元加密金鑰成為4個32位元次金鑰,上述32位元次金鑰進一步被分割為4個8位元次金鑰(如,總數為16個8位元加密次金鑰),此外,上述4個32位元次金鑰分別被輸入至乘法引擎。以解密觀點而言,邏輯電路使用16個2Kbit的表以取得16個乘法反元素次金鑰,其中4個乘法反元素次金鑰分別被輸入至每一乘法引擎。
一般而言,較長的加密金鑰具有較佳之安全性, 然而,其需要較高之運算資源才得以產生。在一些實施例中,取代產生128位元金鑰的方式,加解密器僅產生單一32位元金鑰以供所有GF乘法引擎使用。此外,加解密器亦可產生64位元金鑰,並分割64位元金鑰為2個32位元次金鑰,隨後,加解密器可將每一32位元次金鑰輸入至2個GF乘法引擎。
在一些實施例中,加解密器可重複利用一個或多 個用以計算反向次金鑰的反轉表。反轉表的重複利用可附加實施(implementation dependent)或者被直接採用。舉例而言,於輸入至其餘乘法單元前,一個乘法單元的輸出已被進行傳輸(pipelined)。
在一些實施例中,控制器可鑑別其由外部記憶體 讀取之資訊,藉由一同儲存資料與鑑別簽章,並於取回儲存之資料時,確認簽章與資料之正確性(有效性)。在一實施例中,控制器包含鑑別單元,此鑑別單元可採用前述16位元資料以及128位元金鑰乘法引擎以計算數位簽章。在本實施例中,鑑別單元可與前述32位元/128位元金鑰加解密器一同進行處理。
於加密以及解密時,鑑別單元承認輸入一由加解 密器產生之中間結果的32位元字組。當由外部記憶體讀取可信任之資料(如,未被竄改之資料)時,於加密以及解密時之中間結果的32位元值會相等,並使得個別簽章相互匹配。
在一些實施例中,邏輯電路轉換32位元中間結果 為16位元字組輸入至乘法引擎(如,藉由應用邏輯互斥或於序向位元對(ordered in bit-pairs)之32位元輸入)。乘法引擎採用32位元金鑰以處理16位元輸入,並輸出16位元乘積簽章。 以加密觀點而言,簽章與加密資料一同被儲存,而以解密觀點而言,經計算之簽章被證實與讀取簽章匹配。
在一些實施例中,邏輯電路結合了密碼與鑑別的 操作,藉由對包含用以加密的輸入資料及專用鑑別資料的明文進行加密程序。以解密觀點而言,邏輯電路讀取以及解密儲存的加密資料,以恢復輸入及鑑別資料。邏輯電路比較經恢復之鑑別資料及用於加密之鑑別資料,以確認經恢復之輸入資料為可信任之資料。
於後文之說明及專利範圍中,每一加密、解密及鑑別程序被稱為“密碼程序(ciphering operation or cryptographic operation)。”此外,應用於執行設定或指定的密碼程序之各別密鑰被稱為“密碼金鑰(ciphering key or cryptographic key)。”
於上述技術中,加密金鑰被分割為多個較短之次金鑰,上述次金鑰之乘法反元素可採用較小之反轉表來取得。加密設定或指定的明文或分別解密密文可採用同一套GF乘法 器來執行,或採用乘法引擎,其數量可能相等於次金鑰之數量。如此一來,實施加解密器僅需較小之硬體覆蓋區,而達成相似之密碼強度,此比較基準係與使用完整長度之金鑰的GF乘法運算相比。此外,本發明實施例之加解密器不會受到串流加解密器引起之脆弱性的影響。
系統介紹
第1圖係依照本發明一實施例繪示一種安全計算 系統20的示意圖。安全計算系統20包含控制器24以及外部記憶體28。舉例而言,安全計算系統20可為個人電腦、伺服器、通訊裝置(如:智慧型手機)或其餘種類適合之計算系統的一部份。
控制器24包含處理器32,並用以執行加密儲存於 外部記憶體28的編碼。控制器24可選擇性地或額外地儲存加密資料及/或鑑別簽章於外部記憶體28。控制器24透過採用記憶體介面36之外部匯流排以與外部記憶體28通信。記憶體介面36將內部資料、位址資訊及個別信號之間進行轉換,以適於透過外部匯流排來進行通信。
外部記憶體28可包含任何適當之記憶體,例如: 隨機存取記憶體(Random Access Memory,RAM)或非揮發性記憶體(如:快閃記憶體(Flash memory)。此外,外部記憶體28亦可為唯讀記憶體(Read Only Memory,ROM)、硬碟機(Hard Disk Drive,HDD)、固態硬碟(Solid State Drive,SSD)或光儲存器。
控制器24更包含加解密模組40,此加解密模組40 包含加密單元44以及解密單元48。處理器32可配置加解密模組40以採用加密/解密選擇線50來執行加密或解密。加解密模組40可包含任何適合之加密以及解密單元,諸如串流或區塊加解密器,上述區塊加解密器可包含任何適當區塊大小之區塊加解密器。在以下實施例中,加密以及解密程序係基於GF法則。 加密單元44以及解密單元48可由不同的單元來實現,或者可由支援雙向處理模式之單一模組來實現。
控制器24持有密鑰52以用於加密、解密或雙向處 理。在一些實施例中,密鑰52包含靜態金鑰(static key)。另一方面,控制器24可動態產生密鑰52。舉例而言,當個別的加密單元44及解密單元48包含串流加解密器,密鑰52可包含隨機串流金鑰。在其餘實施例中,當加密單元44及解密單元48包含區塊加解密器,密鑰52可包含一系列隨機金鑰,每一隨機金鑰分別應用於輸入資料區塊。
需注意的是,當使用隨機金鑰,相同之金鑰會被 用以加密儲存於已設定記憶位址的資料,並於由相同記憶位址取回資料時,用以解密資料。金鑰之隨機化可透過每一記憶體位址或多個(如,連續的)記憶體位址來執行。
在一些實施例中,密鑰52包含加密金鑰,加解密 模組40可分別由解密金鑰以取得上述加密金鑰。舉例而言,當執行基於GF之乘法運算的加密程序時,解密金鑰包含加密金鑰之乘法反元素(於同一GF)。在後文之說明中,“加密金鑰”以及“解密金鑰”分別與加密以及解密方向相關。
當寫入資料至外部記憶體28,處理器32產生個別 記憶體位址,並送出用以儲存之資料至加密單元44,加密單元44應用密鑰52以加密上述資料。控制器24透過記憶體介面36以送出用以儲存之加密資料。當由外部記憶體28讀取加密資料時,控制器24透過記憶體介面36由外部記憶體28接收加密資料。解密單元48採用密鑰52以解密被接受的資料,並傳遞經解密之資料至處理器32。
在一些實施例中,控制器24更包含鑑別單元56, 此鑑別單元56應用秘密鑑別金鑰60以產生簽章。以加密觀點而言,鑑別單元56透過鑑別匯流排58以由加解密模組40接收加密資料,並使用鑑別金鑰60以產生個別簽章。控制器24主要用於儲存連結至加密資料的簽章在外部記憶體28中。
以解密觀點而言,鑑別單元56透過鑑別匯流排 58,由加解密模組40取得從外部記憶體28讀取之加密資料,此加密資料包含儲存之簽章。鑑別單元56採用鑑別金鑰60以產生讀取資料之重新計算過之簽章,並檢驗重新計算過之簽章與儲存之簽章是否匹配。當鑑別認證失敗,鑑別單元56可發出個別警示信號至加解密模組40,以相應地避免解密上述讀取資料。另一方面,控制器24可採用任何適當之措施以回應鑑別認證失敗之狀況。
鑑別單元56可使用任何適合之方法以計算簽 章。在一實施例中,上述簽章的計算係基於GF乘法運算。鑑別金鑰(或由其取得之次金鑰)於加密或解密時與中間資料結果相乘,且相乘之結果可作為個別簽章。
控制器24可以硬體來實現,諸如,採用一個或多 個特殊應用積體電路(Application-Specific Integrated Circuits,ASICs)或現場可程式邏輯門陣列Field-Programmable Gate Arrays,FPGAs)。另一方面,控制器24可包含微處理器,此微處理器可執行適當之軟體,此外,控制器24亦可包含硬體及軟體之組合。
第1圖之配置為一例示性的系統配置,其僅用以 使本案之概念更加清晰。安全計算系統20可採用或不採用鑑別程序以執行加密或解密。另一方面,安全計算系統20可在不進行加密/解密的狀況下執行資料鑑別程序。
在進一步的選擇性實施例中,任何適合之安全儲 存系統之架構皆可為本發明所用。舉例而言,雖然第1圖之例子顯示單一記憶體裝置,在任選的一實施例中,控制器24可連接於多個記憶體裝置(外部記憶體)28。非用以理解本發明之原則的必要元件,諸如各式介面、控制電路、編址電路(addressing circuits)、時序電路(timing and sequencing circuits)以及除錯電路,將不會被詳細介紹,以使本發明說明簡潔。
在第1圖之例示性的系統架構中,外部記憶體28 以及控制器24係以兩個獨立之積體電路(Integrated Circuits,ICs)來實現。在任選的一實施例中,外部記憶體28以及控制器24可被集成於單一多晶片封裝(Multi-Chip Package,MCP))或系統單晶片(System on Chip,SoC)中之獨立的半導體晶粒,且外部記憶體28以及控制器24可藉由內部匯流排以進行 內部連接。在進一步的選擇性實施例中,部分或全部的控制器24位於上述記憶體所配置的同一晶粒上。在另外的選擇性實施例中,部分或全部之加解密模組40及/或鑑別單元56的功能可以軟體來實現,並由處理器(如:處理器32)來執行。
在一些實施例中,處理器32包含一般處理器 (general-purpose processor),此處理器係以軟體程式化以執行揭露於本文之功能。上述軟體可透過網路以電子型式被下載至處理器32,或者,可提供及/或儲存於諸如磁性、光學或電子記憶體之非暫時性有形媒體(non-transitory tangible media)上。
基於多個GF乘法運算之密碼程序
在後文中,假設算術操作應用於設定GF之元素,上述元素可採用部分基礎的生成多項式(generating polynomial)來產生。由於實施於任何有效的生成多項式為習知技術,因此,與基礎的生成多項式相關之細節於此不作贅述。“乘法運算”係關於設定GF的元素之間的相乘。所謂”乘法反元素”之定義,舉一例子說明如後,假設A與B皆為GF的元素,若A×B=A×A -1=1,則B=A -1,此時,B稱為A的”乘法反元素”。
第2圖係依照本發明另一實施例繪示一種基於迦羅瓦域(Galois-Field(GF))乘法運算之加解密器70的示意圖。加解密器70的設計原則可被用於實施第1圖之加解密模組40的硬體部分,其將進一步揭露於後文之第3圖及第4圖中。加解密器70可執行加密及解密程序。
在第2圖之實施例中,加解密器70可應用32位元 加密金鑰74以加密明文72之16位元字組,以產生密文76的16位元字組。以相反方向而言,加解密器70使用32位元解密金鑰78以解密密文76,以重新產生明文72。
加解密器70包含4個GF乘法器80(以MUL_A、 MUL_B、MULC以及MUL_D標示),上述GF乘法器80以GF(28)執行乘法運算。在第2圖中,GF乘法器80包含上、下及側邊輸入或埠。以加密觀點而言,每一GF乘法器80由上埠接受輸入資料,並由側埠接收金鑰資訊。GF乘法器80將輸入資料與金鑰資訊相乘,如:作為GF(28)中的兩元素,並由下埠輸出相乘結果。以解密觀點而言,側埠仍是金鑰資訊之輸入埠,但原先上埠及下埠之功能交換,如:下埠變為輸入埠,而上埠變為輸出埠。
以加密觀點而言,輸入至每一GF乘法器80的金鑰資訊包含個別8位元加密次金鑰(以K1、K2、K3或K4標示)。類似地,以解密觀點而言,輸入至每一GF乘法器80的金鑰資訊包含個別8位元解密次金鑰(以INV_K1、INV_K2、INV_K3或INV_K4標示)。在本實施例中,加密以及解密8位元次金鑰係藉由分別分割每一個別的32位元加密金鑰74以及解密金鑰78為4個8位元之位元次組以取得。此外,每一解密次金鑰代表個別加密次金鑰的乘法反元素。例如,INV_K1=K1-1於GF(28)算術。需注意的是,加密以及解密次金鑰需為非零,如此,無論乘法器輸入之資料為何,均可防止GF乘法運算乘積為零。
後文以加密觀點,詳細解釋加解密器70之操作。 明文72首先被分割為2個8位元子字(以DH及DL標示)。乘法器MUL_A將DH乘以K1以產生8位元結果DH_K1,而乘法器MUL_B將DL乘以K2以產生8位元結果DL_K2。加解密器70隨後分割DH_K1為2個4位元子字(以DH_K1_H及DH_K1_L標示),並一併分割DL_K2為4位元子字(以DL_K2_H及DL_K2_L標示)。加解密器70結合DH_K1_H與DL_K2_H,並結合DH_K1_L與DL_K2_L以產生個別8位元中間結果INTERM_H及INTERM_L,8位元中間結果INTERM_H及INTERM_L分別透過上埠輸入乘法器MUL_C及乘法器MUL_D。
GF乘法器MUL_C及MUL_D分別將其個別輸入 INTERM_H及INTERM_L與個別金鑰K3及K4相乘以產生個別8位元結果EDH及EDL。加解密器70隨後結合EDH及EDL以取得16位元密文76。
以解密觀點而言,加解密器70藉由反向加密程序 之操作以解密16位元密文76。為達此目的,加解密器70以結合操作取代用於加密之分割操作,反之亦然。此外,以解密觀點而言,每一GF乘法器80之上埠與下埠分別用以作為輸出及輸入埠。
以解密觀點而言,加解密器70分割密文76為2個 8位元子字EDH及EDL。GF乘法器MUL_C及MUL_D分別將EDH乘以INV_K3,並將EDL乘以INV_K4以重新產生個別8位元中間結果INTERM_H及INTERM_L。加解密器70隨後分 割INTERM_H為2個4位元子字DH_K1_H及DL_K2_H,並分割INTERM_L為2個4位元子字DH_K1_L及DL_K2_L。4個4位元子字被重新配置及結合以產生8位元子字DH_K1及DL_K2,上述8位元子字DH_K1隨後藉由乘法器MUL_A乘以金鑰INV_K1,8位元子字DL_K2藉由乘法器MUL_B乘以INV_K2。加解密器70隨後結合MUL_A(DH)以及MUL_B(DL)之8位元輸出以重新產生16位元明文72。
上述加解密器70的配置僅為例式性配置方式,其 餘適合之配置亦可被採用。舉例而言,在第2圖中,16位元字組被分割為8位元子字,前述8位元子字更可被分割為4位元子字。在任選的一實施例中,加解密器70可分割字組以及子字為其餘適合位元大小之組合,如分割16位元字組為10位元及6位元,及分割8位元子字為5位元及3位元子字。在上述選擇性的實施例中,金鑰需被相應進行分割。此外,每一分割子字內的位元可被適當重組。需注意的是,於不同分割選擇的狀況下,GF乘法器需被配置以接收輸入位元之個別數值,並相應地執行乘法運算。此外,以解密觀點而言,結合位元組(combining bit sets)需反向分割操作,且由解密次金鑰以進行之乘法運算需要反向由加密次金鑰以進行乘法運算之操作順序。
在其它實施例中,如第2圖所示,加解密器70的 架構包含兩階乘法運算以及分割運算,其中每一階包含兩個GF乘法器(如,一階包含乘法器MUL_A及MUL_B,另一階包含乘法器MUL_C及MUL_D)。在任選的一實施例中,任何其 它階層數亦可被本發明採用,舉例而言,具有額外8位元次金鑰的2個三階GF乘法器,或單一階層包含全部4個GF乘法器。
在另一實施例中,加解密器70除使用2個乘法器 外,亦可於每一階層使用任何適當數量之GF乘法器。舉例而言,以加密觀點而言,加解密器70可分割16位元輸入明文為4個4位元子字,上述4位元子字被輸入第一階的個別4個GF乘法器。
將相同之考量應用於金鑰資訊。舉例而言,在一 些實施例中,相應於個別GF乘法器的金鑰資訊輸入的變化,次金鑰可包含8位元以外的大小。此外,除了分割金鑰為相同大小之次金鑰外,相應於個別GF乘法器的金鑰資訊輸入的變化,亦可分割為不同大小之次金鑰,並相應地分割資料。
在第2圖例示性的加解密器中,一個或多個GF乘 法器可包含不同生成多項式。
第3圖係依照本發明再一實施例繪示一種包含多 個迦羅瓦域(Galois-Field(GF))乘法器之加解密器100之硬體實施方式的示意圖。在本實施例中,加解密器100為第1圖之加解密器40的一實現方式。加解密器100的架構依循第2圖之加解密器70的設計及資料串流。加解密器100可用以操作於加密或解密模式。
以加密觀點而言,加解密器100由控制器24(如: 由處理器32)接受16位元明文104,並輸出16位元加密資料108以存於外部記憶體28。以解密觀點而言,加解密器100由外部 記憶體28接受16位元加密資料112,並輸出16位元明文116至控制器24(如:輸出至處理器32)。
加解密器100分割32位元串流金鑰120為4個加 密次金鑰(以K1、K2、K3以及K4標示)。串流金鑰120可透過第1圖之密鑰52或第2圖之加密金鑰74以被識別。金鑰反向單元124取得解密次金鑰(以INV_K1、INV_K2、INV_K3及INV_K4標示)。每一解密次金鑰代表個別加密次金鑰(如:INV_K1=K1-1)的乘法反元素。
加解密器100包含4個GF(28)乘法器130(以 MUL1…MUL4標示),其功能相似於第2圖之個別GF乘法器MUL_A…MUL_D之功能。每一乘法器130包含兩個上輸入埠及一個下輸出埠。乘法器130由左上埠接受8位元輸入資料以及由右上埠接受8位元金鑰資訊,並由下埠輸出GF乘法運算結果。每一乘法器130的上埠從個別多工器134接受輸入,並根據選擇線50之階層以由其(多工器134)兩輸入進行選擇以傳送至個別乘法器埠。舉例而言,請參閱乘法器MUL1的右上埠,以加密觀點而言,乘法器MUL1接受K1,以解密觀點而言,乘法器MUL1接受INV_K1。
加解密器100更包含2個分割器150,每一分割器 150用以分割16位元字組為2個8位元子字。加解密器100更包含4個分割器154,每一分割器154用以分割8位元子字為2個4位元子字。加解密器100更進一步包含2個結合器158,每一結合器158用以結合2個8位元子字為單一16位元字組,加解密器 100更進一步包含4個結合器162,每一結合器162用以結合2個4位元子字為單一8位元子字。
以加密觀點而言,乘法器MUL1以及MUL2分別 用以計算DH_K1=DH*K1及DL_K2=DL*K2,其操作相似於第2圖之MUL_A及MUL_B。操作標號‘*’表示GF(28)乘法運算。此外,乘法器MUL3及MUL4計算INTERIM_H*K3及INTERIM_L*K4,其操作分別相似於乘法器MUL_C及MUL_D。
以解密觀點而言,乘法器MUL3及MUL4分別計 算EDH*INV_K3及EDL*INV_K4,其操作類似於乘法器MUL_C及MUL_D(如第2圖所示)。另外,乘法器MUL1及MUL2分別計算DH=DH_K1*INV_K1及DL=DL_K2*INV_K2,其操作分別類似於乘法器MUL_A及MUL_B。第2圖及第3圖中的每一GF乘法器130所執行之各種計算方式整理如下表1:
假設一狀況,明文104包含零字組(如:所有16位元的明文相等於‘0’)。由於與零相乘(使用GF乘法器130)會產生零輸出,且由於分割以及結合位元(藉由分割器150、154及結合器158、162)無法改變零位元,密文輸出170將產生16位元之零字組。第3圖之密文輸出170相等於第2圖之密文76。為避免可預測之輸出,加解密器100更包含串流加解密器 174,此串流加解密器174藉由串流金鑰178(以E_STREAM_KEY標示)以隨機化其輸入。串流加解密器174的輸出包含加密資料108,此加密資料108被傳送至外部記憶體28以進行儲存。
當由外部記憶體28讀取加密資料112,串流加解 密器174之操作(如:於加密時之操作)應用個別的串流解密器180及金鑰184(以D_STREAM_KEY標示)以進行反向。解密器180輸出CIPHER_TEXT_IN 188,當加解密器70操作於解密時,CIPHER_TEXT_IN 188相等於第2圖之密文資料76。
加解密器100可使用任何適當之方法以產生串流 金鑰E_STREAM_KEY及D_STREAM_KEY。當恢復儲存於外部記憶體28之設定位址資料時,D_STREAM_KEY需相等於用以加密資料之E_STREAM_KEY的值。
第4圖係依照本發明又一實施例繪示一種採用多 個迦羅瓦域(Galois-Field(GF))乘法引擎之加解密器200的硬體實施方式示意圖。第4圖之加解密器200支援32位元資料區塊之加密以及解密,並使用第3圖之完整加解密器100以作為乘法引擎。加解密器200可作為第1圖之安全計算系統20中的加解密器40。
第4圖之加解密器200以及第3圖之加解密器100內之結構及資料流相似。加解密器200及100之差異在於支援明文及密文之大小不同。加解密器200可處理32位元明文以及密文字組,而加解密器100可支援16位元之明文及密文字組。因此,加解密器100之元件,如:分割器150、154、結合器158、 162以及金鑰反向模組124於加解密器200中相應地配置。此外,除了加解密器100的GF乘法器130以外,加解密器200包含後文所述之乘法引擎230。
在一實施例中,加解密器100應用32位元金鑰(其被分割為8位元次金鑰)以執行加密以及解密,然而,被加解密器200應用之加密以及解密金鑰包含128位元,每一加密以及解密金鑰被分割為4X8=32位元次金鑰。
以第4圖中所示之加密觀點而言,加解密器200由控制器24(如:由處理器32)接受32位元明文204,並輸出32位元加密資料208以儲存於外部記憶體28。以解密觀點而言,加解密器200由外部記憶體28接受32位元加密資料212,並輸出32位元明文216至控制器24(如:輸出至處理器32)。
加解密器100及200的相應元件之間的關係整理如下表2:
第3圖及第4圖所示之加解密器100及200的配置方式僅用以例示性地說明本發明的實現方式之一,其餘適當之配置方式亦可被本發明所採用。關於其它適當之配置所提出之論述相似於上文關於加解密器70之論述。
在一些實施例中,加解密器200之串流加解密器274、串流解密器280以及相應金鑰278及284可被省略(omitted)。
基於GF乘法運算之鑑別
第5圖係依照本發明另一實施例繪示一種鑑別單元56的示意圖,此鑑別單元56之簽章計算係基於GF乘法運算。在本實施例中,鑑別單元56被設計以與加解密器200一同操作。如第1圖之說明,鑑別單元56透過鑑別匯流排58由加解密器200接受資料,以進行鑑別。在第5圖中,32位元輸入320以及328分別用以表示鑑別匯流排58於加解密器200的加密以及解密程序中朝向鑑別單元56之輸入方向。
於加解密器200中,輸入線320與以E1_O以及E2_O(每一者為16位元)標示之線分別連接在乘法引擎MUL_ENG1及MUL_ENG2之輸出。在鑑別單元56中,線320連接於互連邏輯器340,互連邏輯器340應用邏輯操作於其輸入及輸出16個1位元線(以SG_0…SG_15標示)。互連邏輯器 340可應用任何適當之邏輯操作至其輸入。在一實施例中,互連邏輯器340應用邏輯互斥或至其有序對輸入,整理如下表3:
表3所示之對應配置僅為本發明的實現方式之 一,熟習此技藝者亦可採用其餘適當之對應配置以實現本發明。舉例而言,任一輸出位元SG_0…SG_15可透過結合(如:使用邏輯互斥或,或任何適當之邏輯運算來進行結合)一個或多個32輸入位元中的任一子集以取得。舉例而言,互連邏輯器340可結合3或4個輸入位元以取得單一輸出位元。
在任選的一實施例中,互連邏輯器340的每一輸 出位元可由不同數量的輸入位元來驅動。舉例而言,部分SG0…SG15輸出的每一者可對應至單一輸入位元,而其餘輸出位元可藉由結合多個輸入位元以取得,舉例而言,5個輸入位元對應至單一輸出位元。在另一實施例中,亦可將輸入位元子集對應至多個輸出位元,例如將3個輸入位元對應至2輸出位元。
在加解密器側,鑑別單元56的線328與以E1_I以 及E2_I(每一者為16位元)標示的線連接於個別多工器234之輸入,多工器234之輸出分別連接於乘法引擎MUL_ENG1及MUL_ENG2。在鑑別單元56中,線328連接於互連邏輯器344以應用邏輯操作於其輸入,並輸出16個1位元線(以SV_0…SV_15標示)。互連邏輯器344可應用任何適當之邏輯操作於其輸入。在一例示性的實施例中,互連邏輯器344應用邏輯互斥或運算於其序向輸入對,其操作請參閱表4。類似於互連邏輯器340,互連邏輯器344於任選的實施例中亦可採用其餘對應方法。
在選擇線50的控制下(其階層可由處理器32決 定),多工器348由其2個16位元輸入SG_0…SG_15或SV_0…SV_15中進行選擇,並傳送至乘法引擎352。於本實施例中,乘法引擎352類似於加解密器200使用之乘法引擎230。 乘法引擎352根據32位元鑑別金鑰60以進行算,而輸出16位元簽章。
以加密觀點而言,乘法引擎352將鑑別金鑰60與 SG_0…SG_15相乘以產生16位元簽章360。以解密觀點而言,乘法引擎352將鑑別金鑰60與SV_0…SV_15相乘以計算用以進行認證之簽章364。需說明的是,由外部記憶體28讀取可信資料時,SV_0…SV_15相等於用以取得個別儲存簽章之SG_0…SG_15,因此,當簽章364相等於個別儲存簽章時,讀取資料被認證為可信。
第5圖所示之鑑別單元56的架構僅為本發明的實 現方式之一,其餘適當之架構亦可被採用。舉例而言,在任選的一實施例中,32位元輸入320及328可連接於加解密器200之其餘輸入輸出埠,舉例而言,可分別連接於明文輸入204及密文輸入288。同樣地,鑑別單元56可包含任何其餘適當之乘法引擎352,例如16位元GF乘法器,或者任何其餘適合鑑別金鑰以及簽章之位元大小之GF乘法器。此外,鑑別單元56可用以與加解密器100或任何其餘適當之加解密器一同操作。雖然第5圖之鑑別單元56係用以計算或認證16位元簽章,但於其餘實施例中,上述方案亦可被修改以支援任何其餘適當之簽章大小。
結合加解密程序及鑑別程序之架構
第6圖係依照本發明再一實施例繪示一種結合加解密及鑑別技術之安全系統400的硬體實施方式示意圖。安全 系統400之架構及用於加解密程序時之資料流類似於第3圖所示之加解密器100。
安全系統400藉由加密明文(包含用以加密之輸 入資料及用以鑑別之鑑別資料)結合加解密程序及鑑別程序之功能。以解密觀點而言,儲存之加密資料被讀取及解密,以恢復輸入資料以及鑑別資料。恢復之鑑別資料與用以加密之鑑別資料相比,以認證恢復之鑑別資料是否可信。
安全系統400之加解密程序係基於多個GF(210) 乘法器430,每一GF(210)乘法器430用以將10位元輸入與10位元次金鑰相乘,以產生10位元乘積。串流金鑰420包含44位元,其中40位元包含加解密金鑰421,而4位元作為鑑別資料422。於安全系統400中,10位元加密金鑰K1…K4係由加解密金鑰421分割而得。金鑰反向器424反向每一金鑰K1…K4以取得個別10位元反向金鑰INV_K1…INV_K4。金鑰反向器424可採用10.210位元之反轉表。
由於第6圖之10位元輸入GF乘法器取代第3圖之 8位元輸入GF乘法器,其餘元件亦一併進行更動。舉例而言,第3圖之8位元輸入分割器154以及4位元輸入結合器162分別被第6圖之10位元輸入分割器454及5位元輸入結合器462所取代。如其餘實施例所示,第3圖之8位元多工器134被第6圖之10位元多工器434取代。
由於第6圖之加密及解密資料流類似於第3圖所示之資料流,因此,資料流之詳細說明於此不作贅述。
以加密觀點而言,結合單元490結合16位元資料 104與4位元鑑別資料422以產生20位元明文輸入406。安全系統400採用GF乘法器MUL1…MUL4以加密明文406而產生密文輸出470。安全系統400應用串流加解密器474於密文470,並傳送20位元加密資料408以儲存於外部記憶體。
以解密觀點而言,安全系統400由記憶體取得20 位元加密資料412,並採用串流解密器480應用串流解密程序以恢復密文輸入488。安全系統400藉由GF乘法器MUL1…MUL4解密密文488,並恢復20位元明文輸出418。 20位元分割器492分割明文418以恢復16位元解密資料116及4位元認證資料494。比較器496接受鑑別資料422以及認證資料494以作為輸入。比較器496可顯示:當兩個4位元輸入匹配,解密資料116為可信資料,否則解密資料116有可能被竄改過。
第6圖所示之安全系統配置僅為本發明的實現方 式之一,其餘適當之配置亦可被採用。舉例而言,在任選的一安全系統配置中,除10位元輸入乘法器外,GF乘法器亦可被採用,並可根據其餘元件做對應調整。雖然第6圖所示之整合加密及鑑別架構採用GF乘法器,在其餘安全系統中可採用類似架構,如採用乘法引擎,舉例而言,採用引擎230而非GF乘法器130。類似於上述實施例,安全系統400亦可採用第6圖以外之架構以進行位元分割、位元結合及位元混合。
需瞭解的是,上述實施例均以舉例方式舉出,並且本發明不受上文特別顯示和描述的內容限制。反之,本發 明的範圍包括上文所述各種特徵的組合與子組合,以及本領域技術人員在閱讀上述說明時,可能想到的未出現於現有技術範圍內的變型形式和修改形式。以引用方式併入本專利申請的文獻將視為本專利申請的整體部分,但不包括在這些併入的文獻中,採用與本說明書中明確或隱含地給出的定義相衝突的方式所定義的任何術語,而只應考慮本說明書中的定義。在本專利申請中通過引用所併入的文獻將被認為是本申請的完整部分,除了在一定程度上在這些所包括的文獻中以某種方式定義的任何術語與在本說明書中明確或隱含地所作出的定義衝突之外,只應當考慮本說明書中的定義。
20‧‧‧安全計算系統
24‧‧‧控制器
28‧‧‧外部記憶體
32‧‧‧處理器
36‧‧‧記憶體介面
40‧‧‧加解密模組
44‧‧‧加密單元
48‧‧‧解密單元
50‧‧‧加密/解密選擇線
52‧‧‧密鑰
56‧‧‧鑑別單元
58‧‧‧鑑別匯流排
60‧‧‧鑑別金鑰

Claims (21)

  1. 一種加解密裝置,包含:複數個乘法單元,配置為兩個或多個乘法階層,並用以依據迦羅瓦域(Galois-Field(GF))算術的個別迦羅瓦域進行運算;以及邏輯電路,用以接收輸入資料,其中該輸入資料包含明文資料或密文資料,該輸入資料之字長超過該些乘法單元中之一最大輸入字長,其中該邏輯電路持有一密碼金鑰,其中該密碼金鑰包含一鑑別金鑰,該密碼金鑰包含複數個次金鑰,該些次金鑰之數量不超過該些乘法單元之數量,其中該邏輯電路藉由應用該些次金鑰於該些乘法單元以對該輸入資料執行一密碼程序,其中該密碼程序包含應用於該明文資料或該密文資料的一鑑別程序,其中該邏輯電路用以藉由比較由第一資料計算而得之一第一簽章與由第二資料計算而得之一第二簽章來鑑別該密文資料,其中該第一資料由解密程序之密文資料取得,該第二資料由加密程序之明文資料取得,其中當該第一簽章以及該第二簽章彼此相等,則該密文資料有極高之可能性為正確的資料。
  2. 如請求項1所述之裝置,其中該輸入資料包含該明文資料,其中該密碼金鑰包含一加密金鑰,其中該密碼程序包含應用於該明文資料的一加密程序。
  3. 如請求項1所述之裝置,其中該輸入資料包含該密文資料,其中該密碼金鑰包含一解密金鑰,其中該密碼程序包含應用於該密文資料的一解密程序。
  4. 如請求項1所述之裝置,其中該邏輯電路用以於使用該些乘法單元的一第一模式與一第二模式之間進行切換,其中:於該第一模式,該輸入資料包含該明文資料,該密碼金鑰包含一加密金鑰,且該密碼程序包含應用於該明文資料的一加密程序;以及於該第二模式,該輸入資料包含該密文資料,該密碼金鑰包含一解密金鑰,且該密碼程序包含實施於該密文資料的一解密程序。
  5. 如請求項3所述之裝置,其中該些次金鑰包含複數個解密次金鑰,其中該邏輯電路用以由產生該密文資料的一加密金鑰來取得該些解密次金鑰。
  6. 如請求項5所述之裝置,其中該加密金鑰包含複數個加密次金鑰,其中該邏輯電路用以由應用一反向操作於每一加密次金鑰來取得每一該些解密次金鑰。
  7. 如請求項1所述之裝置,其中該邏輯電路用以藉由執行位元分離、位元組合以及位元混合的其中至少一者來運用一前一乘法階層的該些乘法單元的該些輸出或該輸入資料以提供複數個輸入至預設乘法階層的該些乘法單元中。
  8. 如請求項7所述之裝置,其中該邏輯電路用以於解密程序中運用該些乘法單元的該些輸出,其中該些解密程序的順序係為加密程序所採用之順序的反向順序。
  9. 如請求項1所述之裝置,其中該邏輯電路用以藉由一第二乘法單元處理該第一資料、該第二資料以及該鑑別金鑰以計算該第一簽章與該第二簽章。
  10. 如請求項1所述之裝置,其中該明文資料包含輸入文字以及輸入鑑別資料,該密文資料包含輸出文字以及輸出鑑別資料,其中該邏輯電路用以藉由比較該輸入鑑別資料以及該輸出鑑別資料以鑑別該密文資料。
  11. 一種加解密方法,包含:接收輸入資料,其中接收該輸入資料包含接收明文資料或密文資料,該輸入資料之字長超過複數個乘法單元中之一最大輸入字長,其中該些乘法單元配置為兩個或多個乘法階層,並用以依據迦羅瓦域(Galois-Field(GF))算術的個別迦羅瓦域進行運算;持有一密碼金鑰,其中持有該密碼金鑰包含持有一鑑別金鑰,該密碼金鑰包含複數個次金鑰,該些次金鑰之數量不超過該些乘法單元之數量;以及應用該些次金鑰於該些乘法單元以對該輸入資料執行一密碼程序,其中執行該密碼程序包含執行應用於該明文資料或該密文資料的一鑑別程序,其中執行該鑑別程序包含藉由比較由第一資料計算而得之一第一簽章與由第二資料計算而得之一第二簽章來鑑別該密文資料,其中該第一資料由解密程序之密文資料取得,該第二資料由該加密程序之明文資料取得,其中當該第一簽章以及該第二簽章彼此相等,則該密文資料有極高之可能性為正確的資料。
  12. 如請求項11所述之方法,其中接收該輸入資料包含接收該明文資料,其中持有該密碼金鑰包含持有一加密金鑰,其中執行該密碼程序包含加密該明文資料。
  13. 如請求項11所述之方法,其中接收該輸入資料包含接收該密文資料,其中持有該密碼金鑰包含持有一解密金鑰,其中執行該密碼程序包含解密該密文資料。
  14. 如請求項11所述之方法,其中執行該密碼程序包含於使用該些乘法單元的一第一模式與一第二模式之間進行切換,其中:於該第一模式,該輸入資料包含該明文資料,該密碼金鑰包含一加密金鑰,且該密碼程序包含應用於該明文資料的一加密程序;以及於該第二模式,該輸入資料包含該密文資料,該密碼金鑰包含一解密金鑰,且該密碼程序包含應用於該密文資料的一解密程序。
  15. 如請求項13所述之方法,其中該些次金鑰包含複數個解密次金鑰,其中該方法更包含:由產生該密文資料的一加密金鑰來取得該些解密次金鑰。
  16. 如請求項15所述之方法,其中該加密金鑰包含複數個加密次金鑰,其中取得該些解密次金鑰包含應用一反向操作於每一加密次金鑰來取得每一該些解密次金鑰。
  17. 如請求項11所述之方法,其中執行該密碼程序包含藉由執行位元分離、位元組合以及位元混合的其中 至少一者來運用一前一乘法階層的該些乘法單元的該些輸出或該輸入資料以提供複數個輸入至預設乘法階層的該些乘法單元中。
  18. 如請求項17所述之方法,其中運用該些乘法單元的該輸入資料或該些輸出包含於解密程序中運用該輸入資料或該些輸出,其中該些解密程序的順序係為該些加密程序所採用之順序的反向順序。
  19. 如請求項11所述之方法,其中計算該第一簽章與該第二簽章包含藉由一第二乘法單元處理該第一資料、該第二資料以及該鑑別金鑰以計算該第一簽章與該第二簽章。
  20. 如請求項11所述之方法,其中該明文資料包含輸入文字以及輸入鑑別資料,以及該密文資料包含輸出文字以及輸出鑑別資料,其中鑑別該密文資料包含比較該輸入鑑別資料以及該輸出鑑別資料以鑑別該密文資料。
  21. 一種計算系統,包含:一外部記憶體;以及一控制器,包含:複數個乘法單元,該些乘法單元配置為兩個或多個乘法階層,其中該控制器用以依據迦羅瓦域(Galois-Field(GF))算術的個別迦羅瓦域進行運算,其中該控制器用以接收輸入資料,其中該輸入資料包含明文資料及密文資料,該輸入資料之字長超過該些乘法單元中之一最大輸入字長,其中該控制器用以持有一密碼 金鑰,其中該密碼金鑰包含一鑑別金鑰,該密碼金鑰包含複數個次金鑰,該些次金鑰之數量不超過該些乘法單元之數量,其中該控制器藉由應用該些次金鑰於該些乘法單元以對該輸入資料執行一密碼程序,其中該密碼程序包含應用於該明文資料或該密文資料的一鑑別程序;以及邏輯電路,用以藉由比較由第一資料計算而得之一第一簽章與由第二資料計算而得之一第二簽章來鑑別該密文資料,其中該第一資料由解密程序之密文資料取得,該第二資料由加密程序之明文資料取得,其中若該第一簽章以及該第二簽章彼此相等,則該密文資料有極高之可能性為正確的資料。
TW104108334A 2014-03-17 2015-03-16 計算系統及其加解密裝置與加解密方法 TWI573039B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IL231550A IL231550A0 (en) 2014-03-17 2014-03-17 Saving secure information in external memory

Publications (2)

Publication Number Publication Date
TW201537385A TW201537385A (zh) 2015-10-01
TWI573039B true TWI573039B (zh) 2017-03-01

Family

ID=51418122

Family Applications (2)

Application Number Title Priority Date Filing Date
TW104108334A TWI573039B (zh) 2014-03-17 2015-03-16 計算系統及其加解密裝置與加解密方法
TW105139304A TWI581126B (zh) 2014-03-17 2015-03-16 計算系統及其加解密裝置與加解密方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW105139304A TWI581126B (zh) 2014-03-17 2015-03-16 計算系統及其加解密裝置與加解密方法

Country Status (3)

Country Link
US (2) US9525546B2 (zh)
IL (1) IL231550A0 (zh)
TW (2) TWI573039B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL231550A0 (en) * 2014-03-17 2014-08-31 Nuvoton Technology Corp Saving secure information in external memory
US10414493B2 (en) 2014-07-11 2019-09-17 Aerovel Corporation Apparatus and method for automated launch, retrieval, and servicing of a hovering aircraft
EP3082290A1 (en) * 2015-04-17 2016-10-19 Gemalto Sa Device for managing multiple accesses to a secure module of a system on chip of an apparatus
CN105243344B (zh) * 2015-11-02 2020-09-01 上海兆芯集成电路有限公司 具有硬盘加密功能的芯片组以及主机控制器
IL242717A0 (en) 2015-11-23 2016-02-29 Nuvoton Technology Corp Systems and methods for authentication of cache memory
US10896267B2 (en) * 2017-01-31 2021-01-19 Hewlett Packard Enterprise Development Lp Input/output data encryption
KR102602696B1 (ko) * 2017-10-13 2023-11-16 삼성전자주식회사 암호화 장치 및 복호화 장치, 이들의 동작방법
CN109753821B (zh) * 2017-11-01 2022-03-15 瑞昱半导体股份有限公司 数据存取装置及方法
FR3076923A1 (fr) * 2018-01-16 2019-07-19 Stmicroelectronics (Rousset) Sas Procede et circuit d'authentification
US11924321B1 (en) * 2018-05-23 2024-03-05 Memotech Ai, Llc System and method for encrypting and compressing blocks of data
US11012089B1 (en) * 2018-05-23 2021-05-18 Coleridge Design Associates Llc System and method for encrypting and compressing blocks of data
TWI684114B (zh) * 2018-12-19 2020-02-01 技嘉科技股份有限公司 通用型輸入輸出埠的配置方法及系統
CN111338462A (zh) * 2018-12-19 2020-06-26 技嘉科技股份有限公司 通用型输入输出端口的配置方法及系统
JP2020107949A (ja) * 2018-12-26 2020-07-09 シャープ株式会社 通信装置および通信方法
US11475170B2 (en) 2019-05-28 2022-10-18 Nuvoton Technology Corporation System and method for correction of memory errors
US11342044B2 (en) 2019-05-28 2022-05-24 Nuvoton Technology Corporation System and method for prioritization of bit error correction attempts
FR3098949B1 (fr) 2019-07-15 2023-10-06 St Microelectronics Rousset Fonction à sens unique
US11909857B2 (en) * 2019-12-23 2024-02-20 Intel Corporation Functionally safe encryption for vehicle to anything communication

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040047466A1 (en) * 2002-09-06 2004-03-11 Joel Feldman Advanced encryption standard hardware accelerator and method
TWI274500B (en) * 2004-10-20 2007-02-21 Broadcom Corp User authentication system
US20070098153A1 (en) * 2005-08-31 2007-05-03 Canon Kabushiki Kaisha Cryptographic processing apparatus
TW200810485A (en) * 2006-05-21 2008-02-16 Ibm Assertion message signatures
US20090214024A1 (en) * 2008-02-21 2009-08-27 Schneider James P Block cipher using multiplication over a finite field of even characteristic
US20130301827A1 (en) * 2011-01-20 2013-11-14 Rohde & Schwartz Gmbh & Co Kg Authentication of encrypted data blocks

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE7714587L (sv) 1977-12-21 1979-06-22 Brendstrom Hugo System for meddelanden
US4975867A (en) 1987-06-26 1990-12-04 Digital Equipment Corporation Apparatus for dividing elements of a Galois Field GF (2QM)
JP2001016196A (ja) * 1999-04-28 2001-01-19 Fuji Soft Abc Inc 多重アファイン鍵を用いる暗号化・復号化方法、認証方法、及びこれを用いる各装置
US20040202318A1 (en) * 2001-10-04 2004-10-14 Chih-Chung Lu Apparatus for supporting advanced encryption standard encryption and decryption
US6766345B2 (en) 2001-11-30 2004-07-20 Analog Devices, Inc. Galois field multiplier system
US20030219118A1 (en) 2002-05-23 2003-11-27 Beverly Harlan T. Optimized multiplicative inverse
US8023645B2 (en) 2005-08-19 2011-09-20 Nxp B.V. Circuit arrangement for and method of performing an inversion operation in a cryptographic calculation
US8000467B2 (en) * 2007-03-19 2011-08-16 Stmicroelectronics Sa Data parallelized encryption and integrity checking method and device
US8411853B2 (en) * 2008-08-28 2013-04-02 Lsi Corporation Alternate galois field advanced encryption standard round
US20110255689A1 (en) * 2010-04-15 2011-10-20 Lsi Corporation Multiple-mode cryptographic module usable with memory controllers
US9384145B2 (en) * 2013-08-26 2016-07-05 Oracle International Corporation Systems and methods for implementing dynamically configurable perfect hash tables
IL231550A0 (en) * 2014-03-17 2014-08-31 Nuvoton Technology Corp Saving secure information in external memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040047466A1 (en) * 2002-09-06 2004-03-11 Joel Feldman Advanced encryption standard hardware accelerator and method
TWI274500B (en) * 2004-10-20 2007-02-21 Broadcom Corp User authentication system
US20070098153A1 (en) * 2005-08-31 2007-05-03 Canon Kabushiki Kaisha Cryptographic processing apparatus
TW200810485A (en) * 2006-05-21 2008-02-16 Ibm Assertion message signatures
US20090214024A1 (en) * 2008-02-21 2009-08-27 Schneider James P Block cipher using multiplication over a finite field of even characteristic
US20130301827A1 (en) * 2011-01-20 2013-11-14 Rohde & Schwartz Gmbh & Co Kg Authentication of encrypted data blocks

Also Published As

Publication number Publication date
US20150263852A1 (en) 2015-09-17
TW201717100A (zh) 2017-05-16
US20170302436A1 (en) 2017-10-19
TW201537385A (zh) 2015-10-01
IL231550A0 (en) 2014-08-31
US10069622B2 (en) 2018-09-04
TWI581126B (zh) 2017-05-01
US9525546B2 (en) 2016-12-20

Similar Documents

Publication Publication Date Title
TWI573039B (zh) 計算系統及其加解密裝置與加解密方法
US8983063B1 (en) Method and system for high throughput blockwise independent encryption/decryption
US9819657B2 (en) Protection of memory interface
TWI402675B (zh) 低等待時間的區塊密碼術
TWI399663B (zh) 密碼系統及密碼方法
US8879727B2 (en) Method and apparatus for hardware-accelerated encryption/decryption
JP5120830B2 (ja) 共用のハードウェアを利用して暗号文及びメッセージ認証コードを生成するための方法及びシステム
US11546135B2 (en) Key sequence generation for cryptographic operations
JP5855696B2 (ja) 完全性検証を含むブロック暗号化方法およびブロック復号化方法
JP2004363739A (ja) 改竄検知可能な、共通鍵暗号の暗号化装置または復号化装置
WO2016088453A1 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
JPWO2019043921A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
US11093213B1 (en) Cryptographic computer machines with novel switching devices
JP5113630B2 (ja) 秘密分散方法、プログラム、及び装置
JP6203387B2 (ja) 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
Abbas et al. Dictionary Attack on TRUECRYPT with RIVYERA S3-5000
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
JP5431190B2 (ja) 認証付きストリーム暗号の暗号化装置、認証付きストリーム暗号の復号化装置、暗号化方法、復号化方法およびプログラム
JP2006502437A (ja) 暗号化回路装置及び方法
JP2004347885A (ja) 暗号化装置処理方法、暗号復号装置処理方法、これらの装置及びプログラム
WO2023227894A1 (en) Secure processing system and method
JP2012235287A (ja) ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム