TW201027340A - Low latency block cipher - Google Patents

Low latency block cipher Download PDF

Info

Publication number
TW201027340A
TW201027340A TW098136953A TW98136953A TW201027340A TW 201027340 A TW201027340 A TW 201027340A TW 098136953 A TW098136953 A TW 098136953A TW 98136953 A TW98136953 A TW 98136953A TW 201027340 A TW201027340 A TW 201027340A
Authority
TW
Taiwan
Prior art keywords
data
memory address
block
round
rounds
Prior art date
Application number
TW098136953A
Other languages
English (en)
Other versions
TWI402675B (zh
Inventor
Philip Michael Hawkes
Lu Xiao
Gregory Gordon Rose
Steve Millendorf
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW201027340A publication Critical patent/TW201027340A/zh
Application granted granted Critical
Publication of TWI402675B publication Critical patent/TWI402675B/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • 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
    • 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/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Description

201027340 六、發明說明: 【發明所屬之技術領域】 - 一個特徵涉及記憶體内容的保護,尤其涉及使用區塊密 .碼術來保護儲存至記憶體設備的内容的方法。 【先前技術】 數位處理器存在於諸如蜂巢式電話、電腦、個人數位助 理(PDA )、無線網路存取點等的許多設備中。使儲存在記 憶體中的程式和資料得到保護以對抗具有相當尖端的工具 的攻擊者的需要日漸增長。數位版權管理應用也强加此類限 制以控制對數位資料或硬體的存取或使用。例如,中央處理 單元(CPU)通常具有某種晶片上記憶體儲存器,可以藉由 確保資料存取線被埋藏在CPU或板内,以使得存取該資料的 企圖將毁壞該設備,並且可以想見在資料能被存取到之前就 鲁加擾或毁壞該資料來保全該晶片上記憶體儲存器。 出於規模和經濟的原因,希望能夠將記憶體封裝在單獨 的晶片中。然而,將記憶體設備封裝在單獨的晶片中會使攻 擊者要藉由使用諸如探針之類的簡單工具來存取記憶體設 備相對容易,因爲資料在其於cpu與記憶體晶片之間往來時 是曝露的。 —種解決在將資料儲存至分離的儲存晶片時缺乏安全性 Z方法是在CPU上進行加密程序,以使得被寫到記憶體晶片 的資料對攻擊者而言是無用的。反之,當從記憶趙取回資料 201027340 時,該資料由CPU解密。關於特定記憶艎區塊的位址資訊以 及僅爲CPU所知的密碼學密鑰是該加密演算法的其他輸入。 由於記憶體位置能被重複寫入,且常常是用模式化資料 來寫入,因而流密碼術以及對應的用於區塊密碼術的操作模 '式諸如計數器模式(CTR)之類並不合適。將位址用作如密 碼術區塊鏈結(CBC)的模式的初始化向量的區塊密碼術在 此是合適的機制。(見FIPS特種出版物800-38A--Modes of 〇Peration for Block Cipher(用於區塊密碼術的操作模式))。 ❿ 然而’與密碼術固有的區塊大小相比,在一次操作中要被加 密的記憶體區塊通常很小(例如,往往只是單個區塊)。因 此’當應用到單個區塊時’考慮將CBC模式作爲「鏈結」是 反直觀的》 現代區塊密碼術具有常被稱爲叠代區塊密碼術的結構。 每次叠代被稱爲一回合,並且重複的函數被稱爲回合邁袭 (例如’ 4到32回合之間的任何回合是典型的)。在每一回 _ α中,當被應用到輸入區塊時,回合函數達成一定量的混亂 眭和擴散性。爲了加密輸入區塊,該密碼術產生該輸入區塊 的置換。解密是藉由逆向地運行該程序來達成的。若視作黑 .單凡’則該密碼術接收固定大小的單個資料區塊以及機密密 • 乍爲輸入,重複地將回合函數應用到該輸入區塊,並且輸 出單個选碼術輸出區塊。某些密碼術允許可變大小的密鑰, 密鑰大小可以小於、等於或大於區塊大小。例如,高級 密標準(AES)演算法具有128位元的區塊大小並且能 接又128、192或256位元的密鑰。 201027340 在密碼術内有數個回合(例如,在具有128位元密鑰的 AES ff形中爲1G回合卜每—回合具有回合密鑰作爲其輸 入的一部分。這些回合密鑰是在被稱爲潦着#衮的程序中從 機密密餘推導出來的。每—回合旨在對區塊和回合密繪的部 分執行某種非線性替換,其後繼以某種(通常爲線性的)擴 散操作以將每一替換的效果鋪開到整個區塊。這些動作旨在 挫敗諸如線性和差分密碼學分析之類的公知形式的密碼學 分析。 爲了加密向記憶體發送的資料,記憶體位址可被用作初 始化向量。這將保證具有相同資料的不同記憶體位址將仍然 被不同地加密。該加密可被記載爲: C = EK(P ㊉ a) 其中P是輸入锣文(原始資料區塊),A是記憶體位址,c 〇是輸出济文(將在記憶體晶片中出現在位址A處的輸出資料 區塊),㊉是逐位元互斥或(x〇R)運算,而^表示使用區 塊密碼術以機密密鑰κ來加密該資料區塊。相應地,當要從 s己憶體中讀回資料時’將使用逆操作。 P = DK(C)㊉ a 其中DK表不在其解密模式中使用區塊密碼術。然而,與記 憶艎存取速度相比,典型的區塊密碼術應用具有相當高的等 201027340 待時間。對於批量加密而言,管線化解決了這個問題,但是 當加密單個記憶體位置時,管線化並無幫助。 因此’需要一種對少數記憶體位置實現區塊密碼術加密 同時減少等待時間的方法。 « 【發明内容】 提供了一種保護資料的區塊密碼術,其藉由基於資料要 〇被儲存的記憶體位址加密該資料來保護該資料。當加密資料 以供储存在該記憶體位址中時,該記憶體位址在第一多個區 塊密碼回合中被加密。使用來自第一多個區塊密碼回合的資 訊來產生資料回合密鑰。把要被儲存的資料與經加密記憶體 位址相組合併且在第二多個區塊密碼回合中藉由使用這些 資料回合密鑰來加密。經加密資料隨後被儲存在該記憶體位 置中。當解密資料時,記憶鱧位址如之前般被再次加密,而 經加密的儲存資料在第二多個區塊密碼回合中藉由使用資 料回〇密鑰來解密以獲得經部分解密的資料。把經部分解密 的資料與經加密記憶體位址相組合以獲得完全解密的資料。 在記憶體位址中資料加密的一個示例中,該記憶體位址 •是在第一多個區塊密碼回合中被加密的。加密記憶體位址可 、包括:(a)根㈣一冑換函數變換該記憶趙位址’(b)將經變換 的記憶體位址與回合密鑰混合,⑷將記憶趙位址分段,及/ 或(侧不同的記憶體位址片段執行位元替換。記憶體位址可 能在資料被儲存之前就可用。因此,加密記憶體位址可在資 201027340 料可用之前開始。 資料回合密鑰可藉由使用來自第一多個區塊密碼回合中 •的一回合或更多回合的資訊來產生。產生資料回合密鑰可包 括:(a)從關於第一多個區塊密碼回合中的至少一些回合的經 加密記憶體位址提取多個位元,(b)從提取出的多個位元的片 段選擇資料回合密鑰,及/或(c)將提取出的多個位元級聯到 字串中’這些資料回合密鑰從該字串中選擇。 φ 資料可與第一多個區塊密碼回合之後的經加密記憶體位 址相組合。例如,可藉由可逆操作(例如,模加/模減、逐位 元XOR運算等)使資料與經加密記憶體位址相組合。資料可 隨後在第二多個區塊密碼回合中藉由使用這些資料回合密 鑰來加密》第二多個區塊密碼回合多於第一多個區塊密:回 合。加密資料可包括:⑷根據第二變換函數變換資料,㈨ 將經變換的資料與這些資料回合密鑰中的—或多個混合⑷ 將資料分段成多個資料片段’及/或⑷對不同的資料片段執 φ 行位元替換。 記憶體位址可在第一多個區塊密碼回合上被叠代地加 密’並且資料可在第二多個區塊密相合上被叠代地加密。 在一個示例中,用於第二多個區塊密碣回合中較早回合的資 料回合密鑰可使用來自源於第一多個區塊密碼回合中較晚 回合的經加密記憶艘位址的位元來產生。經加密資料可隨後 被儲存在該記憶體位址中。 在解密記憶體位址中的資料的另一個 位址在第-多個區塊密碼回合中被加密以獲得經加= 201027340 體位址。加密記憶體位址可在資料可用之前開始。 加密記憶體位址可包括:(a)根據第一變換函數變換記憶 •體位址’(b)將經變換的記憶體位址與回合密鑰混合,(勾將記 •憶體位址分段,及/或(d)對不同的記憶體位址片段執行位元 替換。 資料回合密鑰可藉由使用來自第一多個區塊密碼回合中 的回。或更多回合的資訊來產生。產生資料回合密輸可包 ❿括:⑷從關於第一多個區塊密碼回合中的至少一些回合的經 加密記憶體位址提取多個位元,(b)從提取出的多個位元的片 •k選擇這些資料回合密鑰,及/或將提取出的多個位元級聯到 子串中,這些資料回合密鑰從該字串中選擇。 經加密資料可從該記憶體位址取回。經加密資料可在第 二多個區塊密碼回合中藉由使用這些資料回合密鑰來解密 以獲得經部分解密的資料。解密經加密資料可包括:(昀根據 第二逆變換函數變換經加密資#,⑻將變換後的經加密資料 瘳與這些資料回合密鑰中的一或多個混合,⑷將經加密資料分 段成多個經加密資料片段,及/或(d)對不同的經加密資料$ 段執行位元替換。 可將經部分解密的資料與經加密記憶體位址相組合以獲 得完全解密的資料。在一個示例中,可藉由可逆操作(例如, 模加/模減、逐位元X〇R運算等)使經部分解密的資料與經 加密記憶體位址相組合。用於第二多個區塊密碼回合中較早 回合的資料回合密錄是藉由使用纟自源於第一多個區塊密 碼回合中較早回合的經加密記憶體位址的位元來產生的。第 201027340 二多個區塊密碼回合多於第一多個區塊密碼回合。第一多個 區塊密碼回合可與第二多個區塊密碼回合並發地執行。 這些方法可在硬體、軟體、及/或其組合中實現。 【實施方式】 在以下說明中,提供了具體細節以提供對諸實施例的透 徹理解。但是,本領域—般技藝人士將可理冑,沒有這些具 參體細節也可實踐這些實施例。例如,電路可能以方塊圖形式 不出’也可能根本不被示出,以免使這些實施例被不必要的 細節混淆。在其他實例中,公知的電路、結構和技術可能不 被具體示出以免混淆這些實施例。 综述 若干新穎特徵解決了因使用區塊密碼術來向/從記憶體寫 入和讀取受保護資料所引起的等待時間。一般而言讀取操 作要比寫入操作多許多。在現有技術中,加密和解密操作在 資料於内部匯流排上可用(寫入)或者已從記憶體取回(讀 取)之後才開始。但是在典型的硬趙設計中,位址資訊遠在 資料之前就可用,在讀取記憶體的情形中尤其如此。 圓1是圏示藉由在明文輸入區塊可用之前先部分處理區 塊密碼術藉此減少區塊密碼術的等待時間來改善區塊密碼 術加密處理的第一特徵的方塊圖。此加密程序可作爲記憶體 寫入操作的一部分來執行並且包括在其中記憶體位址A 106 201027340 被加密的位址階段102以及在其中資料被加密的資料階段 104。使用記憶體位址a 106和用於區塊密碼術1〇〇的機密密 鑰108來預處理叠代區塊密碼術的數個密碼回合。明文資料 112在若干回合區塊密碼術加密之後被插入11〇(例如,與 ~ 位址階段102的結果逐位元XOR)。具體而言,區塊密碼術 1〇〇的一些回合(即’位址階段回合ι〇2)在明文資料U2 被引入之前執行’而一些回合(即,資料階段回合1〇4)在 明文資料丨12被引入之後執行以產生密文114。位址階段1〇2 可以不僅加密記憶體位址A 106還可使用那些回合的結果來 產生用於後續資料階段回合1〇4的加密密鑰(即,密餘排 程)。在明文資料112被引入之前和之後所進行的密碼回合 的數目可以相同或不同。此加密程序利用了記憶艘位址A 106在明文資料112之前就可用這一事實來減少在加密要被 儲存至記憶體中的資料時的等待時間。 補充地’可爲區塊密碼術執行更高效率的密鑰排程。用 ❹於區塊密碼術的每一回合的回合密錄可在實際明文資料可 用之前基於位址資料和機密密鑰來產生。因爲這些回合密瑜 是基於s己憶體位址產生的,所以這意味著區塊密碼術變換對 於每個記憶體位址而言均將是不同的,藉此嚴格地約束對密 瑪術分析可用的資源並且增加了該區塊密碼術的安全性。 -圖2是圖示藉由將區塊密碼術的第一部分與區塊密碼術 的第二部分並行處理藉此減少區塊密碼術的等待時間來改 善區塊密碼術解密的第二特徵的方塊圖。此解密程序可作爲 記憶體讀取操作的一部分來執行並且包括在其中記憶體位 11 201027340 址A 206被加密的位址階段202以及在其中資料被解密的資 料階段204。不是如在一般解密方法中般逆向地運行整個區 .塊密碼術,而是從密文214開始逆向地處理區塊密碼密碼術 2〇〇的資料階段204。與此同時,藉由將記憶體位址a 206 和密鑰208用作輸入來前向地運行區塊密碼術2〇〇的位址階 段202。當這些程序在中間210相遇時,藉由對經部分解密 的密文與經部分加密的記憶體位址進行X〇R來推導明文資 料 212。 使用區塊密瑪術的高效率加密 圖3是圖示配置成加密要被儲存在記憶體中的資料的區 塊密碼術的示例的方塊圖。在此程序中,記憶髋位址A 304 可能在要被儲存的資料區塊(即’明文320)可用之前就可 用。當資料(明文320)被存入記憶髏時,可採用叠代區塊 密瑪術302來加密該資料例如,CPU可在將資料發送給記憶 _體設備以供儲存之前先加密該資料 。在此示例中,區塊密碼 術302可包括密鑰排程和位址加密階段3〇3以及資料加密階 段 305 » 在密鑰排程和位址加密階段303中,使用記憶體位址a 304和用於區塊密碼術的機密密鑰反我密3〇6來預處理該叠代 區塊密碼術的數個回合。例如,在實際明文資料區塊p 32〇 可用之前’先基於機雄、密瑜K**306來產生用於區塊密碼術 302的相應位址加密回合316、317和318的多個回合密錄 Κ1 307、Κ2 308 和 Ki 3 09。每個回合密鑰 Κ1 307、Κ2 308 12 201027340 和Ki 309可基於在前的回合密鑰(例如,κΐ基於K機*,Κ2 基於κι,依此類推)來推導。根據一個示例,機密密鑰3〇6 可以是w位元長並且每個回合密鑰κι、Κ2和Ki是η位元 長’其中n<w。每個回合密鑰κΐ、Κ2和Ki是藉由從機密密 錄取就連的η個位元來產生的,其中機密密鑰3〇6被認爲在 末端捲繞。每個回合密鑰ΚΙ、Κ2和Ki可使用機密密鑰306 不同群組的毗連位元序列。 φ 區塊密碼術302的多個位址加密回合316、317和318可 基於記憶趙位址304和相應的回合密鑰κΐ 307、K2 308和 Κι 3 09來產生。例如,第i回合316使用第一線性及/或非線 性函數Ea來變換記憶艎位址A304的全部或部分,並且基於 與密鑰K1的可逆操作(例如,模加/模減、逐位元x〇R運算 等)來對其進行進一步變換(例如,R1= Ea(A) φ K1 )。類 似地,第2回合3 1 7使用第一線性及/或非線性函數&來變 換第1回合316的結果R1並且基於與相應密鑰尺2的可逆操 ®作(例如,逐位元XOR運算)來進一步變換該結果(例如, R2 = Ea(Rl)㊉K2)。此程序可被重複多次以將每個變換操 作的效果擴散到整個區塊。例如,第丨回合3丨8使用第一線 陡及/或非線性函數匕來變換在前回合的結果Ri -丨並且基於 與相應在、鑰Κι的可逆操作(例如,逐位元x〇R運算等)來 進一步變換該結果(例如,Ri = Ea(Ri ·1} φ Ki)。注意這 些第一區塊密碼回合303 (記憶體位址加密階段)甚至可以 ^資料可供在資料加密階段3〇5中加密用之前就被(至少部 刀地)執行〇藉由在明文資料區塊P 320可用之前部分處理 13 201027340 (或預處理)區塊密碼術,區塊密碼術中的等待時間(即, 延遲)可得以減少。 補充地’在密鑰排程階段303期間,可產生用於資料加 密階段305的密鑰312、314和315以節約時間。資料加密 階段305密鑰Ky、Ky+Ι和Κχ可基於位址加密階段303的 每個密碼回合結果R1、R2、Ri的結果來產生。在一個示例 中,回合結果R1、r2和Ri可以是n位元長(其中n是正整 參數)並且來自這些回合中的至少多回合的數個位元呂被用來 產生資料加密階段密鑰〖7、以+1和Κχ,其中g是小於η的 整數。例如,位元集S31〇可藉由級聯(符號丨丨)從各回合 結果Rl、R2、Ri提取出的位元以使得Si p = RU y丨丨 R2i"g2…ii 來獲得,其中p是圖示該位元集s 中 總位元數的整數值。注意,在一些實現中’用於每一回合的 4元數gl 、…、gi可以是相同的,而在其他實現中,位 兀數gl、g2、...、gi可以是不同的。在密鑰排程階段3〇3期 ®間,資料加密階段密鑰Ky、Ky+1 *Kx可藉由爲每個密鑰 從位元集S 310提取位元片段來產生。在一個示例中,對應 於密餘排程和位址加密階段3〇3中那些較晚密碼回合的位元 可被用於資料加密階段305中那些較早的密鑰。例如,密鑰 Ky 312可從位元集s 31〇的位元s(pj+i)—取得,這些位元 SoH+υ...ρ在此示例中對應於來自Rii g的位元的子集,其中 (對於 g = gl,g2, ,gi)。類似地,密鑰 Ky+1 314 可 以等於位疋集s 310的位元s(p 2j+i) (p屮且密鑰κχ可以等於 位兀•集S310的位元S i】。在一些實現中,在卜g的場合, 201027340 密鑰排程階段303中回合的數目可以小於資料階段3〇5令回 合的數目。例如,在回合結果R1、R2和Ri是63位元長(即, n=63 )的場合,可以從每一回合提取45個位元(即,g=45〕 以用於位元集S 310並且每個資料階段密鑰Ky 312、Ky+1 314和Kx 315可以是32位元長(即,〗=32)。 一般意義下,可以使用一或多個回合密鑰函數KSx來產 生回合密鑰ΚΙ、K2、Ki、Ky、Ky+Ι…Kx中的每一個。在 ❿一個示例中,第一密鑰排程函數KS1可被用來產生(用於位 址加密階段的)密鑰IU、K2、Ki並且第二密鑰排程函數KS2 可被用來產生(用於資料加密階段的)密餘Ky、Ky+1、Kx。 例如’第一密鑰排程函數KS1可被用來產生密鑰κί,以使得 ki=ksi(k機*’i),其中「i」是位址加密階段303的回合號, 而第二密鑰排程函數KS2可被用來產生密鑰Ky+i,以使得 Ky+i=KS2(Si...p,i),其中「y+i」是資料加密階段3〇5的回合 號。 Φ 當明文資料區塊p 320變成可用時,其可在區塊密碼術 302中的一回合或更多回合316、317和318已被執行之後(例 如,在密鑰排程階段303之後)被插入區塊密碼術302。明 文資料區塊P 320可在通常被稱爲白允的程序中藉由使其 (在逐位元的基礎上)與最新近被預處理的回合(即,第i 回合318)的結果Ri進行x〇r來插入區塊密碼術3 02中。 在明文資料區塊P 320已被引入之後,使用相應的回合密鑰 Ky 312、Ky+1 314以及Kx315來執行資料加密階段305中 的一回合或更多回合332、324和326。 15 201027340 在資料加密階段305期間第y回合322處,由第二線性 或非線函數Eb來變換經白化的資料區塊D “ 321並且 基;與相應回合密鑰^的可逆操作(例如,逐位元運 算)對其進行進-步變換(例如,Ry = Eb(D“)@Ky)。 類似地’在第y+1回合324 4,使用第二線性及/或非線性函 數b來變換第y回合322的結果並且基於與相應密输 Ky+1的可逆操作(例如,模加/模減逐位元運算等) _來進步變換該結果(例如’ Ry+1 = Eb(Ry)锣Ky+1)。此 程序可被重複多次以將每個變換操作的效果擴散到整個區 塊。例如’第X回合326使用第二線性及/或非線性函數Eb 來變換在前回合的結果Rx- 1並且基於與相應密鑰Kx的可逆 操作(例如’逐位元XOR運算等)來進一步變換該結果(例 如 ’ Rx = Eb(Rx - l)^Kx)以獲得密文 328。 在各種實現中,密鑰排程和位址加密階段303以及資料 加密階段305的回合的數目可以相同或不同。在資料解密階 ❿段305期間回合的數目可被選擇成減少區塊密碼術3〇2的等 待時間同時引入向明文資料區塊ρ 32〇提供充足的擴散以減 少區塊密碼術302的等待時間。 圖4是圖示配置成加密明文資料的區塊密碼術設備的功 能性元件的方塊圖。區塊密碼術設備4〇2可基於明文資料4〇4 要被儲存至的記憶體位址406以及機密密鑰408來加密該明 文資料404。區塊密碼術設備402可包括位址加密模組412, 其根據變換或加密函數以及由回合密鑰產生器416提供的密 鑰來變換及/或加密此記憶體位址406。回合密鑰產生器416 201027340 可被配置成基於機密密鑰408來產生一或多個回合密鑰》密 鑰排程模組414也可基於位址加密模組412的結果產生一或 多個資料密鑰。該一或多個資料密鑰可被儲存在資料密鑰儲 存422模組中。可在多回合中藉由在每一回合中使用來自回 合密餘產生器416的不同回合密鑰來叠代地執行位址加密和 資料排程功能。在多回合之後,組合器418可使用可逆操作 (例如’模加/模減、逐位元X〇R等)將明文資料404與位 φ 址加密模組412的最後結果相組合。結果得到的經白化的明 文資料可隨後由資料加密模組420在一回合或更多回合中藉 由使用來自資料密鑰儲存422的儲存著的資料密鑰以及變換 或加密函數來叠代地變換或加密以産生密文424。密文424 可隨後被儲存在記憶體設備426中該記憶體位址406處》 根據一個示例’該區塊密碼術設備可被實現在具有位元 組可疋址記憶體的系統中。例如,實現該區塊密碼術的CPU 的字長可以是32位元’並且記憶體位址也可以是32位元。 ® 如先前所提及的’該區塊密碼術設備可被配置成執行位址加 密階段和資料加密階段。 圖5是圖示記憶體位址加密或變換模組的一個示例的方 塊圖。在位址加密階段502期間,可藉由運行多個替換―置 換密碼回合來變換輸入記憶體位址(被填充到64位元)。 可隨意任選地,輸入記憶體位址504可首先藉由與回合密鑰 進行XOR來白化。位址分段模組506可將64位元記憶鱧位 址504劃分成8個8位元片段。每個8位元片段隨後藉由8x8 替換單元508(例如,高級加密標準(AES) 8x8替換單元)。 17 201027340 來自每個替換單元508的結果可隨後被傳遞給變換模組 510,後者對分段的全集執行線性變換。該線性變換可例如 用矩陣乘法]來實現,其中X是記憶體位址向量,^是 變換矩陣’而Γ是輸出向量》在一個示例中,變換矩陣c可 以是GF(28) (GF:伽羅瓦域)上如具有分支號9的最大距離 可分(MDS )映射的8x8矩陣。矩陣c在當且僅當其所有子 矩陣都非奇異時可以是MDS的。區塊密碼術中的許多擴散 φ層(例如’ SHARK和Khazad)可以達到此要求。密鑰混合 模組512隨後將經變換的記憶體位址與64位元回合密鑰混 合(例如’使用逐位元X〇R)。對於每一密碼回合,資料回 合密鑰提取模組514可隨後從過渡期的經加密記憶體位址提 取多個位元以獲得可在後續資料加密程序中使用的一或多 個資料回合密鑰518。這些密碼回合(例如,包括分段5〇6、 S-單元層508、變換510以及密鑰混合512)尹的多回合可用 在每一密碼回合結束時執行資料回合密鑰提取514的方式來 鲁執行。 圖6是圖示明文資料加密或變換模組的一個示例的方塊 圖。在資料加密階段602期間,明文資料6〇4可首先由逐位 兀XOR模組605用來自位址加密階段的經加密記憶體位址 603來白化。經加密記憶體位址6〇3可對應於經加密明文資 料要被儲存至的記憶體位址。例如,如果明文資料6〇4是以 32位το的區塊來處理的,那麼可將該明文資料6〇4與來自記 憶體位址階段的輸出争的32位元進行x〇R。用於資料加密 階段的回合密鑰可以從記憶體位址加密階段推導。資料分段 18 201027340 模組606將明文資料604劃分或拆分成四個8位元片段。每 個8位元片段藉由替換單元6〇8(例如,AES 8χ8替換單元)。 來自替換單元608的結果隨後由線性變換模組610來變換 (例如,AESMDS映射)。密鑰混合模組612可隨後將結果 得到的經變換明文資料與相應的回合密鑰進行逐位元 XOR »此程序可藉由對每一回合使用不同的回合密鑰來重複 多次。資料加密階段602的最末密碼回合的結果是輸出密文 614,該輸出密文614能被儲存至在相應的位址加密階段期 間使用的記憶體位址中。 圖7圖示使用要儲存資料的記憶體位址來加密該資料的 區塊密碼術資料加密方法。在此方法中,執行密碼回合的第 一集合以纟資料1Γ際上就緒或可供儲#之前就加密記憶體 位址並產生資料回合密鑰。隨後,執行密碼回合的第二集合 以加密該資料。 、口
處理器可在資料實際上被接收到之前就獲得關於要被儲 存的資料的記憶體位址7Q2。記㈣位址可在第—多個區塊 密碼回合中被加密704。這樣的記憶體位址加密可包括:⑷ 將記憶趙位址分段成多個記憶體位址片段,(b)對不同的記: 體位址片段執行位元替換,⑷根據第一變換函數變換記饿趙 位址,及/或⑷將經變換的記憶體位址與回合密鑰混合"己 憶趙位址可在第-多個區塊密碼回合上被叠代地加密。” 資料回合密鑰可藉由使用來自第一多個區塊密碼回合中 的-回合或更多回合的資訊來產生7〇“資料回合密鑰可如 下來產生:⑷從關於第-多個區塊密碼回合中的至少一些回 19 201027340 合的經加密記憶體位址提取多個位元,(b)從提取出的多個位 元的片段選擇資料回合密餘,及/或⑷將提取出的多個位元 級聯到字串中,這些資料回合密鑰從該字串中選擇。 要被儲存的資料可隨後在第一多個區塊密碼回合之後與 經加密記憶體位址相組合708。在一個示例中,可藉由可逆 操作(例如,逐位元X0R運算)使資料與經加密記憶體位址 相組合。資料可隨後在第二多個區塊密碼回合中藉由使用這 瘳些資料回合密鑰來加密710。這樣的資料加密可包括:⑷將 資料分段成多個資料分段,(1))對不同的資料分段執行位元替 換’(c)根據第二變換函數來變換資料,及/或(d)將經變換的 資料與k些資料回合密鑰中的一或多個混合。資料可在第二 多個區塊密碼回合上被叠代地加密。在一個示例中使用來 自源於第一多個區塊密碼回合中較晚回合的經加密記憶體 位址的位元來產生用於第二多個區塊密碼回合中較早回合 的資料回合密鑰。第二多個區塊密碼回合可以多於第一多個 〇區塊密碼回合。經加密資料可隨後被儲存在該記憶體位址中 712 〇 使用區塊密碼術的高效率解密 圖8是圖示區塊密碼術解密從記憶想位址讀取的資料的 處理的方塊圖。資料可以在先前已使用例如圖1和3_7中所 圖示的方法被加密。在解密模式中,不是如在一般解密方法 中般逆向地運行整個區塊密碼術,而是從密文828開始逆向 地處理區塊密碼術802的第二階段805同時並發地前向執行 20 201027340 第一階段803。一般而言,將區塊密碼回合的第一集合8〇3 與區塊密碼回合的第二集合8〇5並行地執行,藉此減少區塊 密碼術802的等待時間。即,這些第一區塊密碼回合8〇3(記 憶體位址加密階段)甚至可以在經加密資料可用或被取回以 供由這些第二區塊密碼回合8〇5處理之前就被(至少部分地) 執行。在密錄排程和位址加密階段803中,記憶體位址 (密文資料828即從該記憶體位址8〇4取回)在多個密碼回 ©合中被加密。同時,在資料解密階段805中,在多個密碼回 合中使用在雄、餘排程階段803申產生的資料回合密鑰來解密 密文資料828 »來自這兩個階段803和805的結果隨後被組 合(例如,XOR)以産生原始的明文820。 在密鑰排程和位址加密階段803中,從中取回密文資料 828的記憶體位址804被加密。使用記憶體位址a 804和用 於區塊密瑪術802+的機密密鑰Κλ* 806來處理叠代區塊密 瑪術802的數個回合。例如’基於機密密鑰806來產生 φ 用於區塊密碼術802的相應位址加密回合816、817和818 的多個回合密錄Κ1 807、Κ2 808和Ki 809。每個回合密瑜 K1 807、K2 808和Ki 809可基於先前回合密鑰(例如,Κι 基於K**,K2基於K1,依此類推)來推導。根據一個示例, '機密密鑰806可以是w位元長並且每個回合密鑰ΚΙ、Κ2和 * Ki是η位元長,其中n<w。每個回合密鑰ΚΙ、Κ2和Ki是 藉由從機密密鑰806取毗連的η位元來產生的,其中機密密 鑰806被認爲在末端捲繞。每個回合密鑰ΚΙ、Κ2和Ki可使 用機密密鑰806的不同群組的础連位元序列。 21 201027340 ❹
區塊密碼術802的多個位址加密回合816、817和818是 基於記憶體位址804和相應回合密鑰κΐ 807、K2 808和Ki 8〇9來產生的。例如,第j回合816使用第一線性及/或非線 性函數Ea來變換記憶體位址A8〇4的全部或部分並且基於與 密餘K1的可逆操作(例如,模加/模減、逐位元X〇R等)來 對其進行進一步變換(例如,R1 = Ea(A) @K1)。類似地, 第2回合8 17使用第一線性及/或非線性函數Ea來變換第J 回合816的結果R1並且基於與相應密鑰K2的逐位元x〇R 來進一步變換該結果(例如,R2 = Ea(R1) @ K2 )。此程序 可被重複多次以將每個變換操作的效果擴散到整個區塊。例 .如,第i回合818使用第—線性及/或非線性函數&來變換 先前回合的結果Ri- 1並且基於與相應密鑰幻的逐位元x〇R 來進一步變換該結果(例如,Ri = Ea(Ri -1) @ Ki)。 補充地’在密鑰排程階段803期間,可產生用於資料解 密階段805的在、鑰812、814和815以節約時間。資料解密 階段805密錄Ky、Ky+l和Kx可基於密鑰排程階段密鑰κ卜 Κ2和Ki來產生。在一個示例中,密碼回合結果R1、R2和 Ri可以是η位元長(其中n是正整數)並且來自這些密鑰中 的每一個的數個位元g被用來產生資料階段密鑰Ky、Ky+l 和Κχ,其中g是小於η的整數。例如,位元集S81〇可藉由 級聯(符號丨丨)從各個回合結果R1、R2、Ri提取出的位元 以使得 S丨...p = Rli..gl …g2…|丨厌“ gi來產生,其中p是 圖示位元集S 810中總位元數的整數值。注意,在一些實現 中,用於每一回合的位元數gl、g2、…、以可以是相同的, 22 201027340 而在其他實現中’位元數gl、g2、…、gi可以是不同的。在 密鑰排程階段803期間,資料加密階段密鑰Ky、Ky+1和Κχ 可藉由爲每個密鑰從位元集S81〇提取位元片段來產生。 鲁 在一個示例中,對應於密鑰排程階段8〇3中那些較早回 合的位元可被用於資料解密階段8〇5中那些較早的密碼回合 密鑰。這允許與位址加密階段8〇3並發或並行地執行資料解 密階段805。例如,密鑰Κχ 815可以等於位元集s 81〇的位 兀s丨,這些位元s丨』對應於從第一密碼回合Rim 816 提取出的位元中的一些。因此,一旦^結果被產生就能 獲得解密密鑰Κχ 815。類似地,密鑰Ky+1 314可以等於位 元集S 310的位元s(p_2j+丨)(p。同樣,密鑰Ky 814可從位 X集S 810的位凡s(p j + i) p取得,這些位元s(p卜1) p在此示 例中對應於來自Rii ..g的位元的子集,其中j<g。在一些實現 中,在j<g的場合,密鑰排程階段8〇3中密碼回合的數目可 以小於資料解密階段8〇5中回合的數目。例如,當回合結果 R2和Ri是63位元長(即,n=63 )時,可以從每一回 口提取45個位兀(即,g=45)以用於位元集s3i〇,並且每 個資料解密階段密鑰Kx815、Ky+1 814和Ky812可以是32 位元長(即,j=3 2 )。 般而5,可使用一或多個回合密鑰函數KSx來產生回 合密输K1、K2、幻、h、Ky+1 .·. Kx中的每一個。在一個 不例中’可使用第-密鑰排程函數KS1來產生(用於位址加 密階段的)密餘Κ]、ν 1 K2、K1並且可使用第二密鑰排程函數 KS2來產生(用於資料解密階段的)密鑰Ky、Ky+Ι、Κχ。 23 201027340 例如,第一密鑰排程函數KS1.可被用來產生密鑰Ki,以使得 Ki KS1(K ’其中「丨」是位址加密階段8⑽的回合號, *第二密餘排程函數KS2可被用來產生密鑰Ky+i,以使得
Ky+i 1) ’其巾「y+i」是資料解密階段8〇5的回合 ' 號。 在資料解密階段期間,使用密墙Kx、Ky+Ι和Ky在多個 回口上解密密文資料(et) 828 β例如帛X回合似使用線 ❹性及/或非線性解密函數Db來變換結果密文(ct) 828並且基 於與相應密鑰Kx的操作(例如,可逆模加/模減、逐位元x〇R 等)來進一步變換該結果(例如,Rx = Dfe(ct)锣Κχ )以獲得 結果Rx。此解密程序可被重複多次以撤銷對儲存著的資料的 加密。例如,在第y+1回合824處使用線性及/或非線性解密 函數Db來變換來自先前回合的結果Ry+1並且基於與相應密 鑰Ky+Ι的逐位元x〇R來進一步變換該結果(例如,Ry = Db(Ry+l) @ Ky+Ι )以獲得輸出Ry。在第y回合822處,結 Φ果由線性及/或非線性解密函數Db變換並且基於與相應回 合密餘Ky的逐位元X0R被進一步變換(例如,D *化=Db(Ry) @Ky)以獲得經白化的資料區塊D6ft821。隨後,使用可逆 操作(例如,模加/模減’逐位元X〇r等)將經白化的資料 區塊D白化與來自位址加密階段8〇3的結果Ri (例如,經加 密位址)相組合以獲得明文資料區塊P 820。 在各種實現中,密鑰排程和位址加密階段8〇3以及資料 解选階段805的回合的數目可以相同或不同。在資料解密階 段805中使用的解密函數Db可被選擇成撤銷由在資料加密 24 201027340 階段3 05 (圖3)中使用的加密函數Eb所作的加密。例如, 解密函數Db可以是加密函數Eb變換的逆變換。 圖9是囷示配置成解密密文資料的區塊密碼術設備的功 能性元件的方塊圖。區塊密碼術設備902可包括位址加密模 組912,其根據變換或加密函數以及由回合密鑰產生器916 提供的密鑰來變換及/或加密記憶體位址906。注意,記憶體 位址906可以是從記憶體設備926中取回密文資料924的位 置。回合密鑰產生器916可被配置成基於機密密鑰908來產 生一或多個回合密錄。密鑰排程模組914也可基於位址變換 模組912的結果產生一或多個資料密鑰。該一或多個資料密 鑰可被儲存在資料密鑰儲存922模組中。可在多個回合中藉 由在每一回合中使用來自回合密鑰產生器916的不同回合密 錄來叠代地執行位址加密和資料排程功能。並發地或並行 地’密文資料924可由資料解密模組920在一回合或更多回 合中藉由使用來自資料密鑰儲存922的儲存著的資料密繪及 φ /或變換或解密函數來叠代地變換或解密以產生經白化的明 文資料。在多個解密回合之後’組合器918可使用可逆操作 (例如,模加/模減,逐位元XOR等)將資料解密模組92〇 的最後結果(經白化的明文資料)與位址加密模組912的最 後結果相組合以獲得明文資料904。 注意’在位址加密模組912中,記憶體位址可如由區塊 进碼術設備在加密模式中所作般被加密。例如,位址加密模 組912可包括如圖5中所圖示的多個替換“置換密瑪回合。 圖10是圖示密文資料解密或逆變換模組的一個示例的方 25 201027340 塊圖。例如,此漆合达,,* 此答文資料解密或逆變換模組1002可作爲資 料解密模组920f@a ^^圖9)的一部分被包括。密鑰混合模組1012 可在輸入密文Ifjld + iul4與相應的密碼回合密鑰之間執行逐位元 XOR運算。用於資料解密階段的密碼回合密鑰可以從記憶體 位址加密階段推導。來自密矯混合模組m2的結果隨後由 線性逆變換模組1010 (例如’ AES MDS映射)來變換。來 自線It逆變換模組101〇的結果隨後由資料分段模組1 〇⑽分 藝·^成多個8位元資料片段。隨後使該多個8位元資料片段藉 由替換單70 1〇〇8(例如,AES 8x8替換單元)。替換單元1008 了逆反資料加密替換單元608 (圖6)的那些替換單元。 資料組合器模組1006可組合來自替換單元1〇〇8的結果 得到的輸出以産生輸出白化明文資料。此程序可藉由對每一 回cr使用不同的回合密鑰來重複多次。資料加密階段 的最末密碼回合的結果是經白化的明文資料。隨後,由逐位 元XOR模組1 〇〇5將經白化的明文資料與經加密記憶體位址 馨1〇〇3相组合以產生輪出明文資料10〇4。注意,經加密記憶 體位址1003可對應於從中取回此輸入密文資料1〇14的記憶 體位址。 圖11圖示用於藉由使用在解密經加密資料的同時並發地 加密記憶體位址以減少區塊密碼術的等待時間的區塊密碼 術來解密經加密資料的方法。獲得關於要被取回的經加密資 料的記憶體位址1102。該記憶體位址在第一多個區塊密碼回 合中被加密以獲得經加密記憶體位址1104。這樣的位址加密 可利用基於機密密鑰產生的多個回合密鑰。補充地,加密記 26 201027340 憶趙位址可包括(a)將經變換的記憶體位址與回合密鑰混 合’(b)根據第一變換函數變換記憶體位址,(C)將記憶體位址 分段’及/或(d)對不同的記憶體位址片段執行位元替換。 -貝料回σ密瑜也可藉由使用來自第一多個區塊密碼回合 中的一回合或更多回合的資訊來產生1106。即,來自第一多 個區塊密碼回合中的i少一些回合的經部分加冑的記憶體 位址可被用來產生這些資料回合密鑰。例如,產生資料回合 φ密鑰可包括從關於第一多個區塊密碼回合中的至少一些 回σ的經加畨δ己憶體位址提取多個位元,(b)從提取出的多個 位X·的片段選擇這些資料回合密鑰,及/或將提取出的多 個位元級聯到字串中,這些資料回合密鑰從該字串中選擇。 經加密資料可從記憶體位址取回11〇8並且在第二多個區 塊密碼回合中藉由使用這些資料回合密鑰來解密以獲得經 部分解密的資料1110。用於第二多個區塊密碼回合中較早回 合的資料回合密鑰可使用來自源於第一多個區塊密碼回合 ❿中那些較早回合得到的經加密記憶趙位址的位元來產生。在 一個示例中,解密經加密資料可包括(a)將變換後的經加密資 料與這些資料回合密鑰中的一或多個混合,(b)根據第二逆變 換函數來變換經加密資料,⑷將經加密資料分段成多個經加 密資料片段’及/或(d)對不同的經加密資料片段執行位元替 換。可將經部分解密的資料與經加密記憶體位址栢組合以獲 得完全解密的資料1112。在一個示例中,藉由可逆操作(例 如,逐位元XOR運算)使經部分解密的資料與經加密記憶髗 位址相組合。 27 201027340 第一多個區塊密碼回合可輿篦_ j兴弟一多個區塊密碼回合並發 地執行,藉此加速解密程序抓 也 ^ . 狂斤。另外,第二多個區塊密碼回合 可以多於第一多個區塊密碼回合。 用於區塊密碼術的高效率密餘排程 根據一個特徵,可執行密鑰排程從而高效率地加密和解 密資料。在位址加密階段期間,多個密碼回合可被叠代地執 q行以加密記憶體位址,其中記憶體位址是資料要被儲存或者 要從中取回資料的位置。每個密碼回合産生經加密記憶體位 址。由這些密碼回合中的一回合或更多回合産生的經加密記 憶體位址可被(完全或部分地)用來產生資料加密/解密階段 回合密鎗。 圖12是圖示如何可基於來自區塊密碼術的位址加密回合 的結果來產生用於資料加密和解密回合的回合密鑰的示例 的方塊圖。當區塊密碼術在加密資料時,基於位址加密階段 % 1202的結果來產生資料回合密鑰。位址加密階段1202的較 早回合(例如,R1 1206、R2 1208...)的結果被用來產生要 在資料加密階段1204中使用的較晚資料加密回合密鑰(密 鑰-E6 1212、密鑰-E5 1214...)。類似地,位址加密階段1202 的較晚回合(例如,R3 12 1 0…)的結果被用來產生較早資料 加密回合密鑰(密鑰-E1 1222、密鑰-E2 1220…)。 類似地,當區塊密碼術在解密資料時,基於位址加密階 段1202的結果來產生資料回合密鑰。位址加密階段1202的 較早回合(例如,R1 1206、R2 1208…)的結果被用來產生 28 201027340 要在資料解密階段1224中使用的較早資料加密回合密鑰(密 錄一密餘—…)。類似地,位址加密階= 的較晚回合(例如’R31210..·)的結果被用來產生較晚資料 解密回合密鑰(密鑰_D6 1236、密錄奶1234 )。因此, 這允許資料解密階段1224與位址加密階段12〇2並發地(例 如’在時間段上交叠或者並行地)執行,從而更高效率地解 密資料。 φ 注意到在各種實現中,位址加密階段、資料加密階段1204 及/或資料解密階段1224的密碼回合的數目可以多於或少於 此示例中所示的那些數目。補充地,根據__個可隨意任選的 特徵,可爲明文資料的白化操作保留位址加密階段12〇2的 最末回合(例如,R41211)的結果的至少某個部分。因此, 位址加密階段1202的該最末回合(例如,R4 ΐ2ιι)的這個 結果不可被用於資料回合密鑰產生。 在一些實現_,資料加密回合密鑰(或資料解密回合密 φ餘)可基於來自位址加密階段1202的—或多個結果(例如, i206、R2 1208...)的位元的子集。例如,密鑰_ei 1222 可基於來自R3 1210的位元的子集,而密鑰·E2可基於來自 R2 1208和R3 1210兩者的位元的子集。 注意,由於記憶體位址由區塊密碼術用來產生用於資料 加密/解畨階段1204/1224的加密/解密密鑰,因而這意味著對 於每個記憶體位址而言,明文/密文的區塊密碼術變換將是不 同的,從而嚴格地約束對密碼術分析可用的資源並且增加了 區塊密碼術的安全性。應注意,較早的回合未必要與較晚的 29 201027340 回合具有相同的區塊大小。例如,記憶體要以32位元的區 塊來加密而位址可能大於32位元是相當可能的。經由這些 第一回合中的並行化可獲得效率增益。 根據區塊密碼術的一個示例,資料加密/解密可以是位元 組可定址記憶體。具體而言,執行區塊密碼術的處理器的字 (-貝料區塊)疋32位元,並且位址也是32位元。來自位址 加密階段的結果的最後32位元可被用作白化密鑰。來自位 ❿址加密結果(例如,經加密記憶體位址)的其餘位元可被級 聯到用於資料加密回合密鑰的集合8中。可爲每—資料加密 回合《(例如,對於„=0."5)選擇32位元長的資料加密回合 密鑰,以使得加密回合密鑰(密鑰_En)=集合s的位元32*(5_幻 到32*(5-«)+31。反之,可爲每一資料解密回合例如對 於…5)選擇32位元長的資料解密回合密鑰,以使得解 密回合密鑰(密鑰„Dn)=集合s的位元32*«到32*«+31。 圖13疋圖示可被配置成執行高效率的區塊密瑪術加密和 ❹解密的設備的方塊圖。處理電路13〇2可耦合至記憶體設備 1306»處理電路13〇2可向/從記憶體設備13〇6寫入和讀取資 料處理電路1302可被配置成執行區塊密碼術13 04,該區 塊密瑪術1304加密要被儲存至記憶體設備1306的資料/解密 要從記憶體設備13G6取回㈣料。這樣的加密和解密可基 於資料被寫人或者從t讀取資料的實際記㈣位址。例如, 區塊密碼術U04可執行圖卜12 _描述的操作中的 個。 一 應認識到,一般而言,本案中所描述的絕大多數處理可 30 201027340 以用類似的方式來實現。(諸)電路或電 個可單獨或組合實現爲具有 段争的任何哪 -部分。這”路中的一丄 處理器的積趙電路的 等上實現。 器(Dsp)、通用處理器 還應注意’這些實施例可能是作爲被圓示爲流程囷流 :圖、結構圖、或方塊圓的程序來描述的。儘管流程圖可能 參會把諸操作描述爲順序程序,但是這些操作中有許多能夠並 行或並發執行。另外,這些操作的次序可以被重新安排。程 序在其操作完成時終止《程序可以對應於方法函數、規程、 子常式、副程式等。當程序對應於函數時,其終止對應於該 函數返回到調用方函數或主函數。 如在本案中所使用的,術語「元件」、「模組」、「系 統」等旨在指示電腦相關實體,任其是硬體、韌體、軟硬體 組η、軟艘,還是執行中的軟體。例如,元件可以是但不被 ®限定於在處理器上運行的程序、處理器、物件、可執行件、 執行的線程、程式、及/或電腦。作爲圖示,在計算設備上運 行的應用和該計算設備兩者皆可以是元件。一或多個元件可 常駐在程序及/或執行的線程中,且元件可以局部化在一台電 腦上及/或分布在兩台或更多台電腦之間。此外,這些元件能 從其上儲存著各種資料結構的各種電腦可讀取媒體來執 行°各元件可借助於本地及/或遠端來通訊,諸如根據具有一 或多個資料封包的信號(例如,來自借助於該信號與本地系 統、分散式系統中的另一元件互動、及/或跨諸如網際網路等 31 201027340 網路上與其他系統互動的一個元件的資料)。 不僅如此,儲存媒體可以代表用於儲存資料的一或多個 設備,包括唯讀記憶體(R〇M)、隨機存取記憶體(RAM)、 磁片儲存媒體、光學儲存媒體、快閃記憶體設備、及/或其他 用於儲存資訊的機器可讀取媒體。術語「機器可讀取媒體」 包括,但不被限定於,可攜式或固定的儲存設備、光學儲存 設備、無線通道以及能夠儲存、包含或承載指令及/或資料的 各種其他媒體。 ® 此外’諸實施例可以由硬體、軟體、韌體、中介軟體、 微代碼、或其任何組合來實現。當在軟艘、韌體、中介軟艎 或微碼中實現時,執行必要任務的程式碼或代碼區段可被儲 存在諸如儲存媒體或其他儲存之類的機器可讀取媒體中。處 理器可以執行這些必要的任務。代碼區段可表示規程、函 數、副程式、程式、常式、子常式、模組、套裝軟體、類, 或是指令、資料結構、或程式語句的任何組合。藉由傳遞及 ❹/或接收資訊、資料、引數、參數、或記憶髏内容,一代碼區 段可被耦合到另一代碼區段或硬體電路。資訊、引數、參數、 資料等可以經由包括記憶體共享、訊息傳遞、權杖傳遞、網 路傳輸等任何合適的手段被傳遞、轉發、或傳輪。 圖 1、2、3、4、5、6、7、8、9、10、11、12、及/或13 中圖示的元件、步驟、及/或功能之中的一或多個可以被重新 安排及/或組合成單個元件、步驟、或功能,或可以實施在數 個元件、步驟、或功能中。也可以添加更多的元件、組件、 步驟、及/或功能。圖3、4、8、9及/或13中圖示的裝置、 32 201027340 設備、及/或元件可被配置成執行圖1、2、 3 6、7、1〇、1 1 及/或12中描述的方法、特徵、或步驟中的一或多個。本文 中描述的新穎演算法可以在軟體及/或嵌入式硬體中高效: 地實現。 本領域技藝人士將可進一步領會,結合本文中公開的實 施例描述的各種圖示性邏輯區塊、模組、電路、和演算法步 驟可被實現爲電子硬體、電腦軟體、或兩者的組合。爲 地圖示硬體和軟艎的這種可互換性,各種圊示性元件/、方 塊、模組、電路、和步驟在上文中以其功能性的形式進行了 一般化描述。這樣的功能性是實現成硬體還是軟體取決於具 體應用和加諸整體系統上的設計約束。 這些實施例的描述旨在圖示,而並非旨在限定請求項、 範圍。由此,本發明的教導能現成地應用於其他類型的袭 置’並且許多替換、改動、和變形對於本領域技藝人士將是 明顯的。 【圖式簡單說明】 在結合附圖理解下面闞述的詳細描述時,本發明各態樣 的特徵、本質和優點將變得更加明瞭,在附圖中,相近參考 標記貫穿始終作相應標識。 圓1是圖示藉由在明文輸入區塊可用之前先部分處理區 塊密碼術藉此減少區塊密碼術的等待時間來改善區塊密瑪 術加密處理的第一特徵的方塊圖。 33 201027340 圖2是圖示藉由將區塊密碼術的第一部分與區塊密碼術 的第二部分並行處理藉此減少區塊密碼術的等待時間來改 善區塊密瑪術解密的第二特徵的方塊圖。 圖3是圖示配置成加密要被儲存在記憶體中的資料的區 塊密碼術的示例的方塊圖。 圖4是圖示配置成加密明文資料的區塊密碼術設備的功 能性元件的方塊圖。 圖5是圖示記憶體位址加密或變換模組的一個示例的方 儀 塊圊。 圖6是圖示明文資料加密或變換模組的一個示例的方塊 囷。 圖7圖示使用要儲存資料的記憶體位址來加密該資料的 區塊密碼術資料加密方法。 圊8是圖示區塊密碼術解密從記憶體位址讀取的資料的 處理的方塊圖。 ⑩ 圖9是圖示配置成解密密文資料的區塊密碼術設備的功 能性元件的方塊圖。 圖10是囷示密文資料解密或逆變換模組的一個示例的方 塊圖。 圖11圖示用於藉由使用在解密經加密資料的同時並發地 ’ 加密記憶體位址以減少區塊密碼術的等待時間的區塊密碼 術來解密經加密資料的方法。 圖12是囷示如何可基於來自區塊密碼術的位址加密回合 的結果來產生用於資料加密和解密回合的回合密鑰的示例 34 201027340 的方塊圖。 圖13是圖示可配置成執行高效率的區塊密碼術加密和解 密的設備的方塊圖。 【主要元件符號說明】 100-114 加密方塊圖 200-214 解密方塊圖 φ 302-328 區塊密瑪術方塊圖 404-426 區塊密碼術設備方塊圖 502-516 記憶體位址加密或變換模組方塊圖 602-614 加密或變換模組方塊圖 702-712 步驟流程 802〜828 資料處理方塊圖 902-926 區塊密碼術設備方塊圖 1002〜1014 密文資料解密或逆變換模組方塊圖 Φ 1102-1112 步驟流程 1202〜1236 回合密鑰方塊圖 1302-1308 加密和解密設備方塊圖 35

Claims (1)

  1. 201027340 七、申請專利範圍: 1’種加密資料以供儲存在一記憶艘位址中的方法,包 括以下步驟: 在一第一多個區塊密碼回合中加密該記憶體位址; 使用來自該第一多個區塊密碼回合中的一回合或更多回 合的資訊來產生資料回合密鑰; 在該第一多個區塊密碼回合之後將該資料與經加密的記 憶體位址相組合;及 攀 在一第二多個區塊密碼回合中使用該等資料回合密鑰來 加密該資料。 2. 如請求項丨之方法,其中加密該記憶體位址是在該資 料可用之前開始的。 3. 如請求項1之方法,其中加密該記憶體位址之步驟包 ®括以下步驟: 根據一第一變換函數變換該記憶體位址;及 將紅變換的記憶體位址與一回合密鑰混合。 4·如明求項3之方法,其中加密該記憶體位址之步驟還 包括以下步驟: 將該記憶體位址分段;及 對不同的記憶體位址片段執行位元替換。 36 201027340 5.如請求項i之方法,其中產生該等資料回合密鑰之 驟包括以下步驟: ’ 從關於該第一多個區塊密碼回合中的— 些回合的經 加进s己憶體位址提取多個位元;及 從所提取出的多個位元的片段選擇該等資料回合密鑰。
    6.如請求項5之方法 驟包括以下步驟: 將所提取出的多個位 密鑰從該字串中選擇。 ,其中產生該等資料回合密鑰之步 元級聯到一字串中,該等資料回合 人 請求項5之方法,其中用於該第二多個區塊密碼回 :中:早回合的資料回合密鑰是使用來自源於該第一多個 a ·、碼回。中較晚回合的經加密記憶體位址的位元來產
    盥㈣^請求項1之方法,其中該資料是藉由一 < 逆操作來 與該、、至加密記憶體位址相組合的。 9·如請求項}之方法, 咔璐包栝以下 步驟: 丹肀加密該資料之梦聊 根據-第二變換函數變換該資料 將經變換的資料與 戍多個混 只竹興该等資料回合密鑰中的〆级/ 37 201027340 合ο 10.如請求項1之方法 以下步驟: 其中加密該資料之步驟還包括 將該資料分段成多個資料片段;及 對不同的資料分段執行位元替換。
    如請求項1之方法,其中該第二多個區塊密碼回合 多於該第一多個區塊密碼回人。 12.如請求項1之方法,其中該記憶體位址在該第一多 個區塊密碼回合上被叠代地加密,並且該資料在該第二多個 區塊密碼回合上被叠代地加密。 13. 如請求項1之方法,還包括以下步驟: ❹ 將經加密的資料儲存在該記憶體位址中。 14. 一種區塊密碼袴設備,包括: 一位址加密模組’用於在一第一多個區塊密碼回合中加 密一記憶體位址; 一密鑰排程模組’用於使用來自該第一多個區塊密碼回 合中的一回合或更多回合的資訊來產生資料回合密鑰; 一組合器’用於在該第一多個區塊密碼回合之後將資料 與經加密的記憶體位址相組合;及 38 201027340 一資料加密棋組,用於在一第二多個區塊密碼回合中使 用該等資料回合密鑰來加密該資料。 15·如請求項14之設備,其中加密該記憶體位址是在 該資料可用之前開始的。 16' 如請求項14之設備,其中該位址加密模組還被配 置成: 根據一第一變換函數變換該記憶體位址;及 將經變換的記憶體位址與一回合密鑰混合。 17. 如請求項14之設備,其中該位址加密模組還被配 置成: 將該記憶艘位址分段;及 對不同的記憶體位址片段執行位元替換。 18· 如請求項14之設備,其中該密餘排程模組還被配 置成: 從關於該第一多個區塊密碼回合中的至少一些回合的經 加密記憶體位址提取多個位元;及 從所提取出的多個位元的片段選擇該等資料回合密鑰。 19. 如請求項18之設備,其中該密鑰排程模組還被配 置成: 39 201027340 將所提取出的多個位元級聯 ㈣從該字串Μ. _中’該等資料回合 20’如請求項18之設備,其中用於 碼回合中較早门人 ^第一多個Q塊密 憶體位址的 第-客心料㈣回合密鑰是使用來自源於該 區塊密碼回合中較晚回合的經加密記 位元來產生的。 ° ⑩ 1如明求項14之設備,其中該資料是藉由一可逆操 作來與該經加密記憶體位址相組合的。 如叫求項14之設備,其中該資料加密模組還被配 置成: 混 參合 根據一第二變換函數變換該資料;及 將經變換的資料與該等資料回合密論中的一或多個 23*如清求項14之設備’其中該資料加密模組還被配 置成: 將該資料分段成多個資料片段;及 對不同的資料片段執行位元替換。 24.如清求項14之設備,其中該第二多個區塊密碼回 合多於該第一多個區塊密碼回合。 40 201027340 25. 如請求項14之設備,其中該記憶體位址在該第一 多個區塊密碼回合上被叠代地加密,並且該資料在該第二多 個區塊密瑪回合上被叠代地加密。 26. —種區塊密碼衡設備,包括: 用於在一第一多個區塊密碼回合中加密一記憶體位址的 構件; 用於使用來自該第一多個區塊密碼回合中的一回合或更 多回合的資訊來產生資料回合密鑰的構件; 用於在該第一多個區塊密碼回合之後將資料與經加密的 記憶體位址相組合的構件;及 用於在一第二多個區塊密碼回合中使用該等資料回合密 鑰來加密該資料的構件。 27. —種包括一處理電路的處理器,該處理電路適於: 在一第一多個區塊密碼回合中加密一記憶體位址; 使用來自該第一多個區塊密碼回合中的一回合或更多回 合的資訊來產生資料回合密鑰; 在該第一多個區塊密碼回合之後將資料與經加密的記憶 體位址相組合;及 在一第二多個區塊密碼回合中使用該等資料回合密鑰來 加密該資料。 41 201027340 . 種包括用於區塊密碼衡加密的指令的機器可續 取媒體,該等指令在由一或多個處理器執行時使該處理器: 在一第一多個區塊密碼回合中加密一記憶體位址; 使用來自該第一多個區塊密碼回合中的一回合或更多回 合的資訊來產生資料回合密綸; 在該第一多個區塊密碼回合之後將資料與經加密的記憶 逋位址相組合;及 在一第二多個區塊密碼回合中使用該等資料回合密鑰來 加密該資料。 29. 一種解密從一記憶逋位址取回的資料的方法,包括 以下步驟: 在第夕個區塊密瑪回合中加密該記憶體位址以獲得 一經加密記憶體位址; 使用來自該第一多個區塊密碼回合中的一回合或更多回 φ合的資訊來產生資料回合密鑰; 在第一多個區塊密碼回合中使用該等資料回合密鑰來 解密經加密資料以獲得一經部分解密的資料;及 將該經部分解密的資料與該經加密記憶體位址相組合以 獲得完全解密的資料。 30. 如請求項29之方法,其中加密該記憶體位址是在 該資料可用之前開始的。 42 201027340 31·如明求項29之方法,還包括以下步驟: 從該記憶體位址取回該經加密資料。 32.如明求項29之方法,其中加密該記憶體位址包括 以下步驟: 根據一第一變換函數變換該記憶體位址;及 將經變換的記憶體位址與一回奋密鑰混合。 如奢求項32之方法’其中加密該記憶體位址還包 括以下步驟: 將該記憶體位址分段;及 對不同的記憶體位址片段執行位元替換。 34.如請求項29之方法,其中產生該等資料回合密鑰 包括以下步驟: ❹ 從關於該第—多個區塊密碼回合中的至少一些回合的經 加密記憶體位址提取多個位元;及 從所提取出的多個位_片段選㈣等資細Μ. 資料回合密鑰 35.如請求項34之方法,其中產生該等 包括以下步驟: 該等資料回合 將所提取出的多個位元級聯到一字串中, 密鑰從該字串中選擇》 43 201027340 來產生的 人如請求項34之方法,其中用於該第二多個區塊密 广肖早回合的資料回合密鑰是使用來自源於該第一 個區塊密碼回合中較早回合的經加密記憶體位址的位元 其中該經部分解密的資料是 37.如請求項29之方法, 藉由可逆操作來與該經加密記憶體位址相組合的 鲁 料之步 驟包二:求項29之方法,其中解密該經加密資 碌包括以下步驟: 根據第—逆變換函數變換該經加密資料;及 將變換後的經加密資祖 個混合。 密資枓與該等資料回合密鑰中的-或多 39.如請求項29 ® 括以下步驟 之方法’其中加密該資料之步驟還包 S,加密資料分段成多個經加密資料片段·及 對不同的經加密資料片段執行位元替換。, :〇·如請求項29之方法,其 合多於該第-多個區塊密碼回合。 〔塊密碼口 41.如請求項29之古、土 . 合是與#·篦-之 彳法’其中該第-多個區塊密碼回 疋與Μ—多個區塊密碼回合並發地執行的。 44 201027340 42. 種區塊密竭術設備,包括·· -位址加密模組’用於在一第一多個區塊密碼回合中加 密一記憶體位址以獲得-經加密記憶體位址; -密鑰排程模組,用於使用來自該第—多個區塊密碼回 合中的-回合或更多回合的資訊來產生資料回合密鑰; -資料解密模組’用於在一第二多個區塊密碼回合中使 ❹ 用該等資料回合密鑰來解密經加密資料以獲得—經部分解 密的資料;及 -組合1,用|將該經部分解密的資料與該冑加密記憶 體位址相組合以獲得完全解密的資料。 .如請求項42之設備,其中加密該記憶體位址是在 該資料可用之前開始的。 44. 如請求項42之設備,其中該密鑰排程模組還被配 置成: 從關於該第一多個區塊密碼回合中的至少一些回合的經 加密記憶體位址提取多個位元;及 從所提取出的多個位元的片段選擇該等資料回合密鑰。 45. 如請求項42之設備,其中用於該第二多個區塊密 碼回T中較早回合#資料日纟密输A使用&自源於該第一 多個區塊密瑪㈤合中較早回合的經加密記憶艘位址的位元 45 201027340 來產生的。 46. 如"奢求項42之設備,其中該經部分解密的資料是 藉由一可逆操作來與該經加密記憶體位址相組合的。 47. 如請求項42之設備,其中該第二多個區塊密瑪回 合多於該第一多個區塊密碼回合。 ❹ 48. 一種區塊密碼翁設備,包括: 用於在第-多個區塊密瑪回合中加密一記憶體位址以 獲得一經加密記憶體位址的構件; 用於使用來自該第-多個區塊密碼回合中的—回合或更 多回合的資訊來產生資料回合密鑰的構件; 用於在第一多個區塊密碼回合中使用該等資料回合密 鍮來解密經加密資料以獲得—經部分解密的資料的構件;及 β 用於將該經部分解密的資料與該經加密記憶體位址相組 合以獲得一完全解密的資料的構件。 49.如請求項48之設備,還包括: 用於從該記憶體位址取回該經加密資料的構件。 5〇' 一種包括一處理電路的處理器,該處理電路適於: 在一第一多個區塊密碼回合中加密一記憶體位址以獲得 一經加密記憶體位址。 46 201027340 使用來自該第一多個區塊密碼回合中的一回合或更多回 合的資訊來產生資料回合密餘; 在一第二多個區塊密碼回合中使用該等資料回合密鑰來 解密經加密資料以獲得一經部分解密的資料;及 將該經部分解密的資料與該經加密記憶體位址相組合以 獲得完全解密的資料。 φ 51. 一種包括用於區塊密碼術解密的指令的機器可讀 取媒趙’該等指令在由一或多個處理器執行時使該處理器: 在一第一多個區塊密碼回合中加密該記憶體位址以獲得 —經加密記憶體位址; 使用來自該第一多個區塊密碼回合中的一回合或更多回 合的資訊來產生資料回合密鑰; 在一第二多個區塊密碼回合中使用該等資料回合密鑰來 解密經加密資料以獲得一經部分解密的資料;及 % 將該經部分解密的資料與該經加密記憶體位址相組合以 獲得完全解密的資料。 47
