説明

証明書を効率的に無効にする方法及び装置

【課題】特に、証明書をその有効期限前に無効にする必要があることがある場合の、公開鍵インフラストラクチャにおけるデジタル証明書の無効化を開示する。例えば、ある従業員を解雇した場合や職務を変更した場合、現在の証明書はもはや有効であってはならない。従って、この問題に対処するための新規の方法、構成要素及びシステムを提供する。
【解決手段】本明細書に記載の解決法は、グラウンデッド・デンス・ハッシュ木の構成に基づくものである。さらに、グラウンデッド・デンス・ハッシュ木の方法は、NOVOMODOの基本的なチェーンに基づくバージョンに比べて、時間と通信のトレードオフをもたらし、このトレードオフにより、実際の場面で、計算時間の直接的改善がもたらされる。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2003年9月19日に出願された“METHOD AND APPARATUS FOR EFFICIENT CERTIFICATE REVOCATION”という名称の、本出願に対応する仮特許出願第60/504,253号に対する優先権を主張し、参照することにより本明細書に含む。
【0002】
本発明は、暗号分野に関する。特に、本発明は、証明書の無効化に関する。
【背景技術】
【0003】
世の中がますますオンライン化する傾向は続くにつれて、公開鍵暗号法が一般的によく使用されるようになっていくであろう。かかる使用の基礎として、公開鍵と権限とを関係付けるポリシー、処理、人員、及び施設を構成する公開鍵インフラストラクチャを確立しなければならない。この公開鍵インフラストラクチャは認証局(CA)によって管理される。認証局は、公開鍵を識別子や権限に関係付けるデジタル証明書を発行するだけでなく、このようなデジタル証明書の管理もしている。証明書を発行する際、認証局は、ユーザの身分証明が正確であるかを必ず確かめなければならない。しかし、証明書を無効にする必要がある場合、処理はもっと複雑になることがある。
【0004】
証明書の有効性が有効期限によって制限されることがあるが、証明書をその有効期限より前に無効にしなければならない場合がある。例えば、鍵の所有者がその所属や職業を変えることもあれば、さらに悪いことには、その秘密鍵の信用が損なわれていることもある。従って、証明書を無効にする何らかの方法が必要である。
【0005】
証明書を無効にする一般的な方法の1つは、証明書失効リスト(CRL:Certificate Revocation List)を用いるものである。証明書失効リストは、認証局によって発行され、電子的に署名され、タイムスタンプされたリストであり、シリアル番号、名前、メールアドレス等の何らかの識別子により、どの証明書が無効になったかを示している。たとえ変更がなくても、このようなCRLを定期的に配信して、いかなるタイプのリプレイ攻撃も防御しなければならない。この方法は簡単なように見えるかもしれないが、CRLを管理することは、通信や調査や検証にかかる費用に関して非現実的なことがある。
【0006】
他の方法には、証明書失効木(CRT:Certificate Revocation Tree)を使用するものがある。CRTは、Merkle木であり、各葉(leaf)が、無効になった証明書のグループに関連付けられている。従って、葉の要素を用いて論理プルーフを形成することができ、プルーフは、Merkle木のプロパティにより検証することができる。
【0007】
認証局は、無効になった証明書の完全なリストを通知するかわりに、オンライン方法を用いて、特定の証明書についてのクエリーに応答するようにしてもよい。この方法は、オンライン証明書状態プロトコル(OCSP:Online Certificate Status Protocol)で使用されている。しかし、この方法には限界がある。第一に、有効プルーフ(validity proof)は、かなり長くなるものもあるデジタル署名からなる。例えば、RSA署名では、1024ビットの鍵により、署名は、1024ビットの長さになる。さらに、1024ビットの鍵は、セキュリティに関して低い。今後長期にわたる必要性のために、2048ビットのような鍵を考えなければならないであろう。認証局は、十分信頼できるものでなければならないので、その署名鍵は、それ相応に長くなる。従って、RSAの2048ビットの鍵サイズは、大きすぎることはない。さらに、多数のリクエストを処理しなければならないこともある認証局にとって、応答の1つ1つに署名するのは計算上実行不可能なことがある。認証局がたった1つの集中型装置であれば、全てのリクエストがそこを経由し、固有のリクエストの1つ1つに対しデジタル署名を計算しなければならないので、スケーラビリティに関する大きな問題が生じる。何らかのロードバランシングを取り入れて認証局を分散しようとすると、例えば慎重な扱いを要する署名鍵を複製するなどのセキュリティリスクがもたらされる。
【0008】
Micaliは、NOVOMODOという精密かつ簡潔な方式でこれらの問題に対処した。NOVOMODO方式は、X.509等のいかなる標準的な認証形式にも使用でき、認証局が、例えば1日や1時間といった所定の時間間隔で、証明書の有効状態を提供することを可能にする。NOVOMODOは、単一のデジタル署名と共に1つのハッシュチェーンを使用する。その利点は、単一の署名のコストが、多くの有効プルーフで償却されることである。しかし、NOVOMODOは、2つのクエリーの間に過ぎた周期の数に比例した時間で、ハッシュチェーンを横断する必要がある。Naor及びNissimが指摘した自然な拡張は、Merkle木を使用することである(M.Naor及びK.Nissim著,“Certificate Revocation and Certificate Update”,Proceedings of USENIX Security,1998)。この方法において、検証者は、
【数1】

個のハッシュを計算して、証明書を検証しなければならない。もっとも、有効プルーフは、その時、
【数2】

個のハッシュ値からなるのだが。概して、この方法は、元のNOVOMODO方法に比べて、平均的な検証複雑性が大幅に減少しているので望ましい。それでも、まだいくつかの不利点がある。
1.検証と検証との間の時間が、
【数3】

よりも短いならば、元のNOVOMODO方式の方が、検証者が証明書を認証するのに要する時間は短い。
2.元のNOVOMODO方式におけるプルーフのサイズは、常に1ハッシュ値であり、拡張されたNOVOMODO方式のプルーフサイズよりもはるかに小さい。
NOVOMODOに関する詳細については、S.Micali,“NOVOMODO:Scalable Certificate Validation and Simplified PKI Management,Proceedings of the 1st Annual PKI Research Workshop,2002を参照されたい。
【0009】
ここで、ALO方法として言及する他の方法は、Aiello、Lodha及びOstrovskyによるもので、複数のユーザに対する有効プルーフを同時に提供するために、ユーザを部分集合に区分する方法とともにNOVOMODOのような方式を用いるものである。W.Aiello,S.Lodha及びR.Ostrovsky,“Fast Digital Identity Revocation”,Proceedings of Asiacrypt’01,2001を参照されたい。
【0010】
ALO方式では、別個のNOVOMODOのようなハッシュチェーンを、かかるユーザ部分集合Sの各々に割り当てる。次に、一定の間隔で、無効になった証明書を有するユーザの集合をTで表すとすれば、認証局は、最初に、
【数4】

において、カバーするインデックスi,…,iを計算する。次に、各部分集合
【数5】

に対する有効プルーフを提供する。これにより、ユーザのグループを同時に検証することができる。この方法には、いくつかの欠点がある。第1に、部分集合を構成して、部分集合ごとにチェーンを備えることに関して付加的なオーバーヘッドが生じる。少なくとも、単集合の部分集合を生成しなければならない(これは、基本的に元のNOVOMODO方式をもたらす)。従って、ALO方式により実際に改良しようとするなら、付加的な部分集合を計算する必要があり、付加的な作業が必要になることになる。第2に、元のNOVOMODO方式におけるように、ハッシュ計算の回数が有効性チェックの間隔に比例するので、大きくなることがある。
【発明の開示】
【発明が解決しようとする課題】
【0011】
証明書を無効にする方法及び装置が開示される。一実施形態において、該方法は、有効ターゲット(validity target)と無効ターゲット(revocation target)とを有する証明書データ(certificate data)を生成することを含み、有効ターゲットは、グラウンデッド・デンス・ハッシュ(grounded dense hash)木の根の値である。この方法はまた、証明書データを有する証明書(certificate)を発行することを含む。
本発明は、以下に与えられる詳細な記載及び本発明の様々な実施形態に付随する図面から、より十分に理解されるであろう。しかしながら、これらは、特定の実施形態に対いて本発明を限定するために用いられるべきではなく、あくまでも説明や理解のためだけのものである。
【課題を解決するための手段】
【0012】
従って、上述の問題に対処するための方法、構成要素及びシステムを提供する。一実施形態において、Merkle木を用いる代わりに、グラウンデッド・デンス・ハッシュ木(GDH)を用いる。この方法では、Merkle木でそうするように葉から処理を始めるのではなく、木の1つおきの内部ノードから処理を始める。その結果、全般的な検証の複雑性だけでなく、Naor及びNissimのMerkle木に基づく方式における通信の複雑性の両方がただちに改善される。さらに、有効プルーフ(proof of validity)が小さいので、1つのパケット内に収まる可能性が高く、それにより、実際に必要な追加の通信がごくわずかとなる。
【0013】
一実施形態において、グラウンデッド・デンス・ハッシュ木を使用して、複数のユーザに同時に適用することもあるプルーフを構成する。これにより、認証局は、少数のプルーフを発行するだけでよく、多数のユーザの証明書を検証するのに使用することができる。
【0014】
本発明の一実施形態におけるシステムは、現在の周期をpで表し、前回の有効性チェックの計算結果がキャッシュされているとして、有効性がチェックされた前回の周期をpで表わすとして、多くても、
【数6】

の作業により、認証局が発行したオーナに属する証明書の有効性を、検証者Vが判断するのを可能にする。前回の有効性チェックがキャッシュされていない場合は、
【数7】

の作業が必要である。いずれの場合も、プルーフサイズは、有効性チェックを実行するのに必要な作業量に比例する。
【0015】
ある方法の一実施形態が提供されており、かかる方法により認証局は、グラウンデッド・デンス・ハッシュ木を用いて、単一の証明書オーナ(certificate owner)の有効ターゲットを生成する。
【0016】
本発明の別の実施形態は、ある方法を示すものであり、かかる方法により認証局は、このようなグラウンデッド・デンス・ハッシュ木を用いて、有効プルーフを構成する。有効プルーフのサイズは、tを有効期間として(例えば、t=14は、365日のうちの14日であることを意味する)、大きくてもO(log(t))である。
【0017】
本発明の他の実施形態は、ある方法を含み、かかる方法により検証者は、tを有効期間として、多くてもO(log(t))の作業だけで、認証局が発行したプルーフの有効性を検証する。
【0018】
本発明の実施形態は、本明細書に記載の方法のオペレーションを実行する認証局、検証者及びオーナの構成要素を含む。
【0019】
本発明の一実施形態は、複数の証明書に対する1つの有効プルーフを検証者が発行できるようにすることによって、複数の証明書オーナに属する1つの証明書の有効性を検証者が同時に判断できるようにするシステムを含む。本発明の一実施形態は、複数の証明書の有効性に関し単一のプルーフを認証局が構成する方法を含む。本発明の他の実施形態は、認証局が発行したプルーフを検証者が検証する方法を含む。
【発明を実施するための最良の形態】
【0020】
以下の説明において、多くの詳細を示すことで、本発明をさらに詳しく説明する。しかしながら、これらの詳細がなくても本発明が実行可能であることは、当業者にとって明らかであろう。他の例では、公知の構造や装置を、詳細図ではなくブロック図形式で示して、本発明が分かりにくくならないようにしている。
【0021】
以下の詳細な説明のいくつかの部分は、コンピュータ記憶装置内のデータビットの演算のアルゴリズムや記号表現によって示されている。これらのアルゴリズムの記述や表現は、データ処理技術の技術者が、彼らの仕事の実態を他の当業者にもっとも効果的に伝えるのに用いる手段である。本明細書において、また一般的に、アルゴリズムは、望ましい結果に導くセルフコンシステントな一連の工程であるとみなされる。該工程は、物理量の物理的操作を必要とするものである。通常、必ずではないが、これらの量は、記憶、転送、結合、比較、その他の操作ができる電気信号や磁気信号の形態をとる。時には、主に一般的な使用のために、これらの信号をビット、値、要素、記号、文字、項、数字等で表すことは便利である。
【0022】
しかしながら、これらや類似用語は、全て適切な物理量に関連付けるためのものであり、これらの量にあてはめる単なる便利なラベルと考えるべきである。以下の論述から明らかのように、特に違ったように記述されていないかぎり、本明細書全体において、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた論述は、コンピュータシステムのレジスタや記憶装置内の物理(電子)量で表されるデータを、コンピュータシステムの記憶装置やレジスタ、又は、他のかかる情報記憶装置、送信装置又は表示装置内の物理量で同様に表される他のデータに操作及び変換するコンピュータシステム又は類似の電子計算装置の動作及び処理を述べるものとなっている。
【0023】
本発明はまた、本明細書のオペレーションを実行する装置に関する。この装置は、必要な目的のために特別に構成されていてもよいし、コンピュータ内に記憶するコンピュータプログラムによって選択的に起動するか再構成する汎用コンピュータを含むものであってもよい。かかるコンピュータプログラムは、例えばフロッピーディスク、光ディスク、CD−ROM、光磁気ディスク、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気カード又は光カードを含むいかなるタイプのディスクや、電子命令を記憶するのに適したいかなるタイプの媒体など、それぞれコンピュータシステムバスに接続されるコンピュータ読取り可能記憶媒体に記憶されてもよいが、それに限定されない。
【0024】
本明細書に提示されるアルゴリズムやディスプレイは、特定のコンピュータや他の装置に本質的に関連するものではない。本明細書の教示によるプログラムとともに様々な汎用システムを使用してもよいし、必要な方法段階を実行するためにより専門化した装置を構成すれば便利であるかもしれない。これらの様々なシステムに必要な構造は、以下の記載から明らかである。さらに、本発明は、特定のプログラム言語に関連して述べられていない。本明細書に記載の本発明の教示を実行するのに、様々なプログラム言語を用いることができる。
【0025】
機械読取り可能媒体は、機械(例えば、コンピュータ)が読み取ることができる形式で情報を記憶又は送信するための構造を含む。例えば、機械読取り可能媒体は、読出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリ装置、電気、光、音響、その他の形態の伝播信号(例えば、搬送波、赤外線信号、デジタル信号等)等を含む。
【0026】
準備段階
本明細書に記載のモデルでは、認証局と、証明書オーナ又は所有者(オーナ)と、証明書検証者とが存在する。以下の論述において、オーナは、認証局が発行した証明書を有する。当然ながら、認証局という概念は、より一般的に、複数の個人に対してアクセス制御の特権や許可を発行する責任を持ついかなる局にもあてはまる。オーナという概念は、例えばワールドワイドウェブサーバなどのコンピュータやエンティティを操作する特定の人間であることがある。同様に、検証者は、コンピュータを操作する特定の人間であることもあるし、特定のサービスに対するアクセスを許可すべきかどうかを判断するアクセス制御サーバ等のエンティティであることもある。
【0027】
所定のトランザクションにおいて、証明書検証者は、証明書がその有効期限より前に無効になっていないことを確かめたい。そのため、証明書検証者は、認証局に有効プルーフ(proof of validity)か無効プルーフ(proof of revocation)を求める。
【0028】
望ましくは、認証局とオーナの両方が公開−秘密鍵のペアを有するように、オープン又はクローズド公開鍵インフラストラクチャを用いる。ここで鍵ペアは(Sk、Pk)と呼び、Skは、メッセージの署名を演算するための秘密署名鍵であり、Pkは、Skに対応する公開検証鍵である。本明細書における目的のために、等式DS=(KG,Sign,Vf)は、Goldwasser,Micali及びRivest著,“A Digital Signature Scheme Secure Against Adaptive Chosen−Message Attacks”,SIAM Journal on Computing,17(2):281−308,1988、の意味における、適応的な選択メッセージ攻撃のもとで、経験したことのある偽造に対して安全なデジタル署名方式を示す。KGは、鍵生成アルゴリズムを示し、Sign(Sk,M)は、署名鍵SkのもとでメッセージMに対する署名σを出力する署名アルゴリズムを示し(署名アルゴリズムはランダムに選んでもよい)、Vf(Pk,M,σ)∈{0,1}は、公開鍵Pkに関してメッセージMの署名σが正確であれば、1と判断する検証アルゴリズムを示す。明確にするために、特定の個人に属する鍵を示すのに下付きを使用する。そうすると、HSPの鍵ペアは、(PkHSP,SkHSP)となり、Uの鍵ペアは、(Pk,Sk)となる。鍵生成アルゴリズムKGは、入力として、生成すべき鍵の長さを特定するセキュリティパラメータをとってもよい。その結果、認証者の鍵の長さは、標準的な証明書オーナのものよりも大きくなることがある。なぜなら、特に、前者の鍵の信用を損なう結果は、後者の鍵の信用を損なう結果よりもはるかに損害が大きい可能性が強いからである。
【0029】
{0,1}が、全てのビットストリングの集合を示すものとする。ビットストリングsに関し、その長さは、|s|で示す。Hが、入力としてbビットのペイロードとvビットの初期ベクトル(IV)をとり、vビットの出力を生成する暗号圧縮関数を示すものとする。一実施形態において、b≧2vであり、これは、使用されている公知の構造の全てに当てはまる。本明細書に記載される構造に関し、通常b=2vである。一実施形態において、これらの暗号圧縮関数は、耐衝突性である。すなわち、H(IV,m)=H(IV,m)となるような2つの異なる入力m≠mを見つけるのは難しい。一実施形態において、IVは、一定であり、公知である。表記を簡潔にするために、IVは、ハッシュ関数における独立変数(argument)として常に明記しない。かかる暗号圧縮関数の実際の例は、SHA−1やMD5に見られる。前者の圧縮関数は、20バイトの出力とIVサイズであり、一方、後者に関しては、該サイズは16バイトである。両方とも64バイトのペイロードサイズである。一実施形態において、圧縮関数ペイロードサイズよりも大きいデータに演算は行われないが、そのためには、反復ハッシュやMerkle木等の数々の標準技術が存在する。簡潔にするために、ハッシュ関数という用語を圧縮関数の代わりに用い、ハッシュ関数は、任意の長さのストリング{0,1}をとり、{0,1}の固定長の出力を生成することができることになっている。記号Hは、かかる関数を示すのに用いられる。一方向性で耐衝突性であるハッシュ関数を用いるのが望ましい。
【0030】
長さ保存関数f:{0,1}→{0,1}、整数i≧1に関して、fが、そのf倍の合成(f-fold composition)を示すものとする。すなわち、i=1では、f(x)=f(x)であり、i>1では、f(x)=f(fi−1(x))である。xをランダムに選んだf(x)が与えられた時、わずかな可能性を除いて、f(z)=f(x)となるようなプリイメージ(pre-image)zを見つけるのが難しいならば、関数fは、一方向関数である。一方向関数fは、iに関し、f(x)を与えられた時、わずかな可能性を除いて、f(z)=f(x)となるようなプリイメージzを見つけるのが難しいならば、その反復において一方向であると言われる。実際には、ハッシュ関数Hから始めて、長さを保存するためにペイロードの一部をパッドすることによって、その反復において一方向である候補関数を構成することが多い。
【0031】
最後に、実数rに関し、
【数8】

