JP2012032952A - 匿名認証システム、匿名認証方法、匿名認証プログラム - Google Patents

匿名認証システム、匿名認証方法、匿名認証プログラム Download PDF

Info

Publication number
JP2012032952A
JP2012032952A JP2010170956A JP2010170956A JP2012032952A JP 2012032952 A JP2012032952 A JP 2012032952A JP 2010170956 A JP2010170956 A JP 2010170956A JP 2010170956 A JP2010170956 A JP 2010170956A JP 2012032952 A JP2012032952 A JP 2012032952A
Authority
JP
Japan
Prior art keywords
authentication
user
verification
signature
data
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.)
Withdrawn
Application number
JP2010170956A
Other languages
English (en)
Inventor
Hisayuki Isshiki
寿幸 一色
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 JP2010170956A priority Critical patent/JP2012032952A/ja
Publication of JP2012032952A publication Critical patent/JP2012032952A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】被認証者装置のユーザが特定のグループに属するか否かを正確に認証判定する。
【解決手段】被認証者装置20から送り込まれた認証用データから暗号文を抽出すると共に、ユーザ装置により指定された検証補助装置40に対して暗号文を転送する検証装置30と、予め設定されたメンバリストにユーザ識別子が含まれる場合に、秘密鍵に対応して予め設定された公開鍵を利用して復号されたユーザ署名の検証を行い、この検証の結果を検証装置30に対して通知する検証補助装置40を備えた匿名認証システムであって、検証装置30は検証補助装置40から送り込まれたユーザ署名の検証結果が全て受理を示す場合に認証要求に対する認証成功を提示する。
【選択図】図1

Description

