(57)【要約】      （修正有）【課題】一群の特定目的用ローカルデバイスに基づく公開鍵デジタル署名の攻撃耐性実装のための方法および装置を提供する。【解決手段】システムは、第１のセキュリティデバイスと、第２のセキュリティデバイスと、第１および第２のセキュリティデバイスから遠く離れたコンピューティングデバイスと、を含む。第１のセキュリティデバイスは、第１の秘密鍵を格納し、メッセージの受信に応じて、コンピューティングデバイスから受信したメッセージおよび第１の秘密鍵に基づいて第１の署名を生成する。第２のセキュリティデバイスは、第１の秘密鍵から独立している第２の秘密鍵を格納し、メッセージの受信に応じて、コンピューティングデバイスから受信したメッセージおよび第１の秘密鍵に基づいて第２の署名を生成する。コンピューティングデバイスは、第１の署名および第２の署名に基づいて複合暗号署名を生成する。【選択図】図５
2020205577.tif 000002
【特許請求の範囲】
【請求項１】
デジタル署名を生成するためのシステムであって、
第１の秘密鍵を格納する第１のセキュリティデバイスであり、メッセージの受信に応じて、前記メッセージおよび前記第１の秘密鍵に基づいて第１の署名を生成するように構成される、第１のセキュリティデバイスと、
前記第１の秘密鍵から独立して生成された第２の秘密鍵を格納する第２のセキュリティデバイスであり、前記メッセージの受信に応じて、前記メッセージおよび前記第２の秘密鍵に基づいて第２の署名を生成するように構成される、第２のセキュリティデバイスと、
前記第１のセキュリティデバイスおよび前記第２のセキュリティデバイスから遠く離れたコンピューティングデバイスであり、
前記デジタル署名の要求の受信に応答して、前記メッセージを前記第１のセキュリティデバイスおよび前記第２のセキュリティデバイスに送り、
前記第１の署名および前記第２の署名の受信に応答して、前記第１の署名および前記第２の署名に基づいて複合暗号署名を生成し、
前記複合暗号署名をデジタル文書に付加するように構成される、コンピューティングデバイスと
を含むシステム。
【請求項２】
前記第１のセキュリティデバイスが、追加として、前記第１の署名を生成する前に、前記第１のセキュリティデバイスへの第１の入力に基づいて署名者を認証するように構成され、
前記第２のセキュリティデバイスが、追加として、前記第２の署名を生成する前に、前記第２のセキュリティデバイスへの第２の入力に基づいて前記署名者を認証するように構成される、請求項１に記載のシステム。
【請求項３】
前記第１の入力が、前記第２の入力と異なるタイプの入力である、請求項２に記載のシステム。
【請求項４】
前記第１のセキュリティデバイスが、追加として、前記第１の秘密鍵と、第１の公開モジュラスを含む第１の公開鍵とを生成するように構成され、
前記第２のセキュリティデバイスが、追加として、前記第２の秘密鍵と、第２の公開モジュラスを含む第２の公開鍵とを生成するように構成される、請求項１に記載のシステム。
【請求項５】
前記コンピューティングデバイスが、前記第１の公開モジュラスおよび前記第２の公開モジュラスにさらに基づいて前記複合暗号署名を生成するように構成される、請求項４に記載のシステム。
【請求項６】
前記コンピューティングデバイスが、前記複合暗号署名を生成するために使用される秘密鍵を格納しない、請求項１に記載のシステム。
【請求項７】
前記第１のセキュリティデバイスおよび前記第２のセキュリティデバイスが、前記コンピューティングデバイスに通信可能に結合される、請求項１に記載のシステム。
【請求項８】
前記第１のセキュリティデバイスが、前記コンピュータデバイスに通信可能に結合され、前記第２のセキュリティデバイスが、前記第１のセキュリティデバイスに通信可能に結合される、請求項１に記載のシステム。
【請求項９】
デジタル署名を生成するための方法であって、
第１のセキュリティデバイスによって、
第１の秘密鍵を生成および格納するステップと、
メッセージの受信に応じて、前記メッセージおよび前記第１の秘密鍵に基づいて第１の署名を生成するステップと、
第２のセキュリティデバイスによって、
前記第１の秘密鍵から独立している第２の秘密鍵を生成および格納するステップと、
前記メッセージの受信に応じて、前記メッセージおよび前記第２の秘密鍵に基づいて第２の署名を生成するステップと、
前記第１のセキュリティデバイスおよび前記第２のセキュリティデバイスから遠く離れたコンピューティングデバイスによって、
前記デジタル署名の要求の受信に応答して、前記メッセージを前記第１のセキュリティデバイスおよび前記第２のセキュリティデバイスに送るステップと、
前記第１の署名および前記第２の署名の受信に応答して、前記第１の署名および前記第２の署名に基づいて複合暗号署名を生成するステップと、
前記複合暗号署名をデジタル文書に付加するステップと
を含む、方法。
【請求項１０】
前記第１の署名を生成する前に、前記第１のセキュリティデバイスによって、前記第１のセキュリティデバイスへの第１の入力に基づいて署名者を認証し、
前記第２の署名を生成する前に、前記第２のセキュリティデバイスによって、前記第２のセキュリティデバイスへの第２の入力に基づいて前記署名者を認証する、請求項９に記載の方法。
【請求項１１】
前記第１の入力が、前記第２の入力と異なるタイプの入力である、請求項１０に記載の方法。
【請求項１２】
前記第１のセキュリティデバイスによって、第１の公開モジュラスを含む第１の公開鍵を生成するステップと、
前記第２のセキュリティデバイスによって、第２の公開モジュラスを含む第２の公開鍵を生成するステップと
をさらに含む、請求項９に記載の方法。
【請求項１３】
前記コンピューティングデバイスによって、前記第１の公開モジュラスおよび第２の公開モジュラスにさらに基づいて前記複合暗号署名を生成するステップ
をさらに含む、請求項１２に記載の方法。
【請求項１４】
前記コンピューティングデバイスが、前記複合暗号署名を生成するために使用される秘密鍵を格納しない、請求項９に記載の方法。
【請求項１５】
前記第１のセキュリティデバイスおよび前記第２のセキュリティデバイスが、各々、前記コンピューティングデバイスに通信可能に結合される、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、安全な電子通信および電子商取引に関し、より具体的には、一群の（ａ  ｃｌｏｕｄ  ｏｆ）特定目的用（ｄｅｄｉｃａｔｅｄ）ローカルデバイスに基づく公開鍵デジタル署名の攻撃耐性実装に関する。
【背景技術】
【０００２】
文書は、ますますデジタルで署名（ｓｉｇｎ）されるようになっている。デジタル署名は、（ａ）文書に署名する人が署名するとき本人の言う通りの人であることを認証し（ａｕｔｈｅｎｔｉｃａｔｅ）、（ｂ）署名入りの文書が本物であることを確認する（ｖａｌｉｄａｔｅ）システムを利用する。このようにして、文書に依存している人は、文書が本物であると確信することができ、文書に署名した人は、それに署名したことを否定することができない。これらのデジタル署名システムは、多くの場合、個人に関連する秘密の秘密鍵（ｐｒｉｖａｔｅ  ｋｅｙ：プライベートキー）とおよび秘密でない公開鍵（ｐｕｂｌｉｃ  ｋｅｙ：パブリックキー）に依存する非対称暗号法を使用する。署名を偽造するには、悪意のあるアクタは、秘密鍵を手に入れるか、または署名方式を破る（すなわち、秘密鍵を有することなくメッセージに署名する）計算コスト（可能ならば）を費やす必要がある。デジタル署名システムの攻撃耐性は、数学的耐性（例えば、署名を数学的に破ることによってデジタル署名を偽造する能力）、または物理的耐性（例えば、署名を偽造するために物理デバイスを勝手に変更する）に分類することができる。一般に、物理的耐性を改善することはより困難である。
【発明の概要】
【０００３】
添付の特許請求範囲は本願を定義する。本開示は、実施形態の態様を要約しており、特許請求の範囲を限定するために使用されるべきでない。以下の図面および詳細な説明を検討する際に、当業者には明らかであるように、他の実施態様が、本明細書で説明する技法に従って企図され、これらの実施態様は、本願の範囲内にあるものである。
【０００４】
デジタル署名を生成するための例示のシステムは、第１のセキュリティデバイス（ｓｅｃｕｒｉｔｙ  ｄｅｖｉｃｅ）と、第２のセキュリティデバイスと、第１および第２のセキュリティデバイスから遠く離れたコンピューティングデバイス（ｃｏｍｐｕｔｉｎｇ  ｄｅｖｉｃｅ：計算デバイス）とを含む。第１のセキュリティデバイスは、第１の秘密鍵を格納し、メッセージの受信に応じて、コンピューティングデバイスから受信したメッセージおよび第１の秘密鍵に基づいて第１の署名を生成する。第２のセキュリティデバイスは、第１の秘密鍵から独立して生成された第２の秘密鍵を格納し、メッセージの受信に応じて、メッセージおよび第２の秘密鍵に基づいて第２の署名を生成する。コンピューティングデバイスは、デジタル署名の要求の受信に応じて、メッセージを第１のセキュリティデバイスおよび第２のセキュリティデバイスに送る。コンピューティングデバイスは、さらに、第１の署名および第２の署名の受信に応じて、第１の署名および第２の署名に基づいて複合暗号署名（ｃｏｍｐｏｓｉｔｅ  ｃｒｙｐｔｏｇｒａｐｈｉｃ  ｓｉｇｎａｔｕｒｅ）を生成する。追加として、コンピューティングデバイスは、複合暗号署名をデジタル文書に付加する。
【０００５】
いくつかの例示の実施形態では、第１のセキュリティデバイスは、第１の署名を生成する前に、第１のセキュリティデバイスへの第１の入力に基づいて署名者を認証する。追加として、第２のセキュリティデバイスは、第２の署名を生成する前に、第２のセキュリティデバイスへの第２の入力に基づいて署名者を認証する。
【０００６】
いくつかの例示の実施形態では、第１の入力は、第２の入力と異なるタイプの入力である。
【０００７】
いくつかの例示の実施形態では、第１のセキュリティデバイスは、第１の秘密鍵と、第１の公開（ｐｕｂｌｉｃ）モジュラス（ｍｏｄｕｌｕｓ：係数、率）を含む第１の公開鍵とを生成する。第２のセキュリティデバイスは、第２の秘密鍵と、第２の公開モジュラスを含む第２の公開鍵とを生成する。
【０００８】
いくつかの例示の実施形態では、コンピューティングデバイスは、第１の公開モジュール（ｍｏｄｕｌｅ）および第２の公開モジュラスにさらに基づいて複合暗号署名を生成する。
【０００９】
いくつかの例示の実施形態では、コンピューティングデバイスは、複合暗号署名を生成するために使用される秘密鍵を格納しない。
【００１０】
いくつかの例示の実施形態では、第１のセキュリティデバイスおよび第２のセキュリティデバイスは、各々、コンピューティングデバイスに通信可能に結合される。
【００１１】
いくつかの例示実施形態では、第１のセキュリティデバイスは、コンピュータデバイスに通信可能に結合され、第２のセキュリティデバイスは、第１のセキュリティデバイスに通信可能に結合される。
【００１２】
本発明をより良く理解するために、以下の図面に示される実施形態を参照することができる。図面の構成要素は必ずしも縮尺通りではなく、関連する要素が省略されている場合があり、または、いくつかの事例では、本明細書で説明される新規の特徴を強調し明確に示すために、比率が誇張されている場合がある。加えて、システム構成要素は、当技術分野で知られているように、様々に構成することができる。さらに、図面では、同様の参照番号は、いくつかの図の全体を通して対応する部分を示している。
【図面の簡単な説明】
【００１３】
【図１Ａ】単一の秘密鍵を使用する従来の非対称暗号法を利用するシステムを示す図である。
【図１Ｂ】単一の秘密鍵に依存する多数の秘密鍵共有（ｐｒｉｖａｔｅ  ｋｅｙ  ｓｈａｒｅ：秘密鍵割り当て）を使用する分割鍵非対称暗号法を利用するシステムを示す図である。
【図２】互いに独立している多数の秘密鍵を使用する複合鍵（ｃｏｍｐｏｓｉｔｅ−ｋｅｙ）鍵非対称暗号法を利用するシステムを示す図である。
【図３】図２の複合鍵非対称暗号法のデバイス側部分を実装するセキュアデバイス（ｓｅｃｕｒｅ  ｄｅｖｉｃｅ：安全デバイス）を示す図である。
【図４】図３のセキュアデバイスの電子構成要素のブロック図である。
【図５】図３および図４の多数のセキュアデバイスとコンピューティングデバイスとを使用する図２の複合鍵非対称暗号法を実装するシステムを示す図である。
【図６】図３および図４の多数のセキュアデバイスとコンピューティングデバイスとを使用する図２の複合鍵非対称暗号法を実装するシステムを示す図である。
【図７】図３、図４、図５、および図６のセキュアデバイスと、図５および図６のコンピューティングデバイスとによって実装することができる図２の複合鍵非対称暗号法を使用して文書に署名するための方法の流れ図である。
【発明を実施するための形態】
【００１４】
本発明は様々な形態で具現することができるが、本開示は本発明の例示と考えられるべきであり、説明される特定の実施形態に本発明を限定するものではないという理解に基づいて、いくつかの例示的で非限定の実施形態が、図面に示され、以下で説明される。
【００１５】
デジタル署名で使用される一般の非対称暗号システム（時には「公開鍵暗号システム」と呼ばれる）は、Ｒｉｖｅｓｔ−Ｓｈａｍｉｒ−Ａｄｌｅｍａｎ（ＲＳＡ）である。図１Ａに示されるように、ＲＳＡ暗号システムは４つの機能を使用する。第１の機能は、２つの別個の素数ｐおよびｑに基づいて秘密鍵１０２を生成する秘密鍵生成機能（ｆ1）である。整数ｐおよびｑは、ランダムに選ばれ、秘密にされる。第２の機能は、２つの素数ｐおよびｑに基づいて公開鍵１０４を生成する公開鍵生成機能（ｆ2）である。公開鍵１０４は、公開モジュラス（ｎ）および公開指数（ｅ）からなる。公開モジュラス（ｎ）は、以下の式１に従って計算される。公開指数（ｅ）は、以下の式２が真となるように選択される。
【数１】
2020205577.tif 000003
【数２】
2020205577.tif 000004
上述の式２において、ｇｃｄは、入力の各々を除算する最大の正の整数を返す最大公約数関数である。ＲＳＡ暗号システムは、秘密鍵１０２を用いてメッセージ（ｍ）１０６に署名するために第３の機能（ｆ3）を使用し、ここで、
【数３】
2020205577.tif 000005
である。ＲＳＡ暗号システムは、メッセージ（ｍ）１０６の署名１０８を計算するために秘密指数（ｄ）を使用する。秘密指数（ｄ）は、以下の式３に従って計算される。
【数４】
2020205577.tif 000006
メッセージ（ｍ）１０６の署名１０８はσ（ｍ）であり、それは以下の式４に従って計算される。
【数５】
2020205577.tif 000007
受信した署名（σ）１０８および添付のメッセージ（ｍ）１０６を検証（ｖｅｒｉｆｙ：真実、正確であると確かめること）されるために、ＲＳＡ暗号システムは、公開モジュラス（ｎ）および公開指数（ｅ）に基づいて第４の機能（ｆ4）を使用する。署名（σ）１０８は、以下の式５が真の場合に検証される。
【数６】
2020205577.tif 000008
【００１６】
ＲＳＡに基づく署名方式の安全な実装は、署名者（例えば、人または人のグループ）が、セキュリティｐａｒｉｍｅｔｅｒ内で機能ｆ1、ｆ2、およびｆ3を単独で制御することを必要とする。一般に、ＲＳＡ署名方式を実装するデバイスは、（ａ）デバイスのライフタイム中に１回のみｆ1およびｆ2を実行し、（ｂ）認可された署名者のみが機能ｆ3を実行できることを保証する。秘密鍵（例えば、秘密鍵１０２）はデバイスを決して離れてはならない。デバイスは、常に、ｆ3を実行する前に署名者を確実に認証できなければならない。したがって、セキュリティデバイスは、セキュリティ境界線（ｓｅｃｕｒｉｔｙ  ｐｅｒｉｍｅｔｅｒ）内で、（ａ）機能をコンピュータする計算能力、（ｂ）鍵を格納するためのメモリ、（ｃ）入力／出力（Ｉ／Ｏ）デバイス、および（ｄ）認証ソリューション（ａｕｔｈｅｎｔｉｃａｔｉｏｎ  ｓｏｌｕｔｉｏｎ）を必要とする。セキュリティ境界線は、各々が部分的な機能を実装する別個の電子機器で構成されてもよい。例えば、鍵生成機能ｆ1およびｆ2は、１組の電子機器によって実施されてもよく、署名機能ｆ3は、別個の組の電子機器であって実施されてもよい。
【００１７】
署名方式（上述のＲＳＡ暗号システムなど）の暗号攻撃耐性（ｃｒｙｐｔｏｇｒａｐｈｉｃ  ａｔｔａｃｋ  ｔｏｌｅｒａｎｃｅ）は、計算複雑性理論（ｃｏｍｐｕｔａｔｉｏｎａｌ  ｃｏｍｐｌｅｘｉｔｙ  ｔｈｅｏｒｙ）に関して定義され、数学的および物理的構成要素を有する。数学的な攻撃耐性の尺度は、方式を破るのに必要である（すなわち、秘密鍵にアクセスすることなくメッセージに署名する）計算リソース（ステップの数、ビット単位のメモリ、プログラムの大きさなど）を考慮に入れる。方式を破る計算コストは、セキュリティレベルとして表される。セキュリティレベルは、通常、「ビット」で表される。「Ｎビットセキュリティ」とは、方式を破るには悪意のあるアクタが２Nの演算を実行しなければならないことを意味する。例えば、署名方式は、１２８ビットまたは２５６ビットセキュリティを有することができる。方式を破る金銭的コストは、計算コストに比例すると考えられる。セキュリティデバイスの物理的攻撃耐久性は、署名方式を数学的に破ることなく署名を偽造する（例えば、セキュリティデバイスを勝手に変更することにより）コストを指す。
【００１８】
署名方式に必要な数学的および物理的攻撃耐久性は、リスク分析から導き出され、署名ソリューションが使用されているアプリケーションを考慮に入れる。多くの場合、セキュリティデバイスの物理的設計は、ＲＳＡベース署名方式の弱点である。物理的攻撃耐久性を向上させる１つの手法は、多数のデバイス間の共働を必要とするものである。そのような手法では、署名鍵（例えば、マスター秘密鍵））が、いくつかのセキュリティデバイス間で共有される。そのため、セキュリティデバイスが共働する場合のみ署名を作成することができる。１つのデバイスを攻撃する（例えば、１つのデバイスを物理的に勝手に変更する、１つのデバイスのマスター秘密鍵の一部分を暴露する、など）のは、署名を偽造するには不十分である。
【００１９】
１つのそのような手法が図１Ｂに示される。図１Ｂでは、マスター秘密鍵１１０は２つの秘密鍵共有１１２および１１４に分割される（時には、分割鍵署名方式（Ｓｐｌｉｔ−Ｋｅｙ  ｓｉｇｎｉｎｇ  ｓｃｈｅｍｅ）と呼ばれる）。マスター秘密鍵１１０は信頼されるディーラー（ｔｒｕｓｔｅｄ  ｄｅａｌｅｒ）１１６によって生成され、信頼されるディーラー１１６は、機能ｆ10によりマスター秘密鍵１１０を分割して、第１の秘密鍵共有（ｄ’）１１２および第２の秘密鍵共有（ｄ”）１１４を作成する。信頼されるディーラー１１６は、追加的（加法的）共有（ａｄｄｉｔｉｖｅ  ｓｈａｒｉｎｇ：追加的割り当て）または乗法的共有（ｍｕｌｔｉｐｌｉｃａｔｉｖｅ  ｓｈａｒｉｎｇ：乗法的割り当て）のためにマスター秘密鍵１１０を分割することができる。図１Ｂは、信頼されるディーラー１１６が追加的共有のためにマスター秘密鍵１１０を分割することを示している。追加的共有のために分割する場合、信頼されるディーラー１１６は、ｆ10を使用して、以下の式６に従ってマスター秘密鍵１１０の秘密指数（ｄ）に基づいて第１の秘密鍵共有（ｄ’）１１２および第２の秘密鍵共有（ｄ”）１１４を導き出す。
【数７】
2020205577.tif 000009
乗法的共有のために分割する場合、信頼されるディーラー１１６は、ｆ10を使用して、以下の式７に従って第１の秘密鍵共有（ｄ’）１１２および第２の秘密鍵共有（ｄ”）１１４を導き出す。
【数８】
2020205577.tif 000010
信頼されるディーラー１１６は、第１の秘密鍵共有（ｄ’）１１２を第１のセキュリティデバイス１１８に送信し、第２の秘密鍵共有（ｄ”）を第２のセキュリティデバイス１２０に送信する。署名を生成するとき、セキュリティデバイス１１８および１２０は、それぞれの秘密鍵共有を用いて機能ｆ3を実行して、第１の署名共有（σ’）１２２および第２の署名共有（σ”）１２４を生成する。署名（σ）１０８は、第１の署名共有（σ’）１２２および第２の署名共有（σ”）１２４を用いて機能ｆ11により生成される。追加的共有では、機能ｆ11は、以下の式８に従って計算される。
【数９】
2020205577.tif 000011
乗法的共有では、機能ｆ11は、以下の式９に従って計算される。
【数１０】
2020205577.tif 000012
生成された署名１０８は、上述のように、従来のＲＳＡ署名方式で使用される。
【００２０】
いくつかの例では、秘密鍵共有のうちの１つは、モバイルデバイス（例えば、スマートフォン）によって保持され、他の秘密鍵共有は、署名方式に共働するサーバによって保持される。分割鍵署名方式は、多くの場合、マスター秘密鍵１１０を署名共有（ｓｉｇｎａｔｕｒｅ  ｓｈａｒｅｓ）１１２および１１４に分割し、次いで、署名共有１１２および１１４をセキュリティデバイスに安全に送信するように、信頼されるディーラーに要求する。これはサードパーティを導入する。しかしながら、信頼されるディーラーとして働くパーティは、状況によっては、ユーザの署名を偽造するために能力を悪用する信頼できないディーラーであることがある。さらに、信頼されるディーラーは、署名方式中の単一障害点になる。信頼されるディーラーが危険にさらされる場合、信頼されるディーラーが保持または生成するすべてのマスター秘密鍵も危険にさらされる。この欠点を克服するために、共有の分散生成が使用され、第１の署名共有（σ’）１２２、第２の署名共有（σ”）１２４、および共通公開鍵１０４は、マスター秘密鍵１１０が全体として決して存在しないマルチパーティ暗号プロトコル（例えば、マルチパーティ暗号プロトコルΠ）の結果として生成される。しかしながら、分割鍵実装は、従来のＲＳＡ実装と比べると、非常にコストがかかり非効率である。
【００２１】
以下でより詳細に説明するように、多数のデバイス間の共働を使用する署名生成は、分割鍵署名方式（例えば、マルチパーティ暗号プロトコルによる）の計算の非効率または信頼されるディーラーの使用を取り巻く問題なしに、従来のＲＳＡ署名者方式よりも大きい物理的攻撃耐久性で実装することができる。以下で説明するシステムでは、マスター秘密鍵またはマルチパーティ暗号プロトコルのいずれかに依存して１組の署名共有を生成する代わりに、複合署名（ｃｏｍｐｏｓｉｔｅ  ｓｉｇｎａｔｕｒｅ）が、独立して生成された秘密鍵に基づいている個々に生成された署名から構成されてもよい。これは、時には、コンプ鍵方式（Ｃｏｍｐ  Ｋｅｙ  ｓｃｈｅｍｅ）と呼ばれる。本明細書で使用される場合、独立して生成された秘密鍵とは、マスター秘密鍵またはマルチパーティ暗号プロトコルを使用して生成されなかった秘密鍵である（例えば、分割鍵署名方式の秘密鍵共有とは対照的に）。
【００２２】
システムは、各々がそれ自体の公開鍵に関連している独立して生成された秘密鍵を格納する２つ以上のセキュリティデバイスを含む。セキュリティデバイスは、（ａ）独立して生成された秘密鍵を安全に格納すること、（ｂ）署名者からの入力を受信すること、（ｃ）その入力に基づいて署名者のアイデンティティ（ｉｄｅｎｔｉｔｙ：身元）を確実に認証すること、（ｄ）署名を生成するためにメッセージを受信すること、（ｅ）独立して生成された秘密鍵とメッセージとを用いて署名を生成すること、および（ｆ）署名を要求しているコンピューティングデバイス（例えば、サーバなど）に署名を送信することができるポータブル電子デバイスとすることができる。いくつかの例では、セキュリティデバイスは、スマートフォン、スマートウォッチ、タブレットコンピュータ、電子機器が埋め込まれた宝石（例えば、ブレスレット、リング、ブローチなど）スマートカード（例えば、クレジットカード、ＩＤカードなど）、および／または電子ハンコ（ｅｌｅｃｔｒｏｎｉｃ  ｈａｎｋｏ）などとすることができる。いくつかの例では、各セキュリティデバイスは、他のセキュリティデバイスから独立して署名者からの入力（例えば、指紋などの生体認証識別子、パスワードなど）を物理的に受信するように構成される。いくつかの例では、各セキュリティデバイスは、コンピューティングデバイスと通信する（例えば、インターネットへのワイヤレス接続などを介して）。代替として、いくつかの例では、セキュリティデバイスのうちの１つは、コンピューティングデバイスと通信する（例えば、インターネットへのワイヤレス接続などを介して）主デバイスとして働き、一方、他のセキュリティデバイスは、コンピューティングデバイスと通信するためにローカルエリアネットワーク（例えば、無線ローカルエリアネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）ローエナジー接続など）を介して主デバイスと通信する。
【００２３】
コンピューティングデバイスは、セキュリティデバイスからの署名を受信する。コンピューティングデバイスは、複合署名を生成し、次いで、デジタル文書（例えば、契約、ウェブサイトのサービス利用既約への同意、法律文書など）に署名するために複合署名を使用する。以前に署名入りの文書を検証するために、コンピューティングデバイスは、セキュリティデバイスに関連する公開鍵を取得し、複合公開鍵を生成する。複合公開鍵を使用して、コンピューティングデバイスは、デジタル文書の署名が本物かどうかを検証する。
【００２４】
物理的攻撃耐久性の向上は、数学的攻撃耐久性の向上よりも困難である。物理的攻撃耐久性を向上させた署名方式が必要である。現在の手法は、物理的攻撃耐久性を向上させない。コンプ鍵署名方式（Ｃｏｍｐ  Ｋｅｙ  ｓｉｇｎｉｎｇ  ｓｃｈｅｍｅ）は、対応する従来のＲＳＡ署名方式よりも数学的耐久性が低い（例えば、ＲＳＡ実装がｋビット公開モジュラス（ｎ）およびｌビットセキュリティを有する場合、複合署名は、２ｋビット公開モジュラスを有するにもかかわらず、ｌ未満のビットセキュリティを有することになる）が、複合署名は、その複合署名を生成するために使用されるセキュリティデバイスのすべてが危険にさらされる場合しか物理的攻撃によって危険にさらされない。コンプ鍵署名方式の数学的攻撃耐久性は、公開モジュラス（ｎ）のビット長の増加（例えば、２５６ビット公開モジュラス（ｎ）、２０４８ビット公開モジュラス（ｎ）など）によって向上させることができる。独立して生成された秘密鍵を有する少なくとも２つのセキュリティデバイスを利用する以下で説明するシステムを使用することによって、この署名方式の物理的攻撃耐久性は向上する。
【００２５】
図２は、互いに独立している多数の秘密鍵を使用する複合鍵鍵非対称暗号法を利用するシステムを示す。図２は、第１のセキュリティデバイス２０２および第２のセキュリティデバイス２０４（例えば、以下の図３および図４に示すようなセキュリティデバイス３００）を使用するコンプ鍵署名方式を示す。セキュリティデバイス２０２および２０４は、各々独立して、機能ｆ1を使用して秘密鍵２０６および２０８を生成する（上述したように）。追加として、セキュリティデバイス２０２および２０４は、各々、公開モジュラス（ｎ）（例えば、上述の式１に従って計算される）および公開指数（ｅ）（例えば、上述の式２に従って決定される）を有する公開鍵２１０および２１０を生成する。公開鍵２１０および２１２は、対応するセキュリティデバイスに関連する公開鍵データベースに格納されたリモートコンピューティングデバイスに送信される。セキュリティデバイス２０２および２０４が署名を生成するために使用するメッセージ２１４を受信すると、セキュリティデバイスは各々独立して署名者を認証した後、セキュリティデバイス２０２および２０４は、機能ｆ3を使用して（上述したように）、各々独立して、署名２１６および２１８を生成する。
【００２６】
デジタル文書に署名するために、複合署名２２０が、第１の署名（σ1）２１６および第２の署名（σ2）２１８から生成される。図示の例では、複合署名（σC）２２０は、以下の式１０に従って、機能ｆ6により生成される。
【数１１】
2020205577.tif 000013
上述の式１０において、ｎ1は第１の公開鍵２１０の公開モジュラスであり、ｎ2は第２の公開鍵２１２の公開モジュラスである。その上に、係数ａおよびｂは、ａｎ1＋ｂｎ2＝１を満たす。複合署名（σC）２２０はデジタル文書に付加される。
【００２７】
署名入りの文書として検証するために、複合公開鍵２２２の複合公開モジュラス（ｎC）は、機能ｆ5を使用して以下の式１１に従って計算される。複合公開鍵２２２の複合公開モジュラス（ｎC）は、第１の公開鍵２１０の公開モジュラス（ｎ1）および第２の公開鍵２１２の第２の公開モジュラス（ｎ2）に基づく。
【数１２】
2020205577.tif 000014
複合公開鍵２２２（＜ｎC、ｅ＞）およびメッセージ２１４を使用して、署名されたデジタル文書に関連する署名（σｓ）が、機能ｆ4により検証される（上述したように）。
【００２８】
図３は、図２のコンプ鍵署名方式のデバイス側部分を実装するセキュアデバイス３００を示す。セキュリティデバイス３００は、機能ｆ1、ｆ2、およびｆ3を実装する。セキュリティデバイス３００は、制御インタフェース３０２および入力／出力（Ｉ／Ｏ）インタフェース３０４を含む。制御インタフェース３０２は署名者３０６からの入力を受信して、署名者３０６のアイデンティティを認証し、その後、セキュリティデバイス３００は署名３０８を生成する。Ｉ／Ｏインタフェース３０４は、コンピューティングデバイス（例えば、以下の図５および図６のコンピューティングデバイス５０２）と直接にまたは間接的に通信して、署名３０８および公開鍵３１０を送信し、署名３０８を生成するために使用されるメッセージ３１２を受信する。
【００２９】
図４は、図３のセキュアデバイスの電子構成要素４００のブロック図である。図示の例において、電子構成要素４００は、制御インタフェース３０２、Ｉ／Ｏインタフェース３０４、プロセッサまたはコントローラ４０２、およびメモリ４０４、ならびに他の電子構成要素を接続するデータバス４０６を含む。
【００３０】
制御インタフェース３０２は、セキュリティデバイス３００と署名者３０６との間の物理インタフェースを備える。制御インタフェース３０２は、デジタルカメラ（例えば、画像キャプチャ、ビジュアルコマンド認識（ｖｉｓｕａｌ  ｃｏｍｍａｎｄ  ｒｅｃｏｇｎｉｔｉｏｎ：視覚命令認識）、顔認識、虹彩認識などのための）、タッチスクリーンおよび／またはキーボード（例えば、資格情報の入力のための）、オーディオ入力デバイス（例えば、音声認識などのためのマイクロホン）、生体認証入力デバイ（例えば、指紋スキャナなど）および／または生体認証センサ（例えば、パルスオキシメータ、パルスセンサなど）を含むことができる。例えば、制御インタフェース３０２は、スマートフォンのタッチスクリーンおよび指紋アイデンティティセンサを含むことができる。署名者３０６から制御インタフェース３０２への入力は、署名者２０６のアイデンティティを認証するために使用される。いくつかの例では、署名者３０６を識別および認証する１つを超える方法が含まれる。例えば、署名者は、指紋とパスワードの両方を提供する必要がある場合がある。いくつかの例では、制御インタフェース３０２は、２つの共働するセキュリティデバイス３００間で異なっていてもよい。例えば、一方のセキュリティデバイス３００は顔認識を実行するカメラを有することができ、他方のセキュリティデバイス３００は指紋スキャナを有することができる。
【００３１】
Ｉ／Ｏインタフェース３０４は、他のデバイスと通信して、公開鍵３１０および署名３０８を送信し、メッセージ３１２を受信するインタフェースを提供する。Ｉ／Ｏインタフェース３０４は、標準ベースネットワーク（例えば、グローバル移動体通信システム（ＧＳＭ：Ｇｒｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ）、ユニバーサル移動体通信システム（ＵＭＴＳ：Ｕｎｉｖｅｒｓａｌ  Ｍｏｂｉｌｅ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｓｙｓｔｅｍ）、ロングタームエボリューション（ＬＴＥ：Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、符号分割多元接続（ＣＤＭＡ：Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ）、ＷｉＭＡＸ（ＩＥＥＥ  ８０２．１６ｍ）；近距離無線通信（ＮＦＣ：Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）；ローカルエリア無線ネットワーク（ｌｏｃａｌ  ａｒｅａ  ｗｉｒｅｌｅｓｓ  ｎｅｔｗｏｒｋ）（ＩＥＥＥ  ８０２．１１  ａ／ｂ／ｇ／ｎ／ａｃなどを含む）、Ｂｌｕｅｔｏｏｔｈ（登録商標）およびＢｌｕｅｔｏｏｔｈ（登録商標）ローエナジー（Ｌｏｗ  Ｅｎｅｒｇｙ）、およびワイヤレスギガビット（Ｗｉｒｅｌｅｓｓ  Ｇｉｇａｂｉｔ）（ＩＥＥＥ  ８０２．１１ａｄ）、など）のための１つまたは複数のための通信コントローラおよびアンテナを含む。Ｉ／Ｏインタフェース３０４は、直接にまたは間接的に（例えば、ａｎｔｈｅｒセキュリティデバイス３００を介して）外部ネットワークと通信する。外部ネットワークは、インターネットなどのパブリックネットワーク、イントラネットなどのプライベートネットワーク、またはそれらの組合せとすることができ、限定はしないが、ＴＣＰ／ＩＰベースネットワークプロトコルを含む現在利用可能なまたは後に開発される様々なネットワークプロトコルを利用することができる。
【００３２】
プロセッサまたはコントローラ４０２は、限定はしないが、マイクロプロセッサ、マイクロコントローラベースプラットホーム、適切な集積回路、１つまたは複数のフィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および／または１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）などの適切な処理デバイスまたは処理デバイスのセットとすることができる。メモリ４０４は、揮発性メモリ、不揮発性メモリ、変更不可メモリ（ｕｎａｌｔｅｒａｂｌｅ  ｍｅｍｏｒｙ）、読出し専用メモリ、および／または大容量ストレージデバイス（例えば、ハードドライブ、ソリッドステートドライブなど）とすることができる。いくつかの例では、メモリ４０４は、多数の種類のメモリ、特に、揮発性メモリおよび不揮発性メモリを含む。追加として、メモリ４０４は、情報を安全に格納するためにそれ自体の認証鍵をもつ埋込みハードウェア暗号化エンジンを含むセキュアメモリ（時には「ｃｒｙｐｔｏｍｅｍｏｒｙ」と呼ばれる）を含むことができる。
【００３３】
図５および図６は、図３および図４の多数のセキュリティデバイス３００と、コンピューティングデバイス５０２とを使用する図２のコンプ鍵署名方式を実装するシステムを示す。図５では、セキュリティデバイス３００は、コンピューティングデバイス５０２と直接通信する。図６では、セキュリティデバイス３００のうちの１つは、コンピューティングデバイス５０２と直接通信し、他のセキュリティデバイスは、直接接続しているセキュリティデバイス３００を介してコンピューティングデバイス５０２と間接的に通信する。図５および図６の図示の例では、（ａ）セキュリティデバイス３００は同じ場所に配置され、署名者３０６にアクセスでき、（ｂ）コンピューティングデバイス５０２は遠隔にある（例えば、セキュリティデバイスから地理的に移され、インターネットなどの外部ネットワークを介してセキュリティデバイスに通信可能に結合される）。上述の図３で説明したように、セキュリティデバイス３００は機能ｆ1、ｆ2、およびｆ3を実装している。図５および図６に示されるように、コンピューティングデバイス５０２は機能ｆ4、ｆ5、およびｆ6を実装している。
【００３４】
初期設定として、セキュリティデバイス３００は、機能ｆ1を使用してそれぞれの秘密鍵（例えば、上述の図２の秘密鍵２０６および２０８）を独立して生成し、機能ｆ2を使用してそれぞれの公開鍵２１０および２１２を生成する。公開鍵２１０および２１２は、Ｉ／Ｏインタフェース３０４を介してコンピューティングデバイス５０２に送信される。コンピューティングデバイス５０２内の結合器５０４は、公開鍵２１０および２１２を複合公開鍵２２２に組み合わせ、複合公開鍵２２２を、セキュリティデバイス３００に関連する識別子に関連して、公開鍵データベース（ＰＫＤＢ）５０６に格納されるための機能ｆ5を実装する。代替として、いくつかの例では、コンピューティングデバイスは、公開鍵２１０および２１２をセキュリティデバイス３００に関連する識別子とともに格納し、複合公開鍵２２２が必要とされるときに機能ｆ5を実行する。
【００３５】
デジタル文書が署名されるべきとき、コンピューティングデバイス５０２は、メッセージ（例えば、上述の図２のメッセージ２１４）をセキュリティデバイス３００に送る。メッセージは、オリジナルメッセージ（例えば、署名されるべきデジタル文書）、またはオリジナルメッセージに暗号ハッシュ関数（例えば、ＳＨＡ−２５６など）を適用することによってオリジナルメッセージから計算されたメッセージダイジェストとすることができる。メッセージと、それぞれの秘密鍵２０６および２０８とを使用することによって、セキュリティデバイス３００は、各々、機能ｆ3を使用して署名（例えば、上述の図２の署名２１６および２１６）を生成する。セキュリティデバイス３００は、署名２１６および２１８をコンピューティングデバイス５０２に送信する。結合器５０８は、署名２１６および２１８を複合署名２２０に組み合わせるための機能ｆ6を実装する。メッセージおよび複合署名２２０は、署名されるべき文書に付加される。
【００３６】
図５および図６の図示の例では、結合器５０４および確認器（ｖａｌｉｄａｔｏｒ：有効化器）５０８は、異なるコントローラまたはプロセッサで実行されるコンピューティングデバイス５０２内の異なるセキュリティ境界線を表す。代替として、いくつかの例では、結合器５０４および確認器５０８は、コンピューティングデバイス５０２内の同じセキュリティ境界線内で実行することができる。
【００３７】
署名されたデジタル文書が検証されるべきとき、コンピューティングデバイス５０２内の確認器５０６は、複合公開鍵５１０、メッセージ、およびデジタル文書に付加された複合署名２２０を用いて機能ｆ4を実施する。
【００３８】
図７は、図３、図４、図５、および図６のセキュアデバイス３００と、図５および図６のコンピューティングデバイス５０２とによって実装することができる図２の複合鍵非対称暗号法を使用してデジタル文書に署名する方法の流れ図である。この方法は、例えば、デジタル文書に署名する要求をコンピューティングデバイス５０２が受信したときに実行することができる。最初に、ブロック７０２において、第１のセキュリティデバイス（例えば、上述の図３および図４のセキュリティデバイス３００）は、署名者３０６からの入力（例えば、制御インタフェース３０２を介して）およびメッセージ（例えば、Ｉ／Ｏインタフェース３０４を介して）を受信する。入力は、署名者３０６のアイデンティティを認証するために使用される。例えば、入力は、指紋またはパスワードとすることができる。ブロック７０４において、第２のセキュリティデバイス（例えば、上述の図３および図４のセキュリティデバイス３００）は、署名者３０６からの入力（例えば、制御インタフェース３０２を介して）およびメッセージ（例えば、Ｉ／Ｏインタフェース３０４を介して）を受信する。ブロック７０６において、第１のセキュリティデバイスは、入力を使用して、署名者３０６を認証する。ブロック７０８において、第２のセキュリティデバイスは、入力を使用して、署名者３０６を認証する。ブロック７１０においては、認証が成功しない場合、方法は終了する。そうでなければ、方法はｂｏｃｋ７１４に続く。ブロック７１２において、認証が成功しない場合、方法は終了する。そうでなければ、方法はｂｏｃｋ７１６に続く。
【００３９】
ブロック７１４において、第１のセキュリティデバイスは、それの独立した秘密鍵に基づいて第１の署名を計算する。ブロック７１６において、第１のセキュリティデバイスは、それの独立した秘密鍵に基づいて第２の署名を計算する。ブロック７１８において、第１のセキュリティデバイスは、第１の署名をコンピューティングデバイス５０２に送信する。ブロック７２０において、第２のセキュリティデバイスは、第２の署名をコンピューティングデバイス５０２に送信する。ブロック７２２において、コンピューティングデバイスは、第１の署名および第２の署名を使用して複合署名を生成する。ブロック７２４において、コンピューティングデバイス５０２は、複合署名をデジタル文書に付加する。
【００４０】
本願において、離接的接続詞の使用は、接続詞を含むものである。定冠詞または不定冠詞の使用は、基数を示すものではない。特に、「ｔｈｅ」対象物または「ａ」および「ａｎ」対象物への言及は、さらに、可能な複数のそのような対象物のうちの１つを表示するものである。さらに、「または」という接続詞は、相互に排他的な代替の代わりに同時に存在する特徴を伝えるために使用することができる。言い換えれば、「または」という接続詞は、「および／または」を含むように理解されるべきである。ここで使用される「モジュール（ｍｏｄｕｌｅ）」および「ユニット（ｕｎｉｔ）」という用語は、通信、制御、および／またはモニタ機能を、多くの場合、センサとともに提供するための回路をもつハードウェアを参照する。「モジュール」および「ユニット」は、回路上で実行するファームウェアをさらに含むことができる。「含む（ｉｎｃｌｕｄｅｓ）」、「含んでいる（ｉｎｃｌｕｄｉｎｇ）」、および「含む（ｉｎｃｌｕｄｅ）」という用語は、包括的であり、それぞれ、「含む（ｃｏｍｐｒｉｓｅｓ）」、「含んでいる（ｃｏｍｐｒｉｓｉｎｇ）」、および「含む（ｃｏｍｐｒｉｓｅ）」と同じ適用範囲を有する。
【００４１】
上述の実施形態、特に、「好ましい」実施形態は、実施態様の可能な例であり、本発明の原理を明確に理解するために単に記載されている。本明細書に記載された技法の趣旨および原理から実質的に逸脱することなく、多くの変形および変更を上述の実施形態に行うことができる。すべての変更は、本明細書において本開示の範囲内に含まれ、以下の特許請求の範囲によって保護されるものである。
【符号の説明】
【００４２】
１０２  秘密鍵
１０４  公開鍵
１０６  メッセージ
１０８  署名
１１０  マスター秘密鍵
１１２  第１の秘密鍵共有
１１４  第２の秘密鍵共有
１１６  ディーラー
１１８  第１のセキュリティデバイス
１２０  第２のセキュリティデバイス
１２２  第１の署名共有
１２４  第２の署名共有
２０２  第１のセキュリティデバイス
２０４  第２のセキュリティデバイス
２０６  秘密鍵
２０８  秘密鍵
２１０  第１の公開鍵
２１２  第２の公開鍵
２１４  メッセージ
２１６  第１の署名
２１８  第２の署名
２２０  複合署名
２２２  複合公開鍵
３００  セキュアデバイス、セキュリティデバイス
３０２  制御インタフェース
３０４  Ｉ／Ｏインタフェース
３０６  署名者
３０８  署名
３１０  公開鍵
３１２  メッセージ
４００  電子構成要素
４０２  プロセッサまたはコントローラ
４０４  メモリ
４０６  データバス
５０２  コンピューティングデバイス
５０４  結合器
５０６  公開鍵データベース
５０８  確認器
【図１Ａ】
2020205577.tif 000015
【図１Ｂ】
2020205577.tif 000016
【図２】
2020205577.tif 000017
【図３】
2020205577.tif 000018
【図４】
2020205577.tif 000019
【図５】
2020205577.tif 000020
【図６】
2020205577.tif 000021
【図７】
2020205577.tif 000022
【外国語明細書】
2020205577000001.pdf