TW098136953A 2008-10-30 2009-10-30 低等待時間的區塊密碼術 TWI402675B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/262,092 US9336160B2 (en) 2008-10-30 2008-10-30 Low latency block cipher

Publications (2)

Publication Number Publication Date
TW201027340A true TW201027340A (en) 2010-07-16
TWI402675B TWI402675B (zh) 2013-07-21

Family

ID=42027710

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098136953A TWI402675B (zh) 2008-10-30 2009-10-30 低等待時間的區塊密碼術

Country Status (8)

Country Link
US (1) US9336160B2 (zh)
EP (1) EP2356771B1 (zh)
JP (2) JP2012507949A (zh)
KR (1) KR101370223B1 (zh)
CN (1) CN102204158B (zh)
BR (1) BRPI0920045B1 (zh)
TW (1) TWI402675B (zh)
WO (1) WO2010056531A1 (zh)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5272751B2 (ja) * 2009-01-26 2013-08-28 富士通セミコンダクター株式会社 プロセッサ
US8589700B2 (en) * 2009-03-04 2013-11-19 Apple Inc. Data whitening for writing and reading data to and from a non-volatile memory
US9680637B2 (en) 2009-05-01 2017-06-13 Harris Corporation Secure hashing device using multiple different SHA variants and related methods
US9600421B2 (en) * 2009-05-20 2017-03-21 Conexant Systems, Inc. Systems and methods for low-latency encrypted storage
US8438401B2 (en) * 2009-09-22 2013-05-07 Raytheon BBN Technologies, Corp. Device and method for securely storing data
KR101646705B1 (ko) 2009-12-01 2016-08-09 삼성전자주식회사 에스-박스를 구현한 암호화 장치
US9544133B2 (en) * 2009-12-26 2017-01-10 Intel Corporation On-the-fly key generation for encryption and decryption
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US9798898B2 (en) 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9911008B2 (en) 2010-05-25 2018-03-06 Via Technologies, Inc. Microprocessor with on-the-fly switching of decryption keys
US9967092B2 (en) 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
US8645714B2 (en) * 2010-05-25 2014-02-04 Via Technologies, Inc. Branch target address cache for predicting instruction decryption keys in a microprocessor that fetches and decrypts encrypted instructions
KR20120002760A (ko) * 2010-07-01 2012-01-09 삼성전자주식회사 낸드 플래쉬 메모리의 동작 신뢰성을 향상시키는 데이터 기록 방법 및 데이터 기록 장치
US20120084559A1 (en) * 2010-09-30 2012-04-05 Hunt Technologies, Llc Communications Source Authentication
GB2497464A (en) 2010-10-05 2013-06-12 Hewlett Packard Development Co Scrambling an address and encrypting write data for storing in a storage device
WO2012047199A1 (en) * 2010-10-05 2012-04-12 Hewlett-Packard Development Company, L.P. Modifying a length of an element to form an encryption key
FR2966953B1 (fr) * 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
MY150357A (en) * 2010-11-04 2013-12-31 Mimos Berhad A method for linear transformation in substitution-permutation networks symmetric-key block cipher
GB2489405B (en) * 2011-03-22 2018-03-07 Advanced Risc Mach Ltd Encrypting and storing confidential data
US9331848B1 (en) * 2011-04-29 2016-05-03 Altera Corporation Differential power analysis resistant encryption and decryption functions
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
US8726037B2 (en) * 2011-09-27 2014-05-13 Atmel Corporation Encrypted memory access
WO2013129055A1 (ja) * 2012-03-02 2013-09-06 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
US8976960B2 (en) * 2012-04-02 2015-03-10 Apple Inc. Methods and apparatus for correlation protected processing of cryptographic operations
US10102390B2 (en) * 2012-06-28 2018-10-16 Honeywell International Inc. Memory authentication with redundant encryption
WO2014003117A1 (ja) * 2012-06-28 2014-01-03 日本電気株式会社 暗号化装置、暗号化方法およびプログラム
US9379887B2 (en) 2012-09-14 2016-06-28 Qualcomm Incorporated Efficient cryptographic key stream generation using optimized S-box configurations
KR102060996B1 (ko) * 2013-01-07 2020-02-11 삼성전자주식회사 단말기의 메모리 주소 및 데이터변환 장치 및 방법
US9294266B2 (en) * 2013-06-27 2016-03-22 Qualcomm Incorporated Method and apparatus to encrypt plaintext data
WO2015013133A1 (en) * 2013-07-24 2015-01-29 Marvell World Trade Ltd. Key rotation for a memory controller
US9405919B2 (en) * 2014-03-11 2016-08-02 Qualcomm Incorporated Dynamic encryption keys for use with XTS encryption systems employing reduced-round ciphers
US10192062B2 (en) 2014-06-20 2019-01-29 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10691838B2 (en) 2014-06-20 2020-06-23 Cypress Semiconductor Corporation Encryption for XIP and MMIO external memories
US10169618B2 (en) * 2014-06-20 2019-01-01 Cypress Semiconductor Corporation Encryption method for execute-in-place memories
DE102014216392A1 (de) * 2014-08-19 2016-02-25 Robert Bosch Gmbh Symmetrisches Iteriertes Blockchiffrierverfahren und entsprechende Vorrichtung
US9397833B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Receipt, data reduction, and storage of encrypted data
US9397832B2 (en) 2014-08-27 2016-07-19 International Business Machines Corporation Shared data encryption and confidentiality
US9946662B2 (en) * 2014-08-29 2018-04-17 The Boeing Company Double-mix Feistel network for key generation or encryption
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
US9483664B2 (en) * 2014-09-15 2016-11-01 Arm Limited Address dependent data encryption
CN104253684B (zh) * 2014-09-23 2018-02-02 深圳市汇顶科技股份有限公司 加密方法和加密装置
KR102376506B1 (ko) 2014-10-20 2022-03-18 삼성전자주식회사 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법
IL235729A (en) 2014-11-17 2017-06-29 Kaluzhny Uri A device and method for securely storing information
US10262161B1 (en) * 2014-12-22 2019-04-16 Amazon Technologies, Inc. Secure execution and transformation techniques for computing executables
US10013363B2 (en) 2015-02-09 2018-07-03 Honeywell International Inc. Encryption using entropy-based key derivation
CN107534549B (zh) * 2015-03-20 2020-06-30 慧与发展有限责任合伙企业 可读存储介质、用于数据流字块加密的方法及系统
JP6788610B2 (ja) 2015-04-30 2020-11-25 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. ブロック・サイファーを計算するための暗号装置
WO2017200989A1 (en) * 2016-05-16 2017-11-23 Amgen Inc. Data encryption in medical devices with limited computational capability
US10708073B2 (en) 2016-11-08 2020-07-07 Honeywell International Inc. Configuration based cryptographic key generation
CN107453866A (zh) * 2017-08-03 2017-12-08 致象尔微电子科技(上海)有限公司 一种对数据进行加密的方法
JP6903529B2 (ja) * 2017-09-11 2021-07-14 株式会社東芝 情報処理装置、情報処理方法およびプログラム
CN107967414B (zh) * 2017-11-03 2023-07-28 深圳市航顺芯片技术研发有限公司 微控制芯片指令加密方法、解密方法及加/解密系统
FR3074936B1 (fr) * 2017-12-11 2020-08-14 Stmicroelectronics (Grenoble 2) Sas Procede d'ecriture d'un ensemble d'informations, par exemple un code programme, cryptees dans une memoire externe d'un circuit integre et circuit integre correspondant
CN108197482A (zh) * 2017-12-27 2018-06-22 致象尔微电子科技(上海)有限公司 一种内存数据加密解密方法及装置
US11032061B2 (en) * 2018-04-27 2021-06-08 Microsoft Technology Licensing, Llc Enabling constant plaintext space in bootstrapping in fully homomorphic encryption
CN108777611B (zh) * 2018-05-11 2021-06-18 吉林大学 基于双密钥流密码的双向链表顺序加密解密方法
US11126757B2 (en) 2018-10-19 2021-09-21 Microsoft Technology Licensing, Llc Peripheral device
CN109656840A (zh) * 2018-12-21 2019-04-19 成都海光集成电路设计有限公司 一种数据加解密的装置、方法、存储介质、以及数据存储系统
CN110213354B (zh) * 2019-05-20 2021-07-13 电子科技大学 云存储数据机密性保护方法
US11429751B2 (en) * 2019-07-01 2022-08-30 Rajant Corporation Method and apparatus for encrypting and decrypting data on an integrated circuit
US10637837B1 (en) 2019-11-27 2020-04-28 Marpex, Inc. Method and system to secure human and also internet of things communications through automation of symmetric encryption key management
US11645428B1 (en) 2020-02-11 2023-05-09 Wells Fargo Bank, N.A. Quantum phenomenon-based obfuscation of memory
EP3879781B1 (en) * 2020-03-13 2022-07-27 Deutsche Telekom AG Methods and systems for network service management in a distributed architecture
US20240004801A1 (en) * 2022-06-29 2024-01-04 Advanced Micro Devices, Inc. Data encryption suitable for use in systems with processing-in-memory
CN118069097B (zh) * 2022-12-20 2025-02-21 深圳市速腾聚创科技有限公司 数据写入方法、装置、终端设备及存储介质
CN116126753B (zh) * 2022-12-28 2024-02-02 江苏都万电子科技有限公司 一种防护存储器及存储方法
US12401495B1 (en) * 2023-07-24 2025-08-26 The Government Of The United States As Represented By The Director, National Security Agency Universal circuit device for selective block cipher cryptographic processing with space efficient configurational agility
CN119356610B (zh) * 2024-10-15 2025-09-26 东风汽车集团股份有限公司 数据分块存储方法、装置、设备及计算机可读存储介质
CN121056121B (zh) * 2025-11-04 2026-02-06 苏州萨沙迈半导体有限公司 数据加密装置及存储器加解密系统、芯片

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4278837A (en) * 1977-10-31 1981-07-14 Best Robert M Crypto microprocessor for executing enciphered programs
US4319079A (en) * 1979-09-13 1982-03-09 Best Robert M Crypto microprocessor using block cipher
US6014445A (en) * 1995-10-23 2000-01-11 Kabushiki Kaisha Toshiba Enciphering/deciphering apparatus and method incorporating random variable and keystream generation
US6061449A (en) * 1997-10-10 2000-05-09 General Instrument Corporation Secure processor with external memory using block chaining and block re-ordering
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
TW514844B (en) 2000-01-26 2002-12-21 Sony Corp Data processing system, storage device, data processing method and program providing media
US7185205B2 (en) * 2001-03-26 2007-02-27 Galois Connections, Inc. Crypto-pointers for secure data storage
JP4226816B2 (ja) * 2001-09-28 2009-02-18 株式会社東芝 マイクロプロセッサ
JP2005505069A (ja) 2001-10-03 2005-02-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリ暗号化
GB0214620D0 (en) * 2002-06-25 2002-08-07 Koninkl Philips Electronics Nv Round key generation for AES rijndael block cipher
DE10256587A1 (de) * 2002-12-04 2004-06-17 Philips Intellectual Property & Standards Gmbh Datenverarbeitungseinrichtung, insbesondere elektronisches Speicherbauteil, und hierauf bezogenes Verschlüsselungsverfahren
DE10345454A1 (de) * 2003-09-30 2005-04-28 Infineon Technologies Ag Wortindividuelle Schlüsselerzeugung
DE10345385B4 (de) * 2003-09-30 2005-10-06 Infineon Technologies Ag Entschlüsselung bzw. Verschlüsselung bei Schreibzugriffen auf einen Speicher
JP2005130059A (ja) 2003-10-22 2005-05-19 Fuji Xerox Co Ltd 画像形成装置および交換部品
KR100604828B1 (ko) * 2004-01-09 2006-07-28 삼성전자주식회사 펌웨어 암호화 방법 및 해독 방법과 그 처리 장치
US7657033B2 (en) * 2004-12-10 2010-02-02 Fiske Software Llc Cryptography related to keys
EP1831812A1 (en) 2004-12-20 2007-09-12 Philips Intellectual Property & Standards GmbH Data processing device and method for operating such data processing device
JP4890976B2 (ja) 2005-08-31 2012-03-07 キヤノン株式会社 暗号処理装置
US8001374B2 (en) * 2005-12-16 2011-08-16 Lsi Corporation Memory encryption for digital video
IL174784A0 (en) * 2006-04-04 2006-12-31 Nds Ltd Robust cipher design
KR100837270B1 (ko) * 2006-06-07 2008-06-11 삼성전자주식회사 스마트 카드 및 그것의 데이터 보안 방법
JP4905000B2 (ja) * 2006-09-01 2012-03-28 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8155308B1 (en) * 2006-10-10 2012-04-10 Marvell International Ltd. Advanced encryption system hardware architecture
JP2008151829A (ja) 2006-12-14 2008-07-03 Fujitsu Ltd 暗号演算装置
EP1978467A1 (en) 2007-04-05 2008-10-08 STMicroelectronics (Research & Development) Limited Integrated circuit and method for secure execution of software
US8112634B2 (en) * 2008-06-04 2012-02-07 Samsung Electronics Co., Ltd. Security-enhanced storage devices using media location factor in encryption of hidden and non-hidden partitions

