JP4625703B2 - 電子署名システム、電子署名方法及びプログラム - Google Patents

電子署名システム、電子署名方法及びプログラム Download PDF

Info

Publication number
JP4625703B2
JP4625703B2 JP2005016144A JP2005016144A JP4625703B2 JP 4625703 B2 JP4625703 B2 JP 4625703B2 JP 2005016144 A JP2005016144 A JP 2005016144A JP 2005016144 A JP2005016144 A JP 2005016144A JP 4625703 B2 JP4625703 B2 JP 4625703B2
Authority
JP
Japan
Prior art keywords
signature
signer
idi
data
key
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.)
Expired - Fee Related
Application number
JP2005016144A
Other languages
English (en)
Other versions
JP2006203825A (ja
Inventor
朗人 丹羽
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions 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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2005016144A priority Critical patent/JP4625703B2/ja
Publication of JP2006203825A publication Critical patent/JP2006203825A/ja
Application granted granted Critical
Publication of JP4625703B2 publication Critical patent/JP4625703B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)

Description

本発明は、文書データに対する電子署名データを作成し、この電子署名データに基づいて署名検証を行う電子署名システムに係り、特に複数の署名者が関与する多重署名に好適な電子署名システム、電子署名方法及びプログラムに関する。
従来から、電子署名の作成法として様々な方法が考案されている。署名の中には、稟議書や契約書等複数の署名を必要とするものがある。その電子版で、単純に個々の電子署名を連結したものよりも署名長を短くできるものは、多重署名と呼ばれる。この多重署名についても、様々な方法が提案されている。例えば、特許文献1及び非特許文献1には、署名者の順番を問わない多重署名方式が記載されている。特許文献1に記載された多重署名方式は、ElGamal署名方式の変形であり、ElGamal型多重署名方式と呼ぶことができる。
更に、非特許文献2には、特許文献1または非特許文献1に記載の多重署名方式と異なって、署名者の順番を固定とした縦列型の多重署名方式が記載されている。
一方暗号・署名技術においては、公開鍵とそれに対応する秘密鍵の所有者を結び付ける方法の1つとして、所有者のID情報から公開鍵を作成する方法が知られている。これを用いる場合は、通常PKI(Public Key Infrastructure:公開鍵認証基盤)等で用いられる公開鍵証明書等は不用になり、より簡易なセキュリティシステムの構築が可能になる、という利点がある。
ID情報に基づく暗号・署名技術については、近年楕円曲線のペアリングを用いた方式が多数考案されている。例えば署名については、特許文献2にElGamal型署名とSchnorr型署名が記載され、非特許文献3にElGamal型署名が記載されている。
特開平10−153956号公報(段落0018) 特開2004−201124号公報(段落0060乃至0066、段落0067乃至0076) K. Ohta and T. Okamoto,"Multisignature schemes secure aganst active insider attacks", IEICE Trans. Fundamentals Vol. E82-A (1999), No.1, pp.21-31O M. Burmester, Y. Desmedt, H.Doi, M. Mambo, E. Okamoto, M. Tada, and Y. Yoshifuji,"A Structured ElGamal-Type Multisignature Scheme",PKC2000, LNCS 1751, Springer-Verlag (2000), pp.466-483 K. G. Paterson, "ID-based signatures from pairings on elliptic curves", Electronics Letters 38(18) (2002), pp.1025-1026
そこで、上記特許文献2または非特許文献3に記載されたID情報に基づく署名技術を、特許文献1、非特許文献1または非特許文献2に記載の多重署名方式に適用することが考えられる。しかしながら、特許文献2または非特許文献2に記載されたID情報に基づく署名技術は、ElGamal署名に類似した方式であり、その方式のままでは多重署名を構築することには向いていない。
本発明は上記事情を考慮してなされたものでその目的は、署名者の検証用の鍵としてID情報に基づいて作成される公開鍵を多重署名に利用可能な電子署名システム、電子署名方法及びプログラムを提供することにある。
本発明の1つの観点によれば、文書データMに対する電子署名データを生成し、この電子署名データに基づいて署名検証を行う電子署名システムが提供される。このシステムは、センター装置によって通信ネットワークを介して公開される情報であって、ペアリングが定義可能な代数曲線のnねじれ点の集合E[n]の元であるP及びQと、当該P及びQと秘密情報sとから生成された公開情報Ppub=sP及びQpub=sQと、署名者のID情報から特定の関数に従ってマッピングされた<P>(点Pによって生成される巡回群)に属する点である、当該署名者の公開鍵QIDiとを含む情報の少なくとも一部を利用して、文書データMに対する電子署名データを生成する署名生成装置と、上記署名生成装置によって生成された電子署名データと上記センター装置によって公開される情報の少なくとも一部とに基づいて署名検証を行う署名検証装置とを具備する。上記署名生成装置は第1及び第2の署名生成手段を有し、上記署名検証装置は署名検査手段を有する。
上記第1の署名生成手段は、上記点Qによって生成される巡回群<Q>に属する点Riであって、乱数kiと上記点Qとに依存する点Riを、第1の署名データとして生成する。上記第2の署名生成手段は、予め配布された秘密鍵DIDi=sQIDiであって、上記秘密情報s及び上記公開鍵QIDiに基づき上記センター装置によって生成された秘密鍵DIDi=sQIDiと、上記文書データMと、上記乱数kiと、上記点Riと、上記公開情報Ppubとに基づいて、上記<P>に属する点Siを第2の署名データとして生成する。上記署名検査手段は、上記署名装置によって生成された上記第1の署名データRi及び上記第2の署名データSiのペアと、上記文書データMと、上記センター装置によって公開されている上記Q、Ppub及びQpubと、上記署名者の公開鍵QIDiとに基づいて、上記代数曲線上のペアリングを用いた署名検査式に従って署名を検査する。
このような構成においては、<Q>に属する点が第1の署名データRiとして生成され、<P>に属する点が第2の署名データSiとして生成される。この第2の署名データSiには、署名者のID(=IDi)がマッピングされた<P>に属する点である公開鍵QIDiと秘密情報sとに基づいて生成された秘密鍵DIDi=sQIDiが反映されている。このSiとPiのペアが署名データとして用いられて、文書データMと、Q、Ppub及びQpubと、公開鍵QIDiとに基づいて、代数曲線(例えば楕円曲線)上のペアリングを用いた署名検査式に従って署名検査が行われる。これにより、署名者の検証用の鍵としてID情報に基づいて作成される公開鍵QIDiを多重署名に利用することが可能となる。
そこで、上記文書データMに対する電子署名データが、n者から構成される複数の署名者の操作に従って生成されるものであり、上記QIDi、上記ki及び上記DIDiは、それぞれi番目の署名者に対応した公開鍵、乱数及び秘密鍵であり、上記Ri及び上記Siは、それぞれi番目の署名者の第1及び第2の署名データであるものとする。この場合、上記第1の署名生成手段は、上記i番目の署名者の第1の署名データRiを、少なくとも上記乱数kiと、上記Qとに基づいて生成するように構成され、上記第2の署名生成手段は、上記i番目の署名者の第2の署名データSiを、i−1番目の署名者の第2の署名データSi-1と、上記文書データMと、1番目乃至n番目の署名者の第1の署名データR1乃至Rnのうちの少なくとも一部と、上記i番目の署名者の公開鍵DIDiと、上記i番目の署名者に対応した乱数kiと、上記公開情報Ppubとに基づいて生成するように構成される。また、上記署名検査手段は、上記R1乃至Rnのうちの少なくともRnと、n番目の署名者の第2の署名データSnと、上記文書データMと、上記Q、Ppub及びQpubと、1番目乃至n番目の全ての署名者の公開鍵QID1乃至QIDnとに基づいて署名を検査するように構成される。このような構成により、QIDiを利用した多重署名が実現できる。
代数曲線上のペアリングを用いた署名検査式としては、例えばi番目の署名者の第2の署名データSiが、
Si=Si-1+fiDIDi+kigiPpub
で示される関係式(fiはM,R1,…Riのうちの少なくともMをハッシュ空間にマッピングするためのハッシュ関数、giはM,R1,…Riのうちの少なくともRiをハッシュ空間にマッピングするためのハッシュ関数、ハッシュ空間はハッシュ関数の値域となるバイナリデータの集合)または当該関係式と等価な関係式に従って生成される構成とするならば、
e(Sn,Q)=e(Σ(fjQIDj),Qpub)e(Ppub,Σ(gjRj))
ここで、e( , )は代数曲線のペアリング、Σ(fjQIDj),はj=1からj=nまでのfjQIDjの和、,Σ(gjRj)は、j=1からj=nまでのgjRjの和
で定義される関係式または当該関係式と等価な関係式を用いることが可能である。
また、i番目の署名者の第2の署名データSiが、
Si=Si-1+fnDIDi+kignPpub
で示される関係式(fnはM,Rnのうちの少なくともMをハッシュ空間にマッピングするためのハッシュ関数、gnはM,Rnのうちの少なくともRnをハッシュ空間にマッピングするためのハッシュ関数、ハッシュ空間はハッシュ関数の値域となるバイナリデータの集合)または当該関係式と等価な関係式に従って生成される構成とするならば、代数曲線上のペアリングを用いた署名検査式としては、例えば
e(Sn,Q)=e(Σ(fnQIDj),Qpub)e(Ppub,gnRj)
ここで、e( , )は代数曲線のペアリング
で定義される関係式または当該関係式と等価な関係式を用いることが可能である。
なお、上記した電子署名システムに係る発明は、当該システムで実現される電子署名の手順を実行する電子署名方法に係る発明として捉えることも、当該方法で適用される電子署名の手順をコンピュータに実行させるためのプログラムの発明として捉えることも可能である。
本発明によれば、ペアリングが定義可能な代数曲線のnねじれ点の集合E[n]の元であるP及びQのうちのPによって生成される巡回群<P>に属する点に、署名者のID情報をマッピングすることで得られる公開鍵を第2の署名データSiに反映させて、当該第2の署名データSiを<P>に属する点とすると共に、第2の署名データSiとペアをなす第1の署名データを乱数kiと点Qとに依存する点、つまり<Q>に属する点とし、代数曲線上のペアリングを用いた署名検査式に従って署名を検査することにより、署名者のID情報から変換された公開鍵を多重署名に利用することが可能となる。
以下、本発明の実施の形態につき図面を参照して説明する。
まず、本発明の実施の形態で適用される楕円曲線のペアリング(ベイユペアリング)について説明する。有限体(有限体ベクトル)Fq上の楕円曲線Eについて、当該楕円曲線のnねじれ点の集合E[n]の2点(元)P,Qをとる。ペアリングe( , )=en( , )は、E[n]の元P,QからFqまたはその拡大体に含まれる位数nの乗法群(Fqn)への写像e(P,Q)であり、以下の性質を有する。点は全て集合E[n]内で考える。
(非退化)
ある点Pが任意の点Qに対して、e(P,Q)=1を満たすとき、P=0である。
(反対称)
任意の点P,Qに対して、
e(P,Q)=e(Q,P)^(−1)
e(P,P)=e(Q,Q)=1
が成立する。但し、e(Q,P)^(−1)は、e(Q,P)の−1乗、つまりe(Q,P)-1を表す。このように本実施形態では、Xa(Xのa乗)をX^aで表現する。なお、Xaの表現形式を用いることもある。
(双線形)
任意の点P,Q,Rに対して、
e(P+Q,R)=e(P,R)e(Q,R)
e(P,Q+R)=e(P,Q)e(P,R)
が成立する。
特に、Fqの元aに対して、
e(aP,Q)=e(P,aQ)=e(P,Q)^a
が成立する。
楕円曲線上のペアリングを暗号・署名に応用する場合は、以下のような条件
1.nの最大素因子は160ビット以上
2.q>21024
3.E[n]はFqのいかなる部分体上の楕円曲線の点の成す群にも含まれない。
を満たすように楕円曲線Eとnねじれ群E[n]を選ぶことが好ましい。
以下、上記の楕円曲線のペアリングの性質を多重署名に利用した本発明の一実施形態について説明する。図1は本発明の一実施形態に係る電子署名システムの基本構成を示すブロック図である。図1のシステムは、センター装置10と、署名生成装置11-1乃至11-nと、署名検証装置12とから構成される。センター装置10、署名生成装置11-1乃至11-n及び署名検証装置12は、通信ネットワーク13により接続されている。本実施形態では、説明を簡略化するために、1番目乃至n番目の署名者によって利用される署名生成装置が、それぞれ署名生成装置11-1乃至11-nであるものとする。つまりi番目(i=1,2,…,n)の署名者は、署名生成装置11-iを利用するものとする。このi番目の署名者の識別情報(ID)をIDiと表現する。
センター装置10は、公開情報と秘密情報sとを予め準備する。公開情報は、楕円曲線Eのパラメータを含む。公開情報はまた、P,Ppub,Q,Qpub,H1,H2及びH3の各パラメータを含む。公開情報はセンター装置10の記憶装置(図示せず)に格納されており、署名生成装置11-1乃至11-n及び署名検証装置12から通信ネットワーク13を介して読み出すことが可能である。
上記P,Qは、上述したように有限体Fq上の楕円曲線Eのnねじれ点の集合E[n]の元で、Qは<P>(点Pによって生成される巡回群)に属さないものとする。この場合、点Qによって生成される巡回群を<Q>で表すと、E[n]はaP+bQ(a,bは整数)の形の点の集合となる。これをE[n]=<P>+<Q>で表す。また、H1は、署名者のIDを<P>の元へ写像するための関数、H2及びH3は、それぞれ、文書データ(平文、メッセージ)M及び署名(第1の署名データ)Rをハッシュ空間にマッピングするためのハッシュ関数である。本実施形態では、ハッシュ空間とはハッシュ関数の値域となるバイナリデータの集合であると定義される。
またPpub,Qpubは、それぞれ次式
Ppub=sP
Qpub=sQ
を満たす点である。
センター装置10は、i(i=1,2,…,n)番目の署名者(署名者i)のID、つまりIDiと、関数H1とに基づき、i番目の署名者の公開鍵QIDiを次式
IDi=H1(IDi)
に従って計算する。QIDiは、IDiの<P>の元に対する写像、つまり<P>に属する点であることに注意されたい。センター装置10は、この公開鍵QIDiと秘密情報sとに基づき、i番目の署名者の秘密鍵DIDiを次式
IDi=sQIDi
に従って計算する。つまりセンター装置10は、IDiとH1と秘密情報sとに基づき、秘密鍵DIDiをDIDi=sH1(IDi)の計算により取得する。この秘密鍵DIDiも<P>に属する点であることに注意されたい。
公開鍵QIDiと秘密鍵DIDiとのペアを、IDがIDiであるi番目の署名者の鍵ペアと呼ぶ。この鍵ペアは、多重署名の場合には、署名者の数だけ用意される。
秘密鍵DIDiは、署名生成装置11-iを利用するi番目の署名者に秘密裏に配布される。これにより、署名生成装置11-1乃至11-nの後述する秘密鍵記憶装置110には、それぞれ、1番目乃至n番目の署名者のID、つまりID1乃至IDnに対応した秘密鍵DID1乃至DIDnが格納される。
署名生成装置11-i(i=1,2,…,n)は、文書データMに対する電子署名データを生成する。署名検証装置12は、電子署名データに基づいて署名検証を行う。本実施形態では、署名生成装置11-iにおいても署名検証が行われる。そのため署名生成装置11-iは署名検証機能を有する。そこで本実施形態では、署名生成装置11-iの署名検証機能を利用して、署名検証装置12を実現している。つまり署名生成装置11-iと署名検証装置12とは共通の構成を有する。ここでは、署名生成装置11-iを署名検証装置12として用いることも、逆に署名検証装置12を署名生成装置11-iとして用いることも可能である。また、署名生成装置11-1〜11-nの1つを署名検証装置12として兼用することも可能である。勿論、署名検証装置12を署名生成装置11-iとは異なる構成の専用の装置とすることも可能である。
図2は、署名生成装置11-1〜11-n及び署名検証装置12の構成を示すブロック図である。署名生成装置11-1〜11-n及び署名検証装置12は、それぞれ、秘密鍵記憶装置110と、記憶装置111と、公開情報読出部112と、乱数生成部113と、第1署名部114と、第2署名部115と、署名受信部116と、署名送信部117と、公開鍵計算部118と、署名検査部119と、制御部120と、順序鍵生成部121と、順序鍵検査部122とから構成される。
秘密鍵記憶装置110は、当該記憶装置110を有する装置が署名生成装置11-iの場合に、秘密鍵DIDiを格納するのに用いられる。記憶装置111は、公開情報記憶部111a、公開鍵記憶部111b及び署名記憶部111cの各記憶部として用いられる記憶領域を有する。公開情報記憶部111aは、センター装置10によって公開されている公開情報を格納するのに用いられ、公開鍵記憶部111bは公開情報に基づいて生成される公開鍵(の情報)を格納するのに用いられる。署名記憶部111cは、署名送信部117によって受信された(または第1署名部114もしくは第2署名部115によって生成された)署名(署名データ)を格納するのに用いられる。
公開情報読出部112はセンター装置10または公開情報記憶部111aから公開情報を読み出す。乱数生成部113は署名生成に必要な乱数kiを生成する。第1署名部114は、第1の署名(署名データ)Riを生成する。Riは、乱数kiと点Qとに依存する。第2署名部115は、少なくとも公開情報Ppubと秘密鍵DIDと文書データMとを用いて第2の署名(署名データ)Siを生成する。これら両署名部114及び115は、当該署名部114及び115を有する装置が署名生成装置11-iの場合に用いられる。
署名受信部116は、当該署名受信部116を有する装置(署名生成装置11-iまたは署名検証装置12)宛ての署名(署名データ)を通信ネットワーク13から受信する。署名送信部117は、当該署名受信部116を有する装置が署名生成装置11-iの場合に用いられ、署名生成装置11-(i+1)または署名検証装置12に署名(署名データ)を送信する。
公開鍵計算部118は、センター装置10と同様に、IDiと関数H1とに基づき、i番目の署名者の公開鍵QIDi=H1(IDi)を計算する。関数H1は、センター装置10から取得可能である。署名検査部119は、当該署名検査部119を有する装置が署名生成装置11-iの場合には、署名生成装置11-(i-1)によって生成された署名を少なくとも検査(検証)し、当該署名検査部119を有する装置が署名検証装置12の場合には、署名生成装置11-nによって生成された署名を少なくとも検査する。制御部120は、当該制御部120を有する装置における署名生成または署名検証を制御する。順序鍵生成部121及び順序鍵検査部122は、後述する縦列型の多重署名法を適用する場合に必要となるもので、ここでの説明は省略する。
公開情報読出部112、乱数生成部113、第1署名部114、第2署名部115、署名受信部116、署名送信部117、公開鍵計算部118、署名検査部119、制御部120、順序鍵生成部121及び順序鍵検査部122は、コンピュータにインストールされた所定のソフトウェアプログラムを当該コンピュータ(内のCPU)が読み取って実行することにより実現される。このプログラムは、コンピュータで読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード(頒布)されても構わない。
<変形ElGamal署名>
次に、図1のシステムにおけるIDをベースとした変形ElGamal署名について図3のフローチャートを参照して説明する。まず、署名生成装置11-i(i=1,2,…,n)による署名生成について説明する。この署名生成は、署名生成装置11-1乃至11-nに共通である。そこで、署名生成装置11-iを利用する署名者、つまりi番目の署名者の識別情報IDiをIDと表現する。
公開情報読出部112は、センター装置10から公開情報であるQ,Ppub,H2,H3を読み出す(ステップS1)。センター装置10から読み出された公開情報は、署名生成装置11-iで利用可能なように、記憶装置111の公開情報記憶部111aに格納される。これにより、次回からは、上述の公開情報を公開情報記憶部111aから速やかに読み出すことができる。
乱数生成部113は乱数kを生成する(ステップS2)。すると第1署名部114は、次式
R=kQ
に従う計算によって、乱数kと点Qとに依存する点Rを署名(第1の署名データ)として生成する(ステップS3)。Rは<Q>に属する点である。
一方、第2署名部115は、乱数kと、点Rと、公開情報Ppubと、秘密鍵DIDと、ハッシュ関数H2及びH3と、平文Mとを用いて、次式
S=H2(M)DID+kH3(R)Ppub …(1)
に従う計算を行うことによって、署名(第2の署名データ)Sを生成する(ステップS4)。上記式(1)の右辺第1項H2(M)DID及び右辺第2項kH3(R)Ppubは、いずれも<P>に属する点を表す。したがって、署名Sは<P>に属する点である。このようにして、署名生成装置11-iは署名(S,R)を生成する。
次に、署名生成装置11-iまたは署名検証装置12による署名検証について説明する。まず、公開情報読出部112は、センター装置10から公開情報としてQ,Qpub,Ppub,H1,H2,H3を読み出す(ステップS11)。ここで、Q,Ppub,H2,H3は、先のRの計算に際してセンター装置10から読み出されて公開情報記憶部111aに格納されていることから、当該公開情報記憶部111aから読み出すことも可能である。
公開鍵計算部118は、関数H1と署名Sの署名者のIDとに基づき、次式
ID=H1(ID)
に従って当該署名者の公開鍵QIDを計算する(ステップS12)。上記したようにH1は公開されていることから、公開鍵QIDはIDから誰でも(署名生成装置11-1乃至11-n及び署名検証装置12のいずれでも)計算可能である。計算された公開鍵QIDは、署名生成装置11-iにおいて利用可能なように公開鍵記憶部111bに格納される。
署名検査部119は、公開鍵QIDと、平文Mと、公開情報であるQ,Qpub,Ppub,H2及びH3とに基づき、次式
e(S,Q)=e(QID,Qpub)^H2(M)e(Ppub,R)^H3(R) …(2)
ここで、e( , )は楕円曲線のペアリングを表す
が成立するか否かを検査する(ステップS13)。
署名検査部119は、上記式(2)が成立する場合は、署名(S,R)が正当であると判定する。これに対して、上記式(2)が成立しない場合は、署名検査部119は、署名(S,R)は正しくないと判定する。
ここで、上記式(2)が成立するか否かにより署名(S,R)が検証できることを証明する。まず、署名(S,R)、即ち
R=kQ,S=H2(M)DID+kH3(R)Ppub
から、式(2)が導かれることを証明する。
式(2)の左辺のe(S,Q)は、S=H2(M)DID+kH3(R)Ppubを代入すると、次式
e(S,Q)=e(H2(M)DID+kH3(R)Ppub,Q)
=e(H2(M)DID,Q)e(kH3(R)Ppub,Q) …(3)
のように表される。
また、
ID=sQID,Ppub=sP
であることから、上記式(3)は、次式
e(S,Q)=e(sH2(M)QID,Q)e(skH3(R)P,Q) …(4)
のように表される。また、ペアリングの性質(双線形)から、上記式(4)は、次式
e(S,Q)=e(H2(M)QID,Q)se(kH3(R)P,Q)s
=e(H2(M)QID,sQ)e(sH3(R)P,kQ) …(5)
のように表される。
また、
Qpub=sQ, Ppub=sP, R=kQ
であることとペアリングの性質(双線形)から、上記式(5)は、次式
e(S,Q)=e(H2(M)QID,Qpub)e(H3(R)Ppub,R)
=e(QID,Qpub)^H2(M)e(Ppub,R)^H3(R)
のように表される。これにより、R=kQ,S=H2(M)DID+kH3(R)Ppub
から、式(2)が導かれることが証明された。
次に、その逆の証明を行う。そのためには、問題を一般化してペアリングの性質を考えると、<P>に属する点A,Bについて、e(A,Q)=e(B,Q)のときA=Bとなることを示せば良い。ここで、e(P,Q)はE[n]から1のn乗根への写像となっていることに注意する。
まず、A=aP,B=bPと表すことができる。したがってe(A,Q)=e(B,Q)
は、
e(aP,Q)=e(bP,Q)
と表すことができる。よってe(aP,Q)=e(bP,Q)は、
e(P,Q)^a=e(P,Q)^b
と表すことができる。
a,bはnの約数で、e(P,Q)は1のn乗根であるので、e(P,Q)=1でないならば、a=bとなり、したがってA=Bとなる。これにより、式(2)が成立するならば、R=kQ,S=H2(M)DID+kH3(R)Ppubであることが証明された。
ここで、e(P,Q)=1でないと仮定したのは次のような理由による。もしe(P,Q)=1であるとすると、E[n]の全ての元C=aP+bQ、D=cP+dQについて
e(C,D)=e(P,P)^a×e(Q,Q)^b×e(P,Q)^(ad+bd)
=1
となってしまう。そこで、e(P,Q)=1でないという仮定が設けられる。
なお、署名生成及び署名検証に、それぞれ上記式(1)及び(2)と等価な関係式を用いることも可能である。例えば、式(2)と等価な関係式として、
e(S,Q)=e(H2(M)QID,Qpub)e(Ppub,H3(R)R)
を適用することが可能である。
また、例えばハッシュ関数H2,H3に代えて、M及びRのペアをハッシュ空間にマッピングするハッシュ関数F,Gを用いて、署名生成及び署名検証を一般化して、次式
S=F(M,R)DID+kG(M,R)Ppub …(6)
または当該式(6)と等価な関係式に従って署名Sを生成することも可能である。この場合、例えば次式
e(S,Q)=e(QID,Qpub)^F(M,R)e(Ppub,R)^G(M,R) …(7)
ここで、e( , )は楕円曲線のペアリング
が成立するか否かによって、署名(S,R)を検証することも可能である。また、式(7)に代えて、当該式(7)と等価な関係式、例えば
e(S,Q)=e(F(M,R)QID,Qpub)e(Ppub,G(M,R)R)
を用いることも可能である。
<1巡型多重署名(並列型)>
本実施形態の特徴は、上述の変形ElGamal署名を並列型の1巡型多重署名に適用した点にある。以下、並列型の1巡型多重署名について説明する。ここでは、説明の都合上、1番目乃至n番目の署名者が、それぞれ署名生成装置11-1乃至11-nを使用するものとする。つまり、署名生成装置11-1,11-2,…,11-nの順番で署名データが送信されるものとする。この場合、署名生成装置11-iには、署名生成装置11-(i-1)の署名送信部117から、部分署名(Si-1,R1,…,Ri-1)と平文Mとが送信される。
まず、IDがIDi(i=1,…,n)であるi番目の署名者が利用する署名生成装置11-iによる署名生成処理について図4のフローチャートを参照して説明する。今、署名生成装置11-(i-1)の署名送信部117から署名生成装置11-i宛てに送信された部分署名(Si-1,R1,…,Ri-1)と平文Mが、当該署名生成装置11-iの署名受信部116によって受信されたものとする。この部分署名(Si-1,R1,…,Ri-1)と平文Mとは、記憶装置111の署名記憶部111cに格納される。
この状態において、署名生成装置11-iの公開情報読出部112は、センター装置10から公開情報であるQ,Qpub,Ppub,H1,H2,H3を読み出す(ステップS21)。読み出された公開情報は、記憶装置111の公開情報記憶部111aに格納される。
公開鍵計算部118は、関数H1と、署名生成装置11-1乃至11-(i-1)を利用する1番目乃至i−1番目の署名者のIDであるID1乃至IDi-1とに基づき、次式
ID1=H1(ID1),QID2=H1(ID2),…,QIDi-1=H1(IDi-1)
に従って当該1番目乃至i−1番目の署名者の公開鍵QID1乃至QIDi-1を計算する(ステップS22)。計算された公開鍵QID1乃至QIDi-1は、署名生成装置11-iにおいて利用可能なように公開鍵記憶部111bに格納される。
署名検査部119は、署名送信部117によって受信された部分署名(Si-1,R1,…,Ri-1)が正当であるか否かを、平文Mと、公開鍵QIDj(j=1,2,…,i−1)と、公開情報Qpub,Ppub,H2及びH3とに基づき、次式
e(Si-1,Q)={Πe(QIDj,Qpub)}^H2(M)
×{Πe(Ppub,Rj)^H3(Rj)} …(8)
が成立するか否かによって検査(検証)する(ステップS23,S24)。ここで、e( , )は楕円曲線のペアリングを示す。また、Xj=e(QIDj,Qpub)またはXj=e(Ppub,Rj)^H3(Rj)とすると、ΠXjはj=1からj=i−1までのXjの積を示す。
もし、上記式(8)が成立しないならば、署名検査部119は部分署名が不正であると判定する。この場合、署名生成装置11-iでの処理は終了する。これに対して上記式(8)が成立するならば、署名検査部119は部分署名が正当であると判定する。この場合、乱数生成部113は乱数kiを生成する(ステップS25)。すると第1署名部114は、次式
Ri=kiQ
に従う計算によって、乱数kiと点Qとに依存する点Riを署名(第1の署名データ)として生成する(ステップS26)。Riは<Q>に属する点である。
一方、第2署名部115は、乱数kiと、ステップS26で生成されたRiと、公開情報Ppubと、i番目の署名者の秘密鍵DIDiと、ハッシュ関数H2及びH3と、署名Si-1と、平文Mとを用いて、次式
Si=Si-1+H2(M)DIDi+kiH3(Ri)Ppub …(9)
に従う計算を行うことによって、署名(第2の署名データ)Siを生成する(ステップS27)。このようにして、署名生成装置11-iは署名(Ri,Si)を生成する。
署名送信部117は、署名生成装置11-(i-1)から送信されたR1,…,Ri-1に、署名生成装置11-iにて生成されたRi及びSiを付加し、部分署名(Si,R1,…,Ri)として、署名生成装置11-(i-1)から送信された平文Mと共に、i+1番目の署名者が使用する署名生成装置11-(i+1)に送信する(ステップS28)。但し、i=nの場合の署名生成装置11-i、つまり署名生成装置11-nは、(Si,R1,…,Ri)つまり(Sn,R1,…,Rn)と平文Mとを署名検証装置12に送信する。このように、最後の署名者であるn番目の署名者が使用する署名生成装置11-nは、(Sn,R1,…,Rn)を平文Mに対する多重署名として、当該平文Mと共に署名検証装置12に送信する。
なお、1番目の署名者が利用する署名生成装置11-1ではステップS22及びS23は実行されない。また、署名生成装置11-1では、ステップS27において、S0=0としてSi=S1=H2(M)DID1+k1H3(R1)Ppubが計算される。この場合、署名生成装置11-1から署名生成装置11-2には、当該署名生成装置11-1で生成された部分署名(S1,R1)が平文Mと共に送信される。
上記式(9)は、次式
Si=Si-1+H2(M)DIDi+kiH3(Ri)Ppub
=H2(M)ΣDIDj+ΣkjH3(Rj)Ppub …(10)
のように表すことができる。ここで、Xj=DIDjまたはXj=kjH3(Rj)Ppubとすると、ΣXjはj=1からj=iまでのXjの和、つまりX1+X2+…+Xiを示す。DIDj及びPpubは、いずれも<P>に属する点であり、上記式(10)の右辺第1項H2(M)ΣDIDj及び右辺第2項ΣkjH3(Rj)Ppubは、いずれも<P>に属する点を表す。したがって、Siも<P>に属する点である。
次に、署名検証装置12による多重署名に対する検証処理について図5のフローチャートを参照して説明する。今、署名生成装置11-nの署名送信部117から署名検証装置12宛てに送信された多重署名(Sn,R1,…,Rn)が、当該署名検証装置12の署名受信部116によって受信されたものとする。多重署名(Sn,R1,…,Rn)と平文Mとは、記憶装置111の署名記憶部111cに格納される。
この状態において、署名検証装置12の公開情報読出部112は、センター装置10から公開情報であるQ,Qpub,Ppub,H1,H2,H3を読み出す(ステップS31)。センター装置10から読み出された公開情報は、署名検証装置12において利用可能なように記憶装置111の公開情報記憶部111aに格納される。
公開鍵計算部118は、関数H1と、署名生成装置11-1乃至11-nを利用する1番目乃至n番目の署名者のIDであるID1乃至IDnとに基づき、次式
ID1=H1(ID1),QID2=H1(ID2),…,QIDn=H1(IDn)
に従って1番目乃至n番目の署名者の公開鍵QID1乃至QIDnを計算する(ステップS32)。計算された公開鍵QID1乃至QIDi-nは公開鍵記憶部111bに格納される。
すると署名検査部119は、署名送信部117によって受信された多重署名(Sn,R1,…,Rn)が正当であるか否かを、平文Mと、公開鍵QIDj(j=1,2,…,n)と、公開情報Qpub,Ppub,H2及びH3とに基づき、次式
e(Sn,Q)={Πe(QIDj,Qpub)}^H2(M)
×{Πe(Ppub,Rj)^H3(Rj)} …(11)
が成立するか否かによって検証する(ステップS33)。ここで、e( , )は楕円曲線のペアリングを示す。また、Xj=e(QIDj,Qpub)またはXj=e(Ppub,Rj)^H3(Rj)とすると、ΠXjはj=1からj=nまでのXjの積を示す。
なお、署名検証に、上記式(11)と等価な関係式を用いることも可能である。例えば、式(11)と等価な関係式として、
e(Sn,Q)=Πe(H2(M)QIDj,Qpub)
×Πe(Ppub,H3(Rj)Rj) …(12)
を適用することが可能である。ここで、Xj=e(H2(M)QIDj,Qpub)}またはXj=e(Ppub,H3(Rj)Rj)とすると、ΠXjはj=1からj=nまでのXjの積を示す。
また、式(11)と等価な他の関係式として、
e(Sn,Q)=e(ΣQIDj,Qpub)^H2(M)
×e(Ppub,ΣH3(Rj)Rj) …(13)
を適用することも可能である。ここで、Xj=QIDjまたはXj=H3(Rj)Rjとすると、ΣXjはj=1からj=nまでのXjの和を示す。
なお、式(8)と等価な関係式については、上記式(12)または(13)に関して、nをi−1に置き換えれば良い。
ここで、上述の変形ElGamal署名を適用した1巡型多重署名のIDベース版として一般化(拡張)を進めると、署名Siを、例えば次式
Si=ΣfjDIDj+ΣgjkjPpub
で表すことが可能である。ここで、fj及びgjは、それぞれfj=Fj(M,R1,…,Rj),gj=Gj(M,R1,…,Rj)で表されるハッシュ関数である。また、Xj=kjQまたはXj=fjDIDjまたはXj=ΣgjkjPpubとすると、ΣXjはj=1からj=iまでのXjの和を示す。明らかなように、右辺第1項fjDIDj及び右辺第2項gjkjPpubは、いずれも<P>に属する点を表す。したがって、Siも<P>に属する点である。
この場合、次式
e(Sn,Q)=e(ΣfjQIDj,Qpub)e(Ppub,ΣgjRj))
または当該式と等価な関係式が成立するか否かによって、多重署名(Sn,R1,…,Rn)を検証すれば良い。ここで、e( , )は楕円曲線のペアリングを示す。また、Xj=fjQIDjまたはXj=gjRjとすると、ΣXjはj=1からj=nまでのXjの和を示す。なお、fjによるマッピングの要素として、M,R1,…,Rjのうちの少なくともMを含み、gjによるマッピングの要素として、M,R1,…,Rjのうちの少なくともRjを含むものであっても良い。また、fjをM,R1,…,Rjに無関係に1として、gjによるマッピングの要素として、M,R1,…,Rjのうちの少なくともM及びRjを含むものとしても良い。
[第1の変形例:2巡型多重署名(並列型)]
次に上記実施形態の第1の変形例について説明する。この第1の変形例は、前述の変形ElGamal署名を並列型の2巡型多重署名に適用した点にある。ここでは、上記実施形態と同様に、1番目乃至n番目の署名者が、それぞれ署名生成装置11-1乃至11-nを使用するものとする。この場合、1巡目では、署名生成装置11-iには、署名生成装置11-(i-1)の署名送信部117から、署名Ri-1が送信される。また、2巡目では、署名生成装置11-iには、署名生成装置11-(i-1)の署名送信部117から、部分署名(Si-1,Rn)と平文Mとが送信される。
まず、IDがIDi(i=1,…,n)のi番目の署名者が利用する署名生成装置11-iによる1巡目の署名生成処理について図6のフローチャートを参照して説明する。今、署名生成装置11-(i-1)の署名送信部117から署名生成装置11-i宛てに送信された署名Ri-1が、当該署名生成装置11-iの署名受信部116によって受信されたものとする。この署名Ri-1は、記憶装置111の署名記憶部111cに格納される。
この状態において、署名生成装置11-iの公開情報読出部112は、センター装置10から公開情報であるQを読み出す(ステップS41)。センター装置10から読み出された公開情報は、署名生成装置11-iにおいて利用可能なように、記憶装置111の公開情報記憶部111aに格納される。
乱数生成部113は乱数kiを生成する(ステップS42)。すると第1署名部114は、次式
Ri=kiQ+Ri-1
に従う計算によって、乱数kiと点QとRi-1とに依存する点Riを署名(第1の署名データ)として生成する(ステップS43)。ここで、i=1の場合の署名生成装置11-i、つまり署名生成装置11-1にはRi-1=R0は送信されない。そこで署名生成装置11-1では、ステップS43においてR0としてR0=0が用いられるものとする。
署名送信部117は、第1署名部114によって生成されたRiを、i+1番目の署名者が使用する署名生成装置11-(i+1)に送信する(ステップS44)。但し、i=nの場合の署名生成装置11-i、つまり署名生成装置11-nは、RiつまりRnを、1番目の署名者が使用する署名生成装置11-1に送信する。このように、最後の署名者であるn番目の署名者が使用する署名生成装置11-nは、Rnを署名生成装置11-1に送信する。
次に、署名生成装置11-iによる2巡目の署名生成処理について図7のフローチャートを参照して説明する。今、署名生成装置11-(i-1)の署名送信部117から署名生成装置11-i宛てに送信された部分署名(Si-1,Rn)と平文Mが、当該署名生成装置11-iの署名受信部116によって受信されたものとする。この部分署名(Si-1,Rn)と平文Mとは、記憶装置111の署名記憶部111cに格納される。
この状態において、署名生成装置11-iの公開情報読出部112は、センター装置10または公開情報記憶部111aから公開情報であるQ,Qpub,Ppub,H1,H2,H3を読み出す(ステップS51)。センター装置10から読み出された公開情報は、記憶装置111の公開情報記憶部111aに格納される。
公開鍵計算部118は、関数H1と、署名生成装置11-1乃至11-(i-1)を利用する1番目乃至i−1番目の署名者のIDであるID1乃至IDi-1とに基づき、次式
ID1=H1(ID1),QID2=H1(ID2),…,QIDi-1=H1(IDi-1)
に従って当該1番目乃至i−1番目の署名者の公開鍵QID1乃至QIDi-1を計算する(ステップS52)。計算された公開鍵QID1乃至QIDi-1は公開鍵記憶部111bに格納される。
すると署名検査部119は、署名送信部117によって受信された部分署名(Si-1,Rn)が正当であるか否かを、平文Mと、公開鍵QIDj(j=1,2,…,i−1)と、公開情報Qpub,Ppub,H2及びH3とに基づき、次式
e(Si-1,Q)={Πe(QIDj,Qpub)}^H2(M)
×e(Ppub,Ri-1)^H3(M,Rn) …(14)
が成立するか否かによって検査(検証)する(ステップS53,S54)。ここで、e( , )は楕円曲線のペアリングを示す。また、Xj=e(QIDj,Qpub)とすると、ΠXjはj=1からj=i−1までのXjの積を示す。
もし、上記式(14)が成立しないならば、署名検査部119は部分署名が不正であると判定する。この場合、署名生成装置11-iでの処理は終了する。これに対して上記式(14)が成立するならば、署名検査部119は部分署名が正当であると判定する。この場合、第2署名部115は、乱数kiと、公開情報Ppubと、i番目の署名者の秘密鍵DIDiと、ハッシュ関数H2及びH3と、署名Si-1及びRnと、平文Mとを用いて、次式
Si=Si-1+H2(M)DIDi+kiH3(M,Rn)Ppub …(15)
に従う計算を行うことによって、署名(第2の署名データ)Siを生成する(ステップS55)。
署名送信部117は、署名生成装置11-(i-1)から送信(伝達)されたRnに、署名生成装置11-iにて生成されたSiを付加し、部分署名(Si,Rn)として、署名生成装置11-(i-1)から送信された平文Mと共に、i+1番目の署名者が使用する署名生成装置11-(i+1)に送信する(ステップS56)。但し、i=nの場合の署名生成装置11-i、つまり署名生成装置11-nは、(Si,Rn)つまり(Sn,Rn)と平文Mとを署名検証装置12に送信する。このように、最後の署名者であるn番目の署名者が使用する署名生成装置11-nは、(Sn,Rn)を平文Mに対する多重署名として、当該平文Mと共に署名検証装置12に送信する。
なお、1番目の署名者が利用する署名生成装置11-1ではステップS52乃至S54は実行されない。また、署名生成装置11-1では、ステップS55において、Si-1=S0=0としてSi=S1=H2(M)DID1+k1H3(M,Rn)Ppubが計算される。
次に、署名検証装置12による多重署名に対する検証処理について図8のフローチャートを参照して説明する。今、署名生成装置11-nの署名送信部117から署名検証装置12宛てに送信された多重署名(Sn,Rn)が、当該署名検証装置12の署名受信部116によって受信されたものとする。多重署名(Sn,Rn)と平文Mとは、記憶装置111の署名記憶部111cに格納される。
この状態において、署名検証装置12の公開情報読出部112は、センター装置10から公開情報であるQ,Qpub,Ppub,H1,H2,H3を読み出す(ステップS61)。センター装置10から読み出された公開情報は、記憶装置111の公開情報記憶部111aに格納される。
公開鍵計算部118は、関数H1と、署名生成装置11-1乃至11-nを利用する1番目乃至n番目の署名者のIDであるID1乃至IDnとに基づき、次式
ID1=H1(ID1),QID2=H1(ID2),…,QIDn=H1(IDn)
に従って1番目乃至n番目の署名者の公開鍵QID1乃至QIDnを計算する(ステップS62)。計算された公開鍵QID1乃至QIDnは公開鍵記憶部111bに格納される。
すると署名検査部119は、署名送信部117によって受信された多重署名(Sn,Rn)が正当であるか否かを、平文Mと、公開鍵QIDj(j=1,2,…,n)と、公開情報Qpub,Ppub,H2及びH3とに基づき、次式
e(Sn,Q)={Πe(QIDj,Qpub)}^H2(M)
×e(Ppub,Rn)^H3(M,Rn)} …(16)
が成立するか否かによって検証する(ステップS63)。ここで、e( , )は楕円曲線のペアリングを示す。また、Xj=e(QIDj,Qpub)とすると、ΠXjはj=1からj=nまでのXjの積を示す。
上述した2巡型多重署名によれば、先に述べた1巡型多重署名と比べて、手間はかかるものの、署名者の数nの増加による署名サイズの増加を抑えることができる。
なお、式(16)と等価な関係式として、
e(Sn,Q)=Πe(H2(M)QIDj,Qpub)
×e(Ppub,H3(M,Rn)Rn) …(17)
を適用することが可能である。ここで、Xj=e(H2(M)QIDj,Qpub)とすると、ΠXjはj=1からj=nまでのXjの積を示す。
また、式(16)と等価な他の関係式として、
e(Sn,Q)=e(ΣQIDj,Qpub)^H2(M)
×e(Ppub,H3(M,Rn)Rn) …(18)
を適用することも可能である。ここで、ΣQIDjはj=1からj=nまでのQIDjの和、つまりQID1+QID2+…+QIDnを示す。
なお、式(14)と等価な関係式については、上記式(17)または(18)において、nをi−1に置き換えれば良い。
また、この第1の変形例の2巡型多重署名においても、前述の2巡型多重署名と同様の一般化が可能であり、署名Ri及びSiを、それぞれ次式
Ri=ΣkjQ
Si=ΣfnDIDj+ΣgnkjPpub
で表すことが可能である。ここで、fn及びgnは、それぞれfn=Fn(M,R1,…,Rn),gn=Fn(M,R1,…,Rn)で示されるハッシュ関数である。また、Xj=kjQ、Xj=fnDIDjまたはXj=gnkjPpubとすると、ΣXjは、j=1からj=iまでのXjの和を示す。
次に、一般化されたIDベース版多重署名の安全性について検討する。この安全性は、第1の変形例における1巡型多重署名についても共通である。そこで以下の説明では、ハッシュ関数の表記としてfj及びgjを採用する。必要があれば、fj及びgjを、それぞれfn及びgnに置き換えられたい。まず、署名Siの生成に、ハッシュ関数としてfjのみ使用する(gj=1)場合、署名Siは偽造可能である。この場合、多重署名は安全ではない。これに対し、ハッシュ関数としてfj及びgjの両方を用いるか、或いはgjのみ使用する(fj=1)場合には、多重署名の安全性は、ΣQIDj=s-1(ΣDIDj)という条件式を用いて、ΣDIDjを求める問題に帰着する。ここで、Xj=QIDjまたはXj=DIDjとすると、ΣXjはj=1からj=nまでのXjの和を示す。但し、gjのみを使用する場合には、gjによるマッピングの要素として、M,R1,…,Rjのうちの少なくともM及びRjを含ませることが必要である。
[第2の変形例:2巡型多重署名(縦列型)]
次に上記実施形態の第2の変形例について説明する。この第2の変形例の特徴は、前述の変形ElGamal署名を縦列型の2巡型多重署名に適用した点にある。ここでは、上記実施形態と同様に、1番目乃至n番目の署名者が、それぞれ署名生成装置11-1乃至11-nを使用するものとする。
まず、i番目(i=1,…,n)の署名者が利用する署名生成装置11-iによる順序鍵生成処理について図9のフローチャートを参照して説明する。この順序鍵生成処理は、署名生成装置11-(i-1)にて生成された順序鍵Gi-1を検証する順序鍵検証処理を含む。ここでは、i番目の署名者に固有の秘密情報tiがセンター装置10にて生成される。秘密情報tiはi番目の署名者に秘密裏に配布される。秘密情報tiは署名生成装置11-iの秘密鍵記憶装置110に格納される。ここで、順序鍵Giと秘密情報tiとのペア(Gi,ti)を鍵ペアと呼ぶ。
署名生成装置11-iは順序鍵検証情報生成手段として機能し、公開情報Qと秘密情報tiとに基づき、順序鍵(縦列型用順序鍵)Giの検証に用いられる公開情報(順序鍵検証情報)Aiを次式
Ai=tiQ
に従って生成する。Aiは<Q>に属する点である。署名生成装置11-iは、生成されたAiをDIDiで署名を付けて公開する。公開されたAiは、署名生成装置11-1乃至11-n及び署名検証装置12の公開情報記憶部111aに格納される。公開情報(順序鍵検証情報)Aiは、順序鍵Giそれ自体ではないため、署名順序を変えても再度の作成は不要である。
さて、署名生成装置11-iには、署名生成装置11-(i-1)の署名送信部117から、i−2番目の署名者の順序鍵Gi-2とi−1番目の署名者の順序鍵Gi-1が送信される。この順序鍵Gi-2及びGi-1は、署名生成装置11-iの署名受信部116で受信されて、記憶装置111に格納される。順序鍵Gi-2及びGi-1のうちのGi-2は、以下の説明から理解されるように、署名生成装置11-(i-1)によって正当であると検証されている。
この状態において、署名生成装置11-iの公開情報読出部112は、センター装置10から公開情報であるQ,H1を読み出すと共に、公開情報記憶部111aから公開情報であるAi-1を読み出す(ステップS71)。センター装置10から読み出された公開情報は公開情報記憶部111aに格納される。
公開鍵計算部118は、関数H1と、i−1番目及びi番目の署名者のIDであるIDi-1及びIDiとに基づき、次式
IDi-1=H1(IDi-1),QIDi=H1(IDi)
に従って当該i−1番目及びi番目の署名者の公開鍵QIDi-1及びQIDiを計算する(ステップS72)。但し、署名生成装置11-1では、QIDiのみ、つまりQID1のみが計算される。
順序鍵検査部122は、先に受信された順序鍵Gi-1が正当であるか否かを、順序鍵Gi-2と、公開鍵QIDi-1と、公開情報Ai-1とに基づき、次式
e(Gi-1,Q)=e(Gi-2+QIDi-1,Ai-1) …(19)
が成立するか否かによって検証する(ステップS73,S74)。ここで、e( , )は楕円曲線のペアリングを示す。また、i=1の場合のGi-1つまりG0は、Gi-1=G0=0であるものとする。なお、署名生成装置11-1ではステップS73,S74は実行されない。
もし、上記式(19)が成立しないならば、順序鍵検査部122は順序鍵Gi-1が不正であると判定する。この場合、署名生成装置11-iでの処理は終了する。これに対して上記式(19)が成立するならば、順序鍵検査部122は順序鍵Gi-1が正当であると判定する。すると順序鍵生成部121は、秘密情報tiと、順序鍵Gi-1と、公開鍵QIDiとを用いて、次式
Gi=ti(Gi-1+QIDi)
に従う計算を行うことによって、順序鍵Giを生成する(ステップS75)。ここでは、i=1の場合、Gi-1=G0=0であることから、Gi=G1としてt1QID1が生成される。QIDiは<P>に属する点である。したがって、順序鍵Giも<P>に属する点である。
署名送信部117は、順序鍵生成部121によって生成されたGi及び当該Giの生成に用いられたGi-1を署名生成装置11-(i+1)に送信する(ステップS76)。但し、i=nの場合の署名生成装置11-i、つまり署名生成装置11-nは、Gi-1及びGiつまりGn-1及びGnを署名検証装置12に送信する。
次に、署名検証装置12による順序鍵検証処理について図10のフローチャートを参照して説明する。
署名検証装置12の公開情報読出部112は、センター装置10から公開情報であるQ,H1を読み出すと共に、公開情報記憶部111aから公開情報であるAnを読み出す(ステップS81)。センター装置10から読み出された公開情報は公開情報記憶部111aに格納される。
公開鍵計算部118は、関数H1と、n番目の署名者のIDであるIDnとに基づき、次式
IDn=H1(IDn)
に従って当該n番目の署名者の公開鍵QIDnを計算する(ステップS82)。計算された公開鍵QIDnは署名生成装置11-1の公開鍵記憶部111bに格納される。
順序鍵検査部122は、先に受信された順序鍵Gnが正当であるか否かを、順序鍵Gn-1と、公開鍵QIDnと、公開情報Anとに基づき、次式
e(Gn,Q)=e(Gn-1+QIDn,An) …(20)
が成立するか否かによって検証する(ステップS83)。ここで、e( , )は楕円曲線のペアリングを示す。もし、上記式(20)が成立するならば、順序鍵Gnが正当であると判定される。この段階で、全ての順序鍵G1乃至Gnが正当であると判定されたことになる。これにより、縦列型多重署名が可能となる。
次に、i番目の署名者が利用する署名生成装置11-iによる1巡目の署名生成処理について図11のフローチャートを参照して説明する。なお、署名生成装置11-iには、署名生成装置11-(i-1)の署名送信部117から、1巡目には署名Ri-1が送信され、2巡目では部分署名(Si-1,Rn)と平文Mとが送信される点は、上記第1の変形例(並列型の2巡型多重署名)と同様である。
今、署名生成装置11-(i-1)の署名送信部117から署名生成装置11-i宛てに送信された署名Ri-1が、当該署名生成装置11-iの署名受信部116によって受信されたものとする。この署名Ri-1は、記憶装置111の署名記憶部111cに格納される。
この状態において、署名生成装置11-iの公開情報読出部112は、センター装置10または公開情報記憶部111aから公開情報であるQを読み出す(ステップS91)。一方、乱数生成部113は乱数kiを生成する(ステップS92)。すると第1署名部114は、次式
Ri=tiRi-1+kiQ
に従う計算によって、秘密情報tiと点(署名)Ri-1とに依存し、且つ乱数kiと点Qとに依存する点Riを署名(第1の署名データ)として生成する(ステップS93)。ここで、i=1の場合の署名生成装置11-i、つまり署名生成装置11-1にはRi-1=R0は送信されない。そこで署名生成装置11-1では、ステップS93においてR0としてR0=0が用いられるものとする。この場合、R1=k1Qとなる。Riは<Q>に属する点である。
署名送信部117は、第1署名部114によって生成されたRiを、i+1番目の署名者が使用する署名生成装置11-(i+1)に送信する(ステップS94)。但し、i=nの場合の署名生成装置11-i、つまり署名生成装置11-nは、Rnを1番目の署名者が使用する署名生成装置11-1に送信する。
次に、署名生成装置11-iによる2巡目の署名生成処理について図12のフローチャートを参照して説明する。今、署名生成装置11-(i-1)の署名送信部117から署名生成装置11-i宛てに送信された部分署名(Si-1,Rn)と平文Mとが、当該署名生成装置11-iの署名受信部116によって受信されたものとする。この部分署名(Si-1,Rn)と平文Mとは、記憶装置111の署名記憶部111cに格納される。
この状態において、署名生成装置11-iの公開情報読出部112は、センター装置10または公開情報記憶部111aから公開情報であるQ,Qpub,Ppub,H3を読み出す(ステップS101)。センター装置10から読み出された公開情報は、記憶装置111の公開情報記憶部111aに格納される。
すると署名検査部119は、署名送信部117によって受信された部分署名(Si-1,Rn)が正当であるか否かを、平文Mと、順序鍵Gi-1と、公開情報Qpub,Ppubと、ハッシュ関数H3と、署名Ri-1とに基づき、次式
e(Si-1,Q)=e(Gi-1,Qpub)e(H3(M,Rn)Ppub,Ri-1) …(21)
が成立するか否かによって検査(検証)する(ステップS102,S103)。ここで、e( , )は楕円曲線のペアリングを示す。
もし、上記式(20)が成立しないならば、署名検査部119は部分署名が不正であると判定する。この場合、署名生成装置11-iでの処理は終了する。これに対して上記式(20)が成立するならば、署名検査部119は部分署名が正当であると判定する。
第2署名部115は、部分署名が正当であると判定された場合、乱数kiと、公開情報Ppubと、i番目の署名者の秘密情報tiと、i番目の署名者の秘密鍵DIDiと、ハッシュ関数H3と、署名Si-1及びRnと、平文Mとを用いて、次式
Si=ti(Si-1+DIDi)+kiH3(M,Rn)Ppub
に従う計算を行うことによって、署名(第2の署名データ)Siを生成する(ステップS104)。DIDi及びPpubは<P>に属する点である。したがって、Siも<P>に属する点である。
署名送信部117は、署名生成装置11-(i-1)から送信(伝達)されたRnに、署名生成装置11-iにて生成されたSiを付加し、部分署名(Si,Rn)として、署名生成装置11-(i-1)から送信された平文Mと共に、i+1番目の署名者が使用する署名生成装置11-(i+1)に送信する(ステップS105)。但し、i=nの場合の署名生成装置11-i、つまり署名生成装置11-nは、(Si,Rn)つまり(Sn,Rn)と平文Mとを署名検証装置12に送信する。
なお、1番目(i=1)の署名者が利用する署名生成装置11-1ではステップS102及びS103は実行されない。また、署名生成装置11-1では、ステップS104において、Si-1=S0=0としてSi=S1が計算される。
次に、署名検証装置12による多重署名に対する検証処理について図13のフローチャートを参照して説明する。今、署名生成装置11-nの署名送信部117から署名検証装置12宛てに送信された多重署名(Sn,Rn)及び平文Mが、当該署名検証装置12の署名受信部116によって受信されたものとする。
この状態において、署名検証装置12の公開情報読出部112は、センター装置10または公開情報記憶部111aから公開情報であるQ,Qpub,Ppub,H3を読み出す(ステップS111)。すると署名検査部119は、署名送信部117によって受信された多重署名(Sn,Rn)が正当であるか否かを、点Qと、平文Mと、順序鍵Gnと、公開情報Qpub,Ppubと、ハッシュ関数H3と、署名Rnとに基づき、次式
e(Sn,Q)=e(Gn,Qpub)}e(H3(M,Rn)Ppub,Rn)
が成立するか否かによって検証する(ステップS112)。ここで、e( , )は楕円曲線のペアリングを示す。
[第3の変形例:2巡型多重署名(縦列型)]
次に、上記実施形態の第3の変形例について説明する。第3の変形例の特徴は、上記第2の変形例とは異なって、2巡型多重署名(縦列型)において鍵ペア(順序鍵)生成と署名生成とがまとめて行われる点に特徴がある。
この第3の変形例で適用される縦列型の2巡型多重署名(以下、縦列型多重署名と称する)を理解しやすくするために、2つの平文への署名の連結について説明する。楕円曲線のnねじれ点の集合E[n]=<P>+<Q>が、2つの生成元P,Qを持つことを利用すると、以下に述べるように、2つの平文、即ち第1の平文M1及び第2の平文M2に対する署名を、ペアリングを用いて連結することができる。
まず、平文M1に対する署名者を第1の署名者と呼び、平文M2に対する署名者を第2の署名者と呼ぶ。また、第1の署名者の公開鍵と秘密鍵とのペア(第1の鍵ペア)を(Q1,D1)とし、第2の署名者の公開鍵と秘密鍵とのペア(第2の鍵ペア)を(Q2,D2)とする。Q1,Q2及びD1,D2は、QIDi及びDIDiと同様に、いずれも<P>に属する点である。ここでは、M1に対する署名としてU1とV1とが生成され、M2に対する署名としてU2とV2とが生成される。
署名U1は、乱数k1と点Qとに基づき、次式
U1=k1Q
に従って、例えば署名生成装置11-1の第1署名部114により生成される。
同様に、署名U2は、乱数k2と点Qとに基づき、次式
U2=k2Q
に従って、例えば署名生成装置11-2の第1署名部114により生成される。U1,U2は、Riと同様に、<Q>に属する点である。
一方、署名V1は、平文M1と、乱数k1と、秘密鍵D1と、ハッシュ関数H3と、公開情報Ppubと、後述するU=U1+φ(U2)とに基づき、次式
V1=D1+k1H3(M1,U)Ppub
に従って、例えば署名生成装置11-1の第2署名部115により生成される。
同様に、署名V2は、平文M2と、乱数k2と、秘密鍵D2と、ハッシュ関数H3と、公開情報Ppubと、U=U1+φ(U2)とに基づき、次式
V2=D2+k2H3(M2,U)Ppub
に従って、例えば署名生成装置11-2の第2署名部115により生成される。V1,V2は、<P>に属する点である。
次に、署名U1,U2が、次式
U=U1+φ(U2)
に従って、例えば署名生成装置11-2の第1署名部114により連結される。ここで、φはdistortion mapと呼ばれるE[n]上の自己同型写像であり、φ(Q)=Pであるものとする。この場合、上記Uは、<Q>に属する点と<P>に属する点とを含む。
同様に、署名V1,V2が、次式
V=V1+φ(V2)
に従って、例えば署名生成装置11-2の第2署名部115により連結される。ここでφ(P)=Qであるものとすると、上記Vは、<P>に属する点と<Q>に属する点とを含む。
(U,V)が、2つの平文M1,M2に対する署名となる。この(U,V)の署名長は、平文M1に対する署名(U1,V1)と、平文M2に対する署名(U2,V2)とを単純に連結したものの1/2となっている。但し、U,Vは、いずれも<P>に属する点と<Q>に属する点とを含む。このため、M1,M2に対する署名の検証では、例えばUから、<P>または<Q>に属する点の要素だけを抽出する必要がある。
そこで、M1,M2に対する署名の検証は署名検証装置12によって次のように行われる。まず、M1に対する署名の検証は、点Qと、平文M1と、公開鍵Q1と、公開情報Qpubと、ハッシュ関数H3と、署名U,Vとに基づき、次式
e(V,Q)=e(Q1,Qpub)e(H3(M1,U)P,U)
が成立するか否かによって行われる。e(H3(M1,U)P,U)では、e(P,P)=1とe(P,Q+R)=e(P,Q)e(P,R)の性質とから、Uに含まれている<P>に属する点の要素がキャンセルされて、<Q>に属する点の要素だけが抽出される。
一方、M2に対する署名の検証は、点Pと、平文M2と、公開鍵Q2と、公開情報Ppubと、ハッシュ関数H3と、署名U,Vとに基づき、次式
e(P,V)=e(Ppub,φ(Q2))e(U,H3(M2,U)Q)
が成立するか否かによって行われる。e(U,H3(M2,U)Q)では、e(Q,Q)=1とe(P+Q,R)=e(P,R)e(Q,R)の性質とから、Uに含まれている<Q>に属する点の要素がキャンセルされて、<P>に属する点の要素だけが抽出される。
次に、第3の変形例の特徴である、上述した署名連結の縦列型多重署名への応用について説明する。ここでは、順序鍵に相当する鍵の生成と署名生成とがまとめて行われる。
まず、1番目乃至n番目の署名者が、それぞれ署名生成装置11-1乃至11-nを使用するものとする。この場合、1巡目では、署名生成装置11-iには、署名生成装置11-(i-1)の署名送信部117から、署名Ri-2,Ri-1が送信される。また、2巡目では、署名生成装置11-iには、署名生成装置11-(i-1)の署名送信部117から、部分署名(Si-1,Rn)と平文Mとが送信される。
まず、IDがIDi(i=1,…,n)であるi番目の署名者が利用する署名生成装置11-iによる1巡目の署名生成処理について図14のフローチャートを参照して説明する。今、署名生成装置11-(i-1)の署名送信部117から署名生成装置11-i宛てに送信された署名Ri-2,Ri-1が、当該署名生成装置11-iの署名受信部116によって受信されたものとする。受信された署名Ri-2,Ri-1は、署名記憶部111cに格納される。
この状態において、署名生成装置11-iの公開情報読出部112は、センター装置10から公開情報であるQ,H1を読み出す(ステップS121)。一方、乱数生成部113は乱数kiを生成する(ステップS122)。すると公開鍵計算部118は、i番目の署名者の公開鍵QIDiを次式
IDi=H1(IDi)
に従って計算する(ステップS123)。
第1署名部114は、上記公開鍵QIDiの計算結果を利用し、次式
Ri=ti(Ri-1+QIDi)+kiQ
に従う計算によって、秘密情報tiと点(署名)Ri-1と公開鍵QIDiとに依存し、且つ乱数kiと点Qとに依存する点Riを署名(第1の署名データ)として生成する(ステップS124)。QIDiは前記したように<P>に属する点である。したがってRiは、例えば第2の変形例と異なり、<Q>に属する点だけでなく、<P>に属する点をも含むことに注意されたい。また、Riに含まれるtiQIDiは、第2の変形例における順序鍵Giそれ自体ではないが、当該順序鍵Giに相当する。つまりステップS124で生成されるRiは、第2の変形例における署名Riと順序鍵Giとの両要素を含むことと等価である。このようにステップS124では、署名生成と順序鍵の要素(隠れ順序鍵)との生成が同時に行われる。なお、i=1の場合の署名生成装置11-i、つまり署名生成装置11-1では、Ri-1=R0=0が用いられるものとする。この場合、R1=t1QID1+k1Qとなる。
署名送信部117は、第1署名部114によって生成されたRiと、当該Riの生成に用いられたRi-1とを、i+1番目の署名者が使用する署名生成装置11-(i+1)に送信する(ステップS125)。但し、i=nの場合の署名生成装置11-i、つまり署名生成装置11-nは、Ri及びRi-1、つまりRn及びRn-1を署名検証装置12に送信する。
次に、署名生成装置11-iによる順序鍵生成を含む2巡目の署名生成処理について図15のフローチャートを参照して説明する。今、署名生成装置11-(i-1)の署名送信部117から署名生成装置11-i宛てに送信された部分署名(Si-1,Rn)と平文Mとが、当該署名生成装置11-iの署名受信部116によって受信されたものとする。
この状態において、署名生成装置11-iの公開情報読出部112は、センター装置10または公開情報記憶部111aから公開情報であるQ,Qpub,Ppub,H1,H3,Ai-1を読み出す(ステップS131)。すると公開鍵計算部118は、i−1番目の署名者の公開鍵QIDi-1を次式
IDi-1=H1(IDi-1)
に従って計算する(ステップS132)。
順序鍵生成部121は、順序鍵Bi-1を、1巡目で受信されたRi-1と、公開情報Qpubとを用いて、次式
Bi-1=e(Ri-1,Qpub)
に従う計算を行うことによって生成(復元)する(ステップS133)。
すると順序鍵検査部122は、ステップS133で生成された順序鍵Bi-1が正当であるか否かを、1巡目で受信されたRi-2と、公開鍵QIDi-1と、公開情報Ai-1とに基づき、次式
Bi-1=e(Ri-2+QIDi-1,Ai-1) …(22)
が成立するか否かによって検証する(ステップS134,S135)。ここで、Ai-1は<Q>に属する点であることから、e(Ri-2+QIDi-1,Ai-1)によって、Ri-2に含まれる<Q>に属する点の要素がキャンセルされる。このことは、式(22)が、上記第2の変形例での順序鍵Gi-1の検証に用いられた式(19)と等価であることを示す。
もし、上記式(22)が成立しないならば、順序鍵検査部122は順序鍵Bi-1が不正であると判定する。この場合、署名生成装置11-iでの処理は終了する。これに対して上記式(22)が成立するならば、順序鍵検査部122は順序鍵Bi-1が正当であると判定する。
公開鍵計算部118は、順序鍵Bi-1が正当であると判定された場合、受信された部分署名(Si-1,Rn)が正当であるか否かを、当該順序鍵Bi-1と、平文Mと、公開情報Ppubと、ハッシュ関数H3と、署名Rn及びRi-1とに基づき、次式
e(Si-1,Q)=Bi-1e(H3(M,Rn)Ppub,Ri-1)
=e(Ri-1,Qpub)e(H3(M,Rn)Ppub,Ri-1) …(23)
が成立するか否かによって検査する(ステップS136,S137)。ここで、Ppub,Qpubは、それぞれ<P>,<Q>に属する点である。このため、e(Ri-1,Qpub)によって、Ri-1に含まれる<P>に属する点の要素(順序鍵Gi-1に相当する要素)が抽出される。また、e(H3(M,Rn)Ppub,Ri-1)によって、Ri-1に含まれる<Q>に属する点の要素(第2の変形例におけるRiに相当する要素)が抽出される。このことは、式(23)が、上記第2の変形例での部分署名(Si-1,Rn)の検証に用いられた式(21)と等価であることを示す。
もし、上記式(23)が成立しないならば、署名検査部119は部分署名が不正であると判定する。この場合、署名生成装置11-iでの処理は終了する。これに対して上記式(23)が成立するならば、署名検査部119は部分署名が正当であると判定する。
第2署名部115は、部分署名が正当であると判定された場合、平文Mと、乱数kiと、公開情報Ppubと、i番目の署名者の秘密情報tiと、i番目の署名者の秘密鍵DIDiと、ハッシュ関数H3と、署名Si-1及びRnとを用いて、次式
Si=ti(Si-1+DIDi)+kiH3(M,Rn)Ppub
に従う計算を行うことによって、署名(第2の署名データ)Siを生成する(ステップS138)。DIDi及びPpubは<P>に属する点である。したがって、Siも<P>に属する点である。
署名送信部117は、署名生成装置11-(i-1)から送信(伝達)されたRnに、署名生成装置11-iにて生成されたSiを付加し、部分署名(Si,Rn)として、署名生成装置11-(i-1)から送信された平文Mと共に、i+1番目の署名者が使用する署名生成装置11-(i+1)に送信する(ステップS139)。但し、i=nの場合の署名生成装置11-i、つまり署名生成装置11-nは、(Si,Rn)つまり(Sn,Rn)と平文Mとを、署名検証装置12に送信する。
なお、1番目(i=1)の署名者が利用する署名生成装置11-1ではステップS132乃至S137は実行されない。また、署名生成装置11-1では、ステップS138において、Si-1=S0=0としてSi=S1が計算される。
次に、署名検証装置12による多重署名に対する検証処理について図16のフローチャートを参照して説明する。今、署名生成装置11-nの署名送信部117から署名検証装置12宛てに送信された多重署名(Sn,Rn)及び平文Mが、当該署名検証装置12の署名受信部116によって受信されたものとする。
この状態において、署名検証装置12の公開情報読出部112は、センター装置10または公開情報記憶部111aから公開情報であるQ,Qpub,Ppub,H1,H3,Anを読み出す(ステップS141)。すると公開鍵計算部118は、n番目の署名者の公開鍵QIDnを次式
IDn=H1(IDn)
に従って計算する(ステップS142)。
順序鍵生成部121は、順序鍵Bnを、受信されたRnと、公開情報Qpubとを用いて、次式
Bn=e(Rn,Qpub)
に従う計算を行うことによって生成(復元)する(ステップS143)。
すると順序鍵検査部122は、ステップS143で生成された順序鍵Bnを、1巡目で受信されたRn-1と、公開鍵QIDnと、公開情報Anとに基づき、次式
Bn=e(Rn-1+QIDn,An)
が成立するか否かによって検証する(ステップS144)。
署名検査部119は、順序鍵Bnが正当であるならば、署名送信部117によって受信された多重署名(Sn,Rn)が正当であるか否かを、点Qと、平文Mと、順序鍵Bnと、公開情報Ppubと、ハッシュ関数H3と、署名Rnとに基づき、次式
e(Sn,Q)=Bne(H3(M,Rn)Ppub,Rn)
=e(Rn,Qpub)e(H3(M,Rn)Ppub,Rn)
が成立するか否かによって検証する(ステップS145)。
上述した第3の変形例によれば、署名Siの生成と同時に順序鍵Riが生成される。したがって、第3の変形例で適用される縦列型の多重署名(2巡型多重署名)方法は、署名順序の変更が頻繁にある場合に有効である。なお、上記Bnを
Bn=e(Rn,H2(M,Rn)Qpub)
または
Bn=e(Rn,H2(M)Qpub)
とすることも可能である。この場合、上記H3(M,Rn)に代えてH3(Rn)を用いることも可能である。
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記実施形態またはその変形例では、P,Qが、有限体Fq上の楕円曲線Eのnねじれ点の集合E[n]の元であるとしたが、ペアリングが定義可能な代数曲線であれば、楕円曲線に限るものではない。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係る電子署名システムの基本構成を示すブロック図。 署名生成装置11-1〜11-n及び署名検証装置12の構成を示すブロック図。 同実施形態におけるIDをベースとした変形ElGamal署名の基本的な動作の手順を示すフローチャート。 同実施形態で適用される1巡型多重署名法における署名生成処理の手順を示すフローチャート。 上記1巡型多重署名法における署名検証処理の手順を示すフローチャート。 上記実施形態の第1の変形例で適用される2巡型多重署名法(並列型)における1巡目の署名生成処理の手順を示すフローチャート。 上記2巡型多重署名法(並列型)における2巡目の署名生成処理の手順を示すフローチャート。 前記2巡型多重署名法(並列型)における署名検証処理の手順を示すフローチャート。 上記実施形態の第2の変形例で適用される2巡型多重署名法(縦列型)における順序鍵生成処理の手順を示すフローチャート。 上記第2の変形例における順序鍵検証処理の手順を示すフローチャート。 上記第2の変形例における1巡目の署名生成処理の手順を示すフローチャート。 上記第2の変形例における2巡目の署名生成処理の手順を示すフローチャート。 上記第2の変形例における署名検証処理の手順を示すフローチャート。 上記実施形態の第3の変形例で適用される2巡型多重署名(縦列型)における1巡目の署名生成処理の手順を示すフローチャート。 上記第3の変形例における順序鍵生成を含む2巡目の署名生成処理の手順を示すフローチャート。 上記第3の変形例における署名検証処理の手順を示すフローチャート。
符号の説明
10…センター装置、11-1〜11-n…署名生成装置、12…署名検証装置、13…通信ネットワーク、110…秘密鍵記憶装置、111…記憶装置、111a…公開情報記憶部、111b…公開鍵記憶部、111c…署名記憶部、112…公開情報読出部、113…乱数生成部、114…第1署名部、115…第2署名部、116…署名受信部、117…署名送信部、118…公開鍵計算部、119…署名検査部、120…制御部、121…順序鍵生成部、122…順序鍵検査部。

