(57)【特許請求の範囲】
【請求項１】
情報処理装置が収容するホストシステム（ＨＳ）に接続可能で、様々な暗号化アルゴリズムを同時に処理する暗号化回路（１）であって、
マイクロコンピュータとメモリを有し、ホストシステム（ＨＳ）と暗号化回路（１）との間で専用バス（ＰＣＩ）を介して行われるデータ交換の役割をする入出力モジュール（２）と、
入出力モジュール（２）に接続され、暗号化処理、復号化処理、ならびに暗号化回路（１）の全ての機密情報の蓄積を行う暗号化モジュール（３）と、
暗号化モジュールの安全性を高めるために暗号化モジュール（３）に蓄積されている機密情報にホストシステム（ＨＳ）がアクセスできないようにし、また入出力モジュール（２）および暗号化モジュール（３）によって実行される処理の並行化を保証する、入出力モジュール（２）および暗号化モジュール（３）の間のアイソレート手段（４）とを含むことを特徴とする暗号化回路。
【請求項２】
暗号化回路（１）のアイソレート手段が、入出力モジュール（２）および暗号化モジュール（３）の間に接続されたデュアルポートメモリ（４）を含んでおり、このデュアルポートメモリが、固有のバスを含むとともに、２つのモジュール（２、３）の間でデータ、コマンドおよび状態情報を同時に交換し、また２つのモジュール（２、３）をアイソレートすることを特徴とする請求項１に記載の暗号化回路。
【請求項３】
暗号化モジュール（３）が、
デュアルポートメモリ（４）のバスに接続される、対称暗号化アルゴリズム処理専用の第１の暗号化サブモジュール（３１）と、
デュアルポートメモリ（４）のバスに接続されて、デュアルポートメモリ（４）のバスとは異なるアイソレートされた内部バスを備えた、非対称暗号化アルゴリズム処理専用の第２の暗号化サブモジュール（３２）と、
デュアルポートメモリのバスを介してデュアルポートメモリ（４）に接続される暗号鍵を含むＣＭＯＳメモリ（１１）とを含むことを特徴とする請求項１または２に記載の暗号化回路。
【請求項４】
第１の暗号化サブモジュール（３１）が、デュアルポートメモリ（４）のバスを介してデュアルポートメモリ（４）に接続される暗号化素子（９）を含み、暗号化素子（９）が、それぞれ様々な対称暗号化アルゴリズム処理専用である暗号化オートマトンを含んでおり、第２の暗号化サブモジュール（３２）が、それぞれ非対称暗号化アルゴリズム処理専用の少なくとも２個の暗号化プロセッサ（１０１、１０２）を含み、少なくとも２個の暗号化プロセッサ（１０１、１０２）が、バスアイソレート装置（１４）によりデュアルポートメモリのバスからアイソレートされた第２のサブモジュール（３２）の内部バスを介して暗号化素子（９）に接続されることを特徴とする請求項３に記載の暗号化回路。
【請求項５】
暗号化モジュール（３）の２個のプロセッサ（１０１、１０２）は、暗号プロセッサ（ＣＩＰ）タイプであることを特徴とする請求項４に記載の暗号化回路。
【請求項６】
暗号化プロセッサ（１０１、１０２）の一方（１０１）は、暗号プロセッサ（ＣＩＰ）タイプであり、他方（１０２）は非対称暗号プロセッサ（ＡＣＥ）タイプであることを特徴とする請求項４に記載の暗号化回路。
【請求項７】
ＡＣＥタイプの暗号化プロセッサ（１０２）は、ＦＰＧＡプログラマブル技術で実現されることを特徴とする請求項６に記載の暗号化回路。
【請求項８】
暗号化モジュール（９）が対称暗号エンジン（ＳＣＥ）タイプであることを特徴とする請求項４から７のいずれか一項に記載の暗号化回路。
【請求項９】
暗号化モジュール（９）がＦＰＧＡプログラマブル技術で実現されることを特徴とする請求項８に記載の暗号化回路。
【請求項１０】
第２の暗号化サブモジュール（３２）がさらに、第２の暗号化サブモジュール（３２）の内部バスに接続されるフラッシュＰＲＯＭメモリ（１２）およびＳＲＡＭメモリ（１３）を含むことを特徴とする請求項３から９のいずれか一項に記載の暗号化回路。
【請求項１１】
ＣＭＯＳメモリ（１１）は、警急時にＣＭＯＳメモリ（１１）のリセットを始動するセキュリティ機構（１５）により保護されていることを特徴とする請求項３から１０のいずれか一項に記載の暗号化回路。
【請求項１２】
入出力モジュール（２）が、
ホストシステム（ＨＳ）と暗号化回路（１）との間でデータ伝送を実行する役割をするＤＭＡチャンネルを組み込んだ、入出力プロセッサ（６１）およびＰＣＩインターフェース（６２）を含むマイクロプロセッサ（６）と、
入出力プロセッサ（６１）のコードを含むフラッシュメモリ（７）と、
入出力プロセッサ（６１）の始動時にフラッシュメモリ（７）の内容のコピーを受信するＳＲＡＭメモリ（８）とを含むことを特徴とする請求項１から１１のいずれか一項に記載の暗号化回路。
【請求項１３】
ＰＣＩバスとは独立した安全化経路により基本的な鍵を入力可能なシリアルリンク（ＳＬ）を含み、このリンクが、暗号化モジュール（３）により制御されることを特徴とする請求項１から１２のいずれか一項に記載の暗号化回路。
【請求項１４】
シリアルリンク（ＳＬ）は、第１の暗号化サブモジュール（３１）で専用のアルゴリズムのダウンロードを可能にすることを特徴とする請求項１３に記載の暗号化回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、暗号化の分野に適用され、特に、様々なタイプの暗号化アルゴリズムを同時に実現する暗号化回路のアーキテクチャに関する。
【０００２】
【従来の技術】
このアーキテクチャは、ＰＣＩ（「Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ」）カードにより支援される回路によって実現され、装置（サーバまたは局）の性能を損失することなく様々な暗号化アルゴリズムを並行して実現可能である。このアーキテクチャはまた、あらゆる電子暗号化機能に必要な秘密エレメント（鍵および認証内容）を保持する金庫の役割をする。
【０００３】
不可侵性に関する暗号通信性能の必要性はますます増大しており、セキュリティシステム納入業者は、追加カードの形をとるハードウェアの解決方法を重視している。
【０００４】
このようなカードは、サーバに結合され、サーバのセキュリティのためのハードウェアの素子となる。
【０００５】
また、ＡＳＩＣ（「Ａｐｐｌｉｃａｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  特定用途向けＩＣ」）」素子をベースとするセキュリティアーキテクチャの実現が知られており、これは、製造メーカーにとってもユーザにとっても柔軟性のない解決方法であるにもかかわらず開発費は高い。
【０００６】
一方で、今日、各アルゴリズムに対してビットレートを保証しながらアルゴリズム全体を同時に実現可能なアーキテクチャは存在しない。
【０００７】
【発明が解決しようとする課題】
本発明は特に、上記の欠点を解消し、セキュリティ市場の新たな要求に応えることを目的とする。
【０００８】
【課題を解決するための手段】
このため、本発明は、様々な暗号化アルゴリズムを同時に処理する暗号化回路のアーキテクチャを目的とし、暗号化回路は、情報処理装置が収容するホストシステムに接続可能である。
【０００９】
本発明によれば、暗号化回路は、
ホストシステムと暗号化回路との間でＰＣＩバスを介して行われるデータ交換の役割をする入出力モジュールと、
入出力モジュールに接続され、暗号化回路の全ての機密情報の暗号化、復号化、ならびに蓄積操作を行う暗号化モジュールと、
暗号化モジュールに蓄積されている機密情報にホストシステムがアクセスできないようにし、また入出力モジュールおよび暗号化モジュールによって実行される処理の並行化を保証する、入出力モジュールおよび暗号化モジュールの間のアイソレート手段とを含む。
【００１０】
本発明の第１の長所は、入出力モジュールおよび暗号化モジュールによって実行される処理に関する第１の並行処理と、様々な暗号化アルゴリズムの実行における第２の並行処理（並列処理）との、２つの並行処理レベルに従って、主要な暗号化アルゴリズムを高速で実行可能にすることにある。
【００１１】
本発明のもう１つの長所は、システムに利用可能にされる全ての暗号化リソースをホストシステムが解読できないようにし、鍵および認証内容等の秘密を安全に蓄積するという長所を有する。カードの機密機能（アルゴリズムおよび鍵）は、全て暗号化モジュールに配置され、ＰＣＩバスからはアクセス不能である。
【００１２】
本発明はまた、各暗号化アルゴリズムに対してビットレートを保証しながら性能を損失せずに様々な暗号化アルゴリズムのハードウェアおよびソフトウェア・の実現を共存させるという長所を有する。
【００１３】
本発明はさらに、特定の回路（ＡＳＩＣ）をベースとする、より従来的な実現とは対照的に、マイクロプロセッサを備える標準技術およびプログラマブル論理の選択により段階的な拡張が可能であるという長所を有する。
【００１４】
本発明は特に、単に暗号化プロセッサのコード（実行プログラム）を修正したり、または暗号化モジュールの暗号化オートマトン用の新しい構成ファイルをロードしたりすることによって、専用のアルゴリズムを実現することができる。
【００１５】
本発明の他の特徴および長所は、添付図面に関してなされた以下の説明を読めば、明らかになるであろう。添付図面は本発明によるアーキテクチャのブロック図を示す。
【００１６】
【発明の実施の形態】
便宜上、以下の説明では、暗号化／復号化モジュールを「暗号化モジュール」と呼ぶ。
【００１７】
各モジュール間のリンクは全て、明示された以外は双方向性のリンクである。
【００１８】
本発明による暗号化回路１は、
暗号化リソースとホストシステムＨＳとの間でＰＣＩバスを介して行われるデータ交換の役割をする入出力モジュール２と、
秘密の暗号化、復号化、ならびに蓄積操作を行う暗号化モジュール３との２つの主要モジュールに依存する。
【００１９】
囲む破線によりそれぞれ画定されるこの２つのモジュール２、３は、２個のモジュール２、３の間でデータおよびコマンド／状態情報を交換可能なデュアルポートメモリＤＰＲ４を介して対話する。
【００２０】
暗号化モジュール３により制御されるシリアルリンクＳＬは、さらに、通常の機能経路（ＰＣＩバス）とは独立した安全化経路ＳＰにより基本的な鍵を入力可能であり、かくしてＦＩＰＳ１４０規格により課される要求に応える。
【００２１】
このＳＬリンクは、ＥＰＬＤ（「Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ  消去可能プログラマブル論理装置」）モジュール５を介してカード１に接続され、ＥＰＬＤモジュール５は、入出力モジュール２および暗号化モジュール３の間に接続され、２つのモジュール間の論理的な一貫性を保証する。
【００２２】
入出力モジュール２は、次のエレメントを含む。
【００２３】
ＤＭＡ（「Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  ダイレクトメモリアクセス」）チャネルを組み込み、プロセッサ６１およびＰＣＩインターフェース６２から主に構成されるＩＯＰマイクロコントローラ６。ＤＭＡチャネルはプロセッサに特定のまたは専用のチャネルであり、このチャネルによって、プロセッサのリソースを使用せずに、プロセッサに接続されるメモリ間で交換されるデータを通過させる。
【００２４】
パワー源を必要とせず蓄積されるデータを保存し、記憶容量がたとえば５１２キロオクテットであるフラッシュメモリ７。
【００２５】
メモリ内に蓄積されるデータを保存するためにパワー源を必要とし、その記憶容量がたとえば２メガオクテットであるＳＲＡＭ（「Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ  スタティックランダムアクセスメモリ」８。
【００２６】
暗号化モジュール３とホストシステムＨＳとの間のデータ転送は、暗号化モジュール３により実施される暗号化操作と同時に行われ、これによってカード１の全体性能を最適化することができる。
【００２７】
フラッシュメモリ７は、ＩＯＰマイクロコントローラ６のプロセッサのコードを含む。プロセッサは、始動時に、フラッシュメモリ７の内容をＳＲＡＭ８に再コピーする。コードは、一段と高い性能を得る目的でこのＳＲＡＭで実行される。
【００２８】
ＳＲＡＭ８はまた、高速なダイナミックメモリであるＳＤＲＡＭ（「Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  ＲＡＭ」）に代えてもよい。
【００２９】
ＩＯＰマイクロコントローラ６は、性能損失なしにこのタイプのメモリで動作可能である。
【００３０】
マイクロコントローラの選択は主に、所望の性能目標と、暗号化回路を支援するカードの全体パワー消費目標とに依存し、このような全体パワー消費は、一般には２５Ｗに制限される（ＰＣＩ仕様書）。
【００３１】
デュアルポートメモリＤＰＲ４は、入出力モジュール２と、暗号化モジュール３との間をアイソレートし、かくして暗号化モジュールにホストシステムＨＳがアクセスできないようにする。
【００３２】
その記憶容量は、図示された例では６４キロオクテットである。デュアルポートメモリは、一時的に複数のデータを蓄積し、これらのデータは、暗号化モジュール３の暗号化オートマトンにより暗号化もしくは復号化される。
【００３３】
デュアルポートメモリは、
ＩＯＰマイクロコントローラ６が、オートマトン宛のコマンドブロックを書き込む、たとえば４キロオクテットのコマンドゾーンと、
オートマトンにより処理されるように構成されるデータを含む、たとえば６０キロオクテットのデータゾーンとの２つのゾーンに分割される。
【００３４】
暗号化モジュール３は、それぞれ囲む点線によって画定された第１および第２の暗号化サブモジュール３１、３２を含む。
【００３５】
第１のサブモジュール３１は、デュアルポートメモリ４のバスに接続される対称暗号化アルゴリズム処理専用のＳＣＥ（「Ｓｙｍｅｔｒｉｃ  ｃｉｐｈｅｒ  ｅｎｇｉｎｅ」）素子９を含む。
【００３６】
第２のサブモジュール３２は、非対称暗号化アルゴリズム処理専用である。
【００３７】
第２のサブモジュールは、デュアルポートメモリ４のバスに接続され、デュアルポートメモリ４のバスとは異なるアイソレートされた内部バスを含む。
【００３８】
第２のサブモジュールはさらに、
１つまたは２つのＣＩＰプロセッサ（「Ｃｉｐｈｅｒ  ｐｒｏｃｅｓｓｏｒ」）１０１、１０２と、
変形実施形態において２個のＣＩＰ暗号化プロセッサ１０１、１０２の一方に代わるＡＣＥプロセッサ（「Ａｓｙｍｅｔｒｉｃ  ｃｉｐｈｅｒ  ｐｒｏｃｅｓｓｏｒ」）１０２と、
電池によりバックアップされた、たとえば記憶容量が２５６キロオクテットのＣＭＯＳ１１と、
たとえば記憶容量が５１２キロオクテットのフラッシュＰＲＯＭメモリ１２（「Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ  プログラマブルリードオンリーメモリ」）と、
たとえば記憶容量が２５６キロオクテットのＳＲＡＭメモリ１３とを含む。
【００３９】
ブロック図で示したように、ＳＣＥ素子９およびＣＭＯＳメモリ１１は、デュアルポートメモリＤＰＲ４のバスに直接接続されているが、ＣＩＰプロセッサ１０１、１０２、フラッシュＰＲＯＭメモリ１２、およびＳＲＡＭ１３は、逆向きに並んだ２個の矢印をもつブロックにより図示された、バス「トランシーバー」とも称されるバスアイソレート装置１４により、デュアルポートメモリＤＰＲ４のバスとは異なるアイソレートされたバスに接続されている。
【００４０】
プロセッサＣＩＰ１０１、１０２のバスに配置されたフラッシュＰＲＯＭメモリ１２は、暗号化モジュール３により利用されるソフトウェアの集まりを含む。
【００４１】
ＳＲＡＭメモリ１３の役割は、
ＣＩＰプロセッサ１０１、１０２のコードを高速で実行可能にすること、すなわち電源投入時にフラッシュＰＲＯＭメモリ１２からこのメモリにコードがコピーされることと、
アルゴリズムの実行中にデータを一時的に蓄積できることとの２つである。
【００４２】
このようなアーキテクチャの特性により、様々な暗号化オートマトンを互いに独立させられる。
【００４３】
プロセッサＣＩＰ１０１およびプロセッサＡＣＥ１０２は、双方ともデュアルポートメモリＤＰＲ４にアクセスし、暗号化データを読み込み、もしくは書き込むが、アルゴリズムそれ自体の処理全体は、ＳＣＥ素子９と干渉せずに、固有のメモリスペース（内部キャッシュメモリおよびＳＲＡＭ１３）で実行される。
【００４４】
ＳＣＥ素子９は、ＤＥＳ、ＲＣ４等のタイプの様々な対称暗号化オートマトン（１つのアルゴリズム当たり１個のオートマトン）、ならびに図示していないが乱数発生器を組み込んでいる。
【００４５】
各オートマトンは、他とは独立して作動し、デュアルポートメモリＤＰＲ４にアクセスして、（ＩＯＰマイクロコントローラ６により書き込まれた）そのコマンドブロックと、対応する処理データとを読み込む。
【００４６】
このように実現される処理を並行化することにより、オートマトンを同時使用する場合にも各アルゴリズムに対して最適なビットレートを保証することができる。唯一の処理の制限は、全てのオートマトンにより共有されるデュアルポートメモリＤＰＲ４へのアクセスにより課される。
【００４７】
従って、このメモリへのデータバスの通過帯域は、それらの性能を制限しないように、各アルゴリズムのビットレートの和よりも大きくなければならない。
【００４８】
ＳＣＥ素子９は、ＦＰＧＡ（「Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ」）という名称でも知られているプログラマブル技術で実現される。この素子は、高密度の論理ゲートを備えたプログラマブル回路すなわちチップであり、新しいアルゴリズム、特に専用のアルゴリズムを求めに応じて実現するのに必要とされるあらゆる柔軟性が得られる。
【００４９】
この素子の構成データは、フラッシュＰＲＯＭメモリ１２に含まれており、電源投入時にＣＩＰプロセッサ１０１の制御下でＳＣＥ素子９にロードされる。
【００５０】
ＣＩＰプロセッサ１０１は、ＳＣＥ素子９に実現されないアルゴリズムを所定のプログラミングソフトウェアを用いて実現する。また、このプロセッサは、ＡＣＥプロセッサ１０２により実現される特別なオートマトンを用いて、あるいはこのオートマトンを用いずに、ＲＳＡタイプの非対称アルゴリズムを同様に実現する。
【００５１】
ＣＩＰプロセッサは、シリアルリンクＳＬを介してセキュリティパラメータ（鍵）の初期化を執り行う。
【００５２】
このレベルで高性能プロセッサを用いることにより、アルゴリズムの実行において性能が最適化され、追加アルゴリズムの実現のために大きな柔軟性が得られる。
【００５３】
このプロセッサにより、シリアルリンクＳＬを介して専用のアルゴリズムをダウンロード可能である。
【００５４】
第１の実施形態によれば、２個のＣＩＰプロセッサ１０１、１０２は、次のように実現される。
【００５５】
一方のプロセッサ１０１は、ＲＳＡアルゴリズムの実行のために必要とされ、他方のプロセッサ１０２は、ＳＣＥ素子９によってまだ対応されていないアルゴリズムを実現する。
【００５６】
第２の実施形態によれば、ＳＣＥ素子９は、第１の実施形態の２個のＣＩＰプロセッサ１０１、１０２の一方に代わるＡＣＥプロセッサ１０２により補助されて、ＲＳＡアルゴリズムのプロトコルに関わる集中的な計算をプログラマブル論理で実現する。
【００５７】
必要な全てのアルゴリズムは、ＳＣＥ素子９のオートマトンのプログラマブル論理で実現される。
【００５８】
この素子は、ＦＰＧＡプログラマブル技術で実現される。
【００５９】
ＣＭＯＳメモリ１１は、カード１の鍵と、他の秘密事項とを含む。ＣＭＯＳメモリ１１は、電池によりバックアップされ、既知の様々なセキュリティメカニズムＳＭ１５により保護される。これは異常発生時には侵入の試みとみなし、その内容を消去する。
【００６０】
こうした異常は、たとえば温度の異常な上昇または降下、供給電圧の異常な上昇または降下、
カードが差し込まれていないこと、
（カード側またはホストシステム側からの）物理的な侵入の試み、
その他
によるものである。
【００６１】
上記の各事象が、ＣＭＯＳメモリ１１のリセットに作用を及ぼす警急（アラーム）信号を始動する。
【図面の簡単な説明】
【図１】本発明によるアーキテクチャのブロックを示す図である。
【符号の説明】
１  暗号化回路
２  入出力モジュール
３  暗号化モジュール
３１  第１の暗号化サブモジュール
３２  第２の暗号化サブモジュール
４  アイソレート手段またはデュアルポートメモリ
６  マイクロプロセッサ
６１  入出力プロセッサ
６２  ＰＣＩインターフェース
７  フラッシュメモリ
８  ＳＲＡＭ
９  暗号化素子またはＳＣＥ素子
１０１、１０２  暗号化プロセッサ
１１  ＣＭＯＳメモリ
１２  フラッシュＰＲＯＭメモリ
１３  ＳＲＡＭ
１５  安全化機構
ＨＳ  ホストシステム
ＰＣＩ  専用バス
【図１】
0004138225.tif 000002