Also Published As

Publication number Publication date
JP2014160256A (ja) 2014-09-04
US20100115286A1 (en) 2010-05-06
WO2010056531A1 (en) 2010-05-20
US9336160B2 (en) 2016-05-10
EP2356771B1 (en) 2018-05-30
BRPI0920045B1 (pt) 2020-11-10
BRPI0920045A2 (pt) 2015-12-15
KR101370223B1 (ko) 2014-03-05
CN102204158B (zh) 2016-01-20
TWI402675B (zh) 2013-07-21
KR20110089319A (ko) 2011-08-05
JP2012507949A (ja) 2012-03-29
EP2356771A1 (en) 2011-08-17
CN102204158A (zh) 2011-09-28

Similar Documents

Publication Publication Date Title
TW201027340A (en) Low latency block cipher
JP7107670B2 (ja) ビットミキサにより暗号ラウンド鍵を生成するためのシステム及び方法
US8983063B1 (en) Method and system for high throughput blockwise independent encryption/decryption
CN110235409B (zh) 使用同态加密被保护的rsa签名或解密的方法
US8681975B2 (en) Encryption method and apparatus using composition of ciphers
US20080084996A1 (en) Authenticated encryption method and apparatus
Singh et al. Performance evaluation of cryptographic ciphers on IoT devices
WO2021114850A1 (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
US20250038952A1 (en) Methods, unit and device for successively executing first and next block cryptographic computations
Yahaya et al. Cryptosystem for secure data transmission using Advance Encryption Standard (AES) and Steganography
CN107453866A (zh) 一种对数据进行加密的方法
CN1826753B (zh) 保密密钥控制的可逆电路和相应的数据处理方法
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
TW595183B (en) Crypto-system with an inverse key evaluation circuit
Yewale Minal et al. Implementation of AES on FPGA
CN106973061B (zh) 一种基于可逆逻辑电路的aes的外发文件加密方法
Jasim et al. Design and Implementation of AES-SHA Security Hardware using FPGA
Shete et al. Image encryption using AES algorithm: study and evaluation
Das et al. An efficient VLSI implementation of AES encryption using ROM submodules and exclusion of shiftrows
Mavinkattimath et al. Design and implementation of a private and public key crypto processor
Tripathi et al. Survey on performance comparison of various symmetric encryption algorithms
Maharjan Comparative Study of CAST and TWOFISH algorithm using various Modes of Operations
Adigun et al. Review of the Advanced Encryption Standard System Performance on Hidden Data
Wai et al. Encryption and Decryption by using RC5 And DES Algorithms for Data File
Roy et al. RASS—A concurrency based bitwise symmetric key cryptographic algorithm

Legal Events

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