JP2001166687A - グループ署名生成方法及びシステム - Google Patents

グループ署名生成方法及びシステム

Info

Publication number
JP2001166687A
JP2001166687A JP2000297373A JP2000297373A JP2001166687A JP 2001166687 A JP2001166687 A JP 2001166687A JP 2000297373 A JP2000297373 A JP 2000297373A JP 2000297373 A JP2000297373 A JP 2000297373A JP 2001166687 A JP2001166687 A JP 2001166687A
Authority
JP
Japan
Prior art keywords
signature
signer
computer
value
sum
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.)
Pending
Application number
JP2000297373A
Other languages
English (en)
Inventor
Yoshiki Samejima
吉喜 鮫島
Takayuki Nakamura
隆之 中村
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2000297373A priority Critical patent/JP2001166687A/ja
Publication of JP2001166687A publication Critical patent/JP2001166687A/ja
Pending legal-status Critical Current

Links

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
    • 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/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold 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)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)

Abstract

(57)【要約】 【課題】 1人につき1回の署名処理を行うだけで済
み、署名データの大きさおよび署名検証処理も署名者数
によらず不変で、使い勝手のよいグループ署名を行うこ
とができるグループ署名システムを提供すること。 【解決手段】 署名対象の1つのデータに対し複数の署
名者の各秘密鍵を用いた署名処理を実行することによっ
て、前記署名対象の1つのデータに対するディジタル署
名データを生成するグループ署名生成システムにおい
て、署名処理に必要な一時的署名データを各署名者の署
名処理の実行前に予め生成し、公開する第1の手段と、
公開された一時的署名データと複数の署名者の各秘密鍵
とを用いた署名処理を実行し、前記署名対象データに対
するディジタル署名データを生成する第2の手段とを備
える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数の署名者が協
力して1つの署名対象データに対するディジタル署名を
生成するグループ署名システムに関するものである。
【0002】
【従来の技術】コンピュータやネットワーク利用が拡大
し、企業活動だけでなく、社会・行政の分野でも情報の
セキュリティを確保する必要がある。情報セキュリティ
の1つに情報の真正性確保、すなわち電子データの形式
となった情報の作成元や承認元の保証、改竄・修正がな
いことの保証があり、従来からディジタル署名を使って
実現している。
【0003】複数人の署名者によるディジタル署名の方
法として、「多重署名に適したElGamal署名の一変形方
式」(発表者;新保、暗号と情報セキュリティシンポジ
ウム、2C、電子情報通信学会、1994)に離散対数問題を
ベースとした二巡多重署名方法と一巡多重署名方法とが
紹介されている。二巡多重署名方法では、ディジタル署
名生成に必要なデータが署名者間を二巡することで、一
巡多重署名方法では一巡することで、最終的なディジタ
ル署名を生成する。
【0004】
【発明が解決しようとする課題】しかしながら、上記の
二巡多重署名方法では、1つの署名対象データの署名を
生成するのに、署名者、すなわちディジタル署名生成に
必要な秘密鍵情報を持つ署名者の処理が2回ずつ必要で
ある。すなわち、A,B,Cの3人が協力して署名する
場合、まずAが署名の処理をした後、次にB、続いてC
の順に一巡し、さらにA,B,Cがもう一度署名の処理
をする必要がある。したがって、署名者にとって面倒で
あり、使い勝手が悪いという問題がある。
【0005】一方、一巡多重署名方法では、署名データ
がほぼ人数に比例した大きさになり、署名データサイズ
が大きくなるうえ、人数に応じて違う署名検証処理をし
なければならないという問題がある。
【0006】本発明の目的は、1人につき1回の署名処
理を行うだけで済み、署名データの大きさおよび署名検
証処理も署名者数によらず不変で、使い勝手のよいグル
ープ署名を行うことができるグループ署名システムを提
供することにある。
【0007】
【課題を解決するための手段】前記目的を達成するため
に、本発明は、署名対象の1つのデータに対し複数の署
名者の各秘密鍵を用いた署名処理を実行することによっ
て、前記署名対象の1つのデータに対するディジタル署
名データを生成するグループ署名生成システムにおい
て、署名処理に必要な一時的署名データを署名者全員ま
たは一部の署名者の署名処理の実行前に予め生成し、公
開する第1の手段と、公開された一時的署名データと複
数の署名者の各秘密鍵とを用いた署名処理を実行し、前
記署名対象データに対するディジタル署名データを生成
する第2の手段とを備えることを特徴とする。
【0008】そして、前記第1の手段は、楕円曲線上の
点で位数が素数qとなる点をPとして、各署名者計算機
が生成した乱数kから計算した複数のkPを前記一時的
署名データとして生成するものであり、前記第2の手段
は、前記kPの楕円曲線上の和を求め、そのx座標xと
署名対象のデータhとに基づきモジュロqで計算したx
+hに等しい値rと、各署名者計算機が前記乱数kと署
名者固有の秘密鍵dとからモジュロqで計算したs=k
−rdの値sの和とを1組にしてディジタル署名データ
として生成するものであることを特徴とする。
【0009】また、前記第1の手段は、位数pの有限体
の元で位数が素数qとなる元をgとして、各署名者計算
機が生成した乱数kからモジュロpで計算した複数の
「gのk乗」なる値を前記一時的署名データとして生成
するものであり、前記第2の手段は、前記「gのk乗」
なる値の積をモジュロpで求め、署名対象のデータhと
前記「gのk乗」なる値の積とからモジュロqで計算し
たハッシュ値rと、各署名者計算機が前記乱数kと署名
者固有の秘密鍵dとからモジュロqで計算したs=k+
rdの値sの和とを1組にしてディジタル署名データと
して生成するものであることを特徴とする。
【0010】また、楕円曲線上の点で位数が素数qとな
る点をPとした場合に、各署名者の鍵dおよび署名ごとに
各署名者が生成する乱数A及びKを定数項とする多項式を
生成し、署名者ごとに割当てた変数値を代入した前記多
項式のモジュロqでの値と前記PのA倍の点APとを署名以
前に署名計算機に登録し、さらに各署名者が自分に割り
振られた変数値を代入して得られた値を署名計算機から
取り出し、前記Aに関する値の和とKに関する値の和のモ
ジュロqでの積を署名計算機に登録するものであり、前
記第2の手段は、各署名者が計算したAPの和の点を、署
名者ごとに割当てた変数値に応じた係数を乗じた積の和
のモジュロqでの逆数で除して、署名の値の一部rを生
成し、この値rと鍵dに関する値の和との積を求め、この
積と署名対象データのハッシュ値と和を求め、これとK
に関する値のモジュロqでの積を署名計算機に一時登録
しておき、署名者ごとに割当てた変数値に応じた係数を
乗じた積の和からディジタル署名の残り部分sをモジュ
ロqで生成するものであることを特徴とする請求項1に
記載のグループ署名生成システム。
【0011】また、前記第1の手段は、位数pの有限体
を用い、有限体の元で位数が素数qとなる点をgとした
場合に、各署名者の鍵d及び署名ごとに各署名者が生成
する乱数A及びKを定数項とする多項式を生成し、署名
者ごとに割当てた変数値を代入した多項式の値とモジュ
ロpで計算したgのA乗gAとを署名以前に予め署名計
算機に登録し、さらに各署名者が自分に割当てられた変
数値を代入して得られた値を署名計算機から取り出し
て、Aに関する値の和とKに関する値の和のモジュロq
での積を署名計算機に登録するものであり、前記第2の
手段は、各署名者が計算したgA(mod p)の積を、署
名者ごとに割当てた変数値に応じた係数を乗じた積の和
のモジュロqでの逆数の巾乗を求め、署名の値の一部r
を生成し、この値rとdに関する値の和との積を求め、
この積と署名対象データのハッシュ値と和を求め、この
和とKに関する値のモジュロqでの積を署名計算機に一
時登録し、署名者ごとに割当てた変数値に応じた係数を
乗じた積の和からディジタル署名の残り部分sをモジュ
ロqで生成するものであることを特徴とする。
【0012】また、本発明のグループ署名生成方法は、
署名処理に必要な一時的署名データを署名者全員または
一部の署名者の署名処理の実行前に予め生成し、公開す
る第1のステップと、公開された一時的署名データと複
数の署名者の各秘密鍵とを用いた署名処理を実行し、前
記署名対象のデータに対するディジタル署名データを生
成する第2のステップとを備えることを特徴とする。
【0013】また、楕円曲線上の点で位数が素数qとな
る点をPとした場合に、各署名者の鍵dおよび署名ごと
に各署名者が生成する乱数A及びKを定数項とする多項
式を生成し、署名者ごとに割当てた変数値を代入した前
記多項式のモジュロqでの値と前記PのA倍の点APと
を署名以前に署名計算機に登録するステップと、各署名
者が自分に割り振られた変数値を代入して得られた値を
署名計算機から取り出し、前記Aに関する値の和とKに
関する値の和のモジュロqでの積を署名計算機に登録す
るステップと、各署名者が計算したAPの和の点を、署
名者ごとに割当てた変数値に応じた係数を乗じた積の和
のモジュロqでの逆数で除して、ディジタル署名の値の
一部rを生成し、この値rと鍵dに関する値の和との積
を求め、この積と文書のハッシュ値と和を求め、これと
Kに関する値のモジュロqでの積を署名計算機に一時登
録するステップと、署名者ごとに割当てた変数値に応じ
た係数を乗じた積の和からディジタル署名の残り部分s
を生成するステップとを備えることを特徴とする。
【0014】また、位数pの有限体を用い、有限体の元
で位数が素数qとなる点をgとした場合に、各署名者の
鍵d及び署名ごとに各署名者が生成する乱数A及びKを
定数項とする多項式を生成し、署名者ごとに割当てた変
数値を代入した多項式の値とgのA乗gA(mod p)と
を署名以前に予め署名計算機に登録するステップと、各
署名者が自分に割当てられた変数値を代入して得られた
値を署名計算機から取り出して、Aに関する値の和とK
に関する値の和の積を署名計算機に登録するステップ
と、各署名者が計算したgA(mod p)の積を、署名者
ごとに割当てた変数値に応じた係数を乗じた積の和のモ
ジュロqでの逆数の巾乗を求め、ディジタル署名の値の
一部rを生成し、この値rとdに関する値の和との積を
求め、この積と文書のハッシュ値と和を求め、この和と
Kに関する値の積を署名計算機に一時登録するステップ
と、署名者ごとに割当てた変数値に応じた係数を乗じた
積の和からディジタル署名の残り部分sを生成するする
ステップとを備えることを特徴とする。
【0015】
【発明の実施の形態】以下、本発明の実施の形態を図面
に従い詳細に説明する。図1は、本発明の一実施形態を
示すシステム全体構成図である。本実施形態は、IEEEに
て標準化中のStandard Specifications for Public Key
Cryptographyに示されている Elliptic Curve Verifica
tion Primitive(Nyberg-Rueppel version)に準拠した
ディジタル署名生成システムである。
【0016】図1において、101は複数の署名者が使
用する署名者計算機であり、署名に必要な署名者固有の
秘密鍵情報diが保管されている。なお、秘密鍵情報d
iはICカードのような他の媒体に格納される場合もあ
る。また、署名者計算機101は、署名者ごとに独立し
たものであってもよいし、署名者ごとのICカードを用
意した場合には共通した計算機を用いることができる。
【0017】102はグループ署名データを生成する署
名計算機であり、署名対象データや署名に必要な各種デ
ータ1021〜1024などを格納している。ここで、
1021は署名対象のデータである。1022は署名に
必要なデータの一種で、ディジタル署名データの一部と
なる。1023は署名生成に必要な一時的署名データで
あり、署名に先立ってそれぞれの署名者計算機101が
生成し、署名計算機102にネットワーク104を介し
て転送したものを格納する。例えば、K1は1番目の署
名者U1の署名者計算機が生成、K2は2番目の署名者
U2の署名者計算機が生成し、以下同様である。この一
時的署名データ1023は、使い捨てデータであり、署
名対象データ1021に対する署名生成が終わった後、
次の署名のため、改めてそれぞれの署名者計算機101
が生成し、署名計算機102に格納する。
【0018】1024は、署名生成に必要なデータs1
〜sNであり、1021〜1023を参照して、s1は
1番目の署名者計算機101が生成、s2は2番目の署
名者計算機101が生成し、以下同様にそれぞれの署名
者計算機101が生成して、署名計算機102に格納す
る。
【0019】103は、署名に利用する暗号のパラメー
タを生成して各署名者の署名者計算機101と署名計算
機102に登録するパラメータ登録計算機である。この
パラメータ登録計算機103は、本発明により生成され
たディジタル署名データ(グループ署名データ)を検証
するのに必要な公開鍵を計算し、各署名者計算機101
および署名計算機に配布し登録する。
【0020】104は、各計算機101,102,10
3を接続するネットワークである。まず、ディジタル署
名データを生成するのに必要なパラメータについて説明
しておく。なお、ここでは、楕円曲線暗号を利用したデ
ィジタル署名方法を用いた場合について説明するが、通
常の有限体での離散対数問題をベースとした署名方法を
用いた場合でも同様に可能である。
【0021】共通パラメータとして次のものがある。 (1)位数pの体Fp (2)Fp上の楕円曲線 (3)楕円曲線上のベース点Pの位数q(素数) (4)位数qの体Fq (5)署名者Ui(iは1からNまで)のパラメータと
して、Fqからランダムに選択した秘密鍵di
【0022】本実施形態では、このようなパラメータを
元に、署名者Ui(iは1からNまで)の計算機101
は、Fqからランダムに自分の秘密鍵diを選び、安全
な記憶場所に保管する。また、部分公開鍵Qi=diP
を公開する。また、署名に必要な乱数kiをFqから選
択し、Ki=kiPを一時的署名データとして公開す
る。また、Q=ΣiQi=(Σidi(mod q))Pを
公開鍵として登録する。
【0023】各署名者Uiの計算機101は、以下の計
算を行い、結果の値siを公開する。
【0024】
【数1】
【0025】ここで、hは署名対象データ、もしくはそ
のハッシュ値である。全ての署名者計算機がsiを計算
したところで、その和s=Σisi(mod q)を求め、
rと合わせてディジタル署名データ(r,s)とする。
図2を用いて、システム構築時に必要な処理について説
明する。なお、図2のステップ203を除いてパラメー
タ登録計算機103が処理する。
【0026】まず、ステップ201において、署名に使
用するパラメータを決定する。具体的には以下のパラメ
ータを決定する。 (1)位数pの体Fp (2)Fp上の楕円曲線 (3)位数qが素数となる楕円曲線上のベース点P (4)位数qの体Fq なお、パラメータの決定方法は、本発明の範囲外である
ので省略する。
【0027】次に、ステップ202において、ステップ
201で決めたパラメータを署名者計算機101と署名
計算機102に登録する。パラメータ自体は秘密情報で
はないので暗号化する必要はないが、誤ったパラメータ
が登録されないようにする必要がある。
【0028】次にステップ203において、図3に示す
署名者の登録処理を行う。この処理は主に署名者計算機
102にて行う。次に、ステップ204において、前記
ステップ203において計算された部分公開鍵Q1から
QNの楕円曲線上の和を求め、本発明により生成された
署名を検証するのに必要な公開鍵とし、署名者計算機1
01および署名計算機102に配布、登録する。
【0029】図3を用いて、図2のステップ203の署
名者登録処理を詳しく説明する。ここで、ステップ30
5を除いて各署名者計算機101が処理する。まず、ス
テップ301において、秘密鍵diをFqからランダム
に選ぶ。diは漏洩しないように厳重に管理する。続く
ステップ302において、Qi=diPを楕円曲線上で
求め、部分公開鍵Qiとしてパラメータ登録計算機10
3に送る。ステップ303において、秘密パラメータk
iをFqからランダムに選ぶ。kiは漏洩しないように
厳重に管理する。ステップ304において、Ki=ki
Pを楕円曲線上で求め、署名計算機102に送る。ステ
ップ305において、署名計算機102はステップ30
4にて送られてきたKiを一時的署名データ1023と
して登録する。
【0030】次に、図4を用いて、署名生成処理全体を
説明する。なお、ステップ403を除いて署名計算機1
01が処理する。まずステップ401において、署名計
算機101が署名対象データ1021を所定の記憶エリ
アに置く。次に、ステップ402において、一時的署名
データ1023(=K1)からKNの和(x,y)→
「(=K1からKN)の和」を楕円曲線上で求め、さら
にr=X+h(mod q)を求めて、署名の一部構成デー
タ1022として格納する。ここで、hは署名対象デー
タのハッシュ値である。次に、ステップ403におい
て、各署名者計算機101が図5に示す個別署名処理を
行い、それぞれの処理結果siをデータ1024として
格納する。ここで、署名者計算機101の処理順序に特
に決まりはなく、並行に処理を進めても構わない。次
に、ステップ404においてs1からsNの和sをFq
上で求める。次にステップ405において、データ10
22(=r)とのペア(r,s)をディジタル署名デー
タとして出力する。
【0031】図5を用いて、各署名者Uiの計算機10
1が行うステップ403の個別署名処理を詳しく説明す
る。なお、ステップ505を除いて各署名者計算機10
1が処理する。まず、ステップ501において、一時的
署名データ1023(=K1からKN)の和(x’,
y’)を楕円曲線上で求め、r’=x’+h’(mod
q)を求めて、このr’と署名の一部構成データ102
2(=r)とが等しいこと(整合性があること)を確認
する。異なっていれば(整合性がなければ)、異常発生
ということで全体の署名処理を中止する。ここで、h’
は署名対象データ1021のハッシュ値である。次に、
ステップ502において、秘密鍵diを使ってsi=k
i−rdi(mod q)をFqで求める。次に、ステップ
503において、siを署名計算機102に送る。署名
計算機102は署名生成に必要なデータ1024として
格納する。次に、ステップ504において次回署名用に
新たに乱数kiを生成し、Ki=kiPを楕円曲線上で
求めて、署名計算機102に送る。このkiは漏洩しな
いように厳重に管理する。次に、ステップ505におい
て、署名計算機102は送られてきたKiを一時的署名
データ1023として格納する。
【0032】図6は、以上の処理のうち、特に署名生成
処理の部分だけをまとめて図示したものである。以上説
明したように、本実施形態によれば、1つの署名対象デ
ータに対する署名生成処理は、図5に示す処理の1回だ
けで済み、従来までの二巡する方法に比べて使い勝手が
向上する。また、署名結果そのものの大きさは、署名者
の人数によらず不変であり、また署名の検証処理も人数
によらず不変であるため、転送や蓄積のコストや検証処
理を単純化することができる。
【0033】次に、第2の実施形態について説明する。
本実施形態は、Schnorr署名として知られているもので
あり、前記の実施形態と大きな差はない。ここでは、Sc
hnorr署名への本発明適用の主要部となる部分だけを説
明する。必要なパラメータは、次の通りである。 (1)位数pの体Fp (2)Fpのある元g、その位数q(素数) (3)位数qの体Fq まず、各署名者Uiの計算機101は、Fqからランダ
ムに自分の秘密鍵diを選び、安全な記憶場所に保管す
る。また、部分公開鍵Qiを公開する。この部分公開鍵
Qiは、次の「数2」で表される。
【0034】
【数2】
【0035】また、署名に必要な乱数kiをFqから選
択し、一時的署名データKiを公開する。この一時的署
名データKiは、次の「数3」で表される。
【0036】
【数3】
【0037】また、公開鍵Qを登録する。この公開鍵Q
は、次の「数4」で表される。
【0038】
【数4】
【0039】各署名者Uiの計算機101は以下の計算
を行い、結果のsiを公開する。
【0040】
【数5】
【0041】ここで、hash(,)は2つの引数を取るハ
ッシュ関数である。全ての署名者計算機101がsiを
計算したところで、その和s=Σisi(mod q)を求
め、rとあわせてディジタル署名データ(r,s)とす
る。
【0042】次に第3の実施形態について説明する。こ
の第3の実施形態は、N人全員ではなく、そのうちM人
(N>M)だけが署名処理に参加する方法である。ま
ず、全体を簡単に説明し、その後、最初の実施形態と異
なる部分を詳しく説明する。使用するパラメータは、次
の通りである。 (1)位数pの体Fp (2)Fp上の楕円曲線 (3)楕円曲線上のベース点Pと、その位数q(素数) (4)位数qの体Fq まず、Fq上でd,d1からdNのN+1個の変数から
なる一次の恒等式を生成する。この恒等式を利用して、
各署名者Ui(iは1からNまで)の計算機101は、
Fqから秘密鍵diを生成し、安全な記憶場所に保管す
る。また、部分公開鍵Qi=diPを公開する。また、
署名に必要な乱数kiをFqから選択して、Ki=ki
Pを公開する。さらに、部分公開鍵Qiから公開鍵Qを
計算し、登録、公開する。
【0043】N人のうちM人の署名者Uiの計算機10
1は、以下の計算を行い、結果のsiを公開する。
【0044】
【数6】
【0045】ここで、Tjiは後述する。また、hは署
名対象データ、もしくはそのハッシュ値である。全ての
署名者計算機101がsiを計算したところで、その和
s=Σisi(mod q)を求め、rとあわせてディジタ
ル署名データ(r,s)とする。上記の一次恒等式を生
成するステップは、特願平10−278012号で説明
している方法と同じである。一例として、Fqが「位数
7」の体であり、3人のうち2人が署名に参加する場合
を例に挙げて説明する。一次恒等式は、次のように表さ
れる。
【0046】
【数7】
【0047】この式の特徴は、左辺は常にdであり、右
辺の3つの変数のうち1つの変数の係数は「0」であ
り、(a3)式は、(a1)式と(a2)式から導け
る。つまり2倍の(a1)式から(a2)を引けば(a
3)式が得られる点である。Tijが上記「数7」の式
の係数を表すものとすると、T11=1、T12=2、
T13=0、T21=2、T22=0、T23=1、T
31=0、T32=4、T33=6となる。また、si
を計算する時のTijはどのM人が署名に参加するかに
よって決まる。例えば、U2とU3が参加する場合はd
2とd3の係数が0でない(a3)式の係数T31,T
32,T33を使って計算する。
【0048】次に、この恒等式を利用して、各署名者U
i(iは1からNまで)の計算機101がFqから秘密
鍵diを生成し、また部分公開鍵Qi=diPを公開す
る処理について、図7と図8を用いて説明する。まず、
ステップ701において、各署名者Ujの計算機101
にて、「数7」式を満たすdjiを生成する。なお、各
署名者Ujの計算機とUiの計算機とは、同じである。
【0049】
【数8】
【0050】とする。dは任意の数である。次にステッ
プ702において、各UjはdjiをUiの計算機10
1に秘密裏に送る。次に、ステップ703において、各
Uiはdi=Σjdji(mod q)を自分の秘密鍵とす
る。
【0051】最後に、部分公開鍵Qiから公開鍵Qを計
算し、登録、公開するステップの処理について、図8を
用いて説明する。まずステップ801において、各署名
者計算機101は、各秘密鍵を用いてQiを計算、パラ
メータ登録計算機103に送る。次に、ステップ802
において、部分公開鍵Qiから公開鍵Qを計算、全てが
一致することを確認する。すなわち、次の式が成り立つ
ことを確認して、Qを公開鍵とする。
【0052】
【数9】
【0053】計算は全て楕円曲線上で行う。公開鍵Qが
公開された後の処理は、前述の第1、第2の実施形態と
同様の処理によってディジタル署名データを生成する。
これによって、N人全員ではなく、その中のM人の協力
によってディジタル署名データを生成することができ
る。
【0054】次に、第4の実施形態について説明する。
この第4の実施形態は、次回、次々回といった以降の署
名に必要な秘密情報等の計算、検証を行い、署名処理の
一巡性を実現し、かつ全員が同時に参加しなくても署名
が可能になるようにしたものである。この第4の実施形
態は、楕円曲線暗号を利用したDSA署名を行う場合
に、以下の方法で署名を生成するものである。なお、通
常の有限体での離散対数問題をベースとした署名方式を
用いた場合でも同様に可能である。
【0055】(1) 基本パラメータを決定して、署名者、
署名計算機に保持させる。 ・p、qは、大きな素数である。 ・Fqは、位数がqの有限体である。 ・Eは、Fq上の楕円曲線である。 ・Pは、E上の位数がq(素数)となる点である。 (2) 署名者UI(Iは1からNまで)は、Zpからラン
ダムに値dIを選び秘密鍵とし、安全な場所に保管す
る。また、部分公開鍵PI=dIPを公開する。 (3) 署名者UIはdIを定数項とする多項式fdI(t)を
利用して、fdI(J)(mod q)他をサーバ(署名計算
機)に送る。 (4) 署名者UIは他の署名者が生成したfdJ(I)(mod
q)他を署名計算機から取出し、正しいデータかを検
証、結果をサーバに送る。 (5) 署名者UIはZpからランダムにAI、KIを選び、
(3)と同様に他の署名者にfAI(J)(mod q)とf
KI(J)(mod q)他を署名計算機に送る。 (6) 署名者UIは他の署名者が生成したfAJ(I)(mod
q)とfKJ(I)(modq)他を署名計算機から受け取
り、正しいか検証、結果を署名計算機に送る。 (7) 署名者UIは他の署名者の(6)の結果が正しいこ
とを確認した上で、{ΣJAJ(I)}{ΣJ
KJ(I)}(mod q)を署名計算機へ送る。これは今回
の署名用のパラメータである。 (8) 署名者UIはA’I、K’I、A’’I、K’’Iを生
成して、(5)と同様に署名計算機に送る。 (9) 署名者UIはA’I、K’Iについて、(6)と同様
に検証、結果を署名計算機に送る。 以上で、署名処理の準備が終了し、署名処理に入る。
【0056】(1) 署名者UIは、署名計算機から{ΣJ
AJ(I)}{ΣJKJ(I)}(modq)を取得して、補
完係数を使って、(A1+・・・+AN)(K1+・・・
+KN)(mod q)を求める。 (2) 署名者UIは、A1P+…+ANP=(A1+・・・+
N)Pを計算する。 (3) 署名者UIは、r=x(mod q)(xは、((K1
…+KN-1(mod q))PのX座標)を計算する。 (4) 署名者UIは、署名対象文書を取得して、そのハッ
シュ値hを計算する。 (5) 署名者UIは、{h+rfd1(I)+…+rf
dN(I)}{fK1(I)+…+rfKN(I)}(mod
q)を計算して、結果を署名計算機へ送る。これは部分
署名である。 (6) 準備の(7)と同様に準備の(9)の結果が正しい
ことを確認の上、{ΣJA'J(I)}{ΣJ
K'J(I)}(mod q)を署名計算機へ送る。 (7) 署名者UIはA’’J、K’’Jについて、(6)と
同様に検証、結果を署名計算機に送る。 (8) 署名者UIは準備(8)と同様、A’’’I
K’’’Iや式を生成、fA'''I(J)(mod q)やf
K'''I(J)(mod q)他を署名計算機に送る。 (9) 署名者全員の署名が確認できたなら、署名計算機
は、署名者の部分署名を補完係数の式に代入する。この
結果をsとする。署名計算機は、(r,s)を署名とし
て出力する。
【0057】以下、図面に従い、本実施形態について説
明する。最初に、署名者が三人(U 1、U2、U3とす
る)の場合の説明を行い、最後にn人(U1からUn)の
場合の変更点の説明を行う。なお、以下の手順は、ユー
ザUIの処理を示している。Iは1〜3であり、それぞ
れが独立して実行する。ただし、同期をとる必要がある
部分に関しては、明示的にその旨を記述してある。
【0058】図9は本実施形態におけるシステム全体構
成を示す図である。図9において、901は署名計算
機、902は署名計算機の中の署名対象文書、903は
署名に参加する署名者計算機である。904は署名の基
本パラメータを生成するパラメータ登録計算機である。
905は署名計算機901と署名者計算機903とパラ
メータ登録計算機904を接続するネットワークであ
る。署名者計算機903は署名対象文書903をダウン
ロードして、署名し、部分署名を署名計算機901に送
り、署名計算機901は最終の署名を生成する。本実施
形態では、署名に参加する計算機は3台以上必要であ
り、3台以上であれば何台存在しても構わないが、署名
用のパラメータの生成には同時に参加する必要がある。
但し、同期処理を行う個所以外では、それぞれ独立に動
作してよい。
【0059】まず、本実施形態で実施する秘密分散処理
について説明する。図10を用いて、署名者UIが秘密値
xIを分割して他の署名者に渡す手順を示す。最初に3人
の場合について説明する。まず、ステップ1001にて
IがxIを定数項とする一次式f(t)=xI+xI,1
tを生成する。ここで一次の係数xI,1はランダムに選
択する。次に、ステップ1002にてUIは、一次式の
値f(J)とFI,0=xIPとFI,1=xI,1Pを計算し
て、署名計算機901に送る。送る際にはf(J)は暗
号化してUJだけがアクセスできるように、FI,0やF
I,1は改竄を防止または検出する必要があるが、発明の
本質ではないので、ここでは詳細には触れない。次にス
テップ1003にてUJは送られてきたf(J)とFI,0
とFI,1が正しいか検証する。検証するには、f(J)
P=FI,0+JFI,1 が成り立つことを確認する。f
(J)=xI+xI,1 J(mod q)なので、ステップ1
001と1002の処理が正しく行われば、等式が成り
立つことが分かる。
【0060】署名者が5人の場合には、ステップ100
1では、一次式を二次式f(t)=xI+xI,1 t+x
I,2 2とし、ステップ1002では、FI,0=xIPと
I,1=xI,1PとFI,2=xI,2Pを計算し、ステップ1
003では、 f(J)P=FI,0+JFI,1 +J2I,2 が成り立つことを確認する。署名者が7人、9人…とな
った場合も同様に、三次式、四次式と次数が増えていく
だけで、処理は同じである。
【0061】次に、図11を用いて、システム構築時に
必要なシステム構築処理について説明する。まず、ステ
ップ1101にて、署名者の登録処理を行う。この処理
は主に署名者計算機903にて行う。詳細は後に記述す
る。続くステップ1102において、署名用の基本パラ
メータの生成を行う。この処理は主にパラメータ登録計
算機904にて行う。詳細は後述する。次にステップ1
103にて、署名鍵の生成処理を行う。この処理は主に
署名者計算機903にて行う。詳細は後述する。次にス
テップ1104にて、部分署名生成用パラメータの生成
処理を行う。この処理は主に署名者計算機903にて行
う。詳細は後述する。
【0062】次に、図12を用いて、署名者の登録処理
(図11のステップ1101)について説明する。まず
ステップ1201にて、署名者計算機903は、グルー
プ署名に参加する旨を、署名計算機901とパラメータ
登録計算機904に通知する。次のステップ1202に
て、この通知を受けたパラメータ登録計算機904と署
名計算機901は、この計算機903を署名者リスト一
覧に加える。このリストは、例えば、パラメータ登録計
算機904が、パラメータを配布する際の宛先一覧とし
て使用する。
【0063】図13を用いて、図11のステップ110
2の基本パラメータの生成処理について説明する。ま
ず、ステップ1301にて、パラメータ登録計算機90
4は、署名に使用する基本パラメータを決定する。具体
的には以下の基本パラメータを決定する。 (1)p、qは、大きな素数である。 (2)Fqは、位数がqの有限体である。 (3)Eは、Fq上の楕円曲線である。 (4)Pは、E上の位数がq(素数)となる点である。 基本パラメータの決定方法は、本発明の範囲外であるの
で、その説明は省略する。次のステップ1302にて、
先に決めた基本パラメータを署名者計算機903と署名
計算機901に登録する。この場合、基本パラメータ自
体は秘密情報ではないので暗号化する必要はないが、誤
った基本パラメータが登録されないようにする必要があ
る。
【0064】次に、図14を用いて、図11におけるス
テップ1103の署名鍵の生成処理処理を説明する。署
名鍵の生成に際しては、署名者ごとに以下の処理を繰り
返す。ここでは、署名者UIの署名鍵を生成する場合の処
理を代表して説明する。まず、ステップ1401にて、
署名者計算機903は、Zpからランダムに値dIを選
び、これを秘密鍵とする。これらの秘密鍵の和が、グル
ープの秘密鍵となる。続くステップ1402にて、署名
者計算機903は、PI=dIPを計算し、このPIを公
開鍵として、他の署名者全員宛として署名計算機901
に送る。これらの公開鍵の和が、グループの公開鍵とな
る。続く、ステップ1403にて、署名者計算機903
は、ステップ1001と同様に、dIを定数項とする一
次式fdI(t)を生成する。
【0065】次にステップ1404にて、署名者計算機
903は、ステップ1002と同様に、fdI(J)(mo
d q)(J≠I)をUJ宛として、係数のスカラー倍の
Pを他の署名者宛として署名計算機901に送る。ここ
で、fdI(J)(mod q)はUJだけがアクセスできる
ように暗号化しておき、Pのスカラ倍は改竄されないも
しくは改竄検知できるようにする。次にステップ140
5にて、署名者計算機903は、ステップ1003と同
様に、fdJ(I)(mod q)や係数のスカラー倍を署名
計算機901から取出し、正しいか検証する。失敗した
ら、全体の処理を停止する。
【0066】次にステップ1406にて、署名者計算機
903は補完係数の合意を行う。これは部分署名の和を
秘密裏に求めるために使う。補完係数とは、二次式f
(t)=T0+T1t+T22のtが1、2、3の値から
0を求める際のf(1)、f(2)、f(3)の係数
である。 f(1)=T0+T1+T2 f(2)=T0+2T1+4T2 f(3)=T0+3T1+9T2 であるから、T0=3f(1)−3f(2)+f(3)
となり、補完係数は3、−3、1となる。合意方法とし
ては、一台の署名者計算機903が値を決定し、他の署
名者計算機903に通知する方法がある。
【0067】最後に、ステップ1407にて、署名計算
機901は、各署名者計算機903から全ての公開鍵が
取得できていることが確認できた場合、これらの和を計
算し、これをグループの公開鍵として保持する。署名参
加者がU1、U2、U3の場合は、PUB=P1+P2
+P3をグループの公開鍵とする。
【0068】次に、図15を用いて、ステップ1104
のパラメータ生成に必要な処理について説明する。ここ
では、署名者UIの処理を代表して説明する。まず、ス
テップ1501にて、署名者計算機903は、Zpから
ランダムな値AI、KI、A’I、K’I、A’’I
K’’I、を選び、ステップ1001と同様にこれを定
数項とする一次式fAI(t)、fKI(t)、f
A'I(t)、fK'I(t)、fA''I(t)、fK''I(t)
を生成する。次にステップ1502にて、署名者計算機
903は、ステップ1002と同様にfAI(J)(mod
q)、fKI(J)(mod q)、fA'I(J)(mod
q)、fK 'I(J)(mod q)、fA''I(J)(mod
q)、fK''I(J)(mod q)をUJ宛に、先の一次式
の定数項を含めた一次式の係数倍のPを他の署名者宛
に、署名計算機901に送る。次に、ステップ1503
にて、署名者計算機901は同期をとる。すなわち、全
ての署名者計算機901がステップ1502までの処理
が終了したことが確認できてから次のステップに進む。
次にステップ1504にて、署名者計算機903は、f
AJ(I)(mod q)、fKJ(I)(mod q)、f
A'J(I)(mod q)、fK'J(I)(mod q)(J≠
I)や係数スカラー倍のPを署名計算機901から取得
し、ステップ1003と同様に正しいか検証、結果を署
名計算機901に送る。次にステップ1505にて、署
名者計算機903は同期をとる。すなわち、全ての署名
者計算機903がステップ1504までの処理が終了し
たことが確認できてから次のステップに進む。最後にス
テップ1506にて、署名者計算機903は、ステップ
1504の検証結果が正しいことを確認の上、{ΣJ
AJ(I)}{ΣJKJ(I)}(mod q)を署名計算機
901へ送る。U1の場合は、{fA1(1)+f
A2(1)+fA3(1)}{fK1(1)+fK2(1)+f
K3(1)}(mod q)を署名計算機901へ送る。
【0069】次に、図16を用いて、署名生成手順を説
明する。まず、署名対象文書902をmとおき、ステッ
プ1601にて、署名計算機901は、rを以下の手順
で計算する。署名者計算機903は、署名計算機901
から、{ΣIAI(J)}{ΣIKI(J)}(mod q)
(J≠I)を取得する。U1の場合は、 {fA1(2)+fA2(2)+fA3(2)}{fK1(2)
+fK2(2)+fK3(2)}(mod q)と {fA1(3)+fA2(3)+fA3(3)}{fK1(3)
+fK2(3)+fK3(3)}(mod q) を取得する。
【0070】次に、ステップ1406で求めた補完係数
を使って、 {3{fA1(1)+fA2(1)+fA3(1)}{f
K1(1)+fK2(1)+f K3(1)} −3{fA1(2)+fA2(2)+fA3(2)}{f
K1(2)+fK2(2)+fK3(2)} +{fA1(3)+fA2(3)+fA3(3)}{f
K1(3)+fK2(3)+f K3(3)}}(mod q)=
(A1+A2+A3)(K1+K2+K3)(mod q) を計算する。
【0071】次に、 A1P+A2P+A3P=(A1+A2+A3)P を計算し、
【0072】次に、 r=x(mod q)(但しxは((K1+K2+K3-1(mo
d q)) P=(((A1+A2+A3)(K1+K2+
K3))-1(mod p))(A1+A2+A3)PのX座
標) を計算する。
【0073】次に、ステップ1602にて、署名者計算
機903は、署名対象文書mを署名計算機901から取
得する。
【0074】次にステップ1603にて、署名者計算機
903は、上記で計算したrを使って、 {hash(m)+rfd1(I)+rfd2(I)+rf
d3(I)}{fK1(I)+fK2(I)+fK3(I)}
(mod q) を計算して(これをαIとする)、結果を署名計算機9
01へ送る。なお、hash(m)は、署名対象文書m
のハッシュ値である。U1の場合は、 {hash(m)+rfd1(1)+rfd2(1)+rf
d3(1)}{fK1(1)+fK2(1)+fK3(1)}
(mod q) となる。
【0075】次にステップ1604にて、署名者計算機
903は、ステップ1504の他の署名者の検証結果を
確認の後、{ΣJA'J(I)}{ΣJK'J(I)}(mo
d q)を署名計算機901に送る。例えば、U1の場合
は、{fA'1(1)+fA'2(1)+fA'3(1)}{f
K'1(1)+fK'2(1)+fK'3(1)}(mod q)と
なる。続くステップ1605にて、署名計算機は、f
A''J(I)(mod q)やfK''J(I)(mod q)他を取
出し、ステップ1003と同様に検証する。U1の場合
は、fA'''2(1)(mod q)、fA'''3(1)(mod
q)、fK'''2(1)(modq)、fK'''3(1)(mod
q)やこれに関係する係数のスカラー倍を署名計算機9
01から取得して、検証する。続くステップ1606に
て、先のステップの検証結果を署名計算機901に送
る。
【0076】次にステップ1607にて、署名者計算機
903は、A’’’IP、K’’’IPをランダムに選択
し、ステップ1001と同様にこれを定数項とする一次
式を生成し、fA'''I(J)(mod q)、fK'''I(J)
(mod q)をUJ宛に、定数項や係数のスカラー倍を他
の署名者宛として署名計算機901に送る。署名者全員
が部分署名を行うと、最後に署名計算機901にて署名
生成処理が行われる。
【0077】次に、署名計算機901での署名手順を図
17を用いて説明する。まず、ステップ1701にて、署名
計算機901は、ステップ1406で求めた補完係数を
使って s=3α1−3α2+α3(mod q) =(hash(m)+rd1+rd2+rd3)(K1+K2+K3)(mod q) =(hash(m)+rd)(K1+K2+K3)(mod q) を計算する。続くステップ1702にて、署名計算機9
01は、署名として(r,s)を出力する。
【0078】このように本実施形態においては、ステッ
プ1604、1605、1606、1607にあるよう
に、次回、次々回、次々々回の署名用に、{ΣJ
AJ(I)}{ΣJKJ(I)}(mod q)の計算、デー
タの検証、乱数や式生成を行っている。署名生成と同時
に本処理を行うことで、署名処理の一巡性を実現するこ
とができる。
【0079】なお、署名者がN(奇数)人になった場合
には、以下の点を変更する。以下、変更点について説明
する。ここでT=(N−1)/2とする。
【0080】ステップ1403の変更点 署名者計算機は、T次式を用いる。詳しくは図10を用
いて説明済みである。検証処理も同様に変更になる。
【0081】ステップ1406の変更点 N人の場合、補完係数とは、 f(t)=T0+T1t+…+TNN のtが1、2、…、Nの値からF0を求める際のf
(1)、f(2)、…、f(N)の係数である。
【0082】ステップ1501、1502、1504の
変更点 式の次数がT次となる。
【0083】ステップ1506の変更点 N人の場合、ユーザUIは、 {fA1(I)+・・・+fAN(I)}{fK1(I)+・
・・+fKN(I)}(mod q) を他の署名者全員宛として署名計算機901へ送る。
【0084】ステップ1601の変更点 N人の場合、ユーザUIのrの計算手順は以下のように
なる。署名者計算機は901は、 {fA1(1)+…+fAN(1)}{fK1(1)+…+f
KN(1)}(mod q)、 … {fA1(I−1)+…+fAN(I−1)}{fK1(I−
1)+…+fKN(I−1)}(mod q)、 {fA1(I+1)+…+fAN(I+1)}{fK1(I+
1)+…+fKN(I+1)}(mod q)、 … {fA1(N)+…+fAN(N)}{fK1(N)+…+f
KN(N)}(modq)、 を署名計算機901から取得し、補完係数を使った式に
代入する。次に A1P+…+ANP=(A1+・・・+AN)P を計算し、最後に、r=x(mod q)(但しx=((K1
+・・・+KN-1(mod q))Pを計算する。
【0085】ステップ1603の変更点 N人の場合、ユーザUIの署名処理手順は以下のように
なる。 {hash(m)+rfd1(I)+…+rfdN(I)}
{fK1(I)+…+fKN(I)}(mod q) を計算して(これをαIとする)、結果を署名計算機9
01へ送る。
【0086】ステップ1604の変更点 ユーザUIは、 {fA'1(I)+・・+fA'N(I)}{fK'1(I)+
・・+fK'N(I)}(mod q) を計算して署名計算機901へ送る。
【0087】ステップ1605、1607の変更点 図10で説明したようにT次式としての処理を行う。
【0088】次に、DSA署名を用いた本発明の第5の
実施形態について説明する。図18は、この実施形態に
おける全体構成図である。図18において、1801は
署名計算機、1802は署名対象の文書データ、180
3は署名計算に必要なパラメータや一時データ、180
5は署名者計算機1806はネットワーク、1807は
パラメータ登録計算機である。署名計算機1801は署
名対象の文書データ1802や署名に必要なパラメータ
や一時データ1803を格納する。これらは主に、署名
者計算機1805で生成され、署名計算機1801に格
納され、必要に応じて署名者計算機1805が取り出
す。署名者は署名計算機1801を直接利用する。パラ
メータ登録計算機1807は暗号のパラメータを算出し
たり、署名者計算機1805が計算した鍵を登録してお
く。
【0089】まず、図19を用いて、本実施形態で繰り
返し使う秘密数の和の積を計算する方法を説明する。こ
こでは、署名者V1が数X1と数Y1を、署名者V2が数X
2と数Y2を秘密裏に保持しているときに、X1、X2、Y
1、Y2を秘密にしながら、和の積(X1+X2)(Y1
2)を求める方法を説明する。X11とX22は、V1
とV2がそれぞれ計算できる。X12+X21を求める
方法を以下に説明する。ここでは、X1、X2、Y1、Y2
のビット数が等しく、Nビットとする。まず、ステップ
1901にて、第一署名者V1が使用する署名者計算機
1805がビット暗号を求め、署名計算機1801に送
る。詳細は後述する。署名計算機1801は、受取った
ビット暗号を各種パラメータ、一時データ1803とし
て格納する。以下、署名者とその署名者が使用する計算
機を特に区別せずに説明する。次に、ステップ1902
にて、第二署名者V2がビット暗号積と部分積を求め、
署名計算機1801に送る。詳細は後述する。署名計算
機1801は、受取ったビット暗号積と部分積を各種パ
ラメータ・一時データ1803として格納する。
【0090】次に、ステップ1903にて、第一署名者
1が部分積を求め、署名計算機1801に送る。詳細
は後述する。署名計算機1801は、受取った部分積を
各種パラメータ・一時データ1803として格納する。
次に、ステップ1904にて署名計算機1801がステ
ップ1902とステップ1903で得た二つの部分積の
和を求め、(X1+X2)(Y1+Y2)を出力する。
【0091】次に、ステップ1901の第一署名者V1
がビット暗号を署名計算機1801に送る手順について
図20を用いて説明する。まずステップ2001にて、
第一秘密数X1のビット暗号を署名計算機1801に送
る。詳細を以下に述べる。第一に、N+1個の乱数
XH、RX1、…、RXNを生成する。ここで、X1の各ビ
ットを下位ビットから順にbX1、bX2、…、bXNとす
る。例えばX1=1011…10とすると、bX1=0や
X2=1となる。第二に、RRX1={RX1V2+RAN
DOM(bX1,1,RXH)、…、RRXN={RXNV2
RANDOM(bXN,N,RXH)を計算し、RXHと一緒
にX1のビット暗号として署名計算機1803に送る。
ここで、{D}V2はデータDを第二署名者V2の公開鍵
で暗号化することを示す。ここではRSA暗号を仮定す
る。RANDOM()は引数から乱数を生成する関数で
ある。同じ引数からは同じ乱数が生成される。
【0092】次に、ステップ2002にて、第二秘密数
1についても同様に、RRY1={RY1V2+RAND
OM(bY1,1,RYH)、…、RRYN={RYN V2+R
ANDOM(bYN,N,RYH)を計算し、RYHと一緒に
1のビット暗号として署名計算機1803に送る。ス
テップ1902の第二署名者V2がビット暗号積と部分
積を署名計算機1801に送る手順の詳細について図2
1を用いて説明する。まずステップ2101にて、前記
ステップ1901において第一署名者V1が生成したX1
とY1のビット暗号、RRX1、…、RRXN、RXH、RR
Y1、…、RR YN、RYHを署名計算機1801から取りだ
す。
【0093】続くステップ2102にて、ビット暗号か
らビット暗号積を計算して、署名計算機1801に送
る。詳細を以下に述べる。
【0094】第一に、RRX1に対してRR0X1={RR
X1‐RANDOM(0,1,RXH)}V2とRR1X1
{RRX1‐RANDOM(1,1,RXH)}V2を計算す
る。ここで{D}V2はDの復号を示す。bX1が0ならR
R0X1=RX1、bX1が1ならRR1X1=RX1となる。同
様にして、RRX2、…、RRYNからRR0X2、…、RR
YNを計算する。第二に、2N個の乱数RX1、…、R
N、RY1、…、RYNを生成する。第三に、RRR0
X1=RR0X1+RX1、RRR1X1=Y2+RR1X1+R
1、…、RRR0YN=RR0YN+RYN、RRR1YN
2+RR1YN+RYNを計算し、Y21+X21のビッ
ト暗号積として署名計算機1803に送る。
【0095】次にステップ2103にてX22‐(20
RX1+20RY1+…+2N-1RXN+2N-1RYN)を部
分積として署名計算機1801に送る。続くステップ2
104にて、付加的に乱数スカラ積(20RX1+20
1+…+2N1RXN+2N1RYN)Pも送る。ここ
で、Pはステップ2301に示すPである。
【0096】次に、ステップ1903の第一署名者V1
が部分積を求め、署名計算機1801に送る手順につい
て図22を用いて説明する。まず、ステップ2201に
て前記ステップ1902において第二署名者V2が生成
したビット暗号積RRR0X1、…、RRR0YNを署名計
算機から取出す。
【0097】続くステップ2202にて、部分積を計算
し、署名計算機1801に送る。詳細は以下の通りであ
る。第一に、ビットbX1が0か1に応じて、(Y21
1=RRR0X1‐RX1=RX1か(Y211=RRR1
X1‐RX1=Y2+RX1、とする。同様に、(Y
212、…、(Y21N、(X211、…、(X2
1Nを求める。第二に、これにビット位置を考慮した和
とY11との和を求め、部分積として署名計算機180
1に送る。すなわち、20(Y211+…+2N-1(Y2
1N+20(X211+…+2N-1(X21N+Y1
1=Y21+X21+20RX1+20RY1+…+2N
1RXN+2N1RYN+Y11を送る。ここで、ステッ
プ2103の部分積と本部分積の和がX22+Y21
21+X11=(X1+X2)(Y1+Y2)である事が
分かる。以上が秘密数の和の積処理の説明である。
【0098】次に、DSA署名方法について説明する。
ここでは三人の署名者U1、U2、U 3の場合を例に挙げ
て説明する。ただし、他の場合でも同様である。まず、
図23を用いてシステムの構築処理を説明する。ステッ
プ2301にて、図2のステップ201と同様に署名パ
ラメータを決定する。次に、ステップ2302にて図2
のステップ202と同様に署名計算機1801と署名者
計算機1805に署名パラメータを登録する。次にステ
ップ2303にて図24に示す署名者登録処理を署名者
計算機1805が行う。
【0099】署名者登録処理について、図24を用いて
説明する。まずステップ2401にて、各署名者が秘密
鍵dIをランダムに選ぶ。例えば、U1はd1を選択す
る。次に、ステップ2402にて各署名者が公開鍵を計
算し、パラメータ登録計算機1807に送る。例えば、
1はQ1=d1Pを計算して、パラメータ登録計算機1
807に送る。次に、ステップ2403にて初期化処理
(1)を行う。この初期化処理(1)は秘密数の和の積
である「(A1+A2+A3)(K1+K2+K3)」を求め
る手続きの一部分である。詳細は後述する。次に、ステ
ップ2404にて初期化処理(2)を行う。この初期化
処理(2)は秘密数の和の積である「(A1+A2
3)(K1+K2+K3)」を求める手続きの一部分であ
る。詳細は後述する。
【0100】次にステップ2405にて、署名計算機1
801が署名パラメータrを求める。すなわち、ステッ
プ2404までの処理で求められた部分積の和を求め、
(A1+A2+A3)(K1+K2+K3)を得る。さらに
(((A1+A2+A3)(K1+K2+K3))-1(mod
q))(A1P+A2P+A3P)=((K1+K2+K3
-1(mod q))Pのx座標rを得る。ここで、A1P、
2P、A3Pは初期化処理(ステップ2403)にて署
名者計算機1805から署名計算機1801に送信済み
である。
【0101】図25を用いてステップ2403の初期化
処理(1)の詳細を説明する。この初期化処理(1)
は、秘密数の和の積である「(A1+A2+A3)(K1
2+K3)」を求める手続きの一部分である。まず、ス
テップ2501にて各署名者が二つ乱数を生成する。例
えば、U1はA1とK1を生成する。次に、ステップ25
02にて各署名者がビット暗号を署名計算機1801に
送る。例えばU1は、d1とA1のビット暗号とK1のビッ
ト暗号二つを署名計算機1801に送る。また、生成し
た乱数とPとのスカラー積を署名計算機1801に送
る。例えばU1はA1PとK1Pを署名計算機1801に
送る。署名計算機1801は署名パラメータ・一時デー
タ1803として格納する。
【0102】次に、図26を用いてステップ2404の
初期化処理(2)の詳細を説明する。この初期化処理
(2)は、秘密数の和の積である「(A1+A2+A3
(K1+K2+K3)を求める手続きの一部分である。こ
れまでの登録処理、つまり、ステップ2401や240
2、2403であるステップ2501と2502は、各
署名者が行い、署名者U1、U2、U3の処理順序は任意
であった。本処理は、署名者の順序によってステップ2
601と2602と2603の処理内容が多少異なって
いる。ここでは、U1、U2、U3の順番で処理を行うと
仮定して、それぞれの署名者でのステップ2601と2
602と2603の処理内容を説明する。
【0103】第一署名者U1の2601、2602、2
603の内容を図26を用いて説明する。ステップ26
01にて、A2とA3のビット暗号と、K2とK3の一つ目
のビット暗号を署名計算機1801から取出す。ステッ
プ2602にてA21+K21のビット暗号積、A31
+K31のビット暗号積を署名計算機1801に送る。
さらにA21+K21の部分積とA31+K31の部分
積と−A11の和を署名計算機1801に送る。A11
を引くのは、二つの部分積のそれぞれにA11が含まれ
るからである。次に、ステップ2603にて次の署名用
の乱数として、A’1とK’1を生成し、A’1PとK’1
P、d1とA’1のビット暗号とK’1のビット暗号二つ
を署名計算機1801に送る。
【0104】第二署名者の場合について図26を用いて
説明する。第二署名者U2の場合、まず、ステップ26
01にてA21+K21のビット暗号積と、A3のビッ
ト暗号と、K3の一つ目のビット暗号を署名計算機18
01から取出す。次に、ステップ2602にてA32
32のビット暗号積を署名計算機1801に送る。さ
らにA21+K21の部分積を署名計算機1801に送
る。次に、ステップ2603にて、次の署名用の乱数と
して、A’2とK’2を生成し、A’2PとK’2P、d2
とA’2のビット暗号とK’2のビット暗号二つを署名計
算機1801に送る。
【0105】次に、第三署名者の場合について説明す
る。第三署名者U3の場合、まず、ステップ2601に
て、A31+K31のビット暗号積と、A32+K32
のビット暗号積を署名計算機1801から取出す。次
に、ステップ2602にて、A31+K31の部分積と
23+K23の部分積と−A33との和を署名計算機
1801に送る。ここでA33を引いているのは、二つ
の部分積それぞれにA33が含まれているからである。
次にステップ2603にて、次の署名用の乱数として、
A’3とK’3を生成、A’3PとK’3P、d3とA’3
ビット暗号とK’3のビット暗号の二つを署名計算機1
801に送る。
【0106】以上が準備作業である。これから実際の署
名作業について説明する。図27に署名生成処理の手順
を示している。この署名処理は、署名対象文書に署名す
るごとに繰り返す。まず、ステップ2701にて署名計
算機1801は、署名対象データ1802を格納する。
続くステップ2702にて、各署名者が署名処理し、対
象データ署名の部分積や次回署名用や次々回署名用のパ
ラメータや一時データを署名計算機1801に送る。詳
細は図28を用いて説明する。続くステップ2703に
て、署名計算機1801が、対象データ署名の部分積の
和を求め、rと合わせて署名とする。続くステップ27
04にて署名計算機1801が、前記ステップ2702
にて各署名者が生成した次回用署名パラメータの部分積
の和を求め、(A’1+A’2+A’3)(K’1+K’2
+K’3)(mod q)を得、(((A’1+A’2
A’3)(K’1+K’2+K’3))-1(mod q))
(A’1P+A’2P+A’3P)=((K’1+K’2
K’3-1(mod q))Pのx座標r’を次回用署名パ
ラメータとして得る。
【0107】ステップ2702の署名者個別処理につい
て図28を用いて説明する。図26の処理と同じように
本処理も、署名者の順番によってステップ2801と2
802と2803と2804の処理内容が多少異なって
いる。ここでは、U 1、U2、U3の順番で処理を行うと
仮定して、それぞれの署名者でのステップ2801と2
802と2803と2804の処理内容を説明する。
【0108】第一署名者の場合 第一署名者U1のステップ2801〜2804の処理内
容を説明する。まず、ステップ2801にて、署名対象
文書1802とrを署名計算機1801より得る。さら
に、d2とd3のビット暗号と、K2とK3の二つ目のビッ
ト暗号を署名計算機1801から取出す。さらに署名対
象文書1802のハッシュ値hを求める。ステップ28
02にて、rd21+K2(rd1+h)のビット暗号積
とrd31+K3(rd1+h)のビット暗号積、二つの
部分積と−(rd1+h)K1の和、及び二つのビット暗
号積の乱数スカラ積を署名計算機に送る。「−(rd1
+h)K1」を足すのは、二つのビット暗号積に(rd1
+h)K1が含まれているからである。ステップ280
3にて、次回署名用として、A’2とA’3のビット暗号
と、K’2とK’3の一つ目のビット暗号を署名計算機1
801から取出し、A’2K’1+K’2A’1のビット暗
号積、A’3K’1+K’3A’1のビット暗号積を署名計
算機1801に送り、A’2K’1+K’2A’1の部分積
とA’3K’1+K’3A’1の部分積と「−A’1K’1
の和を署名計算機1801に送る。ステップ2804に
て、次々回の署名用の乱数として、A’’1とK’’1
生成し、A’’1PとK’’1P、d1とA’’1のビット
暗号とK’’1のビット暗号二つを署名計算機1801
に送る。
【0109】第二署名者U2の場合 第二署名者U2の場合、ステップ2801にて署名対象
文書とrを署名計算機1801より得る。さらに、K1
Pとrd21+K2(rd1+h)のビット暗号積と乱数
スカラ積を取り出す。さらにd3のビット暗号と、K3
二つ目のビット暗号を署名計算機1801から取出す。
次にステップ2802にて、rd21+K2(rd1
h)のビット暗号積から部分積を求める。部分積とPの
スカラ積から乱数スカラ積を引いたものとrd2(K
1P)+K2(rP1+hP)が等しいことを確認した
ら、この部分積を署名計算機1801に送る。さらにd
3のビット暗号とK3の二つ目のビット暗号から、rd2
3+K2rd3のビット暗号積と部分積を求め、署名計
算機1801に送る。ステップ2803にて、次回署名
用として、A’2K’1+K’2A’1のビット暗号積と、
A’3のビット暗号と、K’3の一つ目のビット暗号を署
名計算機1801から取出し、A’3K’2+K’3A’2
のビット暗号積を署名計算機1801に送り、A’
2K’1+K’2A’1の部分積を署名計算機1801に送
る。最後に、ステップ2804にて次々回の署名用の乱
数として、A’’2とK’’2を生成、A’’2Pと
K’’2P、d2とA’’2のビット暗号とK’’2のビッ
ト暗号の二つを署名計算機1801に送る。
【0110】第三署名者の場合 第三署名者の場合、まず、ステップ2801にて署名対
象文書とrとK1Pとrd31+K3(rd1+h)のビ
ット暗号積と乱数スカラ積、さらにK2Pとrd23
2rd3のビット暗号積を署名計算機1801から取り
出す。次に、ステップ2802にてrd31+K3(r
1+h)のビット暗号積から部分積を求める。部分積
とPのスカラ積から乱数スカラ積を引いたものとrd3
(K1P)+K3(rP1+hP)が等しいことを確認す
る。次にK2Pとrd23+K2rd3のビット暗号積か
ら部分積を求める。部分積とPのスカラ積から乱数スカ
ラ積を引いたものとrK32+rd3(K2P)が等しい
ことを確認する。さらに二つの部分積と(−K3rd3
の和を署名計算機1801に送る。K3rd3を引くの
は、二つの部分積にそれぞれ含まれているからである。
【0111】ここで各署名者の2802で現れた部分積
の和を取ると、 (rd21+K2(rd1+h)+rd31+K3(rd1
+h)+rd23+K2rd3+K1(rd1+h)+rd
22+K3rd3)(mod q)=(K1+K2+K3)(r
(d1+d2+d3)+h)(mod q) となり、rと合わせて署名となることがわかる。
【0112】次に、ステップ2803にて次回署名用と
して、A’3K’1+K’3A’1のビット暗号積と、A’
3K’2+K’3A’2のビット暗号積を署名計算機180
1から取出し、A’3K’1+K’3A’1の部分積とA’
2K’3+K’2A’3の部分積と−A’3K’3との和を署
名計算機1801に送る。続くステップ2804にて次
々回の署名用の乱数として、A’’3とK’’3を生成
し、A’’3PとK’’3P、d3とA’’3のビット暗号
とK’’3のビット暗号二つを署名計算機1801に送
る。
【0113】図29に本実施形態での署名処理における
ステップ2702(2801〜2804)と2703、
2704の概要を図示している。
【0114】以上のように本実施形態においては、署名
をしながら、次回と次々回のパラメータを生成している
ため、各署名者が1回ずつ署名処理すれば全体の署名が
完成するという効果が得られる。また、第4の実施形態
と第5の実施形態でDSA署名の例を説明したが、第5
の実施形態では第4の実施形態と比較して、署名者数の
柔軟性がある。第4の実施形態では、最低でも三人の参
加者が必要であったが、第5の実施形態では二人でも可
能である。また、第4の実施形態では、参加者の半分弱
の不正者しか許されなかったが、第5の実施形態では参
加者のうち一人でも正しい署名者がいれば署名が偽造さ
れることはないという効果がある。
【0115】
【発明の効果】以上説明したように、本発明によれば、
1つの署名対象データに対する署名生成処理は1回だけ
で済み、従来までの二巡する方法に比べて使い勝手が向
上するという効果が得られる。また、署名結果そのもの
の大きさは、署名者の人数によらず不変であり、また署
名の検証処理も人数によらず不変であるため、転送や蓄
積のコストや検証処理を単純化することができるなどの
効果が得られる。
【図面の簡単な説明】
【図1】本発明の一実施形態を示すシステム構成図であ
る。
【図2】システム構築時に行う処理のフローチャートで
ある。
【図3】署名登録処理のフローチャートである。
【図4】署名生成処理の全体を示すフローチャートであ
る。
【図5】各署名計算機が行う個別署名処理を示すフロー
チャートである。
【図6】署名生成処理の概要まとめた説明図である。
【図7】N人のうちM人が協力して署名する場合の一時
的署名データを生成する処理のフローチャートである。
【図8】N人のうちM人が協力して署名する場合に公開
鍵を求めて公開する処理のフローチャートである。
【図9】本発明の第4の実施形態を示すシステム構成図
である。
【図10】署名者が秘密数を分割して他の署名者に渡す
手順を示すフローチャートである。
【図11】第4の実施形態においてシステム構築時に行
う処理のフローチャートである。
【図12】第4の実施形態における署名登録処理のフロ
ーチャートである。
【図13】第4の実施形態における基本パラメータ生成
処理のフローチャートである。
【図14】第4の実施形態における署名鍵生成処理のフ
ローチャートである。
【図15】図11のステップ1104の詳細を示すフロ
ーチャートである。
【図16】第4の実施形態における署名生成処理の全体
を示すフローチャートである。
【図17】第4の実施形態における署名計算機での署名
手順を示すフローチャートである。
【図18】本発明の第5の実施形態を示すシステム構成
図である。
【図19】第5の実施形態において秘密数の和の積処理
を示すフローチャートである。
【図20】和の積処理(ステップ1)の詳細を示すフロ
ーチャートである。
【図21】和の積処理(ステップ2)の詳細を示すフロ
ーチャートである。
【図22】和の積処理(ステップ3)の詳細を示すフロ
ーチャートである。
【図23】第5の実施形態におけるシステム構築時の処
理を示すフローチャートである。
【図24】第5の実施形態における署名者登録処理を示
すフローチャートである。
【図25】第5の実施形態における初期化処理(1)を
示すフローチャートである。
【図26】第5の実施形態における初期化処理(2)を
示すフローチャートである。
【図27】第5の実施形態における署名生成処理を示す
フローチャートである。
【図28】第5の実施形態における署名者個別処理を示
すフローチャートである。
【図29】第5の実施形態における署名生成処理の概要
まとめた説明図である。
【符号の説明】
101…署名者計算機、102…署名計算機、103…
パラメータ登録計算機、104…ネットワーク、102
1…署名対象データ、1023…一時的署名データ。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 署名対象の1つのデータに対し複数の署
    名者の各秘密鍵を用いた署名処理を実行することによっ
    て、前記署名対象の1つのデータに対するディジタル署
    名データを生成するグループ署名生成システムであっ
    て、 署名処理に必要な一時的署名データを署名者全員または
    一部の署名者の署名処理の実行前に予め生成し、公開す
    る第1の手段と、 公開された一時的署名データと複数の署名者の各秘密鍵
    とを用いた署名処理を実行し、前記署名対象のデータに
    対するディジタル署名データを生成する第2の手段とを
    備えることを特徴とするグループ署名生成システム。
  2. 【請求項2】 前記第1の手段は、楕円曲線上の点で位
    数が素数qとなる点をPとして、各署名者計算機が生成
    した乱数kから計算した複数のkPを前記一時的署名デ
    ータとして生成するものであり、 前記第2の手段は、前記kPの楕円曲線上の和を求め、
    そのx座標xと署名対象のデータhとに基づきモジュロ
    qで計算したx+hに等しい値rと、各署名者計算機が
    前記乱数kと署名者固有の秘密鍵dとからモジュロqで
    計算したs=k−rdの値sの和とを1組にしてディジ
    タル署名データとして生成するものであることを特徴と
    する請求項1に記載のグループ署名生成システム。
  3. 【請求項3】 前記第1の手段は、位数pの有限体の元
    で位数が素数qとなる元をgとして、各署名者計算機が
    生成した乱数kからモジュロpで計算した複数の「gの
    k乗」なる値を前記一時的署名データとして生成するも
    のであり、 前記第2の手段は、前記「gのk乗」なる値の積をモジ
    ュロpで求め、署名対象のデータhと前記「gのk乗」
    なる値の積とからモジュロqで計算したハッシュ値r
    と、各署名者計算機が前記乱数kと署名者固有の秘密鍵
    dとからモジュロqで計算したs=k+rdの値sの和
    とを1組にしてディジタル署名データとして生成するも
    のであることを特徴とする請求項1に記載のグループ署
    名生成システム。
  4. 【請求項4】 前記第1の手段は、楕円曲線上の点で位
    数が素数qとなる点をPとした場合に、 各署名者の鍵dおよび署名ごとに各署名者が生成する乱
    数A及びKを定数項とする多項式を生成し、署名者ごとに
    割当てた変数値を代入した前記多項式のモジュロqでの
    値と前記PのA倍の点APとを署名以前に署名計算機に登録
    し、 さらに各署名者が自分に割り振られた変数値を代入して
    得られた値を署名計算機から取り出し、前記Aに関する
    値の和とKに関する値の和の積を署名計算機に登録する
    ものであり、 前記第2の手段は、 各署名者が計算したAPの和の点を、署名者ごとに割当て
    た変数値に応じた係数を乗じた積の和のモジュロqでの
    逆数で除して、署名の値の一部rを生成し、この値rと鍵
    dに関する値の和との積を求め、この積と署名対象デー
    タのハッシュ値と和を求め、これとKに関する値のモジ
    ュロqでの積を署名計算機に一時登録しておき、署名者
    ごとに割当てた変数値に応じた係数を乗じた積の和から
    ディジタル署名の残り部分sをモジュロqで生成するも
    のであることを特徴とする請求項1に記載のグループ署
    名生成システム。
  5. 【請求項5】 前記第1の手段は、位数pの有限体を用
    い、有限体の元で位数が素数qとなる点をgとした場合
    に、各署名者の鍵d及び署名ごとに各署名者が生成する
    乱数A及びKを定数項とする多項式を生成し、署名者ご
    とに割当てた変数値を代入した多項式のモジュロqでの
    値とモジュロpでのgのA乗gAとを署名以前に予め署
    名計算機に登録し、 さらに各署名者が自分に割当てられた変数値を代入して
    得られた値を署名計算機から取り出して、Aに関する値
    の和とKに関する値の和のモジュロqでの積を署名計算
    機に登録するものであり、 前記第2の手段は、各署名者が計算したモジュロpでの
    Aの積を、署名者ごとに割当てた変数値に応じた係数
    を乗じた積の和のモジュロqでの逆数の巾乗を求め、署
    名の値の一部rを生成し、この値rとdに関する値の和
    との積を求め、この積と署名対象データのハッシュ値と
    和を求め、この和とKに関する値のモジュロqでの積を
    署名計算機に一時登録し、署名者ごとに割当てた変数値
    に応じた係数を乗じた積の和からディジタル署名の残り
    部分sをモジュロqで生成するものであることを特徴と
    する請求項1に記載のグループ署名生成システム。
  6. 【請求項6】 署名対象の1つのデータに対し複数の署
    名者の各秘密鍵を用いた署名処理を実行することによっ
    て、前記署名対象の1つのデータに対するディジタル署
    名データを生成するグループ署名生成方法であって、 署名処理に必要な一時的署名データを署名者全員または
    一部の署名者の署名処理の実行前に予め生成し、公開す
    る第1のステップと、 公開された一時的署名データと複数の署名者の各秘密鍵
    とを用いた署名処理を実行し、前記署名対象のデータに
    対するディジタル署名データを生成する第2のステップ
    とを備えることを特徴とするグループ署名生成方法。
  7. 【請求項7】 署名対象の1つのデータに対し複数の署
    名者の各秘密鍵を用いた署名処理を実行することによっ
    て、前記署名対象の1つのデータに対するディジタル署
    名データを生成するグループ署名生成方法であって、 楕円曲線上の点で位数が素数qとなる点をPとした場合
    に、 各署名者の鍵dおよび署名ごとに各署名者が生成する乱
    数A及びKを定数項とする多項式を生成し、署名者ごと
    に割当てた変数値を代入した前記多項式のモジュロqで
    の値と前記PのA倍の点APとを署名以前に署名計算機
    に登録するステップと、 各署名者が自分に割り振られた変数値を代入して得られ
    た値を署名計算機から取り出し、前記Aに関する値の和
    とKに関する値の和のモジュロqでの積を署名計算機に
    登録するステップと、 各署名者が計算したAPの和の点を、署名者ごとに割当
    てた変数値に応じた係数を乗じた積の和のモジュロqで
    の逆数で除して、ディジタル署名の値の一部rを生成
    し、この値rと鍵dに関する値の和との積を求め、この
    積と文書のハッシュ値と和を求め、これとKに関する値
    のモジュロqでの積を署名計算機に一時登録するステッ
    プと、 署名者ごとに割当てた変数値に応じた係数を乗じた積の
    和からディジタル署名の残り部分sをモジュロqで生成
    するステップとを備えることを特徴とするグループ署名
    生成方法。
  8. 【請求項8】 署名対象の1つのデータに対し複数の署
    名者の各秘密鍵を用いた署名処理を実行することによっ
    て、前記署名対象の1つのデータに対するディジタル署
    名データを生成するグループ署名生成方法であって、 位数pの有限体を用い、有限体の元で位数が素数qとな
    る点をgとした場合に、 各署名者の鍵d及び署名ごとに各署名者が生成する乱数
    A及びKを定数項とする多項式を生成し、署名者ごとに
    割当てた変数値を代入した多項式のモジュロqでの値と
    モジュロpでのgのA乗gAとを署名以前に予め署名計
    算機に登録するステップと、 各署名者が自分に割当てられた変数値を代入して得られ
    た値を署名計算機から取り出して、Aに関する値の和と
    Kに関する値の和のモジュロqでの積を署名計算機に登
    録するステップと、 各署名者が計算したgAのモジュロpでの積を、署名者
    ごとに割当てた変数値に応じた係数を乗じた積の和のモ
    ジュロqでの逆数の巾乗を求め、ディジタル署名の値の
    一部rを生成し、この値rとdに関する値の和との積を
    求め、この積と文書のハッシュ値と和を求め、この和と
    Kに関するモジュロqでの値の積を署名計算機に一時登
    録するステップと、 署名者ごとに割当てた変数値に応じた係数を乗じた積の
    和からディジタル署名の残り部分sをモジュロqで生成
    するするステップとを備えることを特徴とするグループ
    署名生成方法。
JP2000297373A 1999-09-29 2000-09-28 グループ署名生成方法及びシステム Pending JP2001166687A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000297373A JP2001166687A (ja) 1999-09-29 2000-09-28 グループ署名生成方法及びシステム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP11-277547 1999-09-29
JP27754799 1999-09-29
JP2000297373A JP2001166687A (ja) 1999-09-29 2000-09-28 グループ署名生成方法及びシステム

Publications (1)

Publication Number Publication Date
JP2001166687A true JP2001166687A (ja) 2001-06-22

Family

ID=26552443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000297373A Pending JP2001166687A (ja) 1999-09-29 2000-09-28 グループ署名生成方法及びシステム

Country Status (1)

Country Link
JP (1) JP2001166687A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010087588A (ja) * 2008-09-29 2010-04-15 Kddi Corp 多重署名生成システム、多重署名生成方法、および多重署名生成プログラム
US8074067B2 (en) 2005-02-10 2011-12-06 Nec Corporation Member certificate acquiring device, member certificate issuing device, group signing device, and group signature verifying device
WO2014112551A1 (ja) * 2013-01-17 2014-07-24 日本電信電話株式会社 秘密鍵分割保管システム、分割保管装置、秘密鍵分割保管方法
CN111064581A (zh) * 2019-12-28 2020-04-24 西安工业大学 一种有连接能力的隐私保护方法及系统
JP2020516164A (ja) * 2017-04-07 2020-05-28 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム
CN113904777A (zh) * 2021-09-23 2022-01-07 武汉大学 一种基于sm2数字签名算法的签密方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074067B2 (en) 2005-02-10 2011-12-06 Nec Corporation Member certificate acquiring device, member certificate issuing device, group signing device, and group signature verifying device
JP2010087588A (ja) * 2008-09-29 2010-04-15 Kddi Corp 多重署名生成システム、多重署名生成方法、および多重署名生成プログラム
CN104919752B (zh) * 2013-01-17 2018-04-27 日本电信电话株式会社 分割保管装置、秘密密钥分割保管方法
CN104919752A (zh) * 2013-01-17 2015-09-16 日本电信电话株式会社 秘密密钥分割保管系统、分割保管装置、秘密密钥分割保管方法
JPWO2014112551A1 (ja) * 2013-01-17 2017-01-19 日本電信電話株式会社 分割保管装置、秘密鍵分割保管方法
US9894056B2 (en) 2013-01-17 2018-02-13 Nippon Telegraph And Telephone Corporation Segmented secret-key storage system, segment storage apparatus, segmented secret-key storage method
WO2014112551A1 (ja) * 2013-01-17 2014-07-24 日本電信電話株式会社 秘密鍵分割保管システム、分割保管装置、秘密鍵分割保管方法
JP2020516164A (ja) * 2017-04-07 2020-05-28 エヌチェーン ホールディングス リミテッドNchain Holdings Limited ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム
JP7029468B2 (ja) 2017-04-07 2022-03-03 エヌチェーン ホールディングス リミテッド ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム
JP2022069474A (ja) * 2017-04-07 2022-05-11 エヌチェーン ホールディングス リミテッド ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム
JP7320092B2 (ja) 2017-04-07 2023-08-02 エヌチェーン ライセンシング アーゲー ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム
CN111064581A (zh) * 2019-12-28 2020-04-24 西安工业大学 一种有连接能力的隐私保护方法及系统
CN111064581B (zh) * 2019-12-28 2022-11-08 西安工业大学 一种有连接能力的隐私保护方法及系统
CN113904777A (zh) * 2021-09-23 2022-01-07 武汉大学 一种基于sm2数字签名算法的签密方法
CN113904777B (zh) * 2021-09-23 2023-10-03 武汉大学 一种基于sm2数字签名算法的签密方法

Similar Documents

Publication Publication Date Title
Wang et al. Cryptographic primitives in blockchains
Chen et al. Flexible and scalable digital signatures in TPM 2.0
US7139910B1 (en) Systems and methods for obtaining digital signatures on a single authoritative copy of an original electronic record
CN108667625B (zh) 协同sm2的数字签名方法
Paquin et al. U-prove cryptographic specification v1. 1
JPH10133576A (ja) 公開鍵暗号方法および装置
CN107360002B (zh) 一种数字证书的申请方法
JP4453996B2 (ja) 通信方法、通信システム、及び、コンピュータ読み取り可能な記録媒体
CN113037479B (zh) 数据验证方法和装置
US20230224147A1 (en) Generating shared private keys
CN106789087B (zh) 确定消息的数据摘要、基于多方的数字签名的方法及系统
CN114095181B (zh) 一种基于国密算法的门限环签名方法及系统
WO2019110399A1 (en) Two-party signature device and method
CN111339199A (zh) 一种区块链密钥恢复方法和装置
TW202318833A (zh) 臨界簽章方案
US20090034739A1 (en) Key issuing method, group signature system, information processing apparatus, and program
CN109064170B (zh) 无可信中心的群签名方法
CN108768634B (zh) 可验证加密签名生成方法和系统
Delgado-Segura et al. Bitcoin private key locked transactions
KR100438257B1 (ko) 메시지 복원형 서명장치
JP2001166687A (ja) グループ署名生成方法及びシステム
US7447904B1 (en) Systems and methods for obtaining digital signatures on a single authoritative copy of an original electronic record
CN108964906B (zh) 协同ecc的数字签名方法
KR20240045231A (ko) 디지털 서명 셰어의 생성
Barker et al. SP 800-56A. recommendation for pair-wise key establishment schemes using discrete logarithm cryptography (revised)

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Effective date: 20050516

Free format text: JAPANESE INTERMEDIATE CODE: A131

A02 Decision of refusal

Effective date: 20050922

Free format text: JAPANESE INTERMEDIATE CODE: A02