(57)【要約】【課題】  プロセッサの外部のメモリに格納されるデータを、該データが２つ以上のプロセッサで使用されなければならない場合に、プロセッサによって暗号化する新規な技術を提案する。【解決手段】  回路の外部のメモリ２３に格納されたデータの暗号化のために、初期化ベクトル（ＩＶｉ）に関連した暗号化されたデータワード（Ｃｉ）、およびデータワードの暗号化の働きをした秘密鍵（Ｋｉ）に関連する鍵識別子（ＫＩＤｉ）を外部メモリに格納する方策がなされている。【選択図】図２
2005122745.tif 000002
【特許請求の範囲】
【請求項１】
電子機器の回路（２）において、前記回路の外部にあるメモリ（２３）に格納されるデータを暗号化する方法において、
各々が鍵識別子（ＫＩＤ）に関連付けられた、前記回路の１連のレジスタ（３２）にそれぞれ格納され、少なくとも１つが前記電子機器の少なくとも１つの他の回路と共有される鍵である秘密鍵（Ｋ）のリストから秘密鍵（Ｋｉ）を選択するステップと、
データを定められた大きさのデータワード（Ｗｉ）のストリームに分割するステップと、
各データワードに対して連続的に、
前記秘密鍵と、各データワードによって値を変える初期化ベクトル（ＩＶｉ）とに基づいてアルゴリズムの発生を行う擬似乱数発生器によって、定められた大きさの擬似乱数（ＰＮｉ）を発生するステップと、
暗号化されたデータワード（Ｃｉ）を発生するように、前記データワードと、対応する擬似乱数とを組み合わせるステップと、
前記初期化ベクトルに関連して暗号化された各データワードと、前記データワードを暗号化する働きをした秘密鍵に関連する鍵識別子（ＫＩＤｉ）を前記外部メモリに格納するステップと、
を有する方法。
【請求項２】
前記組み合わせは排他的論理和の形態であり、前記擬似乱数の大きさは前記データワードの大きさに等しい、請求項１に記載の方法。
【請求項３】
前記秘密鍵の少なくとも１つは前記回路に固有である、請求項１または請求項２に記載の方法。
【請求項４】
電子機器の回路（２）において、前記回路の外部のメモリ（２３）に、暗号化されたデータワードの形式で格納されたデータを復号する方法であって、
前記外部メモリから、暗号化されたデータワード（Ｃｊ）を、前記データワードにそれぞれ関連した初期化ベクトル（ＩＶｊ）と秘密鍵識別子（ＫＩＤｊ）と共に読み出すステップと、
前記回路の一連のレジスタ（３２）にそれぞれ格納されている秘密鍵のリスト（Ｋ）、および前記電子機器の少なくとも１つの他の回路と共有される鍵である少なくとも１つの鍵に基づいて、さらに前記識別子に基づいて秘密鍵（Ｋｊ）を選択するステップと、
各暗号化されたデータに対して連続的に、
前記秘密鍵と前記初期化ベクトルとに基づいてアルゴリズムの発生を行う擬似乱数発生器（１０）によって、定められた大きさの擬似乱数（ＰＮｊ）を発生するステップと、
前記データワードと、対応する擬似乱数とを組み合わせて復号されたデータワード（Ｗｊ）を発生するステップと、
を有する方法。
【請求項５】
前記組み合わせは排他的論理和の形態であって、前記擬似乱数の大きさは前記データワードの大きさに等しい、請求項４に記載の方法。
【請求項６】
前記外部メモリから読み出される前記初期化ベクトルと前記秘密鍵識別子とが互いに関係付けられて前記回路のキャッシュメモリ（２５）に格納される、請求項４または請求項５に記載の方法。
【請求項７】
少なくとも１つが前記電子機器の他の回路と共有される鍵であり、各々が鍵識別子（ＫＩＤ）に関連しているそれぞれの秘密鍵（Ｋ）を格納する一連のレジスタ（３２）と、
前記一連のレジスタに格納された鍵のリストから秘密鍵（Ｋｉ）を選択するのに適した、秘密鍵を選択するユニットと、
定められた大きさのデータワード（Ｗｉ）のストリームを形成するように、前記データを分割するのに適した分割ユニット（２２）と、
各データワードによって値を変える初期化ベクトル（ＩＶｉ）のストリームを発生するのに適した初期化ベクトル発生器（２４）と、
前記秘密鍵と、前記初期化ベクトルの定められた１つとに基づいて、各データワードについて、定められた大きさの擬似乱数（ＰＮｉ）を発生するのに適したアルゴリズムの発生を行う擬似乱数発生器（１０）と、
暗号化されたデータワード（Ｃｉ）を発生するように、前記データワードと、対応する擬似乱数とを連続的に組み合わせるのに適した組み合わせユニット（１１）と、
前記の定められた初期化ベクトルに関連して暗号化された各データワード、およびデータワードを暗号化する働きをした秘密鍵に関連する前記鍵識別子を前記外部メモリに格納する手段と、
を有する、請求項１から請求項３のいずれか１項に記載の暗号化方法を実行する装置。
【請求項８】
少なくとも１つが共有鍵であり、各々が鍵識別子に関連しているそれぞれの秘密鍵を格納する一連のレジスタと、
データワードを、それぞれが前記データワードに関連する初期化ベクトルおよび秘密鍵識別子と共に前記外部メモリから読み出す読み出し手段と、
前記レジスタに格納された鍵のリストと、前記鍵識別子とに基づいて、各データワードについて秘密鍵を選択する選択手段と、
各データワードについて、前記秘密鍵と前記初期化ベクトルに基づいて、定められた大きさの擬似乱数を発生するのに適したアルゴリズムの発生を行う擬似乱数発生器（１０）と、
前記データワードを復号するように、前記データワードと、前期対応する擬似乱数とを組み合わせるのに適した組み合わせ器と、
を有する、請求項４から請求項６のいずれか１項に記載の復号方法を実行する装置。
【請求項９】
請求項７に記載の暗号化装置と、請求項８に記載の復号装置とを構成する暗号化／復号ユニット（３８）を有し、前記の一連のレジスタ、前記擬似乱数発生器、および前記組み合わせユニットが前記２つの装置に共通である回路。
【請求項１０】
前記組み合わせ器は排他的論理和ゲートであり、前記擬似乱数の大きさは前記データワードの大きさに等しい、請求項９に記載の回路。
【請求項１１】
前記秘密鍵の少なくとも１つは前記回路に固有である、請求項９または請求項１０に記載の回路。
【請求項１２】
前記秘密鍵の少なくとも１つは電子機器の他の回路と共有されている、請求項９から請求項１１のいずれか１項に記載の回路。
【請求項１３】
前記暗号化／復号ユニットは、前記外部メモリから読み出される前記初期化ベクトルと前記秘密鍵識別子とが互いに関連付けられて格納されるキャッシュメモリ（２５）を有する、請求項９から請求項１２のいずれか１項に記載の回路。
【請求項１４】
請求項９から請求項１３のいずれか１項に記載の少なくとも２つの回路を有し、前記秘密鍵の少なくとも１つが、セキュアなサブシステムを構成するように前記回路間で共有されている電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、１つまたは２つ以上のプロセッサに使用されるように意図されたデータの、これらのデータをプロセッサの外部のメモリに格納しなければならない場合に、エンクリプションまたは暗号化に関する。
【背景技術】
【０００２】
本発明は、いくつかの対称型プロセッサと、共有の外部メモリを有するアーキテクチャ（または「対称型マルチプロセッサ」を意味するＳＭＰアーキテクチャ）を持つ電子機器に特に応用される。特に、本発明は、権限のないユーザがデータへアクセスするのを有効に防止することが望まれ、前記データが２つ以上の回路によって少なくとも部分的にアクセスされ必要がある用途に関する。
【０００３】
ここで、用語「データ」は、データが実行可能なプログラムに関するものであっても、またはそれらのプログラムによって処理される２進データに関するものであっても、任意の２進コードを区別することなく示すものであることに触れておく。さらに、用語「回路」は、回路が、プロセッサ、周辺のコントローラ（例えば磁気ディスクコントローラ）、ネットワークカード等に関するものであっても、そうでなくても、１つまたは２つ以上の通信バスを介して他の機能ユニットに接続される電子機器の任意の機能ユニットを区別することなく示すものであることに触れておく。
【０００４】
図１は本発明が適用された、電子機器のＳＭＰアーキテクチャを概略的に示している。数個のプロセッサ２（ＣＰＵ）が、１つまたは２つ以上のバス３を介して外部メモリ４（ＥＸＴ  ＭＥＭ）に接続されている。１つまたは２つ以上のプロセッサ２が存在し、かつ処理済みデータのハッキングが不可能と考えられる領域１、いわゆるセキュア領域を定めることができる。実際には、セキュア領域１は、それぞれのプロセッサに対応する１つまたは２つ以上の集積回路チップを通常有しており、メモリ４は、セキュア領域に属さない他のチップである。さらに、ディスクコントローラ（ＤＳＫ  ＣＴＲＬ）またはネットワークカード（ＮＥＴ  ＣＡＲＤ）のような他の回路５が、バス３を介してプロセッサ２に接続されていてもよい。
【０００５】
本発明が適用される暗号化は特に、１つまたは２つ以上のバス３を介してメモリ４と領域１にある１つまたは２つ以上のプロセッサ２間を往来するデータに関する。当業者の専門用語では、メモリの暗号化またはバスの暗号化と呼ばれている。この暗号化は、関係するプロセッサには既知のバス暗号鍵によって、メモリ４に格納されたデータを符号化することである。
【０００６】
マイクロプロセッサの外部のメモリを暗号化する典型的な解決策が、特許文献１、２、および３に記載されている。
【０００７】
これらの解決策は、各プロセッサがプロセッサ自身の個々のバス暗号鍵を使用する一方、同一のバス暗号鍵を使用してデータを暗号化し復号しなければならないという限りでは、ＳＭＰアーキテクチャシステムの場合には適していない。特に、暗号化されて、前記セキュア領域の他のプロセッサと共有される外部メモリに格納されたデータを、それらを使用する目的でセキュア領域の他のプロセッサが復号できるようにする何らかの方策を講じなければならない。しかし、これらの方策は、バス暗号鍵の秘密鍵の性質に適合しなければならない。
【０００８】
他の制約は、使用される暗号化処理手順に関している。従来技術では、いわゆるＥＣＢ（「電子コードブック」）モード、またはいわゆるＣＢＣ（「暗号ブロック連鎖方式」）モードに従うＤＥＳ（「データ暗号化システム」）またはＡＥＳ（「高度の暗号化システム」）形式のアルゴリズムを持つブロック暗号化が一般に使用されている。ブロックの大きさは、使用される暗号化アルゴリズムに依存している。ＥＣＢモードでは、２つの同じブロックが同じ方法で暗号化される。したがって、同じ方法で暗号化されたメッセージの冗長性がクリアなメッセージの識別を可能にする限りでは、攻撃は、いわゆる「ディクショナリ」技術によって可能になる。一方、ＣＢＣモードでは、各ブロックは、前のブロックの関数として暗号化される。このモードはよりロバストである。しかしながら、ＣＢＣモードは、メモリへのシーケンシャルなアクセスを必要とし、その結果、メモリと、外部メモリ内の任意にアクセスされることが望まれるデータの暗号化との互換性がなくなる。
【特許文献１】米国特許第５，８２５，８７８号
【特許文献２】米国特許第５，９８２，８８７号
【特許文献３】米国特許第６，０４１，４４９号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、ＳＭＰアーキテクチャを有する電子機器との関連において、このプロセッサの外部のメモリに格納されるデータを、このデータが２つ以上のプロセッサで使用できなければならない場合に、そのプロセッサによって暗号化する新規な技術を提案することを目的とする。
【課題を解決するための手段】
【００１０】
この目的のために、本発明の第１の態様は、電子機器の回路において、回路の外部にあるメモリに格納されるデータを暗号化する方法であって、
各々が鍵識別子に関連付けられた、回路の一連のレジスタにそれぞれ格納され、少なくとも１つが電子機器の少なくとも１つの他の回路と共有される鍵である秘密鍵のリストから秘密鍵を選択するステップと、
データを定められた大きさのデータワードのストリームに分割するステップと、
各データワードに対して連続的に、
前記秘密鍵と、各データワードによって値を変える初期化ベクトルとに基づいてアルゴリズムの発生を行う擬似乱数発生器によって、定められた大きさの擬似乱数を発生するステップと、
暗号化されたデータワードを発生するように、データワードと、対応する擬似乱数とを組み合わせるステップと、
初期化ベクトルに関連して暗号化された各データワードと、データワードを暗号化する働きをした秘密鍵に関連する鍵識別子とを前記外部メモリに格納するステップと、
を有する方法を提供する。
【００１１】
本発明の第２の態様は、電子機器の回路において、該回路の外部のメモリに、暗号化されたデータワードの形式で格納されたデータを復号する方法であって、
前記外部メモリから、暗号化されたデータワードを初期化ベクトルと、前記データワードにそれぞれ関連した秘密鍵識別子と共に読み出すステップと、
前記回路の一連のレジスタにそれぞれ格納されている秘密鍵のリスト、および前記電子機器の少なくとも１つの他の回路と共有される鍵である少なくとも１つの鍵に基づいて、さらに前記識別子に基づいて秘密鍵を選択するステップと、
各暗号化されたデータに対して連続的に、
前記秘密鍵と前記初期化ベクトルとに基づいてアルゴリズムを発生する擬似乱数発生器によって、定められた大きさの擬似乱数を発生するステップと、
データワードと、対応する擬似乱数とを組み合わせて復号されたデータワードを発生するステップと、
を有する。
【００１２】
本発明の第３の態様は、第１の態様による暗号化方法を実行する装置であって、
少なくとも１つが電子機器の他の回路と共有される鍵であり、各々が鍵識別子に関連しているそれぞれの秘密鍵を格納する一連のレジスタと、
前記一連のレジスタに格納された鍵のリストから秘密鍵を選択するのに適した、秘密鍵を選択するユニットと、
定められた大きさのデータワードのストリームを形成するように、データを分割するのに適した分割ユニットと、
各データワードによって値を変える初期化ベクトルのストリームを発生するのに適した初期化ベクトル発生器と、
前記秘密鍵と、初期化ベクトルの定められた１つとに基づいて、各データワードについて、定められた大きさの擬似乱数を発生するのに適したアルゴリズムの発生を行う擬似乱数発生器と、
暗号化されたデータワードを発生するように、データワードと、対応する擬似乱数とを連続的に組み合わせるのに適した組み合わせユニットと、
前記定められた初期化ベクトルに関連して暗号化された各データワード、およびデータワードを暗号化する働きをした秘密鍵に関連する鍵識別子を前記外部メモリに格納する手段と、
を有する。
【００１３】
さらに、第４の態様によれば、本発明は、第２の態様による復号方法を実行する装置を提案する。この装置は、
少なくとも１つが共有鍵であり、各々が鍵識別子に関連しているそれぞれの秘密鍵を格納する一連のレジスタと、
データワードを、それぞれが前記データワードに関連する初期化ベクトルおよび秘密鍵識別子と共に前記外部メモリから読み出す読み出し手段と、
前記レジスタに格納された鍵のリストと、前記鍵識別子に基づいて、各データワードについて秘密鍵を選択する選択手段と、
各データワードについて、前記秘密鍵と前記初期化ベクトルに基づいて、定められた大きさの擬似乱数を発生するのに適したアルゴリズムの発生を行う擬似乱数発生器と、
前記データワードを復号するように、データワードと、対応する擬似乱数とを組み合わせるのに適した組み合わせユニットと、
を有する。
【００１４】
本発明の第５の態様は、第３の態様による暗号化装置と、第４の態様による復号装置と構成する暗号化／復号ユニットを有する回路に関するものである。一連のレジスタ、擬似乱数発生器、および組み合わせ器は２つの装置に共通である。
【００１５】
第６、すなわち最後の態様によれば、本発明は、第５の態様による少なくとも２つの回路を有し、秘密鍵の少なくとも１つがセキュアなサブシステムを構成するように前記回路間で共有されている電子機器をさらに提案している。
【００１６】
電子機器の他の回路が鍵、例えばセキュアな領域に、すなわちセキュアなサブシステム属する回路を知っているという意味において鍵が共有されていると述べている。このように、本発明は、外部メモリに格納されたデータを使用する権限を有するプロセッサがすべてそれらのデータを復号できることを確保しつつ、暗号化を実行するプロセッサによる暗号化のカスタマイズを可能にする解決策を提供する。
【００１７】
本発明による暗号化は、ブロック暗号化よりも簡単で、したがってより高速な連続した暗号化（「ストリーム暗号化」）である。連続的な暗号化は、同じデータワードが各暗号化で異なったワードに暗号化されるので、ディクショナリベースの攻撃に対して影響をより受けない。
【００１８】
さらに、本発明による暗号化は、外部メモリへのランダムアクセスに適合している。
【００１９】
本発明の他の特徴および利点は、下記の説明を読むことによってさらに明らかになるであろう。この説明は純粋に例示であり、添付の図面とともに読まれるべきである。
【発明を実施するための最良の形態】
【００２０】
図において、類似の要素は、種々の図面において同じ参照番号で示されている。説明を簡単にするために、本発明の理解に必要な方法の各ステップおよび構成要素のみを示していて、それについて以下に説明する。特に、本発明は、本発明を実施するのに周知の構成要素を利用しているので、回路のすべての構成要素を必ずしも詳述しているものではない。
【００２１】
本発明の特徴は、電子機器のいくつかの回路によって共有される外部メモリに格納されなければならないデータ（プログラム、任意の２進データ）の暗号化にある。データは、
暗号化を行う回路に固有で、同様の暗号化のために他の回路によって使用される秘密鍵とは異なることがある秘密鍵によって暗号化される。
【００２２】
２つ以上の回路によって暗号化されたデータを使用できるようにするために、回路で使用される秘密鍵の少なくともいくつかは、１つまたは２つ以上の他の回路と共有される、すなわち、秘密鍵は、これらの回路に対しては既知であるが、システムの残りに関して秘密である。共有鍵は、外部メモリに格納された共通のデータを使用することができる回路のサブシステムを定めている。通常、このサブシステムは、図１に関する序論の中で示されるようなセキュアな領域に対応していてもよい。
【００２３】
さらに、データは、データを暗号化する働きをした秘密鍵識別子に関連付けて外部メモリに格納される。この識別子は、許可された回路が、データの復号に使用される秘密鍵を定めることができるようにする。この識別子は、回路によって支援された秘密鍵がそれぞれ格納される一連の内部レジスタのインデックスに対応することができる。したがって、それは秘密鍵によって暗号化されたデータと共に格納される識別子自身ではなく、この秘密鍵の識別子である。許可された回路のみが、使用される秘密鍵をこの識別子に基づいて知り得るので、外部メモリへの格納による識別子の公開は、暗号化のもろさをもたらすものではない。
【００２４】
本発明の他の特徴は、回路と外部メモリの間での転送中、暗号化および復号が連続的に行なわれるようになっているということである。この連続的な暗号化は、チョッピング（ｃｈｏｐｐｉｎｇ）後外部メモリに暗号化された形態で格納されるデータを、決められた大きさのワードにチョッピングすることによって得られる。データワードと、数字が秘密鍵および初期化ベクトルに基づいて発生される擬似乱数との組み合わせを使用する暗号化も行なわれるようになっている。
【００２５】
初期化ベクトルは、暗号化のセキュリティを強化するように、各ワードについて値を好ましくは無作為に変更するのが有利である。データワードの暗号化の働きをした初期化ベクトルは、上述したように、秘密鍵の識別子と同じように、暗号化されたデータワードに関連付けて外部メモリに格納されるのが有利である。したがって、従来、メモリへのダイレクトランダムアクセスとの両立が困難であった連続的な暗号化に伴なう問題は回避される。
【００２６】
図２は、本暗号化方法の実施（実線の矢印で示す）および本復号方法の実施（破線の矢印で示す）に適した回路の例示的な実施形態の基本的な手段を示している。
【００２７】
この回路はここでは、プロセッサコア４４（ＣＯＲＥ）と、キャッシュメモリ３３および３４（ＣＡＣＨＥ）と、暗号鍵（Ｋ）選択ユニット３１（ＫＳＥＬ）と、暗号化／復号ユニット３８（ＢＥＵ）とを有するプロセッサ２（ＣＰＵ）である。
【００２８】
ユニット３８は、データを分割するユニット２２（ＳＥＧＭ）と、秘密鍵の一連のレジスタ３２（ＫＲＥＧ）と、第１の擬似乱数発生器２４（ＩＶＧＥＮ）と、キャッシュメモリ２５（ＩＶＣＡＣＨＥ）と、暗号鍵レジスタ１２および初期化ベクトルレジスタ１３と、第２の擬似乱数発生器１０（ＰＲＮＧ）と、組み合わせ器１１とを有する。
【００２９】
分割ユニット２２の機能は、それがプロセッサコア４４から入力する、暗号化されるデータ（ＤＡＴＡ）データを、定められた大きさのデータワード（Ｗ）に分割することである。したがって、データワードは、単一ビットを有していてもよい。しかし、ワードの大きさは、１バイト、すなわち８ビットからなる１ワードに等しいのが好ましい。
【００３０】
一連の各レジスタ３２は、秘密鍵識別子（ＫＩＤ）と関連する秘密鍵（Ｋ）の不揮発性メモリが適している。秘密鍵のすべてまたはいくつかは、例えば本システムの製造中、セキュアなチャンネルを介してプロセッサに与えられてもよい。逆に、秘密鍵の少なくともいくつかは、説明が本発明の範囲外であろう特別なアルゴリズムにしたがって内部で生成されてもよい。簡単化のために好ましい例において、識別子は、レジスタ番号のようなインデックスであり、プロセッサによって支援され、一連のレジスタ３２に格納された秘密鍵のリスト内の対応する秘密鍵にアクセスすることを可能にする。
【００３１】
乱数発生器２４は、任意の擬似乱数的なアルゴリズムによって、暗号化されるデータワード当たり１つの初期化ベクトルの割合で、初期化ベクトルを発生するのに適している。
【００３２】
キャッシュメモリ２５は、それぞれが、データワードに関連する初期化ベクトルと鍵識別子によって構成されたペアを格納するのに適している。
【００３３】
レジスタ１２は、暗号鍵、すなわち一連のレジスタ３２に格納された秘密鍵の１つを格納するのに適している。このレジスタはその重要性を明確するために、ここに示したが、一連のレジスタ３２の管理に適切な手段が講じられる場合には、省略してもよい。
【００３４】
初期化ベクトルレジスタ１３の機能は、擬似乱数発生器２４によって連続的に発生された初期化ベクトルを格納することである。初期化ベクトルの大きさは、暗号化されるデータワードの大きさに等しいのが好ましい。
【００３５】
擬似乱数発生器１０の役割は、擬似乱数（ＰＮ）のストリームを、暗号化されるデータワード当たりそのような擬似乱数を１つの割合で、連続的に発生させることである。各擬似乱数は、レジスタ１２に格納された暗号鍵、およびレジスタ１３に格納され、各データワードで値が変わる各初期化ベクトルに基づいて発生される。
【００３６】
例では、組み合わせ器は排他的論理和（ＸＯＲ）ゲートである。擬似乱数発生器１０とＸＯＲゲートは、それ自体、当業者によく知られている暗号系を構成する。組み合わせ器が出力として送出する暗号化されたデータワードは、入力として受け取った（暗号化以前の）データワードと同じ大きさを有している。このような暗号系は、簡単な、したがって高速の暗号化アルゴリズム、および擬似乱数発生器１０の内部の詳細によって決定されるセキュリティ攻撃に対するロバスト８を有する利点がある。擬似乱数発生器１０によって発生される乱数のストリームＰＮがランダムになればなるほど、暗号化アルゴリズムのセキュリティは向上する。ＸＯＲゲートに基づいた暗号化アルゴリズムの他の利点は、復号が暗号化と同じ方法で行なわれ、その結果暗号系のハードウェア構造が簡単になることである。
【００３７】
ここで、図２に示した実線を考慮しながら、暗号化モードにおける本回路の動作を説明する。
【００３８】
暗号化モードは通常、キャッシュメモリ４４に格納された、またはキャッシュメモリ４４を通して流れるデータＤＡＴＡが外部メモリ２３に書き込まれなければならないとき、および、この書き込みのために通信バス３を介して流れなければならないときに、プロセッサコア４４によって起動される。
【００３９】
コア４４は、一連のレジスタ３２に格納された秘密鍵の１つを選択するように選択ユニット３１に指令する。例では、ユニット３１は、定められた秘密鍵に関連する秘密鍵識別子ＫＩＤｉを選択する。この識別子ＫＩＤｉは、ユニット３１によって暗号化ユニット３８に送出される。
【００４０】
暗号化ユニット３８では、一連のレジスタ３２を通る、例えばインデックスとして使用される、識別子ＫＩＤｉに関連する鍵Ｋｉが、前記識別子ＫＩＤｉによってレジスタセット３２から読み出される。鍵Ｋｉは、次にレジスタ１２に格納される。
【００４１】
また、コア４４は、データＤＡＴＡが暗号化ユニット３８に、特に分割ユニット２２の入力として送出されるようにキャッシュメモリ４４に指令する。分割ユニット２２は、各々がデータストリームＤＡＴＡのセグメントに対応する２進ワードＷｉのストリームを送出する。平行して、擬似乱数発生器２４は、ユニット２２によるデータワードＷｉの送出の速度で初期化ベクトルＩＶｉのストリームを発生し、これらの初期化ベクトルは、各ワードＷｉによって値を変える。別の言い方をすれば、各データワードＷｉは、値がデータワードストリーム中の前のワードに関連する初期化ベクトルの値とは異なる初期化ベクトルＩＶｉに関連している。連続的に発生される初期化ベクトルＩＶｉは、その都度レジスタ１３に格納される。
【００４２】
各データワードＷｉに対して、次に、以下の動作が連続的に行なわれる。
【００４３】
一方で、擬似乱数発生器１０は、レジスタ１２に格納された秘密鍵Ｋｉおよびレジスタ１３に格納された初期化ベクトルＩＶｉに基づいて、擬似乱数ＰＮｉを発生する。擬似乱数ＰＮｉは、ＸＯＲゲート１１の第２の入力に毎回送出される。
【００４４】
他方で、データワードＷｉと、対応する擬似乱数ＰＮｉは、暗号化されたデータワードＣｉを発生するようにＸＯＲゲート１１によって組み合わせられる。
【００４５】
暗号化ユニット３８は次に、ワードＣｉを初期化ベクトルＩＶｉ、およびそれを暗号化する役目をした秘密鍵識別子ＫＩＤｉと一緒におよびこれらと関連づけて外部メモリ２３に格納する。この書き込みのために、暗号化されたデータワードＣｉ、初期化ベクトルＩＶｉ、および秘密鍵識別子ＫＩＤｉは、通信バス３を通って流れる。しかし、ワードＣｉが暗号化され、初期化ベクトルＩＶｉがそれ自身で復号を行うのには不十分であり、およびこの識別子に関連する秘密鍵が利用できない他の回路に対して識別子ＫＩＤｉが重要ではない限りでは、このことは、本暗号化方法のセキュリティの弱点にはならない。
【００４６】
ここで、復号モードにおける回路の動作を、図２に示した破線矢印を考慮して、説明する。
【００４７】
暗号化されたデータワードは、プロセッサコア４４の制御で、外部メモリ２３の決められられたアドレスから読み出される。このように読み出された各ワードＣｊは、ＸＯＲゲート１１の第１の入力に入力される。各ワードＣｊについて、このワードに関連する初期化ベクトルＩＶｊおよび秘密鍵識別子ＫＩＤｊも外部メモリ２３から読み出される。
【００４８】
復号ユニット３８は、識別子ＫＩＤｊに基づいて、一連のレジスタ３２に格納された秘密鍵のリストを検索することによって、この識別子に関連する秘密鍵Ｋｊを選択する。このように選択された鍵Ｋｊは、レジスタ１２に格納される。これと平行してベクトルＩＶｊがレジスタ１３に格納される。
【００４９】
実際、ベクトルＩＶｊおよび識別子ＫＩＤｊは、キャッシュメモリ２５を介して流れる。キャッシュメモリをこのように配置することによって、復号ユニットの性能を復号速度の点で改善できる。擬似乱数発生器１０は次に、レジスタ１２に格納された鍵Ｋｊおよびレジスタ１３に格納されたベクトルＩＶｊに基づいて擬似乱数ＰＮｊを発生する。擬似乱数ＰＮｊはＸＯＲゲート１１の第２の入力に送出される。
【００５０】
ＸＯＲゲート１１は、暗号化されたデータワードＣｊと擬似乱数ＰＮｊを組み合わせて、復号されたワードＣｊに対応するデータワードＷｊを出力として送出する。
【００５１】
復号されたデータワードＷｊは次に、キャッシュメモリ３３を通してプロセッサコア４４に送出される。
【００５２】
勿論、本発明は、当業者に明らかな種々の変形と修正を行うことができる。特に、本発明は、秘密鍵および初期化ベクトルに基づいて、擬似乱数発生器１０に条件を付ける任意の周知の連続的な暗号化アルゴリズムで実施することができる。さらに、本発明の実際的な実施形態は、上記の所与の機能上の表現に基づいて当業者が実施できる範囲内にあるとみなされだろう。この点に関しては、ここで説明した本発明の一実施形態によって、種々の暗号化および復号手法が、プロセッサのハードウェア資源によって具体化されることに注意されたい。ただし、ソフトウェア資源による実施も当然考えられるであろう。
【００５３】
さらに、本発明は、プロセッサにおける用途を決して制限するものではない。それとは全く逆に、上に説明したユニット３８のような暗号化／復号ユニットは、図１に、特にディスクコントローラまたはネットワークカードで示したような電子機器の他の回路において考えることができるであろう。
【００５４】
外部メモリに格納されたデータの全てを必ずしも暗号化する必要がないことにも注意されたい。この点に関して、鍵識別子が０から、対応するデータワードの暗号化がなくなるデータに対応する値、すなわち前記データワードが明らかに外部メモリに格納されている値を有するようにしてもよい。
【図面の簡単な説明】
【００５５】
【図１】本発明の種々の態様が適用できる電子機器の図である。
【図２】本発明による回路の一実施形態による、外部メモリに接続された例示的な回路の機能図である。
【符号の説明】
【００５６】
１      セキュアな領域
２      ＣＰＵ
３      バス
４、２３        外部メモリ
５      ネットワークカード／ディスクコントローラ
１０    擬似乱数発生器
１１    ＸＯＲゲート
１２、１３      レジスタ
２２    分割ユニット
２４    擬似乱数発生器
２５、３３、３４        キャッシュメモリ
３１    選択ユニット
３２    レジスタセット
３８    復号ユニット
４４    プロセッサコア
【図１】
2005122745.tif 000003
【図２】
2005122745.tif 000004