(57)【要約】【課題】通信相手の環境や要求条件に応じて、最適な認証あるいは鍵共有プロトコルにカスタマイズして、自動的に暗号プロトコルを生成する暗号プロトコル生成装置を提供すること。【解決手段】端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換し、交換したセキュリティ要件に基づいて、基本プロトコルを生成する。そして、生成した基本プロトコルに不足したデータを追加するとともに、不足データを追加した基本プロトコルから重複したデータを削除する。さらに、格納された既知データと格納された鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定し、性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定する。【選択図】図５
2008131057.tif 000002
【特許請求の範囲】
【請求項１】
サービスの提供にあたって、端末相互の諸条件に応じて、暗号プロトコルを自動的に生成する暗号プロトコル生成装置であって、
送信データ、送信を行わずに保持しているデータ、受信データおよびこれらのデータから計算可能なデータを既知データとして格納する既知データ格納手段と、
鍵を格納する鍵格納手段と、
前記端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換する通信手段と、
該交換したセキュリティ要件に基づいて、基本プロトコルを生成する基本プロトコル生成手段と、
該生成した基本プロトコルに不足したデータを追加するデータ追加手段と、
該不足データを追加した基本プロトコルから重複したデータを削除するデータ削除手段と、
前記既知データ格納手段した既知データと前記鍵格納手段に格納した鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定する鍵生成関数決定手段と、
前記性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定するパラメータ設定手段と、
を備えたことを特徴とする暗号プロトコル生成装置。
【請求項２】
認証プロトコル用のコンポーネットと鍵共有プロトコル用のコンポーネントとをそれぞれ複数格納する基本コンポーネント格納手段を備え、
前記基本プロトコル生成手段が、前記交換したセキュリティ要件に基づいて、前記鍵共有プロトコル用のコンポーネントを組み合わせた後、前記認証プロトコル用のコンポーネットを組み合わせて基本プロトコルを生成することを特徴とする請求項１に記載の暗号プロトコル生成装置。
【請求項３】
前記セキュリティ要件が、少なくとも前記端末が信頼できるか否か、事前共有鍵の有無、プロトコルにおけるフローの本数、利用可能なアルゴリズムの種別を含むことを特徴とする請求項１または請求項２に記載の暗号プロトコル生成装置。
【請求項４】
前記性能要件が、少なくとも通信帯域、端末の演算能力、鍵長を含むことを特徴とする請求項１から請求項３のいずれかに記載の暗号プロトコル生成装置。
【請求項５】
更に、ユーザが前記基本コンポーネント格納手段に格納される認証プロトコル用のコンポーネットと鍵共有プロトコル用のコンポーネントを構成するデータを任意に設定するデータ設定手段を備えたことを特徴とする請求項２から請求項４のいずれかに記載の暗号プロトコル生成装置。
【請求項６】
サービスの提供にあたって、端末相互の諸条件に応じて、暗号プロトコルを自動的に生成する暗号プロトコル生成方法であって、
前記端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換する第１のステップと、
該交換したセキュリティ要件に基づいて、基本プロトコルを生成する第２のステップと、
該生成した基本プロトコルに不足したデータを追加する第３のステップと、
該不足データを追加した基本プロトコルから重複したデータを削除する第４のステップと、
格納された既知データと格納された鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定する第５のステップと、
前記性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定する第６のステップと、
を備えたことを特徴とする暗号プロトコル生成方法。
【請求項７】
前記第２のステップが、前記交換したセキュリティ要件に基づいて、格納されている鍵共有プロトコル用のコンポーネントを組み合わせた後、格納されている認証プロトコル用のコンポーネットを組み合わせて基本プロトコルを生成することを特徴とする請求項６に記載の暗号プロトコル生成方法。
【請求項８】
サービスの提供にあたって、端末相互の諸条件に応じて、暗号プロトコルを自動的に生成する暗号プロトコル生成方法をコンピュータに実行させるためのプログラムであって、
前記端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換する第１のステップと、
該交換したセキュリティ要件に基づいて、基本プロトコルを生成する第２のステップと、
該生成した基本プロトコルに不足したデータを追加する第３のステップと、
該不足データを追加した基本プロトコルから重複したデータを削除する第４のステップと、
格納された既知データと格納された鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定する第５のステップと、
前記性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定する第６のステップと、
をコンピュータに実行させるためのプログラム。
【請求項９】
前記第２のステップが、前記交換したセキュリティ要件に基づいて、格納されている鍵共有プロトコル用のコンポーネントを組み合わせた後、格納されている認証プロトコル用のコンポーネットを組み合わせて基本プロトコルを生成することを特徴とする請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介したサービスの提供に用いられる暗号プロトコルを自動的に生成する暗号プロトコル生成装置、暗号プロトコル生成方法およびプログラムに関する。
【背景技術】
【０００２】
近年、インターネットに代表されるネットワーク技術の目覚しい進歩に伴い、多くの分野でコンピュータを利用した様々なサービスが提供されている。そして、こうしたサービスの多くには、利用者を認証する認証プロトコルや、暗号化するための鍵を交換する鍵交換プロトコルが使用されている。
【０００３】
ところが、従来は、１つのプロトコルを実装することがほとんどであり、機器ごとにプロトコルを変更する場合には、その分、個別にプロトコルを実装せざるを得なかった。また、ＩＰＳＥＣ等では、複数のプロトコルを利用することが可能であるが、最適なプロトコルを導出しているとは言えず、また実行できるプロトコルも２種類程度と非常に限られていた。
【０００４】
さらに、複数のプロトコル（例えばＲＰＣとＳＮＭＰ）を共存させながら、あるプロトコルの通信処理手段（例えばＳＮＭＰ通信処理手段）に障害が発生した場合、別のプロトコルの通信処理手段（例えばＲＰＣ通信処理手段）を使って管理を継続するネットワークのプロトコル管理方式も提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平８−１９１３３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、一般に、プロトコルの最適化には、様々な環境条件や要求条件が存在する。したがって、上記の従来技術のように、複数のプロトコルを共存させる方法により、諸条件を充足させるプロトコルを提供するためには、膨大なプロトコルを共存させる必要があり、現実的ではない。
【０００６】
また、これまでにも、多種多様なプロトコルが提案されているが、一般に安全性と利便性はトレードオフの関係にあり、１つのプロトコルがすべての機器に適しているとは限らない。
【０００７】
そこで、本発明は、上記の課題に鑑みてなされたものであり、通信相手の環境や要求条件に応じて、最適な認証あるいは鍵共有プロトコルにカスタマイズして、自動的に暗号プロトコルを生成する暗号プロトコル生成装置、暗号プロトコル生成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上述の課題を解決するために、以下の事項を提案している。
（１）本発明は、サービスの提供にあたって、端末相互の諸条件に応じて、暗号プロトコルを自動的に生成する暗号プロトコル生成装置であって、送信データ、送信を行わずに保持しているデータ、受信データおよびこれらのデータから計算可能なデータを既知データとして格納する既知データ格納手段（例えば、図１の既知データ格納部６０に相当）と、鍵を格納する鍵格納手段（例えば、図１の鍵格納部７０に相当）と、前記端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換する通信手段と、該交換したセキュリティ要件に基づいて、基本プロトコルを生成する基本プロトコル生成手段（例えば、図１の基本プロトコル生成部２０に相当）と、該生成した基本プロトコルに不足したデータを追加するデータ追加手段（例えば、図１のデータ追加部４０に相当）と、該不足データを追加した基本プロトコルから重複したデータを削除するデータ削除手段（例えば、図１のデータ削除部５０に相当）と、前記既知データ格納手段した既知データと前記鍵格納手段に格納した鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定する鍵生成関数決定手段（例えば、図１の鍵生成関数決定部８０に相当）と、前記性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定するパラメータ設定手段（例えば、図１のパラメータ設定部９０に相当）と、を備えたことを特徴とする暗号プロトコル生成装置を提案している。
【０００９】
この発明によれば、既知データ格納手段は、送信データ、送信を行わずに保持しているデータ、受信データおよびこれらのデータから計算可能なデータを既知データとして格納し、鍵格納手段は、鍵を格納する。通信手段は、端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換する。基本プロトコル生成手段は、交換したセキュリティ要件に基づいて、基本プロトコルを生成し、データ追加手段は、生成した基本プロトコルに不足したデータを追加し、データ削除手段は、不足データを追加した基本プロトコルから重複したデータを削除する。鍵生成関数決定手段は、既知データ格納手段した既知データと鍵格納手段に格納した鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定し、パラメータ設定手段は、性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定する。
【００１０】
したがって、端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換し、これらに基づいて、サービス提供に用いられる暗号プロトコルを動的に生成し、あるいは、必要に応じて変更することにより、通信相手の環境に応じて、最適な認証あるいは鍵共有プロトコルにカスタマイズして、処理を実行することができる。つまり、接続する相手方の端末によって、少ない計算量によりサービスを提供したいというような要求や相手方の端末の計算能力が非常に高いために、多少時間がかかっても問題が無いような状況、あるいは、サービスの種別に応じて、要求されるプロトコルの安全性が異なるような場合においても、動的にプロトコルを変更することにより、従来のように、多くのプロトコルを実装する必要がない。
【００１１】
（２）本発明は、（１）の暗号プロトコル生成装置について、認証プロトコル用のコンポーネットと鍵共有プロトコル用のコンポーネントとをそれぞれ複数格納する基本コンポーネント格納手段（例えば、図１の基本コンポーネント格納部３０に相当）を備え、前記基本プロトコル生成手段が、前記交換したセキュリティ要件に基づいて、前記鍵共有プロトコル用のコンポーネントを組み合わせた後、前記認証プロトコル用のコンポーネットを組み合わせて基本プロトコルを生成することを特徴とする暗号プロトコル生成装置を提案している。
【００１２】
この発明によれば、基本コンポーネント格納手段が、認証プロトコル用のコンポーネットと鍵共有プロトコル用のコンポーネントとをそれぞれ複数格納し、基本プロトコル生成手段が、交換したセキュリティ要件に基づいて、鍵共有プロトコル用のコンポーネントを組み合わせた後、認証プロトコル用のコンポーネットを組み合わせて基本プロトコルを生成する。
【００１３】
一般に、鍵共有プロトコルの方が、認証プロトコルに比べてコンポーネントに含まれるデータが多い。そのため、上記のように、鍵共有プロトコル用のコンポーネントの組み合わせを行って、先にフレームワークを決定した方が、処理が合理的になる。
【００１４】
（３）本発明は、（１）または（２）の暗号プロトコル生成装置について、前記セキュリティ要件が、少なくとも前記端末が信頼できるか否か、事前共有鍵の有無、プロトコルにおけるフローの本数、利用可能なアルゴリズムの種別を含むことを特徴とする暗号プロトコル生成装置を提案している。
【００１５】
この発明によれば、少なくとも前記端末が信頼できるか否か、事前共有鍵の有無、プロトコルにおけるフローの本数、利用可能なアルゴリズムの種別をセキュリティ要件としていることから、要求されるセキュリティレベルに応じたプロトコルを自動生成することができる。
【００１６】
（４）本発明は、（１）から（３）の暗号プロトコル生成装置について、前記性能要件が、少なくとも通信帯域、端末の演算能力、鍵長を含むことを特徴とする暗号プロトコル生成装置を提案している。
【００１７】
この発明によれば、少なくとも通信帯域、端末の演算能力、鍵長を性能要件としていることから、各端末の性能に応じたプロトコルを自動生成することができる。
【００１８】
（５）本発明は、（２）から（４）の暗号プロトコル生成装置について、更に、ユーザが前記基本コンポーネント格納手段に格納される認証プロトコル用のコンポーネットと鍵共有プロトコル用のコンポーネントを構成するデータを任意に設定するデータ設定手段（例えば、図１のデータセット入力部３１に相当）を備えたことを特徴とする暗号プロトコル生成装置を提案している。
【００１９】
この発明によれば、ユーザが基本コンポーネント格納手段に格納される認証プロトコル用のコンポーネットと鍵共有プロトコル用のコンポーネントを構成するデータを任意に設定するデータ設定手段を更に備えている。したがって、こうした手段を設けることにより、基本コンポーネントの最適化を図るとともに、選択に自由度をもたせることにより、基本コンポーネント格納部において格納すべきコンポーネントの数を削減できる。
【００２０】
（６）本発明は、サービスの提供にあたって、端末相互の諸条件に応じて、暗号プロトコルを自動的に生成する暗号プロトコル生成方法であって、前記端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換する第１のステップ（例えば、図５のステップＳ１０１に相当）と、該交換したセキュリティ要件に基づいて、基本プロトコルを生成する第２のステップ（例えば、図５のステップＳ１０２、Ｓ１０３に相当）と、該生成した基本プロトコルに不足したデータを追加する第３のステップ（例えば、図５のステップＳ１０４に相当）と、該不足データを追加した基本プロトコルから重複したデータを削除する第４のステップ（例えば、図５のステップＳ１０５に相当）と、格納された既知データと格納された鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定する第５のステップ（例えば、図５のステップＳ１０６に相当）と、前記性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定する第６のステップ（例えば、図５のステップＳ１０７に相当）と、を備えたことを特徴とする暗号プロトコル生成方法を提案している。
【００２１】
この発明によれば、端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換し、交換したセキュリティ要件に基づいて、基本プロトコルを生成する。そして、生成した基本プロトコルに不足したデータを追加し、不足データを追加した基本プロトコルから重複したデータを削除するとともに、格納された既知データと格納された鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定し、性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定する。
【００２２】
したがって、端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換し、これらに基づいて、サービス提供に用いられる暗号プロトコルを動的に生成し、あるいは、必要に応じて変更することにより、通信相手の環境に応じて、最適な認証あるいは鍵共有プロトコルにカスタマイズして、処理を実行することができる。
【００２３】
（７）本発明は、（６）の暗号プロトコル生成方法について、前記第２のステップが、前記交換したセキュリティ要件に基づいて、格納されている鍵共有プロトコル用のコンポーネントを組み合わせた後、格納されている認証プロトコル用のコンポーネットを組み合わせて基本プロトコルを生成することを特徴とする暗号プロトコル生成方法を提案している。
【００２４】
この発明によれば、交換したセキュリティ要件に基づいて、格納されている鍵共有プロトコル用のコンポーネントを組み合わせた後、格納されている認証プロトコル用のコンポーネットを組み合わせて基本プロトコルを生成する。
【００２５】
一般に、鍵共有プロトコルの方が、認証プロトコルに比べてコンポーネントに含まれるデータが多い。そのため、上記のように、鍵共有プロトコル用のコンポーネントの組み合わせを行って、先にフレームワークを決定した方が、処理が合理的になる。
【００２６】
（８）本発明は、サービスの提供にあたって、端末相互の諸条件に応じて、暗号プロトコルを自動的に生成する暗号プロトコル生成方法をコンピュータに実行させるためのプログラムであって、前記端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換する第１のステップ（例えば、図５のステップＳ１０１に相当）と、該交換したセキュリティ要件に基づいて、基本プロトコルを生成する第２のステップ（例えば、図５のステップＳ１０２、Ｓ１０３に相当）と、該生成した基本プロトコルに不足したデータを追加する第３のステップ（例えば、図５のステップＳ１０４に相当）と、該不足データを追加した基本プロトコルから重複したデータを削除する第４のステップ（例えば、図５のステップＳ１０５に相当）と、格納された既知データと格納された鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定する第５のステップ（例えば、図５のステップＳ１０６に相当）と、前記性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定する第６のステップ（例えば、図５のステップＳ１０７に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２７】
この発明によれば、端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換し、交換したセキュリティ要件に基づいて、基本プロトコルを生成する。そして、生成した基本プロトコルに不足したデータを追加し、不足データを追加した基本プロトコルから重複したデータを削除するとともに、格納された既知データと格納された鍵とを用いて、セッション鍵を生成するための鍵生成関数を決定し、性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定する。
【００２８】
したがって、端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換し、これらに基づいて、サービス提供に用いられる暗号プロトコルを動的に生成し、あるいは、必要に応じて変更することにより、通信相手の環境に応じて、最適な認証あるいは鍵共有プロトコルにカスタマイズして、処理を実行することができる。
【００２９】
（９）本発明は、（８）のプログラムについて、前記第２のステップが、前記交換したセキュリティ要件に基づいて、格納されている鍵共有プロトコル用のコンポーネントを組み合わせた後、格納されている認証プロトコル用のコンポーネットを組み合わせて基本プロトコルを生成することを特徴とするプログラムを提案している。
【００３０】
この発明によれば、交換したセキュリティ要件に基づいて、格納されている鍵共有プロトコル用のコンポーネントを組み合わせた後、格納されている認証プロトコル用のコンポーネットを組み合わせて基本プロトコルを生成する。
【００３１】
一般に、鍵共有プロトコルの方が、認証プロトコルに比べてコンポーネントに含まれるデータが多い。そのため、上記のように、鍵共有プロトコル用のコンポーネントの組み合わせを行って、先にフレームワークを決定した方が、処理が合理的になる。
【発明の効果】
【００３２】
本発明によれば、認証プロトコルおよび鍵共有プロトコルを自動的にカスタマイズし、その環境に最適なプロトコルを自動生成できるようになるという効果がある。
【発明を実施するための最良の形態】
【００３３】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３４】
＜暗号プロトコル生成装置の構成＞
本実施形態に係る暗号プロトコル生成装置は、図１に示すように、通信部１０と、基本プロトコル生成部２０と、基本コンポーネント格納部３０と、データセット入力部３１と、データ追加部４０と、データ削除部５０と、既知データ格納部６０と、鍵格納部７０と、鍵生成関数決定部８０と、パラメータ決定部９０とから構成されている。
【００３５】
通信部１０は、エンティティ（端末）間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換するための通信を司る。ここで、セキュリティ要件としては、１）エンティティ（端末）が信頼できるか、できないか、２）攻撃者モデル（例えば、Ｋｎｏｗｎ  ｋｅｙ  ａｔｔａｃｋ、Ｆｏｗａｒｄ  Ｓｅｃｒｅｃｙ、Ｕｎｋｎｏｗ  ｋｅｙ  ｓｈａｒｅ  ａｔｔａｃｋ）の安全性の要否、３）事前共有鍵の有無、４）フローの本数、５）利用可能なアルゴリズムの種別等がある。また、性能要件としては、１）通信帯域（１フローの許容データサイズ、２）エンティティ（端末）の演算能力、３）鍵長等がある。なお、通信帯域は、各フローで送受信可能な最大データ長として与えられる。また、エンティティ（端末）の演算能力は、クラス分けされた離散値として与えられる（例えば、ＨＩＧＨ、ＭＩＤＩＵＭ、ＬＯＷ）。
【００３６】
基本プロトコル生成部２０は、通信部１０において、交換したセキュリティ要件に基づいて、基本プロトコルを生成する。なお、基本プロトコルは、後述する基本コンポーネント格納部３０に格納された認証プロトコル用のコンポーネットと鍵共有プロトコル用のコンポーネントとを用いて、交換したセキュリティ要件に基づいて、鍵共有プロトコル用のコンポーネントを組み合わせた後、認証プロトコル用のコンポーネットを組み合わせて生成する。なお、ここで、コンポーネントとは、ひとかたまりのデータ群をさす。
【００３７】
基本コンポーネント格納部３０は、認証プロトコル用のコンポーネットと鍵共有プロトコル用のコンポーネントとを複数格納する記憶手段である。なお、認証プロトコル用の基本コンポーネットおよび鍵共有プロトコル用の基本コンポーネントの詳細については、後述する。また、データセット入力部３１は、ユーザが基本コンポーネント格納部３０に格納される認証プロトコル用のコンポーネットと鍵共有プロトコル用のコンポーネントを構成するデータを任意に設定するできる入力手段である。なお、データの設定に関しては、どのデータを選択するのかというルールについてもユーザが個々に設定できるようにしてもよい。
【００３８】
データ追加部４０は、基本プロトコル生成部２０により生成された基本プロトコルに不足したデータを追加する。具体的には、例えば、プロトコルにおいて、テンポラリな公開鍵、秘密鍵を含んでいた場合には、公開鍵を送付するする必要がある。この場合、テンポラリな公開鍵によって生成されたデータが送信されるより前のフローにテンポラリな公開鍵の送付を追加する。なお、テンポラリな公開鍵には、署名もしくはＭＡＣを付与することで送付しなければならない。すなわち、Ｘをテンポラリな公開鍵、Ｆ（Ｘ）をメッセージ認証子生成関数もしくは署名関数としたとき、Ｆ（Ｘ）の選択は、事前共有鍵のあり／なしによる。
【００３９】
データ削除部５０は、不足データを追加した基本プロトコルから重複したデータを削除する。具体的には、一例として、プロトコルにおける各フローの同型性をチェックすることにより行う。ここで、同型性とは、フロー内で交換されるデータがほぼ同一のフォーマットになっていることを指す。具体的には、データの種別が同一、関数の構成が同一等の場合がこれに該当する。
【００４０】
既知データ格納部６０は、送信データ、送信を行わずに保持しているデータ、受信データおよびこれらのデータから計算可能なデータを既知データとして格納する。また、鍵格納部７０は、鍵を格納する。
【００４１】
鍵生成関数決定部８０は、セッション鍵を計算する鍵生成関数を決定するものであり、既知データ格納部６０に格納された既知データと鍵格納部７０に格納されたエンティティ（端末）が保有する鍵とから構成される。鍵生成関数の計算方法としては、計算時間の少ない順に、１）乱数Ｒａｎｄｏｍ‘をそのまま利用する方法、２）２つの乱数により排他的論理和による方法（例えば、Ｒａｎｄｏｍ（＋）Ｒａｎｄｏｍ‘）、３）２つの乱数を一方向関数に入力する方法（例えば、Ｅ（Ｒａｎｄｏｍ、Ｒａｎｄｏｍ‘）があるが、いずれを選択するかは、セキュリティ要件による。
【００４２】
パラメータ決定部９０は、通信部１０により受信した性能要件に基づいて、少なくとも転送データの詳細やアルゴリズム、データ長を決定することによりパラメータを設定する。そして、これによって、カスタマイズされたプロトコル定義ファイルが生成される。
【００４３】
＜認証プロトコルの基本コンポーネント＞
次に、図２および図３を参照して、認証プロトコルの基本コンポーネントについて説明する。
認証プロトコルの基本コンポーネントは、図２および図３に示すような構成となっている。ここで、図２は、エンティティ（端末）Ａがエンティティ（端末）Ｂを認証する場合であり、図３は、エンティティ（端末）Ｂがエンティティ（端末）Ａを認証する場合の構成を示している。したがって、相互認証を行う場合には、上記２つのコンポーネントを組み合わせることにより、認証プロトコルを構成する。また、図中、Ｘ、Ｙは、任意のデータ（複数でも良い）を表し、認証プロトコルにおける認証処理関数は、Ｘ、Ｙ及び長期保有鍵などの永続的なデータから構成される。
【００４４】
ここで、一例として、Ｘ、Ｙの構成は、以下の３つの組み合わせに大別される。すなわち、（Ｘ、Ｙ）＝（Ｒａｎｄｏｍ、Ｆ（Ｒａｎｄｏｍ））、（Ｆ＾−１（Ｒａｎｄｏｍ）、Ｒａｎｄｏｍ）、（＊、Ｆ（Ｔｉｍｅ））。そして、この中から適当なコンポーネントを選択する。
【００４５】
なお、ここで、Ｒａｎｄｏｍは乱数を、Ｔｉｍｅは時刻情報やカウンタ情報など両者で正当性が検証可能な情報であり、＊はデータなしを表す。
【００４６】
また、Ｆ（Ｘ）は、Ｘについて、エンティティ（端末）Ｂのみが計算可能な関数、もしくは、エンティティ（端末）ＡとＢのみが計算可能な関数である。Ｆ（Ｘ）は、環境パラメータに従って、１）メッセージ認証子生成関数、２）署名関数、３）共通鍵暗号アルゴリズム等が選択される。また、Ｆ＾−１（Ｘ）については、１）共通鍵暗号アルゴリズム、２）公開鍵暗号アルゴリズム等が選択される。なお、いずれが選択されるかは、セキュリティ要件から決定される。
【００４７】
また、Ｆ＾−１（Ｘ）を選択する場合は、必ず関数Ｆが可逆でなければならない。従って、共通鍵暗号、公開鍵暗号が使えない環境下では、（Ｆ＾−１（Ｒａｎｄｏｍ）、Ｒａｎｄｏｍ）は選択できない。逆に、ＭＡＣ関数、署名関数、共通鍵暗号が使えない環境下では、（Ｒａｎｄｏｍ、Ｆ（Ｒａｎｄｏｍ））、（＊、Ｆ（Ｔｉｍｅ））は、選択できない。
【００４８】
＜鍵共有プロトコルの基本コンポーネント＞
次に、図４を参照して、鍵共有プロトコルの基本コンポーネントについて説明する。
鍵共有プロトコルの基本コンポーネントは、図４に示すような構成になっている。ここで、Ｘ、Ｙは、任意のデータ（複数でも良い）を表し、Ｙは、エンティティ（端末）Ａにおいてプロトコルの実行中にダイナミックに生成され、かつ送信データに含まれないデータ（の集合）である。また、Ｚ１、Ｚ２は、それぞれ各エンティティ（端末）が生成したデータであって、送信せずに保持しているデータを示している。
【００４９】
鍵共有プロトコルにおける鍵共有処理関数は、Ｘ、Ｙおよび長期保有鍵などの永続的なデータから構成される。なお、セキュリティ要件によっては、相互にデータを交換し、セション鍵を生成する場合も考えられる。そのような条件下では、上記コンポーネントを２つ組合せることで構成する。また、三者間鍵共有も同様に、２つ以上のコンポーネントを組合せることで構成できる。
【００５０】
ここで、一例として、Ｘ、Ｙの構成は、以下の３つの組み合わせに大別される。すなわち、（Ｘ、Ｙ、Ｚ１、Ｚ２）＝（Ｒａｎｄｏｍ、Ｆ（Ｒａｎｄｏｍ、Ｇ（Ｒａｎｄｏｍ‘））、Ｒａｎｄｏｍ’、＊）、（Ｒａｎｄｏｍ、Ｆ（Ｒａｎｄｏｍ、Ｒａｎｄｏｍ’）、Ｒａｎｄｏｍ’、＊）、（Ｈ（ｒａｎｄｏｍ）、Ｈ（Ｒａｎｄｏｍ’）、Ｒａｎｄｏｍ’、Ｒａｎｄｏｍ）
【００５１】
ここで、Ｆ（Ｘ）は、Ｘについてエンティティ（端末）Ａのみが計算可能な関数、もしくは、エンティティ（端末）ＡとＢのみが計算可能な関数である。また、Ｇ（Ｘ）は、Ｘについてエンティティ（端末）Ｂのみが計算可能な関数、もしくは、エンティティ（端末）ＡとＢのみが計算可能な関数である。さらに、Ｈ（Ｘ）は、誰でも計算できる関数であるが、Ｈ（Ｘ）からＸを求めることが困難な関数である。また、ある関数Ｈ‘（Ｘ）に対して、Ｈ’（Ｘ１、Ｈ（Ｘ２））＝Ｈ‘（Ｘ２、Ｈ（Ｘ１））を満たす。
【００５２】
Ｆ（Ｘ）は、環境パラメータに従って、１）メッセージ認証子生成関数、２）署名関数、３）共通鍵暗号アルゴリズム等が選択される。また、Ｇ（Ｘ）については、１）共通鍵暗号アルゴリズム、２）公開鍵暗号アルゴリズム等が選択される。
【００５３】
＜暗号プロトコル生成装置の処理＞
次に、図４を用いて、暗号プロトコル生成装置の処理について、説明する。
まず、前段の処理（以下、第１フェーズとよぶ）として、双方の端末は、どちらが先にプロトコルを開始するかどうか、現在利用している通信速度（Ｓ）、自身の計算能力（Ｐ）、セキュリティレベル、共有鍵の有効期間、アプリケーションから入力された要求条件（例えば、相手認証あり、鍵共有あり）から、情報交換用のデータを生成する。そして、作成したデータを交換する。さらに、交換したデータからプロトコル生成に必要な基本データを構築する。例えば、通信速度、共有鍵の有効期限は、原則として低いほうの値にあわせる。セキュリティレベルは、原則として高いほうにあわせる。また、処理速度は、双方相手の処理速度情報を保持する。要求条件については、相手が認証を要求しているかを保持すると共に、どちらか一方が鍵共有を希望すれば、鍵共有ありに設定する。以上の条件で設定を行なった結果を、セキュリティポリシーと照らし合わせ、受け入れ可能かどうかを判断する。そして決定した基本データを符号化したデータを交換することで、お互いが同様の基本データを保持していることを確認する。
【００５４】
そして、第１フェーズで取得した環境パラメータを解釈して、これをセキュリティ要件と性能要件に分離する（ステップＳ１０１）。次に、セキュリティ要件に基づいて、基本コンポーネント格納部３０に格納されている鍵共有プロトコル用のコンポーネントを組み合わせて、基本プロトコル生成部２０が鍵共有プロトコルのワークフレームの選択処理を実行する（ステップＳ１０２）。さらに、基本コンポーネント格納部３０に格納されている認証プロトコル用のコンポーネントを組み合わせて、基本プロトコル生成部２０が認証プロトコルのワークフレームの選択処理を実行する（ステップＳ１０３）。
【００５５】
続いて、公開鍵の送信等を行うことにより、データ追加部４０が不足データの追加処理を実行し（ステップＳ１０４）、データ削除部５０が、重複データの削除処理を実行する（ステップＳ１０５）。さらに、鍵生成関数決定部８０が、既知データ格納部６０に格納された既知データと鍵格納部７０に格納された鍵とを用いて、鍵生成関数の作成処理を実行する（ステップＳ１０６）。
【００５６】
そして、パラメータ設定部９０が、性能要件に関する情報を利用して、転送データの詳細やアルゴリズム、データ長といったパラメータを決定し、カスタマイズを行って、プロトコル定義ファイルを出力する（ステップＳ１０７）。
【００５７】
なお、ステップＳ１０７において、要求される性能要件を充足することができない場合（例えば、プロトコルの本数が多いために、通信帯域の要件を満足できない等）には、例えば、セキュリティ要件のレベルを下げて、再び、ステップＳ１０２からステップＳ１０７の処理を行う。そして、例えば、セキュリティ要件のレベルを順次下げて処理を行っても、要求される性能要件を充足することができない場合には、エラーを出力して処理を終了する。
【００５８】
以上、説明したように、本実施形態によれば、端末間で、セキュリティ要件と性能要件とからなる環境条件データや要求条件データを交換し、これらに基づいて、サービス提供に用いられる暗号プロトコルを動的に生成し、あるいは、必要に応じて変更することにより、通信相手の環境に応じて、最適な認証あるいは鍵共有プロトコルにカスタマイズして、処理を実行することができる。したがって、本実施形態の暗号プロトコル生成装置は、認証や鍵交換を行うサービスにおけるシステム設計全般に広く適用することができる。例えば、インターネット事業における認証プロトコルやモバイル・ユビキタス間環境における最適認証・鍵共有プロトコルなどに適用が可能である。
【００５９】
なお、暗号プロトコル生成装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを暗号プロトコル生成装置に読み込ませ、実行することによって本発明の暗号プロトコル生成装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００６０】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００６１】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００６２】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００６３】
【図１】本実施形態に係る暗号プロトコル生成装置の構成図である。
【図２】本実施形態に係る認証プロトコルの基本コンポーネントを示す図である。
【図３】本実施形態に係る認証プロトコルの基本コンポーネントを示す図である。
【図４】本実施形態に係る鍵共有プロトコルの基本コンポーネントを示す図である。
【図５】本実施形態に係る暗号プロトコル生成装置の処理フローである。
【符号の説明】
【００６４】
１０・・・通信部
２０・・・基本プロトコル生成部
３０・・・基本コンポーネント格納部
３１・・・データセット入力部
４０・・・データ追加部
５０・・・データ削除部
６０・・・既知データ格納部
７０・・・鍵格納部
８０・・・鍵生成関数決定部
９０・・・パラメータ決定部
【図１】
2008131057.tif 000003
【図２】
2008131057.tif 000004
【図３】
2008131057.tif 000005
【図４】
2008131057.tif 000006
【図５】
2008131057.tif 000007