説明

暗号化メッセージ送受信方法、送信者装置、受信者装置、暗号化メッセージ送受信システム及びプログラム

【課題】受信者の事前設定が必要なく、且つ送受信者間の継続するメッセージについて鍵サーバによる暗号文の復号ができないようにする。
【解決手段】送信者装置1は、受信者の識別子と送信者の秘密鍵から一時的な共有鍵を計算し、これを用いて送信メッセージを暗号化し、送信者の公開鍵と共に受信者装置2に送信する。鍵サーバ3が受信者装置2の認証に成功した場合、受信者の固有鍵が受信者装置2に送信され、受信者装置2が受信者の固有鍵と送信者の公開鍵とから一時的な共有鍵を計算し、メッセージを復号する。受信者装置2は、送信者の公開鍵と受信者の秘密鍵とから共有秘密鍵を計算し、受信者の公開鍵を送信者装置1に送信する。送信者装置1は、受信者の公開鍵と送信者の秘密鍵とから同一の共有秘密鍵を計算する。送信者装置1と受信者装置2とは継続して送受信するメッセージを、共有秘密鍵を用いて暗号化及び復号する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子メールを暗号化して送受信する暗号化メッセージ送受信方法、通信装置、暗号化メッセージ送受信システム及びプログラムに関する。
【背景技術】
【0002】
近年、電子メールにて送受信されるメッセージを暗号化する様々な方法が考えられている。
【0003】
例えば、S/MIME(Secure Multi-purpose Internet Mail Extension : RFC3850, 3851)では、事前設定として、電子メールの受信者(以下、受信者と称する)は秘密鍵と公開鍵との対を予め生成し、認証局は生成された公開鍵に対応する公開鍵証明書を発行、公開する。電子メールの送信者(以下、送信者と称する)は受信者の公開鍵証明書を取得し、取得した公開鍵証明書に含まれる受信者の公開鍵を用いてメッセージを暗号化した上で、受信者へ送信する。受信者は受信した暗号文を自身の秘密鍵を用いて復号する。
【0004】
公開鍵証明書の準備といった受信者の事前設定無しに暗号メールを送信する手法として、Identity Based Encryption(以下、IBEと称する)が考えられている(例えば、非特許文献1参照。)。
【0005】
IBEでは、送信者は、既知となっている受信者の識別子(例えば、電子メールアドレス等)から暗号化の鍵を生成するため、受信者側での事前の鍵生成や公開鍵証明書の送信者への通知が不要となっている。
【0006】
図7は、IBEの処理を説明するためのシーケンス図である。
【0007】
IBEでは、送信者、受信者の他に鍵サーバが存在する。鍵サーバは、秘密パラメータsと公開パラメータP及びsPとを生成し、公開パラメータP及びsPを公開する。ここで、Pは楕円曲線E上の点である。また、Eは公開されているものとする。また、sPは点Pのs倍の点を表すものとする。送信者は、乱数rを生成し、受信者の識別子IDBと公開パラメータsPとから暗号化鍵K1=e(Q,sP)^rと公開鍵rPとを生成し、その暗号化鍵K1を用いてメッセージを暗号化した上で公開鍵rPとともに受信者へ送信する。ここで、Qは楕円曲線E上の点であり、予め定められた関数Fを用いて、Q=F(IDB)と計算されるものとする。また、e(・,・)は、楕円曲線E上のペアリング演算であり、e(Q,sP)^rはe(Q,sP)のr乗を表す。なお、ペアリング演算は、e(Q1+Q2,P)=e(Q1,P)・e(Q2,P)、e(Q,P1+P2)=e(Q,P1)・e(Q,P2)を満たす。これから、e(aQ,bP)=e(Q,P)^ab=e(bQ,aP)が導かれる。
【0008】
暗号文を受け取った受信者は、鍵サーバに受信者の固有鍵を要求し、鍵サーバは秘密パラメータsと受信者の識別子IDBとから受信者の固有鍵sQ=s・F(IDB)を計算して受信者へ送信する。
【0009】
受信者は、鍵サーバから受け取った受信者の固有鍵sQと送信者から受け取った公開鍵rPとから暗号化鍵e(sQ,rP)=e(Q,sP)^r=K1を計算し、その暗号化鍵K1を用いて暗号文を復号する。
【0010】
以上によりIBEでは、受信者側での事前の鍵生成や公開鍵証明書の送信者への通知無しに暗号メールを送信することが可能となっている。
【非特許文献1】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.
【発明の開示】
【発明が解決しようとする課題】
【0011】
非特許文献1に記載されたIBEでは、メッセージの送受信により送信者と受信者との間で暗号化鍵を共有できる。このため、返信メッセージ等、最初のメッセージ以降に送受信者間でやり取りする継続するメッセージについても共有した暗号化鍵を用いて暗号化が可能である。しかしながら、共有暗号化鍵を計算するための受信者の固有鍵は鍵サーバが生成しているため、鍵サーバは受信者同様に送受信者間の共有暗号化鍵を計算できることになる。よって、鍵サーバにおける送受信者間の通信内容の傍受によりメッセージの復号が可能となり、鍵サーバの管理者による盗聴や情報漏洩の恐れがあるという問題点がある。
【0012】
本発明の目的は、IBE同様に受信者の事前設定が必要無く、且つ送受信者間の継続するメッセージについて鍵サーバによる暗号文の復号ができない、使いやすくより安全な暗号化メッセージ送受信方法、送信者装置、受信者装置、暗号化メッセージ送受信システム及びプログラムを提供することである。
【課題を解決するための手段】
【0013】
上記目的を達成するために本発明は、
送信者装置にてメッセージを暗号化して送信し、受信者装置にて前記暗号化されたメッセージを復号する暗号化メッセージ送受信方法であって、
前記送信者装置が、該送信者装置を用いて前記メッセージを送信する送信者の公開鍵と秘密鍵とからなる鍵ペアを生成するステップと、
前記送信者装置が、前記送信者の秘密鍵と前記受信者装置を用いて前記メッセージを受信する受信者の識別子とを基に、一時的な共有鍵を計算するステップと、
前記送信者装置が、前記一時的な共有鍵を用いて前記メッセージを暗号化し、暗号文を計算するステップと、
前記送信者装置が、前記暗号文と前記送信者の公開鍵とを前記受信者装置に送信するステップと、
前記暗号文と前記送信者の公開鍵とを受信した前記受信者装置が、前記送信者装置と前記受信者装置とに接続された鍵サーバに前記受信者の識別子を送信するステップと、
前記鍵サーバが、前記受信者の識別子に基づき前記受信者の固有鍵を計算するステップと、
前記鍵サーバが、前記受信者の固有鍵を前記受信者装置に送信するステップと、
前記受信者装置が、前記鍵サーバから受信した前記受信者の固有鍵と、前記送信者装置から受信した前記送信者の公開鍵とに基づき前記一時的な共有鍵を計算するステップと、
前記受信者装置が、前記一時的な共有鍵を用いて、前記送信者装置から受信した前記暗号文を復号してメッセージを計算するステップと、
前記受信者装置が、前記受信者の公開鍵と秘密鍵とからなる鍵ペアを生成するステップと、
前記受信者装置が、前記受信者の秘密鍵と前記送信者の公開鍵とから共有秘密鍵を計算するステップと、
前記受信者装置が、前記受信者の公開鍵を前記送信者装置に送信するステップと、
前記受信者の公開鍵を前記受信者装置から受信した前記送信者装置が、前記受信者の公開鍵と前記送信者の秘密鍵とから前記共有秘密鍵を計算するステップとを有する。
【0014】
送信者装置は、受信者の識別子と送信者の秘密鍵とから送受信者間の一時的な共有鍵を計算し、これを用いて送信メッセージを暗号化し、送信者の公開鍵と共に受信者装置に送信する。鍵サーバが受信者装置を認証するなど受信者装置の正当性を保証できる場合、受信者の固有鍵が受信者装置に送信され、受信者装置が受信者の固有鍵と送信者の公開鍵とから一時的な共有鍵を計算し、メッセージを復号する。受信者装置は送信者の公開鍵と受信者の秘密鍵とから共有秘密鍵を計算し、受信者の公開鍵を送信者装置に送信する。送信者装置は、受信者の公開鍵と送信者の秘密鍵とから同一の共有秘密鍵を計算する。送信者装置と受信者装置とは継続して送受信するメッセージを、共有秘密鍵を用いて暗号化及び復号する。
【発明の効果】
【0015】
本発明によれば、受信者の事前設定無しに暗号メールを送信できるため、送信者は受信者の環境を考慮することなく、またこれまでメールをやり取りしたことが無い受信者に対しても暗号メールを送信することができる。また、返信メッセージ等、送信者から受信者へ送信される最初のメッセージ以降に送受信者間でやり取りするメッセージについて、鍵サーバによる復号ができないため、情報漏洩等の心配が無く安心してメッセージの送受信が可能となる。
【発明を実施するための最良の形態】
【0016】
以下に、本発明の実施の形態について図面を参照して説明する。
【0017】
図1は、本発明の暗号化メッセージ送受信システムの実施の一形態を示す図である。
【0018】
本形態は図1に示すように、送信者装置1と、受信者装置2と、鍵サーバ3とから構成されており、それらが互いに通信網4を介して接続されている。これにより、送信者装置1と、受信者装置2と、鍵サーバ3とは、互いに通信が可能となっている。
【0019】
送信者装置1は、携帯電話や、PDA(Personal Digital Assistants)や、パーソナルコンピュータ等、電子メールの送信者(例えば、送信者A)が所持する装置である。本形態においては、送信者装置1は、受信者装置2にとって通信相手の通信装置である。
【0020】
受信者装置2は、携帯電話や、PDA(Personal Digital Assistants)や、パーソナルコンピュータ等、電子メールの受信者(例えば、受信者B)が所持する装置である。本形態においては、受信者装置2は、送信者装置1にとって通信相手の通信装置である。
【0021】
鍵サーバ3は、鍵の生成、管理等を行う。
【0022】
通信網4は、例えば、インターネットや企業内網等のネットワークである。
【0023】
なお、図1には、送信者装置1の数と受信者装置2の数とがそれぞれ1つずつの形態を示しているが、それぞれが複数存在する形態であってもかまわない。
【0024】
図2は、図1に示した送信者装置1の構成を示すブロック図である。
【0025】
図1に示した送信者装置1には図2に示すように、ネットワークインターフェイス部11と、ユーザインターフェイス部12と、記憶部13と、制御部14とが設けられている。
【0026】
ネットワークインターフェイス部11は、受信者装置2や鍵サーバ3等の外部の装置との間の通信を行う。
【0027】
ユーザインターフェイス部12は、ユーザである送信者Aとのインターフェイス機能を有し、入出力を行うためのディスプレイ、キーボード、マウス等のポインティングデバイス等である。
【0028】
記憶部13は、メール処理を行うメーラープログラム13Aと、送受信されるメッセージの暗号化・復号を行う暗号化・復号プログラム13Bと、暗号化・復号に用いられる鍵を格納する鍵情報データベース13Cとから構成されている。
【0029】
制御部14は、ネットワークインターフェイス部11と、ユーザインターフェイス部12と、記憶部13とを制御し、送信者装置1に暗号化メールの送受信に必要な動作を行わせる。
【0030】
なお、図2には、本発明に関連する構成要素のみを示した。
【0031】
図3は、図1に示した受信者装置2の構成を示すブロック図である。
【0032】
図1に示した受信者装置2には図3に示すように、ネットワークインターフェイス部21と、ユーザインターフェイス部22と、記憶部23と、制御部24とが設けられている。
【0033】
ネットワークインターフェイス部21は、送信者装置1や鍵サーバ3等の外部の装置との間の通信を行う。
【0034】
ユーザインターフェイス部22は、ユーザである受信者Bとのインターフェイス機能を有し、入出力を行うためのディスプレイ、キーボード、マウス等のポインティングデバイス等である。
【0035】
記憶部23は、メール処理を行うメーラープログラム23Aと、送受信されるメッセージの暗号化・復号を行う暗号化・復号プログラム23Bと、暗号化・復号に用いられる鍵を格納する鍵情報データベース23Cと、認証に必要な情報である認証情報23Dとから構成されている。認証情報23Dは、送信者Aから送信されたメッセージの復号に必要な受信者Bの固有鍵を鍵サーバ3に発行してもらうため、受信者装置2が鍵サーバ3に対して行う認証に必要な情報である。
【0036】
制御部24は、ネットワークインターフェイス部21と、ユーザインターフェイス部22と、記憶部23とを制御し、受信者装置2に暗号化メールの送受信に必要な動作を行わせる。
【0037】
なお、図3には、本発明に関連する構成要素のみを示した。
【0038】
図4は、図1に示した鍵サーバ3の構成を示すブロック図である。
【0039】
図1に示した鍵サーバ3には図4に示すように、ネットワークインターフェイス部31と、鍵生成部32と、認証部33と、記憶部34と、制御部35とが設けられている。
【0040】
ネットワークインターフェイス部31は、送信者装置1や受信者装置2等の外部の装置との間の通信を行う。
【0041】
鍵生成部32は、受信者Bの固有鍵を生成する。
【0042】
認証部33は、受信者Bに固有鍵を通知するために必要な受信者Bの認証を行う。
【0043】
記憶部34は、公開パラメータ34Aと、認証情報データベース34Bと、秘密パラメータ34Cとから構成されている。公開パラメータ34Aは、送信者Aが一時的な共有鍵K1を計算するために必要な公開パラメータである。認証情報データベース34Bは、認証部33によって受信者Bを認証するために必要な情報を記憶する。秘密パラメータ34Cは、鍵生成部32が受信者Bの固有鍵を生成するために必要なパラメータである。
【0044】
制御部35は、ネットワークインターフェイス部31と、鍵生成部32と、認証部33と、記憶部34とを制御し、鍵サーバ3に公開パラメータ、秘密パラメータ及び受信者Bの固有鍵の生成、管理及び送信を行わせるものである。
【0045】
以下に、図1に示した形態における暗号化メッセージ送受信方法について説明する。
【0046】
図5は、図1に示した形態における暗号化メッセージ送受信方法を説明するためのシーケンス図である。ここでは、送信者装置1を所持する送信者Aが、受信者装置2を所持する受信者Bへメッセージを暗号化して送信し、送信されたメッセージに対する返信を受信者装置2から送信者装置1へ暗号化して送信する場合を例に挙げて説明する。
【0047】
まず鍵サーバ3は事前準備として、乱数sを生成して記憶部34の秘密パラメータ34Cに格納する。さらにsPを計算し、sPとPとを記憶部34の公開パラメータ34Aに格納する。ここで、Pは楕円曲線E上の点であり、楕円曲線Eは公開されているものとする。また、sPは、点Pのs倍の点を表すものとする。
【0048】
送信者装置1は、ネットワークインターフェイス部11を介して鍵サーバ3から公開パラメータ34Aに格納されたsP及びPを取得する(ステップ100)。
【0049】
sP及びPを取得した送信者装置1は、記憶部13からメーラープログラム13Aを起動し、ユーザインターフェイス部12に受信者Bへ送信するメッセージの入力を促す表示を行う。そして、その表示に従い送信者Aがユーザインターフェイス部12を用いてメッセージM1を入力すると(ステップ101)、送信者装置1は予め定められた関数Fを用いて、Q=F(IDB)を計算する(ステップ102)。ここで、Qは楕円曲線E上の点であり、また、IDBは受信者Bの電子メールアドレス等の識別子である。
【0050】
その後、送信者装置1の制御部14は、秘密鍵となる整数KSA=rを生成し、生成した秘密鍵KSA=rと受信者Bの識別子IDBとを鍵情報データベース13Cに格納する(ステップ103)。
【0051】
表1は、秘密鍵rと受信者Bの識別子IDBとが格納された鍵情報データベース13Cの例を表す表である。
【0052】
【表1】