Claims (11)

  1. 文書データMに対する電子署名データを生成し、この電子署名データに基づいて署名検証を行う電子署名システムにおいて、
    センター装置によって通信ネットワークを介して公開される情報であって、ペアリングが定義可能な代数曲線のnねじれ点の集合E[n]の元であるP及びQと、当該P及びQと秘密情報sとから生成された公開情報Ppub=sP及びQpub=sQと、署名者のID情報から特定の関数に従ってマッピングされた<P>(点Pによって生成される巡回群)に属する点である、当該署名者の公開鍵QIDiとを含む情報の少なくとも一部を利用して、文書データMに対する電子署名データを生成する署名生成装置と、
    前記署名生成装置によって生成された電子署名データと前記センター装置によって公開される情報の少なくとも一部とに基づいて署名検証を行う署名検証装置とを具備し、
    前記署名生成装置は、
    前記点Qによって生成される巡回群<Q>に属する点Riであって、乱数kiと前記点Qとに依存する点Riを、第1の署名データとして生成する第1の署名生成手段と、
    予め配布された秘密鍵DIDi=sQIDiであって、前記秘密情報s及び前記公開鍵QIDiに基づき前記センター装置によって生成された秘密鍵DIDi=sQIDiと、前記文書データMと、前記乱数kiと、前記点Riと、前記公開情報Ppubとに基づいて、前記<P>に属する点Siを第2の署名データとして生成する第2の署名生成手段とを有し、
    前記署名検証装置は、前記署名装置によって生成された前記第1の署名データRi及び前記第2の署名データSiのペアと、前記文書データMと、前記センター装置によって公開されている前記Q、Ppub及びQpubと、前記署名者の公開鍵QIDiとに基づいて、前記代数曲線上のペアリングを用いた署名検査式に従って署名を検査する署名検査手段を有する
    ことを特徴とする電子署名システム。
  2. 前記第2の署名生成手段は、
    Si=fiDIDi+kigiPpub
    で定義される関係式(fiはM,Riのうちの少なくともMをハッシュ空間にマッピングするためのハッシュ関数、giはM,Riのうちの少なくともRiをハッシュ空間にマッピングするためのハッシュ関数、ハッシュ空間はハッシュ関数の値域となるバイナリデータの集合)または当該関係式と等価な関係式に従って、前記第2の署名データを生成し、
    前記署名検査手段は、
    e(Si,Q)=e(fiQIDi,Qpub)e(Ppub,giRi)
    ここで、e( , )は代数曲線のペアリング
    で定義される関係式または当該関係式と等価な関係式に従って署名を検査する
    ことを特徴とする請求項1記載の電子署名システム。
  3. 前記文書データMに対する電子署名データは、n者から構成される複数の署名者の操作に従って生成されるものであり、
    前記QIDi、前記ki及び前記DIDiは、それぞれi番目の署名者に対応した公開鍵、乱数及び秘密鍵であり、
    前記Ri及び前記Siは、それぞれi番目の署名者の第1及び第2の署名データであり、
    前記第1の署名生成手段は、前記i番目の署名者の第1の署名データRiを、少なくとも前記乱数kiと、前記Qとに基づいて生成し、
    前記第2の署名生成手段は、前記i番目の署名者の第2の署名データSiを、i−1番目の署名者の第2の署名データSi-1と、前記文書データMと、1番目乃至n番目の署名者の第1の署名データR1乃至Rnのうちの少なくとも一部と、前記i番目の署名者の公開鍵DIDiと、前記i番目の署名者に対応した乱数kiと、前記公開情報Ppubとに基づいて生成し、
    前記署名検査手段は、前記R1乃至Rnのうちの少なくともRnと、n番目の署名者の第2の署名データSnと、前記文書データMと、前記Q、Ppub及びQpubと、1番目乃至n番目の全ての署名者の公開鍵QID1乃至QIDnとに基づいて署名を検査する
    ことを特徴とする請求項1記載の電子署名システム。
  4. 前記第1の署名生成手段は、前記i番目の署名者の第1の署名データRiを、
    Ri=kiQ
    により生成し、
    前記第2の署名生成手段は、前記i番目の署名者の第2の署名データSiを、
    Si=Si-1+fiDIDi+kigiPpub
    で示される関係式(fiはM,R1,…Riのうちの少なくともMをハッシュ空間にマッピングするためのハッシュ関数、giはM,R1,…Riのうちの少なくともRiをハッシュ空間にマッピングするためのハッシュ関数、ハッシュ空間はハッシュ関数の値域となるバイナリデータの集合)または当該関係式と等価な関係式に従って生成し、
    前記署名検査手段は、
    e(Sn,Q)=e(Σ(fjQIDj),Qpub)e(Ppub,Σ(gjRj))
    ここで、e( , )は代数曲線のペアリング、Σ(fjQIDj),はj=1からj=nまでのfjQIDjの和、,Σ(gjRj)は、j=1からj=nまでのgjRjの和
    で定義される関係式または当該関係式と等価な関係式に従って署名を検査する
    ことを特徴とする請求項3記載の電子署名システム。
  5. 前記第1の署名生成手段は、前記i番目の署名者の第1の署名データRiを、i-1番目の署名者の第1の署名データRi-1と、前記乱数ki及び前記Qとに基づいて生成し、
    前記第2の署名生成手段は、前記i番目の署名者の第2の署名データSiを、
    Si=Si-1+fnDIDi+kignPpub
    で示される関係式(fnはM,Rnのうちの少なくともMをハッシュ空間にマッピングするためのハッシュ関数、gnはM,Rnのうちの少なくともRnをハッシュ空間にマッピングするためのハッシュ関数、ハッシュ空間はハッシュ関数の値域となるバイナリデータの集合)または当該関係式と等価な関係式に従って生成し、
    前記署名検査手段は、
    e(Sn,Q)=e(Σ(fjQIDj),Qpub)e(Ppub,gjRj)
    ここで、e( , )は代数曲線のペアリング
    で定義される関係式または当該関係式と等価な関係式に従って署名を検査する
    ことを特徴とする請求項3記載の電子署名システム。
  6. 前記文書データMに対する電子署名データは、n者から構成される複数の署名者の操作に従って生成されるものであり、
    前記QIDi、前記ki及び前記DIDiは、それぞれi番目の署名者に対応した公開鍵、乱数及び秘密鍵であり、
    前記署名生成装置は、<P>に属する点であるi番目の署名者の順序鍵Giを、i−1番目の署名書の順序鍵Gi-1と、i番目の署名者の公開鍵QIDiと、i番目の署名者の秘密情報tiとに基づき生成する順序鍵生成手段を更に有し、
    前記署名検証装置は、n番目の署名者の順序鍵Gn及びn−1番目の署名書の順序鍵Gn-1と、n番目の署名者の秘密情報tn及び前記点Qから生成される公開情報としての順序鍵検証情報An=tnQと、n番目の署名者の公開鍵QIDnとに基づいて、前記代数曲線上のペアリングを用いた順序鍵検査式に従って前記順序鍵Gnを検査する順序鍵検査手段を更に有し、
    前記第1の署名生成手段は、前記i番目の署名者の第1の署名データRiを、前記i番目の署名者の秘密情報tiと、i-1番目の署名者の第1の署名データRi-1と、前記乱数ki及び前記点Qとに基づいて生成し、
    前記第2の署名生成手段は、前記i番目の署名者の第2の署名データSiを、前記i番目の署名者の秘密情報tiと、i−1番目の署名者の第2の署名データSi-1と、前記i番目の署名者の公開鍵DIDiと、前記文書データMと、1番目乃至n番目の署名者の第1の署名データR1乃至Rnのうちの少なくともRnと、前記i番目の署名者に対応した乱数kiと、前記公開情報Ppubとに基づいて生成し、
    前記署名検査手段は、前記R1乃至Rnのうちの少なくともRnと、n番目の署名者の第2の署名データSnと、前記n番目の署名者の順序鍵Gnと、前記文書データMと、前記Q、Ppub及びQpubとに基づいて署名を検査する
    ことを特徴とする請求項1記載の電子署名システム。
  7. 前記第1の署名生成手段は、前記i番目の署名者の第1の署名データRiを、
    Ri=tiRi-1+kiQ
    により生成し、
    前記第2の署名生成手段は、前記i番目の署名者の第2の署名データSiを、
    Si=ti(Si-1+fnDIDi)+kignPpub
    で示される関係式(fnはM,R1,…Rnのうちの少なくともMをハッシュ空間にマッピングするためのハッシュ関数、gnはM,R1,…Rnのうちの少なくともRnをハッシュ空間にマッピングするためのハッシュ関数、ハッシュ空間はハッシュ関数の値域となるバイナリデータの集合)または当該関係式と等価な関係式に従って生成し、
    前記署名検査手段は、
    e(Sn,Q)=e(Gn,fnQpub)e(gnPpub,Rn)
    ここで、e( , )は代数曲線のペアリング
    で定義される関係式または当該関係式と等価な関係式に従って署名を検査する
    ことを特徴とする請求項6記載の電子署名システム。
  8. 前記文書データMに対する電子署名データは、n者から構成される複数の署名者の操作に従って生成されるものであり、
    前記QIDi、前記ki及び前記DIDiは、それぞれi番目の署名者に対応した公開鍵、乱数及び秘密鍵であり、
    前記第1の署名生成手段は、前記i番目の署名者の第1の署名データRiを、前記i番目の署名者の秘密情報tiと、i-1番目の署名者の第1の署名データRi-1と、i番目の署名者の公開鍵QIDiと、前記乱数ki及び前記点Qとに基づいて生成し、
    前記署名生成装置は、i−1番目の署名者の順序鍵Bi-1を、前記i−1番目の署名書の第1の署名データRi-1と、前記公開情報Qpubとに基づき、
    Bi-1=e(Ri-1,Qpub)
    により生成する順序鍵生成手段を更に有し、
    前記第2の署名生成手段は、前記i番目の署名者の第2の署名データSiを、前記i番目の署名者の秘密情報tiと、i−1番目の署名者の第2の署名データSi-1と、前記i番目の署名者の公開鍵DIDiと、前記文書データMと、1番目乃至n番目の署名者の第1の署名データR1乃至Rnのうちの少なくともRnと、前記i番目の署名者に対応した乱数kiと、前記公開情報Ppubとに基づいて生成し、
    前記署名検査手段は、n番目の署名者の順序鍵Bnを、n−1番目の署名者の第1の署名データRn-1と、n番目の署名者の公開鍵QIDnと、n番目の署名者の秘密情報tn及び前記点Qから生成される公開情報としての順序鍵検証情報An=tnQとに基づき、ペアリングを用いた順序鍵検査式
    Bn=e(Rn-1+QIDn,An)
    により検査する順序鍵検査手段を更に有し、
    前記署名検査手段は、前記R1乃至Rnのうちの少なくともRnと、n番目の署名者の第2の署名データSnと、前記文書データMと、前記順序鍵検査手段によって正当であると判定された前記順序鍵Bnと、前記Ppubとに基づいて
    e(Sn,Q)=Bne(gnPpub,Rn)
    ここで、e( , )は代数曲線のペアリング、gnはM,R1,…Rnのうちの少なくともM及びRnをハッシュ空間にマッピングするためのハッシュ関数、ハッシュ空間はハッシュ関数の値域となるバイナリデータの集合
    で定義される関係式または当該関係式と等価な関係式に従って署名を検査する
    ことを特徴とする請求項1記載の電子署名システム。
  9. センター装置によって通信ネットワークを介して公開される情報であって、ペアリングが定義可能な代数曲線のnねじれ点の集合E[n]の元であるP及びQと、当該P及びQと秘密情報sとから生成された公開情報Ppub=sP及びQpub=sQと、署名者のID情報から特定の関数に従ってマッピングされた<P>(点Pによって生成される巡回群)に属する点である、当該署名者の公開鍵QIDiとを含む情報の少なくとも一部を利用して、文書データMに対する電子署名データを生成し、この電子署名データに基づいて署名検証を行う電子署名方法であって、
    前記点Qによって生成される巡回群<Q>に属する点Riであって、乱数kiと前記点Qとに依存する点Riを、前記通信ネットワークに接続された署名生成装置によって第1の署名データとして生成するステップと、
    予め配布された秘密鍵DIDi=sQIDiであって、前記秘密情報s及び前記公開鍵QIDiに基づき前記センター装置によって生成された秘密鍵DIDi=sQIDiと、前記文書データMと、前記乱数kiと、前記点Riと、前記公開情報Ppubとに基づいて、前記<P>に属する点Siを前記署名生成装置によって第2の署名データとして生成するステップと、
    前記第1の署名データRi及び前記第2の署名データSiのペアと、前記文書データMと、前記センター装置によって公開されている前記Q、Ppub及びQpubと、前記署名者の公開鍵QIDiとに基づいて、前記代数曲線上のペアリングを用いた署名検査式に従って署名を前記通信ネットワークに接続された署名検証装置によって検査するステップと
    を具備することを特徴とする電子署名方法。
  10. 前記文書データMに対する電子署名データは、n者から構成される複数の署名者の操作に従って生成されるものであり、
    前記QIDi、前記ki及び前記DIDiは、それぞれi番目の署名者に対応した公開鍵、乱数及び秘密鍵であり、
    前記Ri及び前記Siは、それぞれi番目の署名者の第1及び第2の署名データであり、
    前記i番目の署名者の第1の署名データRiは、i番目の署名者に対応した署名生成装置によって、少なくとも前記乱数kiと、前記Qとに基づいて生成され、
    前記i番目の署名者の第2の署名データSiは、i−1番目の署名者の第2の署名データSi-1と、前記文書データMと、1番目乃至n番目の署名者の第1の署名データR1乃至Rnのうちの少なくとも一部を受けて、i番目の署名者に対応した署名生成装置によって、前記Si-1と、前記Mと、前記R1乃至Rnのうちの少なくとも一部と、前記i番目の署名者の公開鍵DIDiと、前記i番目の署名者に対応した乱数kiと、前記公開情報Ppubとに基づいて生成され、
    前記署名の検査は、前記R1乃至Rnのうちの少なくともRnと、n番目の署名者の第2の署名データSnと、前記文書データMとを受けて、前記署名検査装置によって、前記R1乃至Rnのうちの少なくともRnと、前記Snと、前記Q、Ppub及びQpubと、1番目乃至n番目の全ての署名者の公開鍵QID1乃至QIDnとに基づいて行われる
    ことを特徴とする請求項9記載の電子署名方法。
  11. センター装置によって通信ネットワークを介して公開される情報であって、ペアリングが定義可能な代数曲線のnねじれ点の集合E[n]の元であるP及びQと、当該P及びQと秘密情報sとから生成された公開情報Ppub=sP及びQpub=sQと、署名者のID情報から特定の関数に従ってマッピングされた<P>(点Pによって生成される巡回群)に属する点である、当該署名者の公開鍵QIDiとを含む情報の少なくとも一部を利用して、文書データMに対する電子署名データを生成し、この電子署名データに基づいて署名検証を行うのに用いられるプログラムであって、
    コンピュータに、
    前記点Qによって生成される巡回群<Q>に属する点Riであって、乱数kiと前記点Qとに依存する点Riを、第1の署名データとして生成するステップと、
    予め配布された秘密鍵DIDi=sQIDiであって、前記秘密情報s及び前記公開鍵QIDiに基づき前記センター装置によって生成された秘密鍵DIDi=sQIDiと、前記文書データMと、前記乱数kiと、前記点Riと、前記公開情報Ppubとに基づいて、前記<P>に属する点Siを前記署名生成装置によって第2の署名データとして生成するステップと、
    前記第1の署名データRi及び前記第2の署名データSiのペアと、前記文書データMと、前記センター装置によって公開されている前記Q、Ppub及びQpubと、前記署名者の公開鍵QIDiとに基づいて、前記代数曲線上のペアリングを用いた署名検査式に従って署名を前記通信ネットワークに接続された署名検証装置によって検査するステップと
    実行させるためのプログラム。