はrの天井、すなわち、r以上の最小の整数値である。同様に、
【数9】

はrの床、すなわち、r以下の最大の整数値を示す。
Merkle木
【0032】
重要な概念の1つは、Merkle木であり、以下のように説明することができる。m個の値x,…,xが存在し、それぞれ{0,1}であるとする。簡潔にするために、mは、2の累乗とする。H:{0,1}2n→{0,1}を、2nビットストリングをnビットストリングにマップする暗号ハッシュ関数とする。ハッシュ関数Hのもとのx,…,xに対応するMerkle木は、均衡な2分木であり、各ノードは、特定の値Value(v)に関連付けられている。m個の葉が存在し、各葉lに関して、Value(l)=H(x),1≦i≦mである。xは、{0,1}に含まれるので表記を乱用しているが、Hの定義域は、{0,1}2nであることに注意されたい。この場合、Hは、適切にパディングされるものとする。内部頂点に関し、C(v)及びC(v)は、その左右の子を示すものとする。“o”は連結演算を示すものとする。すると、Value(v)=H(IV,Value(C(v))oValue(C(v)))となる。Merkle木のみが形式Valuel=H(x)の値を有する葉を持つものとみなされるが、Merkle木は、これらの葉の下に、m個の頂点からなる別の層をさらに有する。この頂点の集合は、値xを持ち、かかる頂点は、それぞれ、値H(x)の頂点に結合されている。
【0033】
Merkle木は、デジタル署名のデータをダイジェストするのに使用することがあり、署名されたダイジェストは、根に対応付けられた値に相当する。また、基礎となる圧縮関数が耐衝突性であれば、Merkle根の値が同一である2つの異なるメッセージを見つけるのは困難である。
グラウンデッド・デンス・ハッシュ木
【0034】
グラウンデッド・デンス・ハッシュ(GDH)木を構成する処理を以下に述べる。GDH木は、表面上、内部頂点のいくつかを慎重に番号付けする以外は、Merkle木のように見える。かかる木を使用する効力は、証明書無効化方式において、内部ノードの部分集合を直接利用することができることにある。その要点は、かかる方式の時間複雑性や通信複雑性の両方を改善することにある。この場合もまた、処理は、m個の値、x,…,xから始まる。簡潔にするために、ある正の整数kに関して、mは、2kと同等であるものとする。木は、以下のように構成される。最下層にm個の頂点があり、それらは兄弟がいないという意味で一人子である頂点である。次に、Merkle木でそうするように、深さk+1の均衡2分木を構成し、各頂点に値を割り当てる。この木は、最下位のm個の頂点の上に存在する。値は、以下のように割り当てられる。最下位のm個の頂点は、それぞれ、値x,…,xをとる。最下層の上に直接乗っている層に、m個の頂点を構成し、nビットの値f(x)をi番目のかかる頂点に割り当てる。f:{0,1}→{0,1}は、長さ保存一方向関数である。すなわち、lが、かかる頂点であれば、1≦i≦mに関し、Valuel=f(x)となる。次に、H:{0,1}2n→{0,1}を暗号ハッシュ関数とする。すると、2つの最下層の上にある内部ノードvは、Value(v)=H(IV,Value(C(v))oValue(C(v)))となる。
【0035】
同じ木が、以下のように別の方法で特徴付けられる。3m−1個の頂点が存在する。これらは、それぞれ、l,…,l,l´,…,l´,及びv,…,vm−1である。その値は、以下のように割り当てられる。1≦i≦mに関し、Value(l)=x及びValue(l´)=f(x)。次に、λ(i)=2(i−m/2)+1とし、ρi=2(i−m/2)+2とする。i∈{m/2,m/2+1,…,m−1}に関し、以下が適用できる。
【数10】

最後に、i∈{1,…,m/2−1}に関し、
【数11】

となる。
これにより、値が、頂点に割り当てられる。以下は、有向辺(directed edges)の説明である。高位では、Value(u)が、Value(w)の計算に明白に使用された場合、有向辺は、頂点uに隣接し、頂点wへのびる。より正確には、有向辺は、このように説明できる。1≦i≦mに関し、lからl´まで有向辺が存在する。i∈{m/2,m/2+1,…,m−1}に関し、l´λ(i)からvまで有向辺が存在し、l´ρ(i)からvまで有向辺が存在する。最後に、i∈{1,…,m/2−1}に関し、v2iからvまで有向辺が存在し、v2i+1からvまで有向辺が存在する。
【0036】
次に、以下の2つの着色を木のノードに施す。根は、白に着色する。根の左側の子は、灰色にし、根の右側の子は、白色にする。各頂点に向かって木を降りながら、各頂点は、その親の左側の子であれば、灰色に着色し、その親の右側の子であれば、白色に着色する。(lの頂点の場合のように)頂点が兄弟を持たない場合、灰色に着色する。すなわち、一人子は、同時に左側の頂点であり右側の頂点であるとみなすことができる。兄弟である2つの頂点に関し、一方のみを着色できるならば、他の着色方式を用いてもよいことに注意されたい。同様に、他の数でもよい。
【0037】
最後に、灰色のノードを幅優先方法で番号付けする。すなわち、木の上端から始め、連続する位に1つ1つ降りていきながら、灰色ノードは、それぞれ左から右へ連続的に番号付けされる。説明例として、m=4の場合を考える。かかる場合、番号1は、根の左側の子に割り当てられる。番号2は、根の左側の子の左側の子に割り当てられる。番号3は、根の右側の子の左側の子に割り当てられる。番号4は、根の左側の子の左側の子の一人子に割り当てられる。番号5は、根の左側の子の右側の子の一人子に割り当てられる。番号6は、根の右側の子の左側の子の一人子に割り当てられる。最後に、番号7は、根の右側の子の右側の子の一人子に割り当てられる。一見、灰色頂点を番号付けするという考えは、何か不自然なようであるかもしれないが、周期iの有効プルーフにi番目の灰色頂点を含むことがその目的である。
【0038】
i番目の灰色頂点は、gv(i)と呼ぶ。図7及び図8は、7周期の無効化方式に適応することができるグラウンデッド・デンス・ハッシュ木のラベリングの比較を示している。図7は、11個の頂点を持つグラウンデッド・デンス・ハッシュであり、7周期間使用することができる。内部ノードは、それぞれ、その子どもたちの値のハッシュである値を持つ。灰色頂点は、それぞれ、幅優先順で連続的に番号付けされる。図8は、8周期を可能にするMerkle木である。この木の基本部分は、15の頂点を有するが、8つの付加的な陰の頂点が存在し、下位ハッシュの木の底辺から垂れ下がっている。木は、8周期間使用することができる。内部ノードを用いれば、よりコンパクトな木が見られる。すなわち、8周期に適応するMerkle木は、グラウンデッド・デンス・ハッシュ木の2倍以上の頂点を必要とする。
【0039】
一般に、m個の葉を持つグラウンデッド・デンス・ハッシュ木は、3m−1個の頂点を持ち、2m−1周期に適応できる。m個の葉を持つMerkle木もまた、3m−1個の頂点を持つが、m周期にしか適応できない。グラウンデッド・デンス・ハッシュ木によるパフォーマンスの向上は2−1/mであり、mが大きくなるにつれて2に近づく。
【0040】
GDH木の所定の頂点の補ノード(co-node)という概念が、以下で用いられる。頂点vに関し、CoNodes(v)は、vから根までの経路上にある頂点の兄弟の集合である。より正式には、Sib(v)とParent(v)がそれぞれvの兄弟と親を示すならば、
【数12】

