(57)【要約】【課題】よりプライバシーと匿名性を保証する方法で第三者認証を行うより柔軟な手法を提供すること。【解決手段】ユーザコンピューティング装置１０２は、デジタル証明書の要求１１０を提供し、要求１１０は、証明書を要求しているユーザに属する個人情報を含む。認証局１０４は要求１１０を受信して、ユーザコンピューティング装置１０２へ返す値として選択的に開示可能なデジタル証明書１２０を生成し、これは、複数のフィールド１２２（１）、１２２（２）、１２２（３）、．．．、１２２（Ｎ）を有して個人情報の関連する項目を保持する。認証局１０４は、すべてのフィールド１２２（１）〜１２２（Ｎ）に要求１１０でユーザから受け取った関連するデータ項目を実装するが、これらのフィールド１２２（１）〜１２２（Ｎ）の各々にはその不可視化したデータが実装される。【選択図】　　　　図１
2004023796.tif 000002
【特許請求の範囲】
【請求項１】
デジタル証明書の要求を受信するステップであって、該要求は複数のデータ項目を含むステップと、
複数のフィールドを、対応するデータ項目に対して有するデジタル証明書を生成するステップと、
前記データ項目の少なくともいくつかを不可視化するステップと、
当該不可視化されたデータ項目を前記対応するフィールドに格納するステップと、
前記デジタル証明書を発行するステップと
を備えたことを特徴とする方法。
【請求項２】
前記データ項目は、前記要求を提供する者に属する個人情報を備えたことを特徴とする請求項１に記載の方法。
【請求項３】
各フィールドは１つのデータ項目を保持することを特徴とする請求項１に記載の方法。
【請求項４】
前記不可視化するステップは、前記データ項目を暗号化するステップを備えたことを特徴とする請求項１に記載の方法。
【請求項５】
前記不可視化するステップは、ハッシュダイジェストを前記データ項目から算出するステップを備えたことを特徴とする請求項１に記載の方法。
【請求項６】
前記不可視化するステップは、個々のデータ項目の第三者署名を容易にするステップを備えたことを特徴とする請求項１に記載の方法。
【請求項７】
前記不可視化するステップは、関連するフィールドのために乱数を発生するステップと、
前記データ項目を処理して前記対応するフィールドに、該フィールドに関連する乱数の関数として保持するステップと
を備えたことを特徴とする請求項１に記載の方法。
【請求項８】
前記乱数を発生するステップは、擬似乱数工程を用いて乱数を発生するステップを備えたことを特徴とする請求項１に記載の方法。
【請求項９】
電子的に前記デジタル証明書に署名するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１０】
請求項１に記載の方法の結果生成される構造を有する、コンピュータ読み取り可能な媒体上に格納されたデジタル証明書データ。
【請求項１１】
請求項１に記載の方法の各ステップを実行するためのコンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能媒体。
【請求項１２】
複数のフィールドを含むデジタル証明書を生成するステップと、
関連するフィールドに対し別々の鍵値を発生するステップと、
前記フィールドに関連する別々の鍵値の関数として前記フィールドに格納するためのデータを不可視化するステップと、
当該不可視化されたデータを前期対応するフィールドに格納するステップと
を備えたことを特徴とする方法。
【請求項１３】
前記不可視化するステップは、前記フィールドのために定められたデータを前記フィールドに関連する鍵値を用いて暗号化するステップを備え、
前記格納するステップは、当該暗号化されたデータを前記対応するフィールドに格納するステップを備えたことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記不可視化するステップは、ハッシュダイジェストを前記データおよび前記鍵値から算出するステップを備え、
前記格納するステップは、前記ハッシュダイジェストを前記対応するフィールドに格納するステップを備えたことを特徴とする請求項１２に記載の方法。
【請求項１５】
電子的に前記デジタル証明書に署名するステップをさらに備えたことを特徴とする請求項１２に記載の方法。
【請求項１６】
前記鍵値を前記証明書とは別のパケットに格納するステップをさらに備えたことを特徴とする請求項１２に記載の方法。
【請求項１７】
前記デジタル証明書を要求者のパケットとともに発行するステップをさらに備えたことを特徴とする請求項１６に記載の方法。
【請求項１８】
請求項１２に記載の方法の結果生成される構造を有する、コンピュータ読み取り可能な媒体上に格納されたデジタル証明書データ。
【請求項１９】
請求項１２に記載の方法の各ステップを実行するためのコンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能媒体。
【請求項２０】
者を認証する方法であって、
複数のフィールドを有するデジタル証明書を受信するステップであって、該フィールドの少なくともいくつかは不可視化された形態で格納された関連するデータ項目を含むステップと、
選択されたフィールドのデータ項目を露出することを許可する能力を受信するステップと、
前記選択されたフィールドのデータ項目を前記能力を用いて他のデータが不可視化された形態のままで露出するステップと、
前記者を当該露出されたデータ項目に基づいて認証するステップと
を備えたことを特徴とする方法。
【請求項２１】
前記データ項目は、各フィールドについて１つの鍵となるような関連する鍵を用いて暗号化され、および
前記能力は前記選択されたフィールドについての鍵を備えたことを特徴とする請求項２０に記載の方法。
【請求項２２】
前記露出するステップは、前記選択されたフィールドのデータ項目を前記選択されたフィールドのための鍵を用いて解読するステップを備えたことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記データ項目は、各フィールドについて１つの鍵となるような、データと関連する鍵とから導き出された鍵付ハッシュ値であり、および前記能力は前記選択されたフィールドについての前記データ項目および前記関連する鍵を備えたことを特徴とする請求項２０に記載の方法。
【請求項２４】
前記露出するステップは、
鍵付ハッシュ値を前記選択されたフィールドの前記データ項目および前記関連する鍵から算出するステップと、
当該算出された鍵付ハッシュ値と前記証明書に格納された鍵付ハッシュ値とを比較するステップと
を備えたことを特徴とする請求項２３に記載の方法。
【請求項２５】
請求項２０に記載の方法の各ステップを実行するためのコンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能媒体。
【請求項２６】
デジタル証明書の要求を送信するステップであって、該要求は複数のデータ項目を含むステップと、
複数のフィールドを有するデジタル証明書を受信するステップであって、該フィールドの少なくともいくつかは不可視化された形態で格納された関連するデータ項目を含むステップと、
前記フィールドのデータ項目を露出することを許可する能力を受信するステップと、
データ項目の部分セットを選択して、認証の間露出するステップと、
前期デジタル証明書を、対応するフィールドに格納されたデータ項目の前記選択された部分セットを露出する能力とともに、前記証明書にある他のフィールドの選択されなかった他のデータ項目を露出せずに提供するステップと
を備えたことを特徴とする方法。
【請求項２７】
前記データ項目は、前記要求を提供する者に属する個人情報を備えたことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記データ項目は、各フィールドについて前記証明書のフィールドに対応する関連する鍵を用いて暗号化され、および
前記パケットは、前記鍵を含むことを特徴とする請求項２６に記載の方法。
【請求項２９】
前記提供するステップは、前記デジタル証明書を選択された鍵とともに送信して、データ項目の前記選択された部分セットの暗号化を可能とするステップを備えたことを特徴とする請求項２８に記載の方法。
【請求項３０】
前記データ項目は、提供されたデータと前記証明書のフィールドに対応する関連する鍵とから導き出された鍵付ハッシュ値を備え、および前記パケットは、前記鍵を含むことを特徴とする請求項２６に記載の方法。
【請求項３１】
前記提供するステップは、前記デジタル証明書をデータ項目の前記選択された部分セットおよび選択された鍵とともに送信して、前記証明書に格納された鍵付ハッシュ値を検証するため、鍵付ハッシュ値の算出を可能とするステップを備えたことを特徴とする請求項３０に記載の方法。
【請求項３２】
請求項２６に記載の方法の各ステップを実行するためのコンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能媒体。
【請求項３３】
デジタル証明書の要求を受信するステップであって、該要求は複数のデータ項目を含むステップと、
複数のフィールドを、対応するデータ項目に対し有するデジタル証明書を生成するステップと、
前記フィールドに前記データ項目を実装するステップと、
１または複数の第三者署名者から、ここのフィールドにあるデータ項目の署名を獲得するステップと、
前記デジタル証明書を発行するステップと
を備えたことを特徴とする方法。
【請求項３４】
電子的に前記デジタル証明書に署名するステップをさらに備えたことを特徴とする請求項３３に記載の方法。
【請求項３５】
請求項３３に記載の方法の各ステップを実行するためのコンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能媒体。
【請求項３６】
コンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能媒体であって、該コンピュータ実行可能命令が実行されるとコンピューティング装置は、
異なるデータ項目のための複数のフィールドを有する証明書データ構造を構築し、
関連するフィールドのための鍵を発生し、
前記フィールドに格納するために定められたデータ項目を該フィールドに関連する鍵を用いて暗号化して、所定のフィールドのための定められた所定のデータ項目は該所定のフィールドに関連する鍵を用いて暗号化され、
当該暗号化されたデータ項目を前記フィールドに格納することを特徴とする１つまたは複数のコンピュータ読み取り可能媒体。
【請求項３７】
前記コンピュータ実行可能命令が実行されるとコンピューティング装置は、前記鍵を前記証明書からの別々のパケットに格納するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項３６に記載の１つまたは複数のコンピュータ読み取り可能媒体。
【請求項３８】
前記コンピュータ実行可能命令が実行されるとコンピューティング装置は、１つの暗号化されたデータ項目をフィールドごとに格納するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項３６に記載の１つまたは複数のコンピュータ読み取り可能媒体。
【請求項３９】
前記コンピュータ実行可能命令が実行されるとコンピューティング装置は、電子的に前記証明書を前記フィールドにある暗号化されたデータ項目を含め署名するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項３６に記載の１つまたは複数のコンピュータ読み取り可能媒体。
【請求項４０】
請求項３６に記載の１つまたは複数のコンピュータ読み取り可能媒体を備えたことを特徴とするコンピューティングシステム。
【請求項４１】
コンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能媒体であって、該コンピュータ実行可能命令が実行されるとコンピューティング装置は、
複数のフィールドを異なるデータ項目に対し有する証明書データ構造を構築し、
関連するフィールドのための鍵を発生し、
鍵付ハッシュダイジェストを前記データ項目と前記フィールドに関連する鍵とから算出して、所定のフィールドのための鍵付ハッシュダイジェストは該所定のフィールドのため定められたデータ項目と前記所定のフィールドに関連する鍵とから導き出され、
前記鍵付ハッシュダイジェストを前記フィールドに格納することを特徴とする１つまたは複数のコンピュータ読み取り可能媒体。
【請求項４２】
前記コンピュータ実行可能命令が実行されるとコンピューティング装置は、前記鍵を前記証明書からの別々のパケットに格納するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項４１に記載の１つまたは複数のコンピュータ読み取り可能媒体。
【請求項４３】
前記コンピュータ実行可能命令が実行されるとコンピューティング装置は、１つの鍵付ハッシュダイジェストをフィールドごとに格納するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項４１に記載の１つまたは複数のコンピュータ読み取り可能媒体。
【請求項４４】
前記コンピュータ実行可能命令が実行されるとコンピューティング装置は、電子的に前記証明書を前記フィールドにある鍵付ハッシュ値目を含め署名するコンピュータ実行可能命令をさらに備えたことを特徴とする請求項４１に記載の１つまたは複数のコンピュータ読み取り可能媒体。
【請求項４５】
請求項４１に記載の１つまたは複数のコンピュータ読み取り可能媒体を備えたことを特徴とするコンピューティングシステム。
【請求項４６】
コンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能媒体であって、該コンピュータ実行可能命令が実行されるとコンピューティング装置は、
複数のフィールドを有するデジタル証明書を受信し、該フィールドの少なくともいくつかは不可視化された形態で格納された関連するデータ項目を含み、
選択されたフィールドのデータ項目を露出することを許可する能力を受信し、
前記選択されたフィールドのデータ項目を前記能力を用いて、選択されなかったフィールドにある他のデータ項目を露出することなく露出し、
当該露出されたデータ項目を認証のために使用することを特徴とする１つまたは複数のコンピュータ読み取り可能媒体。
【請求項４７】
前記データ項目は対応する鍵によって暗号化され、前記能力は選択された鍵を備えて、前記選択されたフィールドにあるデータ項目を解読することを可能にすることを特徴とする請求項４６に記載の方法。
【請求項４８】
前記データ項目は、ユーザ情報と関連する鍵とから導き出された鍵付ハッシュを備え、前記能力は選択された鍵と前記ユーザ情報とを備えて、前記選択されたフィールドに格納された前記鍵付ハッシュ値との比較のために鍵付ハッシュ値の算出を可能とすることを特徴とする請求項４６に記載の方法。
【請求項４９】
請求項４６に記載の１つまたは複数のコンピュータ読み取り可能媒体を備えたことを特徴とするコンピューティングシステム。
【請求項５０】
コンピュータ実行可能命令を有する１つまたは複数のコンピュータ読み取り可能媒体であって、該コンピュータ実行可能命令が実行されるとコンピューティング装置は、
複数のフィールドを有するデジタル証明書を格納し、該フィールドの少なくともいくつかは不可視化された形態で格納された関連するデータ項目を含み、
前記フィールドのデータ項目を露出することを許可する能力を格納し、
認証の間露出するためのデータ項目の部分セットを選択し、
対応するフィールドに格納された前記選択されたデータ項目の部分セットを、前記証明書の他のフィールドにある選択されなかった他のデータ項目を露出することなく露出することを可能とする前記能力とともに前記デジタル証明書を提供することを特徴とする１つまたは複数のコンピュータ読み取り可能媒体。
【請求項５１】
前記データ項目は対応する鍵によって暗号化され、前記能力は選択された鍵を備えて、前記選択されたフィールドにあるデータ項目を解読することを可能にすることを特徴とする請求項５０に記載の方法。
【請求項５２】
前記データ項目は、ユーザ情報と関連する鍵とから導き出された鍵付ハッシュを備え、前記能力は選択された鍵と前記ユーザ情報とを備えて、前記選択されたフィールドに格納された前記鍵付ハッシュ値との比較のために鍵付ハッシュ値の算出を可能とすることを特徴とする請求項５０に記載の方法。
【請求項５３】
請求項５０に記載の１つまたは複数のコンピュータ読み取り可能媒体を備えたことを特徴とするコンピューティングシステム。
【請求項５４】
１つまたは複数のサーバコンピュータを備えた認証局システムであって、該サーバコンピュータは、
複数のデータ項目を含む要求を受信し、および複数のフィールドを有するデジタル証明書を生成して関連するデータ項目を不可視化された形態で格納し、個々のフィールドにあるデータ項目を、他のフィールドにあるデータ項目を露出することなく選択的に露出することを許可する手法で異なるフィールドにあるデータ項目を不可視化するように構成されたことを特徴とする認証局システム。
【請求項５５】
前記データ項目は、前記要求を提供する者に属する個人情報を備えたことを特徴とする請求項５４に記載の認証局システム。
【請求項５６】
各フィールドは１つのデータ項目を保持することを特徴とする請求項５４に記載の認証局システム。
【請求項５７】
前記１つまたは複数のサーバは、
前記デジタル証明書の対応するフィールドに対する鍵を生成して、前記異なるフィールドにあるデータ項目を前記対応する鍵を用いて暗号化するよう構成されたことを特徴とする請求項５４に記載の認証局システム。
【請求項５８】
前記１つまたは複数のサーバは、
前記デジタル証明書の対応するフィールドに対する鍵を生成して、鍵付ハッシュ値を前記データ項目と前記鍵とから算出するよう構成されたことを特徴とする請求項５４に記載の認証局システム。
【請求項５９】
前記１つまたは複数のサーバは、
電子的に、前記複数のフィールドにある不可視化されたデータ項目を含め前記デジタル証明書に署名するよう構成されたことを特徴とする請求項５４に記載の認証局システム。
【請求項６０】
１つまたは複数のサーバコンピュータを備えた認証局システムであって、該サーバコンピュータは、
複数のデータ項目を含む要求を受信し、および複数のフィールドを有するデジタル証明書を生成して関連するデータ項目を格納するよう構成され、前記１つまたは複数のサーバコンピュータは、１または複数の第三者署名者から、前記個々のフィールドにある署名を獲得するようさらに構成されたことを特徴とする認証局システム。
【請求項６１】
関連するデータ項目を不可視化された形態で保持する複数のフィールドを有するデジタル証明書を格納するためのメモリであって、異なるフィールドにある前記データ項目は、１つまたは複数の選択されたフィールドにある１つまたは複数のデータ項目を、１つまたは複数の他のフィールドにある１つまたは複数のデータ項目を露出することなく選択的に露出することを許可する手法で不可視化されるメモリと、
前記デジタル証明書の１つまたは複数のフィールドを選択して、認証プロトコルの間露出し、および前記選択された１つまたは複数のフィールドにある１つまたは複数のデータ項目を露出する能力とともに前記デジタル証明書を提供するプロセッサと
を備えたことを特徴とするコンピューティング装置。
【請求項６２】
各フィールドは１つのデータ項目を保持することを特徴とする請求項６１に記載のコンピューティング装置。
【請求項６３】
異なるフィールドに対する前記データ項目は、別々の鍵を用いて暗号化されることを特徴とする請求項６１に記載のコンピューティング装置。
【請求項６４】
異なるフィールドに対する前記データ項目が用いられて、ハッシュダイジェストを導き出し、および該ハッシュダイジェストは前記フィールドに格納されることを特徴とする請求項６１に記載のコンピューティング装置。
【請求項６５】
コンピュータ読み取り可能な媒体上に格納されたデジタル証明書であって、
複数のフィールドと、
関連するフィールドに格納された複数のデータ項目と
を備え、
前記データ項目は、１つまたは複数の第１のフィールドにある１つまたは複数の第１のデータ項目を、１つまたは複数の第２のフィールドにある１つまたは複数の第２のデータ項目を露出することなく選択的に露出することを許可する手法で前記フィールドに格納される前に不可視化されることを特徴とするデジタル証明書。
【請求項６６】
前記データ項目は前記フィールドに格納される前に暗号化され、異なるフィールドに対する前記データ項目は別々の鍵によって暗号化されることを特徴とする請求項６５に記載のデジタル証明書。
【請求項６７】
前記データ項目が用いられて、ハッシュダイジェストを導き出し、および該ハッシュダイジェストは前記フィールドに格納されることを特徴とする請求項６５に記載のデジタル証明書。
【請求項６８】
電子署名をさらに備えたことを特徴とする請求項６５に記載のデジタル証明書。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタル証明書、例えば認証の目的で暗号化基盤（ｃｒｙｐｔｏｇｒａｐｈｉｃ　ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）において用いられるデジタル証明書に関する。
【０００２】
【従来の技術】
デジタル証明書は、ほぼ四半世紀の間リモート取引（ｔｒａｎｓａｃｔｉｏｎ）を支援するのに有効であった。デジタル証明書によって、コンピュータユーザは実際に相手に面識がない場合でさえ、相互に相手を認証することが可能となる。こういった認証プロトコルは、各ユーザは信頼のある第三者認証局（例えば、金融機関、ベリサインコーポレーションのようなセキュリティ法人（ｓｅｃｕｒｉｔｙ　ｅｎｔｉｔｙ）など）により発行された証明書を信頼するものだという理解に根ざしている。
【０００３】
デジタル証明書を取得するため、コンピュータユーザは自身を識別する情報を認証局に提出する。認証局は、その持参人の正当性を証明するデジタル証明書を生成して、これにデジタル署名を行い、持参人を同封の情報によって識別することができる。次いでコンピュータユーザは、通常の認証プロトコルの間この証明書を他のサイトに提出することができる。
【０００４】
一般に、デジタル証明書は、要求者を識別するために用いられるいくつかの個人データのフィールドを含む。例えば、このフィールドには、証明書の所有者名、その所有者の公開／秘密鍵ペアのうち公開鍵、ならびに証明書の発行および満了日といった基本的な情報を含むことができる。他のフィールドが通常的でなくなるほど、より注意を要する情報が含まれる可能性が高くなるが、これらには、例えば電子メールアドレス、住所、電話番号、性別、運転免許証、雇用者名、持参人についての信用調査報告、持参人の収入および資産に関する情報、および購買履歴やクラブ加入に関する種々のデータが含まれる。
【０００５】
【発明が解決しようとする課題】
認証局が必須の個人データをデジタル証明書に含めることは技術的に容易なことであるが、持参人はすべての可能なデータが開示されることをいつでも望むわけではないので、過剰な個人データを含めると証明書の利用が制限されるかもしれない。現在、プライバシーと匿名性への関心の高さから、第三者認証を提供するより柔軟な仕組みが求められている。
【０００６】
取りうる１つの解決案は、必要なときに開示されるべきデータを正確に含むそのままの証明書を獲得することである。しかし、この手法によって２つの望ましくない結果が発生する：（１）ユーザが「必要な時」ごとに新たな証明書を獲得するといった不便があったり、またその結果コストがかかったりすることがあり、および（２）この手法によって、データのいずれの組み合わせがいつリリースされたかについての詳細な情報が認証局に開示される可能性がある。
【０００７】
したがって、よりプライバシーと匿名性を保証する方法で第三者認証を提供するより柔軟な手法が必要である。
【０００８】
【課題を解決するための手段】
認証手法には、選択的に開示可能なデジタル証明書が用いられ、これによって、ユーザは第三者認証局でさえ、いずれのデータが開示されたかを正確に判断することなく、いずれの認証されたデータが誰に対してリリースされたかについて強力な管理がなされる。本実施形態においては、選択的に開示可能なデジタル証明書は複数のデータフィールドで構築されて、ユーザに属する関連データ項目（例えば、名前、年齢、社会保険番号など）が保持される。しかし、データフィールドにあるデータ項目自身を格納する代わりに、その認証局はデータ項目を格納前に不可視化する（ｏｂｆｕｓｃａｔｅ）。このデータ項目の不可視化は、対応するフィールドにおけるデータ項目をその証明書の他のフィールドにおける選択されなかった他のデータ項目を露出（ｅｘｐｏｓｅ）させることなく選択的に露出するという手法でなされる。
【０００９】
一実施形態においては、暗号化手法によって不可視化が達成される。ランダム鍵が各データフィールドに対し生成されて、対応するデータフィールドに置かれるべきデータ項目を暗号化するために使用される。他の実施形態においては、不可視化は暗号化ハッシング手法を用いて達成される。鍵付ハッシュダイジェストは、データ項目とそのデータフィールドに関連するランダム鍵とから計算される。次に、鍵付ハッシュダイジェストは、そのデータフィールドに置かれる。証明書が生成された後、認証局は証明書を戻して、個々のフィールド（例えば、鍵）を露出する能力（ｃａｐａｂｉｌｉｔｙ）がユーザに戻される。
【００１０】
ユーザは、認証を含む取引に入ると、選択されたフィールドの選択されたデータ項目を露出する能力とともにデジタル証明書を提出する。例えば、ユーザは、選択されたフィールドに関連する鍵を提供して、選択されたフィールドにあるデータ項目が暗号化され、または鍵付ハッシュダイジェストを計算するために用いることができる。この取引者は、証明書の他のデータ項目が不可視化されたまま、選択されたデータ項目を取り戻す（ｒｅｃｏｖｅｒ）能力を使用する。
【００１１】
【発明の実施の形態】
以下の議論は、暗号化に読者が通じていることを前提とする。暗号の基礎的な入門としては、Ｂｒｕｃｅ　Ｓｃｈｎｅｉｅｒの著作による　”Ａｐｐｌｉｅｄ　Ｃｒｙｐｔｏｇｒａｐｈｙ：　Ｐｒｏｔｏｃｏｌｓ，　Ａｌｇｏｒｉｔｈｍｓ，　ａｎｄ　Ｓｏｕｃｅ　Ｃｏｄｅ　ｉｎ　Ｃ，”　Ｊｏｈｎ　Ｗｉｌｅｙ　＆　Ｓｏｎｓ，　ｃｏｐｙｒｉｇｈｔ　１９９４　（ｓｅｃｏｎｄ　ｅｄｉｔｉｏｎ　１９９６）、または　Ａｌｆｒｅｄ　Ｊ．　ｍｅｎｅｚｅｓ、　Ｐａｕｌ　Ｃ．　ｖａｎ　ＯｏｒｓｈｏｔおよびＳｃｏｔｔ　Ａ．　Ｖａｎｓｔｏｎｅの著作による　”Ｈａｎｄｂｏｏｋ　ｏｆ　Ａｐｐｌｉｅｄ　Ｃｒｙｐｔｏｇｒａｐｈｙ”　ＣＲＣ　ｐｒｅｓｓ，　ｃｏｐｙｒｉｇｈｔ　１９９７が詳しく、参照により本明細書に組み込まれる。
【００１２】
例示の認証環境
第三者認証は、２つのフェーズにおいて生じるように説明することができる。第１のフェーズにおいては、ユーザまたは要求者はデジタル証明書を第三者認証子（ａｕｔｈｅｎｔｉｃａｔｏｒ）から獲得するが、それは認証局とも呼ばれる。第２のフェーズにおいては、ユーザは、取引者が自身を認証する目的でデジタル証明書を提供する。
【００１３】
図１は、ユーザコンピューティング装置１０２が認証局１０４からのデジタル証明書を要求して、選択的に開示可能なデジタル証明書を生成して戻す際の、認証プロセスの第１のフェーズにおけるコンピュータネットワークシステム１００の概略を示す図である。ユーザコンピューティング装置１０２は認証局１０４とネットワーク１０６を介して通信を行うが、これは種々の方法で実装することができる。例えば、ネットワーク１０６は、ＬＡＮ（ローカルエリアネットワーク）および／またはＷＡＮ（広域ネットワーク）、例えばインターネットとして、有線技術（例えば、電話線、ケーブル、光ファイバなど）および／または無線技術（例えば、衛星、電波、マイクロ波など）を含む多種多様な技術を用いて実装することができる。
【００１４】
ユーザコンピューティング装置１０２は、汎用デスクトップコンピュータとして、多くの方法、例えば、（図示されるように）携帯型コンピュータ、ハンドヘルドコンピュータ、携帯電話、携帯情報端末、電子メールクライアント、セットトップボックス、電子ゲーム機器、コンシューマ電子機器、またはその他、デジタル証明書を要求して受信するデジタル通信が可能な種類の装置を含むような方法で実装することができる。認証局または認証子（ａｕｔｈｅｎｔｉｃａｔｏｒ）１０４は、複数のユーザコンピューティング装置から要求を受信してデジタル証明書を返すように構成された、１つまたは複数のコンピュータサーバ１０８（１）、１０８（２）、．．．、１０８（Ｓ）を有するように示される。ユーザコンピューティング装置１０２および／またはサーバ１０８を実現するために用いることができるコンピューティング装置の一例については、以下に図８を参照してより詳細に説明する。
【００１５】
図１において、ユーザコンピューティング装置１０２は、デジタル証明書の要求１１０を提供する。要求１１０は、証明書を要求しているユーザに属する個人情報を含む。いかなる情報も本質的にはこの要求の中に含めることができる。このような情報は、注意を要するおよび／または要しない場合があり、これはデジタル証明書の目的または意図される使用態様に広く影響を受け変化しうるものである。要求１１０で提供される可能性のある個人データ項目の例としては、要求者の名前、電子メールアドレス、住所、電話番号、性別、運転免許、社会保障番号、雇用者名、信用調査報告、要求者の収入と資産、購買履歴、入会情報、党派（ａｆｆｉｌｉａｔｉｏｎ）などといった情報がある。
【００１６】
認証局１０４は要求１１０を受信して、ユーザコンピューティング装置１０２へ返す値として選択的に開示可能なデジタル証明書１２０を生成する。選択的に開示可能なデジタル証明書１２０は、ユーザによって提供された個人情報を含みおよび証明するが、認証局にさえいずれのデータが開示されるかを正確に判断させることなく、いずれの認証されたデータが誰に対してリリースされるかをユーザが管理できるような方法でその証明書をフォーマットする。
【００１７】
選択的に開示可能なデジタル証明書１２０は、複数のフィールド１２２（１）、１２２（２）、１２２（３）、．．．、１２２（Ｎ）を有して個人情報の関連する項目を保持する。認証局１０４は、すべてのフィールド１２２（１）〜１２２（Ｎ）に要求１１０でユーザから受け取った関連するデータ項目を実装する（ｐｏｐｕｌａｔｅ）。しかし、これらのフィールド１２２（１）〜１２２（Ｎ）に認証されるべき実際のデータを実装する代わりに、各フィールドにはその不可視化したデータが実装される。すなわち、各データフィールドは、読み取り不能の各フィールドに含まれる個人データ項目をレンダーするための独立した手法を用いて別々に不可視化され、その個人データ項目は、ユーザが再びそのフィールドを開くための対応する開錠能力を提供するまでレンダーされる。フィールド内のこのデータは、多様な、例えば暗号化手法および／またはデジタルハッシング手法を用いることを含む方法で不可視化することができる。図３および４に関連して２つの例を以下に説明する。
【００１８】
認証局１０４は、デジタル署名１２４によって電子的に（ｄｉｇｉｔａｌｌｙ）、不可視化されたデータフィールド１２２（１）〜１２２（Ｎ）を含め、証明書に署名し、これによって証明書の内容の正当性を証明することとなる。認証局は、署名された証明書１２０、および各フィールド１２２（１）、１２２（２）、１２２（３）、．．．、１２２（Ｎ）にそれぞれ対応する開錠能力１３２（１）、１３２（２）、１３２（３）、．．．、１３２（Ｎ）を含む開錠能力パケット１３０を返す。開錠能力は、例えば、暗号化または鍵付ハッシュ値の計算のために用いられる鍵とすることができる。ユーザコンピューティング装置１０２は、次の第三者処理で用いるためのメモリに、選択的に開示されたデジタル証明書１２０および開錠能力パケット１３０を格納する。
【００１９】
代替の実施形態においては、ユーザコンピューティング装置は、対応するフィールドを不可視化する際に使用するため、開錠能力を認証局１０４に提供することができる。例えば、ユーザコンピューティング装置は、証明書のフィールドに置かれるべきデータを暗号化またはハッシュするために用いられる乱数を提供することができる。この場合、認証局１０４は、ユーザコンピューティング装置１０２がおそらく能力を有していると考えられるので、開錠能力パケット１３０を返さない。
【００２０】
他の実施形態においては、ユーザコンピューティング装置１０２は、認証局において一度、提供された値から同意された方法で、例えば共有鍵によって導き出された値で置き換えられる値を提供する。ここで、認証局１０４は、ユーザ提供値から導き出された置き換え値を含む開錠能力パケット１３０を戻すことは、これらの値をユーザコンピューティング装置によって独立して導き出すことができるので、必要ないであろう。
【００２１】
図２は、第２の取引フェーズにあるコンピュータネットワークシステム１００を示す図であるが、ここでユーザコンピューティング装置１０２は、認証プロトコルの一環として選択的に開示可能な証明書１２０を取引者２０２にネットワーク１０６を介して提供する。取引者２０２は、本質的にユーザが証明書を送信し提供しようと関心を抱きうるいかなる種類の者（ｐａｒｔｙ）をも代表する。取引者は、金融機関、ゲームウェブサイト、小売店（ｍｅｒｃｈａｎｔ）、報道機関、政府機関、暗号化された電子メールを受け取る可能性のある者などとすることができる。取引者２０２は、種々のユーザコンピューティング装置１０２から証明書１２０を受信して、その証明書を用いてユーザおよび／またはその装置の認証を行うように構成された、１つまたは複数のコンピュータ２０４（１）、．．．、２０４（Ｍ）を有するように示される。図８に関連して説明されるコンピューティング装置を用いて、例えばサーバコンピュータ２０４を実装することができる。
【００２２】
ユーザが証明書１２０を提出する際、ユーザはまた、その個人データのいずれをこの取引の目的で明かすべきかをも選択する。例えば、ユーザは、取引者２０２が見る必要があるのは名前、公開鍵および満了日だけであると決定することができる。したがって、ユーザコンピューティング装置１０２は、公開可能なデータ項目を保持する証明書にあるデータフィールドを識別する。次に、ユーザコンピューティング装置１０２は、その公開可能なデータ項目を含むと識別されたデータフィールドに対して選択された開錠能力パケット２１０とともに証明書１２０全体を提供する。図２に示すように、パケット２１０は、データフィールド１および３に対する開錠能力１３２（１）および１３２（３）を含む。まず、取引者２０２は、署名１２４を認証局に属すると検証（ｖｅｒｉｆｙ）する。ついで、取引者２０２は、選択された開錠能力２１０を用いて証明書１２０の選択されたデータフィールドを開き（ｏｐｅｎ）、開かれたフィールドからデータ項目を引き出し、およびそのデータ項目を用いて要求された取引に関しユーザを認証する。
【００２３】
一般的な設定では、ユーザは認証局から１度に複数の証明書を獲得することができる。単一の証明書を複数回使用することは、場合によっては複数の取引者にそれらのデータを組み合わせて連想させることを許すことになり、プライバシーのリスクとなることがある。１度に複数の証明書を要求することによって、ユーザは次に使用するときはいつも、以前発行されたセットから取り出したばかりの証明書を用い、所望の取引において開示されべきフィールドを選択し、正確にそれらのフィールドを取引者に開示し、およびその証明書を廃棄することができる。
【００２４】
ユーザコンピューティング装置と取引者との間の通信は、セキュアチャンネルを介することもでき、あるいはオープンチャネルとすることもできる。セキュアチャネルによって、追加の暗号化手法の暗号が用いられて、通信される内容が保護される。
【００２５】
選択的に開示可能な証明書
図３は、選択的に開示可能なデジタル証明書１２０および対応する開錠能力パケット１３０を示す図である。証明書は、認証局によって認証されるものを記述する証明書情報を保持するための内容部３０２を有する。複数の不可視化フィールド３０４（１）、３０４（２）、．．．、３０４（Ｎ）もまた、証明書の中に含まれる。各フィールドは、ユーザに関する関連データ項目を含む。例えば、ユーザ名についてはデータフィールド３０４（１）、ユーザの公開／秘密鍵ペアからの公開鍵についてはデータフィールド３０４（２）、ユーザの年齢についてはデータフィールド３０４（３）、ユーザの収入についてはデータフィールド３０４（４）、ユーザの性別についてはデータフィールド３０４（５）、ユーザの社会保障番号についてはデータフィールド３０４（６）、ユーザの運転免許証についてはデータフィールド３０４（７）、ユーザの電子メールアドレスについてはデータフィールド３０４（８）、ユーザの電話番号についてはデータフィールド３０４（９）がそれぞれ存在する。その他、フィールドには、雇用者名、信用調査報告、収入および資産情報、購買履歴、ならびに入会情報、１回限り使用または１日限りの鍵その他を含むことができる。
【００２６】
本実施形態においては、認証局は各フィールドにデータ項目を置く前にそのデータ項目を暗号化する。認証局は、対応するフィールド３０４（１）〜３０４（Ｎ）の各データ項目のそれぞれについて異なる暗号鍵Ｋ１〜ＫＮを用いる。すなわち、フィールド３０４（１）の名前データは、第１の鍵Ｋ１をもって暗号化され、フィールド３０４（２）の公開鍵データは、第２の鍵Ｋ２をもって暗号化されるなどである。標準の暗号化アルゴリズム（例えば、ＲＳＡ、ＤＥＳなど）が用いられ、そのフィールドの内容を暗号化することができる。各鍵は、証明書が生成される際乱数として生成することができるので、鍵はランダムであり一意である。結果として、すべての個々のフィールドの内容は、異なる鍵をもって不可視化され、対応する鍵の所有を付与される者によってのみ取り戻されうることとなる。
【００２７】
認証局は、選択的に開示可能な証明書１２０を暗号化されたフィールドも含め電子的に署名して、署名１２４を添付する。すなわち、署名は次のような署名関数「ＳＣＡ」を用いて計算される：
Ｓｉｇｎａｔｕｒｅ＝ＳＣＡ（ｆｉｅｌｄ１，ｆｉｅｌｄ２，．．．ｆｉｅｌｄＮ）
ここで、ｆｉｅｌｄ１＝ＥＫ１（Ｎａｍｅ）、
ｆｉｅｌｄ２＝ＥＫ２（ＰｕｂＫｅｙ）、
．．．．
ｆｉｅｌｄＮ＝ＥＫＮ（データ項目Ｎ）
【００２８】
証明書は、署名を行う前に次に示すような連結フィールドのハッシュダイジェストをまず算出することによってより小さくすることができる：
Ｓｉｇｎａｔｕｒｅ＝ＳＣＡ（Ｈａｓｈ（ｆｉｅｌｄ１，ｆｉｅｌｄ２，．．．　　　　　　　　　　　　　　　　　　　　　　　　　　　　ｆｉｅｌｄＮ））
【００２９】
開錠能力パケット１３０は、ランダムに生成された鍵Ｋ１〜ＫＮを含む。認証局は、証明書１２０および対応する開錠能力パケット１３０の双方をユーザコンピューティング装置に返す。次に、そのユーザは、認証の目的で証明書を提出することを要求すると、ユーザコンピューティング装置１０２は、いずれのフィールドが開かれるべきかを管理するため、選択的に開示可能な証明書１２０および鍵Ｋ１〜ＫＮのうちの選択されたいくつかを提供する。取引者２０２は、証明書の署名１２４を評価して、有効であれば提供された鍵を用いて選択されたデータフィールドを開く。取り戻されたデータは、認証工程で用いられる。この方法で、ユーザは、認証局にさえいずれのデータが開示されたかを正確に判断させることなく、いずれの認証されたデータが誰にリリースされたかを強力に管理することができる。
【００３０】
図４は、選択的に開示可能なデジタル証明１２０ａおよび対応する開錠能力パケット１３０ａの別の実施形態を示す図である。証明書は、認証局が付随するフィールドにあるデータの正当性を証明するということを記述している内容を持つ内容部４０２を有する。複数の不可視化フィールド３０４（１）、３０４（２）、．．．、３０４（Ｎ）が証明書に含まれる。各フィールドは、ユーザに関連するがデータ項目を隠すためにフォーマット化された関連データ項目を含む。
【００３１】
本実施形態においては、鍵付ハッシュ技法が用いられてフィールドに含まれるデータを不可視化する。認証局は、独立に選ばれた乱数とともにデータ項目の暗号化ハッシュ値を各フィールドに実装（ｐｏｐｕｌａｔｅ）する。より具体的には、認証局は、ランダム鍵を持つフィールドに対するデータ項目を連結して、連結された結果のハッシュ関数を計算する。これによって、そのデータおよびその乱数の関数として導き出されたハッシュダイジェストが生成される。例えば、フィールド４０４（１）は、ランダムに生成された鍵Ｋ１およびユーザ名のハッシュ関数Ｈを計算することから導き出されるハッシュダイジェストＨ（Ｋ１，Ｎａｍｅ）を含む。フィールド４０４（２）は、ランダムに生成された鍵Ｋ２およびユーザの公開鍵のハッシュ関数Ｈを計算することから導き出されるハッシュダイジェストＨ（Ｋ２，ＰｕｂＫｅｙ）を含む、などである。各鍵は、証明書が生成される際にランダムに生成される。鍵は、独立した乱数発生工程および／または擬似乱数発生工程を用いて、ランダムに生成することができる。
【００３２】
結果として、すべてのフィールドの内容は別の鍵によってそれぞれ不可視化される。認証局は、選択的に開示可能な証明書１２０に、不可視化されたフィールド４０４を含め電子的に署名して、署名１２４を添付する。署名は次のような署名関数「ＳＣＡ」を用いて計算される：
Ｓｉｇｎａｔｕｒｅ＝ＳＣＡ（ｆｉｅｌｄ１，ｆｉｅｌｄ２，．．．ｆｉｅｌｄＮ）
ここで、ｆｉｅｌｄ１＝Ｈ（Ｋ１，Ｎａｍｅ）、
ｆｉｅｌｄ２＝Ｈ（Ｋ２，ＰｕｂＫｅｙ）、
．．．．
ｆｉｅｌｄＮ＝Ｈ（ＫＮ，データ項目Ｎ）
【００３３】
開錠能力パケット１３０ａは、ランダムに生成された鍵Ｋ１〜ＫＮを含む。認証局は、証明書１２０ａおよび対応する開錠能力パケット１３０ａの双方をユーザコンピューティング装置に返す。そのユーザが認証の目的で証明書を提出することを要求すると、ユーザコンピューティング装置１０２は、選択的に開示可能な証明書１２０ａ、鍵Ｋ１〜ＫＮのうちの選択されたいくつか、およびそれらのフィールドにあるデータ項目を提供する。
【００３４】
取引者２０２は、証明書の署名１２４を評価して、有効であれば提供された鍵とデータ項目とのハッシュ関数としてハッシュダイジェストを算出する。算出されたハッシュダイジェストが、証明書の対応する不可視化されたフィールドのハッシュダイジェストと合致する場合、取引者２０２は、提供されたデータが本物であると確信する。次に、取り戻されたデータが認証工程で用いられる。したがって、もう一度ユーザは、いずれの認証されたデータが誰にリリースされるかについて強力な管理が可能となる。
【００３５】
図４において鍵付ハッシュを実装することによって、フィールド４０４のハッシュダイジェストを暗号化されたデータフィールド３０４より小さくすることができるので、証明書１２０ａは図３の証明書１２０に比べ、より小さくすることができる。しかし、鍵付ハッシュを実装することによって、ユーザは検証の目的で実際のデータを取引者に提出することとなる。このデータを保護するためには、この種の選択的に開示可能な証明書は、ユーザコンピューティング装置と取引者との安全な通信のコンテキストの範囲内において用いられることが望ましい。
【００３６】
認証プロトコル
図５および図６は、認証プロトコルの２つのフェーズを示す図である。図５は、第１のフェーズ工程５００を示しており、ここでユーザは認証局からのデジタル証明書を要求して獲得する。図６は、第２のフェーズ工程６００を示しており、ここでユーザは認証のためデジタル証明書を取引者に提出する。工程５００および６００は、図１および２の構成を参照して説明する。
【００３７】
工程５００および６００は、種々のコンピューティング装置にブロックにおいて示される動作（ｏｐｅｒａｔｉｏｎ）を実行させるコンピュータ実行可能命令としてソフトウェアに実装される。この動作は、上記に加えあるいは代替して、ハードウェア、ファームウェア、またはハードウェア、ファームウェアおよびソフトウェアの組み合わせで実行することができる。さらに、議論の目的で、いずれのエンティティがその動作を実行することができるかを示すため、この動作は表題の下に並べられる。
【００３８】
図５を参照して、ユーザコンピューティング装置１０２は、１つまたは複数のデジタル証明書の要求１１０を提供する（ブロック５０２）。要求１１０は、一意にユーザを識別するために使用することができる個人データを含む。こういったデータには、名前、公開鍵、年齢、電子メールアドレス、住所、電話番号、性別、運転免許証、社会保障番号、雇用者名、信用調査報告書、要求者の収入および資産、購買履歴、入会情報、党派、などが含まれる。ブロック５０４において、ユーザコンピューティング装置は、証明書のフィールドに置かれたデータを不可視化するために用いられる乱数を随意に提供することができる。
【００３９】
ブロック５０６において、認証局は、個人データを持つ要求１１０を受信する。認証局は、各々複数のフィールドを持つ１つまたは複数の証明書を生成して、個人データの対応する項目を保持する（ブロック５０８）。フィールドの数は、ユーザによって個々にあるいは独立して選択可能なデータ項目の数に対応する。あるいはまた、複数のデータ項目を個々のフィールドに格納することができる。
【００４０】
ブロック５１０において、認証局は、個々のフィールドに対して予定されるデータを不可視化して、そのフィールドに不可視化されたデータを実装する。データフィールドを不可視化するためには多くの方法を取ることができる。例えば、認証局は、ランダムに生成された鍵の値を用いてデータを暗号化し、フィールド内に暗号化されたデータをおくことができる。この手法の結果、図３に示したような証明書１２０になる。別の手法では、乱数を用いて暗号化ハッシュを計算し、証明書フィールド内にハッシュダイジェストを置くというものがある。この手法の結果、図４に示すような証明書１２０ａとなる。この鍵の値は、認証局において生成され、ユーザコンピューティング装置から受信し、またはユーザ提出の値から導くことができる。
【００４１】
ブロック５１２において、認証局は、不可視化されたフィールドを持つ証明書に電子的に署名する。次に、認証局は、署名された証明書および（もしあれば）開錠能力パケットをユーザコンピューティング装置に返す（ブロック５１４）。
【００４２】
図６を参照すると、ユーザコンピューティング装置１０２は、選択的に開示可能な証明書を取引者２０２に提供する（ブロック６０２）。ユーザコンピューティング装置１０２は、また、ユーザがその取引者に明らかにすることを所望する証明書のフィールドに関連する選択された開錠能力をも提供する。例えば、ユーザコンピューティング装置は、選択された鍵を提供して内容の暗号化を支援し、またはそのデータ項目とともに選択された鍵を提供して証明書中のハッシュダイジェストを検証することができる。
【００４３】
ブロック６０４においては、取引者２０２は、最初に、認証局に属する証明書上の署名を検証する。署名が有効な場合、取引者２０２は、選択された開錠能力を用いて、証明書の選択されたデータフィールドを開く（ブロック６０６）。取引者２０２は、認証手順の中で選択され、開かれたフィールドからのデータ項目を評価する（ブロック６０８）。この評価結果に基づいて、取引者２０２は、取引を続けるか、または取りやめる（ブロック６１０）。
【００４４】
第三者認証プロトコル
図７は、選択的に開示可能なデジタル証明書を生成し、発行する他の実施形態を示す図である。本実施形態においては、１または複数の第三者署名者がデジタル証明書の個々のフィールドに署名する。より具体的には、ユーザコンピューティング装置１０２は、要求（図示せず）を認証局１０４に提供する。これに応答して、認証局１０４は、複数のフィールド７０４（１）、７０４（２）、７０４（３）、．．．、７０４（Ｎ）を有する選択的に開示可能なデジタル証明書７０２を生成して、ユーザによって提出された個人情報の関連する項目を保持する。認証局１０４は、すべてのフィールドにユーザの要求の際に受信した関連データ項目を実装する。
【００４５】
認証局１０４は、証明書を署名者７０６で示されるような１または複数の第三者署名者に提供する。代理の署名者には、政府機関、信頼のある金融機関、信頼のある署名法人（ｓｉｇｎｉｎｇ　ｅｎｔｉｔｙ）などが含まれる。第三者署名者７０６は、証明書を受信して１つまたは複数のフィールド７０４（１）〜７０４（Ｎ）にあるデータを検証する１つまたは複数のサーバコンピュータ７０８（１）、．．．、７０８（Ｋ）を有する。次に、第三者署名者７０６は、正しいとして検証されるフィールドに電子的に署名する。すべてのフィールドまたはフィールドの部分セット（ｓｕｂｓｅｔ）は、独立しておよび個々に第三者署名者７０６によって署名され、関連するフィールド７０４（１）、７０４（２）、７０４（３）、．．．、７０４（Ｎ）に対してそれぞれ第三者署名７１０（１）、７１０（２）、７１０（３）、．．．、７１０（Ｎ）のように図示される。第三者署名者７０６は、証明書７０２を認証局に返す。証明書が複数の第三者署名者を無事に通過すれば、証明書は複数の異なる署名者による署名を持つフィールドを有することになるであろう。
【００４６】
この手法によると、すべての個々のフィールドの内容が検証されて、１または複数の第三者署名者によって署名される。認証局は、選択的に開示可能な証明書７０２に個々に署名されたフィールド７０４を含め随意に署名して、署名７１２を添付することができる。署名は次のような署名関数「ＳＣＡ」を用いて計算される：
Ｓｉｇｎａｔｕｒｅ＝ＳＣＡ（ｆｉｅｌｄ１，ｆｉｅｌｄ２，．．．ｆｉｅｌｄＮ）
ここで、ｆｉｅｌｄ１＝ＳＴＰ（ｄａｔａ１）、
ｆｉｅｌｄ２＝ＳＴＰ（ｄａｔａ２）、
．．．．
ｆｉｅｌｄＮ＝ＳＴＰ（ｄａｔａＮ）
ＳＴＰは、１または複数の第三者署名者によって用いられた署名関数である。
【００４７】
署名された証明書７０２は、ユーザコンピューティング装置１０２に返される。
【００４８】
これに代わる形態では、ユーザコンピューティング装置１０２は、１または複数の第三者署名者７０６に直接応答して、認証局１０４に提供する署名済みのデータフィールドを獲得することができる。
【００４９】
例示のコンピュータ
図８は、適切なコンピューティング環境８００の一例であり、ユーザコンピューティング装置１０２、認証局サーバコンピュータ１０８、取引者用コンピュータ２０４および／または第三者署名者用コンピュータ７０８を実装するために使用することができる。特定の構成が示されているが、多様なコンピューティング装置を他のコンピュータ構成で実装することができる。
【００５０】
コンピュータ環境８００は、コンピュータ８０２の形態の汎用コンピューティング装置を含む。コンピュータ８０２の構成要素は、１つまたは複数のプロセッサまたは処理装置８０４と、システムメモリ８０６と、プロセッサ８０４を含む様々なシステム構成要素をシステムメモリ８０６に結合するシステムバス８０８とを含むことができるが、これに限定されない。システムバス８０８は、メモリバスまたはメモリコントローラと、周辺バスと、アクセラレーテッドグラフィックスポートと、様々なバスアーキテクチャのうちのいずれかを用いるプロセッサバスまたはローカルバスとを含むいくつかのタイプのバス構造のうちのいずれか１つまたは複数を表す。例えば、そのようなアーキテクチャは、ＩＳＡ（Ｉｎｄｕｓｔｒｙ　Ｓｔａｎｄａｒｄ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ　Ｃｈａｎｎｅｌ　Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ　ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ　ＥｌｅｃｔｒｏｎｉｃｓＳｔａｎｄａｒｄｓ　Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも呼ばれるＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ　Ｃｏｍｐｏｎｅｎｔ　Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスを含むことができる。
【００５１】
コンピュータ８０２は、一般に様々なコンピュータ読み取り可能媒体を含む。そのような媒体は、コンピュータ８０２がアクセス可能である利用可能ないかなる媒体でもよく、揮発性媒体と不揮発性媒体の両方、取外し可能媒体と固定媒体の両方を含む。システムメモリ８０６は、ランダムアクセスメモリ（ＲＡＭ）８１０などの揮発性メモリ、および／または読取り専用メモリ（ＲＯＭ）８１２などの不揮発性メモリの形態のコンピュータ読み取り可能媒体を含む。起動時などにコンピュータ８０２内の要素間で情報の転送を支援する基本ルーチンを含む基本入出力システム（ＢＩＯＳ）８１４が、ＲＯＭ　８１２内に格納される。ＲＡＭ８１０は通常、処理装置８０４が直ちにアクセス可能であり、および／または処理装置８０４が現在操作しているデータおよび／またはプログラムモジュールを含む。
【００５２】
コンピュータ８０２はまた、他の取外し可能／固定の、揮発性／不揮発性コンピュータ記憶媒体も含むことができる。例えば、図７に、固定、不揮発性磁気媒体（図示せず）を読み書きするハードディスクドライブ８１６と、取外し可能、不揮発性磁気ディスク８２０（例えば「フロッピー（登録商標）ディスク」）を読み書きする磁気ディスクドライブ８１８と、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などの取外し可能、不揮発性光ディスク８２４を読み書きする光ディスクドライブ８２２とを示す。ハードディスクドライブ８１６、磁気ディスクドライブ８１８、および光ディスクドライブ８２２はそれぞれ、１つまたは複数のデータ媒体インターフェース８２６によってシステムバス８０８に接続される。あるいは、１つまたは複数のインターフェース（図示せず）によってシステムバス８０８にハードディスクドライブ８１６、磁気ディスクドライブ８１８、および光ディスクドライブ８２２を接続することもできる。
【００５３】
ディスクドライブとその関連するコンピュータ記憶媒体は、コンピュータ８０２に対してコンピュータ読み取り可能命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶を提供する。例えば、限定はしないが、コンピュータ読み取り可能媒体は、「コンピュータ記憶媒体」（例えば、上述した揮発性および不揮発性、取り外し可能および固定媒体）および「通信媒体」を含み、それは一般に、コンピュータ読み取り可能命令、データ構造、プログラムモジュール、または他のデータを、搬送波または他の移送機構などの被変調データ信号で具体化するものである。通信媒体はまた、いかなる情報送達媒体も含む。磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）、または他の光記憶装置、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）など、他のタイプのコンピュータ読み取り可能媒体も利用できることを理解されたい。
【００５４】
任意の数のプログラムモジュールを種々のメモリに格納することができるが、これには、例えば、オペレーティングシステム８２７、１つまたは複数のアプリケーションプログラム８２８、その他のプログラムモジュール８３０およびプログラムデータ８３２が含まれる。例示の目的で、アプリケーションプログラム、ならびにオペレーティングシステムなどの他の実行可能プログラムコンポーネントを別個のブロックとして図示するが、このようなプログラムおよびコンポーネントは、様々な時にコンピューティング装置８０２の様々な記憶構成要素内に常駐し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【００５５】
ユーザは、キーボード８３４やポインティングデバイス８３６（例えば「マウス」）などの入力装置を介してコンピュータ８０２にコマンドや情報を入力することができる。他の入力装置８３８（具体的には図示せず）は、マイクロフォンジョイスティック、ゲームパッド、サテライトディッシュ、シリアルポート、スキャナおよび／またはその他を含むことができる。これらの入力装置や他の入力装置は、システムバス８０８に結合される入出力インターフェース８４０を介して処理装置８０４に接続されるが、パラレルポート、ゲームポート、またはユニバーサルシリアルバス（ＵＳＢ）などの他のインターフェースおよびバス構造によって接続することもできる。
【００５６】
モニタ８４２または他のタイプディスプレイ装置もまた、ビデオアダプタ８４４などのインターフェースを介してシステムバス８０８に接続することができる。モニタ８４２に加えて、他の出力周辺装置は、入出力インターフェース８４０を介してコンピュータ８０２に接続することができるスピーカ（図示せず）およびプリンタ８４６などの構成要素を含むことができる。
【００５７】
コンピュータ８０２は、リモートコンピューティング装置８４８などの１つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作することができる。例えば、リモートコンピューティング装置８４８は、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピア装置または他の共通ネットワークノード、ゲームコンソールなどでよい。リモートコンピューティング装置８４８を、コンピュータ８０２に関して本明細書で説明した要素および機能のうちの多くまたはすべてを含むことができるポータブルコンピュータとして示す。
【００５８】
コンピュータ８０２とリモートコンピュータ８４８の間の論理接続を、ローカルエリアネットワーク（ＬＡＮ）８５０と、一般的広域ネットワーク（ＷＡＮ）８５２として示す。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。
【００５９】
ＬＡＮネットワーキング環境で実装するとき、コンピュータ８０２は、ネットワークインターフェースまたはアダプタ８５４を介してローカルネットワーク８５０に接続される。ＷＡＮネットワーキング環境で実装するとき、コンピュータ８０２は通常、モデム８５６、または広域ネットワーク８５２を介して通信を確立する他の手段を含む。モデム８５６はコンピュータ８０２の内部でも外部でもよく、入出力インターフェース８４０または他の適切な機構を介してシステムバス８０８に接続することができる。図示するネットワーク接続は例であり、コンピュータ８０２と８４８の間の通信リンクを確立する他の手段も利用できることを理解されたい。
【００６０】
コンピューティング環境８００と共に図示するようなネットワーク環境では、コンピュータ８０２に関して示したプログラムモジュールまたはその一部をリモートメモリ記憶装置に格納することができる。例えば、リモートアプリケーションプログラム８５８はリモートコンピュータ８４８のメモリ装置上に常駐する。本明細書の図では、アプリケーションプログラム、ならびにオペレーティングシステムなどの他の実行可能プログラムコンポーネントを別個のブロックとして図示するが、このようなプログラムおよびコンポーネントは、様々な時にコンピューティング装置８０２の様々な記憶構成要素内に常駐し、コンピュータのデータプロセッサによって実行されることを理解されたい。
【００６１】
結論
本発明は構造的特徴および／または動作に特有の術語を用いて説明されてきたが、特許請求の範囲で定義される本発明は必ずしも説明した特定の機能または動作に限定されないことを理解されたい。むしろ、特定の特徴および動作は、本発明を実装する例示の形態として開示される。
【図面の簡単な説明】
【図１】ユーザがデジタル証明書を要求して、認証局が選択的に開示可能なデジタル証明書を発行する認証工程の発行フェーズにおけるコンピュータネットワークを示すブロック図である。
【図２】ユーザが選択的に開示可能なデジタル証明書を提出し、取引者がそのユーザを認証するためのデジタル証明書にある選択された項目にアクセスしてこれを使用する認証工程の取引フェーズにおけるコンピュータネットワークを示すブロック図である。
【図３】データ項目が暗号化されて証明書の対応する項目に格納される場合の選択的に開示可能なデジタル証明書の一実施形態を示す図である。
【図４】鍵付ハッシュ値がデータ項目とランダム鍵から算出されて証明書の対応する項目に格納される場合の選択的に開示可能なデジタル証明書の他の実施形態を示す図である。
【図５】選択的に開示可能なデジタル証明書を発行する工程を示すフロー図である。
【図６】選択的に開示可能なデジタル証明書を使用する工程を示すフロー図である。
【図７】図１と同様であるが、認証局によって発行されたデジタル証明書のデータフィールドを独立して検証する追加の者を含む発行フェーズにおけるコンピュータネットワークを示すブロック図である。
【図８】図１、２および７に示すコンピュータネットワークにおいて用いられる種々のコンピュータを実装するために使用することができる汎用コンピュータを示す図である。
【符号の説明】
１００　コンピュータネットワークシステム
１０２　ユーザコンピューティング装置
１０４　認証局
１０６　ネットワーク
１０８　サーバコンピュータ
１１０　要求
１２０、１２０ａ、７０２　選択的に開示可能なデジタル証明書
１２２、３０４、４０４　フィールド
１２４、７１２　認証局署名
１３０、１３０ａ　開錠能力パケット
１３２　開錠能力フィールド
２０２　取引者
２０４、７０８　コンピュータ
２１０　選択された開錠能力パケット
３０２、４０２　証明書の内容
５００　第１のフェーズ工程
６００　第２のフェーズ工程
７０４　データフィールド
７０６　第三者署名者
７１０　第三者署名
８００　一般的コンピュータ環境
８０２　コンピュータ
８０４　処理装置
８０６　システムメモリ
８０８　システムバス
８１０　ランダムアクセスメモリ
８１２　読取り専用メモリ
８１４　基本入出力システム
８１６　ハードディスクドライブ
８１８　磁気ディスクドライブ
８２０　取外し可能磁気ディスク
８２２　光ディスクドライブ
８２４　取外し可能光ディスク
８２６　データ媒体インターフェース
８２８　アプリケーションプログラム
８３０　他のプログラムモジュール
８３２　プログラムデータ
８３４　キーボード
８３６　ポインティングデバイス
８３８　他の入力装置
８４０　入出力インターフェース
８４２　モニタ
８４４　ビデオアダプタ
８４６　プリンタ
８４８　リモートコンピューティング装置
８５０　ローカルエリアネットワーク
８５２　広域ネットワーク
８５４　ネットワークインターフェースまたはアダプタ
８５６　モデム
【図１】
2004023796.tif 000003
【図２】
2004023796.tif 000004
【図３】
2004023796.tif 000005
【図４】
2004023796.tif 000006
【図５】
2004023796.tif 000007
【図６】
2004023796.tif 000008
【図７】
2004023796.tif 000009
【図８】
2004023796.tif 000010