【0053】
さらに、送信者装置1の制御部14は、秘密鍵KSAを用いて、一時的な共有鍵K1=e(Q,sP)^KSAを計算する(ステップ104)。ここで、e(・,・)は、楕円曲線E上のペアリング演算である。また、e(Q,sP)^KSAは、e(Q,sP)のKSA乗を表す。
【0054】
続いて、送信者装置1の制御部14は、記憶部13から暗号化・復号プログラム13Bを読み出し、読み出した暗号化・復号プログラム13Bと共有鍵K1とを用いて、メッセージM1を暗号化し、暗号文C1=E(K1,M1)を得る(ステップ105)。ここで、E(・,・)は、第1引数を鍵とし、第2引数を平文とした共通鍵暗号による暗号化を表す関数である。
【0055】
また、送信者装置1の制御部14は、秘密鍵KSAを用いて公開鍵KPA=KSA・P=rPを計算する(ステップ106)。これにより、ステップ103にて生成された秘密鍵KSAとステップ106にて計算された公開鍵KPAとの鍵ペアが生成される。
【0056】
公開鍵KPAが計算されると、送信者装置1の制御部14は、ネットワークインターフェイス部11を用いて、暗号文C1と、送信者Aの識別子IDAと、公開鍵KPAとを受信者装置2へ送信する(ステップ107)。ここで、送信者Aの識別子IDAは、例えば送信者Aの電子メールアドレスである。なお、公開鍵KPAを識別子IDAの代わりとしてIDAの送信を省略しても良い。
【0057】
ネットワークインターフェイス部21にて、暗号文C1と、送信者Aの識別子IDAと、送信者Aの公開鍵KPAとを受信した受信者装置2の制御部24は、IDAとKPAとを対応付けて記憶部23の鍵情報データベース23Cに格納する(ステップ108)。
【0058】
表2は、送信者Aの公開鍵KPAと送信者Aの識別子IDAとが格納された鍵情報データベース23Cの例を表す表である。
【0059】
【表2】