ここで、Vが根である場合、上式の値を取り、その他の場合、下式の値を取る。
最後に、補ノードの集合に関し、Value(CoNodes(v))は、頂点vの補ノードに対応する値を示す。補ノードに類似した概念は、Merkle木に存在する。
【0041】
補ノードが与えられた時、根の値を計算する一実施形態の方法は、以下のとおりである。i番目の灰色頂点に対応する値をvとし、i番目の灰色頂点から根の頂点までの経路上にある全ての頂点の兄弟の値をv,…,vとする。すると、根の値は、hとして計算することができ、h=H(vov)及びh=H([hi−1,v])であり、vが左側の子であれば、[h,v]は、vohとなり、vが右側の子であれば、hovである。
【0042】
グラウンデッド・デンス・ハッシュ木の概念は、k個のチェーンでつながれたグラウンデッド・デンス・ハッシュ木に以下のように拡張される。最下位の頂点は、長さ1のハッシュチェーンとみなす。それらは、長さkのハッシュチェーンに置き換えることができる。この拡張により、グラウンデッド・デンス・ハッシュ木と通常のハッシュチェーンから得られるトレードオフ間の中間点がもたらされる。説明のために図9を参照されたい。図9は、k個のチェーンにつながれたグラウンデッド・デンス・ハッシュであり、k=3である。図9の木は、最下位の頂点がハッシュチェーンに置き換えられていることを除き、グラウンデッド・デンス・ハッシュ木のように見えることに注目されたい。
NOVOMODO
【0043】
MicaliのNOVOMODO方式について、以下に説明する。この方式は、認証局がユーザに証明書を発行する設定段階と、認証局が無効又は有効の効率的なプルーフを提供する更新段階と、オーナの証明書の状態をユーザが判断する検証段階の、3つの段階に分割できる。
設定
【0044】
fを、その反復において一方向である関数とする。Dを、従来の証明書データを示すものとする(例えば、シリアル番号、ユーザのIDとなるストリング、発行日、有効期限)。pを、認証方式における周期数を示すものとする。簡潔にするために、一実施形態において、pは、365とする。認証局は、2つの数字を証明書データDに関連付ける。これら2つの数字、yとNは、以下のように計算される。認証局は、{0,1}からyとNの値をランダムに選択し、y=f(y)、N=f(N)に設定する。値yは、有効ターゲットであり、Nは、無効ターゲットであるが、その理由は、以下で明らかにする。証明書は、増補されたデータ{D,y,N}と、このデータに対する認証局の署名とからなる。
定期的な証明書の更新
【0045】
ディレクトリは、周期ごとに更新される(例えば、p=365ならば、1年間有効である証明書の更新間隔は1日のことがある)。周期iで証明書が有効であれば、認証局は、yp−i=fp−i(y)を送信する。証明書が無効になっている場合、認証局は、Nを送信する。
証明書状態の検証
【0046】
ユーザが、周期iで証明書の状態を検証したいものとする。証明書は、無効になっていると認証局が言っている場合、ユーザは、認証局が送信した値Nを取り出し、確かにN=f(N)であるかどうかチェックする。Nは、証明書中にあるので、ユーザは、それを知っていることに注意されたい。同様に、証明書が無効になっていないと認証局が言っている場合、ユーザは、認証局が送信した値yp−iを取り出し、f(yp−i)=yであるかどうかチェックする。この場合も、ユーザは、yを知っていることに注意されたい。
Merkle木を用いたNOVOMODO
【0047】
以下は、NOVOMODOをMerkle木に直接拡張したものであり、M.Naor及びK.Nissim著,“Certificate Revocation and Certificate Update”,Proceedings of USENIX Security,1998,と、I.Gassko他著、“Efficient and Fresh Certification”,Proceedings of PKC 2000,2000において説明されたものである。認証局は、擬似乱数値をそれぞれ割り当てられた2p個の葉l,…,l2pを有するMerkle木を作成し、その根に署名する。葉は、左から右へ1から2pまで番号付けされる。時間周期iで証明書が有効ならば、認証局は、Value(l2i)とValue(CoNodes(l2i))を送信する。
基本的デンス・ハッシュ木を用いたNOVOMODO
【0048】
Elwailly及びRamzanが、F.Elwailly及びZ.Ramzan著,“QuasiModo:More Efficient Hash Tree−Based Certificate Revocation”,Manuscript,2003で指摘したように、NOVOMODOにおけるMerkle木は、デンス・ハッシュ木に置き換えることができる。この木は、最下層の葉が欠けていることを除けば、グラウンデッド・デンス・ハッシュ木のように見える。デンス・ハッシュ木を用いることにより、Merkle木に対し1.5倍の改善がもたらされるのに対し、本明細書に記載のグラウンデッド・デンス・ハッシュ木では、2倍の改善がもたらされる。
単一の証明書を無効にするためのデンス・ハッシュ木
【0049】
本発明の実施形態は、認証局が、コンパクトで検証しやすい有効プルーフ又は無効プルーフを生成するのを可能にする、安全で効率的な証明書無効化方法、構成要素及びシステムを提供するよう構成されている。本発明の一実施形態は、MicaliのNOVOMODOシステムを改良したものである。Micaliの構成のハッシュチェーンをグラウンデッド・デンス・ハッシュ木に置き換えることによって、多数の望ましいトレードオフが得られる。
【0050】
NOVOMODO方式については、すでに説明したので、グラウンデッド・デンス・ハッシュ木を利用する本発明の一実施形態について説明する。本発明の実施形態は、高位において、NOVOMODOハッシュチェーンをグラウンデッド・デンス・ハッシュ木に置き換える。すでに述べたように、検証において内部ノードも用いることを除いて、この木は、Merkle木に類似している。
設定
【0051】
NOVOMODOにおけるように、Dが従来の証明書データを示すものとする。認証局は、2つの数字を証明書データDに関連付ける。これら2つの数字、yとNは、以下のように計算される。認証局は、グラウンデッド・デンス・ハッシュ木を構成し、yをその木の根に割り当てられた値に設定する。認証局は、NOVOMODOでそうしたように、N=f(N)に設定する。証明書は、増幅されたデータ(D,y,N)と、このデータに対する認証局の署名とからなる。
【0052】
図1は、認証局が設定段階に行う処理の一実施形態のフロー図である。この処理は、処理ロジックによって実行する。処理ロジックは、ハードウェア(例えば、回路、専用ロジック等)やソフトウェア(汎用コンピュータシステムや専用機で実行するもの等)、又は、両者の組み合わせからなるものがある。
【0053】
図1について、該処理は、処理ロジックが多数の有効期間を設定することから始まる(処理ブロック101)。次に、処理ロジックは、ユーザごとにグラウンデッド・デンス・ハッシュ木を生成する(処理ブロック102)。その際、処理ロジックは、変数Yに等しい根の値を示す。次に、処理ロジックは、根の値を有効ターゲットに設定する(処理ブロック103)。処理ロジックは、無効ターゲットNを生成する(処理ブロック104)。
【0054】
有効ターゲットと無効ターゲットを生成した後、処理ロジックは、上述したような従来の証明書データと、有効ターゲットと無効ターゲットとからなる証明書データを構成する(処理ブロック105)。その後、処理ロジックは、増やされた証明書データ(有効ターゲットと無効ターゲットを有する従来の証明書データ)と、この増やされた証明書データに対する認証局の署名とからなる証明書を構成する(処理ブロック106)。次に、処理ロジックは、オーナに証明書を発行する(処理ブロック107)。
【0055】
図5は、システム構成要素の一実施形態のブロック図である。このシステム構成要素は、認証局要素や、検証者要素や、オーナ要素であることがある。各構成要素は、記憶装置と双方向に通信する処理装置を含む。処理装置は、上記の処理を実行するのに適切なプログラムコードを実行して、証明書を発行し、無効化し、認証し、検証する。処理装置は、また、他の構成要素に送信する情報を生成するのに適切なプログラムコードを実行する。適切なプログラムコードは、当該技術において公知の方法によって作成することがある。記憶装置は、プログラムコードと、証明書の発行処理、無効化処理、認証処理、及び検証処理の実行中に使用する中間結果や他の情報を記憶する。
【0056】
図5において、構成要素は、処理装置501と記憶装置502とを含む。これらの要素は、協働して、本明細書に記載のオペレーションを実行する。例えば、処理装置501と記憶装置502が認証局要素からなる場合、それらは協働して、図1に示すフロー図のオペレーションを実行する。同様に、処理装置501と記憶装置502が検証者要素からなる場合、協働して図4に示すフロー図の機能を実行する。また、処理装置501と記憶装置502がオーナ要素として協働する場合、図3に示すオペレーションを実行する。
【0057】
通信ネットワークが設けられ、その上でこれらの構成要素は通信できる。通信ネットワークは、例えば、LANコンピュータネットワーク、WANコンピュータネットワーク、及び/又は移動電話ネットワーク等の、様々な一般的形態であることがある。
【0058】
図3は、証明書オーナが実用で行う処理の一実施形態のフロー図である。この処理は、処理ロジックによって行われる。処理ロジックは、ハードウェア(例えば、回路、専用ロジック等)やソフトウェア(汎用コンピュータシステムや専用機で実行するもの等)、又は、両者の組み合わせからなるものがある。
【0059】
図3において、該処理は、処理ロジックが認証局に登録し、身分証明を提供することによって始まる(処理ブロック301)。次に、処理ロジックは、認証局からデジタル証明書を受信する(処理ブロック302)。デジタル証明書を受信した後、処理ロジックは、証明書情報が正確であるかどうか判断する(処理ブロック303)。正確でない場合、処理ロジックは、処理ブロック301に戻り、処理を繰り返す。証明書情報が正確である場合、処理ロジックは、認証局の署名が有効であるかどうかを判断する(処理ブロック304)。有効でない場合、処理は、処理ブロック301に移り、処理を繰り返す。認証局の署名が有効である場合、処理は終了する。
定期的な証明書の更新
【0060】
一実施形態において、ディレクトリは、周期ごとに更新される。周期iで、認証局は、以下のように計算される値cを証明書ごとに送信する。一実施形態において、証明書が有効ならば、認証局は、Value(gv(i))を、Value(CoNodes(gv(i)))と共に送信する。証明書が無効になっているならば、認証局は、Nを送信する。
【0061】
図2は、認証局が実用で行う処理の一実施形態のフロー図である。処理は、処理ロジックによって実行される。処理ロジックは、ハードウェア(例えば、回路、専用ロジック等)やソフトウェア(汎用コンピュータシステムや専用機で実行するもの等)、又は、両者の組み合わせからなるものがある。
【0062】
図2において、該処理は、処理ロジックが特定の間隔iで、証明書オーナに関する有効状態の情報に対するリクエストを受信することによって始まる(処理ブロック201)。次に、処理ロジックは、オーナの証明書が無効になっているかどうかを判断する(処理ブロック202)。無効になっている場合、処理ロジックは、処理ブロック203に移行する。そこで、処理ロジックは、無効ターゲットのプリイメージを取り出して、その値をリクエスト元に送信し(処理ブロック204)、処理は終了する。オーナの証明書が無効になっていない場合、処理ロジックは、i番目の灰色頂点の補ノードの値を計算し(処理ブロック205)、リクエスト元がどの補ノードの値が必要であるかを示しているか判断する(処理ブロック206)。示していなかった場合、処理ロジックは、全ての補ノードの値をリクエスト元に送信し(処理ブロック208)、処理は終了する。リクエスト元がどの補ノードの値が必要であるかを示しているならば、処理ロジックは、リクエストされた補ノードの値をリクエスト元に送信し(処理ブロック207)、処理は終了する。
証明書状態の検証
【0063】
ユーザが、周期iで証明書の状態を検証したいものとする。証明書は無効になっていると認証局が言っている場合、ユーザは、認証局が送信した値Nを取り出し、確かにN=f(N)であるかどうか判定する。証明書は無効になっていないと認証局が言っている場合、ユーザは、Value(gv(i))とValue(CoNodes(gv(i)))の値を取り出し、それらを用いてグラウンデッド・デンス・ハッシュ木の根の値を計算する。計算したMerkle根が値yと一致すれば、証明書は有効である。
【0064】
或いは、ユーザがすでに前の周期jで証明書を検証しており、関連する検証情報を得ていて、証明書iに関連する頂点が、周期jの証明書に関連する頂点に根付いた部分木に存在するならば、ユーザは、補ノードを用いてその根まで計算するだけでよい。
【0065】
図4は、実用で証明書検証者が行う処理の一実施形態のフロー図である。該処理は、処理ロジックによって実行される。処理ロジックは、ハードウェア(例えば、回路、専用ロジック等)やソフトウェア(汎用コンピュータシステムや専用機で実行するもの等)、又は、両者の組み合わせからなるものがある。
【0066】
図4において、該処理は、処理ロジックがオーナに属する証明書を取得することから始まる(処理ブロック401)。次に、処理ロジックは、証明書が期限切れかどうかを判断する(処理ブロック402)。期限切れであれば、処理ロジックは、証明書を拒否し(処理ブロック404)、処理は終了する。証明書が期限切れでなければ、処理ロジックは、証明書情報が正確であるかどうか判断する(処理ブロック403)。正確でなければ、処理ロジックは、証明書を拒否し(処理ブロック404)、処理は終了する。証明書情報が正確であれば、処理ロジックは、認証局の署名が有効であるかどうか判断する(処理ブロック405)。有効でなければ、処理ロジックは、証明書を拒否し(処理ブロック404)、処理は終了する。認証局の署名が有効であれば、処理ロジックは有効プルーフか無効プルーフを取得する(処理ブロック411)。
【0067】
その後、処理ロジックは、有効プルーフを受信したかどうかを判断する(処理ブロック407)。受信していない場合、処理ロジックは、証明書を拒否し(処理ブロック406)、処理は終了する。処理ロジックが有効プルーフを受信している場合、処理ロジックは、プルーフが正確であるかどうか判断する(処理ブロック408)。正確でなければ、処理ロジックは、証明書を拒否し(処理ブロック406)、処理は終了する。プルーフが正確であれば、処理ロジックは、証明書を受け取り(処理ブロック409)、処理は終了する。
【0068】
図6は、本発明の一実施形態による、認証局と、証明書検証者と、証明書オーナとを含むシステム構成である。図6において、認証局要素601は、1つ又は複数の通信ネットワークを介して、検証者要素602とオーナ要素603とに通信可能に連結されている。検証者要素602は、通信ネットワークを介してオーナ要素603に通信可能に連結されている。一実施形態において、これらの要素はそれぞれ、図5に示す要素からなる。認証局要素601は、証明書と証明書データ611とをオーナ要素603に送信する。検証者要素602とオーナ要素603は、オーナ証明書610をやりとりする。検証者要素602と認証局要素601は、有効プルーフ又は無効プルーフ620をやりとりする。
複数の証明書を無効にするためのデンス・ハッシュ木
【0069】
本発明の他の実施形態において、複数の証明書を同時に無効にすることができる。
【0070】
複数の証明書を同時に無効にする一般的方式を以下に説明し、それをインスタンス化する方法例を続けて説明する。この方式を説明するために、補集合カバーファミリ(complement cover family)という概念を考慮する。全ての証明書所有者の集合を(証明書が通常より早く無効になっているかどうかに関わらず)Uで示すものとする。RをUの部分集合とし、証明書が有効期限前に無効になった証明書所有者の集合を示す。
【数13】

