(57)【特許請求の範囲】
【請求項１】
データ記憶回路であって、
データを記憶するための複数のデータ記憶場所を備える、データ記憶と、
前記データ記憶にアクセスするための要求を受信するための入力と、
前記アクセス要求において指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするためのリネーミング回路と、
前記データ記憶内への前記データの記憶に先立って、データを暗号化するための暗号化回路であって、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するように構成される、暗号化回路と、
前記データ記憶から読み取られたデータを復号するための復号回路であって、そこから前記データが読み取られる前記物理データ記憶場所に応じて、暗号化キーを生成するように構成される、復号回路と、
を備え、
前記リネーミング回路は、前記複数の物理データ記憶場所のいずれが、アクセス要求において指定されるデータを記憶するために利用可能であるかを判定し、疑似ランダムプロセスに従って前記アーキテクチャデータ記憶場所をマッピングし、かつ、有効データを現在記憶している物理データ記憶場所のためのマッピングを記憶するために、前記利用可能な物理データ記憶場所のうちの１つを選択することによって、前記マッピングを行うように構成され、
前記利用可能な物理データ記憶場所は、前記データ記憶内のすべての物理データ記憶場所を含み、
前記リネーミング回路は、前記リネーミング回路が、前記利用可能な物理データ記憶場所の中から現在マッピングされている第１の物理データ記憶場所を選択する場合、前記疑似ランダムプロセスに従って前記利用可能な物理データ記憶場所のうち、前記第１の物理データ記憶場所と異なる第２の物理データ記憶場所を選択し、前記第１の物理データ記憶場所に記憶されているデータを前記第２の物理データ記憶場所に書き込み、前記第２の物理データ記憶場所のためのマッピングを記憶し、前記アクセス要求において指定される前記データを前記第１の物理データ記憶場所に記憶するように構成される、
データ記憶回路。
【請求項２】
前記データ記憶は、レジスタバンクを備え、前記複数のデータ記憶場所は、複数のレジスタを備える、請求項１に記載のデータ記憶回路。
【請求項３】
前記物理データ記憶場所は、対応する物理アドレスによって識別され、前記暗号化および復号キーは、前記物理アドレスから生成される、請求項１に記載のデータ記憶回路。
【請求項４】
前記リネーミング回路は、疑似ランダム的に生成された信号を受信するための入力をさらに備え、前記リネーミング回路は、前記疑似ランダム的に生成された信号に応じて、前記利用可能な物理データ記憶場所のうちの前記１つを選択するように構成される、請求項１に記載のデータ記憶回路。
【請求項５】
前記データ記憶回路は、疑似ランダムイベント生成器をさらに備え、前記データ記憶回路は、前記疑似ランダムイベント生成器によって生成されたイベントに応じて、前記利用可能な物理データ記憶場所のうちの前記１つを選択するように構成される、請求項１に記載のデータ記憶回路。
【請求項６】
前記リネーミング回路は、自動的に、現在マッピングされている物理データ記憶場所のリマッピングを行うように構成される、請求項１に記載のデータ記憶回路。
【請求項７】
前記リネーミング回路は、前記データ記憶に現在記憶されている値を更新するための要求に応答して、
前記要求によって指定される前記アーキテクチャデータ記憶場所を利用可能な物理データ記憶場所にマッピングし、前記マッピングを記憶し、
前記物理データ記憶場所のためのマッピングを削除する、
請求項１に記載のデータ記憶回路。
【請求項８】
前記データ記憶が、対応する物理アドレスの組によって識別される、レジスタの物理的な組を備える、請求項１から請求項７のいずれか１項に記載のデータ記憶回路と、
レジスタのアーキテクチャの組を指定する命令の組からの命令に応答して、データを処理するためのプロセッサとを備え、
前記リネーミング回路は、前記アーキテクチャのレジスタの組からのレジスタを前記物理的な組の中のレジスタにマッピングする、データ処理装置。
【請求項９】
複数のデータ記憶場所を備えるデータ記憶を有するデータ記憶回路内にデータを記憶する方法であって、
前記データ記憶回路が、前記データ記憶にアクセスするための要求を受信するステップと、
前記要求が、データを記憶するための要求である場合、
前記データ記憶回路が、前記複数の物理データ記憶場所のいずれが、その中にデータを記憶するために利用可能であるかを判定し、疑似ランダムプロセスに従って前記アーキテクチャデータ記憶場所をマッピングするために、前記データ記憶内のすべての物理データ記憶場所を含む利用可能な物理データ記憶場所のうちの１つを前記データ記憶回路が選択することによって、前記アクセス要求において指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするステップ、
前記利用可能な物理データ記憶場所の中から現在有効データを記憶している第１の物理データ記憶場所を選択することに応答して、前記疑似ランダムプロセスに従って前記利用可能な物理データ記憶場所のうち、前記第１の物理データ記憶場所と異なる第２の物理データ記憶場所を前記データ記憶回路が選択し、前記有効データを前記第２の物理データ記憶場所に前記データ記憶回路が書き込み、前記第２の物理データ記憶場所のためのマッピングを前記データ記憶回路が記憶するステップ、および
前記物理データ記憶場所に応じて生成された暗号化キーを使用して、前記データの前記マッピングからの前記物理データ記憶場所への記憶に先立って、前記データ記憶回路が前記データを暗号化するステップ、または
前記要求が、データを読み取ることである場合、
マッピングの記憶から、前記アクセス要求において指定されたアーキテクチャデータ記憶場所に対応する物理データ記憶場所を前記データ記憶回路が判定するステップ、および
前記物理データ記憶場所に応じて生成された復号キーを使用して、前記マッピングからの前記物理データ記憶場所から読み取られたデータを前記データ記憶回路が復号するステップと、
含む、方法。
【請求項１０】
前記データ記憶に現在記憶されている値を更新するための要求に応答して、
前記値を現在記憶している前記物理データ記憶場所を、有効データを記憶しておらず、前記物理データ記憶場所のための前記マッピングを削除するとして更新されるよう、前記データ記憶回路がマーキングするステップと、
前記要求によって指定される前記アーキテクチャデータ記憶場所を利用可能な物理データ記憶場所に前記データ記憶回路がマッピングするステップと、
前記マッピングを前記データ記憶回路が記憶するステップと、
をさらに備える、請求項９に記載の方法。
【請求項１１】
データ記憶回路であって、
複数のデータ記憶場所を含む、データを記憶するための手段と、
データを記憶するための前記手段にアクセスするための要求を受信するための入力手段と、
前記アクセス要求において指定されたアーキテクチャデータ記憶場所を、データを記憶するための前記手段内の物理データ記憶場所にマッピングするためのリネーミング手段と、
前記データを、データを記憶するための前記手段へ記憶することに先立って、データを暗号化し、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するための暗号化手段と、
データを記憶するための前記手段から読み取られたデータを復号し、そこから前記データが読み取られる前記物理データ記憶場所に応じて、復号キーを生成するための復号手段と、
を備え、
前記リネーミング手段は、前記複数の物理データ記憶場所のいずれが、アクセス要求において指定されるデータを記憶するために利用可能であるかを判定し、疑似ランダムプロセスに従って前記アーキテクチャデータ記憶場所をマッピングし、かつ、有効データを現在記憶している物理データ記憶場所のためのマッピングを記憶するために、前記利用可能な物理データ記憶場所のうちの１つを選択することによって、前記マッピングを行うように構成され、
前記利用可能な物理データ記憶場所は、データを記憶するための前記手段内のすべての物理データ記憶場所を含み、
前記リネーミング手段は、前記リネーミング手段が、前記利用可能な物理データ記憶場所の中から現在マッピングされている第１の物理データ記憶場所を選択する場合、前記疑似ランダムプロセスに従って前記利用可能な物理データ記憶場所のうち、前記第１の物理データ記憶場所と異なる第２の物理データ記憶場所を選択し、前記第１の物理データ記憶場所に記憶されているデータを前記第２の物理データ記憶場所に書き込み、前記第２の物理データ記憶場所のためのマッピングを記憶し、前記アクセス要求において指定される前記データを前記第１の物理データ記憶場所に記憶するように構成される、
データ記憶回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理の分野に関し、具体的には、安全なデータ処理の間のデータの記憶を提供することに関する。
【背景技術】
【０００２】
データおよびそのデータの処理が、外部に不可視であるように、処理の間、データを安全かつ機密に維持することは、極秘データを処理するシステムにおいて既知の問題である。例えば、スマートカードは、ユーザにアクセス可能であってはならない機密データを暗号化するために使用される、暗号キーを記憶してもよい。その動作の間、システムの差分電力解析、すなわち、ＤＰＡ等の技法の使用は、システム内に記憶された暗号キー等の安全なデータに関する情報を人的に判定することができるようにする場合があるデータを提供する可能性があることが見出されている。
【０００３】
種々の技法が、システムのセキュリティに対するそのような攻撃を阻止する試みとして考案されている。例えば、Ｍａｙらによる「Ｒａｎｄｏｍ  Ｒｅｇｉｓｔｅｒ  Ｒｅｎａｍｉｎｇ  ｔｏ  ｆｏｉｌ  ＤＰＡ」は、レジスタリネーミングの間に、選択された一連の利用可能なレジスタからランダムに選択されたレジスタの使用が、どのようにＤＰＡの使用を可能とし、記憶されたデータ記憶の有効性が低いことを判定することができるかについて説明している。例えば、レジスタへの書き込み時、使用される電力の量は、反転されるビットの数に依存し、したがって、電力シグネチュアの分析およびレジスタに元々何が記憶されていたかを知っていることは、ユーザに、記憶されていた最終値に関する情報を判定可能にする場合がある。上書きされるべき値を記憶するレジスタが、複数の利用可能なレジスタからランダムに選択される場合、上書きされる値は、予め判定されず、この値を知っていることを伴わずには、ＤＰＡは、有効性が低い。
【０００４】
機密データを処理するシステム内における高められたセキュリティを提供することが望ましい。
【発明の概要】
【０００５】
第１の態様から見ると、本発明は、データを記憶するための複数のデータ記憶場所を備える、データ記憶と、前記データ記憶にアクセスするための要求を受信するための入力と、前記データ記憶内の物理データ記憶場所への前記アクセス要求に指定されるアーキテクチャデータ記憶場所をマッピングするためのリネーミング回路と、前記データ記憶内への前記データの記憶に先立って、データを暗号化するための暗号化回路であって、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するように構成される、暗号化回路と、前記データ記憶から読み取られたデータを復号するための復号回路であって、そこから前記データが読み取られる前記物理データ記憶場所に応じて、復号化キーを生成するように構成される、復号回路と、を備える、データ記憶回路を提供する。
【０００６】
本発明は、記憶されたデータの暗号化が、システムのセキュリティを向上させるのに役立ち、異なるキーが各暗号化のために使用される場合、データへのアクセスをより困難にするだけではなく、記憶プロセスが、異なる量の電力を必要とし、システムのあらゆる有用な差分電力解析を阻止するであろうことを認識する。しかしながら、また、各暗号化のための異なるキーの生成および記憶は、特に、データ記憶のタイミング制約内において、行うことが困難であることも認識する。
【０００７】
本発明は、リネーミング回路を使用するシステムでは、次に、そこにアーキテクチャデータ記憶場所がマッピングされてもよい、物理データ記憶場所が、マッピング毎に変化することを認識する。これは、値が記憶される毎に変化するのに伴って、物理データ記憶場所に関する情報を、暗号化においてキーとして使用するために適切にし、後でデータ値にアクセスするために、いずれの場合にも、記憶される必要がある。したがって、これは値を復号するために利用可能となるであろう。したがって、システム内に既に存在する論理を利用して、暗号化のためのキーを生成するために使用することができる値を提供および記憶し、それによって、よりセキュアなシステムを提供する、システムが提供される。
【０００８】
物理記憶場所の識別が、キーを生成するために使用されるが、他の情報もまた、この値に加え、使用されてもよいことに留意されたい。
【０００９】
データ記憶は、いくつかの実施形態では、いくつかの形態をとってもよいが、前記データ記憶は、レジスタバンクを備え、前記複数のデータ記憶場所は、複数のレジスタを備える。
【００１０】
多くの処理装置では、レジスタは、データ記憶場所に迅速かつ容易にアクセスするように提供される。概して、いくつかのレジスタが処理装置内に存在し、いくつかのレジスタは、命令セット内の命令によって指定される。コンパクトなエンコーディングを有するために、ほとんどのプロセッサ命令セットは、直接ネーミングすることができる小さい組のレジスタ場所を有する。したがって、概して、レジスタバンクに存在する物理レジスタの数は、命令によって識別可能なレジスタの数を上回る。したがって、シリコン内に存在するレジスタのすべてを利用するために、レジスタのリネーミンが、レジスタリネーミング回路を使用して、処理の間に行われる。
【００１１】
いくつかの実施形態では、前記物理データ記憶場所は、対応する物理アドレスによって識別され、前記暗号化キーおよび復号キーは、前記物理アドレスから生成される。
【００１２】
データ記憶場所は、いくつかの方法で識別されてもよく、この識別は、暗号化キーおよび復号キーを生成するために使用されてもよいが、いくつかの実施形態では、使用される物理アドレスである。
【００１３】
いくつかの実施形態では、前記リネーミング回路は、どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、前記利用可能な物理データ記憶場所のうちの１つを選択し、アルゴリズムに従って、そこに前記アーキテクチャデータ記憶場所をマッピングし、有効データを現在記憶しているデータ記憶場所のためのマッピングを記憶することによって、前記マッピングを行うように構成される。
【００１４】
リネーミング回路は、アルゴリズムに従って、アーキテクチャデータ記憶場所をマップすべき物理データ記憶場所を判定してもよい。これは、決定論的な方法で行われるが、選択された物理データ記憶場所は、アルゴリズムが使用する、利用可能な物理データ記憶場所に応じて、変動するであろう。これは、選択された物理データ記憶場所を暗号化キーを生成する際の使用にさらに適切にする。
【００１５】
他の実施形態では、前記リネーミング回路は、どの前記複数の物理データ記憶場所が、その中にデータを記憶するために利用可能であるかを判定し、前記利用可能な物理データ記憶場所のうちの１つを選択し、ランダムまたは疑似ランダムプロセスに従って、そこに前記アーキテクチャデータ記憶場所をマッピングし、有効データを現在記憶している物理データ記憶場所のためのマッピングを記憶することによって、前記マッピングを行うように構成される。
【００１６】
物理記憶場所をランダムまたは疑似ランダム的に選択することが好ましい場合がある。値を完全にランダムに選択することは、行うことが困難である場合があり、疑似ランダム選択は、差分電力解析を阻止するために十分なノイズを提供するのに概して十分となるであろうことに留意されたい。先行技術の段落に記載のように、値を記憶するためのレジスタのランダム選択は、差分電力解析を阻止し、したがって、これは記憶されたデータの暗号化に加え、その中に記憶される記憶場所がランダム的にまたは少なくとも疑似ランダム的に選択される場合、システムのセキュリティをさらに向上させる場合がある。
【００１７】
ランダムまたは疑似ランダム選択は、リネーミング回路に入力される、外部生成された信号を使用することによって行われてもよく、またはデータ記憶回路自体内のランダムイベント生成器または疑似ランダムイベント生成器によって行われてもよい。
【００１８】
いくつかの実施形態では、利用可能な物理データ記憶場所を選択する場合、利用可能な物理記憶場所は、有効データを現在記憶していない物理データ記憶場所である。言い換えると、それらは、アーキテクチャ記憶場所に現在マッピングされておらず、データを記憶するために自由に使える、物理データ記憶場所である。
【００１９】
代替として、前記利用可能な物理データ記憶場所はすべて、前記データ記憶内の物理データ記憶場所であって、前記リネーミング回路は、前記現在マッピングされている物理記憶場所が選択される場合、現在マッピングされている物理データ記憶場所に記憶されたデータを別の物理データ記憶場所に書き込み、前記別の物理データ記憶場所のためのマッピングを記憶するように構成される。
【００２０】
いくつかの実施形態では、有効データを現在記憶していない物理データ記憶場所を使用するだけではなく、リネーミング回路は、物理データ記憶場所のいずれかを選択し、その中にデータを記憶してもよい。それらが、現在マッピングされている物理データ記憶場所を選択する場合、その中に記憶されたデータは、別の物理データ記憶場所に書き込まれ、マッピングテーブルが、この新しいマッピングを記憶するように更新されなければならない。その際、記憶されたデータは、記憶場所の物理アドレスから生成される暗号化キーによって暗号化される。したがって、それを異なる場所に記憶する前に、復号され、次いで、新しい場所のアドレスから生成されるキーによって暗号化されなければならない。次いで、選択された物理データ記憶場所は、到着した新しいデータ値を記憶するために使用され、これに対するマッピングが記憶される。このシステムが、使用される場合、明らかに、有効データを現在記憶していない物理データ記憶場所が、使用される場合より多くの電力が消費される。しかしながら、これは、システムに導入されるより多くのノイズが存在し、外部の人物が、現在行われていることを分析するのがより困難となることを意味する。
【００２１】
いくつかの実施形態では、前記リネーミング回路は、自動的に、現在マッピングされている物理データ記憶場所のリマッピングを行うように構成される。
【００２２】
ノイズを生成する付加的方法は、リネーミング回路が、自動的に、現在マッピングされている物理データ記憶場所のアーキテクチャデータ記憶場所へのリマッピングを行うことである。リネーミング回路は、データアクセス要求に応答して、これを行ってもよく、または周期的に行ってもよく、または何らかの他の要因に応じて、これを行うように構成されてもよい。ランダムリマッピングは、付加的電力シグネチュアを導入し、システムをさらにより分析困難にする。記憶されたデータの復号および再暗号化は、物理アドレス、ひいては暗号化キーが変化する場合、要求されることに留意されたい。
【００２３】
いくつかの実施形態では、前記リネーミング回路は、前記データ記憶に現在記憶されている値を更新するための要求に応答し、有効データを記憶していないものとして更新される、前記値を現在記憶する前記物理データ記憶場所をマーキングし、前記物理データ記憶場所のためのマッピングを削除し、
前記要求によって指定される前記アーキテクチャデータ記憶場所を利用可能な物理データ記憶場所にマッピングし、前記マッピングを記憶する。
【００２４】
値を更新するための要求が受信される場合、この値をこのアーキテクチャレジスタに既にマッピングされている物理データ記憶場所に書き込むのではなく、新しいマッピングが行われ、このアーキテクチャレジスタのための以前のマッピングは、削除される。ここでも、これは、システムを外部分析するのを困難にする。
【００２５】
本発明の第２の態様は、対応する物理アドレスの組によって識別される物理的なレジスタの組を備える、本発明の第１の態様に従うデータ記憶回路と、アーキテクチャのレジスタの組を指定する、命令の組からの命令に応答して、データを処理するためのプロセッサと、前記アーキテクチャの組からのレジスタを前記物理セット内のレジスタにマッピングするリネーミング回路と、を備える、データ処理装置を提供する。
【００２６】
本発明の第３の態様は、前記データ記憶にアクセスするための要求を受信するステップと、前記要求が、データを記憶するための要求である場合、前記アクセス要求に指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするステップと、前記物理データ記憶場所に応じて生成される暗号化キーを使用して、前記マッピングから、前記データを前記物理データ記憶場所へ記憶することに先立って、前記データを暗号化するステップと、または前記要求が、データを読み取るための要求である場合、マッピングの記憶から、前記アクセス要求に指定されるアーキテクチャデータ記憶場所に対応する物理データ記憶場所を判定するステップと、前記物理データ記憶場所に応じて生成された暗号化キーを使用して、前記マッピングから、前記物理データ記憶場所から読み取られたデータを復号するステップを含む、複数のデータ記憶場所を備える、データ記憶内にデータを記憶する方法を提供する。
【００２７】
本発明の第４の態様は、複数のデータ記憶場所を備えるデータを記憶するための手段と、前記データ記憶にアクセスするための要求を受信するための入力手段と、前記アクセス要求に指定されるアーキテクチャデータ記憶場所を前記データ記憶内の物理データ記憶場所にマッピングするためのリネーミング手段と、前記データの前記データ記憶内への記憶に先立って、データを暗号化し、その中に前記データが記憶される物理データ記憶場所に応じて、暗号化キーを生成するための暗号化手段と、前記データ記憶から読み取られたデータを復号し、そこから前記データが読み取られる前記物理データ記憶場所に応じて、復号キーを生成するための復号回路と、を備える、データ記憶回路を提供する。
【００２８】
本発明の前述および他の目的、特徴、ならびに利点は、付随の図面と併せて読み取られる、例証的実施形態の以下の発明を実施するための形態から明白となるであろう。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態に従う、データ記憶回路を示す図である。
【図２】本発明の実施形態に従う、データ処理装置を示す図である。
【図３】本発明の実施形態に従う、リネーミングテーブルを図式的に示す図である。
【図４】本発明の実施形態に従う、方法におけるステップを例証する、流れ図である。
【発明を実施するための形態】
【００３０】
図１は、リネーミング回路１８によって生成される、リネーミングテーブル２０を備える、データ記憶回路１０を示す。このリネーミングテーブルは、命令によって指定されたアーキテクチャレジスタのシリコン内に存在する物理レジスタへのマッピングを記憶する。これらのマッピングは、外部ランダムイベント生成器から入力されるランダムイベントに応答して、リネーミング回路１８によって生成される。このランダムイベント信号は、レジスタバンク内からレジスタをランダムに選択し、そのレジスタにアクセスするための命令に応答して、そこにアーキテクチャレジスタをマッピングするために使用される。
【００３１】
したがって、書込要求に応答して、アーキテクチャレジスタを示す書込アドレスが、リネーミング回路１８の書込ポートアドレス入力で受信される。このアドレスは、レジスタバンク３０内の物理レジスタのアドレスにマッピングされ、マッピングが、リネーミングテーブル２０に記憶される。次いで、この物理アドレスは、レジスタバンクデータ記憶制御回路３２および暗号化回路３５に伝送される。
【００３２】
書込要求に対応する書込データおよびリマッピングされた物理アドレスである書込アドレスは、暗号化回路３５に入力され、書込データは、この物理アドレスから生成される暗号化キーを使用して暗号化される。この暗号化キーは、物理アドレスまたは物理アドレスの少なくとも一部から直接生成されてもよく、または物理およびアーキテクチャもしくは仮想アドレスまたは物理アドレスおよびデータ自体などのようないくつかのものから生成されてもよい。暗号化は、レジスタバンク内のデータの記憶を遅延させないように、概して、非常に単純な暗号化プロセスである。
【００３３】
次いで、記憶制御回路３２は、暗号化されたデータを物理アドレスによって識別されたレジスタに書き込むように作用する。
【００３４】
読み取り要求が受信される場合、読み取られるアーキテクチャレジスタの仮想アドレスが、リネーミングテーブル２０で受信され、レジスタバンク３０内のレジスタの対応する物理アドレスが、このリネーミングテーブル内に記憶されたマッピングから判定される。次いで、このアドレスは、読み取り制御回路４２および復号回路４５に伝送される。読み取り制御回路４２は、アドレスによって示されるレジスタを選択し、選択されたレジスタに記憶されたデータを復号回路４５に出力する。復号回路４５は、このデータを受信し、リネーミングテーブル２０から入力された読み取りアドレスから復号キーを生成する。次いで、読み取りデータは、データ記憶回路１０から出力される。
【００３５】
前述のように、暗号化および復号キーは、リネーミングテーブルに記憶されたデータから生成される。このデータは、レジスタ毎に異なり、レジスタバンク３０内でデータにアクセス可能にするために、記憶される必要がある。したがって、暗号化キーのための理想的ソースである。
【００３６】
リネーミング回路１８が、ランダムイベントに応答して、物理レジスタを選択するため、選択は、ランダムであって、したがって、暗号化キーもまた、暗号化毎にランダムに変化する。これは、システムにノイズを導入し、誰かが、システムにハッキングし、有用情報を導出しようとするのを困難にする。したがって、暗号化システムは、データの記憶を遅延させないように単純であってもよいが、レジスタ選択のランダム性によって、セキュリティの向上は、実質的ものとなる。
【００３７】
この場合、ランダムイベントは、利用可能なレジスタを選択するために使用されるが、いくつかの実施形態では、アルゴリズムを使用した決定的方法で行われてもよいことに留意されたい。これはまた、物理レジスタの場所が、アルゴリズムおよび利用可能なレジスタに応じて変動し、したがって、ノイズがシステムに追加されるであろうため、容認可能なレベルのセキュリティを提供する場合がある。
【００３８】
また、これは、疑似ランダムイベントに応答して行われてもよい。そのようなイベントは、実際、完全にランダムなイベントは、生成が困難であるため、完全にランダムではない、イベントであるが、しかしながら、本質的に非常にランダムであって、したがって、非常に予測が困難である、イベントである。
【００３９】
その中にデータを記憶するためのレジスタを選択する際、リネーミング回路は、現在マッピングされていないそれらのレジスタから選択されてもよく、または存在するいずれかのレジスタを選択してもよい。後者を行う場合、データは、現在マッピングされているレジスタから異なるレジスタに移動される必要があり、新しいマッピングが、記憶される必要がある。これは、図３に関して、より詳細に説明される。
【００４０】
図２は、本発明の実施形態に従う、データ処理装置５０を示す。データ処理装置５０は、フェッチ段階と、デコード段階と、実行段階と、を備える、プロセッサ６０を有する。フェッチ段階は、命令キャッシュ７０から命令をフェッチし、デコード段階は、これらの命令をデコードする。次いで、実行段階は、デコードされた命令を実行するであろう。実行段階はまた、レジスタバンク３０からデータを受信してもよい。実行段階はまた、データをレジスタバンク３０に出力してもよく、またはデータを外部出力ポート５２に出力してもよい。
【００４１】
データ処理装置５０は、ランダム信号生成器８２を伴うリネーミング回路８０と、リネーミングテーブル２０と、を含む。リネーミング回路は、プロセッサ６０の実行段階から仮想アドレスまたはアーキテクチャアドレスを受信する。これらは、プロセッサ６０によって処理される命令に指定されるアドレスである。次いで、リネーミング回路８０は、これらの仮想アドレスをレジスタバンク３０内のレジスタの物理アドレスにマッピングする。これは、リネーミングテーブル２０内に現在のマッピングを記憶する。次いで、これらのマッピングからのアドレスは、レジスタバンク３０ならびに暗号化回路３５および復号回路４５に出力される。データアクセス要求が記憶要求である場合、記憶されるデータは、実行段階から出力され、暗号化回路３５に入力される。リネーミング回路は、マッピングから物理アドレスを出力し、暗号化回路は、このアドレスを使用して、暗号化キーを生成し、受信したデータを暗号化するであろう。次いで、この暗号化されたデータは、リネーミング回路８０から出力されたアドレスによって指定されたアドレスにおいて、レジスタバンク３０に記憶されるであろう。
【００４２】
実行されるデータアクセス要求が読み取り要求である場合、これに対するアドレスが、リネーミング回路８０に入力され、この仮想アドレスに対応する物理アドレスが、リネーミングテーブル２０を使用して見つけられる。次いで、このアドレスは、復号回路４５およびレジスタバンク３０に出力される。次いで、レジスタバンク３０は、そのアドレスに記憶されたデータを出力する一方、復号回路４５は、物理アドレスから復号キーを生成する。次いで、レジスタバンクから出力されたデータが、復号キーを使用して復号され、出力される。
【００４３】
このデータは、プロセッサ６０の実行段階に逆出力されてもよく、または出力ポート５２を介して出力されてもよい。
【００４４】
図３は、本発明の実施形態に従う、リネーミングテーブル２０を図式的に示す。このリネーミングテーブルは、現在のマッピングのリストを記憶し、現在マッピングされていないレジスタのリストを記憶してもよく、または現在のマッピングのリストからこれを判定してもよい。レジスタを選択し、記憶要求に応答して、それに仮想アドレスをマッピングする際、リネーミング回路は、現在マッピングされていないレジスタから選択してもよく、またはすべてのレジスタから選択してもよい。現在のマッピングの一部であるレジスタから選択する場合、以下の実施例は、何が行われるかを示す。
【００４５】
レジスタＲ５にデータを記憶するための記憶要求が受信され、ランダム生成器８１に応答して選択された物理レジスタがＰ１である場合、別のマッピングが、Ｒ０をさらなる物理レジスタにマッピングするように行われることが必要となることになる。
【００４６】
したがって、さらなるレジスタは、ランダム生成器に応答して選択され、これが、現在マッピングされていないレジスタに対するものであるとすれば、Ｐ１に現在記憶されているデータは、Ｐ１アドレスから生成されたキーを使用して復号され、次いで、このデータは、選択されたさらなるレジスタのアドレスから生成されたキーを使用して暗号化され、次いで、暗号化されたデータは、このレジスタに書き込まれ、マッピングが記憶される。例えば、選択された新しいレジスタがＰ６であった場合、Ｐ１に記憶されたデータ（復号および再暗号化後）は、Ｐ６に書き込まれ、マッピングＰ６  Ｒ０が記憶されるであろう。次いで、新しく受信されたデータは、Ｐ１に書き込まれ、マッピングＰ１  Ｒ５が記憶されるであろう。
【００４７】
いくつかの実施形態では、リネーミング回路はまた、それに関するいくつかのマッピングを周期的にスワップするように構成されてもよい。したがって、リマッピング信号に応答して、現在のマッピングのうちの１つをランダムに選択し、それを異なる物理レジスタにリマッピングし、その異なる物理レジスタにデータを記憶するであろう。例えば、現在のマッピングＰ４  Ｒ３および物理レジスタＰ１５を選択してもよく、次いで、Ｐ４に記憶された値をＰ１５に書き込み（物理アドレスから生成されたキーを使用して、データを復号し、次いで、再暗号化している）、次いで、テーブルからＰ４  Ｒ３マッピングを削除し、Ｐ１５  Ｒ３マッピングを記憶するであろう。このようにして、ノイズが、システムに追加され、システムをより分析困難にする。
【００４８】
そのような周期的リマッピングに加え、リネーミング回路はまた、記憶された値を更新するための要求に応答して、物理レジスタに記憶された値が上書きされず、むしろ、新しい物理レジスタが選択され、そのマッピングが記憶され、値がそのレジスタに書き込まれるように、リマッピングを行うようにも構成されてもよい。例えば、以下の２つの命令は、これを例証する。
ＬＤＲ  Ｒ０，ａｄｄｒ
ＡＤＤＳ  ｒ０，ｒ０，＃０
【００４９】
第１の命令は、リネーミングにより、Ｐ３であって、データをＰ３のアドレスによって暗号化する、アーキテクチャレジスタｒ０に加算器のコンテンツを書き込む。第２の命令は、ｒ０を更新することを所望するが、しかしながら、我々は、ここで、ｒ０を別のレジスタ、例えば、Ｐ６にリマッピングし、次いで、このデータをＰ６のアドレスによって暗号化する。この場合、Ｐ６に含有されるデータは、異なる暗号化キーにより、Ｐ３に含有されるものと異なる。次いで、ｒ０のＰ３へのマッピングが削除可能となる。
【００５０】
前述のように、暗号化キーおよび復号キーは、物理アドレス自体から生成可能であるが、それらはまた、データと物理アドレスとの組み合わせ、もしくはデータと仮想アドレスとの組み合わせ、またはこれらのそれぞれの一部だけから生成されてもよい。
【００５１】
図４は、本発明の実施形態に従う方法におけるステップを例証する流れ図を示す。この方法では、アーキテクチャレジスタにアクセスするためのデータアクセス要求が受信される。このデータアクセスは、ロードまたは記憶アクセス要求であってもよい。それがデータを記憶するための要求である場合、アーキテクチャレジスタが現在マッピングされているかどうかが判定される。そうではない場合、利用可能なレジスタのうちの１つが、ランダムイベントに応じて選択され、マッピングが記憶される。本実施形態では、利用可能なレジスタは、現在マッピングされていないものである。前述のように、すべてのレジスタを選択することができ、その場合、現在のマッピングの一部であるレジスタが選択された場合、この方法におけるさらなるステップが行われる必要があるであろう。しかしながら、本実施形態では、フリーレジスタが選択され、マッピングが記憶される。アーキテクチャレジスタが、現在マッピングされている場合、マッピングは削除され、削除されたマッピングの物理レジスタが、利用可能としてマーキングされる。
【００５２】
次のステップは、選択されたレジスタのアドレスからの暗号化キーの生成を伴い、次いで、データは、この暗号化キーを使用して暗号化される。次いで、暗号化されたデータは、選択されたレジスタに記憶される。
【００５３】
データアクセスが、記憶アクセスではないが、むしろ、読み取りアクセスである場合、データを現在記憶している物理レジスタが、リネーミングテーブルに記憶されたマッピングから読み出される。次いで、データが、物理レジスタから読み出され、その復号キーが、物理アドレスから生成される。次いで、物理レジスタから読み出されたデータは、この復号キーを使用して復号される。
【００５４】
本発明の例証的実施形態が、付随の図面を参照して、本明細書で詳細に説明されたが、本発明は、それらの特定の実施形態に限定されず、種々の変更および修正を、添付の特許請求の範囲によって定義されるように、本発明の範囲および精神から逸脱することなく、当業者によってそれらの中にもたらすことができることを理解されたい。
【図１】
0006046360.tif 000002
【図２】
0006046360.tif 000003
【図３】
0006046360.tif 000004
【図４】
0006046360.tif 000005