(57)【特許請求の範囲】
【請求項１】
ユーザ端末と、属性証明書発行サーバと、サービス提供サーバとがネットワークを介して接続されて成るマルチ属性認証システムであって、
前記ユーザ端末が、
ユーザの秘密鍵ｘ１、ｘ２、ｘ３、・・・、ｘiとこれと対をなす公開鍵ｙ１＝ｘ１＊Ｐ、ｙ２＝ｘ２＊Ｐ、ｙ３＝ｘ３Ｐ、・・・、ｙｉ＝ｘｉＰ（Ｐ；生成元）とを属性の数ｊよりも１つ多い数（ｉ＝ｊ＋１）生成する第１の鍵生成手段と、
前記属性証明書発行サーバに、該生成した公開鍵を送信する第１の送信手段と、
前記サービス提供サーバにサービスの提供要求を送信する第２の送信手段と、
乱数ｆを生成し、該乱数ｆを用いて、前記属性証明書発行サーバが発行する属性証明書を変形する変形手段と、
前記属性の数に対応した秘密鍵を乱数ｆにより変形し、該変形した秘密鍵を用いて、前記サービス提供サーバから受信したサービス提供者の公開鍵ｙｓに乱数ｒを乗じたものに対する署名値を算出する処理手段と、
前記変形手段において変形した属性証明書と該処理手段において算出した署名値とを前記サービス提供サーバに送信する第３の送信手段と、
を備え、
前記属性証明書発行サーバが、
前記ユーザ端末の鍵生成手段が生成した公開鍵に対して、保有する署名鍵ｚ１、ｚ２、・・・、Ｚｉで署名を行う署名手段と、
前記ユーザ端末に対して、属性証明書として{ｙ１、ｙ２、ｚ１ｙ１、ｚ２ｙ２、ｚ３ｙ３、・・・ｚｉｙｉ}を発行する発行手段と、
を備え、
前記サービス提供サーバが、
自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ、Ｐ；生成元）を生成する第２の鍵生成手段と、
生成した乱数ｒと前記公開鍵ｙｓとからなる情報をチャレンジとして前記ユーザ端末に送信する第４の送信手段と、
前記ユーザ端末から受信した属性証明書を検証する第１の検証手段と、
前記ユーザ端末から受信した署名値を検証する第２の検証手段と、
失効確認を実行する失効確認実行手段と、
前記第１の検証手段により属性証明書の正当性が確認され、前記第２の検証手段により署名値の正当性が確認され、かつ、前記失効確認実行手段により失効確認が完了したときに、前記ユーザ端末に対して、属性情報に基づいたサービスの提供を行うサービス提供手段と、
を備えたことを特徴とするマルチ属性認証システム。
【請求項２】
前記サービス提供サーバが、乱数ｒを生成し、この乱数ｒと自身の公開鍵ｙｓ（＝ｘｓ＊Ｐ）からｒ＊ｙｓを計算し、これをチャレンジとして送信することを特徴とする請求項１に記載のマルチ属性認証システム。
【請求項３】
前記ユーザ端末の処理手段が、前記変形手段が生成する乱数ｆによって変形された前記属性に対する秘密鍵ｆｘ１、ｆｘ２、・・・、ｆｘｍを用いて、ｒ＊ｙｓに対する署名値をｓ１＝ｆｘ１＊ｒ＊ｙｓ、ｓ２＝ｆｘ２＊ｒ＊ｙｓ、・・・、ｓｉ＝ｆｘｉ＊ｒ＊ｙｓにより算出することを特徴とする請求項２に記載のマルチ属性認証システム。
【請求項４】
前記サービス提供サーバの第１の検証手段が、ｚ１Ｐ、ｚ２Ｐ・・・、ｚｉＰを属性発行用の公開鍵としたときに、ｅ（ｆｙ１、ｚ１Ｐ）ｅ（ｆｙ２、ｚ２Ｐ）・・・ｅ（ｆｙｉ、ｚｉＰ）＝ｅ（ｆｚ１ｙ１、Ｐ）ｅ（ｆｚ２ｙ２、Ｐ）・・・ｅ（ｆｚｉｙｉ、Ｐ）を演算して、該演算式が成立するかどうかにより、属性証明書の正当性を検証することを特徴とする請求項１に記載のマルチ属性認証システム。
【請求項５】
前記サービス提供サーバの第２の検証手段が、ｅ（ｓ１、 Ｐ）ｅ（ｓ２、 Ｐ）・・・ｅ（ｓｉ、 Ｐ）＝ｅ（ｆｙ１、ｒ＊ｙｓ）ｅ（ｆｙ２、ｒ＊ｙｓ）・・・ｅ（ｆｙｉ、ｒ＊ｙｓ）を演算して、該演算式が成立するかどうかにより、署名の正当性を検証することを特徴とする請求項３に記載のマルチ属性認証システム。
【請求項６】
前記サービス提供サーバの失効確認実行手段が、失効リストに掲載されているすべてのｙ１について、ｒ＊ｘｓ＊ｙ１を計算するとともに、ｅ（ｚ１ｙ１、ｓ１）＝ｅ（ｆ＊ｚ１＊ｙ１、ｒ＊ｘｓ＊ｙ１）を演算して、該演算式が成立するかどうかにより、失効確認を実行することを特徴とする請求項２または請求項３に記載のマルチ属性認証システム。
【請求項７】
ユーザ端末と、属性証明書発行サーバと、サービス提供サーバとがネットワークを介して接続されて成るマルチ属性認証システムにおけるマルチ属性認証方法であって、
前記ユーザ端末が、ユーザの秘密鍵ｘ１、ｘ２、ｘ３、・・・、ｘiとこれと対をなす公開鍵ｙ１＝ｘ１＊Ｐ、ｙ２＝ｘ２＊Ｐ、ｙ３＝ｘ３Ｐ、・・・、ｙｉ＝ｘｉＰ（Ｐ；生成元）とを属性の数ｊよりも１つ多い数（ｉ＝ｊ＋１）生成する第１のステップと、
前記ユーザ端末が、前記属性証明書発行サーバに、該生成した公開鍵を送信する第２のステップと、
前記属性証明書発行サーバが、受信した公開鍵に対して、保有する署名鍵ｚ１、ｚ２、・・・、Ｚｉで署名を行う第３のステップと、
前記属性証明書発行サーバが、前記ユーザ端末に対して、属性証明書として{ｙ１、ｙ２、ｚ１ｙ１、ｚ２ｙ２、ｚ３ｙ３、・・・ｚｉｙｉ}を発行する第４のステップと、
前記ユーザ端末が、前記サービス提供サーバにサービスの提供要求を送信する第５のステップと、
前記サービス提供サーバが、自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ、Ｐ；生成元）を生成する第６のステップと、
前記サービス提供サーバが、生成した乱数ｒと前記公開鍵ｙｓとからなる情報をチャレンジとして前記ユーザ端末に送信する第７のステップと、
前記ユーザ端末が、乱数ｆを生成し、該乱数ｆを用いて、前記属性証明書発行サーバが発行する属性証明書を変形する第８のステップと、
前記ユーザ端末が、前記属性の数に対応した秘密鍵を乱数ｆにより変形し、該変形した秘密鍵を用いて、前記サービス提供サーバから受信したサービス提供者の公開鍵に乱数を乗じたものに対する署名値を算出する第９のステップと、
前記ユーザ端末が、前記変形した属性証明書と算出した署名値とを前記サービス提供サーバに送信する第１０のステップと、
前記サービス提供サーバが、前記ユーザ端末から受信した属性証明書を検証する第１１のステップと、
前記サービス提供サーバが、前記ユーザ端末から受信した署名値を検証する第１２のステップと、
前記サービス提供サーバが、失効確認を実行する第１３のステップと、
前記サービス提供サーバが、属性証明書の正当性が確認され、署名値の正当性が確認され、かつ、失効確認が完了したときに、前記ユーザ端末に対して、属性情報に基づいたサービスの提供を行う第１４のステップと、
を備えたことを特徴とするマルチ属性認証方法。
【請求項８】
ユーザ端末と、属性証明書発行サーバと、サービス提供サーバと、信頼できるサーバとがネットワークを介して接続されて成るマルチ属性認証システムにおけるマルチ属性認証方法をコンピュータに実行させるためのプログラムであって、
前記ユーザ端末が、ユーザの秘密鍵ｘ１、ｘ２、ｘ３、・・・、ｘiとこれと対をなす公開鍵ｙ１＝ｘ１＊Ｐ、ｙ２＝ｘ２＊Ｐ、ｙ３＝ｘ３Ｐ、・・・、ｙｉ＝ｘｉＰ（Ｐ；生成元）とを属性の数ｊよりも１つ多い数（ｉ＝ｊ＋１）生成する第１のステップと、
前記ユーザ端末が、前記属性証明書発行サーバに、該生成した公開鍵を送信する第２のステップと、
前記属性証明書発行サーバが、受信した公開鍵に対して、保有する署名鍵ｚ１、ｚ２、・・・、Ｚｉで署名を行う第３のステップと、
前記属性証明書発行サーバが、前記ユーザ端末に対して、属性証明書として{ｙ１、ｙ２、ｚ１ｙ１、ｚ２ｙ２、ｚ３ｙ３、・・・ｚｉｙｉ}を発行する第４のステップと、
前記ユーザ端末が、前記サービス提供サーバにサービスの提供要求を送信する第５のステップと、
前記サービス提供サーバが、自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ、Ｐ；生成元）を生成する第６のステップと、
前記サービス提供サーバが、生成した乱数ｒと前記公開鍵ｙｓとからなる情報をチャレンジとして前記ユーザ端末に送信する第７のステップと、
前記ユーザ端末が、乱数ｆを生成し、該乱数ｆを用いて、前記属性証明書発行サーバが発行する属性証明書を変形する第８のステップと、
前記ユーザ端末が、前記属性の数に対応した秘密鍵を乱数ｆにより変形し、該変形した秘密鍵を用いて、前記サービス提供サーバから受信したサービス提供者の公開鍵に乱数を乗じたものに対する署名値を算出する第９のステップと、
前記ユーザ端末が、前記変形した属性証明書と算出した署名値とを前記サービス提供サーバに送信する第１０のステップと、
前記サービス提供サーバが、前記ユーザ端末から受信した属性証明書を検証する第１１のステップと、
前記サービス提供サーバが、前記ユーザ端末から受信した署名値を検証する第１２のステップと、
前記サービス提供サーバが、失効確認を実行する第１３のステップと、
前記サービス提供サーバが、属性証明書の正当性が確認され、署名値の正当性が確認され、かつ、失効確認が完了したときに、前記ユーザ端末に対して、属性情報に基づいたサービスの提供を行う第１４のステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、利用者が任意に属性情報をブラインド化可能かつ完全な匿名化を実現しつつ、複数の属性を所有することを同時に認証するマルチ属性認証システム、マルチ属性認証方法、失効確認方法およびプログラムに関する。
【背景技術】
【０００２】
近年、様々なサービスがインターネットを通して電子的に提供されるようになってきている。そのようなサービス提供を行う際には、利用者を認証することが不可欠となる。ここで、利用者を認証する方法は、通常、個人を特定する認証と、属性認証等、個人を特定しない認証（例えば、特許文献１参照）とに大別される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特公平８−２０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、属性認証において、匿名性は考慮されていなかった。また、近年匿名化の研究はなされているが、匿名化が不十分であったり、属性認証の際に第３者との通信を必要としたりするという問題点があった。さらに、属性情報が変形できないことによって、第三者による属性情報を用いた利用者の追跡が可能であった。また、従来の技術では、複数の属性を同時に認証するという方法は実現されていなかった。
【０００５】
そこで、本発明は、上述の課題に鑑みてなされたものであり、利用者が任意に属性情報をブラインド化可能かつ完全な匿名化を実現しつつ、複数の属性を所有することを同時に認証するマルチ属性認証を実現するマルチ属性認証システム、マルチ属性認証方法、失効確認方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記した課題を解決するために以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００７】
（１）本発明は、ユーザ端末（例えば、図１のユーザ端末１に相当）と、属性証明書発行サーバ（例えば、図１の属性認証サーバ３に相当）と、サービス提供サーバ（例えば、図１のＳＰサーバ２に相当）とがネットワークを介して接続されて成るマルチ属性認証システムであって、前記ユーザ端末が、複数のユーザの秘密鍵とこれと対をなす公開鍵とを属性の数よりも１つ多く生成する第１の鍵生成手段（例えば、図２の鍵生成部１２に相当）と、前記属性証明書発行サーバに、該生成した属性の数に対応した公開鍵を送信する第１の送信手段（例えば、図２の送信部１４に相当）と、前記サービス提供サーバにサービスの提供要求を送信する第２の送信手段（例えば、図２の送信部１４に相当）と、乱数ｆを生成し、該乱数ｆを用いて、前記属性証明書発行サーバが発行する属性証明書を変形する変形手段（例えば、図２の属性証明書変形部１３に相当）と、前記属性の数に対応した秘密鍵を乱数ｆにより変形し、該変形した秘密鍵を用いて、前記サービス提供サーバから受信したサービス提供者の公開鍵に乱数を乗じたものに対する署名値を算出する処理手段（例えば、図２の処理部１５に相当）と、前記変形手段において変形した属性証明書と該処理手段において算出した署名値とを前記サービス提供サーバに送信する第３の送信手段（例えば、図２の送信部１４に相当）と、を備え、前記属性証明書発行サーバが、前記ユーザ端末の鍵生成手段が生成した前記属性の数に相当した公開鍵に対して、保有する署名鍵ｚ１、ｚ２で署名を行う署名手段（例えば、図４の署名部３１に相当）と、前記ユーザ端末に対して、属性証明書として{ｙ１、ｙ２、ｚ１ｙ１、ｚ２ｙ２、ｚ３ｙ３、・・・ｚｉｙｉ}を発行する発行手段（例えば、図４の属性証明書発行部３２に相当）と、を備え、前記サービス提供サーバが、自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ）を生成する第２の鍵生成手段（例えば、図３の鍵生成部２５に相当）と、生成した乱数ｒと前記公開鍵ｙｓとからなる情報をチャレンジとして前記ユーザ端末に送信する第４の送信手段（例えば、図３の送信部２７に相当）と、前記ユーザ端末から受信した属性証明書を検証する第１の検証手段（例えば、図３の属性証明書検証部２１に相当）と、前記ユーザ端末から受信した署名値を検証する第２の検証手段（例えば、図３の署名検証部２２に相当）と、失効確認を実行する失効確認実行手段（例えば、図３の失効確認実行部２３に相当）と、前記第１の検証手段により属性証明書の正当性が確認され、前記第２の検証手段により署名値の正当性が確認され、かつ、前記失効確認実行手段により失効確認が完了したときに、前記ユーザ端末に対して、属性情報に基づいたサービスの提供を行うサービス提供手段（例えば、図３のサービス提供部２４に相当）と、を備えたことを特徴とするマルチ属性認証システムを提案している。
【０００８】
この発明によれば、ユーザ端末の第１の鍵生成手段は、複数のユーザの秘密鍵とこれと対をなす公開鍵とを属性の数よりも１つ多く生成する。第１の送信手段は、属性証明書発行サーバに、その生成した属性の数に対応した公開鍵を送信する。第２の送信手段は、サービス提供サーバにサービスの提供要求を送信する。変形手段は、乱数ｆを生成し、その乱数ｆを用いて、属性証明書発行サーバが発行する属性証明書を変形する。処理手段は、属性の数に対応した秘密鍵を乱数ｆにより変形し、その変形した秘密鍵を用いて、サービス提供サーバから受信したサービス提供者の公開鍵に乱数を乗じたものに対する署名値を算出する。第３の送信手段は、変形手段において変形した属性証明書と処理手段において算出した署名値とをサービス提供サーバに送信する。属性証明書発行サーバの署名手段は、ユーザ端末の鍵生成手段が生成した属性の数に対応した公開鍵に対して、保有する署名鍵ｚ１、ｚ２で署名を行う。発行手段は、ユーザ端末に対して、属性証明書として{ｙ１、ｙ２、ｚ１ｙ１、ｚ２ｙ２、ｚ３ｙ３、・・・ｚｉｙｉ}を発行する。サービス提供サーバの第２の鍵生成手段は、自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ）を生成する。第４の送信手段は、生成した乱数ｒと公開鍵ｙｓとからなる情報をチャレンジとしてユーザ端末に送信する。第１の検証手段は、ユーザ端末から受信した属性証明書を検証する。第２の検証手段は、ユーザ端末から受信した署名値を検証する。失効確認実行手段は、失効確認を実行する。サービス提供手段は、第１の検証手段により属性証明書の正当性が確認され、第２の検証手段により署名値の正当性が確認され、かつ、失効確認実行手段により失効確認が完了したときに、ユーザ端末に対して、属性情報に基づいたサービスの提供を行う。したがって、複数の属性を任意の組合せで同時に認証可能である。また、属性認証の際に、匿名性が保証される。また、属性認証に使用する属性を、他人に譲渡したり、貸与したりすることはできない。また、属性認証の際には、第３者との通信を必要としない。また、属性情報の任意の変形が第３者との通信なしに可能である。さらに、ユーザ側に耐タンパデバイス無しで安全な属性認証を実現できる。
【０００９】
（２）本発明は、（１）に記載のマルチ属性認証システムにおいて、前記サービス提供サーバが、乱数ｒを生成し、この乱数ｒと自身の公開鍵ｙｓ（＝ｘｓ＊Ｐ）からｒ＊ｙｓを計算し、これをチャレンジとして送信することを特徴とするマルチ属性認証システムを提案している。
【００１０】
この発明によれば、サービス提供サーバが、乱数ｒを生成し、この乱数ｒと自身の公開鍵ｙｓ（＝ｘｓ＊Ｐ）からｒ＊ｙｓを計算し、これをチャレンジとして送信する。つまり、チャレンジの中に、サービス提供者ごとに異なる公開鍵ｙｓ（＝ｘｓ＊Ｐ）を埋め込み、このチャレンジに対して、ユーザ端末から署名が返信されることから、サービス提供者の公開鍵yｓを知らない第三者には、失効情報が開示された時点より前の通信履歴から、利用者の行動をトレースすることができない。
【００１１】
（３）本発明は、（２）に記載のマルチ属性認証システムにおいて、前記ユーザ端末の処理手段が、前記変形手段が生成する乱数ｆによって変形された前記属性に対する秘密鍵ｆｘ１、ｆｘ２、・・・、ｆｘｍを用いて、ｒ＊ｙｓに対する署名値をｓ１＝ｆｘ１＊ｒ＊ｙｓ、ｓ２＝ｆｘ２＊ｒ＊ｙｓ、・・・、ｓｉ＝ｆｘｉ＊ｒ＊ｙｓにより算出することを特徴とするマルチ属性認証システムを提案している。
【００１２】
この発明によれば、ユーザ端末の処理手段が、変形手段が生成する乱数ｆによって変形された属性に対する秘密鍵ｆｘ１、ｆｘ２、・・・、ｆｘｍを用いて、ｒ＊ｙｓに対する署名値をｓ１＝ｆｘ１＊ｒ＊ｙｓ、ｓ２＝ｆｘ２＊ｒ＊ｙｓ、・・・、ｓｉ＝ｆｘｉ＊ｒ＊ｙｓにより算出する。したがって、上記のようなシンプルな演算式により署名値の演算を行うため、計算負荷を軽減することができる。
【００１３】
（４）本発明は、（１）に記載のマルチ属性認証システムにおいて、前記サービス提供サーバの第１の検証手段が、ｚ１Ｐ、ｚ２Ｐ・・・、ｚｉＰを属性発行用の公開鍵としたときに、ｅ（ｆｙ１、ｚ１Ｐ）ｅ（ｆｙ２、ｚ２Ｐ）・・・ｅ（ｆｙｉ、ｚｉＰ）＝ｅ（ｆｚ１ｙ１、Ｐ）ｅ（ｆｚ２ｙ２、Ｐ）・・・ｅ（ｆｚｉｙｉ、Ｐ）を演算して、該演算式が成立するかどうかにより、属性証明書の正当性を検証することを特徴とするマルチ属性認証システムを提案している。
【００１４】
この発明によれば、サービス提供サーバの第１の検証手段が、ｚ１Ｐ、ｚ２Ｐ・・・、ｚｉＰを属性発行用の公開鍵としたときに、ｅ（ｆｙ１、ｚ１Ｐ）ｅ（ｆｙ２、ｚ２Ｐ）・・・ｅ（ｆｙｉ、ｚｉＰ）＝ｅ（ｆｚ１ｙ１、Ｐ）ｅ（ｆｚ２ｙ２、Ｐ）・・・ｅ（ｆｚｉｙｉ、Ｐ）を演算して、その演算式が成立するかどうかにより、属性証明書の正当性を検証する。したがって、上記演算式により、ユーザ端末から送信されてきた属性証明書をまとめて検証することができるため、計算負荷を削減することができる。
【００１５】
（５）本発明は、（３）に記載のマルチ属性認証システムにおいて、前記サービス提供サーバの第２の検証手段が、ｅ（ｓ１、 Ｐ）ｅ（ｓ２、 Ｐ）・・・ｅ（ｓｉ、 Ｐ）＝ｅ（ｆｙ１、ｒ＊ｙｓ）ｅ（ｆｙ２、ｒ＊ｙｓ）・・・ｅ（ｆｙｉ、ｒ＊ｙｓ）を演算して、該演算式が成立するかどうかにより、署名の正当性を検証することを特徴とするマルチ属性認証システムを提案している。
【００１６】
この発明によれば、サービス提供サーバの第２の検証手段が、ｅ（ｓ１、 Ｐ）ｅ（ｓ２、 Ｐ）・・・ｅ（ｓｉ、 Ｐ）＝ｅ（ｆｙ１、ｒ＊ｙｓ）ｅ（ｆｙ２、ｒ＊ｙｓ）・・・ｅ（ｆｙｉ、ｒ＊ｙｓ）を演算して、該演算式が成立するかどうかにより、署名の正当性を検証する。したがって、上記のようなシンプルな演算式により署名値の演算を行うため、計算負荷を軽減することができる。
【００１７】
（６）本発明は、（２）または（３）に記載のマルチ属性認証システムにおいて、前記サービス提供サーバの失効確認実行手段が、失効リストに掲載されているすべてのｙ１について、ｒ＊ｘｓ＊ｙ１を計算するとともに、ｅ（ｚ１ｙ１、ｓ１）＝ｅ（ｆ＊ｚ１＊ｙ１、ｒ＊ｘｓ＊ｙ１）を演算して、該演算式が成立するかどうかにより、失効確認を実行することを特徴とするマルチ属性認証システムを提案している。
【００１８】
この発明によれば、サービス提供サーバの失効確認実行手段が、失効リストに掲載されているすべてのｙ１について、ｒ＊ｘｓ＊ｙ１を計算するとともに、ｅ（ｚ１ｙ１、ｓ１）＝ｅ（ｆ＊ｚ１＊ｙ１、ｒ＊ｘｓ＊ｙ１）を演算して、その演算式が成立するかどうかにより、失効確認を実行する。したがって、失効リストを統一しつつ、サービス提供者の秘密鍵ｘ３を知らない第三者が容易に失効情報の開示された時点より前の通信履歴から、利用者の行動をトレースすることができない失効確認処理を実現することができる。
【００１９】
（７）本発明は、ユーザ端末と、属性証明書発行サーバと、サービス提供サーバとがネットワークを介して接続されて成るマルチ属性認証システムにおいて、前記サービス提供サーバが実行する失効確認方法であって、前記属性証明書発行サーバから失効リストを取得する第１のステップと、失効リストに掲載されているすべてのｙ１について、ｒ＊ｘｓ＊ｙ１を計算し、ｅ（ｚ１ｙ１、ｓ１）＝ｅ（ｆ＊ｚ１＊ｙ１、ｒ＊ｘｓ＊ｙ１）が成り立つかどうか検証する第２のステップと、属性のうち、１つだけを失効させる場合、ｙｎおよびｚｎｙｎを公開する第３のステップと、失効リストに掲載されているすべてのｙｎについて、ｒ＊ｘｓ＊ｙｎを計算し、ｅ（ｚｎｙｎ、ｓｎ）＝ｅ（ｆ＊ｚｎ＊ｙｎ、ｒ＊ｘｓ＊ｙｎ）が成り立つかどうか検証する第４のステップと、を備えることを特徴とする失効確認方法を提案している。
【００２０】
この発明によれば、属性証明書発行サーバから失効リストを取得し、失効リストに掲載されているすべてのｙ１について、ｒ＊ｘｓ＊ｙ１を計算し、ｅ（ｚ１ｙ１、ｓ１）＝ｅ（ｆ＊ｚ１＊ｙ１、ｒ＊ｘｓ＊ｙ１）が成り立つかどうか検証する。そして、属性のうち、１つだけを失効させる場合、ｙｎおよびｚｎｙｎを公開し、失効リストに掲載されているすべてのｙｎについて、ｒ＊ｘｓ＊ｙｎを計算し、ｅ（ｚｎｙｎ、ｓｎ）＝ｅ（ｆ＊ｚｎ＊ｙｎ、ｒ＊ｘｓ＊ｙｎ）が成り立つかどうか検証する。したがって、失効処理および失効確認処理が第三者に問い合わせることなしに可能である。また、失効情報が開示された時点より前の通信履歴から、利用者の行動をトレースできない方式である。また、ユーザは、複数の属性を所持するが失効処理は一括して行うことも可能である。さらに、ユーザの持つ１つの属性のみを失効させることもできる。
【００２１】
（８）本発明は、ユーザ端末と、属性証明書発行サーバと、サービス提供サーバとがネットワークを介して接続されて成るマルチ属性認証システムにおけるマルチ属性認証方法であって、前記ユーザ端末が、複数のユーザの秘密鍵とこれと対をなす公開鍵とを属性の数よりも１つ多く生成する第１のステップ（例えば、図５のステップＳ２０１、図６のステップＳ３０１、Ｓ３０２に相当）と、前記ユーザ端末が、前記属性証明書発行サーバに、該生成した属性の数に対応した公開鍵を送信する第２のステップ（例えば、図６のステップＳ２０２に相当）と、前記属性証明書発行サーバが、た前記属性の数に対応した公開鍵に対して、保有する署名鍵ｚ１、ｚ２で署名を行う第３のステップ（例えば、図６のステップＳ３０２に相当）と、前記属性証明書発行サーバが、前記ユーザ端末に対して、属性証明書として{ｙ１、ｙ２、ｚ１ｙ１、ｚ２ｙ２、ｚ３ｙ３、・・・ｚｉｙｉ}を発行する第４のステップ（例えば、図５のステップＳ２０３、Ｓ２０４、図６のステップＳ３０３に相当）と、前記ユーザ端末が、前記サービス提供サーバにサービスの提供要求を送信する第５のステップ（例えば、図５のステップＳ２０８、図６のステップＳ３０４に相当）と、前記サービス提供サーバが、自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ）を生成する第６のステップ（例えば、図５のステップＳ２０５に相当）と、前記サービス提供サーバが、生成した乱数ｒと前記公開鍵ｙｓとからなる情報をチャレンジとして前記ユーザ端末に送信する第７のステップ（例えば、図５のステップＳ２０９、図６のステップＳ３０５に相当）と、前記ユーザ端末が、乱数ｆを生成し、該乱数ｆを用いて、前記属性証明書発行サーバが発行する属性証明書を変形する第８のステップ（例えば、図５のステップＳ２１０、図６のステップＳ３０６に相当）と、前記ユーザ端末が、前記属性の数に対応した秘密鍵を乱数ｆにより変形し、該変形した秘密鍵を用いて、前記サービス提供サーバから受信したサービス提供者の公開鍵に乱数を乗じたものに対する署名値を算出する第９のステップ（例えば、図５のステップＳ２１１に相当）と、前記ユーザ端末が、前記変形した属性証明書と算出した署名値とを前記サービス提供サーバに送信する第１０のステップ（例えば、図５のステップＳ２１２、図６のステップＳ３０７に相当）と、前記サービス提供サーバが、前記ユーザ端末から受信した属性証明書を検証する第１１のステップ（例えば、図５のステップＳ２１３、図６のステップＳ３０８に相当）と、前記サービス提供サーバが、前記ユーザ端末から受信した署名値を検証する第１２のステップ（例えば、図５のステップＳ２１４、図６のステップＳ３０８に相当）と、前記サービス提供サーバが、失効確認を実行する第１３のステップ（例えば、図５のステップＳ２１５、図６７のステップＳ３０９に相当）と、前記サービス提供サーバが、属性証明書の正当性が確認され、署名値の正当性が確認され、かつ、失効確認が完了したときに、前記ユーザ端末に対して、属性情報に基づいたサービスの提供を行う第１４のステップ（例えば、図５のステップＳ２１６、図６のステップＳ３１０に相当）と、を備えたことを特徴とするマルチ属性認証方法を���案している。
【００２２】
この発明によれば、ユーザ端末は、複数のユーザの秘密鍵とこれと対をなす公開鍵とを属性の数よりも１つ多く生成し、属性証明書発行サーバに、その生成した属性の数に対応した公開鍵を送信する。一方、属性証明書発行サーバは、属性の数に対応した公開鍵に対して、保有する署名鍵ｚ１、ｚ２で署名を行い、ユーザ端末に対して、属性証明書として{ｙ１、ｙ２、ｚ１ｙ１、ｚ２ｙ２、ｚ３ｙ３、・・・ｚｉｙｉ}を発行する。次に、ユーザ端末は、サービス提供サーバにサービスの提供要求を送信する。サービス提供サーバは、自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ）を生成し、生成した乱数ｒと公開鍵ｙｓとからなる情報をチャレンジとしてユーザ端末に送信する。ユーザ端末は、乱数ｆを生成し、その乱数ｆを用いて、属性証明書発行サーバが発行する属性証明書を変形し、属性の数に対応した秘密鍵を乱数ｆにより変形し、その変形した秘密鍵を用いて、サービス提供サーバから受信したサービス提供者の公開鍵に乱数を乗じたものに対する署名値を算出する。そして、ユーザ端末は、変形した属性証明書と算出した署名値とをサービス提供サーバに送信する。サービス提供サーバは、ユーザ端末から受信した属性証明書を検証し、ユーザ端末から受信した署名値を検証する。また、サービス提供サーバは、失効確認を実行する。そして、サービス提供サーバは、属性証明書の正当性が確認され、署名値の正当性が確認され、かつ、失効確認が完了したときに、ユーザ端末に対して、属性情報に基づいたサービスの提供を行う。したがって、複数の属性を任意の組合せで同時に認証可能である。また、属性認証の際に、匿名性が保証される。また、属性認証に使用する属性を、他人に譲渡したり、貸与したりすることはできない。また、属性認証の際には、第３者との通信を必要としない。また、属性情報の任意の変形が第３者との通信なしに可能である。さらに、ユーザ側に耐タンパデバイス無しで安全な属性認証を実現できる。
【００２３】
（９）本発明は、ユーザ端末と、属性証明書発行サーバと、サービス提供サーバとがネットワークを介して接続されて成るマルチ属性認証システムにおいて、前記サービス提供サーバが実行する失効確認方法をコンピュータに実行させるためのプログラムであって、前記属性証明書発行サーバから失効リストを取得する第１のステップと、失効リストに掲載されているすべてのｙ１について、ｒ＊ｘｓ＊ｙ１を計算し、ｅ（ｚ１ｙ１、ｓ１）＝ｅ（ｆ＊ｚ１＊ｙ１、ｒ＊ｘｓ＊ｙ１）が成り立つかどうか検証する第２のステップと、属性のうち、１つだけを失効させる場合、ｙｎおよびｚｎｙｎを公開する第３のステップと、失効リストに掲載されているすべてのｙｎについて、ｒ＊ｘｓ＊ｙｎを計算し、ｅ（ｚｎｙｎ、ｓｎ）＝ｅ（ｆ＊ｚｎ＊ｙｎ、ｒ＊ｘｓ＊ｙｎ）が成り立つかどうか検証する第４のステップと、をコンピュータに実行させるためのプログラムを提案している。
【００２４】
この発明によれば、属性証明書発行サーバから失効リストを取得し、失効リストに掲載されているすべてのｙ１について、ｒ＊ｘｓ＊ｙ１を計算し、ｅ（ｚ１ｙ１、ｓ１）＝ｅ（ｆ＊ｚ１＊ｙ１、ｒ＊ｘｓ＊ｙ１）が成り立つかどうか検証する。そして、属性のうち、１つだけを失効させる場合、ｙｎおよびｚｎｙｎを公開し、失効リストに掲載されているすべてのｙｎについて、ｒ＊ｘｓ＊ｙｎを計算し、ｅ（ｚｎｙｎ、ｓｎ）＝ｅ（ｆ＊ｚｎ＊ｙｎ、ｒ＊ｘｓ＊ｙｎ）が成り立つかどうか検証する。したがって、失効処理および失効確認処理が第三者に問い合わせることなしに可能である。また、失効情報が開示された時点より前の通信履歴から、利用者の行動をトレースできない方式である。また、ユーザは、複数の属性を所持するが失効処理は一括して行うことも可能である。さらに、ユーザの持つ１つの属性のみを失効させることもできる。
【００２５】
（１０）本発明は、ユーザ端末と、属性証明書発行サーバと、サービス提供サーバと、信頼できるサーバとがネットワークを介して接続されて成るマルチ属性認証システムにおけるマルチ属性認証方法をコンピュータに実行させるためのプログラムであって、前記ユーザ端末が、複数のユーザの秘密鍵とこれと対をなす公開鍵とを属性の数よりも１つ多く生成する第１のステップ（例えば、図５のステップＳ２０１、図６のステップＳ３０１、Ｓ３０２に相当）と、前記ユーザ端末が、前記属性証明書発行サーバに、該生成した属性の数に対応した公開鍵を送信する第２のステップ（例えば、図６のステップＳ２０２に相当）と、前記属性証明書発行サーバが、た前記属性の数に対応した公開鍵に対して、保有する署名鍵ｚ１、ｚ２で署名を行う第３のステップ（例えば、図６のステップＳ３０２に相当）と、前記属性証明書発行サーバが、前記ユーザ端末に対して、属性証明書として{ｙ１、ｙ２、ｚ１ｙ１、ｚ２ｙ２、ｚ３ｙ３、・・・ｚｉｙｉ}を発行する第４のステップ（例えば、図５のステップＳ２０３、Ｓ２０４、図６のステップＳ３０３に相当）と、前記ユーザ端末が、前記サービス提供サーバにサービスの提供要求を送信する第５のステップ（例えば、図５のステップＳ２０８、図６のステップＳ３０４に相当）と、前記サービス提供サーバが、自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ）を生成する第６のステップ（例えば、図５のステップＳ２０５に相当）と、前記サービス提供サーバが、生成した乱数ｒと前記公開鍵ｙｓとからなる情報をチャレンジとして前記ユーザ端末に送信する第７のステップ（例えば、図５のステップＳ２０９、図６のステップＳ３０５に相当）と、前記ユーザ端末が、乱数ｆを生成し、該乱数ｆを用いて、前記属性証明書発行サーバが発行する属性証明書を変形する第８のステップ（例えば、図５のステップＳ２１０、図６のステップＳ３０６に相当）と、前記ユーザ端末が、前記属性の数に対応した秘密鍵を乱数ｆにより変形し、該変形した秘密鍵を用いて、前記サービス提供サーバから受信したサービス提供者の公開鍵に乱数を乗じたものに対する署名値を算出する第９のステップ（例えば、図５のステップＳ２１１に相当）と、前記ユーザ端末が、前記変形した属性証明書と算出した署名値とを前記サービス提供サーバに送信する第１０のステップ（例えば、図５のステップＳ２１２、図６のステップＳ３０７に相当）と、前記サービス提供サーバが、前記ユーザ端末から受信した属性証明書を検証する第１１のステップ（例えば、図５のステップＳ２１３、図６のステップＳ３０８に相当）と、前記サービス提供サーバが、前記ユーザ端末から受信した署名値を検証する第１２のステップ（例えば、図５のステップＳ２１４、図６のステップＳ３０８に相当）と、前記サービス提供サーバが、失効確認を実行する第１３のステップ（例えば、図５のステップＳ２１５、図６７のステップＳ３０９に相当）と、前記サービス提供サーバが、属性証明書の正当性が確認され、署名値の正当性が確認され、かつ、失効確認が完了したときに、前記ユーザ端末に対して、属性情報に基づいたサービスの提供を行う第１４のステップ（例えば、図５のステップＳ２１６、図６のステップ���３１０に相当）と、をコンピュータに実行させるためのプログラムを提案している。
【００２６】
この発明によれば、ユーザ端末は、複数のユーザの秘密鍵とこれと対をなす公開鍵とを属性の数よりも１つ多く生成し、属性証明書発行サーバに、その生成した属性の数に対応した公開鍵を送信する。一方、属性証明書発行サーバは、属性の数に対応した公開鍵に対して、保有する署名鍵ｚ１、ｚ２で署名を行い、ユーザ端末に対して、属性証明書として{ｙ１、ｙ２、ｚ１ｙ１、ｚ２ｙ２、ｚ３ｙ３、・・・ｚｉｙｉ}を発行する。次に、ユーザ端末は、サービス提供サーバにサービスの提供要求を送信する。サービス提供サーバは、自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ）を生成し、生成した乱数ｒと公開鍵ｙｓとからなる情報をチャレンジとしてユーザ端末に送信する。ユーザ端末は、乱数ｆを生成し、その乱数ｆを用いて、属性証明書発行サーバが発行する属性証明書を変形し、属性の数に対応した秘密鍵を乱数ｆにより変形し、その変形した秘密鍵を用いて、サービス提供サーバから受信したサービス提供者の公開鍵に乱数を乗じたものに対する署名値を算出する。そして、ユーザ端末は、変形した属性証明書と算出した署名値とをサービス提供サーバに送信する。サービス提供サーバは、ユーザ端末から受信した属性証明書を検証し、ユーザ端末から受信した署名値を検証する。また、サービス提供サーバは、失効確認を実行する。そして、サービス提供サーバは、属性証明書の正当性が確認され、署名値の正当性が確認され、かつ、失効確認が完了したときに、ユーザ端末に対して、属性情報に基づいたサービスの提供を行う。したがって、複数の属性を任意の組合せで同時に認証可能である。また、属性認証の際に、匿名性が保証される。また、属性認証に使用する属性を、他人に譲渡したり、貸与したりすることはできない。また、属性認証の際には、第３者との通信を必要としない。また、属性情報の任意の変形が第３者との通信なしに可能である。さらに、ユーザ側に耐タンパデバイス無しで安全な属性認証を実現できる。
【発明の効果】
【００２７】
本発明によれば、複数の属性を任意の組合せで同時に認証可能であるという効果がある。また、属性認証の際に、匿名性が保証されるという効果がある。また、属性認証に使用する属性を、他人に譲渡したり、貸与したりすることはできないという効果がある。また、属性認証の際には、第３者との通信を必要としないという効果がある。また、属性情報の任意の変形が第３者との通信なしに可能であるという効果がある。また、ユーザ側に耐タンパデバイス無しで安全な属性認証を実現できるという効果がある。
【００２８】
さらに、失効処理および失効確認処理が第三者に問い合わせることなしに可能であるという効果がある。また、失効情報が開示された時点より前の通信履歴から、利用者の行動をトレースできない方式であるという効果がある。また、ユーザは、複数の属性を所持するが失効処理は一括して行うことも可能であるという効果がある。また、ユーザの持つ１つの属性のみを失効させることもできるという効果がある。
【図面の簡単な説明】
【００２９】
【図１】本発明の実施形態に係るマルチ属性認証システムのシステム構成の一例を示す図である。
【図２】本発明の実施形態に係る属性認証クライアントモジュールの構成図である。
【図３】本発明の実施形態に係る属性認証サーバモジュールの構成図である。
【図４】本発明の実施形態に係る属性証明書発行モジュールの構成図である。
【図５】本発明の実施形態に係るマルチ属性認証システムの全体の動作シーケンスを示す図である。
【図６】本発明の実施形態に係るマルチ属性認証システムにおけるユーザ端末の動作を示すフローチャートである。
【図７】本発明の実施形態に係るマルチ属性認証システムの属性情報の有効期間の管理方法について説明するために引用した動作概念図である。
【発明を実施するための形態】
【００３０】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３１】
＜マルチ属性認証システムのシステム構成＞
図１は、本発明の実施形態に係るマルチ属性認証システムのシステム構成の一例を示す図である。
図１に示すように、本実施形態に係るマルチ属性認証システムは、ユーザ端末１（Ｕ）と、サービス提供者が管理運営するサービス提供サーバ（以下、単にＳＰサーバ２という）と、属性認証局（ＣＡ）が管理運営する属性認証サーバ３とから構成され、いずれもネットワーク４を介して接続されている。
【００３２】
また、ユーザ端末１は、属性認証クライアントモジュール１０を備え、ＳＰサーバ２は、属性認証サーバモジュール２０を備え、属性認証サーバ３は、属性証明書発行モジュール３０を備えている。
【００３３】
＜属性認証クライアントモジュールの構成＞
さらに、属性認証クライアントモジュール１０は、図２に示すように、鍵生成部１２と、属性証明書変形部１３と、送信部１４と、処理部１５とから構成されている。
【００３４】
鍵生成部１２は、ユーザの秘密鍵ｘ１、ｘ２、ｘ３、・・・、ｘｉと公開鍵ｙ１＝ｘ１＊Ｐ、ｙ２＝ｘ２＊Ｐ、ｙ３＝ｘ３Ｐ、・・・、ｙｉ＝ｘｉＰを生成する。なお、鍵ペアは、属性の個数＋１個分用意する。
【００３５】
属性証明書変形部１３は、乱数ｆを生成し、その乱数ｆを用いて、属性認証サーバ（ＣＡ）３が発行する属性証明書を変形する。例えば、属性２（対応する鍵は、ｘ２、ｙ２）、属性３(対応する鍵は、ｘ３、ｙ３)を提示する場合は、ｆｚｙ１、ｆｚｙ２、ｆｚｙ３と変形する。
【００３６】
送信部１４は、ＳＰサーバ２にサービスの提供要求と属性証明書変形部１３において変形した属性証明書と、処理部１５において算出した署名値とを送信する。さらに、属性認証サーバ（ＣＡ）３に生成した公開鍵ｙ１、ｙ２、ｙ３、・・・、ｙｉを送信する。
【００３７】
処理部１５は、例えば、属性２（対応する鍵は、ｘ２、ｙ２）、属性３(対応する鍵は、ｘ３、ｙ３)を提示する場合は、鍵生成部１２が生成した２つの秘密鍵ｘ１、ｘ２、ｘ３を乱数ｆにより、ｆｘ１、ｆｘ２、ｆｘ３に変形し、その変形したｆｘ１、ｆｘ２、ｆｘ３を用いて、ｒ＊ｙｓに対する署名値を算出する。具体的には、属性証明書変形部１３が生成する乱数ｆによって変形された秘密鍵ｆｘ１、ｆｘ２、ｆｘ３を用いて、チャレンジｒ＊ｙｓに対する署名値をｓ１＝ｆ＊ｘ１＊ｒ＊ｙｓ、ｓ２＝ｆ＊ｘ２＊ｒ＊ｙｓ、ｓ３＝ｆ＊ｘ３＊ｒ＊ｙｓにより算出する。これにより、シンプルな演算式により署名値の演算を行うため、計算負荷を軽減することができる。
【００３８】
＜属性認証サーバモジュールの構成＞
また、属性認証サーバモジュール２０は、図３に示すように、属性証明書検証部２１と、署名値検証部２２と、失効確認実行部２３と、サービス提供部２４と、鍵生成部２５と、チャレンジ生成部２６と、送信部２７とから構成されている。
【００３９】
属性証明書検証部２１は、ユーザ端末１から受信した属性証明書を検証する。具体的には、属性２（対応する鍵は、ｘ２、ｙ２）、属性３(対応する鍵は、ｘ３、ｙ３)を提示する場合は、ｚ１Ｐ、ｚ２Ｐ、ｚ３Ｐを属性発行用の公開鍵としたときに、ｅ（ｆｙ１、ｚ１Ｐ）ｅ（ｆｙ２、ｚ２Ｐ）ｅ（ｆｙ３、ｚ３Ｐ）＝ｅ（ｆｚ１ｙ１、Ｐ）ｅ（ｆｚ２ｙ２、Ｐ）ｅ（ｆｚ３ｙ３、Ｐ）を演算して、この演算式が成立するかどうかにより、属性証明書の正当性を検証する。これにより、ユーザ端末から送信されてきた属性証明書をまとめて検証することができるため、計算負荷を削減することができる。
【００４０】
署名値検証部２２は、ユーザ端末１から受信した署名値を検証する。具体的には、属性２（対応する鍵は、ｘ２、ｙ２）、属性３(対応する鍵は、ｘ３、ｙ３)を提示する場合は、ｅ（ｓ１、Ｐ）ｅ（ｓ２、Ｐ）ｅ（ｓ３、Ｐ）＝ｅ（ｆｙ１、ｒ＊ｙｓ）ｅ（ｆｙ２、ｒ＊ｙｓ）ｅ（ｆｙ３、ｒ＊ｙｓ）を演算して、演算式が成立するかどうかにより、署名の正当性を検証する。これにより、上記のようなシンプルな演算式により署名値の演算を行うため、計算負荷を軽減することができる。
【００４１】
失効確認実行部２３は、失効確認を実行する。まず、失効リストを事前にあるいは、その場で属性認証サーバ３から取得する。失効リストとは、発行局が生成するもので、失効したユーザのｙ１、ｚ１ｙ１が公開される。失効リストには発行局による署名が付与されており、その正当性が確認できる。
【００４２】
具体的には、属性２（対応する鍵は、ｘ２、ｙ２）、属性３(対応する鍵は、ｘ３、ｙ３)を提示する場合は、失効リストに掲載されているすべてのｙ１について、ｒ＊ｘｓ＊ｙ１を計算し、ｅ（ｚ１ｙ１、ｓ１）＝ｅ（ｆ＊ｚ１＊ｙ１、ｒ＊ｘｓ＊ｙ１）が成り立つかどうか検証する。この式が成立したとき、その鍵（そのユーザの持つすべての属性）は無効である（失効している）と判断する。
【００４３】
また、属性のうち、１つだけを失効させる場合、例えば、属性２のみを失効させる場合、ｙ２、ｚ２ｙ２が公開される。そして、失効リストに掲載されているすべてのｙ２について、ｒ＊ｘｓ＊ｙ２を計算し、ｅ（ｚ２ｙ２、ｓ２）＝ｅ（ｆ＊ｚ２＊ｙ２、ｒ＊ｘｓ＊ｙ２）が成り立つかどうか検証する。したがって、失効リストを統一しつつ、サービス提供者の秘密鍵ｘ３を知らない第三者が容易に失効情報の開示された時点より前の通信履歴から、利用者の行動をトレースすることができない失効確認処理を実現することができる。
【００４４】
サービス提供部２４は、属性証明書の正当性が確認され、署名値の正当性が確認され、かつ、失効確認が完了したときに、ユーザ端末１に対して、属性情報に基づいたサービスの提供を行う。
【００４５】
鍵生成部２５は、自身の秘密鍵ｘｓと公開鍵ｙｓ（＝ｘｓ＊Ｐ）を生成する。このとき、事前に属性認証サーバ３から公開鍵証明書ｚｙｓの発行を受けておく。チャレンジ生成部２６は、乱数ｒを生成し、ｒ＊ｙｓを計算して、計算した値をチャレンジとして生成する。送信部２７は、チャレンジ生成部２６が生成したチャレンジをユーザ端末１に送信する。
【００４６】
＜属性証明書発行モジュールの構成＞
属性証明書発行モジュール３０は、図４に示すように、署名部３１と、属性証明書発行部３２と、送信部３３と、ユーザ情報格納部３４と、データテーブル生成部３５とから構成されている。
【００４７】
署名部３１は、ユーザ端末１の鍵生成部１２が生成した公開鍵ｙ１、ｙ２、ｙ３、・・・、ｙｉに対して、保有する署名鍵ｚ１、ｚ２で署名を行う。なお、署名鍵は、図７に示すように、現在あるものの中から最も有効期間が長いものを用いる。具体的には、署名用の秘密鍵をｚｉ、これに対応する公開鍵をｚｉＰ（Ｐは生成元）としたときに、署名は、ｚｉｙｉとなる。これにより、ユーザに対して、必要十分な情報のみを与え、ユーザの不正行為を防止することができる。また、計算負荷を削減できるため、計算速度を速くすることができる。
【００４８】
属性証明書発行部３２は、ユーザ端末１に対して、{ｙ１、ｙ２、z１ｙ１、z２ｙ２、z３ｙ３、・・・、ｚｉｙｉ}を属性証明書として発行する。送信部３３は、属性証明書発行部３２が発行した属性証明書をユーザ端末１に送信する。
【００４９】
ユーザ情報格納部３４は、発行したユーザの秘密鍵ｘ１、ｘ２、ｘ３、・・・、ｘｉが有効期限内である限りは、ｙ１、z１ｙ１、z２ｙ２、ｚ３ｙ３、・・・、ｚｉｙｉを保管しておく。
【００５０】
＜マルチ属性認証システムの動作シーケンス＞
図５は、本発明の実施形態に係るマルチ属性認証システム全体の動作の流れを時系列的に示した動作シーケンス図であり、図６は、ユーザ端末の動作の流れをフローチャートで示した図である。なお、図５に示す動作シーケンス図は、本発明のマルチ属性認証システムにおける属性情報の匿名化方法の手順も併せて示されている。
以下、図５、図６を参照しながら図１に示すマルチ属性認証システムの動作について詳細に説明する。
【００５１】
まず、ユーザ端末１の鍵生成部１２は、ユーザの秘密鍵ｘ１、ｘ２、ｘ３、・・・、ｘiと公開鍵ｙ１＝ｘ１＊Ｐ、ｙ２＝ｘ２＊Ｐ、ｙ３＝ｘ３Ｐ、・・・、ｙｉ＝ｘｉＰを生成する（図５のステップＳ２０１、図６のステップＳ３０１、Ｓ３０２）。なお、ここで、Ｐは生成元である。そして、ユーザ端末１の送信部１４は、属性認証サーバ３に対して、公開鍵ｙ１、ｙ２、ｙ３、・・・、ｙｉと属性証明書の発行要求を送信する（図６のステップＳ２０２）。
【００５２】
属性認証サーバ３は、ｙ１、ｙ２、ｙ３、・・・、ｙｉに対し、保有する属性用の署名鍵ｚ１、ｚ２で署名する（図６のステップＳ３０２）。なお、署名鍵は、現在ある中からもっとも有効期限の長いものを使用する（図７参照）。署名は、署名用の秘密鍵をｚｉ、対応する公開鍵をｚｉＰとしたとき、ｚｉｙｉとなる。
【００５３】
そして、{ｙ１、ｙ２、z１ｙ１、z２ｙ２、z３ｙ３、・・・、ｚｉｙｉ}を証明書として、ユーザ端末１に発行する。また、発行したユーザの秘密鍵ｘ１、ｘ２、ｘ３、・・・、ｘｉが有効期限内である限りは、ｙ１、z１ｙ１、z２ｙ２、ｚ３ｙ３、・・・、ｚｉｙｉを保管しておく（図５のステップＳ２０３、Ｓ２０４、図６のステップＳ３０３）。
【００５４】
図７は、有効期間の管理の仕方を概念的に示している。図７中、横軸のｔは、時間の流れを示す。本発明によれば、属性情報が鍵情報のみとなったことにより、新たな有効期間の管理が必要となる。このため、図６に示されるように、属性認証サーバ３の属性証明書発行モジュール３０が、属性ごとに複数の署名鍵を割当て、定期的に組合せを更新することによって有効期間の管理を行うことにしている。その際に、サービスを非常に短い期間しか享受できないユーザが発生しないように、属性毎割当てられる複数の書名鍵を並行管理する。
【００５５】
なお、署名鍵を最も有効期間の長いものを割当てるために、例えば、図７に示されるように、仮に、鍵Ａの使用期間における後半部分で鍵を割当てようとした場合、属性認証サーバ３の属性証明書発行モジュール３０は、ユーザ端末１の属性認証クライアントモジュール１０に対して、署名鍵Ｄあるいは署名鍵Ｅを割当てる。これにより、ユーザがサービスを非常に短い期間しか受けられないという不都合を防止することができる。
【００５６】
次に、ユーザ端末１の送信部１４は、ＳＰサーバ２に対して、サービスの提供要求を送信する（図５のステップＳ２０８、図６のステップＳ３０４）。ＳＰサーバ２の鍵生成部２５は、自身の秘密鍵ｘｓと公開鍵ｙｓ＝ｘｓ＊Ｐを生成する（図５のステップＳ２０５）。また、属性認証サーバ３から同様に公開鍵証明書ｚｙｓの発行を受けておく。ＳＰサーバ２は、属性認証サーバ３に対して、証明書の発行要求を送信し（図５のステップＳ２０６）、この発行要求に対応して、属性認証サーバ３が、ＳＰサーバ２に対して、証明書を発行する（図５のステップＳ２０７）。
【００５７】
ＳＰサーバ２のチャレンジ生成部２６は、乱数rを生成し、ｒ＊ｙｓを計算して、計算した値をチャレンジとして、これを送信部２７からユーザ端末１に送信する（図５のステップＳ２０９、図６のステップＳ３０５）。
【００５８】
ユーザ端末１の属性証明書変形部１３は、受信した属性証明書を変形する（図５のステップＳ２１０、図６のステップＳ３０６）。具体的には、例えば、属性２（対応する鍵は、ｘ２、ｙ２）、属性３(対応する鍵は、ｘ３、ｙ３)を提示する場合は、乱数ｆを生成し、ｆｚｙ１、ｆｚｙ２、ｆｚｙ３と変形する。
【００５９】
また、このとき秘密鍵もｆｘ１、ｆｘ２、ｆｘ３に変形される。そして、ユーザ端末１の処理部１５が、ｆｘ１、ｆｘ２、ｆｘ３を用いてｒ＊ｙｓに対する署名値を計算する。具体的には、ｓ１＝ｆ＊ｘ１＊ｒ＊ｙｓ、ｓ２＝ｆ＊ｘ２＊ｒ＊ｙｓ、ｓ３＝ｆ＊ｘ３＊ｒ＊ｙｓを計算する（図５のステップＳ２１１）。
【００６０】
ユーザ端末１の送信部１４は、変形した属性証明書と、計算した署名値をＳＰサーバ２に返信する（図５のステップＳ２１２、図６のステップＳ３０７）。
【００６１】
ＳＰサーバ２の属性証明書検証部２１は、送られてきた属性証明書を検証する（図５のステップＳ２１３、図６のステップＳ３０８）。ここで、検証にはＰａｉｒｉｎｇ計算を用いる。具体的には、ペアリング計算をｅ（＊、＊）で表したとき、属性２（対応する鍵は、ｘ２、ｙ２）、属性３(対応する鍵は、ｘ３、ｙ３)を提示する場合は、ｚ１Ｐ、ｚ２Ｐ、ｚ３Ｐを属性発行用の公開鍵としたときに、ｅ（ｆｙ１、ｚ１Ｐ）ｅ（ｆｙ２、ｚ２Ｐ）ｅ（ｆｙ３、ｚ３Ｐ）＝ｅ（ｆｚ１ｙ１、Ｐ）ｅ（ｆｚ２ｙ２、Ｐ）ｅ（ｆｚ３ｙ３、Ｐ）を演算して、この演算式が成立するかどうかにより、属性証明書の正当性を検証する。ｅ（ｆ（ｙ１＋ｙ２）、ｚＰ）＝ｅ（ｆｚ（ｙ１＋ｙ２）、Ｐ）が成立するかどうかを検証する。
【００６２】
次に、ＳＰサーバ２の署名値検証部２２が、送られてきた署名を検証する（図５のステップＳ２１４、図６のステップＳ３０８）。具体的には、属性２（対応する鍵は、ｘ２、ｙ２）、属性３(対応する鍵は、ｘ３、ｙ３)を提示する場合は、ｅ（ｓ１、Ｐ）ｅ（ｓ２、Ｐ）ｅ（ｓ３、Ｐ）＝ｅ（ｆｙ１、ｒ＊ｙｓ）ｅ（ｆｙ２、ｒ＊ｙｓ）ｅ（ｆｙ３、ｒ＊ｙｓ）を演算して、演算式が成立するかどうかにより、署名の正当性を検証する。
【００６３】
さらに、ＳＰサーバ２の失効確認実行部２３は、失効確認を実行する（図５のステップＳ２１５、図６７のステップＳ３０９）。ここで、失効確認を行う場合は、失効リストを事前にあるいは、その場で属性認証サーバ３から取得する。失効リストとは、属性認証サーバ３が生成するもので、失効したユーザの公開鍵ｙ１およびｚ１ｙ１が公開される。失効リストには属性認証サーバ３による署名が付与されており、その正当性が確認できる。
【００６４】
失効確認は、失効リストに掲載されているすべてのｙ１についてｒ＊ｘ３＊ｙ１を計算し、具体的には、属性２（対応する鍵は、ｘ２、ｙ２）、属性３(対応する鍵は、ｘ３、ｙ３)を提示する場合は、失効リストに掲載されているすべてのｙ１について、ｒ＊ｘｓ＊ｙ１を計算し、ｅ（ｚ１ｙ１、ｓ１）＝ｅ（ｆ＊ｚ１＊ｙ１、ｒ＊ｘｓ＊ｙ１）が成り立つかどうか検証する。この式が成立したとき、その鍵（そのユーザの持つすべての属性）は無効である（失効している）と判断する。
【００６５】
また、属性のうち、１つだけを失効させる場合、例えば、属性２のみを失効させる場合、ｙ２、ｚ２ｙ２が公開される。そして、失効リストに掲載されているすべてのｙ２について、ｒ＊ｘｓ＊ｙ２を計算し、ｅ（ｚ２ｙ２、ｓ２）＝ｅ（ｆ＊ｚ２＊ｙ２、ｒ＊ｘｓ＊ｙ２）が成り立つかどうか検証する。
【００６６】
ＳＰサーバ２は、証明書の正当性確認、署名の正当性確認、失効確認が完了すると、認証が成功したものとして判断し、ＳＰサーバ２のサービス提供部２４が、ユーザ端末１に対して属性情報に基づいたサービス提供を行う（図５のステップＳ２１６、図６のステップＳ３１０）。
【００６７】
なお、上記したマルチ属性認証システムの具体的な利用用途としては、医療情報の開示において、医療資格を持つ否かの確認、あるいは、公共交通機関において、公的に発行されたシルバーパス等の資格を確認する等の用途が考えられる。
【００６８】
以上、説明したように本実施形態においては、複数の属性を任意の組合せで同時に認証可能である。また、属性認証の際に、匿名性が保証される。また、属性認証に使用する属性を、他人に譲渡したり、貸与したりすることはできない。また、属性認証の際には、第３者との通信を必要としない。また、属性情報の任意の変形が第３者との通信なしに可能である。さらに、ユーザ側に耐タンパデバイス無しで安全な属性認証を実現できる。
【００６９】
なお、図１に示す、属性認証クライアントモジュール１０、属性認証サーバモジュール２０、属性証明書発行モジュール３０は、ユーザ端末１、ＳＰサーバ２、属性認証サーバ３のそれぞれで実行されるプログラムであり、これらプログラムをコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをユーザ端末１、ＳＰサーバ２、属性認証サーバ３のそれぞれ（いずれもコンピュータシステム）に読み込ませ、実行することによって本発明のマルチ属性認証システムを実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００７０】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００７１】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００７２】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、本実施形態においては、属性認証サーバ３が失効確認処理を実行する形態について説明したが、属性認証サーバ３とは別に、失効確認処理を行うサーバを設けてもよい。
【符号の説明】
【００７３】
１・・・ユーザ端末（Ｕ）
２・・・サービス提供サーバ（ＳＰサーバ）
３・・・属性認証サーバ（ＣＡサーバ）
４・・・ネットワーク
１０・・・属性認証クライアントモジュール
１２・・・鍵生成部
１３・・・属性証明書変形部
１４・・・送信部
１５・・・処理部
２０・・・属性認証サーバモジュール
２１・・・属性証明書検証部
２２・・・署名値検証部
２３・・・失効確認実行部
２４・・・サービス提供部
２５・・・鍵生成部
２６・・・乱数生成部
２７・・・送信部
３０・・・属性証明書発行モジュール
３１・・・署名部
３２・・・属性証明書発行部
３３・・・送信部
【図１】
0005457856.tif 000002
【図２】
0005457856.tif 000003
【図３】
0005457856.tif 000004
【図４】
0005457856.tif 000005
【図５】
0005457856.tif 000006
【図６】
0005457856.tif 000007
【図７】
0005457856.tif 000008