説明

電子署名検証システム、電子署名装置、検証装置、電子署名検証方法、電子署名方法、検証方法、電子署名プログラム、検証プログラム

【課題】本発明は、電子署名を構成する要素の数を少なくし、電子署名長が短く、情報量及び通信量が少なく、また、検証時の計算量の少ない電子署名検証方法及び装置を提供することを目的とする。
【解決手段】本発明の電子署名検証システムは、登録装置と、電子署名装置と、検証装置からなる。電子署名装置は、乱数x及びyとG及びGそれぞれの生成元g及びgを用いて、X=g、Y=gを計算し、公開鍵pkを生成する。g、g、乱数r、x、y及び平文mを用いて、電子署名σを生成する。検証装置は、公開鍵pk、電子署名σ及び平文mを用いて、改竄等が行われていないか検証する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電気通信システムで送信者の身元を確認する電子署名検証システム、電子署名装置、検証装置、その方法及びプログラムに関する。
【背景技術】
【0002】
電子署名はメッセージmに対して、公開鍵pkに対応する秘密鍵skを知る署名者が、メッセージmに対して秘密鍵skを正しく使ったときにのみ計算できる値σを算出し、これを電子的な署名として用いるものである。正しく計算された電子署名は誰でも公開鍵pkを用いてその正当性を検証することが可能である。一方、秘密鍵skを知らないいかなる第三者も正当な電子署名σを算出することはできない。電子署名は電子現金やクレデンシャルシステムなど、様々な暗号プロトコルにおいて基本的な構成要素として利用されている。
【0003】
また、利用者のプライバシーを必要とする応用においては、ゼロ知識証明と組み合わせることにより、電子署名σを明かさないまま、あるメッセージに対する電子署名を保持しているという事実を任意の第三者に納得させるなど、高度な利用形態がある。例えば、非特許文献1のようにペアリング技術を用い、群の要素がある関係を満たすという事実を効率的に証明するゼロ知識証明が構成可能となった。これによって、電子署名σが効率的なバイリニアマップを持つ群の要素である、すなわち、σ∈Gである場合、前述のように、電子署名σを明かさないまま、正しい電子署名σを保持しているという事実を証明することが可能である。
【0004】
例えば、非特許文献2記載の技術、いわゆる、CL-Signatureと言われる技術では、メッセージm∈Zqに対する電子署名σは3つの群要素(a,b,c)∈Gから構成されている。
【0005】
しかしながら、CL-Signatureと言われる技術では、ランダムオラクルモデル等の理想化された構成要素を用いず、数論的な仮定のみによって安全性が証明できる既存の電子署名方法では、メッセージmが群Gの要素ではないため、メッセージmを秘匿した状態で、その秘匿したメッセージに対する正しい電子署名を保持していることを証明する、という応用には適さない。メッセージmが群Gの要素である場合にも、安全な電子署名方法として、非特許文献3がある。以下説明する。
【0006】
qを大きな素数とし、G,G,Gを位数qの群とし、eを効率的に計算可能なバイリニアマップe:G×G→Gとし、v=(q,G,G,G,e)を公開パラメータとする。
【0007】
署名者は、G及びGからそれぞれ生成元g及びgを無作為に選択し、Zに属する乱数r、x及びyを生成し、X=g、Y=gとする。v、g、g、X、Yを公開鍵pkとし、x、yを秘密鍵skとする。
【0008】
メッセージm∈Gに対して、以下のように、電子署名σを生成する。電子署名σ=(a,a,a,a,a)∈G×Gとし、
=g (1)
=m (2)
=grxrxy (3)
=mry (4)
=g (5)
とする。
【0009】
検証者は、公開鍵pk及び電子署名σを用いて、以下の等式が成り立つことを確認し、電子署名の真正性及び完全性を検証する。
【0010】
e(a,g)=e(g,a) (6)
e(m,a)=e(a,g) (7)
e(a,Y)=e(a,g) (8)
e(a,g)=e(a,X) (9)
【非特許文献1】Jens Groth, Amit Sahai, "Efficient Non-interactive Proof Systems for Bilinear Groups", Advances in Cryptology - EUROCRYPT 2008, Springer Berlin / Heidelberg, June 3,2008, Volume 4965/2008, p415-432
【非特許文献2】Jan Camenisch, Anna Lysyanskaya, " Signature Schemes and Anonymous Credentials from Bilinear Maps", Advances in Cryptology - CRYPTO 2004, Springer Berlin / Heidelberg, 2004, Volume 3152/2004, p.56-72
【非特許文献3】Matthew Green, Susan Hohenberger, "Universally Composable Adaptive Oblivious Transfer", [online], The Johns Hopkins University Information Security Institute, [平成20年11月19日], インターネット<URL:http://eprint.iacr.org/cgi-bin/getfile.pl?entry=2008/163&version=20080806:150034&file=163.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0011】
非特許文献3記載の電子署名検証方法及び装置では、電子署名を構成する要素の数が多く、電子署名長が長くなり、情報量及び通信量が多くなるという問題があった。また、検証時の計算量が多いという問題があった。本発明は、電子署名を構成する要素の数を少なくし、電子署名長が短く、情報量及び通信量が少ない電子署名検証方法及び装置を提供することを目的とし、また、検証時の計算量の少ない電子署名検証方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明の電子署名検証システムは、登録装置と、電子署名装置と、検証装置からなる。qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→GTとし、公開パラメータをv=(q,G,G,GT,e)とする。電子署名装置は、G及びGからそれぞれ生成元g及びgを無作為に選択する。Zに属する乱数r(但し、1≦i≦nであり、nは、平文の個数を表す)、x及びyを生成する。公開パラメータvと乱数r、x及びyを記憶し、特にx、yは秘密鍵skとして秘密に記憶する。x、y、g及びgを用いて、X=g、Y=gを計算し、公開鍵pkを生成する。g、g、r、x、y及び平文mを用いて、bi1=gri、b=Πi=1rixrixy、bi4=mriy、bi5=griyを計算し、電子署名σ=(bi1,b,bi4,bi5)を生成する。検証装置は、公開鍵pk、電子署名σ及び平文mを記憶する。
【0013】
(1)e(bi1,Y)=e(g,bi5
(2)e(m,bi5)=e(bi4,g
(3)e(b,g)=e(Πi=1i1i4,X)
(1)〜(3)の等式全てが成立するか否かを判定し、成立する場合には受理し、成立しない場合には拒否する。登録装置は、公開パラメータv及び公開鍵pkを記憶する記憶部を有する。電子署名装置は、登録装置から公開パラメータvを受け取り、公開鍵pkを登録装置へ、電子署名σ及び平文mを検証装置へ、送る。検証装置は、登録装置から公開鍵pkを、電子署名装置から電子署名σ及び平文mを、受け取る。
【発明の効果】
【0014】
本発明の電子署名検証方法及び装置によれば、従来技術同様、真正性及び完全性を担保しながら、群の元を用いて電子署名を構成することができ、かつ、電子署名を構成する要素の数を少なくすることにより、電子署名長が短く、通信量が少なくすることができる。また、検証時の計算式の少なくすることにより、計算量を少なくすることができる。
【発明を実施するための最良の形態】
【0015】
ここで、本発明の実施例について説明する。
【実施例1】
【0016】
[電子署名検証システム1]
図1は、電子署名検証システム1の構成例を示す図である。図2は、電子署名検証システム1のシーケンス図の一例を示す図である。電子署名検証システム1は、登録装置300と、電子署名装置100と、検証装置200からなる。
【0017】
qを大きな素数とし、G,G,Gを位数qの群とし、eを効率的に計算可能なバイリニアマップe:G×G→Gとし、v=(q,G,G,G,e)を公開パラメータとする。なお、gとは、g∈Gに対し、群Gで定義される演算をa回行うことを意味する。バイリニアマップとしては、例えば、WeilペアリングやTateペアリング等が考えられる。
【0018】
電子署名装置100は、平文mを検証装置200に送る際に、電子署名σを添付するために、登録装置300に対して、公開パラメータvを要求する(s10)。登録装置300は、vを電子署名装置100へ送る(s12)。電子署名装置100は、公開パラメータvから公開鍵pkを生成し、登録装置300へ送る(s14)。登録装置300は、公開鍵pkを登録及び公開する(s16)。なお、送るたびに公開パラメータを要求しなくとも、記憶している公開パラメータを利用して公開鍵を生成してもよい。さらに、平文m、公開鍵pk及び秘密鍵skを用いて、電子署名σを生成する。電子署名装置100は、電子署名σ及び平文mを検証装置へ送る(s18)。
【0019】
検証装置200は、電子署名σに対応する公開鍵pkを登録装置300へ要求する(s20)。登録装置300は、公開鍵pkを検証装置200へ送る(s22)。検証装置200は、電子署名σ、平文m、公開鍵pkを用いて、改竄及び成りすまし等が行われていないか検証する(s24)。以下、各装置及び各処理について詳細を説明する。
【0020】
[登録装置300]
登録装置300は、公開パラメータvを登録及び公開している。例えば、登録装置300は、信頼できる第三者等が管理し、通信部301と、記憶部303と、制御部305を有する。登録装置300は、通信部301を介して、電子署名装置及び検証装置と通信する。通信部301は、例えば、LANアダプタ等により構成され、LANやインターネット等からなる通信回線と接続される。但し、必ずしも通信部を有さずともよく、例えば、キーボード等の入力装置から公開パラメータを入力してもよいし、また、USBメモリ等の可搬媒体に公開パラメータを記憶し、それを入力してもよい。以下、同様に各装置(電子署名装置及び検証装置)は送信部101、201を有さずともよく、装置間のデータの入出力は、通信以外の方法であってもよい。記憶部303は、公開パラメータ、公開鍵等を記憶する。なお、上記「登録」とは、記憶部303に記憶することを意味してもよい。また、「公開」とは、利用者の求めに応じて、情報(例えば、公開パラメータ)を閲覧可能、または、取得可能とすることを意味する。制御部305は、各処理を制御する。
【0021】
[電子署名装置100]
図3は、電子署名装置100の構成例を示す図である。図4は、電子署名装置100の処理フローの一例を示す図である。電子署名装置100は、通信部101と、記憶部103と、制御部105と、生成元選択部120と、乱数生成部130と、公開鍵生成部140と、電子署名生成部150を有する。
【0022】
<制御部105及び通信部101>
本実施例の電子署名装置100は、制御部105の制御のもと各処理を実行する。電子署名装置100は、登録装置300から公開パラメータvを受け取る。例えば、通信部101は、登録装置300及び検証装置200と通信を行い、登録装置300から公開パラメータvを受信する(s101)。以下、特に記述しなくとも、登録装置300及び検証装置200と通信する際には、通信部101を介して行われるものとする。
【0023】
受信した公開パラメータvを記憶部103に記憶する(s103)。また、特に示さない限り、入出力される各データや演算過程の各データは、逐一、記憶部103に格納・読み出され、各演算処理が進められる。但し、必ずしも記憶部103に記憶しなければならないわけではなく、各部間で直接データを受け渡してもよい。
【0024】
<生成元選択部120、乱数生成部130及び記憶部103>
生成元選択部120は、群G及びGからそれぞれ生成元g及びgを無作為に選択する(s120)。生成元選択部120は、通信部101を介して、または、通信部101及び記憶部103を介して、公開パラメータvを入力され、生成元g及びgを公開鍵生成部140及び電子署名生成部150へ、出力する。乱数生成部130は、Zに属する乱数r、x及びyを生成して出力する(s130)。乱数生成部130は、乱数x、yを公開鍵生成部140へ、乱数r、x、yを電子署名生成部150へ出力する。記憶部103は、乱数r、x及びyが記憶され、特にx、yは秘密鍵sk=(x,y)として秘密に記憶される(s133)。なお、秘密鍵skには、対応する公開鍵pkを含め、sk=(pk,x,y)としてもよい。他の実施例においても同様である。公開鍵pkについての詳細は後述する。
【0025】
<公開鍵生成部140>
公開鍵生成部140は、x、y、g及びgが入力され、X=g、Y=gを計算し、公開鍵pk=(v,g,g,X,Y)を生成する(s140)。公開鍵pkは、通信部101を介して、登録装置300へ送られる。なお、公開鍵pkには、利用した公開パラメータを表示する情報i等を含めpk=(i,g,g,X,Y)としてもよい。この場合には、以下で説明する検証装置200は、情報iに基づいて、登録装置300に対応する公開パラメータvを要求する。また、登録装置300の記憶している公開パラメータの中から対応する公開パラメータを特定することができる場合には、公開鍵pkに公開パラメータvや、公開パラメータを表示する情報i等を含まなくともよく、検証装置200は、平文m及び電子署名σを受け付けた際に、登録装置300に公開パラメータvを要求する。
【0026】
<電子署名生成部150>
電子署名生成部150は、g、g、r、x、y及び平文m∈Gが入力され、
=g (11)
=grxrxy (13)
=mry (14)
=gry (15)
を計算し、電子署名σ=(b,b,b,b)を生成する(s150)。電子署名生成部150は、生成元選択部120から生成元g、gを、乱数生成部130から乱数r、x、yを、さらに平文mを入力され、電子署名σを出力する。なお、平文m∈Zであり、補助記憶装置やメモリ上のデータ等、もしくは、入力インターフェース、キーボード、マウス等から入力されるデータである。
【0027】
電子署名装置100は、公開鍵pkを登録装置300へ、電子署名σ及び平文mを検証装置200へ、送る。例えば、通信部101を介して、送信する(s153)。
【0028】
このような構成とすることで、電子署名σを構成する要素の数を5つから4つに少なくすることができる。これにより、例えば、電子署名σの各要素を生成する演算量が同一の場合には、演算量を20%軽減できる。また、例えば、電子署名σの各要素が同一の情報量を有している場合には、電子署名長を20%短く作成することができる。これにより電子署名σに要する通信量を軽減することもできる。なお、公開鍵の生成(s140)と電子署名の生成(s150)は、どちらが先に行われてもよい。
【0029】
[検証装置200]
図5は、検証装置200の構成例を示す。図6は、検証装置100の処理フローの一例を示す図である。検証装置200は、通信部201と、記憶部203と、制御部205と、判定部220を有する。
<制御部205、通信部201及び記憶部203>
本実施例の検証装置200は、制御部205の制御のもと各処理を実行する。検証装置は、登録装置から公開鍵pkを、電子署名装置から電子署名σ及び平文mを、受け取る。例えば、通信部201は、登録装置300及び検証装置100と通信を行う。登録装置300から公開鍵pkを受信する(s201)。電子署名装置100から電子署名σ及び平文mを受信する(s202)。機能、構成等は、通信部101と同様である。記憶部203は、公開鍵pk、電子署名σ及び平文mが記憶される(s203)。
【0030】
<判定部220>
判定部220は、以下の等式全てが成立するか否かを判定する(s220)。成立する場合には受理し(s223)、成立しない場合には拒否する(s225)。
【0031】
e(b,Y)=e(g,b) (16)
e(m,b)=e(b,g) (17)
e(b,g)=e(b,X) (18)
判定部220は、通信部201を介して、または、通信部201及び記憶部203を介して、公開鍵pk、署名σ及び平文mが入力される。以下、上記の式(16)〜(18)について従来技術の式(6)〜(9)と比較して説明する。
【0032】
<非特許文献3の検証方法>
従来技術では、式(6)は式(1)及び(5)を用いて、以下のように表すことができる。
e(g,g)=e(g,g) (6)’
これにより、乱数rが同一であることを確認する。式(7)は式(1)及び(2)を用いて、以下のように表すことができる。
e(m,g)=e(m,g) (7)’
これにより、同一の乱数rを用いているため、mが同一であることを確認する。式(8)は式(2)、(4)、Y=gを用いて、以下のように表すことができる。
e(m,g)=e(mry,g) (8)’
これにより、同一の乱数rと平文mを用いているため、等式が成り立つ場合には、yが正しいことが確認できる。式(9)は、式(1)、(3)、(4)、X=gを用いて、以下のように表すことができる。
e(grxrxy,g)=e(gry,g) (9)’
これにより、同一の乱数r、平文m、yを用いているため、等式が成り立つ場合には、xが正しいことが確認できる。これらの処理により、電子署名σを作成できるのは、秘密鍵sk=(x,y)を知っている署名者のみであることが確認できる。
【0033】
<本実施例の検証方法>
一方、本発明では、式(16)は式(11)及び(15)、Y=gを用いて、以下のように表すことができる。
e(g,g)=e(g,gry) (16)’
バイリニアマップeの性質により、等式が成立する場合には、乱数r及びyが同一であることが確認できる。式(17)は式(15)及び(14)を用いて、以下のように表すことができる。
e(m,gry)=e(mry,g) (17)’
これにより、同一の乱数r及びyを用いているため、平文mが同一であることが確認できる。式(18)は式(11)、(15)及び(14)、X=gを用いて、以下のように表すことができる。
e(grxrxy,g)=e(gry,g) (18)’
これにより、同一の乱数r、平文m及びyを用いているため、xが正しいことが確認できる。従来技術と同様に、電子署名σを作成できるのは、秘密鍵sk=(x,y)を知っている署名者のみであることが確認できる。このような構成とすることで、従来技術同様、真正性及び完全性を担保しながら、群の元を用いて電子署名を構成することができる。また、検証時の計算式を4つから3つに少なくすることにより、各計算式の計算量が同一の場合には、計算量を25%軽減することができる。
【0034】
<ハードウェア構成>
図7は、本実施例における電子署名装置100のハードウェア構成を例示したブロック図である。検証装置200及び登録装置300も同様の構成を有する。
【0035】
図7に例示するように、この例の電子署名装置100、検証装置200、登録装置300は、それぞれCPU(Central Processing Unit)11、入力部12、出力部13、補助記憶装置14、ROM(Read Only Memory)15、RAM(Random Access Memory)16及びバス17を有している。
【0036】
この例のCPU11は、制御部11a、演算部11b及びレジスタ11cを有し、レジスタ11cに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部12は、データが入力される入力インターフェース、キーボード、マウス等であり、出力部13は、データが出力される出力インターフェース等である。補助記憶装置14は、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、電子署名装置100、検証装置200及び登録装置300としてコンピュータを機能させるためのプログラムが格納されるプログラム領域14a及び各種データが格納されるデータ領域14bを有している。また、RAM16は、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、上記のプログラムが格納されるプログラム領域16a及び各種データが格納されるデータ領域16bを有している。また、バス17は、CPU11、入力部12、出力部13、補助記憶装置14、ROM15及びRAM16を通信可能に接続する。
【0037】
なお、このようなハードウェアの具体例としては、例えば、パーソナルコンピュータの他、サーバ装置やワークステーション等を例示できる。
【0038】
<プログラム構成>
上述のように、プログラム領域14a,16aには、本実施例の電子署名装置100、検証装置200、登録装置300の各処理を実行するための各プログラムが格納される。電子署名プログラム、検証プログラム及び登録プログラムを構成する各プログラムは、単一のプログラム列として記載されていてもよく、また、少なくとも一部のプログラムが別個のモジュールとしてライブラリに格納されていてもよい。また、各プログラムが単体でそれぞれの機能を実現してもよいし、各プログラムがさらに他のライブラリを読み出して各機能を実現するものでもよい。
【0039】
<ハードウェアとプログラムとの協働>
CPU11(図7)は、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置14のプログラム領域14aに格納されている上述のプログラムをRAM16のプログラム領域16aに書き込む。同様にCPU11は、補助記憶装置14のデータ領域14bに格納されている各種データを、RAM16のデータ領域16bに書き込む。そして、このプログラムやデータが書き込まれたRAM16上のアドレスがCPU11のレジスタ11cに格納される。CPU11の制御部11aは、レジスタ11cに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM16上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部11bに順次実行させ、その演算結果をレジスタ11cに格納していく。
【0040】
図3、5は、このようにCPU11に上述のプログラムが読み込まれて実行されることにより構成される電子署名装置100、検証装置200の機能構成を例示したブロック図である。
【0041】
ここで、記憶部103及び203は、補助記憶装置14、RAM16、レジスタ11c、その他のバッファメモリやキャッシュメモリ等の何れか、あるいはこれらを併用した記憶領域に相当する。また、通信部101と、記憶部103と、制御部105と、生成元選択部120と、乱数生成部130と、公開鍵生成部140と、電子署名生成部150は、CPU11に電子署名プログラムを実行させることにより構成されるものである。また、通信部201と、記憶部203と、制御部205と、判定部220は、CPU11に検証プログラムを実行させることにより構成されるものである。
【0042】
また、本形態の電子署名装置100、検証装置200及び登録装置300は、各制御部105、205及び305の制御のもと各処理を実行する。
【実施例2】
【0043】
実施例1と異なる部分についてのみ説明する。実施例2記載の電子署名検証システム1000は、実施例1で示した構成を複数並列に処理し、等式の両辺を乗算にてまとめることにより、複数の平文m(1≦i≦n)に対する電子署名σにも対応することができる。
【0044】
[電子署名検証システム1000]
電子署名検証システム1000は、登録装置300と、電子署名装置1100と、検証装置1200からなる。電子署名装置1100は、複数の平文mを検証装置1200に送る際に、電子署名σを添付するために、登録装置300に対して、公開パラメータvを要求する。登録装置300は、vを電子署名装置100へ送る。電子署名装置1100は、公開パラメータvから公開鍵pkを生成し、登録装置300へ送る。さらに、平文m、公開鍵pk及び秘密鍵skを用いて、電子署名σを生成する。電子署名装置1100は、電子署名σ及び平文mを検証装置1200へ送る。
【0045】
検証装置1200は、電子署名σに対応する公開鍵pkを登録装置300へ要求する。登録装置300は、pkを検証装置1200へ送る。検証装置1200は、電子署名σ、平文m、公開鍵pkを用いて、改竄及び成りすまし等が行われていないか検証する。以下、電子署名装置1100及び検証装置1200について詳細を説明する。
【0046】
[電子署名装置1100]
電子署名装置1100は、通信部101と、記憶部103と、制御部105と、生成元選択部120と、乱数生成部1130と、公開鍵生成部140と、電子署名生成部1150を有する。
【0047】
<乱数生成部1130及び記憶部1103>
乱数生成部1130は、Zに属する乱数r、x及びyを生成して出力する。つまり、本実施例においては、複数の平文mに対応する複数の乱数rを生成する。乱数生成部1130は、乱数x、yを公開鍵生成部140へ、乱数r、x、yを電子署名生成部150へ出力する。記憶部1103は、乱数r、x及びyが記憶される。
【0048】
<電子署名生成部1150>
電子署名生成部1150は、g、g、r、x、y及び平文m∈Gが入力され、
i1=gri (21)
=Πi=1rixrixy (23)
i4=mriy (24)
i5=griy (25)
を計算し、電子署名σ=(bi1,b,bi4,bi5)を生成する。なお、式(21)〜(25)において、riとは、上記乱数rのことを意味する。電子署名生成部1150は、生成元選択部120から生成元g、gを、乱数生成部1130から乱数r、x、yを、さらに平文mを入力され、電子署名σを出力する。
【0049】
電子署名装置1100は、公開鍵pkを登録装置300へ、電子署名σ及び平文mを検証装置1200へ、送る。例えば、通信部101を介して、送信する。
【0050】
このような構成とすることで、実施例1同様、電子署名σを構成する要素の数を5つから4つに少なくすることができ、実施例1と同様の効果を得ることができる。さらに、複数の平文m(1≦i≦n)に対して電子署名σを生成することができるため、実施例1の方法により複数の平文に対し、複数の電子署名を作成するのに比べ、処理を軽減することができる。また、電子署名の情報量、通信量を小さくすることができる。
【0051】
[検証装置1200]
検証装置1200は、通信部201と、記憶部203と、制御部205と、判定部1220を有する。
【0052】
<判定部1220>
判定部1220は、以下の等式全てが成立するか否かを判定する。成立する場合には受理し、成立しない場合には拒否する。
e(bi1,Y)=e(g,bi5) (26)
e(m,bi5)=e(bi4,g) (27)
e(b,g)=e(Πi=1i1i4,X) (28)
判定部1220は、通信部201を介して、または、通信部201及び記憶部203を介して、公開鍵pk、署名σ及び平文mが入力される。
【0053】
このような構成とすることによって、検証時の計算式を4つから3つに少なくし、実施例1同様の効果が得られる。さらに、等式の両辺を乗算にてまとめることにより、実施例1の方法により複数の電子署名を検証するのに比べ、処理を軽減することができる。
【0054】
[変形例1]
実施例2と異なる部分についてのみ説明する。
【0055】
[電子署名検証システム2000]
電子署名検証システム1は、登録装置300と、電子署名装置2100と、検証装置2200からなる。電子署名装置2100は、複数の平文mを検証装置2200に送る際に、電子署名σを添付するために、登録装置300に対して、公開パラメータvを要求する。登録装置300は、vを電子署名装置100へ送る。電子署名装置1100は、公開パラメータvから公開鍵pkを生成し、登録装置300へ送る。さらに、平文m、公開鍵pk及び秘密鍵skを用いて、電子署名σを生成する。電子署名装置2100は、電子署名σ及び平文mを検証装置2200へ送る。
【0056】
検証装置2200は、電子署名σに対応する公開鍵pkを登録装置300へ要求する。登録装置300は、pkを検証装置2200へ送る。検証装置2200は、電子署名σ、平文m、公開鍵pkを用いて、改竄及び成りすまし等が行われていないか検証する。以下、電子署名装置2100及び検証装置2200について詳細を説明する。
【0057】
[電子署名装置2100]
電子署名装置2100は、通信部101と、記憶部2103と、制御部105と、生成元選択部120と、乱数生成部2130と、公開鍵生成部2140と、電子署名生成部2150を有する。
【0058】
<乱数生成部2130及び記憶部2103>
乱数生成部2130は、Zqに属する乱数r、x及びyiを生成して出力する。つまり、本実施例においては、複数の平文mに対応する複数の乱数yを生成する。乱数生成部2130は、乱数x、yを公開鍵生成部140へ、乱数r、x、yを電子署名生成部2150へ出力する。記憶部2103は、乱数r、x及びyが記憶され、特にx、yは秘密鍵sk=(x,yi)として秘密に記憶される。
【0059】
<公開鍵生成部2140>
公開鍵生成部2140は、x、y、及びgが入力され、X=g、Y=gyi(但し、yiは、yを表す)を計算し、公開鍵pk=(v,g,g,X,Y)を生成する。
【0060】
<電子署名生成部2150>
電子署名生成部2150は、g、g、r、x、y及び平文m∈Gが入力され、
=g (31)
=grxΠi=1rxyi (33)
i4=mryi (34)
i5=gryi (35)
を計算し、電子署名σ=(b,b,bi4,bi5)を生成する。なお、式(31)〜(35)において、yiとは、上記乱数yのことを意味する。電子署名生成部2150は、生成元選択部120から生成元g、gを、乱数生成部2130から乱数r、x、yを、さらに平文mを入力され、電子署名σを出力する。
このような構成とすることで、実施例2と同様の効果が得られる。
【0061】
[検証装置2200]
検証装置2200は、通信部201と、記憶部203と、制御部205と、判定部2220を有する。
【0062】
<判定部2220>
判定部2220は、以下の等式全てが成立するか否かを判定する。成立する場合には受理し、成立しない場合には拒否する。
【0063】
e(b,Y)=e(g,bi5) (36)
e(m,bi5)=e(bi4,g) (37)
e(b,g)=e(bΠi=1i4,X) (38)
このような構成とすることによって、実施例2と同様の効果が得られる。
【図面の簡単な説明】
【0064】
【図1】電子署名検証システム1の構成例を示す図。
【図2】電子署名検証システム1のシーケンス図の一例を示す図。
【図3】電子署名装置100の構成例を示す図。
【図4】電子署名装置100の処理フローの一例を示す図。
【図5】検証装置200の構成例を示す図。
【図6】検証装置200の処理フローの一例を示す図。
【図7】実施例1における電子署名装置100のハードウェア構成を例示したブロック図。
【符号の説明】
【0065】
1 電子署名検証システム
100 電子署名装置 200 検証装置 300 登録装置
101、201 通信部 103、203 記憶部
105、205 制御部 120 生成元選択部
130 乱数生成部 150 電子署名生成部
220 判定部

【特許請求の範囲】
【請求項1】
登録装置と、電子署名装置と、検証装置からなる電子署名検証システムにおいて、
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→GTとし、公開パラメータをv=(q,G,G,GT,e)とし、
前記電子署名装置は、G及びGからそれぞれ生成元g及びgを無作為に選択する生成元選択部と、
に属する乱数r(但し、1≦i≦nであり、nは、平文の個数を表す)、x及びyを生成する乱数生成部と、
前記公開パラメータvと前記乱数r、x及びyが記憶され、特にx、yは秘密鍵skとして秘密に記憶される記憶部と、
前記x、y、g及びgが入力され、X=g、Y=gを計算し、公開鍵pkを生成する公開鍵生成部と、
前記g、g、r、x、y及び平文mが入力され、bi1=gri、b=Πi=1rixrixy、bi4=mriy、bi5=griyを計算し、電子署名σ=(bi1,b,bi4,bi5)を生成する電子署名生成部と、を有し、
前記検証装置は、前記公開鍵pk、電子署名σ及び平文mが記憶される記憶部と、
(1)e(bi1,Y)=e(g,bi5
(2)e(m,bi5)=e(bi4,g
(3)e(b,g)=e(Πi=1i1i4,X)
(1)〜(3)の等式全てが成立するか否かを判定し、成立する場合には受理し、成立しない場合には拒否する判定部を有し、
前記登録装置は、前記公開パラメータv及び公開鍵pkを記憶する記憶部を有し、
前記電子署名装置は、前記登録装置から前記公開パラメータvを受け取り、前記公開鍵pkを前記登録装置へ、電子署名σ及び平文mを検証装置へ、送り、
前記検証装置は、前記登録装置から前記公開鍵pkを、前記電子署名装置から前記電子署名σ及び平文mを、受け取る、
ことを特徴とする電子署名検証システム。
【請求項2】
登録装置と、電子署名装置と、検証装置からなる電子署名検証システムにおいて、
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→GTとし、公開パラメータをv=(q,G,G,GT,e)とし、
前記電子署名装置は、G及びGからそれぞれ生成元g及びgを無作為に選択する生成元選択部と、
に属する乱数r、x及びy(但し、1≦i≦nであり、nは、平文の個数を表す)を生成する乱数生成部と、
前記公開パラメータvと前記乱数r、x及びyが記憶され、特にx、yは秘密鍵sk=(x,y)として秘密に記憶される記憶部と、
前記x、y、g及びgが入力され、X=g、Y=gyiを計算し、公開鍵pkを生成する公開鍵生成部と、
前記g、g、r、x、y及び平文mが入力され、b=g、b=grxΠi=1rxyi、bi4=mryi、bi5=gryiを計算し、電子署名σ=(b,b,bi4,bi5)を生成する電子署名生成部と、を有し、
前記検証装置は、前記公開鍵pk、電子署名σ及び平文mが記憶される記憶部と、
(1)e(b,Y)=e(g,bi5
(2)e(m,bi5)=e(bi4,g
(3)e(b,g)=e(bΠi=1i4,X)
(1)〜(3)の等式全てが成立するか否かを判定し、成立する場合には受理し、成立しない場合には拒否する判定部を有し、
前記登録装置は、前記公開パラメータv及び公開鍵pkを記憶する記憶部を有し、
前記電子署名装置は、前記登録装置から前記公開パラメータvを受け取り、前記公開鍵pkを前記登録装置へ、電子署名σ及び平文mを検証装置へ、送り、
前記検証装置は、前記登録装置から前記公開鍵pkを、前記電子署名装置から前記電子署名σ及び平文mを、受け取る、
ことを特徴とする電子署名検証システム。
【請求項3】
請求項1または2記載の電子署名検証システムであって、
n=1である、
ことを特徴とする電子署名検証システム。
【請求項4】
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→GTとし、公開パラメータをv=(q,G,G,GT,e)とし、
及びGからそれぞれ生成元g及びgを無作為に選択する生成元選択部と、
に属する乱数r(但し、1≦i≦nであり、nは、平文の個数を表す)、x及びyを生成する乱数生成部と、
前記公開パラメータvと前記乱数r、x及びyが記憶され、特にx、yは秘密鍵skとして秘密に記憶される記憶部と、
前記x、y、g及びgが入力され、X=g、Y=gを計算し、公開鍵pkを生成する公開鍵生成部と、
前記g、g、r、x、y及び平文mが入力され、bi1=gri、b=Πi=1rixrixy、bi4=mriy、bi5=griyを計算し、電子署名σ=(bi1,b,bi4,bi5)を生成する電子署名生成部と、を有し、
登録装置から前記公開パラメータvを受け取り、前記公開鍵pkを前記登録装置へ、電子署名σ及び平文mを検証装置へ、送る、
ことを特徴とする電子署名装置。
【請求項5】
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→GTとし、
公開鍵pk、電子署名σ及び平文m(但し、1≦i≦nであり、nは、平文の個数を表す)が記憶される記憶部と、
(1)e(bi1,Y)=e(g,bi5
(2)e(m,bi5)=e(bi4,g
(3)e(b,g)=e(Πi=1i1i4,X)
(1)〜(3)の等式全てが成立するか否かを判定し、成立する場合には受理し、成立しない場合には拒否する判定部を有し、
登録装置から前記公開鍵pkを、電子署名装置から前記電子署名σ及び平文mを、受け取る、
ことを特徴とする検証装置。
【請求項6】
登録装置と、電子署名装置と、検証装置を用いる電子署名検証方法であって、
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→GTとし、公開パラメータをv=(q,G,G,GT,e)として、
前記電子署名装置が、前記登録装置から前記公開パラメータvを受け取るステップと、
前記電子署名装置が、前記公開パラメータvを記憶する公開パラメータ記憶ステップと、
前記電子署名装置が、G及びGからそれぞれ生成元g及びgを無作為に選択する生成元選択ステップと、
前記電子署名装置が、Zに属する乱数r(但し、1≦i≦nであり、nは、平文の個数を表す)、x及びyを生成する乱数生成ステップと、
前記電子署名装置が、前記乱数r、x及びyを記憶し、特にx、yは秘密鍵skとして秘密に記憶する秘密鍵記憶ステップと、
前記電子署名装置が、前記x、y、g及びgを用いて、X=g、Y=gを計算し、公開鍵pkを生成する公開鍵生成ステップと、
前記登録装置が、前記公開鍵pkを登録及び公開するステップと、
前記電子署名装置が、前記g、g、r、x、y及び平文mを用いて、bi1=gri、b=Πi=1rixrixy、bi4=mriy、bi5=griyを計算し、電子署名σ=(bi1,b,bi4,bi5)を生成する電子署名生成ステップと、
前記検証装置が、前記電子署名装置から前記電子署名σ及び平文mを、受け取るステップと、
前記検証装置が、前記登録装置から前記公開鍵pkを受け取るステップと、
前記検証装置が、前記公開鍵pk、電子署名σ及び平文mを記憶する記憶ステップと、
前記検証装置が、
(1)e(bi1,Y)=e(g,bi5
(2)e(m,bi5)=e(bi4,g
(3)e(b,g)=e(Πi=1i1i4,X)
(1)〜(3)の等式全てが成立するか否かを判定し、成立する場合には受理し、成立しない場合には拒否する判定ステップを有する、
ことを特徴とする電子署名検証方法。
【請求項7】
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→GTとし、公開パラメータをv=(q,G,G,GT,e)として、
電子署名装置が、登録装置から前記公開パラメータvを受け取るステップと、
前記電子署名装置が、前記公開パラメータvを記憶する公開パラメータ記憶ステップと、
前記電子署名装置が、G及びGからそれぞれ生成元g及びgを無作為に選択する生成元選択ステップと、
前記電子署名装置が、Zに属する乱数r(但し、1≦i≦nであり、nは、平文の個数を表す)、x及びyを生成する乱数生成ステップと、
前記電子署名装置が、前記乱数r、x及びyを記憶し、特にx、yは秘密鍵skとして秘密に記憶する秘密鍵記憶ステップと、
前記電子署名装置が、前記x、y、g及びgを用いて、X=g、Y=gを計算し、公開鍵pkを生成する公開鍵生成ステップと、
前記電子署名装置が、前記g、g、r、x、y及び平文mを用いて、bi1=gri、b=Πi=1rixrixy、bi4=mriy、bi5=griyを計算し、電子署名σ=(bi1,b,bi4,bi5)を生成する電子署名生成ステップと、
を有する電子署名方法。
【請求項8】
qを素数とし、G、G、Gを位数qの群とし、eをバイリニアマップe:G×G→GTとし、公開パラメータをv=(q,G,G,GT,e)として、
検証装置が、登録装置から公開鍵pkを受け取るステップと、
前記検証装置が、電子署名装置から電子署名σ及び平文m(但し、1≦i≦nであり、nは、平文の個数を表す)を、受け取るステップと、
前記検証装置が、前記公開鍵pk、電子署名σ及び平文mを記憶する記憶ステップと、
前記検証装置が、
(1)e(bi1,Y)=e(g,bi5
(2)e(m,bi5)=e(bi4,g
(3)e(b,g)=e(Πi=1i1i4,X)
(1)〜(3)の等式全てが成立するか否かを判定し、成立する場合には受理し、成立しない場合には拒否する判定ステップと、
を有する検証方法。
【請求項9】
請求項4記載の電子署名装置としてコンピュータを機能させるための電子署名プログラム。
【請求項10】
請求項5記載の検証装置としてコンピュータを機能させるための検証プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2010−134048(P2010−134048A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−307894(P2008−307894)
【出願日】平成20年12月2日(2008.12.2)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】