JP2005016144A 2005-01-24 2005-01-24 電子署名システム、電子署名方法及びプログラム Expired - Fee Related JP4625703B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005016144A JP4625703B2 (ja) 2005-01-24 2005-01-24 電子署名システム、電子署名方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005016144A JP4625703B2 (ja) 2005-01-24 2005-01-24 電子署名システム、電子署名方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2006203825A JP2006203825A (ja) 2006-08-03
JP4625703B2 true JP4625703B2 (ja) 2011-02-02

Family

ID=36961391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005016144A Expired - Fee Related JP4625703B2 (ja) 2005-01-24 2005-01-24 電子署名システム、電子署名方法及びプログラム

Country Status (1)

Country Link
JP (1) JP4625703B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6087849B2 (ja) * 2014-01-17 2017-03-01 日本電信電話株式会社 代理署名装置、署名検証装置、鍵生成装置、代理署名システム、およびプログラム
CN112003698B (zh) * 2020-09-07 2024-04-19 三未信安科技股份有限公司 一种sm9协同数字签名方法和系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10153956A (ja) * 1996-09-27 1998-06-09 Toshiba Corp 電子署名方法、電子署名システム及び、記録媒体
JP2004201124A (ja) * 2002-12-19 2004-07-15 Murata Mach Ltd 公開鍵暗号方法,署名方法,暗号通信システム及びコンピュータプログラム
JP2004208263A (ja) * 2002-12-24 2004-07-22 Kankoku Joho Tsushin Gakuen バイリニアペアリングを用いた個人識別情報に基づくブラインド署名装置及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10153956A (ja) * 1996-09-27 1998-06-09 Toshiba Corp 電子署名方法、電子署名システム及び、記録媒体
JP2004201124A (ja) * 2002-12-19 2004-07-15 Murata Mach Ltd 公開鍵暗号方法,署名方法,暗号通信システム及びコンピュータプログラム
JP2004208263A (ja) * 2002-12-24 2004-07-22 Kankoku Joho Tsushin Gakuen バイリニアペアリングを用いた個人識別情報に基づくブラインド署名装置及び方法

Also Published As

Publication number Publication date
JP2006203825A (ja) 2006-08-03

Similar Documents

Publication Publication Date Title
JP4547158B2 (ja) バイリニアマッピングを使用する署名スキーム
WO2009143713A1 (zh) 双因子组合公钥生成和认证方法
JPWO2009008069A1 (ja) グループ署名システム、装置及びプログラム
JP5099003B2 (ja) グループ署名システムおよび情報処理方法
CN103733564A (zh) 利用隐式证书链的数字签名
WO2006077700A1 (ja) グループ署名方式
JP6651042B1 (ja) 複数のノードを有する分散ネットワークに資産の移転を表すトランザクションを記憶する方法及びそのためのプログラム並びに当該分散ネットワークを構成するためのノード
CN112733177B (zh) 基于全域哈希的层次标识密码加密方法
CN114499887A (zh) 签名密钥生成及相关方法、系统、计算机设备和存储介质
JPWO2007010903A1 (ja) 鍵発行方法、グループ署名システム
JP4625703B2 (ja) 電子署名システム、電子署名方法及びプログラム
JP6053983B2 (ja) 暗号システム、署名システム、暗号プログラム及び署名プログラム
Basso et al. Exploring SIDH-Based Signature Parameters
Emura et al. Efficient revocable identity-based encryption with short public parameters
JP4650933B2 (ja) 秘密計算方法及びシステム
JP5421361B2 (ja) メッセージに対する署名を生成する方法及び装置並びにそのような署名を検証する方法及び装置
CN110752931B (zh) 一种sm2椭圆曲线公钥密码体制优化方法
CN113452529A (zh) 一种基于sm2算法的适配器签名生成方法
JP4598269B2 (ja) 楕円曲線上の高速有限体演算
JP4533636B2 (ja) デジタル署名システム、デジタル署名管理装置、デジタル署名管理方法及びプログラム
Tian et al. Cryptanalysis of an ID-based proxy signature scheme with message recovery
JPWO2006057171A1 (ja) 署名および検証方法ならびに署名および検証装置
Fischlin et al. Relaxed security notions for signatures of knowledge
JP5871826B2 (ja) 認証子生成装置、検証装置、およびプログラム
Syed et al. An Efficient Two-Party ECDSA Scheme for Cryptocurrencies

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100930

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: 20101012

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: 20101108

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131112

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