(57)【要約】【課題】万一制御プログラムがウイルス感染した場合等は鍵が外部に漏れてしまう危険性があるとともに、バスの使用効率が悪い。【解決手段】鍵管理モジュールと暗号化・復号処理モジュールの間に専用通信チャネルを設け、鍵管理モジュールから暗号化・復号処理モジュールへの鍵配送を専用通信チャネルを介して行う。これにより、バス上で生の鍵データを送受信することをやめるようにしたことを特徴とする通信暗号化処理装置等、を提供する。【選択図】図１
2008042655.tif 000002
【特許請求の範囲】
【請求項１】
システム全体の制御を行う制御プログラムを搭載したＣＰＵと、
システム外部とデータの入出力を行うための外部インターフェースと、
前記外部インターフェースからの入力データ又は外部インターフェースへの出力データを一時保持するための第一の記憶手段と、
前記外部インターフェース又は前記第一の記憶手段に格納されているデータを読み出し、暗号化・復号処理又はメッセージ認証コードを生成し、処理結果を前記第一の記憶手段に格納する暗号化・復号処理モジュールと、
前記暗号化・復号処理モジュールで使用する鍵を生成し、前記暗号化・復号処理モジュールへ配送するための鍵管理モジュールと、
前記ＣＰＵ、前記外部インターフェース、前記第一の記憶手段、前記鍵管理モジュール、前記暗号化・復号処理モジュールが接続されているバスと、
前記鍵管理モジュールに接続され、システムの秘密情報が保持されている不揮発性の第二の記憶手段と、
前記鍵管理モジュールに接続され、前記暗号化・復号処理モジュールへ配送する鍵情報を保持しておくための第三の記憶手段と、
から構成され前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に前記バス以外に専用信号線を設け、前記鍵管理モジュールで生成され、前記暗号化・復号処理モジュールで使用する鍵は前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に設けられた前記専用信号線を通して配送されることを特徴とする通信暗号化処理装置。
【請求項２】
前記鍵管理モジュールから前記暗号化・復号処理モジュールへ前記鍵を配送した後、前記鍵の配送が完了したことを示すデータグラムを前記暗号化・復号処理モジュールから前記鍵管理モジュールへ送信することを特徴とする請求項１に記載の通信暗号化処理装置。
【請求項３】
システム全体の制御を行う制御プログラムを搭載したＣＰＵと、
システム外部とデータの入出力を行うための外部インターフェースと、
前記外部インターフェースからの入力データ又は外部インターフェースへの出力データを一時保持するための第一の記憶手段と、
前記外部インターフェース又は前記第一の記憶手段に格納されているデータを読み出し、暗号化・復号処理又はメッセージ認証コードを生成し、処理結果を前記第一の記憶手段に格納する暗号化・復号処理モジュールと、
前記暗号化・復号処理モジュールで使用する鍵を生成し、前記暗号化・復号処理モジュールへ配送するための鍵管理モジュールと、
前記ＣＰＵ、前記外部インターフェース、前記第一の記憶手段、前記鍵管理モジュール、前記暗号化・復号処理モジュールが接続されているバスと、
前記鍵管理モジュールに接続され、システムの秘密情報が保持されている不揮発性の第二の記憶手段と、
前記鍵管理モジュールに接続され、前記暗号化・復号処理モジュールへ配送する鍵情報を保持しておくための第三の記憶手段と、
から構成され、
前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に前記バス以外に専用信号線を設け、前記鍵管理モジュール又は前記暗号化・復号処理モジュールのうちの一方のモジュールからもう一方のモジュールに対して前記専用信号線を使って特定の演算処理要求を送り、前記専用信号線を使って前記特定の演算処理結果を送り返すことを特徴とする通信暗号化処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号処理、認証処理等を行う通信暗号化処理装置に関する。
【背景技術】
【０００２】
近年、文書や画像、音声等様々な種類のデータがインターネットやイントラネット等の通信路を通して全世界で送受信されている。また、ＡＤＳＬや光ファイバー等の普及により、より高速な通信に対する需要が高まっている。この送受信されているデータの中には、個人のプライバシーに関するデータや機密データ等、第三者には秘密にしたいデータも多く含まれている。そのため、ＳＳＬ／ＴＬＳやＩＰｓｅｃ等のようにデータを暗号化し、第三者には解読不能にして通信を行う通信暗号化技術が開発されてきた。
【０００３】
ここで、通信暗号化技術の例としてＳＳＬ／ＴＬＳについて簡単に説明する。ＳＳＬ／ＴＬＳの主要なプロトコルはハンドシェイク・プロトコルとレコード・プロトコルである。ハンドシェイク・プロトコルでは、通信相手の認証及びレコード・プロトコルで使用する暗号アルゴリズムの選択や暗号アルゴリズムで使用する共通鍵の生成を行う。レコード・プロトコルでは、送受信するデータのメッセ維持認証コードの計算と暗号化・復号を行う。ＳＳＬ／ＴＬＳでは通信相手の認証を行うことでなりすましを、送受信するデータのＭＤを計算することでデータの改竄を、送受信するデータを暗号化することで盗聴を防いでいる。
【０００４】
図１１は従来のＳＳＬ／ＴＬＳを行うセキュリティ・チップ９００の例である。
【０００５】
従来のセキュリティ・チップ９００では、メインＣＰＵ１０によってセキュリティ・チップ９００内の制御が行われる。また、通信Ｉ／Ｆ１１はネットワーク１０２を介して外部装置Ａ１２、外部装置Ｂ１３、外部装置Ｃ１４等とデータを送受信し、通信暗号処理装置９０１がＳＳｌ／ＴＬＳの処理を行う。メインＣＰＵ１０、通信Ｉ／Ｆ１１、通信暗号化処理装置９０１は共通バス１０１を介して接続している。通信暗号化処理装置９０１には、通信暗号化処理装置９０１内の全体の制御を行う制御プログラム９１０を搭載したＣＰＵ２、暗号化・復号処理モジュール９０６で処理を行う前のデータ及び処理を行った後のデータを一時保持するワークメモリ３が設けられている。
【０００６】
また、メインＣＰＵ１０や通信Ｉ／Ｆ１１から受信したデータをワークメモリ３に書き込んだり、ワークメモリ３からメインＣＰＵ１０や通信Ｉ／Ｆ１１へデータの送信を行う外部Ｉ／Ｆ４を有する。また、通信暗号化処理装置９０１において暗号化・復号処理に使われる鍵のライフサイクルを管理する鍵管理モジュール９０５を有する。また、鍵管理モジュール９０５より供給される鍵を使用してワークメモリ３から読み出したデータに対する暗号化処理又は復号処理を行ったり、メッセージ認証コードを生成したりするための暗号化・復号処理モジュール９０６を有する。また、暗号化・復号処理モジュール９０６が使用し、鍵管理モジュール９０５がそのライフサイクルを管理する鍵を格納しておくメモリ９０８が含まれている。このＣＰＵ２、ワークメモリ３、外部Ｉ／Ｆ４、鍵管理モジュール９０５、暗号化・復号処理モジュール９０６は共通バス１００で接続している。
【０００７】
ここで、セキュリティ・チップ９００の動作について簡単に説明する。
【０００８】
メインＣＰＵ１０は外部装置Ａ１２からネットワーク１０２、通信Ｉ／Ｆ１１を介してデータを受信すると、受信したデータを通信暗号化処理装置９０１に送信する。次に、外部Ｉ／Ｆ４を介してデータを受信した通信暗号化処理装置９０１では、受信したデータをワークメモリ３に一時保持する。次に、外部装置Ａ１２と共有した鍵を鍵管理モジュール９０５から暗号化・復号処理モジュール９０６に配送する。次に、暗号化・復号処理モジュール９０６はワークメモリ３に保持されているデータを読み込み暗号化・復号処理を行い、処理したデータを再びワークメモリ３に書き込む。最後に、暗号化・復号処理モジュール９０６が受信した全てのデータの処理を終えると、外部Ｉ／Ｆ４を介してメインＣＰＵ１０にワークメモリ３に保持されているデータを送る。
【０００９】
図１０は外部装置Ａ１２、外部装置Ｂ１３、外部装置Ｃ１４の３者と暗号通信を行う際の鍵管理モジュール９０５の鍵生成、鍵配送処理と暗号化・復号処理モジュール９０６が行う暗号化処理のタイミングを示した図である。
【００１０】
先ず、Ｔ１０１において外部装置Ａ１２との暗号通信に使用する鍵を生成し、Ｔ１０２で鍵管理モジュール９０５から暗号処理モジュールにＴ１０１で生成した鍵を配送している。
【００１１】
Ｔ１０３〜Ｔ１０５において暗号化・復号処理モジュール９０６は暗号化処理を行っている。このとき鍵管理モジュール９０５ではＴ１０４において外部装置Ｂ１３との暗号通信に必要な鍵の生成を行っている。
【００１２】
暗号化処理が終了するとＴ１０６で鍵管理モジュール９０５はＴ１０４で生成した外部装置Ｂ１３との暗号通信に必要な鍵の配送を行う。
【００１３】
続いて、Ｔ１０７で暗号化・復号処理モジュール９０６はＴ１０６で配送された鍵を使用して外部装置Ｂ１３との暗号通信のための暗号化処理を行う。
【００１４】
Ｔ１０８で再び外部装置Ａ１２と暗号通信するために鍵管理モジュール９０５はＴ１０１で生成する。
【００１５】
その後、保持してあった外部装置Ａ１２用の鍵を暗号化・復号処理モジュール９０６へ配送し、Ｔ１０９〜Ｔ１１０で暗号化・復号処理モジュール９０６は外部装置Ａ１２との暗号通信のための暗号化処理を行う。
【００１６】
Ｔ１１０で鍵管理モジュール９０５は外部装置Ｃ１４との暗号通信のための鍵生成を行い、Ｔ１１１で暗号化・復号処理モジュール９０６に配送する。
【００１７】
そして、Ｔ１１２において暗号化・復号処理モジュール９０６は外部装置Ｃ１４との暗号通信のための暗号化処理を行う。
【００１８】
このようにして通信暗号化処理装置は外部装置Ａ１２、外部装置Ｂ１３、外部装置Ｃ１４の３者と暗号通信を行うことができる。
【００１９】
【特許文献１】特開２００６−１９１２０７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
しかしながら、上記従来例では暗号処理で使用する鍵を鍵管理モジュールからバスを介して配送する必要がある。このため、システム全体を制御しているＣＰＵ上の制御プログラムから鍵そのものが見えてしまい、万一制御プログラムがウイルス感染した場合等は鍵が外部に漏れてしまう危険性がある等安全性上の問題点がある。また、バス上には暗号化・復号処理モジュールとメモリ間で入出力データの送受信が行われており、鍵配送に使おうとすると転送効率が低下し、効率的に配送できないという問題点がある。
【課題を解決するための手段】
【００２１】
本発明では上記問題点に鑑み、システム全体の制御を行う制御プログラムを搭載したＣＰＵと、システム外部とデータの入出力を行うための外部インターフェースと、前記外部インターフェースからの入力データ又は外部インターフェースへの出力データを一時保持するための第一の記憶手段と、前記外部インターフェース又は前記第一の記憶手段に格納されているデータを読み出し、暗号化・復号処理又はメッセージ認証コードを生成し、処理結果を前記第一の記憶手段に格納する暗号化・復号処理モジュールと、前記暗号化・復号処理モジュールで使用する鍵を生成し、前記暗号化・復号処理モジュールへ配送するための鍵管理モジュールと、前記ＣＰＵ、前記外部インターフェース、前記第一の記憶手段、前記鍵管理モジュール、前記暗号化・復号処理モジュールが接続されているバスと、前記鍵管理モジュールに接続され、システムの秘密情報が保持されている不揮発性の第二の記憶手段と、前記鍵管理モジュールに接続され、前記暗号化・復号処理モジュールへ配送する鍵情報を保持しておくための第三の記憶手段とから構成され前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に前記バス以外に専用信号線を設け、前記鍵管理モジュールで生成され、前記暗号化・復号処理モジュールで使用する鍵は前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に設けられた前記専用信号線を通して配送されることを特徴とする通信暗号化処理装置等、を提供する。
【発明の効果】
【００２２】
本発明によれば、鍵管理モジュールと暗号化・復号処理モジュールの間に専用通信チャネルを設け、鍵配送や鍵データのハッシュ値の取得を専用通信チャネルを介して行うことにより、バス上で生の鍵データを扱うことなく所望の処理を行うことができる。
【発明を実施するための最良の形態】
【００２３】
（第１の実施例）
図１は本発明の第１の実施例における通信暗号化処理装置の内部構成を示した図である。図１を用いて第１の実施例における通信暗号化処理装置について説明する。
【００２４】
図１において１は通信暗号化処理ＳＳＬ／ＴＬＳを行う通信暗号化処理装置、２は通信暗号化処理装置１全体の制御を行う制御プログラム３０１を搭載したＣＰＵである。また、３は通信暗号化処理装置１内で暗号化・復号処理モジュール６で処理を行う前又は処理を行った後のデータを一時保持しておくためのワークメモリである。また、４はワークメモリ３へ通信暗号化処理装置１の外部からデータを入力したり、ワークメモリ３から外部へデータを出力したりするための外部インターフェースである。また、５は通信暗号化処理装置１において暗号化・復号処理に使われる鍵のライフサイクルを管理する鍵管理モジュールである。また、６は鍵管理モジュール５より供給される鍵を使用してワークメモリ３から読み出したデータに対する暗号化処理又は復号処理を行ったり、メッセージ認証コードを生成したりするための暗号化・復号処理モジュールである。また、７は通信暗号化処理ＳＳＬ／ＴＬＳの相互認証で使用するＸ．５０９証明書等を保持する第１のメモリである。また、８は暗号化・復号処理モジュール６がＳＳＬ／ＴＬＳのレコード・プロトコルで使用し、鍵管理モジュール５がそのライフサイクルを管理する鍵を格納しておく第２のメモリである。また、１００はＣＰＵ２、ワークメモリ３、外部インターフェース４、鍵管理モジュール５、暗号化・復号処理モジュール６等が接続するバス、１０１は外部インターフェース４と外部デバイスとを接続するためのバスである。また、２０４、２０５は鍵管理モジュール５と暗号化・復号処理モジュール６の間を接続する専用信号線である。また、３０１は鍵管理モジュール５や暗号化・復号処理モジュール６を制御し、かつメモリ８及びメモリ９に保持される鍵の指定を行う、ＣＰＵ２に搭載された制御プログラムである。
【００２５】
図２は制御プログラム３０１が管理しているセッション情報の例を表す図である。図２を用いて、制御プログラム３０１が管理しているセッション情報の例について説明する。
【００２６】
識別子は暗号処理に使用するセッションを識別するための数値である。ＳＳＬ／ＴＬＳの場合は暗号通信路を識別するセッションＩＤである。セッションＩＤは上述したＳＳＬ／ＴＬＳのハンドシェイク・プロトコルで決定される。
【００２７】
エントリ番号は制御プログラム３０１が識別子と１対１に対応させて割り当てた番号であり、制御プログラム３０１と鍵管理モジュール５、暗号化・復号モジュール６間の通信で鍵を識別するのに用いられる。この例では８つまで鍵を扱えるのでエントリ番号に０〜７の値を割り当てている。
【００２８】
活性化フラグはエントリ番号で識別された鍵の状態を示すフラグであり、エントリ番号で識別された鍵が第２のメモリに保持されていない初期化済みステータス、制御プログラム３０１が鍵管理モジュール５にエントリ番号で識別された鍵生成・登録要求を送信する。そして、鍵管理モジュール５から鍵生成・登録要求終了を受信するまでの間の登録中ステータス、エントリ番号で識別された鍵が第２のメモリに登録されている登録済みステータス、制御プログラム３０１が鍵管理モジュール５に鍵廃棄要求を送信する。鍵管理モジュール５から鍵廃棄終了を受信するまでの間の廃棄中ステータスの４つの状態を表す。
【００２９】
制御プログラム３０１は活性化フラグを見ることによって、各鍵の状態を知ることができる。先ず、初期化された状態では活性化フラグは初期化済みステータスとなっており、制御プログラム３０１が鍵生成・登録要求を送信するとそのエントリ番号の活性化フラグは登録中ステータスとなる。次に、制御プログラム３０１が鍵生成・登録終了信号を受信すると活性化フラグは登録済みステータスとなる。鍵の使用が終わって制御プログラム３０１が鍵廃棄要求を送信すると活性化フラグは廃棄中ステータスとなり、鍵廃棄終了信号を受信すると活性化フラグは初期化済みステータスとなる。
【００３０】
サイファー・スイートは暗号化・復号処理モジュール６で使用する暗号処理アルゴリズムであり、この場合ＳＳＬ／ＴＬＳのレコード・プロトコルで使用する暗号処理アルゴリズムである。
【００３１】
図３は鍵管理モジュール５が管理している情報の例を表す図である。図３を用いて、鍵管理モジュール５が管理している情報の例について説明する。
【００３２】
エントリ番号は鍵を識別するための番号で制御プログラム３０１が管理しているエントリ番号と同一のものである。
【００３３】
メモリ・アドレスは各エントリ番号に対応する鍵が第２のメモリ８上で保持されているアドレスを示すものである。
【００３４】
サイファー・スイートは制御プログラム３０１が管理しているサイファー・スイートと同一のものであり、暗号化・復号処理モジュール６で使用する暗号処理アルゴリズムである。
【００３５】
図４は鍵管理モジュール５の内部構成を示す図である。
【００３６】
図４において２１はバス１００を介してデータの送受信を行うためのＤＭＡコントローラ、２２はコマンド制御部、２３は乱数・鍵生成部、２４は鍵管理制御部、２０６はＤＭＡコントローラ２１とコマンド制御部２２間を接続するための信号線である。また、２０７，２０８はコマンド制御部２２と鍵生成部２３間を接続するための信号線、２０９は鍵生成部から鍵管理制御部への信号線、２１０、２１１はコマンド制御部と鍵管理制御部とを接続するための信号線である。
【００３７】
図５は暗号化・復号処理モジュール６の内部構成を示す図である。
【００３８】
図５において３１はバス１００を介してデータの送受信を行うためのＤＭＡコントローラ、３２はコマンド制御部、３３は暗号化処理部、３４はハッシュ処理部、３０６はＤＭＡコントローラ３１とコマンド制御部３２間を接続するための信号線である。また、３０７，３０８はコマンド制御部３２と暗号化処理部３３間を接続するための信号線、３０９は鍵管理制御部３５から暗号化処理部３３への信号線である。また、３１０、３１１はコマンド制御部とハッシュ処理部とを接続するための信号線、３１２は鍵管理制御部３５からハッシュ処理部３４への信号線である。
【００３９】
図６は通信暗号化処理装置１でＳＳＬ／ＴＬＳの通信開始から通信終了までの制御プログラム３０１、鍵管理モジュール５、暗号化・復号処理モジュール６の間のデータ送受信を示したシーケンス図である。
【００４０】
図７は制御プログラム３０１、鍵管理モジュール５、暗号化・復号処理モジュール６の間で送受信するデータグラムのフォーマットを示したものである。
【００４１】
図７（ａ）はこのデータグラムの構成を示した図である。データグラムは１バイトのコマンドと各コマンドによって定められたビット長をもつデータから構成されている。
【００４２】
次に、図６及び図７を使ってデータ送受信シーケンスについて説明する。
【００４３】
ステップＳ１０１において制御プログラム３０１は鍵管理モジュール５に乱数生成要求を送信する。送信される乱数生成要求を示すデータグラムのフォーマットは図７（ｂ）で示されるようになっており、コマンド部は乱数生成要求を示す１バイトのコードと乱数長を示すコードが連結した構成となっている。
【００４４】
次に、ステップＳ１０２において鍵管理モジュール５は乱数を生成する。鍵管理モジュール５は上述したように図６に示される構成になっており、ＤＭＡコントローラ２１を介してステップＳ１０１において受信した乱数生成要求データグラムをコマンド制御部２２へ送る。コマンド制御部２２は受信したデータを解析し、信号線２０７により乱数・鍵生成部２３へ乱数生成要求データグラムを送る。乱数・鍵生成部２３は受信したデータグラムから乱数のビット長を取り出し、所望のビット長の乱数を生成する。そして、生成した乱数を信号線２０８によりコマンド制御部へ送る。
【００４５】
ステップＳ１０３において図７（ｃ）に示すように鍵管理モジュール５内のコマンド制御部２２は乱数生成終了を示すコマンドと生成された乱数を連結したデータグラムをＤＭＡコントローラ２２を介してバス１００へ出力する。そして、制御プログラム３０１がこれを受信する。なお、生成した乱数の使用方法はＳＳＬ／ＴＬＳの規格書に記述されている通りである。
【００４６】
ステップＳ１０４において制御プログラム３０１は鍵管理モジュール５に証明書要求を送信する。証明書要求データグラムのフォーマットは図７（ｄ）に示すように証明書要求を示すコマンドと識別子を示すデータが連結されて構成となっている。
【００４７】
ステップＳ１０５において鍵管理モジュール５内部では証明書要求データグラムが図６に示すＤＭＡコントローラ２１を介してコマンド制御部２２へ送られ、コマンド制御部２２は信号線２１０により鍵管理制御部２４へ証明書要求データグラムを送る。鍵管理制御部２４はメモリバス２０１を介して不揮発性メモリ７から証明書を読み出し、信号線２１１によりコマンド制御部２２へ送る。
【００４８】
ステップ１０６でコマンド制御部２２は証明書送信を示すコマンドと不揮発性メモリ７から読み出した証明書を連結した図７（ｅ）に示すデータグラムを作成し、ＤＭＡコントローラ２１、バス１００を介して制御プログラム３０１へ送信する。
【００４９】
ステップＳ１０７において制御プログラム３０１は鍵管理モジュール５に鍵生成・登録要求を送信する。制御プログラム３０１は図２で示したセッション情報を保持しており、ＳＳＬ／ＴＬＳのハンドシェイク・プロトコルで得られたセッションＩＤを識別子とし、セッション情報の活性化フラグが初期化済みステータスであるエントリ番号を抽出して結びつける。また、同様に、ハンドシェイク・プロトコルで決定した通信に使用する特定のサイファー・スイートを示すコードをセッション情報に保持する。なお、このとき、制御プログラム３０１は制御プログラムの仕様で定められた数以下の鍵生成要求しか発生させないので活性化フラグが初期化済みステータスであるエントリ番号が必ず存在するようになっている。そして、鍵生成要求をしたエントリ番号の活性化フラグを登録中ステータスに書き換える。
【００５０】
制御プログラム３０１はこのようにして決定した鍵管理テーブル１上の情報から鍵生成・登録要求データグラムを生成し、鍵管理モジュール５に送信する。なお、鍵生成・登録要求データグラムは、図７（ｆ）に示したように、鍵生成・登録要求を示すコマンド、エントリ番号、サイファー・スイート、プレマスター・シークレット、クライアント・ランダム、サーバー・ランダムから構成される。鍵管理モジュール５では鍵生成・登録要求を受信し、コマンド制御部２２に送る。
【００５１】
ステップＳ１０８では鍵管理モジュール５内でコマンド制御部２２は信号線２０７により乱数・鍵生成部２３へ鍵生成・登録要求データグラムを送る。乱数・鍵生成部２３はＳＳＬ／ＴＬＳの規格に記載されている方法で鍵生成を行い、図７（ｇ）に示したように鍵生成・登録終了信号とエントリ番号を連結したデータグラムを生成し信号線２０９によりに鍵管理制御部２４へ送る。鍵管理制御部２４は図３に示した鍵管理テーブル１を保持しており、乱数・鍵生成部から送られてきたエントリ番号、サイファー・スイートをメモリ８上の所定のアドレスに対応させて管理する。そして、送られてきた鍵をメモリバス２０２を介してエントリ番号と対応するメモリ８上のアドレスから書き込む。
【００５２】
ステップＳ１０９において鍵管理モジュール５内で鍵管理制御部２４は図７（ｇ）に示すように鍵生成・登録終了を示すコマンドとエントリ番号を連結したデータグラムを生成し、コマンド制御部２２へ送る。コマンド制御部２２はこのデータグラムを信号線２０６、ＤＭＡコントローラ２１、バス１００を介して制御プログラム３０１へ送信する。制御プログラム３０１は鍵管理モジュール５から暗号化・復号処理モジュール６への鍵配送のタイミングを管理している。
【００５３】
ステップＳ１１０において所望のタイミングで図７（ｈ）に示すように鍵配送要求を示すコマンドと配送する鍵のエントリ番号を連結したデータグラムを生成し、鍵管理モジュール５に送信する。そして、鍵管理モジュール５内ではバス１００、ＤＭＡコントローラ２１、信号線２０６を介してコマンド制御部２２がこのデータグラムを受信する。
【００５４】
ステップＳ１１１においてコマンド制御部２２は信号線２１０を介してこのデータグラムを鍵管理制御部２４へ送る。鍵管理制御部２４は保持している鍵管理テーブル２から受信したエントリ番号の示すメモリ８上のアドレスを特定し、メモリバス２０２を介して所望の鍵データを読み出す。
【００５５】
ステップＳ１１２において鍵管理モジュール５内の鍵管理制御部２４は、図７（ｉ）に示されるデータグラムを生成し、専用信号線２０４へ送る。このとき、鍵管理制御部２４は、受信したデータグラムと受信したデータグラム内のエントリ番号から鍵管理制御部２４が保持している鍵管理テーブル２から割り出したサイファー・スイートとステップＳ１１１で読み出した鍵データからデータグラムを作成する。
【００５６】
ステップＳ１１３では専用信号線２０４により暗号化・復号処理モジュール６は図７（ｉ）に示されるデータグラムを鍵管理モジュール４から受信し、鍵管理制御部３５で保持する。
【００５７】
ステップＳ１１４では暗号化・復号処理モジュール６は鍵管理制御部３５において図７（ｊ）に示すように鍵配送終了を示すコマンドとエントリ番号から構成されるデータグラムを生成する。そして、専用信号線２０５を介して鍵管理モジュール４へ送信し、鍵管理制御部２４がこのデータグラムを受信する。
【００５８】
ステップＳ１１５において鍵管理制御部２４は図７（ｋ）に示す鍵配送終了を示すコマンドとエントリ番号から構成されるデータグラムを生成し、コマンド制御部２２へ送る。そして、信号線２０６、ＤＭＡコントローラ２１、バス１００を介して制御プログラム３０１に送信する。
【００５９】
制御プログラム３０１は暗号処理を行うタイミングを管理している。ステップＳ１１６においてステップＳ１１５で鍵配送終了信号を受信した後、データグラムを生成し、所望のタイミングで暗号化・復号処理モジュール６へ送信する。このデータグラムには、図７（ｌ）に示すように、暗号処理要求を示すコマンドとエントリ番号及びワークメモリ３上に格納されている被処理データの先頭アドレス、被処理データのデータ長が含まれる。更に、暗号処理後のデータを書き込むワークメモリ３上の先頭アドレス、暗号処理後のデータのデータ長が含まれる。
【００６０】
ステップＳ１１７において暗号化・復号処理モジュール６ではバス１００を介してＤＭＡコントローラ３１がこのデータグラムを受信し、このデータグラムを保持するとともにコマンド制御部３２へ送る。また、このデータグラムからワークメモリ３上で被処理データの格納されているアドレスとデータ長を取り出し、ワークメモリ３から所定の被処理データを読み出し、コマンド制御部３２へ送る。次に、コマンド制御部３２は暗号化処理要求コマンドとエントリ番号を信号線３４により鍵管理制御部３５へ送り、鍵管理制御部３５はエントリ番号と対応する暗号化に使用する鍵を信号線３０９を介して暗号化処理部３３へ送る。エントリ番号に対応する鍵付きハッシュ処理に対応する鍵を信号線３１２によりハッシュ処理部３４へ送る。また、コマンド制御部３２は被処理データをまず信号線３１１によりハッシュ処理部３４へ送り、演算結果を信号線３１３により受け取る。また、コマンド制御部３２は被処理データにハッシュ処理部３４での演算結果を付加したデータを信号線３０７によりブロック暗号処理部３３へ送る。そして、得られた演算結果を信号線３１０により受け取る。こうして得られた暗号化されたデータをコマンド制御部３２は信号線３０６を介してＤＭＡコントローラ３１に送る。そして、ＤＭＡコントローラ３１は制御プログラム３０１から受信したデータグラムに示されているワークメモリ３上の所定のアドレスから所定長の暗号化されたデータを書き込む。
【００６１】
ステップＳ１１８において暗号化・復号処理モジュール６はコマンド制御部３２が図７（ｍ）に示されるように暗号処理終了を示すコマンドとエントリ番号から構成されるデータグラムを生成し、制御プログラム３０１へ送信する。
【００６２】
制御プログラム３０１は鍵を廃棄するタイミングを管理している。ステップＳ１１９において暗号通信終了後、鍵が不要になると制御プログラム３０１は鍵管理モジュール５に図７（ｎ）に示すように鍵廃棄要求を示すコマンドとエントリ番号から構成されるデータグラムを生成し、鍵管理モジュール５へ送信する。鍵管理モジュール５はこのデータグラムを受信し、ＤＭＡコントローラ３１、信号線３０６を介してコマンド制御部３２に送る。
【００６３】
ステップＳ１２０において鍵管理モジュール５内でコマンド制御部３２は信号線３１３により鍵管理制御部３５へ鍵廃棄要求データグラムを送る。鍵管理制御部３５は受け取ったデータグラムからエントリ番号を取り出し、図３に示した鍵管理テーブル２を参照してメモリ８上の対応するアドレスに保持されている鍵データを初期化する。
【００６４】
ステップＳ１２１において鍵管理モジュール５内の鍵制御管理部３５は図７（ｏ）に示すような鍵の廃棄終了を示すコマンドとエントリ番号から構成されるデータグラムを生成し、信号線３１４によりコマンド制御部３２へ送る。コマンド制御部３２は信号線３０６、ＤＭＡコントローラ３１、バス１００を介して鍵廃棄終了データグラムを制御プログラム３０１に送信する。
【００６５】
以上、本発明の第１の実施例において通信暗号化処理装置１が暗号通信を行う一連のシーケンスを説明したが、複数の通信相手と暗号通信を行う場合を図８のタイミングチャートを用いて説明する。
【００６６】
図８ではＡ、Ｂ、Ｃの３者と暗号通信を行っており、先ず、Ｔ１において乱数生成、Ｔ２において証明書送付、Ｔ３において鍵生成・登録と上述した一連のシーケンスを行っている。
【００６７】
Ｔ４においてはＴ３で生成・登録した鍵を鍵管理モジュール５から暗号化・復号処理モジュール６へ専用線２０４、２０５を使って配送する。また、並行してバス１００経由で制御プログラム３０１からＢとの暗号通信を行うために乱数生成要求を受信し、乱数生成を行っている。
【００６８】
Ｔ５では鍵管理モジュール５がＢに送付する証明書を送付するとともに暗号化・復号処理モジュール６はＡと通信するデータの暗号化を行っている。
【００６９】
Ｔ６では鍵管理モジュール５がＢと暗号通信するための鍵生成・登録を行うとともに並行して暗号化・復号処理モジュール６は引き続きＴ７まで暗号化処理を行っている。
【００７０】
Ｔ８では暗号化・復号処理モジュール６がＡへ送信するデータの暗号化が終了しているため、鍵管理モジュール５はすでに登録が済んでいるＢとの暗号通信を行うための鍵を配送する。暗号化・復号処理モジュール６は暗号処理に使用する鍵をＡ用からＢ用に切り替える。
【００７１】
Ｔ９〜Ｔ１１では鍵管理モジュール５はＣとの暗号通信のため乱数生成、証明書送付、鍵生成・登録を行っており、暗号化・復号処理モジュール６はＢとの暗号通信のための暗号化処理をＴ９〜Ｔ１２まで行っている。
【００７２】
Ｔ１３では暗号化・復号処理モジュール６がＢへ送信するデータの暗号化が終了しているため、鍵管理モジュール５はすでに登録が済んでいるＡとの暗号通信を行うための鍵を配送する。暗号化・復号処理モジュール６は暗号処理に使用する鍵を再びＢ用からＡ用に切り替える。
【００７３】
Ｔ１４では暗号化・復号処理モジュール６はＡとの暗号通信のための暗号化処理を行っている。
【００７４】
Ｔ１５では暗号化・復号処理モジュール６がＡへ送信するデータの暗号化が終了しているため、鍵管理モジュール５はすでに登録が済んでいるＣとの暗号通信を行うための鍵を配送する。そして、暗号化・復号処理モジュール６は暗号処理に使用する鍵をＡ用からＣ用に切り替える。
【００７５】
Ｔ１６では暗号化・復号処理モジュール６はＣとの暗号通信のための暗号化処理を行っている。
【００７６】
以下、同様の手順で複数の相手との暗号通信を暗号通信のための準備の処理と暗号化処理とを並行して行うことができる。
【００７７】
以上、説明したように通信暗号化処理装置において１つのバスに接続した鍵管理モジュールと暗号化・復号処理モジュール間を専用信号線で接続し、暗号処理に使用する鍵を専用信号線を使って配送することにより、効率良く複数の相手と暗号通信ができる。また、ＣＰＵ上の制御プログラムから隠蔽した専用信号線上で暗号化処理に使う鍵を配送することにより耐タンパー性を向上させることができる。
【００７８】
（第２の実施例）
図１２は本発明の第２の実施例におけるＣＰＵ上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間で送受信されるデータグラムを示した図である。図１２において図７の第１の実施例の場合と比べて（ｈ）、（ｉ）、（ｊ）、（ｋ）が異なる。
【００７９】
また、図１３は本発明の第２の実施例におけるＣＰＵ上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間でのデータ送受信のシーケンスを示した図である。図１３において図６の第１の実施例の場合と比べてステップＳ１１０’〜ステップＳ１１５’が異なる。
【００８０】
図１２及び図１３を用いて本実施例を説明する。
【００８１】
図１３に示すステップＳ１１０’において図１２（ｈ）に示されるデータグラムを制御プログラム３０１が鍵管理モジュール５に送信する。このデータグラムのコマンド部分は鍵配送と鍵のハッシュ値を要求する内容になっている。
【００８２】
ステップＳ１１１’では第１の実施例のときと同様に鍵管理モジュール５の内部において鍵管理制御部２４はエントリ番号に対応した鍵がメモリ８から読み出し、図１２（ｉ）に示されるデータグラムを生成する。
【００８３】
そして、ステップＳ１１２’において専用通信チャネル２０４により暗号化・復号処理モジュール６に送信する。このデータグラムで第１の実施例における鍵配送のときと異なる点はコマンド部分が鍵配送と鍵ハッシュ値を要求する内容になっている点のみである。
【００８４】
次に、暗号化・復号処理モジュール６はステップＳ１１３’において鍵管理制御部３５は受信したデータグラムに含まれる鍵データを保持するとともにデータグラムを信号線３１２によりハッシュ処理部３１２に送る。ハッシュ処理部はデータグラムから鍵データ部分を取り出し、ハッシュ値を求める。そして図１２（ｊ）に示されるデータグラムを生成し、信号線３１３によりコマンド制御部３２へ送る。コマンド制御部３２はそのままデータグラムを信号線３１４により鍵管理制御部３５に送る。
【００８５】
ステップＳ１１４’において鍵管理制御部３５は専用通信チャネル２０５により鍵管理モジュール５へ図１２（ｊ）に示されるデータグラムを送信する。
【００８６】
ステップＳ１１５’において鍵管理モジュール５は鍵管理制御部２４が個のデータグラムを受信し、信号線２１１によりコマンド制御部２２へ送る。そして、第１の実施例と同様に鍵管理モジュール６から制御プログラム３０１へ図１２（ｋ）に示されるデータグラムを送信する。
【００８７】
このようにして制御プログラム３０１は鍵配送終了を認識するとともに、鍵配送した鍵データのハッシュ値を得ることができる。
【００８８】
図１４は本発明の第２の実施形態において通信暗号化処理装置が複数の相手と暗号通信するタイミングを示した図である。
【００８９】
同図においてＴ１〜Ｔ３では外部装置Ａとの暗号通信のために図１３におけるステップＳ１０１〜ステップＳ１０９までのシーケンスを行う。
【００９０】
Ｔ４ではステップＳ１１０’〜Ｓ１１２’までのシーケンスを行う。
【００９１】
Ｔ５ではステップＳ１１３’を行う。
【００９２】
Ｔ６ではステップＳ１１４’、ステップＳ１１５’及びステップＳ１１６、ステップＳ１１７を並行して行う。
【００９３】
ステップＳ１１３’で得られた鍵のハッシュ値、鍵の配送終了を示すデータグラムを制御プログラム３０１に送信するとともにワークメモリ３上から被処理データを読み出し、暗号化・復号処理を行い、順次暗号化されたデータをワークメモリ３上に書き込む。
【００９４】
Ｔ７〜Ｔ９では外部装置Ａとの暗号通信のための暗号化・復号処理を引き続き行いながら外部装置Ｂとの暗号通信のために図１３におけるステップＳ１０１〜ステップＳ１０９までのシーケンスを行う。
【００９５】
Ｔ１０では外部装置Ｂとの暗号通信のためにステップＳ１１０’〜Ｓ１１２’までのシーケンスである鍵配送を行いながら、引き続き外部装置Ａとの暗号通信のための暗号化・復号処理を行う。
【００９６】
Ｔ１１ではＴ５と同様に外部装置Ｂとの暗号通信のためにステップＳ１１３’を行う。
【００９７】
Ｔ１２では外部装置Ｂに対する暗号通信のためにステップＳ１１４’、ステップＳ１１５’及びステップＳ１１６、ステップＳ１１７を並行して行う。
【００９８】
Ｔ１３では外部装置Ｂとの暗号通信のための暗号化・復号処理を引き続き行う。
【００９９】
Ｔ１４では外部装置Ａとの暗号通信のためにステップＳ１１０’〜Ｓ１１２’までのシーケンスである鍵配送を行いながら、引き続き外部装置Ｂとの暗号通信のための暗号化・復号処理を行う。
【０１００】
Ｔ１５ではＴ５と同様にステップＳ１１３’を行う。
【０１０１】
Ｔ１６ではＴ６と同様にステップＳ１１４’、ステップＳ１１５’及びステップＳ１１６、ステップＳ１１７を並行して行う。
【０１０２】
Ｔ１７〜Ｔ１９では外部装置Ａとの暗号通信のための暗号化・復号処理を引き続き行いながら外部装置Ｃとの暗号通信のために図１３におけるステップＳ１０１〜ステップＳ１０９までのシーケンスを行う。
【０１０３】
Ｔ２０では外部装置Ｃとの暗号通信のためにステップＳ１１０’〜Ｓ１１２’までのシーケンスである鍵配送を行いながら、引き続き外部装置Ａとの暗号通信のための暗号化・復号処理を行う。
【０１０４】
Ｔ２１ではＴ５と同様に外部装置Ｃとの暗号通信のためにステップＳ１１３’を行う。
【０１０５】
Ｔ２２では外部装置Ｃに対する暗号通信のためにステップＳ１１４’、ステップＳ１１５’及びステップＳ１１６、ステップＳ１１７を並行して行う。
【０１０６】
Ｔ２３では外部装置Ｃとの暗号通信のための暗号化・復号処理を引き続き行う。
【０１０７】
また、暗号処理要求も同様に鍵のハッシュ値を要求するコマンドを用意することにより同様の手順で暗号処理の実行の際に使用した鍵のハッシュ値を制御プログラム３０１は入手することができる。そして、鍵配送と暗号処理時に得られた鍵のハッシュ値の一致を確認したり、他のエントリ番号の鍵とハッシュ値が異なることを確認することができる。また、直接鍵データそのものを扱うことなく鍵管理モジュール、暗号化・復号処理モジュールで所望の処理が行われていることを確認できる。
【０１０８】
以上説明したように、鍵管理モジュールと暗号化・復号処理モジュール間の専用通信チャネルを使って暗号化・復号処理モジュールに鍵のハッシュ値を算出させ、ＣＰＵ上の制御プログラムが読み出させるようにしている。このため、制御プログラムは鍵データ自体を扱うことなく、所望の処理が正しく行われているか調べることができる。
【０１０９】
なお、本発明の実施形態は、例えばコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。
【図面の簡単な説明】
【０１１０】
【図１】本発明を実施した通信暗号化処理装置のブロック構成を示した図である。
【図２】本発明の第１の実施形態においてＣＰＵ上の制御プログラムが管理しているセッション情報の例を表す図である。
【図３】本発明の第１の実施形態において鍵管理モジュールが管理している情報の例を表す図である。
【図４】本発明の第１の実施形態において鍵管理モジュールの内部構成を示した図である。
【図５】本発明の第１の実施形態において暗号化・復号処理モジュールの内部構成を示した図である。
【図６】本発明の第１の実施形態においてＣＰＵ上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間でのデータ送受信のシーケンスを示した図である。
【図７】本発明の第１の実施形態においてＣＰＵ上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間で送受信されるデータグラムを示した図である。
【図８】本発明の第１の実施形態において通信暗号化処理装置が複数の相手と暗号通信する詳細なタイミングを示した図である。
【図９】本発明の第１の実施形態において通信暗号化処理装置が複数の相手と暗号通信するタイミングの概略を示した図である。
【図１０】従来技術において通信暗号化処理装置が複数の相手と暗号通信するタイミングの概略を示した図である。
【図１１】従来の通信暗号化処理装置の内部構成と通信相手を示した概念図である。
【図１２】本発明の第２の実施形態においてＣＰＵ上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間で送受信されるデータグラムを示した図である。
【図１３】本発明の第２の実施形態においてＣＰＵ上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間でのデータ送受信のシーケンスを示した図である。
【図１４】本発明の第２の実施形態において通信暗号化処理装置が複数の相手と暗号通信するタイミングを示した図である。
【符号の説明】
【０１１１】
１、９０１：通信暗号化処理装置、２：ＣＰＵ、３：ワークメモリ、４：外部インターフェース、５、９０５：鍵管理モジュール、６、９０６：暗号化・復号処理モジュール、７：不揮発性メモリ、８、９０８：メモリ、２１、３１：ＤＭＡコントローラ、２２、３２：コマンド制御部、２３：鍵生成部、２４、３５：鍵管理制御部、３３：暗号化処理部、３４：ハッシュ処理部、１００、１０１：バス、１０２：ネットワーク、２０１〜２０３、２０６〜２１１、３０６〜３１４：信号線、２０４、２０５：専用信号線、３０１：制御プログラム、９００：セキュリティ・チップ
【図１】
2008042655.tif 000003
【図２】
2008042655.tif 000004
【図３】
2008042655.tif 000005
【図４】
2008042655.tif 000006
【図５】
2008042655.tif 000007
【図６】
2008042655.tif 000008
【図７】
2008042655.tif 000009
【図８】
2008042655.tif 000010
【図９】
2008042655.tif 000011
【図１０】
2008042655.tif 000012
【図１１】
2008042655.tif 000013
【図１２】
2008042655.tif 000014
【図１３】
2008042655.tif 000015
【図１４】
2008042655.tif 000016