説明

暗号通信装置および鍵交換の実行方法

【課題】ソフトウェア処理による鍵交換性能を向上させると共に、鍵交換処理の遂行が他の処理を阻害する事態を回避できる鍵交換の実行方法および暗号通信装置を提供する。
【解決手段】マルチタスクオペレーティングシステムの暗号通信装置10がアイドルタスク(105)において鍵交換プロトコルで用いる公開情報(DH生成情報)を生成し、公開情報を保持するDHバッファ(104)と、を有する。さらに装置制御タスク(103)が当該暗号通信装置の負荷状態に応じてDHバッファに保持される公開情報の数を変化させ鍵交換の実行を制限する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は共有情報を用いて暗号通信を行う暗号通信装置および鍵交換を実行する方法に関する。
【背景技術】
【0002】
インターネット等の通信網で暗号鍵の交換を安全に実行する方法として、ディフィ−ヘルマン(Diffie-Hellman、以下DHと略記する。)鍵交換プロトコルが知られている(RFC5996等)。このようなDH鍵交換においても、昨今では高い暗号強度が求められるようになり、より長い鍵長が求められている。
【0003】
しかしながら、DH鍵交換に費やす演算量は他の処理に比べて大きいために、DH鍵交換をソフトウェアで実行する場合、鍵長を長くすることは演算量のさらなる増大を招き、鍵交換性能を悪化させる可能性がある。
【0004】
マルチタスクオペレーティングシステムにおいては、鍵交換タスクの実行優先度を高くすることで高速化したり、あるいは当該タスクの並列実行により演算量の増大に対処したりすることが一般的であるが、このような方法は既存のソフトウェア構成を大きく変更しなければならず、各タスク間の優先度についても変更を要する。
【0005】
また特許文献1には、暗号処理と他の高負荷処理とを内蔵CPUで同時に実行するシステムにおいて、CPU処理能力を超えないように、CPU使用率に応じて負荷の異なる暗号アルゴリズムを選択する方法が提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−254286号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、暗号アルゴリズムの負荷を変更することなくシステム性能を向上させようとした場合、次の問題点が依然として未解決のまま残っている。すなわち、ソフトウェア処理による鍵交換タスクがシステム性能のボトルネックになること、および、鍵交換性能を向上させようとすれば他の処理の実行を阻害してしまうこと、である。
【0008】
そこで、本発明の目的は、ソフトウェア処理による鍵交換性能を向上させると共に、鍵交換処理の遂行が他の処理を阻害する事態を回避できる鍵交換の実行方法およびそれを用いた暗号通信装置を提供することにある。
【課題を解決するための手段】
【0009】
本発明による暗号通信装置は、マルチタスクオペレーティングシステムの暗号通信装置であって、アイドルタスクにおいて、鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、前記公開情報と当該公開情報に関連する秘密情報とを保持する保持手段と、を有することを特徴とする。
【0010】
本発明による鍵交換実行方法は、マルチタスクオペレーティングシステムの暗号通信装置における鍵交換の実行方法であって、アイドルタスクにおいて鍵交換に用いる公開情報を生成し、ユーザタスクにおいて前記公開情報を用いた鍵交換処理を実行する、ことを特徴とする。
【0011】
本発明による通信システムは、マルチタスクオペレーティングシステムの暗号通信装置と対応装置との間で鍵交換を実行する通信システムであって、前記暗号通信装置が、アイドルタスクにおいて鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、前記公開情報と当該公開情報に関連する秘密情報とを保持する保持手段と、前記公開情報を読み出して前記対向装置へ送信し、前記対向装置から受信した他の公開情報と前記秘密情報とから共有情報を計算する鍵交換手段と、を有することを特徴とする。
【発明の効果】
【0012】
本発明によれば、ソフトウェア処理による鍵交換性能を向上させると共に、鍵交換処理の遂行が他の処理を阻害する事態を回避できる。
【図面の簡単な説明】
【0013】
【図1】図1は本発明の一実施形態による暗号通信装置のタスク構成を示す機能的ブロック図である。
【図2】図2は本実施形態におけるタスクスケジューリングを説明するための模式図である。
【図3】図3は本実施形態におけるタスク間通信を示すシーケンス図である。
【図4】図4は本実施形態におけるアイドルタスクにおいて実行されるDH生成情報の生成処理を示すフローチャートである。
【図5】図5は本実施形態における装置管理タスクのバッファ制御を示すフローチャートである。
【発明を実施するための形態】
【0014】
本発明によれば、秘密情報から公開情報を生成する鍵交換情報生成処理はアイドルタスクにおいて実行され、生成した情報をバッファに保持した後、公開情報を交換して共通情報を生成する鍵交換処理は鍵交換タスクにおいて実行する。すなわち、鍵交換情報生成処理と鍵交換処理とを分離し、それぞれをアイドルタスクと鍵交換タスクで実行する。さらに、必要に応じて、装置制御タスクは装置の負荷に応じてバッファ長を制御し鍵交換タスクの実行回数を制限することで、他の処理の実行を阻害しないようにすることも可能である。以下、本発明の実施形態について図面を参照しながら詳細に説明する。
【0015】
1.タスク構成
図1において、暗号通信装置10は対向装置11とインターネット等のネットワークを通して接続され、DH(Diffie-Hellman)鍵交換プロトコルに従って動作するものとする。なお、Diffie-Hellmanについては周知であるから(RFC2539参照)詳細は省略する。
【0016】
暗号通信装置10には、図示されていないが、CPU等のプログラム制御プロセッサが設けられ、プログラムを実行することにより暗号通信タスク101、鍵交換タスク102、装置制御タスク103およびアイドルタスク105からなるタスク構成およびスケジューリングを実現する。
【0017】
具体的には、アイドルタスク105が秘密情報からDH生成演算により公開情報(DH生成情報)を生成しDHバッファ104に保持する。鍵交換タスク102は、対向装置11から受け取った対向装置側の公開情報と自己の秘密情報とを用いてDH演算により共有情報を生成し、暗号通信タスクへ供給する。暗号通信タスク101は、共有情報を用いて対向装置11との間で暗号通信を行う。装置制御タスク103は暗号通信装置10の負荷状態に応じてDHバッファサイズを制御し、CPUが高負荷状態であれば、鍵交換タスクが連続して鍵交換を行う回数を抑制する。
【0018】
図2に示すように、暗号通信装置10のマルチタスクオペレーティングシステムにおいて、ランキュー201には複数のタスクが優先度順に並んでおり、アイドルタスク105の優先度が最も低い。本装置の各種処理を実現する通常のタスクはユーザタスク106、107で実装される。
【0019】
スケジューラ202はランキュー301から優先順位の高いタスクを順に取り出し、それにCPU203を割り付けることでスケジューリングを行う。即ち、アイドルタスク105はランキュー201に他のタスクがない余剰時間に限り実行される。
【0020】
2.タスク間通信シーケンス
図3において、上述したアイドルタスク105で生成されたDH生成情報(公開値Bおよび秘密情報gy)がDHバッファ104に保持されているものとする。
【0021】
対向装置より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=f(A,gy)を計算し(ステップ304)、それを暗号通信タスク101へ送信する(ステップ305)。対向装置においても同様にして受信した公開値Bと自己の秘密情報gxとを用いて共有値gxy=f(B,gx)が計算される。
【0022】
こうして、暗号通信タスク101は共有値gxyを暗号マテリアルとして対向装置との間で暗号通信を行うことができる(ステップ306)。
【0023】
3.アイドルタスク
図4において、まず、マルチタスクオペレーティングシステムのアイドルタスク105において、DHバッファ104の状態を読み出し(ステップ401)、DHバッファ401に空きがあるか否かを調べる(ステップ402)。空きがない場合は(ステップ402;NO)、DHバッファ104の状態読み出し(ステップ401)に戻り、空きが出るまで待機する。
【0024】
DHバッファ104に空きあれば(ステップ402;YES)、DH鍵交換の秘密情報gyを生成し(ステップ403)、そこから公開情報Bを計算する(ステップ404)。そして、公開情報Bおよび秘密情報gyをDHバッファ104に書き込んでから(ステップ405)、DHバッファ104の状態読み出し(ステップ401)に戻る。
【0025】
これによりアイドルタスク105はDHバッファ104がフルになるまでDH鍵交換の秘密情報を生成し続ける。
【0026】
4.バッファ長制御
図5において、まず、装置制御タスク103は負荷状態を読み出し(ステップ501)、負荷状態に余裕があるか否かを判断する(ステップ502)。負荷状態に余裕がある場合は(ステップ502;「余裕あり」)、DHバッファ104が拡張可能であるかを判断し(ステップ503)、拡張可能であれば(ステップ503;YES)、バッファ長を拡張する(ステップ504)。バッファが拡張可能でなければ(ステップ503;NO)、そのまま終了する。
【0027】
負荷状態に余裕がない場合は(ステップ502;「余裕なし」)、DHバッファ104が縮小可能であるか否かを判断する(ステップ505)。縮小可能であれば(ステップ505;YES)、バッファを縮小する(ステップ506)。バッファが縮小可能でなければ(ステップ505;NO)、そのまま終了する。
【0028】
なお、バッファ長制御は装置制御タスク103において必要に応じて実行される。
【0029】
5.効果
上述した本実施形態によれば次の効果を奏する。
第1の効果は、装置の余剰処理(アイドルタスク)においてDH公開値生成処理を行うので、DH交換時にはDH公開値を計算する必要がない。すなわち、DH生成情報の生成処理が鍵交換タスクから切り離され、DH交換時にDHバッファ104から公開値を読み出すだけで鍵交換処理を実行できるので、DH公開値の生成に要する時間だけ処理時間を短縮することができ、DH鍵交換性能を向上させることができる。
【0030】
第2の効果は、DH公開値生成処理がアイドルタスクで行われるので、DH公開値生成処理の実行に際して他の処理の実行を阻害することがない。
【0031】
第3の効果は、負荷状態を監視し、それに応じてDH鍵交換処理を抑制するので、鍵交換処理以外の処理も阻害されない。
【産業上の利用可能性】
【0032】
本発明は、マルチタスクオペレーティングシステムにおけるディフィ−ヘルマン(Diffie-Hellman)鍵交換に利用可能である。
【符号の説明】
【0033】
10 暗号通信装置
11 対向装置
101 暗号通信タスク
102 鍵交換タスク
103 装置制御タスク
104 DHバッファ
105 アイドルタスク
106、107 ユーザタスク
201 ランキュー
202 スケジューラ
203 CPU