とする。すなわち、
【数14】

は、証明書が現在無効ではない証明書所有者の集合である。
【0071】
定義1.Uの部分集合からなる集合をSとする。
【数15】

であれば、Sは、Rの補集合カバーである。
【0072】
定義2.Uの部分集合からなる集合をFとする。Uの部分集合Rごとに、FがRの補集合カバーを含むならば、その場合に限り、Fは、Uの補集合カバーファミリとなる。すなわち、Uの部分集合Rごとに、SがRの補集合カバーとなるように、Fの部分集合Sが存在する。
【0073】
補集合カバーファミリの簡単な例の1つは、全てが単集合の集合である。すなわち、U={u,…,u}であれば、集合F={{u},…,{u}}が補集合カバーであることは、当業者であれば容易に分かる。同様に、どの集合のベキ集合も補集合カバーファミリであることは自明である。ある集合のベキ集合は、全ての部分集合の集合である。
【数16】

【0074】
高位において、認証局は、まず証明書所有者の全体集合に対し、補集合カバーファミリを構成する。次に、認証局は、補集合カバーファミリの各要素にハッシュチェーンを割り当てる。特定の証明書オーナに関し、ユーザが属するFの要素の集合をF(Owner)で示すものとする。認証局は、ユーザの証明書に、F(Owner)の要素に対応するハッシュチェーンの根を有効ターゲットとして含める。次に、周期iでユーザの集団の有効プルーフを提供するために、認証局は、まず、無効にされたユーザRの集合を決定する。次に、認証局は、Fに含まれるRの補集合カバーを計算し、ここではSと呼ぶ。Fが全体集合Uの補集合カバーファミリであるので、かかる補集合カバーSが存在することに注意されたい。認証局は、Sの要素ごとに、関連するハッシュチェーンのi番目の値を生成する。ユーザの証明書の有効性を確認するのに、検証者は、Sの少なくとも1つの要素がF(Owner)に含まれるかどうか確認するだけでよい。
設定
【0075】
反復において一方向である関数をfとする。全ての証明書所有者の全体集合をUで示すものとする。次に認証局は、補集合カバーファミリを構成する。これをUの中のFと呼ぶ。認証局は、Fの要素ごとに、p周期を可能にする独立したグラウンデッド・デンス・ハッシュ木を構成する。
【0076】
従来の証明書データをDで示すものとする(例えば、シリアル番号、ユーザのIDとなるストリング、発行日、及び有効期限)。証明書方式における周期数をpで示すものとする。認証局は、証明書データに、有効ターゲットの集合と単一の無効ターゲットとを以下のように関連付ける。認証局は、{0,1}から値Nをランダムに選ぶ。N=f(N)に設定する。Nは、無効ターゲットを示す。
【0077】
次に、認証局は、証明書オーナに対し有効ターゲットの集合を以下のように構成する。認証局は、F(Owner)を計算する。F(Owner)は、オーナが一員であるFの要素からなる集合である。k個のF(Owner)の要素が存在するものとし、F;…;Fと呼ぶ。F…Fに関連するグラウンデッド・デンス・ハッシュ木の根の値をr;…;rで示すものとする。
【0078】
証明書は、増補されたデータ〈D,r;…;r;N〉と、このデータに対する認証局の署名とからなる。
定期的な証明書の更新
【0079】
ディレクトリは、周期ごとに更新される。認証局は、周期iで、以下の値を送信する。ある証明書が無効であるならば、認証局は、その無効ターゲットのプリイメージを送信する。これは、各証明書に関連するN値である。証明書が有効であれば、認証局は、以下を実行する。認証局は、まず、無効とされた所有者の集合Rを決定する。認証局は、SがRの補集合カバーとなるように、要素S∈Fを計算する。Fは、全体集合Uの補集合カバーであるので、かかるSが存在する。認証局は、Sの要素ごとに、その要素に対応する木に関連する値Value(gv(i))を、Value(CoNodes(gv(i)))と共に送信する。
証明書状態の検証
【0080】
ユーザが周期iで、オーナに属する証明書の状態を検証したいものとする。ユーザは、まず、証明書それ自体が期限切れになっておらず、認証局による署名が有効であるか確認する。次に、証明書が無効になっていると認証局が言っている場合、ユーザは、認証局が送信した値Nを取り出し、確かにN=f(N)であるか確認する。証明書が無効になっていないと認証局が言っている場合、ユーザは、F(Owner)に含まれる補集合カバーの要素に関連するValue(gv(i))とValue(CoNodes(gv(i)))の値を取り出す。ユーザは、グラウンデッド・デンス・ハッシュ木の根の値を計算する。計算した根が証明書に含まれる根と一致すれば、証明書は有効である。
【0081】
或いは、ユーザがすでに前の周期jで証明書を検証していて、関連する検証情報を持っており、証明書iに関連する頂点が、周期jの証明書に関連する頂点に根付いた部分木に含まれるならば、ユーザは、補ノードを用いてその根まで計算するだけでよい。
補集合カバーファミリの木構造
【0082】
補集合カバーファミリの構造の1つは、2分木階層である。かかる補集合カバーファミリは、以下のように構成される。簡潔にするために、非負整数kに関し、証明書所有者の数は2であるとする。2の葉を持つ二分木を作成する。次に、証明書所有者の全体集合の1つの部分集合が各頂点に割り当てられる。2の葉が存在するので、各葉は、単一の証明書所有者に対応することができる。各葉は、単一の証明書所有者からなる単集合に割り当てられる。次に、各内部ノードでは、その子供たちのノードの部分集合の和集合に相当する部分集合が割り当てられる。すなわち、ある頂点の部分集合は、その頂点に根付いた部分木の葉の証明書所有者に相当する。さて、その根に関連する部分集合が全体集合全体からなることを見てみよう。補集合カバーファミリFは、全ての頂点に割り当てられた集合からなるだろう。Fが補集合カバーファミリを形成することは明らかである。特に、各証明書所有者は、葉において単集合として示されるので、任意の部分集合を構成することができる。しかし、それらの葉が完全な部分木を形成するオーナが、その部分木の根に関連する集合を用いてカバーを形成すればより効率的である。特に、最小サイズの(すなわち、最小数の集合を含む)部分集合R⊆Uの補集合カバーを構成するために、以下のステップを行う。
1.第1に、
【数17】

