(57)【要約】  デジタル署名（Ｓi）を提供するための２又は３以上のドングル（ａ，ｂ，ｃ）のセット（ｓ）であって、各ドングル（ａ、ｂ、ｃ）が秘密鍵（Ｋi）を保持し、各ドングル（ａ、ｂ、ｃ）は、メッセージ（Ｍ）を受け取って、該秘密鍵（Ｋi）を使用して受け取ったメッセージ（Ｍ）のデジタル署名（Ｓi）を計算（２８、３６）して、計算されたデジタル署名（Ｓi）を送信するように構成される、セットにおいて、ドングルのうちの少なくとも１つ（ａ）は、デジタル署名（Ｓa）を計算（２８）する前に、セット（ｓ）に属する少なくとも１つの他のドングル（ｂ、ｃ）の存在を検証（２６）して、１又は２以上の他のドングル（ｂ、ｃ）の存在を正常に検証した場合にのみ、デジタル署名（Ｓa）を計算（２８）するように構成されていることを特徴とする、セットが提供される。【選択図】図１
2021507616.tif 000002
【特許請求の範囲】
【請求項１】
デジタル署名（Ｓi）を提供するための２又は３以上のドングル（ａ，ｂ，ｃ）のセット（ｓ）であって、
前記各ドングル（ａ、ｂ、ｃ）が秘密鍵（Ｋi）を保持し、
前記各ドングル（ａ、ｂ、ｃ）は、メッセージ（Ｍ）を受け取って、前記秘密鍵（Ｋi）を使用して前記受け取ったメッセージ（Ｍ）のデジタル署名（Ｓi）を計算（２８、３６）して、前記計算されたデジタル署名（Ｓi）を送信するように構成される、セット（ｓ）において、
前記ドングルの少なくとも１つ（ａ）は、前記デジタル署名（Ｓa）を計算（２８）する前に、前記セット（ｓ）に属する少なくとも１つの他のドングル（ｂ、ｃ）の存在を検証（２６）して、前記１又は２以上の他のドングル（ｂ、ｃ）の存在を正常に検証した場合にのみ、前記デジタル署名（Ｓa）を計算（２８）するように構成されていることを特徴とする、セット（ｓ）。
【請求項２】
前記ドングルの少なくとも１つ（ａ）は、ゼロ知識証明を要求することによって、前記セット（ｓ）に属する少なくとも１つの前記他のドングル（ｂ、ｃ）の存在を検証するように構成される、請求項１に記載のセット（ｓ）。
【請求項３】
前記ドングルの少なくとも１つ（ａ）は、前記デジタル署名を計算（２８）する前に、存在を証明する必要がある前記他のドングル（ｂ、ｃ）の数の下限値を保存する、ことを特徴とする請求項１又は２に記載のセット（ｓ）。
【請求項４】
前記少なくとも１つのドングル（ａ）が、前記セット（ｓ）に属する前記少なくとも１つの他のドングル（ｂ、ｃ）の存在を検証するのに必要な時間を測定して、前記１又は２以上の他のドングル（ｂ、ｃ）の各々に対する所定の時間枠内で１又は２以上の他のドングル（ｂ、ｃ）の存在を正常に検証した場合にのみ、前記デジタル署名（Ｓa）を計算（２８）するように構成される、ことを特徴とする請求項１から３の何れかに記載のセット（ｓ）。
【請求項５】
前記ドングル（ａ、ｂ、ｃ）は、互いの間で直接無線接続（４、５）を確立して存在を検証するように構成され、前記少なくとも１つのドングル（ａ）は、前記セット（ｓ）に属する前記少なくとも１つの他のドングル（ｂ）との前記無線接続（４）の信号強度を測定して、前記信号強度が所定の最小信号強度を超過する場合、及び／又は前記信号強度から得られた距離尺度が前記１又は２以上の他のドングル（ｂ）の各々に関する所定の最大距離を下回る場合にのみ、前記デジタル署名（Ｓa）を計算（２８）するように構成される、ことを特徴とする請求項１から４の何れかに記載のセット（ｓ）。
【請求項６】
前記ドングルのうちの少なくとも１つ（ｃ）は、他の何れかのドングル（ａ、ｂ）に対してそれ自体の存在を検証する前に、携帯端末（Ｔc）の存在を検証するように構成される、ことを特徴とする請求項１から５の何れかに記載のセット（ｓ）。
【請求項７】
前記携帯端末（Ｔc）は、該携帯端末（Ｔc）のユーザの認証、好ましくは生体認証の後、限られた時間枠内でのみその存在を検証するように構成される、ことを特徴とする請求項６に記載のセット（ｓ）。
【請求項８】
請求項１から７の何れかに記載のセット（ｓ）に属するドングル（ａ）を用いてデジタル署名（Ｓi）を提供する方法であって、前記ドングル（ａ）は、秘密鍵（Ｋa）を保持し、前記方法は、
署名されるメッセージ（Ｍ）を受け取るステップと、
前記セット（ｓ）に属する少なくとも１つの他のドングル（ｂ、ｃ）の存在を検証するステップと、
前記検証が成功した場合に、前記秘密鍵（Ｋa）を使用して前記メッセージ（Ｍ）のデジタル署名（Ｓa）を計算するステップ（２８）と、
前記計算されたデジタル署名（Ｓa）を送信するステップと、
を含む、方法。
【請求項９】
前記セット（ｓ）に属する少なくとも１つの他のドングル（ｂ、ｃ）の存在を検証するステップは、ことによって特徴付けられ、
前記ゼロ知識証明を要求することが、
前記ゼロ知識証明を提供する要求を前記少なくとも１つの他のドングル（ｂ、ｃ）に送るステップと、
前記少なくとも１つの他のドングル（ｂ、ｃ）からゼロ知識証明を受け取るステップと、
前記受け取ったゼロ知識証明を検証するステップ（２６）と、
を含み、
前記少なくとも１つの他のドングル（ｂ、ｃ）の存在は、前記受け取ったゼロ知識証明の検証が成功した場合に検証される、請求項８に記載の方法。
【請求項１０】
前記セット（ｓ）に属する前記少なくとも１つの他のドングル（ｂ、ｃ）の存在を検証する間、前記存在を検証（２６）するのに必要な時間を測定するステップと、前記受け取ったメッセージ（Ｍ）の署名（Ｓa）を計算（２８）する前に、前記必要な時間が、前記１又は２以上の他のドングル（ｂ、ｃ）の各々に対する所定の時間枠内であることを要求するステップとによって特徴付けられる、請求項８又は９に記載の方法。
【請求項１１】
前記セット（ｓ）に属する前記少なくとも１つの他のドングル（ｂ、ｃ）との無線接続（４、５）の信号強度を測定するステップと、前記受け取ったメッセージ（Ｍ）の署名（Ｓa）を計算（２８）する前に、前記測定された信号強度が所定の最小信号強度を超過すること、及び／又は前記測定された信号強度から得られた距離尺度が前記１又は２以上の他のドングル（ｂ、ｃ）の各々に関する所定の最大距離を下回ることを要求するステップとによって特徴付けられる、請求項８から１０の何れかに記載の方法。
【請求項１２】
前記受け取ったメッセージの署名を計算する前又はゼロ知識証明を提供する前に、前記ドングル（ｃ）に接続された携帯端末（Ｔc）の存在を検証するステップ（５６）によって特徴付けられる、請求項８から１１の何れかに記載の方法。
【請求項１３】
前記携帯端末（Ｔc）の存在を検証するステップは、好ましくは少なくとも部分的に生体認証情報を使用して、前記携帯端末（Ｔc）のユーザを認証するステップ（５６）を含む、ことによって特徴付けられる、請求項１２に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２又は３以上のドングルのセット、及びこのようなセットに属するドングルを用いてデジタル署名を提供する方法に関し、各ドングルは、秘密鍵を保持し、各ドングルは、メッセージを受け取り、秘密鍵を使用して受け取ったメッセージのデジタル署名を計算し、この計算されたデジタル署名を送信するように構成され、本方法は、署名されたメッセージを受け取るステップと、秘密鍵を使用してメッセージのデジタル署名を計算するステップと、計算されたデジタル署名を送信するステップとを含む。
【背景技術】
【０００２】
本明細書において、「秘密鍵」という用語は、メッセージに署名するのに使用できる、それぞれのドングルによって保持され又はドングルに保存された何らかの秘密情報を指す。秘密鍵は、一般にドングルごとに異なり、すなわち、同じ秘密鍵を共有する２つのドングルは存在しない。具体的には、秘密鍵は、プライベート署名鍵とすることができ、好ましくは、秘密鍵を保持するそれぞれのドングルの内部のセキュア要素又は改ざん防止メモリに保存される。セキュア要素は、好ましくは、セキュア暗号プロセッサ（例えば、スマートカードで使用されるタイプのもの）、すなわち、暗号演算を実行するためのチップ又はマイクロプロセッサ上の専用コンピュータであり、ある程度の耐改ざん性を提供する複数の物理的セキュリティ手段を備えてパッケージに埋め込まれる。一般に、このセットはまた、秘密鍵を保持せずにメッセージ自体に署名するように構成されていないドングルを含むことができ、このドングルは、証拠としてのみ機能し、その存在は、実際の署名を行う少なくとも２つのドングルによって検証する必要がある。署名されるメッセージ、すなわち一般に「メッセージ」は、ドングルが受け取って署名できる何らかの信号又はデータ構造とすることができる。本発明は、具体的には、デジタル通貨（「暗号通貨」とも呼ばれる）の多重署名取引、又は一般にブロックチェーンアプリケーションの準備及び提供に関し、本出願では、メッセージは、いわゆる「リディームスクリプト」を含む取引（取引の詳細を保持するデータ構造）とすることができる。多重署名は、好ましくは、セットの少なくとも２つのドングルからの署名を含む。メッセージは、データ接続（ＵＳＢ、Ｂｌｕｅｔｏｏｔｈなど）を介してドングルに接続されたホストから受け取ることができ、計算されたデジタル署名は、同じデータ接続又は異なるデータ接続を使用してホストに返信すること、又は異なるホストに一緒に送信することができる。秘密鍵を使用して受け取ったメッセージのデジタル署名を計算することは、秘密鍵を用いてメッセージに署名することに相当する。デジタル署名の暗号化実施構成に応じて、このデジタル署名は、例えば、秘密鍵から得られた公開鍵を用いて検証することができる。
【０００３】
デジタル通貨（例えば、ビットコイン）は、アドレスの生成を可能にし、このアドレスの任意の発信取引は、多重署名（マルチシグニチャ）を必要とする。このような多重署名アドレスから有効な発信取引を生成するのに、複数の秘密鍵（又はプライベートキー）が必要とされる。必要な秘密鍵の数Ｍは、一般に、認可されたプライベートキーの数Ｎより少ないか、又はそれに等しい。従って、有効な発信取引はまた、Ｍ−ｏｆ−Ｎ多重署名（Ｍ−ｏｆ−Ｎ  ｍｕｌｔｉ−ｓｉｇｎａｔｕｒｅ）取引と呼ばれる。このような多重署名アドレスを生成するために、Ｎ個全ての認可されたプライベートキー並びに有効な発信取引に必要なＭ個の署名の公開鍵が提供される必要がある。
【０００４】
多重署名アドレスは、取引が、各人が１つの認可されたプライベートキーを制御する複数の人物の同意を必要とする場合、及び／又は認可された各プライベートキーが異なる方法で保護される（例えば、異なるストレージ手段に保存され、異なる場所で維持される）、有効な取引に複数の因子を必要とすべきである場合に使用される。従来型のデジタル署名又は「単一署名」は、信頼性を高めるためにセキュリティを損なう必要があるが（例えば、鍵の消失は、バックアップにより回避することができるが、他方では新しい攻撃ベクトルが導入される）、デジタル多重署名は、セキュリティと信頼性の何らかの所望のレベル及びバランスを達成可能にする。その結果、デジタル多重署名は、安全性を最重視すべき取引を保護するのに特に好適である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
デジタル多重署名を提供する現在の方法の１つの欠陥は、個々の署名が、任意の異なる時点で生成され、且つ後で有効な多重署名にコンパイルされる可能性があることである。
【課題を解決するための手段】
【０００６】
本発明の目的は、この欠陥を克服して、デジタル署名を提供する生成プロセスのセキュリティを高めることである。
【０００７】
本発明は、最初に述べた種類のドングルのセットを用いてこの目的を解決し、ここでドングルのうちの少なくとも１つは、デジタル署名を計算する前に、セットに属する少なくとも１つの他のドングルの存在を検証して、１又は２以上の他のドングルの存在を正常に検証した場合にのみ、デジタル署名を計算するように構成される。１又は２以上の他のドングルの存在が検証された（すなわち、正常に）場合で且つその場合に限り、ドングルは、受け取ったメッセージのデジタル署名を計算することに進む。
【０００８】
これに対応して、本発明は、最初に述べた種類の方法を用いて上記の目的を解決し、該方法は、デジタル署名を計算する前に、セットに属する少なくとも１つの他のドングルの存在を検証するステップと、検証が成功した場合にのみデジタル署名を計算するステップとを含む。
【０００９】
少なくとも１つの他のドングルの存在を検証することによって、第１のドングルは、少なくとも２つの秘密鍵（１つが各ドングルによって保持される）が存在して同時に署名に利用可能になる必要があることを保証する。少なくとも２つのドングルの署名手順は、協調される必要がある。有効な多重署名を生成することを試みる攻撃者は、少なくとも２つのドングルを同時に制御する必要があることになり、このことは、それぞれ個別のドングルを順番に制御するよりも、達成する（特に検出されない）ことが一般により困難である。
【００１０】
好ましくは、ドングルのうちの少なくとも１つは、ゼロ知識証明を要求することにより、セットに属する少なくとも１つの他のドングルの存在を検証する。これに対応して、本方法内でセットに属する少なくとも１つの他のドングルの存在を検証するステップは、ゼロ知識証明を要求することができ、該ゼロ知識証明を提供する要求を少なくとも１つの他のドングルに送るステップと、少なくとも１つの他のドングルからゼロ知識証明を受け取るステップと、受け取ったゼロ知識証明を検証するステップとを含み、少なくとも１つの他のドングルの存在は、受け取ったゼロ知識証明の検証が成功した場合に検証される。原理的には、ゼロ知識証明は、少なくとも１つの他のドングルのみが証明を提供でき、ドングルが存在する（すなわち、存在を検証するための証明を要求する少なくとも１つのドングルから到達可能である）場合のみのものであるため、存在の証明としての機能を果たす。ゼロ知識証明は、少なくとも１つの他のドングル（証明器）及びドングルのうちの少なくとも１つ（１又は複数の検証器）が接続されたチャレンジ／レスポンスプロトコルによって実装することができる。チャレンジは、有効期限が限られた一時的な（好ましくは１回の）トークンとすることができる。２つのドングル間の接続は、例えばＢｌｕｅｔｏｏｔｈ、ＺｉｇＢｅｅ、又はＷｉ−Ｆｉ（ＷＰＡＮ）接続などの直接接続とするか、或いは協調署名手順を調整する１又は２以上のホスト経由でルーティングすることができる。
【００１１】
本方法の好ましい実施形態では、受け取ったゼロ知識証明を検証するステップは、同じセットに属する他の全てのドングルの保存された識別情報の集合で受け取った証明を検証するステップを含む。
【００１２】
有利には、少なくとも１つの他のドングル（証明器）は、署名トリガを受け取り、該署名トリガを受け取った後の限られた時間枠内でのみ必要なゼロ知識証明を提供するように構成される。これに対応して、本方法は、署名されるメッセージを受け取る前に、ドングル（証明器）が、最初に署名トリガを受け取るステップを含み、署名トリガは、署名トリガを受け取った後の限られた時間枠の間、ドングルを署名モードに切り替え、時間枠の経過後、ドングルは、スタンバイモードに切り替わり、ドングルは、その存在のゼロ知識証明を他のドングルに送り、署名モードにあるときにのみ秘密鍵を使用してデジタル署名を計算する。署名トリガは、好ましくは、例えば、ユーザによって押されて、協調署名手順の承認を信号で伝えるためにドングルを制御する物理的ボタンなどの、それぞれのドングル上の物理的トリガである。署名トリガ後の時間枠（例えば、５分）が経過した後、少なくとも１つの他のドングルはスタンバイモードに入り、別の署名トリガが生じてこのドングルが再度署名モードに入るまで、要求されたゼロ知識証明を提供しない。時間枠外で（すなわち、スタンバイモードで）受け取ったゼロ知識証明要求は、保留中の要求として保存され、それぞれのドングルのユーザに通知することができる。この通知は、２つの目的を果たすことができ、この通知は、ユーザに署名の試みを信号で伝え、協調署名手順の承認の場合に、署名トリガを動作させることをユーザに気付かせる。
【００１３】
上述のゼロ知識証明は、署名に使用される秘密鍵（秘密署名鍵）又は別の秘密鍵（秘密存在鍵）とすることができる秘密鍵の知識に関するゼロ知識証明とすることができる。好ましくは、各ドングルは、更なる秘密鍵（秘密存在鍵）を保持し、ゼロ知識証明は、更なる秘密鍵の所有に関係する。各ドングルは、更に別の異なる秘密鍵又は秘密存在鍵を有する。更に別の秘密鍵は、この秘密鍵を保持しているドングルのプライベート識別情報を表す。これにより、更に別の秘密鍵は、ドングルのセットの製造業者によるプロビジョニング中に各ドングル内でロックすることができる。次に、秘密署名鍵は、更に別の秘密鍵によって確立されたドングル間の暗号リンクを危険にさらすことなく、ドングル所有者の各々によって製造業者の管理外で独立して生成することができる。次に、ドングル所有者は、後で所有者の署名を検証する、例えば、多重署名アドレスを構築するため、公開署名鍵のみを提供する。
【００１４】
好ましくは、ドングルのうちの少なくとも１つは、同じセットに属する他の全てのドングルの識別情報を保存する。識別情報は、秘密存在鍵又はプライベート識別情報に対応する公開鍵など、秘密鍵から得られた情報として保存することができる。識別情報は、好ましくは、ドングル内のセキュア要素又は改ざん防止メモリに秘密鍵（秘密署名鍵）と一緒に保存することができる。これに対応して、少なくとも１つの他のドングルの存在を検証するステップは、好ましくは、保存された識別情報と比較することによって、現在の他のドングルの識別情報を検証するステップを含む。保存された識別情報は、例えば、対応する公開存在鍵が検証ドングルによって保存された識別情報のうちの１つである（又はこれに含まれる）秘密存在鍵を用いてチャレンジが署名されたことを検証することによって、他のドングルのうちの少なくとも１つによって提供された存在証明を検証するのに使用することができる。
【００１５】
本セットの好ましい実施形態では、ドングルの少なくとも１つは、デジタル署名を計算する前に、存在を証明する必要がある他のドングルの数の下限値を保存する。これに対応して、本方法は、受け取ったメッセージの署名を計算する前に、存在が検証された（メッセージを受け取った後）ドングルの総数が、所定の下限値より大きいか又はこれに等しいことを要求するステップを含むことができる。従って、この場合、ドングルが、下限値として規定された数と少なくとも同じ数のドングルの存在（任意選択で、これらのドングルが署名モードであることを含む）を正常に検証した場合にのみ、ドングルは、それ自体の秘密鍵を用いて受け取ったメッセージの署名を計算する。他のドングルは、存在がこの要件にカウントされるように同じセットに属する必要があり、すなわち、該ドングルは、現在検証中のドングルと同じ多重署名に参加する「署名者ドングル」である必要がある。また、他のドングルの存在は、同じセッション中で検証され、その間に、受け取ったメッセージが署名される必要がある。下限値は、１から、同じセットに属するドングルの総数マイナス１（ドングル自体を検証するため）の間とすることができる。十分な数の署名者ドングルの存在を実施することにより、実際に任意の署名を計算する前に、有効なＭ−ｏｆ−Ｎ多重署名の実現可能性を試験することができる。ここで、Ｎは、同じセットに属するドングルの総数（署名者ドングルの総数）であり、Ｍは、有効な多重署名の必要な署名の数である。ＭがＮより小さい場合に、下限値は、１からＭマイナス１の間である。
【００１６】
更に、少なくとも１つのドングルが、セットに属する少なくとも１つの他のドングルの存在を検証するのに必要な時間を測定して、１又は２以上の他のドングルの各々に対する所定の時間枠内で１又は２以上の他のドングルの存在を正常に検証した場合にのみ、デジタル署名を計算するように構成されることが有利であることが分かった。これに対応して、本方法は、有利には、セットに属する少なくとも１つの他のドングルの存在を検証する間、該存在を検証するのに必要な時間を測定するステップと、受け取ったメッセージの署名を計算する前に、該必要な時間が、１又は２以上の他のドングルの各々に対する所定の時間枠内であることを要求するステップとを含む。具体的には、検証ドングルは、存在の証明（例えば、ゼロ知識証明）を要求してからそれを受け取るまでの往復遅延時間を測定するように構成することができる。往復遅延時間に上限値を適用することにより、ドングルの直接（仲介されない）接続及び最大物理的距離を試験することができる。受け入れ可能な所定の時間枠は、初期化手順中、実際のドングルの往復遅延時間の測定値に従って選択することができる。ドングルの存在をスプーフィングすることを試みる攻撃者は、往復遅延時間が所定の時間枠を超過しないことを保証する必要がある。ネットワークにわたってルーティングされる離れたドングル及び／又は接続の場合、これは、物理的に不可能であることが判明することができ、実質上、この攻撃ベクトルが排除される。
【００１７】
好ましくは、ドングルは、互いの間で直接無線接続を確立して存在を検証するように構成され、少なくとも１つのドングルは、セットに属する少なくとも１つの他のドングルとの無線接続の信号強度を測定して、該信号強度が所定の最小信号強度を超過するか、又は信号強度から得られた距離尺度が１又は２以上の他のドングルの各々の最大距離を下回る場合にのみ、デジタル署名を計算するように構成される。これに対応して、本方法は、好ましくは、セットに属する少なくとも１つの他のドングルとの無線接続の信号強度を測定するステップと、受け取ったメッセージの署名を計算する前に、測定された信号強度が所定の最小信号強度を超過すること、及び／又は測定された信号強度から得られた距離尺度が、１又は２以上の他のドングルの各々に関する所定の最大距離を下回ることを要求するステップとを含む。従って、検証ドングルは、セットからの他のドングルのうちの１又は２以上の信号強度が閾値最小信号強度を上回る場合、又は信号強度から得られた距離尺度が閾値最大距離を下回る場合にのみ、このドングル自体の秘密鍵を使用して、受け取ったメッセージの署名を計算する。無線接続は、例えば、Ｂｌｕｅｔｏｏｔｈ、ＮＦＣ、ＲＦＩＤ、Ｇｏｏｇｌｅ  Ｔｈｒｅａｄ、ＺｉｇＢｅｅ、又はＷＰＡＮ接続、又は一般に８０２．１５．４プロトコルスイートからの任意の接続（メッシュネットワーク接続）とすることができる。ミリワット又はｄＢミリワット（ｄＢｍ）で測定された物理的信号強度（ＲＸ値）又はパーセンテージで測定された受信信号強度表示（ＲＳＳＩ）は、信号強度の尺度として使用することができる。ドングルの最大物理的距離は、信号強度又は距離に下限値を適用することによって保証でき、該最大物理的距離は、往復遅延時間に対する上限値よりも正確に規定することができる。好ましくは、２つの手段が組み合わされて、セキュリティ及び精度が同時に達成される。
【００１８】
本発明の好ましい実施形態によれば、ドングルのうちの少なくとも１つは、他の何れかのドングルに対してそれ自体の存在を検証する前に、携帯端末の存在を検証するように構成することができる。これに対応して、本方法は、受け取ったメッセージの署名を計算する前、又はゼロ知識証明を提供する前に、ドングルに接続された携帯端末の存在を検証するステップを含むことができる。携帯端末は、例えば、スマートフォン、スマートウォッチ又はタブレットコンピュータなどの任意の携帯型コンピュータ端末とすることができる。携帯端末の存在の検証は、セットに属する１又は２以上の他のドングルの存在の検証と同様とすることができる。一例では、携帯端末の存在（又は「より具体的には」その証明）の検証は、受け取ったメッセージの署名を計算する前に要求することができ、第２の例では、またそれとは無関係に、携帯端末の存在は、ドングル自体の存在のために要求することができ、すなわち、ドングルが署名モードに入る前に要求することができる。これらの実施形態では、携帯端末は、協調署名手順でドングルを使用するための第２の因子として作用する。このことは、ユーザによって通常頻繁に使用される携帯端末がないことが、より低い頻度で使用される可能性があるドングルがないことよりも気付かれる可能性が高いという認識に基づく。攻撃者は、ドングル並びに携帯端末の制御を奪い取る必要があることになり、これによって、それぞれの所有者に気付かれる可能性が非常に高くなり、従って、セットアップ全体のセキュリティが高まる。
【００１９】
この文脈において、携帯端末が、携帯端末のユーザの認証、好ましくは生体認証の後、限られた時間枠内でのみその存在を検証するように構成されることが好都合であることが判明した。これに対応して、本方法中に携帯端末の存在を検証するステップは、好ましくは少なくとも部分的に生体認証情報を使用して、携帯端末のユーザを認証するステップを含むことができる。上記では、「存在」という用語は、一般的に、「署名の利用可能性」（例えば、「署名モード」にあること）を意味するのに使用される。その結果、署名手順は、任意の参加携帯端末のユーザが、認証情報（任意選択で、生体認証情報）を提供することにより、署名に同意することを表明していることを必要とする。生体認証情報の使用は、それが、参加している個人に関する協調署名手順の監査を助長するという利点を有する。
【００２０】
好ましくは、ドングルのうちの少なくとも１つは、受け入れ可能なメッセージを識別するためのホワイトリストを保存し、受け取ったメッセージが該ホワイトリストに従って受け入れ可能なメッセージであることを検証して、受け取ったメッセージを正常に検証した場合にのみデジタル署名を計算するように構成される。これに対応して、本方法は、受け取ったメッセージの署名を計算する前に、受け取ったメッセージが、ドングルに保存されたホワイトリストに従って受け入れ可能なメッセージであることを要求するステップを含むことができる。ホワイトリストは、受け入れ可能なメッセージの特性の集合とすることができる。例えば、本発明が取引を署名するのに適用される場合に、ホワイトリストは、受信アドレスを含むことができ、ホワイトリスト上のこれらの受信アドレスの１つへの取引のみが、受け入れ可能とみなされる。メッセージ又は取引が試験され、受け入れ可能であることが判明した後にのみ、このメッセージ又は取引のデジタル署名が、秘密鍵を使用して計算される。従って、攻撃者は、ホワイトリスト（好ましくは、ホワイトリストを使用してドングル内のセキュア要素又は改ざん防止メモリに保存される）を危険にさらすこと、又はホワイトリスト上の受信アドレスのうちの１つを制御することができる必要がある。
【００２１】
以下では、本発明によるセット及び方法の好ましい実施形態、並びにそれらの好ましい組み合わせが定められることになる。
【００２２】
１．デジタル署名を提供するための２又は３以上のドングルのセットであって、
各ドングルが秘密鍵を保持し、
各ドングルは、メッセージを受け取って、該秘密鍵を使用して受け取ったメッセージのデジタル署名を計算して、計算されたデジタル署名を送信するように構成され、
ドングルのうちの少なくとも１つは、デジタル署名を計算する前に、セットに属する少なくとも１つの他のドングルの存在を検証して、１又は２以上の他のドングルの存在を正常に検証した場合にのみ、デジタル署名を計算するように構成されていることを特徴とするセット。
【００２３】
２．ドングルの少なくとも１つは、ゼロ知識証明を要求することによって、セットに属する少なくとも１つの他のドングルの存在を検証するように構成される、実施形態１によるセット。
【００２４】
３．少なくとも１つの他のドングルは、署名トリガを受け取って、該署名トリガを受け取った後の限られた時間枠内でのみ必要なゼロ知識証明を提供するように構成されることを特徴とする、実施形態２によるセット。
【００２５】
４．各ドングルは、更なる秘密鍵を保持し、ゼロ知識証明は、更なる秘密鍵の所有に関係する、実施形態２又は３によるセット。
【００２６】
５．ドングルの少なくとも１つは、同じセットに属する他の全てのドングルの識別情報を保存することを特徴とする、実施形態１から４の何れかによるセット。
【００２７】
６．ドングルの少なくとも１つは、デジタル署名を計算する前に、存在を証明する必要がある他のドングルの数の下限値を保存することを特徴とする、実施形態１から５の何れかによるセット。
【００２８】
７．少なくとも１つのドングルが、セットに属する少なくとも１つの他のドングルの存在を検証するのに必要な時間を測定して、１又は２以上の他のドングルの各々に対する所定の時間枠内で１又は２以上の他のドングルの存在を正常に検証した場合にのみ、デジタル署名を計算するように構成されることを特徴とする、実施形態１から６の何れかによるセット。
【００２９】
８．ドングルは、互いの間で直接無線接続を確立して存在を検証するように構成され、少なくとも１つのドングルは、セットに属する少なくとも１つの他のドングルとの無線接続の信号強度を測定して、該信号強度が所定の最小信号強度を超過する場合、及び／又は信号強度から得られた距離尺度が１又は２以上の他のドングルの各々に関する所定の最大距離を下回る場合にのみ、デジタル署名を計算するように構成されることを特徴とする、実施形態１から７の何れかによるセット。
【００３０】
９．ドングルのうちの少なくとも１つは、他の何れかのドングルに対してそれ自体の存在を検証する前に、携帯端末の存在を検証するように構成されることを特徴とする、実施形態１から８の何れかによるセット。
【００３１】
１０．携帯端末は、該携帯端末のユーザの認証、好ましくは生体認証の後、限られた時間枠内でのみその存在を検証するように構成されることを特徴とする、実施形態９によるセット。
【００３２】
１１．ドングルのうちの少なくとも１つは、受け入れ可能なメッセージを識別するためのホワイトリストを保存し、受け取ったメッセージが該ホワイトリストに従って受け入れ可能なメッセージであることを検証して、受け取ったメッセージを正常に検証した場合にのみデジタル署名を計算するように構成されることを特徴とする、実施形態１から１０の何れかによるセット。
【００３３】
１２．実施形態１から１１の何れかによるセットに属するドングルを用いてデジタル署名を提供するための方法であって、該ドングルは秘密鍵を保持し、該方法は、以下のステップ、すなわち、
署名されるメッセージを受け取るステップと、
セットに属する少なくとも１つの他のドングルの存在を検証するステップと、
該検証が成功した場合に、秘密鍵を使用してメッセージのデジタル署名を計算するステップと、
計算されたデジタル署名を送信するステップと、
を含む方法。
【００３４】
１３．セットに属する少なくとも１つの他のドングルの存在を検証するステップは、ゼロ知識証明を要求することを特徴とし、
該ゼロ知識証明を提供する要求を少なくとも１つの他のドングルに送るステップと、
該少なくとも１つの他のドングルからゼロ知識証明を受け取るステップと、
受け取ったゼロ知識証明を検証するステップと、
を含み、少なくとも１つの他のドングルの存在は、受け取ったゼロ知識証明の検証が成功した場合に、検証される、実施形態１２による方法。
【００３５】
１４．受け取ったゼロ知識証明を検証するステップは、同じセットに属する他の全てのドングルの保存された識別情報の集合で受け取った証明を検証するステップを含むことを特徴とする、実施形態１３による方法。
【００３６】
１５．署名されるメッセージを受け取る前に、ドングルは、最初に署名トリガを受け取り、該署名トリガは、署名トリガを受け取った後の限られた時間枠の間、該ドングルを署名モードに切り替え、該時間枠の経過後、ドングルは、スタンバイモードに切り替わり、ドングルは、その存在のゼロ知識証明を他のドングルに送り、署名モードにあるときにのみ、秘密鍵を使用してデジタル署名を計算することを特徴とする、実施形態１２から１４の何れかによる方法。
【００３７】
１６．受け取ったメッセージの署名を計算する前に、存在が検証されたドングルの総数が、所定の下限値より大きいか又はこれに等しいことを要求するステップを含むことを特徴とする、実施形態１２から１５の何れかによる方法。
【００３８】
１７．セットに属する少なくとも１つの他のドングルの存在を検証する間、該存在を検証するのに必要な時間を測定するステップと、受け取ったメッセージの署名を計算する前に、該必要な時間が、１又は２以上の他のドングルの各々に対する所定の時間枠内であることを要求するステップとを含むことを特徴とする、実施形態１２から１６の何れかによる方法。
【００３９】
１８．セットに属する少なくとも１つの他のドングルとの無線接続の信号強度を測定するステップと、受け取ったメッセージの署名を計算する前に、測定された信号強度が所定の最小信号強度を超過すること、及び／又は測定された信号強度から得られた距離尺度が１又は２以上の他のドングルの各々に関する所定の最大距離を下回ることを要求するステップとを含むことを特徴とする、実施形態１２から１７の何れかによる方法。
【００４０】
１９．受け取ったメッセージの署名を計算する前、又はゼロ知識証明を提供する前に、ドングルに接続された携帯端末の存在を検証するステップを含むことを特徴とする、実施形態１２から１８の何れかによる方法。
【００４１】
２０．携帯端末の存在を検証するステップは、好ましくは少なくとも部分的に生体認証情報を使用して、携帯端末のユーザを認証するステップを含む、実施形態１９による方法。
【００４２】
２１．受け取ったメッセージの署名を計算する前に、受け取ったメッセージが、ドングルに保存されたホワイトリストに従って受け入れ可能なメッセージであることを要求するステップを含む、実施形態１２から２０の何れかによる方法。
【００４３】
ここで図面を参照すると、図面は、本発明を例示する目的のものであり、本発明を限定するものではない。
【図面の簡単な説明】
【００４４】
【図１】本発明による３つのドングルのセットの使用例を概略的に示す。
【図２】図１に示されているドングルのうちの２つを使用して本発明によるデジタル署名を提供するための手順のシーケンス図を示す。
【図３】図１に示されている３つのドングル及び携帯端末を使用した図２の機能拡張形態を示す部分シーケンス図を示す。
【発明を実施するための形態】
【００４５】
図１によって概略的に示される使用例は、３つのドングルａ、ｂ、ｃのセットｓを含む。ドングルａ、ｂ、ｃの各々は、メッセージＭのデジタル署名Ｓi（Ｍ）を提供するように構成され（図２と比較）、ここで、Ｓi（Ｍ）＝Ｓ（Ｍ、Ｋi）であり、Ｋiは、ドングルｉによって保持される秘密鍵であり、ｉは、ａ、ｂ、又はｃのうちの１つである。秘密鍵Ｋiは、それぞれのドングルｉにセキュアに保存される秘密情報である。この秘密鍵は、初期化手順中にドングルｉでローカルにランダムに生成でき、好ましくは、決してドングルｉから離れない。従って、各ドングルｉは、一般に異なる秘密鍵Ｋiを保持する。
【００４６】
ドングルａ、ｂ、ｃは、ポケットに収まる携帯型（バッテリ式）ポータブルデバイスである。典型的に、セキュリティの高いアプリケーションに使用されるドングルｉの所有者Ｏi（すなわち、Ｏa、Ｏb、Ｏc）は、これらの所有者のそれぞれのドングルｉを常に携帯する必要がある。このことは、各ドングルｉがそのそれぞれの所有者であるＯiの排外的な管理下のままでることを保証するためである。この状況は、各ドングルｉの制御範囲Ｃiを制限する円で図１に示されている。同じことが、本質的にホストｈ、その所有者Ｏh、及び制御範囲Ｃhに適用される。
【００４７】
図に示されているように、各ドングルｉは、例えばワークステーション又はラップトップなどの別個のコンピュータであるホストｈに接続される。接続１、２、３は、例えば、Ｂｌｕｅｔｏｏｔｈ技術を使用した無線接続である。代替的に、ドングルｉのうちの１又は２以上は、ＵＳＢ接続などの有線接続を使用してホストｈに接続することができる。ドングルｉは、追加の直接無線接続４、５、例えば、やはりＢｌｕｅｔｏｏｔｈ技術を使用して互いに接続される。ドングルａとドングルｂとの間の直接接続４並びにドングルａとドングルｃとの間の直接接続５のみが図１に示されているが、ドングルｂとドングルｃとの間に追加の直接接続が存在することができる。各ドングルｉは、そのそれぞれの所有者Ｏiが押すことができる物理的ボタン６を備える。ドングルｃは、このドングルｃに関連する携帯端末Ｔcとの追加（第３）の無線接続７を有する。携帯端末Ｔcは、ドングルｃの所有者Ｏcの個人用スマートフォンである。携帯端末Ｔcは、画面８及び指紋センサ９を備える。顔認識及び／又は音声認識を行うためのセンサなどの他の生体認証センサが、携帯端末Ｔcに含まれ得る。一般に、これらの生体認証センサは、ドングルｃの所有者Ｏcを認証するように構成される。
【００４８】
ホストｈは、ネットワーク１０を介してデータベース１１と接続される。データベース１１は、オンラインで、すなわちインターネットを介してアクセス可能な公開取引ディレクトリを表す。データベース１１は、好ましくは、分散型公開取引ディレクトリであり、好ましくは、デジタル通貨の取引をセキュリティ保護するのに使用されるタイプの分散型ブロックチェーン（例えば、ビットコイン又はイーサリアム）である。
【００４９】
各ドングルｉは、広範囲にわたって利用可能なタイプの好適な無線送信コンポーネント（例えば、Ｂｌｕｅｔｏｏｔｈトランシーバ）を使用して、無線接続１、２、３経由でホストｈからメッセージＭを受け取るように構成される。同様に、各ドングルｉは、メッセージＭのコピーの有無にかかわらず、計算されたデジタル署名Ｓi（Ｍ）を無線接続１、２、３経由でホストｈに返信するように構成される。更に、各ドングルｉは、秘密鍵Ｋiを使用して受け取ったメッセージＭのデジタル署名Ｓi（Ｍ）を計算するように構成される。典型的に、秘密鍵Ｋiは、メッセージＭを受け入れて、対応する署名Ｓi（Ｍ）を返すように構成されたセキュア要素に保存され、この署名は、受け入れられたメッセージＭ及び秘密鍵Ｋiから暗号的に得られる。従って、秘密鍵Ｋiは、それ自体、決して、セキュア要素を離れる必要又はセキュア要素の外部で認識されるようになる必要がない。セキュア要素は、好ましくは、セキュアな暗号プロセッサである。
【００５０】
各ドングルｉは更に、図２に関連してより詳細に説明するように、他の２つのドングルｉの一方又は両方の存在を検証するように構成される。この存在検証手順が成功した場合にのみ、全ての必要な条件が試験されて満たされることが分かるので、ドングルｉは、デジタル署名Ｓi（Ｍ）を計算することに進むことになる。好ましくは、これらの条件の一部又は全部は、それぞれのドングルｉのセキュア要素内で試験される。本実施例では、ドングルａは、ゼロ知識証明を要求することにより、同じセットｓに属するドングルｂの存在を検証するように構成される。必要なゼロゼロ知識証明は、ドングルａによって生成されて接続４を介してドングルｂに送信されるランダムチャレンジＲaのデジタル署名Ｓ（Ｒa、Ｉb）であり、ドングルｂのプライベート識別情報Ｉbが使用される。ドングルｂは、必要なゼロ知識証明を提供し、署名トリガ１３を受け取った後の限られた時間枠１２内でのみデジタル署名Ｓ（Ｒa、Ｉb）を計算するように構成される。プライベート識別情報Ｉbは、好ましくは秘密鍵Ｋbと同じドングルｂのセキュア要素内に保存された更なる秘密鍵である。署名トリガ１３は、ドングルｂのボタン６を押すことにより、ドングルｂの所有者Ｏbによって作動することができる。ゼロ知識証明を要求するドングルａは、同じセットに属する他の２つのドングルｂ及びｃの識別情報Ｐ（Ｉi）、すなわち、Ｐ（Ｉb）及びＰ（Ｉc）を保存する。ここで、識別情報Ｐ（Ｉi）は、それぞれのプライベート識別情報Ｉiに対応しそれから暗号的に得られる公開鍵である。存在は、デジタル署名Ｓa（Ｍ）を計算するための条件であるため、デジタル署名Ｓ（Ｒa、Ｉb）の形式でのゼロ知識証明は、好ましくは、セキュア要素によって検証される。従って、署名Ｓ（Ｒa、Ｉb）を検証するのに必要な識別情報Ｐ（Ｉb）を含む識別情報Ｐ（Ｉi）は、好ましくは、秘密鍵Ｋaと同じセキュア要素内に保存される。また、存在の検証に対するあらゆる外部制御を回避するために、ランダムチャレンジＲaは、好ましくは、このセキュア要素によって生成され、セキュア要素が、署名Ｓ（Ｒa、Ｉb）を検証することになる。
【００５１】
一般に、デジタル署名Ｓa（Ｍ）を提供するのに、セットｓの全てのドングルｉが存在して、任意の１つのドングルｉに対してその存在を検証させる必要はなく、例えば、ＭがＮより小さく、Ｎが同じセット内のドングルｉの総数である場合のＭ−ｏｆ−Ｎ多重署名の場合、サブセットの存在が十分とすることができる。図２に示されている例では、ドングルａ及びｂは、要求された署名を提供する前に１つのドングルの存在を検証して要求し、すなわち、この状況では、ドングルｃがドングルａ及びｂに対して存在して、これらのそれぞれの署名をＳa（Ｍ）及びＳb（Ｍ）をホストｈに提供する必要はない。代替的に、ドングルａ及び／又はドングルｂは、デジタル署名を計算する前に、存在が証明される必要がある他のドングルの数の下限値を保存することができる。図１に示されている使用例では、この下限値は、１又は２の何れかとすることができる。
Ｓ（Ｒa、Ｉb）
ドングルａが２の下限値を保存する場合に、このドングルは、他のドングルｂ及びｃの両方の検証を試み、これらの両方の存在が検証された（例えば、両方とも、それぞれ、デジタル署名Ｓ（Ｒa、Ｉb）又はＳ（Ｒa、Ｉc）の形式での存在の証明を提供した）後にのみ、デジタル署名Ｓa（Ｍ）を計算することになる。
【００５２】
また、ドングルａは、ドングルｂの存在を検証するのに必要な時間を測定するように構成される。詳細には、ランダムチャレンジＲaを送ってからデジタル署名Ｓ（Ｒa、Ｉb）を受け取るまでの往復遅延時間Ｄ（ａ、ｂ）を測定するように構成される。遅延時間Ｄ（ａ、ｂ）が、所定の時間枠、例えば２ミリ秒（ｍｓ）内にあり、デジタル署名Ｓ（Ｒａ、Ｉｂ）が有効な場合のみ、ドングルは、デジタル署名Ｓa（Ｍ）の計算に進むことになる。この条件は、好ましくは、セキュア要素内で試験されるので、セキュア要素は、好ましくは、クロックと、任意選択で、このクロックに確実に電力を供給する内部電源とを備える。デジタル署名Ｓ（Ｒa、Ｉb）の形式での存在証明が、後で、例えば３ｍｓ後に到来した場合には、ドングルａは、メッセージＭのデジタル署名Ｓ（Ｒa）を計算しないことになる。この時間枠は、実質上、往復遅延時間Ｄ（ａ、ｂ）の上限であり、ドングルａのセキュア要素とドングルｂのセキュア要素と距離尺度として機能する。物理的距離は、限られた情報送信速度（一般に、光速）に起因して、往復の遅延時間に影響を与える。しかしながら、実際には、往復遅延時間は、２つのドングルａ及びｂのセキュア要素間の接続を仲介する送信電子機器における遅延によって支配されることになる。特に、所定の時間枠を実施すると、予告なしにドングル間の接続を中継することが困難又は不可能になる。
【００５３】
更に、ドングルａは、ドングルとの直接無線接続４の信号強度を測定するように構成される。ドングルａは、直接無線接続４の測定された信号強度が、所定の最小信号強度、例えば４ｄＢｍ（Ｂｌｕｅｔｏｏｔｈ信号の推定１０メートル範囲に相当）を超過した場合にのみ、受け取ったメッセージＭのデジタル署名Ｓa（Ｍ）を計算するように構成される。
【００５４】
図３に関連してより詳細に説明するように、ドングルｃは、それ自体の存在をドングルａ又はドングルｂの何れかに確認する前に、携帯端末Ｔcの存在を検証するように構成される。同時に、携帯端末Ｔcは、所有者Ｏcの認証後、有効で認可された指紋を指紋センサ９に入力することにより、限られた時間枠内でのみこの携帯端末の存在を検証するように構成される。
【００５５】
最後に、ドングルａは、受け入れ可能なメッセージＭを識別するためのホワイトリストを保存する。メッセージＭが取引の場合、ホワイトリストは、例えば５つの受け入れ可能な取引ターゲット（受信アドレス）を含む。ホストｈが、異なるターゲットとの取引を含むメッセージＭの署名を要求する場合に、ドングルａは、このようなメッセージＭに署名することを拒否する。ホワイトリストは、好ましくは、ドングルａのセキュア要素内に保存される。
【００５６】
上記において、いくつかの機能が単一のドングルａ、ｂ又はｃに関して説明されている場合に、このような機能の各々は、他のそれぞれのドングルの何れか又は全てによって類似して、且つ同様の効果となる（更に多くの場合、セキュリティを高める）ように実装できることが当業者には明らかであろう。
【００５７】
本方法を更に説明するために、例示的で比較的単純な実施形態が、図２に示されているシーケンス図とともに時系列順で説明される。図２における最初の状況は、所有者Ｏa及びＯbが特定の取引の実行に合意してそれを行い、取引を調整及び準備してそれをデータベース１１にアップロードし、従って、コーディネータとして機能するホストｈの所有者Ｏhを招待していることである。２人の所有者Ｏa及びＯbは、それぞれのドングルａ及びｂを持って来ており、これらのドングルは、最初、スタンバイモードにあり、図１に関連して上述したように構成され初期化される。当然ながら、所有者Ｏa、Ｏbの何れかが、ホストｈを所有して運用することはやはり可能である。しかしながら、本明細書では、分かりやすくするために、３人の別個の所有者Ｏh、Ｏa、及びＯbが想定されている。
【００５８】
初めに、コーディネータ（すなわち、ホストｈの所有者Ｏh及びオペレータ）は、ステップ１４において、ドングルａの所有者Ｏaに、ドングルａの署名トリガを作動させるように依頼する。所有者Ｏaは、ドングルａのボタン６を押すことによって、ドングルａの署名トリガ１５を作動させ、ドングルａのタイムラインに平行な左縦バーで示される限られた時間枠１６の間（例えば、５分間）、ドングルａを署名モードに切り替える。ステップ１７において、所有者Ｏhは、ドングルｂの所有者Ｏbにドングルｂの署名トリガを作動させるように依頼する。所有者Ｏbは、ドングルｂのボタン６を押すことによって、ドングルｂの署名トリガ１３を作動させ、ドングルａのタイムラインに平行な左縦バーで示される限られた時間枠１２の間、ドングルｂを署名モードに切り替える。ここで、ドングルａ及びｂは、両方とも署名モードにある。
【００５９】
コーディネータは、ステップ１８において、所望の取引パラメータをホストｈに入力する。ホストｈは、ステップ１９において、入力された取引パラメータをドラフトＯＲ原案取引に編集し、このドラフト取引は、完全で有効な取引を形成するために多重署名を用いて署名される必要があるメッセージＭに対応する。詳細には、メッセージＭは、例えば、少なくとも１つの以前の（元の）取引の識別子と、この以前の取引が暗号的に関連するリディームスクリプトと、取引ターゲットアドレス及び取引金額とを含む。取引の状態２０は、ホストｈのタイムラインに平行な垂直バーで示される。
【００６０】
メッセージＭが準備されると、ホストｈは、接続１（図１を参照）経由でメッセージＭをドングルａに送信し、ドングルａは、このメッセージＭを受け取る。ドングルａは、時間枠１６の間にそれ自体が署名モードにあることを認識し、従って、ステップ２１において、２２で示されるようにローカルに保存されるランダムチャレンジＲaを生成することに進む。ドングルａは、プライベート識別情報Ｉbのゼロ知識証明を提供する要求としてランダムチャレンジＲaを接続４経由でドングルｂに送信し、同時に、内部ストップウォッチを起動する。ドングルＢは、ドングルａによって生成されたランダムチャレンジＲaを受け取り、このランダムチャレンジＲaを保存し（２３）、ドングルＢは、時間枠１２の間、それ自体が署名モードにあることを認識しているので、ドングルＢのプライベート識別情報Ｉbを使用して、ランダムチャレンジＲaのデジタル署名Ｓ（Ｒa、Ｉb）を計算する（２４）。ドングルＢは、デジタル署名Ｓ（Ｒa、Ｉb）を保存し（２５）、このデジタル署名をドングルａに返信する。ドングルａは、要求されたゼロ知識証明を形成するデジタル署名Ｓ（Ｒa、Ｉb）をドングルｂから受け取って、内部ストップウォッチを停止し、ここで、この内部ストップウォッチが、遅延時間Ｄ（ａ、ｂ）を読み取る。ドングルａは、遅延時間Ｄ（ａ、ｂ）が、所定の時間枠内にあり、ドングルａによって測定された接続４の信号強度が、所定の最小信号強度を超過するか否か、及び、デジタル署名Ｓ（Ｒa、Ｉb）が、ローカルに保存された識別情報Ｐ（Ｉb）に従って有効であるか否かをチェックすること、すなわち、受け取ったゼロ知識証明を検証することによって、ドングルｂの存在を検証する。従って、３つ全ての条件が満たされている場合に、ドングルｂの存在が正常に検証され、ドングルａは、秘密鍵Ｋaをロック解除し（２７）、この秘密鍵Ｋaを使用してメッセージＭのデジタル署名Ｓa（Ｍ）を計算し（２８）、この計算されたデジタル署名Ｓa（Ｍ）をホストｈに送信する。
【００６１】
ホストｈは、ドラフト取引の部分的署名部分（例えば、部分的「ｓｃｒｉｐｔＳｉｇ（スクリプトシグ）」）としてデジタル署名Ｓa（Ｍ）を保存する（２９）。リディームスクリプトによって規定される取引は、３つのうちの２つの多重署名取引であると想定される。従って、ホストｈは、セットｓの第２のドングルｉからの追加の署名を要求する。その結果、ホストｈは、接続２経由でメッセージＭをドングルｂに送信する。ドングルｂは、時間枠１２の間、依然として署名モードにあるため、ドングルｂは、ランダムチャレンジＲbを生成することに進み（３０）、ドングルｂは、このランダムチャレンジをローカルに保存する（３１）。ドングルａの存在を検証するために、ドングルｂは、ランダムチャレンジＲbをゼロ知識プロトコルの一部としてドングルａに送信する。ドングルａは、受け取ったランダムチャレンジＲbを保存し（３２）、また依然として、時間枠１６の間、署名モードにあり、ドングルａのプライベート識別情報Ｉaを用いてランダムチャレンジＲbに署名して（３３）、デジタル署名Ｓ（Ｒb、Ｉa）を生成し、このデジタル署名が、保存され（３４）、存在のゼロ知識証明としてドングルｂに返信される。ドングルｂは、ローカルに保存された識別情報Ｐ（Ｉa）を用いてデジタル署名Ｓ（Ｒb、Ｉa）を検証する（３４）。（代替的に、識別情報Ｐ（Ｉa）は、ドングルｂによって信頼された認証機関ｚによって署名されて、認証機関のプライベート識別情報Ｉzを用いてこの認証機関によって計算されたデジタル署名Ｓ（Ｐ（Ｉa）、Ｉz）及びデジタル署名Ｓ（Ｒb、Ｉa）とともにドングルａからドングルｂに送信することができる。この場合、ドングルｂは、認証機関の識別情報Ｐ（Ｉz）のみを保存し、デジタル署名Ｓ（Ｐ（Ｉa）、Ｉz）を用いてドングルａの受け取った識別情報Ｐ（Ｉa）を検証し、次に、デジタル署名Ｓ（Ｒb、Ｉa）及び受け取った識別情報Ｐ（Ｉa）を用いてドングルａの存在を検証する。）存在のゼロ知識証明として受け取ったデジタル署名Ｓ（Ｒb、Ｉa）が有効であることが判明した場合に、ドングルｂは、秘密鍵Ｋbをロック解除し、デジタル署名Ｓb（Ｍ）を計算して（３６）、このデジタル署名Ｓb（Ｍ）をホストｈに送信する。
【００６２】
ここで、ホストｈは、２つのドングルａ、ｂから署名Ｓa（Ｍ）、Ｓb（Ｍ）を受け取り、従って、完全な署名部分を保持する（３７）。ホストｈは、この完全な署名部分３７を用いて、有効な取引を編集する（３９）。次に、ホストｈは、有効な取引３９をデータベース１１にサブミットする（４０）。データベース１１（又は実質上、分散型公開取引ディレクトリに参加するノードのネットワーク）は、サブミットされた取引を検証する（４１）。コーディネータは、サブミットされた取引がデータベース１１に含まれ、従って、有効であることを検証する（４２）。
【００６３】
図３は、図２に関連して説明した手順を拡張できる部分シーケンス図を示しており、ドングルａ、ｂが他の２つのドングルの下限値を保存する場合に、ドングルの存在は、メッセージＭの署名が提供される前に検証される必要がある。この場合、図３のセクションＩＩＩａに示されているシーケンスは、ドングルｂの存在を検証した後の図２の時点ＩＩＩａに挿入することができる。ドングルａは、ランダムチャレンジＲaをドングルｃに送信し、この時点では、ドングルｃは、依然としてスタンバイモードであるが、これにもかかわらずランダムチャレンジＲaを保存する（４３）。ドングルｃは、進行中の協調署名手順及びこのドングルの必要な存在証明をこのドングルの所有者Ｏcに通知する。この通知に応答して、所有者Ｏcは、この所有者が署名に同意した場合に、ドングルｃ上のボタン６を押すことによって署名トリガを作動させ（４５）、これによって、ドングルｃが、限られた時間枠４６の間、署名モードになる。ドングルｃは、プライベート識別情報Ｉcの第１の部分Ｉc1のみを保持し、プライベート識別情報Ｉcの第２の部分Ｉc2は、携帯端末Ｔcによって保持される。従って、有効な存在証拠を提供するために、ドングルｃは、部分署名のために、ドングルａから受け取られ保存されたランダムチャレンジＲaを接続７経由で携帯端末Ｔcに送信する。この時点で、携帯端末Ｔcは、依然としてスタンバイモードにあり、受け取ったランダムチャレンジＲaを保存する（４７）。携帯端末Ｔcは、その所有者Ｏcに進行中の署名手順を通知し（４８）、指紋センサ９に指紋を入力することにより認証を依頼する。所有者Ｏcは、要求された指紋を入力し（４９）、これによって、携帯端末Ｔcが、限られた時間枠５０の間、署名モードに切り替わる。ここで、署名モードでは、携帯端末Ｔcは、プライベート識別情報Ｉcの第２の部分Ｉc2を使用して、ランダムチャレンジＲaの部分デジタル署名Ｓ（Ｒa、Ｉc2）を計算して（５１）それを保存し（５２）、この部分デジタル署名Ｓ（Ｒa、Ｉc2）を接続７経由でドングルｃに送信する。時間枠４６の間、依然として署名モードにあるドングルｃは、受け取った部分デジタル署名Ｓ（Ｒa、Ｉc2）を保存し（５３）、プライベート識別情報Ｉcの第１の部分Ｉc1を使用してランダムチャレンジＲaの完全デジタル署名Ｓ（Ｒa、Ｉc1、Ｉc2）＝Ｓ（Ｒa、Ｉc）を計算する（５４）。ドングルｃは、完全デジタル署名Ｓ（Ｒa、Ｉc）を保存し（５５）、この完全デジタル署名を接続５経由でドングルａに返信する。次に、ドングルａは、ローカルに保存された識別情報Ｐ（Ｉc）を用いて受け取った署名Ｓ（Ｒa、Ｉc）を検証することによって、ドングルｃの存在を検証し（５６）、更に暗黙的に携帯端末Ｔcの存在を検証する。成功した場合に、ドングルａは、図２に関連して説明したデジタル署名Ｓa（Ｍ）の計算（２７）に進む。
【００６４】
図３のセクションＩＩＩｂに示されているシーケンスは、ドングルｂがドングルａの存在を検証（３５）した後の図２の時点ＩＩＩｂに挿入することができる。この時点では、ドングルｃ及び携帯端末Ｔcは、時間枠４６、５０の間、依然として署名モードにある。従って、ドングルｂがランダムチャレンジＲbをドングルｃに送信したときに、ドングルｃは、ランダムチャレンジＲbを保存し（５７）、即座に、部分署名のためにこのランダムチャレンジＲbを携帯端末Ｔcに転送する。携帯端末Ｔcは、受け取ったランダムチャレンジＲbを保存し（５８）、プライベート識別情報Ｉcの第２の部分Ｉc2を使用してランダムチャレンジＲbの部分デジタル署名Ｓ（Ｒb、Ｉc2）を計算（５９）してそれを保存する（６０）。携帯端末Ｔcは、部分デジタル署名Ｓ（Ｒb、Ｉc2）をドングルｃに返信し、ドングルｃが、受け取った部分デジタル署名Ｓ（Ｒb、Ｉc2）を保存（６１）し、プライベート識別情報Ｉcの第１の部分Ｉc1を使用してランダムチャレンジＲbの完全デジタル署名Ｓ（Ｒb、Ｉc1、Ｉc2）＝Ｓ（Ｒb、Ｉc）を計算する（６２）。ドングルｃは、完全デジタル署名Ｓ（Ｒb、Ｉc）を保存し（６３）、ドングルｂとドングルｃとの間の直接無線接続経由でこの完全デジタル署名をドングルｂに返信する。次に、ドングルｂは、ローカルに保存された識別情報Ｐ（Ｉc）を用いて受け取った署名Ｓ（Ｒb、Ｉc）を検証することによって、ドングルｃの存在及び携帯端末Ｔcの存在を検証する（６４）。成功した場合、ドングルｂは、図２に関連して説明したようにデジタル署名Ｓb（Ｍ）の計算（３６）に進む。
【００６５】
ドングルａ、ｂ、ｃ及び携帯端末Ｔcは、限られた時間枠１２、１６、４６、５０（すなわち、これらが署名モードに入った後の所定の期間）の最後に、署名モードからスタンバイモードに自律的に切り替わる。
【００６６】
図２及び図３におけるタイムラインと交差する平行な対角線６６は、任意の時間が経過しており、この時間中、他のステップ及び状態変化が生じることができることを示している。
【符号の説明】
【００６７】
４、５  無線接続
８  画面
９  指紋センサ
１０  ネットワーク
１１  データベース
ａ、ｂ、ｃ  ドングル
ｓ  セット
Ｔc  携帯端末
【図１】
2021507616.tif 000003
【図２】
2021507616.tif 000004
【図３】
2021507616.tif 000005
【国際調査報告】
2021507616.tif 000006
2021507616.tif 000007
2021507616.tif 000008