(57)【特許請求の範囲】
【請求項１】
（ｉ）被演算子を処理するための演算装置（１０）と、上記被演算子を記憶するためのレジスタ記憶装置（１２）と、上記レジスタ記憶装置中の記憶領域（１２ａ）を被演算子に割り当てる一方、上記レジスタ記憶装置（１２）中の被演算子に割り当てない記憶領域（１２ｂ）を、上記被演算子とは異なる他のデータに使用するように、レジスタ記憶装置を構成するように設計されているレジスタ記憶構成装置（２０）とを有する、暗号コプロセッサと、
（ii）上記暗号コプロセッサ外に物理的に配置されている外部作業記憶装置（３２）と、被演算子に割り当てられていない、上記暗号コプロセッサ内に物理的に配置されている記憶領域（１２ｂ）とを含む揮発性作業記憶装置（３２、１２ｂ）と、
（iii）上記外部作業記憶装置（３２）と同じように、被演算子に割り当てない上記記憶領域（１２ｂ）のアドレス指定を行うアドレス指定装置とを備え、
上記レジスタ記憶装置（１２）の少なくとも一部分が、上記揮発性作業記憶装置（３２、１２ｂ）として用いられることを特徴とする、プロセッサ。
【請求項２】
上記演算装置（１０）と、
上記レジスタ記憶装置（１２）と、
これら演算装置（１０）およびレジスタ記憶装置（１２）を制御する制御装置であって、レジスタ記憶装置の被演算子を演算装置に伝達するとともに、その被演算子を用いて演算を実行する制御装置とが、単一のチップ上の集積回路として設計されている、請求項１に記載のプロセッサ。
【請求項３】
上記被演算子が、長さ１５０ビットを超える長い数の被演算子である、請求項１または２に記載のプロセッサ。
【請求項４】
上記演算装置（１０）が、少なくとも２つのアルゴリズムを実行するように設計されており、
１つのアルゴリズムは、使用される被演算子の長さおよび／または数に応じた、最大量のレジスタ記憶領域を必要とする一方、
もう一つのアルゴリズムは、被演算子のために必要なレジスタ記憶領域がより少なくなっており、
上記レジスタ記憶装置は、レジスタ記憶領域を、アルゴリズムの処理のために必要な最大量のレジスタ記憶領域に少なくとも等しくするように設計されている、請求項１〜３のいずれかに記載のプロセッサ。
【請求項５】
暗号化アルゴリズムを実行するように設計されている請求項１〜４のいずれかに記載のプロセッサ。
【請求項６】
上記演算装置（１０）およびレジスタ記憶装置（１２）が、内部バス（１４）を介して接続されており、
外部構成素子が、外部バス（１８）を介して上記演算装置（１０）に接続されており、
上記外部バス（１８）が、内部バス（１４）よりも長い、請求項１〜５のいずれかに記載のプロセッサ。
【請求項７】
レジスタ記憶構成装置（２０）が、必要に応じて数および長さの異なるレジスタを上記レジスタ記憶装置に形成するように設定されている、請求項１〜６のいずれかに記載のプロセッサ。
【請求項８】
（ｉ）ホストＣＰＵと、
（ii）上記ホストＣＰＵに外部バス（１８）を介して接続されており、内部記憶装置（１２）を有する周辺機器と、
（iii）内部記憶装置（１２）に、周辺機器に使用される領域（１２ａ）を必要に応じて形成し、さらに、内部記憶装置に、周辺機器に使用されない、外部バス（１８，２４）を介したアクセスによって他のデータに使用される領域（１２ｂ）を形成するように設計されている、記憶構成装置（２０）と、
（iv）上記周辺機器の外に物理的に配置されている外部作業記憶装置（３２）と、被演算子に割り当てない、上記周辺機器内に物理的に配置されている記憶領域（１２ｂ）とを含む揮発性作業記憶装置（３２、１２ｂ）と、
（ｖ）上記外部作業記憶装置（３２）と同じように、被演算子に割り当てない記憶領域（１２ｂ）のアドレス指定を行うアドレス指定装置とを備え、
上記内部記憶装置（１２）の少なくとも一部分が、上記揮発性作業記憶装置（３２、１２ｂ）として用いられることを特徴とするコンピュータシステム。
【請求項９】
上記記憶構成装置（２０）が周辺機器の一部となっている、請求項８に記載のコンピュータシステム。
【請求項１０】
記憶構成装置（２０）が、上記周辺機器が駆動されているか否かを検査し、周辺機器が駆動されていない場合に、周辺機器における内部記憶装置の全体をコンピュータシステムの作業記憶装置として使用するように設定されている、請求項８または９に記載のコンピュータシステム。
【請求項１１】
上記周辺機器が暗号コプロセッサである、請求項８〜１０のいずれかに記載のコンピュータシステム。
【請求項１２】
チップカードＩＣまたはセキュリティＩＣとして設計されている、請求項８〜１１のいずれかに記載のコンピュータシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
本発明は、コンピュータ構造（Computerarchitekturen）と、特に演算装置およびレジスタ記憶装置を備えたプロセッサ構造（Prozessorarchitekturen）とに関するものである。
【０００２】
図３は、公知のプロセッサ構造を、コプロセッサ（Coprozessores）を例に挙げて示す図である。このコプロセッサには、演算装置３００，レジスタ記憶装置３１０，および制御部３２０が含まれている。演算装置３００、この演算装置の被演算子（Operanden）を記憶するレジスタ記憶装置３１０は、制御部３２０とともに、１つのコプロセッサ３３０に物理的に格納されている。また、このコプロセッサは、接続バス３４０を介して、外部バス３５０に接続されている。同様に、外部バス３５０には、外部記憶装置３６０，ホストＣＰＵ（図示せず）および入力／出力インターフェース（図示せず）などが接続されている。
【０００３】
上記の演算装置は、内部バス３７０を介してレジスタ記憶装置に接続されている。また、制御部３２０は、制御線３８０ａを介してレジスタ記憶装置３１０と、また、制御線３８０ｂを介して演算装置３００と通信できるようになっている。公知のように、演算装置（ＡＵ）３００は、レジスタ記憶装置３１０に記憶されている被演算子に対する命令を実行するために設けられている。従って、制御部３２０が、レジスタ記憶装置３１０を制御して、ＡＵ３００によって実行される特殊な命令（speziellen Befehl）に必要な被演算子をＡＵに伝達させ（hinein zu laden）、これにより、被演算子に対する上記の命令を実行できる。この演算の結果は、内部バス３７０を介してレジスタ記憶装置に戻される。そして、制御部３２０の指示（Veranlassung）により次の命令に再利用される、または、接続バス３４０を介して、外部記憶装置に伝達される（gebracht）。通常、標準プロセッサのレジスタ記憶装置は、演算装置によって実行される通常の計算に必要な、特定数のレジスタを有するように設計されている。また、多目的プロセッサでは、レジスタ記憶装置３１０の一部のレジスタが、演算されるアルゴリズムに応じて必要となる一方、特定のアルゴリズムによって必要とされない他のレジスタは使用されない。
【０００４】
しかし、レジスタ記憶装置３１０中のレジスタ数よりも多くのレジスタが演算に必要な場合、レジスタ記憶装置３１０に記憶しきれない被演算子は、外部記憶装置３６０に記憶されることとなる。そして、演算装置３００は、演算のためのデータを必要とし、それらがレジスタ記憶装置３１０にないとき、被演算子を外部記憶装置３６０から接続バス３４０を介して入力する（ロードする）必要がある。内部バス３７０でのデータ通信は、内部バスの構成のゆえに、とりわけ物理的な長さが短いゆえに、非常に速く流れる（ablaeuft）。これに対し、外部記憶装置３６０と演算装置３００との間のデータ通信では、多くの労力（Aufwand）が必要となる。すなわち、上述したように、外部バスおよび接続バス３４０は、通常、物理的にはるかに長い。このため、この経路での、外部記憶装置３６０から演算装置３００への被演算子転送、または、演算装置３００から外部記憶装置３６０に戻す被演算子転送には、データの転送時間が長くなり、労力がかかるのである。
【０００５】
特に、セキュリティ関連の技術に応用する（sicherheitsrelevanten Anwendungen）場合（つまり、コプロセッサ３３０が暗号コプロセッサであり、例えばチップカード上に設けられたり、セキュリティＩＣの一部になったりする場合）には、外部記憶装置３６０から外部バスを介して演算装置３００に対して（あるいは逆向きに）被演算子を伝達する必要のあるときに、セキュリティの問題が生じる。侵入者（Angreifer）にとっては、チップ上の外部バスの場所を限定して「穴を開ける」ことのほうが、内部バス３７０を見つけ出して穴を開けるよりも簡単である。その理由は、チップ上の外部バス３５０の配置が一般的に規則的であり、外部バスが、コプロセッサの内部バス３７０に比べてはるかに長いからである。特に、コプロセッサ自体が集積回路であるとき、外部バス３７０の物理的な長さは非常に短く、それゆえに、このバスに侵入すること（Abhoeren）はほぼ不可能である。この点は、Ｉ／Ｏインターフェースを介してコプロセッサチップに接続される必要のある外部バス３５０では全く異なる。
【０００６】
レジスタ記憶装置３１０のサイズ（Auslegung）に関して、通常、使用されるレジスタ記憶装置容量はそれほど大きくしない。これは、僅かな被演算子だけを必要とするアルゴリズムでは、レジスタ記憶装置３１０の大部分が未使用となる（つまり遊んでいる）からである。レジスタ記憶セルの所要面積は、特に、多くのセルをチップ上に配置する必要のある場合に、比較的に大きくなる。例えば、暗号コプロセッサの所要面積を少なく保つために、レジスタセルの数を小さいままとすると、レジスタ記憶装置における全く使用されない領域によってチップを占有してしまうことを防げる。従って、チップの面積効率の観点から、レジスタ記憶装置の面積に比して多くの被演算子を必要とするアルゴリズムを行う場合には、外部記憶装置３６０からコプロセッサ３３０への被演算子転送を何度も実行する必要がある。
【０００７】
ここで、チップカードでは、作業記憶装置が非常に小さくなる。これは、チップカードのサイズに、およそ２〜８キロバイトの限界があるためである。このようなチップカードでは、通常、周辺素子のレジスタ記憶装置３１０として、非常に小さいものを選択して、チップカードの機能にとって十分な作業記憶装置（ＸＲＡＭ）を確保するようになっている。ここで、上記の周辺素子とは、例えばコプロセッサ３３０，乱数発生器，ハッシュモジュール（Hash-Moduls），対称暗号化（symmetrische Kryptographie；ＤＥＳ、ＡＥＳ）用のモジュールまたは他の周辺機器である。さらに、このチップカードは、読み出し専用記憶素子（ＲＯＭ）および書き込み可能な不揮発性記憶素子（ＥＥＰＲＯＭ、フラッシュ、等）も含む必要がある。従って、チップカード上にチップの所要面積を確保するために、レジスタ記憶装置３１０は、通常、できる限り小さくされている。
【０００８】
しかし、言及してきたように、このことによって、外部記憶装置３６０と演算装置３００との間の被演算子転送を余儀なくされるため、セキュリティが危うくなり、時間を損失してしまう。
【０００９】
本発明の目的は、確実で高速のプロセッサ、および、確実で高速のコンピュータシステムを提供することにある。
【００１０】
この目的を、特許請求項１に記載のプロセッサ、または、特許請求項９に記載のコンピュータシステムによって達成する。
【００１１】
本発明は、セキュリティの向上、時間の節約、さらにはメモリの効率化を、レジスタ記憶装置を以下のようなサイズに設計することによって達成しようとするものである。すなわち、本発明では、レジスタ記憶装置のサイズを、プロセッサの実行する必要のある大多数のアルゴリズムに必要な被演算子を記憶できる大きさであり、かつ、残りの記憶領域を上記の演算子以外の他のデータ用に（例えば作業記憶装置として）使用可能な大きさ、とするようになっている。
【００１２】
従って、本発明では、レジスタ記憶構成装置を使用しており、これによって、以下に示すようなレジスタ記憶装置を構成している。すなわち、このレジスタ記憶装置は、演算装置が演算する必要のあるアルゴリズムに必要な数の被演算子を記憶できる構成であり、かつ、レジスタ記憶装置の残りの部分を、従来技術のように「遊ばせて」おかずに、被演算子以外の他のデータのために利用する構成である。このレジスタ記憶構成装置は、メモリ割り当てを実行するアドレス指定方法に基づいていることが好ましい。これにより、プロセッサにおける演算装置用のレジスタ記憶装置に物理的に直接存在しているレジスタ記憶装置の空き部分を、ＸＲＡＭに割り当てられる。
【００１３】
本発明の好ましい実施例として、このプロセッサを暗号プロセッサとすることが可能である。この場合、演算装置は、長さが２０４８ビットまでの被演算子用の長い数を演算するもの（Langzahlrechenwerk）となる。従って、例えばそのような長さの被演算子を５つ必要とする場合に、多数のレジスタ記憶装置を利用することになる。好ましい実施例として、様々な暗号化アルゴリズムに関するプロセッサを形成できる。また、このようなアルゴリズムには、より少ない被演算子、または、非常に短い被演算子を必要とするアルゴリズムもある例えば、ＲＳＡ署名（RSA-Signatur）では、最適には、係数累乗法のために２０４８ビットの長さの４つのレジスタが必要となる。ここで、同時に、楕円暗号法（例えばＥＣ−ＤＳＡ）を実行すると（この方法では、例えば電子署名１１を演算するために、１９０ビットの長さのレジスタを使用する）、楕円暗号法の被演算子がより多数存在するにもかかわらず、レジスタ記憶装置中に１キロバイト程度の空き部分が残ることになる。このことは、特に、全ての作業記憶装置（ＸＲＡＭ）が、２〜８キロバイトしかない場合に問題となる。本発明では、レジスタ記憶装置の使用されていない領域を、記憶構成装置によって、ＸＲＡＭに割り当てられる。その結果、プロセッサは、レジスタ記憶装置を、作業記憶装置として使用できる。または、コンピュータシステムとしてのチップカードに応用すれば、レジスタ記憶装置を、チップカードの他の構成素子によっても使用できる。一方、本発明では、レジスタ記憶装置のサイズを、暗号アルゴリズムの全被演算子を受入れられるよう大きく設計している。この暗号アルゴリズム用の被演算子を記憶するには、レジスタ記憶領域の大部分が必要となる。また、はるかに少数のレジスタ記憶装置だけを必要とするアルゴリズムを実行する場合には、このアルゴリズムに不要のレジスタ記憶装置を、作業記憶装置として容易に使用でき、これらを遊ばせることがない。
【００１４】
本発明のプロセッサを、暗号コプロセッサとしてチップカード上の周辺素子の形状に設計する場合、本発明の好ましい実施例では、レジスタ記憶構成装置を、以下のように設計できる。すなわち、暗号コプロセッサの全てのレジスタ記憶装置を、暗号コプロセッサの演算装置が停止しているときに、チップカードの他の周辺素子またはホストＣＰＵの作業用記憶装置として使用できるように設計できる。これにより、チップカードの全ての記憶装置を、常に、駆動状態あるいは転用状態（アプリケーションに利用された状態）とすることが可能となる。これは、外部記憶装置として設計される場合でも、さらに、レジスタ記憶装置として設計される場合でも、また特に、最大チップサイズのために非常に小さな記憶装置資源しかもてないチップカードＩＣの場合でも同様である。
【００１５】
なお、内部バスは演算装置の全幅を有している一方、外部バスは、通常の幅（例えば８．１６または３２ビット）を有している。しかし、長い数の演算装置（Langzahlrechenwerk）では、内部バスの幅は１０２４ビットである。従って、記憶装置から外部バスを介して長い数の被演算子を転送する（Operandentransfer）場合には、複数のバスサイクルを必要とし、従って時間および管理コストがかかる一方、内部幅バス（internen-breiten-Bus）を用いることで、より簡単に被演算子を伝送できることは明らかである。
【００１６】
次に、本発明の好ましい実施例を、添付図面に関連づけて詳述する。図１は、本発明のプロセッサまたは本発明のコンピュータシステムを示すブロック図である。図２は、コプロセッサのレジスタ記憶装置の一部分が、コンピュータシステムの作業記憶装置に割り当てられている、本発明の好ましい実施例に関数記憶装置状況を示す記号図である。図３は、公知のプロセッサ構造を示す図である。
【００１７】
図１に、本発明のプロセッサを示す。このプロセッサには、演算装置１０，レジスタ記憶装置１２，内部バス１４，他の内部バス１４´，制御装置１６，外部バス１８、および、レジスタ記憶構成装置（Registerspeicherkonfigurationseinheit）２０が含まれている。
ここで、内部バス１４は、レジスタ記憶装置１２と演算装置１０との間に配置されているバスである。他の内部バス１４´は、演算装置１０とレジスタ記憶装置１２との間に配置され、演算装置の結果をレジスタ記憶装置１２に戻すことの可能なバスである。制御装置１６は、制御線を介して、演算装置１０の駆動およびレジスタ記憶装置１２の駆動を制御可能なものである。外部バス１８は、周辺機器（例えば入力／出力インターフェース、他のプロセッサ等）との接続のためのバスである。また、レジスタ記憶構成装置２０は、本発明に従って、記憶構成線２２を介して、レジスタ記憶装置１２を構成できるものである。
【００１８】
図１に示すように、レジスタ記憶装置１２は、記憶装置部分１２ａを備えるように構成されている。この記憶装置部分１２ａでは、レジスタが、演算装置１０のために構成されている。また、このレジスタ記憶装置１２は、他の空いている記憶装置部分１２ｂを備えるように構成されている。この記憶装置部分１２ｂは、レジスタ記憶装置バス２４および外部バスを介したデータの書き込みまたは読み出しを行うためのものである。
【００１９】
レジスタ記憶装置１２は、演算装置１０によって実行される全ての演算タスク（Rechenaufgaben）のために、演算装置１０の必要とする被演算子のために十分な量のレジスタを割り当てられる程度に、大きく構成されていることが好ましい。演算装置１０によって処理される演算タスクが広いレジスタ記憶領域を必要とする場合、レジスタ記憶構成装置２０は、レジスタ記憶装置を構成する。これにより、レジスタ記憶装置１２の全体を、通常のレジスタ記憶装置と同様に、演算装置１０用の被演算子を記憶するために用いることが可能となる。すなわち、記憶装置分割境界線２６を、図１の左側に完全に移動するような形となる。これにより、記憶装置の空き部分１２ｂがなくなる一方、レジスタ記憶装置１２の全体が、演算装置１２ａの被演算子用の記憶装置となる。しかし、演算装置１０の処理する必要のある被演算子が、非常にわずかな場合、および、特に、例えば非常に短い場合レジスタ記憶構成装置２０は、レジスタ記憶装置を以下のように構成する。すなわち、被演算子レジスタをレジスタ記憶装置１２に割り当てる一方、レジスタ記憶装置の残り部分を、他のデータを書き込むための空き部分を有する記憶装置１２ｂとして構成する。なお、このレジスタ記憶装置１２が一般的に揮発性記憶装置である場合、レジスタ記憶装置１２の空き部分のある記憶領域１２ｂを、作業記憶装置（例えばＸＲＡＭ）として、プロセッサのために使用できる。この場合、上記の記憶装置分割境界線２６は、図１に示したように、レジスタ記憶装置１２の中央付近に配置される。
【００２０】
図１に示したプロセッサを、例えばコプロセッサとして設計し、外部バス１８を介してホストＣＰＵに接続する場合、コプロセッサの一部分を形成する演算装置１０が駆動されていないときには、本発明の好ましい実施例では、図１の記憶装置分割境界線２６を完全に右側に移動するように、レジスタ記憶構成装置２０を形成する。この場合、図１に示したコプロセッサではなく、ホストＣＰＵのみが駆動されていると考えられる。この場合、コプロセッサのレジスタ記憶装置１２を、完全に、プロセッサシステムのホストＣＰＵのためにに使用する。演算装置１０が駆動されていないので、この演算装置は、レジスタ記憶装置の被演算子レジスタを必要としない。レジスタ記憶装置１２が常に利用されていない状態にある従来技術とは逆に、演算装置１０が駆動されていない場合、本発明では、レジスタ記憶装置１２を、レジスタ記憶構成装置２０の作用によって、図１に示していないホストＣＰＵのために使用できる。
【００２１】
この措置は、例えばチップカードまたはセキュリティＩＣに見られるように、特に非常に制限された（begrenzten）記憶装置資源（Speicherressourcen）を有するプロセッサシステムに対して有効である。ホストＣＰＵ以外に、暗号コプロセッサおよび他の周辺機器（すなわち、不揮発性記憶装置（Ｅ２ＰＲＯＭ），揮発性作業記憶装置（例えばＸＲＡＭ）または読み出し専用記憶装置（ＲＯＭ））を備えたチップカードを例に挙げると、レジスタ記憶装置の空き部分、または、必要なら暗号コプロセッサの全てのレジスタ記憶装置を使用することによって、記憶装置資源を著しく拡大できるといえる。なお、作業記憶装置の大きさが２〜３キロバイトである場合、チップカードの全ての記憶装置容量は、５キロバイト程度でよい。暗号コプロセッサには、一般的には、比較的大きなレジスタ記憶装置が必要である。なぜなら、いくつもの長い数の被演算子（例えばそれぞれ２０４８ビットの４つの長い数の被演算子）が、ＲＳＡ計算を確実に行うために必要になるからである。この付加的な記憶装置の容量を約１キロバイトとする場合、暗号コプロセッサが駆動されていないときには、他の付加的な記憶セルを使用することなく、ホストＣＰＵ用の作業記憶装置（ＸＲＡＭ）を、１／３の大きさにできる。
【００２２】
他方、大きなレジスタ記憶装置を用いる利点は、演算装置に、被演算子を良好に供給できる点にある。この場合、従来技術のように演算装置の外部バスを介して被演算子を供給する必要がなく、被演算子の転送を、内部バス１４（図１）のみを介して実行する。しかし、他のアルゴリズムの必要とするレジスタ記憶装置がそれほど多くない場合に必要のないレジスタ記憶装置を「遊ばせて」おかないように、本発明に従って、レジスタ記憶構成装置を利用して、空き部分のある記憶装置部分１２ｂおよび演算装置１２ａ用のレジスタ記憶装置部分にレジスタ記憶装置を構成する。
【００２３】
次に、プロセッサシステムのＸＲＡＭ作業記憶装置中の空き部分のある記憶領域１２ｂの本発明のマッピングを示すための図２について説明する。図２の構成は、図１に示した演算装置において、レジスタ記憶装置（１２ａおよび１２ｂ）および制御装置１６（コントローラ）とともに、プロセッサシステムの暗号コプロセッサを例えばチップカード上に形成した構成である。
【００２４】
図２の左側には、記憶装置階層構造３０が示されている。この記憶装置階層構造３０は、Ｅ２ＰＲＯＭの形状の不揮発性記憶装置、ＲＯＭの形状の読み取り専用記憶装置、および、ＸＲＡＭの形状の揮発性作業記憶装置から構成されている。作業記憶装置ＸＲＡＭには、レジスタ記憶装置１２ａ、および、チップカード上の他の場所に設けられた他のＸＲＡＭ作業記憶装置３２が含まれている。図２に示したように、ＸＲＡＭ作業記憶装置には、様々なレジスタＣ，ＮおよびＣＲiが配置されている。また、図２に参照符号１２ａで示したレジスタ記憶領域は、チップカードのその他のＸＲＡＭ３２の部分ではなく、Ｚレジスタ用の記憶領域と同様に、暗号コプロセッサに物理的に配置されている。これらのレジスタＺ，Ｃ，ＮおよびＣＲiは、例えばＲＳＡ署名の演算に必要なものである。
【００２５】
図２に示した実施例では、レジスタＣ，ＮおよびＣＲi用の記憶領域は、チップカードの作業記憶装置に割り当てられており、他方、Ｚレジスタ用の記憶装置はそうなっていない。レジスタ記憶構成装置が、特定のタスクを演算するためにレジスタＣ，ＮおよびＣＲiを必要としない暗号コプロセッサのレジスタ記憶装置を駆動する場合には、上記のように割り当てられたこれらのレジスタの領域を、暗号コプロセッサの演算装置１０以外の他の構成素子に容易に利用させられる。しかし、このことは、図２のＺレジスタには該当しない。Ｚレジスタが必要であるか否かに関わりなく、Ｚレジスタをチップカード用の作業記憶装置としては使用できない。このことから判断して、暗号コプロセッサに物理的に存在している全てのレジスタ記憶装置を、チップカードの作業記憶装置に割り当てるのではなく、一部分のみを割り当てることが、一部のアプリケーションに有効であるといえる。
【００２６】
次に、異なる可能な記憶構成装置、または、様々な暗号化アルゴリズムに対する記憶装置の必要性について詳述する。暗号化プロセッサに最適な記憶構成装置は、暗号プロセッサで（auf）計算される暗号アルゴリズムの影響を受ける。例えば、ＲＳＡ署名用には、レジスタＣ、Ｎ、Ｚ、および、ＣＲiレジスタの容量を、セキュリティに対する要求に応じて、１０００ビットから２５００ビットの長さとすることが必要である。しかし、演算結果を記憶するための他のＣＲiレジスタを加えることによって、ＲＳＡ署名演算の速度を上げることも可能である。本発明では、レジスタ記憶構成装置２０が、レジスタ記憶装置１２を、他のＣＲiレジスタ用にも記憶領域を割り当てるように構成する。その結果、空き部分のある記憶装置１２ｂは、４つのレジスタを用いる場合よりも小さくなる。しかし、ＣＲiレジスタに記憶された被演算子を、レジスタ記憶装置１２と演算装置１０との間の内部バス１４を介して高速かつ簡単に伝送できるので、演算量を増大できる従って、このことは、当然ながら、レジスタ記憶装置１２が十分な大きさであることを前提としている。また、最適なレジスタ記憶構成装置のための他の例として、「平方乗算」アルゴリズム（"Square and Multiply"-Algorithmus）を用いた場合の係数累乗法（modulare Exponentiation）を挙げられる。平方乗算用に同一の演算時間を選択する場合、セキュリティの理由から、平方用の被演算子を、２度、レジスタＣおよびＣＲiレジスタに記憶する必要がある。この場合でも、レジスタ記憶構成装置によってレジスタ記憶装置１２に構成される付加的なＣＲiレジスタが必要である。
【００２７】
レジスタ記憶装置のサイズが大きいことは、しかし、記憶領域（Speicherplatzes）に関しては重要ではない。なぜなら、レジスタ記憶装置のメモリ量の全てを必要としない場合でも、記憶装置は、従来技術のように「遊んでいる」状態ではなく、記憶構成装置２０および接続バス２４によって外部バスを介してプロセッサシステムの他の構成素子に用いられるからである。
【００２８】
さらに、楕円曲線（ＥＣ−ＤＳＡ）を用いて電子署名を演算する必要のある場合、例えば、射影座標（projektiven Koordinaten）において、レジスタＣ，ＮおよびＺに加えて、さらに８つのレジスタ（例えばＣＲi）が、曲線パラメータを記憶するために必要となる。
【００２９】
しかし、暗号プロセッサを使用しない場合には、レジスタ記憶装置の全てまたは大部分（図２のＺレジスタ以外）を、レジスタ記憶構成装置を介して、他のデータを記憶できる空き部分のある記憶装置として構成できる。
【００３０】
さらに、レジスタ記憶構成装置２０は、さらに、用いられる暗号アルゴリズムに応じて、演算装置用の被演算子レジスタの数およびサイズを構成するようになっている。レジスタの長さも、暗号アルゴリズムごとに異なっている。チャイニーズ剰余定理（ＣＲＴ）を用いないＲＳＡ計算では、全てのレジスタが完全な長さ（例えば１０２４または２０４８ビット）を有する必要がある。一方、ＣＲＴを用いたＲＳＡ計算では、半分だけの長さのレジスタ（つまり、長さ５１２または１０２４ビットを有するレジスタ）でも十分である。
【００３１】
楕円曲線に基づいた暗号化計算では、レジスタの長さを、非常に短く（例えば１６０または１９０ビット）する必要がある。
【００３２】
また、レジスタ記憶構成装置２０は、暗号プロセッサ（つまり制御装置１６）の命令に沿った数および長さのレジスタを構成するように設定されている。必要のない空き部分は、他のアプリケーションに用いられる。この空き部分は、上述したように、特にスマートカード用に重要な因子（Faktor）である。なぜなら、スマートカードが、２〜４キロバイトの揮発性記憶装置しか備えていないからである。その結果、既に、使用されていない２３０４ビットの長さのレジスタが、チップカードのプログラマー（Programmierer）にとって、無視できない付加的な記憶領域となっている。なお、プロセッサ命令を用いる以外に、装置２０によって状態レジスタ（Statusregistern）などにビットを設定することにより、レジスタ記憶装置を構成してもよい。
【図面の簡単な説明】
【００３３】
【図１】本発明のプロセッサまたは本発明のコンピュータシステムを示すブロック図である。
【図２】コプロセッサのレジスタ記憶装置の一部分が、コンピュータシステムの作業記憶装置に割り当てられている、本発明の好ましい実施例に関する記憶装置状況を示す記号図である。
【図３】公知のプロセッサ構造を示す図である。
【符号の説明】
【００３４】
１０    演算装置
１２    レジスタ記憶装置
１２ａ  演算装置用のレジスタ記憶装置
１２ｂ  空き部分を有するレジスタ記憶装置
１４    内部バス
１４´  結果用の内部バス
１６    制御装置
１８    外部バス
２０    レジスタ記憶構成装置
２２    レジスタ記憶構成制御線
２４    レジスタ記憶接続バス
２６    レジスタ記憶境界線
３０    記憶装置配線図（Speicherschema）
３２    他の作業記憶装置（ＸＲＡＭ）
３００  演算装置
３１０  被演算子用レジスタ領域
３２０  制御部
３３０  コプロセッサ
３４０  演算装置と外部バスとの間の接続バス
３５０  外部バス
３６０  外部記憶装置
３７０  内部バス
３８０ａ  レジスタ領域用の制御線
３８０ｂ  演算装置用の制御線
【図１】
0003720342.tif 000002
【図２】
0003720342.tif 000003
【図３】
0003720342.tif 000004