(57)【特許請求の範囲】
【請求項１】
送信者装置にてメッセージを暗号化して送信し、受信者装置にて前記暗号化されたメッセージを復号する暗号化メッセージ送受信方法であって、
前記送信者装置が、該送信者装置を用いて前記メッセージを送信する送信者の公開鍵と秘密鍵とからなる鍵ペアを生成するステップと、
前記送信者装置が、前記送信者の秘密鍵と前記受信者装置を用いて前記メッセージを受信する受信者の識別子とを基に、一時的な共有鍵を計算するステップと、
前記送信者装置が、前記一時的な共有鍵を用いて前記メッセージを暗号化し、暗号文を計算するステップと、
前記送信者装置が、前記暗号文と前記送信者の公開鍵とを前記受信者装置に送信するステップと、
前記暗号文と前記送信者の公開鍵とを受信した前記受信者装置が、通信網を介して前記受信者装置に接続された鍵サーバに前記受信者の識別子を送信するステップと、
前記鍵サーバが、前記受信者の識別子に基づき前記受信者の固有鍵を計算するステップと、
前記鍵サーバが、前記受信者の固有鍵を前記受信者装置に送信するステップと、
前記受信者装置が、前記鍵サーバから受信した前記受信者の固有鍵と、前記送信者装置から受信した前記送信者の公開鍵とに基づき前記一時的な共有鍵を計算するステップと、
前記受信者装置が、前記一時的な共有鍵を用いて、前記送信者装置から受信した前記暗号文を復号してメッセージを計算するステップと、
前記受信者装置が、前記受信者の公開鍵と秘密鍵とからなる鍵ペアを生成するステップと、
前記受信者装置が、前記受信者の秘密鍵と前記送信者の公開鍵とから共有秘密鍵を計算するステップと、
前記受信者装置が、前記受信者の公開鍵を前記送信者装置に送信するステップと、
前記受信者の公開鍵を前記受信者装置から受信した前記送信者装置が、前記受信者の公開鍵と前記送信者の秘密鍵とから前記共有秘密鍵を計算するステップとを有する暗号化メッセージ送受信方法。
【請求項２】
請求項１に記載の暗号化メッセージ送受信方法において、
送信者装置が生成する鍵ペアは、秘密鍵として生成した乱数ｒと、公開された楕円曲線Ｅ上の点Ｐのｒ倍点である公開鍵ｒＰとのペアであることを特徴とし、
前記送信者装置が一時的な共有鍵を計算するステップは、予め定められた関数により受信者の識別子を前記Ｅ上に対応させた点Ｑ、鍵サーバが前記点Ｐを秘密パラメータｓ倍して公開する点ｓＰ、前記送信者の秘密鍵ｒ、および前記Ｅ上のペアリング演算ｅを用いｅ（Ｑ，ｓＰ）＾ｒを計算するステップであることを特徴とし、
前記受信者の固有鍵は、予め定められた関数により前記受信者の識別子を前記Ｅ上に対応させた点Ｑを、前記ｓ倍して得られる点ｓＱであることを特徴し、
前記受信者装置が一時的な共有鍵を計算するステップは、前記受信者の固有鍵ｓＱ、前記送信者の公開鍵ｒＰ、前記ペアリング演算ｅを用い、ｅ（ｓＱ，ｒＰ）を計算するステップであることを特徴とし、
前記受信者が生成する鍵ペアは、秘密鍵として生成した乱数ｑと、前記点Ｐのｑ倍点であるところの公開鍵ｑＰとのペアであることを特徴とし、
前記受信者装置が共有秘密鍵を計算するステップは、前記受信者の秘密鍵ｑと前記送信者の公開鍵ｒＰとからｑ・（ｒＰ）＝ｒｑＰを計算するステップであることを特徴とし、
前記送信者装置が共有秘密鍵を計算するステップは、前記受信者の公開鍵ｑＰと前記送信者の秘密鍵ｒとからｒ・（ｑＰ）＝ｒｑＰを計算するステップであることを特徴とする暗号化メッセージ送受信方法。
【請求項３】
請求項１または請求項２に記載の暗号化メッセージ送受信方法において、
前記送信者装置と前記受信者装置との間で、前記共有秘密鍵を用いて、継続するメッセージを暗号化して送受信するステップをさらに有することを特徴とする暗号化メッセージ送受信方法。
【請求項４】
請求項１乃至３のいずれか１項に記載の暗号化メッセージ送受信方法において、
前記受信者装置が、前記受信者の識別子を前記鍵サーバに送信するステップは、前記受信者の認証情報をあわせて送信し、
前記鍵サーバが、前記受信者の固有鍵を前記受信者装置に送信するステップは、前記認証情報に基づいて受信者の認証を行い、認証に成功した場合にのみ、前記受信者の固有鍵を送信することを特徴とする暗号化メッセージ送受信方法。
【請求項５】
メッセージを暗号化して受信者装置に送信する送信者装置であって、
ネットワークインターフェイスと、
当該送信者装置を用いて前記メッセージを送信する送信者の公開鍵と秘密鍵とからなる鍵ペアを生成する手段と、
前記送信者の秘密鍵と前記受信者装置を用いて前記メッセージを受信する受信者の識別子とに基づき、一時的な共有鍵を計算する手段と、
前記計算された一時的な共有鍵を用いて前記メッセージを暗号化し暗号文を得る手段と、
前記暗号文と前記送信者の公開鍵とを前記ネットワークインターフェイスにより前記受信者装置に送信する手段と、
前記受信者装置から前記受信者の公開鍵を前記ネットワークインターフェイスにより受信する手段と、
前記受信者の公開鍵と前記送信者の秘密鍵とから前記送信者と前記受信者との間の共有秘密鍵を計算する手段とを有する送信者装置。
【請求項６】
送信者装置から暗号化されて送信されたメッセージを受信する受信者装置であって、
ネットワークインターフェイスと、
前記送信者装置から暗号文と前記送信者装置を用いて前記メッセージを送信する送信者の公開鍵とを前記ネットワークインターフェイスにより受信する手段と、
当該受信者装置に通信網を介して接続された鍵サーバに、当該受信者装置を用いて前記メッセージを受信する受信者の識別子を前記ネットワークインターフェイスにより送信し、前記受信者の固有鍵を要求する手段と、
前記鍵サーバから前記固有鍵を前記ネットワークインターフェイスにより受信する手段と、
前記固有鍵と前記送信者の公開鍵とに基づき、一時的な共有鍵を計算する手段と、
前記計算された一時的な共有鍵と前記暗号文とから前記メッセージを復号する手段と、
前記受信者の公開鍵と秘密鍵とからなる鍵ペアを生成する手段と、
前記生成した受信者の秘密鍵と前記送信者の公開鍵とから前記送信者と前記受信者との間の共有秘密鍵を計算する手段と、
前記送信者装置に、前記生成した受信者の公開鍵を前記ネットワークインターフェイスにより送信する手段とを有する受信者装置。
【請求項７】
請求項５に記載の送信者装置と、請求項６に記載の受信者装置と、前記送信者装置と前記受信者装置とを接続する通信網とからなる暗号化メッセージ送受信システム。
【請求項８】
請求項５に記載の送信者装置としてコンピュータを機能させるためのプログラム。
【請求項９】
請求項６に記載の受信者装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子メールを暗号化して送受信する暗号化メッセージ送受信方法、通信装置、暗号化メッセージ送受信システム及びプログラムに関する。
【背景技術】
【０００２】
近年、電子メールにて送受信されるメッセージを暗号化する様々な方法が考えられている。
【０００３】
例えば、Ｓ／ＭＩＭＥ（Secure Multi-purpose Internet Mail Extension : RFC3850, 3851）では、事前設定として、電子メールの受信者（以下、受信者と称する）は秘密鍵と公開鍵との対を予め生成し、認証局は生成された公開鍵に対応する公開鍵証明書を発行、公開する。電子メールの送信者（以下、送信者と称する）は受信者の公開鍵証明書を取得し、取得した公開鍵証明書に含まれる受信者の公開鍵を用いてメッセージを暗号化した上で、受信者へ送信する。受信者は受信した暗号文を自身の秘密鍵を用いて復号する。
【０００４】
公開鍵証明書の準備といった受信者の事前設定無しに暗号メールを送信する手法として、Identity Based Encryption（以下、ＩＢＥと称する）が考えられている（例えば、非特許文献１参照。）。
【０００５】
ＩＢＥでは、送信者は、既知となっている受信者の識別子（例えば、電子メールアドレス等）から暗号化の鍵を生成するため、受信者側での事前の鍵生成や公開鍵証明書の送信者への通知が不要となっている。
【０００６】
図７は、ＩＢＥの処理を説明するためのシーケンス図である。
【０００７】
ＩＢＥでは、送信者、受信者の他に鍵サーバが存在する。鍵サーバは、秘密パラメータｓと公開パラメータＰ及びｓＰとを生成し、公開パラメータＰ及びｓＰを公開する。ここで、Ｐは楕円曲線Ｅ上の点である。また、Ｅは公開されているものとする。また、ｓＰは点Ｐのｓ倍の点を表すものとする。送信者は、乱数ｒを生成し、受信者の識別子ＩＤBと公開パラメータｓＰとから暗号化鍵Ｋ１＝ｅ（Ｑ，ｓＰ）＾ｒと公開鍵ｒＰとを生成し、その暗号化鍵Ｋ１を用いてメッセージを暗号化した上で公開鍵ｒＰとともに受信者へ送信する。ここで、Ｑは楕円曲線Ｅ上の点であり、予め定められた関数Ｆを用いて、Ｑ＝Ｆ（ＩＤB）と計算されるものとする。また、ｅ（・，・）は、楕円曲線Ｅ上のペアリング演算であり、ｅ（Ｑ，ｓＰ）＾ｒはｅ（Ｑ，ｓＰ）のｒ乗を表す。なお、ペアリング演算は、ｅ（Ｑ１＋Ｑ２，Ｐ）＝ｅ（Ｑ１，Ｐ）・ｅ（Ｑ２，Ｐ）、ｅ（Ｑ，Ｐ１＋Ｐ２）＝ｅ（Ｑ，Ｐ１）・ｅ（Ｑ，Ｐ２）を満たす。これから、ｅ（ａＱ，ｂＰ）＝ｅ（Ｑ，Ｐ）＾ａｂ＝ｅ（ｂＱ，ａＰ）が導かれる。
【０００８】
暗号文を受け取った受信者は、鍵サーバに受信者の固有鍵を要求し、鍵サーバは秘密パラメータｓと受信者の識別子ＩＤBとから受信者の固有鍵ｓＱ＝ｓ・Ｆ（ＩＤB）を計算して受信者へ送信する。
【０００９】
受信者は、鍵サーバから受け取った受信者の固有鍵ｓＱと送信者から受け取った公開鍵ｒＰとから暗号化鍵ｅ（ｓＱ，ｒＰ）＝ｅ（Ｑ，ｓＰ）＾ｒ＝Ｋ１を計算し、その暗号化鍵Ｋ１を用いて暗号文を復号する。
【００１０】
以上によりＩＢＥでは、受信者側での事前の鍵生成や公開鍵証明書の送信者への通知無しに暗号メールを送信することが可能となっている。
【非特許文献１】Dan Boneh and Matthew Franklin, "Identity-Based Encryption from the Weil Pairing", Extended abstract in proceedings of Crypto 2001, LNCS Volume 2139, Springer-Verlag, pp. 213-229, 2001.
【発明の開示】
【発明が解決しようとする課題】
【００１１】
非特許文献１に記載されたＩＢＥでは、メッセージの送受信により送信者と受信者との間で暗号化鍵を共有できる。このため、返信メッセージ等、最初のメッセージ以降に送受信者間でやり取りする継続するメッセージについても共有した暗号化鍵を用いて暗号化が可能である。しかしながら、共有暗号化鍵を計算するための受信者の固有鍵は鍵サーバが生成しているため、鍵サーバは受信者同様に送受信者間の共有暗号化鍵を計算できることになる。よって、鍵サーバにおける送受信者間の通信内容の傍受によりメッセージの復号が可能となり、鍵サーバの管理者による盗聴や情報漏洩の恐れがあるという問題点がある。
【００１２】
本発明の目的は、ＩＢＥ同様に受信者の事前設定が必要無く、且つ送受信者間の継続するメッセージについて鍵サーバによる暗号文の復号ができない、使いやすくより安全な暗号化メッセージ送受信方法、送信者装置、受信者装置、暗号化メッセージ送受信システム及びプログラムを提供することである。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明は、
送信者装置にてメッセージを暗号化して送信し、受信者装置にて前記暗号化されたメッセージを復号する暗号化メッセージ送受信方法であって、
前記送信者装置が、該送信者装置を用いて前記メッセージを送信する送信者の公開鍵と秘密鍵とからなる鍵ペアを生成するステップと、
前記送信者装置が、前記送信者の秘密鍵と前記受信者装置を用いて前記メッセージを受信する受信者の識別子とを基に、一時的な共有鍵を計算するステップと、
前記送信者装置が、前記一時的な共有鍵を用いて前記メッセージを暗号化し、暗号文を計算するステップと、
前記送信者装置が、前記暗号文と前記送信者の公開鍵とを前記受信者装置に送信するステップと、
前記暗号文と前記送信者の公開鍵とを受信した前記受信者装置が、前記送信者装置と前記受信者装置とに接続された鍵サーバに前記受信者の識別子を送信するステップと、
前記鍵サーバが、前記受信者の識別子に基づき前記受信者の固有鍵を計算するステップと、
前記鍵サーバが、前記受信者の固有鍵を前記受信者装置に送信するステップと、
前記受信者装置が、前記鍵サーバから受信した前記受信者の固有鍵と、前記送信者装置から受信した前記送信者の公開鍵とに基づき前記一時的な共有鍵を計算するステップと、
前記受信者装置が、前記一時的な共有鍵を用いて、前記送信者装置から受信した前記暗号文を復号してメッセージを計算するステップと、
前記受信者装置が、前記受信者の公開鍵と秘密鍵とからなる鍵ペアを生成するステップと、
前記受信者装置が、前記受信者の秘密鍵と前記送信者の公開鍵とから共有秘密鍵を計算するステップと、
前記受信者装置が、前記受信者の公開鍵を前記送信者装置に送信するステップと、
前記受信者の公開鍵を前記受信者装置から受信した前記送信者装置が、前記受信者の公開鍵と前記送信者の秘密鍵とから前記共有秘密鍵を計算するステップとを有する。
【００１４】
送信者装置は、受信者の識別子と送信者の秘密鍵とから送受信者間の一時的な共有鍵を計算し、これを用いて送信メッセージを暗号化し、送信者の公開鍵と共に受信者装置に送信する。鍵サーバが受信者装置を認証するなど受信者装置の正当性を保証できる場合、受信者の固有鍵が受信者装置に送信され、受信者装置が受信者の固有鍵と送信者の公開鍵とから一時的な共有鍵を計算し、メッセージを復号する。受信者装置は送信者の公開鍵と受信者の秘密鍵とから共有秘密鍵を計算し、受信者の公開鍵を送信者装置に送信する。送信者装置は、受信者の公開鍵と送信者の秘密鍵とから同一の共有秘密鍵を計算する。送信者装置と受信者装置とは継続して送受信するメッセージを、共有秘密鍵を用いて暗号化及び復号する。
【発明の効果】
【００１５】
本発明によれば、受信者の事前設定無しに暗号メールを送信できるため、送信者は受信者の環境を考慮することなく、またこれまでメールをやり取りしたことが無い受信者に対しても暗号メールを送信することができる。また、返信メッセージ等、送信者から受信者へ送信される最初のメッセージ以降に送受信者間でやり取りするメッセージについて、鍵サーバによる復号ができないため、情報漏洩等の心配が無く安心してメッセージの送受信が可能となる。
【発明を実施するための最良の形態】
【００１６】
以下に、本発明の実施の形態について図面を参照して説明する。
【００１７】
図１は、本発明の暗号化メッセージ送受信システムの実施の一形態を示す図である。
【００１８】
本形態は図１に示すように、送信者装置１と、受信者装置２と、鍵サーバ３とから構成されており、それらが互いに通信網４を介して接続されている。これにより、送信者装置１と、受信者装置２と、鍵サーバ３とは、互いに通信が可能となっている。
【００１９】
送信者装置１は、携帯電話や、ＰＤＡ（Personal Digital Assistants）や、パーソナルコンピュータ等、電子メールの送信者（例えば、送信者Ａ）が所持する装置である。本形態においては、送信者装置１は、受信者装置２にとって通信相手の通信装置である。
【００２０】
受信者装置２は、携帯電話や、ＰＤＡ（Personal Digital Assistants）や、パーソナルコンピュータ等、電子メールの受信者（例えば、受信者Ｂ）が所持する装置である。本形態においては、受信者装置２は、送信者装置１にとって通信相手の通信装置である。
【００２１】
鍵サーバ３は、鍵の生成、管理等を行う。
【００２２】
通信網４は、例えば、インターネットや企業内網等のネットワークである。
【００２３】
なお、図１には、送信者装置１の数と受信者装置２の数とがそれぞれ１つずつの形態を示しているが、それぞれが複数存在する形態であってもかまわない。
【００２４】
図２は、図１に示した送信者装置１の構成を示すブロック図である。
【００２５】
図１に示した送信者装置１には図２に示すように、ネットワークインターフェイス部１１と、ユーザインターフェイス部１２と、記憶部１３と、制御部１４とが設けられている。
【００２６】
ネットワークインターフェイス部１１は、受信者装置２や鍵サーバ３等の外部の装置との間の通信を行う。
【００２７】
ユーザインターフェイス部１２は、ユーザである送信者Ａとのインターフェイス機能を有し、入出力を行うためのディスプレイ、キーボード、マウス等のポインティングデバイス等である。
【００２８】
記憶部１３は、メール処理を行うメーラープログラム１３Ａと、送受信されるメッセージの暗号化・復号を行う暗号化・復号プログラム１３Ｂと、暗号化・復号に用いられる鍵を格納する鍵情報データベース１３Ｃとから構成されている。
【００２９】
制御部１４は、ネットワークインターフェイス部１１と、ユーザインターフェイス部１２と、記憶部１３とを制御し、送信者装置１に暗号化メールの送受信に必要な動作を行わせる。
【００３０】
なお、図２には、本発明に関連する構成要素のみを示した。
【００３１】
図３は、図１に示した受信者装置２の構成を示すブロック図である。
【００３２】
図１に示した受信者装置２には図３に示すように、ネットワークインターフェイス部２１と、ユーザインターフェイス部２２と、記憶部２３と、制御部２４とが設けられている。
【００３３】
ネットワークインターフェイス部２１は、送信者装置１や鍵サーバ３等の外部の装置との間の通信を行う。
【００３４】
ユーザインターフェイス部２２は、ユーザである受信者Ｂとのインターフェイス機能を有し、入出力を行うためのディスプレイ、キーボード、マウス等のポインティングデバイス等である。
【００３５】
記憶部２３は、メール処理を行うメーラープログラム２３Ａと、送受信されるメッセージの暗号化・復号を行う暗号化・復号プログラム２３Ｂと、暗号化・復号に用いられる鍵を格納する鍵情報データベース２３Ｃと、認証に必要な情報である認証情報２３Ｄとから構成されている。認証情報２３Ｄは、送信者Ａから送信されたメッセージの復号に必要な受信者Ｂの固有鍵を鍵サーバ３に発行してもらうため、受信者装置２が鍵サーバ３に対して行う認証に必要な情報である。
【００３６】
制御部２４は、ネットワークインターフェイス部２１と、ユーザインターフェイス部２２と、記憶部２３とを制御し、受信者装置２に暗号化メールの送受信に必要な動作を行わせる。
【００３７】
なお、図３には、本発明に関連する構成要素のみを示した。
【００３８】
図４は、図１に示した鍵サーバ３の構成を示すブロック図である。
【００３９】
図１に示した鍵サーバ３には図４に示すように、ネットワークインターフェイス部３１と、鍵生成部３２と、認証部３３と、記憶部３４と、制御部３５とが設けられている。
【００４０】
ネットワークインターフェイス部３１は、送信者装置１や受信者装置２等の外部の装置との間の通信を行う。
【００４１】
鍵生成部３２は、受信者Ｂの固有鍵を生成する。
【００４２】
認証部３３は、受信者Ｂに固有鍵を通知するために必要な受信者Ｂの認証を行う。
【００４３】
記憶部３４は、公開パラメータ３４Ａと、認証情報データベース３４Ｂと、秘密パラメータ３４Ｃとから構成されている。公開パラメータ３４Ａは、送信者Ａが一時的な共有鍵Ｋ１を計算するために必要な公開パラメータである。認証情報データベース３４Ｂは、認証部３３によって受信者Ｂを認証するために必要な情報を記憶する。秘密パラメータ３４Ｃは、鍵生成部３２が受信者Ｂの固有鍵を生成するために必要なパラメータである。
【００４４】
制御部３５は、ネットワークインターフェイス部３１と、鍵生成部３２と、認証部３３と、記憶部３４とを制御し、鍵サーバ３に公開パラメータ、秘密パラメータ及び受信者Ｂの固有鍵の生成、管理及び送信を行わせるものである。
【００４５】
以下に、図１に示した形態における暗号化メッセージ送受信方法について説明する。
【００４６】
図５は、図１に示した形態における暗号化メッセージ送受信方法を説明するためのシーケンス図である。ここでは、送信者装置１を所持する送信者Ａが、受信者装置２を所持する受信者Ｂへメッセージを暗号化して送信し、送信されたメッセージに対する返信を受信者装置２から送信者装置１へ暗号化して送信する場合を例に挙げて説明する。
【００４７】
まず鍵サーバ３は事前準備として、乱数ｓを生成して記憶部３４の秘密パラメータ３４Ｃに格納する。さらにｓＰを計算し、ｓＰとＰとを記憶部３４の公開パラメータ３４Ａに格納する。ここで、Ｐは楕円曲線Ｅ上の点であり、楕円曲線Ｅは公開されているものとする。また、ｓＰは、点Ｐのｓ倍の点を表すものとする。
【００４８】
送信者装置１は、ネットワークインターフェイス部１１を介して鍵サーバ３から公開パラメータ３４Ａに格納されたｓＰ及びＰを取得する（ステップ１００）。
【００４９】
ｓＰ及びＰを取得した送信者装置１は、記憶部１３からメーラープログラム１３Ａを起動し、ユーザインターフェイス部１２に受信者Ｂへ送信するメッセージの入力を促す表示を行う。そして、その表示に従い送信者Ａがユーザインターフェイス部１２を用いてメッセージＭ１を入力すると（ステップ１０１）、送信者装置１は予め定められた関数Ｆを用いて、Ｑ＝Ｆ（ＩＤB）を計算する（ステップ１０２）。ここで、Ｑは楕円曲線Ｅ上の点であり、また、ＩＤBは受信者Ｂの電子メールアドレス等の識別子である。
【００５０】
その後、送信者装置１の制御部１４は、秘密鍵となる整数ＫＳA＝ｒを生成し、生成した秘密鍵ＫＳA＝ｒと受信者Ｂの識別子ＩＤBとを鍵情報データベース１３Ｃに格納する（ステップ１０３）。
【００５１】
表１は、秘密鍵ｒと受信者Ｂの識別子ＩＤBとが格納された鍵情報データベース１３Ｃの例を表す表である。
【００５２】
【表１】
0004897645.tif 000002
【００５３】
さらに、送信者装置１の制御部１４は、秘密鍵ＫＳAを用いて、一時的な共有鍵Ｋ１＝ｅ（Ｑ，ｓＰ）＾ＫＳAを計算する（ステップ１０４）。ここで、ｅ（・，・）は、楕円曲線Ｅ上のペアリング演算である。また、ｅ（Ｑ，ｓＰ）＾ＫＳAは、ｅ（Ｑ，ｓＰ）のＫＳA乗を表す。
【００５４】
続いて、送信者装置１の制御部１４は、記憶部１３から暗号化・復号プログラム１３Ｂを読み出し、読み出した暗号化・復号プログラム１３Ｂと共有鍵Ｋ１とを用いて、メッセージＭ１を暗号化し、暗号文Ｃ１＝Ｅ（Ｋ１，Ｍ１）を得る（ステップ１０５）。ここで、Ｅ（・，・）は、第１引数を鍵とし、第２引数を平文とした共通鍵暗号による暗号化を表す関数である。
【００５５】
また、送信者装置１の制御部１４は、秘密鍵ＫＳAを用いて公開鍵ＫＰA＝ＫＳA・Ｐ＝ｒＰを計算する（ステップ１０６）。これにより、ステップ１０３にて生成された秘密鍵ＫＳAとステップ１０６にて計算された公開鍵ＫＰAとの鍵ペアが生成される。
【００５６】
公開鍵ＫＰAが計算されると、送信者装置１の制御部１４は、ネットワークインターフェイス部１１を用いて、暗号文Ｃ１と、送信者Ａの識別子ＩＤAと、公開鍵ＫＰAとを受信者装置２へ送信する（ステップ１０７）。ここで、送信者Ａの識別子ＩＤAは、例えば送信者Ａの電子メールアドレスである。なお、公開鍵ＫＰAを識別子ＩＤAの代わりとしてＩＤAの送信を省略しても良い。
【００５７】
ネットワークインターフェイス部２１にて、暗号文Ｃ１と、送信者Ａの識別子ＩＤAと、送信者Ａの公開鍵ＫＰAとを受信した受信者装置２の制御部２４は、ＩＤAとＫＰAとを対応付けて記憶部２３の鍵情報データベース２３Ｃに格納する（ステップ１０８）。
【００５８】
表２は、送信者Ａの公開鍵ＫＰAと送信者Ａの識別子ＩＤAとが格納された鍵情報データベース２３Ｃの例を表す表である。
【００５９】
【表２】
0004897645.tif 000003
【００６０】
受信者装置２の制御部２４は、記憶部２３に格納されている認証情報２３Ｄを読み出し、読み出された認証情報２３Ｄと受信者Ｂの識別子ＩＤBとをネットワークインターフェイス部２１により鍵サーバ３へ送信し、受信者Ｂの固有鍵を要求する（ステップ１０９）。ここで、認証情報を直接送信するのではなく、認証情報から生成される情報を送信するものであっても良い。
【００６１】
受信者装置２からの固有鍵の要求を受信した鍵サーバ３の認証部３３は、受信した認証情報と識別子ＩＤBと記憶部３４の認証情報データベース３４Ｂに格納された情報とを用いて、受信者Ｂの認証を行う（ステップ１１０）。この認証には、例えばＩＤとパスワードとを用いた手法や、これに限らず、いかなる認証方法を用いるものであっても良い。ここで、鍵サーバ３において受信者Ｂの認証に必要な設定がなされていない場合、受信者装置２が鍵サーバ３にアクセスして、認証に必要な設定を行うようにしてもよい。
【００６２】
受信者Ｂの認証に成功した場合、鍵サーバ３の鍵生成部３２は、Ｑ＝Ｆ（ＩＤB）を計算して（ステップ１１１）、計算されたＱを基に受信者Ｂの固有鍵ｓＱを計算する（ステップ１１２）。鍵サーバ３のネットワークインターフェイス部３１は、計算された受信者Ｂの固有鍵ｓＱを受信者装置２へ送信する（ステップ１１３）。
【００６３】
受信者Ｂの固有鍵ｓＱを受信した受信者装置２の制御部２４は、受信した受信者Ｂの固有鍵ｓＱと送信者Ａの公開鍵ＫＰAとから、一時的な共有鍵であるｅ（ｓＱ，ＫＰA）を計算する（ステップ１１４）。ここで、ペアリング演算の性質より、ｅ（ｓＱ，ＫＰA）＝ｅ（ｓＱ，ｒＰ）＝ｅ（Ｑ，ｓＰ）＾ｒ＝ｅ（Ｑ，ｓＰ）＾ＫＳA＝Ｋ１となる。受信者装置２の制御部２４は、記憶部２３から暗号化・復号プログラム２３Ｂを読み出し、読み出された暗号化・復号プログラム２３Ｂと計算された一時的な共有鍵Ｋ１とを用いて、暗号文Ｃ１からメッセージＤ（Ｋ１，Ｃ１）＝Ｍ１を計算（復号）する（ステップ１１５）。受信者装置２の制御部２４は、記憶部２３からメーラープログラム２３Ａを読み出し、読み出されたメーラープログラム２３Ａを用いて、計算（復号）したメッセージＭ１をユーザインターフェイス部２２に表示する（ステップ１１６）。ここで、Ｄ（・，・）は、第１引数を鍵とし、第２引数を暗号文とした共通鍵暗号による復号を表す関数である。
【００６４】
そして、受信者装置２の制御部２４は、送信者装置１におけるステップ１０３と同様に、受信者Ｂの秘密鍵となる整数ＫＳB＝ｑを生成する（ステップ１１７）。
【００６５】
さらに、受信者装置２の制御部２４は、生成した秘密鍵ＫＳBと送信者装置１から送信されてきた送信者Ａの公開鍵ＫＰAとから、送信者Ａと受信者Ｂとの間における共有秘密鍵Ｋ＝ＫＳB・ＫＰA＝ｑ・（ｒＰ）を計算する。受信者装置２の制御部２４は、計算されたＫとＫＳB＝ｑとを、鍵情報データベース２３Ｃの中の相手識別子としてＩＤAが含まれるエントリーに格納する（ステップ１１８）。つまり、相手識別子と共有秘密鍵とを対応付けて格納する。
【００６６】
表３は、Ｋとｑとが、相手識別子としてＩＤAが含まれるエントリーに格納された鍵情報データベース２３Ｃの例を表す表である。
【００６７】
【表３】
0004897645.tif 000004
【００６８】
また、受信者装置２の制御部２４は、受信者Ｂの秘密鍵ＫＳBを用いて受信者Ｂの公開鍵ＫＰB＝ｑＰを計算する（ステップ１１９）。これにより、ステップ１１７にて生成された秘密鍵ＫＳBとステップ１１９にて計算された公開鍵ＫＰBとの鍵ペアが生成される。計算された受信者Ｂの公開鍵ＫＰBと受信者Ｂの識別子ＩＤBとをネットワークインターフェイス部２１を用いて送信者装置１へ送信する（ステップ１２０）。ステップ１２０の送受信は、メーラープログラム２３Ａ，１３Ａにより自動的に行うが、この操作を受信者Ｂや送信者Ａが手動で行うものであっても良い。
【００６９】
ネットワークインターフェイス部１１により受信者Ｂの識別子ＩＤBと受信者Ｂの公開鍵ＫＰBとを受信した送信者装置１の制御部１４は、受信した受信者Ｂの識別子ＩＤBをキーとして鍵情報データベース１３Ｃのエントリーを検索し、該当するエントリーから自身が生成した送信者Ａの秘密鍵ＫＳA＝ｒを読み出す。送信者装置１の制御部１４は、読み出された送信者Ａの秘密鍵ＫＳAと、受信者装置２から受信した受信者Ｂの公開鍵ＫＰBとから、送信者Ａと受信者Ｂとの間における共有秘密鍵ＫＳA・ＫＰB＝ｒ・（ｑＰ）＝ｑ・（ｒＰ）＝Ｋを計算する。送信者装置１の制御部１４は、計算されたＫを、鍵情報データベース２３Ｃの中の相手識別子としてＩＤBが含まれるエントリーに格納する（ステップ１２１）。つまり、相手識別子と共有秘密鍵とを対応付けて格納する。また、このとき、該当するエントリーのステータス情報を「鍵共有済み」に変更する。ここで、ステップ１１８及びステップ１２１で計算されたＫの値は互いに同じ値となるため、送信者装置１と受信者装置２との間で共有秘密鍵Ｋを共有することができる。
【００７０】
また、楕円曲線上の点Ｐ、受信者Ｂの公開鍵ＫＰB＝ｑＰ、送信者Ａの公開鍵ＫＰA＝ｒＰなどの公開情報から、秘密鍵ｑやｒや共有秘密鍵Ｋを計算するのは困難であることが知られている。したがって、第三者が公開情報と暗号文とから平文を計算することは困難である。
【００７１】
送信者装置１は共有秘密鍵Ｋを計算した後、鍵共有の確認情報と送信者Ａの識別子ＩＤAとを受信者装置２へ送信する（ステップ１２２）。この確認情報は、例えば、正しく復号されたことを確認できるような情報をＫを用いて暗号化したものである。
【００７２】
確認情報と送信者Ａの識別子ＩＤAとを受信した受信者装置２の制御部２４は、確認情報を確認し（例えば、Ｋを用いて復号するなど）、鍵情報データベース２３Ｃの中の相手識別子がＩＤAであるエントリーのステータスを「鍵共有済み」に変更する。
【００７３】
以降、送信者装置１と受信者装置２との間では、共有秘密鍵Ｋを用いて暗号通信が可能である。例えば、引き続いて受信者装置２から送信者装置１へメッセージＭ１に対する返信メッセージＭ２を暗号化して送信する場合は以下の手順となる。
【００７４】
受信者装置２は、メーラープログラム２３Ａによってユーザインターフェイス部２２に受信者Ｂから送信者Ａへ返信メッセージを入力する表示が行われる。それにより、受信者Ｂがユーザインターフェイス部２２を用いて返信メッセージＭ２を入力すると（ステップ１２３）、受信者装置２の制御部２４は、共有秘密鍵Ｋと暗号化・復号プログラム２３Ｂとを用いて返信メッセージＭ２に対する暗号文Ｃ２＝Ｅ（Ｋ，Ｍ２）を計算する（ステップ１２４）。受信者装置２の制御部２４は、ネットワークインターフェイス部２１を用いて、計算された暗号文Ｃ２と、受信者Ｂの識別子ＩＤBとを送信者装置１へ送信する（ステップ１２５）。
【００７５】
受信者Ｂの識別子ＩＤBと暗号文Ｃ２とを受信した送信者装置１は、ＩＤBを検索キーとして鍵情報データベース１３Ｃからエントリーを検索する。検索されたエントリーの中の共有秘密鍵Ｋと、記憶部１３から読み出された暗号化・復号プログラム１３Ｂとを用いて、暗号文Ｃ２から返信メッセージＤ（Ｋ，Ｃ２）＝Ｍ２を計算（復号）する（ステップ１２６）。送信者装置１の制御部１４は、メーラープログラム１３Ａを用いてユーザインターフェイス部１２に、計算（復号）された返信メッセージＭ２を表示する（ステップ１２７）。
【００７６】
このように、共有秘密鍵Ｋを、送信者Ａと受信者Ｂとの間にて引き続いて行われる暗号通信に用いることができる（ステップ１２８）。
【００７７】
なお、上述した例では、ステップ１２３以降、受信者Ｂから送信者Ａへメッセージを返信する場合について説明したが、送信者Ａから受信者Ｂへ新たなメッセージを送信する場合も同様である。
【００７８】
以下に、図１に示した形態における暗号化メッセージ送受信方法の他の例について説明する。
【００７９】
図６は、図１に示した形態における暗号化メッセージ送受信方法の他の例を説明するためのシーケンス図である。この例では、図５を用いて説明した方法において、受信者装置２から送信者装置１へ公開鍵ＫＰBを送信するステップ１２０と、暗号文Ｃ２を送信するステップ１２５とを同時に行うものである。ステップ１１９まで同じ処理を行う。また、ステップ１１９以降の処理について、図５を用いて説明した処理と同一の処理については同一のステップ番号を付与し、その説明は省略する。
【００８０】
受信者Ｂが、受信者装置２に返信メッセージＭ２を入力すると（ステップ１２３）、受信者装置２の制御部２４が返信メッセージＭ２に対する暗号文Ｃ２の計算を実行する（ステップ１２４）。
【００８１】
すると、受信者装置２の制御部２４は、ネットワークインターフェイス部２１を用いて、受信者Ｂの識別子ＩＤBと、公開鍵ＫＰBと、暗号文Ｃ２とを送信者装置１へ送信する（ステップ１２９）。
【００８２】
その後、送信者装置１は、共有秘密鍵Ｋを計算し（ステップ１２１）、鍵共有の確認メッセージを受信者装置２へ送信する（ステップ１２２）。なお、ステップ１２２の処理は省略可能である。さらに、送信者装置１は、暗号文Ｃ２から返信メッセージＭ２を復号し（ステップ１２６）、メーラープログラム１３Ａを用いてユーザインターフェイス部１２に、計算（復号）された返信メッセージＭ２を表示する（ステップ１２７）。
【００８３】
なお、受信者装置２の記憶部２３に格納される暗号化・復号プログラム２３Ｂは、受信者装置２が鍵サーバ３から受信者Ｂの固有鍵ｓＱを取得する際に、必要に応じてダウンロードしても良い。この場合は、暗号化・復号プログラム２３Ｂの事前の取得・設定は不要である。
【００８４】
また、受信者装置２が、鍵サーバ３と通信する際は、必要に応じて認証、暗号化するものとする。ただし、鍵サーバ３が受信者Ｂの宛先（電子メールアドレス等）を知っている場合、以下の手法をもって認証に代えても良い。受信者装置２から受信者Ｂの識別子ＩＤBを受信した鍵サーバ３が、受信者Ｂの識別子ＩＤBから一意に定まる受信者Ｂの宛先を得て、この宛先へ受信者Ｂの固有鍵ｓＱを送信することで受信者Ｂの正当性を保証するものである。また、鍵サーバ３は、受信者Ｂの識別子ＩＤBと受信者Ｂの宛先との対応を記憶部３４の認証情報データベース３４Ｂ等にあらかじめ記憶しておいても良い。
【００８５】
また、上記の実施の形態においては、共有秘密鍵Ｋを、Ｋ＝ＫＳA・ＫＰB＝ＫＳB・ＫＰAによって計算したが、これを、ｆ（ＫＳA，ＫＰB）＝ｆ（ＫＳB，ＫＰA）を満たし、ＫＰAとＫＰBとからｆの値が計算困難であり、ｆの値とＫＰA，ＫＰBとから、ＫＳAやＫＳBが計算困難である関数ｆを用いて、Ｋ＝ｆ（ＫＳA，ＫＰB）＝ｆ（ＫＳB，ＫＰA）としても計算しても良い。
【００８６】
また、送信者装置１と受信者装置２との間での暗号化メッセージの送受信において、以下の確認を行っても良い。あるラウンド（例えば、ラウンドＮ）で送信者Ａから受信者Ｂへチャレンジｃ（例えば、乱数）を送信し、次のラウンド（例えば、ラウンドＮ＋１）で受信者Ｂから送信者Ａへｃを鍵Ｋで暗号化したＥ（Ｋ，ｃ）をレスポンスとして返信する。送信者Ａがこの関係を確認することで、送信者Ａと受信者Ｂとの間で鍵Ｋの共有が正しく完了していることが証明できる。
【００８７】
なお、上述した各ステップにおいて、互いに依存関係のないステップ間の実行順序は、前後入れ替えても良い。
【００８８】
また、上述した実施の形態では、送信者装置１と受信者装置２とを別個の通信装置として説明したが、それぞれが双方の機能を有する１つの通信装置であっても良いことは言うまでもない。
【００８９】
また、本発明の実施の形態として、電子メールの暗号化を例に挙げて説明したが、電子メールに限定するものではなく、例えば、ＩＭ（Instant Massaging）、チャット、プッシュトゥトーク等の文字、音声、画像による通信サービスに適用可能である。
【００９０】
また、以上説明した送信者装置１、受信者装置２、鍵サーバ３は、その機能を実現するためのプログラムを、コンピュータが読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであっても良い。コンピュータが読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータが読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの（伝送媒体、伝送波）、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間、プログラムを保持しているものを含む。ここでのコンピュータとは、送信者装置１、受信者装置２、鍵サーバ３である。
【００９１】
このように本発明においては、受信者の事前設定無しで暗号メールを送信することができるため、送信者は受信者の環境を考慮することなく、また、これまでに当該送信者との間で電子メールを送受信したことがない受信者に対しても暗号メールを送信することができる。また、返信メッセージ等、送信者から受信者へ送信される最初のメッセージ以降に送受信者間で送受信されるメッセージについて、鍵サーバによる復号ができないため、情報漏洩等の心配がなく、安心してメッセージの送受信が可能となる。
【図面の簡単な説明】
【００９２】
【図１】本発明の暗号化メッセージ送受信システムの実施の一形態を示す図である。
【図２】図１に示した送信者装置の構成を示すブロック図である。
【図３】図１に示した受信者装置の構成を示すブロック図である。
【図４】図１に示した鍵サーバの構成を示すブロック図である。
【図５】図１に示した形態における暗号化メッセージ送受信方法を説明するためのシーケンス図である。
【図６】図１に示した形態における暗号化メッセージ送受信方法の他の例を説明するためのシーケンス図である。
【図７】ＩＢＥの処理を説明するためのシーケンス図である。
【符号の説明】
【００９３】
１    送信者装置
２    受信者装置
３    鍵サーバ
４    通信網
１１，２１，３１    ネットワークインターフェイス部
１２，２２    ユーザインターフェイス部
１３，２３，３４    記憶部
１３Ａ，２３Ａ    メーラープログラム
１３Ｂ，２３Ｂ    暗号化・復号プログラム
１３Ｃ，２３Ｃ    鍵情報データベース
１４，２４，３５    制御部
２３Ｄ    認証情報
３２    鍵生成部
３３    認証部
３４Ａ    公開パラメータ
３４Ｂ    認証情報データベース
３４Ｃ    秘密パラメータ
【図１】
0004897645.tif 000005
【図２】
0004897645.tif 000006
【図３】
0004897645.tif 000007
【図４】
0004897645.tif 000008
【図５】
0004897645.tif 000009
【図６】
0004897645.tif 000010
【図７】
0004897645.tif 000011