(57)【要約】  1つの特徴は、データを暗号化してデータ秘密性を改善することに関する。一態様では、XTS暗号化の修正された形態が、ラウンド削減型ブロック暗号とともに使用するために提供される。ラウンド削減型暗号に適用するために修正された秘密鍵を生成またはそうでなければ取得するために、ラウンド削減型暗号に適用されるべきデータのデータ単位インデックスが、秘密鍵の下で暗号化される。すなわち、ラウンド削減型暗号によって暗号化されるべきデータは、静的な鍵の下で暗号化されないが、代わりに、データのインデックスに従って変化する動的な鍵の下で暗号化される。もし攻撃者が暗号によって暗号化されたデータを分析することによって、ラウンド削減型暗号に適用される鍵の値を導出できれば、攻撃者は、全アドレス空間に適用されるグローバルで静的な鍵ではなく、ある特定のデータ単位インデックスに対応する動的な鍵だけを取得することになる。解読手順もまた説明される。
2017511900.tif 000002
【特許請求の範囲】
【請求項１】
ラウンド削減型暗号化暗号とともに使用するための、データを暗号化するための方法であって、
修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化するステップであって、前記データ単位インデックスが、前記ラウンド削減型暗号化暗号によって暗号化されるべきデータに対応するステップと、
前記ラウンド削減型暗号化暗号を使用して、前記修正された第1の鍵に基づいて前記データを暗号化するステップと、
前記暗号化されたデータを記憶デバイスに記憶するステップと
を備える、方法。
【請求項２】
修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化するステップと、
白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用するステップと、
前記データを前記ラウンド削減型暗号化暗号に適用する前に、暗号化されるべき前記データに前記白色化鍵を適用するステップと、
前記白色化鍵を前記ラウンド削減型暗号化暗号の出力に再適用するステップと
をさらに備える、請求項1に記載の方法。
【請求項３】
前記第1および第2のブロック暗号が完全ブロック暗号である、請求項2に記載の方法。
【請求項４】
前記第1および第2のブロック暗号が、同じ暗号の異なるインスタンスである、請求項3に記載の方法。
【請求項５】
前記データ単位インデックスが、前記第1および第2のブロック暗号に適用されるnビットのパラメータの形態であり、nが前記第1および第2のブロック暗号のブロックサイズである、請求項2に記載の方法。
【請求項６】
前記白色化鍵を取得するために前記ブロックインデックスを前記修正された第2の鍵に適用するステップが、前記修正された第2の鍵をαjと乗算するステップを備え、αが定数であり、jがブロックインデックスである、請求項2に記載の方法。
【請求項７】
前記データを前記ラウンド削減型暗号化暗号に適用する前に前記白色化鍵を前記データに適用するステップが、前記白色化鍵を前記データと排他的論理和をとるステップを備える、請求項6に記載の方法。
【請求項８】
前記白色化鍵を前記ラウンド削減型暗号化暗号の前記出力に再適用するステップが、前記白色化鍵を前記ラウンド削減型暗号化暗号から出力されるデータと排他的論理和をとるステップを備える、請求項7に記載の方法。
【請求項９】
前記データ単位インデックスがページ番号である、請求項1に記載の方法。
【請求項１０】
前記ラウンド削減型暗号化暗号が、オフチップ記憶デバイスに結合されるシステムオンチップデバイス内に実装されるとともに、暗号化されたデータを前記オフチップ記憶デバイスに記憶するステップをさらに備える、請求項1に記載の方法。
【請求項１１】
データを記憶するための記憶デバイスと、
前記記憶デバイスに結合される処理回路であって、
修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、前記データ単位インデックスが、ラウンド削減型暗号化暗号によって暗号化されるべきデータに対応する、暗号化することと、
前記ラウンド削減型暗号化暗号を使用して、前記修正された第1の鍵に基づいて前記データを暗号化することと、
前記暗号化されたデータを前記記憶デバイスに記憶することと
を行うように構成される処理回路と
を備える、デバイス。
【請求項１２】
前記処理回路が、
修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化することと、
白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用することと、
前記データを前記ラウンド削減型暗号化暗号に適用する前に、暗号化されるべき前記データに前記白色化鍵を適用することと、
前記白色化鍵を前記ラウンド削減型暗号化暗号の出力に再適用することとを行うようにさらに構成される、請求項11に記載のデバイス。
【請求項１３】
前記処理回路によって使用される前記第1および第2のブロック暗号が完全ブロック暗号である、請求項12に記載のデバイス。
【請求項１４】
前記処理回路によって使用される前記第1および第2のブロック暗号が、同じ暗号の異なるインスタンスである、請求項13に記載のデバイス。
【請求項１５】
前記処理回路によって使用される前記データ単位インデックスが、前記第1および第2のブロック暗号に適用されるnビットのパラメータの形態であり、nが前記第1および第2のブロック暗号のブロックサイズである、請求項12に記載のデバイス。
【請求項１６】
前記処理回路が、前記白色化鍵を取得するために、前記修正された第2の鍵をαjと乗算することによって、前記ブロックインデックスを前記修正された第2の鍵に適用するようにさらに構成され、αが定数であり、jがブロックインデックスである、請求項12に記載のデバイス。
【請求項１７】
前記処理回路が、前記データを前記ラウンド削減型暗号化暗号に適用する前に、前記白色化鍵を前記データと排他的論理和をとることによって、前記白色化鍵を前記データに適用するようにさらに構成される、請求項16に記載のデバイス。
【請求項１８】
前記処理回路が、前記白色化鍵を前記ラウンド削減型暗号化暗号から出力されるデータと排他的論理和をとることによって、前記白色化鍵を前記ラウンド削減型暗号化暗号の前記出力に再適用するようにさらに構成される、請求項17に記載のデバイス。
【請求項１９】
前記処理回路によって使用される前記データ単位インデックスがページ番号である、請求項11に記載のデバイス。
【請求項２０】
前記処理回路が、オフチップ記憶デバイスに結合されるシステムオンチップデバイスの構成要素であり、前記処理回路が、暗号化されたデータを前記オフチップ記憶デバイスに記憶するようにさらに構成される、請求項11に記載のデバイス。
【請求項２１】
ラウンド削減型解読暗号とともに使用するための、データを解読するための方法であって、
修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化するステップであって、前記データ単位インデックスが、前記ラウンド削減型解読暗号によって解読されるべきデータに対応するステップと、
前記ラウンド削減型解読暗号を使用して、前記修正された第1の鍵に基づいて前記データを解読するステップと、
前記解読されたデータを記憶デバイスに記憶するステップと
を備える、方法。
【請求項２２】
修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化するステップと、
白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用するステップと、
前記データを前記ラウンド削減型解読暗号に適用する前に、解読されるべき前記データに前記白色化鍵を適用するステップと、
前記白色化鍵を前記ラウンド削減型解読暗号の出力に再適用するステップと
をさらに備える、請求項21に記載の方法。
【請求項２３】
前記第1および第2のブロック暗号が完全ブロック暗号である、請求項22に記載の方法。
【請求項２４】
前記データ単位インデックスがページ番号である、請求項21に記載の方法。
【請求項２５】
解読されるべきデータを記憶デバイスから取得するステップをさらに備え、前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化するステップが、前記ラウンド削減型解読暗号によって解読されるべき前記データを取得するための動作と並行に実行される、請求項21に記載の方法。
【請求項２６】
データを記憶するための記憶デバイスと、
前記記憶デバイスに結合される処理回路あって、
修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、前記データ単位インデックスが、ラウンド削減型解読暗号によって解読されるべきデータに対応する、暗号化することと、
前記ラウンド削減型解読暗号を使用して、前記修正された第1の鍵に基づいて前記データを解読することと、
前記解読されたデータを記憶デバイスに記憶することと
を行うように構成される処理回路と
を備える、デバイス。
【請求項２７】
前記処理回路が、
修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化し、
白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用し、
前記データを前記ラウンド削減型解読暗号に適用する前に、解読されるべき前記データに前記白色化鍵を適用し、
前記白色化鍵を前記ラウンド削減型解読暗号の出力に再適用するようにさらに構成される、
請求項26に記載のデバイス。
【請求項２８】
前記処理回路によって使用される前記第1および第2のブロック暗号が完全ブロック暗号である、請求項27に記載のデバイス。
【請求項２９】
前記処理回路によって使用される前記データ単位インデックスがページ番号である、請求項26に記載のデバイス。
【請求項３０】
前記処理回路が、解読されるべきデータを記憶デバイスから取得するようにさらに構成され、前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化することが、前記ラウンド削減型解読暗号によって解読されるべき前記データを取得するための動作と並行に実行される、請求項26に記載のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、内容全体が参照により本明細書に組み込まれる、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個のラウンドまたは反復を採用してもよい。しかしながら、ラウンド削減型暗号は、鍵のうちの少なくともいくつかの安全性を低下させる場合がある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】米国標準技術局(NIST)特別刊行物800-38E、“Recommendation for Block Cipher Modes of Operation: The XTS-AES Mode for Confidentiality on Storage Devices”、2010年6月
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、攻撃者または悪意のある他のエンティティによってアクセス可能なメモリシステムなどの記憶システム内に記憶されているデータ、特にラウンド削減型暗号を使用して暗号化されたデータの秘密性を改善する必要がある。
【課題を解決するための手段】
【０００７】
一態様では、ラウンド削減型暗号化暗号とともに使用するための、データを暗号化するための方法は、修正された第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は、次のように作用するように採用されてもよい。
【数１】
2017511900.tif 000003
ここで、Wは入力白色化鍵および出力白色化鍵であり、iはデータ単位インデックスであり、jは暗号化されるべきデータPのブロックインデックス(すなわち、データ単位内のオフセット)であり、
【数２】
2017511900.tif 000004
は排他的論理和(XOR)演算を表す。Vはjでなくiに依存し、すなわち、この例では、データ単位内のすべてのブロックが同じVを共有し、単一のデータ単位内での連続した動作に対して1度だけVを計算するように様々な最適化が採用されてもよいことに留意されたい。標準的なAES-XTSは、F1およびF3をAES-128(E)に、またF2 128の中でF2(j,a)=a・xjに設定することによって取得されてもよく、その結果、上記のものは次のように簡略化される。
【数３】
2017511900.tif 000005
【００１７】
この標準的な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利用モードの修正された形態が提供される。
【数４】
2017511900.tif 000006
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  白色化命令
【図１】
2017511900.tif 000007
【図２】
2017511900.tif 000008
【図３】
2017511900.tif 000009
【図４】
2017511900.tif 000010
【図５】
2017511900.tif 000011
【図６】
2017511900.tif 000012
【図７】
2017511900.tif 000013
【図８】
2017511900.tif 000014
【図９】
2017511900.tif 000015
【図１０】
2017511900.tif 000016
【図１１】
2017511900.tif 000017
【図１２】
2017511900.tif 000018
【図１３】
2017511900.tif 000019
【図１４】
2017511900.tif 000020
【図１５】
2017511900.tif 000021
【図１６】
2017511900.tif 000022
【手続補正書】
【提出日】平成28年10月3日(2016.10.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ラウンド削減型暗号化ブロック暗号処理デバイスとともに使用するための、データを暗号化するための方法であって、
修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化するステップであって、前記データ単位インデックスが、前記ラウンド削減型暗号化ブロック暗号処理デバイスによって暗号化されるべきデータのページに対応するnビットのインデックスである、暗号化するステップと、
修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化するステップと、
前記データを修正するために、前記修正された第2の鍵を前記データに適用するステップと、
暗号化されたデータを取得するために、前記ラウンド削減型暗号化ブロック暗号処理デバイスを使用して、前記修正された第1の鍵に基づいて前記修正されたデータを暗号化するステップと、
前記暗号化されたデータを電子的記憶デバイスに記憶するステップと
を備える、方法。
【請求項２】
前記データを修正するために前記修正された第2の鍵を前記データに適用するステップが、
白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用するステップと、
前記データを前記ラウンド削減型暗号化ブロック暗号処理デバイスに適用する前に、暗号化されるべき前記データに前記白色化鍵を適用するステップとをさらに備え、
前記修正されたデータを暗号化するステップが、前記暗号化されたデータを取得するために、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスの出力に再適用するステップをさらに備える、
請求項1に記載の方法。
【請求項３】
前記第1および第2のブロック暗号が完全ブロック暗号である、請求項1に記載の方法。
【請求項４】
前記データ単位インデックスが、前記第1および第2のブロック暗号に適用され、nが前記第1および第2のブロック暗号のブロックサイズである、請求項1に記載の方法。
【請求項５】
前記白色化鍵を取得するために前記ブロックインデックスを前記修正された第2の鍵に適用するステップが、前記修正された第2の鍵をαjと乗算するステップを備え、αが定数であり、jが前記ブロックインデックスである、請求項2に記載の方法。
【請求項６】
前記データを前記ラウンド削減型暗号化ブロック暗号処理デバイスに適用する前に前記白色化鍵を前記データに適用するステップが、前記白色化鍵を前記データと排他的論理和をとるステップを備える、請求項5に記載の方法。
【請求項７】
前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスの前記出力に再適用するステップが、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスから出力されるデータと排他的論理和をとるステップを備える、請求項6に記載の方法。
【請求項８】
前記データ単位インデックスがページ番号に対応する、請求項1に記載の方法。
【請求項９】
前記ラウンド削減型暗号化ブロック暗号処理デバイスが、オフチップ記憶デバイスに結合されるシステムオンチップデバイス内に実装されるとともに、暗号化されたデータを前記オフチップ記憶デバイスに記憶するステップをさらに備える、請求項1に記載の方法。
【請求項１０】
データを記憶するための電子的記憶デバイスと、
前記記憶デバイスに結合される処理回路であって、
修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、前記データ単位インデックスが、ラウンド削減型暗号化ブロック暗号処理デバイスによって暗号化されるべきデータのページに対応するnビットのインデックスである、暗号化することと、
修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化することと、
前記データを修正するために、前記修正された第2の鍵を前記データに適用することと、
暗号化されたデータを取得するために、前記ラウンド削減型暗号化ブロック暗号処理デバイスを使用して、前記修正された第1の鍵に基づいて前記修正されたデータを暗号化することと、
前記暗号化されたデータを前記記憶デバイスに記憶することと
を行うように構成される処理回路と
を備える、デバイス。
【請求項１１】
前記処理回路が、
白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用し、
前記データを前記ラウンド削減型暗号化暗号に適用する前に、暗号化されるべき前記データに前記白色化鍵を適用する
ことによって、前記データを修正するために前記修正された第2の鍵を前記データに適用するように構成され、
前記処理回路が、前記暗号化されたデータを取得するために、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスの出力に再適用するようにさらに構成される、請求項10に記載のデバイス。
【請求項１２】
前記処理回路によって使用される前記第1および第2のブロック暗号が完全ブロック暗号である、請求項10に記載のデバイス。
【請求項１３】
前記処理回路によって使用される前記データ単位インデックスが、前記第1および第2のブロック暗号に適用され、nが前記第1および第2のブロック暗号のブロックサイズである、請求項10に記載のデバイス。
【請求項１４】
前記処理回路が、前記白色化鍵を取得するために、前記修正された第2の鍵をαjと乗算することによって、前記ブロックインデックスを前記修正された第2の鍵に適用するようにさらに構成され、αが定数であり、jが前記ブロックインデックスである、請求項11に記載のデバイス。
【請求項１５】
前記処理回路が、前記データを前記ラウンド削減型暗号化ブロック暗号処理デバイスに適用する前に、前記白色化鍵を前記データと排他的論理和をとることによって、前記白色化鍵を前記データに適用するようにさらに構成される、請求項14に記載のデバイス。
【請求項１６】
前記処理回路が、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスから出力されるデータと排他的論理和をとることによって、前記白色化鍵を前記ラウンド削減型暗号化ブロック暗号処理デバイスの前記出力に再適用するようにさらに構成される、請求項15に記載のデバイス。
【請求項１７】
前記処理回路によって使用される前記データ単位インデックスがページ番号である、請求項10に記載のデバイス。
【請求項１８】
前記処理回路が、オフチップ記憶デバイスに結合されるシステムオンチップデバイスの構成要素であり、前記処理回路が、暗号化されたデータを前記オフチップ記憶デバイスに記憶するようにさらに構成される、請求項10に記載のデバイス。
【請求項１９】
ラウンド削減型解読ブロック暗号処理デバイスとともに使用するための、データを解読するための方法であって、
修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化するステップであって、前記データ単位インデックスが、前記ラウンド削減型解読ブロック暗号処理デバイスによって解読されるべきデータのページに対応するnビットのインデックスである、暗号化するステップと、
修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化するステップと、
前記データを修正するために、前記修正された第2の鍵を前記データに適用するステップと、
解読されたデータを取得するために、前記ラウンド削減型解読ブロック暗号処理デバイスを使用して、前記修正された第1の鍵に基づいて前記修正されたデータを解読するステップと、
前記解読されたデータを電子的記憶デバイスに記憶するステップと
を備える、方法。
【請求項２０】
前記データを修正するために、前記修正された第2の鍵を前記データに適用するステップが、
白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用するステップと、
前記データを前記ラウンド削減型解読ブロック暗号処理デバイスに適用する前に、解読されるべき前記データに前記白色化鍵を適用するステップとをさらに備え、
前記修正されたデータを解読するステップが、前記解読されたデータを取得するために、前記白色化鍵を前記ラウンド削減型解読暗号処理デバイスの出力に再適用するステップをさらに備える、
請求項19に記載の方法。
【請求項２１】
前記第1および第2のブロック暗号が完全ブロック暗号である、請求項19に記載の方法。
【請求項２２】
解読されるべきデータを記憶デバイスから取得するステップをさらに備え、前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化するステップと、前記修正された第2の鍵を取得するために前記第2のブロック暗号を使用して前記第2の鍵に基づいて前記データ単位インデックスを暗号化するステップとの両方が、前記ラウンド削減型解読ブロック暗号処理デバイスによって解読されるべき前記データを取得するための動作と並行に実行される、請求項19に記載の方法。
【請求項２３】
データを記憶するための電子的記憶デバイスと、
前記記憶デバイスに結合される処理回路であって、
修正された第1の鍵を取得するために、第1のブロック暗号を使用して第1の鍵に基づいてデータ単位インデックスを暗号化することであって、前記データ単位インデックスが、ラウンド削減型解読ブロック暗号処理デバイスによって解読されるべきデータのページに対応するnビットのインデックスである、暗号化することと、
修正された第2の鍵を取得するために、第2のブロック暗号を使用して第2の鍵に基づいて前記データ単位インデックスを暗号化することと、
前記データを修正するために、前記修正された第2の鍵を前記データに適用することと、
解読されたデータを取得するために、前記ラウンド削減型解読ブロック暗号処理デバイスを使用して、前記修正された第1の鍵に基づいて前記修正されたデータを解読することと、
前記解読されたデータを記憶デバイスに記憶することと
を行うように構成される処理回路と
を備える、デバイス。
【請求項２４】
前記処理回路が、
白色化鍵を取得するために、ブロックインデックスを前記修正された第2の鍵に適用し、
前記データを前記ラウンド削減型解読ブロック暗号処理デバイスに適用する前に、解読されるべき前記データに前記白色化鍵を適用する
ことによって、前記データを修正するために前記修正された第2の鍵を前記データに適用するように構成され、
前記処理回路が、前記解読されたデータを取得するために、前記白色化鍵を前記ラウンド削減型解読ブロック暗号処理デバイスの出力に再適用するようにさらに構成される、
請求項23に記載のデバイス。
【請求項２５】
前記処理回路によって使用される前記第1および第2のブロック暗号が完全ブロック暗号である、請求項23に記載のデバイス。
【請求項２６】
前記処理回路が、解読されるべきデータを記憶デバイスから取得するようにさらに構成され、前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化することと、前記修正された第2の鍵を取得するために前記第2のブロック暗号を使用して前記第2の鍵に基づいて前記データ単位インデックスを暗号化することとの両方が、前記ラウンド削減型解読ブロック暗号処理デバイスによって解読されるべき前記データを取得するための動作と並行に実行される、請求項23に記載のデバイス。
【請求項２７】
前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化するステップと、前記修正された第2の鍵を取得するために前記第2のブロック暗号を使用して前記第2の鍵に基づいて前記データ単位インデックスを暗号化するステップとが、並行に実行される動作である、請求項1に記載の方法。
【請求項２８】
並行に実行される前記動作が、前記第1の鍵の下で前記データ単位インデックスを暗号化するステップであって、nが前記ラウンド削減型解読ブロック暗号処理デバイスの前記ブロックのサイズであるステップと、前記修正された第2の鍵を取得するために、前記第2の鍵の下で前記nビットのデータ単位インデックスを暗号化するステップとをさらに備える、請求項27に記載の方法。
【請求項２９】
前記処理回路が、並行動作で、前記修正された第1の鍵を取得するために前記第1のブロック暗号を使用して前記第1の鍵に基づいて前記データ単位インデックスを暗号化することと、前記修正された第2の鍵を取得するために前記第2のブロック暗号を使用して前記第2の鍵に基づいて前記データ単位インデックスを暗号化することとを行うようにさらに構成される、請求項10に記載のデバイス。
【請求項３０】
前記処理回路によって並行に実行される前記動作が、前記第1の鍵の下で前記データ単位インデックスを暗号化することであって、nが前記ラウンド削減型解読ブロック暗号処理デバイスの前記ブロックのサイズである、暗号化することと、前記修正された第2の鍵を取得するために、前記第2の鍵の下で前記nビットのデータ単位インデックスを暗号化することとをさらに備える、請求項29に記載のデバイス。
【請求項３１】
解読されるべき前記データを取得するステップが、前記データを前記記憶デバイスからフェッチするステップを備え、前記データがフェッチされながら、前記データ単位インデックスが前記第1の鍵の下で暗号化され、nが前記ラウンド削減型解読ブロック暗号処理デバイスの前記ブロックのサイズであり、前記修正された第2の鍵を取得するために、前記nビットのデータ単位インデックスが前記第2の鍵の下で暗号化され、白色化鍵を生成するために、ブロックインデックスが前記修正された第2の鍵に適用され、前記ブロックインデックスが、解読されるべきデータのページ内でのオフセットである、請求項22に記載の方法。
【請求項３２】
前記処理回路が、前記データを前記記憶デバイスからフェッチすることによって、解読されるべき前記データを取得するようにさらに構成され、前記データがフェッチされながら、前記データ単位インデックスが前記処理回路によって前記第1の鍵の下で暗号化され、nが前記ラウンド削減型解読ブロック暗号処理デバイスの前記ブロックのサイズであり、前記修正された第2の鍵を取得するために、前記nビットのデータ単位インデックスが前記処理回路によって前記第2の鍵の下で暗号化され、白色化鍵を生成するために、ブロックインデックスが前記修正された第2の鍵に適用され、前記ブロックインデックスが、解読されるべきデータのページ内でのオフセットである、請求項26に記載のデバイス。
【国際調査報告】
2017511900.tif 000023
2017511900.tif 000024
2017511900.tif 000025