明 細 書
グループ署名システムおよび情報処理方法
技術分野
[0001] 本発明は、ユーザ装置をメンバー力 脱退させる際の計算が効率的なグループ署 名システム、および情報処理方法に関する。
背景技術
[0002] グループ署名方式はグループのメンバーに匿名で署名を生成することを可能にす る方式である。この方式は電子投票、匿名委任、 IDエスクローといったものに応用で きるため、産業上の利用価値が高い。
[0003] 従来のグループ署名方式のシステムは、発行装置と、ユーザ装置と、検証装置とが 設けられ、これらの装置が通信可能に接続されている。ユーザ装置が発行装置という 権限にアクセスし、ユーザ装置が参加手段という手順を行い、発行装置が発行手順 と 、う手順を行うことでユーザ装置はグループのメンバーになることができる。グルー プのメンバーであるユーザ装置はグループのメンバーとしての署名文を生成できる。 検証装置は、署名文の正当性を検証できるが、どの装置が署名文を作成したのかを 特定することはできない。ただし、開示装置という権限のみはどの装置が署名文作成 したのかを特定できる。
[0004] 一方、上記構成の他に、失効機能を持った方式がある。失効機能を持ったグルー プ署名方式には失効管理装置と!/、う権限が!/、る。ユーザ装置はグループのメンバー になる際に、失効管理装置にもアクセスし登録手段を行う。ユーザ装置がグループか ら抜ける際には、失効管理装置が失効手段を行うことでユーザ装置をグループから 脱退させることができる。
[0005] 何台かのユーザ装置がグループから脱退したら、残りのユーザ装置は鍵更新手段 を行うことで自分の持っている公開鍵'秘密鍵ペアをアップデートする。失効機能を 持ったグノレープ署名方式の 1つが、「Jan Camenisch. Jens Groth. Group Signatu res: Better Efficiency and New Theoretical Aspects. SCN 2004, vol. 3352 of LNCS, pp. 120-133, 2004.」(以下では、文献 1と称する)で提案されている。
[0006] また、別のグループ署名方式が、「G. Ateniese, J. Camenisch, M. Joye, and
G. Tsudik. A Practical and Provaoly Secure Coalition-Resistant Group bigna ture Scheme. In Advances in Cryptology ——― CRYPTO 2000, vol. 1880 of LNCS, pp. 255-270, Springer- Verlag, 2000.」で提案されている。
発明の開示
[0007] 鍵更新手段はユーザ装置がグループ力 脱退するたびに行わねばならな 、手順 なので、グループに残るユーザ装置は頻繁に鍵更新手段を行わねばならない。この ためグループ署名方式を実運用する際には鍵更新手段の計算量が可能な限り少な いことが望ましい。なお、ユーザ装置がグループに新規に加入する際の登録手段や グループ力も脱退する際の失効手段についても同様である。
[0008] 本発明の目的は、上述したような従来の技術が有する問題点を解決するためにな されたものであり、ユーザ装置のグループへの登録やグループからの脱退の際にお ける情報処理の計算量を低減したグループ署名システム、および情報処理方法を提 供することにある。
[0009] 上記目的を達成するための本発明のグループ署名システムは、発行装置、開示装 置、失効管理装置、ユーザ装置および検証装置がネットワークを介して互いに接続さ れたグループ署名システムであって、発行装置は、第 1の巡回群の元が格納された 発行装置記憶部と、第 1の巡回群の位数 Nならびに第 1の巡回群の元 a— 0、 a— 1お よび a— 2を含む組の発行装置公開鍵 ipkを生成すると、発行装置公開鍵 ipkを公開す る発行装置制御部とを有し、ユーザ装置は、素数の集合が格納されたユーザ装置記 憶部と、公開された発行装置公開鍵 ipkを受信すると、素数 eから該素数 eよりも小さい 定数を減じた結果が素数 e'となる素数 eおよび素数 e'を求め、上記 a— 0と上記 a— 1 を数 Xでべき乗剰余したものとの積に上記 a— 2を数 rでべき乗剰余したものの積が第 1 の巡回群の元 Aを素数 e乗したものに上記位数 Nを法として等しい関係にあるものとす る上記数 Xおよび上記数 rを含む組のユーザ装置秘密鍵 mskと素数 e、素数 e'および 元 Aを含む組のユーザ装置公開鍵 mpkとを生成し、素数 e'を失効管理装置に送信し 、素数 e'を基にして算出された Bを失効管理装置力 受信し、メッセージが入力され ると、受信した Bの値、ユーザ装置公開鍵 mpk、ユーザ装置秘密鍵 msk、およびそのメ
ッセージを用いて、メッセージに対する署名文を生成し、メッセージと署名文を検証 装置に送信するユーザ装置制御部とを有し、失効管理装置は、第 2の巡回群の元が 格納された失効管理装置記憶部と、第 2の巡回群の位数 Lおよび第 2の巡回群の元 b を含む組の失効管理装置公開鍵 rpkを生成し、ユーザ装置から素数 e'を受信すると 、上記元 bを素数 e'の逆数で上記位数 Lを法としてべき乗剰余した上記 Bの値を算出 してユーザ装置に送信する失効管理装置制御部とを有し、検証装置は、上記メッセ ージおよび署名文を格納するための検証装置記憶部と、メッセージおよび署名文を 受信すると、メッセージと署名文の候補を用いて検証を行って署名文の候補の正当 性を検証し、署名文の候補が正当である力否かを出力する検証装置制御部とを有し 、開示装置は、上記メッセージおよび署名文を格納するための開示装置記憶部と、メ ッセージおよび署名文を受信し、署名文が正当であると認識すると、メッセージおよ び署名文と生成した開示装置公開鍵 opkおよび開示装置秘密鍵 oskを用いた復号化 による hを算出して出力する開示装置制御部とを有する構成である。
また、本発明のグループ署名システムは、発行装置、開示装置、失効管理装置、ュ 一ザ装置および検証装置がネットワークを介して互いに接続されたグループ署名シ ステムであって、発行装置は、第 1の巡回群の元が格納された発行装置記憶部と、第 1の巡回群の位数 Nならびに第 1の巡回群の元 a— 0および a— 1を含む組の発行装置 公開鍵 ipkを生成すると、発行装置公開鍵 ipkを公開する発行装置制御部とを有し、 ユーザ装置は、素数の集合が格納されたユーザ装置記憶部と、公開された発行装 置公開鍵 ipkを受信すると、素数 eから該素数 eよりも小さい定数を減じた結果が素数 e 'となる素数 eおよび素数 e'を求め、上記 a— 0と上記 a— 1を数 Xでべき乗剰余したもの との積が第 1の巡回群の元 Aを素数 e乗したものに上記位数 Nを法として等 ヽ関係 にあるものとする上記数 Xを含むユーザ装置秘密鍵 mskと素数 e、素数 e'および元 Aを 含む組のユーザ装置公開鍵 mpkとを生成し、素数 e'を失効管理装置に送信し、素数 e'を基にして算出された Bを失効管理装置力 受信し、メッセージが入力されると、上 記 Bの値、ユーザ装置公開鍵 mpk、ユーザ装置秘密鍵 msk、およびメッセージを用い て、メッセージに対する署名文を生成し、メッセージと署名文を検証装置に送信する ユーザ装置制御部とを有し、失効管理装置は、第 2の巡回群の元が格納された失効
管理装置記憶部と、第 2の巡回群の位数 Lおよび第 2の巡回群の元 bを含む組の失 効管理装置公開鍵 rpkを生成し、ユーザ装置力 素数 e'を受信すると、上記元 bを素 数 e 'の逆数で上記位数 Lを法としてべき乗剰余した上記 Bの値を算出してユーザ装 置に送信する失効管理装置制御部とを有し、検証装置は、上記メッセージおよび署 名文を格納するための検証装置記憶部と、メッセージおよび署名文を受信すると、メ ッセージと署名文の候補を用いて検証を行って署名文の候補の正当性を検証し、署 名文の候補が正当である力否かを出力する検証装置制御部とを有し、開示装置は、 上記メッセージおよび署名文を格納するための開示装置記憶部と、メッセージおよび 署名文を受信し、署名文が正当であると認識すると、メッセージおよび署名文と生成 した開示装置公開鍵 opkおよび開示装置秘密鍵 oskを用いた復号ィ匕による hを算出し て出力する開示装置制御部とを有する構成である。
一方、上記目的を達成するための本発明の情報処理方法は、発行装置、開示装 置、失効管理装置、ユーザ装置および検証装置がネットワークを介して互いに接続さ れたグループ署名システムによる情報処理方法であって、発行装置が、第 1の巡回 群の位数 Nならびに第 1の巡回群の元 a— 0、 a— 1および a— 2を含む組の発行装置公 開鍵 ipkを生成すると、発行装置公開鍵 ipkを公開し、ユーザ装置が、公開された発行 装置公開鍵 ipkを受信すると、素数 eから該素数 eよりも小さい定数を減じた結果が素 数 e'となる素数 eおよび素数 e'を求め、上記 a— 0と上記 a— 1を数 xでべき乗剰余した ものとの積に上記 a— 2を数 rでべき乗剰余したものの積が第 1の巡回群の元 Aを素数 e乗したものに上記位数 Nを法として等しい関係にあるものとする上記数 Xおよび上記 数 rを含む組のユーザ装置秘密鍵 mskと素数 e、素数 e'および元 Aを含む組のユーザ 装置公開鍵 mpkとを生成し、素数 e'を失効管理装置に送信し、失効管理装置が、第 2の巡回群の位数 Lおよび第 2の巡回群の元 bを含む組の失効管理装置公開鍵 rpkを 生成し、ユーザ装置力 素数 e'を受信すると、上記元 bを素数 e'の逆数で上記位数 L を法としてべき乗剰余した Bを算出してユーザ装置に送信し、ユーザ装置が、上記 B の値を失効管理装置から受信し、メッセージが入力されると、上記 Bの値、ユーザ装 置公開鍵 mpk、ユーザ装置秘密鍵 msk、およびメッセージを用いて、メッセージに対 する署名文を生成し、メッセージと署名文を検証装置に送信し、検証装置が、上記メ
ッセージと署名文を受信すると、メッセージと署名文の候補を用いて検証を行って署 名文の候補の正当性を検証し、署名文の候補が正当である力否かを出力し、開示装 置が、上記メッセージと署名文とを受信し、署名文が正当であると認識すると、メッセ ージおよび署名文と生成した開示装置公開鍵 opkおよび開示装置秘密鍵 oskを用い た復号ィ匕による hを算出して出力するものである。
[0012] また、本発明の情報処理方法は、発行装置、開示装置、失効管理装置、ユーザ装 置および検証装置がネットワークを介して互いに接続されたグループ署名システムに よる情報処理方法であって、発行装置が、第 1の巡回群の位数 Nならびに第 1の巡回 群の元 a— 0および a— 1を含む組の発行装置公開鍵 ipkを生成すると、発行装置公開 鍵 ipkを公開し、ユーザ装置が、公開された発行装置公開鍵 ipkを受信すると、素数 e 力 該素数 eよりも小さい定数を減じた結果が素数 e'となる素数 eおよび素数 e'を求 め、上記 a— 0と上記 a— 1を数 Xでべき乗剰余したものとの積が第 1の巡回群の元 Aを 素数 e乗したものに上記位数 Nを法として等しい関係にあるものとする上記数 Xを含む ユーザ装置秘密鍵 mskと素数 e、素数 e'および元 Aを含む組のユーザ装置公開鍵 mp kとを生成し、素数 e'を失効管理装置に送信し、失効管理装置が、第 2の巡回群の位 数 Lおよび第 2の巡回群の元 bを含む組の失効管理装置公開鍵 rpkを生成し、ユーザ 装置から素数 e'を受信すると、上記元 bを素数 e'の逆数で上記位数 Lを法としてべき 乗剰余した Bを算出してユーザ装置に送信し、ユーザ装置が、上記 Bの値を失効管 理装置から受信し、メッセージが入力されると、上記 Bの値、ユーザ装置公開鍵 mpk、 ユーザ装置秘密鍵 msk、およびメッセージを用いて、メッセージに対する署名文を生 成し、メッセージと署名文を検証装置に送信し、検証装置が、上記メッセージと署名 文を受信すると、メッセージと署名文の候補を用いて検証を行って署名文の候補の 正当性を検証し、署名文の候補が正当である力否かを出力し、開示装置が、上記メ ッセージと署名文とを受信し、署名文が正当であると認識すると、メッセージおよび署 名文と生成した開示装置公開鍵 opkおよび開示装置秘密鍵 oskを用いた復号ィ匕によ る hを算出して出力するものである。
[0013] 本発明では、ユーザ装置が従来ビット数の長い素数 eとは別の e'を用いることで、秘 密鍵および公開鍵の生成についての計算量が低減する。また、この e'の値を用いて
ユーザ装置の登録に関する情報を計算する失効管理装置の計算量も低減する。し たがって、新たにグループに加入するユーザ装置が登録のために行う計算量などが 従来よりも少なくなる。
図面の簡単な説明
[図 1]図 1は実施形態 1のグループ署名システムの一構成例を示したブロック図である
[図 2]図 2は実施形態 1のデータの送受信を示したフローチャートである。
[図 3]図 3は実施形態 1のデータの送受信を示したフローチャートである。
[図 4]図 4は実施形態 1の発行装置鍵生成手段を示したフローチャートである。
[図 5]図 5は実施形態 1の開示装置鍵生成手段を示したフローチャートである。
[図 6]図 6は実施形態 1の失効管理装置鍵生成手段を示したフローチャートである。
[図 7]図 7は実施形態 1の発行参加手段を示したフローチャートである。
[図 8]図 8は実施形態 1の参加第一手段を示したフローチャートである。
[図 9]図 9は実施形態 1の発行手段を示したフローチャートである。
[図 10]図 10は実施形態 1の参加第二手段を示したフローチャートである。
[図 11]図 11は実施形態 1の登録手段を示したフローチャートである。
[図 12]図 12は実施形態 1の失効手段を示したフローチャートである。
[図 13]図 13は実施形態 1の鍵更新手段を示したフローチャートである。
[図 14]図 14は実施形態 1の署名手段を示したフローチャートである。
[図 15]図 15は実施形態 1の署名手段を示したフローチャートである。
[図 16]図 16は実施形態 1の暗号文用コミット手段を示したフローチャートである。
[図 17]図 17は実施形態 1のメンバー公開鍵用コミット手段を示したフローチャートであ る。
[図 18]図 18は実施形態 1の失効データ用コミット手段を示したフローチャートである。
[図 19]図 19は実施形態 1の検証手段を示したフローチャートである。
[図 20]図 20は実施形態 1の暗号文用コミット再生手段を示したフローチャートである。
[図 21]図 21は実施形態 1のメンバー公開鍵用コミット再生手段を示したフローチヤ一 トである。
[図 22]図 22は実施形態 1の失効データ用コミット再生手段を示したフローチャートで ある。
[図 23]図 23は実施形態 1の開示手段を示したフローチャートである。
[図 24]図 24は実施形態 1の暗号鍵生成手段を示したフローチャートである。
[図 25]図 25は実施形態 1の暗号ィ匕手段を示したフローチャートである。
[図 26]図 26は実施形態 1の復号ィ匕手段を示したフローチャートである。
圆 27]図 27は実施形態 2の発行装置鍵生成手段を示したフローチャートである。
[図 28]図 28は実施形態 2の発行参加手段を示したフローチャートである。
[図 29]図 29は実施形態 2の参加第一手段を示したフローチャートである。
圆 30]図 30は実施形態 2の発行第一手段を示したフローチャートである。
圆 31]図 31は実施形態 2の参加第二手段を示したフローチャートである。
圆 32]図 32は実施形態 2の発行第二手段を示したフローチャートである。
[図 33]図 33は実施形態 2の参加第三手段を示したフローチャートである。
[図 34]図 34は実施形態 2の署名手段を示したフローチャートである。
[図 35]図 35は実施形態 2の署名手段を示したフローチャートである。
符号の説明
[0015] 100 発行装置
200 開示装置
300 失効管理装置
400 ユーザ装置
500 検証装置
発明を実施するための最良の形態
[0016] (実施形態 1) 本実施形態のグループ署名システムの構成を説明する。図 1は実施形態 1のグルー プ署名システムの一構成例を示すブロック図である。図 1に示すように、グループ署 名システムは、発行装置 100と、開示装置 200と、失効管理装置 300と、ユーザ装置 40 0と、検証装置 500とを有する。
[0017] 発行装置 100は、発行装置制御部 190と、発行装置記憶部 110と、発行装置通信手 段 (不図示)とを有する。発行装置制御部 190は、発行装置鍵生成手段 120と、発行 手段 130とを有する。
[0018] 開示装置 200は、開示装置制御部 290と、開示装置記憶部 210と、開示装置通信手 段 (不図示)とを有する。開示装置制御部 290は、開示装置鍵生成手段 220と、開示 手段 230とを有する。
[0019] 失効管理装置 300は、失効管理装置制御部 390と、失効管理装置記憶部 310と、失 効管理装置通信手段 (不図示)とを有する。失効管理装置制御部 390は、失効管理 装置鍵生成手段 320と、登録手段 330と、失効手段 340とを有する。
[0020] ユーザ装置 400は、ユーザ装置制御部 490と、ユーザ装置記憶部 410と、ユーザ装 置通信手段 (不図示)とを有する。ユーザ装置制御部 490は、参加手段 420と、鍵更新 手段 430と、署名手段 440とを有する。ユーザ装置 400はグループに属する数だけ他 の装置と通信可能に接続されるが、本実施形態では、説明を簡単にするために、ュ 一ザ装置を 1台だけ図 1に示す。
[0021] 検証装置 500は、検証装置制御部 590と、検証装置記憶部 510と、検証装置通信手 段 (不図示)とを有する。検証装置制御部 590は検証手段 520を有する。
[装置の実装]
各装置の制御部は、通信部の制御、記憶部の制御、およびデータの演算処理を行 う。制御部には、プログラムに従って所定の処理を実行する CPU (Central Processin g Unit)、およびプログラムを格納するためのメモリが設けられている。各制御部の手 段は、 CPUがプログラムを実行することで装置内に仮想的に構成される。
[0022] 各装置の記憶部にはハードディスクや半導体メモリなどを用いることができる。
[0023] 各装置は通信ネットワークを介して相互に接続されている。通信ネットワークとして、 例えば、インターネットや LAN (Local Area Network)を用いることができる。通信ネ ットワークは有線および無線の 、ずれでもよく、また有線と無線の組み合わせでもよ い。なお、図 1では装置間における情報の流れをわ力りやすくするために、各装置の 通信部を図に示すことを省略して 、る。
[0024] [記号]
κ = ( κ _ Ν、 κ _ L、 κ _ q、 κ _ e、 κ ' _ e、 κ _ cゝ κ _ S)をセキュリティ 'パラメ一 タで、 κ,― eく κ—eを満たしているものとする。
安全性の観点から言えば κ '_e+ κ _c+ K _S < κ— qと κ _q+ κ _c+ K _S < K _e< K _N/2を満たしていることが望ましい。
自然数 Nに対し、位数 Nの巡回群 {(V" ,N- 1 }を Z— Nと書き、 Ζ— Ν上の平方剰余全体 の集合を QR (N)と書く。
Uを有限巡回群とし、 gを Uの元とし、 qを Uの位数とする。
Uとしてどのようなものを選んでもかまわないが、安全性の観点から言えばある素数 p に対する Z—pの乗法群の部分群、もしくは楕円曲線群の部分群であることが望まし い。
Hashを {0, · · · ,2 K _C} }に値を取るハッシュ関数とする。
[0025] [データ送受信]
各装置は事前に Uの詳細、 K、 g、および qを事前に自身の記憶部に保管していると 仮定する。これらのデータをどのように共有するのかは問わな 、。
本発明では Protl-l , " ' ,Protl-16が執り行われる(図 2、図 3)。
Protl-1 :発行装置 100は発行装置鍵生成手段 120を行い、発行装置公開鍵 ipkと発 行装置秘密鍵 iskを生成し、発行装置公開鍵 ipkを公開する (ステップ 910101)。
Protl-2:開示装置 200は開示装置鍵生成手段 220を行い、開示装置公開鍵 opkと開 示装置秘密鍵 oskを生成し、開示装置公開鍵 opkを公開する (ステップ 910102)。 Protl-3:失効管理装置 300は失効管理装置鍵生成手段 320を行 1、、失効管理装置 公開鍵 rpkと失効管理装置秘密鍵 rskを生成し、失効管理装置公開鍵 rpkを公開する (ステップ 910103)。
公開鍵の公開方法は問わない。公開方法として、例えば、 PKIを使う、各装置に直接 公開鍵を送る、といった方法がある。以後の手順では全ての装置力 ¾k、 opk、 rpkを自 身の記憶部に保存していると仮定する。
[0026] Protl- 4:発行装置 100とユーザ装置 400は発行参加手段を行う(ステップ 910104)。
発行参加手段は発行装置 100が行う手順とユーザ装置 400が行う手順とに分かれ、前 を発行手段 130、後を参加手段 420という。
発行参加手段が終了すると、発行装置 100はユーザ装置 400の公開鍵 mpkを取得し、 ユーザ装置 400は自身の公開鍵 mpkと秘密鍵 mskを得る。
発行参加手段を終えたユーザ装置 400をグループのメンバーとも呼ぶ。
[0027] Protl-5:ユーザ装置 400は mpkの一部であるデータ e'を失効管理装置 300に送信す る(ステップ 910105)。
Protl-6:失効管理装置 300は e'を受信したら失効管理装置記憶部 310に書き込む (ス テツプ 9101106)。
Protl-7:受信した e'を使って登録手段 300を行い、登録手段 300の出力 Bをユーザ装 置 400に送信する(ステップ 910107)。
Protl-8:ユーザ装置 400は Bを受信したら Bをユーザ装置記憶部 410に書き込む (ステ ップ 910108)。
グループのメンバーであるユーザ装置 400は、署名手段 440を行うことでメッセージに 署名することができる。メッセージを誰がどのように選び、どのようにユーザ装置 400に 入力するかは問わない。例えば、ユーザ装置 400を動かしている人がキーボードでメ ッセージをユーザ装置に入力するという方法がある。
[0028] Protl-9:検証装置 500はメッセージ '署名文ペアで受け取り、検証装置記憶部 510に 保存する(ステップ 910109)。
Protl-10:検証装置 500はメッセージ '署名文ペアを使って検証手段 520を行うことで、 署名文の正当性を検証する (ステップ 910110)。
Protl-11:検証手段 520を終えたら検証装置 500は、署名文が正当であつたか否かを 出力する(ステップ 910111)。
検証装置 500がいつどのような手段で署名文を受け取ったのかは問わない。例えば、 ユーザ装置 400がインターネットを使って検証装置 500に署名文を送るという方法があ る。
[0029] 本実施形態では、署名文が正当であった場合には、「acc印 t」という文字列を、そう でなければ「reject」という文字列を出力するものとして説明している力 他の文字列 ないし文字列でないデータを出力しても力まわない。これは、他の実施形態について も同様である。
開示装置 200は何らかの方法でメッセージ '署名文ペアを受け取る。どのようにしてメ ッセージ ·署名文ペアを得たのかは問わない。例えば、検証装置 500がインターネット を使って開示装置 200に送信するという方法がある。
[0030] Protl-12:開示装置 200は受け取ったメッセージ '署名文ペアを開示装置記憶部 210 に書き込む(ステップ 910112)。
ProU-13:開示装置 200はメッセージ '署名文ペアを入力して開示手段 230を行う(ステ ップ 910113)。
Protl-14:開示手段 230は署名を行ったユーザ装置 400の公開鍵の一部 hを出力する ので、開示装置 200は hを出力する(ステップ 910114)。
失効管理装置 300はグループから脱退させたいユーザ装置 400の e'を入力して失効 手段 340を行うことでそのユーザ装置 400をグループ力 脱退させることができる。
[0031] Protl-15:失効手段 340を行うと失効管理装置 300の公開鍵 rpkが更新されるので、 新しい rpkを公開する。さらに失効手段 340はメンバーの資格を失効したユーザ装置 4 00に関する情報のリスト REVLISTを出力するので、 REVLISTも公開する(ステップ 910 115)。
[0032] LEVRISTや新し 、rpkの公開方法は問わな 、。公開方法として例えば、 PKIを使う、 各装置に直接公開鍵を送る、といった方法がある。以後の手順では全ての装置が RE VLISTや新 、rpkを自身の記憶部に保存して 、ると仮定する。
Protl-16:各ユーザ装置 400は LEVRISTを使って鍵更新手段 430を行 、、ユーザ装置 400の Bを更新する(ステップ 910116)。
[0033] [^ンバー公開鍵リスト]
本発明を用いる際には、グループのメンバーであるユーザ装置の IDとそのユーザ 装置の公開鍵 mpkとのペアのリストを公開しておく必要がある。誰がどのような形でこ のリストを公開してもよいが、リスト中のデータが正確であることを保証する必要がある
[0034] リスト中のデータの正確性を保証する方法の一つを説明する。リストは発行装置 100 が管理する。リスト中には、 IDと mpkのみならず、 IDと mpkに対するユーザ装置 400の( PKIの公開鍵を用いて作成した)署名文を載せる。
そして発行はリスト全体に (PKIの公開鍵を用いて)署名をつけてリストと署名文を公開 する。開示装置が hを出力したら、リストに載っている mpkで hを部分として含むものを 探し出し、その mpkに対応する IDを探すことで、署名であるユーザ装置 400を特定で きる。
[0035] [発行装置鍵生成手段 120]
発行装置 100は以下の ISSGENl-l , " ' ,ISSGENl-5を順に行う(図 4)。
ISSGEN1-1 :発行装置記憶部 110から κ— Nを読み込む(ステップ 120101)。
ISSGEN1- 2:素数 p— 1 , p— 2で積 N=p— lp— 2が κ—Νビットのものを選ぶ(ステップ 1 20102)。
ISSGEN1-3:QR (N)の元 a_0,a_l ,a_2をランダムに選ぶ(ステップ 120103)。
ISSGEN1-4: (p_l ,p_2)を発行装置 100秘密鍵 iskにセットし、 iskを発行装置記憶部 110に書き込む(ステップ 120104)。
ISSGEN1-5: (N,a_0,a_l ,a_2)を発行装置 100公開鍵 ipkにセットし、 ipkを発行装置 記憶部 110に書き込み、そして ipkを出力する (ステップ 120105)。
安全性の観点力 言えば、 ISS1-1で (p— 1-1) /2, (p— 2-1) /2も素数であることが望 ましい。また、 ISS1-1で p— 1のビット数と p— 2のビット数はほぼ同じであることが望まし い。
[0036] [開示装置鍵生成手段 220]
開示装置 200は以下の OPNGENl-l ,〜,OPNGENl-3を行う(図 5)。
OPNGEN1-1 : [暗号鍵生成手段]を行い、公開鍵 opkと秘密鍵 oskを生成する (ステツ プ 220101)。
OPNGENl-2:oskを開示装置 200秘密鍵にセットし、 oskを開示装置記憶部 210に書き 込む(ステップ 220102)。
OPNGENl-3:opkを開示装置 200公開鍵にセットし、 opkを開示装置記憶部 210に書き 込み、そして opkを出力する(ステップ 220103)。
[0037] [失効管理装置鍵生成手段 320]
失効管理装置 300は以下の REVGENl-l ,〜,REVGENl-7を行う(図 6)。
REVGEN1-1 :失効管理装置記憶部 310から κ Lを読み込む (ステップ 320101)。
REVGEN1- 2:素数 1— 1, 1— 2で積 N=l— 11— 2が κ—Lビットのものを選ぶ(ステップ 32 0102)。
REVGEN1- 3:QR(L)の元 b、 wをランダムに選ぶ(ステップ 320103)。
REVGEN1-4: (1—1,1—2)を失効管理装置 300秘密鍵 rskにセットし、 rskを失効管理装 置記憶部 310に書き込む (ステップ 320104)。
REVGEN1-5:REVLISTを空集合にセットし、 1¾¥1^丁を失効管理装置記憶部310に 書き込む(ステップ 320105)。
REVGEN1-6: (L,b,w)を失効管理装置 300公開鍵 rpkにセットし、 rpkを失効管理装置 記憶部 310に書き込む (ステップ 320106)。
REVGEN1- 7:REVLISTと rpkを出力する(ステップ 320107)。
安全性の観点力 言えば、 REVGEN1-1で (1—1-D/2, (1— 2-1) /2も素数であること が望ましい。また、 REVGEN1-1で 1—1のビット数と 1—2のビット数はほぼ同じであるこ とが望ましい。
[0038] [発行参加手段]
発行参加手段では発行装置 100とユーザ装置 400とがそれぞれ発行手段 130と参カロ 手段 420を行う。参加手段 420は参加第一手段と参加第二手段とからなる。発行参加 手段では以下の ISSJOINl-l,〜,ISSJOINl-5が順に行われる(図 7)。
ISSJOIN1-1:ユーザ装置 400は参加第一手段を行い、参加第一手段の出力を発行装 置 100に送信する(ステップ 920101)。
ISSJOIN1-2:発行装置 100は受信したデータを発行装置記憶部 110に書き込む (ステ ップ 920102)。
ISSJOIN1-3:発行装置 100は発行手段 130を行い、発行手段 130の出力をユーザ装置 400に送信する(ステップ 920103)。
ISSJOIN1-4:ユーザ装置 400は受信したデータをユーザ装置記憶部 410に書き込む( ステップ 920104)。
ISSJOIN1-5:ユーザ装置 400は参加第二手段を行う(ステップ 920105)。
[0039] [参加第一手段]
ユーザ装置 400は以下の JOINl-l-l,"',JOINl-l-5を順に行う(図 8)。
JOIN1- 1- 1: κ =( κ― Ν、 κ―し、 κ― q、 κ― e、 κ '― e、 κ― c、 κ― S)、ipk=(N,a― 0,a— l,a— 2)、 q、 gをユーザ装置記憶部 410から読み込む (ステップ 4201101)。
JOIN1-1-2:0以上 q未満の整数 Xと、 0以上 N未満の整数 r,をランダムに選ぶ (ステップ 4201102)。
を計算し、 A,と hの正当性証明文 pf — {A',h}を計算する(ステップ 4201103)。
JOIN1- 1- 4:x、 r,、 A,、 h、 pf— {A, ,h} をユーザ装置記憶部 410に書き込む(ステップ 4201104)。
JOIN1- 1- 5:A,、 h、 pf_{A',h} を出力する(ステップ 420110δ)。
なお、 pf_{A',h}の計算方法の詳細は [文献 1]に開示されているため、ここでは、そ の説明を省略する。
[0040] [発行手段 130]
発行装置 100は以下の ISSUEl-l,"',ISSUEl-7を順に行う(図 9)。
ISSUE丄一 1: κ =( κ― Ν、 κ― L、 κ― q、 κ― e、 κ ― e、 κ― c、 κ― S)、ipk=(N,a― 0, a_l,a_2)、 isk=(p_l,p_2)、 g、 A'、 h、 pf— {A' ,h}を発行装置記憶部 110から読み 込む(ステップ 130101)。
ISSUEl-2:pf_{A' ,h}の正当性を検証し、もし正当でなければ発行参加手段 130を 終了する(ステップ 130102)。
ISSUE1-3: κ '—eビットの素数 e,で、 e=2 κ— e}+e,も素数であるものをランダムに選 ぶ(ステップ 130103)。
ISSUEl-4:0以上 e未満の整数 r,,をランダムに選ぶ(ステップ 130104)。
ISSUE1-5:A' ' = (a_0A'a_2 r' ' })^l/e} mod Nを計算する(ステップ 130105)。 ISSUE1- 6: (A,,,e, ,r,,)を発行装置記憶部 110に書き込む(ステップ 130106)。
ISSUE1-7: (Α' ',Θ' ,Γ")を出力する(ステップ 130107)。
なお、 pf— {A',h}の検証方法の詳細は [文献 1]に開示されているため、ここでは、そ の説明を省略する。
[0041] [参加第二手段]
ユーザ装置 400は以下の JOINl-2-l,"',JOINl-2-7を順に行う(図 10)。
JOIN1- 2- 1:ユーザ装置記憶部 410から a— 0,a— l,a— 2,x,r, ,r, ',Α", N, e, ,hを読 み込む(ステップ 4201201)。
JOINl-2-2:e=2 κ— e}+e'を計算する(ステップ 4201202)。
JOINl-2-3:r,+r,,を eで割ったときの商を Rとし、余りを rとする(ステップ 4201203)。
JOIN1- 2- 4:A=A,,/a_2 mod Nとする(ステップ 4201204)。
JOINl-2-5:a— 0a— Γχ&— 2 =A mod Nが成立するかどうかを確認し、もし成立し て!、なければ発行参加手段 130を終了する(ステップ 4201205)。
JOIN1-2-6: (x,r)をメンバー秘密鍵 mskにセットし、 mskをユーザ装置記憶部 410に書 き込む(ステップ 4201206)。
JOIN1-2-7: (A,e,e, ,h)をメンバー公開鍵 mpkにセットし、 mpkをユーザ装置記憶部 41 0に書き込む(ステップ 4201207)。
[0042] [登録手段 330]
失効管理装置 300は以下の ADDl-l,'",ADDl-4を順に行う(図 11)。
ADDl-l:rpk=(L,b,w)と e'を失効管理装置記憶部 310から読み込む (ステップ 330101
)o
ADDl-2:e'が素数であるかどうかを確認し、もし素数でなければ終了する(ステップ 3 30102)。
ADDl-3:B=b l/e'} mod Lを計算する(ステップ 330103)。
ADD1-4:Bを出力する(ステップ 330104)。
[0043] [失効手段 340]
失効管理装置 300はグループ力 脱退させたいユーザ装置の e'を使って以下の REV 1-1,·· · ,REV1- 4を順に行う(図 12)。
REVl-l:rpk=(L,b,w)、e 'を失効管理装置記憶部 310から読み込む (ステップ 340101)
REVl-2:B=b l/e'} mod Lを計算する(ステップ 340102)。
REVl-3:bを Bに置き換え、 rpkを(L,B,w)に再セットする(ステップ 340103)。
REV1- 4:e,— 0=e,とする(ステップ 340104)。
REVl-5:rpkを失効管理装置記憶部 310に書き込み、 e'_0と新しい rpkとを出力する(
ステップ 340105)。
[0044] [鍵更新手段 430]
ユーザ装置 400は以下の UPDATE1- 1,…,! JPDATE1-4を順に行う(図 13)。
UPDATE1-1 :B,e ' ,e ' _0,rpk= (L,b,w)をユーザ装置記憶部 410から読み込む (ステツ プ 430101)。
UPDATE1-2:整数 ξヽ ηで e'_0+ η e,=lを満たすものを見つける(ステップ 43010 2)。
UPDATE1- 3:Β,=Β~ ξ^η mod Lを計算する(ステップ 430103)。
UPDATE1-4:Bを B,に再セットし、新しい Bを記憶部に書き込む(ステップ 430104)。 UPDATE1- 2で、例えば、拡張ユークリッド互助法を行うことで ξ、 ηを見つけることが できる。
[0045] [署名手段 440]
ユーザ装置 400は以下の SIGNl-Ι,···, SIGN1-15を行う(図 14、図 15)。
¾I Nl-l: κ=\ κ― Ν、 κ― L、 κ― q、 κ― e、 κ ― e、 κ― c、 κ― S)、ipk=(N,a― 0
,a― l,a― 2)、 opk、 q、 i"pk=(L,b,w)、 mpk=(A,e,e, ,h)、 msk= (x,r)、 Bをユーザ装置記 憶部 410から読み込む (ステップ 440101)。
SIGN1-2: メッセージ Mを読み込む(ステップ 440102)。
SIGN1-3: Z—qの元 {Cipher}をランダムに選び、[暗号化手段]を行って Ciphe rを計算する(ステップ 440103)。
SIGN1-4: κ—N/2ビットの自然数 p— {mpk}をランダムに選び、 A— {COM}=Aa— p_{mpk}} mod Nを計算する(ステップ 440104)。
SIGN1-5: s=r+ p— {mpk} eを計算する(ステップ 440105)。
SIGN1-6: κ—L/2ビットの自然数 p—{rev}をランダムに選び、 B— {COM}=Bw'{ p —{rev}} mod L を計算する(ステップ 440106)。
SIGN1-7: t=e, p— {rev}を計算する(ステップ 44010了)。
SIGN1-8: κ— Q+ κ— c+ κ _Sビットの自然数 μ _χ、 ( κ _Ν/2) + κ _c+ κ— Sビ ットの自然数 μ一 s、 κ ' _e+ κ _c+ κ— Sビットの自然数 μ,— e、 ( κ—L/2) +κ_ c+κ Sビットの自然数 t、Z qの元 {Cipher}, ( κ N/2) +κ c+ κ _S
ビットの自然数 μ _{mpk} ( κ _L/2) + κ _c+ κ— Sビットの自然数 μ—{rev}ラン ダムに選ぶ(ステップ 440108)
SIGN1-9: Cipher, μ一 x、 —{Cipher} , opk gを入力して [暗号文用コミット手段] を行つてその出力 COM— { Cipher }を得る(ステップ 440109)。
SIGN1- 10: — χ μ一 s、 ,― e A— {COM} ipkを入力して [^ンバー公開鍵用コミ ット手段]を行つてその出力 C OM— { mpk }を得る(ステップ 440110)。
SIGN1-11: μ ― e、 — 1 B— {COM} rpkを入力して [失効データ用コミット手段] を行つてその出力 COM— { rev }を得る(ステップ 440111)。
SIGN1-12: c=Hash ( K , ipk, opk, q, rpk, Cipher, A— {COM} , B— {COM} , COM— {Cipher} , COM— {mpk} , COM— {rev} , M)を計算する(ステップ 440112)
SIGN1— 13: τ _ x=cx+ μ _ χ τ _ s=cs+ μ _ s τ ' _ e=ce ' + μ ' _ e τ _ t=ct+ μ _tを計算する(ステップ 440113)
SIGN1-14: τ _{Cipher}=c μ _{Cipher} + p _{Cipher} mod qを計算する。(ス テツプ 440114)
SIGN1-15: (Cipher,A_{COM} ,B_{COM} ,c, τ _χ, τ一 s, τ e, τ一 t, τ _{Ci pher} , τ一 {mpk} , τ一 {rev})を Signatureにセットし、 Signatureを出力する (ステップ 4 40115)。
[0046] [暗号文用コミット手段]
ユーザ装置 400は以下の COMCIPHERl-Ι, · · ·, COMCIPHER1-3を行う(図 16)。 COMCIPHERl— 1: Cipher= (Cipher— 0,Cipher—l, Cipher— 2) μ一 x、 {Ciphe r} opk= (u_0,u_l,u_2)、 gを入力として受け取る(ステップ 940101)。
COMCIPHER1-2: COM— {Cipher— 0} = u— (Γ{ —{Cipher} } COM— {Cipher _1 } = u_l ^ _{αρ!ΐΘΓ} } , COM_{Cipher_2} = g ^ _x}u_2^ ^ _{Cip her} }とする(ステップ 940102)
COMCIPHERl- 3: COM— {Cipher}= (COM— {Cipher— 0} , COM— {Cipher— 1 } ,C OM— {Cipher— 2})を計算する(ステップ 940103)。
[0047] [^ンバー公開鍵用コミット手段]
ユーザ装置 400は以下の COMMPKl-l,COMMPKl-2を行う(図 17)。
COMMPK1-1: μ一 χ、 μ一 s、 μ ― e A— {COM} ipk=(N,a— 0,a— l,a— 2)を入 力して受け取る(ステップ 950101)。
COMMPK1-2: COM— {mpk}= α_ { μ _x}a_2 μ _s}A_{COM}'~{-iu _e} mod N を計算する(ステップ 950102)。
[0048] [失効データ用コミット手段]
ユーザ装置 400は以下の COMREV1- l,COMREVl- 2を行う(図 18)。
COMREV1-1: μ ― e ― t B— {COM} rpk=(L,b,w)を入力として受け取る(ス テツプ 960101)。
COMREV1-2: COM— {rev} = w μ _ί}Β_{ΟΟΜΠ~ μ ' _ej mod Lを計算 する(ステップ 960102)。
[0049] [検証手段 520]
検証装置 500は以下の VER1-1 , · · · ,VERl-7を行う(図 19)
\ ERl— 1: κ=\ κ― Ν κ― L κ― q κ― e κ ― e κ― c κ― S)、ipk=(N,a― 0, a l,a 2) opk= (u 0,u l,u 2) q rpk= (L,b,w) M Signature= ( Cipher'A
COM},B _ {COM},c, τ _ x, τ _ s, τ _ e, τ _ t, τ _ {Cipher}, τ _ {mpk}, τ _ { rev})を検証装置記憶部 510から読み込む。(ステップ 520101)
VER1-2: τ_β =2 κ—Θ}+τ eとする(ステップ 520102)。
VER1-3: c, opk, Cipher, τ—χ, τ— {Cipher}を入力して [暗号文用コミット再生手 段]を行い、その出力 COM— {Cipher}を得る(ステップ520103)。
VER1-4: c ipk, A_{COM}, τ_χ, τ—s, τ—eを入力して [^ンバー公開鍵用 コミット再生手段]を行い、その出力 COM— {mpk}を得る(ステップ 520104)。
VER1-5: c rpk, B— {COM}, τ― t, τ ― e を入力して [失効データ用コミット再生 手段]を行い、その出力 COM— {rev}を得る(ステップ52010δ)。
VER1-6: Hash( K , ipk, opk, q, rpk, Cipher, A— {COM}, B— {COM}, CO
M— {Cipher}, COM— {mpk}, COM— {rev}, M)を計算し、 c= Hash" , ipk, o pk, q, rpk, Cipher, A— {COM}, B— {COM}, COM— {Cipher}, COM— {mpk
}, COM— {rev}, M)が成立しなければ rejectを出力して終了する(ステップ 520106)。
VER1-7: τ ,— xが κ _q+ κ _c+ κ—Sビット未満であることと τ ,— eが κ , _e+ κ _c+ κ—Sビット未満であることを確認し、もし共に満たされていれば acceptを出力し て終了し、そうでなければ rejectを出力して停止する(ステップ 520107)。
[0050] [暗号文用コミット再生手段]
検証装置 500は以下の RECCOMCIPHER1- 1,〜,RECC0MCIPHER1- 3を行う(図 20)
RECCOMCIPHER1-1: c, opk= (u_0,u_l,u_2) , Cipher: (Cipher— 0,Cipher—l , Cipher— 2) , τ _x, τ—{Cipher}を入力して受け取る(ステップ 970101)。
RECCOMCIPHER1-2: COM— {Cipher— 0}=u—(T{ τ— {Cipher} } Cipher— (T{—c} 、 COM— {Cipher— l }=u—l'{ τ—{Cipher} }Cipher—r{—c}、 COM— {Cipher— 2} r _x}u_2 τ— {Cipher} }Cipher— 2~{- c}を計算する(ステップ 970102)。 RECCOMCIPHER1-3: COM— {Cipher}= (COM— {Cipher— 0} , COM— {Cipher— l } ,COM— {Cipher— 2})とする(ステップ 970103)。
[0051] [^ンバー公開鍵用コミット再生手段]
検証装置 500は以下の RECCOMMPKl- l,RECCOMMPKl- 2を行う(図 21)。
RECCOMMPKl— 1: ipk= (N,a_0,a_l,a_2) , A_{COM} , τ _χ, τ— s, τ— eを 入力として受け取る(ステップ 980101)。
RECCOMMPKl— 2: COM_{mpk}= a— Γ{ τ— x}a— τ— s}A— {COM厂 {— τ _e} mod N を計算する(ステップ 980102)。
[0052] [失効データ用コミット再生手段]
検証装置 500は以下の RECCOMREVl- l,RECCOMREVl- 2を行う(図 22)。
RECCOMREVl- 1: c, rpk= (L,b,w) , B— {COM} , τ— t, τ ,― e を入力として受け 取る(ステップ 990101)。
RECCOMREVl— 2: COM— {rev} = w τ _t}B_{COM} - τ ' _e} mod Lを 計算する(ステップ 990102)。
[0053] [開示手段 230]
開示装置 200は以下の ΟΡΝ1-1,〜,ΟΡΝ1-4を行う(図 23)。
OPN1— 1: κ = ( κ Ν、 κ L、 κ q、 κ e、 κ e、 κ c、 κ ¾ノ、 ipk= (N,a 0
a一 l,a一 2)、 opk= (u一 0,u一 l,u一 2)、 osk= (z一 l,z一 2)、 q、 rpk= (L,b,w)、 M、 Signat ure= ( Cipher,A_{COM} ,B_{COM} ,c, τ _x, τ— s, τ ,— e, τ _t, τ _{ Cipher } , τ—impk} , τ— {rev})を開示装置記憶部 210から読み込む (ステップ 230101)。 OPNl-2: VER1- 1,"',VER1- 6を行う。 Signatureが rejectされたら、開示手段 230を終 了する(ステップ 230102)。
OPNl-3: opk、 osk、 Cipherを入力して [復号化手段]を行い、出力 hを得る(ステップ 2 30103)。
OPN1-4: hを出力する(ステップ 230104)。
[0054] [暗号鍵生成手段]
開示装置 200は以下の EKEYGENl-l,"',EKEYGENl-4を行う(図 24)。
EKEYGEN1-1: Uの元 u—0をランダムに選ぶ(ステップ 1000101)。
EKEYGEN1-2: z—l,z— 2をランダムに選ぶ(ステップ 1000102)。
EKEYGEN1-3: u_l=u_(T{z— 1 }、 u_2=u_(T{z— 2}を計算する(ステップ 100010 3)。
EKEYGEN1-4: (u— 0,u— l,u— 2)を公開鍵 opkにセットし、(ζ— Ι,ζ— 2)を秘密鍵 os kにセットする(ステップ 1000104)。
[0055] [暗号化手段]
ユーザ装置 400は以下の ENCl-l,"',ENCl-3を行う(図 25)。
ENC1-1: 乱数 {Cipher}と Uの元 hを入力として受け取る(ステップ 1010101)。 ENC1— 2: し lpner一 0 = u一 0 { 一 1し lpher} }、 し lpner一 1 = u一 1 t 一 {し lpher } }、 Cipher— 2 = hu— 2 p—{Cipher} }を計算する(ステップ 1010102)。
ENC1-3: Cipher = (Cipher— 0,Cipher—l, Cipher— 2)とする(ステップ 1010103)。
[0056] [復号化手段]
開示装置 200は以下の DECl-l,"',DECl-2を行う(図 26)。
DEC 1-1: 公開鍵 opk= (u_0,u_l,u_2)、秘密鍵 osk= (z_l,z_2)、暗号文 Cipher = (Cipher_0,Cipher_l ,Cipher_2)を入力として受け取る(ステップ 1020101)。 DEC1-2: h=Cipher_2/Cipher_(T{z_l }を計算する(ステップ 1020102)。
[0057] 本実施形態では、ビット数が長 、データである eの代わりに別のデータ e'を用いて
登録手段、失効手段および鍵更新手段を行っているので、これらの手段を実行する 際の計算量が従来よりも少なくなる。ただし、安全性上の理由から、 e 'を素数とし、 eと e 'がなんらかの関係を持つデータでなければならない。そのため、本実施形態では、 e 'として e=2 κ _e}+e'を満たす素数とした。
[0058] (実施形態 2)
本実施形態では、発行参加手順と署名手段とが実施形態 1と異なる方法である。以 下に、本実施形態を説明する。 [装置構成]、 [装置の実装]、 [記号]、 [データの送受信 ]、および [^ンバー公開鍵リスト]は実施形態 1と同様であるため、その詳細な説明を 省略する。
[0059] [発行装置鍵生成手段 120]
発行装置 100は以下の ISSGEN2-l , " ' ,ISSGEN2-5を順に行う(図 27)。
ISSGEN2-1 : 発行装置記憶部 110から κ—Νを読み込む。(ステップ 120201) ISSGEN2-2: 素数 p— 1 , p— 2で積 N=p— lp— 2が κ— Nビットのものを選ぶ(ステツ プ 120202)。
ISSGEN2-3: QR (N)の元 a_0,a_lをランダムに選ぶ(ステップ 120203)。
ISSGEN2-4: (p— Ι ,ρ— 2)を発行装置 100秘密鍵 iskにセットし、 iskを発行装置記憶 部 110に書き込む(ステップ 120204)。
ISSGEN2-5: (N,a— 0,a— l ,a— 2)を発行装置 100公開鍵 ipkにセットし、 ipkを発行装 置記憶部 110に書き込み、そして ipkを出力する (ステップ 120205)。
安全性の観点力 言えば、 ISS2-1で (p— 1-1) /2, (p— 2-1) /2も素数であることが望 ましい。また、 ISS2-1で p— 1のビット数と p— 2のビット数はほぼ同じであることが望まし い。
[0060] 続いて、 [開示装置鍵生成手段 220]と [失効管理装置鍵生成手段 320]を実行するが 、これらの手段は実施形態 1と同様であるため、ここでは、詳細な説明を省略する。
[0061] [発行参加手段]
発行参加手段では発行装置 100とユーザ装置 400とがそれぞれ発行手段 130と参カロ 手段 420を行う。発行手段 130は発行第一手段と発行第二手段からなる。参加手段 42 0は参加第一手段、参加第二手段、参加第三手段からなる。
発行参加手段では以下の ISSJOIN2-l,〜,ISSJOIN2-9が順に行われる(図 28)。 ISSJOIN2-1: ユーザ装置 400は参加第一手段を行い、参加第一手段の出力を発行 装置 100に送信する(ステップ 920201)。
ISSJOIN2-2: 発行装置 100は受信したデータを発行装置記憶部 110に書き込む (ス テツプ 920202)。
ISSJOIN2-3: 発行装置 100は発行第一手段 130を行い、発行第一手段 130の出力を ユーザ装置 400に送信する(ステップ 920203)。
ISSJOIN2-4: ユーザ装置 400は受信したデータをユーザ装置記憶部 410に書き込む (ステップ 920204)。
ISSJOIN2-5: ユーザ装置 400は参加第二手段を行い、参加第二手段の出力を発行 装置 100に送信する(ステップ 920205)。
ISSJOIN2-6: 発行装置 100は受信したデータを発行装置記憶部 110に書き込む (ス テツプ 920206)。
ISSJOIN2-7: 発行装置 100は発行第二手段 130を行い、発行第二手段 130の出力を ユーザ装置 400に送信する(ステップ 920207)。
ISSJOIN2-8: ユーザ装置 400は受信したデータをユーザ装置記憶部 410に書き込む (ステップ 920208)。
ISSJOIN2-9: ユーザ装置 400は参加第三手段を行う(ステップ 920209)。
[0062] [参加第一手段]
ユーザ装置 400は以下の JOIN2-l-l,〜,JOIN2-l-4を順に行う(図 29)。
JOIN2-1-1: κ = ( κ― Ν、 κ―し、 κ― q、 κ― e、 κ '― e、 κ― c、 κ― S)と ipk= (N,a —0,a—l,a— 2)をユーザ装置記憶部 410から読み込む (ステップ 4202101)。
JOIN2-1-2: 0以上 q未満の整数 x,をランダムに選ぶ(ステップ 4202102)。
JOIN2-1-3: A" ' =a_r{x' } mod Nを計算し、 x'と A' ', をユーザ装置記憶部 41 0に書き込む(ステップ 4202103)。
JOIN2-1-4: A,,,を出力する(ステップ 4202104)。
[0063] [発行第一手段]
発行装置 100は以下の ISSUE2-1-1を行う(図 30)。
ISSUE2-1-1 : qビットの自然数 x,,をランダムに選び、 x,,を出力する(ステップ 13021 01)。
[0064] [参加第二手段]
ユーザ装置 400は以下の JOIN2-2-l ,〜,JOIN2-2-4を順に行う(図 31)。
JOIN2-2-1 : x,、 x,,、 qをユーザ装置記憶部 410から読み込む(ステップ 4202201)。 JOIN2-2-2: x, + x,,を qで割った商を Xとし、余りを Xとする(ステップ 4202202)。 JOIN2-2-3: A' = a と h=g を計算し、(A' ,h)の正当性証明文 pf— {A' ,h}を作成す る(ステップ 4202203)。
JOIN2-2-4: x、 A'、 pf_{A' } をユーザ装置記憶部 410に書き込む(ステップ 42022 04)。
なお、 pf— {Α' }の計算方法の詳細は [文献 1]に開示されているため、ここでは、その 説明を省略する。
[0065] [発行第二手段]
発行装置 100は以下の ISSUE2-2-l , ' ISSUE2-2-6を順に行う(図 32)。
ISSUE2- 2- 1 : κ = κ― Ν、 κ―し、 κ― q、 κ― e、 κ ― e、 κ― c、 κ― S)、ipk= (N,a — 0,a— l ,a— 2)、isk= (p— Ι ,ρ— 2)を発行装置記憶部 110から読み込む (ステップ 130 2201)。
ISSUE2-2-2: pf— {A' ,h}の正当性を検証し、もし正当でなければ発行参加手段 130 を終了する(ステップ 1302202)。
ISSUE2-2-3: κ '—eビットの素数 e,で、 e=2 κ—e}+e,も素数であるものをランダム に選ぶ(ステップ 1302203)。
ISSUE2-2-4: A = (a_0A' ) '~{ l/e} mod Nを計算する(ステップ 1302204)。
ISSUE2-2-5: (A,e' )を発行装置記憶部 110に書き込む(ステップ 1302205)。
ISSUE2-2-6: (Α,β' )を出力する(ステップ 1302206)。
なお、 pf— {Α' }の検証方法の詳細は [文献 1]に開示されているため、ここでは、その 説明を省略する。
[0066] [参加第三手段]
ユーザ装置 400は以下の JOIN2-3-l ,〜,JOIN2-3-5を順に行う(図 33)。
JOIN2-3-1: ユーザ装置記憶部 410から a— 0,a— l,a— 2,x,A", N, e'をユーザ装 置記憶部 410から読み込む (ステップ 4202301)。
JOIN2-3-2: e=2 Κ _Θ}+Θ'を計算する(ステップ 4202302)。
JOIN2-3-3: a— 0a—
mod Nが成立するかどうかを確認し、もし成立してい なければ発行参加手段 130を終了する(ステップ 4202303)。
JOIN2-3-4: Xをメンバー秘密鍵 mskにセットし、 mskをユーザ装置記憶部 410に書き 込む(ステップ 4202304)。
JOIN2-3-5: (A,e,e, ,h)をメンバー公開鍵 mpkにセットし、 mpkをユーザ装置記憶部 4
10に書き込む(ステップ 4202305)。
[0067] 続、て、 [登録手段 330]、 [失効手段 340]、 [鍵更新手段 430]、および [鍵更新内部関 数手段]を実行するが、これらの手段は実施形態 1と同様であるため、ここでは、その 詳細な説明を省略する。
[0068] [署名手段 440]
ユーザ装置 400は以下の SIGNl-Ι,···, SIGN1-14を行う(図 34、図 35)。
¾I Nl-l: κ=\ κ― Ν、 κ― L、 κ― q、 κ― e、 κ ― e、 κ― c、 κ― S)、ipk=(N,a― 0
,a_l,a_2)、 opk、 q、 rpk=(L,b,w)、 mpk=(A,e,e' ,h)、 msk=x、 Bをユーザ装置記憶部
410から読み込む(ステップ 440201)。
SIGN1-2: メッセージ Mを読み込む(ステップ 440202)。
SIGN1-3: Z—qの元 {Cipher}をランダムに選び、[暗号化手段]を行って Ciphe rを計算する(ステップ 440203)。
SIGN1-4: κ— N/2ビットの自然数 sをランダムに選び、 A— {COM}=Aa— 2~{s} mod
Nを計算する(ステップ 440204)。
SIGN1-5: κ—L/2ビットの自然数 p—{rev}をランダムに選び、 B— {COM}=Bw'{ p —{rev}} mod Lを計算する(ステップ 44020δ)。
SIGN1-6: t=e, p—{rev}を計算する(ステップ 440206)。
SIGN1-7: κ _Q+ κ _c+ κ _Sビットの自然数 μ _χ、 ( κ _Ν/2) + κ _c+ κ— Sビ ットの自然数 μ一 s、 κ ' _e+ κ _c+ κ— Sビットの自然数 μ,— e、 ( κ—L/2) +κ_ c+κ Sビットの自然数 t、Z qの元 {Cipher}, ( κ N/2) +κ c+ κ _S
ビットの自然数 μ _{mpk}、 ( κ _L/2) + κ _c+ κ— Sビットの自然数 μ—{rev}ラン ダムに選ぶ(ステップ 440207)。
SIGN1-8: Cipher, μ一 x、 —{Cipher} , opk、 gを入力して [暗号文用コミット手段] を行ってその出力 COM— {Cipher}を得る(ステップ 440208)。
SIGN1-9: μ _χ, μ一 s、 ,— e、 A— {COM}、 ipkを入力して [^ンバー公開鍵用コミ ット手段]を行つてその出力 C OM— { mpk }を得る(ステップ 440209)。
SIGN1-10: μ,― e、 μ _ B— {COM}、 rpkを入力して [失効データ用コミット手段] を行つてその出力 COM— { rev }を得る(ステップ 440210)。
SIGN1-11: c=Hash ( κ ,ipk,opk,q,rpk, Cipher,A_{COM} ,B_{COM} ,COM_{Ci pher} , COM— {mpk} ,COM_{rev} ,M)を計算する(ステップ 440211)。
¾I Nl— 12: τ _ x=cx+ μ _ χ、 τ _ s=cs+ μ _ s、 τ _ e=ce + μ _ e、 τ _ t=ct+ μ _tを計算する(ステップ 440212)。
SIGN1-13: τ _{Cipher}=c μ _{Cipher} + p _{Cipher} mod qを計算する(ステ ップ 440213)。
SIGN1-14: (Cipher,A_{COM} ,B_{COM} ,c, τ _x, τ _s, τ,— e, τ _t, τ _{Ci pher} , τ一 {mpk} , τ一 {rev})を Signatureにセットし、 Signatureを出力する (ステップ 4 40214) o
[0069] その後、 [暗号文用コミット手段]、 [メンバー公開鍵用コミット手段]、 [失効データ用コ ミット手段]、 [検証手段 520]、 [暗号文用コミット再生手段]、 [メンバー公開鍵用コミット 再生手段]、 [失効データ用コミット再生手段]、 [開示手段 230]、 [暗号鍵生成手段]、 [ 暗号化手段]、および [復号化手段]を実行するが、これらの手段は、実施形態 1と同 様であるため、ここでは、その詳細な説明を省略する。
[0070] 本実施形態でも、実施形態 1と同様に、ビット数が長いデータである eの代わりに別 のデータ e'を用いて登録手段、失効手段および鍵更新手段を行っているので、これ らの手段を実行する際の計算量が従来よりも少なくなる効果が得られる。
[0071] また、本発明は上記実施例に限定されることなぐ発明の範囲内で種々の変形が可 能であり、それらも本発明の範囲内に含まれることはいうまでもない。