(57)【要約】【課題】暗号プロトコルを任意に更新、変更することができる暗号プロトコル実行装置および暗号プロトコル実行プログラムを提供する。【解決手段】暗号プロトコルコンパイラ３は、暗号プロトコルの仕様が記述された暗号プロトコル定義ファイル１００ｂを記憶部１ｂから読み出し、その記述を解釈する。また、暗号プロトコルコンパイラ３は暗号アルゴリズムモジュール１０１および通信機能モジュール１０２を記憶部１ｃから読み出し、暗号プロトコル定義ファイル１００ｂの記述に従って、暗号アルゴリズムモジュール１０１および通信機能モジュール１０２を組み合わせて処理を実行する。【選択図】図１
2007251894.tif 000002
【特許請求の範囲】
【請求項１】
暗号プロトコルの仕様が記述された暗号プロトコル定義ファイルを記憶する第１の記憶手段と、
暗号処理に係る第１の実行モジュールを記憶する第２の記憶手段と、
通信処理に係る第２の実行モジュールを記憶する第３の記憶手段と、
前記第１の記憶手段から前記暗号プロトコル定義ファイルを読み出し、前記暗号プロトコル定義ファイルの記述を解釈する解釈手段と、
前記第２の記憶手段から前記第１の実行モジュールを読み出すと共に、前記第３の記憶手段から前記第２の実行モジュールを読み出し、前記解釈手段によって解釈された前記暗号プロトコル定義ファイルの記述に従って、前記第１の実行モジュールおよび前記第２の実行モジュールを組み合わせて処理を実行するプロトコル実行手段と、
を備えたことを特徴とする暗号プロトコル実行装置。
【請求項２】
前記暗号プロトコル定義ファイルには、前記暗号プロトコルの目的、前記暗号プロトコルに参加する参加者、処理対象のデータ、処理の順番および内容を示す情報が含まれていることを特徴とする請求項１に記載の暗号プロトコル実行装置。
【請求項３】
前記解釈手段によって、前記暗号プロトコル定義ファイル内に関数が記述されていると解釈された場合に、前記プロトコル実行手段は、前記関数に対応した前記第１の実行モジュールを前記第２の記憶手段から読み出し、読み出した前記第１の実行モジュールにより処理を実行することを特徴とする請求項１または請求項２に記載の暗号プロトコル実行装置。
【請求項４】
前記解釈手段によって、前記暗号プロトコル定義ファイルが示す処理が送信処理であると解釈された場合に、前記プロトコル実行手段は、送信処理に対応した前記第２の実行モジュールを前記第３の記憶手段から読み出し、読み出した前記第２の実行モジュールにより送信処理を実行することを特徴とする請求項１または請求項２に記載の暗号プロトコル実行装置。
【請求項５】
前記解釈手段によって、前記暗号プロトコル定義ファイルが示す処理が受信処理であると解釈された場合に、前記プロトコル実行手段は、受信処理に対応した前記第２の実行モジュールを前記第３の記憶手段から読み出し、読み出した前記第２の実行モジュールにより受信処理を実行することを特徴とする請求項１または請求項２に記載の暗号プロトコル実行装置。
【請求項６】
前記解釈手段によって、前記暗号プロトコル定義ファイルが示す処理が計算処理であると解釈された場合に、前記プロトコル実行手段は、計算処理に対応した前記第１の実行モジュールを前記第２の記憶手段から読み出し、読み出した前記第１の実行モジュールにより計算処理を実行することを特徴とする請求項１または請求項２に記載の暗号プロトコル実行装置。
【請求項７】
暗号プロトコルの仕様が記述された暗号プロトコル定義ファイルが格納された第１の記憶手段から前記暗号プロトコル定義ファイルを読み出し、前記暗号プロトコル定義ファイルの記述を解釈する第１の処理と、
暗号処理に係る第１の実行モジュールが格納された第２の記憶手段から前記第１の実行モジュールを読み出す第２の処理と、
通信処理に係る第２の実行モジュールが格納された第３の記憶手段から前記第２の実行モジュールを読み出す第３の処理と、
前記第１の処理で解釈した前記暗号プロトコル定義ファイルの記述に従って、前記第１の実行モジュールおよび前記第２の実行モジュールを組み合わせて処理を実行する第４の処理と、
をコンピュータに実行させるための暗号プロトコル実行プログラム。
【請求項８】
前記暗号プロトコル定義ファイルには、前記暗号プロトコルの目的、前記暗号プロトコルに参加する参加者、処理対象のデータ、処理の順番および内容を示す情報が含まれていることを特徴とする請求項７に記載の暗号プロトコル実行プログラム。
【請求項９】
前記第１の処理において、前記暗号プロトコル定義ファイル内に関数が記述されていると解釈した場合に、前記第２の処理では、前記関数に対応した前記第１の実行モジュールを前記第２の記憶手段から読み出し、前記第４の処理では、読み出した前記第１の実行モジュールにより処理を実行することを特徴とする請求項７または請求項８に記載の暗号プロトコル実行プログラム。
【請求項１０】
前記第１の処理において、前記暗号プロトコル定義ファイルが示す処理が送信処理であると解釈した場合に、前記第３の処理では、送信処理に対応した前記第２の実行モジュールを前記第３の記憶手段から読み出し、前記第４の処理では、読み出した前記第２の実行モジュールにより送信処理を実行することを特徴とする請求項７または請求項８に記載の暗号プロトコル実行プログラム。
【請求項１１】
前記第１の処理において、前記暗号プロトコル定義ファイルが示す処理が受信処理であると解釈した場合に、前記第３の処理では、受信処理に対応した前記第２の実行モジュールを前記第３の記憶手段から読み出し、前記第４の処理では、読み出した前記第２の実行モジュールにより受信処理を実行することを特徴とする請求項７または請求項８に記載の暗号プロトコル実行プログラム。
【請求項１２】
前記第１の処理において、前記暗号プロトコル定義ファイルが示す処理が計算処理であると解釈した場合に、前記第２の処理では、計算処理に対応した前記第１の実行モジュールを前記第２の記憶手段から読み出し、読み出した前記第１の実行モジュールにより計算処理を実行することを特徴とする請求項７または請求項８に記載の暗号プロトコル実行プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号プロトコルに従って、暗号処理、復号処理、および通信処理等の処理を行う暗号プロトコル実行装置に関する。
【背景技術】
【０００２】
近年、コンピュータを利用した様々なサービスが提供されている。多くのサービスでは、利用者を認証する認証プロトコルや、暗号化するための鍵を交換する鍵交換プロトコルが使用されている。従来は、１つのプロトコルを実装することがほとんどであった。また、機器ごとにプロトコルを変更する場合は、その分個別にプロトコルを実装せざるを得なかった（例えば特許文献１参照）。IPSECなどは、複数のプロトコルを利用可能であるが、最適なプロトコルを導出しているとは言えず、また実行できるプロトコルも２種類程度と非常に限られていた。
【特許文献１】特開２００４−１１２０３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のようなプロトコルに問題が発生した場合、実行プログラムをすべて交換しなければならず、非常にコストがかかってしまうという問題点があった。また、暗号プロトコルが使用する暗号アルゴリズムに欠陥が見つかった場合も、同様にプロトコルごと交換しなければならなかった。さらに、こうしたプログラムの入れ替えなしに、動的にプロトコルを変更することは不可能であった。
【０００４】
本発明は、上述した問題点に鑑みてなされたものであって、暗号プロトコルを任意に更新、変更することができる暗号プロトコル実行装置および暗号プロトコル実行プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、上記の課題を解決するためになされたもので、暗号プロトコルの仕様が記述された暗号プロトコル定義ファイルを記憶する第１の記憶手段と、暗号処理に係る第１の実行モジュールを記憶する第２の記憶手段と、通信処理に係る第２の実行モジュールを記憶する第３の記憶手段と、前記第１の記憶手段から前記暗号プロトコル定義ファイルを読み出し、前記暗号プロトコル定義ファイルの記述を解釈する解釈手段と、前記第２の記憶手段から前記第１の実行モジュールを読み出すと共に、前記第３の記憶手段から前記第２の実行モジュールを読み出し、前記解釈手段によって解釈された前記暗号プロトコル定義ファイルの記述に従って、前記第１の実行モジュールおよび前記第２の実行モジュールを組み合わせて処理を実行するプロトコル実行手段とを備えたことを特徴とする暗号プロトコル実行装置である。
【０００６】
また、本発明の暗号プロトコル実行装置において、前記暗号プロトコル定義ファイルには、前記暗号プロトコルの目的、前記暗号プロトコルに参加する参加者、処理対象のデータ、処理の順番および内容を示す情報が含まれていることを特徴とする。
【０００７】
また、本発明の暗号プロトコル実行装置において、前記解釈手段によって、前記暗号プロトコル定義ファイル内に関数が記述されていると解釈された場合に、前記プロトコル実行手段は、前記関数に対応した前記第１の実行モジュールを前記第２の記憶手段から読み出し、読み出した前記第１の実行モジュールにより処理を実行することを特徴とする。
【０００８】
また、本発明の暗号プロトコル実行装置において、前記解釈手段によって、前記暗号プロトコル定義ファイルが示す処理が送信処理であると解釈された場合に、前記プロトコル実行手段は、送信処理に対応した前記第２の実行モジュールを前記第３の記憶手段から読み出し、読み出した前記第２の実行モジュールにより送信処理を実行することを特徴とする。
【０００９】
また、本発明の暗号プロトコル実行装置において、前記解釈手段によって、前記暗号プロトコル定義ファイルが示す処理が受信処理であると解釈された場合に、前記プロトコル実行手段は、受信処理に対応した前記第２の実行モジュールを前記第３の記憶手段から読み出し、読み出した前記第２の実行モジュールにより受信処理を実行することを特徴とする。
【００１０】
また、本発明の暗号プロトコル実行装置において、前記解釈手段によって、前記暗号プロトコル定義ファイルが示す処理が計算処理であると解釈された場合に、前記プロトコル実行手段は、計算処理に対応した前記第１の実行モジュールを前記第２の記憶手段から読み出し、読み出した前記第１の実行モジュールにより計算処理を実行することを特徴とする。
【００１１】
また、本発明は、暗号プロトコルの仕様が記述された暗号プロトコル定義ファイルが格納された第１の記憶手段から前記暗号プロトコル定義ファイルを読み出し、前記暗号プロトコル定義ファイルの記述を解釈する第１の処理と、暗号処理に係る第１の実行モジュールが格納された第２の記憶手段から前記第１の実行モジュールを読み出す第２の処理と、通信処理に係る第２の実行モジュールが格納された第３の記憶手段から前記第２の実行モジュールを読み出す第３の処理と、前記第１の処理で解釈した前記暗号プロトコル定義ファイルの記述に従って、前記第１の実行モジュールおよび前記第２の実行モジュールを組み合わせて処理を実行する第４の処理とをコンピュータに実行させるための暗号プロトコル実行プログラムである。
【００１２】
また、本発明の暗号プロトコル実行プログラムにおいて、前記暗号プロトコル定義ファイルには、前記暗号プロトコルの目的、前記暗号プロトコルに参加する参加者、処理対象のデータ、処理の順番および内容を示す情報が含まれていることを特徴とする。
【００１３】
また、本発明の暗号プロトコル実行プログラムにおいて、前記第１の処理において、前記暗号プロトコル定義ファイル内に関数が記述されていると解釈した場合に、前記第２の処理では、前記関数に対応した前記第１の実行モジュールを前記第２の記憶手段から読み出し、前記第４の処理では、読み出した前記第１の実行モジュールにより処理を実行することを特徴とする。
【００１４】
また、本発明の暗号プロトコル実行プログラムにおいて、前記第１の処理において、前記暗号プロトコル定義ファイルが示す処理が送信処理であると解釈した場合に、前記第３の処理では、送信処理に対応した前記第２の実行モジュールを前記第３の記憶手段から読み出し、前記第４の処理では、読み出した前記第２の実行モジュールにより送信処理を実行することを特徴とする。
【００１５】
また、本発明の暗号プロトコル実行プログラムにおいて、前記第１の処理において、前記暗号プロトコル定義ファイルが示す処理が受信処理であると解釈した場合に、前記第３の処理では、受信処理に対応した前記第２の実行モジュールを前記第３の記憶手段から読み出し、前記第４の処理では、読み出した前記第２の実行モジュールにより受信処理を実行することを特徴とする。
【００１６】
また、本発明の暗号プロトコル実行プログラムにおいて、前記第１の処理において、前記暗号プロトコル定義ファイルが示す処理が計算処理であると解釈した場合に、前記第２の処理では、計算処理に対応した前記第１の実行モジュールを前記第２の記憶手段から読み出し、読み出した前記第１の実行モジュールにより計算処理を実行することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、暗号プロトコル定義ファイルの内容を変更するだけで、その変更に従って動的に処理方法が変更されるので、暗号プロトコルを任意に更新、変更することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照し、本発明の実施形態を説明する。図１は、本発明の一実施形態による暗号プロトコル実行装置の構成を示している。本暗号プロトコル実行装置はコンピュータ内に実装されており、後述する動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させることにより、本暗号プロトコル実行装置が動作する。
【００１９】
ここで、「コンピュータ」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００２０】
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００２１】
暗号プロトコル定義ファイル１００ａは、暗号プロトコルの仕様が記述されたファイルであり、暗号プロトコルの仕様に従った処理の実行に係る各種の定義や実行ステップを記述するための特殊な記述言語で記述されている。暗号プロトコル定義ファイル１００ａは特殊な記述言語ではあるが、機器に依存しない共通言語の形式で記述されている。暗号プロトコル定義ファイル１００ａは、電子署名が添付された状態で記憶部１ａに格納されている。変換モジュール２は、共通言語で記述された暗号プロトコル定義ファイル１００ａを、各機器の実行環境等に合わせてカスタマイズ（変換）する。変換モジュール２を別のコンピュータに実装し、そのコンピュータでカスタマイズされた暗号プロトコル定義ファイルが本暗号プロトコル実行装置に入力されるようにしてもよい。
【００２２】
変換モジュール２によって変換された暗号プロトコル定義ファイル１００ｂは記憶部１ｂに格納される。暗号プロトコルコンパイラ３は暗号プロトコルの実行時に記憶部１ｂ（第１の記憶手段）から暗号プロトコル定義ファイル１００ｂを読み出し、暗号プロトコル定義ファイル１００ｂによって定義される暗号プロトコルの仕様に従った処理を行うための実行モジュールを生成して実行する。この暗号プロトコルコンパイラ３の機能はインタプリタに近い。上位のアプリケーション４から共通インターフェースを介して、この暗号プロトコルコンパイラ３を呼び出して実行することが可能である。
【００２３】
記憶部１ｃ（第２の記憶手段、第３の記憶手段）には暗号アルゴリズムモジュール１０１および通信機能モジュール１０２が格納されている。暗号アルゴリズムモジュール１０１は、ＡＥＳやＲＳＡ等の暗号アルゴリズムを実行するための実行モジュールである。通信機能モジュール１０２は、ＴＣＰ／ＩＰ等の通信プロトコルに従ってデータを送信／受信する処理を実行するための実行モジュールである。これらのモジュールは、暗号／復号処理や送信／受信処理に係る処理をコンピュータに実行させるための基本的な命令（共通関数）の集合である。
【００２４】
実際に暗号プロトコルに係る処理を行うためには、どのような順番でどのような処理を実行するのか、どのようなデータを用いるのか、誰と通信を行うのかというようなことが決定されていないと、具体的な処理を行うことができない。暗号プロトコルコンパイラ３は、暗号プロトコル定義ファイル１００ｂの記述を解釈し（本発明の解釈手段の機能）、具体的な仕様に係る情報を取得した上で、必要な暗号アルゴリズムモジュール１０１および通信機能モジュール１０２を記憶部１ｃから読み出し、暗号プロトコルの仕様に従って暗号アルゴリズムモジュール１０１および通信機能モジュール１０２を組み合わせて処理を実行する（本発明のプロトコル実行手段の機能）。これによって、任意の暗号プロトコルの仕様に従った処理を実行することができる。
【００２５】
ＯＳ５はアプリケーション４や暗号プロトコルコンパイラ３での処理の実行タイミングの制御やリソースの割り当ての管理等を行う。上記の記憶部１ａ〜１ｃは、異なる記録媒体で構成されていてもよいし、同一の記録媒体上の異なる記憶領域で構成されていてもよい。また、複数の機能に対応可能とするため、上記の暗号プロトコル定義ファイル１００ａ，１００ｂは複数存在するものとする。
【００２６】
次に、本実施形態における暗号プロトコル定義ファイルの内容を説明する。暗号プロトコル定義ファイルに含まれる記述を行うための暗号プロトコル記述言語では、以下の要素が符号化される。
（１）プロトコルの目的
これは認証や鍵交換等を示している。
（２）機能要件
これは、セッション鍵が安全である、ユーザの匿名性を保証する等の定性的な安全性を示している。
（３）安全性レベル
これは、上記の機能要件に対応して、２の１２８乗のレベルで安全であることが求められる等の定量的な安全性を示している。
【００２７】
（４）エンティティ
これは、暗号プロトコルに参加する参加者（送信者、受信者）の数や記号等を示している。
（５）エンティティ種別
これはエンティティの信頼度を示している。
【００２８】
（６）暗号アルゴリズム名称
これは暗号アルゴリズムの名称を示している。
（７）暗号アルゴリズム種別
これは暗号用、復号用、署名用等の暗号アルゴリズムの種別を示している。
【００２９】
（８）乱数生成処理、暗号処理、復号処理、署名（ＭＡＣ）処理、（署名もしくはＭＡＣ）検証処理
これらは、暗号アルゴリズムモジュールを呼び出すことによって実行される処理を示している。
（９）任意の関数を用いた演算処理
これは、（８）で定義された処理以外の処理を示している。この処理を実行するための暗号アルゴリズムモジュールも用意されている。
【００３０】
（１０）データ種別
これは、乱数、エンティティ識別子、鍵といったデータの種別を示している。
（１１）データ長
これは、データのビット長を示している。
【００３１】
（１２）フロー
これは、誰から誰へデータが送信されるのかということを示している。
（１３）コマンド
これは、コンピュータに実行させたい送信、受信、計算等の処理を示している。
（１４）付加条件
これは、処理の分岐の条件を示している。
【００３２】
図２は暗号プロトコル定義ファイルの構成を示している。プロトコル目的記述２０１にはプロトコルの目的が記述されている。エンティティ定義記述２０２にはエンティティやエンティティ種別が記述されている。データ定義記述２０３には処理対象のデータの定義や関数定義が記述されている。プロトコル定義記述２０４には、具体的な暗号プロトコルの処理がステップごとに記述されている。このように、暗号プロトコルの目的や、暗号プロトコルに参加する参加者、処理対象のデータをまとめて定義しておくことによって、処理の順番および内容に係る処理手順をプロトコル定義記述で簡便に記述することができる。
【００３３】
プロトコル定義記述２０４に含まれる具体的なステップの記述例を以下に示す。この例では、各要素の記述が「＆」で区切られている。
ＳＴＥＰ番号  9  ＆  コマンド  ＳＥＮＤ  ＆  データフォーマット  Ｘ｜Ｙ｜Ｆ（Ｚ）  ＆  フロー  Ａ  −＞  Ｂ  ＆  付加条件 X=Y THEN STEP10 ELSE STEP 12
【００３４】
上記の記述では、「ＳＴＥＰ番号  9」という記述から、この記述が９番目のステップを表しているということが、暗号プロトコルコンパイラ３によって認識される。また、「コマンド  ＳＥＮＤ」という記述から、送信処理を行うということが、暗号プロトコルコンパイラ３によって識別される。また、「データフォーマット  Ｘ｜Ｙ｜Ｆ（Ｚ）」という記述から、「Ｘ」と「Ｙ」のデータに対して関数「Ｆ（Ｚ）」を実行するということが、暗号プロトコルコンパイラ３によって認識される。
【００３５】
また、「フロー  Ａ  −＞  Ｂ」という記述から、「Ａ」から「Ｂ」へデータを送信するということが、暗号プロトコルコンパイラ３によって認識される。また、「付加条件 X=Y THEN STEP10 ELSE STEP 12」という記述から、「X=Y」であった場合には１０番目のステップへ処理が移行し、「X=Y」でなかった場合には１２番目のステップへ処理が移行するということが、暗号プロトコルコンパイラ３によって認識される。
【００３６】
上記のような内容の、符号化した要素を、暗号プロトコルの記述に従って、順次記述していくことによって、プロトコル定義記述が作成される。各記述の先頭に番号を付加することによって、その記述が、プロトコル手順における何番目の処理の記述であるのかを識別することができるようになっている。暗号プロトコルコンパイラ３は、ステップ番号、コマンド、データフォーマット（実行関数を含む）、フロー、付加条件の順に解釈し、処理を実行する。データフォーマット内に関数記述がある場合には、暗号プロトコルコンパイラ３は、その関数記述に対応した暗号アルゴリズムモジュール１０１を記憶部１ｃから読み出して、処理を実行する。上記の関数（命令の集合）の例として、公開鍵を用いた暗号処理や、秘密鍵を用いた署名処理等を行うための関数がある。
【００３７】
次に、暗号プロトコルコンパイラ３の動作を説明する。アプリケーション４は、実行したいプロトコル機能（認証や鍵共有）を暗号プロトコルコンパイラ３に通知する。暗号プロトコルコンパイラ３は、記憶部１ｂに格納されている暗号プロトコル定義ファイル１００ｂの中から、アプリケーション４から通知された機能に対応した暗号プロトコル定義ファイルを読み出す。もしくは、アプリケーション４は暗号プロトコル定義ファイルのファイル名を暗号プロトコルコンパイラ３に通知する。暗号プロトコルコンパイラ３は、記憶部１ｂに格納されている暗号プロトコル定義ファイル１００ｂの中から、アプリケーション４から通知されたファイル名に対応した暗号プロトコル定義ファイルを読み出す。もしくは、暗号プロトコルコンパイラ３は、記憶部１ｂに格納されている暗号プロトコル定義ファイル１００ｂの中から、通信相手から指定された暗号プロトコル定義ファイルを読み出す。
【００３８】
暗号プロトコルコンパイラ３は、暗号プロトコル定義ファイルに付加されている電子署名を検証することによって、暗号プロトコル定義ファイルの正当性を確認した上で、その暗号プロトコル定義ファイルを適宜読み出して暗号プロトコルを実行できるよう、ＳＲＡＭやＳＤＲＡＭ等の主記憶装置に暗号プロトコル定義ファイルを格納する。
【００３９】
暗号プロトコルコンパイラ３は、主記憶装置から暗号プロトコル定義ファイルを順次読み出し、その記述を解釈する。まず、プロトコル目的記述、エンティティ定義記述、データ定義記述を順次解釈し、変数の設定等を行う。続いて、プロトコル定義記述をステップごとに解釈し、必要な実行モジュールを生成して実行する。プロトコル定義記述に記載されたステップのコマンドが送信であるか受信であるかによって、動作が異なる。
【００４０】
ステップのコマンドが送信である場合には、暗号プロトコルコンパイラ３は、解釈した記述に従ってデータを作成し、通信相手に送信する。この際、暗号プロトコルコンパイラ３は、暗号アルゴリズム名称と暗号アルゴリズム種別の記述に対応した暗号アルゴリズムモジュール１０１を記憶部１ｃから読み出すと共に、送信処理のための通信機能モジュール１０２を記憶部１ｃから読み出し、各実行モジュールによる処理を実行する。
【００４１】
また、ステップのコマンドが受信である場合には、暗号プロトコルコンパイラ３は、通信相手からのデータを受信するため、待機しておく。通信相手からのデータを受信したら、暗号プロトコルコンパイラ３は、続くステップに記述された処理の内容を解釈し、実行する。データ受信の際にも、受信処理のための通信機能モジュール１０２が記憶部１ｃから読み出されて、処理が実行される。
【００４２】
また、ステップのコマンドが計算である場合には、暗号プロトコルコンパイラ３は、データ記述に従った計算を行う。例えば、ＶＥＲＩＦＹコマンドの場合には、暗号プロトコルコンパイラ３は、データ記述で指定されたデータを生成して署名を計算する。続いて、付加条件に従って処理が分岐する。この計算の際にも、署名計算のための暗号アルゴリズムモジュール１０１が記憶部１ｃから読み出されて、処理が実行される。上記の署名計算とは、署名の生成または署名の検証を示している。
【００４３】
また、ステップのコマンドがＲＥＴＵＲＮである場合には、暗号プロトコルコンパイラ３は実行結果をアプリケーション４に返す。
【００４４】
次に、本実施形態による暗号プロトコルの実行方法と、従来の暗号プロトコルの実行方法の違いを説明する。図３（ａ）に示されるように、従来の方法では、プロトコルの仕様が与えられたら、人間であるプログラマがその仕様を解釈し、仕様に従ったソースファイルを作成する。続いて、コンパイラによってソースファイルが機械語に翻訳されて、オブジェクトモジュールが生成され、他のオブジェクトモジュールや関数ライブラリとリンクされて、実行モジュールが生成される。この実行モジュールを動作させることにより、仕様に従った暗号プロトコルの処理が実行される。暗号プロトコルの仕様と実行モジュールとが１対１に対応付けられており、暗号プロトコルの仕様を変更するためには、ソースファイルの作成から実行モジュールの生成までの処理が必要であり、効率が悪く、コストもかかる。
【００４５】
一方、図３（ｂ）に示されるように、本実施形態の方法では、プロトコルの仕様は暗号プロトコル定義ファイルに記述されており、暗号プロトコル実行装置が、その暗号プロトコル定義ファイルの記述を解釈し、その解釈に従って、適宜、必要な暗号アルゴリズムモジュールおよび通信機能モジュールを読み込み、各モジュールによる処理を実行する。暗号プロトコルの仕様を変更する場合には、暗号プロトコル定義ファイルのみを変更すればよく、その変更に従って動的に処理方法が変更されるので、暗号プロトコルを任意に更新、変更することができる。
【００４６】
上述したように本実施形態によれば、認証や鍵共有等の暗号プロトコルを動的に更新することができる。したがって、通信相手ごとに暗号プロトコルを変更したり、セキュリティフローが見つかった場合に直ちに暗号プロトコルの仕様を更新したりすることができるようになる。本実施形態は、認証や鍵交換等を行うサービスにおけるシステム設計全般に広く適用することができる。例えば、インターネット事業における認証プロトコルや、モバイル・ユビキタス間環境における最適認証・鍵共有プロトコル等に適用することができる。
【００４７】
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成はこれらの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施形態による暗号プロトコル実行装置の構成を示すブロック図である。
【図２】本発明の一実施形態における暗号プロトコル定義ファイルの構成を示す参考図である。
【図３】本発明の一実施形態における暗号プロトコルの実行方法と従来の暗号プロトコルの実行方法の違いを説明するための説明図である。
【符号の説明】
【００４９】
１ａ，１ｂ，１ｃ・・・記憶部、２・・・変換モジュール、３・・・暗号プロトコルコンパイラ、４・・・アプリケーション、５・・・ＯＳ
【図１】
2007251894.tif 000003
【図２】
2007251894.tif 000004
【図３】
2007251894.tif 000005