【特許請求の範囲】
【請求項1】
マルチタスクオペレーティングシステムの暗号通信装置であって、
アイドルタスクにおいて、鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、
前記公開情報を保持する保持手段と、
を有することを特徴とする暗号通信装置。
【請求項2】
前記保持手段に保持された前記公開情報を読み出して鍵交換処理を実行する鍵交換手段をさらに有することを特徴とする請求項1に記載の暗号通信装置。
【請求項3】
当該暗号通信装置の負荷状態に応じて前記保持手段に保持される前記公開情報の数を変化させ、前記鍵交換手段の実行を制限する制御手段をさらに有することを特徴とする請求項2に記載の暗号通信装置。
【請求項4】
マルチタスクオペレーティングシステムの暗号通信装置における鍵交換の実行方法であって、
アイドルタスクにおいて鍵交換に用いる公開情報を生成し、
ユーザタスクにおいて前記公開情報を用いた鍵交換処理を実行する、
ことを特徴とする鍵交換の実行方法。
【請求項5】
前記公開情報を保持手段に保持しておき、前記保持手段に保持された前記公開情報を読み出して鍵交換処理を実行することを特徴とする請求項4に記載の鍵交換の実行方法。
【請求項6】
当該暗号通信装置の負荷状態に応じて前記保持手段に保持される前記公開情報の数を変化させ、前記鍵交換処理の実行を制限することを特徴とする請求項5に記載の鍵交換の実行方法。
【請求項7】
マルチタスクオペレーティングシステムの暗号通信装置と対応装置との間で鍵交換を実行する通信システムであって、
前記暗号通信装置が、
アイドルタスクにおいて鍵交換プロトコルで用いる公開情報を生成する公開情報生成手段と、
前記公開情報と当該公開情報に関連する秘密情報とを保持する保持手段と、
前記公開情報を読み出して前記対向装置へ送信し、前記対向装置から受信した他の公開情報と前記秘密情報とから共有情報を計算する鍵交換手段と、
を有することを特徴とする通信システム。
【請求項8】
前記暗号通信装置が、負荷状態に応じて前記保持手段に保持される前記公開情報の数を変化させ、前記鍵交換手段の実行を制限する制御手段をさらに有することを特徴とする請求項7に記載の通信システム。
【請求項9】
マルチタスクオペレーティングシステムの暗号通信装置におけるコンピュータに鍵交換を実行させるプログラムであって、
アイドルタスクにおいて鍵交換に用いる公開情報を生成する機能と、
ユーザタスクにおいて前記公開情報を用いた鍵交換処理を実行する機能と、
を前記コンピュータで実現させることを特徴とするプログラム。
【請求項10】
前記コンピュータの負荷状態に応じて、保持手段に保持される前記公開情報の数を変化させ、前記鍵交換処理の実行を制限することを特徴とする請求項9に記載のプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−106164(P2013−106164A)
【公開日】平成25年5月30日(2013.5.30)
【国際特許分類】
【出願番号】特願2011−248095(P2011−248095)
【出願日】平成23年11月11日(2011.11.11)
【出願人】(000004237)日本電気株式会社 (19,353)
【出願人】(000232254)日本電気通信システム株式会社 (586)
【Fターム(参考)】