(57)【要約】本発明は、発行機関（１１１）において個体（１２１）に証明書（C）を匿名で提供する方法、該証明書を使うことによって通信相手（１０１）においてその個体の匿名での承認を提供する方法、個体に証明書を匿名で提供する発行機関、および該証明書を使うことによってその個体を匿名で承認する承認装置に関する。本発明の基本的な発想は、発行機関において、個体に匿名で証明書を提供し、その後通信相手において、その証明書を個人があるグループでのメンバーシップを証明するために匿名で使用できるということである。
2008503966.tif 000002
【特許請求の範囲】
【請求項１】
発行機関において個体に証明書を匿名で提供する方法であって：
前記発行機関において前記個体から、前記個体に属する識別子に基づくある値と該識別子の少なくとも一つの暗号化されたコピーとを含むデータ構造を複数受け取り；
前記発行機関から前記個体に、前記発行機関において受け取られたデータ構造に含まれていた識別子のうちある第一の数を達成する要求を送り；
前記発行機関において前記個体から、前記第一の数の識別子と、前記識別子の前記少なくとも一つの暗号化されたコピーのそれぞれに対応する暗号化鍵とを受け取り；
前記発行機関において、前記対応する暗号化鍵が当該発行機関によって保持されている所定の鍵の集合に含まれるものであることと、前記識別子の前記少なくとも一つの暗号化されたコピーが前記集合に含まれる前記対応する暗号化鍵で暗号化されていることとを検証し、その確認を前記個体に送り；
前記発行機関において前記個体から、前記複数のデータ構造に含まれる残りの数の暗号化された識別子のうち少なくとも一つを受け取り、対応する残りの識別子に基づくそれぞれの値について前記少なくとも一つの残りの暗号化された識別子が前記複数のデータ構造から同定できることを検証し、
前記発行機関において、前記少なくとも一つの残りの暗号化された識別子のそれぞれについて、それぞれの前記少なくとも一つの残りの暗号化された識別子およびその残りの暗号化された識別子に基づく対応する値を含む証明書であって、それが信頼される発行機関から発行されていることを示す証明書を発行する、
ステップを有することを特徴とする方法。
【請求項２】
各識別子が秘密のランダム情報であることを特徴とする、請求項１記載の方法。
【請求項３】
識別子に基づくそれぞれの値が、対応する秘密のランダム情報の冪の関数であることを特徴とする、請求項２記載の方法。
【請求項４】
前記冪が素数であることを特徴とする、請求項３記載の方法。
【請求項５】
各証明書がさらに当該証明書の発行に関係するデータを含んでいることを特徴とする、請求項１記載の方法。
【請求項６】
前記証明書の発行に関係するデータが、当該証明書の発行日時を示すタイムスタンプを含むことを特徴とする、請求項５記載の方法。
【請求項７】
前記タイムスタンプの提供が、個体に二つ以上の証明書が発行される場合には、各証明書が、その個体に発行された他のどの証明書のタイムスタンプとも異なるタイムスタンプを有するように行われることを特徴とする、請求項６記載の方法。
【請求項８】
証明書が信頼される発行機関によって発行されているという指標が、各証明書に発行機関の署名を与えることによって実現されることを特徴とする、請求項１記載の方法。
【請求項９】
各識別子が、前記所定の鍵の集合に含まれる対応する公開鍵によって暗号化されることを特徴とする、請求項１記載の方法。
【請求項１０】
各データ構造に、識別子の暗号化されたコピーがいくつか含まれ、各識別子が前記所定の鍵の集合に含まれる異なる公開鍵で暗号化されていることを特徴とする、請求項９記載の方法。
【請求項１１】
前記値および識別子が個体において生成されることを特徴とする、請求項１記載の方法。
【請求項１２】
通信相手において個体の匿名の承認を提供する証明書であって：
その証明書を保有する個体に属するある識別子に基づくある値と、
該識別子の暗号化されたコピーと、
その証明書が信頼される発行機関によって発行されているという指標、
とを含んでいることを特徴とする証明書。  
【請求項１３】
通信相手において、請求項１２記載の証明書を使うことによって個体の匿名の承認を提供する方法であって：
通信相手において、前記個体の証明書を受け取り；
通信相手において、その証明書が信頼される発行機関によって発行されていることを検証し；
通信相手から個体に、証明書に含まれている暗号化された識別子を送り；
通信相手において、個体が識別子を知っていることの証明を受け取る、
ステップを有することを特徴とする方法。
【請求項１４】
前記識別子が、個体において、暗号化された識別子を対応する復号鍵によって復号することによって得られることを特徴とする、請求項１３記載の方法。
【請求項１５】
前記個体が前記識別子を知っているという証明が、零知識プロトコルを用いて提供されることを特徴とする、請求項１３記載の方法。
【請求項１６】
個体に証明書を匿名で提供する発行機関であって、当該発行機関は：
・前記個体から、前記個体に属する識別子に基づく値と、該識別子の少なくとも一つの暗号化されたコピーとを含むデータ構造を複数受け取る受信手段と；
・前記個体に、識別子のうちある第一の数を達成する要求を送信する送信手段とを有するよう構成されており；
ここで、受信手段はさらに、前記個体から、前記第一の数の識別子と、前記識別子の前記少なくとも一つの暗号化されたコピーのそれぞれに対応する暗号化鍵とを受け取るよう構成されており；
当該発行機関は、
・前記対応する暗号化鍵が当該発行機関によって保持されている所定の鍵の集合に含まれるものであることと、前記識別子の前記少なくとも一つの暗号化されたコピーが前記集合に含まれる前記対応する暗号化鍵で暗号化されていることを検証し、その確認を前記個体に送るための検証手段を有するよう構成されており；
ここで、前記受信手段はさらに、前記個体から、前記複数のデータ構造に含まれる残りの数の暗号化された識別子のうち少なくとも一つを受け取るよう構成されており；
前記検証手段は、対応する残りの識別子に基づくそれぞれの値について、前記少なくとも一つの残りの暗号化された識別子が前記複数のデータ構造から同定できることを検証するようさらに構成されており；
当該発行機関はさらに、
・前記少なくとも一つの残りの暗号化された識別子のそれぞれについて、それぞれの前記少なくとも一つの残りの暗号化された識別子およびその残りの暗号化された識別子に基づく対応する値を含む証明書であって、それが信頼される発行機関から発行されていることを示す証明書を発行する発行手段を有するよう構成されている、
ことを特徴とする発行機関。
【請求項１７】
各識別子が秘密のランダム情報であるよう構成されることを特徴とする、請求項１６記載の発行機関。
【請求項１８】
識別子に基づくそれぞれの値が、対応する秘密のランダム情報の冪の関数であるよう構成されることを特徴とする、請求項１７記載の発行機関。
【請求項１９】
前記冪が素数であるよう構成されることを特徴とする、請求項１８記載の発行機関。
【請求項２０】
各証明書がさらに当該証明書の発行に関係するデータを含むよう構成されることを特徴とする、請求項１６記載の発行機関。
【請求項２１】
前記証明書の発行に関係するデータが、当該証明書の発行日時を示すタイムスタンプを含むよう構成されることを特徴とする、請求項２０記載の発行機関。
【請求項２２】
前記タイムスタンプの提供が、個体に二つ以上の証明書が発行される場合には、各証明書が、その個体に発行された他のどの証明書のタイムスタンプとも異なるタイムスタンプを有するように構成されることを特徴とする、請求項２１記載の発行機関。
【請求項２３】
証明書が信頼される発行機関によって発行されているという指標が、各証明書が発行機関の署名をもつよう構成することによって実現されることを特徴とする、請求項１６記載の発行機関。
【請求項２４】
各識別子が、前記所定の鍵の集合に含まれる対応する公開鍵によって暗号化されるよう構成されていることを特徴とする、請求項１６記載の発行機関。
【請求項２５】
各データ構造に、識別子の暗号化されたコピーがいくつか含まれるよう構成され、各識別子が前記所定の鍵の集合に含まれる異なる公開鍵で暗号化されることを特徴とする、請求項２４記載の発行機関。
【請求項２６】
請求項１２記載の証明書を使うことによって個体を匿名で承認する承認装置であって：
・個体の証明書を受け取る受信手段と；
・その証明書が信頼される発行機関によって発行されていることを検証するための検証手段と；
・前記個体に、証明書に含まれている暗号化された識別子を送る送信手段、
とを有するよう構成されており；
前記受信手段がさらに、前記個体が前記識別子を知っていることの証明を受け取るよう構成されていることを特徴とする承認装置。
【請求項２７】
前記識別子が、個体において、暗号化された識別子を対応する復号鍵によって復号することによって得られるよう構成されていることを特徴とする、請求項２６記載の承認装置。
【請求項２８】
個体が識別子を知っていることの証明が、零知識プロトコルを用いることによって与えられるよう構成されていることを特徴とする、請求項２６記載の承認装置。
【請求項２９】
少なくとも一つの発行機関、一つの承認装置および一の個体を含む認可システムであって、前記発行機関が前記個体に証明書を匿名で提供し、前記承認装置が前記証明書を使うことによって前記個体を匿名で承認するよう構成されていることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発行機関において個体に証明書を匿名で提供する方法および該証明書を使うことによって通信相手においてその個体の匿名での承認を提供する方法に関する。本発明はさらに、通信相手における個体の匿名での承認を提供するための証明書、個体に証明書を匿名で提供する発行機関、および該証明書を使うことによってその個体を匿名で承認する承認装置に関する。さらに、本発明は少なくとも一つの発行機関、一つの承認装置および一の個体を含む認可システムに関する。
【背景技術】
【０００２】
あるグループの個人、あるいは該グループ内のサブグループの個人が何らかの特権を有しており、グループ内の何らかの個人がその特権を行使することを許容するためにはグループの一員であること（メンバーシップ）が所与の第一の機関に証明されなければならないという状況がある。一つの例が、アクセスコントロールがされているある種のインターネットサーバーへのアクセスを有するかもしれない個人のグループの例である。個人のプライバシーに配慮される場合、サーバーへのアクセス承認などにつながる「メンバーシップ証明」トランザクションは、前記第一の機関がその個人の素性を知ることがないような匿名の仕方で遂行されうる。これは、前記機関がグループメンバーを非メンバーから区別しなければならないが、個々のメンバーが互いに区別される必要はないということを意味している。これを実現するために、いくつかの匿名グループ識別方式が提案されている。そこでは、あるグループは、そのグループのメンバーの公開鍵すべてのある公知のサブセットによって表現される。メンバーシップ検証に際し、個人の秘密鍵も公開鍵（すなわちその個人の識別情報）も第一の機関に明かされることはない。
【０００３】
上述したシナリオでは、個人はのちにグループメンバーシップを別の者にやはり匿名で証明したいが、前記第一の機関について実施されたのと同一のメンバーシップ証明トランザクションを改めて経ることなくそうしたいことがありうる。このことは、そのメンバーシップ証明トランザクションについての証明書によって達成される。この証明書は、その個人が、トランザクション終了後に前記第一の機関に要求する必要があるものである。この証明書は、個人およびグループへの言及に加えて、トランザクションについてのデータ、たとえば生起した時刻、位置、トランザクションを証明するのに使われた方法などを含みうる。個人の匿名性を保持するため、証明書は匿名でなければならない。さらに、完全な匿名性が要求されるときには、その個人がのちにその証明書を別の者に見せるときに証明書の匿名性が保存されるべきである。Schechter,  Parnell  and  Harteminkによる“Anonymous  Authentication  of  Membership  in  Dynamic  Groups”,  International  Conference  on  Financial  Cryptography  '99,  British  West  Indies,  1999では、メンバーシップの匿名証明のトランザクションのための証明書が提案されている。その証明書は、第一の機関とのメンバーシップ証明トランザクションが終了したのちに、該第一の機関との別個のプロトコルにおいて発行される。このプロトコルは公開鍵暗号およびハッシュ関数を使用し、トランザクションが実施された時刻を記述する。証明書は発行された個人の素性を明かさないので匿名である。しかしながら、個人がのちのいずれかの時点で別の者に所与の時刻に前記第一の機関によって認証されているということを（当該証明書を使って）証明する必要があるときには、匿名性は失われる。これは、その相手に証明書そのものおよびそのユーザーによってしか計算され得ない、当該証明書において使われている値ならびに相手が証明書に含まれている値を検証できるようにするために必要とされる自分の素性（すなわち公開鍵）を明かす必要があるためである。
【０００４】
デジタル信用証明書（digital  credential）方式というものも、個人が何らかの相手に自分についての一つまたは複数の属性を証明するために提案されている。そのような信用証明書は本質的には当局によって発行される汎用のデジタル証明書（digital  certificate）である。よって、デジタル信用証明書は、上に規定したような、グループ内のメンバーシップの証明のための証明書として使用できる。しかしながら、いくつかの方式では、個人の匿名性は、信用証明書の呈示の際には保たれるにもかかわらず、発行機関は個人の素性およびその個人に結び付けられているすべての属性を知っており、したがって、匿名性は信用証明書発行者に対しては提供されない。他の方式では、仮名（pseudonym）の使用を通じて、個人のプライバシーはデジタル信用証明書の呈示の際のみならず発行に際しても保たれる。しかしながら、これらの方式は仮名管理の負担がある。それは信用証明書発行プロトコルに先立って実行される必要があり、しかも個人において実行される必要がある。
【０００５】
上記の方式における指摘した問題点に加えて、それらすべてにおいて、個人がグループメンバーシップを立証する証明書またはデジタル信用証明書を取得するためには、個人と所与の機関との間で二つの異なるプロトコルを実行する必要がある。これらのプロトコルは、個人がグループ中でのメンバーシップを証明するプロトコルおよび証明書（またはデジタル信用証明書）が発行されるプロトコルである。
【０００６】
よって、従来技術において解決されるべき問題は：（ａ）証明書を呈示するときのみならず証明書を発行する際にも個体の匿名性を保持し、（ｂ）証明書を発行するときに実行されるプロトコルが一つだけであり、（ｃ）その後その証明書を使用できるのがグループのメンバーだけとする、ような方式をいかにして提供するかである。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、上に挙げた問題を解決し、単一のプロトコルを実行しつつ達成される、証明書を個体に匿名で提供するための発行機関を提供することである。追加的な利点として、該発行機関は、前記証明書によって、個体が他者に対して、当該グループにおけるメンバーシップを匿名で証明できるようにする。
【課題を解決するための手段】
【０００８】
この目的は、請求項に基づく、発行機関において証明書を個体に匿名で提供する方法、請求項に基づく、通信相手において個体の匿名の承認を提供する証明書、請求項に基づく、証明書を使うことによって通信相手において個体の匿名の承認を提供する方法、請求項に基づく、個体に証明書を匿名で提供する発行機関、請求項に基づく、証明書を使うことによってその個体を匿名で承認する承認装置ならびに請求項に基づく、少なくとも一つの発行機関、一つの承認装置および一人の個体を含む認可システムによって達成される。
【０００９】
本発明の第一の側面によれば、発行機関において個体に証明書を匿名で提供する方法であって、前記発行機関において前記個体から、それぞれが前記個体に属するある識別子に基づくある値および該識別子の少なくとも一つの暗号化されたコピーを含む複数のデータ構造を受け取り；前記発行機関から前記個体に、前記発行機関において受け取られたデータ構造に含まれていた識別子のうちある第一の数を達成する要求を送り；前記発行機関において前記個体から、前記第一の数の識別子および前記識別子の前記少なくとも一つの暗号化されたコピーのそれぞれに対応する暗号化鍵を受け取り；前記発行機関において、前記対応する暗号化鍵が当該発行機関によって保持されている所定の鍵の集合に含まれるものであることおよび前記識別子の前記少なくとも一つの暗号化されたコピーが前記集合に含まれる前記対応する暗号化鍵で暗号化されたものであることを検証し、その確認を前記個体に送り；前記発行機関において前記個体から、前記複数のデータ構造に含まれる残りの数の暗号化された識別子のうち少なくとも一つを受け取り、対応する残りの識別子に基づくそれぞれの値について前記少なくとも一つの残りの暗号化された識別子が前記複数のデータ構造から同定できることを検証するステップを有する。本方法はさらに、前記発行機関において、前記少なくとも一つの残りの暗号化された識別子のそれぞれについて、それぞれの前記少なくとも一つの残りの暗号化された識別子およびその残りの暗号化された識別子に基づく対応する値を含む証明書であって、それが信頼される発行機関から発行されていることを示す証明書を発行するステップをさらに有する。
【００１０】
本発明のある第二の側面によれば、通信相手において個体の匿名の承認を提供する証明書が提供される。この証明書は、その証明書を保有する個体に属するある識別子に基づくある値、該識別子の暗号化されたコピーおよびその証明書が信頼される発行機関によって発行されているという指標を含んでいる。
【００１１】
本発明のある第三の側面によれば、通信相手において証明書を使うことによって個体の匿名の承認を提供する方法が提供される。本方法は、通信相手において、個体の証明書を受け取り；通信相手において、その証明書が信頼される発行機関によって発行されていることを検証し；通信相手から個体に、証明書に含まれている暗号化された識別子を送り；通信相手において、個体が識別子を知っていることの証明を受け取るステップを有する。
【００１２】
本発明のある第四の側面によれば、個体に証明書を匿名で提供する発行機関が提供される。本発行機関は、前記個体から、それぞれが前記個体に属するある識別子に基づく値および該識別子の少なくとも一つの暗号化されたコピーを含む複数のデータ構造を受け取る受信手段と；前記個体に、識別子のうちある第一の数を達成する要求を送信する送信手段とを有するよう構成されており；ここで、前記受信手段はさらに、前記個体から、前記第一の数の識別子および前記識別子の前記少なくとも一つの暗号化されたコピーにそれぞれ対応する暗号化鍵を受け取るよう構成されている。本発行機関はさらに、前記対応する暗号化鍵が本発行機関によって保持されている所定の鍵の集合に含まれるものであることおよび前記識別子の前記少なくとも一つの暗号化されたコピーが前記集合に含まれる前記対応する暗号化鍵で暗号化されたものであることを検証し、その確認を前記個体に送るための検証手段を有するようさらに構成されており；前記受信手段は、前記個体から、前記複数のデータ構造に含まれる残りの数の暗号化された識別子のうち少なくとも一つを受け取るようさらに構成されており；前記検証手段は、対応する残りの識別子に基づくそれぞれの値について、前記少なくとも一つの残りの暗号化された識別子が前記複数のデータ構造から同定できることを検証するようさらに構成されており；前記発行機関はさらに、前記少なくとも一つの残りの暗号化された識別子のそれぞれについて、それぞれの前記少なくとも一つの残りの暗号化された識別子およびその残りの暗号化された識別子に基づく対応する値を含む証明書であって、それが信頼される発行機関から発行されていることを示す証明書を発行する発行手段を有するよう構成されている。
【００１３】
本発明のある第五の側面によれば、証明書を使うことによって個体を匿名で承認する承認装置が提供される。この承認装置は、個体の証明書を受け取る受信手段と；その証明書が信頼される発行機関によって発行されていることを検証するための検証手段と；前記個体に、証明書に含まれている暗号化された識別子を送る送信手段とを有するよう構成されており；前記受信手段はさらに、前記個体が前記識別子を知っていることの証明を受け取るよう構成されている。
【００１４】
本発明のある第六の側面によれば、少なくとも一つの発行機関、一つの承認装置および一人の個体を含む認可システムが提供される。ここで、本認可システムは、前記発行機関が前記個体に証明書を匿名で提供し、前記承認装置が前記証明書を使うことによって前記個体を匿名で承認するよう構成されている。
【００１５】
本発明の基本的な発想は、個体からインターネットに接続されたサーバーのような発行機関に、該発行機関によって発行された証明書を匿名で受け取る要求を送るということである。よって、個体と発行機関との間に確立される通信チャネルは、発行機関がその個体の素性、たとえばその個体のＩＰアドレスを取得することができないよう匿名でなければならない。この匿名チャネルは秘密である必要はないことを注意しておく。秘密情報は交換されないからである。「個体（individual）」という用語は必ずしも人の個体（individual  person）を意味するとは限らず、個別装置（individual  device）を含意することもありうる。たとえば携帯電話、PDA、ラップトップ、携帯オーディオプレーヤーまたはその他コンピューティングおよび通信機能をもつ何らかの適切な装置といったものである。個別装置の用語はまた、スマートカードまたは携帯電話のような装置に含まれるその他何らかの耐タンパー性機器をも含意しうる。さらに、仲介装置、たとえばサービス提供者によって設けられるサーバーが、個体と発行機関との間の情報を中継するよう構成される、あるいは複数の個体と発行機関との間の情報を中継するよう構成されさえすることもできることを理解しておくべきである。その場合、個体の用語は、仲介装置そのものをも含みうるのであり、少なくとも個体と仲介装置との間の通信が匿名であることが必要である。
【００１６】
発行機関は、それぞれが当該個体に関連付けられた識別子に基づくある値および該識別子の少なくとも一つの暗号化されたコピーを含む複数M個のデータ構造の形で要求を受け取る。のちに示されるように、各データ構造には識別子の暗号化されたコピーはある数S個含まれ、各コピーは異なる鍵で暗号化されていることが好ましい。使用される異なる鍵は、発行機関によって保持される所定の鍵の集合に属する。前記要求を受け取ると、発行機関は、ある第一の数M−B個のデータ構造を選び、それについて前記個体は、発行機関において受け取られた各暗号化された識別子に対応する、対応する識別子および暗号化鍵を明かす。その後、個体は選ばれた識別子および暗号化鍵を発行機関に送る。発行機関は、これらの暗号化鍵が該発行機関によって保持されている前記所定の鍵の集合に含まれているものであることおよび前記識別子の暗号化されたコピーが有効な対応する暗号化鍵を用いて暗号化されていることを検証し、その確認を前記個体に送る。
【００１７】
その確認を前記個体が受け取ると、その個体に関連付けられた識別子に基づく残りの値B個のうちの少なくとも一つと、複数M個のデータ構造に含まれる残りの暗号化された識別子B×S個のうち少なくとも一つとが発行機関に送られる。こうして発行機関は、前記残りの暗号化された識別子が複数M個のデータ構造から同定できれば、その残りの暗号化された識別子についての証明書を発行できる。この証明書は、前記残りの暗号化された識別子の暗号化鍵が当該発行機関によって知られている前記所定の集合に含まれていることを示す。こうして、証明書は、前記識別子を暗号化するために用いられた暗号化鍵を有する個体が信頼された発行機関の「グループメンバーシップ」に準拠していることを示す。生成された残りの識別子のすべてが好ましくは対応する証明書を生成するために用いられるべきであるので、発行機関は好ましくは前記残りの暗号化された識別子の総数B個を受け取り、それぞれの残りの暗号化された識別子について証明書を生成する。すなわち、証明書の数は典型的には残りの暗号化された識別子の数Bに等しい。各証明書は個別の残りの暗号化された識別子およびその残りの暗号化された識別子に基づく対応する値を含む。
【００１８】
本発明では、個体の素性、すなわち証明書中の識別子を暗号化するのに使われた暗号化鍵が明かされないという事実のため証明書が匿名であるので有利である。また、発行機関によって保持されている所定の鍵の集合への言及、すなわち、証明書が当該個体が属していると述べているグループへの言及は、証明書を承認する発行機関を介してなされる。したがって、ある特定の発行機関のみがある特定のグループに言及する証明書を発行すると想定される。個体は識別子を暗号化するのに使われた暗号化鍵のすべてを当該機関に送るので、該機関は複数M個に含まれるすべてのデータ構造について、識別子を暗号化するのに使われたのが、有効な鍵だけ、すなわち発行機関によって保持されている所定の集合に含まれる暗号化鍵だけであることを検証することができる。したがって、発行機関は、複数M個のデータ構造に含まれていた残りの暗号化された識別子も有効な暗号化鍵を用いて暗号化されていると確信する。上述したように、生成された識別子をフルに活用するため、発行される証明書の数は典型的には秘匿されない残りの暗号化された識別子の数Bに等しい。発行された複数の証明書のバッチBについても、各証明書は異なる識別子を用いて発行されているので、識別子に関するリンク可能性は回避される。個体はその後、その個体のみが知っている復号鍵を使って証明書から識別子を入手することによって、ある相手に、証明書に含まれている暗号化された識別子を知っていることを、識別子そのものを明かすことなく証明することができる。典型的には暗号化／復号手順において用いられるのは非対称鍵ペア（公開鍵および秘密鍵）である。識別子を知っていることの証明は、典型的には零知識プロトコルによって提供される。これは、証明書が見せられる通信相手、すなわち承認装置が他の何らかの相手に対してその個体になりすますことができないという効果をもつ。
【００１９】
証明書によって個体が通信相手において匿名で承認されるとき、通信相手は証明書を個体から受け取り、証明書が信頼される発行機関によって発行されたものであることを検証する。通信相手は暗号化された識別子を個体に送り、個体はその後その識別子を知っていることを零知識プロトコルにおいて証明する。平文の識別子を入手するためにはその個体のみが知っている復号鍵が使われる。前記識別子に基づく値は、プロトコルの実行の間に検査のために通信相手によって使用される。個体と通信相手との間に確立される通信チャネルは、通信相手が個体の素性を取得できないよう、匿名でなければならない。
【００２０】
上記のことから認識できるように、安全性および匿名性のレベルを制御するために調整できるパラメータが二つある。これらのパラメータは、関与する当事者の計算、記憶および情報交換リソースに関して本発明に基づく方法の効率をも決定する。これら二つのパラメータは、（ａ）個体が生成しなければならない識別子の数Mと、（ｂ）暗号化鍵の数Sである。該S個の暗号化鍵を使って、識別子の対応する数S個の暗号化されたコピーがデータ構造に提供される。
【００２１】
パラメータM（ここでM＞1）は、原則として発行機関によって設定されるセキュリティパラメータである。Mの値が大きいほど、複数M個のデータ構造に含まれる残りのB個の暗号化された識別子が有効な暗号化鍵、すなわち当該発行機関によって保持されている所定の鍵の集合に含まれる暗号化鍵によって暗号化されているとの発行機関の確信は高くなる。典型的には、発行機関は多数の計算を扱うことができるが、個体にとっては多くのデータ構造を計算し、保存し、送るのはわずらわしいことがありうる。よって、発行機関における安全性の側面は、個体側で執り行われる計算に対してバランスをとる必要がある。
【００２２】
パラメータS（ここで1＜S≦N；Nは前記所定の集合に含まれる鍵の総数）は個体によって設定される匿名性パラメータである。識別子の対応する数S個の暗号化されたコピーを発行機関に提供するために使われるS個の暗号化鍵は、当該特定の個体に属する暗号化鍵を含む。Sの値が大きいほど、特定の所定の鍵の集合における個体の暗号化鍵の匿名性は高まる（よって個体そのものの匿名性も高まる）。ここでもまた兼ね合いが必要である。個体側での識別子の暗号化の回数が、発行機関における匿名性側面と突き合わされる必要があるのである。ひとたび証明書が発行されれば、個体においてはもう識別子を保存する必要はないことを注意しておく。
【００２３】
しかしながら、グループメンバーシップの証明は証明書発行の時点では生起しないので、証明書発行のためのプロトコルは発行機関と任意の相手との間で実行されうることを注意しておく。この相手はそのグループの鍵の集合を知っている必要があり、発行機関とのプロトコルに携わる際に、ある数B個の証明書を入手するよう、そのグループの一ないし複数の個体に代わって行動する必要がある。これらB個の証明書のそれぞれは、残りの暗号化された識別子の一つおよびその残りの暗号化された識別子に基づく対応する値を含んでいる。さらに、この相手は、個体において存在するかもしれない計算上の制約を解消するような高い計算能力を有していることが好ましい。
【００２４】
本発明の諸実施形態によれば、各識別子は個体において生成された秘密のランダム情報であり、ある識別子に基づく個々の値はやはり個体において計算される、対応する秘密のランダム情報の冪の関数である。このことは、秘密のランダム情報は根の計算が困難な問題である数の群から選ぶことができるので、有利である。たとえば、フィアット・シャミール（Fiat-Shamir）プロトコルによれば、識別子に基づく値はこうして、秘密のランダム情報を２乗したものとして表せる。代替的に、該値は、ギユー・キスケーター（Guillou-Quisquater）プロトコルによれば、pを素数として秘密のランダム情報を因子p乗したものとして表せる。
【００２５】
本発明の別の実施形態によれば、証明書が信頼される発行機関によって発行されているとの指標は、各証明書に発行機関の署名を与えることにより達成される。よって、証明書の完全性（integrity）は、通信相手においてその署名が正しいことを検証することによって検証できる。以前に述べたように、信頼される発行機関は、M個のデータ構造のうちある第一の数M−B個を選び、それについて個体が、発行機関において受け取られた各暗号化された識別子に対応する、個別の識別子および暗号化鍵を明かす。第一の数M−Bが十分大きければ、当該機関は、B個の秘匿されない残りの暗号化された識別子（この数は典型的には発行される証明書の数に等しい）も発行機関によって保持されている所定の鍵の集合に含まれている鍵によって暗号化されていると確信できる。よって、所与の秘匿されない残りの暗号化された識別子に対応する任意の所与の証明書における発行機関の署名は、秘匿されない残りの暗号化された識別子を暗号化するのに使われた鍵が実際に発行機関によって保持されている所定の鍵の集合に含まれているということの保証と見なすことができる。こうして、署名は、個体は、その後証明書中のランダムな識別子を知っていることを証明できるものとすれば、信頼される発行機関のグループメンバーシップ要求に準拠している、すなわちそのグループのメンバーであると示すのである。
【００２６】
本発明のさらにもう一つの実施形態によれば、各証明書はさらに、その証明書の発行に関係するデータを含んでいる。このデータはたとえば、タイムスタンプの形での証明書の発行時、前記証明を与えるのに使われた方法、証明書が発行された位置などに関するものであることができる。通信相手は、公開鍵がそのグループに属することを、前記データに基づいて保証される。たとえば、公開鍵はある以前の時点でそのグループに属していたとする。グループの成員であることが個体に前記相手が許諾できる何らかの特権を与え、そのグループのメンバーが前記の特定の時点以来変わっていないとすれば、その個体はその特権を匿名で行使できる。
【００２７】
本発明のあるさらなる実施形態によれば、タイムスタンプが提供される。個体に二つ以上の証明書が発行される場合には、各証明書が、その個体に発行された他のどの証明書のタイムスタンプとも異なるタイムスタンプを有するようにされる。複数の証明書が個体にバッチBの証明書（すべて同じ時点に発行される）の形で発行される場合には、各証明書は、その個体に発行された他のどの証明書のタイムスタンプともあるランダムな小さな量だけ異なるタイムスタンプを有する。
【００２８】
この実施形態は、部外者がある証明書を別の証明書と結び付けるのに成功するリスクを軽減するので有利である。バッチBの発行された証明書に含まれるどの特定のタイムスタンプも、そのバッチに含まれる他のどのタイムスタンプとも異なっている。タイムスタンプの値が異なるので、一つのタイムスタンプは別のタイムスタンプに直接的に結び付けることはできない。第一の証明書を用いて個体は通信相手にあるグループでのメンバーシップを匿名で証明しうる。同じ通信相手に対して同じ個体が再び匿名でコンタクトし、同じバッチからの第二の証明書がその通信相手に見せられた場合、タイムスタンプの値が異なり、よって前記相手はその二つの証明書が同じ個体に関するものであると確信できない。
【００２９】
本発明のさらなる特徴および利点は、付属の請求項および以下の記述を研究すると明らかになるであろう。当業者は本発明の異なる特徴を組み合わせて以下に記載されている以外の実施形態を創り出すことができることを認識するものである。
【００３０】
本発明の好ましい実施形態について、付属の図面を参照しつつ詳細に述べる。
【発明を実施するための最良の形態】
【００３１】
図１は、本発明の諸側面が具現されうる本発明に基づく認可システムを示す図である。図では「個体」はユーザー装置１２１の形で示されており、これはたとえば、携帯電話、PDA、ラップトップ、携帯オーディオプレーヤーまたはコンピューティングおよび通信機能をもつ他の何らかの適切な装置といった装置に配置されたスマートカードまたはUSBドングルでありうる。さらに、証明書を発行する信頼される発行機関１１１およびユーザー装置の匿名での承認を提供するためにその証明書が使われる通信相手１０１（すなわち承認装置）が示されている。典型的には図１に示したようなシステムは複数のユーザー装置および通信相手を含んでいる。異なる装置の間で通信が実施されるという事実を説明するために「ユーザー装置」および「通信相手」という用語を本記載を通じて用いるが、通信相手は典型的には１２１で表される、前記装置と同様のユーザー装置であり、同様の属性をもつ。
【００３２】
装置（ユーザー装置‐発行機関およびユーザー装置‐通信相手）は、たとえばインターネットのようなネットワーク１４０を介して相互接続されてもよいが、図のように通信チャネル１４１および１４２を介して直接的に相互接続されることもできる。通信相手１０１は典型的にはユーザー装置なので、通信相手は同様にして通信チャネル１４３を介して発行機関と相互接続されうる。計算機能は典型的にはそれぞれの装置内の処理ユニット１０２、１１２、１２２によって具現される。処理ユニットはプロセッサ１０３、１１３、１２３、メモリ１０４、１１４、１２４および可能性としては必要なその他の標準的な電子設備を含む。処理ユニットはたとえば、暗号化／復号の機能を扱う。装置１０１、１１１、１２１のそれぞれは、ネットワークから、あるいは他の装置から情報を受け取るための受信手段１０６、１１６、１２６および情報を送信するための送信手段１０７、１１７、１２７をもつよう構成される。
【００３３】
システム中に含まれる装置は準拠装置であると想定される。これは、それらの装置が所与の規格に準拠しており、ある種の動作規則に従うということを意味する。これはまた、それらの装置が、呈された質問および要求に期待された仕方で答えるようある種のプロトコルによって通信するということをも意味している。本発明は個別的な例示的な実施形態を参照しつつ述べてきているが、多くの異なる変更、修正などが当業者には明らかとなるであろう。したがって、記載される実施形態は付属の請求項によって定義される本発明の範囲を限定することを意図したものではない。各装置１０１、１１１、１２１中の処理ユニット１０２、１１２、１２２は典型的には図２〜３との関連で述べるようなステップを遂行するための適切なソフトウェアを実行することを注意しておく。
【００３４】
ユーザー装置１２１が匿名で証明書の発行を受けたいとき、ユーザー装置は、該ユーザー装置（すなわち個体）についていかなる識別データも明かされないよう、匿名チャネルを介して発行機関１１１にコンタクトする必要がある。
【００３５】
本発明のある実施形態では、匿名証明書について次の書式が提案される：
C＝{RAN2,  PK[RAN]}SignIA      (1)
ここで、
RANはユーザー装置において生成される秘密の乱数、RANは以下ではユーザー装置の識別子と称される。
【００３６】
PKはユーザー装置の公開鍵
PK[RAN]はRANのPKによる暗号化
SignIAは証明書に添付される発行機関（issuing  authority）の署名
証明書Cを通信相手１０１に呈示する際、秘密の乱数RAN∈Zn*を知っていることを通信相手１０１に対して証明するためには、よく知られたフィアット・シャミール（Fiat-Shamir）認証プロトコルを使うことができる。ここで、二乗の値RAN2は証明書から通信相手に利用可能となっている。この問題は、乗法群Zn*において平方根を計算することが困難な問題であるという事実に基づいている。通信コストが問題になる用途では、たとえばユーザー装置がスマートカードを使って実装される場合には、RANのより高次の冪（pを素数としてRANp）を用いるギユー・キスケーター（Guillou-Quisquater）認証プロトコルがより好適である。ユーザー装置と通信相手との間の交換を最小に保てるからである。値RANは、各証明書について異なる、ランダムに選ばれたZn*中の値であり、よって値RAN2も証明書ごとに一意的である。しかしながら、所与のユーザーのすべての証明書について同じであるユーザー装置暗号化鍵PKは明らかになっていない。公開鍵PKに対応する秘密鍵SKへのアクセスを有するのはそのユーザーだけなので、そのユーザーのみが証明書CからRANを取得できる。通信相手が証明書の完全性を確信するためには、証明書は信頼される発行機関（これはたとえばコンテンツ提供者であることができる）によって署名されている必要がある。
【００３７】
RAN値をユーザー装置中の記憶に保存しておくことが必要でないことに注意されたい。ユーザー認証のステップが起こるのは、暗黙的には、ユーザー装置が値RANを取得するときである。というのも、値RANを得るためにPK[RAN]を復号できるのは、ユーザー公開鍵PKに対応する秘密鍵SKを知っているユーザーだけだからである。
【００３８】
本発明においてユーザー装置と発行機関との間で使用される通信プロトコルは典型的にはカット・選択（cut  and  choose）型である。すなわち、ユーザー装置が特定の手順に従って計算されたいくつかの秘密の値を生成する。この所与の手順に従って計算された秘密は、その秘密が明かされなければ検証できない。したがって、発行機関はランダムにこれらの秘密の値のうちのいくつかを選択し、ユーザー装置はそれらの値を発行機関に明かす。これらの値のうち少なくとも一つが所与の手順に従って計算されていない場合には、発行機関は他のすべての値を拒否し、プロトコルは終了する。他方、これらの値のすべてが所与の手順に従って計算されていたら、発行機関は明かされなかった秘密の値も所与の手順に従って計算されていると確信できる。
【００３９】
さて、カット・選択の考えに基づいて、ユーザー装置１２１は匿名で発行機関１１１にコンタクトする。単一の証明書の発行を受けるために、個体はある数M個の秘密の乱数RAN（m＝1,2,...,MとしてRANm）を生成する。次に、ユーザー装置は、発行機関によって保持されている所定の（predetermined）集合Pに含まれているS個の公開鍵を選んで、集合PRを形成する。集合PRは完全な所定の集合Pであってもよく（その場合、S＝Nである）、あるいはNが非常に大きい場合にはPの部分集合であってもよい。ただし、集合PRはこの特定のユーザー装置の公開鍵PKindを含んでいる必要がある。ユーザー装置は次いで、集合PR中のすべての鍵について、およびRANのすべてのMの値（すなわちm＝1,2,...,M）についてPKs[RANm]を計算する。
【００４０】
前述したように、パラメータM（ここでM＞1）は、原則として発行機関によって設定されるセキュリティパラメータである。Mの値が大きいほど、識別子（すなわち個々のRAN）が有効な暗号化鍵によって暗号化されているとの発行機関の確信は高くなる。ここで、「有効な」暗号化鍵とは、当該発行機関によって保持されている所定の鍵の集合に含まれる暗号化鍵である。
【００４１】
パラメータS（ここで1＜S≦N）は個体によって設定される匿名性パラメータである。Sの値が大きいほど、特定の所定の鍵の集合Pにおける個体の暗号化鍵PKindの匿名性は高まる（よって個体そのものの匿名性も高まる）。
【００４２】
図２を参照すると、この図はユーザー装置２２１と信頼される証明書発行機関２１１との間の発行プロトコルがタイムライン２２０に沿って示されている。ここで、ユーザー装置は発行機関に、
[RANm2,  {PKs[RANm],  s＝1,2,...,S}]
の形のデータ構造をある数M個送る。つまり、発行機関は、ステップ２３１において、それぞれが当該ユーザー装置に属する識別子RANmに基づく値RANm2と識別子の少なくとも一つの暗号化されたコピーPKs[RANm]とを含む複数M個のデータ構造を受け取る。実際上は、上述したように、各データ構造には識別子の暗号化されたコピーはいくつか含められる。本発行プロトコルは、ユーザー装置の発行機関に対する匿名性を提供する。データ構造を受け取ると、発行機関はステップ２３２において、識別子のうちM−B個を選ぶ。この選択は、ユーザー装置に対して、発行機関が選んだ（複数M−B個の）識別子RANmに対応する複数M−B個の値RAN2を通信することによってなされうる。選択を実施するもう一つの方法は、すべてのデータ構造を順に番号付けし、発行機関にはデータ構造のうちどれを受け取りたいかを示すメッセージを送ることによってその選択を通信させることである。よって、B個の識別子RANmは秘密に保たれ、その後発行される証明書において使われることになる。
【００４３】
ステップ２３３では、選択されたデータ、すなわちM−B個の識別子RANmおよび集合PRに含まれるすべての暗号化鍵PKsが発行機関に送られる。発行機関はそれらの暗号化鍵が所定の集合Pに含まれていること、すなわち識別子を暗号化するのに使われたそれらの暗号化鍵が有効であることを検証し、M−B個の明かされたRANmの値のそれぞれについての値PKs[RANm]のそれぞれが正しいことも検証する。前記機関は、選ばれたデータに対応するM−B個のデータ構造についての値PKs[RANm]が実際に有効な鍵によって暗号化されていることを、選択された識別子RANmのそれぞれを集合PRに含まれる対応する暗号化鍵PKsによって暗号化することによって検証できる。
【００４４】
この事実が確認されたら、発行機関は開示されていない識別子についてのデータ構造が有効な暗号化鍵、すなわち集合PR中の暗号化鍵により暗号化されていることを確信できる。発行機関はステップ２３４においてその確認をユーザー装置に送る。集合PRは当該ユーザー装置の公開鍵PKindを含んでいる必要があるので、この鍵はM個のデータ構造すべてについて同一であるよう選ばれることが好ましいことを注意しておく。さらに、集合PRは大きな集合であることが好ましい（少なくとも２以上；当該ユーザー装置の鍵が集合内に、よって他の多くの鍵のうちに含まれているという事実に匿名性が立脚しているからである）。この好ましい場合においては、集合PR中の鍵PKsが発行機関に送られるのは一度だけである。というのも、すべてのデータ構造について同じだからである。
【００４５】
ステップ２３５では、ユーザー装置は残りのB個の暗号化された識別子PKind[RANm]を発行機関に送る。このそれぞれの暗号化された識別子が発行される証明書において使用されることになる。発行機関はPKind[RANm]が以前に受け取られたデータ構造のうちに現れることを確認し、証明書Cを生成し、(1)に従って証明書に署名する。最後に、ステップ２３６において、証明書がユーザー装置に送られる。証明書はその後、公開鍵PKindに対応する秘密鍵SKindを知っているグループメンバー――すなわち、所定の集合P中の公開鍵の一つを有している個体――によってのみ使用されることができる。
【００４６】
集合Pへのアクセスを有する者は誰でも前記集合に含まれる公開鍵について証明書を発行してもらうことができる。秘密鍵を知っていることの証明はプロトコルの実行の間には提供されないからである。たとえば、個体によって信頼されており、所定の料金で個体のために証明書発行サービスを実行できる第三者である。この第三者は以前言及した、個体と発行機関との間で情報を中継するよう構成された仲介装置と比せられる。個体と仲介装置との間の通信は匿名でなければならない。しかし、仲介装置と発行機関との間の匿名性については何の要求もない。
【００４７】
本発明のもう一つの実施形態によれば、各証明書はさらに、該証明書の発行に関係するデータを含んでいる。このデータはたとえば、下の(2)に示すように、タイムスタンプTの形での証明書の発行日時に関係するものであることができる。
【００４８】
C＝{RAN2,PK[RAN],T}SignIA      (2)
グループの成員であることが個体に前記相手が許諾できる何らかの特権を与え、そのグループのメンバーが前記の特定の時点以来変わっていないとすれば、その個体はその特権を匿名で行使できる。タイムスタンプは、複数の証明書が個体にバッチで発行される場合に、そのバッチに含まれる各証明書が、その個体に発行された他のどの証明書のタイムスタンプとも異なるタイムスタンプを有するように提供される。
【００４９】
図３はユーザー装置３２１と通信相手３０１との間の承認プロトコルをタイムライン３２０に沿って示している。ユーザー装置３２１が通信相手３０１に対して匿名でメンバーシップを証明したいとき、ユーザー装置は匿名チャネルを介してコンタクトを確立する。ステップ３３１では、ユーザー装置は通信相手にこの匿名チャネルを通じて証明書を送る。通信相手はその証明書が信頼される発行機関によって発行されたものであることを、その証明書にデジタル署名SignIAを与えるのに用いられたその証明機関の秘密鍵に対応する公開鍵によって検証する。
【００５０】
次いで、ステップ３３２で、通信相手は、証明書――これはたとえば、(1)または(2)に記述されているような形でありうる――に含まれている暗号化された識別子PK[RAN]をユーザー装置に送り返す。該識別子は、公開鍵PKに対応する秘密鍵SKを用いて暗号化された識別子を復号することによって、ユーザー装置のところで平文で得られる。最後に、ステップ３３３において、通信相手は、ユーザー装置が、その証明書に含まれていた識別子RANを知っているということの証明を受け取る。先述したように、この証明はユーザー装置と通信相手との間の零知識プロトコルによって与えられる。これは、該零知識プロトコルののち、通信相手はユーザー装置が識別子RANを知っていると確信するが（識別子RANは当のユーザー装置しか知り得ない）、その識別子について通信相手には何も明かされないということを意味する。これは、通信相手が、さらに別の通信相手とのトランザクションにおいて値RANの知識を示すことによって前記ユーザー装置になりすますことを防止する。零知識プロトコルの間、数ラウンドがあり、それぞれのラウンドにおいて、ユーザー装置が実際に識別子RANを知っているという事実を与えられ、通信相手の確信は上昇する。通信相手が、そのユーザー装置が識別子RANを知っていると十分に確信した場合には、それはしかるべく行動する。通信相手がコンテンツ装置として行動する場合、それはユーザーに、たとえばMPEGもしくはMP3ファイルまたはその他のオーディオおよび／またはビデオコンテンツの形でのデジタルコンテンツへのアクセスを与えることができる。別の実施形態では、通信相手はその結果をコンテンツ装置として機能する別の装置に通信することができる。図３との関連で述べた手順を用いて、通信相手３０１は、匿名の個体３２１が、証明書に含まれている暗号化された識別子を暗号化するのに使われた公開鍵に対応する秘密鍵SKを知っていると確信できる。さらに、証明書についている発行機関の署名は、識別子を暗号化するのに使われた公開鍵が実際にその発行機関によって知られ、証明されているグループに属することを保証する。しかし、通信相手はその公開鍵について何も知ることはない。
【００５１】
本発明について特定の例示的な実施形態を参照しつつ述べてきたが、当業者には数多くの異なる変更、修正などが明らかとなるであろう。したがって、記載された実施形態は、付属の請求項において定義される本発明の範囲を限定することを意図したものではない。
【図面の簡単な説明】
【００５２】
【図１】本発明の諸側面が具現されうる本発明に基づく認可システムを示す図である。
【図２】ユーザー装置と信頼される証明書発行機関が関与する証明書発行プロトコルを示す図である。
【図３】ユーザー装置と通信相手が関与する証明書承認プロトコルを示す図である。
【図１】
2008503966.tif 000003
【図２】
2008503966.tif 000004
【図３】
2008503966.tif 000005
【国際調査報告】
2008503966.tif 000006
2008503966.tif 000007