【0060】
受信者装置2の制御部24は、記憶部23に格納されている認証情報23Dを読み出し、読み出された認証情報23Dと受信者Bの識別子IDBとをネットワークインターフェイス部21により鍵サーバ3へ送信し、受信者Bの固有鍵を要求する(ステップ109)。ここで、認証情報を直接送信するのではなく、認証情報から生成される情報を送信するものであっても良い。
【0061】
受信者装置2からの固有鍵の要求を受信した鍵サーバ3の認証部33は、受信した認証情報と識別子IDBと記憶部34の認証情報データベース34Bに格納された情報とを用いて、受信者Bの認証を行う(ステップ110)。この認証には、例えばIDとパスワードとを用いた手法や、これに限らず、いかなる認証方法を用いるものであっても良い。ここで、鍵サーバ3において受信者Bの認証に必要な設定がなされていない場合、受信者装置2が鍵サーバ3にアクセスして、認証に必要な設定を行うようにしてもよい。
【0062】
受信者Bの認証に成功した場合、鍵サーバ3の鍵生成部32は、Q=F(IDB)を計算して(ステップ111)、計算されたQを基に受信者Bの固有鍵sQを計算する(ステップ112)。鍵サーバ3のネットワークインターフェイス部31は、計算された受信者Bの固有鍵sQを受信者装置2へ送信する(ステップ113)。
【0063】
受信者Bの固有鍵sQを受信した受信者装置2の制御部24は、受信した受信者Bの固有鍵sQと送信者Aの公開鍵KPAとから、一時的な共有鍵であるe(sQ,KPA)を計算する(ステップ114)。ここで、ペアリング演算の性質より、e(sQ,KPA)=e(sQ,rP)=e(Q,sP)^r=e(Q,sP)^KSA=K1となる。受信者装置2の制御部24は、記憶部23から暗号化・復号プログラム23Bを読み出し、読み出された暗号化・復号プログラム23Bと計算された一時的な共有鍵K1とを用いて、暗号文C1からメッセージD(K1,C1)=M1を計算(復号)する(ステップ115)。受信者装置2の制御部24は、記憶部23からメーラープログラム23Aを読み出し、読み出されたメーラープログラム23Aを用いて、計算(復号)したメッセージM1をユーザインターフェイス部22に表示する(ステップ116)。ここで、D(・,・)は、第1引数を鍵とし、第2引数を暗号文とした共通鍵暗号による復号を表す関数である。
【0064】
そして、受信者装置2の制御部24は、送信者装置1におけるステップ103と同様に、受信者Bの秘密鍵となる整数KSB=qを生成する(ステップ117)。
【0065】
さらに、受信者装置2の制御部24は、生成した秘密鍵KSBと送信者装置1から送信されてきた送信者Aの公開鍵KPAとから、送信者Aと受信者Bとの間における共有秘密鍵K=KSB・KPA=q・(rP)を計算する。受信者装置2の制御部24は、計算されたKとKSB=qとを、鍵情報データベース23Cの中の相手識別子としてIDAが含まれるエントリーに格納する(ステップ118)。つまり、相手識別子と共有秘密鍵とを対応付けて格納する。
【0066】
表3は、Kとqとが、相手識別子としてIDAが含まれるエントリーに格納された鍵情報データベース23Cの例を表す表である。
【0067】
【表3】

