"マルチタスクオペレーティングシステムの暗号通信装置であって、アイドルタスクにおいて、鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、前記公開情報を保持する保持手段と、を有することを特徴とする暗号通信装置。前記保持手段に保持された前記公開情報を読み出して鍵交換処理を実行する鍵交換手段をさらに有することを特徴とする請求項1に記載の暗号通信装置。当該暗号通信装置の負荷状態に応じて前記保持手段に保持される前記公開情報の数を変化させ、前記鍵交換手段の実行を制限する制御手段をさらに有することを特徴とする請求項2に記載の暗号通信装置。マルチタスクオペレーティングシステムの暗号通信装置における鍵交換の実行方法であって、アイドルタスクにおいて鍵交換に用いる公開情報を生成し、ユーザタスクにおいて前記公開情報を用いた鍵交換処理を実行する、ことを特徴とする鍵交換の実行方法。前記公開情報を保持手段に保持しておき、前記保持手段に保持された前記公開情報を読み出して鍵交換処理を実行することを特徴とする請求項4に記載の鍵交換の実行方法。当該暗号通信装置の負荷状態に応じて前記保持手段に保持される前記公開情報の数を変化させ、前記鍵交換処理の実行を制限することを特徴とする請求項5に記載の鍵交換の実行方法。マルチタスクオペレーティングシステムの暗号通信装置と対応装置との間で鍵交換を実行する通信システムであって、前記暗号通信装置が、アイドルタスクにおいて鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、前記公開情報と当該公開情報に関連する秘密情報とを保持する保持手段と、前記公開情報を読み出して前記対向装置へ送信し、前記対向装置から受信した他の公開情報と前記秘密情報とから共有情報を計算する鍵交換手段と、を有することを特徴とする通信システム。前記暗号通信装置が、負荷状態に応じて前記保持手段に保持される前記公開情報の数を変化させ、前記鍵交換手段の実行を制限する制御手段をさらに有することを特徴とする請求項7に記載の通信システム。マルチタスクオペレーティングシステムの暗号通信装置におけるコンピュータに鍵交換を実行させるプログラムであって、アイドルタスクにおいて鍵交換に用いる公開情報を生成する機能と、ユーザタスクにおいて前記公開情報を用いた鍵交換処理を実行する機能と、を前記コンピュータで実現させることを特徴とするプログラム。前記コンピュータの負荷状態に応じて、保持手段に保持される前記公開情報の数を変化させ、前記鍵交換処理の実行を制限することを特徴とする請求項9に記載のプログラム。しかしながら、暗号アルゴリズムの負荷を変更することなくシステム性能を向上させようとした場合、次の問題点が依然として未解決のまま残っている。すなわち、ソフトウェア処理による鍵交換タスクがシステム性能のボトルネックになること、および、鍵交換性能を向上させようとすれば他の処理の実行を阻害してしまうこと、である。そこで、本発明の目的は、ソフトウェア処理による鍵交換性能を向上させると共に、鍵交換処理の遂行が他の処理を阻害する事態を回避できる鍵交換の実行方法およびそれを用いた暗号通信装置を提供することにある。本発明による暗号通信装置は、マルチタスクオペレーティングシステムの暗号通信装置であって、アイドルタスクにおいて、鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、前記公開情報と当該公開情報に関連する秘密情報とを保持する保持手段と、を有することを特徴とする。本発明による鍵交換実行方法は、マルチタスクオペレーティングシステムの暗号通信装置における鍵交換の実行方法であって、アイドルタスクにおいて鍵交換に用いる公開情報を生成し、ユーザタスクにおいて前記公開情報を用いた鍵交換処理を実行する、ことを特徴とする。本発明による通信システムは、マルチタスクオペレーティングシステムの暗号通信装置と対応装置との間で鍵交換を実行する通信システムであって、前記暗号通信装置が、アイドルタスクにおいて鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、前記公開情報と当該公開情報に関連する秘密情報とを保持する保持手段と、前記公開情報を読み出して前記対向装置へ送信し、前記対向装置から受信した他の公開情報と前記秘密情報とから共有情報を計算する鍵交換手段と、を有することを特徴とする。本発明によれば、ソフトウェア処理による鍵交換性能を向上させると共に、鍵交換処理の遂行が他の処理を阻害する事態を回避できる。本発明によれば、秘密情報から公開情報を生成する鍵交換情報生成処理はアイドルタスクにおいて実行され、生成した情報をバッファに保持した後、公開情報を交換して共通情報を生成する鍵交換処理は鍵交換タスクにおいて実行する。すなわち、鍵交換情報生成処理と鍵交換処理とを分離し、それぞれをアイドルタスクと鍵交換タスクで実行する。さらに、必要に応じて、装置制御タスクは装置の負荷に応じてバッファ長を制御し鍵交換タスクの実行回数を制限することで、他の処理の実行を阻害しないようにすることも可能である。以下、本発明の実施形態について図面を参照しながら詳細に説明する。1.タスク構成図1において、暗号通信装置10は対向装置11とインターネット等のネットワークを通して接続され、DHDiffieHellman鍵交換プロトコルに従って動作するものとする。なお、DiffieHellmanについては周知であるからRFC2539参照詳細は省略する。暗号通信装置10には、図示されていないが、CPU等のプログラム制御プロセッサが設けられ、プログラムを実行することにより暗号通信タスク101、鍵交換タスク102、装置制御タスク103およびアイドルタスク105からなるタスク構成およびスケジューリングを実現する。具体的には、アイドルタスク105が秘密情報からDH生成演算により公開情報DH生成情報を生成しDHバッファ104に保持する。鍵交換タスク102は、対向装置11から受け取った対向装置側の公開情報と自己の秘密情報とを用いてDH演算により共有情報を生成し、暗号通信タスクへ供給する。暗号通信タスク101は、共有情報を用いて対向装置11との間で暗号通信を行う。装置制御タスク103は暗号通信装置10の負荷状態に応じてDHバッファサイズを制御し、CPUが高負荷状態であれば、鍵交換タスクが連続して鍵交換を行う回数を抑制する。図2に示すように、暗号通信装置10のマルチタスクオペレーティングシステムにおいて、ランキュー201には複数のタスクが優先度順に並んでおり、アイドルタスク105の優先度が最も低い。本装置の各種処理を実現する通常のタスクはユーザタスク106、107で実装される。スケジューラ202はランキュー301から優先順位の高いタスクを順に取り出し、それにCPU203を割り付けることでスケジューリングを行う。即ち、アイドルタスク105はランキュー201に他のタスクがない余剰時間に限り実行される。2.タスク間通信シーケンス図3において、上述したアイドルタスク105で生成されたDH生成情報公開値Bおよび秘密情報gyがDHバッファ104に保持されているものとする。対向装置よりDH公開値Aを受信するとステップ301、鍵交換タスク102はDHバッファ104からDH公開値Bおよび秘密情報gyを読み出すステップ302。なお、DHバッファ104が空の場合は読み出し処理が完了しないので、鍵交換タスク102はDHバッファ104にDH公開値Bおよび秘密情報gyが書き込まれるのを待つ。DHバッファ104からDH公開値Bおよび秘密情報gyを読み出すと、鍵交換タスク102はDH公開値Bを対向装置に通知するステップ303。鍵交換タスク102は、対向装置から受信したDH公開値Aと自己の秘密情報gyとを用いて対向装置との共有値gxy=fA,gyを計算しステップ304、それを暗号通信タスク101へ送信するステップ305。対向装置においても同様にして受信した公開値Bと自己の秘密情報gxとを用いて共有値gxy=fB,gxが計算される。こうして、暗号通信タスク101は共有値gxyを暗号マテリアルとして対向装置との間で暗号通信を行うことができるステップ306。3.アイドルタスク図4において、まず、マルチタスクオペレーティングシステムのアイドルタスク105において、DHバッファ104の状態を読み出しステップ401、DHバッファ401に空きがあるか否かを調べるステップ402。空きがない場合はステップ402;NO、DHバッファ104の状態読み出しステップ401に戻り、空きが出るまで待機する。DHバッファ104に空きあればステップ402;YES、DH鍵交換の秘密情報gyを生成しステップ403、そこから公開情報Bを計算するステップ404。そして、公開情報Bおよび秘密情報gyをDHバッファ104に書き込んでからステップ405、DHバッファ104の状態読み出しステップ401に戻る。これによりアイドルタスク105はDHバッファ104がフルになるまでDH鍵交換の秘密情報を生成し続ける。4.バッファ長制御図5において、まず、装置制御タスク103は負荷状態を読み出しステップ501、負荷状態に余裕があるか否かを判断するステップ502。負荷状態に余裕がある場合はステップ502;余裕あり、DHバッファ104が拡張可能であるかを判断しステップ503、拡張可能であればステップ503;YES、バッファ長を拡張するステップ504。バッファが拡張可能でなければステップ503;NO、そのまま終了する。負荷状態に余裕がない場合はステップ502;余裕なし、DHバッファ104が縮小可能であるか否かを判断するステップ505。縮小可能であればステップ505;YES、バッファを縮小するステップ506。バッファが縮小可能でなければステップ505;NO、そのまま終了する。なお、バッファ長制御は装置制御タスク103において必要に応じて実行される。5.効果上述した本実施形態によれば次の効果を奏する。第1の効果は、装置の余剰処理アイドルタスクにおいてDH公開値生成処理を行うので、DH交換時にはDH公開値を計算する必要がない。すなわち、DH生成情報の生成処理が鍵交換タスクから切り離され、DH交換時にDHバッファ104から公開値を読み出すだけで鍵交換処理を実行できるので、DH公開値の生成に要する時間だけ処理時間を短縮することができ、DH鍵交換性能を向上させることができる。第2の効果は、DH公開値生成処理がアイドルタスクで行われるので、DH公開値生成処理の実行に際して他の処理の実行を阻害することがない。第3の効果は、負荷状態を監視し、それに応じてDH鍵交換処理を抑制するので、鍵交換処理以外の処理も阻害されない。"