説明

機密データの暗号化および記憶

【課題】機密データをセキュアに記憶するためのデータ記憶回路、およびデータを処理および記憶するためのデータ処理装置、ならびに方法を開示する。
【解決手段】データ記憶回路は、データを記憶するための複数のデータ記憶場所を備える、データ記憶と、データ記憶にアクセスするための要求を受信するための入力と、データ記憶内の物理データ記憶場所へのアクセス要求に指定されたアーキテクチャデータ記憶場所をマッピングするためのリネーミング回路と、データ記憶内へのデータの記憶に先立って、データを暗号化するための暗号化回路であって、その中にデータが記憶される物理データ記憶場所に応じて、暗号化キーを生成するように構成される、暗号化回路と、データ記憶から読み取られたデータを復号するための復号回路であって、そこからデータが読み取られる物理データ記憶場所に応じて、復号キーを生成するように構成される、復号回路と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理の分野に関し、具体的には、安全なデータ処理の間のデータの記憶を提供することに関する。
【背景技術】
【0002】
データおよびそのデータの処理が、外部に不可視であるように、処理の間、データを安全かつ機密に維持することは、極秘データを処理するシステムにおいて既知の問題である。例えば、スマートカードは、ユーザにアクセス可能であってはならない機密データを暗号化するために使用される、暗号キーを記憶してもよい。その動作の間、システムの差分電力解析、すなわち、DPA等の技法の使用は、システム内に記憶された暗号キー等の安全なデータに関する情報を人的に判定することができるようにする場合があるデータを提供する可能性があることが見出されている。
【0003】
種々の技法が、システムのセキュリティに対するそのような攻撃を阻止する試みとして考案されている。例えば、Mayらによる「Random Register Renaming to foil DPA」は、レジスタリネーミングの間に、選択された一連の利用可能なレジスタからランダムに選択されたレジスタの使用が、どのようにDPAの使用を可能とし、記憶されたデータ記憶の有効性が低いことを判定することができるかについて説明している。例えば、レジスタへの書き込み時、使用される電力の量は、反転されるビットの数に依存し、したがって、電力シグネチュアの分析およびレジスタに元々何が記憶されていたかを知っていることは、ユーザに、記憶されていた最終値に関する情報を判定可能にする場合がある。上書きされるべき値を記憶するレジスタが、複数の利用可能なレジスタからランダムに選択される場合、上書きされる値は、予め判定されず、この値を知っていることを伴わずには、DPAは、有効性が低い。
【0004】
機密データを処理するシステム内における高められたセキュリティを提供することが望ましい。
【発明の概要】
【0005】
第1の態様から見ると、本発明は、データを記憶するための複数のデータ記憶場所を備える、データ記憶と、前記データ記憶にアクセスするための要求を受信するための入力と、前記データ記憶内の物理データ記憶場所への前記アクセス要求に指定されるアーキテクチャデータ記憶場所をマッピングするためのリネーミング回路と、前記データ記憶内への前記データの記憶に先立って、データを暗号化するための暗号化回路であって、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するように構成される、暗号化回路と、前記データ記憶から読み取られたデータを復号するための復号回路であって、そこから前記データが読み取られる前記物理データ記憶場所に応じて、復号化キーを生成するように構成される、復号回路と、を備える、データ記憶回路を提供する。
【0006】
本発明は、記憶されたデータの暗号化が、システムのセキュリティを向上させるのに役立ち、異なるキーが各暗号化のために使用される場合、データへのアクセスをより困難にするだけではなく、記憶プロセスが、異なる量の電力を必要とし、システムのあらゆる有用な差分電力解析を阻止するであろうことを認識する。しかしながら、また、各暗号化のための異なるキーの生成および記憶は、特に、データ記憶のタイミング制約内において、行うことが困難であることも認識する。
【0007】
本発明は、リネーミング回路を使用するシステムでは、次に、そこにアーキテクチャデータ記憶場所がマッピングされてもよい、物理データ記憶場所が、マッピング毎に変化することを認識する。これは、値が記憶される毎に変化するのに伴って、物理データ記憶場所に関する情報を、暗号化においてキーとして使用するために適切にし、後でデータ値にアクセスするために、いずれの場合にも、記憶される必要がある。したがって、これは値を復号するために利用可能となるであろう。したがって、システム内に既に存在する論理を利用して、暗号化のためのキーを生成するために使用することができる値を提供および記憶し、それによって、よりセキュアなシステムを提供する、システムが提供される。
【0008】
物理記憶場所の識別が、キーを生成するために使用されるが、他の情報もまた、この値に加え、使用されてもよいことに留意されたい。
【0009】
データ記憶は、いくつかの実施形態では、いくつかの形態をとってもよいが、前記データ記憶は、レジスタバンクを備え、前記複数のデータ記憶場所は、複数のレジスタを備える。
【0010】
多くの処理装置では、レジスタは、データ記憶場所に迅速かつ容易にアクセスするように提供される。概して、いくつかのレジスタが処理装置内に存在し、いくつかのレジスタは、命令セット内の命令によって指定される。コンパクトなエンコーディングを有するために、ほとんどのプロセッサ命令セットは、直接ネーミングすることができる小さい組のレジスタ場所を有する。したがって、概して、レジスタバンクに存在する物理レジスタの数は、命令によって識別可能なレジスタの数を上回る。したがって、シリコン内に存在するレジスタのすべてを利用するために、レジスタのリネーミンが、レジスタリネーミング回路を使用して、処理の間に行われる。
【0011】
いくつかの実施形態では、前記物理データ記憶場所は、対応する物理アドレスによって識別され、前記暗号化キーおよび復号キーは、前記物理アドレスから生成される。
【0012】
データ記憶場所は、いくつかの方法で識別されてもよく、この識別は、暗号化キーおよび復号キーを生成するために使用されてもよいが、いくつかの実施形態では、使用される物理アドレスである。
【0013】
いくつかの実施形態では、前記リネーミング回路は、どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、前記利用可能な物理データ記憶場所のうちの1つを選択し、アルゴリズムに従って、そこに前記アーキテクチャデータ記憶場所をマッピングし、有効データを現在記憶しているデータ記憶場所のためのマッピングを記憶することによって、前記マッピングを行うように構成される。
【0014】
リネーミング回路は、アルゴリズムに従って、アーキテクチャデータ記憶場所をマップすべき物理データ記憶場所を判定してもよい。これは、決定論的な方法で行われるが、選択された物理データ記憶場所は、アルゴリズムが使用する、利用可能な物理データ記憶場所に応じて、変動するであろう。これは、選択された物理データ記憶場所を暗号化キーを生成する際の使用にさらに適切にする。
【0015】
他の実施形態では、前記リネーミング回路は、どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、前記利用可能な物理データ記憶場所のうちの1つを選択し、ランダムまたは疑似ランダムプロセスに従って、そこに前記アーキテクチャデータ記憶場所をマッピングし、有効データを現在記憶している物理データ記憶場所のためのマッピングを記憶することによって、前記マッピングを行うように構成される。
【0016】
物理記憶場所をランダムまたは疑似ランダム的に選択することが好ましい場合がある。値を完全にランダムに選択することは、行うことが困難である場合があり、疑似ランダム選択は、差分電力解析を阻止するために十分なノイズを提供するのに概して十分となるであろうことに留意されたい。先行技術の段落に記載のように、値を記憶するためのレジスタのランダム選択は、差分電力解析を阻止し、したがって、これは記憶されたデータの暗号化に加え、その中に記憶される記憶場所がランダム的にまたは少なくとも疑似ランダム的に選択される場合、システムのセキュリティをさらに向上させる場合がある。
【0017】
ランダムまたは疑似ランダム選択は、リネーミング回路に入力される、外部生成された信号を使用することによって行われてもよく、またはデータ記憶回路自体内のランダムイベント生成器または疑似ランダムイベント生成器によって行われてもよい。
【0018】
いくつかの実施形態では、利用可能な物理データ記憶場所を選択する場合、利用可能な物理記憶場所は、有効データを現在記憶していない物理データ記憶場所である。言い換えると、それらは、アーキテクチャ記憶場所に現在マッピングされておらず、データを記憶するために自由に使える、物理データ記憶場所である。
【0019】
代替として、前記利用可能な物理データ記憶場所はすべて、前記データ記憶内の物理データ記憶場所であって、前記リネーミング回路は、前記現在マッピングされている物理記憶場所が選択される場合、現在マッピングされている物理データ記憶場所に記憶されたデータを別の物理データ記憶場所に書き込み、前記別の物理データ記憶場所のためのマッピングを記憶するように構成される。
【0020】
いくつかの実施形態では、有効データを現在記憶していない物理データ記憶場所を使用するだけではなく、リネーミング回路は、物理データ記憶場所のいずれかを選択し、その中にデータを記憶してもよい。それらが、現在マッピングされている物理データ記憶場所を選択する場合、その中に記憶されたデータは、別の物理データ記憶場所に書き込まれ、マッピングテーブルが、この新しいマッピングを記憶するように更新されなければならない。その際、記憶されたデータは、記憶場所の物理アドレスから生成される暗号化キーによって暗号化される。したがって、それを異なる場所に記憶する前に、復号され、次いで、新しい場所のアドレスから生成されるキーによって暗号化されなければならない。次いで、選択された物理データ記憶場所は、到着した新しいデータ値を記憶するために使用され、これに対するマッピングが記憶される。このシステムが、使用される場合、明らかに、有効データを現在記憶していない物理データ記憶場所が、使用される場合より多くの電力が消費される。しかしながら、これは、システムに導入されるより多くのノイズが存在し、外部の人物が、現在行われていることを分析するのがより困難となることを意味する。
【0021】
いくつかの実施形態では、前記リネーミング回路は、自動的に、現在マッピングされている物理データ記憶場所のリマッピングを行うように構成される。
【0022】
ノイズを生成する付加的方法は、リネーミング回路が、自動的に、現在マッピングされている物理データ記憶場所のアーキテクチャデータ記憶場所へのリマッピングを行うことである。リネーミング回路は、データアクセス要求に応答して、これを行ってもよく、または周期的に行ってもよく、または何らかの他の要因に応じて、これを行うように構成されてもよい。ランダムリマッピングは、付加的電力シグネチュアを導入し、システムをさらにより分析困難にする。記憶されたデータの復号および再暗号化は、物理アドレス、ひいては暗号化キーが変化する場合、要求されることに留意されたい。
【0023】
いくつかの実施形態では、前記リネーミング回路は、前記データ記憶に現在記憶されている値を更新するための要求に応答し、有効データを記憶していないものとして更新される、前記値を現在記憶する前記物理データ記憶場所をマーキングし、前記物理データ記憶場所のためのマッピングを削除し、
前記要求によって指定される前記アーキテクチャデータ記憶場所を利用可能な物理データ記憶場所にマッピングし、前記マッピングを記憶する。
【0024】
値を更新するための要求が受信される場合、この値をこのアーキテクチャレジスタに既にマッピングされている物理データ記憶場所に書き込むのではなく、新しいマッピングが行われ、このアーキテクチャレジスタのための以前のマッピングは、削除される。ここでも、これは、システムを外部分析するのを困難にする。
【0025】
本発明の第2の態様は、対応する物理アドレスの組によって識別される物理的なレジスタの組を備える、本発明の第1の態様に従うデータ記憶回路と、アーキテクチャのレジスタの組を指定する、命令の組からの命令に応答して、データを処理するためのプロセッサと、前記アーキテクチャの組からのレジスタを前記物理セット内のレジスタにマッピングするリネーミング回路と、を備える、データ処理装置を提供する。
【0026】
本発明の第3の態様は、前記データ記憶にアクセスするための要求を受信するステップと、前記要求が、データを記憶するための要求である場合、前記アクセス要求に指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするステップと、前記物理データ記憶場所に応じて生成される暗号化キーを使用して、前記マッピングから、前記データを前記物理データ記憶場所へ記憶することに先立って、前記データを暗号化するステップと、または前記要求が、データを読み取るための要求である場合、マッピングの記憶から、前記アクセス要求に指定されるアーキテクチャデータ記憶場所に対応する物理データ記憶場所を判定するステップと、前記物理データ記憶場所に応じて生成された暗号化キーを使用して、前記マッピングから、前記物理データ記憶場所から読み取られたデータを復号するステップを含む、複数のデータ記憶場所を備える、データ記憶内にデータを記憶する方法を提供する。
【0027】
本発明の第4の態様は、複数のデータ記憶場所を備えるデータを記憶するための手段と、前記データ記憶にアクセスするための要求を受信するための入力手段と、前記アクセス要求に指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするためのリネーミング手段と、前記データの前記データ記憶内への記憶に先立って、データを暗号化し、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するための暗号化手段と、前記データ記憶から読み取られたデータを復号し、そこから前記データが読み取られる前記物理データ記憶場所に応じて、復号キーを生成するための復号回路と、を備える、データ記憶回路を提供する。
【0028】
本発明の前述および他の目的、特徴、ならびに利点は、付随の図面と併せて読み取られる、例証的実施形態の以下の発明を実施するための形態から明白となるであろう。
【図面の簡単な説明】
【0029】
【図1】本発明の実施形態に従う、データ記憶回路を示す図である。
【図2】本発明の実施形態に従う、データ処理装置を示す図である。
【図3】本発明の実施形態に従う、リネーミングテーブルを図式的に示す図である。
【図4】本発明の実施形態に従う、方法におけるステップを例証する、流れ図である。
【発明を実施するための形態】
【0030】
図1は、リネーミング回路18によって生成される、リネーミングテーブル20を備える、データ記憶回路10を示す。このリネーミングテーブルは、命令によって指定されたアーキテクチャレジスタのシリコン内に存在する物理レジスタへのマッピングを記憶する。これらのマッピングは、外部ランダムイベント生成器から入力されるランダムイベントに応答して、リネーミング回路18によって生成される。このランダムイベント信号は、レジスタバンク内からレジスタをランダムに選択し、そのレジスタにアクセスするための命令に応答して、そこにアーキテクチャレジスタをマッピングするために使用される。
【0031】
したがって、書込要求に応答して、アーキテクチャレジスタを示す書込アドレスが、リネーミング回路18の書込ポートアドレス入力で受信される。このアドレスは、レジスタバンク30内の物理レジスタのアドレスにマッピングされ、マッピングが、リネーミングテーブル20に記憶される。次いで、この物理アドレスは、レジスタバンクデータ記憶制御回路32および暗号化回路35に伝送される。
【0032】
書込要求に対応する書込データおよびリマッピングされた物理アドレスである書込アドレスは、暗号化回路35に入力され、書込データは、この物理アドレスから生成される暗号化キーを使用して暗号化される。この暗号化キーは、物理アドレスまたは物理アドレスの少なくとも一部から直接生成されてもよく、または物理およびアーキテクチャもしくは仮想アドレスまたは物理アドレスおよびデータ自体などのようないくつかのものから生成されてもよい。暗号化は、レジスタバンク内のデータの記憶を遅延させないように、概して、非常に単純な暗号化プロセスである。
【0033】
次いで、記憶制御回路32は、暗号化されたデータを物理アドレスによって識別されたレジスタに書き込むように作用する。
【0034】
読み取り要求が受信される場合、読み取られるアーキテクチャレジスタの仮想アドレスが、リネーミングテーブル20で受信され、レジスタバンク30内のレジスタの対応する物理アドレスが、このリネーミングテーブル内に記憶されたマッピングから判定される。次いで、このアドレスは、読み取り制御回路42および復号回路45に伝送される。読み取り制御回路42は、アドレスによって示されるレジスタを選択し、選択されたレジスタに記憶されたデータを復号回路45に出力する。復号回路45は、このデータを受信し、リネーミングテーブル20から入力された読み取りアドレスから復号キーを生成する。次いで、読み取りデータは、データ記憶回路10から出力される。
【0035】
前述のように、暗号化および復号キーは、リネーミングテーブルに記憶されたデータから生成される。このデータは、レジスタ毎に異なり、レジスタバンク30内でデータにアクセス可能にするために、記憶される必要がある。したがって、暗号化キーのための理想的ソースである。
【0036】
リネーミング回路18が、ランダムイベントに応答して、物理レジスタを選択するため、選択は、ランダムであって、したがって、暗号化キーもまた、暗号化毎にランダムに変化する。これは、システムにノイズを導入し、誰かが、システムにハッキングし、有用情報を導出しようとするのを困難にする。したがって、暗号化システムは、データの記憶を遅延させないように単純であってもよいが、レジスタ選択のランダム性によって、セキュリティの向上は、実質的ものとなる。
【0037】
この場合、ランダムイベントは、利用可能なレジスタを選択するために使用されるが、いくつかの実施形態では、アルゴリズムを使用した決定的方法で行われてもよいことに留意されたい。これはまた、物理レジスタの場所が、アルゴリズムおよび利用可能なレジスタに応じて変動し、したがって、ノイズがシステムに追加されるであろうため、容認可能なレベルのセキュリティを提供する場合がある。
【0038】
また、これは、疑似ランダムイベントに応答して行われてもよい。そのようなイベントは、実際、完全にランダムなイベントは、生成が困難であるため、完全にランダムではない、イベントであるが、しかしながら、本質的に非常にランダムであって、したがって、非常に予測が困難である、イベントである。
【0039】
その中にデータを記憶するためのレジスタを選択する際、リネーミング回路は、現在マッピングされていないそれらのレジスタから選択されてもよく、または存在するいずれかのレジスタを選択してもよい。後者を行う場合、データは、現在マッピングされているレジスタから異なるレジスタに移動される必要があり、新しいマッピングが、記憶される必要がある。これは、図3に関して、より詳細に説明される。
【0040】
図2は、本発明の実施形態に従う、データ処理装置50を示す。データ処理装置50は、フェッチ段階と、デコード段階と、実行段階と、を備える、プロセッサ60を有する。フェッチ段階は、命令キャッシュ70から命令をフェッチし、デコード段階は、これらの命令をデコードする。次いで、実行段階は、デコードされた命令を実行するであろう。実行段階はまた、レジスタバンク30からデータを受信してもよい。実行段階はまた、データをレジスタバンク30に出力してもよく、またはデータを外部出力ポート52に出力してもよい。
【0041】
データ処理装置50は、ランダム信号生成器82を伴うリネーミング回路80と、リネーミングテーブル20と、を含む。リネーミング回路は、プロセッサ60の実行段階から仮想アドレスまたはアーキテクチャアドレスを受信する。これらは、プロセッサ60によって処理される命令に指定されるアドレスである。次いで、リネーミング回路80は、これらの仮想アドレスをレジスタバンク30内のレジスタの物理アドレスにマッピングする。これは、リネーミングテーブル20内に現在のマッピングを記憶する。次いで、これらのマッピングからのアドレスは、レジスタバンク30ならびに暗号化回路35および復号回路45に出力される。データアクセス要求が記憶要求である場合、記憶されるデータは、実行段階から出力され、暗号化回路35に入力される。リネーミング回路は、マッピングから物理アドレスを出力し、暗号化回路は、このアドレスを使用して、暗号化キーを生成し、受信したデータを暗号化するであろう。次いで、この暗号化されたデータは、リネーミング回路80から出力されたアドレスによって指定されたアドレスにおいて、レジスタバンク30に記憶されるであろう。
【0042】
実行されるデータアクセス要求が読み取り要求である場合、これに対するアドレスが、リネーミング回路80に入力され、この仮想アドレスに対応する物理アドレスが、リネーミングテーブル20を使用して見つけられる。次いで、このアドレスは、復号回路45およびレジスタバンク30に出力される。次いで、レジスタバンク30は、そのアドレスに記憶されたデータを出力する一方、復号回路45は、物理アドレスから復号キーを生成する。次いで、レジスタバンクから出力されたデータが、復号キーを使用して復号され、出力される。
【0043】
このデータは、プロセッサ60の実行段階に逆出力されてもよく、または出力ポート52を介して出力されてもよい。
【0044】
図3は、本発明の実施形態に従う、リネーミングテーブル20を図式的に示す。このリネーミングテーブルは、現在のマッピングのリストを記憶し、現在マッピングされていないレジスタのリストを記憶してもよく、または現在のマッピングのリストからこれを判定してもよい。レジスタを選択し、記憶要求に応答して、それに仮想アドレスをマッピングする際、リネーミング回路は、現在マッピングされていないレジスタから選択してもよく、またはすべてのレジスタから選択してもよい。現在のマッピングの一部であるレジスタから選択する場合、以下の実施例は、何が行われるかを示す。
【0045】
レジスタR5にデータを記憶するための記憶要求が受信され、ランダム生成器81に応答して選択された物理レジスタがP1である場合、別のマッピングが、R0をさらなる物理レジスタにマッピングするように行われることが必要となることになる。
【0046】
したがって、さらなるレジスタは、ランダム生成器に応答して選択され、これが、現在マッピングされていないレジスタに対するものであるとすれば、P1に現在記憶されているデータは、P1アドレスから生成されたキーを使用して復号され、次いで、このデータは、選択されたさらなるレジスタのアドレスから生成されたキーを使用して暗号化され、次いで、暗号化されたデータは、このレジスタに書き込まれ、マッピングが記憶される。例えば、選択された新しいレジスタがP6であった場合、P1に記憶されたデータ(復号および再暗号化後)は、P6に書き込まれ、マッピングP6 R0が記憶されるであろう。次いで、新しく受信されたデータは、P1に書き込まれ、マッピングP1 R5が記憶されるであろう。
【0047】
いくつかの実施形態では、リネーミング回路はまた、それに関するいくつかのマッピングを周期的にスワップするように構成されてもよい。したがって、リマッピング信号に応答して、現在のマッピングのうちの1つをランダムに選択し、それを異なる物理レジスタにリマッピングし、その異なる物理レジスタにデータを記憶するであろう。例えば、現在のマッピングP4 R3および物理レジスタP15を選択してもよく、次いで、P4に記憶された値をP15に書き込み(物理アドレスから生成されたキーを使用して、データを復号し、次いで、再暗号化している)、次いで、テーブルからP4 R3マッピングを削除し、P15 R3マッピングを記憶するであろう。このようにして、ノイズが、システムに追加され、システムをより分析困難にする。
【0048】
そのような周期的リマッピングに加え、リネーミング回路はまた、記憶された値を更新するための要求に応答して、物理レジスタに記憶された値が上書きされず、むしろ、新しい物理レジスタが選択され、そのマッピングが記憶され、値がそのレジスタに書き込まれるように、リマッピングを行うようにも構成されてもよい。例えば、以下の2つの命令は、これを例証する。
LDR R0,addr
ADDS r0,r0,#0
【0049】
第1の命令は、リネーミングにより、P3であって、データをP3のアドレスによって暗号化する、アーキテクチャレジスタr0に加算器のコンテンツを書き込む。第2の命令は、r0を更新することを所望するが、しかしながら、我々は、ここで、r0を別のレジスタ、例えば、P6にリマッピングし、次いで、このデータをP6のアドレスによって暗号化する。この場合、P6に含有されるデータは、異なる暗号化キーにより、P3に含有されるものと異なる。次いで、r0のP3へのマッピングが削除可能となる。
【0050】
前述のように、暗号化キーおよび復号キーは、物理アドレス自体から生成可能であるが、それらはまた、データと物理アドレスとの組み合わせ、もしくはデータと仮想アドレスとの組み合わせ、またはこれらのそれぞれの一部だけから生成されてもよい。
【0051】
図4は、本発明の実施形態に従う方法におけるステップを例証する流れ図を示す。この方法では、アーキテクチャレジスタにアクセスするためのデータアクセス要求が受信される。このデータアクセスは、ロードまたは記憶アクセス要求であってもよい。それがデータを記憶するための要求である場合、アーキテクチャレジスタが現在マッピングされているかどうかが判定される。そうではない場合、利用可能なレジスタのうちの1つが、ランダムイベントに応じて選択され、マッピングが記憶される。本実施形態では、利用可能なレジスタは、現在マッピングされていないものである。前述のように、すべてのレジスタを選択することができ、その場合、現在のマッピングの一部であるレジスタが選択された場合、この方法におけるさらなるステップが行われる必要があるであろう。しかしながら、本実施形態では、フリーレジスタが選択され、マッピングが記憶される。アーキテクチャレジスタが、現在マッピングされている場合、マッピングは削除され、削除されたマッピングの物理レジスタが、利用可能としてマーキングされる。
【0052】
次のステップは、選択されたレジスタのアドレスからの暗号化キーの生成を伴い、次いで、データは、この暗号化キーを使用して暗号化される。次いで、暗号化されたデータは、選択されたレジスタに記憶される。
【0053】
データアクセスが、記憶アクセスではないが、むしろ、読み取りアクセスである場合、データを現在記憶している物理レジスタが、リネーミングテーブルに記憶されたマッピングから読み出される。次いで、データが、物理レジスタから読み出され、その復号キーが、物理アドレスから生成される。次いで、物理レジスタから読み出されたデータは、この復号キーを使用して復号される。
【0054】
本発明の例証的実施形態が、付随の図面を参照して、本明細書で詳細に説明されたが、本発明は、それらの特定の実施形態に限定されず、種々の変更および修正を、添付の特許請求の範囲によって定義されるように、本発明の範囲および精神から逸脱することなく、当業者によってそれらの中にもたらすことができることを理解されたい。