の1要素に対応する各葉の頂点に「印を付ける」。
2.第2に、印を付けられた葉の頂点から根までの経路に沿う各内部頂点に「印をつける」。
3.第3に、印を付けられていないが、その親は、印を付けられている頂点を決定する。
4.第4に、これらの頂点に関連する部分集合を考慮する。
これらの部分集合は、最小サイズである
【数18】

の補集合カバーを形成する。この方法は2分木に限定する必要はなく、実際には一般的な木に直接拡張する。
標準的なコンピュータシステム
【0083】
図10は、本明細書に記載の1つ又は複数のオペレーションを実行することができる、標準的なコンピュータシステムのブロック図である。図10において、コンピュータシステム1000は、標準的なクライアント1050やサーバ1000のコンピュータシステムからなるものがある。コンピュータシステム1000は、情報を通信するための通信機構、すなわちバス1011と、バス1011に接続されている情報を処理する処理装置1012とを含む。処理装置1012はマイクロプロセッサを含むが、例えば、PentiumTM、PowerPCTM、AlphaTM等のマイクロプロセッサに限定されない。
【0084】
さらに、システム1000は、バス1011に接続されている情報や処理装置1012が実行する命令を記憶するランダムアクセスメモリ(RAM)や、他の動的記憶装置1004(主記憶装置と呼ぶ)を含む。主記憶装置904は、処理装置1012が命令を実行している間に一時的数値変数や他の中間情報を記憶するのに用いることがある。
【0085】
さらに、コンピュータシステム1000は、バス1011に接続されている処理装置1012用の静的情報や命令を記憶する読出し専用メモリ(ROM)及び/又は他の静的記憶装置1006と、磁気ディスクや光ディスクなどのデータ記憶装置1007と、それに対応するディスクドライブとを含む。データ記憶装置1007はバス1011に接続され、情報や命令を記憶する。
【0086】
さらに、コンピュータシステム1000は、バス1011に接続されている情報をコンピュータユーザに表示する陰極線管(CRT)や液晶表示装置(LCD)等の表示装置1021に接続してもよい。英数字や他のキーを含む、英数字入力装置1022をバス1011に接続して、情報及び命令の選択を処理装置1012に通信するようにしてもよい。付加的なユーザ入力装置として、マウス、トラックボール、トラックパッド、スタイラス、カーソル方向キー等のカーソルコントロール1023があり、バス1011に接続して方向情報及び命令の選択を処理装置1012に通信し、表示装置1021でカーソルの動きを制御する。
【0087】
バス1011に接続することがある他の装置としてハードコピー装置1024があり、紙、フィルム等の媒体や、同様の種類の媒体に、命令やデータや他の情報を印刷するのに用いてもよい。さらに、スピーカー及び/又はマイクロフォン等の録音及び再生装置をバス1011に随意接続して、コンピュータシステム1000の音声インターフェースとしてもよい。バス1011に接続することがある他の装置として有線/無線通信機能1025があり、電話や携帯装置と通信する。
【0088】
システム1000の構成要素及び関連ハードウェアのいずれも、本発明において使用してもよいことに注意されたい。しかし、他の構成のコンピュータシステムが該装置のいくつか又は全てを含むことがあると考えることができる。
【0089】
上述の説明を読んだ当業者であれば、本発明の様々な変更や修正は明らかに違いないが、例として示し説明した特定の実施形態が限定的なものであると見なされることは全く意図していないことを理解すべきである。従って、様々な実施形態の詳細に対する言及はクレームの範囲を限定するためのものではなく、クレームはそれ自体で、本発明に不可欠と考えられる特徴だけを記載している。
【図面の簡単な説明】
【0090】
【図1】設定段階における認証局の処理の一実施形態のフロー図を示す。
【図2】設定段階における認証局の処理の一実施形態のフロー図を示す。
【図3】実用における証明書オーナの処理の一実施形態のフロー図を示す。
【図4】実用における証明書検証者の処理の一実施形態のフロー図を示す。
【図5】本発明の一実施形態による、認証局要素や、検証者要素や、オーナ要素を表す要素を示す。
【図6】本発明の一実施形態による、認証局と、証明書検証者と、証明書オーナとを有するシステム構成を示す。
【図7】Merkle木と比較したグラウンデッド・デンス・ハッシュ木の例を示す。
【図8】Merkle木と比較したグラウンデッド・デンス・ハッシュ木の例を示す。
【図9】k個のチェーンにつながれたグラウンデッド・デンス・ハッシュ木を示す。
【図10】標準的なコンピュータシステムのブロック図を示す。

