(57)【特許請求の範囲】
【請求項１】
組み合わされたデジタル証明書を生成するための方法であって、
コンピュータにおいてＮ個のランダム値を生成することであって、Ｎが２以上の整数である、前記生成することと、
前記コンピュータから、Ｎ個の認証機関に要求を提供することと、
前記コンピュータにおいて、前記要求に応答して前記Ｎ個の認証機関の各々からデジタル証明書を受け取ることと、
前記コンピュータにおいて、前記Ｎ個の認証機関の各々から受け取ったデータの組み合わせに基づいて前記コンピュータに対する秘密鍵を生成することと、
前記コンピュータにおいて、前記Ｎ個の認証機関の各々から受け取った各デジタル証明書の組合せに基づいて組み合わされたデジタル証明書を生成することと、
を含み、
前記Ｎ個の認証機関の各々から受け取った各デジタル証明書が楕円曲線暗号に基づいて生成され、
前記コンピュータに対する前記秘密鍵が、
0006043804.tif 000009
のように構成され、ここで、
ＳＫｅｙが前記コンピュータに対する前記秘密鍵を示し、
ｒｉが前記コンピュータにより生成される前記Ｎ個のランダム値の前記所与の１つを示し、
ｅｉが前記Ｎ個の認証機関の認証機関ｉにおいて実行されるハッシュ関数の結果を示し、
ｓｉが前記認証機関ｉから提供される整数を示し、
ｎが前記楕円曲線上の多数の点を示す、方法。
【請求項２】
請求項１に記載の方法であって、
前記コンピュータが、前記コンピュータの製造時に前記Ｎ個のランダム値の１つを生成し、引き続いて前記Ｎ個のランダム値の残りを生成するように構成される、方法。
【請求項３】
請求項１に記載の方法であって、
前記Ｎ個の認証機関の各々から受け取った各デジタル証明書が互いに独立して生成される、方法。
【請求項４】
請求項３に記載の方法であって、
Ｎが少なくとも３である、方法。
【請求項５】
組み合わされたデジタル証明書を生成するための方法であって、
コンピュータにおいてランダム値を生成することと、
第１のデジタル証明書を生成する、２つの認証機関の第１の認証機関に前記ランダム値を提供することと、
前記コンピュータにおいて、前記２つの認証機関の第２の認証機関から前記第１のデジタル証明書とデジタル証明書とを受け取ることであって、前記デジタル証明書が前記第１の認証機関において生成されるデジタル証明書に基づく、前記受け取ることと、
前記コンピュータにおいて、前記２つの認証機関の各々からの数に基づいて前記コンピュータに対する秘密鍵を生成することと、
前記コンピュータにおいて、前記コンピュータにおいて受け取った前記デジタル証明書に含まれるデータに基づいて組み合わされたデジタル証明書を生成することと、
を含み、
前記２つの認証機関の前記第２の認証機関から受け取った前記デジタル証明書が楕円曲線暗号に基づいており、
前記コンピュータに対する前記秘密鍵が、ＳＫｅｙ＝ｅ（ｓ１＋ｒ）＋ｓ２  ｍｏｄ  ｎとなるように構成され、
ＳＫｅｙが前記コンピュータに対する前記秘密鍵を示し、
ｒが前記コンピュータにより生成される前記ランダム値を示し、
ｓ１が前記２つの認証機関の前記第１の認証機関から提供される整数を示し、
ｓ２が前記２つの認証機関の前記第２の認証機関から提供される整数を示し、
ｅが前記２つの認証機関の前記第２の認証機関において実行されるハッシュ関数の結果を示し、
ｎがｓ１とｓ２とを計算するために用いられる楕円曲線における多数の点を示す、方法。
【請求項６】
請求項５に記載の方法であって、
第三者においてＳＫｅｙに対応する公開鍵を生成することを更に含む、方法。
【請求項７】
コンピュータ可読命令をストアするメモリと、
前記メモリにアクセスして前記コンピュータ可読命令を実行するための処理ユニットと、
を含むシステムであって、
前記コンピュータ可読命令が証明書マネジャーを含み、
前記証明書マネジャーが、
Ｎが１以上の整数である、Ｎ個のランダム値の生成を要求し、
それぞれが同じ証明書を有する少なくとも２つの異なる認証機関の少なくとも１つの認証機関からデジタル証明書を要求し、
後の時間に少なくとも１つの付加的な機関の秘密鍵の関数を取得し、
１つの機関の秘密鍵の関数と前記少なくとも１つの付加的な機関の秘密鍵の前記後に取得した関数とに基づいて、公開−秘密鍵ペアの秘密鍵を生成する、
ように構成され、
前記要求が前記Ｎ個のランダム値の所与の１つを含み、
前記証明書マネジャーに対する前記少なくとも２つの異なる認証機関の各々により生成される前記デジタル証明書が互いに独立して生成され、
前記コンピュータに対する前記秘密鍵が、
0006043804.tif 000010
のように構成され、ここで、
ＳＫｅｙが前記コンピュータに対する前記秘密鍵を示し、
ｒｉが前記コンピュータにより生成される前記Ｎ個のランダム値の前記所与の１つを示し、
ｅｉが前記Ｎ個の認証機関の認証機関ｉにおいて実行されるハッシュ関数の結果を示し、
ｓｉが前記認証機関ｉから提供される整数を示し、
ｎが楕円曲線上の多数の点を示す、システム。
【請求項８】
請求項７に記載のシステムであって、
前記証明書マネジャーが前記秘密鍵を生成するために楕円曲線暗号を用いる、システム。
【請求項９】
請求項７に記載のシステムであって、
前記少なくとも２つの異なる認証機関が、少なくとも３つの異なる認証機関を含む、システム。
【請求項１０】
請求項７に記載のシステムであって、
前記システムがクリプトプロセッサである、システム。
【請求項１１】
或る方法を実行するためのコンピュータ実行可能な命令を有する持続性（ｎｏｎ−ｔｒａｎｓｉｓｔｏｒｙ）コンピュータ可読媒体であって、前記方法が、
Ｎ個のランダム値の生成を要求することであって、Ｎが１以上の整数である、前記要求することと、
同じ証明書を有する少なくとも２つの異なる認証機関の少なくとも１つの認証機関からデジタル証明書を要求することであって、前記要求が前記Ｎ個のランダム値の所与の１つを含む、前記要求することと、
公開−秘密鍵ペアの秘密鍵の生成を要求することであって、前記秘密鍵が前記少なくとも２つの異なる認証機関の各々の秘密鍵に基づいて生成される、前記要求することと、
を含み、
前記コンピュータに対する前記秘密鍵が、
0006043804.tif 000011
のように構成され、ここで、
ＳＫｅｙが前記コンピュータに対する前記秘密鍵を示し、
ｒｉが前記コンピュータにより生成される前記Ｎ個のランダム値の前記所与の１つを示し、
ｅｉが前記Ｎ個の認証機関の認証機関ｉにおいて実行されるハッシュ関数の結果を示し、
ｓｉが前記認証機関ｉから提供される整数を示し、
ｎが前記楕円曲線上の多数の点を示す、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概してデジタル証明書に関し、更に特定して言えば、組み合わされたデジタル証明書を生成するための装置及び方法に関連する。
【背景技術】
【０００２】
公開鍵暗号化とは、プレーンテキストをロック又は暗号化するための１つの鍵、及び暗号化テキストをアンロック又は解読するためのもう１つの鍵、の２つの個別の鍵を必要とする暗号システムを指す。これらの鍵の一方は公にされ又は公開され（公開鍵）、他方はプライベート（秘密鍵）に保たれる。ロック／暗号化鍵が公にされた鍵である場合、そのシステムは、公からアンロック鍵オーナーへのプライベート通信を可能とする。アンロック／解読鍵が公にされた鍵である場合、このシステムは、秘密鍵のオーナーによりロックされたドキュメントの署名認証装置として機能する。
【０００３】
デジタル署名を提供するために幾つかの異なる公開鍵プリミティブを用いることができる。幾つかは、離散対数問題に基づいており、離散対数ベースの公開鍵クリプトシステムと呼ばれる。公開鍵クリプトシステムは、機密性、インテグリティ、認証、又は否認防止機能を提供するために種々の方式で用いることができる。否認防止又は認証は、公開鍵デジタル証明書などのデジタル証明書を介して達成され得る。公開鍵デジタル証明書は、データとデータの署名との２つの部分を含み得る。データは、公開鍵と、信頼できる第三者機関、即ち認証機関（ＣＡ）、に対する加入者（subscriber）の特有の識別子とを含み得る。加入者の公開鍵上のＣＡの署名が、加入者公開鍵と加入者のアイデンティティ（ＩＤ）との間の信頼のおけるつながりをもたらす。
【発明の概要】
【０００４】
１つの例が或るシステムに関連し、このシステムは、コンピュータ可読命令をストアするメモリと、このメモリにアクセスするため及びコンピュータ可読命令を実行するための処理ユニットとを含み得る。コンピュータ可読命令は証明書マネジャーを含む。証明書マネジャーは、Ｎ個のランダム値の生成を要求するように構成され得、Ｎは１に等しいか１より大きい整数である。証明書マネジャーは更に、少なくとも２つの異なる認証機関のうち少なくとも１つの認証機関からデジタル証明書を要求するようにも構成され得る。この要求は、Ｎ個のランダム値の所与の一つを含む。証明書マネジャーは更に、公開−秘密鍵ペアの秘密鍵を、少なくとも２つの異なる認証機関の各々の秘密鍵に基づいて生成するようにも構成され得る。
【０００５】
別の例が、組み合わされたデジタル証明書を生成するための方法に関連する。この方法は、コンピュータにおいて、Ｎ個のランダム値を生成することを含み得、Ｎは２に等しいか２より大きい整数である。この方法は更に、このコンピュータから、Ｎ個のランダム値の所与の一つを含む要求を、Ｎ個の認証機関のうち対応する認証機関に提供することを含み得る。この方法は更に、このコンピュータにおいて、Ｎ個の認証機関の各々からデジタル証明書を受け取ることを含み得る。この方法は更に、このコンピュータにおいて、Ｎ個の認証機関の各々から受け取ったデータの組み合わせに基づいて、このコンピュータに対する秘密鍵を生成することを含み得る。この方法は更に、このコンピュータにおいて、Ｎ個の認証機関の各々から受け取った各デジタル証明書の組合せに基づいて、組み合わされたデジタル証明書を生成することを含み得る。
【０００６】
更に別の例が、組み合わされたデジタル証明書を生成するための方法に関連する。この方法は、コンピュータにおいて、ランダム値を生成することを含み得る。この方法は更に、このコンピュータから、ランダム値を２つの認証機関のうちの第１の認証機関に提供することを含み得る。この方法は更に、このコンピュータにおいて、２つの認証機関のうちの第２の認証機関からデジタル証明書を受け取ることを含み得る。デジタル証明書は、第１の認証機関において生成されるデジタル証明書に基づく。この方法は更に、このコンピュータにおいて、２つの認証機関の各々からの数に基づいてこのコンピュータに対する秘密鍵を生成することを含み得る。この方法は更に、このコンピュータにおいて、このコンピュータにおいて受け取ったデジタル証明書に含まれるデータに基づいて、組み合わされたデジタル証明書を生成することを含み得る。
【図面の簡単な説明】
【０００７】
【図１】図１は、組み合わされたデジタル証明書を生成するためのシステムの一例を図示する。
【０００８】
【図２Ａ】図２Ａは、組み合わされたデジタル証明書を生成するための例示の方法のフローチャートを図示する。
【図２Ｂ】図２Ｂは、組み合わされたデジタル証明書を生成するための例示の方法のフローチャートを図示する。
【０００９】
【図３Ａ】図３Ａは、組み合わされたデジタル証明書を生成するための例示の方法の別のフローチャートを図示する。
【図３Ｂ】図３Ｂは、組み合わされたデジタル証明書を生成するための例示の方法の別のフローチャートを図示する。
【００１０】
【図４】図４は、組み合わされたデジタル証明書を生成するためのシステムの別の例を図示する。
【発明を実施するための形態】
【００１１】
一例において、組み合わされたデジタル証明書を生成及び管理するためにクリプトプロセッサなどのコンピュータを用いることができる。組み合わされたデジタル証明書は、複数の認証機関から受信したデータに基づいて生成される公開鍵を生成するためのデータを含み得る。また、このコンピュータは更に、対応する秘密鍵を生成することもでき、対応する秘密鍵は組み合わされたデジタル証明書から分離して（及び安全に）ストアされ得る。秘密鍵も、複数の認証機関から提供されるデータに基づき得る。このようにして、たとえ無許可のユーザー（例えば、ハッカー）により複数の認証機関のうちの一つが危殆化されたとしても、このような無許可のユーザーは秘密鍵を判定することができない。
【００１２】
図１は、組み合わされたデジタル証明書３を生成及び管理するためのシステム２の一例を図示する。組み合わされたデジタル証明書３は、これらに限定されないが、例えば、エルガマル（Ｅｌ−Ｇａｍａｌ）署名、シュノア（Ｓｃｈｎｏｒｒ）署名、ＤＳＡ（Digital Secure Algorithm）、又はそれらの変形など、任意の離散対数公開鍵システムを用いることにより生成され得る。これらの方式の任意のものが、本質的に低いメモリ及び演算要件を提供する楕円曲線暗号（ＥＣＣ）を用いることができる。システム２は、例えば、機械読み取り可能な命令をストアするためのメモリ６を含むコンピュータ４を含み得る。コンピュータ４は、例えば、クリプトプロセッサ、特定用途向け集積回路チップ（ＡＳＩＣ）、スマートカード、スマートフォン、デスクトップコンピュータ、ノートブックコンピュータ、又は同様のものとして実装され得る。メモリ６は、例えば、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、ハードドライブなど、持続性（non-transistory）コンピュータ可読媒体などとして実装され得る。メモリ６の幾つかの部分は、要求に応じて外部システムによりアクセスされ得る。しかし、幾つかの例において、メモリ６の幾つかの部分は、セキュリティ保護され得、コンピュータ４の内部構成要素によってのみアクセス可能である。コンピュータ４は更に、メモリ６にアクセスするための及び機械読み取り可能な命令を実行するための処理ユニット８を含み得る。処理ユニット８は、例えば、プロセッサコアとして実装され得る。メモリ６は、組み合わされたデジタル証明書３を生成、改変、及び／又は管理することができる証明書マネジャー１０を含み得、組み合わされたデジタル証明書３もメモリ６にストアされ得る。他の例では、証明書マネジャー１０は、スマートフォン、又はコンピュータ４を収容する他のデバイスなど、サーバー又はホストシステムなどの外部システムなどの別のシステムにストアされ得ることを理解されたい。
【００１３】
証明書マネジャー１０は、或る条件が合致することに応答して組み合わされたデジタル証明書３の生成を開始し得る。例えば、コンピュータ４がクリプトプロセッサとして実装される場合、証明書マネジャー１０は、別のシステムからの起動要求に応答してデジタル証明書の生成を開始し得る。他の例では、証明書マネジャー１０は、ユーザー入力に応答して、組み合わされたデジタル証明書３の生成を開始し得る。
【００１４】
コンピュータ４は、ネットワーク１４を介してＮ個の認証機関１２と通信することができ、ここで、Ｎは２より大きいか又は２に等しい整数である。ネットワーク１４は、例えば、パブリックネットワーク（例えば、インターネット）、プライベートネットワーク、又は同様のものとして実装され得る。Ｎ個の認証機関１２の各認証機関１２は、デジタル証明書を発行するシステムとして実装され得る。デジタル証明書は、その証明書の指定の被認証者により公開鍵の所有権を証明する。これにより、他者（第三者）は、証明された公開鍵に対応する秘密鍵により成された署名又はアサートに依存することができる。このような信頼関係のモデルにおいて、１〜Ｎ個の認証機関１２の各々は、証明書の被認証者（オーナー）と証明書に依存する第三者との両方により信頼されている、信頼し得る第三者機関である。
【００１５】
一例において、組み合わされたデジタル証明書３の生成の開始に応答して、証明書マネジャー１０は、Ｎ個のランダム数が処理ユニット８により生成されることを要求し得、ここで、ランダム数は「ｒ１．．．ｒＮ」と呼ばれ得る。幾つかの例において、証明書マネジャー１０は、ランダム数の生成のための比較的大きな時間期間にわたって個別の要求を提供することができることに留意されたい。例えば、証明書マネジャー１０は、製造時にｒ１の生成を要求するように構成され得る。また、証明書マネジャー１０は、コンピュータ４を顧客サイトに搬送した後ｒ２〜ｒＮの生成を要求するように構成され得る。一例として、コンピュータ４は、ｒ１と埋め込まれ得、顧客サイトにおける起動時にｒ２〜ｒＮの生成を要求するように構成され得る。
【００１６】
証明書マネジャー１０は、ｒ１（又はその倍数）を認証機関１に送信することができる。応答して、認証機関１は、コンピュータ４に対する公開鍵を生成するためのデータを含み得るデジタル証明書１を返すことができ、この公開鍵は認証機関１に関連付けられている。認証機関１は更に、認証機関１に関連付けられている公開鍵に対応する秘密鍵を生成するため整数などのデータを含み得る。幾つかの例において、デジタル証明書１、及び秘密鍵と認証機関１に関連付けられている公開鍵とを生成するためのデータは、コンピュータ４の製造時にコンピュータ４に埋め込まれ得ることに留意されたい。また、証明書マネジャー１０は、ｒ２．．．ｒＮを、２〜Ｎ個の認証機関１２の各々の対応する認証機関１２に送信することができる。応答して、２〜Ｎ個の認証機関１２の各々は、コンピュータ４に、対応するデジタル証明書、及び公開鍵とコンピュータ４に対する対応する秘密鍵とを生成するためのデータを提供することができ、これは、対応する２〜Ｎ個の認証機関１２に関連付けられ得、このデータは証明書データと呼ばれ得る。証明書マネジャー１０及び／又は処理ユニット８は、コンピュータ４に対する秘密鍵を生成するため１〜Ｎ個の認証機関１２の各々によって提供される証明書データを用いることができ、秘密鍵はＳＫｅｙ１６と呼ばれ得る。また、幾つかの例において、証明書マネジャー１０は更に、ＳＫｅｙ１６に対応するコンピュータ４に対する公開鍵を生成するためのデジタル証明書１〜Ｎに基づく公開鍵データ１８を提供することもでき、これはＰＫｅｙと呼ばれ得る。幾つかの例において、公開鍵データ１８は第三者に提供され得る。他の例において、公開鍵データ１８は、他の方法（例えば、登録サービス）を介して第三者により既知であり得る。幾つかの例において、証明書マネジャー１０は更に、公開鍵データ１８を含み得る組み合わされた証明書３を生成することもできる。幾つかの例において、組み合わせ証明書３は更に、１〜Ｎ個の認証機関１２の各々を識別するためのデータを含み得る。この手法を用いることにより、証明書マネジャー１０は、１〜Ｎ個の認証機関１２の各々によって提供されるデジタル証明書に基づく組み合わされたデジタル証明書３を生成することができる。また、この手法を用いることにより、１〜Ｎ個の認証機関１２のいずれも互いに通信する必要はない。
【００１７】
別の例では、デジタル証明書の生成の開始時に、証明書マネジャー１０は、１つのランダム数が処理ユニット８により生成されることを要求することができ、このランダム数はｒ１と呼ばれ得る。証明書マネジャー１０はｒ１を認証機関１に送信することができる。応答して、認証機関１は、デジタル証明書１、及び公開鍵とコンピュータ４に対する対応する秘密鍵とを生成するためのデータ（例えば、整数）を生成することができる。認証機関１は、コンピュータ４へ秘密鍵を生成するためのデータを転送し、デジタル証明書１を認証機関２に転送することができ、秘密鍵は認証機関１に関連付けられている。また、認証機関２は、デジタル証明書１が、認証されていないソース（例えば、ハッカー）からではなく認証機関１から生じていることを確実にするため、認証機関１を認証することができる。認証機関２は、デジタル証明書１に基づいてデジタル証明書２を生成し、デジタル証明書２を証明書マネジャー１０に転送することができ、デジタル証明書は、認証機関１及び認証機関２両方に関連付けられているＰＫｅｙを生成するための公開鍵データ１８を含み得る。認証機関２は更に、認証機関２に関連付けられている秘密鍵を生成するためのデータ（例えば、整数）を提供することもできる。証明書マネジャー１０及び／又は処理ユニット８は、認証機関１及び認証機関２から提供されるデータに基づいてＳＫｅｙ１６を生成することができ、ＳＫｅｙ１６はＰＫｅｙに対応する。証明書マネジャー１０及び／又は処理ユニット８は更に、デジタル証明書２に基づいて組み合わされたデジタル証明書３を生成することもできる。幾つかの例において、組み合わされた証明書３は、ＰＫｅｙを生成するために用いることができる公開鍵データ１８を含み得る。この手法を用いることにより、組み合わされた証明書のサイズが低減され得、メモリが節約され得る。
【００１８】
いずれの手法においても、組み合わされたデジタル証明書３は、１〜Ｎ個の認証機関１２によって提供されるデータに基づき得る。第１の手法において、たとえ無許可のユーザー（例えば、ハッカー）が１〜Ｎ個の認証機関１２の任意の一つへのアクセスを得たとしても、組み合わされたデジタル証明書３は危殆化されない。実際、組み合わされたデジタル証明書３のセキュリティを危殆化するためには、このような無許可のユーザーは、１〜Ｎ個の認証機関１２の全てを危殆化させる必要があり得る。第２の手法において、認証機関１は認証機関２により認証されるため、認証機関１によって提供されるデータは、認証機関２により信頼され得る。このため、組み合わされたデジタル証明書３は、かなりのセキュリティ違反耐性を提供する。また、このようなセキュリティ違反に対する責任は、１〜Ｎ個の認証機関１２の各々を介して分配され得る。
【００１９】
上述の構造的及び機能的特徴を考慮すると、図２Ａ、図２Ｂ、図３Ａ、及び図３Ｂの例を参照すれば例の手法がより良く分かるであろう。説明を簡潔にするため、図２Ａ、図２Ｂ、図３Ａ、及び図３Ｂの例示の方法は、順次実行されるように示されており説明されているが、本例は、図示した順序には限定されず、幾つかのアクションが他の例では本明細書に図示及び記載したものとは異なる順で及び／又は同時に起こり得る。
【００２０】
図２Ａ及び図２Ｂは、図１に示す組み合わされたデジタル証明書３など、組み合わされたデジタル証明書を生成するために用いられ得る例示の方法２００の例示のフローチャートを図示する。
【００２１】
２１０において、証明書生成が開始され得る。証明書生成開始は、例えば、図１に示す証明書マネジャー１０などの証明書マネジャーにより、開始され得る。このような状況において、証明書マネジャーは、クリプトプロセッサなどのコンピュータで実行され得る。方法２００において、組み合わされた証明書が、ＥＣＣからの手法を用いることにより生成され得る。しかし、他の暗号手法が付加的に又は代替として用いられ得る。ＥＣＣにおいて、曲線Ｅに沿った点た有限体を定義できる。一例において、式１は、方法２００に対して用いられる有限体を定義できる。
式１：  ｙ２＝ｘ３＋ａｘ＋ｂ
ここで、Ｐ＝｛ｘＰ，ｙＰ｝、Ｑ＝｛ｘＱ、ｙＱ｝であり、Ｐ及びＱは曲線Ｅ上の点である。
【００２２】
また、ＥＣＣにおいて、曲線Ｅ上の点の数は、有限整数「ｎ」として表され得る。このような状況において、式２及び式３は、ｎ、Ｐ、及びＱ間の関係を表し得る。
式２：  ｎＰ＝Ｐ＋Ｐ＋Ｐ．．．＋Ｐ
式３：  Ｑ＝ｎＰ
【００２３】
２２０において、例えば、図１に示す処理ユニット８などの処理ユニットにより、Ｎ個のランダム数が生成され得る。Ｎ個のランダム数の各々は、曲線Ｅ上の点として計算され得る。例えば、一例において、処理ユニットはランダム数ｒｉを生成することができ、ここで、ｉは１〜Ｎの間の整数である。処理ユニットは、ｒｉ・Ｇを計算するために楕円曲線点乗算を用いることができる。ここで、Ｇは、ｒｉ・Ｇが曲線Ｅ上の点であるように、生成器点Ｇにおいて定義される曲線Ｅ上の点の数である。２３０において、証明書マネジャーは、ランダム数ｒｉを対応する認証機関ｉに提供することができ、認証機関ｉは、図１に示す１〜Ｎ個の認証機関１２の一つとして実装され得る。このような状況において、認証機関ｉは、ｃＣＡｉとして示される秘密鍵及びＱＣＡｉとして示される公開鍵を有し得る。このような状況において、式４が、ｃＣＡｉとＱＣＡｉとの間の関係を示すことができる。式４は楕円曲線乗算を示すことに留意されたい。
式４：  ＱＣＡｉ＝ｃＣＡｉ．Ｇ
【００２４】
一例において、各加入者Ａに対し、各認証機関ｉは、異なるアイデンティティ数（例えば、特有のＩＤ）を割り当てることができる。このような状況において、各アイデンティティ数は、Ｎ個の認証機関の各々に起因する各アイデンティティ数の合計として実装され得る（ＩＤＡ＝Σ（ＩＤＡ））。代替として、認証機関ｉの所与の一つが、他の認証機関ｉにより共有される特有のアイデンティティ数を有し得る。２４０において、認証機関ｉはｋｉ．Ｇを計算することができ、ここで、ｋｉはインタバル［１，ｎ−１］内のランダム数である。２５０において、認証機関ｉは、Ｐｉを計算するために式５を用い得る。式５が楕円曲線加算を示すことに留意されたい。
式５：  Ｐｉ＝ｒｉ．Ｇ＋ｋｉ．Ｇ
【００２５】
２６０において、認証機関ｉはｅｉを計算するために式６を用い得る。
（式６）
0006043804.tif 000002
ここで、Ｈは１方向ハッシュ関数であり、Ｐｉは式５により得られる楕円曲線加算の結果の点であり、ＩＤはコンピュータに対する特有の識別子である。
【００２６】
２７０において、認証機関ｉは、ｓｉを計算するために式７を又は代替として式８を用い得る。
式７：  ｓｉ＝ｅｉ．ｋｉ−ｃＣＡｉ（ｍｏｄ  ｎ）
式８：  ｓｉ＝ｋｉ−ｅｉ．ｃＣＡｉ（ｍｏｄ  ｎ）
【００２７】
２８０において、認証機関ｉは、少なくともＰｉ、ｓｉ及びｅｉが証明書マネジャーに供給されるように、デジタル証明書ｉ及び他のデータを証明書マネジャーに提供することができる。２９０において、ｉがＮより小さいか又はＮに等しいかについて判定が成され得る。この判定が肯定（例えば、はい）である場合、方法２００は３００に進み得る。判定が否定（例えば、いいえ）である場合、方法は３１０（図２Ｂ）に進み得る。３００において、ｉの値は１だけ増大され得、この方法は２３０まで戻り得る。
【００２８】
図２Ｂの３１０において、証明書マネジャーは、関連するコンピュータに対する秘密鍵を計算することができ、この秘密鍵は「ＳＫｅｙ」で示され得る。ＳＫｅｙは、例えば、コンピュータのセキュリティ保護メモリにストアされ得る。ｓｉを計算するために式７が用いられる例において、証明書マネジャーはＳＫｅｙを計算するために式９を用いることができる。代替として、ｓｉを計算するために式８が用いられる状況において、証明書マネジャーはＳＫｅｙを計算するために式１０を用いることができる。
式９：
0006043804.tif 000003
式１０：
0006043804.tif 000004
【００２９】
３２０において、証明書マネジャーは、関連するコンピュータに対するＳＫｅｙに対応する公開鍵を計算するために（例えば、第三者により）用いられ得る公開鍵データを判定することができ、この公開鍵は「ＰＫｅｙ」で示され得る。幾つかの例において、公開鍵データは、各認証機関ｉから提供されるＰｉを含み得る。幾つかの例において、式１１及び式１２を用いることにより、第三者はＰＫｅｙを導出するため公開鍵データを用いることができる。式１１及び式１２に示すように、ＰＫｅｙはＱＣＡに基づき得、これは、１〜Ｎ個の認証機関から受信した各ＱＣＡｉの合計として実装され得る。他の例において、第三者はＰＫｅｙを計算するために式１２及び式１３を用いることができる。
式１１：
0006043804.tif 000005
式１２：
0006043804.tif 000006
式１３：
0006043804.tif 000007
【００３０】
３３０において、組み合わされたデジタル証明書が生成され得る。組み合わされたデジタル証明書は、この組み合わされたデジタル証明書を生成するために用いられる各認証機関ｉを識別し得る。また、幾つかの例において、組み合わされたデジタル証明書は公開鍵データを含み得る。方法２００を用いることにより、認証機関ｉの各々の間で何の相互作用も必要とされない。また、ＥＣＣを用いることにより、他の暗号化方式と比較してメモリ利用の著しい低減が達成され得る。
【００３１】
図３Ａ及び図３Ｂは、図１に示す組み合わされたデジタル証明書３などの組み合わされたデジタル証明書を生成するために用いられ得る方法４００の別の例の例示のフローチャートを図示する。
【００３２】
４１０において、証明書生成が開始され得る。証明書生成開始は、例えば、図１に示す証明書マネジャー１０などの証明書マネジャーにより開始され得る。このような状況において、証明書マネジャーは、クリプトプロセッサなどのコンピュータで実行され得る。方法４００において、組み合わされたデジタル証明書は、ＥＣＣからの手法を用いることにより生成され得る。しかし、他の暗号手法が付加的に又は代替として用いられてもよい。一例において、方法４００のための有限体を定義するために式１を用いることができる。このような例において、楕円曲線Ｅは有限数の点「ｎ」を有し得る。また、式１において示すように、点Ｐ及びＱは曲線Ｅ上の点であり得る。更に、式２及び式３は、ｎ、Ｐ、及びＱ間の関係を定義できる。
【００３３】
４２０において、例えば、図１に示す処理ユニット８などの処理ユニットにより、ランダム数が生成され得る。ランダム数は曲線Ｅ上の点として計算され得る。例えば、一例において、処理ユニットはランダム数ｒを生成することができる。処理ユニットは、ｒ・Ｇを計算するため楕円曲線点乗算ｒを用いることができる。ここで、Ｇは、ｒ・Ｇが曲線Ｅ上の点であるように、生成器点Ｇにおいて定義される曲線Ｅ上の点の数である。４３０において、証明書マネジャーは認証機関１にランダム数ｒ・Ｇを提供することができ、この認証機関ｉは、図１に示す認証機関１として実装され得る。このような状況において、認証機関１は秘密鍵を有し得、この秘密鍵はｃＣＡ１と呼ばれ得、公開鍵はＱＣＡ１として示され得る。このような状況において、式４はｃＣＡ１とＱＣＡ１との間の関係を示すことができる。４４０において、認証機関１はｋ１・Ｇを計算することができ、ここで、ｋ１はインタバル［１，Ｎ−１］内のランダム数である。４５０において、認証機関１はＰ１を計算するために式５を用い得る。４６０において、認証機関１はｓ１を計算するために式１４を用い得る。
式１４：  ｓ１＝ｋ１＋ｃＣＡ１  ｍｏｄ  ｎ
【００３４】
４７０において、認証機関１は、少なくともｓ１を含むデータを証明書マネジャーに提供することができる。４７５において、認証機関１は認証機関２により認証され得る。このような認証は、認証機関１から提供されるデータが、実際に認証機関１から生じており、無許可のソース（例えば、ハッカー）からではないことを確実にし得る。４８０において、認証機関１は、認証機関２にＰ１及びｓ１を提供することができる。４９０（図３Ｂ）において、認証機関２はｋ２・Ｇを計算することができ、ここで、ｋ２はインタバル［１，Ｎ−１］内のランダム数である。５００において、認証機関２はＰを計算するために式１５を用い得る。式１５は楕円点乗算を用いることに留意されたい。
式１５:  Ｐ＝ｋ２．Ｇ＋Ｐ１
【００３５】
５１０において、認証機関２はｅを計算するために式１６を用い得る。
式１６：
0006043804.tif 000008
Ｈは一方向ハッシュ関数であり、ＩＤはコンピュータに対する特有の識別子である。
【００３６】
５２０において、認証機関２はｓ２を計算することができる。幾つかの例において、認証機関２はｓ２を計算するために式１７を用い得る。
式１７：  ｓ２＝ｅ（ｋ２＋ｃＣＡ２）ｍｏｄ  ｎ
【００３７】
５３０において、認証機関は、証明書マネジャーに、少なくともＰ（式１５）を含むデジタル証明書を提供することができる。また、認証機関は証明書マネジャーにｓ２を提供することができる。５４０において、処理ユニットは、コンピュータに対する秘密鍵を計算することができ、この秘密鍵は「ＳＫｅｙ」で示され得る。ｓ２を計算するために式１７が用いられる例において、処理ユニットはＳＫｅｙを計算するために式１８を用いることができる。
式１８：  ＳＫｅｙ＝ｅ（ｓ１＋ｒ）＋ｓ２  ｍｏｄ  ｎ
【００３８】
５５０において、証明書マネジャー及び／又は処理ユニットは、関連するコンピュータに対する公開鍵を生成するために用いることができる公開鍵データを判定することができ、この公開鍵は「ＰＫｅｙ」で示され得る。公開鍵データは、認証機関２から受信したＰを含み得る。このようにして、第三者がＰＫｅｙを計算するために公開鍵データを用いることができる。例えば、ＳＫｅｙを計算するために式１８が用いられる例において、第三者はＰＫｅｙを計算するために式１９及び式２０を用いることができる。
式１９：  ＱＣＡ＝ＱＣＡ１＋ＱＣＡ２
式２０：  ＰＫｅｙ＝ｅ（Ｐ＋ＱＣＡ）
【００３９】
５６０において、証明書マネジャーは、組み合わされたデジタル証明書を生成及びストアすることができる。幾つかの例において、組み合わされたデジタル証明書は公開鍵データを含み得る。方法４００を用いることにより、コンピュータにおいてストアされる必要があるのはＰに対し１つの値のみであるため、メモリの低減が達成され得る。また、付加的なメモリ保存が、ＥＣＣを用いることによって達成され得る。また更に、組み合わされたデジタル証明書が２つの異なる認証機関の公開鍵ＱＣＡ１及びＱＣＡ２に基づくため、この方法はセキュリティの増強を可能にする。
【００４０】
図４は、組み合わされたデジタル証明書６０２を生成及び管理するためのシステム６００の別の例を図示する。システム６００はホストコンピュータ６０４を含み得、クリプトプロセッサ６０６がホストコンピュータ６０４にストアされる。クリプトプロセッサ６０６は図１に示すコンピュータ４に類似する方式で実装され得る。例えば、クリプトプロセッサ６０６は、暗号オペレーションを実行するためにチップ又はマイクロプロセッサ上の専用コンピュータとして実装され得、複数の物理的セキュリティ手段を備えたパッケージングにおいて具現化され得、それにより、クリプトプロセッサ６０６に或る程度の不正耐性を提供する。一例において、クリプトプロセッサ６０６は、信頼できるプラットフォームモジュール（ＴＰＭ）として実装され得る。ホストコンピュータ６０４は、機械読み取り可能な命令をストアするためのメモリ６０７（例えば、ＲＡＭ、フラッシュメモリ、ハードドライブ、又は同様のものなど、持続性（non-transistory）コンピュータ可読媒体）を含み得る。ホストコンピュータ６０４は更に、メモリ６０７にアクセスするため及びマシン可読命令を実行するため処理ユニット６０８を含むこともできる。処理ユニット６０８はプロセッサコアを含み得る。幾つかの例において、ホストコンピュータ６０４は、スマートフォン、デスクトップコンピュータ、ラップトップコンピュータ、サーバー、又は同様のものとして実装され得る。
【００４１】
ホストコンピュータ６０４は、ネットワーク６１２を介してＮ個の認証機関６１０と通信することができる。ネットワーク６１２は、例えば、インターネット、プライベートネットワーク、又はそれらの組み合わせとして実装され得る。図４において、認証機関１の構成要素を詳細に示す。２〜Ｎ個の認証機関６１０が同様の方式で実装され得ることを理解されたい。認証機関１は、デジタル証明書の信頼できる発行者などのコンピュータとして実装され得る。
【００４２】
認証機関１は、機械読み取り可能な命令をストアするためのメモリ６１４を含み得る。メモリ６１４は、例えば、ＲＡＭ、フラッシュメモリ、ハードドライブ、又は同様のものとして実装され得る。認証機関１は更に、メモリ６１４にアクセスするため及び機械読み取り可能な命令を実行するため処理ユニット６１８を含み得る。メモリ６１４は、認証機関１に対する秘密鍵ｃＣＡ１６２０を含み得る。認証機関１は更に、認証機関１に対する公開鍵ＱＣＡ１６２２を含み得る。
【００４３】
ホストコンピュータ６０４のメモリ６０７は、組み合わされたデジタル証明書６０２の生成を開始することができる証明書マネジャー６１６を含み得る。組み合わされたデジタル証明書６０２の生成の開始は、ユーザー入力に応答し得る。組み合わされたデジタル証明書６０２の生成の開始に応答して、証明書マネジャー６１６は、クリプトプロセッサ６０６に、図２Ａ、図２Ｂ、図３Ａ、及び図３Ｂに関して説明するものなど、１つ又は複数のランダム数を生成することを要求することができる。
【００４４】
図２Ａ、図２Ｂ、図３Ａ、及び図３Ｂに示す方法２００又は４００に関して説明したように、組み合わされたデジタル証明書６０２の生成の開始に応答して、証明書マネジャー６１６は、１〜Ｎ個の認証機関６１０から少なくともＫ個のデジタル証明書６２４を受け取ることができ、ここで、Ｋは１に等しいか１より大きい整数であり、また、１〜Ｎ個の認証機関６１０の各々からのデータ（例えば、ｓ１．．．ｓｎ）を受け取ることができる。証明書マネジャー６１６は、クリプトプロセッサ６０６に、秘密鍵（ＳＫｅｙ）６２６を生成するためのデータ（例えば、証明書データ）と、１〜Ｎ個の認証機関６１０から提供されるデータ（例えば、ｓ１．．．ｓｎ及びＰ１．．．Ｐｎ）に基づいてクリプトプロセッサ６０６に対する対応する公開鍵（ＰＫｅｙ）６２９を生成するための公開鍵データ６２８とを提供することができる。また、クリプトプロセッサ６０６は、組み合わされた証明書６０２を生成するため証明書マネジャー６１６によって提供されるデータを用い得る。幾つかの例において、組み合わされた証明書６０２は公開鍵データ６２８を含み得る。組み合わされた証明書６０２は、例えば、組み合わされたデジタル証明書６０２が基づくＮ個の認証機関６１０の各々の識別を含み得る。
【００４５】
時間の或る点において、ホストコンピュータ６０４は、ドキュメント６３０にデジタル的に署名するために、組み合わされた証明書を用い得る。このような状況において、証明書マネジャー６１６は、デジタル署名６３２に対する要求と共に、ドキュメント６３０をクリプトプロセッサ６０６に提供することができる。一例において、クリプトプロセッサ６０６は、ドキュメント６３０の一部で構成されるダイジェストをつくるためダイジェストアルゴリズムを用い得る。クリプトプロセッサ６０６は、ドキュメント６３０のダイジェストに署名するためにＳＫｅｙ６２６を用い得、署名されたダイジェストはデジタル署名６３２であり得る。
【００４６】
第三者６３４（例えば、コンピュータシステム）が、ドキュメント６３０を要求し得る。ドキュメント６３０、組み合わされた証明書６０２、デジタル署名６３２、及びＮ個の認証機関６１０の所与の認証機関６１０の公開鍵（ＱＣＡｉ）は、第三者６３４に提供され得る。組み合わされた証明書は更に、ドキュメント６３０のダイジェストを計算するために用いられるダイジェストアルゴリズムを含み得る。また、第三者６３４は、公開鍵データ６２８に基づいてＰＫｅｙ６２９を生成することができる。
【００４７】
第三者６３４は、所与の認証機関６１０の公開鍵（ＱＣＡｉ）を認証するために所与の認証機関６１０と通信することができる。このようにして、第三者６３４は、ＰＫｅｙ６２９が、所与の認証機関６１０の秘密鍵（ｃＣＡｉ）に基づいて生成されたことを信頼することができる。また、第三者６３４は、ドキュメント６３０のダイジェストを再生成するためダイジェストアルゴリズムを用いることができる。第三者６３４は、組み合わされたデジタル証明書６０２に含まれるＰＫｅｙ６２９でデジタル署名６３２を検証することができ、これが、検証されたダイジェストとなり得る。第三者６３４は、ドキュメント６３０がクリプトプロセッサ６０６により署名されたこと、及びドキュメント６３０に対するデジタル署名が生成されて以来ドキュメント６３０が変更されていないことを確実にするため、再生成されたデジタルダイジェストを検証されたダイジェストと比較し得る。
【００４８】
本発明に関連する技術に習熟した者であれば、本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得ること、及び他の実施例を実装し得ることが分かるであろう。
【図１】
0006043804.tif 000012
【図２Ａ】
0006043804.tif 000013
【図２Ｂ】
0006043804.tif 000014
【図３Ａ】
0006043804.tif 000015
【図３Ｂ】
0006043804.tif 000016
【図４】
0006043804.tif 000017