(57)【要約】【課題】属性証明機関が署名生成用秘密鍵を他の機関に渡すことなく、また、発行された証明書を使い捨てにすることなく、さらに、あるオリジナルデータから生成された属性証明書同士の関連が取れない属性証明書を生成すること。【解決手段】属性証明シード保存部５０５は、複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを保存する。乱数生成部５０６は各属性データごとにそれぞれ異なる乱数を生成し、属性証明書生成部５０７は、隠蔽する属性データを対応する乱数で隠蔽し、また、各部分電子署名と、各乱数と、前記公開鍵とに基づき電子署名データを生成する。そして、属性証明書送信部５０８は、属性データを隠蔽したデータ、隠蔽しない属性データ、および電子署名を属性証明書として送信する。【選択図】図１
2007295511.tif 000002
【特許請求の範囲】
【請求項１】
複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力する入力手段と、
前記入力手段で入力された属性証明シードを記憶する記憶手段と、
前記記憶手段で記憶された属性証明シードの各属性データごとにそれぞれ異なる乱数を生成する乱数生成手段と、
隠蔽する属性データのそれぞれを、対応する乱数で隠蔽した隠蔽データを生成する隠蔽データ生成手段と、
前記記憶手段に記憶された前記属性証明シードに含まれる各部分電子署名データと、前記乱数生成手段で生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成する電子署名生成手段と、
前記隠蔽データ生成手段で生成された隠蔽データと、前記電子署名生成手段で生成された電子署名データと、属性証明シードから隠蔽しない属性データとを含む属性証明書を出力する出力手段とを備えたことを特徴とするコンピュータ装置。
【請求項２】
更に、隠蔽しない属性データに対応する各乱数を、公開情報でランダマイズさせた各ランダマイズデータを生成するランダマイズデータ生成手段を備え、
前記出力手段は、前記隠蔽データ生成手段で生成された前記隠蔽データと、前記ランダイマイズデータ生成手段で生成された前記各ランダマイズデータと、前記電子署名生成手段で生成された電子署名データと、属性証明シードから隠蔽しない属性データとを含む属性証明書を出力するようにしたことを特徴とする請求項１記載のコンピュータ装置。
【請求項３】
複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力する入力手段と、
前記入力手段で入力された属性証明シードを記憶する記憶手段と、
前記記憶手段で記憶された前記属性証明シードのうち削除しない各属性データを選択し、それぞれ異なる乱数を生成する乱数生成手段と、
前記記憶手段で記憶された前記属性証明シードに含まれる各部分電子署名データのうち、該選択した前記削除しない属性データに対応する各部分電子署名と、前記乱数生成手段で生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成する電子署名生成手段と、
前記電子署名生成手段で生成された電子署名データと、属性証明シードから削除しない属性データとを含む属性証明書を出力する出力手段とを備えたことを特徴とするコンピュータ装置。
【請求項４】
更に、削除しない属性データに対応する各乱数を、公開情報でランダマイズさせた各ランダマイズデータを生成するランダマイズデータ生成手段を備え、
前記出力手段は、前記ランダイマイズデータ生成手段で生成された前記各ランダマイズデータと、前記電子署名生成手段で生成された電子署名データと、前記属性証明シードから削除しない属性データとを含む属性証明書を出力するようにしたことを特徴とする請求項３記載のコンピュータ装置。
【請求項５】
属性証明機関装置で所有する秘密鍵に基づく証明によって、ネットワークで接続されるプロバイダ装置が提供するサービスの許可を得ることができる、記憶部を備えた利用者装置の属性証明書生成方法であって、
前記利用者装置は、
複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、前記秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力するステップと、
前記入力された属性証明シードを前記記憶部へ記憶するステップと、
前記プロバイダ装置が提供するサービスを受ける際に、前記記憶部に記憶された前記属性証明シードの各属性データごとにそれぞれ異なる乱数を生成するステップと、
隠蔽する属性データのそれぞれを、対応する乱数で隠蔽した隠蔽データを生成するステップと、
前記属性証明シードに含む各部分電子署名データと、生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成するステップと、
前記隠蔽データ、及び前記新たな電子署名と、隠蔽しない属性データとを含む属性証明書を前記プロバイダ装置へ送信するステップとを具備したことを特徴とする利用者装置の電子署名生成方法。
【請求項６】
属性証明機関装置で所有する秘密鍵に基づく証明によって、ネットワークで接続されるプロバイダ装置が提供するサービスの許可を得ることができる、記憶部を備えた利用者装置の属性証明書生成方法であって、
前記利用者装置は、
複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力するステップと、
前記入力された属性証明シードを前記記憶部へ記憶する記憶するステップと、
前記プロバイダ装置が提供するサービスを受ける際に、前記記憶部に記憶された前記属性証明シードのうち削除しない各属性データを選択し、それぞれ異なる乱数を生成するステップと、
前記記憶部で記憶された前記属性証明シードに含まれる各部分電子署名データのうち、該選択した前記削除しない属性データに対応する各部分電子署名と、前記乱数生成手段で生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成するステップと、
前記生成された電子署名データと、属性証明シードから削除しない属性データとを含む属性証明書を出力するステップとを具備したことを特徴とする利用者装置の電子署名生成方法。
【請求項７】
属性証明機関装置で所有する秘密鍵に基づく証明によって、ネットワークで接続されるプロバイダのコンピュータが提供するサービスの許可を得るために、記憶部を備えたコンピュータに実行させるためのプログラムであって、
複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、前記秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力させる手段と、
前記入力手段で入力された属性証明シードを前記記憶部へ記憶させる手段と、
前記サービスの許可を得る際に、前記記憶部に記憶された前記属性証明シードの各属性データごとにそれぞれ異なる乱数を生成させる手段と、
隠蔽する属性データのそれぞれを、対応する乱数で隠蔽した隠蔽データを生成させる手段と、
前記属性証明シードに含む各部分電子署名データと、生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成させる手段と、
前記隠蔽データ、前記新たな電子署名データと、隠蔽しない属性データとを含む属性証明書を前記プロバイダのコンピュータへ送信させる手段とをコンピュータに実行させるためのプログラム。
【請求項８】
属性証明機関装置で所有する秘密鍵に基づく証明によって、ネットワークで接続されるプロバイダのコンピュータが提供するサービスの許可を得るために、記憶部を備えたコンピュータに実行させるためのプログラムであって、
複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力させる手段と、
前記入力された属性証明シードを前記記憶部へ記憶する記憶させる手段と、
前記記憶部に記憶された前記属性証明シードのうち削除しない各属性データを選択させ、それぞれ異なる乱数を生成させる手段と、
前記記憶部で記憶された前記属性証明シードに含まれる各部分電子署名データのうち、該選択させ前記削除しない属性データに対応する各部分電子署名と、前記生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成させる手段と、
前記生成された電子署名データと、属性証明シードから削除しない属性データとを含む属性証明書を前記プロバイダのコンピュータへ送信させる手段とをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書の結託攻撃に対する匿名性を向上したコンピュータ装置、電子署名生成方法、および、プログラムに関する。
【背景技術】
【０００２】
インターネットを利用するオンラインサービスでは、サービス・プロバイダがサービス利用者の身分確認を必要とする場合がある。例えば、ネットバンキングや株のネット取引では、あらかじめ口座開設をしたサービス利用者に対して、サービス利用時に本人確認を確実に行ったうえでサービスを提供することになる。
【０００３】
一方、Ｗｅｂページの閲覧などは、サービス利用者の本人確認は行われずにサービスが提供される。すなわちＷｅｂページ閲覧の場合は、サービス利用者の匿名性は確保される。そして、アンケート収集や内部告発といったアプリケーションは、サービス利用者の匿名性確保が要求される一方で、サービス利用者にサービスを利用する資格があるかどうかを、サービス利用者の属性データ（例えば年齢や性別、所属、あるいは会員であるかどうかなど）を確認することにより判断することになる。
【０００４】
従来このような、サービス利用者がある属性データを有していることをサービス・プロバイダに証明する技術として、属性証明技術がある（例えば、非特許文献１参照）。非特許文献１では、公開鍵暗号技術、特に電子署名の技術を用いて、電子的な属性証明書を生成する方法が説明されている。電子署名とはディジタル署名とも呼ばれ、手書きによる署名（サイン）をディジタルの世界で実現する技術である。
【０００５】
いま、ＡがＢにメッセージｍを送ることを考える。署名者Ａは、まず公開鍵ＰＫ＿Ａと秘密鍵ＳＫ＿Ａのペアを生成し、公開鍵は自分以外の他の誰でも入手できるようにして公開しておき、秘密鍵は自分以外の者に漏れることが無いよう秘密に保持する。そして署名者Ａは、秘密鍵ＳＫ＿Ａを用いて署名生成対象のメッセージに対して署名生成アルゴリズムＦ（・，・）を施して電子署名σを生成する。すなわち、σ＝Ｆ（ＳＫ＿Ａ，ｍ）である。ＡはＢに対して、メッセージｍと生成した電子署名σを送る。
【０００６】
このようにして生成された電子署名は、秘密鍵に対となる公開鍵でのみ、正しく検証することが可能である。ＢはＡの公開鍵と受け取ったメッセージおよび電子署名を、署名検証アルゴリズムＧ（・，・，・）に入力して、送られてきた電子署名が正当であるかどうかをチェックする。すなわち、Ｇ（ＰＫ＿Ａ，ｍ，σ）は、検証成功または検証失敗を出力する。そして、検証に成功した場合は、その署名がＡによって生成されたことが保証され、かつ署名生成対象のメッセージが改ざんされていないことも保障される。
【０００７】
属性証明書は、属性証明機関があるサービス利用者の属性データ（すなわちサービス利用者の年齢や性別・役職など）に対して生成した電子署名である。属性証明機関は秘密鍵を用いて電子署名を生成し、その電子署名の正当性は属性証明機関の公開鍵を用いることで、誰でも検証可能となる。
【０００８】
また、一般的な属性証明書の生成に利用可能な、開示文書の真正性の保証と、開示不適当な情報の削除の両立可能な電子署名技術がある（例えば、特許文献１参照）。特許文献１では、行政文書の開示時における墨塗りにあたる技術を、電子政府におけるディジタル化された文書において実現することを目的とした技術が開示されている。
【０００９】
属性証明技術を用いたサービスモデルにおいては、属性証明機関、サービス利用者、サービス・プロバイダの三者が存在する。サービス利用者がサービス・プロバイダからサービスを受ける際には、サービス利用者がサービスを受けるために必要な属性を有していることを、サービス・プロバイダに証明する必要がある。そのためにまず、利用者はサービスを受ける際にサービス・プロバイダから要求される属性項目を、サービス・プロバイダに問い合わせるなどして、あらかじめ調べておく。そして、サービス利用者は属性証明機関に対して、サービス・プロバイダから要求される属性データを一纏めにして送り、この一纏めにした属性データに対する属性証明書の発行を依頼する。
【００１０】
属性証明機関は、サービス利用者から申告されたサービス利用者の属性データが正しいかどうかを、例えばサービス利用者から提供された免許証のコピーなど証明書を用いて確認したうえで、属性データを署名対象メッセージとして属性証明機関の秘密鍵を用いて電子署名（属性証明書）を生成して、利用者に発行する。サービス利用者は、この属性証明書をサービス・プロバイダに提示する。サービス・プロバイダは属性証明書の内容を検討し、さらに証明書の正当性を属性証明機関の公開鍵を用いて検証する。この検証に合格すれば、サービス・プロバイダはサービス利用者にサービスを提供する。
【特許文献１】特開２００５−５１７３４公報
【非特許文献１】ITU-T Recommendation X．509 (1997 E): Information Technology - Open Systems Interconnection - The Directory: Authentication Framework、 June 1997。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ここで、サービス利用者の匿名性を維持するためには、サービス利用者があるサービスＡを利用するために発行されて使用した属性証明書（Ｃｅｒｔｉｆｉｃａｔｅ）ＣｅｒｔＡと、別のサービスＢを利用するために発行されて使用した属性証明書ＣｅｒｔＢの２つを、異なる時期にサービス・プロバイダに提示したときに、２つの属性証明書の間でどのような関連も取れないこと、即ち結託耐性が必要となる。
【００１２】
また、属性証明機関は多数のサービス利用者からの属性証明書発行要求に対応できることが期待される。そのため、システムの安定的な運用を持続するために、属性証明機関の負荷軽減も重要な要件となる。
【００１３】
ＣｅｒｔＡとＣｅｒｔＢの関連をつけなくさせるひとつの方法は、あるサービスで利用した属性証明書は１度だけ使用して使い捨てにすることにし、サービス利用者がサービスを受けるたびに、毎回属性証明機関に属性証明書の発行を依頼して、新しく属性証明書を発行してもらうことにすればよい。
【００１４】
しかし、このような解決策では、サービス利用者のサービス利用回数が増し、さらにサービス利用者数が増大したときには、属性証明機関の負荷が爆発的に増加することが予想され、システムの効率も低下してしまう。
【００１５】
そこで、属性証明機関の負荷を減らすために、属性証明機関の証明書生成用秘密鍵を複数の別機関に渡して、証明書生成処理を分散させることも考えられる。
【００１６】
しかし、このような解決策では、属性証明機関の秘密鍵が漏えいする危険が高まり、属性証明書の信頼性が損なわれる可能性が大きくなり、システム全体の安全上問題がある。  また、特許文献１に示された電子署名方式を利用して、属性証明機関の負荷を減らす方法がある。すなわち、属性証明機関が複数の属性を含んだ属性データ群に対する（１つの）属性証明書を生成し、この属性証明書から利用者が開示する必要のない情報を隠蔽したうえで新たな属性証明書を生成し、これをサービス・プロバイダに提示する方法が考えられる。
【００１７】
しかし、このような解決策は結託攻撃に対処できない。すなわち、ある１つのオリジナルデータから生成され、互いに異なる箇所の情報が隠蔽された２つの属性証明書ＣｅｒｔＡとＣｅｒｔＢが、ある攻撃者の手に渡ったときに、ＣｅｒｔＡで開示されている情報をもとにＣｅｒｔＢで隠蔽されている情報を推測する攻撃が実行可能となる。さらに、同方式ではＣｅｒｔＡとＣｅｒｔＢに付与された電子署名の値が完全に一致することからも、２つの属性証明書の関連が取れてしまい、匿名性が維持されない。
【００１８】
そこで、本発明は、上記問題点に鑑み、属性証明機関が署名生成用秘密鍵を他の機関に渡すことなく、また、発行された証明書を使い捨てにすることなく、さらに、あるオリジナルデータから生成された属性証明書同士の関連が取れない属性証明書を生成するコンピュータ装置、電子署名生成方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１９】
上記課題を解決するために本発明のコンピュータ装置は、複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力する入力手段と、前記入力手段で入力された属性証明シードを記憶する記憶手段と、前記記憶手段で記憶された属性証明シードの各属性データごとにそれぞれ異なる乱数を生成する乱数生成手段と、隠蔽する属性データのそれぞれを、対応する乱数で隠蔽した隠蔽データを生成する隠蔽データ生成手段と、前記記憶手段に記憶された前記属性証明シードに含まれる各部分電子署名データと、前記乱数生成手段で生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成する電子署名生成手段と、前記隠蔽データ生成手段で生成された隠蔽データと、前記電子署名生成手段で生成された電子署名データと、属性証明シードから隠蔽しない属性データとを含む属性証明書を出力する出力手段とを備えたことを特徴とする。
【００２０】
また、本発明のコンピュータ装置は、複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力する入力手段と、前記入力手段で入力された属性証明シードを記憶する記憶手段と、前記記憶手段で記憶された前記属性証明シードのうち削除しない各属性データを選択し、それぞれ異なる乱数を生成する乱数生成手段と、前記記憶手段で記憶された前記属性証明シードに含まれる各部分電子署名データのうち、該選択した前記削除しない属性データに対応する各部分電子署名と、前記乱数生成手段で生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成する電子署名生成手段と、前記電子署名生成手段で生成された電子署名データと、属性証明シードから削除しない属性データとを含む属性証明書を出力する出力手段とを備えたことを特徴とする。
【００２１】
また、本発明は、属性証明機関装置で所有する秘密鍵に基づく証明によって、ネットワークで接続されるプロバイダ装置が提供するサービスの許可を得ることができる、記憶部を備えた利用者装置の属性証明書生成方法であって、前記利用者装置は、複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、前記秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力するステップと、前記入力された属性証明シードを前記記憶部へ記憶するステップと、前記プロバイダ装置が提供するサービスを受ける際に、前記記憶部に記憶された前記属性証明シードの各属性データごとにそれぞれ異なる乱数を生成するステップと、隠蔽する属性データのそれぞれを、対応する乱数で隠蔽した隠蔽データを生成するステップと、前記属性証明シードに含む各部分電子署名データと、生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成するステップと、
前記隠蔽データ、及び前記新たな電子署名と、隠蔽しない属性データとを含む属性証明書を前記プロバイダ装置へ送信するステップとを具備したことを特徴とする。
【００２２】
また、本発明は、属性証明機関装置で所有する秘密鍵に基づく証明によって、ネットワークで接続されるプロバイダ装置が提供するサービスの許可を得ることができる、記憶部を備えた利用者装置の属性証明書生成方法であって、前記利用者装置は、複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力するステップと、前記入力された属性証明シードを前記記憶部へ記憶する記憶するステップと、前記プロバイダ装置が提供するサービスを受ける際に、前記記憶部に記憶された前記属性証明シードのうち削除しない各属性データを選択し、それぞれ異なる乱数を生成するステップと、前記記憶部で記憶された前記属性証明シードに含まれる各部分電子署名データのうち、該選択した前記削除しない属性データに対応する各部分電子署名と、前記乱数生成手段で生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成するステップと、前記生成された電子署名データと、属性証明シードから削除しない属性データとを含む属性証明書を出力するステップとを具備したことを特徴とする。
【００２３】
また、本発明は、属性証明機関装置で所有する秘密鍵に基づく証明によって、ネットワークで接続されるプロバイダのコンピュータが提供するサービスの許可を得るために、記憶部を備えたコンピュータに実行させるためのプログラムであって、複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、前記秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力させる手段と、前記入力手段で入力された属性証明シードを前記記憶部へ記憶させる手段と、前記サービスの許可を得る際に、前記記憶部に記憶された前記属性証明シードの各属性データごとにそれぞれ異なる乱数を生成させる手段と、隠蔽する属性データのそれぞれを、対応する乱数で隠蔽した隠蔽データを生成させる手段と、前記属性証明シードに含む各部分電子署名データと、生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成させる手段と、前記隠蔽データ、前記新たな電子署名データと、隠蔽しない属性データとを含む属性証明書を前記プロバイダのコンピュータへ送信させる手段とを備えることを特徴とする。
【００２４】
また、本発明は、属性証明機関装置で所有する秘密鍵に基づく証明によって、ネットワークで接続されるプロバイダのコンピュータが提供するサービスの許可を得るために、記憶部を備えたコンピュータに実行させるためのプログラムであって、複数の属性データのそれぞれをハッシュ関数で計算して得られた各ハッシュ値に対し、秘密鍵を用いて生成された各部分電子署名データと各属性データとを対応付けた全ての組からなる属性証明シードを入力させる手段と、前記入力された属性証明シードを前記記憶部へ記憶する記憶させる手段と、前記記憶部に記憶された前記属性証明シードのうち削除しない各属性データを選択させ、それぞれ異なる乱数を生成させる手段と、前記記憶部で記憶された前記属性証明シードに含まれる各部分電子署名データのうち、該選択させ前記削除しない属性データに対応する各部分電子署名と、前記生成された各乱数と、前記秘密鍵に対応する公開鍵とに基づいて、新たな電子署名データを生成させる手段と、前記生成された電子署名データと、属性証明シードから削除しない属性データとを含む属性証明書を前記プロバイダのコンピュータへ送信させる手段とを備えることを特徴とする。
【発明の効果】
【００２５】
本発明によれば、属性証明機関の電子署名生成に関する負荷を軽減しながら、結託攻撃に耐性を有する属性証明書を生成することを可能にする。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態を図面を用いて詳細に説明する。
【００２７】
まず、図１の本実施の形態の概念フローを用いて、本実施の形態の概念について簡単に説明する。ネットワーク１には、属性証明機関装置１０、サービス利用者装置１１およびサービス・プロバイダ装置１２が接続されている。
【００２８】
まず、サービス利用者装置１１は、サービス利用者からの入力により、電子的な属性データ１００を生成し、属性証明機関装置１０へ送信する（ステップＳ１）。次に、属性証明機関装置１０は、属性データ１００と、属性証明機関装置１０が秘密に所有する秘密鍵とから属性証明シード１０１を生成し、サービス利用者装置１１に送信する（ステップＳ２）。
【００２９】
サービス利用者装置１１は、サービス・プロバイダ装置１２へサービス提供要求をすると（ステップＳ３）、サービス・プロバイダ装置１２は、サービス利用者装置１１に対して、１つあるいは複数の属性項目を証明する属性証明書の送信を要求する（ステップＳ４）。
【００３０】
サービス利用者装置１１は、属性証明シード１０１から属性証明書１０２を生成し、これをサービス・プロバイダ装置１２に送信する（ステップＳ５）。サービス・プロバイダ装置１２は、送られてきた属性証明書１０２の正当性を検証し、属性証明書１０２が正当であると判断すると、サービス利用者装置１１からのサービス提供要求に対するサービスを提供する（ステップＳ６）。以上が本実施の形態の概念フローである。
【００３１】
図２は、本実施の形態の属性証明機関装置１０と、サービス利用者装置１１と、サービス・プロバイダ装置１２との間の概略的な処理方法の流れを示している。  サービス利用者装置１１では、属性データ１００を一纏めにして属性証明機関装置１０に送信する方法、属性証明シード１０１を記憶装置に保存する方法、サービス・プロバイダ装置１２にサービス提供要求を送信する方法、属性証明シード１０１から属性証明書１０２を生成する方法、および属性証明書１０２をサービス・プロバイダ装置に送信する方法が提供される。
【００３２】
まず、サービス利用者は、属性証明書に記載する属性項目を選択し、各属性項目に対する各属性データを入力する。この属性データの例としては、図３に示すように名前、住所、電話番号、職業、性別、など、さまざまな項目のデータが想定される。サービス利用者は、あらかじめサービス提供を希望する一つあるいは複数のサービス・プロバイダ装置１２に、インターネットなどを利用して調査あるいは問い合わせをして、サービス提供時にサービス利用者に対してサービス・プロバイダから要求される属性項目を調べておき、それらに対応する属性データを入力する。
【００３３】
次に、サービス利用者は、サービス利用者装置１１を用いて、選択した属性データ１００を属性証明機関装置１０に送信する（ステップＳ１１）。
【００３４】
属性証明機関装置１０では、属性証明シード生成方法、および属性証明シードをサービス利用者装置１１に送信する方法が提供される。この属性証明シード生成方法では、属性証明機関装置１０が、サービス利用者装置１１から送られてきた属性データに対して、属性証明機関の秘密鍵を用いて属性データに対する電子署名を生成し、属性データと電子署名を含む属性証明シードを生成する（ステップＳ１２）。次に、属性証明機関装置１０は、属性証明シードをサービス利用者装置１１に送信する（ステップＳ１３）。サービス利用者装置１１は、属性証明機関装置１０から送られてきた属性証明シードを、自身の記憶装置に保存しておく（ステップＳ１４）。
【００３５】
上記ステップＳ１１からステップＳ１４までの処理は、属性証明シードの属性項目の中に、サービス・プロバイダ装置１２がサービス提供時に要求する属性項目が含まれている限りは、一度だけ実施すればよい。逆に、サービス・プロバイダ装置１２がサービス提供時に要求する属性データが、属性証明機関装置１０から入手した属性証明シード、すなわち上記ステップＳ１４にて保存された属性証明シードに含まれていない場合には、サービス・プロバイダ装置１２が要求する属性項目を含めた属性データを入力したうえで、あらためて上記ステップＳ１１からステップＳ１４までの処理を実施する必要がある。
【００３６】
次に、サービス利用者装置１１は、サービス・プロバイダ装置１２に対してサービス提供要求を送信する（ステップＳ１５）。サービス・プロバイダ装置１２では、サービス利用者装置１１からのサービス提供要求を受けると、提供するサービスに応じて必要なサービス利用者の属性データを判断する（ステップＳ１６）。サービス・プロバイダ装置１２が提供するサービスには、オンライン・ショッピング、ネットバンキング、ネット株取引、ディスクスペース提供、マルチメディア・コンテンツ提供など、さまざまなサービスが想定される。このため、例えば年齢制限が必要とされるサービスを提供する場合には、サービス利用者の年齢の属性データが、サービスを提供する際に必要となる。
【００３７】
その後、サービス・プロバイダ装置１２では、サービス利用者に対して、前記ステップＳ１６にて判断した属性項目に関する属性証明書を、サービス・プロバイダ装置１２に送信するよう要求する（ステップＳ１７）。
【００３８】
属性証明書の送信を要求されたサービス利用者装置１１は、属性証明シードから属性証明書を生成する方法を用いて、サービスの提供をうけるための属性証明書を生成する。（ステップＳ１８）。
【００３９】
その後、サービス利用者装置１１は、生成した属性証明書をサービス・プロバイダ装置１２に送信する（ステップＳ１９）。サービス・プロバイダ装置１３は、サービス利用者装置１１から送られてきた属性証明書を、属性証明機関１０の公開鍵を用いて検証し、その正当性を確認する（ステップＳ２０）。
【００４０】
図４は、属性証明機関装置１０、サービス利用者装置１１、及びサービス・プロバイダ装置１２のハードウェア構成例を示す図である。コンピュータ２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０７を介してＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、外部記憶装置（たとえばハードディスクドライブ（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ））２０３、グラフィック処理装置２０４、入力インタフェース２０５、および通信インタフェース２０６が接続されている。
【００４１】
ＲＡＭ２０２には、ＣＰＵ２０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、ＣＰＵ２０１による処理に必要な各種データが格納される。外部記録装置２０３には、ＯＳやアプリケーションプログラムが格納される。
【００４２】
グラフィック処理装置２０４には、モニタ２１１が接続されている。グラフィック処理装置２０４は、ＣＰＵ２０１からの命令に従って、画像をモニタ２１１の画面に表示させる。入力インタフェース２０５には、キーボード２０８とマウス２０９とが接続されている。入力インタフェース２０５は、キーボード２０８やマウス２０９から送られてくる信号を、バス２０７を介してＣＰＵ２０１に送信する。
【００４３】
通信インタフェース２０６は、ネットワーク２１０を通じて他のコンピュータ２０、例えばサービス・プロバイダ装置１２との間でデータの送受信を行う。
【００４４】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、ここでは、典型的なハードウェア構成を示し説明したに過ぎず、これに限るものではない。
【００４５】
図５は本実施の形態に係る属性証明システムの概略機能構成を示すブロック図である。属性証明機関装置１０は、属性データ受信機能４０２、属性証明シード生成機能４０３、および属性証明シード送信機能４０４を有している。また、サービス利用者装置１１は属性データ送信機能４０１、属性データシード受信機能４０５、属性データシード保存機能４０６、乱数生成機能４０７、属性証明書生成機能４０８、および属性証明書送信機能４０９を有している。また、サービス・プロバイダ装置１２は、属性証明書受信機能４１０、および属性証明書検証機能４１１を有している。
【００４６】
属性データ送信機能４０１は、サービス利用者から入力された属性データ（名前、住所、電話番号など）を属性証明機関装置１０に送信する機能である。属性データ受信機能４０２は、サービス利用者装置１１から送られてきた属性データを受信する機能である。属性証明シード生成機能４０３は、属性証明機関装置１０の秘密鍵で受信した属性データに対する電子署名を生成し、属性データと電子署名の組である属性証明シードを生成する機能である。属性証明シード送信機能４０４は、生成した属性証明シードを、サービス利用者装置１１に対して送信する機能である。
【００４７】
属性証明シード受信機能４０５は、属性証明機関装置１０から送られてきた属性証明シードを受信する機能である。属性証明シード保存機能４０６は、受信した属性証明シードを、サービス利用者装置１１内部に保存する機能である。乱数生成機能４０７は、属性証明書を生成する際に必要となる乱数を生成する機能である。属性証明書生成機能４０８は、属性証明シードと生成された乱数を用いて、属性証明書を生成する機能である。属性証明書送信機能４０９は、生成された属性証明書をサービス・プロバイダ装置１２に送信する機能である。属性証明書受信機能４１０は、サービス利用者装置１１から送られてきた属性証明書を受信する機能である。属性証明書検証機能４１１は、受信した属性証明書の正当性を先の秘密鍵に対応する属性証明機関装置１０の公開鍵を用いて検証する機能である。
【００４８】
以上のような機能により、本実施の形態に係る属性証明システムが実現される。
【００４９】
次に、本発明の実施の形態を実現するための前述の各機能を詳細に説明する。図６は、サービス利用者が操作するサービス利用者装置１１の機能構成を示すブロック図である。属性データ送信機能４０１は、属性データ入力部５０１、属性データ保存部５０２、および属性データ送信部５０３を有している。
【００５０】
まず、サービス利用者は、属性証明書に記載する属性項目を選択する。この属性項目の例としては、名前、住所、電話番号、職業、性別、年齢、生年月日など、さまざまな項目が想定される。属性項目の選択するとき、サービス利用者は、あらかじめサービス提供を希望する一つあるいは複数のサービス・プロバイダに、インターネットなどを利用して調査あるいは問い合わせをして、サービス提供時にサービス利用者に対してサービス・プロバイダから要求される属性項目を調べておき、適宜選択することが好ましい。サービス利用者は、選択した属性項目のそれぞれに対する属性データを、属性データ入力部５０１を通じてサービス利用者装置１１へ入力する。サービス利用者装置１１は、サービス利用者から入力された属性データを属性データ保存部５０２に保存する。そして、サービス利用者装置１１は、属性データ送信部５０３を通じて、属性証明機関装置１０に一纏まりの属性データを送信する。
【００５１】
図７は属性証明機関装置１０の機能構成を示すブロック図である。属性証明機関装置１０は、サービス利用者の属性データをサービス利用者装置１１から、属性データ受信部６０１を通じて受信する。そして、受信した属性データと秘密鍵保存部６０３に保存されている属性証明機関の秘密鍵とを用いて、属性証明シード生成部６０２において属性証明シードを生成する。最後に、属性証明機関装置１０は、生成した属性証明シードを、属性証明シード送信部６０４を通じて、サービス利用者装置１１に送信する。
【００５２】
図６に戻り、サービス利用者装置１１が属性証明シードを用いて属性証明書を生成する方法について説明する。サービス利用者装置１１は、属性証明シード受信部５０４を通じて、属性証明機関装置１０から属性証明シードを受信し、受信した属性証明シードを属性証明シード保存部５０５に保存する。そして、サービス利用者装置１１は、乱数生成部５０６で乱数を生成し、この乱数と先ほど保存した属性証明シードを元に属性証明書生成部５０７において属性証明書を生成する。最後に、サービス利用者装置１１は生成した属性証明書を、属性証明書送信部５０８を通じて、サービス・プロバイダ装置１２に送信する。
【００５３】
図８は、サービス・プロバイダ装置１２の機能構成を示すブロック図である。サービス・プロバイダ装置１２は、サービス利用者装置１１から、属性証明書受信部７０１を通じて、属性証明書を受信する。そして、公開鍵保存部７０３に保存されている属性証明機関の公開鍵を用いて、属性証明書検証部７０２において、受信した属性証明書を検証する。属性証明書の検証が合格した場合には、サービス提供部７０４がサービス利用者装置１１に対してサービスを提供する。
【００５４】
以上のような機能構成により、本実施の形態に係る属性証明システムが実現される。
【００５５】
次に、属性証明シードのデータ構造ならびに生成方法の概要について説明する。
【００５６】
図９は、属性証明シードのデータ構造例を示す図である。ただし、同図は属性項目が５つの場合、例えば名前、電話番号、住所、職業、性別、が属性項目として選ばれた場合を示している。そして、ｍ＿１は名前、ｍ＿２は電話番号といった個々の属性データをあらわしている。属性証明シードを生成するために、属性証明機関装置１０は、はじめに属性項目ごとにハッシュ値Ｈ＿ｉを求め、ハッシュ値群を生成する。すなわち、Ｈ＿１＝Ｈ（ｍ＿１）、Ｈ＿２＝Ｈ（ｍ＿２）、・・・、Ｈ＿５＝Ｈ（ｍ＿５）を生成する。次に、属性証明機関の秘密鍵ｘと、先ほど生成した個々のハッシュ値から、各属性項目の部分電子署名群を生成する。すなわち、ｓ＿１＝ｘＨ＿１、ｓ＿２＝ｘＨ＿２、・・・、ｓ＿５＝ｘＨ＿５。全ての属性項目に関して、属性データと部分電子署名をセットにしたものを、属性証明シード１０１とし、属性証明機関装置１０は、この属性証明シード１０１をサービス利用者装置１１に送信する。  
図１０は、属性証明シード１０１の生成手順を示した図である。以下では、属性証明シード１０１の生成手順について説明する。
【００５７】
属性証明機関装置１０は、サービス利用者のサービス利用者装置から送られてきた属性データ１００を、属性の項目ごとに分離する（ステップＳ１００１）。属性データ１００の項目数がｎ個であったとき、分割した結果をｎ項目の列（ｍ＿１、ｍ＿２、・・・、ｍ＿ｎ）とみなす。ここで例えば、ｍ＿１は名前の項目、ｍ＿２は電話番号の項目、のように対応するが、この属性データをどのような順番で並べてもよい。
【００５８】
次に、属性証明機関装置１０は、全ての属性項目のハッシュ値を“Ｈ＿ｉ＝Ｈ（ｍ＿ｉ）”により計算する（ステップＳ１００２）。ここでＨは、ハッシュ関数Ｈ：｛０、１｝＾＊→Ｇ＿１である。すなわち、Ｈは任意長の入力に対して、群Ｇ＿１の要素を出力する一方向性ハッシュ関数である。これにより、ハッシュ値Ｈ＿ｉは、ハッシュ関数の定義により、巡回群Ｇ＿１の要素となる。
【００５９】
さらに、属性証明機関装置１０は、属性証明機関の秘密鍵ｘを用いて、部分署名データＳ＿ｉを次式により計算する（ステップＳ１００３）。
【００６０】
Ｓ＿ｉ＝ｘＨ＿ｉ  （ｉ＝１、２、・・・、ｎ）
ただし、ｘＨ＿ｉはＨ＿ｉをｘ倍したものである。また、部分署名データＳ＿ｉは、巡回群Ｇ＿１の要素である。
【００６１】
属性データ（ｍ＿１、ｍ＿２、・・・、ｍ＿ｎ）と部分署名（Ｓ＿１、Ｓ＿２、・・・、Ｓ＿ｎ）のセットを、属性証明シード１０１とする（Ｓ１００４）。
【００６２】
以上のようにして、属性証明シード１０１の生成を行い、属性証明機関装置１０は、この属性証明シードを利用者のサービス利用者装置１１に送信する。
【００６３】
次に、属性証明書のデータ構造、生成方法の概要、ならびに属性証明書の検証手順について説明する。属性証明書は、２つの具体例を示し説明する。まず、第１の具体例について説明する。
【００６４】
図１１は、第１の具体例における属性証明書１０２のデータ構造例を示す図である。サービス利用者装置１１は、属性証明シード１０１を属性証明機関装置１０より受け取り、属性証明シード保存部５０５に記録しておく。次に、サービス利用者装置１１は、サービス・プロバイダ装置１２に対して、サービスの提供を依頼する。サービス・プロバイダ装置１２は、要求されたサービスに依存した属性項目に関する属性証明書１０２の提示を、サービス利用者装置１１に要求する。たとえば、提供サービスに年齢制限があり、名前および住所も要求する場合には、名前、住所および年齢の属性項目に関する属性証明書１０２が必要となる。そして、このとき例えば電話番号の属性データが属性証明シード１０１に含まれているときは、サービス・プロバイダ装置１２に提示する必要はないため、属性証明書１０２を生成する際に電話番号の属性データは隠蔽される。
【００６５】
サービス利用者装置１１は、属性証明シード１０１に含まれるが、属性証明書１０２には含む必要のない属性項目を次の手順に従って隠蔽する。まず、属性証明シード１０１の全ての属性データに対応する第1乱数＝ｒ＿１、ｒ＿２、・・・、ｒ＿５を生成する。次に第１乱数ｒ＿ｉと属性証明機関の公開情報Ｐを元に、第２乱数Ｗ＿ｉを生成する。すなわちｒ＿１とＰからＷ＿１を、ｒ＿２とＰからＷ＿２を、・・・、ｒ＿５とＰからＷ＿５を、それぞれ生成する。さらに、隠蔽する属性データについては、ｉ番目の項目の属性データを隠蔽するとしたときにｍ＿ｉとＷ＿ｉから隠蔽属性データｍ＿ｉ’を生成する。図１１ではｍ＿２、ｍ＿４の属性データが隠蔽される様子を示しており、属性データｍ＿２は第２乱数Ｗ＿２により隠蔽されて、ｍ＿２’が生成される。同様に、属性データｍ＿４は、第２乱数Ｗ＿４により隠蔽されて、ｍ＿４’が生成される。
【００６６】
次に、隠蔽しない属性データについては、ｊ番目の属性データを隠蔽しないとしたときに、ｍ＿ｊ’＝ｍ＿ｊとする。図１１ではｍ＿１、ｍ＿３、およびｍ＿５の属性項目が隠蔽されていない様子を示している。最後に、部分電子署名Ｓ＿ｉと乱数ｒ＿ｉおよび属性証明機関の公開鍵Ｑから、属性証明書の電子署名Ｓを生成する。
【００６７】
隠蔽処理後の属性項目ｍ＿ｉ’、第２乱数Ｗ＿ｉ、および電子署名Ｓをセットにしたものを属性証明書１０２とし、サービス利用者装置１１は、この属性証明書１０２をサービス・プロバイダ装置１２に送信する。
【００６８】
次に、第１の具体例について、属性証明書の具体的な生成方法ならびに、属性証明書の具体的な検証方法について説明する。
【００６９】
本具体例に係る属性証明機関生成、検証は、例えば双線形写像ｅが存在しＣＤＨ問題が困難となる群（双線形群）を利用することで実現できる。以下で、双線形写像や双線形群について簡単に説明する。
【００７０】
まず巡回群Ｇの位数を素数ｐ、Ｇの生成元をＰとする。これは、群Ｇの全ての元が｛Ｐ、２Ｐ、３Ｐ、・・・、（ｐ−１）Ｐ｝であらわすことができることを意味する。またＧＤＨ群（Ｇａｐ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ  Ｇｒｏｕｐ）を、ＣＤＨ問題が困難であり、かつＤＤＨ問題が容易な群とする。ここでＣＤＨ問題（Ｃｏｍｐｕｔａｔｉｏｎａｌ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ  Ｐｒｏｂｌｅｍ）とは、Ｚ＿ｐを０以上ｐ未満の整数全体の集合とし、ａ、ｂ∈Ｚ＿ｐなるａおよびｂに対して、Ｇの要素（Ｐ、ａＰ、ｂＰ）が与えられて、ａｂＰを求める問題であり、ＤＤＨ問題（Ｄｅｃｉｓｉｏｎａｌ  Ｄｉｆｆｉｅ−Ｈｅｌｍａｎ  Ｐｒｏｂｌｅｍ）とは、ａ、ｂ、ｃ∈Ｚ＿ｐなるａ、ｂおよびｃに対して、Ｇの要素（Ｐ、ａＰ、ｂＰ、ｃＰ）が与えられて、ａｂ＝ｃが成立するか否かを判定する問題である。
【００７１】
双線形写像が存在しＣＤＨ問題が困難となる群を双線形群という。ここで、双線形写像ｅ：Ｇ＿１×Ｇ＿１→Ｇ＿２とは、いかなる群Ｇ＿１の要素Ｐ、ＱおよびＺ＿ｐの要素ａ、ｂに対してもｅ（Ｐ、Ｑ）を効率的に計算でき、関係ｅ（ａＰ、ｂＰ）＝ｅ（Ｐ、Ｑ）＾（ａｂ）が成立し(双線形)、かつｅ（Ｐ、Ｐ）≠１(非退化)となるような写像である。ここで双線形写像ｅは、一般的にはペアリングと呼ばれ、このペアリングｅ：Ｇ＿１×Ｇ＿１→Ｇ＿２は、巡回群Ｇ＿１の２つの要素を入力とし巡回群Ｇ＿２の要素を出力とする写像である。また、ｅ（Ｐ、Ｑ）＾ｎは、要素ｅ（Ｐ、Ｑ）をｎ乗することを意味する。なお、Ｇ＿２はＧ＿１と異なる位数ｐの巡回群である。
【００７２】
以上で、双線形写像や双線形群についての簡単な説明を行った。なお、双線形写像や双線形群については、Dan Boneh and Matt Franklin、 “Identity-Based Encryption from the Weil Paring、” LNCS 2139、 pp． 213-229、 2001に詳しく記載される。
【００７３】
次に、第１の具体例における、属性証明機関の鍵生成の仕組みについて説明する。属性証明機関は、公開情報としてＧＤＨ群かつ双線形群となるＧ＿１と生成元Ｐを生成する。ただし、Ｇ＿１の位数を素数ｐとする。属性証明機関は、自己の鍵情報ｘをＺ＿ｐよりランダムに選び、これを秘密鍵とする。また、Ｑ＝ｘＰを公開鍵とする（ＱはＧ＿１の要素である）。属性証明機関は、属性証明機関装置１０の秘密鍵保存部６０３に、生成した秘密鍵ｘを保存する。また、属性証明機関は、公開鍵Ｑをサービス・プロバイダにネットワークを通じて配布する。サービス・プロバイダは、サービス・プロバイダ装置１２の公開鍵保存部７０３に、配布された属性証明機関の公開鍵Ｑや公開情報Ｐ、ｐ、Ｇ＿１、Ｇ＿２、Ｈ（）などを保存する。
【００７４】
図１２は、第１の具体例における、属性証明書１０２の生成手順を示した図である。以下では、属性証明書１０２の生成手順について説明する。
【００７５】
属性証明シード１０１の各属性データについて、サービス・プロバイダに対して隠蔽する属性データと、隠蔽しない属性データを決定する（ステップＳ１２０１）。
【００７６】
次に、全ての属性データのために、異なる乱数値（ｒ＿１、ｒ＿２、・・・、ｒ＿ｎ）をＺ＿ｐからランダムに選択生成する（ステップＳ１２０２）。
【００７７】
次式により乱数データＷ＿ｉを生成する（ステップＳ１２０３）。
【００７８】
Ｗ＿ｉ＝ｒ＿ｉＰ
ここで、ｒ＿ｉＰは、巡回群Ｇ＿１の生成元Ｐをｒ＿ｉ倍したものであり、計算結果のＷ＿ｉも、巡回群Ｇ＿１の要素となる。
【００７９】
そして、隠蔽する属性データの項目番号がｉ番目であったときに、ｍ＿ｉに対して、次式により隠蔽処理を施し、ｍ＿ｉ’を生成する（ステップＳ１２０４）。
【００８０】
ｍ＿ｉ’＝Ｈ（ｍ＿ｉ）＋Ｗ＿ｉ
一方、隠蔽しない属性データの項目番号がｊ番目であったときには、ｍ＿ｊ’＝ｍ＿ｊとする（ステップＳ１２０５）。
【００８１】
ステップＳ１２０４、Ｓ１２０５が終了すると、属性証明シードに含まれる部分署名群（Ｓ＿１、Ｓ＿２、・・・、Ｓ＿５）と、属性証明機関の公開鍵Ｑを用いて、次式により署名データＳを生成する（ステップＳ１２０６）。
【００８２】
Ｓ＝Σ（Ｓ＿ｉ＋ｒ＿ｉＱ）
ここで、ｒ＿ｉＱは、巡回群Ｇ＿１の要素Ｑをｒ＿ｉ倍したものである。またΣは、全てのｉに関しての和をとることを意味する。
【００８３】
一部の項目が隠蔽された属性データ：Ｍ’＝ｍ＿１’｜ｍ＿２’｜・・・｜ｍ＿ｎ’、乱数Ｗ＿ｉ｛ｉは、隠蔽されていない属性データのインデックス｝、および署名データＳの３つのセットを、属性証明書１０２として出力する（ステップＳ１２０７）。以上のように、属性証明書１０２を生成する。
【００８４】
図１３は、第１の具体例における、属性証明書１０２の検証手順を示した図である。以下では、属性証明書１０２の検証手順について説明する。
【００８５】
まず、サービス利用者のサービス利用者装置１１から送られてきた属性証明書１０２の属性データ（ｍ＿１’、ｍ＿２’、・・・、ｍ＿ｎ’）を、隠蔽された部分と隠蔽されていない部分に分ける（ステップＳ１３０１）。
【００８６】
そして、隠蔽されていない属性データがｉ番目であったときに、全ての隠蔽されていない属性データに対して次式に示す処理を行い、Ｔ＿ｉを計算する（ステップＳ１３０２）。
【００８７】
Ｔ＿ｉ＝Ｈ（ｍ＿ｉ’）＋Ｗ＿ｉ
ここで、Ｈ（ｍ＿ｉ’）およびＷ＿ｉはいずれも巡回群Ｇ＿１の要素であり、計算結果のＴ＿ｉも巡回群Ｇ＿１の要素である。
【００８８】
一方、隠蔽されているブロックの属性データがｊ番目であったときに、全ての隠蔽されている属性データに対して、Ｔ＿ｊ＝ｍ＿ｊ’とする（ステップＳ１３０３）。
【００８９】
ステップＳ１３０２，Ｓ１３０３が終了すると、次の検証式が成立するかどうかをチェックする（ステップＳ１３０４）。
【００９０】
ｅ（Ｓ，Ｐ）＝Πｅ（Ｔ＿ｉ，Ｑ）
ここで、検証式の左辺は属性証明書に含まれる署名値Ｓと、属性証明機関の公開情報Ｐを双線形写像ｅに入力した結果であり、その出力は巡回群Ｇ＿２の要素である。一方、検証式の右辺は全てのｉ、すなわち、すべての属性データに関して、Ｔ＿ｉと属性証明機関の公開鍵Ｑを双線形写像eに入力したものを計算し、その計算結果全てを乗じたものであり、これもまた巡回群Ｇ＿２の要素である。
【００９１】
次に、ステップＳ１３０４での検証式が成立すれば、属性証明書１０２を受理する（ステップＳ１３０５）。一方、ステップＳ１３０４での検証式が成立しなければ、属性証明書１０２を拒否する（ステップＳ１３０６）。
【００９２】
このようにして、属性証明書１０２の検証手順を行う。
【００９３】
以上で、第１の具体例について説明を終える。
【００９４】
次に、第２の具体例について説明する。
【００９５】
第２の具体例は、第１の具体例と比較して、属性証明書サイズの大幅に削減する効果を見込むことができる。この理由は以下のとおりである。すなわち、属性証明書期間の負荷を減らすために、１度発行された１つの属性証明シードを何度も利用できることが望まれる。さまざまなサービス利用に対して、１つの属性証明シードを再利用するためには、該属性証明シードに含まれる属性情報の項目数が多いほうが良い（例えば、名前・住所・電話番号・職業・性別・本籍・身長・体重・病歴、など多くの項目が１つの属性証明シードに含まれていたほうが良い）。すると、このような属性証明シードを利用する場合、あるサービスを受けるときに使用されない属性情報、すなわち第１の具体例における「隠蔽される箇所」が多くなり、不要なデータが増加してしまう。第２の実施形態では、「隠蔽」するかわりに不必要な属性情報を「削除」することが可能となるため、データサイズを削減することができる。
【００９６】
図１４は、第２の具体例における属性証明書１０２のデータ構造例を示す図である。ただし、同図は属性項目が５つの場合を示している。サービス利用者装置１１は、属性証明シード１０１を属性証明機関装置１０より受け取り、属性証明シード保存部５０５に記録しておく。次に、サービス利用者装置１１は、サービス・プロバイダ装置１２に対して、サービスの提供を依頼する。サービス・プロバイダ装置１２は、要求されたサービスに依存した属性項目に関する属性証明書の提示を、サービス利用者装置１１に要求する。たとえば、提供サービスに年齢制限があり、名前および住所も要求する場合には、名前、住所および年齢の属性項目に関する属性証明書１０２が必要となる。そして、このとき例えば電話番号の属性データが属性証明シード１０１に含まれているときは、サービス・プロバイダ装置１２に提示する必要はないため、属性証明書１０２を生成する際に電話番号の属性データは削除される。
【００９７】
サービス利用者装置１１は、属性証明シード１０１に含まれるが、属性証明書１０２には含む必要のない属性項目を次の手順に従って削除する。まず、属性証明書１０２に含む必要のある属性データのみを、属性証明シード１０１より抽出する。次に、抽出した属性データに対応する第1乱数＝ｒ＿１、ｒ＿３、ｒ＿５を生成する。次に第１乱数ｒ＿ｉと属性証明機関の公開情報Ｐを元に、第２乱数Ｗ＿ｉを生成する。すなわちｒ＿１とＰからＷ＿１を、ｒ＿３とＰからＷ＿３を、ｒ＿５とＰからＷ＿５を、それぞれ生成する。図１４ではｍ＿２、ｍ＿４の属性データが削除される様子を示しており、属性データｍ＿２および属性データｍ＿４は、属性証明書に含まれていない。最後に、抽出された属性データに対応する部分電子署名Ｓ＿ｉと乱数ｒ＿ｉおよび属性証明機関の公開鍵Ｑから、属性証明書の電子署名Ｓを生成する。
【００９８】
削除処理後の属性項目ｍ＿ｉ、第２乱数Ｗ＿ｉ、および電子署名Ｓをセットにしたものを属性証明書１０２とし、サービス利用者装置１１は、この属性証明書をサービス・プロバイダ装置１２に送信する。
【００９９】
次に、第２の具体例の属性証明書の具体的な生成方法ならびに、属性証明書の具体的な検証方法について説明する。
【０１００】
第２の具体例の属性証明書の生成、検証は、第１の具体例と同様に、前述の双線形写像ｅが存在しＣＤＨ問題が困難となる群（双線形群）を利用することで実現できる。そして、属性証明機関の鍵生成の仕組みについても、第１の実施形態と同様でよい。
【０１０１】
図１５は、第２の具体例における、属性証明書１０２の生成手順を示した図である。以下では、属性証明書１０２の生成手順について説明する。
【０１０２】
属性証明シード１０１の各属性データについて、サービス・プロバイダに対して提示しない属性データ（削除部分）と、提示する属性データ（抽出する部分）を決定する（ステップＳ１５０１）。
【０１０３】
次に、抽出する属性データに対応する、異なる乱数値（ｒ＿１、ｒ＿２、・・・、ｒ＿ｎ）をＺ＿ｐからランダムに選択生成する（ステップＳ１５０２）。
【０１０４】
次式により乱数データＷ＿ｉを生成する（ステップＳ１５０３）。
【０１０５】
Ｗ＿ｉ＝ｒ＿ｉＰ、ただしｉ＝１、２、・・・、ｎ。
【０１０６】
ここで、ｒ＿ｉＰは、巡回群Ｇ＿１の生成元Ｐをｒ＿ｉ倍したものであり、計算結果のＷ＿ｉも、巡回群Ｇ＿１の要素となる。
【０１０７】
次に、抽出された属性データに対応する、属性証明シードに含まれる部分署名群（Ｓ＿１、Ｓ＿２、・・・、Ｓ＿５）と、属性証明機関の公開鍵Ｑを用いて、次式により署名データＳを生成する（ステップＳ１５０４）。
【０１０８】
Ｓ＝Σ（Ｓ＿ｉ＋ｒ＿ｉＱ）
ここで、ｒ＿ｉＱは、巡回群Ｇ＿１の要素Ｑをｒ＿ｉ倍したものである。またΣは、抽出された全てのｉに関しての和をとることを意味する。
【０１０９】
抽出された属性データｍ＿ｉ｛ｉは、抽出された属性データのインデックス｝、乱数Ｗ＿ｉ｛ｉは、抽出された属性データのインデックス｝、および署名データＳの３つのセットを、属性証明書１０２として出力する（ステップＳ１５０５）。
【０１１０】
以上により、属性証明書１０２を生成する。
【０１１１】
図１６は、第２の具体例における、属性証明書１０２の検証手順を示した図である。以下では、属性証明書の検証手順について説明する。
【０１１２】
まず、サービス利用者のサービス利用者装置１１から送られてきた属性証明書の全ての属性データに対して、次式に示す処理を行い、Ｔ＿ｉを計算する（ステップＳ１６０１）。
【０１１３】
Ｔ＿ｉ＝Ｈ（ｍ＿ｉ）＋Ｗ＿ｉ
ここで、Ｈ（ｍ＿ｉ）およびＷ＿ｉはいずれも巡回群Ｇ＿１の要素であり、計算結果のＴ＿ｉも巡回群Ｇ＿１の要素である。
【０１１４】
次に、次の検証式が成立するかどうかをチェックする（ステップＳ１６０２）。
【０１１５】
ｅ（Ｓ，Ｐ）＝Πｅ（Ｔ＿ｉ，Ｑ）
ここで、検証式の左辺は属性証明書に含まれる署名値Ｓと、属性証明機関の公開情報Ｐを双線形写像ｅに入力した結果であり、その出力は巡回群Ｇ＿２の要素である。一方、検証式の右辺は全てのｉ、すなわち、抽出されたすべての属性データに関して、Ｔ＿ｉと属性証明機関の公開鍵Ｑを双線形写像eに入力したものを計算し、その計算結果全てを乗じたものであり、これもまた巡回群Ｇ＿２の要素である。
【０１１６】
次に、ステップＳ１６０２での検証式が成立すれば、属性証明書を受理する（ステップＳ１６０３）。一方、ステップＳ１６０２での検証式が成立しなければ、属性証明書を拒否する（ステップＳ１６０４）。
【０１１７】
このようにして、属性証明書の検証手順を行う。
【０１１８】
第２の具体例の属性証明書の生成検証について説明を終える。
【０１１９】
以上、詳細に説明した本実施の形態は、生成された属性証明書は、サービス利用者がサービス提供されるたびに、毎回異なる署名データを生成することが可能であるため、属性証明機関の負荷を増やさなくても、属性証明書同士の結びつきが知られることがない。
【０１２０】
また、本実施の形態では、サービス利用者は属性証明機関の秘密鍵を利用することなく、属性証明書（署名データ）を生成することが可能である。
【０１２１】
また、本実施の形態では、属性証明機関は署名データを生成する際に乱数値を決定する必要がなく、利用者がサービスを受けるたびに異なる乱数を生成して属性証明書を完成させることができる。この結果、本発明では１つの属性証明シードから２つの属性証明書を生成しても、毎回異なる乱数を生成する限りにおいては、それらの間で関係がとられることはなく、サービス利用者の匿名性が維持される。
【図面の簡単な説明】
【０１２２】
【図１】本実施の形態の概念フローを示す図。
【図２】本実施の形態のシステムの概略構成図を示した図。
【図３】属性データの例。
【図４】各装置のハードウェア構成例を示した図。
【図５】属性証明システムの概略機能構成を示したブロック図。
【図６】サービス利用者装置の機能構成を示したブロック図。
【図７】属性証明機関装置の機能構成を示したブロック図。
【図８】サービス・プロバイダ装置の機能構成を示したブロック図。
【図９】属性証明シードのデータ構造例を示した図。
【図１０】属性証明シードの生成手順を示したフローチャート。
【図１１】第１の具体例の属性証明書のデータ構造例を示した図。
【図１２】第１の具体例の属性証明書の生成手順を示したフローチャート。
【図１３】第１の具体例の属性証明書の検証手順を示したフローチャート。
【図１４】第２の具体例の属性証明書のデータ構造例を示した図。
【図１５】第２の具体例の属性証明書の生成手順を示したフローチャート。
【図１６】第２の具体例の属性証明書の検証手順を示したフローチャート。
【符号の説明】
【０１２３】
１  ネットワーク
１０  属性証明機関装置
１１  サービス利用者装置
１２  サービス・プロバイダ装置
２０  コンピュータ
２０１  ＣＰＵ
２０２  ＲＡＭ
２０３  外部記憶装置
２０４  グラフィック処理装置
２０５  入力インタフェース
２０６  通信インタフェース
２０７  バス
２０８  キーボード
２０９  マウス
２１１  モニタ
４０２  属性データ受信機能  ４０３  属性証明シード生成機能
４０４  属性証明シード送信機能
４０５  属性データシード受信機能
４０６  属性データシード保存機能
４０７  乱数生成機能
４０８  属性証明書生成機能
４０９  属性証明書送信機能
４１０  属性証明書受信機能
４１１  属性証明書検証機能
５０１  属性データ入力部  
５０２  属性データ保存部  
５０３  属性データ送信部
５０４  属性証明シード受信部
５０５  属性証明シード保存部
５０６  乱数生成部
５０７  属性証明書生成部
５０８  属性証明書送信部
６０１  属性データ受信部
６０３  秘密鍵保存部
６０２  属性証明シード生成部
６０４  属性証明シード送信部
７０１  属性証明書受信部
７０３  公開鍵保存部
７０２  属性証明書検証部
７０４  サービス提供部
【図１】
2007295511.tif 000003
【図２】
2007295511.tif 000004
【図３】
2007295511.tif 000005
【図４】
2007295511.tif 000006
【図５】
2007295511.tif 000007
【図６】
2007295511.tif 000008
【図７】
2007295511.tif 000009
【図８】
2007295511.tif 000010
【図９】
2007295511.tif 000011
【図１０】
2007295511.tif 000012
【図１１】
2007295511.tif 000013
【図１２】
2007295511.tif 000014
【図１３】
2007295511.tif 000015
【図１４】
2007295511.tif 000016
【図１５】
2007295511.tif 000017
【図１６】
2007295511.tif 000018