【特許請求の範囲】
【請求項1】
有効ターゲットと無効ターゲットとを有する証明書データを生成する工程と、
前記証明書データを含む証明書を発行する工程とを含み、
前記有効ターゲットは、グラウンデッド・デンス・ハッシュ木の根の値であることを特徴とする方法。
【請求項2】
前記証明書データは、公開鍵と、シリアル番号と、前記証明書のオーナのIDとなるストリングと、発行日と、有効期限とからなるグループのうちの1つ又は複数をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記グラウンデッド・デンス・ハッシュ木は、ハッシュチェーンで増やされた最下列の葉を含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記グラウンデッド・ハッシュ木は、最下位の頂点の上の均衡した2分木と、前記最下位の頂点の上層の頂点ごとに一方向関数の結果として生成される値とを含み、
前記最下位の頂点には、ランダムに選ばれた値が割り当てられることを特徴とする請求項1に記載の方法。
【請求項5】
前記証明書は、前記有効ターゲットと前記無効ターゲットとを有する前記証明書データに対する認証局の署名をさらに含むことを特徴とする請求項1に記載の方法。
【請求項6】
前記証明書の有効性を定期的に更新する工程をさらに含み、
前記更新する工程において、前記無効ターゲットに対する新たな値を発行することを特徴とする請求項1に記載の方法。
【請求項7】
命令を記憶する1つ又は複数の記録可能媒体を有する製品であって、
前記命令は、システムによって実行されると、ある方法を前記システムに実行させるものであり、
前記方法は、
有効ターゲットと無効ターゲットとを有する証明書データを構成する工程と、
前記証明書データを含む証明書を発行する工程とを含み、
前記有効ターゲットは、グラウンデッド・デンス・ハッシュ木の根の値であることを特徴とする製品。
【請求項8】
前記証明書データは、公開鍵と、シリアル番号と、前記証明書のオーナのIDとなるストリングと、発行日と、有効期限とからなるグループのうちの1つ又は複数をさらに含むことを特徴とする請求項7に記載の製品。
【請求項9】
前記グラウンデッド・デンス・ハッシュ木は、ハッシュチェーンで増やされた最下列の葉を含むことを特徴とする請求項7に記載の製品。
【請求項10】
前記グラウンデッド・デンス・ハッシュ木は、最下位の頂点の上の均衡した2分木と、前記最下位の頂点の上層の頂点ごとに一方向関数の結果として生成される値とを含み、
前記最下位の頂点には、ランダムに選ばれた値が割り当てられることを特徴とする請求項7に記載の製品。
【請求項11】
前記証明書は、前記有効ターゲットと無効ターゲットとを有する前記証明書データに対する認証局の署名をさらに含むことを特徴とする請求項7に記載の製品。
【請求項12】
前記証明書の有効性を定期的に更新する工程をさらに含み、
前記更新する工程において、前記無効ターゲットに対する新たな値を発行することを特徴とする請求項7に記載の製品。
【請求項13】
外部ネットワークインターフェースと、
記憶装置と、
前記外部ネットワークインターフェースと前記記憶装置とに接続されている処理装置とを含み、
前記処理装置は、有効ターゲットと無効ターゲットとを含む証明書データを有する証明書を発行し、
前記有効ターゲットは、グラウンデッド・デンス・ハッシュ木の根の値であることを特徴とする装置。
【請求項14】
有効ターゲットと無効ターゲットとを有する証明書データを生成する手段と、
前記証明書データを含む証明書を発行する手段とを含み、
前記有効ターゲットは、グラウンデッド・デンス・ハッシュ木の根の値であることを特徴とする装置。
【請求項15】
特定の間隔で、証明書の有効状態情報に対するリクエストを受信する工程と、
前記特定の間隔に対応する灰色頂点の補ノードの値を計算する工程と、
前記リクエスト元に前記補ノードの値を送信する工程とを含む方法。
【請求項16】
前記リクエスト元に補ノードの値を送信する工程において、
前記リクエスト元がどの補ノードの値が必要であるかを示していない場合、全ての補ノードの値を前記リクエスト元に送信し、
前記リクエスト元がどの補ノードの値が必要であるかを示している場合、リクエストされた補ノードの値を前記リクエスト元に送信することを特徴とする請求項15に記載の方法。
【請求項17】
前記特定の間隔に対応する灰色頂点の補ノードの値を計算する工程は、前記証明書が無効になっている場合に実行されることを特徴とする請求項15に記載の方法。
【請求項18】
無効ターゲットに対応する値を取り出す工程と、
前記値を前記リクエスト元に送信する工程とをさらに含むことを特徴とする請求項15に記載の方法。
【請求項19】
前記無効ターゲットに対応する値を取り出す工程、及び、前記値を前記リクエスト元に送信する工程は、前記証明書が無効になっている場合に生じることを特徴とする請求項18に記載の方法。
【請求項20】
前記無効ターゲットに対応する値を取り出す工程において、前記無効ターゲットのプリイメージを取り出すことを特徴とする請求項18に記載の方法。
【請求項21】
命令を記憶する1つ又は複数の記録可能媒体を有する製品であって、
前記命令は、システムによって実行されると、ある方法を前記システムに実行させるものであり、
前記方法は、
特定の間隔で、証明書の有効状態情報に対するリクエストを受信する工程と、
前記特定の間隔に対応する灰色頂点の補ノードの値を計算する工程と、
前記リクエスト元に前記補ノードの値を送信する工程とを含むことを特徴とする製品。
【請求項22】
前記リクエスト元に補ノードの値を送信する工程において、
前記リクエスト元がどの補ノードの値が必要であるかを示していない場合、全ての補ノードの値を前記リクエスト元に送信し、
前記リクエスト元がどの補ノードの値が必要であるかを示している場合、リクエストされた補ノードの値を前記リクエスト元に送信することを特徴とする請求項21に記載の製品。
【請求項23】
前記特定の間隔に対応する灰色頂点の補ノードの値を計算する工程は、前記証明書が無効になっている場合に実行されることを特徴とする請求項21に記載の製品。
【請求項24】
無効ターゲットに対応する値を取り出す工程と、
前記値を前記リクエスト元に送信する工程とをさらに含むことを特徴とする請求項21に記載の製品。
【請求項25】
前記無効ターゲットに対応する値を取り出す工程、及び、前記値を前記リクエスト元に送信する工程は、前記証明書が無効になっている場合に生じることを特徴とする請求項24に記載の製品。
【請求項26】
前記無効ターゲットに対応する値を取り出す工程において、前記無効ターゲットのプリイメージを取り出すことを特徴とする請求項24に記載の製品。
【請求項27】
特定の間隔で、証明書の有効状態情報に対するリクエストが行われる外部ネットワークインターフェースと、
記憶装置と、
前記外部ネットワークインターフェースと前記記憶装置とに接続されている処理装置とを含み、
前記処理装置は、特定の間隔で証明書の有効状態情報に対する前記リクエストを受信し、前記特定の間隔に対応する灰色頂点の補ノードの値を計算し、前記リクエスト元に前記補ノードの値を送信することを特徴とする装置。
【請求項28】
オーナに属する証明書を取得する工程と、
前記証明書が有効期限切れかどうか、前記証明書中の証明書情報が正確かどうか、前記証明書中の認証局の署名が有効であるかどうかを判断する工程と、
有効プルーフを取得する工程と、
前記プルーフが正確かどうか判断する工程と、
前記プルーフが正確であると判断された場合、前記証明書を受け付ける工程とを含む方法。
【請求項29】
前記証明書は、有効ターゲットと無効ターゲットとを有する証明書データを含み、前記有効ターゲットは、木の根の値であることを特徴とする請求項28に記載の方法。
【請求項30】
前記木の根を計算する工程と、
前記計算した木の根と前記有効ターゲットとを比較する工程と、
前記計算した根が前記有効ターゲットに一致する場合、前記証明書が有効であると判断する工程とをさらに含むことを特徴とする請求項29に記載の方法。
【請求項31】
前記木の根を計算する工程は、i番目の灰色頂点の値と、前記i番目の灰色頂点の補ノードの値とを用いて実行されることを特徴とする請求項30に記載の方法。
【請求項32】
前記証明書中の無効ターゲットと、元の無効ターゲット値に適用した関数を示す値とを比較する工程をさらに含むことを特徴とする請求項30に記載の方法。
【請求項33】
前記証明書が有効期限切れである場合や、前記証明書情報が正確ではない場合や、前記認証局の署名が有効ではない場合、前記証明書を拒否する工程をさらに含むことを特徴とする請求項29に記載の方法。
【請求項34】
前記有効についてのプルーフを受信していない場合や、前記有効プルーフが正確ではない場合、前記証明書を拒否する工程をさらに含むことを特徴とする請求項29に記載の方法。
【請求項35】
命令を記憶する1つ又は複数の記録可能媒体を有する製品であって、
前記命令は、システムによって実行されると、ある方法を前記システムに実行させるものであり、
前記方法は、
オーナに属する証明書を取得する工程と、
証明書が有効期限切れかどうか、前記証明書中の証明書情報が正確かどうか、前記証明書中の認証局の署名が有効であるかどうかを判断する工程と、
有効プルーフを取得する工程と、
前記プルーフが正確かどうか判断する工程と、
前記プルーフが正確であると判断された場合、前記証明書を受け付ける工程とを含むことを特徴とする製品。
【請求項36】
前記証明書は、有効ターゲットと無効ターゲットとを有する証明書データを含み、前記有効ターゲットは、木の根の値であることを特徴とする請求項35に記載の方法。
【請求項37】
前記木の根を計算する工程と、
前記計算した木の根と前記有効ターゲットとを比較する工程と、
前記計算した根が前記有効ターゲットに一致する場合、前記証明書が有効であると判断する工程とをさらに含むことを特徴とする請求項35に記載の方法。
【請求項38】
前記木の根を計算する工程は、i番目の灰色頂点の値と、前記i番目の灰色頂点の補ノードの値とを用いて実行されることを特徴とする請求項37に記載の方法。
【請求項39】
前記証明書中の無効ターゲットと、元の無効ターゲット値に適用した関数を示す値とを比較する工程をさらに含むことを特徴とする請求項35に記載の方法。
【請求項40】
前記証明書が有効期限切れである場合や、前記証明書情報が正確ではない場合や、前記認証局の署名が有効ではない場合、前記証明書を拒否する工程をさらに含むことを特徴とする請求項35に記載の方法。
【請求項41】
前記有効プルーフを受信していない場合や、前記有効プルーフが正確ではない場合、前記証明書を拒否する工程をさらに含むことを特徴とする請求項35に記載の方法。
【請求項42】
特定の間隔で、証明書の有効状態情報に対するリクエストが行われる外部ネットワークインターフェースと、
記憶装置と、
前記外部ネットワークインターフェースと前記記憶装置とに接続されている処理装置とを含み、
前記処理装置は、
オーナに属する証明書を取得し、
証明書が有効期限切れかどうか、前記証明書中の証明書情報が正確かどうか、前記証明書中の認証局の署名が有効であるかどうかを判断し、
有効プルーフを取得し、
前記プルーフが正確かどうか判断し、
前記プルーフが正確であると判断された場合、前記証明書を受け付けることを特徴とする装置。
【請求項43】
複数の証明書に対する有効プルーフにアクセスする工程と、
デンス・ハッシュ木を用いて、前記複数の証明書のうちの複数の証明書の有効性を判断する工程とを含む方法。
【請求項44】
前記デンス・ハッシュ木は、グラウンデッド・デンス・ハッシュ木からなることを特徴とする請求項43に記載の方法。
【請求項45】
特定の間隔で、証明書の有効状態情報に対するリクエストが行われる外部ネットワークインターフェースと、
記憶装置と、
前記外部ネットワークインターフェースと前記記憶装置とに接続されている処理装置とを含む装置であって、
前記処理装置は、複数の証明書に対する有効プルーフにアクセスし、デンス・ハッシュ木を用いて前記複数の証明書のうちの複数の証明書の有効性を判断することを特徴とする装置。
【請求項46】
デンス・ハッシュ木を用いて、証明書が有効かどうか判断する工程と、
複数の有効プルーフで償却される単一のデジタル署名によって、無効プルーフを処理する工程とを含む方法。
【請求項47】
特定の間隔で、証明書の有効状態情報に対するリクエストが行われる外部ネットワークインターフェースと、
記憶装置と、
前記外部ネットワークインターフェースと前記記憶装置とに接続されている処理装置とを含み、
前記処理装置は、デンス・ハッシュ木を用いて有効プルーフを処理し、デジタル署名によって無効プルーフを処理することを特徴とする装置。
【請求項48】
証明書の有効プルーフにアクセスする工程と、
グラウンデッド・デンス・ハッシュ木を用いて、前記証明書の有効性を判断する工程とを含む方法。
【請求項49】
特定の間隔で、証明書の有効状態情報に対するリクエストが行われる外部ネットワークインターフェースと、
記憶装置と、
前記外部ネットワークインターフェースと前記記憶装置とに接続されている処理装置とを含み、
前記処理装置は、証明書の有効プルーフにアクセスし、グラウンデッド・デンス・ハッシュ木を用いて、前記証明書の有効性を判断することを特徴とする装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公表番号】特表2007−506365(P2007−506365A)
【公表日】平成19年3月15日(2007.3.15)
【国際特許分類】
【出願番号】特願2006−526955(P2006−526955)
【出願日】平成16年9月9日(2004.9.9)
【国際出願番号】PCT/US2004/029764
【国際公開番号】WO2005/029445
【国際公開日】平成17年3月31日(2005.3.31)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】