JP6109441B1 - ラウンド削減型暗号を採用するxts暗号化システムとともに使用するための動的暗号化鍵 - Google Patents

ラウンド削減型暗号を採用するxts暗号化システムとともに使用するための動的暗号化鍵 Download PDF

Info

Publication number
JP6109441B1
JP6109441B1 JP2016555574A JP2016555574A JP6109441B1 JP 6109441 B1 JP6109441 B1 JP 6109441B1 JP 2016555574 A JP2016555574 A JP 2016555574A JP 2016555574 A JP2016555574 A JP 2016555574A JP 6109441 B1 JP6109441 B1 JP 6109441B1
Authority
JP
Japan
Prior art keywords
data
key
modified
round
block
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2016555574A
Other languages
English (en)
Other versions
JP2017511900A (ja
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 クアルコム,インコーポレイテッド
Application granted granted Critical
Publication of JP6109441B1 publication Critical patent/JP6109441B1/ja
Publication of JP2017511900A publication Critical patent/JP2017511900A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • 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/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • 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
    • 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
    • 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/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Abstract

1つの特徴は、データを暗号化してデータ秘密性を改善することに関する。一態様では、XTS暗号化の修正された形態が、ラウンド削減型ブロック暗号とともに使用するために提供される。ラウンド削減型暗号に適用するために修正された秘密鍵を生成またはそうでなければ取得するために、ラウンド削減型暗号に適用されるべきデータのデータ単位インデックスが、秘密鍵の下で暗号化される。すなわち、ラウンド削減型暗号によって暗号化されるべきデータは、静的な鍵の下で暗号化されないが、代わりに、データのインデックスに従って変化する動的な鍵の下で暗号化される。もし攻撃者が暗号によって暗号化されたデータを分析することによって、ラウンド削減型暗号に適用される鍵の値を導出できれば、攻撃者は、全アドレス空間に適用されるグローバルで静的な鍵ではなく、ある特定のデータ単位インデックスに対応する動的な鍵だけを取得することになる。解読手順もまた説明される。

Description

関連出願の相互参照
本出願は、内容全体が参照により本明細書に組み込まれる、2014年3月11日に米国特許商標庁に出願された、米国非仮特許出願第14/205,230号の優先権および利益を主張する。
様々な特徴は、暗号化に関し、詳細には、モバイルコンピューティングデバイスとともに使用するためのXTSブロック暗号(block cipher)モードを活用する暗号化に関する。
メモリシステム内または他の記憶システム内、特に攻撃者または悪意のある他のエンティティによってアクセス可能なメモリシステム内に記憶されているデータの秘密性を改善するために、暗号化技術においてブロック暗号が採用される。通常、ブロック暗号は、固定長のビットのグループ(すなわち、ブロック)において動作する確定的な手順またはアルゴリズムを採用する。ブロック暗号は、スマートフォンまたは他のモバイルコンピューティングデバイスのシステムオンチップ(SoC)プロセッサとともに使用されるオフチップメモリデバイスに記憶されているデータなどの、バルクデータの暗号化を実施するために採用される場合がある。ブロック暗号利用モードの一例が、Institute of Electrical and Electronics Engineers(IEEE)規格1619-2007によって指定されるXTS-AESである。米国標準技術局(NIST)特別刊行物800-38E、“Recommendation for Block Cipher Modes of Operation: The XTS-AES Mode for Confidentiality on Storage Devices”、2010年6月も参照のこと。XTSが“XEX Tweakable Block Cipher with Ciphertext Stealing”を表すこと、およびXEXが“XOR Encrypt XOR”を表すことに留意されたい。AESは高度暗号化システム(Advanced Encryption System)を指す。
簡単に言えば、XTS-AESモードは、固定長の「データ単位」を使用する記憶デバイスにおけるデータの暗号学的保護を対象とする。標準的なXTSブロック暗号モードは、秘密に保持されるように意図された不変の鍵K1およびK2を使用し、ここで、概して、K1はデータに作用し、K2は対応するデータ単位インデックスに作用する。スマートフォンのメモリデバイスに記憶されたデータの取出しなどのいくつかの適用例の場合、K1を利用するブロック暗号関数は、全体的な読取りレイテンシを低減するようにそれがより迅速に動作できるようにするために、暗号によって採用されるラウンドの数を削減することによって「分解(strip down)」されてもよい。そのようなブロック暗号は、ラウンド削減型ブロック暗号(reduced-round block cipher)と呼ばれる。この点について、ブロック暗号は、ラウンド関数として知られる可逆変換を使用してもよく、ここで、各反復はラウンドと呼ばれる。ラウンド削減型暗号は、短縮または削減された数のそのようなラウンド、たとえば、完全ブロック暗号に対して32ではなく16個のラウンドまたは反復を採用してもよい。しかしながら、ラウンド削減型暗号は、鍵のうちの少なくともいくつかの安全性を低下させる場合がある。
したがって、攻撃者または悪意のある他のエンティティによってアクセス可能なメモリシステムなどの記憶システム内に記憶されているデータ、特にラウンド削減型暗号を使用して暗号化されたデータの秘密性を改善する必要がある。
一態様では、ラウンド削減型暗号化暗号とともに使用するための、データを暗号化するための方法は、修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、データ単位インデックスが、ラウンド削減型暗号化暗号によって暗号化されるべきデータに対応する、暗号化することと、ラウンド削減型暗号化暗号を使用して、修正された第1の鍵に基づいてデータを暗号化することと、暗号化されたデータを記憶デバイスに記憶することとを含む。
別の態様では、デバイスは、データを記憶するための記憶デバイス、ならびに、修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、データ単位インデックスが、ラウンド削減型暗号化暗号によって暗号化されるべきデータに対応する、暗号化することと、ラウンド削減型暗号化暗号を使用して、修正された第1の鍵に基づいてデータを暗号化することと、暗号化されたデータを記憶デバイスに記憶することとを行うように構成される、記憶デバイスに結合される処理回路を含む。
さらに別の態様では、ラウンド削減型解読暗号とともに使用するための、データを解読するための方法は、修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、データ単位インデックスが、ラウンド削減型解読暗号によって解読されるべきデータに対応する、暗号化することと、ラウンド削減型解読暗号を使用して、修正された第1の鍵に基づいてデータを解読することと、解読されたデータを記憶デバイスに記憶することとを含む。
さらに別の態様では、デバイスは、データを記憶するための記憶デバイス、ならびに、修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、データ単位インデックスが、ラウンド削減型解読暗号によって解読されるべきデータに対応する、暗号化することと、ラウンド削減型解読暗号を使用して、修正された第1の鍵に基づいてデータを解読することと、解読されたデータを記憶デバイスに記憶することとを行うように構成される、記憶デバイスに結合される処理回路を含む。
例示的な例によるモバイル通信デバイスのシステムオンチップ(SoC)プロセッサのブロック図である。 第1および第2の秘密鍵が採用される完全ラウンドブロック暗号を採用する例示的なXTSブロック暗号の暗号化手順を示す図である。 ラウンド削減型ブロック暗号が採用される例示的なXTSブロック暗号の暗号化手順を示す図である。 第1の鍵ならびに第2の(白色化)鍵が動的に取得される、修正されたXTS暗号化手順の概要を示す図である。 SoCプロセッサシステムとともに使用するための、新しい書込み動作ごとに第1の鍵が動的に取得される、図4の暗号化手順とともに使用するための例示的な方法を示すブロック図である。 図4の暗号化手順の態様をさらに示す図である。 図1〜図6のシステム、方法、および装置とともに使用するための記憶デバイスの一例を示すブロック図である。 図4〜図7の手順を使用して前に暗号化されたデータを解読する際に使用するための例示的な解読方法を示すブロック図である。 図8の解読手順の態様をさらに示す図である。 図1〜図9のシステムおよび方法を活用してもよい処理システムを採用する装置のためのハードウェア実装の一例を示すブロック図である。 図10のプロセッサのデバイス構成要素を示すブロック図である。 図10のプロセッサ可読媒体の命令構成要素を示すブロック図である。 図10〜図12の構成要素によって実行されてもよい暗号化手順を要約する図である。 図13の暗号化手順の態様をさらに要約する図である。 図10〜図12の構成要素によって実行されてもよい解読手順を要約する図である。 図15の解読手順の態様をさらに要約する図である。
以下の説明では、本開示の様々な態様の完全な理解をもたらすために具体的な詳細が与えられる。しかしながら、これらの態様が、これらの具体的な詳細なしに実施されてもよいことが、当業者には理解されよう。たとえば、回路は、不必要な詳細で態様を不明瞭にすることを避けるために、ブロック図で示される場合がある。他の事例では、よく知られている回路、構造、および技法は、本開示の態様を不明瞭にしないために、詳細には示されない場合がある。
「例示的」という用語は、本明細書では、「例、事例、または例示として機能する」ことを意味するために使用される。「例示的」として本明細書で説明する任意の実装形態または様態は、必ずしも本開示の他の態様よりも好ましいまたは有利であると解釈されるべきではない。同様に、「態様」という用語は、本開示のすべての態様が、説明される特徴、利点、または動作モードを含むことを必要としない。
概要
いくつかの新規の特徴は、記憶デバイスに記憶してデータの秘密性を維持するために、データを暗号化することに関係する。新規の特徴は、システムオンチップ(SoC)デバイスにおいて使用されてもよいが、幅広いシステム、装置、およびデバイスにおいて、また様々な目標を達成するために適用可能である。
一態様では、SoCプロセッサの暗号化/解読構成要素が、XTSブロック暗号の修正された形態を使用してデータを暗号化/解読し、その場合、1つの暗号インスタンスが「分解された」ラウンド削減型暗号であり、2つの鍵(K1およびK2)がページインデックスなどのデータ単位インデックスまたは微調整(TWEAK)の暗号化/解読の際に使用される。ラウンド削減型暗号は、完全ブロック暗号に比べて短縮または削減された数のラウンドを採用し、その場合、対応する完全ブロック暗号のラウンドの数は、AESなどの所与の暗号化規格によって指定また規定され、使用されている特定のブロック暗号の数学的処理によって暗黙的または明示的に決定されてもよい。一例では、完全ラウンド暗号は32個のラウンドを採用する場合があり、他方では、ラウンド削減型バージョンは8個のみを採用する。述べたように、概して、K1はデータに作用し、K2はページなどのデータ単位インデックスに作用する。分解された暗号関数などを採用するとき、K1は悪意のあるエンティティへの開示として危険な状態にあり得る。たとえば、完全暗号が使用されなかったので、ラウンド削減型暗号化暗号を使用して暗号化され、次いで、メモリに記憶されたデータは、攻撃者によって分析されてK1に関する値を可能性として決定することができる。K1が脅かされる場合、記憶デバイスに関連付けられたアドレス空間内のすべてのデータが同様に脅かされる。K1の秘密性、したがって、K1を使用して暗号化されたデータの秘密性は、本明細書で説明する手順によって改善することができ、ここにおいて、完全ブロック暗号を使用してデータ単位インデックス(または、ページ番号)がK1の下で動的に暗号化されて、修正された鍵(本明細書では、K1'と示す)を生成またはそうでなければ取得し、修正された鍵は、次いで、ラウンド削減型暗号化暗号を使用してデータを暗号化するために採用される。すなわち、K1をラウンド削減型暗号化暗号に直接適用してデータ(同様に、XTSに従ってK2を利用する暗号インスタンスの出力を使用して白色化されてもよい)を暗号化するのではなく、本明細書で説明する例示的な手順は、K1の修正され動的に取得されたバージョン(すなわち、K1')をラウンド削減型暗号化暗号に適用する。本明細書では、「取得すること」が、たとえば、生成すること、獲得すること、受信すること、取り出すこと、または任意の他の適切な対応するアクションを実行することを広く包含することに留意されたい。その後、攻撃者がK1'の値を決定する場合、他のデータ単位が異なるデータ単位インデックスまたは微調整(TWEAK)に基づくK1'の異なるバージョンを用いて暗号化されるので、全アドレス空間の中のすべてのデータではなく、K1'を生成するために使用された特定のデータ単位インデックスに対応するデータのみが脅かされる。
この点について、データ単位(または、ページ)にデータを記憶するシステムを考察する。モードとしてのXTSは、次のように作用するように採用されてもよい。
Figure 0006109441
ここで、Wは入力白色化鍵および出力白色化鍵であり、iはデータ単位インデックスであり、jは暗号化されるべきデータPのブロックインデックス(すなわち、データ単位内のオフセット)であり、
Figure 0006109441
は排他的論理和(XOR)演算を表す。Vはjでなくiに依存し、すなわち、この例では、データ単位内のすべてのブロックが同じVを共有し、単一のデータ単位内での連続した動作に対して1度だけVを計算するように様々な最適化が採用されてもよいことに留意されたい。標準的なAES-XTSは、F1およびF3をAES-128(E)に、またF2 128の中でF2(j,a)=a・xjに設定することによって取得されてもよく、その結果、上記のものは次のように簡略化される。
Figure 0006109441
この標準的なXTSモードは、データ単位インデックス(i)を鍵K2の下で暗号化することから導出された追加の入出力「白色化鍵(whitening key)」を用いた、不変の鍵K1の下での平文Pjの暗号化と見なされ得る。XTSの1つの特徴は、暗号化が位置依存であることである。したがって、攻撃者は、データをコピーし異なるロケーションにペーストすることができず、有用な方法で平文を維持することができない。データは、コピーされ同じロケーションにペーストされ得るだけである。秘密性に関して、XTSがノンスベース(ここで、ノンスは「1回だけ使用される数」を意味する)でないが、とはいえ、以下の方式で従来の電子コードブック(ECB)のような分析に耐えることに留意されたい。従来のECBでは、同じ鍵の下でアドレスA1およびA2(ただし、A1≠A2)に書き込まれた平文Pは、同じ暗号文Cをもたらす。XTSを用いると、白色化鍵が異なり、その結果、C1≠C2である暗号文C1およびC2が生じる。要約すると、XTSにおけるECBのような分析は、通常、全アドレス空間ではなく単一のアドレス(詳細には、iとjの組合せ)に制限される。(この点について、Pは常に、A1においてC1に暗号化されるが、異なるA2において異なるC2に暗号化される。)
本明細書で説明する少なくともいくつかの例示的な手順では、次のように設定するXTS利用モードの修正された形態が提供される。
Figure 0006109441
F4=F1が例示的な、おそらくは好ましい変形形態または実装形態であることに留意されたい。この修正されたXTSモードは、鍵K2の下でデータ単位インデックス(i)を暗号化することから導出される追加の入出力「白色化鍵」を用いた、動的な鍵K1'の下での平文Pjの暗号化と見なされ得る。データ単位ごとにK1'を動的に導出することは、その特定のデータ単位の中のデータのみを可能性として危険な状態にさせる。その後、概して同じ鍵およびインデックスを用いてプロセスを逆転させることによってデータが解読されて、平文を再び取得してもよい。メモリ解読における読取りなどの多くの適用例では、ハードウェアは、Pjを取得する前にiを取得し、すなわち、処理デバイスは、解読されるべきデータをフェッチする前にアドレスを取得する。処理デバイスは、それによって、解読されるべきデータがメモリからフェッチされている間にF1およびF4を用いてiに作用してVおよびK1'を計算するために、それらの間のレイテンシを使用することができる。
用語における注記:本明細書では、K1'は、ラウンド削減型暗号化および解読暗号(reduced-round encryption and decryption ciphers)への鍵として使用するためにデータ単位インデックスを暗号化する、第1のブロック暗号の出力を示すために使用され、第1の鍵K1の修正されたバージョンと呼ばれる。静的な鍵K1の代わりにK1'がラウンド削減型暗号に適用されるので、この用語が使用される。用語は任意であり、この値は、代わりに他の用語を使用して参照される場合がある。白色化鍵を生成またはそうでなければ取得するために採用される第2のブロック暗号の出力を示すために、本明細書では文字Vが主に使用される。この用語は、標準的なXTS暗号化用語と他の点では一致させるために使用される。やはり、しかしながら、用語は任意であり、この値は、代わりに他の用語を使用して参照される場合がある。場合によっては、Vは、付加的または代替的には、第2の鍵K2の修正されたバージョンと本明細書で呼ばれる。
例示的なシステムオンチップハードウェア環境
図1は、様々な新規の特徴が活用されてもよい一例による、モバイル通信デバイスのシステムオンチップ(SoC)プロセッサデバイス100を示す。SoCプロセッサは、Qualcomm Incorporatedによって製造されるSnapdragon(登録商標)プロセッサであってもよい。SoCプロセッサ100は、マルチコアCPU112を含むアプリケーションプロセッサ110を含む。アプリケーションプロセッサ110は、通常、モバイル通信デバイスのすべての構成要素の動作を制御する。一態様では、アプリケーションプロセッサ110は、上述の動的に生成されるK1'鍵などの、動的に生成される鍵を採用する修正されたXTS暗号化/解読を実行するように装備された、暗号化/解読構成要素150を含む。アプリケーションプロセッサ110は、SoCプロセッサ100の様々な構成要素のためのブートシーケンス命令を記憶するブート読取り専用メモリ(ROM)118を含んでもよい。SoCプロセッサ100は、アプリケーションプロセッサ110によって制御される1つまたは複数の周辺サブシステム120をさらに含む。周辺サブシステム120は、ストレージサブシステム(たとえば、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM))、ビデオ/グラフィックスサブシステム(たとえば、デジタル信号プロセッサ(DSP)、グラフィックスプロセッサユニット(GPU))、オーディオサブシステム(たとえば、DSP、アナログデジタル変換器(ADC)、デジタルアナログ変換器(DAC))、電力管理サブシステム、セキュリティサブシステム(たとえば、暗号化、デジタル著作権管理(DRM))、入出力(I/O)サブシステム(たとえば、キーボード、タッチスクリーン)、ならびに有線およびワイヤレスの接続性サブシステム(たとえば、ユニバーサルシリアルバス(USB)、全地球測位システム(GPS)、Wi-Fi、グローバルシステムモバイル(GSM(登録商標))、符号分割多元接続(CDMA)、4Gロングタームエボリューション(LTE)モデム)を含んでもよいが、これに限定されない。モデムサブシステムである例示的な周辺サブシステム120は、DSP122、様々なハードウェア(HW)およびソフトウェア(SW)構成要素124、ならびに様々な無線周波数(RF)構成要素126を含む。一態様では、各周辺サブシステム120はまた、関連する周辺サブシステム120のプライマリブートイメージ(図示せず)を記憶するブートROM128を含む。
SoCプロセッサ100は、内部共有ストレージ132(たとえば、スタティックRAM(SRAM)、ダブルデータレート(DDR)RAMおよび/またはシンクロナスダイナミック(SD)RAM、DRAM、フラッシュメモリなど)などの様々な内部共有HWリソース130をさらに含み、内部共有HWリソース130は、様々なランタイムデータを記憶するためにアプリケーション処理回路110および様々な周辺サブシステム120によって共有される。一態様では、SoC処理回路100の構成要素110、118、120、128および130が、単一のチップ基板上で統合される。SoC処理回路100は、異なるチップ基板上に配置されてもよく、システムバス(図示せず)を介してSoC処理回路100と通信してもよい、様々な外部共有HWリソース140をさらに含む。外部共有HWリソース140は、たとえば、外部共有記憶デバイス142(たとえば、DDR RAM、DRAM、フラッシュメモリ)および/または永久的データストレージ144(たとえば、セキュアデジタル(SD)カードまたはハードディスクドライブ(HDD)など)を含んでもよく、外部共有記憶デバイス142は、オペレーティングシステム(OS)情報、システムファイル、プログラム、アプリケーション、ユーザデータ、オーディオ/ビデオファイルなどの様々なタイプのデータを記憶するために、アプリケーション処理回路110および様々な周辺サブシステム120によって共有される。SoCを組み込むモバイル通信デバイスが活動化されると、セキュアなSoC処理回路100はシステムブートアッププロセスを開始する。具体的には、様々な周辺サブシステム120のためのブートシーケンス命令を含む、SoC処理回路100のためのブート命令を取り出しまたは取得するために、アプリケーション処理回路110がブートROM118にアクセスする。周辺サブシステム120はまた、追加の周辺ブートROM128を有してもよい。
動的なK1鍵を用いない例示的なXTSベースの暗号化手順
図2は、図1のSoC処理回路、または他の適切に装備されたデバイス、システム、もしくは処理回路によって採用されてもよい、データを暗号化するために静的なK1鍵204および静的なK2鍵206と組み合わせて完全ラウンド暗号化ブロック暗号202を使用する例示的な手順200を示す。この実装形態は、たとえば、暗号化とその後の解読の両方の間にわたり完全ラウンド暗号が採用されてもよいような、解読の間にわたり読取りレイテンシが問題でないシステムにおいて使用されてもよい。再び、IEEE規格1619-2007を参照のこと。このモードでは、ページインデックス210(128ビットであってもよい)をK2鍵206の下で暗号化するために、完全ラウンドブロック暗号208が使用される(ここで、ページインデックスが「微調整(TWEAK)」と呼ばれる場合もある)。Vで示されるとともにK2の修正されたバージョンと見なされてもよいブロック暗号208の出力は、212においてαj214と乗算されて入出力白色化値をもたらし、ここで、αは定数であり、jはブロックインデックス(暗号化されるべきデータのページ内でのオフセットであってもよい)を表す。暗号化されるべきデータ216は、次いで、218において白色化値と排他的論理和がとられ、「白色化された」データとして完全ラウンド暗号化暗号202に入力される。白色化されたデータは、次いで、完全ラウンド暗号化暗号によってK1の下で暗号化される。XOR関数212によって生成された入出力白色化値は、次いで、220において完全ブロック暗号からの出力データと排他的論理和がとられて最終暗号文222をもたらし、最終暗号文222は、たとえば、図1に示すタイプのオフチップ記憶デバイス、またはいくつかの他の適切なストレージロケーションに記憶されてもよい。完全ラウンド解読暗号を使用して暗号文を平文に戻して解読するために、これらの手順が逆転されてもよい。
図3は、図1のSoC処理回路、または他の適切に装備されたデバイス、システム、もしくは処理回路によって採用されてもよい、データを暗号化するためにやはり静的なK1鍵304および静的なK2鍵306と組み合わせてラウンド削減型暗号化暗号302を使用する、例示的な手順300を示す。この実装形態は、たとえば、解読の間にわたり読取りレイテンシが問題であるが、K1の開示のリスクが重大と見なされないシステムにおいて使用されてもよい。図3の利用モードの特徴の多くは、図2のものと同じまたは類似であり、したがって、簡潔にのみ説明される。やはり、ページインデックス310をK2鍵306の下で暗号化するために、完全ラウンドブロック暗号308が使用される。出力Vが、312においてαj314と乗算され、入出力白色化値をもたらす。暗号化されるべきデータ316は、次いで、318において白色化値と排他的論理和がとられ、白色化されたデータとしてラウンド削減型暗号化暗号302に入力される。白色化されたデータは、次いで、ラウンド削減型暗号化暗号によって静的な鍵K1の下で暗号化される。白色化値は、次いで、320においてラウンド削減型暗号化暗号からの出力データと排他的論理和がとられて最終暗号文322をもたらす。ラウンド削減型解読暗号を使用して暗号文を平文に戻して解読するために、手順が逆転されてもよい。完全ブロック暗号ではなくラウンド削減型暗号が使用されるので、鍵K1は、可能性として、データのアドレス空間内のすべてのデータとともに危険な状態にある。
動的なK1鍵を用いる例示的なXTSベースの暗号化手順
図4は、図1のSoC処理回路、または他の適切に装備されたデバイス、システム、もしくは処理回路によって採用されてもよい、XTS暗号とともに使用するための動的に生成される(または、そうでなければ動的に取得される)鍵K1'を採用することによってデータ秘密性を改善するための手順400の概要を示す。ステップ402において、修正された第1の鍵K1'を生成またはそうでなければ取得するために、データ単位インデックスが、第1のブロック暗号を使用して第1の鍵(K1)の下で(または、「に基づいて」もしくは「を使用して」など)動的に暗号化される。ステップ404において、データが、完全ブロック暗号よりもラウンドが少ないラウンド削減型暗号化暗号を使用して、修正された第1の鍵(K1')の下で暗号化される。ステップ406において、暗号化されたデータ(たとえば、暗号文)が、オフチップメモリデバイスなどの記憶デバイスに記憶される。静的な鍵ではなく動的に生成された鍵K1'をラウンド削減型暗号化暗号とともに使用することによって、K1'鍵が攻撃者によって開示または取得される場合、データ単位インデックスに関連付けられたアドレス空間内の、すなわち、アドレス空間のすべてのページ内のデータのすべてではなく、K1'鍵を生成するために使用されたインデックスと関連したデータ単位内のデータだけが危険な状態にある。ステップ408に示すように、その後、概して同じ鍵およびインデックスを用いてプロセスを逆転させることによって、データが解読されて元のデータ(たとえば、平文)を明らかにし、または再生成してもよい。
図5は、図4の例示的な暗号化手順をより詳細に示し、ここでやはり、手順は、図1のSoC処理回路、または他の適切に装備されたデバイス、システム、もしくは処理回路によって採用されてもよい。図5の手順500は、処理回路がnビットのデータ単位インデックスパラメータを暗号化するステップ502において開始し、ここで、インデックスは暗号化されるべきデータのページに対応し、nは暗号のブロックサイズであり、たとえば、データ単位インデックスは、暗号化されるべきデータを含むメモリストレージロケーションを識別する。すなわち、データ単位インデックスがデータ単位に「対応する」ことを示すために本明細書で使用される用語は、データ単位インデックスが、データ単位もしくはその一部分を識別するか、またはデータ単位もしくはその一部分にそうでなければ同様に関連付けられることを広く意味する。本明細書の例では、データ単位インデックスは、通常、ページインデックスである。修正された第1の鍵(K1')を生成またはそうでなければ取得するために、データ単位インデックスは、完全ラウンドブロック暗号を使用して第1の鍵(K1)の下で暗号化される。ステップ504において、Vと示される修正された第2の鍵を生成またはそうでなければ取得するために、処理回路は、同じ完全ラウンドブロック暗号の第2のインスタンスを使用して第2の鍵(K2)の下でnビットのデータ単位インデックスを暗号化する。ステップ506において、処理回路は、白色化鍵を生成するために、Vをαjと乗算することによってブロックインデックスjをVに適用し、ここで、αは定数であり、jはデータのページ内でのブロックインデックスオフセットを表す。ステップ508において、処理回路は、次いで、白色化鍵を暗号化されるべきデータと排他的論理和をとることによって、(データをラウンド削減型暗号化暗号に入力する前に)白色化鍵を暗号化されるべきデータに適用する。暗号化されるべきデータは、たとえば、オンチップSRAMから取得されてもよい。ステップ510において、処理回路は、ラウンド削減型暗号化暗号を使用して、修正された第1の鍵の下で、白色化されたデータを暗号化し、ここにおいて、ラウンド削減型暗号化暗号は、完全ブロック暗号に比べて削減された数のラウンドを採用する「分解された」暗号である。ステップ512において、処理回路は、暗号化された暗号文データを生成するために、白色化鍵をラウンド削減型暗号化暗号から出力されるデータと排他的論理和をとることによって、白色化鍵をラウンド削減型データ暗号の出力に再適用する。その後、ステップ514において、暗号文は、次いで、DDR RAMまたは他の適切な記憶デバイスなどのオフチップ記憶デバイスに記憶される。ストレージは、一時的または過渡的であってもよく、暗号化されたデータは、次いで、別のモバイルコンピューティングデバイスなどの別のデバイスへ送信され、または、他の適切なアクションが行われ得る。やはり、データ単位インデックスに基づいて動的に生成されたK1'を用いると、K1'が開示される場合、アドレス空間内のデータのすべてではなく、その特定のデータ単位内のデータだけが危険な状態にある。
図6は、図5の方法に従って採用されてもよい、データを暗号化するためにK1鍵604およびK2鍵606と組み合わせてラウンド削減型ブロック暗号化暗号602を使用する例示的な手順600を示す。このモードでは、ページインデックス610(たとえば、128ビット)をK2鍵606の下で暗号化するために、完全ラウンドブロック暗号608が使用される。K2の修正されたバージョンと見なされてもよいブロック暗号608の出力Vは、612においてαj614と乗算されて入出力白色化値をもたらし、ここで、αは定数であり、jはブロックインデックス(暗号化されるべきデータのページ内でのオフセットであってもよい)を表す。暗号化されるべきデータ616は、次いで、618において白色化値と排他的論理和がとられ、「白色化された」データとしてラウンド削減型暗号化暗号602に入力される。同時に、同じページインデックス610も、完全ラウンド暗号608と同じ暗号の形態であり得る完全ラウンド暗号619を使用して鍵(K1)の下で暗号化される。K1の修正されたバージョンと見なされてもよいブロック暗号619の出力(K1')が、図示のように、ラウンド削減型暗号化暗号602のための鍵として採用される。すなわち、白色化されたデータが、次いで、ラウンド削減型暗号化暗号602によって、K1の修正されたバージョンの下で暗号化される。乗算関数612によって生成された入出力白色化値が、次いで、620においてラウンド削減型暗号化暗号からの出力データと排他的論理和がとられて最終暗号文622をもたらし、最終暗号文622は、たとえば、図1に示すタイプのオフチップ記憶デバイスに、またはいくつかの他の適切なストレージロケーションにおいて記憶されてもよい。図6の例では、少なくとも2つのプロセスが並行に実行されてもよいこと、すなわち、K2を用いた暗号インスタンスが作動しながら、K1を用いた暗号インスタンスが作動することに留意されたい。
図7は、オフチップ記憶デバイスなどの例示的な記憶デバイス700を示す。記憶デバイス700は、参照番号7041...704nによって個々に示されるデータ単位M1...Mnの最新バージョンを記憶し、ここで、各データ単位は、オフチップストレージのアドレス空間内のデータのページを表してもよい。記憶デバイスは、参照番号7061...706nによって個々に示されるデータ単位インデックス1...インデックスnに対して、対応するページインデックスを使用する。もしインデックス3に基づいて生成されたK1'鍵が脅かされていれば、影つきブロック7043によって示されるような、対応するデータ単位(M3)内のデータが危険な状態にあることになるが、全アドレス空間の中のデータのうちの残りは、それによって、危険な状態にないことになる。
動的なK1鍵を用いる例示的なXTSベースの解読手順
図8は、その後、暗号文を解読する際に使用するための例示的な解読手順を示し、ここでやはり、手順は、図1のSoC処理回路、または他の適切に装備されたデバイス、システム、もしくは処理回路によって採用されてもよい。図8の手順800は、解読されるべきデータがオフチップDDR RAMなどの記憶デバイスからフェッチされるステップ801において開始する。ステップ802において、データがフェッチされながら、処理回路が、nビットのデータ単位インデックスを暗号化し、ここで、インデックスは解読されるべきデータのページに対応し、nは暗号のブロックサイズである。修正された第1の鍵(K1')を生成またはそうでなければ取得するために、データ単位インデックスは、完全ラウンドブロック暗号を使用して第1の鍵(K1)の下で暗号化される。ステップ804において、データがフェッチされながら、Vと示される修正された第2の鍵を生成またはそうでなければ取得するために、処理回路が、同じ完全ラウンドブロック暗号の第2のインスタンスを使用して第2の鍵(K2)の下でnビットのデータ単位インデックスを暗号化する。ステップ806において、依然としてフェッチしながら、処理回路が、白色化鍵を生成するために、Vをαjと乗算することによってブロックインデックスjをVに適用し、ここで、αはやはり定数値であり、jは解読されるべきデータのページ内でのブロックインデックスオフセットを表す。ステップ808において、処理回路は、次いで、白色化鍵を解読されるべきデータと排他的論理和をとることによって、(データをラウンド削減型解読暗号に入力する前に)白色化鍵をフェッチされた解読されるべきデータに適用する。ステップ810において、処理回路は、ラウンド削減型解読暗号を使用して、修正された第1の鍵の下で、白色化されたデータを解読し、ここにおいて、ラウンド削減型解読暗号は、やはり完全ブロック暗号に比べて削減された数のラウンドを採用する「分解された」暗号である。ステップ812において、処理回路が、解読された平文データを生成するために、白色化鍵をラウンド削減型解読暗号から出力されるデータと排他的論理和をとることによって、白色化鍵をラウンド削減型解読暗号の出力に再適用して、平文を取得し要求元に伝える。この点について、平文は、デバイスの構成要素による使用のために、SRAMなどのオンチップ記憶デバイスに記憶されてもよい。ストレージは、やはり一時的または過渡的であってもよい。
図9は、図8の方法に従って採用されてもよい、データを解読するためにK1鍵904およびK2鍵906と組み合わせてラウンド削減型解読暗号902を使用する例示的な手順900を示す。このモードでは、128ビットのページインデックス910をK2鍵906の下で暗号化するために、完全ラウンドブロック暗号908が使用される。やはりK2の修正されたバージョンと見なされてもよいブロック暗号908の出力Vは、912においてαj914と乗算されて入出力白色化値をもたらし、ここで、αは定数であり、jはブロックインデックス(解読されるべきデータのページ内でのオフセットであってもよい)を表す。同時に、同じページインデックス910も、完全ラウンド暗号908と同じ暗号の形態であり得る完全ラウンド暗号919を使用して鍵(K1)の下で暗号化される。これらの手順は、データが解読のためにフェッチされながら実行されてもよい。フェッチされた解読されるべきデータ916は、次いで、918において白色化値と排他的論理和がとられ、白色化されたデータとしてラウンド削減型解読暗号902に入力される。やはりK1の修正されたバージョンと見なされてもよいブロック暗号919の出力(K1')が、図示のように、ラウンド削減型解読暗号902のための鍵として採用される。すなわち、白色化されたデータが、次いで、ラウンド削減型解読暗号902によって、K1の修正されたバージョンの下で解読される。乗算関数912によって生成された入出力白色化値が、次いで、920においてラウンド削減型解読暗号からの出力データと排他的論理和がとられて最終平文922をもたらし、最終平文922は、たとえば、オンチップSRAMに記憶されてもよく、またはデバイス内でそうでなければ処理されてもよい。図9の例では、少なくとも3つのプロセスが並行に実行されてもよいこと、すなわち、K1を用いた暗号インスタンスが作動し、K2を用いた暗号インスタンスが作動し、暗号文がフェッチされることに留意されたい。このことは、読取りレイテンシを低減させる。
例示的なシステムまたは装置
図10は、図1〜図9の構成要素および方法が実装されてもよい全体的なシステムまたは装置1000を示す。本開示の様々な態様によれば、要素、または要素の任意の部分、または要素の任意の組合せは、図1のSoC処理回路などの1つまたは複数の処理回路1004を含む処理システム1014を用いて実装されてもよい。たとえば、装置1000は、モバイル通信システムのユーザ機器(UE)であってもよい。装置1000は、無線ネットワークコントローラ(RNC)とともに使用されてもよい。SoCに加えて、処理回路1004の例は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、ステートマシン、ゲート論理、ディスクリートハードウェア回路、および本開示全体にわたって説明する様々な機能を実行するように構成される他の適切なハードウェアを含む。すなわち、装置1000において利用されるような処理回路1004は、上述され図1〜図9に示されるプロセス(および、以下で説明する図13〜図16において要約されるもの)のうちの1つまたは複数を実施するために使用されてもよい。詳細には、処理回路1004は、修正された第1の鍵を生成またはそうでなければ取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、データ単位インデックスが、ラウンド削減型暗号化暗号によって暗号化されるべきデータに対応する、暗号化することと、ラウンド削減型暗号化暗号を使用して、修正された第1の鍵に基づいてデータを暗号化することと、暗号化されたデータを記憶デバイスに記憶することとを行うように構成されてもよい。処理回路1004は、修正された第1の鍵を生成またはそうでなければ取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、データ単位インデックスが、ラウンド削減型解読暗号によって解読されるべきデータに対応する、暗号化することと、ラウンド削減型解読暗号を使用して、修正された第1の鍵に基づいてデータを解読することと、解読されたデータを記憶デバイスに記憶することとを行うように構成されてもよい。
この例では、処理システム1014は、概してバス1002によって表されるバスアーキテクチャを用いて実装されてもよい。バス1002は、処理システム1014の特定の適用例および全体的な設計制約に応じて、任意の数の相互接続するバスおよびブリッジを含んでもよい。バス1002は、1つまたは複数の処理回路(概して、処理回路1004によって表される)、記憶デバイス1005、およびプロセッサ可読媒体(概して、非一時的プロセッサまたはコンピュータ可読媒体1006によって表される)を含む様々な回路を互いにリンクさせる。バス1002はまた、タイミングソース、周辺機器、電圧レギュレータ、および電力管理回路などの様々な他の回路をリンクさせてもよく、これらの回路は当技術分野でよく知られており、したがって、これ以上は説明されない。バスインターフェース1008は、バス1002とトランシーバ1010との間のインターフェースを提供する。トランシーバ1010は、伝送媒体を介して様々な他の装置と通信するための手段を備える。装置の性質に応じて、ユーザインターフェース1012(たとえば、キーパッド、ディスプレイ、スピーカー、マイクロフォン、ジョイスティック)がまた、設けられてもよい。
プロセッサまたは処理回路1004は、バス1002を管理すること、およびプロセッサ可読媒体1006に記憶されたソフトウェアの実行を含む一般的な処理の責任を担う。ソフトウェアは、処理回路1004によって実行されたとき、処理システム1014に、任意の特定の装置について本明細書で説明される様々な機能を実行させる。プロセッサ可読媒体1006はまた、ソフトウェアを実行するときに処理回路1004によって操作されるデータを記憶するために使用されてもよい。詳細には、プロセッサ可読記憶媒体1006は、処理回路1004によって実行されたとき、処理回路1004に、修正された第1の鍵を生成またはそうでなければ取得するために、第1のブロック暗号を使用して第1の鍵の下でデータ単位インデックスを暗号化することであって、データ単位インデックスが、ラウンド削減型暗号化暗号によって暗号化されるべきデータに対応する、暗号化することと、ラウンド削減型暗号化暗号を使用して、修正された第1の鍵の下でデータを暗号化することと、暗号化されたデータを記憶デバイスに記憶することとを行わせる、1つまたは複数の命令を有してもよい。プロセッサ可読記憶媒体1006はまた、処理回路1004によって実行されたとき、処理回路1004に、修正された第1の鍵を生成またはそうでなければ取得するために、第1のブロック暗号を使用して第1の鍵の下でデータ単位インデックスを暗号化することであって、データ単位インデックスが、ラウンド削減型解読暗号によって解読されるべきデータに対応する、暗号化することと、ラウンド削減型解読暗号を使用して、修正された第1の鍵の下でデータを解読することと、解読されたデータを記憶デバイスに記憶することとを行わせる、1つまたは複数の命令を有してもよい。
処理システムの中の1つまたは複数の処理回路1004は、ソフトウェアを実行してもよい。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語と呼ばれるにしても、または別の呼ばれ方をするにしても、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、機能などを意味すると広く解釈されるべきである。処理回路は、必要なタスクを実行してもよい。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの何らかの組合せを表してもよい。コードセグメントは、情報、データ、引数、パラメータ、もしくはメモリ内容を渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合されてもよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の適切な手段を介して渡されてもよく、転送されてもよく、または送信されてもよい。
ソフトウェアは、コンピュータ可読またはプロセッサ可読媒体1006上に常駐してもよい。プロセッサ可読媒体1006は、非一時的プロセッサ可読媒体であってもよい。非一時的プロセッサ可読媒体は、例として、磁気ストレージデバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光ディスク(たとえば、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、またはキードライブ)、RAM、ROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、ハードディスク、CD-ROM、ならびにコンピュータによってアクセスされ読み取られてもよいソフトウェアおよび/または命令を記憶するための任意の他の適切な媒体を含む。「機械可読媒体」、「コンピュータ可読媒体」、および/または「プロセッサ可読媒体」という用語は、限定はしないが、ポータブルもしくは固定ストレージデバイス、光ストレージデバイス、ならびに、命令および/またはデータを記憶、格納または搬送することが可能な様々な他の媒体などの非一時的媒体を含んでもよい。したがって、本明細書で説明する様々な方法は、「機械可読媒体」、「コンピュータ可読媒体」および/または「プロセッサ可読媒体」に記憶されてもよく、1つまたは複数の処理回路、機械および/またはデバイスによって実行されてもよい命令および/またはデータによって、完全にまたは部分的に実施されてもよい。プロセッサ可読媒体はまた、例として、搬送波、伝送線路、ならびに、コンピュータによってアクセスされ読み取られてもよいソフトウェアおよび/または命令を送信するための任意の他の適切な媒体を含んでもよい。プロセッサ可読媒体1006は、処理システム1014の中に存在してもよく、処理システム1014の外に存在してもよく、または処理システム1014を含む複数のエンティティにわたって分散されてもよい。プロセッサ可読媒体1006は、コンピュータプログラム製品で実施されてもよい。例として、コンピュータプログラム製品は、パッケージング材料の中のプロセッサ可読媒体を含んでもよい。当業者は、特定の適用例および全体的なシステムに課された設計制約に応じて、本開示全体にわたって提示する説明された機能を実施するための最良の方法を認識されよう。
図面に示された構成要素、ステップ、特徴、および/または機能のうちの1つまたは複数は、再配置されてもよく、かつ/または単一の構成要素、ステップ、特徴、または機能に組み合わされてもよく、あるいはいくつかの構成要素、ステップ、または機能で実施されてもよい。追加の要素、構成要素、ステップ、および/または機能も、説明された態様および特徴から逸脱することなく追加されてもよい。図面に示された装置、デバイス、および/または構成要素は、図示された方法、特徴、またはステップのうちの1つまたは複数を実行するように構成されてもよい。本明細書で説明したアルゴリズムはまた、効率的にソフトウェアで実施されてもよく、かつ/またはハードウェアに組み込まれてもよい。
本明細書で開示する例に関して説明する様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明する機能を実施するように設計されたそれらの任意の組合せで実装または実施されてもよい。汎用処理回路はマイクロプロセッサであってもよいが、代替として、処理回路は、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。処理回路はまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連係した1つもしくは複数のマイクロプロセッサ、または他の任意のそのような構成として実装されてもよい。
したがって、本開示の一態様では、図1および図10に示された処理回路100および/または1004は、図2、図3、図5、図6、図8、および/または図9(および/または、以下に説明する図13、図14、図15、および/または図16)で説明されるアルゴリズム、方法、および/またはステップを実行するように特に設計され、かつ/または配線接続された専用の処理回路(たとえば、ASIC)であってもよい。したがって、そのような専用の処理回路(たとえば、ASIC)は、図2、図3、図5、図6、図8、および/または図9(および/または、以下に説明する図13、図14、図15、および/または図16)で説明されるアルゴリズム、方法、および/またはステップを実行するための手段の一例であってもよい。プロセッサ可読記憶媒体は、専用の処理回路(たとえば、ASIC)によって実行されたとき、専用の処理回路に、本明細書で説明されるアルゴリズム、方法、および/またはステップを実行させる命令を記憶してもよい。
図11は、処理回路1004の選択された例示的な構成要素を示す。詳細には、図11の処理回路1004は、動的な修正された第1の鍵を生成またはそうでなければ取得するために、第1のブロック暗号(XTS完全ラウンド暗号1110などの)を使用して第1の鍵に基づいてデータ単位インデックスを暗号化するように作用するデータ単位インデックス暗号化構成要素1100を含み、データ単位インデックスは、ラウンド削減型暗号によって暗号化または解読されるべきデータに対応する。データ単位インデックス暗号化構成要素1100は、修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいてデータ単位インデックスを暗号化するようにさらに作用する。処理回路1004はまた、ラウンド削減型暗号化暗号1112を使用して、動的な修正された第1の鍵に基づいてデータを暗号化するように作用するデータ単位暗号化構成要素1102を含む。処理回路1004はまた、ラウンド削減型解読暗号1113を使用して、動的な修正された第1の鍵に基づいて、前に暗号化されたデータを解読するように作用するデータ単位解読構成要素1103を含む。処理回路1004は、暗号化されているデータを記憶デバイスに記憶するように、かつ/または解読されるべきデータを記憶デバイス1005などの記憶デバイスからフェッチするように作用するデータ記憶および取出しコントローラ1104をさらに含む。処理回路1004は、データをそれぞれのラウンド削減型暗号に適用し、次いで、白色化鍵をラウンド削減型暗号の出力に再適用する前に、白色化鍵を暗号化または解読されるべきデータに適用するように作用する白色化構成要素1114などの追加の構成要素を含んでもよい。
図12は、プロセッサ可読またはコンピュータ可読媒体1006の、選択された例示的な命令構成要素を示す。詳細には、図12のプロセッサ可読媒体1006は、図8の処理回路によって実行されたとき、処理回路に、動的な修正された第1の鍵を生成またはそうでなければ取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化させるデータ単位インデックス暗号化命令1200を含み、データ単位インデックスは、ラウンド削減型暗号化暗号によって暗号化されるべきデータに対応する。プロセッサ可読媒体1006はまた、ラウンド削減型暗号化暗号を使用して、動的な修正された第1の鍵に基づいてデータを暗号化するように作用するデータ単位暗号化命令1202を含む。プロセッサ可読媒体1006はまた、ラウンド削減型解読暗号を使用して、動的な修正された第1の鍵に基づいて、前に暗号化されたデータを解読するように作用するデータ単位解読命令1203を含む。プロセッサ可読媒体1006は、暗号化されているデータを記憶デバイスに記憶するように、かつ/または解読されるべきデータを記憶デバイス1205などの記憶デバイスからフェッチするように作用するデータ記憶および取出し命令1204をさらに含む。プロセッサ可読媒体1006は、XTS完全ラウンド暗号命令1210、ラウンド削減型暗号化暗号命令1212、およびラウンド削減型解読暗号命令1213、ならびにデータをそれぞれのラウンド削減型暗号に適用し、次いで、白色化鍵をラウンド削減型暗号の出力に再適用する前に、白色化鍵を暗号化/解読されるべきデータに適用するように作用する白色化命令1214などの、追加の命令を含んでもよい。他の命令が同様に提供されてもよく、図12の例示は決して網羅的でない。
図13は、たとえば、図11の処理回路または他の適切に装備されたデバイスによって実行されてもよい、ラウンド削減型暗号化暗号とともに使用するための暗号化方法1300を要約する。簡単に言えば、ステップ1302において、処理回路は、修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化し、データ単位インデックスは、ラウンド削減型暗号化暗号によって暗号化されるべきデータに対応し、すなわち、データ単位インデックスが、暗号化されるべきデータを含むメモリストレージロケーションを識別する。ステップ1304において、処理回路は、ラウンド削減型暗号化暗号を使用して、修正された第1の鍵に基づいてデータを暗号化する。ステップ1306において、処理回路は、暗号化されたデータを記憶デバイスに記憶する。
図14は、同様に、たとえば、図11の処理回路または他の適切に装備されたデバイスによって実行されてもよい、ラウンド削減型暗号化暗号とともに使用するためのさらなる手順1400を要約する。簡単に言えば、ステップ1402において、処理回路は、修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいてデータ単位インデックスを暗号化する。ステップ1404において、処理回路は、白色化鍵を取得するために、ブロックインデックスを修正された第2の鍵に適用する。ステップ1406において、処理回路は、データをラウンド削減型暗号化暗号に適用する前に、白色化鍵を暗号化されるべきデータに適用する。ステップ1408において、処理回路は、たとえば、暗号文を生成するために、白色化鍵をラウンド削減型暗号化暗号の出力に再適用する。
図15は、同様に、たとえば、図11の処理回路または他の適切に装備されたデバイスによって実行されてもよい、ラウンド削減型解読暗号とともに使用するための解読方法1500を要約する。簡単に言えば、ステップ1502において、処理回路は、修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化し、データ単位インデックスは、ラウンド削減型解読暗号によって解読されるべきデータに対応し、すなわち、データ単位インデックスが、解読されるべきデータを含むメモリストレージロケーションを識別する。ステップ1504において、処理回路は、ラウンド削減型解読暗号を使用して、修正された第1の鍵に基づいてデータを解読する。ステップ1506において、処理回路は、解読されたデータを記憶デバイスに記憶する。
図16は、同様に、たとえば、図11の処理回路または他の適切に装備されたデバイスによって実行されてもよい、ラウンド削減型解読暗号とともに使用するためのさらなる手順1600を要約する。簡単に言えば、ステップ1602において、処理回路は、修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいてデータ単位インデックスを暗号化する。ステップ1604において、処理回路は、白色化鍵を取得するために、ブロックインデックスを修正された第2の鍵に適用する。ステップ1606において、処理回路は、データをラウンド削減型解読暗号に適用する前に、白色化鍵を解読されるべきデータに適用する。ステップ1608において、処理回路は、たとえば、平文を生成するために、白色化鍵をラウンド削減型解読暗号の出力に再適用する。
また、本開示の態様が、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして説明される場合があることに留意されたい。フローチャートは、動作を順次プロセスとして説明する場合があるが、動作の多くは並行または同時に実施することができる。加えて、動作の順序は入れ替えられてもよい。プロセスは、その動作が完了したとき、終了する。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに相当する場合がある。プロセスが関数に相当するとき、その終了は、呼出し関数またはメイン関数への関数のリターンに相当する。
本明細書で開示する態様に関連して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実施されてもよいことを、当業者であればさらに理解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上記では概してそれらの機能に関して説明された。そのような機能が、ハードウェアとして実現されるのか、それともソフトウェアとして実現されるのかは、特定の適用例およびシステム全体に課された設計制約によって決まる。
本明細書で説明した様々な特徴は、様々なシステムで実施されてもよい。本開示の前述の態様が例にすぎず、限定的なものと解釈すべきではないことに留意されたい。本開示の態様の説明は、例示であることを意図しており、特許請求の範囲を限定することを意図していない。したがって、本教示は、他のタイプの装置に容易に適用することが可能であり、多くの代替形態、変更形態、および変形形態が当業者には明らかであろう。
100 システムオンチッププロセッサデバイス
110 アプリケーションプロセッサ
112 マルチコアCPU
118 ブート読取り専用メモリ
120 周辺サブシステム
122 DSP
124 ハードウェアおよびソフトウェア構成要素
126 無線周波数構成要素
128 周辺ブートROM
130 内部共有HWリソース
132 内部共有ストレージ
140 外部共有HWリソース
142 外部共有記憶デバイス
144 永久的データストレージ
150 暗号化/解読構成要素
202 完全ラウンド暗号化ブロック暗号
204 K1
206 K2
208 完全ラウンドブロック暗号
210 ページインデックス
212 XOR関数
216 暗号化されるべきデータ
222 最終暗号文
302 ラウンド削減型暗号化暗号
304 K1
306 K2
308 完全ラウンドブロック暗号
310 ページインデックス
316 暗号化されるべきデータ
322 最終暗号文
602 ラウンド削減型ブロック暗号化暗号
604 K1
606 K2
608 完全ラウンドブロック暗号
610 ページインデックス
612 乗算関数
616 暗号化されるべきデータ
619 完全ラウンド暗号
622 最終暗号文
700 記憶デバイス
704 データ単位
706 データ単位インデックス
902 ラウンド削減型解読暗号
904 K1
906 K2
908 完全ラウンドブロック暗号
910 ページインデックス
912 乗算関数
916 解読されるべきデータ
919 完全ラウンド暗号
922 最終平文
1000 システムまたは装置
1002 バス
1004 処理回路
1005 記憶デバイス
1006 非一時的プロセッサまたはコンピュータ可読媒体
1008 バスインターフェース
1010 トランシーバ
1012 ユーザインターフェース
1014 処理システム
1100 データ単位インデックス暗号化構成要素
1102 データ単位暗号化構成要素
1103 データ単位解読構成要素
1104 データ記憶および取出しコントローラ
1110 XTS完全ラウンド暗号
1112 ラウンド削減型暗号化暗号
1113 ラウンド削減型解読暗号
1114 白色化構成要素
1200 データ単位インデックス暗号化命令
1202 データ単位暗号化命令
1203 データ単位解読命令
1204 データ記憶および取出し命令
1205 記憶デバイス
1210 XTS完全ラウンド暗号命令
1212 ラウンド削減型暗号化暗号命令
1213 ラウンド削減型解読暗号命令
1214 白色化命令

Claims (32)

  1. ラウンド削減型暗号化ブロック暗号処理デバイスとともに使用するための、データを暗号化するための方法であって、
    修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化するステップであって、前記データ単位インデックスが、前記ラウンド削減型暗号化ブロック暗号処理デバイスによって暗号化されるべきデータのページに対応するnビットのインデックスである、暗号化するステップと、
    修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化するステップと、
    前記データを修正するために、前記修正された第2の鍵を前記データに適用するステップと、
    暗号化されたデータを取得するために、前記ラウンド削減型暗号化ブロック暗号処理デバイスを使用して、前記修正された第1の鍵に基づいて前記修正されたデータを暗号化するステップと、
    前記暗号化されたデータを電子的記憶デバイスに記憶するステップと
    を備える、方法。
  2. 前記データを修正するために前記修正された第2の鍵を前記データに適用するステップが、
    白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用するステップと、
    前記データを前記ラウンド削減型暗号化ブロック暗号処理デバイスに適用する前に、暗号化されるべき前記データに前記白色化鍵を適用するステップとをさらに備え、
    前記修正されたデータを暗号化するステップが、前記暗号化されたデータを取得するために、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスの出力に再適用するステップをさらに備える、
    請求項1に記載の方法。
  3. 前記第1および第2のブロック暗号が完全ブロック暗号である、請求項1に記載の方法。
  4. 前記データ単位インデックスが、前記第1および第2のブロック暗号に適用され、nが前記第1および第2のブロック暗号のブロックサイズである、請求項1に記載の方法。
  5. 前記白色化鍵を取得するために前記ブロックインデックスを前記修正された第2の鍵に適用するステップが、前記修正された第2の鍵をαjと乗算するステップを備え、αが定数であり、jが前記ブロックインデックスである、請求項2に記載の方法。
  6. 前記データを前記ラウンド削減型暗号化ブロック暗号処理デバイスに適用する前に前記白色化鍵を前記データに適用するステップが、前記白色化鍵を前記データと排他的論理和をとるステップを備える、請求項5に記載の方法。
  7. 前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスの前記出力に再適用するステップが、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスから出力されるデータと排他的論理和をとるステップを備える、請求項6に記載の方法。
  8. 前記データ単位インデックスがページ番号に対応する、請求項1に記載の方法。
  9. 前記ラウンド削減型暗号化ブロック暗号処理デバイスが、オフチップ記憶デバイスに結合されるシステムオンチップデバイス内に実装されるとともに、暗号化されたデータを前記オフチップ記憶デバイスに記憶するステップをさらに備える、請求項1に記載の方法。
  10. データを記憶するための電子的記憶デバイスと、
    前記記憶デバイスに結合される処理回路であって、
    修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、前記データ単位インデックスが、ラウンド削減型暗号化ブロック暗号処理デバイスによって暗号化されるべきデータのページに対応するnビットのインデックスである、暗号化することと、
    修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化することと、
    前記データを修正するために、前記修正された第2の鍵を前記データに適用することと、
    暗号化されたデータを取得するために、前記ラウンド削減型暗号化ブロック暗号処理デバイスを使用して、前記修正された第1の鍵に基づいて前記修正されたデータを暗号化することと、
    前記暗号化されたデータを前記記憶デバイスに記憶することと
    を行うように構成される処理回路と
    を備える、デバイス。
  11. 前記処理回路が、
    白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用し、
    前記データを前記ラウンド削減型暗号化暗号に適用する前に、暗号化されるべき前記データに前記白色化鍵を適用する
    ことによって、前記データを修正するために前記修正された第2の鍵を前記データに適用するように構成され、
    前記処理回路が、前記暗号化されたデータを取得するために、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスの出力に再適用するようにさらに構成される、請求項10に記載のデバイス。
  12. 前記処理回路によって使用される前記第1および第2のブロック暗号が完全ブロック暗号である、請求項10に記載のデバイス。
  13. 前記処理回路によって使用される前記データ単位インデックスが、前記第1および第2のブロック暗号に適用され、nが前記第1および第2のブロック暗号のブロックサイズである、請求項10に記載のデバイス。
  14. 前記処理回路が、前記白色化鍵を取得するために、前記修正された第2の鍵をαjと乗算することによって、前記ブロックインデックスを前記修正された第2の鍵に適用するようにさらに構成され、αが定数であり、jが前記ブロックインデックスである、請求項11に記載のデバイス。
  15. 前記処理回路が、前記データを前記ラウンド削減型暗号化ブロック暗号処理デバイスに適用する前に、前記白色化鍵を前記データと排他的論理和をとることによって、前記白色化鍵を前記データに適用するようにさらに構成される、請求項14に記載のデバイス。
  16. 前記処理回路が、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスから出力されるデータと排他的論理和をとることによって、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスの前記出力に再適用するようにさらに構成される、請求項15に記載のデバイス。
  17. 前記処理回路によって使用される前記データ単位インデックスがページ番号である、請求項10に記載のデバイス。
  18. 前記処理回路が、オフチップ記憶デバイスに結合されるシステムオンチップデバイスの構成要素であり、前記処理回路が、暗号化されたデータを前記オフチップ記憶デバイスに記憶するようにさらに構成される、請求項10に記載のデバイス。
  19. ラウンド削減型解読ブロック暗号処理デバイスとともに使用するための、データを解読するための方法であって、
    修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化するステップであって、前記データ単位インデックスが、前記ラウンド削減型解読ブロック暗号処理デバイスによって解読されるべきデータのページに対応するnビットのインデックスである、暗号化するステップと、
    修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化するステップと、
    前記データを修正するために、前記修正された第2の鍵を前記データに適用するステップと、
    解読されたデータを取得するために、前記ラウンド削減型解読ブロック暗号処理デバイスを使用して、前記修正された第1の鍵に基づいて前記修正されたデータを解読するステップと、
    前記解読されたデータを電子的記憶デバイスに記憶するステップと
    を備える、方法。
  20. 前記データを修正するために、前記修正された第2の鍵を前記データに適用するステップが、
    白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用するステップと、
    前記データを前記ラウンド削減型解読ブロック暗号処理デバイスに適用する前に、解読されるべき前記データに前記白色化鍵を適用するステップとをさらに備え、
    前記修正されたデータを解読するステップが、前記解読されたデータを取得するために、前記白色化鍵を前記ラウンド削減型解読暗号処理デバイスの出力に再適用するステップをさらに備える、
    請求項19に記載の方法。
  21. 前記第1および第2のブロック暗号が完全ブロック暗号である、請求項19に記載の方法。
  22. 解読されるべきデータを記憶デバイスから取得するステップをさらに備え、前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化するステップと、前記修正された第2の鍵を取得するために前記第2のブロック暗号を使用して前記第2の鍵に基づいて前記データ単位インデックスを暗号化するステップとの両方が、前記ラウンド削減型解読ブロック暗号処理デバイスによって解読されるべき前記データを取得するための動作と並行に実行される、請求項19に記載の方法。
  23. データを記憶するための電子的記憶デバイスと、
    前記記憶デバイスに結合される処理回路であって、
    修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、前記データ単位インデックスが、ラウンド削減型解読ブロック暗号処理デバイスによって解読されるべきデータのページに対応するnビットのインデックスである、暗号化することと、
    修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化することと、
    前記データを修正するために、前記修正された第2の鍵を前記データに適用することと、
    解読されたデータを取得するために、前記ラウンド削減型解読ブロック暗号処理デバイスを使用して、前記修正された第1の鍵に基づいて前記修正されたデータを解読することと、
    前記解読されたデータを記憶デバイスに記憶することと
    を行うように構成される処理回路と
    を備える、デバイス。
  24. 前記処理回路が、
    白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用し、
    前記データを前記ラウンド削減型解読ブロック暗号処理デバイスに適用する前に、解読されるべき前記データに前記白色化鍵を適用する
    ことによって、前記データを修正するために前記修正された第2の鍵を前記データに適用するように構成され、
    前記処理回路が、前記解読されたデータを取得するために、前記白色化鍵を前記ラウンド削減型解読ブロック暗号処理デバイスの出力に再適用するようにさらに構成される、
    請求項23に記載のデバイス。
  25. 前記処理回路によって使用される前記第1および第2のブロック暗号が完全ブロック暗号である、請求項23に記載のデバイス。
  26. 前記処理回路が、解読されるべきデータを記憶デバイスから取得するようにさらに構成され、前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化することと、前記修正された第2の鍵を取得するために前記第2のブロック暗号を使用して前記第2の鍵に基づいて前記データ単位インデックスを暗号化することとの両方が、前記ラウンド削減型解読ブロック暗号処理デバイスによって解読されるべき前記データを取得するための動作と並行に実行される、請求項23に記載のデバイス。
  27. 前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化するステップと、前記修正された第2の鍵を取得するために前記第2のブロック暗号を使用して前記第2の鍵に基づいて前記データ単位インデックスを暗号化するステップとが、並行に実行される動作である、請求項1に記載の方法。
  28. 並行に実行される前記動作が、前記第1の鍵の下で前記データ単位インデックスを暗号化するステップであって、nが前記ラウンド削減型解読ブロック暗号処理デバイスの前記ブロックのサイズであるステップと、前記修正された第2の鍵を取得するために、前記第2の鍵の下で前記nビットのデータ単位インデックスを暗号化するステップとをさらに備える、請求項27に記載の方法。
  29. 前記処理回路が、並行動作で、前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化することと、前記修正された第2の鍵を取得するために前記第2のブロック暗号を使用して前記第2の鍵に基づいて前記データ単位インデックスを暗号化することとを行うようにさらに構成される、請求項10に記載のデバイス。
  30. 前記処理回路によって並行に実行される前記動作が、前記第1の鍵の下で前記データ単位インデックスを暗号化することであって、nが前記ラウンド削減型解読ブロック暗号処理デバイスの前記ブロックのサイズである、暗号化することと、前記修正された第2の鍵を取得するために、前記第2の鍵の下で前記nビットのデータ単位インデックスを暗号化することとをさらに備える、請求項29に記載のデバイス。
  31. 解読されるべき前記データを取得するステップが、前記データを前記記憶デバイスからフェッチするステップを備え、前記データがフェッチされながら、前記データ単位インデックスが前記第1の鍵の下で暗号化され、nが前記ラウンド削減型解読ブロック暗号処理デバイスの前記ブロックのサイズであり、前記修正された第2の鍵を取得するために、前記nビットのデータ単位インデックスが前記第2の鍵の下で暗号化され、白色化鍵を生成するために、ブロックインデックスが前記修正された第2の鍵に適用され、前記ブロックインデックスが、解読されるべきデータのページ内でのオフセットである、請求項22に記載の方法。
  32. 前記処理回路が、前記データを前記記憶デバイスからフェッチすることによって、解読されるべき前記データを取得するようにさらに構成され、前記データがフェッチされながら、前記データ単位インデックスが前記処理回路によって前記第1の鍵の下で暗号化され、nが前記ラウンド削減型解読ブロック暗号処理デバイスの前記ブロックのサイズであり、前記修正された第2の鍵を取得するために、前記nビットのデータ単位インデックスが前記処理回路によって前記第2の鍵の下で暗号化され、白色化鍵を生成するために、ブロックインデックスが前記修正された第2の鍵に適用され、前記ブロックインデックスが、解読されるべきデータのページ内でのオフセットである、請求項26に記載のデバイス。
JP2016555574A 2014-03-11 2015-03-02 ラウンド削減型暗号を採用するxts暗号化システムとともに使用するための動的暗号化鍵 Expired - Fee Related JP6109441B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/205,230 US9405919B2 (en) 2014-03-11 2014-03-11 Dynamic encryption keys for use with XTS encryption systems employing reduced-round ciphers
US14/205,230 2014-03-11
PCT/US2015/018357 WO2015138179A1 (en) 2014-03-11 2015-03-02 Dynamic encryption keys for use with xts encryption systems employing reduced-round ciphers

Publications (2)

Publication Number Publication Date
JP6109441B1 true JP6109441B1 (ja) 2017-04-05
JP2017511900A JP2017511900A (ja) 2017-04-27

Family

ID=52684702

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016555574A Expired - Fee Related JP6109441B1 (ja) 2014-03-11 2015-03-02 ラウンド削減型暗号を採用するxts暗号化システムとともに使用するための動的暗号化鍵

Country Status (7)

Country Link
US (1) US9405919B2 (ja)
EP (1) EP3117558A1 (ja)
JP (1) JP6109441B1 (ja)
KR (1) KR101767655B1 (ja)
CN (1) CN106105089B (ja)
TW (1) TWI570590B (ja)
WO (1) WO2015138179A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102376506B1 (ko) * 2014-10-20 2022-03-18 삼성전자주식회사 암복호화기, 암복호화기를 포함하는 전자 장치 및 암복호화기의 동작 방법
US10346318B2 (en) * 2016-09-13 2019-07-09 Intel Corporation Multi-stage memory integrity method and apparatus
US11349668B2 (en) 2017-02-21 2022-05-31 Mitsubishi Electric Corporation Encryption device and decryption device
WO2018182666A1 (en) * 2017-03-31 2018-10-04 Intel Corporation Gate for a transistor
US10298553B2 (en) 2017-03-31 2019-05-21 Sprint Communications Company L.P. Hardware trusted data communications over system-on-chip (SOC) architectures
US10608822B2 (en) * 2017-04-26 2020-03-31 Nxp B.V. Efficient calculation of message authentication codes for related data
US11630920B2 (en) * 2018-06-29 2023-04-18 Intel Corporation Memory tagging for side-channel defense, memory safety, and sandboxing
US11349639B2 (en) 2018-12-28 2022-05-31 ePIC Blockchain Technologies Inc. Circuit and method for overcoming memory bottleneck of ASIC-resistant cryptographic algorithms
US11574079B2 (en) * 2021-05-27 2023-02-07 Nuvoton Technology Corporation Multi-stage provisioning of secret data
US20230094171A1 (en) * 2021-09-25 2023-03-30 Intel Corporation Memory assisted incline encryption/decryption

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3658004B2 (ja) * 1993-07-20 2005-06-08 キヤノン株式会社 通信システム
US6052466A (en) * 1997-08-28 2000-04-18 Telefonaktiebolaget L M Ericsson (Publ) Encryption of data packets using a sequence of private keys generated from a public key exchange
TW375721B (en) * 1998-06-17 1999-12-01 Ind Tech Res Inst DES chip processor capable of executing data encryption standard (DES) operation
JP2005505069A (ja) * 2001-10-03 2005-02-17 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ メモリ暗号化
US20060195402A1 (en) * 2002-02-27 2006-08-31 Imagineer Software, Inc. Secure data transmission using undiscoverable or black data
WO2003101020A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine
US7472285B2 (en) 2003-06-25 2008-12-30 Intel Corporation Apparatus and method for memory encryption with reduced decryption latency
US7321659B2 (en) * 2003-10-01 2008-01-22 International Business Machines Corporation Simple universal hash for plaintext aware encryption
JP4884976B2 (ja) * 2003-12-11 2012-02-29 イルデト・コーポレート・ビー・ヴイ 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム
US7697681B2 (en) * 2004-02-06 2010-04-13 Nortel Networks Limited Parallelizable integrity-aware encryption technique
US8155306B2 (en) 2004-12-09 2012-04-10 Intel Corporation Method and apparatus for increasing the speed of cryptographic processing
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
US8189770B2 (en) * 2006-08-10 2012-05-29 Nec Corporation Tweakable block encryption apparatus, method, and program
US8036377B1 (en) * 2006-12-12 2011-10-11 Marvell International Ltd. Method and apparatus of high speed encryption and decryption
US7890565B2 (en) * 2007-04-30 2011-02-15 Lsi Corporation Efficient hardware implementation of tweakable block cipher
EP2186250B1 (en) 2007-08-31 2019-03-27 IP Reservoir, LLC Method and apparatus for hardware-accelerated encryption/decryption
US8121294B2 (en) * 2008-10-21 2012-02-21 Apple Inc. System and method for a derivation function for key per page
US9336160B2 (en) * 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
JP5272751B2 (ja) 2009-01-26 2013-08-28 富士通セミコンダクター株式会社 プロセッサ
US20120314857A1 (en) 2010-02-24 2012-12-13 Kazuhiko Minematsu Block encryption device, block decryption device, block encryption method, block decryption method and program
JP2012009928A (ja) 2010-06-22 2012-01-12 Toshiba Corp 暗号演算装置、記憶装置および暗号演算方法
US8966279B2 (en) 2010-12-21 2015-02-24 Apple Inc. Securing the implementation of a cryptographic process using key expansion
US8966285B2 (en) * 2011-01-10 2015-02-24 Apple Inc. Securing implementation of a cryptographic process having fixed or dynamic keys
JP5167374B2 (ja) * 2011-01-21 2013-03-21 シャープ株式会社 データ暗号化装置、及び、メモリカード
TWI475879B (zh) * 2011-12-06 2015-03-01 Ind Tech Res Inst 數位版權管理物件之加密/解密方法、數位版權管理物件加密/解密裝置
CN102779251B (zh) * 2012-06-29 2016-04-13 鸿富锦精密工业(深圳)有限公司 电子设备及其加密/解密方法

Also Published As

Publication number Publication date
WO2015138179A1 (en) 2015-09-17
EP3117558A1 (en) 2017-01-18
CN106105089A (zh) 2016-11-09
KR20160122180A (ko) 2016-10-21
TW201546648A (zh) 2015-12-16
KR101767655B1 (ko) 2017-08-11
US20150261965A1 (en) 2015-09-17
US9405919B2 (en) 2016-08-02
JP2017511900A (ja) 2017-04-27
TWI570590B (zh) 2017-02-11
CN106105089B (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
JP6109441B1 (ja) ラウンド削減型暗号を採用するxts暗号化システムとともに使用するための動的暗号化鍵
US11088846B2 (en) Key rotating trees with split counters for efficient hardware replay protection
CN109564553B (zh) 多阶段存储器完整性方法和装置
US10044703B2 (en) User device performing password based authentication and password registration and authentication methods thereof
US8036379B2 (en) Cryptographic processing
US10027640B2 (en) Secure data re-encryption
US20120260106A1 (en) System and method for binary layout randomization
JP2016517241A (ja) ストレージデバイスによって支援されるインライン暗号化および暗号化解除
JP6320558B2 (ja) メッセージ認証コードタグを用いたシステムとともに使用するためのロールバック攻撃からのデータの完全性の保護
US11239997B2 (en) Techniques for cipher system conversion
JP2012212138A (ja) 暗号化プログラム、復号化プログラム、暗号化方法、復号化方法、システムおよびコンテンツの生成方法
US20210006391A1 (en) Data processing method, circuit, terminal device and storage medium
Alomari et al. A framework for GPU-accelerated AES-XTS encryption in mobile devices
US20150212951A1 (en) Low-latency, low-overhead hybrid encryption scheme
US20200076591A1 (en) Systems and Methods for Automated Generation and Update of Cipher Parameters
WO2019184741A1 (zh) 应用程序信息的存储、处理方法及装置
KR20180059217A (ko) 메모리 데이터 보안 처리 장치 및 방법
US20220014381A1 (en) Message authentication code (mac) generation for live migration of encrypted virtual machiness
KR20150105405A (ko) 컴퓨팅 가능하고, 대형이며, 가변적이며 안전한 치환 박스를 위한 방법 및 장치
JP2018517921A (ja) ファイルセグメントを並列に解読するための装置および方法
WO2011096073A1 (ja) メモリ管理方法
Gleeson et al. GPU Encrypt: AES Encryption on Mobile Devices
JP2020145656A (ja) 情報処理装置、情報処理方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161003

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161003

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161003

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170307

R150 Certificate of patent or registration of utility model

Ref document number: 6109441

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees