(57)【要約】【課題】ソフトウェア処理による鍵交換性能を向上させると共に、鍵交換処理の遂行が他の処理を阻害する事態を回避できる鍵交換の実行方法および暗号通信装置を提供する。【解決手段】マルチタスクオペレーティングシステムの暗号通信装置１０がアイドルタスク（１０５）において鍵交換プロトコルで用いる公開情報（ＤＨ生成情報）を生成し、公開情報を保持するＤＨバッファ（１０４）と、を有する。さらに装置制御タスク（１０３）が当該暗号通信装置の負荷状態に応じてＤＨバッファに保持される公開情報の数を変化させ鍵交換の実行を制限する。【選択図】図１
2013106164.tif 000002
【特許請求の範囲】
【請求項１】
マルチタスクオペレーティングシステムの暗号通信装置であって、
アイドルタスクにおいて、鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、
前記公開情報を保持する保持手段と、
を有することを特徴とする暗号通信装置。
【請求項２】
前記保持手段に保持された前記公開情報を読み出して鍵交換処理を実行する鍵交換手段をさらに有することを特徴とする請求項１に記載の暗号通信装置。
【請求項３】
当該暗号通信装置の負荷状態に応じて前記保持手段に保持される前記公開情報の数を変化させ、前記鍵交換手段の実行を制限する制御手段をさらに有することを特徴とする請求項２に記載の暗号通信装置。
【請求項４】
マルチタスクオペレーティングシステムの暗号通信装置における鍵交換の実行方法であって、
アイドルタスクにおいて鍵交換に用いる公開情報を生成し、
ユーザタスクにおいて前記公開情報を用いた鍵交換処理を実行する、
ことを特徴とする鍵交換の実行方法。
【請求項５】
前記公開情報を保持手段に保持しておき、前記保持手段に保持された前記公開情報を読み出して鍵交換処理を実行することを特徴とする請求項４に記載の鍵交換の実行方法。
【請求項６】
当該暗号通信装置の負荷状態に応じて前記保持手段に保持される前記公開情報の数を変化させ、前記鍵交換処理の実行を制限することを特徴とする請求項５に記載の鍵交換の実行方法。
【請求項７】
マルチタスクオペレーティングシステムの暗号通信装置と対応装置との間で鍵交換を実行する通信システムであって、
前記暗号通信装置が、
アイドルタスクにおいて鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、
前記公開情報と当該公開情報に関連する秘密情報とを保持する保持手段と、
前記公開情報を読み出して前記対向装置へ送信し、前記対向装置から受信した他の公開情報と前記秘密情報とから共有情報を計算する鍵交換手段と、
を有することを特徴とする通信システム。
【請求項８】
前記暗号通信装置が、負荷状態に応じて前記保持手段に保持される前記公開情報の数を変化させ、前記鍵交換手段の実行を制限する制御手段をさらに有することを特徴とする請求項７に記載の通信システム。
【請求項９】
マルチタスクオペレーティングシステムの暗号通信装置におけるコンピュータに鍵交換を実行させるプログラムであって、
アイドルタスクにおいて鍵交換に用いる公開情報を生成する機能と、
ユーザタスクにおいて前記公開情報を用いた鍵交換処理を実行する機能と、
を前記コンピュータで実現させることを特徴とするプログラム。
【請求項１０】
前記コンピュータの負荷状態に応じて、保持手段に保持される前記公開情報の数を変化させ、前記鍵交換処理の実行を制限することを特徴とする請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は共有情報を用いて暗号通信を行う暗号通信装置および鍵交換を実行する方法に関する。
【背景技術】
【０００２】
インターネット等の通信網で暗号鍵の交換を安全に実行する方法として、ディフィ−ヘルマン（Diffie-Hellman、以下ＤＨと略記する。）鍵交換プロトコルが知られている（ＲＦＣ５９９６等）。このようなＤＨ鍵交換においても、昨今では高い暗号強度が求められるようになり、より長い鍵長が求められている。
【０００３】
しかしながら、ＤＨ鍵交換に費やす演算量は他の処理に比べて大きいために、ＤＨ鍵交換をソフトウェアで実行する場合、鍵長を長くすることは演算量のさらなる増大を招き、鍵交換性能を悪化させる可能性がある。
【０００４】
マルチタスクオペレーティングシステムにおいては、鍵交換タスクの実行優先度を高くすることで高速化したり、あるいは当該タスクの並列実行により演算量の増大に対処したりすることが一般的であるが、このような方法は既存のソフトウェア構成を大きく変更しなければならず、各タスク間の優先度についても変更を要する。
【０００５】
また特許文献１には、暗号処理と他の高負荷処理とを内蔵ＣＰＵで同時に実行するシステムにおいて、ＣＰＵ処理能力を超えないように、ＣＰＵ使用率に応じて負荷の異なる暗号アルゴリズムを選択する方法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２５４２８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、暗号アルゴリズムの負荷を変更することなくシステム性能を向上させようとした場合、次の問題点が依然として未解決のまま残っている。すなわち、ソフトウェア処理による鍵交換タスクがシステム性能のボトルネックになること、および、鍵交換性能を向上させようとすれば他の処理の実行を阻害してしまうこと、である。
【０００８】
そこで、本発明の目的は、ソフトウェア処理による鍵交換性能を向上させると共に、鍵交換処理の遂行が他の処理を阻害する事態を回避できる鍵交換の実行方法およびそれを用いた暗号通信装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明による暗号通信装置は、マルチタスクオペレーティングシステムの暗号通信装置であって、アイドルタスクにおいて、鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、前記公開情報と当該公開情報に関連する秘密情報とを保持する保持手段と、を有することを特徴とする。
【００１０】
本発明による鍵交換実行方法は、マルチタスクオペレーティングシステムの暗号通信装置における鍵交換の実行方法であって、アイドルタスクにおいて鍵交換に用いる公開情報を生成し、ユーザタスクにおいて前記公開情報を用いた鍵交換処理を実行する、ことを特徴とする。
【００１１】
本発明による通信システムは、マルチタスクオペレーティングシステムの暗号通信装置と対応装置との間で鍵交換を実行する通信システムであって、前記暗号通信装置が、アイドルタスクにおいて鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、前記公開情報と当該公開情報に関連する秘密情報とを保持する保持手段と、前記公開情報を読み出して前記対向装置へ送信し、前記対向装置から受信した他の公開情報と前記秘密情報とから共有情報を計算する鍵交換手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ソフトウェア処理による鍵交換性能を向上させると共に、鍵交換処理の遂行が他の処理を阻害する事態を回避できる。
【図面の簡単な説明】
【００１３】
【図１】図１は本発明の一実施形態による暗号通信装置のタスク構成を示す機能的ブロック図である。
【図２】図２は本実施形態におけるタスクスケジューリングを説明するための模式図である。
【図３】図３は本実施形態におけるタスク間通信を示すシーケンス図である。
【図４】図４は本実施形態におけるアイドルタスクにおいて実行されるＤＨ生成情報の生成処理を示すフローチャートである。
【図５】図５は本実施形態における装置管理タスクのバッファ制御を示すフローチャートである。
【発明を実施するための形態】
【００１４】
本発明によれば、秘密情報から公開情報を生成する鍵交換情報生成処理はアイドルタスクにおいて実行され、生成した情報をバッファに保持した後、公開情報を交換して共通情報を生成する鍵交換処理は鍵交換タスクにおいて実行する。すなわち、鍵交換情報生成処理と鍵交換処理とを分離し、それぞれをアイドルタスクと鍵交換タスクで実行する。さらに、必要に応じて、装置制御タスクは装置の負荷に応じてバッファ長を制御し鍵交換タスクの実行回数を制限することで、他の処理の実行を阻害しないようにすることも可能である。以下、本発明の実施形態について図面を参照しながら詳細に説明する。
【００１５】
１．タスク構成
図１において、暗号通信装置１０は対向装置１１とインターネット等のネットワークを通して接続され、ＤＨ（Diffie-Hellman）鍵交換プロトコルに従って動作するものとする。なお、Diffie-Hellmanについては周知であるから（ＲＦＣ２５３９参照）詳細は省略する。
【００１６】
暗号通信装置１０には、図示されていないが、ＣＰＵ等のプログラム制御プロセッサが設けられ、プログラムを実行することにより暗号通信タスク１０１、鍵交換タスク１０２、装置制御タスク１０３およびアイドルタスク１０５からなるタスク構成およびスケジューリングを実現する。
【００１７】
具体的には、アイドルタスク１０５が秘密情報からＤＨ生成演算により公開情報（ＤＨ生成情報）を生成しＤＨバッファ１０４に保持する。鍵交換タスク１０２は、対向装置１１から受け取った対向装置側の公開情報と自己の秘密情報とを用いてＤＨ演算により共有情報を生成し、暗号通信タスクへ供給する。暗号通信タスク１０１は、共有情報を用いて対向装置１１との間で暗号通信を行う。装置制御タスク１０３は暗号通信装置１０の負荷状態に応じてＤＨバッファサイズを制御し、ＣＰＵが高負荷状態であれば、鍵交換タスクが連続して鍵交換を行う回数を抑制する。
【００１８】
図２に示すように、暗号通信装置１０のマルチタスクオペレーティングシステムにおいて、ランキュー２０１には複数のタスクが優先度順に並んでおり、アイドルタスク１０５の優先度が最も低い。本装置の各種処理を実現する通常のタスクはユーザタスク１０６、１０７で実装される。
【００１９】
スケジューラ２０２はランキュー３０１から優先順位の高いタスクを順に取り出し、それにＣＰＵ２０３を割り付けることでスケジューリングを行う。即ち、アイドルタスク１０５はランキュー２０１に他のタスクがない余剰時間に限り実行される。
【００２０】
２．タスク間通信シーケンス
図３において、上述したアイドルタスク１０５で生成されたＤＨ生成情報（公開値Ｂおよび秘密情報ｇｙ）がＤＨバッファ１０４に保持されているものとする。
【００２１】
対向装置よりＤＨ公開値Ａを受信すると（ステップ３０１）、鍵交換タスク１０２はＤＨバッファ１０４からＤＨ公開値Ｂおよび秘密情報ｇｙを読み出す（ステップ３０２）。なお、ＤＨバッファ１０４が空の場合は読み出し処理が完了しないので、鍵交換タスク１０２はＤＨバッファ１０４にＤＨ公開値Ｂおよび秘密情報ｇｙが書き込まれるのを待つ。ＤＨバッファ１０４からＤＨ公開値Ｂおよび秘密情報ｇｙを読み出すと、鍵交換タスク１０２はＤＨ公開値Ｂを対向装置に通知する（ステップ３０３）。鍵交換タスク１０２は、対向装置から受信したＤＨ公開値Ａと自己の秘密情報ｇｙとを用いて対向装置との共有値ｇｘｙ＝ｆ（Ａ，ｇｙ）を計算し（ステップ３０４）、それを暗号通信タスク１０１へ送信する（ステップ３０５）。対向装置においても同様にして受信した公開値Ｂと自己の秘密情報ｇｘとを用いて共有値ｇｘｙ＝ｆ（Ｂ，ｇｘ）が計算される。
【００２２】
こうして、暗号通信タスク１０１は共有値ｇｘｙを暗号マテリアルとして対向装置との間で暗号通信を行うことができる（ステップ３０６）。
【００２３】
３．アイドルタスク
図４において、まず、マルチタスクオペレーティングシステムのアイドルタスク１０５において、ＤＨバッファ１０４の状態を読み出し（ステップ４０１）、ＤＨバッファ４０１に空きがあるか否かを調べる（ステップ４０２）。空きがない場合は（ステップ４０２；ＮＯ）、ＤＨバッファ１０４の状態読み出し（ステップ４０１）に戻り、空きが出るまで待機する。
【００２４】
ＤＨバッファ１０４に空きあれば（ステップ４０２；ＹＥＳ）、ＤＨ鍵交換の秘密情報ｇｙを生成し（ステップ４０３）、そこから公開情報Ｂを計算する（ステップ４０４）。そして、公開情報Ｂおよび秘密情報ｇｙをＤＨバッファ１０４に書き込んでから（ステップ４０５）、ＤＨバッファ１０４の状態読み出し（ステップ４０１）に戻る。
【００２５】
これによりアイドルタスク１０５はＤＨバッファ１０４がフルになるまでＤＨ鍵交換の秘密情報を生成し続ける。
【００２６】
４．バッファ長制御
図５において、まず、装置制御タスク１０３は負荷状態を読み出し（ステップ５０１）、負荷状態に余裕があるか否かを判断する（ステップ５０２）。負荷状態に余裕がある場合は（ステップ５０２；「余裕あり」）、ＤＨバッファ１０４が拡張可能であるかを判断し（ステップ５０３）、拡張可能であれば（ステップ５０３；ＹＥＳ）、バッファ長を拡張する（ステップ５０４）。バッファが拡張可能でなければ（ステップ５０３；ＮＯ）、そのまま終了する。
【００２７】
負荷状態に余裕がない場合は（ステップ５０２；「余裕なし」）、ＤＨバッファ１０４が縮小可能であるか否かを判断する（ステップ５０５）。縮小可能であれば（ステップ５０５；ＹＥＳ）、バッファを縮小する（ステップ５０６）。バッファが縮小可能でなければ（ステップ５０５；ＮＯ）、そのまま終了する。
【００２８】
なお、バッファ長制御は装置制御タスク１０３において必要に応じて実行される。
【００２９】
５．効果
上述した本実施形態によれば次の効果を奏する。
第１の効果は、装置の余剰処理（アイドルタスク）においてＤＨ公開値生成処理を行うので、ＤＨ交換時にはＤＨ公開値を計算する必要がない。すなわち、ＤＨ生成情報の生成処理が鍵交換タスクから切り離され、ＤＨ交換時にＤＨバッファ１０４から公開値を読み出すだけで鍵交換処理を実行できるので、ＤＨ公開値の生成に要する時間だけ処理時間を短縮することができ、ＤＨ鍵交換性能を向上させることができる。
【００３０】
第２の効果は、ＤＨ公開値生成処理がアイドルタスクで行われるので、ＤＨ公開値生成処理の実行に際して他の処理の実行を阻害することがない。
【００３１】
第３の効果は、負荷状態を監視し、それに応じてＤＨ鍵交換処理を抑制するので、鍵交換処理以外の処理も阻害されない。
【産業上の利用可能性】
【００３２】
本発明は、マルチタスクオペレーティングシステムにおけるディフィ−ヘルマン（Diffie-Hellman）鍵交換に利用可能である。
【符号の説明】
【００３３】
１０ 暗号通信装置
１１ 対向装置
１０１ 暗号通信タスク
１０２ 鍵交換タスク
１０３ 装置制御タスク
１０４ ＤＨバッファ
１０５ アイドルタスク
１０６、１０７  ユーザタスク
２０１  ランキュー
２０２  スケジューラ
２０３  ＣＰＵ
【図１】
2013106164.tif 000003
【図２】
2013106164.tif 000004
【図３】
2013106164.tif 000005
【図４】
2013106164.tif 000006
【図５】
2013106164.tif 000007