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