【0068】
また、受信者装置2の制御部24は、受信者Bの秘密鍵KSBを用いて受信者Bの公開鍵KPB=qPを計算する(ステップ119)。これにより、ステップ117にて生成された秘密鍵KSBとステップ119にて計算された公開鍵KPBとの鍵ペアが生成される。計算された受信者Bの公開鍵KPBと受信者Bの識別子IDBとをネットワークインターフェイス部21を用いて送信者装置1へ送信する(ステップ120)。ステップ120の送受信は、メーラープログラム23A,13Aにより自動的に行うが、この操作を受信者Bや送信者Aが手動で行うものであっても良い。
【0069】
ネットワークインターフェイス部11により受信者Bの識別子IDBと受信者Bの公開鍵KPBとを受信した送信者装置1の制御部14は、受信した受信者Bの識別子IDBをキーとして鍵情報データベース13Cのエントリーを検索し、該当するエントリーから自身が生成した送信者Aの秘密鍵KSA=rを読み出す。送信者装置1の制御部14は、読み出された送信者Aの秘密鍵KSAと、受信者装置2から受信した受信者Bの公開鍵KPBとから、送信者Aと受信者Bとの間における共有秘密鍵KSA・KPB=r・(qP)=q・(rP)=Kを計算する。送信者装置1の制御部14は、計算されたKを、鍵情報データベース23Cの中の相手識別子としてIDBが含まれるエントリーに格納する(ステップ121)。つまり、相手識別子と共有秘密鍵とを対応付けて格納する。また、このとき、該当するエントリーのステータス情報を「鍵共有済み」に変更する。ここで、ステップ118及びステップ121で計算されたKの値は互いに同じ値となるため、送信者装置1と受信者装置2との間で共有秘密鍵Kを共有することができる。
【0070】
また、楕円曲線上の点P、受信者Bの公開鍵KPB=qP、送信者Aの公開鍵KPA=rPなどの公開情報から、秘密鍵qやrや共有秘密鍵Kを計算するのは困難であることが知られている。したがって、第三者が公開情報と暗号文とから平文を計算することは困難である。
【0071】
送信者装置1は共有秘密鍵Kを計算した後、鍵共有の確認情報と送信者Aの識別子IDAとを受信者装置2へ送信する(ステップ122)。この確認情報は、例えば、正しく復号されたことを確認できるような情報をKを用いて暗号化したものである。
【0072】
確認情報と送信者Aの識別子IDAとを受信した受信者装置2の制御部24は、確認情報を確認し(例えば、Kを用いて復号するなど)、鍵情報データベース23Cの中の相手識別子がIDAであるエントリーのステータスを「鍵共有済み」に変更する。
【0073】
以降、送信者装置1と受信者装置2との間では、共有秘密鍵Kを用いて暗号通信が可能である。例えば、引き続いて受信者装置2から送信者装置1へメッセージM1に対する返信メッセージM2を暗号化して送信する場合は以下の手順となる。
【0074】
受信者装置2は、メーラープログラム23Aによってユーザインターフェイス部22に受信者Bから送信者Aへ返信メッセージを入力する表示が行われる。それにより、受信者Bがユーザインターフェイス部22を用いて返信メッセージM2を入力すると(ステップ123)、受信者装置2の制御部24は、共有秘密鍵Kと暗号化・復号プログラム23Bとを用いて返信メッセージM2に対する暗号文C2=E(K,M2)を計算する(ステップ124)。受信者装置2の制御部24は、ネットワークインターフェイス部21を用いて、計算された暗号文C2と、受信者Bの識別子IDBとを送信者装置1へ送信する(ステップ125)。
【0075】
受信者Bの識別子IDBと暗号文C2とを受信した送信者装置1は、IDBを検索キーとして鍵情報データベース13Cからエントリーを検索する。検索されたエントリーの中の共有秘密鍵Kと、記憶部13から読み出された暗号化・復号プログラム13Bとを用いて、暗号文C2から返信メッセージD(K,C2)=M2を計算(復号)する(ステップ126)。送信者装置1の制御部14は、メーラープログラム13Aを用いてユーザインターフェイス部12に、計算(復号)された返信メッセージM2を表示する(ステップ127)。
【0076】
このように、共有秘密鍵Kを、送信者Aと受信者Bとの間にて引き続いて行われる暗号通信に用いることができる(ステップ128)。
【0077】
なお、上述した例では、ステップ123以降、受信者Bから送信者Aへメッセージを返信する場合について説明したが、送信者Aから受信者Bへ新たなメッセージを送信する場合も同様である。
【0078】
以下に、図1に示した形態における暗号化メッセージ送受信方法の他の例について説明する。
【0079】
図6は、図1に示した形態における暗号化メッセージ送受信方法の他の例を説明するためのシーケンス図である。この例では、図5を用いて説明した方法において、受信者装置2から送信者装置1へ公開鍵KPBを送信するステップ120と、暗号文C2を送信するステップ125とを同時に行うものである。ステップ119まで同じ処理を行う。また、ステップ119以降の処理について、図5を用いて説明した処理と同一の処理については同一のステップ番号を付与し、その説明は省略する。
【0080】
受信者Bが、受信者装置2に返信メッセージM2を入力すると(ステップ123)、受信者装置2の制御部24が返信メッセージM2に対する暗号文C2の計算を実行する(ステップ124)。
【0081】
すると、受信者装置2の制御部24は、ネットワークインターフェイス部21を用いて、受信者Bの識別子IDBと、公開鍵KPBと、暗号文C2とを送信者装置1へ送信する(ステップ129)。
【0082】
その後、送信者装置1は、共有秘密鍵Kを計算し(ステップ121)、鍵共有の確認メッセージを受信者装置2へ送信する(ステップ122)。なお、ステップ122の処理は省略可能である。さらに、送信者装置1は、暗号文C2から返信メッセージM2を復号し(ステップ126)、メーラープログラム13Aを用いてユーザインターフェイス部12に、計算(復号)された返信メッセージM2を表示する(ステップ127)。
【0083】
なお、受信者装置2の記憶部23に格納される暗号化・復号プログラム23Bは、受信者装置2が鍵サーバ3から受信者Bの固有鍵sQを取得する際に、必要に応じてダウンロードしても良い。この場合は、暗号化・復号プログラム23Bの事前の取得・設定は不要である。
【0084】
また、受信者装置2が、鍵サーバ3と通信する際は、必要に応じて認証、暗号化するものとする。ただし、鍵サーバ3が受信者Bの宛先(電子メールアドレス等)を知っている場合、以下の手法をもって認証に代えても良い。受信者装置2から受信者Bの識別子IDBを受信した鍵サーバ3が、受信者Bの識別子IDBから一意に定まる受信者Bの宛先を得て、この宛先へ受信者Bの固有鍵sQを送信することで受信者Bの正当性を保証するものである。また、鍵サーバ3は、受信者Bの識別子IDBと受信者Bの宛先との対応を記憶部34の認証情報データベース34B等にあらかじめ記憶しておいても良い。
【0085】
また、上記の実施の形態においては、共有秘密鍵Kを、K=KSA・KPB=KSB・KPAによって計算したが、これを、f(KSA,KPB)=f(KSB,KPA)を満たし、KPAとKPBとからfの値が計算困難であり、fの値とKPA,KPBとから、KSAやKSBが計算困難である関数fを用いて、K=f(KSA,KPB)=f(KSB,KPA)としても計算しても良い。
【0086】
また、送信者装置1と受信者装置2との間での暗号化メッセージの送受信において、以下の確認を行っても良い。あるラウンド(例えば、ラウンドN)で送信者Aから受信者Bへチャレンジc(例えば、乱数)を送信し、次のラウンド(例えば、ラウンドN+1)で受信者Bから送信者Aへcを鍵Kで暗号化したE(K,c)をレスポンスとして返信する。送信者Aがこの関係を確認することで、送信者Aと受信者Bとの間で鍵Kの共有が正しく完了していることが証明できる。
【0087】
なお、上述した各ステップにおいて、互いに依存関係のないステップ間の実行順序は、前後入れ替えても良い。
【0088】
また、上述した実施の形態では、送信者装置1と受信者装置2とを別個の通信装置として説明したが、それぞれが双方の機能を有する1つの通信装置であっても良いことは言うまでもない。
【0089】
また、本発明の実施の形態として、電子メールの暗号化を例に挙げて説明したが、電子メールに限定するものではなく、例えば、IM(Instant Massaging)、チャット、プッシュトゥトーク等の文字、音声、画像による通信サービスに適用可能である。
【0090】
また、以上説明した送信者装置1、受信者装置2、鍵サーバ3は、その機能を実現するためのプログラムを、コンピュータが読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行するものであっても良い。コンピュータが読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、CD−ROM等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータが読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間、動的にプログラムを保持するもの(伝送媒体、伝送波)、その場合のサーバとなるコンピュータ内の揮発性メモリのように、一定時間、プログラムを保持しているものを含む。ここでのコンピュータとは、送信者装置1、受信者装置2、鍵サーバ3である。
【0091】
このように本発明においては、受信者の事前設定無しで暗号メールを送信することができるため、送信者は受信者の環境を考慮することなく、また、これまでに当該送信者との間で電子メールを送受信したことがない受信者に対しても暗号メールを送信することができる。また、返信メッセージ等、送信者から受信者へ送信される最初のメッセージ以降に送受信者間で送受信されるメッセージについて、鍵サーバによる復号ができないため、情報漏洩等の心配がなく、安心してメッセージの送受信が可能となる。
【図面の簡単な説明】
【0092】
【図1】本発明の暗号化メッセージ送受信システムの実施の一形態を示す図である。
【図2】図1に示した送信者装置の構成を示すブロック図である。
【図3】図1に示した受信者装置の構成を示すブロック図である。
【図4】図1に示した鍵サーバの構成を示すブロック図である。
【図5】図1に示した形態における暗号化メッセージ送受信方法を説明するためのシーケンス図である。
【図6】図1に示した形態における暗号化メッセージ送受信方法の他の例を説明するためのシーケンス図である。
【図7】IBEの処理を説明するためのシーケンス図である。
【符号の説明】
【0093】
1 送信者装置
2 受信者装置
3 鍵サーバ
4 通信網
11,21,31 ネットワークインターフェイス部
12,22 ユーザインターフェイス部
13,23,34 記憶部
13A,23A メーラープログラム
13B,23B 暗号化・復号プログラム
13C,23C 鍵情報データベース
14,24,35 制御部
23D 認証情報
32 鍵生成部
33 認証部
34A 公開パラメータ
34B 認証情報データベース
34C 秘密パラメータ