【特許請求の範囲】
【請求項1】
データ記憶回路であって、
データを記憶するための複数のデータ記憶場所を備える、データ記憶と、
前記データ記憶にアクセスするための要求を受信するための入力と、
前記データ記憶内の物理データ記憶場所への前記アクセス要求に指定されるアーキテクチャデータ記憶場所をマッピングするためのリネーミング回路と、
前記データ記憶内への前記データの記憶に先立って、データを暗号化するための暗号化回路であって、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するように構成される、暗号化回路と、
前記データ記憶から読み取られたデータを復号するための復号回路であって、そこから前記データが読み取られる前記物理データ記憶場所に応じて、暗号化キーを生成するように構成される、復号回路と、
を備える、データ記憶回路。
【請求項2】
前記データ記憶は、レジスタバンクを備え、前記複数のデータ記憶場所は、複数のレジスタを備える、請求項1に記載のデータ記憶回路。
【請求項3】
前記物理データ記憶場所は、対応する物理アドレスによって識別され、前記暗号化および復号キーは、前記物理アドレスから生成される、前記請求項のいずれか1項に記載のデータ記憶回路。
【請求項4】
前記リネーミング回路は、どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、前記利用可能な物理データ記憶場所のうちの1つを選択し、アルゴリズムに従って、そこに前記アーキテクチャデータ記憶場所をマッピングし、有効データを現在記憶しているデータ記憶場所のためのマッピングを記憶することによって、前記マッピングを行うように構成される、前記請求項のいずれか1項に記載のデータ記憶回路。
【請求項5】
前記リネーミング回路は、どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、前記利用可能な物理データ記憶場所のうちの1つを選択し、ランダムまたは疑似ランダムプロセスに従って、そこに前記アーキテクチャデータ記憶場所をマッピングし、有効データを現在記憶しているデータ記憶場所のためのマッピングを記憶することによって、前記マッピングを行うように構成される、請求項1から3のいずれか1項に記載のデータ記憶回路。
【請求項6】
前記リネーミング回路は、ランダムまたは疑似ランダム的に生成された信号を受信するための入力をさらに備え、前記リネーミング回路は、前記ランダムまたは疑似ランダム的に生成された信号に応じて、前記利用可能な物理データ記憶場所のうちの前記1つを選択するように構成される、請求項5に記載のデータ記憶回路。
【請求項7】
前記データ記憶回路は、ランダムまたは疑似ランダムイベント生成器をさらに備え、前記データ記憶回路は、前記ランダムまたは疑似ランダムイベント生成器によって生成されたイベントに応じて、前記利用可能な物理データ記憶場所のうちの前記1つを選択するように構成される、請求項5に記載のデータ記憶回路。
【請求項8】
前記利用可能な物理データ記憶場所は、有効データを現在記憶していない物理データ記憶場所である、請求項5から7のいずれか1項に記載のデータ記憶回路。
【請求項9】
前記利用可能な物理データ記憶場所はすべて、前記データ記憶内の物理データ記憶場所であって、前記リネーミング回路は、現在マッピングされている物理データ記憶場所に記憶されているデータを別の物理データ記憶場所に書き込み、前記現在マッピングされている物理記憶場所が選択される場合、前記別の物理データ記憶場所のためのマッピングを記憶するように構成される、請求項5から7のいずれか1項に記載のデータ記憶回路請求項。
【請求項10】
前記リネーミング回路は、自動的に、現在マッピングされている物理データ記憶場所のリマッピングを行うように構成される、前記請求項のいずれか1項に記載のデータ記憶回路。
【請求項11】
前記リネーミング回路は、前記データ記憶に現在記憶されている値を更新するための要求に応答して、
有効データを記憶していないものとして更新される、前記値を現在記憶している前記物理データ記憶場所をマーキングし、前記物理データ記憶場所のためのマッピングを削除し、
前記要求によって指定される前記アーキテクチャデータ記憶場所を利用可能な物理データ記憶場所にマッピングし、前記マッピングを記憶する、
前記請求項のいずれか1項に記載のデータ記憶回路。
【請求項12】
前記データ記憶が、対応する物理アドレスの組によって識別される、物理的なレジスタの組を備える、前記請求項のいずれか1項に記載のデータ記憶回路と、
アーキテクチャのレジスタの組を指定する、命令の組からの命令に応答して、データを処理するためのプロセッサと、
前記物理的な組の中の前記アーキテクチャのレジスタの組からのレジスタをマッピングする前記リネーミング回路と、
を備える、データ処理装置。
【請求項13】
複数のデータ記憶場所を備える、データ記憶内にデータを記憶する方法であって、
前記データ記憶にアクセスするための要求を受信するステップと、
前記要求が、データを記憶するための要求である場合、
前記アクセス要求内に指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするステップ、および
前記物理データ記憶場所に応じて生成された暗号化キーを使用して、前記データの前記マッピングからの前記物理データ記憶場所への記憶に先立って、前記データを暗号化するステップ、または
前記要求が、データを読み取ることである場合、
マッピングの記憶から、前記アクセス要求に指定されたアーキテクチャデータ記憶場所に対応する物理データ記憶場所を判定するステップ、および
前記物理データ記憶場所に応じて生成された復号キーを使用して、前記マッピングからの前記物理データ記憶場所から読み取られたデータを復号するステップと、
含む、方法。
【請求項14】
前記要求が、前記データを記憶するための要求である場合、
どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、前記利用可能な物理データ記憶場所のうちの1つを選択し、アルゴリズムに従って、そこに前記アーキテクチャデータ記憶場所をマッピングすることによって、前記マッピングを行う、請求項13に記載の方法。
【請求項15】
前記要求が、前記データを記憶するための要求である場合、
どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、ランダムに前記利用可能な物理データ記憶場所のうちの1つを選択し、前記アーキテクチャデータ記憶場所をマッピングすることによって、前記マッピングを行う、請求項13に記載の方法。
【請求項16】
前記利用可能な物理データ記憶場所は、有効データを現在記憶していない物理記憶場所である、請求項14または15のいずれか1項に記載の方法。
【請求項17】
前記利用可能な物理データ記憶場所はすべて、物理記憶場所であって、有効データを現在記憶している物理データ記憶場所の選択に応答して、前記有効データをさらなる物理記憶場所に書き込むステップと、前記さらなる物理記憶場所のためのマッピングを記憶するステップとが、さらに行われる、請求項14または15のいずれか1項に記載の方法。
【請求項18】
前記データ記憶に現在記憶されている値を更新するための要求に応答して、前記方法は、
有効データを記憶していないものとして更新される、前記値を現在記憶している前記物理データ記憶場所をマーキングし、前記物理データ記憶場所のための前記マッピングを削除するステップと、
前記要求によって指定される前記アーキテクチャデータ記憶場所を利用可能な物理データ記憶場所にマッピングするステップと、
前記マッピングを記憶するステップと、
を行う、請求項13から17のいずれか1項に記載の方法。
【請求項19】
データ記憶回路であって、
複数のデータ記憶場所を含む、データを記憶するための手段と、
前記データ記憶にアクセスするための要求を受信するための入力手段と、
前記アクセス要求に指定されたアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするためのリネーミング手段と、
前記データの前記データ記憶への記憶に先立って、データを暗号化し、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するための暗号化手段と、
前記データ記憶から読み取られたデータを復号し、そこから前記データが読み取られる前記物理データ記憶場所に応じて、復号キーを生成するための復号回路と、
を備える、データ記憶回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2012−199922(P2012−199922A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−63044(P2012−63044)
【出願日】平成24年3月21日(2012.3.21)
【出願人】(594154428)エイアールエム リミテッド (85)
【Fターム(参考)】