(57)【特許請求の範囲】
【請求項１】
第１循環群Γにおける第１公開鍵ＰAおよび秘密鍵ＳA＝ｓＰAを有する第１エンティティ、ならびに第１循環群Γにおける第２公開鍵ＰBおよび第２公開鍵ＳB＝ｓＰBを有する第２エンティティを有し、ｅｅが双一次関数、ＳABが第２循環群Ηの構成要素である場合に、前記第１エンティティと前記第２エンティティは非相互的な共有秘密情報ＳAB＝ｅｅ（ＰA,ＳB）＝ｅｅ（ＳA,ＰB）を各々有する暗号システムにおける共有秘密情報決定方法であって、
前記第１エンティティが、第１任意整数ａを選択するステップと、
前記第１エンティティが、第１中間共有秘密要素ｇaを算出するステップ（ｇは第２循環群Ηにおいて予め定められた構成要素を表す）と、
前記第１エンティティが、前記第１中間共有秘密要素ｇaを前記第２エンティティに送信するステップと、
前記第２エンティティが、第２任意整数ｂを選択するステップと、
前記第２エンティティが、第２中間共有秘密要素ｇbを算出するステップと、
前記第２エンティティが、前記第２中間共有秘密要素ｇbを前記第１エンティティに伝達するステップと、
前記第１エンティティおよび前記第２エンティティが、相互共有秘密情報、ｇab＝（ｇa）b＝（ｇb）aを算出するステップと、
前記第２エンティティが、前記第１エンティティは前記非相互的な共有秘密情報ＳABを知っていることを確認するステップと、
前記第１エンティティが、前記第２エンティティは前記非相互的な共有秘密情報ＳABを知っていることを確認するステップと、
前記第１エンティティおよび前記第２エンティティが、前記相互共有秘密情報ｇabを使用して前記共有秘密情報を求めるステップと
を備えることを特徴とする共有秘密情報決定方法。
【請求項２】
第１循環群Γにおける第１公開鍵ＰAおよび秘密鍵ＳA＝ｓＰAを有する第１エンティティ、ならびに第１循環群Γにおける第２公開鍵ＰBおよび第２公開鍵ＳB＝ｓＰBを有する第２エンティティを有し、ｅｅが双一次関数、ＳABが第２循環群Ηの構成要素である場合に、前記第１エンティティと前記第２エンティティは非相互的な共有秘密情報ＳAB＝ｅｅ（ＰA,ＳB）＝ｅｅ（ＳA,ＰB）を各々有する暗号システムにおける共有秘密情報決定方法であって、
前記第１エンティティが、第１任意整数ａを選択するステップと、
前記第１エンティティが、第１中間共有秘密要素ａＰを算出するステップ（Ｐは第２循環群Ηにおいて予め定められた構成要素を表す）と、
前記第１エンティティが、前記第１中間共有秘密要素ａＰを前記第２エンティティに送信するステップと、
前記第２エンティティが、第２任意整数ｂを選択するステップと、
前記第２エンティティが、第２中間共有秘密要素ｂＰを算出するステップと、
前記第２エンティティが、前記第２中間共有秘密要素ｂＰを前記第１エンティティに送信するステップと、
前記第１エンティティおよび前記第２エンティティが、相互共有秘密情報、ａｂＰ＝ａ（ｂＰ）＝ｂ（ａＰ）を算出するステップと、
前記第２エンティティが、前記第１エンティティは前記非相互的な共有秘密情報ＳABを知っていることを確認するステップと、
前記第１エンティティが、前記第２エンティティは前記非相互的な共有秘密情報ＳABを知っていることを確認するステップと、
前記相互共有秘密情報ａｂＰを使用して前記共有秘密情報を算出するステップと
を備えることを特徴とする方法。
【請求項３】
前記第１循環群Γは楕円曲線上の点を含む加算的グループであり、前記第２循環群Ηは有限体上の乗法的サブグループであることを特徴とする、請求項１または２のいずれか記載の共有秘密情報決定方法。
【請求項４】
前記第１循環群Γはアーベル多様体上の点を含む加算的グループであり、前記第２循環群Ηは有限領域での乗法的サブグループであることを特徴とする、請求項１または２のいずれかに記載の共有秘密情報決定方法。
【請求項５】
前記第１循環群Γと前記第２循環群Ηは、それぞれ、素数位数であることを特徴とする、請求項１または２のいずれかに記載の共有秘密情報決定方法。
【請求項６】
前記第１エンティティが非相互的な共有秘密情報ＳABを有していることは、相互共有秘密情報ｇabと非相互的な共有秘密情報ＳABを使用して、前記共有秘密情報を求めることによって確認され、  前記第２エンティティが非相互的な共有秘密情報ＳABを有していることは、相互共有秘密情報ｇabと非相互的な共有秘密情報ＳABを使用して、前記共有秘密情報を求めることによって確認されることを特徴とする、請求項１に記載の共有秘密情報決定方法。
【請求項７】
前記第１エンティティが非相互的な共有秘密情報を有していることを確認するステップは、
前記第１エンティティが、前記非相互的な共有秘密情報ＳABを用いて、前記第１中間共有秘密ｇaに第１メッセージ認証コードを付けるステップと、
前記第１エンティティが、前記第１メッセージ認証コードを前記第２エンティティに伝達するステップと、
前記第２エンティティが、前記非相互的な共有秘密情報ＳABを使って前記第１メッセージ認証コードを確認するステップと
を備え、さらに、
前記第２エンティティが非相互的な共有秘密情報を有していることを確認するステップは、
前記第２エンティティが、前記非相互的な共有秘密情報ＳABを使って、前記第２中間共有秘密ｇbに第２メッセージ認証コードを付けるステップと、
前記第２エンティティが、前記第２メッセージ認証コードを前記第１エンティティに伝達するステップと、
前記第１エンティティが、前記非相互的な共有秘密情報ＳABを使って、前記第２メッセージ認証コードを確認するステップと
を備えることを特徴とする、請求項１に記載の共有秘密情報決定方法。
【請求項８】
前記第１エンティティが非相互的な共有秘密情報ＳABを有していることは、相互共有秘密情報ａｂＰと非相互的な共有秘密情報ＳABを使用した、前記共有秘密情報を求めることによって確認され、
前記第２エンティティが非相互的な共有秘密情報ＳABを有していることは、相互共有秘密情報ａｂＰと非相互的な共有秘密情報ＳABを使用して、前記共有秘密情報を求めることで確認されることを特徴とする、請求項２に記載の共有秘密情報決定方法。
【請求項９】
前記第１エンティティが非相互的な共有秘密情報を有していることを確認する方法は、
前記第１エンティティが、前記非相互認証シークレットＳABを用いて、前記第１中間共有秘密ａＰに第１メッセージ認証コードを付けるステップと、
前記第１エンティティが、前記第１メッセージ認証コードを前記第２エンティティに伝達するステップと、
前記第２エンティティが、前記非相互的な共有秘密情報ＳABを使って前記第１メッセージ認証コードを確認するステップと
を備え、さらに、
前記第２エンティティが非相互的な共有秘密情報を有していることを確認する方法は、
前記第２エンティティが、前記非相互認証シークレットＳABを用いて、前記第２中間共有秘密ｂＰに第２メッセージ認証コードをつけるステップと、
前記第２エンティティが、前記第２メッセージ認証コードを前記第１エンティティに伝達するステップと、
前記第１エンティティが、前記非相互的な共有秘密情報ＳABを使って前記第２メッセージ認証コードを確認するステップと
を備えることを特徴とする、請求項２に記載の共有秘密情報決定方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ・ネットワークまたはその他のシステムおよび装置を介した、暗号化され、かつ、保護された通信に係り、特に、鍵供託による不利益を伴うことなく、２つのエンティティ間の通信を暗号化もしくは復号化するためのＩＤベースの暗号システムにおける共有秘密情報の決定および使用に関する。
【０００２】
【従来の技術】
本願は、合衆国法典第３５巻（米国特許法）１１９条ｅ項に基づき、仮米国特許出願番号６０／３６６，２９２（２００２年３月２１日出願）と６０／３６６,１９６（２００２年３月２１日出願）に基づいて優先権主張する。なお、これらの文献は本文中でも参照した。
【０００３】
ＩＤベース暗号化システムは、エンティティの固有情報（名前、住所、ｅメールアドレス、ＩＰアドレス等）からそのエンティティの公開鍵を生成する、公開鍵暗号システムである。エンティティの秘密鍵は、信用された機関によって生成、配布される。この信用された機関は、マスタ秘密情報を用いて秘密鍵を生成する。
【０００４】
２つのエンティティ間の通信を暗号化もしくは認証するために、これらのエンティティが共有秘密情報に同意するためのプロトコルがある。ＩＤベースの鍵合意プロトコルでは、各当事者は各々が保持する秘密鍵と他の当事者の公開固有情報を使用して、共有秘密情報を形成する。たとえば楕円曲線とこれに関連した組み合わせなどを用いて、比較的安全なＩＤベースの署名や鍵合意プロトコルが構成されてきた。また、楕円曲線の代わりにアーベル多様体を採りいれた、より効率的なプロトコルが提案されている。共有秘密情報は、その構成の一部が他の当事者の秘密鍵に基づくので、信頼された機関によって二次的に認証されてもよい。
【０００５】
【発明が解決しようとする課題】
しかし、従来のＩＤベース暗号システムは、信用できる機関への鍵の供託を伴うため、限界があった。信用された機関は、全エンティティの秘密鍵を保持しているため、暗号システム内にあるすべての秘密情報を把握している。その結果、従来のＩＤベース暗号システムは中間攻撃にもろかった。２つのエンティティによって使用される共有秘密情報は、信用された機関、あるいはマスタ秘密情報を発見した他のエンティティによってその内容が把握されてしまうからである。
【０００６】
したがって、鍵の供託の欠点を含まない、安全なＩＤベースの鍵合意プロトコルが必要とされている。ゆえに本発明の目的は、鍵の供託を必要としない鍵合意プロトコルを含んだ、保護および認証された、ＩＤベースの暗号システムを提供することにある。さらに本発明の目的は、通信している２媒体間でやり取りされるメッセージの横取りに基づく、中間攻撃に対して安全な鍵合意プロトコルを提供することにある。
【０００７】
【課題を解決するための手段】
本発明によると、暗号システムにおいて２つのエンティティ間の共有秘密情報を決定するためのシステムおよび方法が提供される。この方法およびシステムは、鍵供託を採用しておらず、２つのエンティティ間のメッセージの横取りに基づく中間攻撃に対して安全である。
【０００８】
本発明の１つの観点から、非相互的な共有秘密情報を持った第１エンティティと第２エンティティの間で交信されるデジタル・メッセージを暗号化または復号化する方法が提供される。まず、第１エンティティは知っているが第２エンティティに知られていない第１ランダム秘密情報が選択される。次に、第１ランダム秘密情報とシステム・パラメータを使用して、第１中間共有秘密要素が求められる。この第１中間共有秘密要素は、第２エンティティに伝達される。一方で、第２エンティティは知っているが第１エンティティに知られていない第２ランダム秘密情報が選択される。また、第２ランダム秘密情報と上記システム・パラメータを使用して、第２中間共有秘密要素が求められる。この第２中間共有秘密要素は、第１エンティティに伝達される。そして、第１ランダム秘密情報、第２ランダム秘密情報およびシステム・パラメータを使って相互共有秘密情報が求められる。次に２つのエンティティが非相互的な共有秘密情報を持っていることが確認される。さらに、相互共有秘密情報から対称キーが定まる。この対称キーによって、デジタル・メッセージが暗号化または復号化される。
【０００９】
本発明の他の観点から、非相互的な共有秘密情報を持った第１エンティティと第２エンティティの間で交信されるデジタル・メッセージを認証する方法が提供される。まず、第１エンティティは知っているが第２エンティティに知られていない第１ランダム秘密情報が選択される。次に、第１ランダム秘密情報とシステム・パラメータを使用して、第１中間共有秘密要素が求められる。この第１中間共有秘密秘密要素は、第２エンティティに伝達される。一方で、第２エンティティは知っているが第１エンティティに知られていない第２ランダム秘密情報が選択される。また、第２ランダム秘密情報とシステム・パラメータを使用して、第２中間共有秘密秘密要素が求められる。この第２中間共有秘密秘密要素は、第１エンティティに伝達される。そして、第１ランダム秘密情報、第２ランダム秘密情報、およびシステム・パラメータを使って相互共有秘密情報が求められる。次に２つのエンティティが非相互的な共有秘密情報を持っていることが確認される。さらに、相互共有秘密情報から対称キーが定まる。この対称キーによって、デジタル・メッセージが認証または確認される。
【００１０】
本発明の他の観点から、非相互的な共有秘密情報を持った第１エンティティと第２エンティティの間で交信されるデジタル・メッセージを暗号化または復号化するシステムが提供される。このシステムは、第２エンティティに知られていない第１ランダム秘密情報、システム・パラメータ、第１中間共有秘密要素、第２中間共有秘密要素、相互共有秘密情報、および対称キーを少なくとも保存可能な、第１エンティティに関連した第１メモリを含む。さらにこのシステムは、第１エンティティに知られていない第２ランダム秘密情報、システム・パラメータ、第１中間共有秘密要素、第２中間共有秘密要素、相互共有秘密情報、および対称キーを少なくとも保存可能な、第２エンティティに関連した第２メモリを含む。またこのシステムは、第１ランダム秘密情報を選択することと、第１ランダム秘密情報とシステム・パラメータを用いて第１中間共有秘密要素を求めることと、第１中間共有秘密要素を第２エンティティに伝達することと、第２エンティティから第２中間共有秘密要素を受信することと、第１ランダム秘密情報と第２中間共有秘密要素を使用して相互共有秘密情報を定めることと、第２エンティティは非相互的な共有秘密情報を知っていると確認することと、少なくとも前記相互共有秘密情報を使用して前記対称キーを決定することと、前記対称キーを使用して前記メッセージを暗号化することと、暗号化されたメッセージを第２エンティティに伝達することが可能な、第１エンティティに関連する第１プロセッサを含む。本システムはさらに、第２ランダム秘密情報を選択することと、第２ランダム秘密情報とシステム・パラメータを使用して第２中間共有秘密要素を求めることと、第２中間共有秘密要素を第１エンティティに伝達することと、第１エンティティから第１中間共有秘密要素を受信することと、第１ランダム秘密情報と第２中間共有秘密要素を使用して相互共有秘密情報を定めることと、第１エンティティは非相互的な共有秘密情報を知っていると確認することと、少なくとも相互共有秘密情報を使用して対称キーを求めることと、暗号化されたメッセージを第１エンティティから受信することと、暗号化されたメッセージを対称キーによって復号化することが可能な、第２エンティティに関連した第２プロセッサを含む。
【００１１】
本発明の他の観点から、非相互的な共有秘密情報を持った第１エンティティと第２エンティティの間で交信されるデジタル・メッセージを認証するシステムが提供される。このシステムは、第２エンティティに知られていない第１ランダム秘密情報、システム・パラメータ、第１中間共有秘密要素、第２中間共有秘密要素、相互共有秘密情報、および対称キーを少なくとも保存可能な、第１エンティティに関連した第１メモリを含む。さらにこのシステムは、第１エンティティに知られていない第２ランダム秘密情報、システム・パラメータ、第１中間共有秘密要素、第２中間共有秘密要素、相互共有秘密情報、および対称キーを少なくとも保存可能な、第２エンティティに関連した第２メモリを含む。このシステムは、第１ランダム秘密情報を選択することと、第１ランダム秘密情報とシステム・パラメータを使って第１中間共有秘密要素を求めることと、第１中間共有秘密要素を第２エンティティに伝達することと、第２エンティティから第２中間共有秘密要素を受信することと、第１ランダム秘密情報と第２中間共有秘密要素を使用して相互共有秘密情報を求めることと、第２エンティティは非相互的な共有秘密情報を知っていると確認することと、少なくとも相互共有秘密情報を使用して対称キーを決定することと、対照キーを使用してメッセージ認証コードを生成することと、メッセージ認証コードを第２エンティティに伝達することが可能な、第１エンティティに関連する第１プロセッサを含む。本システムはさらに、第２ランダム秘密情報を選択することと、第２ランダム秘密情報とシステム・パラメータを含む第２中間共有秘密要素を求めることと、第２中間共有秘密要素を第１エンティティに伝達することと、第１エンティティから第１中間共有秘密要素を受信することと、第２ランダム秘密情報と第１中間共有秘密要素を使用して相互共有秘密情報を求めることと、第１エンティティは非相互的な共有秘密情報を知っていると確認することと、少なくとも相互共有秘密情報を使用して対称キーを決定することと、メッセージ認証コードを第１エンティティから受信することと、対称キーを使ってメッセージ認証コードを確認することが可能な、第２エンティティに関連した第２プロセッサを含む。
【００１２】
【発明の実施の形態】
本発明の好ましい実施形態は、楕円曲線上のペアリング手法（Ｗｅｉｌ／Ｔａｔｅ  ｐａｉｒｉｎｇ）もしくはアーベル多様体に基づいている。好ましい実施形態はさらに、双１次関数を取り扱うディフィ・ヘルマン問題に基づく。ディフィ・ヘルマン方式では、ΓとΗの２つの循環群を、好ましくはそれぞれ大きい素数位数λを使用する。第１循環群Γは楕円形もしくはアーベル多様体上でのポイントの集まりであり、Γについての群法則は好ましくは追加的に記載されている。第２循環群Ηは、有限体上の乗法的サブグループであり、その群法則は好ましくは乗法的に記載されている。しかしながら本発明と整合する、異種の群をΓもしくはΗとして利用してもよい。
【００１３】
本発明の実施形態では、第１循環群Γ内の生成器Ｐを使用する。さらに、第１循環群Γの２つの構成要素を第２循環群Ηの１つの構成要素に写像するために、関数ｅｅ：Γ×Γ→Ηが提案される。ここで、表記“ｅｅ”は、本願の優先権出要の基礎である米国特許出願においては“ｅ”の上に“∧”を載せた表記となっていたものであるが、本願明細書においてそのような表記を用いることが困難であったため、その代わりに採用されたものである。従って、これ以降における表記“ｅｅ”は、実際には“ｅ”の上に“∧”を載せたものを表していると解されることを望む次第である。関数ｅｅは好ましくは、以下２つの条件を満たす関数である。第１に、関数ｅｅは好ましくは、ＱとＲが第１循環群Γにあり、ａとｂが整数あるばあいに、ｅｅ（ａＱ,ｂＲ）＝ｅｅ（Ｑ,Ｒ）abを満たす双一次関数である。したがって、ｅｅ（ａＰ,ｂＰ）＝ｅｅ（Ｐ,Ｐ）ab＝ｅｅ（ｂＰ,ａＰ）が成立する。第２に、関数ｅｅは好ましくは効率的に算出できる関数である。
【００１４】
ディフィ・ヘルマン問題は、Ｐ,ａP,bP,およびcＰが知られている一方でａ,ｂ,およびｃが知られていない場合に、ｅｅ（Ｐ,Ｐ）abcを発見する点にある。ここで、ｅｅ（Ｐ,Ｐ）abc＝ｅｅ（ａｂＰ,ｃＰ）であるから、第１循環群Γにおけるディフィ・ヘルマン問題の解決が、ディフィ・ヘルマン問題を解決することになる。同様に、第２循環群Ｈにおけるディフィ・ヘルマン問題の解決が、ディフィ・ヘルマン問題を解決することになる。何故ならば、ｇ＝ｅｅ（Ｐ，Ｐ）であると、ｇabc＝（ｇab）cとなり、ｇab＝ｅｅ（ａＰ,ｂＰ）およびｇc＝ｅｅ（Ｐ,ｃＰ）が成り立つからである。ここでたとえば、Ｅは有限体Ｆ上にある超楕円曲線もしくはアーベル多様体、ＰTMＥ（Ｆ）は位数点λ（Ｆの特性よりも比較的重要）、そしてｅは、Ｅのλねじれ率でのウェール・ペアリングをそれぞれ意味するものとする。Γは生成器Ｐによって生成された群であり、Ηは有限体Ｆの代数的閉包全体でλ番目の解の集合体であるとする。ｆがｆ（Ｐ）がΓに含まれない等、Ｅの自己同形を表わす場合、ｅｅ：Γ×Γ→Ｈをｅｅ（Ｑ,Ｒ）＝ｅｅ（Ｑ,ｆ（Ｒ））を定義することで、上記２つの条件を満たす関数ｅｅが導かれる。なお、このｅｅは縮退している関数ではない。たとえば、ｅｅ（ａＰ,ｂＰ）＝ｅｅ（Ｐ,ｃＰ）を定義するなら、ａｂＰ＝ｃＰである。
【００１５】
本発明の好ましい実施形態は、マスター・シークレットｓTMＺ/λＺを有する第三者秘密鍵生成部（ＰＫＧ）を含む。マスター・シークレットｓは好ましくは任意に選択される。好ましくは、ハッシュ関数ｈ：｛０，１｝→Γを第１エンティティの識別情報に代入して、第１群Γが含む要素を求めた結果、第１エンティティの公開鍵ＰAが得られる。秘密鍵生成部は、第１エンティティの公開鍵（ＳA＝ｓＰA）求め、それを第１エンティティに提供する。同様に、ハッシュ関数ｈを第２エンティティに適用して、第２エンティティの公開鍵ＰBTMΓが求められる。秘密鍵生成部は第２エンティティに適切な秘密鍵（ＳB＝ｓＰB）を提供する。したがって、何ら相互作用がない場合、第１エンティティおよび第２エンティティはそれぞれ非相互的な共有秘密情報、ＳAB＝ｅｅ（ＰAＳB）＝ｅｅ（ＰA,ＳB）＝ｅｅ（ＳA，ＰB）＝ＳBA、を有する。これは、非相互的な共有秘密情報を表わす数式といえる。秘密鍵生成部は、Ｓと、第１エンティティの秘密鍵ＳAと第２エンティティの秘密鍵ＳBを知っているので、秘密鍵生成部もまた非相互的な共有秘密情報を知っている。
【００１６】
ディフィ・ヘルマン問題が難しい場合、非相互的な共有秘密情報ＳABは保護される。たとえば、任意のα、βTMΖ/λΖに対して、ｈ（ＩＤ）＝Ｐ＝αＰと、ｈ（ＩＤB）＝ＰB＝βＰが定義される場合、α、β、およびＳを把握することなくＳAB＝ｅｅ（Ｐ，Ｐ）αβSの解を求めることは困難である。
【００１７】
ここで図を参照すると、図１は、本発明の好ましい一実施形態であり、２つのエンティティ間の共有秘密情報を求める方法を示した流れ図である。まず第１エンティティは、第１ランダム秘密情報を選択する（ステップ１０２）。次に第１エンティティは、第１ランダム秘密情報とシステム・パラメータを使って、第１中間共有秘密要素を求める（ステップ１０４）。なお、第１ランダム秘密情報は、乱数、乱数の無作為な集合体、その他任意に選ばれた情報である。ステップ１０４を経て、第１エンティティは、第１中間体共有要素を第２エンティティに伝達する（ステップ１０６）。第２エンティティは、第２ランダム秘密情報を選択する（ステップ１０８）。そして第２エンティティは、第２ランダム秘密情報とシステム・パラメータを使って、第２中間体共有要素シークレット要素を求める（ステップ１１０）。なお、第２ランダム秘密情報は、乱数、乱数の無作為な集合体、その他任意に選ばれた情報である。そして第２エンティティは、第２中間体共有要素を第１エンティティに伝達する（ステップ１１２）。次に第１エンティティと第２エンティティは、第１ランダム秘密情報、第２ランダム秘密情報、およびシステム・パラメータを使用して、相互共有秘密情報を定める（ステップ１１４）。第１エンティティは、第１ランダム秘密情報と第２中間共有秘密要素を利用して、相互共有秘密情報を決定する。これと同様に、第２エンティティは、第２ランダム秘密情報と第１中間共有秘密要素を利用して、相互共有秘密情報を決定する。２つのエンティティはまた、他方のエンティティが非相互的な共有秘密情報（ＳAB）などを持っていることを確認する。そしてそれぞれのエンティティは、相互共有秘密情報によって、対称キーを決定する（ステップ１１８）。
【００１８】
本発明は鍵供託を採用していない。また本発明では、各々交信をしている２つのエンティティの一方にのみ知られており、秘密鍵生成部に知られていない２つのランダム秘密情報を使用するので、ネットワークでの横取り行為に対するセキュリティが確保される。そして、第１ランダム秘密情報は第２エンティティに知られておらず、一方、第２ランダム秘密情報は第１エンティティに知られていない。また、いずれのランダム秘密情報も、鍵生成部、あるいはその他には知られていない。さらに、いずれのランダム秘密情報も通信当事者間で直接には伝達されない。その代わり、通信を行っている当事者は、ランダム秘密情報に基づいた中間共有秘密要素を伝達し合う。ここで、中間共有秘密要素からランダム秘密情報を求めることは困難であるから、ランダム秘密情報はその安全が維持される。したがって、鍵合意プロトコルは保護されている。なぜなら、横取りをした者が、少なくとも１つのランダム秘密情報を知らずに、相互共有秘密情報（そして最終的には、対称キー）を把握することは困難だからである。
【００１９】
一方のエンティティが、他方のエンティティは非相互的な共有秘密情報を持っているかを確認するステップ（ステップ１１６）は様々な方法で実行される。たとえば、非相互的な共有秘密情報および相互共有秘密情報を用いて、対称キーを定めても良い。他の実施形態では、第１エンティティは非相互的な共有秘密情報を鍵に使って、第１中間共有秘密要のためのメッセージ認証コード（ＭＡＣ）を生成する。そして、この生成された第１ＭＡＣを第２エンティティに伝達することによって、第１エンティティはそれが非相互的な共有秘密情報を持っていることを証明する。ＭＡＣを受信した第２エンティティは、非相互的な共有秘密情報を鍵に使ってメッセージ認証コードを確認した後、第１エンティティが非相互的な共有秘密情報を有していると判断する。これと同様に、第２エンティティは非相互的な共有秘密情報を鍵に使って、第２中間共有秘密要素のためのメッセージ認証コード（ＭＡＣ）を生成する。そして、この生成された第２ＭＡＣを第１エンティティに伝達することによって、第２エンティティはそれが非相互的な共有秘密情報を有していることを証明する。ＭＡＣを受信した第１エンティティは、非相互的な共有秘密情報を鍵に使ってメッセージ認証コードを確認した後、第２エンティティが非相互的な共有秘密情報を持っていると判断する。
【００２０】
図１に示す方法によって得られる対称キーは、様々なアプリケーションに適用できる。たとえば図２は、エンティティ間で、対称キーを使用してメッセージを暗号化／復号化する方法を示した流れ図である。はじめにエンティティは、図１に示された方法によって、対称キーを定める（ステップ１１８）。次に第１エンティティは、対称キーを使ってメッセージを暗号化する（ステップ２０２）。第１エンティティは、先進暗号化規格（Ａｄｖａｎｃｅｄ  ＥｎｃｒｙｐｔｉｏｎＳｔａｎｄａｒｄ）等あらゆる対称暗号方式を利用して、メッセージを暗号化する。そして第１エンティティは、暗号化されたメッセージを第２エンティティに伝達する。一方、第２エンティティは、第１エンティティがメッセージ暗号化に利用した暗号化方式および対称キーを使って、暗号化されたメッセージを復号化する（ステップ２０４）。
【００２１】
図１に示す方法により得られる対称キーの他の有用な用途は、メッセージの内容を認証する点にある。たとえば図３は、対称キーを使用してメッセージを認証する方法を示す。エンティティははじめに、図１に示す方法によって、対称キーを定める（ステップ１１８）。第１エンティティは、対称キーを使用して、送信するメッセージに固有のメッセージ認証コード（ＭＡＣ）を生成する（ステップ３０２）。ここで、第１エンティティは、メッセージの内容に基づくハッシュ関数等、あらゆる知られた方法によってメッセージ用のＭＡＣを生成する。そして第１エンティティは、暗号化されたメッセージとそのＭＡＣを第２エンティティに伝達する。第２エンティティは、第１エンティティがＭＡＣ生成に利用した暗号化方式および対称キーによって、ＭＡＣを確認する（ステップ３０４）。
【００２２】
図４は、本発明での他の好ましい実施形態である、２つのエンティティ間の共有秘密情報を決定する他の方法を示す。第１エンティティは、第１任意整数ａを選択する（ステップ４０２）。次に第１エンティティは、第１中間共有秘密要素ｇaを算出する（ステップ４０４）。なお、ｇは第２循環群Ηの生成器である。生成器ｇは好ましくは、ｅｅ（ＰA,ＰB）あるいはｅｅ（Ｐ,Ｐ）で定義される（Ｐは公開されたシステム・パラメータを指す）。ステップ４０４を実行した後、第１エンティティは第１中間共有秘密要素ｇaを第２エンティティに伝達する（ステップ４０６）。第２エンティティは、第２任意整数ｂを選択する（ステップ４０８）。ｂを選択した第２エンティティは、第２中間共有秘密要素ｇbを算出する（ステップ４１０）。そして第２エンティティは第２中間共有秘密要素ｇbを第１エンティティに伝達する（ステップ４１２）。こうして、エンティティが互いにその中間体共有要素シークレットを伝達し合った後、相互共有秘密情報ｇabを計算する（ステップ４１４）。一方のエンティティは他方のエンティティが選択した任意整数を知らないので、第１エンティティはｇab＝（ｇa）bを、第２エンティティはｇab＝（ｇb）aをそれぞれ算出する。２つのエンティティはまた、他のエンティティが非相互的な共有秘密情報（たとえば、ＳAB）を持っていることをそれぞれ確認する（ステップ４１６）。この処理の後、エンティティはそれぞれ少なくとも相互共有秘密情報ｇabを使用して、対称キ−を決定する（ステップ１１８）。
【００２３】
他方のエンティティが非相互的な共有秘密情報を持っていることの確認（ステップ４１６）は、様々な方法で実行される。たとえば、非相互的な共有秘密情報および相互共有秘密情報ｇabを用いて、対称キーを決定しても良い（ステップ４１８）。これは、例えばＳABとｇabの乗算などの標準代数処理により、あるいはＳABとｇabのそれぞれにハッシュ関数を適用したり、あるいはその他の組み合わせによって為される。他の実施形態では、第１エンティティは非相互的な共有秘密情報ＳABを鍵に使って、第１中間共有秘密要素ｇaのためのメッセージ認証コード（ＭＡＣ）を生成する。そして、この生成された第１ＭＡＣを第２エンティティに伝達することによって、第１エンティティはそれが非相互的な共有秘密情報ＳABを有していることを証明する。ＭＡＣを受信した第２エンティティは、非相互的な共有秘密情報ＳABを鍵に使ってメッセージ認証コードを確認した後、第１エンティティが非相互的な共有秘密情報ＳABを持っていると判断する。これと同様に、第２エンティティは非相互的な共有秘密情報ＳABを鍵に使って、第２中間共有秘密要素ｇbのためのメッセージ認証コード（ＭＡＣ）を生成する。そして、この生成された第２ＭＡＣを第１エンティティに伝達することによって、第２エンティティはそれが非相互的な共有秘密情報ＳABを有していることを証明する。ＭＡＣを受信した第１エンティティは、非相互的な共有秘密情報ＳABを鍵に使ってメッセージ認証コードを確認した後、第２エンティティが非相互的な共有秘密情報ＳABを持っていると判断する。
【００２４】
図１に示された実施形態で使用された対称キーは、様々なアプリケーションに適用できる。たとえば、図２で示される暗号化方式に、あるいは図３で示されるメッセージ認証方式で対称キーを使用しても良い。
【００２５】
図５は、本発明の他の好ましい実施形態である、２つのエンティティ間の共有秘密情報を決定する他の方法を示す。この方法で使用する中間共有秘密要素は、第１循環群Γを構成する要素である。この点は、中間共有秘密要素が第２循環群Ηを構成する要素であった、前記の実施形態とは異なる。これら２つの循環群が、たとえば、Γが楕円曲線もしくはアーベル多様体上のポイントを示すグループで、Ηが有限体上のサブグループとなるように、それぞれ選択されると、この実施形態は、結果として要求される帯域幅を削減する。Γが含む構成要素はΗが含む構成要素よりも少ないビット数を要求するからである。
【００２６】
この実施形態では、第１エンティティは、第１任意整数ａを選択する（ステップ５０２）。次に第１エンティティは、第１中間共有秘密要素ａＰを算出する（ステップ５０４）。なお、Ｐは第１循環群Γの公開パラメータである。ステップ５０４を実行した後、第１エンティティは第１中間共有秘密要素ａＰを第２エンティティに伝達する（ステップ５０６）。第２エンティティは、第２任意整数ｂを選択する（ステップ５０８）。次に第２エンティティは、第２中間共有秘密要素ｂＰを算出する（ステップ５１０）。そして第２エンティティは第２中間共有秘密要素ｂＰを第１エンティティに伝達する（ステップ５１２）。こうして、エンティティが互いにその中間共有秘密要素を伝達し合った後、相互共有秘密情報ａｂＰを計算する（ステップ５１４）。一方のエンティティは他方のエンティティが選択した任意整数を知らないので、第１エンティティはａｂＰ＝ａ（ｂＰ）を、第２エンティティはａｂＰ＝ｂ（ａＰ）をそれぞれ算出する。２つのエンティティはまた、他のエンティティが非相互的な共有秘密情報（たとえば、ＳAB）を知っていることをそれぞれ確認する（ステップ４１６）。この処理の後、両エンティティは、少なくとも相互共有秘密情報ａｂＰを使用して、対称キ−を決定することができる。
【００２７】
他方のエンティティが非相互的な共有秘密情報を持っていることの確認（ステップ５１６）は、様々な方法で実行される。たとえば、非相互的な共有秘密情報および相互共有秘密情報ａｂＰの両方を用いて、対称キーを決定しても良い（ステップ５１８）。両方の秘密情報を使用することは、ＳABをｅｅ（ａｂＰ,ａｂＰ）に乗算する標準代数処理により、あるいはＳABとａｂＰにハッシュ関数を適用することにより、あるいはその他の組み合わせ等によって為される。他の実施形態では、第１エンティティは非相互的な共有秘密情報ＳABを鍵に使って、第１中間共有秘密要素ａＰのためのメッセージ認証コード（ＭＡＣ）を生成する。そして、この生成された第１ＭＡＣを第２エンティティに伝達することによって、第１エンティティはそれが非相互的な共有秘密情報ＳABを有していることを証明する。ＭＡＣを受信した第２エンティティは、非相互的な共有秘密情報ＳABを鍵に使ってメッセージ認証コードを確認することによって、第１エンティティが非相互的な共有秘密情報ＳABを持っていると判断する。これと同様に、第２エンティティは非相互的な共有秘密情報ＳABを鍵に使った、メッセージ認証コード（ＭＡＣ）を第２中間共有秘密要素ａＰに対して生成する。そして、この生成された第２ＭＡＣを第１エンティティに伝達することによって、第２エンティティはそれが非相互的な共有秘密情報ＳABを有していることを証明する。ＭＡＣを受信した第１エンティティは、非相互的な共有秘密情報ＳABを鍵に使ってメッセージ認証コードを確認することによって、第２エンティティが非相互的な共有秘密情報ＳABを持っていると判断する。
【００２８】
随意的に、本発明の実施形態で用いるＰの代わりに、エンティティの公開鍵ＰAもしくはＰBのいずれか１つを使用しても良い。公開鍵をＰの代わりに使用する場合、ＰAとＰBのビット表示に基づき、どちらの鍵を使用するかに関する取り決めが確立されなければならない。
【００２９】
図１および図４に示された実施形態で使用された対称キーは、様々なアプリケーションに適用できる。たとえば、対称キーは図２で示される暗号化方式に、あるいは図３で示されるメッセージ認証方式で使用しても良い。
【００３０】
図５が示す方法には、起こりうる様々な攻撃をそらすため、ハッシュ関数を追加した、付加的な保護を新たに設定しても良い。たとえば、非相互的な共有秘密情報要素ＳABはＳABh(aP,bP)に代わられる場合、ｈ：Γ×Γ→（Ｚ／λＺ）が暗号化ハッシュ関数である。この例と同様に、ＳABはＳABh(abP)に、もしくはｅｅ（ａｂＰ,ａｂＰ）はｅｅ（ａｂＰ,ｈ2（ａｂＰ））に取って代わられる場合、ｈ1：Γ→（Ｚ／λＺ）とｈ2：Γ×Γはそれぞれ暗号化ハッシュ関数を示す。新たなハッシュ関数を使用することで、マスタ−・シークレットＳを知っている潜在的な攻撃者も、相互共有秘密情報を求めるために、グループΓが有するディフィ・ヘルマン問題を解決しなければいけないことは明らかである。
【００３１】
ここまで、本発明が示す共有秘密情報を決定して、それを暗号化方式および認証方式に使用する様々な方法を記載してきた。本発明の他の実施形態によった、これら様々な方法を実行するためのシステムが図６を参照して以下記載される。このシステムは、他のエンティティについての共有秘密情報をそれぞれが求める、多数のエンティティ６０２、６０４、６０６、および６０８を含む。このシステムはまた、秘密鍵生成部６３０を備える。秘密鍵生成部は、エンティティ６０２，６０４，６０６、および６０８に対して秘密鍵を配布する。
【００３２】
エンティティは、メモリ６１２との間で通信を行うためのプロセッサ６１０を各々有している。プロセッサ６１０は、これまで述べてきた処理を実行するための、適切なプログラム・コードを実行する。この適切なプログラム・コードは、当該技術で周知の方法によって作成される。さらにプロセッサは、他のエンティティに送信されるべき情報を生成する。メモリ６１２は、プログラム・コードとともに、中間体の処理結果、および電子認証生成もしくは認証処理で使用された情報を記憶する。
【００３３】
通信ネットワーク６２０は、それを通じてエンティティ６０２、６０４，６０６，および６０８と、ＰＫＧ６３０がそれぞれ交信するための手段を提供する。通信ネットワーク６２０は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）コンピュータ・ネットワーク、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）コンピュータ・ネットワーク、および適切な通信ネットワークを提供する携帯電話ネットワークなど、様々な共通ネットワーク形式を採りうる。
【００３４】
本発明は、その好ましい実施形態と実施例に特に詳細に言及しているが、技術的思想および範囲を逸脱しない限り、様々な変形および修正が施されうると解すべきである。
【００３５】
【発明の効果】
以上説明したように、この発明によれば、暗号化システム内で、２つのエンティティ間は共有秘密情報を決定することができる。
【図面の簡単な説明】
【図１】  本発明の好ましい実施形態であり、２つのエンティティ間の共有秘密情報を決定する方法を示す流れ図である。
【図２】  本発明の好ましい他の実施形態であり、２つのエンティティ間の共有秘密情報を暗号化または復号化する方法を示す流れ図である。
【図３】  本発明の好ましい他の実施形態であり、２つのエンティティ間の共有秘密情報を認証する方法を示す流れ図である。
【図４】  本発明の好ましい他の実施形態であり、２つのエンティティ間の共有秘密情報を決定する方法を示す流れ図である。
【図５】  本発明の好ましい他の実施形態であり、２つのエンティティ間の共有秘密情報を決定する方法を示す流れ図である。
【図６】  本発明の好ましい他の実施形態であり、鍵供託を採用していないキー協定プロトコルを含んだ、暗号化システムを示す流れ図である。
【符号の説明】
６０２，６０４，６０６，６０８・・・エンティティ、６１０・・・プロセッサ、６１２・・・メモリ、６２０・・・通信ネットワーク、６３０・・・秘密鍵生成部
【図１】
0004527358.tif 000002
【図２】
0004527358.tif 000003
【図３】
0004527358.tif 000004
【図４】
0004527358.tif 000005
【図５】
0004527358.tif 000006
【図６】
0004527358.tif 000007