本発明は、被認証者のグループ所属に係る認証を行う認証システムに関し、特に、被認証者の匿名性を確保しつつ認証処理を行う匿名認証システムに関する。
ネットワークセキュリティの重要性が広く認識されている。セキュリティを実現するために、ネットワーク上の様々な認証サービスでは、特定の人に対してのみ許容されたサービスを会員にだけ提供される構成となっている。このため、これらのサービスにおいては、サービスの利用に際してサービス利用者が会員であるか否かについて、個人認証が行われる。
しかしながら、個人認証に係り各サービス利用者のネットワーク利用履歴などが収拾された場合、各サービス利用者がいつ、どこで、どのようなネットワークサービスを利用したかといった、個人のプライバシーに係る情報が被認証者の同意なく収集され、更には、この情報が漏洩されてしまうといった不都合が生じ得る。
このため、特定のグループに所属する被認証者の匿名性を高めるための施策として、例えば、サービスの会員全員に共通のIDとパスワードを発行し個人認証を行うといった手法が利用されている。
この手法では、会員全員が同一のIDとパスワードを用いて認証を行うため、個人が特定されることなく、認証処理を行うことが可能である。
しかしながら、会員のうちの誰かが、会員以外の人にパスワードを漏らしてしまった場合、会員にだけサービスを提供するためには、パスワードを再発行し、会員全員に新規のパスワードを伝えなくてはならず、そのための手間、工数、そして時間が膨大にかかってしまうといった不都合がある。
また、被認証者の振る舞いが規約などによって個人を特定するための行為であったとしても、管理者は被認証者を特定することができないといった不都合が生じ得る。
これに対して、被認証者の匿名性を保ちつつ、管理者が必要に応じて被認証者を特定又は除外することができ、さらには、複数回の認証要求に対して、それが同一の被認証者による要求行為であるか、異なる被認証者による要求行為であるかを誰でも判別することが可能な匿名認証方式が開示されている(特許文献1)。
また、この関連技術として、複数回の認証要求に対しそれらが同一の被認証者による認証要求行為であるか異なる被認証者による認証要求行為であるかを識別することなく、グループ署名を用いて、管理者による会員のなりすましを抑制しつつ、非認証者の認証処理を行う認証方式が開示されている(非特許文献1,2)。
また、上記非特許文献1および2の内容では、グループ内における被認証者を特定する処理を行うために、グループに属するメンバーについて、被認証者特定者の分類が行われる。
具体的には、例えば、グループに属するメンバーを課金のための被認証者の特定を行う被認証者特定者、規則に違反した被認証者を特定する被認証者特定者、被認証者の趣向を調査するための被認証者特定者などに分類し、これにより、例えば、自分の趣向を知らせたくない被認証者を、被認証者の趣向を調査するための被認証者特定者としては選択しない設定とすることにより、選択されていない被認証者特定者によって被認証者の特定処理動作が実行されるのを抑制することが可能となる。
特開2006−235661公報
J. Camenisch and J. Groth. Group signatures: better efficiency and new theoretical aspects. Forth Int. Conf. on Security in Communication Networks -- SCN 2004, LNCS 3352, Springer, 2005. Toshiyuki Isshiki, Kengo Mori, Kazue Sako, Isamu Teranishi, and Shoko Yonezawa. Using Group Signature for Identity Management and its Implementation. Workshop on Digital Identity Management (DIM2006), pp. 73--78.
上記特許文献1に記載の匿名認証方式としての営利目的の会員制サービスでは、リピーターに関する情報を管理者が得られるというメリットが考えられる。
しかしながら、この場合、何らかの理由により被認証者の特定が行われた場合には、この被認証者の過去の認証履歴がすべて明らかになってしまうといった不都合があり、更には、会員制サービスの管理者が会員全員のIDとパスワードを知っているため、管理者による会員のなりすましを行うことが可能であるという不都合がある。
しかしながら、被認証者特定者が1人によって被認証者を特定することができる構成では、被認証者特定装置によって、不必要に被認証者の特定が行われ、更には、この情報が公開されてしまう不都合が生じ得る。
そのため、例えば、10人の被認証者特定者のうち6人以上が被認証者の特定用に相互通信を行うことにより相互協調処理を行わなければ被認証者の特定が行えない、などの条件を付けられることが望ましい。このような条件を付けることにより、10人の被認証者特定者のうち、6人以上が上述の不必要な被認証者の特定に参加しない限り、被認証者の特定が行えなくなる。
また、被認証者の匿名性を確保しつつ、被認証者によって指定された1人以上の被認証者特定者が必要に応じて、匿名性を剥奪でき、更には、複数回の認証に対して、それが同一の被認証者による認証要求行為であるか否か、つまり、別の被認証者の行為であるかを判別されることなく、グループを管理するグループ管理者による会員のなりすまし行為を抑制し、かつ被認証者の認証データ生成に必要な計算コスト(計算負荷)を軽減することができないという不都合がある。
また、認証時にユーザは自らの署名を生成し、自らが指定する複数人の被認証者特定者に対応した複数個のグループの暗号化鍵を用いて、署名を暗号化し、生成された全ての暗号文を認証データとすることにより、上記の問題は解決可能であるが、この方法では、認証データおよび認証データ生成コストが膨大になってしまうという不都合がある。
[発明の目的]
本発明は、上記関連技術の有する不都合を改善し、ユーザ装置の利用者である被認証者の匿名性を確保しつつ被認証者のグループ所属に係る認証判定を確実に行う匿名認証システム、匿名認証方法を提供することを、その目的とする。
上記目的を達成するために、本発明に係る匿名認証システムは、ユーザ装置からの要求に応じてユーザ登録を行うと共に当該登録ユーザのグループをメンバリストにより管理するグループ管理装置と、前記ユーザ装置から送り込まれた認証用データに対するユーザ認証判定を行う認証検証装置と、前記メンバリストに基づき前記ユーザ装置の特定を行うユーザ特定装置と、前記ユーザ認証判定に先立ち前記認証検証装置からの要求に応じて前記認証用データの検証を行う検証補助装置とを備えた匿名認証システムであって、前記ユーザ装置は、前記認証検証装置から送り込まれた認証開始応答を予め設定された秘密鍵を利用することによりユーザ署名を生成するユーザ署名生成部と、自己であるユーザ特定装置を特定する処理を行う前記ユーザ特定装置と前記検証補助装置とをそれぞれ選択指定すると共に、当該選択指定されたユーザ特定装置および検証補助装置を示す特定装置指定情報を生成する特定装置指定部と、前記グループに対応して設定されたグループ用暗号化鍵を利用して前記ユーザ識別子およびユーザ署名を暗号化した暗号文を生成すると共に当該暗号文および前記特定装置指定情報を含むデータを前記認証用データとして前記認証検証装置に送信する認証用データ生成送信部とを備え、前記認証検証装置は、前記認証用データから前記暗号文を抽出すると共に当該暗号文を前記特定装置指定情報に基づき前記選択指定された検証補助装置に対して転送する暗号文転送部と、前記ユーザ装置を特定する必要が生じた場合に、前記特定装置指定情報で指定された前記ユーザ特定装置に対して利用者特定要求として送信する利用者特定要求部と、前記検証補助装置から送り込まれた前記検証結果に基き前記ユーザ認証判定を行う認証判定部とを備え、前記ユーザ特定装置は、前記利用者特定要求に応じて前記ユーザ装置を特定し前記ユーザ装置を示すユーザ装置特定情報を前記認証検証装置に通知するユーザ装置特定通知機能を備え、前記検証補助装置は、予め設定された前記グループ用復号鍵を利用して前記暗号文を前記ユーザ署名およびユーザ識別子に復号する暗号文復号部と、前記グループ管理装置から取得した前記メンバリストに前記ユーザ識別子が含まれる場合に、前記秘密鍵に対応して設定された公開鍵を利用して前記復号されたユーザ署名の検証を行うユーザ署名検証部とを備えた構成を有している。
また、本発明にかかる匿名認証方法は、ユーザ装置からの要求に応じてユーザ登録を行うと共に当該登録ユーザのグループをメンバリストにより管理するグループ管理装置と、前記ユーザ装置から送り込まれた認証用データに対するユーザ認証判定を行う認証検証装置と、前記ユーザ認証判定に先立ち前記認証検証装置からの要求に応じて前記認証用データの検証を行う検証補助装置とを備えた匿名認証システムにあって、前記ユーザ装置の認証を行う匿名認証方法であって、前記ユーザ装置が、前記認証検証装置から送り込まれた認証開始応答を予め設定された秘密鍵を利用することによりユーザ署名を生成し、前記グループに対応するグループ用暗号化鍵を利用して前記ユーザ識別子およびユーザ署名を暗号化した暗号文を生成すると共に、前記1または複数の検証補助装置をそれぞれ選択指定することにより当該選択指定された検証補助装置を示す特定装置指定情報を生成し、前記暗号文および前記特定装置指定情報を含む前記認証用データを前記認証検証装置に送信し、前記認証検証装置は、前記ユーザ装置から送り込まれた前記認証用データから前記暗号文を抽出すると共に、前記特定装置指定情報に基づき前記ユーザ装置が指定した検証補助装置に対して前記暗号文を転送し、前記検証補助装置は、予め設定された前記グループ用復号鍵を利用して前記暗号文を前記ユーザ署名およびユーザ識別子に復号し、前記グループ管理装置から取得した前記メンバリストに前記ユーザ識別子が含まれる場合に、前記秘密鍵に対応して予め設定された公開鍵を利用して前記復号されたユーザ署名の検証を行うと共に当該検証結果を前記認証検証装置に対して通知し、前記認証検証装置が、前記検証補助装置から送り込まれた前記ユーザ署名の検証結果に基き前記ユーザ認証判定を行うことを特徴としている。
本発明は、以上のように構成され機能するので、これによると、被認証者の匿名性を確保しつつ、ユーザ装置からの認証要求に応じてユーザ装置が指定した検証補助装置に対して認証要求を転送し、検証補助装置からの検証結果に基き前記認証要求に対する認証判定を行う認証検証装置を備えた構成としたことにより、ユーザ装置の利用者である被認証者の匿名性を確保しつつ被認証者のグループ所属に係る認証判定を正確に行うことを可能とする匿名認証システム、匿名認証方法を提供することができる。
本発明による匿名認証システムの一実施形態を示す概略ブロック図である。 図1に開示した匿名認証システムにおけるグループ管理装置の内部構成を示す概略ブロック図である。 図1に開示した匿名認証システムにおける被認証者装置の内部構成を示す概略ブロック図である。 図1に開示した匿名認証システムにおける検証装置の内部構成を示す概略ブロック図である。 図1に開示した匿名認証システムにおける検証補助装置の内部構成を示す概略ブロック図である。 図1に開示した匿名認証システムにおける被認証者特定装置の内部構成を示す概略ブロック図である。 図1に開示した匿名認証システムにおけるグループ登録処理の動作処理ステップを示すフローチャートである。 図1に開示した匿名認証システムにおける認証判定処理の動作処理ステップを示すフローチャートである。 図1に開示した匿名認証システムにおける被認証者特定処理の動作処理ステップを示すフローチャートである。 本発明による匿名認証システムの一実施形態を示す概略ブロック図である。 図10に開示した匿名認証システムにおける被認証者装置の内部構成を示す概略ブロック図である。 図10に開示した匿名認証システムにおける認証補助装置の内部構成を示す概略ブロック図である。 図10に開示した匿名認証システムにおける検証装置の内部構成を示す概略ブロック図である。 図10に開示した匿名認証システムにおける認証判定処理の動作処理ステップを示すフローチャートである。 本発明による匿名認証システムの一実施形態を示す概略ブロック図である。 図15に開示した匿名認証システムにおける構成内容を示す概略ブロック図である。 図15に開示した匿名認証システムにおける認証補助装置の内部構成を示す概略ブロック図である。 図15に開示した匿名認証システムにおける検証補助装置の内部構成を示す概略ブロック図である。 図15に開示した匿名認証システムにおける被認証者特定処理の動作処理ステップを示すフローチャートである。 図15に開示した匿名認証システムにおける被認証者特定処理の動作処理ステップを示すフローチャートである。
[実施形態1]
次に、本発明を実施するための実施形態について図面を参照して説明する。
尚、以下に示す実施形態の説明においては、例えば、a^{b}はaのb乗を意味し、a_bは、aに下付き添字bが付いた変数を示す。
また、ビットの連結を「|」と表記する(例えば、a=10(バイナリ表記)、b=01とした場合、a|b=1001を示すものとする)。
本発明の実施形態1としての匿名認証システムは、図1に示すように、グループに属する被認証者装置に係る情報を管理するグループ管理装置10、グループ管理装置10に対して認証要求を行う被認証者装置20と、認証要求を行った被認証者装置20のユーザが上記グループに所属している否かの検証を行う検証装置30と、検証装置30による検証の補助を行う検証補助装置40−1、40−2〜40−tと、被認証者装置におけるユーザID被認証者を特定する処理を行うと共に予め設定された条件に基づきグループ内における被認証者装置20の匿名性(ユーザIDの秘匿性)を剥奪する制御を行う被認証者特定装置50−1、50−2、・・・、50−tを備えた構成を有する。
尚、本実施形態1では、グループ管理装置10および被認証者装置20、グループ管理装置10と各検証補助装置40−1〜40−t、グループ管理装置10と各被認証者特定装置50−1〜50−t、被認証者装置20と検証装置30、検証装置30と各検証補助装置40−1〜40−t、はそれぞれインターネットなどのネットワーク介して通信可能に接続されているものとする。
また、本実施形態では、設定されたグループごとにグループ管理装置が設定されているものとする。尚、各グループに複数の被認証者装置や検証装置が存在する構成であってもよい。
ここで、各グループに対応したグループの暗号化鍵(enc_g−1〜enc_g−t)がユーザにより被認証者装置20に入力されるものとする。
また、グループの暗号化鍵enc_g−iに対応したグループの復号鍵dec_g−iが、検証補助装置40−i(40−1〜40−tそれぞれを示す)および被認証者特定装置50−i(50−1〜50−tそれぞれを示す)それぞれ入力されるものとする。
尚、これらの暗号化鍵および復号鍵からなるペア鍵は、グループごとに複数個存在するものとする。
グループ管理装置10は、図2に示すように、被認証者装置20からの要求(登録要求メッセージ)に応じて被認証者装置ユーザ(以下「ユーザ」という)のグループへの参加登録処理を行うと共に、登録したユーザに割当てたユーザIDを被認証者装置20に送信する登録処理部10−1と、グループに在籍するメンバーユーザのリストを登録情報リスト(以下、メンバリスト)として記憶するメンバー登録情報記憶装置10−2を有する。
被認証者装置20は、図3に示すように、グループ管理装置10に登録要求メッセージを送信する登録要求部20−1と、グループ管理装置10によって割り振られたユーザIDと、ユーザの署名鍵および検証鍵ペアとを対応付けて記憶するID・鍵ペア記憶装置20−2と、検証装置30に対して認証要求を示す認証要求メッセージを送信する認証要求部20−3と、認証データが生成される際にユーザの署名鍵を用いて署名生成を行う署名生成部20−4と、グループの暗号化鍵および認証者特定者を指定する論理構造を受信した場合に認証データを生成する認証データ生成部20−5を有する。
検証装置30は、図4に示すように、被認証装置20(認証要求部20−3)からの認証要求を受信した場合にランダムに選択生成されるチャレンジ(チャレンジコード)を生成するチャレンジ生成部30−1と、被認証装置20(認証要求部20−3)からの認証データを受信した場合に、この認証データに応じた検証補助要求を検証補助装置40に送信する検証補助要求部30−2と、検証補助装置40から送り込まれた検証補助結果に基づく検証を行う検証部30−3と、認証処理(結果)の履歴情報としての認証データを記憶する認証データ記憶装置30−4と、認証データ記憶装置30−4に記憶されている認証データに基づき匿名性剥奪要求を生成すると共に、この匿名性剥奪要求を予め設定された異なる被認証者特定装置(50−1、・・・、50−t)それぞれに対して送信する被認証者特定要求部30−5を有する。
検証補助装置40−iは、図5に示すように、検証装置30から送り込まれた検証補助要求に応じて認証データの復号処理を行う認証データ復号部40−1−1と、グループ管理装置10から取得したメンバリストに基づき復号した認証データにおける署名の検証を行う署名検証部40−i−2を有する。
尚、検証補助装置40−1〜40−tはそれぞれ、上記検証補助装置40−iと同一の内部構成を有するものとする。
被認証者特定装置50−1は、図6に示すように、検証装置30から送り込まれた匿名性剥奪要求とユーザが指定した論理構造を満たすグループの復号鍵を受信し、認証データの復号処理を行う認証データ復号部50−i−1と、グループ管理装置10から取得したメンバリストに基づき被認証者(ユーザ)の特定を行う被認証者特定部50−i−2を備えている。
本実施形態では、公開鍵暗号方式および電子署名方式を利用して、上記匿名認証システムを実現する。
ここで、本実施形態で利用される公開鍵暗号方式について、説明する。
本実施形態1では、公開鍵暗号方式として、例えば、文献「Design and Analysis of Practical Public-Key Encryption Schemes Secure against Adaptive Chosen Ciphertext Attack」(非特許文献3)に記載されている公開鍵暗号方式(以下、「Cramer-Shoup 暗号方式」という)を用いることができる。
さらに、本実施形態では電子署名方式として、文献「Signature Schemes Based on the Strong RSA Assumption」(非特許文献4)に記載されている電子署名方式(以下、Cramer-Shoup 署名方式)が利用可能であるものとする。
また、本実施形態では、例えばRSA−OAEP暗号方式など、暗号文からメッセージに関する情報の漏洩を有効に抑制し得ること、つまり、情報漏洩に対する安全性が数学的に証明可能な他の公開鍵暗号方式を利用する構成であってもよい。
更に、本実施形態では、非特許文献4に記載のCramer-Shoup署名方式などに限られず、例えばEl Gamal署名方式などのように、ある検証鍵で受理される署名データがその検証鍵に対応した署名鍵を知らない場合に生成することが困難であることが数学的に証明可能な他の電子署名方式を利用する設定であってもよい。
さらに、本実施形態では、上記文献「Randomness re-use in multi-recipient encryption schemes」(非特許文献5)に記載されている、複数回の暗号化を行う際に、同じ乱数を用いても安全な方式を利用する設定であってもよい。
本実施形態では、非特許文献5に示される技術を利用することにより、認証データ生成に必要な乱数の個数を減らすことができ、更には、認証データサイズを小さくするによる効率化を行うことが可能となる。
例えば、同じ被認証者により異なる被認証者特定者を指定した認証データが作成される手法では、認証データのデータ長は、指定した被認証者特定者の数分の認証データと、ゼロ知識証明のデータ長の合計となる。
すなわち、この手法では、被認証者特定者を1人としたときのデータ長をA、ゼロ知識証明のデータ長をBとした場合、被認証者特定者をt人としたときのデータ長はt×A+Bとなる。
これに対して、本実施形態で利用される上記非特許文献5に記載の技術では、認証データのデータ長はA+(t−1)a+B(ただし、a<Aとする)とすることできる。
ここで、El Gamal暗号について説明する。El Gamal暗号は、公開鍵暗号方式の一つの手法であって、DDH仮定と呼ばれる数学的な仮定をおくことにより、その安全性を証明可能な公開鍵暗号方式であることが知られている。
El Gamal暗号の処理要素は、以下に示す鍵セットアップ、暗号化処理、復号処理の3つの構成要素からなり、本実施形態におけるグループ管理装置などで計算が行われるものとする。
まず、El Gamal暗号における処理要素としての鍵セットアップ処理の計算手順について説明する。ここでは、セキュリティパラメータk、kビットの素数q、位数qの群G、群Gの生成元gが鍵セットアップの入力値として与えられているものとする。
また、qの剰余群を、Z_q={0,1,2,...,q−1}とし、このとき、Z_qからランダムに要素xを選ぶものとする。
さらに、X=g^xを計算する。このとき、公開鍵pk=(q,g,X)、秘密鍵=xとなる。
次に、El Gamal暗号における処理要素としての、暗号化処理の計算手順について説明する。
ここでは、前述の鍵セットアップ処理によって、公開鍵pk=(q,g,X)が生成され、この値が暗号化処理の入力値として与えられているものとする。また、このとき暗号化されるメッセージをMとする。
ここで、Z_qの要素rをランダムに選出し、Y=g^rを計算すると共に、W=M(X)^rを計算し、これに基づき、暗号文C=(Y,W)を出力する。
次に、El Gamal暗号における処理要素としての、復号処理の計算手順について説明する。
ここでは、前述の鍵セットアップによって生成された公開鍵pkに対応する秘密鍵sk=xが、復号処理における入力値として与えられているものとする。
また、前述の暗号化処理によって生成された暗号文C=(Y,W)も入力値として与えられているものとする。
ここでは、T=Y^xを計算すると共に、このTを利用して、M=WT^{−1}を計算し、最後に、このMを平文として出力する。
次に、El Gamal署名方式について説明する。
El Gamal署名方式は、電子署名方式のひとつであって、離散対数仮定と呼ばれる数学的な仮定をおくことにより、安全性を証明できる電子署名方式であることが知られている。
El Gamal署名方式は、鍵セットアップ、署名生成処理、署名検証処理の3つの処理要素からなる。
ここで、Hを衝突困難な、つまり、H(x)=H(y)を満たす(x,y)を見つけることが困難であるハッシュ関数とする。また、素数pをZ_p上で離散対数問題が困難であるような素数とする。さらに、g_sをZ_pの生成元とする。
まず、鍵セットアップについて説明する。この鍵セットアップでは、はじめに、(p,g_s)を鍵セットアップの入力として与えられる。次に、Z_pからランダムにx(ただし、xは0以外)を選ぶ。ここで、y=g_s^xを計算し、最後に、検証鍵vk=(p,g_s,y)、署名鍵sk=xとして出力する。
次に、署名生成(処理の内容)について説明する。
ここでは、署名対象メッセージM、署名鍵sk、検証鍵vkが署名生成処理の入力値として与えられているものとする。
ここで、Z_pからランダムにk(ただし、kは0以外)を選出し、r=g_s^kを計算し、次いで、s=(H(M)−xr)k^{−1}mod(p−1)を計算する。ここで、もしs=0である場合は初めからやり直す。これにより、σ=(r,s)を署名として出力する。
次に、署名検証の処理内容について説明する。
まず、平文M、署名σ=(r,s)、検証鍵vkが、署名検証処理の入力(値)として与えられる。ここで、0<r<pかつ0<s<p−1であることを確認する。
次いで、g_s^{H(M)}=y^rr^smodpであることを確認し、上記両者が確認された場合に、署名σを受理し、この受理(内容)を出力する。ここで、署名σが受理されない場合、不受理を示す情報を出力する。
次に、本実施形態である匿名認証システムの構成内容について、詳説する。
ここでは、本実施形態である匿名認証システムにおいて、El Gamal暗号方式および El Gamal署名方式を利用して、匿名認証処理を行う場合について、説明する。
尚、本実施形態では、El Gamal暗号の暗号化鍵として暗号化鍵enc_g−i=(q,g,X_i)が公開されているものとする。また、これに対応する復号鍵は、復号鍵dec_g−i=(x_i)であるものとする。
さらに、グループに加入しようとするユーザUは、El Gamal署名の署名鍵sk_u=(X_u)、および、これに対応する検証鍵vk_u=(p,g_s,y)を有するものとする。
まず、認証処理の実行に先立ち行われる事前処理としての入会登録処理の内容について説明する。
ユーザUにより署名鍵・検証鍵のペア(sk_u,vk_u)が被認証者装置20に入力された場合に、登録要求部20−1は、受信した検証鍵vk_uに基づき登録要求(req_r)を設定しグループ管理装置10に送信する(登録要求送信機能)。
このとき登録要求(req_r)には、ユーザUの検証鍵vk_u、および住所、氏名、年齢など、登録に必要な個人情報が含まれているものとする。
登録要求req_rを受信した登録処理部10−1は、ユーザUに対してユーザU固有のIDであるID_uを発行し、このID_uを被認証者装置20に送信する(ユーザID設定機能)。
ただし、登録について予め設定された条件(例えば、性別制限、年齢制限、2重登録禁止など)がある場合、登録処理部10−1は、登録要求(req_r)の内容に基づき、登録処理部10−1が審査を行う(登録要求審査機能)。
ここで、登録処理部10−1は、条件を満たさないユーザUからの登録要求であった場合、登録不可を被認証者装置20に送信する設定であってもよい。
尚、ユーザが登録不可であった場合、そのユーザに対して、以下に示す処理を中止する。
また、登録処理部10−1は、メンバー登録情報記憶装置10−2よりメンバリスト(List)を取得し、(ID_u,req_r)をメンバリスト(List)に追記することによりメンバリストを更新するメンバリスト更新機能を有する。ここで、登録処理部10−1は、更新されたメンバリストListをメンバー登録情報記憶装置10−2に記憶するものとする。
また、登録処理部10−1からのID_uを受信した被認証者装置20は、(ID_u,(sk_u,vk_u))をID・鍵ペア記憶装置20−2に記憶するユーザID・鍵ペア格納機能を有する。
(認証処理(1))
次いで、本実施形態における、認証処理の処理内容について説明する。
ここでは、ユーザUが、署名鍵sk_u、検証鍵vk_uの登録を完了しており、これにより、ID・鍵ペア記憶装置20−2には、(ID_u,(sk_u,vk_u))が予め記憶されているものとする。
被認証者装置20の認証要求部20−3は、検証装置30に認証要求(req_a)を送信する認証要求送信機能を有する。このとき、認証要求req_aは、システムに予め定められた定型文であってよい。
また、認証要求(req_a)を受信した検証装置30のチャレンジ生成部30−1は、認証要求(req_a)に対応してランダムにチャレンジ(nonce)を選出すると共に、このチャレンジnonceを被認証者装置20に送信する(チャレンジ返信機能)。
チャレンジ(nonce)を受信した署名生成部20−4は、ID・鍵ペア記憶装置20−2に記憶されているsk_uを用いてチャレンジ(nonce)に署名データを付与する(署名データ付与機能)。
ここで、署名生成部20−4は、まずZ_pからランダムにkを選び、r=g_s^kを計算し、更に、s=(H(nonce)−xr)k^{−1}mod(p−1)を計算する。
尚、ここで算出結果がs=0である場合、署名データ付与機能を初めからやり直すものとする。ここで、署名生成部20−4は、算出された値からなるσ=(r,s)を署名データとして設定する。
認証データ生成部20−5は、被認証者特定者を指定する、被認証者におり生成された論理構造と、グループの暗号化鍵(enc_g−1=(q,g,X_1),...,enc_g−t=(q,g,X_t))を受信した場合に、署名データ(σ)の暗号文を作成する(署名データ暗号化機能)。
ここでは、被認証者により入力された論理構造により指定された各被認証者特定装置50−i(1≦i≦t)が単独で被認証者を特定できる場合、すなわち、「被認証者特定装置のうち何れか1台が特定できる(OR構造)」という場合について説明するものとする。
尚、他に、異なる被認証者特定装置(例えば、50−aと50−b)が相互に連携処理を行うことにより、被認証者を特定する(AND構造)場合や、例えば、10台の被認証者特定装置のうち、予め設定された台数の装置が相互に連携処理を行うことにより、被認証者を特定することができる(threshold構造)場合などが設定可能であるものとする。これらのケースについては後述する。
また、本実施形態では、上記OR構造およびAND構造を組み合わせることにより、設定された任意の論理構造に基づき、被認証者の特定を行う構成としてもよいものとする。
例えば、3台の被認証者特定者装置A,B,Cのうち、任意の2台で特定可能という条件下においては、「AおよびB」または「BおよびC」または「AおよびC」が相互に連携処理を行うことにより、被認証者を特定することが可能となり、これは、OR構造とAND構造を用いてthreshold構造が実現されることを意味する。このようにして、OR構造とAND構造を組み合わせることにより、任意の論理構造が構成できることは広く知られている。
ここで、本実施形態における認証データ生成部20−5は、Z_{q} からランダムに値(ここでは「r」)を選出すると共に、このrを用いて、Y=g^r, W_1=(ID||σ)X_1^r, …,W_t=(ID||σ)X_t^r をそれぞれ計算する。ここで、予め設定された暗号文CをC=(Y, W_1, …, W_t) とする。
次いで、被認証者装置20(認証要求部20−3)は、認証データとしてのresponse(response=(nonce, C)とする)を検証装置30に送信する。
検証装置30の検証補助要求部30−2は、被認証者装置20から送り込まれた認証データ(response)に基づき、暗号文Cを含む検証補助要求データ(req_v=response)を設定すると共に、この検証補助要求データを検証補助装置40−1〜40−tそれぞれに対して送信する(検証補助要求送信機能)。
検証補助装置40−i(40−1〜40−t)では、検証補助要求データ(req_v)と
グループの復号鍵(dec_g-i=(x_i))を受信した場合に、認証データ復号部40−i−1が、検証補助要求データ(req_v)に含まれる暗号文(C=(Y, W_1, …, W_t))から、C_i=(Y,W_i) を抽出すると共に、このC_iを復号する処理を行う(復号処理機能)。
ここで、認証データ復号部40−i−1における上記復号処理の内容について、詳説する。
まず、検証補助装置40−iは、T_i=Y^{x_i} を計算し、次いで、算出されたT_i を利用してM=W_iT_i^{-1} を計算する。
ここで、認証データ復号部40−i−1は、得られたメッセージMを(ID||σ)とパースする、つまり、MをIDおよびσ=(r,s)に分解する(復号処理終わり)。
次に、署名検証部40−2が、グループ管理装置10のメンバー登録情報記憶装置10−2に記憶されているメンバリスト(List)を受信すると共に、メンバリスト(List)にIDが記載されているか否かの確認判定を行う。
ここで、署名検証部40−2は、IDが記載されていない場合、不受理である旨を示す検証補助データ(ans_v)を検証装置30に送信する。
一方、メンバリストにIDが記載されている場合、IDに対応する検証鍵(vk_u=(p, g_s, y_u)) を用いて、署名データ(σ)の検証を行う(検証処理)。
ここで、署名検証部40−2における上記検証処理の内容について説明する。
まず、署名検証部40−2は、値r、sについて、0<r<p かつ 0<s<p-1が成り立つか否かを確認し、次に、g_s^{H(nonce)}=y^r r^s mod p が成立することを確認する。
上記すべてが成立していることが確認された場合に、署名検証部40−2は、「受理」を示す署名検証結果(情報)を設定し、それ以外の場合は、「不受理」を示す署名検証結果(情報)を設定する(検証処理の内容説明終わり)。
次いで、署名検証部40−i−2は、署名検証結果(受理または不受理を示す)を検証補助データ(ans_v-i)として検証装置30に送信する。
次に、検証部30−3は、署名検証部40−i−2それぞれから検証補助データ (ans_v-1〜ans_v-t)を受信した場合に、受信したすべての検証補助データの検証結果が「受理」を示す場合に、認証結果(result)を認証成功として出力する。
一方、検証部30−3は、受信した検証補助データにひとつでも(つまり、一つ以上)「不受理」を示す検証結果が含まれていた場合、認証結果(result)を認証失敗として出力する。
さらに、検証部30−3は、認証成功を示す認証データ(response)を、認証データ記憶装置30−4に記憶する。尚、検証部30−3は、認証成功を示す認証データと同様に、認証失敗を示す認証データも認証データ記憶装置30−4に対して格納する設定であってもよい。
次に、本実施形態における、認証データに基づき被認証者の特定を行う処理について説明する。
(被認証者特定処理(1))
次に、認証データから被認証者(被認証者装置)の特定を行う処理(被認証者特定処理)について説明する。
ここでは、検証装置30の認証データ記憶装置30−4に記憶された認証データ (response_i)を生成した被認証者のIDを特定する場合の動作処理ついて説明する。
尚、被認証者特定装置50−iそれぞれが単独で認証データに基づき被認証者(被認証者のID)を特定できるものとする(OR構造)。
まず、検証装置30の被認証者特定要求部30−5は、認証データ記憶装置30−4に記憶されている認証データ(response_i=(nonce_i, C_i))を取得すると共に、この認証データに基づき被認証者特定要求データ(req_t=Rresponse_i)を生成して被認証者装置50−iに送信する。
ここで、認証データ復号部50−i−1は、グループ管理装置10から予め送り込まれたグループの復号鍵(dec_g-j=(x_j))と被認証者特定要求データ(req_t)とを取得する。
このとき、認証データ復号部50−i−1は、被認証者特定要求データ(req_t)に含まれる暗号文(C_j=(Y,W_j))から、T=Y^{x_j}を計算する。
次に、認証データ復号部50−i−1は、M_j=W_jT^{−1}を計算し、次いで、上記結果得られたメッセージ(M_j)を(ID_i||σ_i)とパースすることにより、メッセージ(M_j)をID_iおよびσ_i=(e_i, y_i, y'_i)に分解する処理を行う。
次に、被認証者特定部50−i−2が、グループ管理装置10のメンバー登録情報記憶装置10−2に記憶されているメンバリスト(List)を取得すると共に、ID_iがメンバリスト(List)に記載されているか否かの確認を行う(ID_i確認判定)。
ここで、被認証者特定部50−i−2は、ID_iがメンバリスト(List)に記載されている場合、IDに対応する検証鍵(vk_u=(p, g_s, y_u))を用いて、署名データ(σ)の検証処理を行う。
ここで、被認証者特定部50−i−2における上記検証処理内容について説明する。
まず、被認証者特定部50−i−2は、0<r<pかつ0<s<p−1を確認し、次に、g_s^{H(nonce)}=y^r・r^s mod p が成立することを確認する。
このとき、すべての(g_s^{H(nonce)}=y^r・r^s mod p)が成立していた場合に、被認証者特定部50−i−2は、「受理」を示す署名検証結果を設定する。
一方、g_s^{H(nonce)}=y^r r^s mod pが成立していない署名データが一つでも含まれていた場合には、被認証者特定部50−i−2は、「不受理」を示す署名検証結果を設定する(検証処理内容の説明終わり)。
次いで、被認証者特定部50−i−2は、上記署名検証結果(受理または不受理を示す)を検証補助データ(ans_v−i)として検証装置30に送信する。
検証部30−3は、異なる被認証者特定装置50−iから受信した検証補助データ(ans_v−1〜ans_v−t)のすべてが署名検証結果として「受理」を示す場合に、認証結果(result)を認証成功として出力する。
一方、検証部30−3は、受信した検証補助データ(ans_v−1〜ans_v−t)における署名検証結果として「不受理」を示すものが一つでも(つまり、1以上)含まれていた場合、認証結果(result)を認証失敗として出力する。
また、検証部30−3は、検証結果が受理であった場合に、認証データ(response_i)は、対応するID(ID_i) を持つユーザにより作成された認証データであることを示すメッセージを出力する。ID(ID_i)がメンバリスト(List)に記載されていない、あるいは、署名データ(σ_i)の検証結果が不受理であった場合、検証部30−3は、被認証者特定を要求された認証データ(response_i)は受理されず、受理されない認証データであると出力する。
(被認証者特定処理(2):AND構造)
次に、被認証者が指定した被認証者特定装置を示す論理構造情報に基づき、指定された複数の被認証者特定装置が相互に協力した場合に、被認証者の特定が可能となる構造(AND構造)について、説明する。
ここでは、例えば、異なる被認証者特定者としての被認証者特定者Aと被認証者特定者Bとが協力(相互連携処理を行わなければ)しなければ、被認証者を特定することができないものとする(AND構造)。
ここでは、被認証者特定者Aに対応したグループの暗号化鍵(enc_g−A=(q, g, X_A))、被認証者特定者Bに対応したグループの暗号化鍵enc_g−B=(q, g, X_B)、それぞれの秘密鍵を x_A, x_B とする。
このとき、enc_g-AB = (q, g, X_A・X_B) と公開鍵を置き換え、El Gamal 暗号の暗号化処理を行う。
また、その暗号文の復号処理時に、秘密鍵を(x_A+x_B)と置き換えることにより復号処理が可能となる。
したがって、検証補助装置40−Aおよび40−B、被認証者特定装置50−Aおよび50−Bは、検証補助および被認証者特定処理の際に、相互に通信を行うことによりそれぞれ(x_A+x_B)を生成し、(x_A+x_B)を秘密鍵とすることにより復号処理を行う。
これにより、指定された複数の被認証者特定装置(被認証者特定者AおよびBとする)が相互に協力した場合に被認証者の特定することが実現される。
(認証処理3:threshold構造)
次に、被認証者が指定した被認証者特定装置を示す論理構造情報に基づき、予め設定されたグループm人の被認証者特定者(m台の被認証者特定装置)のうちのn人(n台)以上の被認証者特定装置が相互に協力した場合に被認証者の特定が可能となる構造(threshold構造)について、説明する。
ここでは、上記OR構造およびAND構造を組み合わせると共に、El Gamal 暗号を利用することにより、上記threshold構造を実現する。
まず、グループ管理装置(グループ管理者)10は、 グループを構成するm台の被認証者特定装置の数に対応してm 個のグループの暗号化鍵 (enc_g-1=(q,g,X_1),enc_g-2=(q,g,X_2),…,enc_g-m=(q,g,X_m))と、それぞれに対応した秘密鍵(x_1,・・・, x_m)を生成する(ペア鍵生成処理)。
ここで、グループ管理装置(グループ管理者)10におけるm 個(台)の被認証者装置から構成されるグループの暗号化鍵および秘密鍵を生成する処理(上記ペア鍵生成処理)について、説明する。
まず、登録処理部10−1は、グループの秘密鍵xを生成する。ここで、xは、Z_qの元値であるものとする。また、X_0=g^x とし、enc_g-0=(q,g,X_0)をグループの暗号化鍵として公開する。
次いで、登録処理部10−1は、次数(n−1)のランダムな多項式 f(t)を設定する。尚、f(t)は、f(0)=xを満たすものとする。つまり、f(t)= x + r_1 t + r_2 t^2 +… +r_{n-1} t^{n-1} であるものとする。x_1=f(1), x_2=f(2),・・・,x_m=f(m) とし、更には、X_1=g^{x_1}, X_2=g^{x_2},…, X_m=g^{x_m} とする(ペア鍵生成処理終わり)。
上述のように、m人の被認証者特定者のうち,n人以上が協力しないと被認証者を特定できない、スレッショルド構造における認証処理では、被認証者装置20は、グループの公開鍵(enc_g−0=(q, g, X_0)) を用いて「El Gamal暗号」の暗号化処理を行う。
また、検証補助および被認証者特定処理においては、以下に示すように、復号処理が行われる。尚、ここでは、被認証者特定処理における場合について説明する。
ここで、入力された暗号文を C=(Y,W)とする。また、復号処理に参加する被認証者特定装置の有する秘密鍵をそれぞれx_{i_1},・・・,x_{i_n}とする。
このとき、被認証者特定装置(被認証者特定者)i_jは、λ_{0,1}=(i_1)/(i_1−i_j)・(i_2)/(i_2−i_j)・…・(i_n)/(i_n−i_j)を計算する。ただし、(i_j)/(i_j−i_j)は含まないものとする。
さらに、被認証者特定装置(被認証者特定者)i_jは、Y_{i_j}=Y^{x_{i_j}・λ_{0,1}}を計算し、被認証者特定装置50(i_1,・・・,i_n)に送付する。
すべてのY_{i_1},・・・,Y_{i_n}を受信した被認証者特定装置50−iは、M=W/(Y_{i_1}・・・・・Y_{i_n})を計算する(ここで、Mを復号結果とする)。
尚、上述の復号方法では、一般にシャミアの秘密分散法を元にして構成されているため、n台未満の被認証者特定装置による連携処理では復号を行うことができない。
m人中任意のn人以上の被認証者特定装置(50−1〜50−t)による連携処理によって復号が可能となる。
また、これらの暗号化処理および復号処理を組み合わせることにより、被認証者は任意の論理構造を指定することが可能となる。
尚、本実施形態1である匿名認証システムにおけるグループ管理装置10は、例えば、グループを管理する事業者(以下、グループ管理事業者と呼ぶ)により運営されるサーバコンピュータであるものとする。このグループ管理事業者は、例えば、インターネットサービスプロバイダであってもよい。
また、被認証者装置20は、例えば、ユーザにより操作されるパーソナルコンピュータであるものとする。また、このユーザは、例えば、インターネットサービスプロバイダの会員であるものとする。
検証装置30は、例えば、ユーザの登録確認を行い、サービスの提供を行う事業者(以下,サービスプロバイダと呼ぶ)によって運営されるサーバコンピュータであるものとする。
また、このサービスプロバイダは、例えば、公共の無線LANサービスを提供し、上記検証装置30は、この無線LANサービスシステムにおける無線アクセスポイントであってもよい。
検証補助装置40は、例えば、検証装置30とインターネットなどで接続され、検証装置30からの検証補助要求に応じてサービス提供を行う事業者(以下、検証補助事業者と呼ぶ)により運営されるサーバコンピュータであってもよい。
また、この検証補助事業者は、例えば、インターネットサービスプロバイダのオンライン検証部門であってもよい。
各被認証者特定装置50−1〜50−tは、例えば、必要に応じて被認証者の匿名性を剥奪する事業者(以下、「被認証者特定事業者」という)によって運営されるサーバコンピュータであって、
この被認証者特定事業者は、例えば、インターネットサービスプロバイダの課金部門、ユーザの趣向情報の統計データを生成する部門、違反など問題行為を行ったユーザを特定する部門などであるものとする。
ここでは、それぞれ異なる被認証者特定事業者であり、異なる被認証者特定装置を動作させていてもよい。
上記の事業形態においては、まず、グループ管理事業者が、グループの暗号化鍵enc_g−1からenc_g−tと、それぞれに対応したグループの復号鍵dec_g−1〜dec_g−tを決定し、
グループに関する情報とともにグループの暗号化鍵enc_g−1〜enc_g−tを、例えば新聞・ホームページなどによって公知する。
さらに、グループの復号鍵dec_g−1〜dec_g−tを、検証補助事業者および被認証者特定事業者に送付する設定であってもよい。
次に、ユーザがグループ管理事業者の管理するグループへの入会を希望する。
グループ管理事業者は、入会を希望してきたユーザがグループに加入する条件を満たしているか(年齢など)を確認し、条件を満たすユーザに対して入会手続きを行う(例えば、会員証を発行し、ユーザに送付する)。
次に、ユーザが、被認証者装置20にグループの暗号化鍵enc_g−1〜enc_g−tを入力し、認証データを検証装置30に送信させる(例えば、無線LANサービス
を利用する際に、インターネットサービスプロバイダの会員であることを証明する認証データを送付する)。
認証データを受信した検証装置30は、検証補助要求を検証補助装置40−1〜40−tに送信し、検証補助データを得ることにより検証を行い、認証結果を出力する(例えば、アクセスポイントは、ユーザがインターネットサービスプロバイダの会員である事を確認し、無線LANサービスを提供する)。
さらに、検証事業者は、被認証者特定装置50−iに対して、各ユーザの認証データを含む被認証者特定要求を送信させる。
被認証者特定事業者は、このようにして送信されたアンリンカブル認証データを受信して、被認証者の特定を行う(例えば、無線LANサービスを利用したユーザを特定する事業者に認証データを送付した場合、この事業者は被認証者の特定を行う事により、その利用状況により課金を行う)。
尚、グループ管理事業者、検証補助事業者、被認証者特定事業者は、異なる事業者であっても、同一事業者であってもよい。
また、匿名認証システムの場合には、例えば、認証補助装置は認証補助を行う事業者(以下、認証補助事業者と呼ぶ)によって運営される。なお、グループ管理事業者と認証補助事業者は、同一事業者であってもよい。
[実施形態1の動作説明]
次に、上記実施形態1である匿名認証システムにおける動作について詳説する。ここでは、El Gamal暗号方式およびEl Gamal署名方式を用いて、以下に示す、登録処理、認証処理、および被認証者特定処理が実施されるものとする。
尚、ここでは、グループの暗号化鍵をenc_g_iとし、El Gamal暗号の暗号化鍵enc_g−i=(q,g,X_i)は予め公開されているものとする。また、この暗号化鍵に対応する復号鍵(dec_g−i)をdec_g=(x_i)とし、さらに、グループに加入しようとするユーザUは、El Gamal署名の署名鍵(sk_u=(x_u))、およびこの署名鍵に対応する検証鍵(vk_u=(p,g_s,y))を有するものとする。
まず、認証処理に先立って行われる入会登録処理(事前登録処理)について、図7のフローチャートに基づき説明する。
ここでは、上述のように、署名鍵sk_u、および検証鍵vk_uを有する被認証者装置(ユーザU)20が登録を行うものとして説明する。
尚、ユーザUの署名鍵・検証鍵ペア(sk_u,vk_u)は、予めICカードやフラッシュメモリなどのメモリ機器に予め格納されており、被認証者装置20はこのメモリ機器にアクセスするためのインターフェースを有しているものとする。
まず、ユーザUにより上記署名鍵・検証鍵からなるペア鍵(sk_u,vk_u)が被認証者装置20に入力される(REG10)。
登録要求部20−1は、入力された検証鍵vk_uに基づき登録要求(req_r)を生成すると共に、この登録要求(req_r)をグループ管理装置10に送信する(REG20)。
尚、登録要求(req_r)には、ユーザUの検証鍵vk_uおよび、ユーザUの住所、
氏名、年齢など、登録に必要な個人情報が含まれているものとする。
次いで、登録要求(req_r)を受信した登録処理部10−1は、ユーザUに対する固有のIDであるユーザID(ID_u)を発行すると共に、このID_uを被認証者装置20に送信する(REG30)。
ここで、検証鍵および個人情報の登録に何らかの条件(性別制限、年齢制限、2重登録禁止など)が予め設定されている場合、登録処理部10−1は、登録要求(req_r)の内容に基づき、登録処理部10−1が審査を行うものとする。
このとき、条件を満たさないユーザUからの登録要求であった場合、登録処理部10−1は、登録不可を示すメッセージを被認証者装置20に対して送信する設定であってもよい。尚、ユーザが登録不可であった場合、そのユーザに対する以降のやり取りは中止する。
登録処理部10−1は、メンバー登録情報記憶装置10−2からメンバリスト(List)を取得すると共に、メンバリスト(List)に(ID_u,req_r)を追記し、更新されたメンバリスト(List)をメンバー登録情報記憶装置10−2に格納する(REG40)。
また、ユーザID(ID_u)を受信した被認証者装置20は、(ID_u,(sk_u,vk_u))を、ID・鍵ペア記憶装置20−2に記憶する(REG50:登録終了)。
次に、本実施形態における認証処理(1)の動作について、図8のフローチャートに基づき説明する。
ここでは、ユーザUが、署名鍵(sk_u)および検証鍵(vk_u)の登録を済ませており、このため、ID・鍵ペア記憶装置20−2には、(ID_u,(sk_u,vk_u))が予め記憶されているものとする。
まず、被認証者装置20の認証要求部20−3は、検証装置30に対して認証要求(req_a)を送信する(AUT10)。
次いで、チャレンジ生成部30−1は、送り込まれた認証要求req_aに応じて、ランダムなメッセージであるチャレンジ(nonce)を選出生成し、被認証者装置20に返信する(AUT20)。
尚、本実施形態においては、上記AUT10およびAUT20を省略した設定であってもよい。この場合、チャレンジnonceに代えて、被認証者装置20により選ばれた任意のメッセージ(m)を利用するものとする。また、この場合、認証データ(response)を署名データとする。
更に、この場合、署名データは、グループの復号鍵(dec_g)を入力として持たない検証装置に対しては、グループに所属するメンバーの署名であることしか伝わらないが、被認証者特定装置により署名したメンバーのIDを特定することが可能である。
次いで、チャレンジ(nonce)を受信した署名生成部20−4は、ID・鍵ペア記憶装置20−2に記憶された書名鍵(sk_u)を利用して、チャレンジ(nonce)に対するユーザUの署名データ(σ)を生成する(AUT30)。
次に、認証データ生成部20−5は、被認証者が指定する被認証者特定装置を示す論理構造情報、および、グループの暗号化鍵enc_g−1〜enc_g−tを取得した場合に、ユーザIDと署名データからなるデータ(ID_u||σ)を暗号化して、暗号文Cを生成する。
さらに、認証データ生成部20−5は、この暗号文Cを含む、認証データ(response)を検証装置30に対して送信する(AUT40)。
認証データresponseを受信した検証補助要求部30−2は、暗号文Cを含む検証補助要求データ(req_v)を、論理構造情報に示される検証補助装置(40−1〜40−tのいずれか)それぞれに対して送信する(AUT50)。
ここでは、検証補助装置40−iそれぞれが単独で暗号文Cを復号可能である場合について、説明する。
尚、検証補助装置40−iが単独で暗号文Cを復号できず、暗号文Cを復号するためには他の検証補助装置との連携処理を行う必要がある場合は、認証データ復号部40−i−1は他の検証補助装置の認証データ復号部との相互通信および連携処理を行うことにより暗号文Cの復号化処理を行うものとする。
認証データ復号部40−i−1は、検証補助要求データ(req−v)とグループの復号鍵(dec_g−i)を受信すると共に、検証補助要求データ(req−v)に含まれる暗号文Cを復号する処理を行うと共に、復号処理の結果得られた復号データを(ID||σ)へとパースする、つまり、復号データをIDとσとに分解する(AUT60)。
次に、署名検証部40−i−2が、グループ管理装置10のメンバー登録情報記憶装置10−2からメンバリストを受信した場合に、このメンバリスト内に上記パースにより得られたIDが記載(登録)されているか否かを判定する。
ここで、IDが記載されていない場合、署名検証部40−i−2は「不受理」であることを示す検証補助データans_vを生成し、検証装置30に送信する。
一方、IDが記載されている場合、署名検証部40−i−2は、このIDに対応する検証鍵(vk)を用いて、署名データ(σ)の検証を行う(署名検証)。
この署名検証の結果(受理または不受理を示す)を、検証補助データ(ans_v)として検証装置30に送信する(AUT70)。
次いで、検証装置30の検証部30−3は、すべての検証補助装置から送り込まれた署名検証結果が「受理」を示す場合に、検証補助データ(ans_v)を受信し、認証結果(result)を生成して出力する。すなわち、すべての検証補助データ(ans_v)が受理を示すものであった場合に、認証成功を示す認証結果(result)を生成し、この認証データを、認証データ記憶装置30−4に記憶する(AUT80)。
また、検証部30−3は、異なる検証補助装置それぞれから送り込まれた署名検証結果の中に「不受理」を示す検証補助データ(ans_v)が1つでも含まれる場合には、認証失敗を示す認証結果(result)を生成する
尚、検証部30−3は、認証失敗を示す認証データを認証データ記憶装置30−4に格納する設定であってもよい。
このとき、被認証者装置20のIDに関する情報はグループの暗号化鍵 enc_g−1〜enc_g−t によって暗号化されているため、グループの復号鍵 dec_g−1〜dec_g−tを入力として持たない検証装置30には、被認証者装置20のIDに関する情報は、2つの認証データが同じ被認証者によるものか異なる被認証者によるものかという情報すら伝わらない。
グループの復号鍵dec_g−iを入力として受け取る検証補助装置40−iでは、検証装置30から受け取った検証補助要求データreq_vに含まれる暗号文Cを、グループの復号鍵dec_g−iを用いて復号し、IDおよび署名データσを得る。
検証補助装置40−iでは、IDがメンバリストListに含まれ、かつ、IDに対応する検証鍵を用いて署名データσを検証すると受理されることを確認する。
したがって、登録されていないユーザ、すなわちメンバリストに登録されている検証鍵に対応した署名鍵を持たないユーザは、メンバリストに含まれる検証鍵を用いて受理される署名データを生成することが不可能であるため、認証を成功させることが不可能となり、さらに、グループを管理する管理者であっても、メンバリストListに登録されている検証鍵に対応した署名鍵を知らないため、認証を成功させることが不可能であるため、
セキュリティを確保することができる。
[被認証者を特定する処理(被認証者特定処理)]
次に、認証データから被認証者の特定を行う(被認証者特定処理)動作について、図9のフローチャートに基づき説明する。
尚、ここでは、被認証者特定装置50−iが単独で被認証者を特定できることとして説明する。また、検証装置30の備える認証データ記憶装置30−4に記憶されている、認証データ(response_j)を生成した被認証者のIDを特定する。
尚、被認証者特定装置50−iが単独で被認証者を特定できず、他の被認証者特定装置と協力する。ここで、特定することが可能である場合は、被認証者特定装置50−iは他の被認証者特定装置と相互通信を行い、被認証者装置の特定処理を実施するものとする。
ここでは、認証データ記憶装置30−4に記憶されている認証データ(response_j)を受信した被認証者特定要求部30−5が、被認証者特定要求データ(req_t)を被認証者装置50−iに送信する(TRA10)。
尚、被認証者特定要求データ(req_t)は、認証データ(response_j)を含むものとする。
次に、認証データ復号部50−i−1は、被認証者特定要求データ(req_t)、およびグループの復号鍵(dec_g)を受信した場合に、認証データ(response_j)に含まれる暗号文(C_j)を復号し、これにより得られた復号データをID_j||σ_jにパースする(TRA20)。
次に、被認証者特定部50−i−2は、グループ管理装置10の具備するメンバー登録情報記憶装置10−2に記憶されているメンバリスト(List)を取得すると共に、復号されたID_j がメンバリスト(List)に記載されているか否かの確認判定を行う。
ここで、ID_jがメンバリストに記載されている場合、ID_jに対応して設定された検証鍵(vk_j)を用いて、署名データ(σ_j)の検証を行う(TRA30)。
この検証結果が「受理」を示すものであった場合(OK)、被認証者特定部50−i−2は、認証データ(response_j)がID_jを持つユーザにより作成された認証データであると判定し、特定された被認証者のIDであるID_jの出力を行う。
ID_jがメンバリスト(List)に記載されていない、あるいは、署名データ(σ_j)の検証結果が不受理であった場合、被認証者特定部50−i−2は、被認証者特定を要求された認証データ(response_j)は受理されない認証データであると判定し、検証装置30に対して返す
示すメッセージを出力する
(被認証者特定処理終了)。
以上のように、本実施形態(実施形態1)では、匿名性を剥奪できる被認証者特定者を1人または複数人指定できる構成であるため、被認証者の匿名性を確保しつつ、被認証者からの認証要求に対して、この被認証者が特定のグループに所属しているか否かを確実に認証判定することができる。
更には、一定期間内における連続した認証要求や、一定回数以上の連続した認証要求に対しても、それが同一の被認証者による認証要求であるか、別の被認証者による認証要求であるかを判別(特定)することなく、つまり、被認証者の特定を行うことなく、認証処理を行うことができる。
[実施形態2]
次に、本発明に係る実施形態2の匿名認証システムについて、説明する。ここで、前述した実施形態1と同一の部分については、同一の符号を付するものとする。
この実施形態2は、実施形態1における検証補助装置40−1、40−2〜40−tに代えて、認証補助装置61−1、61−2、・・・61−tを備えた点が実施形態1の場合と相違する。
以下これを詳述する。
本発明の実施形態2としての匿名認証システムは、図10に示すように、グループに属する被認証者装置に係る情報を管理するグループ管理装置10、グループ管理装置10に対して認証要求を行う被認証者装置21(被認証者装置20に対応(図1))と、上記認証要求時に認証データの生成補助を行う認証補助装置61−1、61−2、・・・61−tと、認証要求を行った被認証者装置21のユーザが上記グループに所属している否かの検証を行う検証装置31(検証装置30に対応(図1))と、被認証者装置21におけるユーザID被認証者を特定する処理を行うと共に予め設定された条件に基づきグループ内における被認証者装置20の匿名性(ユーザIDの秘匿性)を剥奪する制御を行う被認証者特定装置50−1、50−2、・・・、50−tを備えた構成を有する。
ここで、各グループに対応したグループの暗号化鍵(enc_g−1〜enc_g−t)がユーザにより被認証者装置20に入力されるものとする。
また、グループの暗号化鍵enc_g−iに対応したグループの復号鍵dec_g−iが、認証補助装置61−i(61−1〜61−tそれぞれを示す)および被認証者特定装置50−i(50−1〜50−tそれぞれを示す)それぞれに入力され、予め保持しているものとする。
尚、これらの暗号化鍵および復号鍵からなる鍵ペアは、グループごとに複数個存在するものとする。
被認証者装置21は、図11に示すように、グループ管理装置10に登録要求メッセージを送信する登録要求部21−1と、グループ管理装置10によって割り振られたユーザIDとユーザの署名鍵および検証鍵ペアとを対応付けて記憶するID・鍵ペア記憶装置21−2と、検証装置31に対して認証要求を示す認証要求メッセージを送信する認証要求部21−3と、認証データが生成される際にユーザの署名鍵を用いて署名生成を行う署名生成部21−4と、グループの暗号化鍵を取得しこれにより暗号文を生成すると共に認証に対して認証補助要求データを送信する認証補助要求部21−5と、認証補助装置61−iから認証補助データを受信した場合に、これに基づき認証データを生成する認証データ生成部21−6を有する。
認証補助装置61−iは、図12に示すように、被認証者装置21からの認証補助要求とグループの復号鍵(dec_g−i)を取得した場合に暗号文の復号を行う復号部61−i−1と、グループ管理装置10からメンバリストを受信した場合に復号された署名データの検証を行う署名検証部61−i−2と、グループの署名鍵を受信した場合に、暗号文にグループの署名を施すグループの署名生成部61−i−3を備えた構成を有する。
検証装置31は、図13に示すように、被認証者装置21からの認証要求を受信した場合にこれに対するチャレンジを生成するチャレンジ生成部31−1と、受信した認証データおよびグループの検証鍵に基づき検証を行う検証部31−2と、検証部31−2における認証(検証)処理の履歴として、認証データを記憶保持する認証データ記憶装置31−3と、認証データ記憶装置31−3に記憶されている認証データに対して、匿名性剥奪要求を被認証者特定装置に送信する被認証者特定要求部31−4を有する。
[実施形態2の動作説明]
次に、上記実施形態2である匿名認証システムにおける動作について、図14のフローチャートに基づき説明する。
尚、上記登録処理、および認証データから被認証者の特定を行う処理は実施形態1と同様であるものとする。
ここでは、上述のように、署名鍵sk_u、および検証鍵vk_uを有する被認証者装置(ユーザU)21が、実施形態1の場合と同様に、登録を行っているものとして説明する。
尚、ユーザUの署名鍵・検証鍵ペア(sk_u,vk_u)は、予めICカードやフラッシュメモリなどのメモリ機器に予め格納されており、被認証者装置21はこのメモリ機器にアクセスするためのインターフェースを有しているものとする。
まず、被認証者装置21の認証要求部21−3が、検証装置31に対して認証要求(req_a)を送信する(AUT11)。認証要求(req_a)を受信したチャレンジ生成部31−1は、ランダムなメッセージであるチャレンジ(nonce)を選出して被認証者装置21に送信する(AUT21)。
署名生成部21−4は、チャレンジ(nonce)を受信した場合に、ID・鍵ペア記憶装置21−2に記憶されているsk_uを用いて、チャレンジ(nonce)に対するユーザUの署名データ(σ)を生成する(AUT31)。
次いで、認証補助要求部21−5は、被認証者特定者を指定する論理構造およびグループの暗号化鍵(enc_g−1,・・・,enc_g−t)を受信した場合に、ID_u||σを暗号化し、暗号文Cを生成し、更に、認証補助要求部21−5は、暗号文Cを含む、認証補助要求データ((req_h))を生成すると共に認証補助装置(61−1〜61−t)に送信する(AUT41)。
尚、ここでは、認証補助装置61−iが単独で暗号文Cを復号できることとして説明する。
また、認証補助装置61−iが単独で暗号文Cを復号できず、暗号文Cを復号するためには他の認証補助装置と相互協力する必要がある場合は、復号部61−i−1は他の認証補助装置の復号部と協力して暗号文Cの復号を行うものとする。
次いで、認証補助装置61−iの復号部61−i−1は、認証補助要求データ(req_h)とグループの復号鍵(dec_g−i)を受信した場合に、認証補助要求データ(req_h)に含まれる暗号文Cを復号し、復号データを(ID||σ)とパースする(AUT51)。
次に、メンバリストを受信した署名検証部61−i−2が、グループ管理装置10のメンバー登録情報記憶装置10−2に記憶されているIDがメンバリストに記載されているか確認する。
ここで、IDがメンバリストに記載されていた場合、IDに対応する検証鍵(vk)を用いて署名データ(σ)の検証を行う(AUT61)。
ここで、IDがメンバリストに記載されていない、あるいは、(σ)の検証結果が不受理を示す場合、以降の動作を停止する(不受理:AUT61)。
一方、IDがメンバリストに記載されている、かつ、IDに対応する検証鍵(vk)を用いて(σ)が受理された場合、グループの署名鍵(sk_g)を受信したグループの署名生成部61−i−3は、暗号文Cにグループの署名鍵(sk_g)を用いて署名を施し、署名データ(σ_g)を生成する。
さらに、署名データ(σ_g)を含む認証補助データ(ans_h)を被認証者装置21に送信する(AUT71)。
次いで、認証補助データ(ans_h)を受信した認証データ生成部21−6は、すべての検証結果が「受理」を示す場合に、認証補助データ(ans_h)に含まれる署名(σ_g)を含む認証データ(response)を検証装置31に送信する(AUT81)。
一方、受信した検証結果中にひとつでも「不受理」を示すものがあった場合、処理動作を停止するものとする。
次に、認証データ(response)およびグループの検証鍵(vk_g)を受信した検証部31−2は、認証データに含まれる署名(σ_g)の検証を行う。
ここで、この検証結果が受理であった場合に、検証部31−2は、認証結果(result)を認証成功として出力し、認証データ(response)を認証データ記憶装置31−3に保存する(AUT91)。
また、検証結果が不受理であった場合、検証部31−2は、認証失敗を示す認証結果(result)を出力する。
尚、認証が失敗した認証データも、認証データ記憶装置31−3に格納する設定であってもよい。
次に、本発明に係る実施形態3の匿名認証システムについて、説明する。ここで、前述した実施形態1および2と同一の部分については、同一の符号を付するものとする。
この実施形態3は、実施形態1の実施形態に対して実施形態2で示した認証補助装置61−iを組み込んだ点が実施形態1、2の場合と相違する。
以下これを詳述する。
本発明の実施形態3としての匿名認証システムは、図15および16に示すように、グループに属する被認証者装置に係る情報を管理するグループ管理装置10、グループ管理装置10に対して認証要求を行う被認証者装置21(被認証者装置20に対応(図1))と、上記認証要求時に認証データの生成補助を行う認証補助装置(62:図15)62−1、62−2、・・・62−tと、認証要求を行った被認証者装置21のユーザが上記グループに所属している否かの検証を行う検証装置30と、検証装置30による検証の補助を行う検証補助装置(42:図15)42−1、42−2〜42−tと、被認証者装置21におけるユーザID被認証者を特定する処理を行うと共に予め設定された条件に基づきグループ内における被認証者装置20の匿名性(ユーザIDの秘匿性)を剥奪する制御を行う被認証者特定装置50−1、50−2、・・・、50−tを備えた構成を有する。
また、本実施形態3においても、実施形態1および2と同様に、グループに対応したグループの暗号化鍵(enc_g−i)が被認証者装置62−iに入力され、各グループの暗号化鍵(enc_g−i)に対応したグループの復号鍵(dec_g−i)が、認証補助装置62−iおよび被認証者特定装置52−iに入力されるものとする。
また、これらの暗号化・復号鍵は、グループごとに存在し、さらに、認証用共有鍵(ck_g)が、認証補助装置(62−1〜62−t)および検証補助装置(42−1〜42−t)に入力されるものとする。
認証補助装置62−iは、図17に示すように、被認証者装置21からの認証補助要求とグループの復号鍵(dec_g−i)を受信した場合に、暗号文の復号を行う復号部62−i−1と、グループ管理装置10から取得したメンバリストに基づき署名の検証を行う署名検証部62−i−2と、認証用共有鍵を受信した場合に、暗号文にメッセージ認証子を付ける修理を行うメッセージ認証子生成部62−i−3を備えた構成を有する。
検証補助装置42−iは、図18に示すように、検証補助要求を受信した場合に、この検証補助要求に含まれる暗号文につけられたメッセージ認証子の検証を行うメッセージ認証子検証部42−i−1を備えた構成を有する。
[実施形態3の動作説明]
次に、上記実施形態3である匿名認証システムにおける動作について、図19および20のフローチャートに基づき説明する。
尚、上記登録処理、および認証データから被認証者の特定を行う処理は実施形態1と同様であるものとする。
ここでは、上述の実施形態2と同様に、署名鍵(sk_u)、および検証鍵(vk_u)を有する被認証者装置(ユーザU)21が、実施形態1の場合と同様に、登録を行っており、更に、ID・鍵ペア記憶装置21−2には、(ID_u, (sk_u, vk_u))が予め記憶されてものとして説明する。
尚、ユーザUの署名鍵・検証鍵ペア(sk_u,vk_u)は、予めICカードやフラッシュメモリなどのメモリ機器に予め格納されており、被認証者装置21はこのメモリ機器にアクセスするためのインターフェースを有しているものとする。
まず、被認証者装置21の認証要求部21−3は、検証装置31に認証要求(req_a)を送信する(AUT12)。
次に、認証要求(req_a)を受信したチャレンジ生成部31−1が、ランダムなメッセージであるチャレンジ(nonce)を、被認証者装置21に送信する(AUT22)。
チャレンジを受信した署名生成部21−4は、ID・鍵ペア記憶装置21−2に記憶されている(sk_u)を用いて、チャレンジに対するユーザUの署名(σ)を生成する(AUT32)。
次に、認証補助要求部21−5が、被認証者が指定する被認証者特定者の論理構造およびグループの暗号化鍵(enc_g−1,…,enc_g−t)を受信した場合に、(ID_u||σ)を暗号化し、これにより、暗号文Cを生成すると共に、暗号文Cを含む、認証補助要求データ((req_h))を認証補助装置62−1〜62−tに送信する(AUT42)。
尚、ここでは、簡単のため、認証補助装置62−iが単独で暗号文Cを復号することが可能であるものとして説明する。
また、認証補助装置62−iが単独で暗号文Cを復号できず、暗号文Cを復号するためには他の検証補助装置と協力する必要がある場合は、復号部62−i−1は他の認証補助装置の復号部と相互協力して暗号文Cを復号するものとする。
次いで、復号部(62−i−1)が、認証補助要求データ((req_h))とグループの復号鍵(dec_g−i)を受信した場合に、認証補助要求データ((req_h))に含まれる暗号文Cを復号し、復号データを(ID||σ)とパースする(AUT52)。
次に、署名検証部62−i−2が、グループ管理装置10のメンバー登録情報記憶装置10−2に記憶されているメンバリストを取得すると共に、当該メンバリストにIDが記載されているか確認する。
ここで、IDがメンバリストに記載されていた場合、IDに対応する検証鍵(vk)を用いて書名(σ)の検証を行う。
一方、IDがメンバリストに記載されていない、あるいは、署名データ(σ)の検証結果が不受理を示すものであった場合、以降の動作処理を停止する(AUT62)。
ここで、IDがメンバリストに記載されており、かつ、IDに対応する検証鍵(vk)を用いて署名データ(σ)が受理された場合、認証用共有鍵(ck_g)を受信したメッセージ認証子生成部62−i−3は、暗号文Cのメッセージ認証子(MAC_C)を生成すると共に、(C, MAC_C)を含む認証補助データ(ans_h)を被認証者装置21に送信する(AUT72)。
次いで、認証補助データ(ans_h)を受信した認証データ生成部21−6は、認証補助データ(ans_h)に含まれる、(C, MAC_C)を含む認証データ(response)を検証装置30に送信する(AUT82)。
認証データ(response)を受信した検証補助要求部30−2は、認証データに含まれる、(C, MAC_C)を含む検証補助要求データ(req_v)を、検証補助装置42−1〜42−tに対して送信する(B(図20)へ続くAUT92)。
次いで、検証補助要求データ(req_v)と認証用共有鍵(ck_g)とを受信したメッセージ認証子検証部42−i−1は、検証補助要求データ(req_v)に含まれる(C,MAC_C)の検証を行う。ここで、検証結果(受理または不受理)を検証補助データ(ans_v)として、検証装置30に送信する(AUT102)。
ここで、検証補助データ(ans_v)を受信した検証部30−3は、認証結果(result)を生成し、出力する。
尚、すべての検証補助データ(ans_v)が受理を示すものであった場合、検証結果(result)は認証成功を、それ以外の場合、検証結果(result)は認証失敗を示すものとする。
ここで、検証部30−3は、認証に成功した認証データを、認証データ記憶装置30−4に格納する(AUT112)。尚、認証が失敗した認証データも、認証データ記憶装置30−4に記憶する設定であってもよい。
[変形例]
尚、上記実施形態1、3において、認証データを受け取った検証装置30は、被認証者20(21)が指定した被認証者特定者に対応する検証補助装置40−iに対して、検証補助要求、あるいは認証補助要求を送付しており、また、実施例2、3においては、被認証者装置21は、自らが指定する被認証者特定装置50−iに対応する認証補助装置62−iに対して、検証補助要求、あるいは認証補助要求を送付している。
また、被認証者装置20が、認証データに対して、「複数の暗号文に対して平文が同一であることのゼロ知識証明」を付与することにより、すべての被認証者特定者が被認証者を特定した結果が同一であることを保証したまま、検証補助要求あるいは認証補助要求を送付する検証補助装置あるいは認証補助装置をそれぞれ1台に減らすことが可能となる。
また、認証データに、ゼロ知識証明を付与しなくてもシステムは動作するが、2名以上の被認証者の結託(協力)により、すべての被認証者特定者が被認証者を特定した結果が同じでなくすことが可能となる。
尚、本システムを導入するアプリケーションによって、すべての被認証者特定者が被認証者を特定した結果が同じである必要がなければ、ゼロ知識証明の付与を行わない設定であってもよい。
以下、変形例における認証処理動作について、説明する。ここでは、実施形態1(図1)の構成内容に基づき認証処理が行われる場合について、説明する。
尚、この変形例では、署名鍵(sk_u)、検証鍵(vk_u)を持つユーザUが登録を済ませ、ID・鍵ペア記憶装置20−2には、(ID_u, (sk_u, vk_u))が予め記憶されているものとして説明する。
まず、被認証者装置20の認証要求部20−3は、検証装置30に認証要求(req_a)を送信する。こここで、認証要求(req_a)は、予め定められた定型文でよいものとする。
次いで、認証要求(req_a)を受信したチャレンジ生成部30−1は、ランダムに選出した、nonceを被認証者装置20に送信し、チャレンジ(nonce)を受信した署名生成部20−4は、ID・鍵ペア記憶装置20−2に記憶されている(sk_u)を用いてチャレンジに対して署名を付与する処理を行う。
ここで、署名生成部20−4は、まず、集合Z_pからランダムにkを選び、r=g_s^kを計算し、さらに、s=(H(nonce)−xr)k^{−1}mod(p−1)を計算する。
尚、この計算結果として、s=0が算出された場合は計算を初めからやり直すものとする。ここで、σ=(r, s)を署名データとする。
次に、認証データ生成部20−5は、グループの暗号化鍵(enc_g−1=(q,g,X_1),・・・,enc_g−t=(q,g,X_t)を受信した場合に、ランダムな値(r)をZ_{q}から選出する。

さらに、認証データ生成部20−5は、Y=g^r,W_1=(ID||σ)X_1^r,・・・,W_t=(ID||σ)X_t^rを計算し、暗号文C=(Y,W_1,・・・,W_t)とする。
次に、認証データ生成部20−5は、1<a<(q−1)を満たすaをランダムに選び、(ID||σ)^a=hとする。これにより、ID||σ=h^{1/a}となる。
ここで、認証データ生成部20−5は、b=1/aと表記し、さらに、1<μ_r, μ_x<q−1をランダムに選択すると共に、V_C=(V_Y=g^{μ_r},V_1=h^{μ_x}・X_1^{μ_r},・・・,V_t=h^{μ_x}・X_t^{μ_r})を計算する。
ここで、c=H(C,V_C)、さらに、τ_r=c・r+μ_r,τ_x=c・b+μ_xとする。また、認証データ(response)=(nonce,C,V_C,τ_r,τ_x,h)を検証装置30に送付する。
次いで、認証データを受信した検証補助要求部30−2は、暗号文Cを含む検証補助要求データ(req_v)=responseを、検証補助装置40−iに送信する。
検証補助装置40−iは、検証補助要求データ(req_v)を受信した場合に、検証補助要求データ(req_v)とグループの復号鍵(dec_g−i)=(x_i)を受信する。
次いで、認証データ復号部40−i−1が、検証補助要求データ(req_v)に含まれる暗号文C=(Y, W_1,・・・,W_t)からC_i=(Y, W_i)を抜き出すと共に、このC_iを復号する。
ここで、検証補助装置40−iは、まず、T_i=Y^{x_i}を計算する。
次に、M=W_iT_i^{−1}を計算し、得られたメッセージ(M)を(ID||σ)とパースする、つまり、MをID,σ=(r,s)に分解する。
次に、署名検証部40−2は、グループ管理装置10のメンバー登録情報記憶装置10−2に記憶されているメンバリストを受信した場合に、メンバリストにIDが記載されているか確認する。
ここで、IDが記載されていない場合、不受理である旨を検証補助データ(ans_v)として検証装置30に送信する。
一方、ID記載されている場合、署名検証部40−2は、IDに対応する検証鍵(vk_u=(p, g_s, y_u))を用いて、署名データ(σ)の検証を行う(署名検証)。
ここで、上記署名検証の動作内容について、説明する。
まず、署名検証部40−2は、0<r<pかつ0<s<(p−1)を確認する。次に、g_s^{H(nonce)}=y^r r^s mod pが成立することを確認する。
このとき、署名検証部40−2は、上記内容すべてが成立していた場合に「受理」を、そうでない場合には「不受理」を検証結果として設定する。

さらに、署名検証部40−2は、1≦j≦tの場合に(ただしjはi以外であるものとする)、g^{τ_r}=Y^c・V_Y,h^{τ_x}・X_j^{τ_r} =W_j^{c}・V_jが成立するか否かを確認する。
ここで、署名検証部40−2は、上記式内容のすべてが成立していた場合に「受理」を、そうでなかったら「不受理」とする。
次いで、署名検証部40−2は、その署名検証結果(受理または不受理)を検証補助データ(ans_v)として検証装置30に送信する。
このとき、検証補助データ(ans_v)を受信した検証部30−3は、検証補助データが受理であったら認証結果(result)を認証成功として出力する。また、検証補助データのうち「不受理」が一つでも含まれている場合、認証結果を認証失敗として出力する。
尚、検証部30−3は、認証が成功した認証データを、認証データ記憶装置30−4に格納する。ここで、認証が失敗した認証データについても、認証データ記憶装置30−4に格納する設定であってもよい。
以上のように、上記変形例では、被認証者がすべての暗号文に対して平文が同じであるということを示すゼロ知識証明を付与することにより、1つのグループの秘密鍵を保持していればすべての被認証者特定者が被認証者を特定した結果が同じ認証データであることを確認できる。
これにより、検証装置は複数の検証補助装置に検証補助要求を送信する必要がないため、例えば、被認証者と被認証者特定者の信頼関係と、検証者と検証補助者の信頼関係とが異なる場合、例えば、被認証者が10人の被認証者特定者を指定した認証データを生成したが検証者が信頼できる検証補助装置が1台しかない場合などに、有効に適用することができる。
以上のように、実施形態1〜3、および変形例に記載の匿名認証システムでは、匿名性を剥奪できる被認証者特定者を1人または複数人指定できる構成であるため、被認証者の匿名性を確保しつつ、被認証者からの認証要求に対して、この被認証者が特定のグループに所属しているか否かを確実に認証判定することができる。
また、被認証者によって指定された1人以上の被認証者特定者(被認証者特定装置)が必要に応じて被認証者を特定し、その匿名性を剥奪することができるため、被認証者のネットワーク利用規約に振る舞い反する振る舞いを有効に抑制することができる。
更には、一定期間内における連続した認証要求や、一定回数以上の連続した認証要求に対しても、それが同一の被認証者による認証要求であるか、別の被認証者による認証要求であるかを判別(特定)することなく、つまり、被認証者の特定を行うことなく、認証処理を行うことができる。
更に、本実施形態では、公開鍵暗号方式を用いることにより、復号に用いる復号鍵を持たない検証者に被認証者のIDに関する情報を与えることなく認証を行い、更には、グループ管理者に対してユーザのIDおよびパスワードを知らせることなく、認証を行うことができるため、これにより、グループ管理者によるユーザのなりすまし行為などを有効に抑制することができる。
また、本発明の匿名認証システムでは、被認証者が2人以上の被認証者特定者を指定可能とする構成であることにより、被認証者装置の暗号化部において、2つ以上のグループ公開情報が記載されたリストを入力とし、それぞれのグループ公開情報と乱数を用いてIDの暗号化を行う。
さらに、暗号化に用いる共通の乱数を設定することにより、認証データのサイズ長を一定値内に抑制することができ、これにより、システムにおける認証処理に係る処理負荷を有効に軽減することができる。
上述した実施形態については、その新規な技術的内容の要点をまとめると、以下のようになる。
尚、上記の実施形態の一部又は全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1)
ユーザ装置からの要求に応じてユーザ登録を行うと共に当該登録ユーザのグループをメンバリストにより管理するグループ管理装置と、前記ユーザ装置から送り込まれた認証用データに対するユーザ認証判定を行う認証検証装置と、前記メンバリストに基づき前記ユーザ装置の特定を行うユーザ特定装置と、前記ユーザ認証判定に先立ち前記認証検証装置からの要求に応じて前記認証用データの検証を行う検証補助装置とを備えた匿名認証システムであって、
前記ユーザ装置は、
前記認証検証装置から送り込まれた認証開始応答を予め設定された秘密鍵を利用することによりユーザ署名を生成するユーザ署名生成部と、
自己であるユーザ特定装置を特定する処理を行う前記ユーザ特定装置と前記検証補助装置とをそれぞれ選択指定すると共に、当該選択指定されたユーザ特定装置および検証補助装置を示す特定装置指定情報を生成する特定装置指定部と、
前記グループに対応して設定されたグループ用暗号化鍵を利用して前記ユーザ識別子およびユーザ署名を暗号化した暗号文を生成すると共に当該暗号文および前記特定装置指定情報を含むデータを前記認証用データとして前記認証検証装置に送信する認証用データ生成送信部とを備え、
前記認証検証装置は、
前記認証用データから前記暗号文を抽出すると共に当該暗号文を前記特定装置指定情報に基づき前記選択指定された検証補助装置に対して転送する暗号文転送部と、
前記ユーザ装置を特定する必要が生じた場合に、前記特定装置指定情報で指定された前記ユーザ特定装置に対して利用者特定要求として送信する利用者特定要求部と、
前記検証補助装置から送り込まれた前記検証結果に基き前記ユーザ認証判定を行う認証判定部とを備え、
前記ユーザ特定装置は、
前記利用者特定要求に応じて前記ユーザ装置を特定し前記ユーザ装置を示すユーザ装置特定情報を前記認証検証装置に通知するユーザ装置特定通知機能を備え、
前記検証補助装置は、
予め設定された前記グループ用復号鍵を利用して前記暗号文を前記ユーザ署名およびユーザ識別子に復号する暗号文復号部と、
前記グループ管理装置から取得した前記メンバリストに前記ユーザ識別子が含まれる場合に、前記秘密鍵に対応して設定された公開鍵を利用して前記復号されたユーザ署名の検証を行うユーザ署名検証部とを備えたことを特徴とする匿名認証システム。
(付記2)
付記1に記載の匿名認証システムにおいて、
前記前記認証検証装置の暗号文転送部は、前記ユーザ装置により選択指定された異なる複数の検証補助装置それぞれに対して前記暗号文を転送する複数転送機能を備え、
前記認証判定部は、前記異なる複数の検証補助装置それぞれから送り込まれた前記検証結果が全て検証成功を示す場合に前記ユーザ装置に対するユーザ認証判定の結果として認証成功を通知する判定成功通知機能を備えたことを特徴とした匿名認証システム。
(付記3)
付記1に記載の匿名認証システムにおいて、
前記認証検証装置が、前記特定装置指定情報により指定された異なる複数の前記ユーザ特定装置に対して前記利用者特定要求を送信した場合に、前記利用者特定要求を受信したユーザ特定装置は、前記メンバリストに前記ユーザ識別子が含まれるか否かを判定するメンバリスト判定部と、
前記メンバリストに前記ユーザ識別子が含まれる場合に、公開鍵を利用して前記ユーザ署名の検証を行うユーザ特定処理部と、
前記利用者特定要求を受信した他のユーザ特定装置と前記ユーザ署名の検証成功を相互に認証した場合に、前記認証用データの作成者としての前記ユーザ装置の識別子を前記認証検証装置に通知する特定情報通知部とを備えたことを特徴とする匿名認証システム。
(付記4)
付記2に記載の匿名認証システムにおいて、
前記検証補助装置は、グループ用復号鍵を用いて前記認証用データに含まれる暗号文を復号することにより前記認証用データに対応するIDおよび署名データを特定するID署名データ特定機能と、
前記グループ管理装置から取得したメンバリストに前記IDおよび署名データが含まれるか否かの検証を行う検証判定機能とを備えたことを特徴とする匿名認証システム。
(付記5)
付記1、2、又は3に記載の匿名認証システムにおいて、
前記認証検証装置は、前記ユーザ装置から一定回数以上の認証要求があった場合に、当該認証要求の送信元が秘匿された認証用データを生成する認証要求元秘匿機能を備えたことを特徴とする匿名認証システム。
(付記6)
付記4に記載の匿名認証システムにおいて、
前記認証検証装置から前記認証用データが転送された場合に、当該認証用データを復号することによりIDおよび署名データを特定し、前記認証用データ生成したユーザが前記グループに属するか否かを前記グループ管理装置から取得した前記メンバリストと前記IDおよび署名データとに基づき検証する認証補助装置を備えたことを特徴とする匿名認証システム。
(付記7)
ユーザ装置からの要求に応じてユーザ登録を行うと共に当該登録ユーザのグループをメンバリストにより管理するグループ管理装置と、前記ユーザ装置から送り込まれた認証用データに対するユーザ認証判定を行う認証検証装置と、前記ユーザ認証判定に先立ち前記認証検証装置からの要求に応じて前記認証用データの検証を行う検証補助装置とを備えた匿名認証システムにあって、前記ユーザ装置の認証を行う匿名認証方法であって、
前記ユーザ装置が、前記認証検証装置から送り込まれた認証開始応答を予め設定された秘密鍵を利用することによりユーザ署名を生成し、
前記グループに対応するグループ用暗号化鍵を利用して前記ユーザ識別子およびユーザ署名を暗号化した暗号文を生成すると共に、
前記1または複数の検証補助装置をそれぞれ選択指定することにより当該選択指定された検証補助装置を示す特定装置指定情報を生成し、
前記暗号文および前記特定装置指定情報を含む前記認証用データを前記認証検証装置に送信し、
前記認証検証装置は、前記ユーザ装置から送り込まれた前記認証用データから前記暗号文を抽出すると共に、前記特定装置指定情報に基づき前記ユーザ装置が指定した検証補助装置に対して前記暗号文を転送し、
前記検証補助装置は、予め設定された前記グループ用復号鍵を利用して前記暗号文を前記ユーザ署名およびユーザ識別子に復号し、
前記グループ管理装置から取得した前記メンバリストに前記ユーザ識別子が含まれる場合に、前記秘密鍵に対応して予め設定された公開鍵を利用して前記復号されたユーザ署名の検証を行うと共に当該検証結果を前記認証検証装置に対して通知し、
前記認証検証装置が、前記検証補助装置から送り込まれた前記ユーザ署名の検証結果に基き前記ユーザ認証判定を行うことを特徴とした匿名認証方法。
本発明は、大規模コンピュータネットワークシステムにおけるグループメンバの認証判定を、ユーザのIDを秘匿した状態で行う認証システムに対して有用に適用することができる。
10 グループ管理装置
10−1 登録処理部Б
10−2 メンバー登録情報記憶装置
20、21 被認証者装置
20−1、21−1 登録要求部
20−2、21−2 ID・鍵ペア記憶装置
20−3、21−3 認証要求部
20−4、21−4 署名生成部
21−5 認証補助要求部
20−5、21−6 複数被認証者特定者用認証データ生成部
30、31 検証装置
30−1、31−1 チャレンジ生成部
30−2 検証補助要求部
30−3、31−2 検証部
30−4、31−3 認証データ記憶装置
30−5、31−4 被認証者特定要求部
31 検証装置
40 検証補助装置
40−i−1 認証データ復号部
40−i−2、61−i−2 署名検証部
42、62 検証補助装置
42−i 検証補助装置
42−i−1 メッセージ認証子検証部
50 被認証者特定装置
50−i−1 認証データ復号部
50−i−2 被認証者特証部
61−i 検証補助装置
61−i−1、62−i−1 復号部
61−i−3 グループの署名生成部
62−i−2 署名検証部
62−i−3 メッセージ認証子生成部

Claims (7)

  1. ユーザ装置からの要求に応じてユーザ登録を行うと共に当該登録ユーザのグループをメンバリストにより管理するグループ管理装置と、前記ユーザ装置から送り込まれた認証用データに対するユーザ認証判定を行う認証検証装置と、前記メンバリストに基づき前記ユーザ装置の特定を行うユーザ特定装置と、前記ユーザ認証判定に先立ち前記認証検証装置からの要求に応じて前記認証用データの検証を行う検証補助装置とを備えた匿名認証システムであって、
    前記ユーザ装置は、
    前記認証検証装置から送り込まれた認証開始応答を予め設定された秘密鍵を利用することによりユーザ署名を生成するユーザ署名生成部と、
    自己であるユーザ特定装置を特定する処理を行う前記ユーザ特定装置と前記検証補助装置とをそれぞれ選択指定すると共に、当該選択指定されたユーザ特定装置および検証補助装置を示す特定装置指定情報を生成する特定装置指定部と、
    前記グループに対応して設定されたグループ用暗号化鍵を利用して前記ユーザ識別子およびユーザ署名を暗号化した暗号文を生成すると共に当該暗号文および前記特定装置指定情報を含むデータを前記認証用データとして前記認証検証装置に送信する認証用データ生成送信部とを備え、
    前記認証検証装置は、
    前記認証用データから前記暗号文を抽出すると共に当該暗号文を前記特定装置指定情報に基づき前記選択指定された検証補助装置に対して転送する暗号文転送部と、
    前記ユーザ装置を特定する必要が生じた場合に、前記特定装置指定情報で指定された前記ユーザ特定装置に対して利用者特定要求として送信する利用者特定要求部と、
    前記検証補助装置から送り込まれた前記検証結果に基き前記ユーザ認証判定を行う認証判定部とを備え、
    前記ユーザ特定装置は、
    前記利用者特定要求に応じて前記ユーザ装置を特定し前記ユーザ装置を示すユーザ装置特定情報を前記認証検証装置に通知するユーザ装置特定通知機能を備え、
    前記検証補助装置は、
    予め設定された前記グループ用復号鍵を利用して前記暗号文を前記ユーザ署名およびユーザ識別子に復号する暗号文復号部と、
    前記グループ管理装置から取得した前記メンバリストに前記ユーザ識別子が含まれる場合に、前記秘密鍵に対応して設定された公開鍵を利用して前記復号されたユーザ署名の検証を行うユーザ署名検証部とを備えたことを特徴とする匿名認証システム。
  2. 請求項1に記載の匿名認証システムにおいて、
    前記前記認証検証装置の暗号文転送部は、前記ユーザ装置により選択指定された異なる複数の検証補助装置それぞれに対して前記暗号文を転送する複数転送機能を備え、
    前記認証判定部は、前記異なる複数の検証補助装置それぞれから送り込まれた前記検証結果が全て検証成功を示す場合に前記ユーザ装置に対するユーザ認証判定の結果として認証成功を通知する判定成功通知機能を備えたことを特徴とした匿名認証システム。
  3. 請求項1に記載の匿名認証システムにおいて、
    前記認証検証装置が、前記特定装置指定情報により指定された異なる複数の前記ユーザ特定装置に対して前記利用者特定要求を送信した場合に、前記利用者特定要求を受信したユーザ特定装置は、前記メンバリストに前記ユーザ識別子が含まれるか否かを判定するメンバリスト判定部と、
    前記メンバリストに前記ユーザ識別子が含まれる場合に、公開鍵を利用して前記ユーザ署名の検証を行うユーザ特定処理部と、
    前記利用者特定要求を受信した他のユーザ特定装置と前記ユーザ署名の検証成功を相互に認証した場合に、前記認証用データの作成者としての前記ユーザ装置の識別子を前記認証検証装置に通知する特定情報通知部とを備えたことを特徴とする匿名認証システム。
  4. 請求項2に記載の匿名認証システムにおいて、
    前記検証補助装置は、グループ用復号鍵を用いて前記認証用データに含まれる暗号文を復号することにより前記認証用データに対応するIDおよび署名データを特定するID署名データ特定機能と、
    前記グループ管理装置から取得したメンバリストに前記IDおよび署名データが含まれるか否かの検証を行う検証判定機能とを備えたことを特徴とする匿名認証システム。
  5. 請求項1、2、又は3に記載の匿名認証システムにおいて、
    前記認証検証装置は、前記ユーザ装置から一定回数以上の認証要求があった場合に、当該認証要求の送信元が秘匿された認証用データを生成する認証要求元秘匿機能を備えたことを特徴とする匿名認証システム。
  6. 請求項4に記載の匿名認証システムにおいて、
    前記認証検証装置から前記認証用データが転送された場合に、当該認証用データを復号することによりIDおよび署名データを特定し、前記認証用データ生成したユーザが前記グループに属するか否かを前記グループ管理装置から取得した前記メンバリストと前記IDおよび署名データとに基づき検証する認証補助装置を備えたことを特徴とする匿名認証システム。
  7. ユーザ装置からの要求に応じてユーザ登録を行うと共に当該登録ユーザのグループをメンバリストにより管理するグループ管理装置と、前記ユーザ装置から送り込まれた認証用データに対するユーザ認証判定を行う認証検証装置と、前記ユーザ認証判定に先立ち前記認証検証装置からの要求に応じて前記認証用データの検証を行う検証補助装置とを備えた匿名認証システムにあって、前記ユーザ装置の認証を行う匿名認証方法であって、
    前記ユーザ装置が、前記認証検証装置から送り込まれた認証開始応答を予め設定された秘密鍵を利用することによりユーザ署名を生成し、
    前記グループに対応するグループ用暗号化鍵を利用して前記ユーザ識別子およびユーザ署名を暗号化した暗号文を生成すると共に、
    前記1または複数の検証補助装置をそれぞれ選択指定することにより当該選択指定された検証補助装置を示す特定装置指定情報を生成し、
    前記暗号文および前記特定装置指定情報を含む前記認証用データを前記認証検証装置に送信し、
    前記認証検証装置は、前記ユーザ装置から送り込まれた前記認証用データから前記暗号文を抽出すると共に、前記特定装置指定情報に基づき前記ユーザ装置が指定した検証補助装置に対して前記暗号文を転送し、
    前記検証補助装置は、予め設定された前記グループ用復号鍵を利用して前記暗号文を前記ユーザ署名およびユーザ識別子に復号し、
    前記グループ管理装置から取得した前記メンバリストに前記ユーザ識別子が含まれる場合に、前記秘密鍵に対応して予め設定された公開鍵を利用して前記復号されたユーザ署名の検証を行うと共に当該検証結果を前記認証検証装置に対して通知し、
    前記認証検証装置が、前記検証補助装置から送り込まれた前記ユーザ署名の検証結果に基き前記ユーザ認証判定を行うことを特徴とした匿名認証方法。
JP2010170956A 2010-07-29 2010-07-29 匿名認証システム、匿名認証方法、匿名認証プログラム Withdrawn JP2012032952A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010170956A JP2012032952A (ja) 2010-07-29 2010-07-29 匿名認証システム、匿名認証方法、匿名認証プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010170956A JP2012032952A (ja) 2010-07-29 2010-07-29 匿名認証システム、匿名認証方法、匿名認証プログラム

Publications (1)

Publication Number Publication Date
JP2012032952A true JP2012032952A (ja) 2012-02-16

Family

ID=45846301

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010170956A Withdrawn JP2012032952A (ja) 2010-07-29 2010-07-29 匿名認証システム、匿名認証方法、匿名認証プログラム

Country Status (1)

Country Link
JP (1) JP2012032952A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016064079A1 (ko) * 2014-10-24 2016-04-28 허민 메시지 중개 방법 및 메시지 송수신 방법
JP2023132934A (ja) * 2022-03-11 2023-09-22 三菱電機インフォメーションシステムズ株式会社 認証情報署名システム、認証装置、認証情報署名プログラム及び認証情報署名方法
JP7557778B2 (ja) 2021-01-13 2024-09-30 株式会社国際電気通信基礎技術研究所 分散追跡型グループ署名処理方法、および、プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016064079A1 (ko) * 2014-10-24 2016-04-28 허민 메시지 중개 방법 및 메시지 송수신 방법
JP7557778B2 (ja) 2021-01-13 2024-09-30 株式会社国際電気通信基礎技術研究所 分散追跡型グループ署名処理方法、および、プログラム
JP2023132934A (ja) * 2022-03-11 2023-09-22 三菱電機インフォメーションシステムズ株式会社 認証情報署名システム、認証装置、認証情報署名プログラム及び認証情報署名方法

Similar Documents

Publication Publication Date Title
JP5201136B2 (ja) 匿名認証システムおよび匿名認証方法
CN111355745B (zh) 基于边缘计算网络架构的跨域身份认证方法
Mehmood et al. Anonymous authentication scheme for smart cloud based healthcare applications
US8683209B2 (en) Method and apparatus for pseudonym generation and authentication
EP2792098B1 (en) Group encryption methods and devices
Hsieh et al. Anonymous authentication protocol based on elliptic curve Diffie–Hellman for wireless access networks
JP2008503966A (ja) 匿名証明書呈示に関する匿名証明書
JP6534777B2 (ja) 端末装置、鍵配送管理装置、サーバ・クライアントシステム、通信方法、プログラム
KR20070057871A (ko) 다항식에 기초한 인증 방법
JP2006174356A (ja) 擬似公開鍵暗号方法及びシステム
Sudarsono et al. A secure data sharing using identity-based encryption scheme for e-healthcare system
JP6041864B2 (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
Arshad et al. A secure authentication and key agreement scheme for roaming service with user anonymity
Nikooghadam et al. A provably secure ECC-based roaming authentication scheme for global mobility networks
Patil et al. Identity-based signcryption scheme for medical cyber physical system in standard model
Ali et al. Secure IoT framework for authentication and confidentiality using hybrid cryptographic schemes
Ashraf et al. Lightweight and authentic symmetric session key cryptosystem for client–server mobile communication
JP2012032952A (ja) 匿名認証システム、匿名認証方法、匿名認証プログラム
Dai et al. A lightweight and privacy-preserving answer collection scheme for mobile crowdsourcing
Zhang et al. Privacy‐friendly weighted‐reputation aggregation protocols against malicious adversaries in cloud services
Surya et al. Single sign on mechanism using attribute based encryption in distributed computer networks
Kim et al. A privacy-preserving secure service discovery protocol for ubiquitous computing environments
CN113556236B (zh) 一种基于代理签名的能源数据中台敏感内容委托授权方法
JP5392741B2 (ja) Rsaをベースとしたパスワード認証方式及びその応用
Roy et al. Practical {Privacy-Preserving} Authentication for {SSH}

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20131001