【文献】
境隆一 他,楕円曲線上のペアリングに基づく二,三の暗号方式,電子情報通信学会技術研究報告,2001年 7月18日,Vol.101 No.242,p.75-80
【文献】
境隆一 他,楕円曲線上のペアリングを用いた暗号方式,2001年暗号と情報セキュリティシンポジウム予稿集,2001年 1月23日,Volume I of II,p.369-373
【文献】
Stanford IBE Secure Email,The Internet,2001年 5月 8日,URL,http://web.archive.org/web/20010513081817/http://crypto.stanford.edu/ibe/
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0026】
以下の説明では、本発明の暗号化手法のいくつかの実施例の詳細を述べ、またシステムの秘匿性の技術的内容についても解説する。
概要
現代の暗号システムでは普通のことであるが、本発明でも、その手法は一般的に、通信媒体に接続されたコンピュータ上に実装される。通常、コンピュータはインターネットまたは他のコンピュータ・ネットワークにより接続されるが、通信媒体も使用され得る。
【0027】
本発明の一実施形態は、IDベース情報から導かれる秘密メッセージ鍵を使用するIDベース暗号化システムを含む。送信者側はメッセージ鍵を使用してメッセージを暗号化し、受信者側はそのメッセージを解読することができる。秘密メッセージ鍵は、受信者のIDベース公開鍵から送信者により計算される。受信者側では、受信者のIDベース公開鍵から導かれる受信者の秘密鍵から同じメッセージ鍵を計算することができる。送信者および受信者は両方とも、双線形写像を使用して同じ秘密鍵を計算する。例えば、一実施形態では、非対称または対称双線形写像e^:★G
0×★G
1→★G
2を使用するが、ただし、★G
0、★G
1、★G
2は(必ずしも異なるものではない)代数群である。★G
0が★G
1に等しい場合、双線形写像は対称であるといい、e^:★G
1×★G
1→★G
2と表すことが多い。非退化で、効率よく計算できる双線形写像e^は、認容写像と呼ぶ。本発明のいくつかの実施形態では、双線形写像は認容的であるのが好ましい。
【0028】
この説明全体の規約として、★G
0および★G
1の群演算を加法で表し、★G
2の群演算を乗法で表す。素数位数の群★Gについては、★G
*で集合★G
*=★G\{O}を表すが、ただしOは群★Gの単位要素とする。任意の長さの2進数列の集合を、{0,1}
*で表す。★Z
qで、qを法とする加法による群{0,...,q−1}を表し、★Z
+で、正の整数の集合を表す。加法の繰り返しにより★G上に★Z
qの自然な群作用が与えられること、および要素P∈★Gに対する要素a∈★Z
qの作用の結果をaPと表すことに注意されたい。
【0029】
本発明の他の実施形態によれば、ある種の計算Diffie−Hellman問題(写像e^を伴う)は難しい問題である。一実装では、写像e^は認容的であり、★G
0、★G
1、★G
2の位数の素因数qは非常に大きい。。★G
0、★G
1、★G
2の位数は互いに等しくてもよい。以下の説明では、簡単にするため、一般性を失うことなく、★G
0、★G
1、★G
2の位数はすべて素数位数qであると仮定する。
【0030】
実施例では、認容写像e^:★G
1×★G
1→★G
2を使用して、以下のようにIDベース暗号システムを実現している。メッセージを暗号化するために、送信者は、送り先である受信者の公開識別子IDと関連付けられた公開鍵Q
ID∈★G
1を使用する。暗号化されたメッセージを解読するために、受信者は相補的な秘密鍵d
ID∈★G
1を使用する。秘密鍵は、公開鍵Q
ID、秘密マスター鍵s∈★Z
*q、および★G
1上の★Z
*qの群作用から計算される。一実施形態では、例えば、d
ID=sQ
IDである。秘密マスター鍵sは信頼できるPKGにのみ公開されているため、ユーザは通常、自分自身で秘密鍵を計算することは可能でない。秘密鍵を取得するには、個人が認証の済んだ後にPKGから取得するのが好ましい。しかし、対応する秘密鍵が決定される前であっても、誰でも任意の公開識別子IDに関連付けられた公開鍵Q
IDをいつでも計算することが可能である。例えば、一実施形態では、公開鍵Q
IDは、(1)従来の指標符号化方式を使用して公開識別子IDを{0,1}
*の対応する2進数列に写像し、(2)ハッシュ関数H
1:{0,1}
*→★G
*1を使用して2進数列を★G
*1の要素Q
IDにハッシュすることで得られるが、ただし、Q
IDの位数はqとする。
【0031】
この実施形態では、公開識別子IDを有する受信者を宛先とするメッセージの暗号化および解読を以下のように行うことができる。送信者は認容写像e^を使用して、秘密メッセージ鍵を決定することができる。送信者および受信者は同じ情報をすべて共有するわけではないが、写像e^が双線形であるという事実を使用することで、異なる情報を使って同じメッセージ鍵を計算することが可能である。それぞれプライベートの情報を使用するため、メッセージ鍵は秘密である。
【0032】
このアプローチの実装方法を説明するため、送信者は★G
1の要素PおよびsPを知っていると仮定する。一実施形態では、例えば、★G
1の要素PおよびP
pub=sPは公開されたシステム・パラメータである。そこでさらに、送信者は非公開で、乱数r∈★Z
*qを選択し、受信者のIDベース公開鍵Q
IDを使用してg
rID=e^(rQ
ID,sP)を使用する。要素g
rIDはIDベースの秘密であり、送信者はこれを秘密メッセージ鍵として使用し、受信者へのメッセージのIDベース暗号化を実行する。次に、送信者は、暗号化されたメッセージをrPとともに受信者に送信することができる。すると受信者は、rPを受信し、それを秘密鍵sQ
IDとともに使用して、秘密メッセージ鍵g
rID=e^(sQ
ID,rP)を計算する。この秘密メッセージ鍵は、e^写像の双線形性より、送信者によって計算される秘密メッセージ鍵に等しい。この計算された要素g
rID∈★G
2は、したがって、受信者が要素rPおよび秘密鍵sQ
IDを使用して計算することができる送信者のIDベース秘密鍵である。この秘密鍵は、送信者と受信者との間の暗号化された通信を行うためのメッセージ鍵として使用することができる。
【0033】
PKGはさらに、受信者の秘密鍵も知っているため、さらに秘密メッセージ鍵を計算し、メッセージを解読することが可能であることに注意されたい。送信者、受信者、およびPKGすべてに、秘密メッセージ鍵を計算するための十分な情報がすべて用意されている。しかし、他のエンティティにはいっさい、通常、送信者の秘密鍵rまたは受信者の秘密sQ
IDは公開されない。この実施形態の秘匿性は、rが公開されていない、またはsQ
IDが公開されていないと、双線形写像を使用しr、s、およびQ
IDの組み合わせに基づいて秘密メッセージ鍵を計算することの困難さに関係している。
【0034】
一実施形態では、メッセージ鍵g
rIDを使用し、XOR演算(「○+」で表される)を使用してメッセージのビットの暗号化および解読を行うのに使用されるマスクを決定する。特に、メッセージMの暗号文Vは、H
2:★G
2→{0,1}
nをハッシュ関数とし、nをメッセージのビット長として、V=M○+H
2(g
rID)を計算して得られる。逆に、メッセージMは、M=V○+H
2(g
rID)を計算することにより暗号文Vから復元される。
【0035】
他の実施形態では、上で概要を述べた一方向暗号化方式は、選択暗号文秘匿システムに変換することにより秘匿性を高められる。本発明の一実施形態では、例えば、Fujisaki−Okamotoの一般的手法を使用する。
【0036】
他の実施形態では、マスター鍵は、分散PKGの複数の個人鍵作成器に分散させた成分s
Iに分割される。識別子IDに基づく公開鍵Q
IDを持つユーザが与えられた場合、分散PKG内の個人鍵作成器のそれぞれがQおよびマスター鍵の公開鍵部分s
Iを使用して秘密鍵部分d
Iを計算する。これらの秘密鍵部分は、Q
IDで暗号化されたメッセージを解読するため、ユーザによって組み合わされ、単一の秘密鍵d
IDとして使用される可能性がある。
【0037】
他の実施形態では、ElGamal暗号化方式に鍵エスクローが組み込まれる、つまり任意の公開鍵で暗号化された暗号文を1つの大域的なエスクロー鍵で解読することが可能である。この実施形態では、上述のシステム例は以下のように適合される。受信者はさらに、要素PおよびsPも知っていると想定する。受信者は、PKGから秘密鍵を取得するのではなく、乱数x∈★Z
*qを選択し、群作用を使用してxPを計算し、計算結果に基づいて公開鍵を公開することにより公開/秘密鍵の対を作成する。一実施形態では、公開鍵はxPであり、相補的秘密鍵はd=x(sP)である。(したがって、xPは、Q
IDの役割を担い、d=x(sP)=s(xP)はd
ID=sQ
IDの役割を担う。)受信者へのメッセージを暗号化するには、送信者は前のように、乱数rを選択して、rPを受信者に送信する。次に、x(sP)=dは秘密であるとして、受信者は対(rP,x(sP))を知り、r(xP)は秘密であるとして、送信者は対(sP,r(xP))を知る。そのため、送信者および受信者は両用とも、g=e^(rP,x(sP))=e^(sP,r(xP))を計算し、ただし、第2の等式はe^の双線形性から導かれる。しかし、この秘密も、マスター鍵の情報sからを調べることが可能である。送信者からの要素rP、受信者の公開鍵xP、およびマスター鍵sを使用し、g=e^(rP,s(xP))を評価することよりメッセージ鍵を計算することが可能である。この実施形態では、対称双線形写像e^:★G
1×★G
1→★G
2を使用することに注意されたい。
【0038】
本発明のいくつかの実施形態では、★G
1は楕円曲線の部分群であり、認容写像e^は楕円曲線上のWeilペアリング(またはTateペアリング)から構成される。(ただし、定義より、部分群は、必ずしも、群よりも小さいわけではないことに留意されたい。つまり、★G
1は楕円曲線全体の場合もあるということである。)より一般的には、★G
1をアーベル多様体とし、e^を★G
1の要素の認容的ペアリングとすることができる。★G
0および★G
1が異なるものとして写像e^:★G
0×★G
1→★G
2を使用するいくつかの実施形態では、★G
0はさらに、楕円曲線の部分群、つまりアーベル多様体であってもよい。
【0039】
他の実施形態では、IDベース暗号化のさまざまな新規性のある応用が考えられる。他の種類の公開識別子、または機能強化された公開識別子を使用することによりIBEシステムの新しい有用な応用が可能である。例えば、公開識別子IDは個人に関連付けられた識別子に限られず、個人だけでなく組織、政府機関、企業などのあらゆる種類のエンティティと関連付けられた識別子であってもよい。また、グループを形成する個々のアイデンティティから自然の組み合わせにより、対応するグループ秘密鍵を備えるグループのジョイント・アイデンティティが得られることにも注意されたい。グループの秘密鍵は、PKGによって発行される必要はなく、単に、グループを構成する別々の秘密鍵の組み合わせである。エンティティのアイデンティティを指定する基本IDは、名前、電子メール・アドレス、住所、またはエンティティの社会保障番号に限られず、ドメイン名、URL、9ケタ郵便番号、納税者番号など他の種類の情報を含めることもできることにも注意しなければならない。多くの応用では、公開識別子IDは、特定のエンティティまたはエンティティの集まりに一意に関連付けられる一般に知られている何らかの文字列を含む。しかし、一般的に、公開識別子IDは、任意の文字列またはその他の任意の情報とすることが可能である。
【0040】
IBEのさまざまな有用な応用では、機能強化された公開識別子を利用する。機能強化された識別子は、必ずしも、特定のエンティティの独自性を指定する情報に限られない情報を含む一種の識別子とすることができる。例えば、IDは、エンティティに関連付けられたライセンス番号、肩書き、または機密取扱資格などの信任状記述子を含めることが可能である。機関は、機関が証明するエンティティにのみ秘密鍵を与えることにより信任状を管理することが可能である。一実施例では、IDに、連続番号、車両識別番号、特許番号などの所有物記述子を含めることが可能である。資産所有者の登録および所有者の認証を担当する機関は、その機関によって真の所有者であるとして登録されるエンティティにのみ秘密鍵を与えることにより資産登録を管理することが可能である。より一般的に、2つまたはそれ以上の物事の間の関連は、IDにその識別子を含めることにより管理することが可能である。その後、PKGは、物事の間の関連付けに対する管理権限を有するものとして機能する。
【0041】
他の種類の機能強化されたIDとして、時刻、時間間隔、または1組の時間間隔を含む識別子がある。このような識別子に対する秘密鍵は、ある時刻になると自動的に期限切れになるように、ある時間の経過後にのみ自動的にアクティブ状態になるように、または1つ以上の指定された時間間隔についてのみ有効となるように構成することが可能である。この手法を信任状および所有権管理と組み合わせることにより、アクティブ化および/または期限切れの時間を制御することが可能である。
【0042】
上記の例から、本発明によるIDベース暗号化システムは特定の種類の識別子に限られないことは明白である。したがって、「IDベース」という用語は、任意の文字列またはその他の任意の情報を基盤として使用できることを示すものとして一般的に理解すべきである。
【0043】
他の実施形態によれば、IBEシステムを使用することで解読機能を委託することができる。エンティティは、自分の秘密マスター鍵を使って自分のIBEシステムを設定し、このIBEシステムに対してPKGの役割を担うことが可能である。エンティティにはマスター鍵があるため、エンティティは鍵を発行することで、解読機能を他のエンティティに委託することが可能である。例えば、エンティティが企業であれば、その従業員は企業PKGから秘密鍵を取得することが可能である。個人に対し、その名前、肩書き、責務、プロジェクト、事例、または職務関係の識別子と一致する秘密鍵を発行することが可能である。他の例では、個人が業務出張時のみ有効な秘密鍵をラップトップに対して発行することが可能である。ラップトップの紛失または盗難が発生した場合でも、その期間の鍵しか損なわれない。マスター鍵は、家に保存しておくため、損なわれることはない。
【0044】
また、通信の媒体は電子メールまたはインターネットに限られる必要はなく、印刷された刊行物、デジタル記録媒体、ラジオ放送、無線通信などの通信媒体も考えられる。
定義
IDベース暗号化。IDベース暗号化システムおよびその方法$eの実施例では、Setup、Extract、Encrypt、Decryptの4つのランダム・アルゴリズムを使用する。
【0045】
Setup:秘匿性パラメータkが与えられた場合、params(システム・パラメータ)およびmaster−keyを返す。このシステム・パラメータは、有限メッセージ空間$Mの説明および有限暗号文空間$Cの説明を含む。通常、システム・パラメータは、周知であるが、master−keyは個人鍵作成器(PKG)にのみ公開される。
【0046】
Extract:入力として、params、master−key、および任意のID∈{0,1}
*を受け取り、秘密鍵dを返す。ここで、IDは公開鍵として使用される任意の文字列であり、dは対応する秘密解読鍵である。Extractアルゴリズムは、与えられた公開鍵から秘密鍵を抽出する。抽出にはmaster−keyが必要なため、通常は、PKGによって抽出が実行される。
【0047】
Encrypt:入力として、params、ID、およびM∈$Mを受け取る。暗号文C∈$Cを返す。
Decrypt:入力として、params、C∈$C、および秘密鍵dを受け取る。M∈$Mを返す。
【0048】
本発明の一実施形態によれば、これらのアルゴリズムは、暗号化されたメッセージが解読により忠実に復元されることを保証する標準の一貫性制約を充足する。より具体的には、dがアルゴリズムExtractによって作成された秘密鍵である場合、公開鍵としてIDが与えられると以下の式が成り立つ。
【0049】
∀M∈$M:Decrypt(params,C,d)=M ただし、C=Encrypt(params,ID,M)。
本発明の一実施形態によるIDベース暗号システムでは、
図1に示されているように、上記のアルゴリズムが一緒に使用される。送信者100はEncryptを使用し、受信者110はDecryptを使用し、PKG 120はSetupとExtractを使用する。メッセージMを受信者110に送信するために、送信者100は受信者のID(例えば、受信者の電子メール・アドレス)を取得し、無作為に選択した整数rと組み合わせて秘密メッセージ鍵g
rIDを計算する。要素rPが受信者110に送信されると、受信者110はその要素を秘密鍵d
IDと組み合わせて、同じメッセージ鍵g
rIDを決定する。送信者および受信者は秘密メッセージ鍵を共有しているため、送信者によりこの鍵で暗号化されたメッセージは、受信者側で解読することが可能である。特に、送信者はMをメッセージ鍵で暗号化し、暗号文Vを作成して、rPとともに受信者に伝達する。そこで、受信者は、秘密メッセージ鍵を使用して、暗号文を解読し、元のメッセージを復元する。しかし、メッセージを解読するために、受信者110は最初に、PKG 120から秘密鍵d
IDを取得しておかなければならない。PKGが受信者のアイデンティティを認証した後、受信者に、受信者のIDに対応する秘密鍵を供給する。(ただし、この実施形態では、PKGはシステム内で任意の秘密鍵を計算することが可能であり、したがって、システム内で任意のユーザへの任意のメッセージを解読することが可能であることに注意されたい。)
選択暗号文の秘匿性。選択暗号文の秘匿性(IND−CCA)は、公開鍵暗号化方式の秘匿性の標準的な受け入れられる概念である。IDベース暗号化システムおよび方法の実施形態は、この秘匿性という強力な概念を充足するように実装することができる。さらに、選択暗号文の秘匿性の選択されたレベルを少し強化することができる。なぜなら、敵対者がIDベース・システム内の公開鍵IDに攻撃をしかけたときに、敵対者はすでに自分が選択したユーザID
1,...,ID
nの秘密鍵を所有しているおそれがあるからである。本発明の一実施形態では、システムはこのような攻撃にさらされても秘匿性を保持する。つまり、本システムは、敵対者が自分の選択したアイデンティティID
Iに関連する秘密鍵(攻撃されている公開鍵ID以外)を取得することが可能な場合であっても秘匿性を保持するということである。このようなクエリを秘密鍵抽出クエリと呼ぶ。さらにこの実施形態のシステムは、敵対者が自分の選んだ公開鍵IDについてチャレンジを受けたとしても、秘匿性を保持する(ランダム公開鍵とは反対に)。
【0050】
以下のIND−ID−CCAゲームにおいてチャレンジャに対する無視できない優位性を持つ多項式有界敵対者$Aがいない場合、IDベース暗号化システムまたは方法$eの実施形態は、適応的選択暗号文攻撃に対する意味秘匿性(IND−ID−CCA)があるという。
【0051】
Setup:チャレンジャは、秘匿性パラメータkを受け取り、Setupアルゴリズムを実行する。これにより、敵対者は、その結果のシステム・パラメータparamsが与えられる。このアルゴリズムは、マスターキー(master−key)をそれ自身に保持する。
【0052】
段階1:敵対者は、クエリq
1,...,q
mを発行するが、クエリq
Iは以下のうちの1つである。
− 抽出クエリ<ID
I>。チャレンジャは、アルゴリズムExtractを実行し公開鍵<ID
I>に対応する秘密鍵d
Iを作成することにより応答する。d
Iを敵対者に送信する。
【0053】
−解読クエリ<ID
I,C
I>。チャレンジャは、アルゴリズムExtractを実行しID
Iに対応する秘密鍵d
Iを作成することにより応答する。次に、アルゴリズムDecryptを実行し、秘密鍵d
Iを使用して暗号文C
Iを解読する。これは、その結果の平文を敵対者に送信する。
【0054】
これらのクエリは状況に応じて行われる、つまり、各クエリq
Iはq
1,...,q
i−1への返信に依存する。
チャレンジ:敵対者は、段階1が終了したと判断すると、長さの等しい2つの平文M
0、M
1∈$M、およびチャレンジの際のアイデンティティIDを出力する。唯一の制約は、IDが段階1で秘密鍵抽出クエリ内に出現していなかったという点である。
【0055】
チャレンジャは、ランダム・ビットb∈{0,1}を選択し、C=Encrypt(params、ID,M
b)を設定する。敵対者へのチャレンジとしてCを送信する。
段階2:敵対者は、さらにクエリq
m+1,...,q
nを発行し、クエリq
Iは以下のうちの1つである。
【0056】
− 抽出クエリ<ID
I>、ただし、ID
I≠ID。チャレンジャは、段階1と同じように応答する。
− 解読クエリ<ID
I,C
I>≠<ID,C>。チャレンジャは、段階1と同じように応答する。
【0057】
これらのクエリは、段階1のように状況に応じて行うことができる。
推測:最後に、敵対者は推測b'∈{0,1}を出力する。b=b'であれば、敵対者がゲームの勝利者である。
【0058】
このような敵対者$AをIND−ID−CCA敵対者と呼ぶ。方式$Eを攻撃する際の敵対者$Aの優位性を秘匿性パラメータkの以下のような関数として定義する(kは、チャレンジャへの入力として与えられる)。
【0059】
【数1】
この確率は、チャレンジャと敵対者によって使用されるランダム・ビット上の確率である。
【0060】
IND−ID−CCAゲームを使用して、IBE方式の選択暗号文秘匿性を定義することが可能である。通常のように、関数g:★R→★Rは、g(k)が任意の多項式fについて1/f(k)よりも小さい場合に、無視できるという。
【0061】
定義1 IBEシステム$eは、任意の多項式時間IND−ID−CCA敵対者$Aについて関数Adv$e,$A(k)が無視できる場合に、適応的選択暗号文攻撃に対する意味秘匿性を有するという。簡単に、$eはIND−ID−CCA秘匿性があるという。
【0062】
ただし、選択暗号文秘匿性(IND−CCA)の標準的定義は、秘密鍵抽出クエリがないことを除き上述と同じであり、敵対者はランダム公開鍵(自分の選択した公開鍵ではなく)に基づいてチャレンジを受けることに注意されたい。秘密鍵抽出クエリは、マルチユーザ設定での選択暗号文秘匿性の定義に関係している。結局、この定義は、複数ユーザに属す複数の公開鍵を必要とする。マルチユーザIND−CCAは、標準ハイブリッド引数を使用してシングル・ユーザIND−CCAに簡約可能と考えられる。これは、IDベース設定IND−ID−CCAでは成立しないが、それは、敵対者が攻撃中に壊れる公開鍵を選択するようになるからである。秘密鍵抽出クエリが重要であることを強調するために、開示されているIBEシステムの1実装を(ハッシュ関数の1つを除去することにより)修正して、秘密鍵抽出クエリが禁止される場合に選択暗号文秘匿性を有するシステムに導入することが可能であることを指摘しておく。しかし、この実装は、抽出クエリが許される場合には秘匿性がない。
【0063】
意味秘匿IDベース暗号化。このIBEシステムの実装の秘匿性の証明では、意味(semantic)秘匿(選択平文攻撃に対する意味秘匿性とも呼ばれる)と呼ばれる秘匿性の弱い概念を利用する。意味秘匿は、敵対者に対する制限が強いことを除いて選択暗号文秘匿(IND−ID−CCA)に類似しており、チャレンジ公開鍵を攻撃している間は、解読クエリを発行し得ない。標準公開鍵システム(IDベース・システムではなく)では、意味秘匿は、(1)チャレンジャによって作成されたランダム公開鍵を敵対者に与え、(2)敵対者は長さの等しい2つのメッセージM
0およびM
1を出力し、{0,1}でランダムに選択したbについてチャレンジャからM
bの暗号化を受け取り、(3)敵対者はb'を出力し、b=b'であれば敵対者が勝利するというゲームを使用して定義される。公開鍵システムは、多項式時間の敵対者が無視できない優位性でゲームに勝利する可能性がない場合に意味秘匿であるという。簡単に、意味秘匿公開鍵はIND−CPA秘匿性があるという。意味秘匿性には、暗号文が与えられると、敵対者は対応する平文に関して何も情報を得られないという我々の直観に訴えかけるところがある。
【0064】
IDベース・システムの意味秘匿(IND−ID−CPAと表す)を定義するために、敵対者が選択秘密鍵抽出クエリを発行することを許すことにより、標準定義を強化する。同様に、敵対者は、自分の選択した公開鍵IDに関してチャレンジを受ける。ここで、IND−ID−CPAゲームを使用してIDベース暗号化方式の意味秘匿を定義する。ゲームは、敵対者は解読クエリを実行し得ないという点を除き上で定義したIND−ID−CCAゲームと同じである。敵対者は、秘密鍵抽出クエリを実行するしかない。以下のIND−ID−CPAゲームにおいてチャレンジャに対する無視できない優位性を持つ多項式制限敵対者$Aがいない場合、IDベース暗号化方式$eは、意味秘匿性(IND−ID−CPA)があるという。
【0065】
Setup:チャレンジャは、秘匿性パラメータkを受け取り、Setupアルゴリズムを実行する。これにより、敵対者は、その結果のシステム・パラメータparamsが与えられる。このアルゴリズムは、master−keyをそれ自身に留める。
【0066】
段階1:敵対者は、秘密鍵抽出クエリID
1,...,ID
mを発行する。チャレンジャは、アルゴリズムExtractを実行し公開鍵ID
Iに対応する秘密鍵d
Iを作成することにより応答する。d
Iを敵対者に送信する。これらのクエリは状況に応じて実行することができる。
【0067】
チャレンジ:敵対者は、段階1が終了したと判断すると、長さの等しい2つの平文M
0、M
1∈$M、およびチャレンジの際の公開鍵IDを出力する。唯一の制約は、IDが段階1で秘密鍵抽出クエリ内に出現していなかったという点である。チャレンジャは、ランダム・ビットb∈{0,1}を選択し、C=Encrypt(params、ID,M
b)を設定する。敵対者へのチャレンジとしてCを送信する。
【0068】
段階2:敵対者は、さらに抽出クエリID
m+1,...,ID
nを発行する。唯一の制約は、IDi≠IDである。チャレンジャは、段階1と同じように応答する。
推測:最後に、敵対者は推測b'∈{0,1}を出力する。b=b'であれば、敵対者がゲームの勝利者である。
【0069】
このような敵対者$AをIND−ID−CPA敵対者と呼ぶ。上で行ったように、方式$eに対するIND−ID−CPA敵対者$Aの優位性は、秘匿性パラメータkの以下の関数である。
【0070】
【数2】
この確率は、チャレンジャと敵対者によって使用されるランダム・ビット上の確率である。
【0071】
定義2 IBEシステム$eは、任意の多項式時間IND−ID−CPA敵対者$Aについて関数Adv$e,$A(k)が無視できる場合に、意味秘匿であるという。簡単に、$eはIND−ID−CPA秘匿性があるという。
【0072】
一方向IDベース暗号化。一方向暗号化(OWE)と呼ばれる秘匿性の更に弱い概念を定義することが可能である。大まかにいうと、公開鍵暗号化方式は、ランダム平文の暗号化が与えられたときに、敵対者がその平文をそのまま出力し得ない場合に一方向暗号化である。敵対者が例えば平文のビットの半分を学習するのを妨げるものがないため、一方向暗号化は秘匿性の弱い概念である。したがって、一方向暗号化方式は、一般的に秘匿性のある暗号化を実現しない。ランダム・オラクル・モデルでは、セッション鍵の暗号化に一方向暗号化方式を使用することが可能である(セッション鍵は、平文のハッシュとみなされる)。秘密鍵抽出クエリを定義に加えることにより一方向暗号化の概念をIDベース・システムに拡張することが可能であることを注意しておく。秘匿性の最も弱い概念として意味秘匿を使用するため、ここでは完全な定義を掲載しない。
【0073】
双線形写像および双線形DIFFIE−HELMAN仮定
本発明の一実施形態は、ある大きな素数qについて位数qの群★G
1と★G
2との間の写像e^:★G
1×★G
1→★G
2を使用するIBEシステムを対象とする。写像e^は、以下の特性を満たす場合に認容写像と呼ぶことができる。
【0074】
1.双線形:写像e^:★G
1×★G
1→★G
2は、すべての(P,Q)∈★G
1×★G
1およびすべてのa,b∈★Zについて、e^(aP,bQ)=e^(P,Q)
abを満たす。
【0075】
2.非退化:この写像は、★G
1×★G
1内のすべての対を★G
2内の単位要素に対応させない。★G
1、★G
1、★G
2は素数位数の群なので、これは、★G
1=★G
1およびPが★G
1=★G
1の作成要素であれば、e^(P,P)は★G
2の作成要素であることを意味していることがわかる。
【0076】
3.計算可能:任意の(P,Q)∈★G
1×★G
1についてe^(P,Q)を計算する効率のよいアルゴリズムが存在する。
実施形態の多くは、写像e^:★G
1×★G
1→★G
2を参照して説明されているが、これは、本発明の実施形態で使用されている双線形写像の特定の場合にすぎない。より一般的には、写像e^:★G
0×★G
1→★G
2を使用することができ、★G
0および★G
1は異なっていてもよい。しかし、説明を簡単にするため、実施形態の多くは、★G
1および★G
1が同じである場合について主に詳述しており、この群は両方とも★G
1で表される。以下では、群★G
1、★G
2およびそれらの間の認容写像を使用する詳細な実施例を取りあげる。この実施例では、群★G
1は、楕円曲線E/★F
pの点の加法群の部分群であり、群★G
2は、有限体★F
*■の乗法群の部分群である。以下のIBEシステムの詳細な例からわかるように、Weilペアリング(それ自体は認容写像でない)を使用して、これら2つの群の間の認容写像を構成することが可能である。
【0077】
上で述べたように認容写像e^:★G
1×★G
1→★G
2が存在することで、これらの群に対し2通りの意味が生じる。
MOV帰着:★G
1における離散対数問題は★G
2における離散対数問題よりも困難ではない。これを見るために、P,Q∈★G
1を★G
1における離散対数問題の実例とし、P、Qは両方とも位数qであるとする。Q=αPとなるようなα∈★Z
qを見つけたい。g=e^(P,P)およびh=e^(Q,P)とする。そこで、e^の双線形性により、h=g
αであることがわかる。e^が非退化であることから、g、hは両方とも★G
2において位数qである。したがって、★G
1における離散対数問題は、★G
2における離散対数問題に帰着した。よって、離散対数が★G
1において困難であるためには、離散対数が★G
2において困難であるように秘匿性パラメータを選択しなければならない。
【0078】
決定Diffie−Hellmanは容易である:★G
1における決定Diffie−Hellman問題(DDH)は、分布<P,aP,bP,abP>と<P,aP,bP,cP>とを区別する問題であり、a、b、cは★Z
qにおいてランダムであり、Pは★G
1においてランダムである。★G
1におけるDDHが容易であることを見るために、P、aP、bP、cP∈★G
*1が与えられた場合、以下の式が成り立つことに注意する。
【0079】
c=ab mod q <==> e^(P,cP)=e^(aP,bP)
★G
1における計算Diffie−Hellman問題(CDH)は、それでも、困難である可能性がある(★G
1におけるCDHはランダムな<P,aP,bP>が与えられた場合にabPを見つけることである)。実施例では、★G
1におけるDDHが容易であるとしても★G
1におけるCDHは困難であると考えられる場合に、写像e^:★G
1×★G
1→★G
2を使用することができる。
【0080】
双線形Diffie−Hellman仮定(BDH)
★G
1における決定Diffie−Hellman問題(DDH)は容易なので、本発明の実施形態ではその群で暗号システムを構築するのにDDHを使用しない。その代わりに、このIBEシステムの実施形態の秘匿性は、双線形Diffie−Hellman仮定(BDH)と呼ばれる計算Diffie−Hellman仮定の新規性のある変種に基づく。
【0081】
双線形Diffie−Hellman問題。★G
1、★G
2を素数位数qの2つの群とする。e^:★G
1×★G
1→★G
2を認容写像とし、Pを★G
1の作成要素とする。<★G
1,★G
2,e^>のBDH問題は以下のとおりである。あるa、b、c∈★Z
*qについて<P,aP,bP,cP>が与えられたとして、W=e^(P,P)
abc∈★G
2を計算する。アルゴリズム$Aには、以下の場合に、<★G
1,★G
2,e^>におけるBDHを解く上で優位性$eがある。
【0082】
Pr[$A(P,aP,bP,cP)=e^(P,P)
abc]≧ε
ただし、この確率は★Z
*qにおけるa,b,cのランダムな選択、P∈★G
*1のランダムな選択、および$Aのランダム・ビットについてのものである。
【0083】
BDHパラメータ作成要素。ランダム・アルゴリズム$gは、(1)$gが秘匿性パラメータk∈★Z
+を受け取り、(2)$gがkの多項式時間で実行され、(3)$gは素数q、位数qの2つの群★G
1、★G
2の説明および許容写像e^:★G
1×★G
1→★G
2の説明を出力する場合に、BDHパラメータ作成要素であるという。$gの出力を$g(1k)=<q,★G
1,★G
2,e^>で表す。秘匿性パラメータkは、qのサイズを決定する場合に使用され、例えば、qをランダムなkビット素数とみなすことも可能である。i=1,2について、群★G
Iの説明に、★G
Iにおける群作用を計算するための多項式時間(kにおける)アルゴリズムが含まれる、★G
Iの作成要素が含まれると仮定する。★G
Iの作成要素により、★G
Iに一様にランダムな要素を作成することができる。同様に、e^の説明に、e^を計算するための多項式時間アルゴリズムが含まれると仮定する。Weilペアリングを使用するIBEシステムの以下の詳細な例では、BDHパラメータ作成要素の例を挙げる。
【0084】
双線形Diffie−Hellman仮定。$gをBDHパラメータ作成要素とする。
アルゴリズム$Aは、十分に大きなkについて以下の式が成り立つ場合に、BDH問題を解く際に優位性ε(k)を有するという。
【0085】
【数3】
任意のランダム多項式時間(kにおいて)アルゴリズムおよび任意の多項式f∈★Z[x]アルゴリズムについて$Aは高々1/f(k)の優位性でBDH問題を解く場合に、$gはBDH仮定を満たすという。$gがBDH仮定を満たす場合、BDHは、$gによって作成された群において困難であるという。
【0086】
IBEシステムの以下の詳細な例の説明では、BDH仮定を満たすと思われるBDHパラメータ作成要素の例をいくつか挙げる。
BDHの困難さ。BDH問題と暗号で使用される他の困難な問題との関係を調べると興味深いことがわかる。現在、いえるのは、<★G
1,★G
2,e^>のBDH問題は★G
1または★G
2におけるCDH問題よりも困難ではないということである。つまり、★G
1または★G
2のCDHのアルゴリズムは<★G
1,★G
2,e^>のBDHを解くのに十分であるということである。今のところ、この逆、つまり、★G
1または★G
2でCDHを解くのにBDHのアルゴリズムは十分かという問題は未解決である。
【0087】
以下のIBEシステムの詳細な例では、認容写像によって誘導された★G
1から★G
2への同型写像は、一方向関数であると考えられることを注意しておく。より具体的には、点Q∈★G
*1について、f
q(P)=e^(P,Q)により同型写像f
q:★G
1→★G
2を定義する。これらの同型写像のどれか1つでも不可逆であることは判明すれば、BDHは<★G
1,★G
2,e^>において容易である。幸運なことに、f
qの逆を求める効率のよいアルゴリズムがあれば、群★G
2においてDDHを決定する効率のよいアルゴリズムがあることがいえる。実施例では、DDHは群★G
2において困難であると考えられる。したがって、認容写像によって誘導された同型写像f
q:★G
1→★G
2は一方向関数であると考えられる。
【0088】
IDベース暗号化方式の例
以下の実施例について段階を追って説明する。まず、適応的選択暗号文攻撃に対して秘匿性がない基本的なIDベース暗号化システムと方法について説明する。後述の他の実施形態では、基本的な方式を拡張し、ランダム・オラクル・モデルにおいて適応的選択暗号文攻撃に対する秘匿性(IND−ID−CCA)を有するようにする。後で、ハッシュ関数に対する要求条件を一部弱めて、他の実施形態を提示する。これらの実施形態については、BDH仮定を満たすジェネリックなBDHパラメータ作成要素を参照して説明する。後で、Weilペアリングを使用するIBEシステムの詳細な例を説明する。
【0089】
BasicIdent
ここでは、BasicIdentと呼ばれる基本的な実施形態について説明する。実施形態の説明では、Setup、Extract、Encrypt、Decryptという4つのアルゴリズムを取りあげる。kをセットアップ・アルゴリズムに与えられる秘匿性パラメータとする。$gをあるBDHパラメータ作成要素とする。
【0090】
Setup:秘匿性パラメータk∈★Z
+が与えられると、基本的な実施形態のアルゴリズムは以下のようになる。
工程1:入力kに対して$gを実行し、素数q、位数qの2つの群★G
1、★G
2、および認容写像e^:★G
1×★G
1→★G
2を作成する。任意の作成要素P∈★G
1を選択する。
【0091】
工程2:ランダムなs∈★Z
*qを選び、P
pub=sPと設定する。
工程3:暗号ハッシュ関数H
1:{0,1}
*→★G
*1を選択する。あるnについて、暗号ハッシュ関数H
2:★G
*2→{0,1}
nを選択する。秘匿性解析により、H
1、H
2はランダム・オラクルとみなされる。
【0092】
メッセージ空間は、$M={0,1}
nである。暗号文空間は、$C=★G
*1×{0,1}
nである。システム・パラメータは、params=<q,★G
1,★G
2,e^,n,P,P
pub,H
1,H
2>である。master−keyは、s∈★Z
*qである。
【0093】
IBEシステムの実施形態を使用して、対称鍵を暗号化できるが、その場合、nを、例えば、128または256とすることができる。kについては、例えば、512または1024または2048を使用できる。
【0094】
Extract:与えられた2進数列ID∈{0,1}
*について、基本的な実施形態のアルゴリズムは、(1)Q
ID=H
1(ID)∈★G
*1を計算し、(2)sをマスター鍵として、秘密鍵d
IDをd
ID=sQ
IDとなるように設定する。
【0095】
Extractは、
図2に示されているように、さまざまな実施形態におけるPKGにより実行することができる。PKGは、ブロック200でマスター鍵を取得し、ブロック210で公開識別子IDを取得し、ブロック220でIDから公開鍵を計算し、ブロック230でマスター鍵と公開鍵から秘密鍵を計算する。ブロック240で、秘密鍵が、公開識別子IDに関連付けられているエンティティに送られるが、これは通常、エンティティの素性が識別された後に行われる。
【0096】
Encrypt:公開鍵IDのもとでM∈$Mを暗号化するために、(1)Q
ID=H
1(ID)∈★G
*1を計算し、(2)ランダムなr∈★Z
*qを選択し、(3)暗号文を以下のように設定する。
【0097】
C=<rP,M○+H
2(g
rID)> ただし、g
ID=e^(Q
ID,P
pub)∈★G
*2
基本的な実施形態では、メッセージの送信者は
図3に示されているようにEncryptを実行することができる。ブロック300で、システム・パラメータが取得される(PKGなどの外部リソース、またはすでに取得されていればローカルの記憶媒体から)。ブロック310で、受信者のIDが決定され、ブロック320で、対応する公開鍵がIDから計算される。その後、ブロック330で、秘密メッセージ鍵が計算され、ブロック340で、メッセージ鍵を使用して、メッセージが暗号化される。
【0098】
Decrypt:C=<U,V>∈$Cを、公開鍵IDを使用して暗号化された暗号文であるとする。秘密鍵d
ID∈★G
*1を使用してCを暗号化するために、以下を計算する。
【0099】
V○+H
2(e^(d
ID,U))=M
基本的な実施形態では、受信者は、
図4に示されているようにDecryptを実行することができる。ブロック400で、システム・パラメータが取得される(PKGなどの外部リソース、またはすでに取得されていればローカルの記憶媒体から)。ブロック410で、送信者から暗号文Vおよび要素rPを取得する。要素rPは、送信者から得られた暗号文全体の一部と考えることができる。ブロック420で、受信者は、メッセージを暗号化するために使用された公開識別子IDに対応する秘密鍵d
IDを取得する。秘密鍵は、通常、PKGなどの外部リソース、またはすでに取得されていればローカルの記憶媒体から取得される。その後、ブロック430で、秘密メッセージ鍵が計算され、ブロック440で、これを使用して、メッセージが解読される。
【0100】
これで、基本的な実施形態のBasicIdentの説明は完了する。最初に整合性を確認する。すべてが上のように計算されると、
1.暗号化時に、Mとg
rIDのハッシュとのビット排他ORが計算される。
【0101】
2.解読時に、Vとe^(d
ID,U)のハッシュとのビット排他ORが計算される。暗号化および解読時に使用されるこれらのマスクは、以下の式が成り立つため同じである。
【0102】
e^(d
ID,U)=e^(sQ
ID,rP)=e^(Q
ID,P)
sr=e^(Q
ID,P
pub)
r=g
rID
したがって、暗号化の後に解読を適用すると、必要に応じてオリジナルのメッセージMが出力される。BasicIdentの性能上の考慮事項については後述する。
【0103】
秘匿性。次に、この基本的な実施形態の秘匿性について調べる。
システムの例の秘匿性は、★G
1における計算Diffie−Hellman問題の一変種が困難であるという仮定に基づいている。暗号化方式の秘匿性の技術面の詳細については、発明者が(非特許文献2)で解説しており、本願明細書に援用する。
【0104】
実施例では、システムの性能は★F
*pにおけるElGamal暗号化の性能に匹敵している。システムの例の秘匿性は、計算Diffie−Hellman仮定の一変種に基づいている。この仮定に基づき、システム例がランダム・オラクル・モデルにおいて選択暗号文秘匿性を有することを示す。分散PKG実施形態によれば、閾値暗号化手法を使用することで、PKGを分散させ、master−keyを1カ所だけで利用することをできなくすることが可能である。普通の閾値システムとは異なり、分散PKG実施形態の堅牢性は免除されることを示す。
【0105】
システム例の秘匿性について論じるため、IDベース暗号化の選択暗号文秘匿性を定義する。このモデルでは、敵対者に、選択暗号文秘匿性の標準モデルよりも大きな権限を与える。最初に、攻撃者が自分の選択した任意の公開鍵IDを攻撃することを許す。次に、IDに対し選択暗号文攻撃がしかけられている間に、攻撃者がIDの秘密鍵以外の、自分の選択した公開鍵をPKGから取得することを許す。これにより、自分の選択したいくつかのIDに対応する複数の秘密鍵を取得し、自分の選択した他の何らかの公開鍵IDを攻撃しようとする攻撃者のモデルが作成される。このようなクエリの手助けがあっても、システムの意味秘匿を破るという点での攻撃者の優位性がいぜんとして無視できるくらい小さいことが望ましい。
【0106】
以下の定理では、BDHが$gによって作成される群において困難であると仮定して、BasicIdentが意味秘匿IDベース暗号化方式(IND−ID−CPA)であることを証明する。
【0107】
定理1 ハッシュ関数H
1、H
2はランダム・オラクルであると仮定する。そこで、BDHが$gによって作成される群において困難であると仮定すると、BasicIdentは意味秘匿IDベース暗号化方式(IND−ID−CPA)である。具体的には、方式BasicIdentに対し優位性得ε(k)を有するIND−ID−CPA敵対者$Aが存在すると仮定する。また、$Aが高々q
E>0個の秘密鍵抽出クエリとH
2へのq
H2>0個のハッシュ・クエリを作成すると仮定する。すると、少なくとも以下の優位性を持つ$gによって作成された群においてBDHを解くアルゴリズム$Bが存在する。
【0108】
【数4】
ここで、e〜〜2.71は自然対数の底である。$Bの実行時間のオーダーはO(time($A))である。
【0109】
この定理を証明するために、まずBasicPubと呼ばれる関連する公開鍵暗号化方式(IDベース方式ではなく)を定義する。BasicPubは、keygen、encrypt、decryptの3つのアルゴリズムにより記述される。
【0110】
keygen:秘匿性パラメータk∈★Z
+が与えられると、このアルゴリズムは以下のように実行される。
工程1:入力kに対して$gを実行し、2つの素数位数の群★G
1、★G
2、および認容写像e^:★G
1×★G
1→★G
2を作成する。qを★G
1、★G
2の位数とする。任意の作成要素P∈★G
1を選択する。
【0111】
工程2:ランダムなs∈★Z
*qを選び、P
pub=sPと設定する。ランダムなQ
ID∈★G
*1を選ぶ。
工程3:あるnについて、暗号ハッシュ関数H
2:★G
2→{0,1}
nを選択する。
【0112】
工程4:公開鍵は、<q,★G
1,★G
2,e^,n,P,P
pub,H
1,H
2>である。秘密鍵はd
ID=sQ
ID∈★G
*1である。
encrypt:M∈{0,1}
nを暗号化するために、ランダムなr∈★Z
*qを選択し、暗号文を以下のように設定する。
【0113】
C=<rP,M○+H
2(g
r)> ただし、g=e^(Q
ID,P
pub)∈★G
*2
decrypt:C=<U,V>を、公開鍵<q,★G
1,★G
2,e^,n,P,P
pub,を使用して作成された暗号文であるとする。秘密鍵d
ID∈★G
*1を使用してCを解読するために、以下を計算する。
【0114】
V○+H
2(e^(d
ID,U))=M
これで、BasicPubの説明は完了である。そこで、定理1を2段階で証明する。まず、BasicIdentに対するIND−ID−CPA攻撃はBasicPubに対するIND−CPA攻撃に変換することが可能であることを示す。この段階で、秘密鍵抽出クエリが敵対者を手助けしないことを示す。次に、BDH仮定が成立する場合に、BasicPubがIND−CPA秘匿性を有することを示す。これらの証明は略す。
【0115】
補助定理2 H
1を{0,1}
*から★G
*1へのランダム・オラクルとする。$AをBasicIdentに対し優位性得ε(k)を有するIND−ID−CPA敵対者とする。$Aは高々q
E>0個の秘密鍵抽出クエリを作成すると仮定する。すると、BasicPubに対して少なくともε(k)/e(1+q
E)の優位性を持つIND−CPA敵対者$Bが存在する。この実行時間のオーダーはO(time($A))である。
【0116】
補助定理3 H
2を★G
*2から{0,1}
nへのランダム・オラクルとする。$AをBasicPubに対し優位性得ε(k)を有するIND−CPA敵対者とする。$AはH
2に対して合計q
H2>0個のクエリを作成する。すると、少なくとも2ε(k)/q
H2の優位性を有する$gに対するBDH問題を解くアルゴリズム$Bが存在し、実行時間のオーダーはO(time(A))である。
【0117】
定理1の証明。この定理は、直接補助定理3および補助定理3から導かれる。両方の帰結を書くと、優位性ε(k)を有するBasicIdentに対するIND−ID−CPA敵対者は、必要に応じて、少なくとも2ε(k)/e(1+q
E)q
H2の優位性を持つ$gに対するBDHアルゴリズムを与えることが示される。
【0118】
選択暗号文秘匿性のあるIDベース暗号化
本発明の一実施形態によれば、FujisakiおよびOkamotoの手法(本願明細書に援用する(非特許文献3)を参照)を適宜適合させ、前節のBasicIdent実施形態をランダム・オラクル・モデルにおけるIBEシステム(前で定義した意味において)の選択暗号文秘匿性実施形態に転換することができる。$eを確率論的公開的暗号方式とする。公開鍵pkのもとでランダム・ビットrを使用するMの暗号化を$e
pk(M;r)で表す。Fujisaki−Okamotoは、ハイブリッド方式を以下のように定義する。
【0119】
$e
hypk(M)=<$e
pk(σ;H
3(σ,M)),H
4(σ)○+M>
ここで、σはランダムに作成され、H
3、H
4は暗号ハッシュ関数である。Fujisaki−Okamotoは、$eが一方向暗号化方式であれば、$e
hyはランダム・オラクル・モデルにおいて選択暗号秘匿性システム(IND−CCA)であることを示している($e
pkがいくつかの自然な制約を満たしていると仮定して)。ここで、意味秘匿は一方向暗号化を意味し、したがって、$eが意味秘匿(IND−CPA)であれば、Fujisaki−Okamotoの結果も適用されることを注意する。
【0120】
Fujisaki−Okamoto変換をBasicIdentに適用し、IBEシステムのその結果の実施形態がIND−ID−CCA秘匿性を有することを示す。FullIdentという以下のIBE実施形態を得る。ただし、nは暗号化するメッセージの長さであることに留意されたい。
【0121】
Setup:BasicIdent方式の場合と同様。さらに、ハッシュ関数H
3:{0,1}
n×{0,1}
n→★Z
*qおよびハッシュ関数H
4:{0,1}
n→{0,1}
nを選ぶ。
【0122】
Extract:BasicIdent方式の場合と同様。
Encrypt:公開鍵IDのもとでM∈{0,1}
nを暗号化するために、(1)Q
ID=H
1(ID)∈★G
*1を計算し、(2)ランダムなσ∈{0,1}
nを選択し、(3)r=H
3(σ,M)と設定し、(4)暗号文を以下のように設定する。
【0123】
C=<rP,σ○+H
2(g
rID),M○+H
4(σ)> ただし、g
ID=e^(Q
ID,P
pub)∈★G
2
Decrypt:C=<U,V、W>を、公開鍵IDを使用して暗号化された暗号文であるとする。U∈/★G
*1であればその暗号文を却下する。秘密鍵d
ID∈★G
*1を使用してCを暗号化するために、以下を実行する。
【0124】
1.V○+H
2(e^(d
ID,U))=σを計算する。
2.W○+H
4(σ))=Mを計算する。
3.r=H
3(σ,M)と設定する。U=rPであることを検査する。そうでなければ、その暗号文を却下する。
【0125】
4.MをCの解読として出力する。
これで、FullIndentの説明は完了である。この実装は、
図2、3、4に示されているBasicIdentと同じ基本パターンに従う。Mは、W=M○+H
4(σ)として暗号化されることに注意されたい。これは、W=E
H4(σ)(M)で置き換えられるが、ただし、Eは意味秘匿対称暗号化方式である。
【0126】
秘匿性。以下の定理では、BDHは$gによって作成される群において困難であると仮定して、FullIndentは選択暗号文秘匿性のあるIBE(つまり、IND−ID−CCA)であることを証明する。
【0127】
定理4 ハッシュ関数H
1、H
2、H
3、H
4はランダム・オラクルであるとする。すると、BDHが$gによって作成される群において困難であると仮定すると、FullIdentは選択暗号文秘匿IBE(IND−ID−CCA)である。
【0128】
具体的には、方式FullIdentに対し優位性得ε(k)を有するIND−ID−CCA敵対者$Aが存在すると仮定すると、$Aは高々t(k)の時間で実行される。また、$Aは高々q
E個の抽出クエリ、高々q
D個の解読クエリ、および高々q
H2、q
H3、q
H4個のクエリをハッシュ関数H
2、H
3、H
4に対してそれぞれ作成すると仮定する。すると、以下のような、実行時間がt
1(k)である$gに対するBDHアルゴリズム$Bが存在する。
【0129】
【数5】
ただし、関数FO
timeおよびFO
advは、定理5で定義されている。
定理4の証明は、FujisakiとOkamotoの以下の結果に基づいている。BasicPub
hyは、Fujisaki−Okamoto変換をBasicPubに適用した結果とする。
【0130】
定理5(Fujisaki−Okamoto) $Aは、BasicPub
hyを攻撃したときに優位性ε(k)を得るIND−CCA敵対者であるものとする。$Aは実行時間t(k)が設定され、高々q
D個の解読クエリを作成し、および高々q
H3、q
H4個のクエリをハッシュ関数H
3、H
4に対して作成すると仮定する。すると、以下が成り立てば、実行時間t
1(k)、優位性ε
1(k)のBasicPubに対するIND−CPA敵対者$Bが存在する。
【0131】
【数6】
ここで、qは、群★G
1、★G
2のサイズであり、nはσの長さである。
実際には、Fujisaki−Okamotoは次のさらに強い結果を証明している。定理4の仮説のもとでは、BasicPub
hyは一方向暗号化方式ですらない。本発明の目的に関しては、定理5の結果で十分である。定理4を証明するために、さらに、FullIdentに対するIND−ID−CCA選択暗号文攻撃とBasicPub
hyに対するIND−CCA選択暗号文攻撃との間の変換に以下の補助定理が必要である。
【0132】
補助定理6 $AをFullIdentに対し優位性得ε(k)を有するIND−ID−CCA敵対者とする。また、$Aが高々q
E>0個の秘密鍵抽出クエリとq
D>0個の解読クエリを作成すると仮定する。すると、BasicPub
hyに対し少なくとも
【0133】
【数7】
の優位性得を有するIND−CCA敵対者が存在する。この実行時間のオーダーはO(time($A))である。
【0134】
定理4の証明。補助定理6により、FullIdentに対するIND−ID−CCA敵対者ならば、BasicPub
hyに対するIND−CCA敵対者である。定理5から、BasicPub
hyに対するIND−CCA敵対者ならば、BasicPubに対するIND−CPA敵対者である。補助定理3から、BasicPubに対するIND−CPA敵対者ならば、BDHのアルゴリズムである。よって、必要条件が得られた。
【0135】
ハッシングの要求条件の緩和
前節のIBEシステムは、ハッシュ関数H
1:{0,1}
*→★G
*1を使用していることに留意されたい。次節で述べるIBEシステムの詳細な例では、★G
1を楕円曲線上の点のなす群の部分群として使用する。実際、このような群に直接ハッシュするハッシュ関数を構築することが困難な場合がある。1実施例では、したがって、★G
*1の上へのハッシュの要求条件を緩和する方法を示す。★G
*1の上へのハッシュではなく、ある集合A⊆{0,1}
*の上へのハッシュを行い、決定論的符号化関数を使用してAを★G
*1に写像する。
【0136】
認容符号化:★G
1を群とし、A∈{0,1}
*を有限集合とする。符号化関数L:A→★G
*1が以下の特性を満たす場合、この符号化関数は認容的であるという。
1.計算可能:任意のx∈Aに対しL(x)を計算する効率のよい決定論的アルゴリズムが存在する。
【0137】
2.$l対1:任意のy∈★G
*1について、Lのもとでのyのプリイメージのサイズはちょうど$lである。つまり、すべてのy∈★G
*1について|L
−1(y)|=$lが成り立つ。これが成り立てば、|A|=$l・|★G
*1|であることに注意されたい。
【0138】
3.サンプリング可能:$L(s)から任意のy∈★G
*1に対するL
−1(y)上の一様分布が得られるような効率のよいランダム・アルゴリズム$L
Sが存在する。つまり、$L(s)はL
−1(y)の一様ランダム要素である。
【0139】
FullIdentを修正し、H
1をある集合Aの中へのハッシュ関数で置き換えたIBEシステムのIND−ID−CCA秘匿実施形態を得る。変更は比較的小さいため、この新しい方式をFullIdent'と呼ぶ。
【0140】
Setup:FullIdent方式の場合と同様。唯一の違いは、H
1がハッシュ関数H'
1:{0,1}
*→Aで置き換えられていることである。システム・パラメータはさらに、認容的符号化関数L:A→★G
*1の記述も含む。
【0141】
Extract,Encrypt:FullIdent方式の場合と同様。唯一の違いは、工程1では、これらのアルゴリズムはQ
ID=L(H'
1(ID))∈★G
*1を計算する点である。
【0142】
Decrypt:FullIdent方式の場合と同様。
これで、FullIndent'説明は完了である。以下の定理では、FullIdentを仮定して、FullIndent'は選択暗号文秘匿性のあるIBE(つまり、IND−ID−CCA)であることを証明する。
【0143】
定理7 $Aを優位性得ε(k)を満たすFullIdent'に対するIND−ID−CCA敵対者とする。$Aは、ハッシュ関数H'
1への高々q
H1個のクエリを作成するとする。そこで、同じ優位性ε(k)が得られ、time($B)=time($A)+q
H1・time(L
S)となるFullIdentに対するIND−ID−CCA敵対者$Bが存在する。
【0144】
証明の概略 アルゴリズム$Bはアルゴリズム$Aを実行することによりFullIdentを攻撃する。これは、すべての解読クエリ、抽出クエリ、およびハッシュ・クエリを直接$Aからチャレンジャに中継し、チャレンジャの応答を$Aに中継して戻す。これは、$Aがハッシュ・クエリをH'
1に発行した場合にのみ異なる挙動を示す。ただし、$Bは、ハッシュ関数H
1:{0,1}
*→★G
*1にのみアクセスできることに留意されたい。H'
1クエリに応答するため、後述のように、アルゴリズム$Bはタプル<ID
j,y
j>のリストを保持する。このリストを(H'
1)
listと呼ぶ。このリストは、最初は空である。$Aが点ID
IでオラクルH'
1にクエリを実行すると、アルゴリズム$Bは以下のように応答する。
【0145】
1.クエリID
Iがすでにタプル<ID
I,y
I>の(H'
1)
list上に出現していれば、H'
1(ID
I)=y
I∈Aで応答する。
2.そうでなければ、$BはH
1(ID
I)のクエリを発行する。例えば、H
1(ID
I)=α∈★G
*1である。
【0146】
3.$Bはサンプリング関数$L
S(α)を実行して、ランダム要素y∈L
−1(α)を作成する。
4.$Bは、タプル<ID
I,y>を(H')
listに加え、H'
1(ID
I)=y∈Aで$Aに応答する。αは★G
*1内に一様分布し、Lは$l対1写像であるため、yは必要に応じてA内に一様分布することに注意されたい。
【0147】
H'1クエリを含む、$Aのすべてのクエリへのアルゴリズム$Bの応答は、実際の攻撃における$Aの見解と同じである。したがって、$Bは、チャレンジャでゲームに勝利する際のと同じ優位性ε(k)を有する
Weilペアリングを使用するIBEシステムの詳細例
この節では、FullIdent'を使用して、IBEシステムの一実施形態の詳細な例を説明する。この実施形態は、Weilペアリングに基づく。実際にはTateペアリングは計算量に関しては有利であり、さまざまな実施形態においてWeilペアリングの代わりに使用できるが、比較すると単純なのでWeilペアリングを使用する実装について最初に説明する。その後、Tateペアリングについて説明する。
【0148】
Weilペアリングの特性
p>3を、p=2 mod 3を満たす素数とし、qをp+1のある素因数とする。Eを、★F
p上の方程式y
2=x
3+1によって定義された楕円曲線とする。この曲線Eに関する初等的な事実をいくつか述べる。これ以降、E(★F△)は★F△上で定義されたEの点からなる群を表すものとする。
【0149】
事実1:x
3+1は★F
p上の順列なので、したがって群E(★F
p)はp+1個の点を含む。Oで無限遠の点を表す。P∈E(★F
p)を位数qの点とし、★G
1をPによって作成される点のなす部分群とする。
【0150】
事実2:任意のy
0∈★F
pについて、E(★E
p)上に一意の点(x
0,y
0)が存在する、つまり、x
0=(y
02−1)
1/3∈★F
pである。したがって、(x,y)がE(★F
p)上のランダムなゼロでない点であれば、yは★F
p上で一様である。この特性を使って、単純な認容的符号化関数を作成する。
【0151】
事実3:1≠ζ∈★F■をx
3−1=0 mod pの解とする。すると、写像φ(x,y)=(ζx,y)は、曲線E上の点のなす群の自己同型写像となる。任意の点Q=(x,y)∈E(★F
p)について、φ(Q)∈E(★F■)であるが、φ(Q)∈\E(★F
p)であることに注意されたい。したがって、Q∈E(★F
p)はφ(Q)∈E(★F■)に関して一次独立である。
【0152】
事実4:点P∈★G
1およびφ(P)は一次独立なので、これらは、★Z
q×★Z
qに同型な群を作成する。この点のなす群をE[q]で表す。
★G
2を位数qの★F
*■の部分群とする。曲線E(★F■)上のWeilペアリングは、写像e:E[q]×E[q]→★G
2である。(この写像は、「Weilペアリングの説明」という表題の節で定義し、説明されている。)任意のQ、R∈E(★F
p)について、Weilペアリングはe(Q,R)=1を満たす。つまり、Weilペアリングは、E(★F
p)上で退化し、したがって、群★G
1上で退化する。非退化写像を得るために、修正したWeilペアリングe^:★G
1×★G
1→★G
2を次のように定義する。
【0153】
e^(P,Q)=e(P,φ(Q))
修正したWeilペアリングは、以下の特性を満たす。
1.双線形:すべてのP、Q∈★G
1について、およびすべてのa、b∈★Zについて、e^(aP,bQ)=e^(P,Q)
abとなる。
【0154】
2.非退化:もしPが★G
1の作成要素ならば、e^(P,P)∈★F*■は★G
2の作成要素である。
3.計算可能:P、Q∈★G
1が与えられた場合、e^(P,Q)∈★G
2を計算する効率のよいアルゴリズムが存在する。(このアルゴリズムは、「Weilペアリングの説明」という表題の以下の節で説明されている。)実行時間は、★F
pの指数に比較しうる。
【0155】
計算Diffie−Hellman問題(CDH)は群★G
1の中では困難であるように見えるが、決定Diffie−Hellman問題(DDH)は★G
1の中では容易である。
【0156】
BDHパラメータ作成要素$g
1:秘匿性パラメータ2<k∈★Zが与えられたとすると、BDHパラメータ作成要素によりランダムなkビットの素数qを選び、(1)p=2 mod 3、(2)qはp+1を割り切り、(3)q
2はp+1を割り切らないような最小の素数pを求める。p=$lq+1と書く。群★G
1は、★F
p上の曲線y
2=x
3+1の点のなす群の位数qの部分群である。★G
2は★F*■の位数qの部分群である。双線形写像e^:★G
1×★G
1→★G
2は、上で定義した修正されたWeilペアリングである。
【0157】
BDHパラメータ作成要素$g
1は、漸近的にBDH仮定を満たすと考えられる。しかし、それでも、BDH問題を十分に困難できる実際に使用可能なpおよびqの値には問題がある。最低でも、★G
1における離散対数問題は十分に困難であることを保証することが可能であるのが望ましい。前のほうで指摘したように、★G
1の離散対数問題は、★G
2における離散対数に効率よく帰着できる。したがって、★F
*■における離散対数を計算することで、十分に★G
1における離散対数を計算できる。実際、★F
*■の離散対数の固有の秘匿性については、少なくとも512ビット長の素数pを使用するのが望ましい(したがって、群のサイズは少なくとも1024ビット長である)。その結果、実施形態によっては、このBDHパラメータ作成要素は、512ビット長以上になりそうな素数pで使用される。
【0158】
認容的符号化関数:MapToPoint
上で定義したように、★G
1、★G
2を$g
1により作成された2つの群とする。前のほうで説明したIBEシステムは、ハッシュ関数H
1:{0,1}
*→★G
*1を使用していることに留意されたい。ある集合Aに対するハッシュ関数H
1:{0,1}
*→Aと認容的符号化関数L:A→★G
*1を用意するだけで十分である。以下では、集合Aは★F
pとなり、認容的符号化関数LはMapToPointと呼ばれ、本発明のさまざまの実施形態で使用することができる。
【0159】
この例では、pを、ある素数q>3についてp=2 mod 3およびp=$lq−1を満たす素数とする。この実施例では、qは$lを割り切らない(つまり、q
2はp+1を割り切らない)。Eを★F
p上の楕円曲線y
2=x
3+1とする。★G
1を位数qのE上の点のなす部分群とする。さらに、ハッシュ関数H
1:{0,1}
*→★F
pを与える。
【0160】
この実施例では、アルゴリズムMapToPointは入力y
0∈★F
p上で以下のように動作する。
1.x
0=(y
02−1)
1/3=(y
02−1)
(2p−1)/3∈★F
p
2.Q=(x
0,y
0)∈E(★F
p)とし、Q
ID=$lQ∈★G
1と設定する。
【0161】
3.MapToPoint(y
0)=Q
IDを出力する。
これで、MapToPointの説明は完了である。
$lQ=$l(x
0,y
0)=Oとなるy
0∈★F
pの$l−1個の値が存在することに注意されたい(これらは$lを割り切る位数の非O点である)。B⊂★F
pをこれらのy
0の集合とする。H
1(ID)がこれら$l−1個の値の1つであれば、Q
IDは★G
1の単位要素である。H
1(ID)がこれらの点の1つに当たる可能性はほとんどなく、その確率は1/q<1/2
kである。したがって、簡単にするため、H
1(ID)は★F
p\Bの要素を出力するだけである、つまりH
1:{0,1}
*→★F
p\Bである。他の実施形態では、異なるハッシュ関数を使用してIDを複数回ハッシュすることにより、アルゴリズムMapToPointを拡張して値y
0∈Bを扱えるようにすることが可能である。
【0162】
命題8 MapToPoint:★F
p\B→★G
*1は認容的符号化関数である。
証明 この写像は、明らかに計算可能であり、$l対1写像である。Lがサンプリング可能であることを証明する必要がある。PをE(★F
p)の作成要素とする。Q∈★G
*1が与えられると、サンプリング・アルゴリズム$L
Sは、(1)ランダムなb∈{0,...,$l−1}を選び、(2)Q'=$l
−1・Q+bqP=(x,y)を計算し、(3)$L
S(Q)=y∈★F
pを出力する。ここで、$l
−1は、★Z
*qにおける$lの逆要素である。このアルゴリズムは、必要に応じて、MapToPoint内の$l個の要素からランダムな要素を出力する。
【0163】
IBEシステムの詳細な例
BDHパラメータ作成要素$g
1および認容的符号化関数MapToPointを使用して、IBEシステムの一実施形態の以下の詳細の例を得る。
【0164】
Setup:秘匿性パラメータk∈★Z
+が与えられると、このアルゴリズムは以下のように実行する。
工程1:入力kでgを実行し、qがp+1を割り切るようなkビットの素数qおよび素数p=2 mod 3を作成する。Eを、★F
p上の方程式y
2=x
3+1によって定義された楕円曲線とする。位数qの任意のP∈E(★F
p)を選択する。
【0165】
工程2:ランダムなs∈★Z
*qを選び、P
pub=sPと設定する。
工程3:4つのハッシュ関数H
1:{0,1}
*→★F
q、あるnに対するH
2:★F■→{0,1}
n、H
3:{0,1}
n×{0,1}
n→★Z
*q、およびハッシュ関数H
4:{0,1}
n→{0,1}
nを選ぶ。メッセージ空間は、$M={0,1}
nである。暗号文空間は、$C=E(★F
p)×{0,1}
nである。システム・パラメータは、params=<p,q,n,P,P
pub,H
1,...,H
4>である。master−keyは、s∈★Z
*qである。
【0166】
Extract:与えられた2進数列ID∈{0,1}
*について、アルゴリズムは秘密鍵dを次のように作成する。
工程1:位数pのMapToPoint(H
1(ID))=Q
ID∈E(★F
p)を計算する。
【0167】
工程2:秘密鍵d
IDをd
ID=sQ
IDとなるように設定し、sはマスター鍵である。
Encrypt:公開鍵IDのもとでM∈{0,1}
nを暗号化するには、以下を実行する。
【0168】
工程1:位数qのMapToPoint(H
1(ID))=Q
ID∈E(★F
p)を計算する。
工程2:ランダムなσ∈{0,1}
nを選択する。
【0169】
工程3:r=H
3(σ,M)と設定する。
工程4: 暗号文を次のように設定する。
C=<rP,σ○+H
2(g
rID),M○+H
4(σ)> ただし、g
ID=e^(Q
ID,P
pub)∈★F■
【0170】
Decrypt:C=<U,V、W>を、公開鍵IDを使用して暗号化された暗号文であるとする。U∈E(★F
p)が位数qの点でない場合、その暗号文を拒絶する。秘密鍵d
IDを使用してCを暗号化するために、以下を実行する。
【0171】
工程1.V○+H
2(e^(d
ID,U))=σを計算する。
工程2.W○+H
4(σ))=Mを計算する。
工程3.r=H
3(σ,M)と設定する。U=rPであることを検査する。そうでなければ、その暗号文を却下する。
【0172】
工程4.MをCの解読として出力する。
性能。この実施形態では、アルゴリズムSetupおよびExtractは非常に単純である。両方のアルゴリズムの中心にあるのは、曲線E(★F
p)上の標準の乗法である。アルゴリズムEncryptでは、エンクリプタがQ
IDおよびP
pubのWeilペアリングを計算する必要がある。この計算は、メッセージとは無関係であり、したがって、一度だけ実行することが可能であることに注意されたい。g
IDが計算されてしまうと、この実施形態の性能は、標準ElGamal暗号化とほとんど同じである。さらに、BasicIdentの実施例の暗号文長は★F
pの通常のElgamalの場合と同じであることにも注意されたい。解読は、単純なWeilペアリング計算である。
【0173】
秘匿性。説明したばかりの詳細な実施例の秘匿性は、定理4と定理7から直接得られる。
系9 上で説明した詳細な実施例は、BDHパラメータ作成要素$g
1がBDH仮定を満たしていると仮定した場合の選択暗号文秘匿IBEシステムである(つまり、ランダム・オラクル・モデルのIND−ID−CCA)。
【0174】
拡張と観察
Tateペアリングおよびその他の曲線。
このIBEシステムの実施形態は、BDH仮定が成立する場合に2つの群★G
1、★G
2の間の効率よく計算できる双線形写像e^:★G
1×★G
1→★G
2で動作する。多くの異なる楕円曲線から、このような写像が得られる。例えば、p=3 mod 4、i
2=−1、自己準同型写像φ:(x,y)→(−x,iy)と定められた★F
p上の曲線y
2=x
3+xを使用することが可能である。
【0175】
他の実施形態では、ミヤジ他(Miyaji et al)((非特許文献4)を参照)によって説明されている★F
p上の非超特異楕円曲線族を使用することができる。例えば、この曲線族の曲線E/★F
pを使用するには、★G
1をE(★F□)(E(★F
p)には含まれない)の巡回部分群とみなし、トレース写像を、ペアリングe^を定義するのに使用した自己準同型写像φとして使用することが可能である。なお、FullIdentにおける暗号化と解読は両方とも、他の実施形態では、Weilペアリングの代わりにTateペアリングを楕円曲線上で使用することにより、高速化することが可能であることに注意されたい。他の実施形態では、アーベル多様体から適当な双線形写像を誘導することができる。
【0176】
非対称ペアリング
前述のように、このIBEシステムの実施形態は、対称写像に限られず、非対称写像をも含むことができる。つまり、実施形態では一般に、★G
0、★G
1を素数位数qの群とした場合に、e^:★G
0×★G
1→★G
2の形式の写像を使用できる。★G
0および★G
1が等しい場合、写像は対称であるという。★G
0と★G
1が等しくない場合、写像は非対称であるという。
【0177】
非対称の場合の要素Q
IDおよびPはそれぞれ★G
0および★G
1に属し(逆もまた同様)、ハッシュ関数H
1の対象となる群はそれに応じて選択される。しかし、秘匿性の証明を行うため(特に補助定理2)、ランダムなP、aP、bP∈★G
1およびQ、aQ、cQ∈★G
0が与えられた場合に無視できない確率でe^(P,Q)
abcを計算することが可能な多項式時間アルゴリズムはないというco−BDH仮定と呼ぶ見かけが少し変わっている複雑度仮定を使用する。この仮定を使用するのであれば、Miyaji et alの曲線E/★F
pを使用する実施形態については(上で説明したように)、★G
1を位数qの巡回部分群E(★F
p)とみなし、★G
0を位数qのE(★F□)の別の巡回部分群とみなすことが可能である。これにより、これらの曲線を使用することについて前段落で説明した方法よりも効率的なシステムが得られる。
【0178】
分散PKG
IBEシステムの実施例では、PKGに保管されるmaster−keyは保護されるのが望ましい。この鍵を保護する方法として、閾値暗号の手法を使用して異なる複数のサイトに分散させる方法がある。このIBEシステムの実施形態では、これを非常に効率のよい、堅牢な方法でサポートしている。ただし、上述のいくつかの実施形態ては、master−keyはあるs∈★Z
*qとすることができ、PKGは群作用を使用してsおよびQ
IDから秘密鍵を計算し、Q
IDはユーザの公開鍵IDから導かれる。例えば、d
ID=sQ
IDである。分散PKG実施形態は、n個のPKGのそれぞれにs mod qのシャミール秘密分散の1つの割符s
Iを与えることにより「n個のうちのt個」方式で実装することが可能である。n個のPKGはそれぞれ、d
I=s
IQ
IDを計算することにより、マスター鍵のその割符を使用して、秘密鍵d
IDの対応する割符d
Iを作成することが可能である。その後、ユーザは、n個のうちのt個のPKGに秘密鍵の割符d
Iを要求し、λ
Iを適切なラグランジュ補間係数としてd
ID=Σ
Iλ
Id
Iを計算することにより割符を結合して秘密鍵全体を構成することが可能である。
【0179】
さらに、DDHは★G
1では容易であるという事実を利用してこの実施形態を堅牢なものにし不正なPKGに対抗するようにすることが容易である。設定時に、n個のPKGのそれぞれP
I=s
IPを公開する。鍵作成要求が出されたら、ユーザは、以下を検査して、i番目のPKGからの応答が有効であることを確認することが可能である。
【0180】
e^(d
I,P)=e^(Q
ID,P
I)
したがって、不正な動作をするPKGは即座に捕捉される。通常の堅牢な閾値方式と同様、ゼロ知識証明の必要はない。PKGのmaster−keyは、R.ゲナロ他(R.Gennaro et al.)((非特許文献5)を参照)の手法を使用して分散方式で作成することが可能である。また、この手法を使用することで、PKGは、マスター鍵がどこか1つの場所に存在していなくてもマスター鍵のそれぞれの割符を結合作成できる協調プロトコルを実行することが可能である。
【0181】
さらに分散master−key実施形態を使用すると、メッセージ毎に閾値解読を実行することができ、しかも、対応する解読鍵を導く必要はないことにも注意されたい。例えば、各PKGがe^(s
I,Q
ID,U)で応答すれば、BasicIdent暗号文(U,V)の閾値解読は簡単である。
【0182】
図5は、本発明の一実施形態による分散PKGシステムを説明するブロック図である。
図5は、送信者システム501、受信者システム502、および3つのPKG(PKG A 503、PKG B 504、PKG C 505)を含む。「3個のうちの2個」分散方式を説明する一実施形態では、3つのPKGはそれぞれ、マスター鍵の異なる割符を含み、3つのうち2つでマスター鍵を誘導することができる。図に示されているように、PKG A 503、PKG B 504、およびPKG C 505は、それぞれマスター鍵割符s
1、511、マスター鍵割符s
2、512、およびマスター鍵割符s
3、513を含む。「3個の2個」分散方式では、3個のうち2個のPKGにより割符を結合し、マスター鍵を決定することが可能であるが、この実施形態では、それぞれのPKGは秘密のうちにそのマスター鍵割符を保持する。
【0183】
送信者システム501は、受信者502にメッセージを送信する。メッセージ514は、受信者の識別子IDに基づく公開鍵を使用して暗号化することができる。対応する秘密鍵を取得するために、受信者システムは、例えば、受信者のIDまたは公開鍵を使用して3個のうち2個のPKGにクエリを実行する。図に示されているように、受信者システム502は、クエリ506および507をそれぞれPKG A 503およびPKG B 504に送り、秘密鍵の2つの割符を取得する。これらのクエリへの応答として、PKG A 503およびPKG B 504は、それぞれ、秘密鍵d、510の割符d
1、508、および割符d
2、509を返す。その後、受信者システム502は、対応する秘密鍵d
IDを構成することができるが、これは、メッセージ514の暗号化に使用された公開鍵に対応している。より一般的には、受信者は3個のうち任意の2個のPKGにクエリを行うように選択しておくことが可能である。例えば、受信者システム502は、他の方法として、PKG BおよびCにクエリを実行し、秘密鍵割符d
2およびd
3を結合して、秘密鍵510を作成しておくことが可能である。これらの手法は一般化をたやすく行うことができ、n個のうちt個という分散方式を使用して類似の実施形態が得られる。
【0184】
送信者システム501、受信者システム502、さらにPKG 503、504、および505は、それぞれ、プロセッサおよびメモリおよび他の記憶デバイスなどのコンピュータ可読媒体などの要素を備えるコンピュータ・システムとして実装することができる。それぞれの要素間の通信は、データ・ネットワーク上で送信するデータ・パケットを使用して、または他のさまざまな形態の電子的およびデータ伝送および通信を使用して行うことができる。通信は、各種の有線、無線、およびその他の通信媒体を利用する、インターネットなどのコンピュータ・ネットワークなど、さまざま通信アーキテクチャを介して伝送することができる。
【0185】
部分群での動作
上述の詳細なIBEシステムの他の実施形態では、曲線の比較的小さな部分群において動作させることにより性能を改善することができる。例えば、ある160ビットの素数qについてp=aq−1となる1024ビットの素数p=2 mod 3を選択する。そこで、点Pを、位数qの点となるように選択する。各公開鍵IDを曲線Q上の点にハッシュし、その後、aをその点に掛けてIDを群の点に変換する。システムは、Pによって作成された群においてBDH仮定が成立する場合に秘匿性がある。この実施形態の利点は、Weil計算が小さな位数の点で実行され、したがってかなり高速であることである。
【0186】
IBEは署名を含む
上述のさまざまなIBE手法を使用して、公開鍵署名システムおよび方法を実現することが可能である。考え方は以下のとおりである。署名方式の秘密鍵は、IBE方式のマスター鍵である。この署名方式の公開鍵は、IBE方式の大域的システム・パラメータの集合である。メッセージMの署名は、ID=Mに対するIBE解読鍵である。署名を検証するために、ランダム・メッセージM'を選択し、公開鍵ID=Mを使用してM'を暗号化し、それから、Mの指定された署名を解読鍵として使用して解読を試みる。IBEシステムがIND−ID−CCAの場合、署名方式は選択メッセージ攻撃に対し存在的偽造不可である。ただし、たいていの署名方式とは異なり、この署名検証実施形態はランダム化されている。このことから、ここで説明しているIBE手法は公開鍵暗号化と電子署名の両方を包含することができる。これらのアプローチから派生する署名方式を使用して、興味深い特性を得ることが可能であるが、これについてはボネ他(Boneh et al.)(本願明細書に援用する(非特許文献6)で説明している。
【0187】
エスクローElGamal暗号化
この節では、上述のさまざまなIBE手法を使用して、大域的エスクロー機能を持つElGamal暗号化システムの実施形態を実現することが可能であることを示す。本実施形態では、単一のエスクロー鍵を使用して、任意の公開鍵で暗号化された暗号文の解読を行うことができる。
【0188】
1実施例では、ElGamalエスクロー・システムは以下のように動作する。SetupはBasicIdentのと類似している。IDベースBasicIdentと異なり、それぞれのユーザが秘密乱数を選択し、それを使用して、公開鍵/秘密鍵のペアを作成する。こうして、送信者および受信者はEncryptとDecryptを使用して、暗号化されたメッセージを伝達することが可能である。メッセージは、マスター鍵sをメッセージの解読に使用することが可能なエスクローを除き秘匿される。
【0189】
図6は、本発明の一実施形態によるエスクロー解読機能を備える暗号システム内の要素を説明するブロック図である。システムは、暗号化論理回路610を備える送信者システム601、解読論理回路611を備える受信者システム602、エスクロー・エージェント・システム604、およびブロードキャスト・システム605を含む。ブロードキャスト・システム605は、エスクロー・エージェント・システム604、受信者システム602、および送信者システム601などの参加者にシステム・パラメータを送信する。受信者システム602は、秘密鍵x、607を選択し、それを使って、公開鍵P
pub=xP、606を作成し、その後、公開する。秘密鍵xおよび公開鍵P
pubは、相補的鍵の対を形成する。送信者システム601は、公開鍵P
pub=xP、606を使用し、暗号化論理回路610でメッセージMを暗号化する。送信者システム601は、その結果得られた暗号化されたメッセージ603を受信者602に送信する。受信者システム602は、秘密鍵x、607を使用して解読論理回路611でメッセージを解読する。エスクロー・エージェント・システム604は、メッセージ603を横取りし、エスクロー・エージェント鍵s、609、公開鍵P
pub=xP、606を使用し、解読論理回路612でメッセージ603を解読する。他の実施形態では、ブロードキャスト・システム605およびエスクロー・エージェント604は、単一のエンティティであってもよい。さらに他の実施形態では、すでに述べている分散PKG実施形態などの方法でエスクロー・エージェント鍵を共有することができる。
【0190】
さらに詳細には、この手法の実施例は以下の手順を含む。
Setup:$gをあるBDHパラメータ作成要素とする。秘匿性パラメータk∈★Z
+が与えられると、このアルゴリズムは以下のように実行する。
【0191】
工程1:入力kに対して$gを実行し、素数q、位数qの2つの群★G
1、★G
2、および認容写像e^:★G
1×★G
1→★G
2を作成する。Pを★G
1のある作成要素とする。
【0192】
工程2:ランダムなs∈★Z
*qを選び、Q=sPと設定する。
工程3:暗号ハッシュ関数H:★G
2→{0,1}
nを選択する。
メッセージ空間は、$M={0,1}
nである。暗号文空間は、$C=★G
1×{0,1}
nである。システム・パラメータは、params=<p,★G
1,★G
2,e^,n,P,Q,H>である。エスクロー鍵は、s∈★Z
*qである。
【0193】
keygen:ユーザは、ランダムなx∈★Z
*qを選び、P
pub=xP∈★G
1を計算して、自分自身の公開鍵/秘密鍵の対を作成する。ユーザの秘密鍵はx(またはxQ)であり、ユーザの公開鍵はP
pubである。
【0194】
Encrypt:公開鍵P
pubのもとでM∈{0,1}
nを暗号化するために、(1)ランダムなr∈★Z
*qを選び、(2)暗号文を以下のように設定する。
C=<rP,M○+H(g
r)> ただし、g=e^(P
pub,Q)∈★G
2。
【0195】
こと暗号化手法はさらに、
図7でも説明されており、そこで、送信者は、ブロック700で、システム・パラメータおよび要素PおよびQ=sPを取得し、ブロック710で、受信者の公開鍵P
pub=xPを取得する。その後、ブロック720で、送信者は乱数rを選択し、メッセージ鍵を計算する。その後、ブロック730で、メッセージ鍵を使用してメッセージを暗号化する。次に、送信者は、カプセル化された鍵rPおよび暗号化されたメッセージVを受信者に送信する。
【0196】
Decrypt:C=<U,V>を、P
pubを使用して暗号化された暗号文であるとする。すると、U∈★G
1である。秘密鍵xを使用してCを解読するために、以下を実行する。
【0197】
V○+H(e^(U,xQ))=M
図8で説明されているように、受信者は、ブロック800で、システム・パラメータおよび要素PおよびQ=sPを取得し、ブロック810で、暗号化されたメッセージVおよびカプセル化された鍵rPを送信者から取得する。その後、ブロック820で、受信者はメッセージ鍵を計算し、ブロック830で、これを使用してメッセージを解読する。
【0198】
送信者および受信者によって計算されたメッセージ鍵が同じであることを見るためには、送信者は秘密rだけでなく公開Q=sPおよびP
pub=xPも知り、これらを使用して、e^(sP,xP)
rから鍵を計算することに注意されたい。一方、受信者は、秘密xだけでなく公開Q=sPおよびrPを知り、これらを使用して、e^(rP,x(sP))からメッセージ鍵を計算する。e^の双線形性から、e^(sP,xP)
r=e^(rP,x(sP))が成り立ち、ゆえに、送信者および受信者は同じメッセージ鍵を計算する。
【0199】
Escrow−decrypt:この実施形態の目的は、他の方法で秘匿性のある通信のエスクロー解読を行えるようにすることである。エスクロー鍵sを使用してC=<U,V>を解読するために、以下を計算する。
【0200】
V○+H(e^(U,sP
pub))=M
図9に示されているように、エスクローは、ブロック900で、システム・パラメータおよび要素Pを取得し、ブロック910で、受信者の公開鍵xPを取得し、送信者から暗号化されたメッセージVおよびカプセル化された鍵rPを取得する。その後、ブロック920で、エスクローはメッセージ鍵を計算し、ブロック930で、これを使用してメッセージを解読する。エスクローは、s、rP、およびxPを知ってメッセージを計算することが可能である。
【0201】
標準的な議論から、BDHが$gで作成され群に対し困難であると仮定すると、この実施形態のシステムは、ランダム・オラクル・モデルにおいて意味秘匿性を有することがわかる(DDHは容易であるため、DDHに基づいて意味秘匿性を証明することはできないことに留意されたい)。それでも、エスクロー・エージェントは、ユーザの公開鍵を使用して暗号化した暗号文を解読することが可能である。エスクロー・エージェントの解読機能は、前に述べたPKG分散手法を使用して分散させることが可能である。
【0202】
他の実施形態では、非大域的エスクローを使用するElGamal暗号化システムとともに類似の困難さ仮定を使用する。この実施形態では、それぞれのユーザが2つの対応する秘密鍵を使って公開鍵を構成し、その秘密鍵の一方を信頼できる第三者に与える。信頼できる第三者は、さまざまなユーザから与えられたすべての秘密鍵のデータベースを保持する。秘密鍵は両方とも、解読に使用可能であるが、ユーザの秘密鍵のみ、離散対数ベースの署名方式の署名鍵として同時に使用することが可能である。
【0203】
他のさまざまな暗号システムを、上記の実施形態に示されている原理に考案することが可能である。例えば、3つのエンティティA、B、およびCは、個人として乱数整数a、b、cを選択し、公開鍵aP、bP、cPを公開することにより1つのグループとして安全に通信することが可能である。そのうちの1つ、例えばAはメッセージ鍵e^(bP,cP)
rを使用してメッセージを暗号化し、rPとともに送信することが可能である。次にBが、e^(cP,rP)
rを計算してメッセージを解読し、Cは、e^(bP,rP)
cを計算してそのメッセージを解読することが可能である。同様、BがメッセージをAおよびCに送信するか、またはCがメッセージをAおよびBに送信することが可能である。
【0204】
他の考えられる実施形態では、3つのエンティティのうち2つ、例えばAとBは、共有公開鍵abPを公開することが可能である。次に、Cはメッセージ鍵e^(abP,cP)
rを使用してメッセージを暗号化し、rPとともに送信することが可能である。すると、AもBも単独ではメッセージを解読しえないが、AとBの両方が一緒にe^(cP,rP)
abを計算し、共同でメッセージを解読することは可能である。この手法は、任意の数のエンティティに一般化される。例えば、Cは、abPを使用して三者共有公開鍵abcPを計算し公開することにより、AおよびBを参加させることが可能である。その後は、誰でも、メッセージ鍵e^(abcP,xP)
rを使用してメッセージを暗号化し、rPとともに送信することが可能になる。その後、AおよびBおよびCのみが一緒に、e^(xP,rP)
abcを計算し、共同で、メッセージを解読することが可能である。
【0205】
しきい値解読
本発明の実施形態では、n個のエンティティが与えられた公開鍵IDに対応する秘密鍵d
IDの割符を所有し、n個のt個のエンティティが共同する場合にのみ、そのIDを使用して暗号化されたメッセージを解読するようにすることが可能である。秘密鍵d
IDは、決して、単一の場所では再構成されない。このIBEシステムの実施形態ではこれに以下のように対応できる。
【0206】
他の実施形態では、s∈★Z
*qがマスター鍵であるとして秘密鍵d
ID=sQ
IDであることに留意されたい。その代わりに、s
1,...,s
n∈★Z
*qをマスター鍵sの「n個のうちt個」シャミール秘密分散とする。n人のユーザのそれぞれにd
I=s
IQ
IDを与える。鍵IDを使用して暗号化された暗号文<U,V>を解読するために、各ユーザはローカルでg
I=e^(U,d
I)を計算し、解読工程を管理するユーザにg
I∈★G
2を送信する。そのユーザは、λ
Iをシャミール秘密分散で使用される適切なラグランジュ補間係数としてg
ID=Π
Ig
I▲を計算することにより解読割符を結合する。その後、H
2(g
ID)○+V=Mを計算することによりメッセージを取得する。
【0207】
暗号法の当業者であれば、本発明の基本原理を使用する他の多くの方式を考案することができるであろう。
IDベース暗号化の応用
IDベース暗号化の実施形態の一応用として、公開鍵インフラストラクチャの配備の支援が考えられる。この節では、このような応用およびその他の応用のいくつかの実施形態を示す。
【0208】
公開鍵の取り消し
この本実施形態では、送信者は、年、日、またはその他の時刻表示などの時間要素を含む情報から誘導された公開鍵を使用して暗号化し、鍵の有効期限またはその他の形式の時間に関係する鍵管理の実現を補助することができる。例えば、一実施形態では、"bob@company.com || current−year"というように公開鍵を使用して、ボブに送信する電子メールをアリスに暗号化してもらうことで鍵の有効期限を定められる。そうすることで、ボブは今年のみ自分の秘密鍵を使用することが可能である。1年に一度、ボブはPKGから新規の秘密鍵を取得する必要がある。こうして、秘密鍵有効期限を1年間に設定する効果が得られる。既存の公開鍵インフラストラクチャとは異なり、ボブが自分の秘密鍵を更新する毎に、アリスがボブから新規証明書を取得する必要はないことに注意されたい。
【0209】
他の実施形態において、"bob@company.com || current−date"または他のタイムスタンプを使用してボブ宛の電子メールを暗号化することにより、このアプローチの設定を細かくできる。こうすることで、ボブはいやおうなく新規秘密鍵を毎日取得することになる。この実施形態は、PKGが企業によって維持されている場合に企業環境内で使用することができる。このアプローチでは、鍵の取り消しは非常に単純であり、ボブが退社し、その鍵を取り消す必要が生じたら、企業PKGに、ボブの電子メール・アドレスに対応する秘密鍵の発行を停止するよう指令するという形をとる。その結果、ボブは自分の電子メールを読めなくなる。興味深い特性として、アリスは、ボブの毎日の公開鍵を取得するために第三者の証明書ディレクトリとやりとりする必要がないという点が挙げられる。したがって、IDベース暗号化の実施形態は、一日限りの公開鍵を実装する非常に効率のよいメカニズムを実現することが可能である。なお、この実施形態を使用すると、アリスが未来に向けてメッセージを送信することができる、つまりボブはアリスの指定した日付に限り電子メールを解読することができるようになる。
【0210】
ユーザ信任状の管理
本発明の一実施形態では、IBEシステムを使用してユーザ信任状を管理することができる。メッセージは、信任状識別子を含む文字列で暗号化される。例えば、アリスが公開鍵を使用して"bob@company.com || current−year || clearance=secret"というようボブへのメールを暗号化する。すると、ボブは、指定された日に機密取扱資格がある場合にのみその電子メールを読むことができる。したがって、PKGを使用するとユーザ信任状の付与および取り消しは非常に容易である。
【0211】
図10は、本発明の一実施形態によりIDベース暗号化システムで信用状を管理するシステムを説明するブロック図である。システムは、送信者システム1001、受信者システム1002、およびPKG 1003を備える。このようなシステムはそれぞれ、コンピュータ・ネットワークに接続されたクライアントまたはサーバなどコンピュータ・システムとして実装することができる。そのため、送信者1001、受信者1002、およびPKG 1003は、それぞれ、プロセッサ1014、プロセッサ1013、およびプロセッサ1012などのプロセッサを備えることができる。さらに、これらのシステムは、コンピュータ・メモリなどのコンピュータ可読記憶媒体を備え、さらに、有線、無線、またはその他のネットワークとの通信に対応する技術を含む、コンピュータ・ネットワークとのインターフェイスを備えることができる。送信者システム1001は、ソフトウェア・プラグイン1017を備えることができる。このようなプラグインは、暗号機能を実行するソフトウェア・モジュールを含むことができる。本発明の一実施形態によれば、プラグインには、暗号論理回路1004などが含まれる。プラグイン1017は、ネットワーク経由で送信者システム1001および受信者システム1002などのさまざまなコンピュータに配布し、IDベース暗号化と関連する機能およびその他の通信機能を展開することができる。PKG 1003などのシステムからのパラメータ1015も、コンピュータ・ネットワークまたはその他の通信媒体経由で、送信者システム1001および受信者システム1002など送信者および受信者に配布し、これらのシステムでは、メッセージを暗号化または解読する際にプラグイン1017とともにそれらのパラメータを使用することができる。一実施形態では、プラグイン1017は、パラメータとともに配布される。他の実施形態では、パラメータ1015を別々に配布することもできる。
【0212】
送信者システム1001は、プラグイン1017の暗号化論理回路1004を使用してメッセージMを暗号化する。暗号化論理回路1004は、選択した信任状1005およびメッセージの宛先受信者の識別1016に基づく暗号鍵1011を使用してメッセージを暗号化する。いくつかの実施形態では、この鍵は、他の情報にも基づくことができる。送信者システム1001は、受信者システム1002に情報1006を、例えば、ネットワークまたはその他の通信媒体経由で送信されるデータ・パケットの形式で送信する。受信者システム1002に送信された情報1006には、暗号化されたメッセージが入っており、さらに、暗号鍵の基盤の一部として使用される信任状1005に関する情報1007も含めることができる。
【0213】
情報1006の受信前であろうと受信後であろうと、受信者システム1002は要求1009をPKG 1003に送信する。一実施形態では、要求1009は、受信者のID 1016を含むことができ、さらに、選択した信任状1005に関係する情報を入れることもできる。応答として、PKG 1003は信任状検査論理回路1008を使用して受信者1002の信任状を検証する。このような論理回路は、ソフトウェア、ハードウェア、またはその組み合わせで実装することができる。信任状が受信者に属するものとして検証された場合、PKG 1003は応答1010を受信者1002に送るが、この応答は、暗号鍵1011に対応する秘密解読鍵1018を含む。次に、秘密解読鍵を使用することで、受信者は情報1006に含まれる暗号化されたメッセージを解読し、オリジナルのメッセージMを復要素することができる。したがって、このような実施形態では、暗号鍵の一部として信任状を含めることにより、送信者が受信者宛先のメッセージを暗号化することができ、受信者によるメッセージの解読を受信者の信任状の有効性を条件とするようにできる。
【0214】
解読鍵の委託
IBEシステムを実施形態の他の応用として、解読機能の委託がある。PKGの役割を果たすユーザであるボブについて説明した2つの実施例を用意する。ボブは、設定アルゴリズムを実行して、自分のIBEシステム・パラメータparamsおよび自分のmaster−keyを作成する。ここで、paramsをボブの公開鍵であるとみなす。ボブは、自分の公開鍵params用にCAからの証明書を入れる。アリスは、ボブにメールを送信したい場合、最初にボブの公開鍵paramsをボブの公開鍵証明書から取得する。ボブは、自分のmaster−keyを知っている唯一の人物であり、したがって、この設定には鍵エスクローはないことに注意されたい。
【0215】
1.ラップトップへの委託。アリスがIBE暗号鍵として現在の日付を使用してボブへのメールを暗号化すると仮定する(アリスは、ボブのparamsをIBEシステム・パラメータとして使用する)。ボブはmaster−keyを持っているので、このIBE暗号鍵に対応する秘密鍵を抽出して、メッセージを解読することが可能である。そこで、ボブは7日間旅行に出るとする。通常であれば、ボブは自分の秘密鍵を自分のラップトップに入れる。ラップトップが盗まれると、秘密鍵は危険にさらされることになる。IBEシステムを使用すると、ボブは単に、自分のラップトップに7日間の旅行期間に対応する7日分の秘密鍵をインストールするだけよい。ラップトップが盗まれた場合でも、7日間の秘密鍵しか損なわれない。master−keyは、無事である。
【0216】
図11は、本発明の一実施形態による鍵委託機能を備えるシステムを説明するブロック図である。システムは、ユーザ・システム1101およびターゲット・システム1102を備える。ターゲット・システムは、ラップトップ・コンピュータなどのコンピュータを含むことができる。ユーザ・システム1101は、解読鍵1104を作成するために使用される、マスター鍵1103を含む。解読鍵1104は、ターゲット・システム1102にダウンロードされる。上述の鍵取り消しの手法を使用すると、これらの解読鍵は、限られた期間のみ有効にすることができ、したがって、ターゲット・システム1101が危険にさらされた場合でも秘匿性を高められる。ユーザ・システム1101およびターゲット・システム1102は、メモリ1106および1107さらにプロセッサ1105および1108などのコンピュータ・システムの要素を備えることができる。ユーザ・システム1101は、ユーザID 1113および1つ以上の日付1114またはその他のタイムスタンプから導かれる情報に基づきマスター鍵1103およびシステム・パラメータ1110を使用して秘密解読鍵1104を作成する鍵作成器論理回路1109を備える。ターゲット・システム1102は、ユーザ・システム1101およびシステム・パラメータ1110から得られた秘密解読鍵1104を使用して受信した暗号化されたメッセージ1112を解読する、解読論理回路1111を備える。ID 1113および日付1114の1つに基づいて公開鍵を使用してメッセージ1112が暗号化されている場合、秘密解読鍵を使用して、それを解読することができる。したがって、ターゲット・システム1102の解読機能を、選択した日付1114と関連するメッセージに制限することができる。他の実施形態では、ターゲット・システムは、必要に応じて他のコンピュータ・システムに接続することが可能なデータ記憶媒体または携帯型データ記憶デバイスとすることができ、そのため、これらのシステム上の解読鍵を使用することができる。
【0217】
2.職務の委任。アリスが、件名をIBE暗号鍵として使用してボブへのメールを暗号化するものとする。ボブは、自分のmaster−keyを使用してメールを解読することが可能である。そこで、ボブには、複数のアシスタントがおり、それぞれ異なる職務を担当していると仮定する(例えば、「購買」担当、「人事」担当など)。この本実施形態では、ボブはアシスタントの責任に対応する秘密鍵を1つ、各アシスタントに与えることができる。そこで、各アシスタントは、自分の責任範囲内の件名が設定されているメッセージを解読することは可能であるが、他のアシスタントを宛先とするメッセージを解読することは可能でない。アリスは、ボブからの単一の公開鍵(params)のみを取得し、その公開鍵を使用して自分の選択した件名が含まれるメールを送信することに注意されたい。メールは、その件名の担当であるアシスタントにとってのみ可読である。
【0218】
より一般的には、IBEの実施形態により、多数の公開鍵を管理するさまざまなシステムを簡素化することが可能である。システムでは、公開鍵の大きなデータベースを保管するのではなく、ユーザの名前からこれらの公開鍵を導くか、または単に、整数1,...,nを異なる公開鍵として使用することが可能である。例えば、企業では、各社員に一意の社員番号を割り当て、その番号を社員の公開鍵としても使用することができる。
【0219】
受信確認返信
図12は、本発明の一実施形態による受信確認返信機能を備える暗号システムを説明するブロック図である。本発明の一実施形態によれば、送信者は受信者が暗号化されたメッセージを受信したという確認を受信することが可能である。より一般的には、受信者から解読鍵の要求を受信したときに、PKGは解読鍵を受信者に与えることとは別のアクションを実行する。このようなアクションは、一実施形態による、メッセージを受信したことを示す受信確認を送信者に送る動作を含む。
【0220】
受信確認返信機能を備えるシステムの一実施形態が
図12に示されている。システムは、送信者システム1201、受信者システム1202、およびPKGシステム1203を備える。送信者システム1201、受信者システム1202、およびPKGシステム1203は、コンピュータ・ネットワークに結合されたコンピュータ・システムとして実装することができる。例えば、PKG 1203、送信者システム1201、および受信者システム1202は、プロセッサ1212、プロセッサ1213、およびプロセッサ1214をそれぞれ備えることができる。これらのコンピュータ・システムは、コンピュータ可読記憶媒体、コンピュータ・メモリ、およびその他の記憶デバイスなどの要素を備えることができる。さらに、これらのシステムは、有線、無線、またはその他のネットワークとの通信に対応する技術を含む、コンピュータ・ネットワークとのインターフェイスを備えることができる。さらに、本発明の一実施形態によれば、それぞれの要素間の通信は、コンピュータ・ネットワーク上で送信されるデータ・パケットを使用して、または他のさまざまな形態の電子的およびデータ伝送および通信を使用して行うことができる。
【0221】
送信者1201は、メッセージMを暗号化し、その結果得られた暗号文を受信確認返信要求情報1209も含むことができるデータ・パッケージ1204で受信者1202に送信する。受信確認返信要求情報は、例えば、返信アドレスおよび、特定のメッセージ1204に対応するメッセージ識別子を含むことができる。メッセージMは、送信者により、暗号化論理回路1211および暗号鍵1215を使用して、暗号化される。暗号鍵1215は、受信者ID(電子メール・アドレスなど)1216および受信確認返信要求情報1209に基づくことができる。暗号鍵1215の決定のため送信者により受信者IDおよび受信確認返信要求情報1209が使用されるため、受信者1202は、そのメッセージを解読するために使用することができる対応する解読鍵を必要とする。したがって、受信者システム1202は、メッセージ1204を受信したことに対する応答として、PKG 1203に要求1206を送信するが、これには、受信確認返信要求情報1209および受信者のID、1216が含まれる。応答として、PKG 1203は受信者1202に、秘密解読鍵1205を送信し、その後受信者はその解読鍵を解読論理回路1217で使用してメッセージ1204の暗号文を解読し、オリジナルのメッセージMを復元する。受信者1202に解読鍵1205を送信するほかに、PKG 1203はさらに、受信確認返信1207を送信者1201に送信する。PKG 1203は、それとは別に、受信確認返信を送信するのではなく、ログの一部として受信結果を記憶媒体上に格納することができる。受信確認返信1207は、メッセージ識別子などの情報を含むことができる。こうして、送信者1201は、受信者1202がメッセージ1204を受信したという証明を受信する。システムは、プラグイン・ソフトウェアを送信者システム1201および受信者システム1202などさまざまなシステムに置くことにより初期化することができる。このようなプラグイン・ソフトウェアに、システム・パラメータを含めることができ、その一部はシステム・マスター鍵から導くことができる。送信者1201および受信者1202などのローカル・デバイスに格納されているこのようなパラメータを使用して、暗号鍵の作成、暗号化の実行、解読の実行、およびその他の機能を、適宜行う。
【0222】
Weilペアリングの説明
この節では、楕円曲線上のWeilペアリングについて説明し、その後、アルゴリズムを使用して効率よく計算する方法を示す。具体的には、p>3の素体★F
p上で定義された超特異楕円曲線を使用する例を示す(p=2 mod 3の★F
p上の曲線y
2=x
3+1がこのような曲線の一例である)。以下の説明は、他の楕円曲線上のWeilペアリングの計算に容易に一般化できる。
【0223】
楕円曲線とWeilペアリング
p>3の素体★F
p上で定義された超特異楕円曲線に関する初等的な事実をいくつか述べる。
【0224】
事実1:超特異曲線E/★F
p(p>3)は★F
p内にp+1個の点を含む。Oで無限遠の点を表す。★F
p上の点の群は、位数p+1の巡回群をなす。簡単にするため、Pをこの群の作成要素とし、n=p+1と設定する。
【0225】
事実2:点E(★F■)の群は、E(★F
p)内の点に関して一次独立である位数nの点Qを含む。したがって、E(★F■)は、群★Z
2nに同型な部分群を含む。この群は、P∈E(★F
p)およびQ∈E(★F■)によって作成される。この群をE[p+1]=E[n]で表す。
【0226】
E[n]内の点の対を★F
*■に写像するWeilペアリングe、つまりe:E[n]×E[n]→★F
*■を扱う。このペアリングを説明するために、以下の概念を復習する。
【0227】
因子 因子とは、曲線E(★F■)上の点の形式和のことである。aP∈★Z、P∈E(★F■)として、因子を$A=Σ
pa
p(P)と書く。例えば、$A=3(P
1)−2(P
2)−(P
3)は因子である。ここでは、Σ
pa
p=0として、因子$A=Σ
pa
p(P)のみを考える。
【0228】
関数 概して、曲線E(★F■)上の関数fは、有理関数f(x,y)∈★F■(x,y)とみなすことができる。任意の点P=(x,y)∈E(★F■)について、f(P)=f(x,y)と定義する。
【0229】
関数の因子 fを曲線E(★F■)上の関数とする。この因子を(f)=Σ
pord
p(f)・Pで定義し、(f)で表す。ここで、ord
p(f)は点Pにおけるfの零位数である。例えば、ax+by+c=0を、P
1≠±P
2となるような点P
1、P
2∈E(★F■)を通る直線とする。この直線は、第3の点P
3∈E(★F■)で曲線と交差する。そこで、関数f(x,y)=ax+by+cは3つの零点P
1、P
2、P
3を持ち、無限遠で位数3の極を持つ。fの因子は、(f)=(P
1)+(P
2)+(P
3)−3(O)となる。
【0230】
主因子 $Aを因子とする。(f)=$Aとなるような関数fが存在すれば、$Aは主因子であるという。因子$A=Σ
pa
p(P)が主因子であるのは、Σ
pa
p=0および$A=Σ
pa
pP=Oのときかつそのときに限ることが知られている。第2の和では、曲線上の群作用を使用していることに注意されたい。さらに、主因子$Aが与えられた場合、($A)=(f)となるような一意的な関数f(定数倍を除いて)が存在する。
【0231】
因子の同値性 2つの因子$A、$Bは、差$A−$Bが主因子であれば、同値であるという。任意の因子$A=Σ
pa
p(P)(Σ
pa
p=0の場合)は、あるQ∈Eが存在して、$A'=(Q)−(O)の形式の因子に同値であることが知られている。Q=Σ
pa
pPであることに注意されたい。
【0232】
表記 関数fおよび因子$A=Σ
pa
p(P)が与えられたときに、f($A)をf($A)=Π
pf(P)
aPと定義する。Σ
pa
p=0なので、任意のc∈★F■についてfの代わりにcfを使用してもf($A)は変わらないことに注意されたい。
【0233】
これで、2つの点P、Q∈E[n]のWeilペアリングを説明する準備ができた。$A
pを因子(P)−(O)に同値なある因子とする。n$A
pは主因子であることが知られている(これは、明らかに主因子であるn(P)−n(O)と同値である)。したがって、(f
p)=n$A
pとなるような関数fPが存在する。$A
qおよびf
qを同様に定義する。PおよびQのWeilペアリングは以下の式で与えられる。
【0234】
【数8】
この比が矛盾なく定義されている限り(つまり、零による除算が生じない限り)、この比からPとQのWeilペアリングの値が求められる。この比が不確定の場合、別の因子$A
p、$A
qを使用して、e(P,Q)を定義する。P、Q∈E(★F■)ならば、e(P,Q)∈★F■である。
【0235】
Weilペアリングが矛盾なく定義されていることを簡単に証明する。つまり、e(P,Q)の値は、$A
pが(P)−(O)に同値である限り因子$A
pの選択とは無関係であり、$A
pから矛盾なく定義された値が得られる。同じことが$A
qについても成り立つ。$A^
pを$A
pと同値な因子とし、f^
pを、(f^
p)=nA^
pとなるような関数とする。すると、ある関数gが存在して$A^
p=$A
p+(g)、f^
p=f
p・g
nとなる。そこで、以下の式が得られた。
【0236】
【数9】
最後の式は、任意の2つの関数f、gについて、f((g))=g((f))が成り立つというWeil相互律と呼ばれる事実から求められる。ゆえに、Weilペアリングは矛盾なく定義されている。
【0237】
事実10 Weilペアリングは、以下の特性を持つ。
・ すべてのP∈E[n]について、e(P,P)=1である。
・ 双線形: e(P
1+P
2,Q)=e(P
1,Q)・e(P
2,Q)およびe(P,Q
1+Q
2)=e(P,Q
1)・e(P,Q
2)が成り立つ。
【0238】
・ P,Q∈E[n]が共線形ならば、e(P,Q)=1である。同様にe(P,Q)=e(Q,P)
−1である。
・ n番目の根:すべてのP、Q∈E[n]について、e(P,Q)
n=1である。
【0239】
・ 非退化:すべてのすべてのQ∈E[n]についてPがe(P,Q)=1を満たせば、P=Oである。
すでに述べたように、IBE方式の一実施形態のこの詳細な例では、修正したWeilペアリングe^(P,Q)=e(P,φ(Q))を使用し、φはEの点のなす群上の自己同型写像である。
【0240】
Tateペアリング。Tateペアリングは、このシステムの実施形態の必要な特性を有するもう1つの双線形ペアリングである。さまざまなを実施形態において、Tateペアリングのオリジナルの定義を少し修正して本明細書の目的に合わせる。f
pおよび$A
pを前のように定義して、2つの点P、Q∈E[n]のTateペアリングを
【0241】
【数10】
として定義する。この定義から、計算可能な双線形ペアリングT:E[n]×E[n]→★G
2が得られる。
【0242】
Weilペアリングの計算
2つの点P、Q∈E[n]が与えられたとして、★F
pにおけるO(log p)の算術演算を使用してe(P,Q)∈★F
*■を計算する方法を示す。P≠Qと仮定する。次のように進める。2つのランダムな点R
1、R
2∈E[n]を選ぶ。因子$A
p=(P+R
1)−(R
1)および$AQ=(Q+R
2)−(R
2)を考える。これらの因子は、(P)−(O)および(Q)−(O)とそれぞれ同値である。そこで、$A
pおよび$A
qを使用して、Weilペアリングを以下のように計算することが可能である。
【0243】
【数11】
この式は、R
1、R
2の選択に関して非常に高い確率で矛盾なく定義されている(失敗の確率は、最大でO(log p/p)である。e(P,Q)の計算中に零除算が発生するまれなケースでは、単純に、新しいランダム点R
1、R
2を選んで、この工程を繰り返す。
【0244】
e(P,Q)を評価するために、$A
qで関数f
pを評価する方法を示すだけで十分である。f
q($A
p)の評価も同様に行われる。倍するのを繰り返してf
p($A
p)を評価する。正の整数bについて、因子を以下のように定義する。
【0245】
$A
b=b(P+R
1)−b(R
1)−(bP)+(O)
これは主因子であり、したがって、(f
b)=$A
bとなるような関数f
bが存在する。(f
p)=(f
n)であり、したがって、f
p($A
q)=f
n($A
q)であることに注意されたい。f
n($A
q)を評価する方法を示すので十分である。
【0246】
補助定理11 あるb、c>0についてf
b($A
q)、f
c($A
q)、およびbP、cP、(b+c)Pが与えられた場合に、f
b+c($A
q)を出力するアルゴリズム$Dが存在する。このアルゴリズムは、★F■における(少ない)一定数の算術演算を使用するだけである。
【0247】
証明 まず、2つの補助線形関数g
1、g
2を定義する。
1.a
1x+b
1y+c
1=0が点bPおよびcPを通過する直線とする(b=cであれば、a
1x+b
1y+c
1=0をbPでEに接する直線とする)。g
1(x,y)=a
1x+b
1y+c
1を定義する。
【0248】
2.x+c
2=0を、点(b+c)Pを通過する垂直線とする。g
2(x,y)=x+c
2を定義する。
これらの関数の因子は以下のとおりである。
【0249】
(g
1)=(bP)+(cP)+(−(b+c)P)−3(O)
(g
2)=((b+c)P)+(−(b+c)P)−2(O)
定義から、以下の式が得られる。
【0250】
$A
b=b(P+R
1)−b(R
1)−(bP)+(O)
$A
c=c(P+R
1)−c(R
1)−(cP)+(O)
$A
(b+c)=(b+c)(P+R
1)−(b+c)(R
1)−((b+c)P)+(O)
そこで、$A
(b+c)=$A
b+$A
c+(g
1)−(g
2)が得られる。ゆえに、以下の式が得られる。
【0251】
【数12】
このことから、f
b+c($A
q)を評価するには、すべてのi=1,2についてg
I($A
q)を評価し、その結果を式1に差し込むだけで十分である。したがって、f
b($A
q)、fc($A
q)、およびbP、cP、(b+c)Pが与えられると、一定数の算術演算を使用してf
b+c($A
q)を計算することが可能である。
【0252】
補助定理11のアルゴリズム$Dの出力を、$D(f
b($A
q),f
c($A
q),bP,cP,(b+c)P)=f
b+c($A
q)により表す。次に、以下の標準の倍増手順を使用してf
p($A
q)=f
n($A
q)を計算することが可能である。n=b
mb
m−1...b
1b
0をnの2進数表現とする、つまり、n=Σ
mi=0b
I2
iである。
【0253】
開始:Z=O、V=f
0($A
q)=1、およびk=0と設定する。
反復:i=m,m−1,...,1,0について以下を実行する。
1:b
I=1ならば、V=$D(V,f
1($A
q),Z,P,Z+P)を設定し、Z=Z+Pを設定し、k=k+1を設定する。
【0254】
2:i>0ならば、V=$D(V,V,Z,Z,2Z)を設定し、Z=2Zを設定し、k=2kを設定する。
3:各反復の終わりに、z=kPおよびV=f
k($A
q)となることに注意されたい。
【0255】
出力:最後の反復の後、k=nとなり、したがって、必要に応じてV=f
n($
AQ)である。
Weilペアリングe(P,Q)を評価するために、上記のアルゴリズムを1回実行し、f
p($A
q)を計算し、1回実行してf
q($A
p)を計算する。反復二乗アルゴリズムはf
1($A
q)に評価する必要があることに注意されたい。関数f
1(x,y)(その因子は(f
1)=(P+R
1)−(R
1)−(P)+(O))は以下のように明示的に書くことが可能なので、この作業は簡単に行える。
【0256】
1.a
1x+b
1y+c
1=0を、点PおよびR
1を通過する直線とする。関数g
1(x,y)=a
1x+b
1y+c
1を定義する。
2.x+c
2=0を、点P+R
1を通過する垂直線とする。関数g
2(x,y)=x+c
2を定義する。
【0257】
3.関数f
1(x,y)は単に、f
1(x,y)=g
2(x,y)/g
1(x,y)であり、★F■において容易に評価できる。