(57)【特許請求の範囲】
【請求項１】
メッセージを暗号化して送信し、受信側でこれを復号する方法であって、
鍵サーバが、送信者の識別子、受信者の識別子、および初期鍵を関連付けて記憶するステップと、
送信者装置が、前記送信者の公開鍵と秘密鍵からなる鍵ペアを生成するステップと、
前記送信者装置が、前記初期鍵に基づき一時的な共有秘密鍵を計算するステップと、
前記送信者装置が、前記共有秘密鍵を用いてメッセージを暗号化し、暗号文を計算するステップと、
前記送信者装置が、前記暗号文、前記送信者の公開鍵を受信者装置に送信するステップと、
前記暗号文、前記送信者の公開鍵を受信した前記受信者装置が、送信者の識別子、受信者の識別子を前記鍵サーバに送信するステップと、
前記鍵サーバが、初期鍵を前記受信者装置に送信するステップと、
前記受信者装置が、前記鍵サーバから受信した初期鍵に基づき前記一時的な共有秘密鍵を計算するステップと、
前記受信者装置が、前記共有秘密鍵を用いて、前記送信者装置から受信した前記暗号文を復号してメッセージを計算するステップと
前記受信者装置が、受信者の公開鍵と秘密鍵からなる鍵ペアを生成するステップと
前記受信者装置が、前記受信者の秘密鍵と前記送信者の公開鍵から共有秘密鍵を計算するステップと、
前記受信者装置が、前記受信者の公開鍵を前記送信者装置へ送信するステップと、
前記受信者の公開鍵を前記受信者装置から受信した前記送信者装置が、前記受信者の公開鍵と前記送信者の秘密鍵から共有秘密鍵を計算するステップと、
を有するメッセージ暗号化送信受信方法。
【請求項２】
前記送信者装置が、前記初期鍵に基づき一時的な共有秘密鍵を計算するステップは、前記初期鍵と前記送信者の公開鍵から前記一時的な共有秘密鍵を計算することを含み、
前記受信者装置が、前記鍵サーバから受信した初期鍵に基づき前記一時的な共有秘密鍵を計算するステップは、前記鍵サーバから受信した初期鍵と、前記送信者装置から受信した送信者の公開鍵から前記一時的な共有秘密鍵を計算することを含む、
請求項１に記載のメッセージ暗号化送信受信方法。
【請求項３】
前記送信者装置が、前記初期鍵に基づき一時的な共有秘密鍵を計算するステップは、前記初期鍵と第２の初期鍵から前記一時的な共有秘密鍵を計算することを含み、
前記送信者装置が、前記暗号文、前記送信者の公開鍵を受信者装置に送信するステップは、前記第２の初期鍵も加えて送信することを含み、
前記受信者装置が、前記鍵サーバから受信した初期鍵に基づき前記一時的な共有秘密鍵を計算するステップは、前記鍵サーバから受信した初期鍵と、前記送信者装置から受信した前記第２の初期鍵から前記一時的な共有秘密鍵を計算することを含む、
請求項１に記載のメッセージ暗号化送信受信方法。
【請求項４】
前記送信者装置と前記受信者装置の間で、前記共有秘密鍵を用いて継続するメッセージを暗号化して送受信するステップをさらに有する、請求項１から３のいずれかに記載のメッセージ暗号化送信受信方法。
【請求項５】
前記受信者装置が、送信者の識別子、受信者の識別子を前記鍵サーバに送信するステップにおいて認証情報をあわせて送信し、
前記鍵サーバが、初期鍵を前記受信者装置に送信するステップにおいて、前記認証情報に基づいて認証を行い、認証が成功した場合にのみ、前記初期鍵を送信する、
請求項１から４のいずれかに記載のメッセージ暗号化送信受信方法。
【請求項６】
前記鍵サーバが、初期鍵を前記受信者装置に送信するステップは、前記鍵サーバが前記受信者の識別子から一意に定まる受信者の宛先を得るステップと、前記受信者の宛先へ前記初期鍵を送信するステップとを含む、請求項１から４のいずれかに記載のメッセージ暗号化送信受信方法。
【請求項７】
送受信者の宛先をそれぞれの識別子とする、請求項６に記載のメッセージ暗号化送信受信方法。
【請求項８】
メッセージを暗号化して受信者装置に送信する送信者装置であって、
ネットワークインターフェイスと、
該送信者装置の送信者の識別子と受信者の識別子を前記ネットワークインターフェイスにより通信網を介して鍵サーバに送信する手段と、
前記送信者と前記受信者間の初期鍵を得る手段と、
前記送信者の公開鍵と秘密鍵からなる鍵ペアを生成する手段と、
前記初期鍵に基づき一時的な共有秘密鍵を計算する手段と、
前記計算された一時的な共有秘密鍵を用いてメッセージを暗号化し、暗号文を得る手段と、
前記暗号文と前記送信者の公開鍵を前記ネットワークインターフェイスにより通信網を介して前記受信者装置に送信する手段と、
前記受信者装置から受信者の公開鍵を前記ネットワークインターフェイスにより通信網を介して受信する手段と、
前記受信者の公開鍵と前記送信者の秘密鍵から前記送信者と前記受信者間の共有秘密鍵を計算する手段と、
を有する送信者装置。
【請求項９】
送信者装置から暗号化されたメッセージを受信する受信者装置であって、
ネットワークインターフェイスと、
前記送信者装置から暗号文と送信者の公開鍵を前記ネットワークインターフェイスにより通信網を介して受信する手段と、
鍵サーバに送信者の識別子と受信者の識別子を前記ネットワークインターフェイスにより通信網を介して送信し、前記送信者と前記受信者間の初期鍵を要求する手段と、
前記鍵サーバから前記初期鍵を前記ネットワークインターフェイスにより通信網を介して受信する手段と、
前記初期鍵に基づき一時的な共有秘密鍵を計算する手段と、
前記計算された一時的な共有秘密鍵と前記暗号文から前記メッセージを復号する手段と、
前記受信者の公開鍵と秘密鍵からなる鍵ペアを生成する手段と、
前記生成された前記受信者の秘密鍵と前記送信者の公開鍵から前記送信者と前記受信者間の共有秘密鍵を計算する手段と、
前記送信者装置に、前記生成された前記受信者の公開鍵を前記ネットワークインターフェイスにより通信網を介して送信する手段と、
を有する受信者装置。
【請求項１０】
鍵サーバであって、
ネットワークインターフェイスと、
鍵情報データベースを含む記憶部と、
送信者装置から送信者の識別子と受信者の識別子を前記ネットワークインターフェイスにより通信網を介して受信する手段と、
前記送信者装置から受信した前記送信者の識別子と前記受信者の識別子とに関連付けて、前記送信者と前記受信者間の初期鍵を前記鍵情報データベースに格納する手段と、
前記受信者装置から前記送信者の識別子と前記受信者の識別子を前記ネットワークインターフェイスにより通信網を介して受信する手段と、
前記受信者装置から受信した前記送信者の識別子と前記受信者の識別子とに関連する、前記送信者と前記受信者間の初期鍵を前記鍵情報データベースから読み出す手段と、
前記読み出された初期鍵を前記受信者装置に前記ネットワークインターフェイスにより通信網を介して送信する手段と、
を有する鍵サーバ。
【請求項１１】
前記送信者装置から受信した前記送信者の識別子と前記受信者の識別子より前記送信者と前記受信者間の初期鍵を生成する手段と、
前記生成された初期鍵を前記送信者装置に前記ネットワークインターフェイスにより通信網を介して送信する手段と
をさらに有する、請求項１０に記載の鍵サーバ。
【請求項１２】
前記送信者装置から受信した前記送信者の識別子と前記受信者の識別子より前記送信者と前記受信者間の初期鍵を生成する手段は、鍵付一方向性関数である、請求項１１に記載の鍵サーバ。
【請求項１３】
請求項８に記載の送信者装置と、請求項９に記載の受信者装置と、請求項１０から１２のいずれかに記載の鍵サーバと、これらを接続する通信網とを有する暗号化メッセージ送受信システム。
【請求項１４】
請求項８に記載の送信者装置または請求項９に記載の受信者装置としてコンピュータを機能させるためのプログラム。
【請求項１５】
請求項１０から１２のいずれかに記載の鍵サーバとしてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は電子メールを暗号化して送信する方法および装置に関する。
【背景技術】
【０００２】
従来より電子メールの暗号化方法が提案されている。例えばＳ／ＭＩＭＥ（Ｓｅｃｕｒｅ  Ｍｕｌｔｉ−ｐｕｒｐｏｓｅ  Ｉｎｔｅｒｎｅｔ  Ｍａｉｌ  Ｅｘｔｅｎｓｉｏｎ：ＲＦＣ３８５０，３８５１）では、事前設定として、受信者はあらかじめ秘密鍵と公開鍵の対を生成し、認証局は生成した公開鍵に対応する公開鍵証明書を発行、公開する。送信者は受信者の公開鍵証明書を取得し、公開鍵証明書に含まれる受信者の公開鍵を用いてメッセージを暗号化した上で、受信者に送信する。受信者は受信した暗号文を自身の秘密鍵を用いて復号する。
【０００３】
公開鍵証明書の準備といった受信者の事前設定無しに暗号化メールを送信する手法として、非特許文献１に記述されたＩｄｅｎｔｉｔｙ  Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ（以下ＩＢＥと略す）がある。ＩＢＥでは、送信者は、既知となっている受信者の識別子（メールアドレスなど）から暗号化の鍵を生成するため、受信者側での鍵生成や公開鍵証明書の送信者への通知を事前に行うことなく暗号メールを送信することができる。すなわち、以下のような方法でメールの暗号化を行う。ＩＢＥでは送信者、受信者の他に鍵サーバが存在する。鍵サーバは秘密パラメータと公開パラメータを生成し、公開パラメータを公開する。送信者は、受信者の識別子と公開パラメータから鍵を生成し、その鍵を用いてメッセージを暗号化した上で、受信者に送信する。暗号文を受け取った受信者は鍵サーバに受信者の秘密鍵を要求し、鍵サーバは秘密パラメータと受信者の識別子から受信者の秘密鍵を計算して、受信者に送信する。受信者は、鍵サーバから受け取った受信者の秘密鍵と公開パラメータから鍵を生成し、その鍵を用いて暗号文を復号する。
【非特許文献１】D. Boneh and M. Franklin, "Identity based encryption from the Weil pairing," SIAM J. of Computing, Vol.32,No.3,pp.586-615, 2003.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
非特許文献１に記載されたＩＢＥでは、メッセージの送受信により送信者と受信者間で秘密鍵を共有できる。このため、返信メッセージ等、最初のメッセージ以降に送受信者間でやり取りする継続するメッセージについても共有した秘密鍵を用いて暗号化が可能である。しかしながら、共有秘密鍵を計算するための受信者の秘密鍵は鍵サーバが生成しているため、鍵サーバは受信者同様に送受信者間の共有秘密鍵を計算できることになり、よって送受信者間の通信内容の傍受によりメッセージの復号が可能となり、鍵サーバの管理者による盗聴や情報漏洩の恐れがあるという問題があった。
【０００５】
本発明の目的は、ＩＢＥ同様に受信者の事前設定が必要無く、かつ送受信者間の継続するメッセージについて鍵サーバによる暗号文の復号ができない、使いやすくより安全な暗号化メッセージ送受信方法、送信者装置、受信者装置、鍵サーバ、および暗号化メッセージ送受信システムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の暗号化メッセージ送受信方法は、
鍵サーバが、送信者の識別子、受信者の識別子、および初期鍵を関連付けて記憶するステップと、
送信者装置が、送信者の公開鍵と秘密鍵からなる鍵ペアを生成するステップと、
送信者装置が、前記初期鍵に基づき一時的な共有秘密鍵を計算するステップと、
送信者装置が、前記共有秘密鍵を用いてメッセージを暗号化し、暗号文を計算するステップと、
送信者装置が、前記暗号文、前記送信者の公開鍵を受信者装置に送信するステップと、
前記暗号文、前記送信者の公開鍵を受信した受信者装置が、送信者の識別子、受信者の識別子を鍵サーバに送信するステップと、
鍵サーバが、初期鍵を受信者装置に送信するステップと、
受信者装置が、鍵サーバから受信した初期鍵に基づき前記一時的な共有秘密鍵を計算するステップと、
受信者装置が、前記共有秘密鍵を用いて、送信者装置から受信した前記暗号文を復号してメッセージを計算するステップと
受信者装置が、受信者の公開鍵と秘密鍵からなる鍵ペアを生成するステップと
受信者装置が、前記受信者の秘密鍵と前記送信者の公開鍵から共有秘密鍵を計算するステップと、
受信者装置が、前記受信者の公開鍵を送信者装置へ送信するステップと、
前記受信者の公開鍵を受信者装置から受信した送信者装置が、受信者の公開鍵と送信者の秘密鍵から共有秘密鍵を計算するステップと、
を有する。
【０００７】
送信者装置は送受信者間の初期鍵と送信者の公開鍵から送受信者間の一時的な共有秘密鍵を計算し、これを用いて送信メッセージを暗号化し、送信者の公開鍵とともに受信者装置に送信する。鍵サーバが受信者装置を認証するなど受信者装置の正当性を保証できる場合、初期鍵が受信者装置に送信され、受信者装置が初期鍵と送信者の秘密鍵から一時的な共有秘密鍵を計算し、メッセージを復号する。受信者装置は送信者の公開鍵と受信者の秘密鍵から共有秘密鍵を計算し、受信者の公開鍵を送信者装置に送信する。送信者装置は、受信者の公開鍵と送信者の秘密鍵から同一の共有秘密鍵を計算する。送信者装置と受信者装置は継続して送受信するメッセージを、共有秘密鍵を用いて暗号化および復号する。
【発明の効果】
【０００８】
本発明によれば、受信者の事前設定無しに暗号メールを送信できるため、送信者は受信者の環境を考慮することなく、またこれまでメールをやり取りしたことが無い受信者に対しても暗号メールを送信することができる。また、返信メッセージ等、送信者から受信者へ送信される最初のメッセージ以降に送受信者間でやり取りするメッセージについて、鍵サーバによる復号ができないため、情報漏洩等の心配が無く安心してメッセージの送受信が可能となる。
【０００９】
また、本発明では、最初のメッセージを暗号化する鍵と、以降継続する複数のメッセージを暗号化する鍵が異なっている。特に継続するメッセージを暗号化する鍵は、鍵サーバは知りえないので、最初のメッセージよりも安全性がより高まっている。
【００１０】
また、ＩＢＥでは受信者装置が鍵サーバから通知される鍵は、相手を限定しない受信者の秘密鍵であり、その鍵が漏洩した場合、受信者とその相手全てとの通信が復号できてしまう。一方、本発明においては受信者装置が鍵サーバから受け取る鍵は特定の送受信者間に限定した鍵であり、その鍵がもし漏洩したとしても、影響は特定の相手との通信に限られる。すなわち、システム全体の安全性について、鍵サーバへの依存度がより少ないため、より安全である。また、鍵の管理を簡易化できるので鍵サーバの運用コストの削減にも有効である。
【発明を実施するための最良の形態】
【００１１】
次に、本発明の実施の形態について図面を参照して説明する。
【００１２】
図１を参照すると、本発明の一実施形態による電子メールシステムは、送信者装置１と受信者装置２と鍵サーバ３と通信網４で構成され、送信者装置１と受信者装置２と鍵サーバ３は通信網４を介して互いに通信可能となっている。通信網４はたとえばインターネットや企業内網などである。送信者装置１および受信者装置２は携帯電話、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）、パーソナルコンピュータなどである。
【００１３】
送信者装置１は、図２に示すように、ネットワークインターフェイス１１とユーザインターフェイス１２と記憶部１３と制御部１４で構成される。ネットワークインターフェイス１１は、受信者装置２や鍵サーバ３等の外部の機器との間の通信を行う。ユーザインターフェイス１２は、ユーザとの間の入出力を行うディスプレイ、キーボード、マウス等のポインティングデバイス等である。記憶部１３はメールの処理を行うメーラープログラム１３Ａと、メールの暗号化・復号を行う暗号化・復号プログラム１３Ｂと、暗号化・復号に用いる鍵を格納する鍵情報データベース１３Ｃとで構成される。制御部１４は、上述のネットワークインターフェイス１１、ユーザインターフェイス１２、および記憶部１３等、制御部１４以外の構成要素を制御し、送信者装置１に暗号化メールの送受信に必要な動作を行わせるものである。
【００１４】
受信者装置２は、図３に示すように、ネットワークインターフェイス２１と、ユーザインターフェイス２２と、記憶部２３と、制御部２４で構成される。受信者装置２の構成は図２の送信者装置１と概ね同様の構成であるが、記憶部２３が認証情報２３Ｄをさらに含む点が送信者装置１と異なる。認証情報２３Ｄは、送信者から受信したメッセージの復号に必要な鍵情報を鍵サーバ３から発行してもらうため、受信者装置２が鍵サーバ３に対して行う認証に必要な情報である。
【００１５】
鍵サーバ３は、図４に示すように、ネットワークインターフェイス３１と、鍵生成部３２と、認証部３３と、記憶部３４と、制御部３５で構成される。ネットワークインターフェイス３１は、送信者装置１や受信者装置２等の外部の機器との間の通信を行う。鍵生成部３２は、送受信者間の最初のメッセージの暗号化に用いる鍵Ｋ１を生成する。認証部３３は、受信者にメッセージの復号に必要な鍵Ｋ１を通知するために必要な、受信者の認証を行う。鍵記憶部３４は、鍵情報データベース３４Ａと認証情報データベース３４Ｂを含んでいる。鍵情報データベース３４Ａは、送受信者間での暗号化・復号に必要な鍵Ｋ１を、対となる送受信者ごとに記憶する。認証情報データベース３４Ｂは認証部３３により受信者装置２を認証するために必要な情報を記憶する。制御部３５は、上述のネットワークインターフェイス３１、鍵生成部３２、認証部３３、および記憶部３４等、制御部３５以外の構成要素を制御し、鍵サーバ３に初期鍵の生成、管理、および送信を行わせるものである。
【００１６】
以下、本実施形態の動作手順について、送信者装置１を持つ送信者Ａが受信者装置２を持つ受信者Ｂにメッセージを暗号化して送信し、その返信を受信者装置２から送信者装置１に暗号化して送信する場合を例にとり、図５と図６に従って説明する。
【００１７】
送信者装置１は記憶部１３からメーラープログラム１３Ａを起動し、ユーザインターフェイス１２を介して送信者Ａから受信者Ｂに送信するメッセージＭ１を入力する（ステップ１０１）。送信者装置１の制御部１４は送信者Ａの識別子ＩＤAと受信者Ｂの識別子ＩＤBをネットワークインターフェイス１１により通信網４を介して鍵サーバ３に送信し、Ａ−Ｂ間の初期鍵Ｋ１A,Bを要求する（ステップ１０２）。ここで、識別子ＩＤA，ＩＤBは例えば送信者Ａ，受信者Ｂのメールアドレスである。
【００１８】
ネットワークインターフェイス３１により識別子ＩＤA，ＩＤBを受信した鍵サーバ３は、鍵生成部３２で初期鍵Ｋ１A,Bを生成し（ステップ１０３）、受信したＩＤA，ＩＤBと共に鍵情報データベース３４Ａに格納する（ステップ１０４）。初期鍵Ｋ１A,Bの生成法として、たとえば乱数を用いる方法などがある。鍵情報データベース３４Ａは表１に示すように、送信者の識別子ＩＤA、受信者の識別子ＩＤB、および該送信者と受信者間の初期鍵Ｋ１A,Bを対応付けて格納する。
【００１９】
【表１】
0004781896.tif 000002
さらに、鍵サーバ３の鍵生成部３２は、生成した初期鍵Ｋ１A,Bをネットワークインターフェイス３１により送信者装置１に送信する（ステップ１０５）。
【００２０】
ネットワークインターフェイス１１により初期鍵Ｋ１A,Bを受信した送信者装置１の制御部１４は、秘密鍵となる整数ＫＳA＝ＸAを生成し、受信者Ｂの識別子ＩＤBと共に鍵情報データベース１３Ｃ（表２）に格納する（ステップ１０６）。
【００２１】
【表２】
0004781896.tif 000003
さらに、送信者装置１の制御部１４は、秘密鍵ＫＳAを用いて公開鍵ＫＰA＝ＸA・Ｇを計算する（ステップ１０７）。ここで、Ｇは楕円曲線Ｅ上の点で、ＥおよびＧは公開されているものとする。また、ＸA・Ｇは、点ＧのＸA倍の点を表すものとする。送信者装置１の制御部１４は、初期鍵Ｋ１A,Bと公開鍵ＫＰAから、送信者Ａと受信者Ｂ間の一時的な共有秘密鍵Ｋ２A,B＝ｆ（Ｋ１A,B、ＫＰA）を計算する（ステップ１０８）。ここで、ｆ（・）は公開された関数であり、例えば二つの引数の排他的論理和や一方向性ハッシュ関数などでもよい。送信者装置１の制御部１４は、一時的な共有秘密鍵Ｋ２A,B、および記憶部１３から読み出した暗号化・復号プログラム１３Ｂを用いてメッセージＭ１を暗号化し、暗号文Ｃ１＝Ｅ（Ｋ２A,B，Ｍ１）を得る（ステップ１０９）。ここで、Ｅ（・，・）は第１引数を鍵、第２引数を平文とした共通鍵暗号による暗号化を、またＤ（・，・）は第１引数を鍵、第２引数を暗号文とした共通鍵暗号による復号を、それぞれ表す関数とする。送信者装置１の制御部１４はネットワークインターフェイス１１を用いて、暗号文Ｃ１、送信者Ａの識別子ＩＤA、公開鍵ＫＰAを受信者装置２に送信する（ステップ１１０）。
【００２２】
ネットワークインターフェイス２１により、前記暗号文Ｃ１、送信者Ａの識別子ＩＤA、公開鍵ＫＰAを受信した受信者装置２の制御部２４は、ＩＤAとＫＰAを対応付けて記憶部２３の鍵情報データベース２３Ｃ（表３）に保存する（ステップ１１１）。
【００２３】
【表３】
0004781896.tif 000004
受信者装置２の制御部２４は、記憶部２３の認証情報２３Ｄを読み出し、この認証情報を送信者Ａの識別子ＩＤA、受信者Ｂの識別子ＩＤBと共に、ネットワークインターフェイス２１により鍵サーバ３に送信し、Ａ−Ｂ間の初期鍵Ｋ１A,Bを要求する（ステップ１１２）。なお、認証情報を直接送信せずに、認証情報から生成される情報を送信してもよい。
【００２４】
初期鍵の要求を受信した鍵サーバ３の認証部３３は、受信した認証情報、識別子ＩＤB、さらに記憶部３４の認証情報データベース３４Ｂに格納された情報を用いて、受信者装置２の認証を行う（ステップ１１３）。この認証には、例えばＩＤとパスワードを用いた手法、ワンタイムパスワードを用いた手法などがあるが、これに限られず、いかなる認証方法を用いてもよい。受信者装置２の認証に成功した場合、鍵サーバ３の認証部３３は、送信者Ａの識別子ＩＤA、受信者Ｂの識別子ＩＤBを元にＡ−Ｂ間の初期鍵Ｋ１A,Bを記憶部３４の鍵情報データベース３４Ａから読み出し（ステップ１１４）、ネットワークインターフェイス３１により受信者装置２に送信する（ステップ１１５）。
【００２５】
初期鍵Ｋ１A,Bを受信した受信者装置２の制御部２４は、送信者装置１におけるステップ１０８と同様に、Ａ−Ｂ間の初期鍵Ｋ１A,Bと公開鍵ＫＰAから、送信者Ａと受信者Ｂ間の一時的な共有秘密鍵Ｋ２A,B＝ｆ（Ｋ１A,B、ＫＰA）を計算する（ステップ１１６）。受信者装置２の制御部２４は、計算された共有秘密鍵Ｋ２A,B、暗号文Ｃ１、および記憶部２３から読み出された暗号化・復号プログラム２３Ｂを用いてメッセージＭ１＝Ｄ（Ｋ２A,B，Ｃ１）を計算（復号）して（ステップ１１７）、復号したメッセージＭ１を、記憶部２３から読み出されたメーラープログラム２３Ａやユーザインターフェイス２２を用いてディスプレイ（不図示）に表示する（ステップ１１８）。受信者装置２の制御部２４は、送信者装置１におけるステップ１０６と同様に、秘密鍵となる整数ＫＳB＝ＸBを生成し（ステップ１１９）、さらに生成した秘密鍵ＫＳBと送信者装置１から受信した公開鍵ＫＰAから、Ａ−Ｂ間の共有秘密鍵Ｋ３A,B＝ＫＳB・ＫＰA＝ＸB・（ＸA・Ｇ）を計算し（ステップ１２０）、それらＫＳBとＫ３A,Bを、鍵情報データベース２３Ｃの中の、相手識別子としてＩＤAが含まれるエントリーに格納する（表４）。
【００２６】
【表４】
0004781896.tif 000005
また、受信者装置２の制御部２４は、秘密鍵ＫＳBを用いて公開鍵ＫＰB＝ＸB・Ｇを計算し（ステップ１２１）、受信者Ｂの識別子ＩＤBと共に、ネットワークインターフェイス２１を用いて送信者装置１に送信する（ステップ１２２）。ステップ１２２の送受信はメーラープログラム２３Ａ、１３Ａにより自動的に行うが、この操作を受信者Ｂや送信者Ａが手動で行ってもよい。
【００２７】
ネットワークインターフェイス１１により受信者Ｂの識別子ＩＤBと公開鍵ＫＰBを受信した送信者装置１の制御部１４は、受信した受信者の識別子ＩＤBをキーにして鍵情報データベース１３Ｃのエントリーを検索し、該当するエントリーから自身が生成した秘密鍵ＫＳAを読み出して、このＫＳAと、受信者装置２から受信した公開鍵ＫＰBとから、Ａ−Ｂ間の共有秘密鍵Ｋ３A,B＝ＫＳA・ＫＰB＝ＸA・（ＸB・Ｇ）を計算し、鍵情報データベース１３Ｃの中の、相手識別子ＩＤBが含まれるエントリーに格納する（ステップ１２３）。また、このとき該当するエントリーのステータス情報を「鍵共有済み」に変更する。ここで、ステップ１２０およびステップ１２３で計算したＫ３A,Bの値は同じとなるため、送信者装置１と受信者装置２との間で秘密鍵Ｋ３A,Bを共有できる。また、公開情報である楕円曲線上の点Ｇ、公開鍵ＫＰB＝ＸB・Ｇ、公開鍵ＫＰA＝ＸA・Ｇなどから秘密鍵ＸAやＸBを計算するのは困難であることが知られており、したがって、第三者が秘密鍵Ｋ３A,Bを計算することは困難になっている。これらの原理については、楕円曲線上のＤｉｆｆｉｅ−Ｈｅｌｌｍａｎプロトコル（ＥＣＤＨ）としてよく知られているため、詳細な説明を省略する。送信者装置１は共有秘密鍵Ｋ３A,Bを計算後に、確認情報と、送信者Ａの識別子ＩＤAを受信者装置２に送信する（ステップ１２４）。この確認情報は例えば、正しく復号されたことを確認できるような情報をＫ３A,Bで暗号化したものである。
【００２８】
確認情報と、送信者Ａの識別子ＩＤAを受信した受信者装置２の制御部２４は、認証情報を確認（たとえばＫ３A,Bで復号するなど）し、鍵情報データベース２３Ｃの、相手識別子がＩＤAであるエントリーのステータス情報を「鍵共有済み」に変更する。
【００２９】
以降、送信者装置１と受信者装置２の間では、共有秘密鍵Ｋ３A,Bを用いて暗号通信が可能である。たとえば、引き続いて受信者装置２から送信者装置１に、メッセージＭ１に対する返信メッセージＭ２を暗号化して送信する場合は以下の手順となる。
【００３０】
受信者装置２は、記憶部２３のメーラープログラム２３Ａおよびユーザインターフェイス２２により、返信メッセージＭ２を入力する（ステップ１２５）。次に、受信者装置２の制御部２４は、共有秘密鍵Ｋ３A,Bと暗号化・復号プログラム２３Ｂを用いて、返信メッセージＭ２に対する暗号文Ｃ２＝Ｅ（Ｋ３A,B，Ｍ２）を計算し（ステップ１２６）、受信者Ｂの識別子ＩＤBと共に送信者装置１に送信する（ステップ１２７）。
【００３１】
ＩＤBと暗号文Ｃ２を受信した送信者装置１は、ＩＤBをキーにして鍵情報データベース１３Ｃからエントリーを検索し、そのエントリー中の共有秘密鍵Ｋ３A,B、暗号文Ｃ２、および記憶部１３から読み出された暗号化・復号プログラム１３Ｂを用いてメッセージＭ２＝Ｄ（Ｋ３A,B，Ｃ２）を計算（復号）して（ステップ１２８）、メーラープログラム１３Ａやユーザインターフェイス１２を用いて返信メッセージＭ２を送信者Ａに表示する（ステップ１２９）。
【００３２】
このように、共有秘密鍵Ｋ３A,Bを、Ａ−Ｂ間で引き続いて行われる暗号通信に用いることができる（ステップ１３０）。
【００３３】
なお、この例ではステップ１２５以降、受信者Ｂから送信者Ａにメッセージを返信する場合について説明したが、送信者Ａから受信者Ｂに新たなメッセージを送信する場合も同様である。
【００３４】
以下では、図７を参照して前記実施形態の変形例の手順について説明する。この例では、前記実施形態において受信者装置２から送信者装置１へ公開鍵ＫＰBを送信するステップ１２２と、暗号文Ｃ２を送信するステップ１２７を同時に行うものである。前記実施形態と同一の処理には同一の番号を付与しその説明を省略する。前記実施形態の変形例の手順は、ステップ１２１までは前記実施形態と同様である。その後受信者装置２において、返信メッセージＭ２の入力（ステップ１２５）、Ｍ２に対する暗号文Ｃ２の計算（ステップ１２６）を実行し、公開鍵ＫＰBと暗号文Ｃ２を送信者端末１に送信する（ステップ１３１）。送信者装置１は、共有秘密鍵Ｋ３A,Bを計算し（ステップ１２３）、鍵共有の確認メッセージを受信者装置２に送信する（ステップ１２４）。なお、ステップ１２４は省略可能である。さらに、送信者装置１は、暗号文Ｃ２から返信メッセージＭ２を復号し（ステップ１２８）、送信者Ａに表示する（ステップ１２９）。
【００３５】
なお、上記の実施形態では鍵サーバ３が乱数により初期鍵Ｋ１A,Bを生成するが、この代わりとして、送信者の識別子や受信者の識別子に対して、鍵つきハッシュ関数を適用するなど、鍵導出関数を適用して得られる値を用いてもよい。この場合、鍵サーバ３は送受信者の識別子から初期鍵Ｋ１A,Bを再計算できるので、初期鍵の鍵情報データベース３４Ａへの格納は省略してもよい。
【００３６】
また、上記の実施形態では鍵サーバ３が初期鍵Ｋ１A,Bを生成するが、この代わりとして、送信者装置１が初期鍵を生成して、鍵サーバ３に送信してもよい。
【００３７】
また、上記の実施形態はＥＣＤＨプロトコルにおける公開鍵を相互に交換することで送受信者間で鍵共有を行うものであるが、この代わりに、公開鍵証明書を相互に交換することで、送信者から受信者へ、またその逆方向の通信について、それぞれの証明書に含まれる公開鍵を用いてメッセージを暗号化することも可能である。
【００３８】
また、受信者装置２の記憶部２３に格納される暗号化・復号プログラム２３Ｂは、受信者装置２が鍵サーバ３から初期鍵Ｋ１A,Bを取得する際に、必要に応じてダウンロードしてもよい。この場合は事前の暗号化・復号プログラム２３Ｂの取得・設定は不要である。
【００３９】
また、送信者装置１や受信者装置２が、鍵サーバ３と通信する際は、必要に応じて認証、暗号化をするものとする。ただし、鍵サーバ３が受信者Ｂの宛先（メールアドレス等）を知っている場合、以下の手法をもって認証に代えてもよい。即ち、前記受信者装置２から送信者Ａの識別子ＩＤAと受信者Ｂの識別子ＩＤBを受信した鍵サーバ３が、受信者Ｂの識別子ＩＤBから一意に定まる受信者Ｂの宛先を得て、この宛先へ前記初期鍵Ｋ１A,Bを送信することで受信者Ｂの正当性を保証するものである。また、鍵サーバ３は受信者Ｂの識別子ＩＤBと受信者Ｂの宛先との対応を記憶部３４の認証情報データベース３４Ｂ等に予め記憶しておいてもよい。
【００４０】
また、上記の実施形態においては、送受信者の組ごとに、送受信者それぞれが秘密鍵を設定するものになっている。この代わりに、送信者、受信者はそれぞれ一組の鍵ペアを生成し、それを複数の相手に対して使うこともできる。この場合には、ステップ１０８のように送信者Ａと受信者Ｂ間の一時的な共有秘密鍵をＫ２A,B＝ｆ（Ｋ１A,B、ＫＰA）と計算すると、ＫＰAが使いまわされることになり安全性が低下する。このためには、送信者装置１で第２の初期鍵Ｋ０A,Bを一時的に生成し、Ｋ２A,B＝ｆ（Ｋ１A,B、Ｋ０A,B）と計算することで、安全性の低下を防ぐことができる。この場合には、ステップ１１０において、送信者装置１から受信者装置２にＫ０A,Bをあわせて送り、ステップ１１６において、受信者装置２は、送信者Ａと受信者Ｂ間の一時的な共有秘密鍵をＫ２A,B＝ｆ（Ｋ１A,B、Ｋ０A,B）のように計算する。
【００４１】
また、送信者装置１、受信者装置２間での暗号化メッセージのやりとりにおいて下記の確認を行ってもよい。すなわち、あるラウンド（例えばラウンドＮ）でＡからＢにチャレンジｃ（例えば乱数）を送り、次のラウンド（ラウンドＮ＋１）で、ＢからＡに、ｃを鍵Ｋで暗号化したＥ（Ｋ，ｃ）または復号したＤ（Ｋ，ｃ）をレスポンスとして返し、Ａがこの関係を確認することで、Ａ−Ｂ間で鍵Ｋの共有が正しく完了していることが証明できる。
【００４２】
なお、上述の各ステップにおいて依存関係のないステップ間の実行順序は前後入れ替えてもよい。
【００４３】
なお、本発明の実施の形態として電子メールの暗号化を例にとって説明したが、応用としては電子メールに限定するものではなく、たとえばＩＭ（Ｉｎｓｔａｎｔ  ｍｅｓｓａｇｉｎｇ）、チャット、プッシュトゥトーク等の、文字、音声、画像による通信サービスに適用可能である。
【００４４】
なお、以上説明した送信者装置、受信者装置、鍵サーバは、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間プログラムを保持しているものを含む。
【図面の簡単な説明】
【００４５】
【図１】本発明の一実施形態による暗号メールシステムの全体構成図である。
【図２】図１中の送信者装置のブロック図である。
【図３】図１中の受信者装置のブロック図である。
【図４】図１中の鍵サーバのブロック図である。
【図５】図１の実施形態の暗号メールシステムの動作手順を示すシーケンス図（その１）である。
【図６】図１の実施形態の暗号メールシステムの動作手順を示すシーケンス図（その２）である。
【図７】図１の実施形態の変形例の暗号メールシステムの動作手順を示すシーケンス図である。
【符号の説明】
【００４６】
１    送信者装置
２    受信者装置
３    鍵サーバ
４    通信網
１１，２１    ネットワークインターフェイス
１２，２２    ユーザインターフェイス
１３，２３    記憶部
１３Ａ，２３Ａ    メーラープログラム
１３Ｂ，２３Ｂ    暗号化・復号プログラム
１３Ｃ，２３Ｃ    鍵情報データベース
２３Ｄ    認証情報
１４，２４    制御部
１０１〜１３１    ステップ
【図１】
0004781896.tif 000006
【図２】
0004781896.tif 000007
【図３】
0004781896.tif 000008
【図４】
0004781896.tif 000009
【図５】
0004781896.tif 000010
【図６】
0004781896.tif 000011
【図７】
0004781896.tif 000012