【特許請求の範囲】
【請求項1】
送信者装置にてメッセージを暗号化して送信し、受信者装置にて前記暗号化されたメッセージを復号する暗号化メッセージ送受信方法であって、
前記送信者装置が、該送信者装置を用いて前記メッセージを送信する送信者の公開鍵と秘密鍵とからなる鍵ペアを生成するステップと、
前記送信者装置が、前記送信者の秘密鍵と前記受信者装置を用いて前記メッセージを受信する受信者の識別子とを基に、一時的な共有鍵を計算するステップと、
前記送信者装置が、前記一時的な共有鍵を用いて前記メッセージを暗号化し、暗号文を計算するステップと、
前記送信者装置が、前記暗号文と前記送信者の公開鍵とを前記受信者装置に送信するステップと、
前記暗号文と前記送信者の公開鍵とを受信した前記受信者装置が、通信網を介して前記受信者装置に接続された鍵サーバに前記受信者の識別子を送信するステップと、
前記鍵サーバが、前記受信者の識別子に基づき前記受信者の固有鍵を計算するステップと、
前記鍵サーバが、前記受信者の固有鍵を前記受信者装置に送信するステップと、
前記受信者装置が、前記鍵サーバから受信した前記受信者の固有鍵と、前記送信者装置から受信した前記送信者の公開鍵とに基づき前記一時的な共有鍵を計算するステップと、
前記受信者装置が、前記一時的な共有鍵を用いて、前記送信者装置から受信した前記暗号文を復号してメッセージを計算するステップと、
前記受信者装置が、前記受信者の公開鍵と秘密鍵とからなる鍵ペアを生成するステップと、
前記受信者装置が、前記受信者の秘密鍵と前記送信者の公開鍵とから共有秘密鍵を計算するステップと、
前記受信者装置が、前記受信者の公開鍵を前記送信者装置に送信するステップと、
前記受信者の公開鍵を前記受信者装置から受信した前記送信者装置が、前記受信者の公開鍵と前記送信者の秘密鍵とから前記共有秘密鍵を計算するステップとを有する暗号化メッセージ送受信方法。
【請求項2】
請求項1に記載の暗号化メッセージ送受信方法において、
送信者装置が生成する鍵ペアは、秘密鍵として生成した乱数rと、公開された楕円曲線E上の点Pのr倍点である公開鍵rPとのペアであることを特徴とし、
前記送信者装置が一時的な共有鍵を計算するステップは、予め定められた関数により受信者の識別子を前記E上に対応させた点Q、鍵サーバが前記点Pを秘密パラメータs倍して公開する点sP、前記送信者の秘密鍵r、および前記E上のペアリング演算eを用いe(Q,sP)^rを計算するステップであることを特徴とし、
前記受信者の固有鍵は、予め定められた関数により前記受信者の識別子を前記E上に対応させた点Qを、前記s倍して得られる点sQであることを特徴し、
前記受信者装置が一時的な共有鍵を計算するステップは、前記受信者の固有鍵sQ、前記送信者の公開鍵rP、前記ペアリング演算eを用い、e(sQ,rP)を計算するステップであることを特徴とし、
前記受信者が生成する鍵ペアは、秘密鍵として生成した乱数qと、前記点Pのq倍点であるところの公開鍵qPとのペアであることを特徴とし、
前記受信者装置が共有秘密鍵を計算するステップは、前記受信者の秘密鍵qと前記送信者の公開鍵rPとからq・(rP)=rqPを計算するステップであることを特徴とし、
前記送信者装置が共有秘密鍵を計算するステップは、前記受信者の公開鍵qPと前記送信者の秘密鍵rとからr・(qP)=rqPを計算するステップであることを特徴とする暗号化メッセージ送受信方法。
【請求項3】
請求項1または請求項2に記載の暗号化メッセージ送受信方法において、
前記送信者装置と前記受信者装置との間で、前記共有秘密鍵を用いて、継続するメッセージを暗号化して送受信するステップをさらに有することを特徴とする暗号化メッセージ送受信方法。
【請求項4】
請求項1乃至3のいずれか1項に記載の暗号化メッセージ送受信方法において、
前記受信者装置が、前記受信者の識別子を前記鍵サーバに送信するステップは、前記受信者の認証情報をあわせて送信し、
前記鍵サーバが、前記受信者の固有鍵を前記受信者装置に送信するステップは、前記認証情報に基づいて受信者の認証を行い、認証に成功した場合にのみ、前記受信者の固有鍵を送信することを特徴とする暗号化メッセージ送受信方法。
【請求項5】
メッセージを暗号化して受信者装置に送信する送信者装置であって、
ネットワークインターフェイスと、
当該送信者装置を用いて前記メッセージを送信する送信者の公開鍵と秘密鍵とからなる鍵ペアを生成する手段と、
前記送信者の秘密鍵と前記受信者装置を用いて前記メッセージを受信する受信者の識別子とに基づき、一時的な共有鍵を計算する手段と、
前記計算された一時的な共有鍵を用いて前記メッセージを暗号化し暗号文を得る手段と、
前記暗号文と前記送信者の公開鍵とを前記ネットワークインターフェイスにより前記受信者装置に送信する手段と、
前記受信者装置から前記受信者の公開鍵を前記ネットワークインターフェイスにより受信する手段と、
前記受信者の公開鍵と前記送信者の秘密鍵とから前記送信者と前記受信者との間の共有秘密鍵を計算する手段とを有する送信者装置。
【請求項6】
送信者装置から暗号化されて送信されたメッセージを受信する受信者装置であって、
ネットワークインターフェイスと、
前記送信者装置から暗号文と前記送信者装置を用いて前記メッセージを送信する送信者の公開鍵とを前記ネットワークインターフェイスにより受信する手段と、
当該受信者装置に通信網を介して接続された鍵サーバに、当該受信者装置を用いて前記メッセージを受信する受信者の識別子を前記ネットワークインターフェイスにより送信し、前記受信者の固有鍵を要求する手段と、
前記鍵サーバから前記固有鍵を前記ネットワークインターフェイスにより受信する手段と、
前記固有鍵と前記送信者の公開鍵とに基づき、一時的な共有鍵を計算する手段と、
前記計算された一時的な共有鍵と前記暗号文とから前記メッセージを復号する手段と、
前記受信者の公開鍵と秘密鍵とからなる鍵ペアを生成する手段と、
前記生成した受信者の秘密鍵と前記送信者の公開鍵とから前記送信者と前記受信者との間の共有秘密鍵を計算する手段と、
前記送信者装置に、前記生成した受信者の公開鍵を前記ネットワークインターフェイスにより送信する手段とを有する受信者装置。
【請求項7】
請求項5に記載の送信者装置と、請求項6に記載の受信者装置と、前記送信者装置と前記受信者装置とを接続する通信網とからなる暗号化メッセージ送受信システム。
【請求項8】
請求項5に記載の送信者装置としてコンピュータを機能させるためのプログラム。
【請求項9】
請求項6に記載の受信者装置としてコンピュータを機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate