JP2007295444A - 匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体 - Google Patents

匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2007295444A
JP2007295444A JP2006123081A JP2006123081A JP2007295444A JP 2007295444 A JP2007295444 A JP 2007295444A JP 2006123081 A JP2006123081 A JP 2006123081A JP 2006123081 A JP2006123081 A JP 2006123081A JP 2007295444 A JP2007295444 A JP 2007295444A
Authority
JP
Japan
Prior art keywords
key
public key
elliptic curve
ciphertext
inspection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006123081A
Other languages
English (en)
Other versions
JP4758814B2 (ja
Inventor
Fumisato Hoshino
文学 星野
Shingo Kinoshita
真吾 木下
Harutake Morohashi
玄武 諸橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006123081A priority Critical patent/JP4758814B2/ja
Publication of JP2007295444A publication Critical patent/JP2007295444A/ja
Application granted granted Critical
Publication of JP4758814B2 publication Critical patent/JP4758814B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】匿名で暗号文を伝送する匿名暗号文通信システムにおいて、暗号文に対応する平文を他のクライアント装置に知られることなく、効率的に通信を行う。
【解決手段】
クライアント装置に、検査鍵G(j),Y(j)(=x(j)・G(j),(x(j)は宛先装置jの秘密鍵)を、宛先装置jに関連付けて格納しておく。クライアント装置は、他のクライアント装置から受信した公開鍵g(j,i)と、格納している検査鍵Y(j)とをペアリング関数に代入した第1代入結果値と、他のクライアント装置から受信した公開鍵y(j,i)(=x(j)・g(j,i))と、格納している検査鍵G(j)とを当該ペアリング関数に代入した第2代入結果値とを比較し、第1代入結果値と第2代入結果値とが一致した場合に、検査鍵G(j),Y(j)に関連付けられている宛先装置jが暗号文C(j,i)の宛先である、と判定する。
【選択図】図8

Description

本発明は、情報セキュリティ技術に関し、特に、暗号化されたメッセージの匿名通信を行う技術に関する。
近年、公衆電話通信網の発達に従い、情報セキュリティ技術に注目が集まっている。情報セキュリティ技術は、情報理論や計算量理論など様々な背景技術に基づき構成されうる。中でも計算量理論に基づくものが効率等の面から最も実用的と考えられており、現在盛んに研究が行われている。このような計算量理論に基づく情報セキュリティ技術の一つに、離散対数問題に基づく公開鍵暗号であるElGamal暗号がある。
ElGamal暗号では、m∈Z を平文、(C,C)を暗号文とする。なお、pは、十分大きな素数であり、Z は、位数pの乗法群を意味する。
〔鍵生成〕
十分大きい素数pを生成し、乗法群Z の生成元gを求める。また、乱数x∈p−1を定め、y=gx mod pを計算する。なお、p−1は、0以上p−1未満の任意の整数を意味する。ここで、
<秘密鍵>x
<公開鍵>y,g,p
とする。但し、g,pは、システム共通の値であってもよい。
〔暗号化〕
乱数t∈p−1を生成し、Enc(m, y)=(C1, C2)=(gtmod p, m・yt mod p)によって平文mを暗号化する。
〔復号〕
Dec(C2, C1, x)=C2/C1 x mod p=mによって復号を行う。
このElGamal暗号では、暗号文と公開鍵だけから同じ平文に対する新しい暗号文を生成できる。この操作をre-encryption(再暗号化)と呼ぶ。2002年Philippe Golleらは、公開鍵と暗号文のペアのみから、対応する秘密鍵と平文の内容を変化させずに新しい公開鍵と暗号文のペアを出力するUniversal re-encryptionを提案した(例えば、非特許文献1参照)。このUniversal re-encryptionでは、u,uを乱数として、(g,y,C,C)を(gu0,yu0,C・gu1,C・yu1)とする操作を行う。ここで、gu0を乗法群Z の新しい生成元とみなせば、(gu0,yu0)は、上述と同じ秘密鍵xに対応する新しい公開鍵となり、(C・gu1,C・yu1)は、上述の秘密鍵x及び平文mに対する新しい暗号文となる。つまり、この操作により、秘密鍵x及び平文mの内容を変化させずに、公開鍵と暗号文のペアのみから、新しい公開鍵及び新しい暗号文を生成することができる。
ここで、この操作過程を知らず、なおかつ、u又は秘密鍵xを知らない者にとって、(g,y)と(gu0,yu0)とが同じ秘密鍵xに対応しているか否かを判断することは非常に難しい。このことは、上述の操作によって生成された新しい公開鍵が、どの公開鍵から生成されたのかを秘匿化できることを意味する。その結果、操作前の公開鍵が誰の公開鍵であるかが知られていたとしても、上述の操作過程を知らず、なおかつ、u又は秘密鍵xを知らない者は、新しく生成された新しい公開鍵が誰のものであるかを識別できない。即ち、新しい公開鍵は匿名性を持つ。
図13(a)(b)は、上述のようなUniversal re-encryptionによって公開鍵と暗号文とを更新しつつ匿名でデータ通信を行うシステムの構成を例示した概念図である。
図13(a)に例示するように、このシステムでは、Universal re-encryptionを行う機能を具備する複数のクライアント装置が通信可能に接続され、通信ネットワークを構成する。暗号文を生成するクライアント装置は、公開サーバ装置で公開されている必ずしも匿名でない公開鍵のリストから、暗号文の宛先の装置(宛先装置)となるクライアント装置で利用可能な秘密鍵に対応する公開鍵を取得する。公開鍵を取得したクライアント装置は、この公開鍵を用いて暗号文を生成し、さらに暗号文と公開鍵とのペアをUniversal re-encryptionし、他の任意のクライアント装置に送信する。なお、匿名性を維持するため、最初に暗号文を生成するクライアント装置は、宛先装置であるクライアント装置と直接通信を行わないものとする。他のクライアント装置から暗号文と公開鍵とのペアを受け取ったクライアント装置は、その暗号文が、自ら利用可能な秘密鍵によって復号可能であるか否かを判定し、復号可能な暗号文については秘密鍵を用いて復号し、復号できない暗号文については、その暗号文と対応する公開鍵とのペアをUniversal re-encryptionしてさらに他の任意なクライアント装置に送信する(図13(b)参照)。これにより、1以上のクライアント装置を中継し、不特定多数の匿名のメッセージを宛先装置であるクライアント装置に伝送することができる。
Philippe Golle, Markus Jakobsson, Ari Juels, and Paul Syverson, "Universal re-encryption for mixnets," In Proceedings of the 2004 RSA Conference, Cryptographer's track, San Francisco, USA, February 2004.
このようなシステムにおいて暗号文が宛先装置であるクライアント装置に到達するのは、その暗号文が、偶然、宛先装置であるクライアント装置に到達するときである。しかし、このような通信方法では効率が悪い。そのため、宛先装置以外の所定のクライアント装置に暗号文が到達した場合に、通信内容を秘密にしたまま宛先装置であるクライアント装置に暗号文が転送される仕組みとしておくことが望ましい。例えば、図13(a)のクライアント装置501が宛先装置である場合において、クライアント装置501に隣接するクライアント装置502にクライアント装置501宛の暗号文が到達した際、暗号文に対応する平文がクライアント装置502に知られることなく、暗号文がクライアント装置501に転送される仕組みとしておくことが望ましい。
しかし、従来構成においてこのような仕組みを実現するためには、宛先装置であるクライアント装置が他のクライアント装置に秘密鍵を渡すか、或いは、他のクライアント装置に暗号文が到達するたびに、宛先装置であるクライアント装置に対話的通信(問い合わせ)を行うしかなかった。ところが、前者の場合、宛先装置以外のクライアント装置も暗号文の復号を行うことができるため、当該暗号文に対応する平文の内容が他のクライアント装置に知られてしまう危険性がある。また、後者の場合には、対話的通信のための通信量が増大し、通信の効率化が図れない。
本発明はこのような点に鑑みてなされたものであり、匿名で暗号文を伝送する匿名暗号文通信システムにおいて、暗号文に対応する平文を他のクライアント装置に知られることなく、効率的に通信を行うことが可能な技術を提供することを目的とする。
本発明では、まず、暗号文の宛先となる宛先装置j(jは自然数)に対応する秘密鍵x(j)(x(j)は整数)と、有限体上に定義された楕円曲線E上の点から構成される第1巡回群の元である検査鍵G(j)と、楕円曲線E上の点から構成される第2巡回群の元である公開鍵g(j,1)とを生成する。さらに、検査鍵G(j)の楕円曲線E上でのx(j)倍算値Y(j)=x(j)・G(j)を、宛先装置jに対応する検査鍵Y(j)として求め、公開鍵g(j,1)の楕円曲線E上でのx(j)倍算値y(j,1)=x(j)・g(j,1)を、宛先装置jに対応する公開鍵y(j,1)とする。なお、「公開鍵」とは、不特定多数者に公開される鍵のみを意味するのではなく、特定多数者に共有されるパラメータをも含む概念である。
そして、ネットワークを構成する何れかの通信装置(例えば、クライアント装置)内に、上述の検査鍵G(j),Y(j)を宛先装置jと関連付けて格納し、1以上の通信装置を経由した匿名の暗号文通信を行う。
ここで、検査鍵G(j),Y(j)が格納された上記通信装置は、以下のように、受信した暗号文の宛先を判定する。
まず、この通信装置は、他の通信装置から送信された公開鍵g(j,i),公開鍵y(j,1)(iは自然数)と暗号文C(j,i)とを受信する。なお、公開鍵g(j,i)は、公開鍵g(j,1)が更新されたものであり、公開鍵g(j,1)の楕円曲線E上でのv倍算値(vは整数)である。また、公開鍵y(j,i)は、公開鍵y(j,1)が更新されたものであり、公開鍵y(j,1)の当該楕円曲線E上でのv倍算値である。また、暗号文C(j,i)は、公開鍵g(j,1)と上記公開鍵y(j,1)とを用いて生成された暗号文C(j,1)、或いは、当該暗号文C(j,1)を1回以上再暗号化した暗号文である。
次に、この通信装置は、ペアリング関数に公開鍵g(j,i)と検査鍵Y(j)とを代入した第1代入結果値を求め、さらに当該ペアリング関数に公開鍵y(j,i)と検査鍵G(j)とを代入した第2代入結果値を求める。そして、通信装置は、これらの第1代入結果値と第2代入結果値とを比較し、第1代入結果値と第2代入結果値とが一致した場合に、検査鍵G(j),Y(j)に関連付けられている宛先装置jが、暗号文C(j,i)の宛先である、と判定する。
ここで、宛先装置jに対応する検査鍵Y(j)と検査鍵G(j)とは、楕円曲線E上でのY(j)=x(j)・G(j)の関係を満たす(関係1)。また、公開鍵y(j,1)と公開鍵g(j,1)とは、楕円曲線E上でのy(j,1)=x(j)・g(j,1)の関係を満たす。さらに、公開鍵y(j,i)と公開鍵y(j,1)とは、楕円曲線E上でのy(j,i)=v・y(j,1)の関係を満たし、公開鍵g(j,i)と公開鍵g(j,1)とは、楕円曲線E上でのg(j,i)=v・g(j,1)の関係を満たす。そして、これらの各公開鍵は何れも第2巡回群の元となるためy(j,i)=x(j)・g(j,i)の関係も満たす(関係2)。そして、これらの(関係1)と(関係2)と、ペアリング関数の性質(詳細は後述)とにより、同じjに対応する第1代入結果値と第2代入結果値とは一致する。これにより、この通信装置は、更新された公開鍵g(j,i)とy(j,i)とが、検査鍵Y(j),G(j)及び宛先装置jに対応していることが分かる。
また、本発明において好ましくは、第2巡回群は、第1巡回群の何れの元も含まない。
ペアリング関数の性質(詳細は後述)により、ペアリング関数に代入される公開鍵と検査鍵とが同じ値であった場合、その代入結果値には、公開鍵と検査鍵との値が反映されず、必ず1となる。これは、本発明における暗号文の宛先判定の誤りの原因となる。検査鍵が属する第1巡回群と、公開鍵が属する第2巡回群とを重複させない構成とすることにより、このような問題を回避できる。
また、本発明において好ましくは、第1巡回群は、楕円曲線E上でのp倍算値(pは素数)が無限遠点となる楕円曲線E上の点Rの集合E[p]から、楕円曲線Eのフロベニウス写像の各固有値に関する各固有空間を除いた非固有空間における位数pの巡回群であり、第2巡回群は、楕円曲線Eのフロベニウス写像の何れかの固有値に関する固有空間である。なお、「フロベニウス写像」「固有値」「固有空間」の詳細については後述する。
このような第1巡回群と第2巡回群とは、元が重複しない。よって、ペアリング関数に代入される公開鍵と検査鍵とが一致し、その代入結果値が1になってしまい、暗号文の宛先を判定する際に誤りが発生してしまうことを防止できる。
さらに好ましくは、公開鍵g(j,1)は、集合E[p]上の元を第2巡回群に写す一方向性準同型写像である関数ψに、検査鍵G(j)を代入して生成され、検査鍵Y(j)は、検査鍵G(j)を楕円曲線E上でx(j)倍算を行って生成され、公開鍵y(j,1)は、検査鍵Y(j)を関数ψに代入して生成される。
このように、第2巡回群で、公開鍵g(j,1)の楕円曲線E上のx(j)倍算を実際に行って公開鍵y(j,1)を求めるのではなく、Y(j)=x(j)・G(j)の関係を満たす検査鍵G(j)と検査鍵Y(j)とを、それぞれ、一方向性準同型写像である関数ψによって第2巡回群に写し、公開鍵g(j,1)と公開鍵y(j,1)とを求めることにより、演算量が大きい楕円曲線E上でのスカラー倍算を削減することができる。また、関数ψの一方向性により、公開鍵g(j,1)と公開鍵y(j,1)のみから、検査鍵G(j)と検査鍵Y(j)とが知られてしまうことを抑制できる。さらに、関数ψの準同型性により、Y(j)=x(j)・G(j)の関係を満たす検査鍵G(j),Y(j)の関数ψによる各写像g(j,1),y(j,1)は、y(j,1)=x(j)・g(j,1)の関係を満たす。
また、さらに本発明において好ましくは、上記の関数ψは、一方向性同型写像である。これにより、検査鍵G(j)と公開鍵g(j,1)とが1対1で対応し、検査鍵Y(j)と公開鍵y(j,1)とが1対1で対応する。これにより、異なるjに対応する公開鍵が同一の検査鍵に対応したり、異なるjに対応する検査鍵が同一の公開鍵に対応したりし、セキュリティ上の問題や判定誤りの問題が生じることを防止できる。このような一方向性同型写像としては、例えば、楕円曲線Eを非超特異楕円曲線とした場合における、集合E[p]上の元を第2巡回群に写す射影を例示できる。
また、第1巡回群を、楕円曲線Eのフロベニウス写像の第1固有値に関する第1固有空間とし、第2巡回群を、楕円曲線Eのフロベニウス写像の第2固有値(≠第1固有値)に関する第2固有空間としてもよい。
このような第1巡回群と第2巡回群とは、元が重複しない。よって、ペアリング関数に代入される公開鍵と検査鍵とが一致し、その代入結果値が1になってしまい、暗号文の宛先を判定する際に誤りが発生してしまうことを防止できる。
本発明では、匿名で暗号文を伝送する匿名暗号文通信システムにおいて、暗号文に対応する平文を他のクライアント装置に知られることなく、効率的に通信を行うことができる。
以下、本発明を実施するための最良の形態を図面を参照して説明する。
〔技術的な前提・定義〕
まず、各実施の形態の説明に入る前に、技術的な前提や定義を説明する。
<楕円曲線>
まず、体K上で定義された楕円曲線について説明する。
一般に、体K上で定義された楕円曲線Eとは、a,a,a,a,a∈Kとして、等式
E: y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6 …(1)
を満たす点(x,y)の集合に無限遠点と呼ばれる特別な点Oを付加したものである。体K上に定義された楕円曲線E上の任意の2点に対して楕円加算と呼ばれる二項演算+及び楕円曲線E上の任意の1点に対して楕円逆元と呼ばれる単項演算−がそれぞれ有限回のKの体演算により定義できる。また、以下の性質を持つことにより、体K上に定義された楕円曲線Eは楕円加算に関して群をなす。
[1]体K上に定義された楕円曲線E上の任意の2点R,Rに対して、R+Rは楕円曲線E上の点である。
[2]体K上に定義された楕円曲線E上の任意の3点R,R,Rに対して、R+(R+R)=(R+R)+Rが成り立つ(結合律)。
[3]無限遠点Oに関して、体K上に定義された楕円曲線E上の任意の点Rに対して、R+O=O+R=Rが成り立つ(単位元の存在)。
[4]体K上に定義された楕円曲線E上の任意の点Rに対して逆元(−R)が存在してR+(−R)=(−R)+R=Oが成立する(逆元の存在)。
[5]体K上に定義された楕円曲線E上の任意の2点R,Rに対して、R+R=R+Rが成り立つ(交換律)。
体K上に定義された楕円曲線E上の1点Rがあれば、楕円加算を用いて2・R=R+Rとなる体K上に定義された楕円曲線E上の点2・Rを作ることができる。同様にして、3R=2・R+Rなどとすることにより、任意の正整数αに対してα・Rを定義することができる。また、任意の正整数αに対して(−α)・R=α・(−R)及び0・R=Oと定義すると、結局任意の整数βに対してβ・Rを定義することができる。このように整数βと体K上に定義された楕円曲線E上の点Rから点β・Rを求めることを楕円スカラー倍(或いは、楕円曲線E上の倍算)と呼ぶ。また、二項演算−をR−R=R+(−R)として定義し、これを楕円減算と呼ぶ。
特に、体Kが有限体であって、体K上の点、或いは体Kの有限次拡大上の点Rが式(1)上の点であるとき、点Rは有限巡回群を生成する。そして、この有限巡回群を用いて暗号系や署名系を構成することがしばしば行われる。このような暗号系や署名系では、楕円加算や楕円スカラー倍が効率的に計算可能な楕円曲線Eを用いる。
ここでpを素数とし、有限体上定義された楕円曲線E上の点Rのうち、p・R=Oを満たす点Rの集合をE[p]とする。この集合E[p]は以下の性質を有するので、集合E[p]は、楕円加算を加法とし、楕円スカラー倍をスカラー倍とする体Z/pZ上の線形空間であるといえる。
楕円加算に関して、
[1]E[p]上の任意の2点R,Rに対して、楕円加算R+RはE[p]上の点である。
[2]楕円加算の結合律は、E[p]上でも成立する。
[3]楕円加算の交換律は、E[p]上でも成立する。
[4]無限遠点OはE[p]上の点であり、E[p]上の任意の点Rに対して、O+R=Rが成立する。
[5]E[p]上の任意の点Rに対して逆元(−R)はE[p]上に唯一存在する。
楕円スカラー倍に関して、
[1]E[p]上の任意の点R及び体Z/pZの任意の元αに対して、楕円スカラー倍αはE[p]上の点である。
[2]E[p]上の任意の点R及び体Z/pZの任意の2元α,αに対して、(α+α)R=α・R+α・Rが成り立つ。
[3]E[p]上の任意の2点R,R及び体Z/pZの任意の元αに対して、α・(R+R)=α・R+α・Rが成り立つ。
[4]E[p]上の任意の点R及び体Z/pZの任意の2元α,αに対して、(α・α)・R=α・(α・R)が成り立つ。
[5]E[p]上の任意の点R及び体Z/pZの任意の乗法単位元1に対して、1・R=Rが成り立つ。
<楕円ElGamal暗号>
次に、楕円曲線Eに基づく楕円ElGamal暗号について説明する。楕円ElGamal暗号は、前述したElGamal暗号における有限体上の乗法演算を、楕円曲線E上の加法演算に対応させることで構成できる。
楕円ElGamal暗号では、m∈E[p]を平文、(C,C)∈E[p]を暗号文とする。
[鍵生成]
まず、生成元g∈E[p]を求める。そして、乱数x∈を定め、楕円曲線E上での楕円スカラー倍算値y=x・gを計算する。ここで、
[秘密鍵]x
[公開鍵]g,y,E[p]
とする。但し、g,E[p]は、システム共通の値であってもよい。
[暗号化]
乱数t∈を生成し、楕円曲線E上でEnc(m, y)=(C1, C2)=(t・g, m+t・y)の演算を行って平文mを暗号化する。
〔復号〕
楕円曲線E上でDnc(C2, C1, x)=C2‐x・C1=mの演算を行って復号を行う。
この楕円ElGamal暗号でも、暗号文と公開鍵だけから同じ平文に対する新しい暗号文を生成(再暗号化:re-encryption)できる。即ち、乱数等のランダム数u,uを定め、楕円曲線E上で(g, y, C1, C2)を(u0・g,u0・y,C1+u1・g,C2+u1・y)とする操作を行うことにより再暗号化できる。ここで、(u0・g,u0・y)は新たな公開鍵であり、(C1+u1・g,C2+u1・y)は、新たな暗号文となる。
<有限体のフロベニウス写像>
次に、有限体のフロベニウス写像について説明する。
ここで、γを整数、qを素数又はその冪とする。有限体GF(qγ)上の元wを表現するのに、有限体GF(q)上のγ個の元の組w(0≦i<γ)を用いることができる。γ個のw∈GF(q)(0≦i<γ)の組をGF(qγ)上の元に対応させる代表的な方法は、γ個のδ∈GF(qγ)(0≦i<γ)を使って、
Figure 2007295444
なる対応を取るものである。この時、δ∈GF(qγ)(0≦i<γ)は、GF(q)γとGF(qγ)とで1対1対応が取れるような特別な組み合わせであるとする。このような性質を持つδ∈GF(qγ)(0≦i<γ)を基底と呼ぶ。
ところで二項定理によれば、
Figure 2007295444
が成立する。右辺の各項の係数は二項係数と呼ばれる定数で、i≠0かつi≠qの場合、必ずqの倍数となる。δ,θ∈GF(qγ)の時は、qの整数倍は0と同値であるから、
(δ+θ)qqq
が成立する。さらに、c∈GF(q)なるcに関して、c=cが成立する。
一般に、δ,δ,…,δを不定元とする任意のGF(q)係数有利式f(δ,δ,…,δ)に対して、
f(δ,δ,…,δ)q=f(δ q,δ q,…,δ q) …(2)
が成立する。従って、
Figure 2007295444
δ∈GF(qγ),wi∈GF(q)
となるとき、
Figure 2007295444
が成立する。従って事前に
Figure 2007295444
なるcij∈GF(q)が求められていれば、
Figure 2007295444
によって、元の基底δを用いたwの表現が得られる。即ち、w∈GF(qγ)を表現するベクトル(w)に行列(cij)を掛けるだけでwを表現するベクトルが得られる。この演算コストは、一般には、GF(qγ)上の乗算1回分の演算コストとほぼ等しい。また、行列(cij(n=2,3,・・・)を事前に求めておけば、行列(cijを掛けるだけで、w(但しs=qとする。)を表現するベクトルを求めることができる。あるいは逆行列(cij−1を事前に求めておけば、逆行列(cij−1を掛けるだけでw1/qを表現するベクトルを得られる。従って、一般の整数nに対して、wの演算コストは一般にGF(qγ)上の乗算1回分の演算コストに等しくなる。さらに、行列(cij)が簡単になるような特別な基底が存在し、そのような基底を採用した場合、wの演算コストはGF(qγ)上の乗算と比較して無視できるほどに小さくなる。
そして、GF(qγ)上の元wからwへの写像をフロベニウス写像と呼び、整数nに関して、wからwへの写像をq乗フロベニウス写像と呼ぶ。
<楕円曲線のフロベニウス写像>
次に、楕円曲線のフロベニウス写像について説明する。
γを整数、qを素数又はその冪とする。有限体GF(q)上に定義された(a,a,a,a,a∈GF(q)とする)楕円曲線
E: y2+a1・x・y+a3・y=x3+a2・x2+a4・x+a6 …(3)
上の有限体GF(qγ)有理点RをR=(r,r)とする。そして、
Figure 2007295444
を満たすφを、楕円曲線Eのフロベニウス写像と呼ぶ。式(2)に示した有限体のフロベニウス写像の性質により、点Rが有限体GF(q)上に定義された楕円曲線E上の点であるならば、点φRも、この楕円曲線E上の点であるといえる。一般に、有限体GF(q)上に定義された楕円曲線E上の点の楕円加算及び楕円スカラー倍は、与えられる点の座標に関するGF(q)係数有理写像で与えられる。そして、有限体のフロベニウス写像の式(2)に示される性質から、下記の性質が成り立つので、フロベニウス写像φは線形空間E[p]の線形変換であるといえる。
[1]楕円曲線のフロベニウス写像は、有限体GF(q)上に定義された楕円曲線E上の自己同型写像である。つまり、φ(R+R)=(φR)+(φR)が成り立つ。
[2]楕円スカラー倍と楕円曲線のフロベニウス写像は可換である。つまり、φ(α・R)=α(φR)が成り立つ。
[3]特に、E[p]上の点は楕円曲線のフロベニウス写像によってE[p]上の点に移る。つまり、∀R∈E[p],p(φR)=φ(p・R)=Oである。
nを整数として、一般に楕円曲線Eのq乗フロベニウス写像φは、
Figure 2007295444
と定義されるが、上記の楕円曲線Eのフロベニウス写像φの性質は、楕円曲線Eのq乗フロベニウス写像φでも同様に成立する。
<フロベニウス写像の固有空間と射影>
次に、フロベニウス写像の固有空間と射影について説明する。
参考文献1:「イアン・F・ブラケ,ガディエル・セロッシ,ナイジェル・P・スマート=著、鈴木治郎=訳,「楕円曲線暗号」,出版=ピアソン・エデュケーション,ISBN4-89471-431-0,p112」
にあるように、フロベニウス写像φは式(3)で表される楕円曲線上の任意のGF(qγ)有理点Rに対して、
2‐t・φ+q)・R=O …(4)
を満たす(但しtは、q,a,a,a,a,aによって一意に決定される整数である。)。フロベニウス写像φに関する多項式φ2‐t・φ+qを特性多項式と呼ぶ。楕円曲線をE[p](但しpは素数とする。)に限定すると、楕円スカラー倍はZ/pZで考えればよい。Z/pZ係数の特性多項式は分解体上で、
φ2‐t・φ+q=(φ‐λ)(φ‐λ2) …(4-1)
と分解でき、λ、λをフロベニウス写像φの固有値と呼ぶ。以下においては、λ、λ∈Z/pZでかつλ≠λである場合を考える。線形空間であるE[p]の線形変換関数ψλ1,ψλ2(但し、下付き添え字のλ1及びλ2は、それぞれλ及びλを表す。)を
ψλ1=(λ1‐λ2)-1(φ‐λ2) …(4-2)
ψλ2=(λ2‐λ1)-1(φ‐λ1) …(4-3)
と定義すると、任意のE[p]上の点Rに対して、
P=ψλ1R=(λ1‐λ2)-1(φR‐λ2R) …(5)
Q=ψλ2R=(λ2‐λ1)-1(φR‐λ1R) …(6)
なるE[L]上の点P,Qが存在し、点Rは、
R=P+Q …(7)
と一意に分解できる。
線形空間E[p]の線形変換関数ψλ1による像ψλ1(E[p])を、「フロベニウス写像φの固有値λに関する固有空間」と呼び、固有空間ψλ1(E[p])上の任意の点Pに関して、
φP=λP
が成り立つ。また、楕円曲線E上の点から固有空間ψλ1(E[p])への準同型写像を、ψλ1(E[p])への「射影」と呼ぶ。さらに、この射影がE[p]の元を固有空間ψλ1(E[p])へ写すものであった場合、この射影は同型写像となる。なお、線形変換関数ψλ1は、E[p]からψλ1(E[p])への同型写像である射影の1つである。
同様に、線形空間E[p]の線形変換関数ψλ2による像ψλ2(E[p])を、「フロベニウス写像φの固有値λに関する固有空間」と呼び、固有空間ψλ2(E[p])上の任意の点Qに関して、
φQ=λ2Q
が成り立つ。楕円曲線E上の点から固有空間ψλ2(E[p])への準同型写像を、ψλ2(E[p])への「射影」と呼ぶ。さらに、この射影がE[p]の元を固有空間ψλ2(E[p])へ写すものであった場合、この射影は同型写像となる。なお、線形変換関数ψλ2は、ψλ2(E[p])への同型写像である射影の1つである。また、式(7)に示される分解を、フロベニウス写像φの固有空間に関する固有分解と呼ぶ。固有空間は、それぞれ、位数pの巡回群となり、
E[p]=ψλ1(E[p])×ψλ2(E[p])
を満たす。
一般に、q乗フロベニウス写像φに関しても、E[p]に関するZ/pZ係数の特性多項式
)2‐tn・(φ)+q=(φ‐λ )(φ‐λ2 )
(tnはt,n,qによって決まる整数)を考えることによって、上記と同様に、固有値、固有空間、固有分解、射影などを構成できる。そこで、本発明における「フロベニウス写像φ」とはq乗フロベニウス写像φ(nは1以上の整数)をいうものとする。
<射影の一方向性>
次に、射影の一方向性について説明する。pが十分に大きい素数であるとして、E[p]に関して、フロベニウス写像φの固有値λ,λが、λ,λ∈Z/pZかつλ≠λである場合を考える。固有空間ψλ1(E[p])の任意の生成元P’及び固有空間ψλ2(E[p])の任意の生成元Q’を用い、E[p]上の任意の点Rは、
R=α・P’+α・Q’
と書ける(但し、α,α∈Z/pZである)。点Rを生成元として生成される巡回群〈R〉上の任意の点R1から、固有空間ψλ1(E[p])或いは固有空間ψλ2(E[p])への射影は、それぞれ式(5)(6)に従って、楕円加算、楕円逆元、楕円スカラー倍、フロベニウス写像を用いて効率的に演算できる。一方、α≠0かつα≠0の時、R1の射影P1=ψλ11或いはQ1=ψλ21のいずれか一方からR1を求めることは、楕円曲線Eが超特異楕円曲線(supersingularcurve)である場合を除いて、一般には困難である。即ち、射影は一方向性を有する。
<ペアリング>
次に、ペアリング(pairing)について説明する。なお、本明細書で用いる「ペアリング関数」との用語もペアリングと同義である。
参考文献2:「Alfred. J. Menezes,ELLIPTIC CURVE PUBLIC KEY CRYPTOSYSTEMS,KLUWER ACADEMIC PUBLISHERS, ISBN0-7923-9368-6,pp. 61-81」
μを、楕円曲線の定義体Kの代数閉体上の乗法単位元1のp乗根の作る乗法群とする。参考文献2に示すように、ペアリングeとは、
:E[p]×E[p]=μ …(8)
なる関数であり、次の性質を持つ。
[1]E[p]上の任意の点Rに対して、e(R,R)=1が成り立つ。
[2]E[p]上の任意の2点R、Rに対して、e(R,R)=e(R,R−1が成り立つ。
[3]E[p]上の任意の3点R,R,Rに対して、e(R+R,R)=e(R,R)e(R,R)であり、e(R,R+R)=e(R,R)e(R,R)が成り立つ。
[4]E[p]上の任意の点Rに対して、e(R,O)=1が成り立つ。
[5]E[p]上のある点RがE[p]上の全ての点Rに対して、e(R,R)=1を満たすなら、R=Oが成り立つ。
なお、ペアリングeの具体例としては、参考文献2に示されるWeilペアリングやTateペアリングなどを挙げることができる。また、ペアリングが効率的に計算可能な非超特異楕円曲線(non-supersingular curve)の生成方法については、以下の参考文献などに開示されている。
参考文献3:「A. Miyaji, M. Nakabayashi, S.Takano, "New explicit conditions of elliptic curve Traces for FR-Reduction," IEICE Trans. Fundamentals, vol. E84-A, no05, pp. 1234-1243, May 2001」
参考文献4:「M. Scott, P. S. L. M. Barreto, "Generating more NMT elliptic curve s," http://eprint .iacr. org/2004/058/」
参考文献5:「P.S.L.M. Barreto, B. Lynn, M. Scott, "Constructing elliptic curves with prescribed embedding degrees," Proc. SCN '2002, LNCS 2576, pp.257-267, Springer-Verlag. 2003」
参考文献6:「R. Dupont, A. Enge, F. Morain, "Building curves with arbitrary small MOV degree over finite prime fields," http://eprint.iacr.org/2002/094/」
〔第1の実施の形態〕
次に、本発明における第1の実施の形態について説明する。
<構成>
まず、第1の実施の形態の構成について説明する。
[全体構成]
まず、第1の実施の形態における匿名暗号文通信システム1の全体構成を説明する。
図1は、第1の実施の形態における匿名暗号文通信システム1の全体構成を例示した概念図である。
図1に例示するように、匿名暗号文通信システム1は、鍵生成を行う鍵生成装置10と、クライアント装置20,30−1,30−2,30−3,30−4,50等と、公開サーバ装置60とを有している。各装置は、例えば、所定のプログラムが公知の通信可能なコンピュータに読み込まれることにより構成される。
鍵生成装置10は、本システムに用いられる暗号化のための秘密鍵、公開鍵、及び検査鍵を生成する装置である。また、公開サーバ装置60は、鍵生成装置10で生成された公開鍵を本システム上で公開するサーバ装置である。
また、クライアント装置20,30−1,30−2,30−3,30−4,50は、暗号文の生成、中継、受け取りの各処理がなされるネットワーク上のノードである。匿名通信の前提として、暗号文を生成するクライアント装置、暗号文を中継するクライアント装置、及び、最終的に暗号文を受け取るクライアント装置は、通信のたびに任意に決まる。しかし、本形態では、一例として、クライアント装置20で暗号文が生成され、クライアント装置30−1,30−2,30−3等が再暗号化を行いながら暗号文を中継し、クライアント装置50に暗号文が伝送される様子を示す。
各クライアント装置20,30−1,30−2,30−3,30−4,50等は、ピア・ツー・ピア(peer-to-peer)の通信方式、或いは、図示していない特定の通信サーバ装置を経由した通信方式などによって、1以上の他のクライアント装置と通信可能に構成される。図1の例の場合、クライアント装置20は、クライアント装置30−1と通信可能に構成され、クライアント装置30−1は、クライアント装置30−2,30−3と通信可能に構成され、クライアント装置30−2は、クライアント装置30−4,50と通信可能に構成されている。なお、どのクライアント装置とクライアント装置とを通信可能とするかは事前に静的に定めておいてもよいし、通信環境などに応じて動的に変更してもよい。
また、鍵生成装置10は、公開サーバ装置60と、LAN(Local Area Network)やインターネットなどを通じて通信可能に構成されている。また、公開サーバ装置60は、インターネットなどを通じて各クライアント装置と通信可能に構成されている。さらに、鍵生成装置10は、少なくとも一部のクライアント装置の秘密鍵を生成するが、この秘密鍵をそのクライアント装置にネットワークを通じて送信する場合には、盗聴や改竄等の問題を考慮した通信回線を必要とする(図示せず)。
[鍵生成装置10の構成]
次に、鍵生成装置10の構成を説明する。
図2は、第1の実施の形態における鍵生成装置10のハードウェア構成を例示したブロック図である。
図2に例示するように、この例の鍵生成装置10は、CPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16、バス17及び通信部18を有している。
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、この例の入力部12は、データが入力される入力ポート、キーボード、マウス等であり、出力部13は、データを出力する出力ポート、外部記録媒体へのデータ記憶装置、印刷装置、ディスプレイなどである。補助記憶装置14は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、各種プログラムを格納したプログラム領域14a及び各種データが格納されるデータ領域14bを有している。また、RAM16は、例えば、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、上記のプログラムが書き込まれるプログラム領域16a及び各種データが書き込まれるデータ領域16bを有している。また、通信部18は、ネットワークカードなどである。また、この例のバス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15、RAM16及び通信部18を、データのやり取りが可能なように接続する。
図3は、CPU11にプログラムが読み込まれることにより構成される第1の実施の形態における鍵生成装置10の機能構成を例示したブロック図である。なお、図3における矢印はデータの流れを示すが、一時メモリ10iや制御部10jに入出力されるデータの流れは省略してある。
図3に例示するように、鍵生成装置10は、メモリ10aと、ランダム数生成部10bと、検査鍵生成部10c,10dと、公開鍵生成部10e,10fと、送信部10gと、出力部10hと、一時メモリ10iと、制御部10jとを有している。また、メモリ10aは、格納部10aa〜10agを有している。なお、メモリ10a及び一時メモリ10iは、例えば、図2に記載したレジスタ11c、補助記憶装置14、RAM16、或いはこれらを結合した記憶領域に相当する。また、ランダム数生成部10b、検査鍵生成部10c,10d、公開鍵生成部10e,10f及び制御部10jは、それぞれ処理を実現するためのプログラムがCPU11に読み込まれることにより構成されるものである。また、送信部10gは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する通信部18であり、出力部10hは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する出力部13である。また、鍵生成装置10は、制御部10jの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ10iに読み書きされる。
[クライアント装置20の詳細構成]
次に、クライアント装置20の詳細構成を説明する。
図4は、第1の実施の形態のクライアント装置20の機能構成を例示したブロック図である。なお、前述のように、本形態では、クライアント装置20が暗号文を生成する場合を例にとって説明する。そこで、クライアント装置20については、暗号文の生成に関連する機能構成のみを説明し、他の機能構成の説明を省略する。すなわち、クライアント装置20は、暗号文を中継するクライアント装置30−1,30−2,30−3,30−4などの機能構成を具備していてもよいし、具備していなくてもよい。
クライアント装置20も図2のような通信可能な公知のコンピュータに所定のプログラムが実行されることにより構成される。図4に例示するように、本形態のクライアント装置20は、メモリ20aと、受信部20bと、入力部20cと、ランダム数生成部20dと、暗号化部20eと、再暗号化部20fと、送信部20gと、一時メモリ20hと、制御部20iとを有している。また、メモリ20aは、格納部20aa〜20ajを有し、再暗号化部20fは、ランダム数生成部20faと、公開鍵更新部20fbと、暗号文更新部20fcとを有している。なお、メモリ20a及び一時メモリ20hは、例えば、図2に記載したレジスタ11c、補助記憶装置14、RAM16、或いはこれらを結合した記憶領域に相当する。また、ランダム数生成部20d、暗号化部20e、再暗号化部20f及び制御部20iは、それぞれ処理を実現するためのプログラムがCPU11に読み込まれることにより構成されるものである。また、受信部20b及び送信部20gは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する通信部18である。また、入力部20cは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する入力部12である。また、クライアント装置20は、制御部20iの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ20hに読み書きされる。
[クライアント装置30の詳細構成]
次に、クライアント装置30の詳細構成を説明する。
図5は、クライアント装置30の機能構成を例示したブロック図である。なお、クライアント装置30とは、暗号文の中継を行うクライアント装置30−1,30−2,30−3,30−4である。以下、クライアント装置30−1,30−2,30−3,30−4を総称する場合には、クライアント装置30と表現し、クライアント装置30−1,30−2,30−3,30−4を区別する必要がある場合には、クライアント装置30−1,30−2,30−3,30−4と表現する。なお、前述のように、本形態では、クライアント装置30が暗号文の中継を行う場合を例にとって説明する。そこで、クライアント装置30については、暗号文の中継に関連する機能構成のみを説明し、他の機能構成の説明を省略する。すなわち、クライアント装置30は、暗号文を生成するクライアント装置20の機能構成を具備していてもよいし、具備していなくてもよい。
図5に例示するように、クライアント装置30は、メモリ30aと、受信部30bと、ペアリング演算部30cと、ペアリング演算部30dと、判定部30eaと、再暗号化部30fと、送信部30gと、一時メモリ30hと、制御部30iとを有している。また、メモリ30aは、格納部30aa〜30akを有し、判定部30eは、比較部30eaと判定処理部30ebとを有する。さらに、再暗号化部30fは、ランダム数生成部30faと、公開鍵更新部30fbと、暗号文更新部30fcとを有する。なお、メモリ30a及び一時メモリ30hは、例えば、図2に記載したレジスタ11c、補助記憶装置14、RAM16、或いはこれらを結合した記憶領域に相当する。また、ペアリング演算部30c、ペアリング演算部30d、判定部30ea、再暗号化部30f、及び制御部30iは、それぞれ処理を実現するためのプログラムがCPU11に読み込まれることにより構成されるものである。また、受信部30b及び送信部30gは、所定のプログラムが読み込まれたCPU11の制御のもと駆動する通信部18である。また、クライアント装置30は、制御部30iの制御のもと各処理を実行する。さらに、特に明示しない限り、演算過程の各データは逐一一時メモリ30hに読み書きされる。
<処理>
次に、第1の実施の形態における処理を説明する。
[前処理]
まず、前述の参考文献3〜6に記載されている手法などを用い、ペアリングが効率的に計算可能な有限上に定義された非超特異楕円曲線である楕円曲線Eを生成する。次に、生成された楕円曲線E上の点Rのうち、p・R=Oを満たす点Rの集合E[p]を生成する。なお、集合E[p]の具体的なデータ構成としては、例えば、集合E[p]の各元を示すデータや、集合E[p]を導出可能な数式やパラメータなどを例示できる。すなわち、集合E[p]の元の選択処理や、集合E[p]上での楕円加算や楕円スカラー倍算等を行うために必要な情報が反映されたデータ構成であればよい。さらに、生成された楕円曲線Eのパラメータを用い、楕円曲線Eに対応する特性多項式を求め、さらに楕円曲線のフロベニウス写像φの固有値λ1,λ2を求める(式(4−1)参照)。また、楕円曲線のフロベニウス写像φと固有値λ1,λ2とを用い、式(4−2)(4−3)により、線形変換関数ψλ1,ψλ2を生成する。ここまでの演算は、鍵生成装置10で行ってもよいし、図示していない他のコンピュータを用いてもよい。
以上のように生成された集合E[p]は、鍵生成装置10のメモリ10aの格納部10aaと、クライアント装置20,30の各メモリ20a,30aの格納部20aa,30aaに格納される。また、生成された線形変換関数ψλ1,ψλ2と固有値λ1,λ2とは、鍵生成装置10のメモリ10aの格納部10abに格納される。なお、集合E[p]、線形変換関数ψλ1,ψλ2、固有値λ1,λ2は、一旦公開サーバ装置60に公開された後、各クライアント装置にダウンロードされてもよいし、各装置を構成するためのプログラムやデータに予め格納される構成であってもよい。
[鍵生成装置10の処理]
次に、鍵生成装置10の処理について説明する。
図6は、第1の実施の形態の鍵生成装置10の処理を説明するためのフローチャートである。以下、このフローチャートに従い、第1の実施の形態の鍵生成装置10の処理を説明する。
まず、鍵生成装置10のランダム数生成部10bが、暗号文の宛先となる宛先装置j(jは自然数)であるクライアント装置50に対応する整数の秘密鍵x(j)(x(j)∈UZp,pは素数)をランダムに生成し、メモリ10aの格納部10adに格納する(ステップS1)。なお、この秘密鍵x(j)の生成には、例えば、SHA-1等の一方向性ハッシュ関数を用いて構成される、計算量理論に基づく擬似乱数生成アルゴリズムなどを用いる。また、例えば、乱数表やクライアント装置50などから提供された秘密情報などを用い、クライアント装置間で重複しないように秘密鍵x(j)を設定してもよい。
次に、検査鍵生成部10cが、メモリ10aの格納部10aaから集合E[p]を読み込み、格納部10abから線形変換関数ψλ1,ψλ2を読み込む。そして、検査鍵生成部10cは、これらを用い、集合E[p]から各固有空間ψλ1(E[p]),ψλ2(E[p])を除いた「非固有空間」における位数pの巡回群(第1巡回群)の元を、宛先装置jであるクライアント装置50に対応する検査鍵G(j)として選択し、メモリ10aの格納部10acに格納する(ステップS2)。
また、検査鍵生成部10dが、メモリ10aの格納部10aaから集合E[p]を読み込み、格納部10acから検査鍵G(j)を読み込み、格納部10adから秘密鍵x(j)を読み込む。そして、検査鍵生成部10dは、これらの情報を用い、検査鍵G(j)の楕円曲線E上でのx(j)倍算Y(j)=x(j)・G(j)を実際に行って、宛先装置jであるクライアント装置50の検査鍵Y(j)を求め、メモリ10aの格納部10aeに格納する(ステップS3)。
また、公開鍵生成部10eが、集合E[p]上の元を固有空間ψλ1(E[p])に写す射影である関数ψに、メモリ10aの格納部10acから読み込んだ検査鍵G(j)を代入し、その代入結果ψ(G(j))を公開鍵g(j,1)とし、メモリ10aの格納部10afに格納する(ステップS4)。なお、関数ψとしては、例えば、線形変換関数ψλ1や、(λ1-λ2)ψλ1などが例示でき、公開鍵生成部10eは、メモリ10aの格納部10abから読み込んだ各データを用いて関数ψを生成する。また、本形態の関数ψは一方向性同型写像となる(〔技術的な前提・定義〕参照)。さらに、固有空間ψλ1(E[p])は、位数pの巡回群(第2巡回群)となり(〔技術的な前提・定義〕参照)、上述した「非固有空間」における位数pの巡回群(第1巡回群)の何れの元も含まない。また、公開鍵生成部10eの処理は、固有空間ψλ1(E[p])(第2巡回群)の元を公開鍵g(j,1)として生成する処理に相当する。
次に、公開鍵生成部10fが、メモリ10aの格納部10aeから読み込んだ検査鍵Y(j)を、公開鍵生成部10eで用いたのと同じ関数ψに代入し、その代入結果ψ(Y(j))を公開鍵y(j,1)として、メモリ10aの格納部10agに格納する(ステップS5)。なお、ステップ3よりY(j)=x(j)・G(j)の関係を満たす。また、関数ψは同型写像である。よって、ステップS4及びS5で求められたg(j,1)=ψ(G(j))とy(j,1)=ψ(Y(j))とは、y(j,1)=x(j)・g(j,1)の関係を満たす。すなわち、公開鍵生成部10fの処理は、公開鍵g(j,1)の楕円曲線E上でのx(j)倍算値y(j,1)=x(j)・g(j,1)を公開鍵y(j,1)として求める処理に相当する。
その後、送信部10gは、メモリ10aの格納部10af,10agからそれぞれ読み込まれた公開鍵g(j,1)と公開鍵y(j,1)とを公開サーバ装置60に送信する(ステップS6)。公開サーバ装置60は、送信された公開鍵g(j,1)と公開鍵y(j,1)とを、宛先装置jであるクライアント装置50に対応する公開鍵として公開する。具体的には、公開サーバ装置60は、例えば、公開鍵g(j,1)と公開鍵y(j,1)とを宛先装置jであるクライアント装置50に関連付けた公開鍵リストを、ネットワークを通じてアクセス可能な記録媒体に格納し、クライアント装置等からの要求に応じて公開鍵g(j,1)と公開鍵y(j,1)とを配信する。
また、出力部10hは、メモリ10aの格納部10ac,10ad,10aeからそれぞれ読み込んだ検査鍵G(j)と秘密鍵x(j)と検査鍵Y(j)とを出力する(ステップS7)。出力された秘密鍵x(j)及び検査鍵G(j),Y(j)は、安全にクライアント装置50に届けられる。具体的には、例えば、秘密鍵x(j)及び検査鍵G(j),Y(j)を格納した記録媒体をクライアント装置50の管理者に送付したり、更に別の暗号によって秘密鍵x(j)及び検査鍵G(j),Y(j)をクライアント装置50に配送したりする。
秘密鍵x(j)及び検査鍵G(j),Y(j)は、クライアント装置50内のメモリに安全に格納される。さらに、クライアント装置50或いはその管理者は、検査鍵G(j)
,Y(j)を所定のクライアント装置に渡す。本形態では、クライアント装置30−2にクライアント装置50に対応する検査鍵G(j),Y(j)が渡される。クライアント装置30−2は、そのメモリ30aの格納部30aeに、検査鍵G(j),Y(j)を宛先装置jであるクライアント装置50に関連付けて格納する。なお、クライアント装置30−1には、クライアント装置50以外のクライアント装置に対応する検査鍵が格納されているものとする。
[暗号文生成処理]
次に、クライアント装置20が行う暗号文生成処理について説明する。
図7は、第1の実施の形態における暗号文生成処理を説明するためのフローチャートである。以下、図7を用いて、クライアント装置20の暗号文生成処理を説明する。
まず、クライアント装置20は、公開サーバ装置60にアクセスし、宛先装置jであるクライアント装置50に対応する公開鍵g(j,1)と公開鍵y(j,1)との送信を要求する。この要求に対し、公開サーバ装置60は、公開鍵g(j,1)と公開鍵y(j,1)とをクライアント装置20に送信し、クライアント装置20は、受信部20bでこれを受信する。受信された公開鍵g(j,1)と公開鍵y(j,1)とは、それぞれメモリ20aの格納部20ab,20acに格納される(ステップS11)。
次に、入力部20cに暗号化を行う平文m∈E[p]が入力され、メモリ20aの格納部20adに格納される(ステップS12)。また、ランダム数生成部20dが、整数の
ランダム数t(t∈UZp)を生成してメモリ20aの格納部20aeに格納する(ステップS13)。なお、ランダム数tの生成には、例えば、所定の擬似乱数生成アルゴリズムを用いるが、特にこれには限定されず、ランダム数tはシリアルに生成される値であってもよいし、固定値であってもよい。また、ランダム数tが固定値である場合、ステップS13の処理を省略してもよい。
次に、暗号化部20eが、メモリ20aの格納部20aa,20ab,20acから、それぞれ、集合E[p],公開鍵g(j,1),y(j,1)を読み込む。そして、暗号化部20eは、集合E[p]上での楕円ElGamal暗号方式によって平文mの暗号文C(j,1)=(C1,1,C1,2)を生成し、暗号文C(j,1)をメモリ20aの格納部20afに格納する(ステップS14)。すなわち、暗号化部20eは、楕円曲線E上での楕円スカラー倍算C1,1=t・g(j,1)によってC1,1を算出し、楕円曲線E上での楕円スカラー倍算t・y(j,1)と楕円加算C1,2=t・y(j,1)+mとによってC1,2を算出し、暗号文C(j,1)をメモリ20aの格納部20afに格納する。なお、tが1である場合には、楕円スカラー倍算は不要である。
次に、再暗号化部20fのランダム数生成部20faが、整数のランダム数u,u(u,u)を生成してメモリ20aの格納部20ajに格納する(ステップS15)。ランダム数u,uの生成には、例えば、擬似乱数生成アルゴリズムを用いる。
次に、再暗号化部20fの公開鍵更新部20fbが、メモリ20aの格納部20aa,20ab,20ac,20ajから、それぞれ、集合E[p],公開鍵g(j,1),y(j,1),ランダム数uを読み込む。そして、公開鍵更新部20fbは、楕円曲線E上での楕円スカラー倍算によってg(j,2)=u0・g(j,1)とy(j,2)=u0y(j,1)とを求め、これらを新たな公開鍵g(j,2),y(j,2)として、メモリ20aの格納部20ag,20ahにそれぞれ格納する(ステップS16)。
さらに、再暗号化部20fの暗号文更新部20fcが、メモリ20aの格納部20aa,20af,20ajから、それぞれ、集合E[p],暗号文C(j,1)=(C1,1,C1,2),ランダム数uを読み込む。そして、暗号文更新部20fcは、楕円曲線E上での楕円スカラー倍算によってu1・g(j,1)とu1・y(j,1)とを求め、楕円曲線E上での楕円加算によって
C2,1=C1,1+u1・g(j,1)とC2,2=C1,2+u1・y(j,1)とを求め、C(j,2)=(C2,1,C2,2)を新たな暗号文として、メモリ20aの格納部20aiに格納する(ステップS17)。
このように生成された暗号文C(j,2)と公開鍵g(j,2),y(j,2)とは、それぞれ、メモリ20aの格納部20ai,20ag,20ahから読み込まれ、送信部20gから他の任意なクライアント装置30-1に送信される(ステップS18)。
[中継通信処理]
ここでは、まず、クライアント装置30が実行する中継通信処理について説明し、その後、クライアント装置30−1,30−2の具体的な処理を説明する。
図8は、クライアント装置30が実行する中継通信処理を説明するためのフローチャートである。まず、このフローチャートを用いて、クライアント装置30の中継通信処理を説明する。
まず、クライアント装置30の受信部30bは、他のクライアント装置から送信された暗号文C(j,i)と公開鍵g(j,i)と公開鍵y(j,i)とを受信し、それらを、それぞれ、メモリ30aの格納部30ab,30ac,30adに格納する(ステップS21)。なお、iは自然数であり、暗号文及び公開鍵の初期値にはi=1が対応し、これらが更新されるたびにi=i+1によって更新されていく。暗号文を生成するクライアント装置20も、暗号文及び公開鍵を1回更新する本形態の例では、クライアント装置20から暗号文及び公開鍵が送信された時点でi=2となっている。
次に、制御部30iが、メモリ30aに何れかのクライアント装置に対応する検査鍵が格納されているか否かを判断する(ステップS22)。ここで、検査鍵が格納されていないと判断された場合には、ステップS27に進む(ステップS27の処理は後述する)。一方、検査鍵が格納されていると判断された場合、ペアリング演算部30cは、メモリ30aの格納部30ac,30aeから、それぞれ、公開鍵g(j,i),検査鍵Y(j’)を読み込み、これらをペアリング関数eに代入した第1代入結果値e(g(j,i),Y(j’))を求める。この第1代入結果値e(g(j,i),Y(j’))は、メモリ30aの格納部30afに格納される(ステップS23)。さらに、ペアリング演算部30dは、メモリ30aの格納部30ad,30aeから、それぞれ、公開鍵y(j,i),検査鍵G(j’)を読み込み、これらをペアリング関数eに代入した第2代入結果値e(y(j,i),G(j’))を求める。この第2代入結果値e(y(j,i),G(j’))は、メモリ30aの格納部30agに格納される(ステップS24)。
その後、判定部30eの比較部30eaが、メモリ30aの格納部30af,30agから、それぞれ、第1代入結果値e(g(j,i),Y(j’))と第2代入結果値e(y(j,i),G(j’))とを読み込み、これらが一致するか否かを判断する(ステップS25)。
ここで、ep(g(j,i),Y(j’))=ep(y(j,i),G(j’))であると判断された場合、判定部30eの判定処理部30ebは、メモリ30aの格納部30aeで検査鍵G(j’),Y(j’)に関連付けられている宛先装置j’が、暗号文C(j,i)の宛先であると判定し、送信部30gに、格納部30abに格納されている暗号文C(j,i)を、宛先装置j’であるクライアント装置50に送信させる。
[ep(g(j,i),Y(j’))=ep(y(j,i),G(j’))により宛先が判定できる理由]
検査鍵G(j’),Y(j’)に関連付けられている宛先装置j’が、暗号文C(j,i)の宛先であるとは、j=j’であるということである。j=j’である場合、第1代入結果値はe(g(j,i),Y(j))となる。そして、前述のステップS3よりY(j)=x(j)・G(j)の関係を満たすため、第1代入結果値はe(g(j,i),x(j)・G(j))と書ける。さらに、〔技術的な前提・定義〕で説明したペアリングの性質[3]「E[p]上の任意の3点R,R,Rに対して、e(R+R,R)=e(R,R)e(R,R)であり、e(R,R+R)=e(R,R)e(R,R)が成り立つ。」により、第1代入結果値はx(j)・e(g(j,i),G(j))と変形できる。
一方、j=j’である場合、第2代入結果値はe(y(j,i),G(j))となる。また、前述のように、関数ψは同型写像であるため、ステップS4及びS5で求められたg(j,1)=ψ(G(j))とy(j,1)=ψ(Y(j))とは、y(j,1)=x(j)・g(j,1)の関係を満たす。さらに、公開鍵y(j,i)と公開鍵y(j,1)とは、楕円曲線E上でのy(j,i)=v・y(j,1)の関係を満たし、公開鍵g(j,i)と公開鍵g(j,1)とは、楕円曲線E上でのg(j,i)=v・g(j,1)の関係を満たす。ただし、vは整数である。そして、これらの各公開鍵は何れも固有空間ψλ1(E[p])(第2巡回群)の元となるためy(j,i)=x(j)・g(j,i)の関係も満たす。よって、第2代入結果値はe(x(j)・g(j,i),G(j))と書ける。そして、上述のペアリングの性質[3]より、第2代入結果値はx(j)・e(g(j,i),G(j))と変形できる。
以上より、j=j’である場合、ep(g(j,i),Y(j’))=ep(y(j,i),G(j’))を満たすことがいえる。また、検査鍵Y(j’), G(j’)が属する非固有空間(第1巡回群)と、公開鍵g(j,i), y(j,i)が属する固有空間ψλ1(E[p])(第2巡回群)とは、相互に元が重複しない。よって、〔技術的な前提・定義〕で説明したペアリングの性質[1]「E[p]上の任意の点Rに対して、e(R,R)=1が成り立つ。」によってj≠j’のときにep(g(j,i),Y(j’))=ep(y(j,i),G(j’))=1となってしまうこともない。以上より、検査鍵Y(j’), G(j’)が属する非固有空間(第1巡回群)と、公開鍵g(j,i), y(j,i)が属する固有空間ψλ1(E[p])(第2巡回群)との位数が十分に大きければ、ep(g(j,i),Y(j’))=ep(y(j,i),G(j’))を満たす場合、j=j’である可能性は非常に高い。そのため、ep(g(j,i),Y(j’))=ep(y(j,i),G(j’))である場合、検査鍵G(j’),Y(j’)に関連付けられている宛先装置j’が、暗号文C(j,i)の宛先であると判定することは妥当である([ep(g(j,i),Y(j’))=ep(y(j,i),G(j’))により宛先が判定できる理由]の説明終わり)。
一方、ステップS25でep(g(j,i),Y(j’))=ep(y(j,i),G(j’))でないと判断された場合、以下のステップS27以降の処理が実行される。
まず、再暗号化部30fのランダム数生成部30faが、整数のランダム数u,u(u,u)を生成してメモリ30aの格納部30ahに格納する(ステップS27)。ランダム数u,uの生成には、例えば、擬似乱数生成アルゴリズムを用いる。
次に、再暗号化部30fの公開鍵更新部30fbが、メモリ30aの格納部30aa,30ac,30ad,30ahから、それぞれ、集合E[p],公開鍵g(j,i),y(j,i),ランダム数uを読み込む。
そして、公開鍵更新部30fbは、楕円曲線E上での楕円スカラー倍算によってg(j, i+1)=u0・g(j,i)とy(j,i+1)=u0y(j,i)とを求め、これらを新たな公開鍵g(j,i+1),y(j,i+1)として、メモリ30aの格納部30ai,30ajにそれぞれ格納する(ステップS28)。
さらに、再暗号化部30fの暗号文更新部30fcが、メモリ30aの格納部30aa,30ab,30ahから、それぞれ、集合E[p],暗号文C(j,i)=(C1,1, C1,2),ランダム数uを読み込む。そして、暗号文更新部30fcは、楕円曲線E上での楕円スカラー倍算によってu1・g(j,i)とu1・y(j,i)とを求め、楕円曲線E上での楕円加算によって
C2,1=C1,1+u1・g(j,i)とC2,2=C1,2+u1・y(j,i)とを求め、C(j,i+1)=(C2,1,C2,2)を新たな暗号文として、メモリ30aの格納部30akに格納する(ステップS29)。
このように生成された暗号文C(j,i+1)と公開鍵g(j,i+1),y(j,i+1)とは、それぞれ、メモリ30aの格納部30ak,30ai,30ajから読み込まれ、送信部30gから他の任意なクライアント装置30に送信される(ステップS30)。
[クライアント装置30−1の場合]
以上のクライアント装置30の処理をクライアント装置30−1に当てはめて説明する。前述のようにクライアント装置30−1に格納される検査鍵は、クライアント装置50に対応するものではない。すなわち、j’≠jである。この場合、クライアント装置30−1は、ステップS21〜S25、S27〜S30の処理を実行し、再暗号化された暗号文C(j,3)と公開鍵g(j,3),y(j,3)とをクライアント装置30−2,30−3に送信する。
[クライアント装置30−2の場合]
前述のように、クライアント装置30−2には、クライアント装置50に対応する検査鍵が格納される。すなわち、j’=jである。この場合、クライアント装置30−2は、クライアント装置30−1から暗号文C(j,3)と公開鍵g(j,3),y(j,3)とを受け取り、ステップS21〜S26の処理を実行し、暗号文C(j,3)を宛先装置であるクライアント装置50に送信する。
〔第2の実施の形態〕
次に、本発明における第2の実施の形態について説明する。
本形態は、第1の実施の形態の変形例であり、鍵生成装置の公開鍵の生成方法のみが相違する。以下では、鍵生成装置及び鍵生成方法の相違点のみについて説明する。
[鍵生成装置の構成]
図9は、第2の実施の形態における鍵生成装置110の機能構成を例示したブロック図である。なお、図9において第1の実施の形態と共通する部分については、図3と同じ符号を用いた。
図9に例示するように、本形態の鍵生成装置110は、メモリ10aと、ランダム数生成部10bと、検査鍵生成部10c,10dと、公開鍵生成部110e,110fと、送信部10gと、出力部10hと、一時メモリ10iと、制御部10jとを有している。なお、本形態の鍵生成装置110も、公知のコンピュータに所定のプログラムが読み込まれることにより構成されるものである。
[鍵生成装置110の処理]
次に、鍵生成装置110の処理について説明する。
図10は、第2の実施の形態の鍵生成装置110の処理を説明するためのフローチャートである。以下、このフローチャートに従い、第2の実施の形態の鍵生成装置110の処理を説明する。
まず、鍵生成装置110は、第1の実施の形態のステップS1〜S3と同じ処理を実行する(ステップS51〜S53)。次に、公開鍵生成部110eが、メモリ10aの格納部10aaから集合E[p]を読み込み、格納部10abから線形変換関数ψλ1を読み込む。そして、公開鍵生成部110eは、楕円曲線Eのフロベニウス写像φの固有値λ1に関する固有空間ψλ1(E[p])の元を、宛先装置jであるクライアント装置50に対応する公開鍵g(j,1)として選択し、メモリ10aの格納部10afに格納する(ステップS54)。なお、この公開鍵g(j,1)の選択は、例えば、所定の擬似乱数生成アルゴリズムを用いてランダムに行われる。
次に、公開鍵生成部110fが、メモリ10aの格納部10afから公開鍵g(j,1)を読み込み、この公開鍵g(j,1)の楕円曲線E上でのx(j)倍算y(j,1)=x(j)・g(j,1)を実際に行って、宛先装置jであるクライアント装置50に対応する公開鍵y(j,1)を求め、メモリ10aの格納部10agに格納する(ステップS55)。
その後、第1の実施の形態におけるステップS6,S7と同じ処理が実行される(ステップS56,57)。
以上のように公開鍵を定めることとしても、各クライアント装置は、第1の実施の形態と同じ処理を実行できる。さらに、関数を用いるのではなく、公開鍵と検査鍵とを独立に生成することとしたため、公開鍵から検査鍵が推測されることはない。
〔第3の実施の形態〕
次に、本発明における第3の実施の形態について説明する。
本形態は、第1,2の実施の形態の変形例である。楕円曲線Eのフロベニウス写像φの固有値λ1に関する固有空間ψλ1(E[p])を第1巡回群として用い、
楕円曲線Eのフロベニウス写像φの固有値λ2(≠λ1)に関する固有空間ψλ2(E[p])を第2巡回群として用いる。また、元の線形成を保ったまま、固有空間ψλ1(E[p])の元を、固有空間ψλ2(E[p])に映す写像を定義することは困難であるため、第2の実施の形態と同様、固有空間ψλ1(E[p])及び固有空間ψλ2(E[p])、それぞれで楕円スカラー倍演算を実行し、検査鍵及び公開鍵を生成する。以下では、鍵生成装置及び鍵生成方法の相違点のみについて説明する。
[鍵生成装置の構成]
図11は、第3の実施の形態における鍵生成装置210の機能構成を例示したブロック図である。なお、図11において第1の実施の形態と共通する部分については、図3と同じ符号を用いた。
図11に例示するように、本形態の鍵生成装置210は、メモリ10aと、ランダム数生成部10bと、検査鍵生成部210c,10dと、公開鍵生成部210e,210fと、送信部10gと、出力部10hと、一時メモリ10iと、制御部10jとを有している。なお、本形態の鍵生成装置210も、公知のコンピュータに所定のプログラムが読み込まれることにより構成されるものである。
[鍵生成装置210の処理]
次に、鍵生成装置210の処理について説明する。
図12は、第3の実施の形態の鍵生成装置210の処理を説明するためのフローチャートである。以下、このフローチャートに従い、第3の実施の形態の鍵生成装置210の処理を説明する。
まず、鍵生成装置210は、第1の実施の形態のステップS1と同じ処理(整数のランダム数である秘密鍵x(j)の生成・格納)を実行する(ステップS61)。次に、検査鍵生成部210cが、メモリ10aの格納部10aaから集合E[p]を読み込み、格納部10abから線形変換関数ψλ1を読み込む。そして、検査鍵生成部210cは、楕円曲線Eのフロベニウス写像φの固有値λ1に関する固有空間ψλ1(E[p])の元を、宛先装置jであるクライアント装置50に対応する検査鍵G(j) として選択し、メモリ10aの格納部10acに格納する(ステップS62)。そして、第1の実施の形態のステップS3と同じく、検査鍵G(j)の楕円曲線E上でのx(j)倍算Y(j)=x(j)・G(j)を実際に行って、宛先装置jに対応する検査鍵Y(j)を求め、メモリ10aの格納部10aeに格納する(ステップS63)。
次に、公開鍵生成部210eが、メモリ10aの格納部10aaから集合E[p]を読み込み、格納部10abから線形変換関数ψλ2を読み込む。そして、公開鍵生成部110eは、楕円曲線Eのフロベニウス写像φの固有値λ2(≠λ1)に関する固有空間ψλ2(E[p])の元を、宛先装置jであるクライアント装置50に対応する公開鍵g(j,1)として選択し、メモリ10aの格納部10afに格納する(ステップS64)。なお、この公開鍵g(j,1)の選択は、例えば、所定の擬似乱数生成アルゴリズムを用いてランダムに行われる。
次に、公開鍵生成部210fが、メモリ10aの格納部10afから公開鍵g(j,1)を読み込み、この公開鍵g(j,1)の楕円曲線E上でのx(j)倍算y(j,1)=x(j)・g(j,1)を実際に行って、宛先装置jであるクライアント装置50に対応する公開鍵y(j,1)を求め、メモリ10aの格納部10agに格納する(ステップS65)。
その後、第1の実施の形態におけるステップS6,S7と同じ処理が実行される(ステップS66,S67)。
以上のように公開鍵を定めることとしても、各クライアント装置は、第1の実施の形態と同じ処理を実行できる。さらに、関数を用いるのではなく、公開鍵と検査鍵とを独立に生成することとしたため、公開鍵から検査鍵が推測されることはない。
なお、本発明は上述の実施の形態に限定されるものではない。例えば、上述の各実施の形態では、楕円ElGamal暗号を用いた場合を例にとって説明したが、効率的にペアリング関数の演算が可能な楕円曲線上で実装可能な公開鍵暗号であって、再暗号化が可能なものであれば楕円ElGamal暗号以外の暗号系に本発明を適用してもよい。
また、上述の各実施の形態では、楕円曲線として非超特異楕円曲線を用いる場合を説明したが、楕円曲線として超特異楕円曲線を用いてもよい。ただ、この場合には、射影の一方向性が保証できないため、安全性の面から、第2,第3の実施の形態のように、公開鍵と検査鍵とを独立に生成することが望ましい。
また、上述の各実施の形態では、クライアント装置とは別に鍵生成装置を設けることとしたが、各クライアント装置が自らの秘密鍵、公開鍵、検査鍵を生成する構成であってもよい。
また、上述の各実施の形態では、クライアント装置がペアリング関数を用い、暗号文の宛先を判定することとした。しかし、クライアント装置とは別の宛先判定用のサーバ装置を設けてもよい。この場合、このサーバ装置に各宛先装置に対応する検査鍵を格納しておく。そして、各クライアント装置は、受信した公開鍵をこのサーバ装置に送信し、これを受信したサーバ装置が、本発明のペアリングを用いた宛先判定を行い、この結果を返す。この場合、このサーバ装置が「通信装置」に対応することになる。
また、上述の各実施の形態では、第1巡回群と第2巡回群との元を重複させないようにし、ペアリング関数の演算結果が1となってしまうことを防止した。しかし、ペアリング関数の演算結果が1になってしまうことによる判定誤りを受け入れるのであれば、第1巡回群と第2巡回群との元が少なくとも一部で重複してもよい。
また、上述の各実施の形態では、暗号文を生成するクライアント装置20も再暗号化や公開鍵の更新を行うこととした。しかし、クライアント装置20がこれらを行わず、公開サーバ装置60から受け取った公開鍵で生成した暗号文と当該公開鍵とを、他のクライアント装置に送信する構成であってもよい。
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
また、上述の各処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
本発明の産業上の利用分野としては、例えば、インターネットやLAN等における匿名通信等を例示できる。
図1は、第1の実施の形態における匿名暗号文通信システムの全体構成を例示した概念図である。 図2は、第1の実施の形態における鍵生成装置のハードウェア構成を例示したブロック図である。 図3は、第1の実施の形態における鍵生成装置の機能構成を例示したブロック図である。 図4は、第1の実施の形態のクライアント装置の機能構成を例示したブロック図である。 図5は、クライアント装置の機能構成を例示したブロック図である。 図6は、第1の実施の形態の鍵生成装置の処理を説明するためのフローチャートである。 図7は、第1の実施の形態における暗号文生成処理を説明するためのフローチャートである。 図8は、クライアント装置が実行する中継通信処理を説明するためのフローチャートである。 図9は、第2の実施の形態における鍵生成装置の機能構成を例示したブロック図である。 図10は、第2の実施の形態の鍵生成装置の処理を説明するためのフローチャートである。 図11は、第3の実施の形態における鍵生成装置の機能構成を例示したブロック図である。 図12は、第3の実施の形態の鍵生成装置の処理を説明するためのフローチャートである。 図13(a)(b)は、Universal re-encryptionによって公開鍵と暗号文とを更新しつつ匿名でデータ通信を行う従来のシステムの構成を例示した概念図である。
符号の説明
10,110,210 鍵生成装置
20,30,50 クライアント装置

Claims (16)

  1. 1以上の通信装置を経由し、匿名で暗号文を伝送する匿名暗号文通信システムに用いられる鍵を生成する鍵生成装置であって、
    上記暗号文の宛先となる宛先装置j(jは自然数)に対応する秘密鍵x(j)(x(j)は整数)を格納する秘密鍵格納部と、
    有限体上に定義された楕円曲線E上の点から構成される第1巡回群の元を、上記宛先装置jに対応する検査鍵G(j)として格納する検査鍵格納部と、
    上記楕円曲線E上の点から構成される第2巡回群の元を、上記宛先装置jに対応する公開鍵g(j,1)として格納する公開鍵格納部と、
    上記検査鍵G(j)の上記楕円曲線E上でのx(j)倍算値Y(j)=x(j)・G(j)を、上記宛先装置jに対応する検査鍵Y(j)として求める検査鍵生成部と、
    上記公開鍵g(j,1)の上記楕円曲線E上でのx(j)倍算値y(j,1)=x(j)・g(j,1)を、上記宛先装置jに対応する公開鍵y(j,1)として求める公開鍵生成部と、
    を有することを特徴とする鍵生成装置。
  2. 請求項1に記載の鍵生成装置であって、
    上記第2巡回群は、
    上記第1巡回群の何れの元も含まない巡回群である、
    ことを特徴とする鍵生成装置。
  3. 請求項2に記載の鍵生成装置であって、
    上記第1巡回群は、
    上記楕円曲線E上でのp倍算値(pは素数)が無限遠点となる上記楕円曲線E上の点Rの集合E[p]から、上記楕円曲線Eのフロベニウス写像の各固有値に関する各固有空間を除いた非固有空間における位数pの巡回群であり、
    上記第2巡回群は、
    上記楕円曲線Eのフロベニウス写像の何れかの固有値に関する固有空間である、
    ことを特徴とする鍵生成装置。
  4. 請求項3に記載の鍵生成装置であって、
    上記公開鍵g(j,1)は、
    上記集合E[p]上の元を上記第2巡回群に写す一方向性準同型写像である関数ψに、上記検査鍵G(j)を代入して得られた値ψ(G(j))であり、
    上記検査鍵生成部は、
    上記検査鍵G(j)の上記楕円曲線E上でのx(j)倍算を行い、上記検査鍵Y(j)を求め、
    上記公開鍵生成部は、
    上記検査鍵Y(j)を上記関数ψに代入し、上記公開鍵y(j,1)を求める、
    ことを特徴とする鍵生成装置。
  5. 請求項4に記載の鍵生成装置であって、
    上記関数ψは、同型写像である、
    ことを特徴とする鍵生成装置。
  6. 請求項4に記載の鍵生成装置であって、
    上記楕円曲線Eは、
    非超特異楕円曲線であり、
    上記関数ψは、
    上記集合E[p]上の元を上記第2巡回群に写す射影である、
    ことを特徴とする鍵生成装置。
  7. 請求項2に記載の鍵生成装置であって、
    上記第1巡回群は、
    上記楕円曲線Eのフロベニウス写像の第1固有値に関する第1固有空間であり、
    上記第2巡回群は、
    上記楕円曲線Eのフロベニウス写像の第2固有値(≠第1固有値)に関する第2固有空間である、
    ことを特徴とする鍵生成装置。
  8. 匿名で暗号文を伝送する匿名暗号文通信システムを構成する通信装置であって、
    請求項1に記載の検査鍵G(j),Y(j)を、それらに対応する宛先装置j(jは自然数)に関連付けて格納する検査鍵格納部と、
    請求項1に記載の公開鍵g(j,1)の楕円曲線E上でのv倍算値(vは整数)である公開鍵g(j,i)(iは自然数)と、請求項1に記載の公開鍵y(j,1)の当該楕円曲線E上でのv倍算値である公開鍵y(j,i)とを、暗号文C(j,i)に対応する公開鍵として、他の通信装置から受信する受信部と、
    上記公開鍵g(j,i)と上記公開鍵y(j,i)とを格納する暗号化鍵格納部と、
    ペアリング関数に上記公開鍵g(j,i)と上記検査鍵Y(j)とを代入した第1代入結果値を求める第1ペアリング演算部と、
    上記ペアリング関数に上記公開鍵y(j,i)と上記検査鍵G(j)とを代入した第2代入結果値を求める第2ペアリング演算部と、
    上記第1代入結果値と上記第2代入結果値とを比較し、上記第1代入結果値と上記第2代入結果値とが一致した場合に、上記検査鍵G(j),Y(j)に関連付けられている上記宛先装置jが上記暗号文C(j,i)の宛先である、と判定する判定部と、
    を有することを特徴とする通信装置。
  9. 1以上の通信装置を経由し、匿名で暗号文の伝送を行う匿名暗号文通信システムであって、
    上記暗号文の宛先となる宛先装置j(jは自然数)に対応する秘密鍵x(j)(x(j)は整数)を格納する秘密鍵格納部と、有限体上に定義された楕円曲線E上の点から構成される第1巡回群の元を、上記宛先装置jに対応する検査鍵G(j)として格納する検査鍵格納部と、上記楕円曲線E上の点から構成される第2巡回群の元を、上記宛先装置jに対応する公開鍵g(j,1)として格納する公開鍵格納部と、上記検査鍵G(j)の上記楕円曲線E上でのx(j)倍算値Y(j)=x(j)・G(j)を、上記宛先装置jに対応する検査鍵Y(j)として求める検査鍵生成部と、上記公開鍵g(j,1)の上記楕円曲線E上でのx(j)倍算値y(j,1)=x(j)・g(j,1)を、上記宛先装置jに対応する公開鍵y(j,1)として求める公開鍵生成部と、を具備する鍵生成装置と、
    上記検査鍵G(j),Y(j)を、それらに対応する宛先装置jに関連付けて格納する検査鍵格納部と、上記公開鍵g(j,1)の上記楕円曲線E上でのv倍算値(vは整数)である公開鍵g(j,i)(iは自然数)と、上記公開鍵y(j,1)の当該楕円曲線E上でのv倍算値である公開鍵y(j,i)とを、暗号文C(j,i)に対応する公開鍵として、他の通信装置から受信する受信部と、上記公開鍵g(j,i)と上記公開鍵y(j,i)とを格納する暗号化鍵格納部と、ペアリング関数に上記公開鍵g(j,i)と上記検査鍵Y(j)とを代入した第1代入結果値を求める第1ペアリング演算部と、上記ペアリング関数に上記公開鍵y(j,i)と上記検査鍵G(j)とを代入した第2代入結果値を求める第2ペアリング演算部と、上記第1代入結果値と上記第2代入結果値とを比較し、上記第1代入結果値と上記第2代入結果値とが一致した場合に、上記検査鍵G(j),Y(j)に関連付けられている上記宛先装置jが上記暗号文C(j,i)の宛先である、と判定する判定部と、を具備する通信装置と、
    を有することを特徴とする匿名暗号文通信システム。
  10. 1以上の通信装置を経由し、匿名で暗号文を伝送する匿名暗号文通信システムに用いられる鍵を生成する鍵生成装置の鍵生成方法であって、
    秘密鍵格納部に、上記暗号文の宛先となる宛先装置j(jは自然数)に対応する秘密鍵x(j)(x(j)は整数)を格納しておき、
    検査鍵格納部に、有限体上に定義された楕円曲線E上の点から構成される第1巡回群の元を、上記宛先装置jに対応する検査鍵G(j)として格納しておき、
    公開鍵格納部に、上記楕円曲線E上の点から構成される第2巡回群の元を、上記宛先装置jに対応する公開鍵g(j,1)として格納しておき、
    検査鍵生成部が、上記検査鍵G(j)の上記楕円曲線E上でのx(j)倍算値Y(j)=x(j)・G(j)を、上記宛先装置jに対応する検査鍵Y(j)として求めるステップと、
    公開鍵生成部が、上記公開鍵g(j,1)の上記楕円曲線E上でのx(j)倍算値y(j,1)=x(j)・g(j,1)を、上記宛先装置jに対応する公開鍵y(j,1)として求めるステップと、
    を実行することを特徴とする鍵生成方法。
  11. 匿名で暗号文を伝送する匿名暗号文通信システムを構成する通信装置の通信処理方法であって、
    検査鍵格納部に、請求項8に記載の検査鍵G(j),Y(j)を、それらに対応する宛先装置j(jは自然数)に関連付けて格納しておき、
    受信部が、請求項8に記載の公開鍵g(j,1)の楕円曲線E上でのv倍算値(vは整数)である公開鍵g(j,i)(iは自然数)と、請求項8に記載の公開鍵y(j,1)の当該楕円曲線E上でのv倍算値である公開鍵y(j,i)とを、暗号文C(j,i)に対応する公開鍵として、他の通信装置から受信するステップと、
    暗号化鍵格納部に、上記公開鍵g(j,i)と上記公開鍵y(j,i)とを格納するステップと、
    第1ペアリング演算部が、ペアリング関数に上記公開鍵g(j,i)と上記検査鍵Y(j)とを代入した第1代入結果値を求めるステップと、
    第2ペアリング演算部が、上記ペアリング関数に上記公開鍵y(j,i)と上記検査鍵G(j)とを代入した第2代入結果値を求めるステップと、
    判定部が、上記第1代入結果値と上記第2代入結果値とを比較し、上記第1代入結果値と上記第2代入結果値とが一致した場合に、上記検査鍵G(j),Y(j)に関連付けられている上記宛先装置jが上記暗号文C(j,i)の宛先である、と判定するステップと、
    を実行することを特徴とする通信処理方法。
  12. 1以上の通信装置を経由し、匿名で暗号文の伝送を行う匿名暗号文通信方法であって、
    鍵生成装置の秘密鍵格納部に、上記暗号文の宛先となる宛先装置j(jは自然数)に対応する秘密鍵x(j)(x(j)は整数)を格納しておき、
    上記鍵生成装置の検査鍵格納部に、有限体上に定義された楕円曲線E上の点から構成される第1巡回群の元を、上記宛先装置jに対応する検査鍵G(j)として格納しておき、
    上記鍵生成装置の公開鍵格納部に、上記楕円曲線E上の点から構成される第2巡回群の元を、上記宛先装置jに対応する公開鍵g(j,1)として格納しておき、
    上記鍵生成装置の検査鍵生成部が、上記検査鍵G(j)の上記楕円曲線E上でのx(j)倍算値Y(j)=x(j)・G(j)を、上記宛先装置jに対応する検査鍵Y(j)として求めるステップと、
    上記鍵生成装置の公開鍵生成部が、上記公開鍵g(j,1)の上記楕円曲線E上でのx(j)倍算値y(j,1)=x(j)・g(j,1)を、上記宛先装置jに対応する公開鍵y(j,1)として求めるステップと、を実行し、
    いずれかの通信装置の検査鍵格納部に、上記検査鍵G(j),Y(j)を、それらに対応する宛先装置jに関連付けて格納しておき、
    上記通信装置の受信部が、上記公開鍵g(j,1)の上記楕円曲線E上でのv倍算値(vは整数)である公開鍵g(j,i)(iは自然数)と、上記公開鍵y(j,1)の当該楕円曲線E上でのv倍算値である公開鍵y(j,i)とを、暗号文C(j,i)に対応する公開鍵として、他の通信装置から受信するステップと、
    上記通信装置の暗号化鍵格納部に、上記公開鍵g(j,i)と上記公開鍵y(j,i)とを格納するステップと、
    上記通信装置の第1ペアリング演算部が、ペアリング関数に上記公開鍵g(j,i)と上記検査鍵Y(j)とを代入した第1代入結果値を求めるステップと、
    上記通信装置の第2ペアリング演算部が、上記ペアリング関数に上記公開鍵y(j,i)と上記検査鍵G(j)とを代入した第2代入結果値を求めるステップと、
    上記通信装置の判定部が、上記第1代入結果値と上記第2代入結果値とを比較し、上記第1代入結果値と上記第2代入結果値とが一致した場合に、上記検査鍵G(j),Y(j)に関連付けられている上記宛先装置jが上記暗号文C(j,i)の宛先である、と判定するステップと、を実行する、
    ことを特徴とする匿名暗号文通信方法。
  13. 請求項1から7の何れかに記載の鍵生成装置としてコンピュータを機能させるための鍵生成プログラム。
  14. 請求項8に記載の通信装置としてコンピュータを機能させるための通信処理プログラム。
  15. 請求項13に記載の鍵生成プログラムを格納したコンピュータ読み取り可能な記録媒体。
  16. 請求項14に記載の通信処理プログラムを格納したコンピュータ読み取り可能な記録媒体。
JP2006123081A 2006-04-27 2006-04-27 匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体 Expired - Fee Related JP4758814B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006123081A JP4758814B2 (ja) 2006-04-27 2006-04-27 匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006123081A JP4758814B2 (ja) 2006-04-27 2006-04-27 匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2007295444A true JP2007295444A (ja) 2007-11-08
JP4758814B2 JP4758814B2 (ja) 2011-08-31

Family

ID=38765594

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006123081A Expired - Fee Related JP4758814B2 (ja) 2006-04-27 2006-04-27 匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP4758814B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010226402A (ja) * 2009-03-24 2010-10-07 Fujitsu Ltd 楕円曲線暗号を用いた認証処理に対する故障利用攻撃を検知する認証用媒体
JP2012220834A (ja) * 2011-04-12 2012-11-12 Nippon Telegr & Teleph Corp <Ntt> 再暗号化システム、再暗号化装置、再暗号化方法、能力提供方法、及びプログラム
JP2016052047A (ja) * 2014-09-01 2016-04-11 Kddi株式会社 匿名化メッセージシステム、端末ノード、パブリックノード、方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143129A (ja) * 2001-10-30 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> 匿名通信方法、その装置処理方法、そのプログラムおよびその記録媒体
JP2004229105A (ja) * 2003-01-24 2004-08-12 Nippon Telegr & Teleph Corp <Ntt> 不正者特定可能な匿名通信方法、それに使用される利用者装置、及び中継サーバ装置
JP2005236939A (ja) * 2004-02-19 2005-09-02 Umi Nishida ピアツーピア型匿名プロキシにおける安全性の高い匿名通信路の検証及び構築する方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143129A (ja) * 2001-10-30 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> 匿名通信方法、その装置処理方法、そのプログラムおよびその記録媒体
JP2004229105A (ja) * 2003-01-24 2004-08-12 Nippon Telegr & Teleph Corp <Ntt> 不正者特定可能な匿名通信方法、それに使用される利用者装置、及び中継サーバ装置
JP2005236939A (ja) * 2004-02-19 2005-09-02 Umi Nishida ピアツーピア型匿名プロキシにおける安全性の高い匿名通信路の検証及び構築する方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010226402A (ja) * 2009-03-24 2010-10-07 Fujitsu Ltd 楕円曲線暗号を用いた認証処理に対する故障利用攻撃を検知する認証用媒体
JP2012220834A (ja) * 2011-04-12 2012-11-12 Nippon Telegr & Teleph Corp <Ntt> 再暗号化システム、再暗号化装置、再暗号化方法、能力提供方法、及びプログラム
JP2016052047A (ja) * 2014-09-01 2016-04-11 Kddi株式会社 匿名化メッセージシステム、端末ノード、パブリックノード、方法及びプログラム

Also Published As

Publication number Publication date
JP4758814B2 (ja) 2011-08-31

Similar Documents

Publication Publication Date Title
Polyakov et al. Fast proxy re-encryption for publish/subscribe systems
KR101418254B1 (ko) 암호 시스템, 암호 통신 방법, 암호화 장치, 키 생성 장치, 복호 장치, 콘텐츠 서버 장치, 프로그램, 기억매체
Paulet et al. Privacy-preserving and content-protecting location based queries
KR101456579B1 (ko) 비밀 분산 시스템, 분산 장치, 분산 관리 장치, 취득 장치, 비밀 분산 방법, 프로그램, 및 기록 매체
US20120027210A1 (en) Cryptographic system, cryptographic communication method, encryption apparatus, key generation apparatus, decryption apparatus, content server, program, and storage medium
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
WO2018016330A1 (ja) 通信端末、サーバ装置、プログラム
JP2011147074A (ja) 暗号化された情報のためのキーワード検索システム、キーワード検索方法、検索要求装置、検索代行装置、プログラム、記録媒体
Backes et al. Anonymous ram
JP4758814B2 (ja) 匿名暗号文通信システム、鍵生成装置、通信装置、それらの方法、プログラム及び記録媒体
JP5730805B2 (ja) 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置
JP2010160235A (ja) 検索システム、端末装置、データベース装置、検索方法及びプログラム
JP4528114B2 (ja) 鍵生成装置、暗号化装置、検査装置、復号化装置並びに鍵生成プログラム、暗号化プログラム、検査プログラム、復号化プログラム
JP4875448B2 (ja) 鍵生成装置、匿名署名システム、管理装置、匿名署名方法及びプログラム
JP4773941B2 (ja) 代理署名装置、署名者装置、署名検証装置及びそれらのプログラム
Yakupoglu et al. Prefhe, prefhe-aes and prefhe-sgx: Secure multiparty computation protocols from fully homomorphic encryption and proxy reencryption with aes and intel sgx
JP4685621B2 (ja) 鍵生成装置、暗号化装置、復号化装置、乗法型ナップザック暗号システム、乗法型ナップザック暗号復号方法およびプログラム
JP5612494B2 (ja) 関数暗号を用いた時限暗号システム、時限暗号方法、装置、プログラム
JP2009130872A (ja) 鍵共有方法、第1装置、第2装置、及び、それらのプログラム
JP5097137B2 (ja) 暗号通信システム、端末装置、秘密鍵生成方法及びプログラム
Couteau et al. Secure distributed computation on private inputs
JP6885325B2 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、プログラム
Singh et al. Security of Data with 3DES & Watermarking Algorithm
Dhiman et al. Comparative Analysis and Scrutiny of Key Authentication Techniques in Fully Homomorphic Schemes
Attrapadung et al. Token-Based Multi-input Functional Encryption

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080804

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110524

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110603

R150 Certificate of patent or registration of utility model

Ref document number: 4758814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140610

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees