JP5029358B2 - 鍵発行方法、グループ署名システム - Google Patents

鍵発行方法、グループ署名システム Download PDF

Info

Publication number
JP5029358B2
JP5029358B2 JP2007526018A JP2007526018A JP5029358B2 JP 5029358 B2 JP5029358 B2 JP 5029358B2 JP 2007526018 A JP2007526018 A JP 2007526018A JP 2007526018 A JP2007526018 A JP 2007526018A JP 5029358 B2 JP5029358 B2 JP 5029358B2
Authority
JP
Japan
Prior art keywords
data
secret
issuer
public key
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
JP2007526018A
Other languages
English (en)
Other versions
JPWO2007010903A1 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2007526018A priority Critical patent/JP5029358B2/ja
Publication of JPWO2007010903A1 publication Critical patent/JPWO2007010903A1/ja
Application granted granted Critical
Publication of JP5029358B2 publication Critical patent/JP5029358B2/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • 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

Description

本発明は、グループに所属するメンバーによる署名を可能にし、また、その署名を確認可能にするためのグループ署名システムと、情報処理装置と、グループ署名システムに新たにメンバーを追加する際の鍵発行方法と、その方法をコンピュータに実行させるためのプログラムに関する。
従来のグループ署名システムについて、「Jan Camenisch. Jens Groth. Group Signatures: Better Efficiency and New Theoretical Aspects. SCN 2004, vol.
3352 of LNCS, pp. 120-133, 2004.」(以下では、非特許文献1と称する)および「Furukawa, Imai. An Efficient Group Signature Scheme from Bilinear Maps. ACISP 2005, vol. 3574 of LNCS, pp.455-467.」(以下では、非特許文献2と称する)などに開示されている。これらの文献の従来のグループ署名システムにおいて、グループのメンバーを追加するためのジョイン・プロトコルは、次のような構造上の特徴を持っている。
従来のグループ署名システムのジョイン・プロトコルでは、ユーザ装置がまず秘密鍵を使ってデータを計算する。続いて、ユーザ装置はそのデータを発行者装置(非特許文献1ではgroup managerと称され、非特許文献2ではmembership managerと称されている)に送信する。その後、ユーザ装置が発行者装置にそのデータの正当性を証明する。そして、発行者装置が発行者装置の秘密鍵を使ってそのデータを加工する。
従来のグループ署名システムでは、上述したように、ユーザ装置が先にデータの正当性を証明し、その後に発行者装置が発行者装置の秘密鍵を使ってデータを加工している。ユーザ装置と発行者装置との情報のやり取りは、1人のメンバーの鍵発行処理が終了するまで、一対一で行われていた。そのため、発行者装置が複数のユーザ装置に対してジョイン・プロトコルをコンカレントに行った場合には、情報の秘匿性などの安全性が保証できないという問題がある。
本発明は上述したような従来の技術が有する問題点を解決するためになされたものであり、グループのメンバー追加のためのジョイン・プロトコルをコンカレントに行うことを可能にした鍵発行方法、グループ署名システム、情報処理装置、および、コンピュータに実行させるためのプログラムを提供することを目的とする。
上記目的を達成するための本発明の鍵発行方法は、ユーザ装置、およびユーザ装置とネットワークを介して接続される発行者装置を有するグループ署名システムにおけるユーザ装置による鍵発行方法であって、ネットワークを介して発行者装置から発行者公開鍵をユーザ記憶部に読み込み、発行者装置において発行者公開鍵を群の元の情報を含む元データ用いて秘匿化処理された秘匿文を1または複数含む第1の秘匿データを発行者装置からネットワークを介して受信し、発行者公開鍵および第1の秘匿データを用いて第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または元データを定数倍したものの和を秘匿文とする第2の秘匿データを生成する第2の秘匿データ生成処理を行い、第2の秘匿データを発行者装置にネットワークを介して送信し、発行者装置において生成され、第2の秘匿データに対応する元データに基づいた情報を発行者装置からネットワークを介して受信し、第2の秘匿データの元データに基づいた情報を用いて、自装置に対応する公開鍵であるメンバー公開鍵、および自装置に対応する秘密鍵であるメンバー秘密鍵を生成してユーザ記憶部に書き込むものである。
また、本発明の鍵発行方法は、ユーザ装置、およびユーザ装置とネットワークを介して接続される発行者装置を有するグループ署名システムにおける発行者装置による、追加メンバーへの鍵発行方法であって、発行者公開鍵および発行者秘密鍵を発行者記憶部から読み出し、発行者公開鍵の一部から計算されるデータを群の元の情報を含む元データを用いて秘匿化処理することにより1または複数の秘匿文を生成する秘匿文生成処理を行い、1または複数の秘匿文を含む第1の秘匿データをネットワークを介してユーザ装置に送信し、ユーザ装置において第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または元データを定数倍したものの和を秘匿文とする第2の秘匿データをユーザ装置からネットワークを介して受信し、第2の秘匿データを元に戻したデータであるg’’を計算し、g’’から送信用データを生成する送信用データ生成処理を行い、送信用データをネットワークを介してユーザ装置に送信するものである。
一方、上記目的を達成するための本発明のグループ署名システムは、発行者公開鍵が格納された発行者記憶部、および発行者公開鍵をネットワークを介して送出し、発行者公開鍵を群の元の情報を含む元データを用いて秘匿化処理された1または複数の秘匿文を生成して1または複数の秘匿文を含む第1の秘匿データをネットワークを介して外部に送出し、第1の秘匿データが秘匿化処理された第2の秘匿データを受信すると、第2の秘匿データの元データを生成し、元データに基づいた情報をネットワークを介して外部に送出する発行者装置制御部を有する発行者装置と、ネットワークを介して発行者公開鍵を格納するためのユーザ記憶部、および発行者装置から受信する発行者公開鍵をユーザ記憶部に格納し、第1の秘匿データを受信すると、発行者公開鍵および第1の秘匿データを用いて第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または元データを定数倍したものの和を秘匿文とする第2の秘匿データを生成してネットワークを介して発行者装置に送信し、元データに基づいた情報を受信すると、自装置に対応する公開鍵であるメンバー公開鍵、および自装置に対応する秘密鍵であるメンバー秘密鍵を生成してユーザ記憶部に書き込むユーザ装置制御部を有するユーザ装置と、を含む構成である。
本発明では、発行者装置が発行者装置の秘密鍵を使って先にデータを作成し、次にユーザ装置がそのデータを加工して別のデータを作り、そしてユーザ装置がその加工されたデータの正当性を発行者装置に証明している。ユーザ装置がデータの正当性を証明する前に発行者装置が発行者装置の秘密鍵を使ってデータを加工するので、発行者装置は、1人のメンバーの鍵発行処理が終了する前に、途中で他のユーザ装置から受信するデータの加工をすることが可能となる。
また、上記目的を達成するための本発明の情報処理装置は、発行者公開鍵が格納された発行者装置とネットワークを介して接続される情報処理装置であって、発行者公開鍵を格納するための記憶部と、発行者装置から発行者公開鍵を受信すると記憶部に格納し、発行者装置において発行者公開鍵を群の元の情報を含む元データを用いて秘匿化処理された秘匿文を1または複数含む第1の秘匿データを発行者装置から受信すると、発行者公開鍵および第1の秘匿データを用いて第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または元データを定数倍したものの和を秘匿文とする第2の秘匿データを生成して発行者装置に送信し、発行者装置において生成され、第2の秘匿データの元データに基づいた情報を発行者装置から受信すると、第2の秘匿データの元データに基づいた情報を用いて、自装置に対応する公開鍵であるメンバー公開鍵、および自装置に対応する秘密鍵であるメンバー秘密鍵を生成して記憶部に書き込む制御部と、を有する構成である。
また、本発明の情報処理装置は、グループに新規に追加されるユーザ側のユーザ装置とネットワークを介して接続される情報処理装置であって、発行者公開鍵が格納された記憶部と、発行者公開鍵の一部から計算されるデータを群の元の情報を含む元データを用いて秘匿化することにより1または複数の秘匿文に生成すると、1または複数の秘匿文を含む第1の秘匿データをユーザ装置に送信し、ユーザ装置において第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または元データを定数倍したものの和を秘匿文とする第2の秘匿データをユーザ装置から受信すると、第2の秘匿データを元に戻したデータであるg’’を計算し、g’’から送信用データを生成してユーザ装置に送信する制御部と、を有する構成である。
また、上記目的を達成するための本発明のプログラムは、発行者公開鍵が格納された発行者装置とネットワークを介して接続されるコンピュータに実行させるためのプログラムであって、ネットワークを介して発行者装置から発行者公開鍵をコンピュータの記憶部に読み込み、発行者装置において発行者公開鍵を群の元の情報を含む元データを用いて秘匿化処理された秘匿文を1または複数含む第1の秘匿データを発行者装置からネットワークを介して受信し、発行者公開鍵および第1の秘匿データを用いて第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または元データを定数倍したものの和を秘匿文とする第2の秘匿データを生成し、第2の秘匿データを発行者装置にネットワークを介して送信し、発行者装置において生成され、第2の秘匿データの元データに基づいた情報を発行者装置からネットワークを介して受信し、第2の秘匿データの元データに基づいた情報を用いて、自装置に対応する公開鍵であるメンバー公開鍵、および自装置に対応する秘密鍵であるメンバー秘密鍵を生成してコンピュータの記憶部に書き込む処理を、コンピュータに実行させるものである。
さらに、本発明のプログラムは、グループに新規に追加されるユーザ側のユーザ装置とネットワークを介して接続されるコンピュータに実行させるためのプログラムであって、発行者公開鍵および発行者秘密鍵をコンピュータの記憶部から読み出し、発行者公開鍵の一部から計算されるデータを群の元の情報を含む元データを用いて秘匿化することにより1または複数の秘匿文に生成する秘匿文生成処理を行い、1または複数の秘匿文を含む第1の秘匿データをネットワークを介してユーザ装置に送信し、ユーザ装置において第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または元データを定数倍したものの和を秘匿文とする第2の秘匿データをユーザ装置からネットワークを介して受信し、第2の秘匿データを元に戻したデータであるg’’を計算し、g’’から送信用データを生成する送信用データ生成処理を行い、送信用データをネットワークを介してユーザ装置に送信する処理を、コンピュータに実行させるものである。
上述したように、本発明では、ユーザ装置がデータの正当性を証明する前に発行者装置が発行者装置の秘密鍵を使ってデータを加工するので、複数のユーザ装置と発行者装置との間でジョイン・プロトコルによるデータの送受信をコンカレントに行っても、情報秘匿の安全性が従来よりも向上する。
図1はグループ署名システムの一構成例を示すブロック図である。 図2は実施形態1における発行者鍵生成手順を示すフローチャートである。 図3は実施形態1における開示者鍵生成手順を示すフローチャートである。 図4は実施形態1における発行手順1を示すフローチャートである。 図5は実施形態1における参加手順1を示すフローチャートである。 図6は実施形態1における発行手順2を示すフローチャートである。 図7は実施形態1における参加手順2を示すフローチャートである。 図8はpf_αの生成手順を示すフローチャートである。 図9はpf_αの検証手順を示すフローチャートである。 図10はElGamal暗号化手順を示すフローチャートである。 図11はElGamal暗号文線形積再暗号化手順を示すフローチャートである。 図12はElGamal暗号文復号手順を示すフローチャートである。 図13は(Y,C)の正当性証明手順を示すフローチャートである。 図14は(Y,C)の正当性証明検証手順を示すフローチャートである。 図15は実施形態2における発行者鍵生成手順を示すフローチャートである。 図16は実施形態2における開示者鍵生成手順を示すフローチャートである。 図17は実施形態2における発行手順1を示すフローチャートである。 図18は実施形態2における参加手順1を示すフローチャートである。 図19は実施形態2における発行手順2を示すフローチャートである。 図20は実施形態2における参加手順2を示すフローチャートである。 図21はLinear暗号方式鍵生成手順を示すフローチャートである。 図22はLinear暗号化手順を示すフローチャートである。 図23はLinear暗号文線形和再暗号化手順を示すフローチャートである。 図24はLinear暗号文復号手順を示すフローチャートである。 図25は(Ider_U, Cipher)の正当性証明手順を示すフローチャートである。 図26は(Ider_U, Cipher)の正当性証明検証手順を示すフローチャートである。 図27は実施形態3における発行者鍵生成手順を示すフローチャートである。 図28は実施形態3における開示者鍵生成手順を示すフローチャートである。 図29は実施形態3における参加手順1を示すフローチャートである。 図30は実施形態3における発行手順1を示すフローチャートである。 図31は実施形態3における参加手順2を示すフローチャートである。 図32は実施形態4における発行手順1を示すフローチャートである。 図33は実施形態4における参加手順1を示すフローチャートである。 図34は実施形態4における発行手順2を示すフローチャートである。 図35は(Y,C)の正当性証明手順を示すフローチャートである。 図36は(Y,C)の正当性証明検証手順を示すフローチャートである。 図37は実施形態5における発行者鍵生成手順を示すフローチャートである。 図38は実施形態5における発行手順1を示すフローチャートである。 図39は実施形態5における参加手順1を示すフローチャートである。 図40は実施形態5における発行手順2を示すフローチャートである。 図41は(Ider_U, Cipher)の正当性証明手順を示すフローチャートである。 図42は(Ider_U, Cipher)の正当性証明検証手順を示すフローチャートである。
符号の説明
100 発行者装置
110 発行者装置制御部
120 発行者記憶部
200 ユーザ装置
210 ユーザ装置制御部
220 ユーザ記憶部
(実施形態1)
[装置構成]
本実施形態のグループ署名システムの構成を説明する。図1はグループ署名システムの一構成例を示すブロック図である。図1に示すように、グループ署名システムには、グループのメンバーに鍵を発行する発行者装置100と、メンバーが操作するためのユーザ装置200とを有する。また、グループ署名システムに、検証者装置300および開示者装置400が接続されている。発行者装置100、ユーザ装置200、検証者装置300および開示者装置400は記憶部および制御部等を有する情報処理装置である。
発行者装置100には、発行者装置制御部110、発行者記憶部120および通信部(不図示)が設けられている。発行者装置制御部110は発行者鍵生成手段112と発行手段114とを有する。ユーザ装置200には、ユーザ装置制御部210、ユーザ記憶部220および通信部(不図示)が設けられている。ユーザ装置制御部210は参加手段212と署名生成手段214とを有する。
検証者装置300には、検証者装置制御部310、検証者記憶部320および通信部(不図示)が設けられている。検証者装置制御部310は検証手段314を有する。開示者装置400には、開示者装置制御部410、開示者記憶部420および通信部(不図示)が設けられている。開示者装置制御部410は開示者鍵生成手段412と開示手段414とを有する。
各装置の制御部は通信部および記憶部の制御の他に、データの演算処理を実行する。制御部には、プログラムにしたがって所定の処理を実行するCPU(Central Processing
Unit)、およびプログラムを格納するためのメモリが設けられている。
発行者装置100、ユーザ装置200、検証者装置300および開示者装置400は、インターネットおよびLAN(Local Area Network)等の通信ネットワークを介して相互に通信可能に接続されている。通信ネットワークは、有線および無線のどちらでもよく、また、これらの組み合わせであってもよい。なお、図1では、装置間における情報の流れをわかり易くするために、各装置の通信部を図に示すことを省略している。
発行者記憶部120、ユーザ記憶部220、検証者記憶部320および開示者記憶部420としては、ハードディスクや半導体メモリ等がある。
各装置の記憶部には、セキュリティ・パラメータl_n、l_E、l_Q、l_c、l_e、l_sが事前に入力されているものとする。どのような方法でl_n、l_E、l_Q、l_c、l_e、l_sが入力されるのかは問わない。Γを位数Qの巡回群で、Qのビット数がl_Qビットであるものとする。Γとして、例えば、(Z/PZ)の乗法群や、楕円曲線群を用いることが可能である。ここでは、Γが(Z/PZ)の乗法群である場合を例にとって説明する。また、Zもしくは(Z/QZ)を巡回群と称する。
また、各装置の記憶部には、Γを記述するパラメータと、Qとが事前に入力されているものとする。どのような方法でΓを記述するパラメータと、Qとが入力されるのかは問わない。
なお、発行者装置100は、入力部、出力部、記憶部および制御部からなる一般的なコンピュータにより構成されるものであり、発行者鍵生成手段112および発行手段114はCPUがプログラムを実行することで、コンピュータ内に仮想的に構成される。このことは、ユーザ装置200、検証者装置300、および開示者装置400についても同様である。
また、発行者装置100、ユーザ装置200および開示者装置400においては、各制御部のCPUがプログラムを実行することで、秘匿すべき情報として乗法群Γの元、巡回群(Z/QZ)の元、および(Z/nZ)の元がランダムに選択される。(Z/nZ)のnについては、次の[発行者鍵生成手順ISS-GEN]のところで説明する。複数の元の中からランダムに選択する方法として、例えば、乱数を利用するものがある。
次に、本実施形態のグループ署名システムによる鍵発行方法について説明する。なお、本実施形態では、発行者装置が秘匿すべき情報に対して暗号化を行って秘匿性を保つ。以下では、暗号化などの秘匿化処理により秘匿化された情報を秘匿文と称する。また、元の情報を含むデータを元データと称するが、暗号化処理においては元の情報を含むデータが平文に相当する。
[発行者鍵生成手順ISS-GEN]
発行者鍵生成手段112による発行者鍵生成手順ISS-GENを説明する。図2は発行者鍵生成手順を示すフローチャートである。図2に示すように、発行者装置100は以下のISS-GEN1,…,ISS-GEN5を順に行う。
ISS-GEN1: セキュリティ・パラメータl_nを発行者記憶部120から読み込む(ステップ1001)。
ISS-GEN2: 素数p, qで、その積n = p qがl_nビットであるものを選ぶ(ステップ1002)。
ISS-GEN3: QR(n)の元a, g、およびn以下の非負整数αをランダムに選び、h = g^α mod nを計算する(ステップ1003)。
ISS-GEN4: (α, g, h)を入力して後述する[pf_αの生成手順]を行い、αの知識の証明文pf_αを作成する(ステップ1004)。
ISS-GEN5: 発行者公開鍵ipkを(n, a, g, h, pf_α)に、発行者秘密鍵iskを(p, q,
α)にセットし、ipk、iskを発行者記憶部120に書き込み(ステップ1005)、発行者鍵生成手順ISS-GENを終了する。
発行者公開鍵ipkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にipkを載せるという方法が考えられるが、どのような方法でipkを公開してもよい。ユーザ装置200のユーザ装置制御部210は、公開された発行者公開鍵ipkをユーザ記憶部220に格納する。
[開示者鍵生成手順OPN-GEN]
開示者鍵生成手段412による開示者鍵生成手順OPN-GENを説明する。図3は開示者鍵生成手順を示すフローチャートである。図3に示すように、開示者装置400は以下のOPN-GEN1、OPN-GEN2、OPN-GEN3を順に行う。
OPN-GEN1: Qを開示者記憶部420から読み込む(ステップ1011)。
OPN-GEN2: (Z/QZ)の元X_G、X_H、Γの元Fをランダムに選び、G = F^{X_G}、H =
F^{X_H}とする(ステップ1012)。
OPN-GEN3: 開示者公開鍵opkを(F, G, H)に、開示者秘密鍵oskを(X_G, X_H)にセットし、opk、oskを開示者記憶部420に書き込み(ステップ1013)、開示者鍵生成手順OPN-GENを終了する。
開示者公開鍵opkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にopkを載せるという方法が考えられるが、どのような方法でopkを公開してもよい。ユーザ装置200のユーザ装置制御部210は、公開された開示者公開鍵opkをユーザ記憶部220に格納する。また、発行者装置100の発行者装置制御部110は、公開された開示者公開鍵opkを発行者記憶部120に格納する。
[発行手順ISS-ISSUEと参加手順USR-JOIN]
発行者装置100とユーザ装置200は相互通信を行いながら、それぞれ発行手順ISS-ISSUEと参加手順USR-JOINとを行う。まず、発行者装置100が後述の[発行手順1 ISS-ISSUE-1]を行い、続いて、ユーザ装置200が後述の[参加手順1 USR-JOIN-1]を行う。さらに、発行者装置100が後述の[発行手順2 ISS-ISSUE-2]を行い、最後にユーザ装置200が後述の[参加手順2 USR-JOIN-2]を行う。
上述の手順の途中で、メンバー公開鍵upkとメンバー秘密鍵uskが生成される。
メンバー公開鍵upkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にupkを載せるという方法が考えられるが、どのような方法でupkを公開してもよい。
[署名手順 USR-SIGN]
署名生成手段214は、メッセージmを入力として受け取ったら、vk = ipk、sk = (vk, usk)として非特許文献1のSign(m, vk, sk)を行い、mに対する署名文σを得る。[検証手順 VER-VERIFY]
検証手段314は、メッセージmとmに対する署名文σとを受け取ったら、vk = ipkとして非特許文献1のVerify(vk, m, σ)を行う。
[開示手順 OPN-OPEN]
開示手段414は、メッセージmとmに対する署名文σとを受け取ったら、gusk = (ipk, opk)として非特許文献1のOpen(gusk, m, σ)を行う。
[発行手順1 ISS-ISSUE-1]
発行手段114による発行手順1 ISS-ISSUE-1を説明する。図4は発行手順1を示すフローチャートである。図4に示すように、発行者装置100は以下のISS-ISSUE-1-1、…、ISS-ISSUE-1-4を順に行う。
ISS-ISSUE-1-1: ipk = (n, a, g, h, pf_α)、opk = (F, G, H)、isk = (p, q, α)を発行者記憶部120から読み込む(ステップ1021)。
ISS-ISSUE-1-2: l_eビットの非負整数eで、E = 2^{l_E}+eが素数となるものをランダムに選び、g’ = g^{1/E} mod n、h’ = h^{1/E} mod nを計算する(ステップ1022)。
ISS-ISSUE-1-3: ((n, g, h), g’)を入力して後述する[ElGamal暗号化手順]を行い、C_{g’}を作る。同様に((n, g, h), h’)を入力して[ElGamal暗号化手順]を行い、C_{h’}を作る(ステップ1023)。
ISS-ISSUE-1-4: (C_{g’}, C_{h’})をユーザ装置200に送信する(ステップ1024)。
[参加手順1 USR-JOIN-1]
参加手段212による参加手順1 USR-JOIN-1を説明する。図5は参加手順1の手順を示すフローチャートである。図5に示すように、ユーザ装置200は以下のUSR-JOIN-1-1,…, USR-JOIN-1-7を順に行う。
USR-JOIN-1-1: (C_{g’}, C_{h’})を受信する(ステップ1031)。
USR-JOIN-1-2: ipk = (n, a, g, h, pf_α)、opk = (F, G, H)をユーザ記憶部220から読み込む(ステップ1032)。
USR-JOIN-1-3: (ipk, pf_α)を入力して後述する[pf_αの検証手順]を行う。[pf_αの検証手順]がrejectを出力したら参加手順を終了する(ステップ1033)。
USR-JOIN-1-4: (Z/QZ)の元x、(Z/nZ)の元r’をランダムに選び、Y = G^{x}を計算する(ステップ1034)。
USR-JOIN-1-5: (ipk, x, r’, C_{g’}, C_{h’})を入力して後述する[ElGamal暗号文線形積再暗号化手順]を行い、(C, r’’’)を作る(ステップ1035)。
USR-JOIN-1-6: (n, g, h, x, r’, C_{g’}, C_{h’}, Y, C)を入力して後述する[(Y, C)の正当性証明手順]を行い、pf_{Y, C}を作る(ステップ1036)。
USR-JOIN-1-7: (Y, C, pf_{Y, C})を発行者装置100に送信する(ステップ1037)。
[発行手順2 ISS-ISSUE-2]
発行手段114による発行手順2 ISS-ISSUE-2を説明する。図6は発行手順2を示すフローチャートである。図6に示すように、発行者装置100は以下のISS-ISSUE-2-1、…、ISS-ISSUE-2-5を順に行う。
ISS-ISSUE-2-1: (Y, C, pf_{Y, C})を受信する(ステップ1041)。
ISS-ISSUE-2-2: (n, g, h, C_{g’}, C_{h’}, Y, C, pf_{Y, C})を入力して後述する[(Y, C)の正当性証明検証手順]を行う。もし[(Y, C)の正当性証明検証手順]がrejectを出力したら参加手順を終了する(ステップ1042)。
ISS-ISSUE-2-3: (ipk, isk, C)を入力して後述する[ElGamal暗号文復号手順]を行って平文g’’を得、(Z/EZ)の元r’’をランダムに選び、y = a^{1/E}g’’h^{r’’}
mod nを計算する(ステップ1043)。
ISS-ISSUE-2-4: YをユーザのIDと組にして開示者装置400に送る(ステップ1044)。
ISS-ISSUE-2-5: (y, r’’)をユーザ装置200に送って(ステップ1045)、発行手順を終了する。
[参加手順2 USR-JOIN-2]
参加手段212による参加手順2 USR-JOIN-2を説明する。図7は参加手順2を示すフローチャートである。図7に示すように、ユーザ装置200は以下のUSR-JOIN-2-1,…, USR-JOIN-2-4を順に行う。
USR-JOIN-2-1: (y, r’’)を受信する(ステップ1051)。
USR-JOIN-2-2: r = r’+r’’を計算する(ステップ1052)。
USR-JOIN-2-3: ag^{x}h^{r} = y^Eが成立するかどうかを確認し、成立しなければ参加手順を終了する(ステップ1053)。
USR-JOIN-2-4: 成立すれば、メンバー公開鍵upkを(Y, y, E)に、メンバー秘密鍵uskを(x, r)にセットし、upk、uskをユーザ記憶部220に書き込み(ステップ1054)、参加手順を終了する。
[pf_αの生成手順]
発行者装置制御部110による、pf_αの生成手順を説明する。図8はpf_α生成手順を示すフローチャートである。図8に示すように、発行者装置100は以下のpf-α-GEN-1,…, pf-α-GEN-5を順に行う。
pf−α−GEN−1: 入力(α, g, h)を受け取る(ステップ1061)。
pf−α−GEN−2: l_n+l_sビットの乱数α_{0,1}を選び、h_{0, 1} = g^{α_{0, 1}} mod nを計算する(ステップ1062)。
l_cビットのビット列を出力するハッシュ関数をH_{l_c}と書く。
pf-α-GEN-3: c = H_{l_c}(g, h, h_{0,1})を計算する(ステップ1063)。
pf-α-GEN-4: α_{0, 2} = cα+ α_{0, 1} とする(ステップ1064)。
pf-α-GEN-5: pf_α = (h_{0, 1}, α_{0, 2})とする(ステップ1065)。
[pf_αの検証手順]
ユーザ装置制御部210による、pf_αの検証手順を説明する。図9はpf_α検証手順を示すフローチャートである。図9に示すように、ユーザ装置200は以下のpf-α-VER-1,…, pf-α-GEN-3を順に行う。
pf-α-VER-1: 入力(ipk, pf_α)を受け取り、ipk = (n, a, g, h, pf_α)、pf_α = (h_{0, 1}, α_{0, 2})とパースする(ステップ1071)。
pf-α-VER-2: c = H_{l_c}(g, h, h_{0, 1})を計算する(ステップ1072)。
pf-α-GEN-3: g^{α_{0,2}} = h^ch_{0, 1} mod nが成立すればacceptを、そうでなければrejectを出力する(ステップ1073)。
[ElGamal暗号化手順]
発行者装置制御部110によるElGamal暗号化手順を説明する。図10はElGamal暗号化手順を示すフローチャートである。図10に示すように、発行者装置100は以下のELGAMAL-ENC-1,…, ELGAMAL-ENC-3を順に行う。
ELGAMAL-ENC-1: 入力((n, g, h), g’)を受け取る(ステップ1081)。
ELGAMAL-ENC-2: l_Nビットの元r_1をランダムに選び、g_1 = g^{r_1} mod n、h_1 = g’h^{r_1} mod nとする(ステップ1082)。
ELGAMAL-ENC-3: C_{g’} = (g_1, h_1)とする(ステップ1083)。
このようにして、準同型性暗号方式の暗号化手段により暗号文を生成する。
[ElGamal暗号文線形積再暗号化手順]
発行者装置制御部110によるElGamal暗号文線形積再暗号化手順を説明する。図11はElGamal暗号文線形積再暗号化手順を示すフローチャートである。図11に示すように、発行者装置100は以下のELGAMAL-MUL-1,…,3を順に行う。
ELGAMAL-MUL-1: 入力(ipk, x, r’, C_{g’}, C_{h’})を受け取る(ステップ1091)。
ELGAMAL-MUL-2: ipk = (n, a, g, h, pf_α)、C_{g’} = (g_{1, g’}, h_{1, g’})、C_{h’} = (g_{1, h’}, h_{1, h’})とパースする(ステップ1092)。
ELGAMAL-MUL-3: l_nビットの自然数r’’’を選び、C = (g_{1, g’}^{x}h_{1, h’}^{r’}g^{r’’’}, h_{1, g’}^{x}g_{1, h’}^{r’} h^{r’’’})を計算する(ステップ1093)。
[ElGamal暗号文復号手順]
発行者装置制御部110によるElGamal暗号文復号手順を説明する。図12はElGamal暗号文復号手順を示すフローチャートである。図12に示すように、発行者装置100は以下のELGAMAL-DEC-1,…, ELGAMAL-DEC-3を順に行う。
ELGAMAL-DEC-1:入力(ipk, isk, C)を受け取る(ステップ1101)。
ELGAMAL-DEC-2: ipk = (n, a, g, h, pf_α)、isk = (p, q, α)、C = (g_C, h_C)とパースする(ステップ1102)。
ELGAMAL-DEC-3: g’’ = h_C/g_C^{α} mod nを計算する(ステップ1103)。
[(Y,C)の正当性証明手順]
ユーザ装置制御部210による、(Y,C)の正当性証明手順を説明する。図13は(Y,C)正当性証明手順を示すフローチャートである。図13に示すように、ユーザ装置200は以下のPF-YC-GEN-1,…, PF-YC-GEN-5を順に行う。
PF-YC-GEN-1:(n, g, h, x, r’, r’’’, C_{g’}, C_{h’}, Y, C)を受け取り、C_{g’} = (g_{1, g’}, h_{1, g’})、C_{h’} = (g_{1, h’}, h_{1, h’})とパースする(ステップ1111)。
PF-YC-GEN-2: l_q+l_sビットの自然数x_{0,1}とl_n+l_sビットの自然数r’_{0, 1}、r’’’_{0, 1}とをランダムに選び、g_{1, g, 0, 1} = g_{1, g’}^{x_{0, 1}}g_{1, h’}^{r’_{0, 1}}g^{r’’’_{0, 1}}
mod n、h_{1, h, 0, 1} = h_{1, g’}^{x_{0, 1}}g_{1, h’}^{r’ {0, 1}}h^{r’’’_{0, 1}} mod n、Y_{0, 1} = G^{x_{0, 1}}とする(ステップ1112)。
PF-YC-GEN-3: c = H_{l_c}(n, g, h, C_{g’}, C_{h’}, Y, C, C_{g, 0, 1}, C_{h, 0, 1}, Y_{0, 1})を計算する(ステップ1113)。
PF-YC-GEN-4: x_{0, 2} = cx + x_{0, 1}、r’_{0, 2} = cr’+ r’_{0, 1}、r’’’_{0, 2} = c r’’’+ r’’’_{0, 1}を計算する(ステップ1114)。
PF-YC-GEN-5: pf_{Y, C}= (g_{1, g, 0, 1}, h_{1, h, 0, 1}, Y_{0, 1}, x_{0, 2}, r’_{0, 2}, r’’’_{0, 2})とする(ステップ1115)。
[(Y,C)の正当性証明検証手順]
発行者装置制御部110による、(Y,C)の正当性証明検証手順を説明する。図14は(Y,C)正当性証明検証手順を示すフローチャートである。図14に示すように、発行者装置100は以下のPF-YC-VER-1,…, PF-YC-VER-3を順に行う。
PF-YC-VER-1: 入力(n, g, h, C_{g’}, C_{h’}, Y, C, pf_{Y, C})
を受け取り、C_{g’} = (g_{1, g’}, h_{1, g’})、C_{h’} = (g_{1, h’}, h_{1, h’})、C = (g_{1, g}, C_{1, h})、pf_{Y,
C} = (g_{1, g, 0, 1}, h_{1, h, 0, 1},Y_{0, 1}, x_{0, 2}, r’_{0, 2}, r’’’_{0, 2}) とパースする(ステップ1121)。
PF-YC-VER-2: c = H_{l_c}(n, g, h, C_{g’}, C_{h’}, Y, C, C_{g, 0, 1}, C_{h, 0, 1}, Y_{0, 1}) を計算する(ステップ1122)。
PF-YC-VER-3: g_{1, g}^cg_{1, g, 0, 1} = g_{1, g’}^{x_{0, 2}}g_{1, h’}^{r’_{0, 2}}g^{r’’’_{0, 2}} mod n、h_{1, h}^ch_{1, h, 0, 1} = h_{1, g’}^{x_{0, 2}}g_{1, h’}^{r’ {0, 2}}h^{r’’’_{0,2}} mod n、Y^cY_{0, 1} = G^{x_{0, 2}}、-2^{l_Q+l_c+l_s} ≦ x_{0, 2} ≦ 2^{l_Q+l_c+l_s} が成立したらacceptし、そうでなければrejectする(ステップ1123)。
本実施形態の追加メンバーへの鍵発行方法およびグループ署名システムでは、発行者装置が発行者装置の秘密鍵を使って先に第1の秘匿データを作成し、次にユーザ装置がその第1の秘匿データを加工して別の第2の秘匿データを作り、そしてユーザ装置がその加工されたデータの正当性を発行者装置に証明している。このようにして、従来のグループ署名システムとは異なり、ユーザ装置がデータの正当性を証明する前に発行者装置が発行者装置の秘密鍵を使ってデータを加工するので、複数のユーザ装置と発行装置とのジョイン・プロトコルによるデータの送受信をコンカレントに行った場合にも情報の安全性が向上する。
(実施形態2)
[装置構成]
本実施形態のグループ署名システムについて説明する。装置構成については、実施形態1で説明した装置と同様であるため、ここではその詳細な説明を省略する。以下では、実施形態1と異なる処理について詳細に説明する。
各装置の記憶部にはセキュリティ・パラメータkが事前に入力されているものとする。どのような方法でkが入力されるのかは問わない。
Γ_1, Γ_2, Γ_Tを位数pの巡回群で、Γ_1×Γ_2からΓ_Tへの双線形写像eが定義されていて、しかもpのビット数がkであるものとする。さらにΓを位数pの巡回群とする。
各装置の記憶部にはΓ_1, Γ_2, Γ_Tを記述するパラメータと、pとが事前に入力されているものとする。どのような方法でΓ_1, Γ_2, Γ_Tを記述するパラメータと、pとが入力されるのかは問わない。
次に、本実施形態のグループ署名システムによる鍵発行方法について説明する。本実施形態も、実施形態1と同様に、発行者装置が秘匿すべき情報に対して暗号化を行って秘匿性を保つ場合とする。
[発行者鍵生成手順 ISS-GEN]
発行者鍵生成手段112による発行者鍵生成手順ISS-GENを説明する。図15は発行者鍵生成手順を示すフローチャートである。図15に示すように、発行者装置100は以下のISS-GEN-1,…,ISS-GEN-3を順に行う。
ISS-GEN-1: Γ_1の元G_1, H, K, Γ_2の元G_2、および(Z/pZ)の元wをランダムに選び、Y = wG_2とする(ステップ1201)。
ISS-GEN-2: G_1を入力して後述する[Linear暗号方式鍵生成手順]を行い、Linear暗号方式公開鍵lpkとLinear暗号方式秘密鍵lskを作る(ステップ1202)。
ISS-GEN-3: 発行者公開鍵ipkを(G_1, G_2, H, K, Y, lpk)にセットし、発行者秘密鍵iskを(w, lsk)にセットし、ipkとiskを発行者記憶部120に記憶する(ステップ1203)。
発行者公開鍵ipkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にipkを載せるという方法が考えられるが、どのような方法でipkを公開してもよい。ユーザ装置200のユーザ装置制御部210は、公開された発行者公開鍵ipkをユーザ記憶部220に格納する。
[開示者鍵生成手順 OPN-GEN]
開示者鍵生成手段412による開示者鍵生成手順OPN-GENを説明する。図16は開示者鍵生成手順を示すフローチャートである。図16に示すように、開示者装置400は以下のOPN-GEN-1、OPN-GEN-2を順に行う。
OPN-GEN-1: Γの元G、(Z/pZ)の元s, tをランダムに選び、S = sG, T = tGとする(ステップ1211)。
OPN-GEN-2: 開示者公開鍵opkを(G, Γの元G、S, T)にセットし、開示者秘密鍵oskを(s, t)にセットし、opk、oskを開示者記憶部420に書き込む(ステップ1212)。
開示者公開鍵opkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にopkを載せるという方法が考えられるが、どのような方法でopkを公開してもよい。ユーザ装置200のユーザ装置制御部210は、公開された開示者公開鍵opkをユーザ記憶部220に格納する。また、発行者装置100の発行者装置制御部110は、公開された開示者公開鍵opkを発行者記憶部120に格納する。
[発行手順 ISS-ISSUE と 参加手順USR-JOIN]
発行者装置100とユーザ装置200は相互通信を行いながら、それぞれ発行手順 ISS-ISSUEと参加手順USR-JOINとを行う。
まず、発行者装置100が後述の[発行手順1 ISS-ISSUE-1]を行い、続いて、ユーザ装置200が後述の[参加手順1 USR-JOIN-1]を行う。さらに、発行者装置100が後述の[発行手順2 ISS-ISSUE-2]を行い、最後にユーザ装置200が後述の[参加手順2 USR-JOIN-2]を行う。
上述の手順の途中で、メンバー公開鍵upkとメンバー秘密鍵uskが生成される。
メンバー公開鍵upkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にupkを載せるという方法が考えられるが、どのような方法でupkを公開してもよい。
[署名手順 USR-SIGN]
署名生成手段214は、メッセージmを入力として受け取ったら、mpk = ipk、tpk =
opk、cert_U = upk、sk_U = uskとして非特許文献2のSign(m, upk, tpk, cert_U, sk_U)を行い、mに対する署名文gsを得る。
[検証手順 VER-VERIFY]
検証手段314は、メッセージmとmに対する署名文gsとを受け取ったら、mpk = ipk、tpk = opkとしとして非特許文献2のVerify(m, gs, mpk, tpk)を行う。
[開示手順 OPN-OPEN]
開示手段414は、メッセージmとmに対する署名文gsとを受け取ったら、mpk = ipk、tpk = opk、tsk = oskとして非特許文献2のOpen(m, σ, mpk, tpk, tsk)を行う。
[発行手順1 ISS-ISSUE-1]
発行手段114による発行手順1 ISS-ISSUE-1を説明する。図17は発行手順1を示すフローチャートである。図17に示すように、発行者装置100は以下のISS-ISSUE-1-1,…, ISS-ISSUE-1-4を順に行う。
ISS-ISSUE-1-1: ipk = (G_1, G_2, H, K, Y, lpk)、opk = (G, S, T)、isk = (w, lsk)を発行者記憶部120から読み込む(ステップ1221)。
ISS-ISSUE-1-2: (Z/pZ)の元y_Uをランダムに選び、H’ = (1/(w+y_U)) H、K’ =
(1/(w+y_U)) Kを計算する(ステップ1222)。
ISS-ISSUE-1-3: (G_1, lpk, H’)を入力して後述する[Linear暗号化手順]を行い、Cipher_{H’}を作る。同様に(G_1, lpk, K’)を入力して[Linear暗号化手順]を行い、Cipher_{K’}を作る(ステップ1223)。
ISS-ISSUE-1-4: (Cipher_{H’}, Cipher_{K’})をユーザ装置200に送信する(ステップ1224)。
[参加手順1 USR-JOIN-1]
参加手段212による参加手順1 USR-JOIN-1を説明する。図18は参加手順1を示すフローチャートである。図18に示すように、ユーザ装置200は以下のUSR-JOIN-1-1,…, USR-JOIN-1-6を順に行う。
USR-JOIN-1-1: (Cipher_{H’}, Cipher_{K’})を受信する(ステップ1231)。
USR-JOIN-1-2: ipk = (G_1, G_2, H, K, Y, lpk)、opk = (G, S, T)をユーザ記憶部220から読み込む(ステップ1232)。
USR-JOIN-1-3: (Z/pZ)の元x_U、z’_Uをランダムに選び、Ider_U = x_U G、を計算する(ステップ1233)。
USR-JOIN-1-4: (G_1, x_U, z’_U, Cipher_{H’}, Cipher_{K’})を入力して後述する[Linear暗号文線形積再暗号化手順]を行い、(Cipher, β, β’)を作る(ステップ1234)。
USR-JOIN-1-5: (G, lpk, x_U, z’_U, β, β’, Cipher_{H’}, Cipher_{K’}, Ider_U, Cipher)を入力して後述する[(Ider_U, Cipher)の正当性証明手順]を行い、pf_{Ider_U, Cipher}を作る(ステップ1235)。
USR-JOIN-1-6: (Ider_U, Cipher, pf_{Ider_U, Cipher})を発行者装置100に送信する(ステップ1236)。
[発行手順2 ISS-ISSUE-2]
発行手段114による発行手順2 ISS-ISSUE-2を説明する。図19は発行手順2を示すフローチャートである。図19に示すように、発行者装置100は以下のISS-ISSUE-2-1、…、ISS-ISSUE-2-5を順に行う。
ISS-ISSUE-2-1: (Ider_U, Cipher, pf_{Ider_U, Cipher})を受信する(ステップ1241)。
ISS-ISSUE-2-2: (G, lpk, Cipher_{H’}, Cipher_{K’}, Ider_U, Cipher,
pf_{Ider_U, Cipher})を入力して後述する[(Ider_U, Cipher)の正当性証明検証手順]を行う。もし[(Ider_U, Cipher)の正当性証明検証手順]がrejectを出力したら参加手順を終了する(ステップ1242)。
ISS-ISSUE-2-3: (G_1, lpk, lsk, Cipher)を入力して後述する[Linear暗号文復号手順]を行って平文G_1’’を得、(Z/eZ)の元z’’_Uをランダムに選び、A_U = (1/(w+y_U)) G_1- G_1’’- z’’_UKを計算する(ステップ1243)。なお、平文G_1’’は実施形態1では平文g’’に相当する。
ISS-ISSUE-2-4: Ider_UをユーザのIDと組にして開示者装置400に送る(ステップ1244)。
ISS-ISSUE-2-5: (A_U, z’’_U)をユーザ装置200に送って(ステップ1245)、発行手順を終了する。
[参加手順2 USR-JOIN-2]
参加手段212による参加手順2 USR-JOIN-2を説明する。図20は参加手順2を示すフローチャートである。図20に示すように、ユーザ装置200は以下のUSR-JOIN-2-1,…, USR-JOIN-2-4を順に行う。
USR-JOIN-2-1: (A_U, z’’_U)を受信する(ステップ1251)。
USR-JOIN-2-2: z_U = z’_U+ z’’_U mod pを計算する(ステップ1252)。
USR-JOIN-2-3: e(A_U, Y+ y_UG_1)e(x_UH, G_2)e(z_UK, G_2) = e(G_1,
G_2)が成立するかどうかを確認し、成立しなければ参加手順を終了する(ステップ1253)。
USR-JOIN-2-4: 成立すれば、メンバー公開鍵upkを(A_U, y_U, z_U)に、メンバー秘密鍵uskを(x_U, z_U)にセットし、upk、uskをユーザ記憶部220に書き込み(ステップ1254)、参加手順を終了する。
[Linear暗号方式鍵生成手順]
発行者装置制御部110によるLinear暗号方式鍵生成手順を説明する。図21はLinear暗号方式鍵生成手順を示すフローチャートである。図21に示すように、発行者装置100は次のLIN-GEN-1,…, LIN-GEN-3を順に行う。
LIN-GEN-1: 入力G_1を読み込む(ステップ1261)。
LIN-GEN-2: (Z/pZ)の元α、α’をランダムに選び、L = (1/α)G_1, L’ = (1/α’)G_1とする(ステップ1262)。
LIN-GEN-3: Liniar暗号方式公開鍵lpkを(L, L’)にセットし、Liniar暗号方式秘密鍵lskを(α, α’)にセットする(ステップ1263)。
[Linear暗号化手順]
発行者装置制御部110によるLinear暗号化手順を説明する。図22はLinear暗号化手順を示すフローチャートである。図22に示すように、発行者装置100は次のLIN-ENC-1,LIN-ENC-2を順に行う。
LIN-ENC-1: 入力(G_1, lpk, H’)を受け取り、lpk = (L, L’)とパースする(ステップ1271)。
LIN-ENC-2: (Z/pZ)の元γ, γ’をランダムに選び、 (G_{Cipher, H’}, L_{Cipher, H’}, L’_{Cipher, H’}) = (H’+ (γ+ γ’)G, γL, γ’L’)とし、Cipher_{H’} = (G_{Cipher, H’}, L_{Cipher, H’}, L’_{Cipher, H’})とする(ステップ1272)。
[Linear暗号文線形和再暗号化手順]
ユーザ装置制御部210によるLinear暗号文線形和再暗号化手順を説明する。図23はLinear暗号文線形和再暗号化手順を示すフローチャートである。図23に示すように、ユーザ装置200は次のLIN-SUM-1,LIN-SUM-2を順に行う。
LIN-SUM-1: 入力(G_1, x_U, z’_U, Cipher_{H’}, Cipher_{K’})を受け取り、lpk = (L, L’)とパースし、Cipher_{H’} = (G_{Cipher, H’}, L_{Cipher, H’}, L’_{Cipher, H’})とパースし、Cipher_{K’} = (G_{Cipher, K’}, L_{Cipher, K’}, L’_{Cipher, K’})とパースする(ステップ1281)。
LIN-SUM-2: (Z/pZ)の元β、β’をランダムに選び、(G_{Cipher}, L_{Cipher},
L’_{Cipher}) = (x_UG_{Cipher, H’}+ z’_UG_{Cipher, K’}+ (β+ β’)G_1, x_UL_{Cipher, H’}+ z’_UL_{Cipher, K’}+βL, x_UL’_{Cipher, H’}+ z’_UL’_{Cipher, K’}+ β’L’)とし、Cipher = (G_{Cipher}, L_{Cipher}, L’_{Cipher})とする(ステップ1282)。
このようにして、平文を定数倍したものの和から暗号文を生成している。なお、実施形態1では、平文をべき乗剰余したものの積から暗号文を生成している。実施形態1の再暗号化手順を本実施形態に適用してもよく、実施形態1に本実施形態の再暗号化手順を適用してもよい。
[Linear暗号文復号手順]
発行者装置制御部110によるLinear暗号文復号手順を説明する。図24はLinear暗号文復号手順を示すフローチャートである。図24に示すように、発行者装置100は次のLIN-DEC-1,LIN-DEC-2を順に行う。
LIN-DEC-1: 入力(G_1, lpk, lsk, Cipher)を受け取り、lpk = (L, L’)とパース氏、lsk = (α, α’)とパースし、Cipher = (G_{Cipher}, L_{Cipher}, L’_{Cipher})とパースする(ステップ1291)。
LIN-DEC-2: G_1’’ = G_{Cipher}-αL_{Cipher}-α’L’_{Cipher}とする(ステップ1292)。
[(Ider_U, Cipher)の正当性証明手順 ID-CI-PF-GEN]
ユーザ装置制御部210による、(Ider_U, Cipher)の正当性証明手順を説明する。図25は(Ider_U, Cipher)正当性証明手順を示すフローチャートである。図25に示すように、ユーザ装置200は以下のID-CI-PF-GEN-1,…, ID-CI-PF-GEN-5を順に行う。
ID-CI-PF-GEN-1 : 入力(G, lpk, x_U, z’_U, β, β’, Cipher_{H’}, Cipher_{K’}, Ider_U, Cipher)を受け取り、lpkを(L, L’)とパースし、Cipher_{H’}を(G_{Cipher, H’}, L_{Cipher, H’}, L’_{Cipher, H’})とパースし、Cipher_{K’}を(G_{Cipher, K’}, L_{Cipher, K’}, L’_{Cipher, K’})とパースする(ステップ1301)。
ID-CI-PF-GEN-2 : (Z/pZ)の元x_{U, 0, 1}, z’_{U, 0, 1}, β_{U, 0, 1}, β’_{U, 0, 1}をランダムに選び、(G_{Cipher, 0, 1}, L_{Cipher, 0, 1}, L’_{Cipher, 0, 1}) = (x_{U, 0, 1}G_{Cipher, H’}+ z’_{U, 0, 1}G_{Cipher, K’}+ (β_{0, 1}+β’_{0, 1})G_1,
x_{U, 0, 1}L_{Cipher, H’}+ z’_{U, 0, 1}L_{Cipher, K’}+ β_{0, 1}L, x_{U, 0, 1}L’_{Cipher, H’}+ z’_{U, 0, 1}L’_{Cipher, K’}+ β’_{0, 1}L’)とし、Ider_{U, 0, 1} = x_{U, 0,
1}Gとする(ステップ1302)。
H_{Z/pZ}を、(Z/pZ)に値をとるハッシュ関数とする。
ID-CI-PF-GEN-3: c = H_{Z/pZ}(G, lpk, Cipher_{H’}, Cipher_{K’}, Ider_U, Cipher G_{Cipher, 0, 1}, L_{Cipher, 0, 1}, L’_{Cipher, 0, 1}, Ider_{U, 0, 1})とする(ステップ1303)。
ID-CI-PF-GEN-4: x_{U, 0, 2} = cx_U + x_{U, 0, 1} mod p、z’_{U, 0, 2} = cz’_U + z’_{U, 0, 2} mod p、β_{0, 2}=cβ + β_{0, 1} mod p、 β’_{0, 2} = cβ’ + β’_{0, 1} mod pとする(ステップ1304)。
ID-CI-PF-GEN-5: pf_{Ider_U, Cipher} = (G_{Cipher, 0, 1}, L_{Cipher, 0, 1}, L’_{Cipher, 0, 1}, Ider_{U, 0, 1}, x_{U, 0, 2},
z’_{U, 0, 2}, β_{0, 2}, β’_{0, 2})とする(ステップ1305)。
[(Ider_U,Cipher)の正当性証明検証手順 ID-CI-PF-VER]
発行者装置制御部110による、(Ider_U,Cipher)の正当性証明検証手順を説明する。図26は(Ider_U,Cipher)正当性証明検証手順を示すフローチャートである。図26に示すように、発行者装置100は以下のID-CI-PF-VER-1,…, ID-CI-PF-VER-3を順に行う。ID-CI-PF-VER-1: 入力(G, lpk, Cipher_{H’}, Cipher_{K’}, Ider_U, Cipher, pf_{Ider_U, Cipher})を受け取り、lpk = (L, L’)とパースし、Cipher
= (G_{Cipher}, L_{Cipher}, L’_{Cipher})とパースし、Cipher_{H’} = (G_{Cipher, H’}, L_{Cipher, H’}, L’_{Cipher, H’})とパースし、Cipher_{K’} = (G_{Cipher, K’}, L_{Cipher, K’}, L’_{Cipher, K’})とパースし、pf_{Ider_U, Cipher } = (G_{Cipher, 0, 1},
L_{Cipher, 0, 1}, L’_{Cipher, 0, 1}, Ider_{U, 0, 1}, x_{U, 0, 2}, z’_{U, 0, 2}, β_{0, 2}, β’_{0, 2}) とパースする(ステップ1311)。
ID-CI-PF-VER-2: c = H_{Z/pZ}(G, lpk, Cipher_{H’}, Cipher_{K’}, Ider_U, Cipher G_{Cipher, 0, 1}, L_{Cipher, 0, 1}, L’_{Cipher, 0, 1}, Ider_{U, 0, 1}) とする(ステップ1312)。
ID-CI-PF-VER-3: (cG_{Cipher}+ G_{Cipher, 0, 1}, cL_{Cipher}+ L_{Cipher, 0, 1}, cL’_{Cipher}+ L’_{Cipher, 0, 1}) = (x_{U, 0, 2}G_{Cipher, H’}+ z’_{U, 0, 2}G_{Cipher, K’}+ (β_{0, 2}+β’_{0, 2})G_1, x_{U, 0, 2}L_{Cipher, H’}+z’_{U, 0, 2}L_{Cipher, K’}+ β_{0, 2}L, x_{U, 0, 2}L’_{Cipher, H’}+z’_{U, 0, 2}L’_{Cipher, K’}+β’_{0, 2}L’) であり、しかもc・Ider_{U, 0, 1}+ Ider_{U, 0, 2} = x_{U, 0, 2}G であればacceptを出力し、そうでなければrejectを出力する(ステップ1313)。
本実施形態の鍵発行方法およびグループ署名システムにおいても、実施形態1と同様の効果が得られる。
(実施形態3)
[装置構成]
本実施形態のグループ署名システムについて説明する。装置構成については、実施形態1で説明した装置と同様であるため、ここではその詳細な説明を省略する。以下では、実施形態1と異なる処理について詳細に説明する。
各装置の記憶部にはセキュリティ・パラメータl_n、l_E、l_Q、l_c、l_e、l_sが事前に入力されているものとする。どのような方法でl_n、l_E、l_Q、l_c、l_e、l_sが入力されるのかは問わない。
Γを位数Qの巡回群で、Qのビット数がl_Qビットであるものとする。として例えば、(Z/PZ)の乗法群や、楕円曲線群を用いる事ができる。ここではΓが(Z/PZ)の乗法群である場合を例にとって説明する。
各装置の記憶部にはΓを記述するパラメータと、Qとが事前に入力されているものとする。どのような方法でΓを記述するパラメータと、Qとが入力されるのかは問わない。
次に、本実施形態のグループ署名システムによる鍵発行方法について説明する。
[発行者鍵生成手順ISS-GEN]
発行鍵生成手段112による発行者鍵生成手順ISS-GENを説明する。図27は発行者鍵生成手順を示すフローチャートである。図27に示すように、発行者装置100は以下のISS-GEN1,…,ISS-GEN5を順に行う。
ISS-GEN1: セキュリティ・パラメータl_nを発行者記憶部120から読み込む(ステップ1401)。
ISS-GEN2: 素数p,qで、その積n=pqがl_nビットであるものを選ぶ(ステップ1402)。
ISS-GEN3: QR(n)の元a, g、およびn以下の非負整数αをランダムに選び、h = g^α mod nを計算する(ステップ1403)。
ISS-GEN4: (α, g, h)を入力し、実施形態1で説明した[pf_αの生成手順]を行い、αの知識の証明文pf_αを作成する(ステップ1404)。
ISS-GEN5: 発行者公開鍵ipkを(n, a, g, h, pf_α)に、発行者秘密鍵をiskを(p, q, α)にセットし、ipk、iskを発行者記憶部120に書き込み、発行者鍵生成手順ISS-GENを終了する(ステップ1405)。
発行者公開鍵ipkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にipkを載せるという方法が考えられるが、どのような方法でipkを公開してもよい。ユーザ装置200のユーザ装置制御部210は、公開された発行者公開鍵ipkをユーザ記憶部220に格納する。
[開示者鍵生成手順OPN-GEN]
開示者鍵生成手段412による開示者鍵生成手順OPN-GENを説明する。図28は開示者鍵生成手順を示すフローチャートである。図28に示すように、開示者装置400は以下のOPN-GEN1、OPN-GEN2、OPN-GEN3を順に行う。
OPN-GEN1: Qを開示者記憶部420から読み込む(ステップ1411)。
OPN-GEN2: (Z/qZ)の元X_G、X_H、Γの元Fをランダムに選び、G = F^{X_G}、H =
F^{X_H}とする(ステップ1412)。
OPN-GEN3: 開示者公開鍵opkを(F, G, H)に、開示者秘密鍵oskを(X_G, X_H)にセットし、opk、oskを開示者記憶部420に書き込み(ステップ1413)、開示者鍵生成手順OPN-GENを終了する。
開示者公開鍵opkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にopkを載せるという方法が考えられるが、どのような方法でopkを公開してもよい。ユーザ装置200のユーザ装置制御部210は、公開された開示者公開鍵opkをユーザ記憶部220に格納する。また、発行者装置100の発行者装置制御部110は、公開された開示者公開鍵opkを発行者記憶部120に格納する。
[発行手順 ISS-ISSUEと参加手順USR-JOIN]
発行者装置100とユーザ装置200は相互通信を行いながら、それぞれ発行手順 ISS-ISSUEと参加手順USR-JOINとを行う。
まず、ユーザ装置200が後述の[参加手順1 USR-JOIN-1]を行い、続いて、発行者装置100が後述の[発行手順1 ISS-ISSUE-1]を行う。さらに、ユーザ装置200が後述の[参加手順2 USR-JOIN-2]を行う。
上述の手順の途中で、メンバー公開鍵upkとメンバー秘密鍵uskが生成される。
メンバー公開鍵upkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にupkを載せるという方法が考えられるが、どのような方法でupkを公開してもよい。
[署名手順 USR-SIGN]
署名生成手段214は、メッセージmを入力として受け取ったら、upk=(x, e, y)とパースし、(Z/NZ)の元βをランダムに選び、(F’, G’, H’)=(F^β, F^xG^β, F^xH^β)を計算し、(G’, H’)の正当性証明文pf_{(G’, H’)}を計算する。
[検証手順 VER-VERIFY]
検証手段314は、pf_{(G’, H’)}の正当性を検証する。
[開示手順 OPN-OPEN]
開示手段414は、G’/F’^{X_G}を計算し、メンバー公開鍵upk = (x, e, y)がG’/F’^{X_G} = G^xを満たすユーザのIDを出力する。
[参加手順1 USR-JOIN-1]
参加手段212による参加手順1 USR-JOIN-1を説明する。図29は参加手順1を示すフローチャートである。図29に示すように、ユーザ装置200は次のUSR-JOIN-1-1,…,
USR-JOIN-1-3を順に行う。
USR-JOIN-1-1: ipk = (n, a, g, h, pf_α)、opk = (F, G, H)をユーザ記憶部220から読み込む(ステップ1421)。
USR-JOIN-1-2: 素数X_1, X_2で、その積x = X_1X_2がl_nビットであるものを選ぶ(ステップ1422)。
USR-JOIN-1-3: xを発行者装置100に送信する(ステップ1423)。
[発行手順1 ISS-ISSUE-1]
発行手段212による発行手順1 ISS-ISSUE-1を説明する。図30は発行手順1を示すフローチャートである。図30に示すように、発行者装置100は次のISS-ISSUE-1-1,…, ISS-ISSUE-1-5を順に行う。
ISS-ISSUE-1-1: ipk = (n, a, g, h, pf_α)、opk = (F, G, H)、isk = (p, q, α)を発行者記憶部120から読み込む(ステップ1431)。
ISS-ISSUE-1-2: xがl_nビット未満であるかどうかを調べ、もしそうでないなら発行手順ISS-ISSUEを終了する(ステップ1432)。
ISS-ISSUE-1-3: l_eビットの非負整数eで、E = 2^{l_E} + eが素数となるものとをランダムに選び、y = (ag^x)^{1/E} mod nを計算する(ステップ1433)。つまり、(ag^x)^{1/E}に対してRSAモジュラスnを法として剰余した値を求める。
ISS-ISSUE-1-4: xをユーザのIDと組にして開示者装置400に送る(ステップ1434)。
ISS-ISSUE-1-5: (E, y)をユーザ装置200に送信する(ステップ1435)。
[参加手順2 USR-JOIN-2]
参加手段212による参加手順2 USR-JOIN-2を説明する。図31は参加手順2を示すフローチャートである。図31に示すように、ユーザ装置200は次のUSR-JOIN-2-1, USR-JOIN-2-2を順に行う。
USR-JOIN-2-1: ag^x = y^Eが成立するかどうかを確認し、成立しなければ参加手順を終了する(ステップ1441)。つまり、2つの素数の積であるRSAモジュラスを法として等しいか否かを判定する。
USR-JOIN-2-2: 成立すれば、メンバー公開鍵upkを(Y, y, E)に、メンバー秘密鍵uskを(x, r)にセットし、upk、uskをユーザ記憶部220に書き込み(ステップ1442)、参加手順を終了する。
本実施形態の鍵発行方法およびグループ署名システムにおいても、複数のユーザ装置と発行者装置との間でジョイン・プロトコルによるデータの送受信をコンカレントに行っても情報秘匿の安全性が向上する。また、実施形態1および実施形態2と比べて、発行者装置による発行手順2が省略可能であるため、工程が簡略化できる。
(実施形態4)
本実施形態のグループ署名システムについて説明する。装置構成については、実施形態1で説明した装置と同様であるため、ここではその詳細な説明を省略する。以下に、本実施形態のグループ署名システムによる鍵発行方法について説明する。本実施形態では、発行者装置によるデータの秘匿化処理の仕方を実施形態1から3とは異なる方法を用いている。
実施形態1と同様にして、[発行者鍵生成手順ISS-GEN]および[開示者鍵生成手順OPN-GE
N]の処理を行う。
[発行手順ISS-ISSUEと参加手順USR-JOIN]
発行者装置100とユーザ装置200は相互通信を行いながら、それぞれ発行手順ISS-ISSUEと参加手順USR-JOINとを行う。まず、発行者装置100が後述の[発行手順1 ISS-ISSUE-1]を行い、続いて、ユーザ装置200が後述の[参加手順1 USR-JOIN-1]を行う。さらに、発行者装置100が後述の[発行手順2 ISS-ISSUE-2]を行い、最後にユーザ装置200が後述の[参加手順2 USR-JOIN-2]を行う。
上述の手順の途中で、メンバー公開鍵upkとメンバー秘密鍵uskが生成される。
メンバー公開鍵upkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にupkを載せるという方法が考えられるが、どのような方法でupkを公開してもよい。
そして、実施形態1と同様にして、[署名手順 USR-SIGN]、[検証手順 VER-VERIFY]および[開示手順 OPN-OPEN]の処理を行う。
[発行手順1 ISS-ISSUE-1]
発行手段114による発行手順1 ISS-ISSUE-1を説明する。図32は発行手順1を示すフローチャートである。図32に示すように、発行者装置100は以下のISS-ISSUE-1-1,…, ISS-ISSUE-1-4を順に行う。
ISS-ISSUE-1-1: ipk = (n, a, g, h, pf_α)、opk = (F, G, H)、isk = (p, q, α)を発行者記憶部120から読み込む(ステップ1451)。
ISS-ISSUE-1-2: l_eビットの非負整数eで、E = 2^{l_E}+eが素数となるものをランダムに選ぶ。さらに、l_n+l_sビットの非負整数ρをランダムに選び、g’ = g^{ρ/E} mod n、h’ = h^{ρ/E} mod nを計算する(ステップ1452)。
ISS-ISSUE-1-3: (g’, h’)をユーザ装置200に送信する(ステップ1453)。
[参加手順1 USR-JOIN-1]
参加手段212による参加手順1 USR-JOIN-1を説明する。図33は参加手順1の手順を示すフローチャートである。図33に示すように、ユーザ装置200は以下のUSR-JOIN-1-1,…, USR-JOIN-1-7を順に行う。
USR-JOIN-1-1: (g’, h’)を受信する(ステップ1461)。
USR-JOIN-1-2: ipk = (n, a, g, h, pf_α)、opk = (F, G, H)をユーザ記憶部220から読み込む(ステップ1462)。
USR-JOIN-1-3: (ipk, pf_α)を入力して後述する[pf_αの検証手順]を行う。[pf_αの検証手順]がrejectを出力したら参加手順を終了する(ステップ1463)。
USR-JOIN-1-4: (Z/QZ)の元x、(Z/nZ)の元r’をランダムに選び、Y = G^{x}を計算する(ステップ1464)。
USR-JOIN-1-5: C = g’^{x}h’^{r’} mod nを計算する(ステップ1465)。
USR-JOIN-1-6: (n, g, h, x, r’, g’, h’, Y, C)を入力して後述する[(Y, C)の正当性証明手順]を行い、pf_{Y, C}を作る(ステップ1466)。
USR-JOIN-1-7: (Y, C, pf_{Y, C})を発行者装置100に送信する(ステップ1467)。
[発行手順2 ISS-ISSUE-2]
発行手段114による発行手順2 ISS-ISSUE-2を説明する。図34は発行手順2を示すフローチャートである。図34に示すように、発行者装置100は以下のISS-ISSUE-2-1,…, ISS-ISSUE-2-5を順に行う。
ISS-ISSUE-2-1: (Y, C, pf_{Y, C})を受信する(ステップ1471)。
ISS-ISSUE-2-2: (n, g, h, g’, h’, Y, C, pf_{Y, C})を入力して後述する[(Y, C)の正当性証明検証手順]を行う。もし[(Y, C)の正当性証明検証手順]がrejectを出力したら参加手順を終了する(ステップ1472)。
ISS-ISSUE-2-3: g’’ = g’^{1/ρ}を計算し、(Z/EZ)の元r’’をランダムに選び、y = a^{1/E}g’’h^{r’’} mod nを計算する(ステップ1473)。
ISS-ISSUE-2-4: YをユーザのIDと組にして開示者装置400に送る(ステップ1474)。
ISS-ISSUE-2-5: (y, r’’)をユーザ装置200に送って(ステップ1475)、発行手順を終了する。
また、実施形態1と同様にして、[参加手順2 USR-JOIN-2]、[pf_αの生成手順]および[pf_αの検証手順]の処理を行う。
[(Y, C)の正当性証明手順]
ユーザ装置制御部210による、(Y,C)の正当性証明手順を説明する。図35は(Y,C)のフローチャートである。図35に示すように、ユーザ装置200は以下のPF-YC-GEN-1,…, PF-YC-GEN-5を順に行う。
PF-YC-GEN-1: (n, g, h, x, r’, g’, h’, Y, C)を受け取る(ステップ1481)。
PF-YC-GEN-2: l_q+l_sビットの自然数x_{0,1}とl_n+l_sビットの自然数r’_{0,1}をランダムに選び、Y_{0,1} = G^{x_{0,1}}、C_{0,1} = g’^{x_{0,1}}h’^{r’_{0,1}}を計算する(ステップ1482)。
PF-YC-GEN-3: c = H_{l_c}(n, g, h, g’, h’, Y, C, Y_{0,1}, C_{0,1})を計算する(ステップ1483)。
PF-YC-GEN-4: x_{0,2} = cx+x_{0,1}、r’_{0,2} = cr’+r’_{0,1}を計算する(ステップ1484)。
PF-YC-GEN-5: pf_{Y,C} = (c, x_{0,2}, r’_{0,2})とする(ステップ1485)。
[(Y, C)の正当性証明検証手順]
発行者装置制御部110による、(Y,C)の正当性証明検証手順を説明する。図36は(Y,C)正当性証明検証手順を示すフローチャートである。図36に示すように、発行者装置100は以下のPF-YC-VER-1,…, PF-YC-VER-3を順に行う。
PF-YC-VER-1: (n, g, h, g’, h’, Y, C, pf_{Y, C})を受け取り、pf_{Y, C} = (c,x_{0,2},r’_{0,2})とパースする(ステップ1491)。
PF-YC-VER-2: Y’_{0,1} = Y^{-c} G^{x_{0,2}}とC’_{0,1} = C^{-c} g’^{x_{0,2}}h’^{r’_{0,2}}を計算する(ステップ1492)。
PF-YC-VER-3: c = H_{l_c}(n, g, h, g’, h’, Y, C, Y’_{0,1}, C’_{0,1})が成立すればacceptし、そうでなければrejectする(ステップ1493)。
本実施形態の追加メンバーへの鍵発行方法およびグループ署名システムでは、発行者装置が発行者装置の秘密鍵を使って先に第1の秘匿データを作成し、次にユーザ装置がその第1の秘匿データを加工して別の第2の秘匿データを作り、そしてユーザ装置がその加工されたデータの正当性を発行者装置に証明している。このようにして、従来のグループ署名システムとは異なり、ユーザ装置がデータの正当性を証明する前に発行者装置が発行者装置の秘密鍵を使ってデータを加工するので、複数のユーザ装置と発行装置とのジョイン・プロトコルによるデータの送受信をコンカレントに行った場合にも情報の安全性が向上する。
また、本実施形態における情報秘匿化処理は、データの暗号化処理および復号化処理などを必要としないため、実施形態1に比べて情報処理速度が速くなる。
(実施形態5)
本実施形態のグループ署名システムについて説明する。装置構成については、実施形態1で説明した装置と同様であるため、ここではその詳細な説明を省略する。以下では、実施形態1と異なる構成について説明する。
各装置の記憶部にはセキュリティ・パラメータkが事前に入力されているものとする。どのような方法でkが入力されるのかは問わない。
Γ_1, Γ_2, Γ_Tを位数pの巡回群で、Γ_1×Γ_2からΓ_Tへの双線形写像eが定義されていて、しかもpのビット数がkであるものとする。さらにΓを位数pの巡回群とする。
各装置の記憶部にはΓ_1, Γ_2, Γ_Tを記述するパラメータと、pとが事前に入力されているものとする。どのような方法でΓ_1, Γ_2, Γ_Tを記述するパラメータと、pとが入力されるのかは問わない。
次に、本実施形態のグループ署名システムによる鍵発行方法について説明する。本実施形態の鍵発行方法は、発行者装置による情報秘匿化処理が実施形態2と異なる他は、実施形態2で説明した方法と同様であるため、以下では、実施形態2と異なる処理について詳細に説明する。
[発行者鍵生成手順 ISS-GEN]
発行者鍵生成手段112による発行者鍵生成手順ISS-GENを説明する。図37は発行者鍵生成手順を示すフローチャートである。図37に示すように、発行者装置100は以下のISS-GEN-1とISS-GEN-2を順に行う。
ISS-GEN-1: Γ_1の元G_1, H, K, Γ_2の元G_2、および(Z/pZ)の元wをランダムに選び 、Y = wG_2とする(ステップ1501)。
ISS-GEN-2: 発行者公開鍵ipkを(G_1, G_2, H, K, Y)にセットし、発行者秘密鍵iskをwにセットし、ipkとiskを発行者記憶部120に記憶する(ステップ1502)。
また、開示者装置400は、実施形態2と同様にして[開示者鍵生成手順 OPN-GEN]の処理を行う。
[発行手順 ISS-ISSUE と 参加手順USR-JOIN]
発行者装置100とユーザ装置200は相互通信を行いながら、それぞれ発行手順 ISS-ISSUEと参加手順USR-JOINとを行う。
まず、発行者装置100が後述の[発行手順1 ISS-ISSUE-1]を行い、続いて、ユーザ装置200が後述の[参加手順1 USR-JOIN-1]を行う。さらに、発行者装置100が後述の[発行手順2 ISS-ISSUE-2]を行い、最後にユーザ装置200が後述の[参加手順2 USR-JOIN-2]を行う。
上述の手順の途中で、メンバー公開鍵upkとメンバー秘密鍵uskが生成される。
メンバー公開鍵upkは何らかの方法で全ての装置に公開される。例えば、ネット上の公開掲示板にupkを載せるという方法が考えられるが、どのような方法でupkを公開してもよい。
そして、実施形態2と同様にして、[署名手順 USR-SIGN]、[検証手順 VER-VERIFY]および[開示手順 OPN-OPEN]の処理を行う。
[発行手順1 ISS-ISSUE-1]
発行手段114による発行手順1 ISS-ISSUE-1を説明する。図38は発行手順1を示すフローチャートである。図38に示すように、発行者装置100は以下のISS-ISSUE-1-1,ISS-ISSUE-1-2を順に行う。
ISS-ISSUE-1-1: ipk = (G_1, G_2, H, K, Y)、opk = (G, S, T)、isk = (w, lsk)を発行者記憶部120から読み込む(ステップ1511)。
ISS-ISSUE-1-2: (Z/pZ)の元y_Uとρとをランダムに選び、H’ = (ρ/(w+y_U)) H、K’ = (ρ/(w+y_U)) Kを計算し、H’とK’とをユーザ装置200に送信する(ステップ1512)。
[参加手順1 USR-JOIN-1]
参加手段212による参加手順1 USR-JOIN-1を説明する。図39は参加手順1を示すフローチャートである。図39に示すように、ユーザ装置200は以下のUSR-JOIN-1-1,…, USR-JOIN-1-6を順に行う。
USR-JOIN-1-1: (H’,K’)を受信する(ステップ1521)。
USR-JOIN-1-2: ipk = (G_1, G_2, H, K, Y)、opk = (G, S, T)をユーザ記憶部220から読み込む(ステップ1522)。
USR-JOIN-1-3: (Z/pZ)の元x_U、z’_Uをランダムに選び、Ider_U = x_U G、を計算する(ステップ1523)。
USR-JOIN-1-4: C = H’^{x_U}K’^{z’_U}を計算する(ステップ1524)。USR-JOIN-1-5: (G,H’,K’, x_U, z'_U, Ider_U, C)を入力して後述する[(Ider_U, C)の正当性証明手順]を行い、pf_{Ider_U, C}を作る(ステップ1525)。USR-JOIN-1-6: (Ider_U, Cipher, pf_{Ider_U, C})を発行者装置100に送信する(ステップ1526)。
[発行手順2 ISS-ISSUE-2]
発行手段114による発行手順2 ISS-ISSUE-2を説明する。図40は発行手順2を示すフローチャートである。図40に示すように、発行者装置100は以下のISS-ISSUE-2-1,…, ISS-ISSUE-2-5を順に行う。
ISS-ISSUE-2-1: (Ider_U, Cipher, pf_{Ider_U, C})を受信する(ステップ1531)。
ISS-ISSUE-2-2: (G, H’,K’, Ider_U, C, pf_{Ider_U, C})を入力して後述する[(Ider_U, C)の正当性証明検証手順]を行う。もし[(Ider_U, C)の正当性証明検証手順]がrejectを出力したら参加手順を終了する(ステップ1532)。
ISS-ISSUE-2-3: G_1’’ = C^{1/ρ}を計算し、(Z/eZ)の元z’’_Uをランダムに選び、A_U = (1/(w+y_U)) G_1- G_1’’- z’’_UKを計算する(ステップ1533)。なお、G_1’’は実施形態4ではg''に相当し、秘匿化が解除されたデータである。
ISS-ISSUE-2-4: Ider_UをユーザのIDと組にして開示者装置400に送る(ステップ1534)。
ISS-ISSUE-2-5: (A_U, z’’_U)をユーザ装置200に送って(ステップ1535)、発行手順を終了する。
実施形態2と同様にして、[参加手順2 USR-JOIN-2]の処理を行う。
[(Ider_U, C)の正当性証明手順]
参加手段212による[(Ider_U,C)の正当性証明手順]を説明する。図41は[(Ider_U,C)の正当性証明手順]を示すフローチャートである。図41に示すように、ユーザ装置200は以下のUSR-PF-1,…, USR-PF-5を順に行う。
USR-PF-1: (G, H’, K’, x_U, z’_U, Ider_U, C)を受け取る(ステップ1541)。
USR-PF-2: (Z/qZ)の元x_{U,0,1}, z’_{U,0,1}をランダムに選び、C_{0,1} = H’^{x_{U,0,1}}K’^{z’_{U,0,1}}を計算する(ステップ1542)。
USR-PF-3: c = H_{Z/qZ} (G, H’, K’, x_U, z’_U, Ider_U, C, C_{0,1})を計算する(ステップ1543)。
USR-PF-4: x_{U,0,2} = cx_U+x_{U,0,2}、z_{U,0,2} = cz_U+z_{U,0,2}を計算する(ステップ1544)。
USR-PF-5: pf_{Ider_U,C} = (c,x_{U,0,2}, z_{U,0,2})とする(ステップ1545)。
[(Ider_U,C)の正当性証明検証手順]
発行手段114による[(Ider_U, C)の正当性証明検証手順]を説明する。図42は[(Ider_U, C)の正当性証明検証手順]を示すフローチャートである。図42に示すように、発行者装置100は以下のUSR-VER-1,…, USR-VER-4を順に行う。
USR-VER-1: (G, H’, K’, Ider_U, C, pf_{Ider_U,C})を受け取る(ステップ1551)。
USR-VER-2: pf_{Ider_U,C} = (c,x_{U,0,2},z_{U,0,2})とパースする(ステップ1552)。
USR-VER-3: C’_{0,1} = H’^{x_{U,0,2}}K’^{z’_{U,0,2}}C^{-c}を計算する(ステップ1553)。
USR-VER-4: c = H_{Z/qZ}(G, H’, K’, x_U, z’_U, Ider_U, C, C’_{0,1})が成立すればacceptを、そうでなければrejectを出力する(ステップ1554)。
本実施形態の鍵発行方法およびグループ署名システムにおいても、データの暗号化処理および復号化処理などを必要としないため、実施形態2に比べて情報処理速度が速くなる。
なお、上記実施形態の鍵発行方法をコンピュータに実行させるためのプログラムに適用してもよい。また、このプログラムをコンピュータが読み取り可能な記録媒体に記録してもよい。
また、本発明は上記実施例に限定されることなく、発明の範囲内で種々の変形が可能であり、それらも本発明の範囲内に含まれることはいうまでもない。

Claims (25)

  1. ユーザ装置、および該ユーザ装置とネットワークを介して接続される発行者装置を有するグループ署名システムにおける該ユーザ装置による鍵発行方法であって、
    前記ネットワークを介して前記発行者装置から発行者公開鍵をユーザ記憶部に読み込み、
    前記発行者装置において前記発行者公開鍵を群の元の情報を含む元データ用いて秘匿化処理された秘匿文を1または複数含む第1の秘匿データを前記発行者装置から前記ネットワークを介して受信し、
    前記発行者公開鍵および前記第1の秘匿データを用いて該第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または該元データを定数倍したものの和を秘匿文とする第2の秘匿データを生成する第2の秘匿データ生成処理を行い、
    前記第2の秘匿データを前記発行者装置に前記ネットワークを介して送信し、
    前記発行者装置において生成され、前記第2の秘匿データに対応する元データに基づいた情報を前記発行者装置から前記ネットワークを介して受信し、
    前記第2の秘匿データの元データに基づいた情報を用いて、自装置に対応する公開鍵であるメンバー公開鍵、および自装置に対応する秘密鍵であるメンバー秘密鍵を生成して前記ユーザ記憶部に書き込む、鍵発行方法。
  2. 請求項1記載の鍵発行方法において、
    前記第2の秘匿データ生成処理の前記べき乗剰余における冪または定数倍における定数のうち一部は秘密のデータであり、
    前記秘密のデータから前記メンバー秘密鍵を生成する秘密鍵計算処理を行い、
    前記第2の秘匿データの元データに基づいた情報から前記メンバー公開鍵を生成する公開鍵計算処理を行う、鍵発行方法。
  3. 請求項2記載の鍵発行方法において、
    前記ユーザ装置が前記発行者装置から受信する、前記第2の秘匿データの元データに基づいた情報には2つのデータを含み、
    前記公開鍵計算処理では、前記2つのデータから所定の計算により求まる第1の算出データと所定の複数のデータの積である第2の算出データとが一致するか否かを判定し、判定の結果、これらの算出データが一致すると前記メンバー公開鍵を生成し、
    前記所定の複数のデータは前記発行者公開鍵の一部を底とした所定のデータのべき乗剰余であり、該所定のデータは前記秘密のデータを含むものである、鍵発行方法。
  4. 請求項3記載の鍵発行方法において、
    前記第1の算出データは、前記第2の秘匿データの元データに基づいた情報に含まれる2つのデータのうち一方のデータyを底とし、該2つのデータのうち他方のデータに一致するデータEを冪とするべき乗剰余であり、
    前記ユーザ装置が前記発行者装置から受信する第1の秘匿データは、前記公開鍵計算処理で用いられた前記発行者公開鍵の一部を1/E乗した後、秘匿化処理されたものである、鍵発行方法。
  5. 請求項4記載の鍵発行方法において、
    前記ユーザ装置が前記発行者装置から受信する前記第1の秘匿データは少なくとも2つの秘匿文g’およびh’を含み、
    前記第2の秘匿データ生成処理では、まず秘密のデータxおよびr’を選択し、次に、前記秘匿文C_{g’}に対応する元データに対して前記秘密のデータxでべき乗し、前記C_{h’}に対応する元データに対して前記秘密のデータr’でべき乗した秘匿文Cを算出し、
    前記ユーザ装置が前記発行者装置に送信する前記第2の秘匿データは、前記秘匿文Cを含み、
    前記ユーザ装置が前記発行者装置から受信する、前記第2の秘匿データの元データに基づいた情報に含まれる2つのデータのうち他方のデータは巡回群の元r’’であり、
    前記秘密鍵計算処理では、前記データr’とr’’との和からrを算出し、組(x, r)を含むものをメンバー秘密鍵とし、
    前記公開鍵計算処理において、前記第2の算出データに含まれる所定の複数のデータは、前記発行者公開鍵に含まれる第1のデータを前記xでべき乗したデータと、該発行者公開鍵に含まれ、該第1のデータと異なる第2のデータを前記rでべき乗したデータとを含むものである、鍵発行方法。
  6. 請求項2記載の鍵発行方法において、
    前記ユーザ装置が前記発行者装置から受信する、前記第2の秘匿データの元データに基づいた情報は2つのデータを含み、
    前記公開鍵計算処理では、前記2つのデータから所定の計算により求まる第1の算出データと所定の複数のペアリングの積である第2の算出データとが一致するか否かを判定し、判定の結果、これらの算出データが一致すると前記メンバー公開鍵を生成し、
    前記所定の複数のペアリングには、所定の複数のデータの和を前記発行者公開鍵の一部とペアリングしたものを含み、
    前記所定の複数のデータには前記発行者公開鍵の一部を底として所定のデータで定数倍したものを含み、該所定のデータは前記秘密のデータを含むものである、鍵発行方法。
  7. 請求項6記載の鍵発行方法において、
    前記第1の算出データは所定の2つのデータのペアリングであり、
    前記第2の算出データに含まれる前記複数のペアリングのうち所定のペアリングに入力されるデータである第1のペアリングデータは前記第2の秘匿データの元データに基づいた情報に含まれる2つのデータのうち一方のデータA_Uであり、
    前記所定のペアリングに入力されるデータで、前記第1のペアリングデータと異なる第2のペアリングデータは、前記発行者公開鍵の一部に巡回群の元wを乗じたものと該発行者公開鍵のうち該一部のデータと異なるデータから計算されるデータとの和であり、
    前記wは前記第2の秘匿データの元データに基づいた情報に含まれる2つのデータのうち他方に一致し、
    前記ユーザ装置が前記発行者装置から受信する前記第1の秘匿データが所定の元データを秘匿化したものであり、
    前記所定の元データが前記発行者公開鍵の一部に所定の数値を乗算したものであり、
    前記所定の数値は前記wと前記発行者装置の秘密のデータとの和の逆数である、鍵発行方法。
  8. 請求項7記載の鍵発行方法において、
    前記ユーザ装置が前記発行者装置から受信する前記第1の秘匿データは少なくとも2つの秘匿文H’およびK’を含み、
    前記第2の秘匿データ生成処理では、まず秘密のデータx_Uおよびz’_Uを選択し、次に、前記H’に対応する元データには前記x_Uを乗じ、前記K’に対応する元データに前記z’_Uを乗じた秘匿文Cipherを計算し、
    前記ユーザ装置が前記発行者装置に送信する前記第2の秘匿データは前記秘匿文Cipherを含み、
    前記ユーザ装置が前記発行者装置から受信する、前記第2の秘匿データの元データに基づいた情報に含まれる2つのデータのうち他方のデータは巡回群の元z’’_Uであり、
    前記秘密鍵計算処理では、前記z’_Uと前記z’’_Uとの和からz_Uを算出し、組(x_U, z_U)を含むものをメンバー秘密鍵とし、
    前記公開鍵計算処理では、前記A_Uおよび前記z_Uを含むデータを公開鍵とし、
    前記第2の算出データに含まれる前記複数のペアリングには前記x_Uをデータとして含むペアリングと前記z_Uをデータとして含むペアリングとを有する、鍵発行方法。
  9. 前記第1の秘匿データに含まれる前記秘匿文は、前記発行者装置において、前記群の元の情報が入力されると、乱数ρが選択され、該元をρ乗して生成され、
    前記第2の秘匿データに対応する元データは、前記発行者装置において、該第2の秘匿データに含まれる秘匿文を前記乱数ρの逆元で乗じて生成される、請求項1から8のいずれか1項記載の鍵発行方法。
  10. ユーザ装置、および該ユーザ装置とネットワークを介して接続される発行者装置を有するグループ署名システムにおける該発行者装置による、追加メンバーへの鍵発行方法であって、
    発行者公開鍵および発行者秘密鍵を発行者記憶部から読み出し、
    前記発行者公開鍵の一部から計算されるデータを群の元の情報を含む元データを用いて秘匿化処理することにより1または複数の秘匿文を生成する秘匿文生成処理を行い、
    前記1または複数の秘匿文を含む第1の秘匿データを前記ネットワークを介して前記ユーザ装置に送信し、
    前記ユーザ装置において前記第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または該元データを定数倍したものの和を秘匿文とする第2の秘匿データを前記ユーザ装置から前記ネットワークを介して受信し、
    前記第2の秘匿データを元に戻したデータであるg’’を計算し、該g’’から送信用データを生成する送信用データ生成処理を行い、
    前記送信用データを前記ネットワークを介して前記ユーザ装置に送信する、鍵発行方法。
  11. 請求項10記載の鍵発行方法において、
    前記秘匿文生成処理では、所定の式を満たす素数のデータEを発行者記憶部から選択すると、前記発行者公開鍵の一部を1/E乗したものを秘匿化処理し、
    前記送信用データは前記Eを含む、鍵発行方法。
  12. 請求項11記載の鍵発行方法において、
    前記送信用データ生成処理では、巡回群の元r’’をランダムに選択すると、前記発行者公開鍵の一部をr’’でべき乗したものに前記g’’を掛け合せたものを含むデータを前記送信用データとする、鍵発行方法。
  13. 請求項10記載の鍵発行方法において、
    前記秘匿文生成処理では、巡回群の元yをランダムに選択すると、該yと前記発行者秘密鍵wとの和w+yを計算し、前記発行者公開鍵に含まれる複数のデータのうち第1のデータに1/(w+y)を乗じたものを秘匿化処理し、
    前記送信用データは前記yを含む、鍵発行方法。
  14. 請求項13記載の鍵発行方法において、
    前記送信用データ生成処理では、巡回群の元z’’_Uをランダムに選択すると、前記発行者公開鍵に含まれる複数のデータのうち前記第1のデータと異なる第2のデータにz’’_Uを乗じたものと前記g''との和を含む計算式から求まるデータを前記送信用データとする、鍵発行方法。
  15. 前記秘匿文生成処理では、前記群の元の情報が入力されると、乱数ρを選択し、該元をρ乗して前記秘匿文を生成し、
    前記送信用データ生成処理では、前記第2の秘匿データに含まれる秘匿文を前記乱数ρの逆元で乗じて前記g’’を生成する、請求項10から14のいずれか1項記載の鍵発行方法。
  16. 発行者公開鍵が格納された発行者記憶部、および該発行者公開鍵をネットワークを介して送出し、該発行者公開鍵を群の元の情報を含む元データを用いて秘匿化処理された1または複数の秘匿文を生成して該1または複数の秘匿文を含む第1の秘匿データをネットワークを介して外部に送出し、該第1の秘匿データが秘匿化処理された第2の秘匿データを受信すると、該第2の秘匿データの元データを生成し、該元データに基づいた情報を前記ネットワークを介して外部に送出する発行者装置制御部を有する発行者装置と、
    前記ネットワークを介して前記発行者公開鍵を格納するためのユーザ記憶部、および前記発行者装置から受信する前記発行者公開鍵を該ユーザ記憶部に格納し、前記第1の秘匿データを受信すると、該発行者公開鍵および該第1の秘匿データを用いて該第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または該元データを定数倍したものの和を秘匿文とする前記第2の秘匿データを生成して前記ネットワークを介して前記発行者装置に送信し、前記元データに基づいた情報を受信すると、自装置に対応する公開鍵であるメンバー公開鍵、および自装置に対応する秘密鍵であるメンバー秘密鍵を生成して該ユーザ記憶部に書き込むユーザ装置制御部を有するユーザ装置と、
    を含むグループ署名システム。
  17. 前記発行者装置は、前記群の元の情報が入力されると、乱数ρを選択し、該元をρ乗して前記秘匿文を生成し、
    前記第2の秘匿データを受信すると、該第2の秘匿データに含まれる秘匿文を前記乱数ρの逆元で乗じて該第2の秘匿データの元データを生成する、請求項16記載のグループ署名システム。
  18. 発行者公開鍵が格納された発行者装置とネットワークを介して接続される情報処理装置であって、
    前記発行者公開鍵を格納するための記憶部と、
    前記発行者装置から前記発行者公開鍵を受信すると前記記憶部に格納し、該発行者装置において該発行者公開鍵を群の元の情報を含む元データを用いて秘匿化処理された秘匿文を1または複数含む第1の秘匿データを該発行者装置から受信すると、該発行者公開鍵および該第1の秘匿データを用いて該第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または該元データを定数倍したものの和を秘匿文とする第2の秘匿データを生成して該発行者装置に送信し、該発行者装置において生成され、該第2の秘匿データの元データに基づいた情報を該発行者装置から受信すると、該第2の秘匿データの元データに基づいた情報を用いて、自装置に対応する公開鍵であるメンバー公開鍵、および自装置に対応する秘密鍵であるメンバー秘密鍵を生成して前記記憶部に書き込む制御部と、
    を有する情報処理装置。
  19. 前記第1の秘匿データに含まれる前記秘匿文は、前記発行者装置において、前記群の元の情報が入力されると、乱数ρが選択され、該元をρ乗して生成され、
    前記第2の秘匿データの元データは、前記発行者装置において、該第2の秘匿データに含まれる秘匿文を前記乱数ρの逆元で乗じて生成される請求項18記載の情報処理装置。
  20. グループに新規に追加されるユーザ側のユーザ装置とネットワークを介して接続される情報処理装置であって、
    発行者公開鍵が格納された記憶部と、
    前記発行者公開鍵の一部から計算されるデータを群の元の情報を含む元データを用いて秘匿化することにより1または複数の秘匿文に生成すると、該1または複数の秘匿文を含む第1の秘匿データを前記ユーザ装置に送信し、該ユーザ装置において該第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または該元データを定数倍したものの和を秘匿文とする第2の秘匿データを該ユーザ装置から受信すると、該第2の秘匿データを元に戻したデータであるg’’を計算し、該g’’から送信用データを生成して該ユーザ装置に送信する制御部と、
    を有する情報処理装置。
  21. 前記制御部は、前記群の元の情報が入力されると、乱数ρを選択し、該元をρ乗して前記秘匿文を生成し、
    前記第2の秘匿データを受信すると、該第2の秘匿データに含まれる秘匿文を前記乱数ρの逆元で乗じて該第2の秘匿データの元データを生成する、請求項20記載の情報処理装置。
  22. 発行者公開鍵が格納された発行者装置とネットワークを介して接続されるコンピュータに実行させるためのプログラムであって、
    前記ネットワークを介して前記発行者装置から発行者公開鍵をコンピュータの記憶部に読み込み、
    前記発行者装置において前記発行者公開鍵を群の元の情報を含む元データを用いて秘匿化処理された秘匿文を1または複数含む第1の秘匿データを前記発行者装置から前記ネットワークを介して受信し、
    前記発行者公開鍵および前記第1の秘匿データを用いて該第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または該元データを定数倍したものの和を秘匿文とする第2の秘匿データを生成し、
    前記第2の秘匿データを前記発行者装置に前記ネットワークを介して送信し、
    前記発行者装置において生成され、前記第2の秘匿データの元データに基づいた情報を前記発行者装置から前記ネットワークを介して受信し、
    前記第2の秘匿データの元データに基づいた情報を用いて、自装置に対応する公開鍵であるメンバー公開鍵、および自装置に対応する秘密鍵であるメンバー秘密鍵を生成して前記コンピュータの記憶部に書き込む処理を、前記コンピュータに実行させるためのプログラム。
  23. 前記第1の秘匿データに含まれる前記秘匿文は、前記発行者装置において、前記群の元の情報が入力されると、乱数ρが選択され、該元をρ乗して生成され、
    前記第2の秘匿データの元データは、前記発行者装置において、該第2の秘匿データに含まれる秘匿文を前記乱数ρの逆元で乗じて生成される請求項22記載のプログラム。
  24. グループに新規に追加されるユーザ側のユーザ装置とネットワークを介して接続されるコンピュータに実行させるためのプログラムであって、
    発行者公開鍵および発行者秘密鍵をコンピュータの記憶部から読み出し、
    前記発行者公開鍵の一部から計算されるデータを群の元の情報を含む元データを用いて秘匿化することにより1または複数の秘匿文に生成する秘匿文生成処理を行い、
    前記1または複数の秘匿文を含む第1の秘匿データを前記ネットワークを介して前記ユーザ装置に送信し、
    前記ユーザ装置において前記第1の秘匿データに含まれる秘匿文に対応する元データをべき乗剰余したものの積を秘匿文とする、または該元データを定数倍したものの和を秘匿文とする第2の秘匿データを前記ユーザ装置から前記ネットワークを介して受信し、
    前記第2の秘匿データを元に戻したデータであるg’’を計算し、該g’’から送信用データを生成する送信用データ生成処理を行い、
    前記送信用データを前記ネットワークを介して前記ユーザ装置に送信する処理を、前記コンピュータに実行させるためのプログラム。
  25. 前記秘匿文生成処理では、前記群の元の情報が入力されると、乱数ρを選択し、該元をρ乗して前記秘匿文を生成し、
    前記送信用データ生成処理では、前記第2の秘匿データに含まれる秘匿文を前記乱数ρの逆元で乗じて前記g’’を生成する、請求項24記載のプログラム。
JP2007526018A 2005-07-19 2006-07-18 鍵発行方法、グループ署名システム Expired - Fee Related JP5029358B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007526018A JP5029358B2 (ja) 2005-07-19 2006-07-18 鍵発行方法、グループ署名システム

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2005208979 2005-07-19
JP2005208979 2005-07-19
JP2005353809 2005-12-07
JP2005353809 2005-12-07
PCT/JP2006/314186 WO2007010903A1 (ja) 2005-07-19 2006-07-18 鍵発行方法、グループ署名システム
JP2007526018A JP5029358B2 (ja) 2005-07-19 2006-07-18 鍵発行方法、グループ署名システム

Publications (2)

Publication Number Publication Date
JPWO2007010903A1 JPWO2007010903A1 (ja) 2009-01-29
JP5029358B2 true JP5029358B2 (ja) 2012-09-19

Family

ID=37668781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007526018A Expired - Fee Related JP5029358B2 (ja) 2005-07-19 2006-07-18 鍵発行方法、グループ署名システム

Country Status (5)

Country Link
US (1) US7995762B2 (ja)
EP (1) EP1921791A1 (ja)
JP (1) JP5029358B2 (ja)
CA (1) CA2615789A1 (ja)
WO (1) WO2007010903A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349538B2 (en) * 2002-03-21 2008-03-25 Ntt Docomo Inc. Hierarchical identity-based encryption and signature schemes
WO2009008069A1 (ja) * 2007-07-11 2009-01-15 Kabushiki Kaisha Toshiba グループ署名システム、装置及びプログラム
US8553878B2 (en) * 2010-04-14 2013-10-08 Apple Inc. Data transformation system using cyclic groups
KR101543711B1 (ko) * 2011-10-11 2015-08-12 한국전자통신연구원 짧은 서명을 제공하는 경량 그룹서명 방법 및 장치
WO2013179304A2 (en) * 2012-05-28 2013-12-05 Sri Venkat Bhaskar Krishna Mangipudi A computer implemented system and method for concealing confidential information
US10333696B2 (en) 2015-01-12 2019-06-25 X-Prime, Inc. Systems and methods for implementing an efficient, scalable homomorphic transformation of encrypted data with minimal data expansion and improved processing efficiency
EP3522089B1 (en) * 2018-01-29 2023-11-29 Panasonic Intellectual Property Corporation of America Control method, controller, data structure, and electric power transaction system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004228958A (ja) * 2003-01-23 2004-08-12 Nec Corp 署名方法および署名プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6292897B1 (en) * 1997-11-03 2001-09-18 International Business Machines Corporation Undeniable certificates for digital signature verification
US7051199B1 (en) * 2000-06-19 2006-05-23 Xerox Corporation System, method and article of manufacture for providing cryptographic services utilizing a network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004228958A (ja) * 2003-01-23 2004-08-12 Nec Corp 署名方法および署名プログラム

Also Published As

Publication number Publication date
EP1921791A1 (en) 2008-05-14
CA2615789A1 (en) 2007-01-25
JPWO2007010903A1 (ja) 2009-01-29
WO2007010903A1 (ja) 2007-01-25
US20090034739A1 (en) 2009-02-05
US7995762B2 (en) 2011-08-09

Similar Documents

Publication Publication Date Title
US10944575B2 (en) Implicitly certified digital signatures
EP2737656B1 (en) Credential validation
Song Practical forward secure group signature schemes
CN104539423B (zh) 一种无双线性对运算的无证书公钥密码体制的实现方法
EP3681093B1 (en) Secure implicit certificate chaining
JP5029358B2 (ja) 鍵発行方法、グループ署名システム
JP2008512060A (ja) 仮署名スキーム
JPWO2009008069A1 (ja) グループ署名システム、装置及びプログラム
JPWO2006077700A1 (ja) グループ署名方式
JP5099003B2 (ja) グループ署名システムおよび情報処理方法
EP2846492A1 (en) Cryptographic group signature methods and devices
JP2014515125A (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
JP5287727B2 (ja) 情報通信システム、オーガニゼーション装置およびユーザ装置
JP4791828B2 (ja) グループ署名システム、装置、プログラム及び方法
US20230327884A1 (en) Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge
JP2014157354A (ja) 線形準同型な構造保存署名を生成および検証する暗号学的装置および方法
Khader Authenticating with attributes
Sharp Applied Cryptography
JP4653504B2 (ja) グループ署名生成システム、装置、プログラム及び方法
Bashir Analysis and Improvement of Some Signcryption Schemes Based on Elliptic Curve
Kitagawa et al. Fully anonymous group signature with verifier-local revocation
Chia et al. A Pairing-Free Identity-Based Identification Scheme with Tight Security Using Modified-Schnorr Signatures. Symmetry 2021, 13, 1330
Kumar et al. Forcing out a confession: Threshold discernible ring signatures
Yu et al. New Forward-Secure Signature Scheme with Untrusted Update
Kim Intrusion-Resilient Key-Evolving Protocol under the Discrete Logarithm Problem

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120507

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 5029358

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150706

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees