IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ リドル アンド コード ゲゼルシャフト ミット ベシュレンクテル ハフツングの特許一覧

特許7037655デジタル署名を提供するためのドングル及び方法
<>
  • 特許-デジタル署名を提供するためのドングル及び方法 図1
  • 特許-デジタル署名を提供するためのドングル及び方法 図2
  • 特許-デジタル署名を提供するためのドングル及び方法 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-08
(45)【発行日】2022-03-16
(54)【発明の名称】デジタル署名を提供するためのドングル及び方法
(51)【国際特許分類】
   H04L 9/32 20060101AFI20220309BHJP
【FI】
H04L9/32 200B
H04L9/32 200C
【請求項の数】 13
(21)【出願番号】P 2020533232
(86)(22)【出願日】2018-12-18
(65)【公表番号】
(43)【公表日】2021-02-22
(86)【国際出願番号】 EP2018085602
(87)【国際公開番号】W WO2019121751
(87)【国際公開日】2019-06-27
【審査請求日】2020-07-14
(31)【優先権主張番号】17208564.9
(32)【優先日】2017-12-19
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】518446020
【氏名又は名称】リドル アンド コード ゲゼルシャフト ミット ベシュレンクテル ハフツング
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109335
【弁理士】
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100176418
【弁理士】
【氏名又は名称】工藤 嘉晃
(72)【発明者】
【氏名】ヒュルストナー トマス
【審査官】行田 悦資
(56)【参考文献】
【文献】特開平10-293804(JP,A)
【文献】国際公開第2005/117336(WO,A1)
【文献】特開2004-362552(JP,A)
【文献】特表平10-506727(JP,A)
【文献】特開2006-268577(JP,A)
【文献】特開2016-206982(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
デジタル署名(Si)を提供するための2又は3以上のドングル(a,b,c)のセット(s)であって、
前記各ドングル(a、b、c)が秘密鍵(Ki)を保持し、
前記各ドングル(a、b、c)は、メッセージ(M)をホストから受け取って、前記秘密鍵(Ki)を使用して前記受け取ったメッセージ(M)のデジタル署名(Si)を計算(28、36)して、前記計算されたデジタル署名(Si)を前記ホストに送信するように構成される、セット(s)において、
前記ドングルの少なくとも1つ(a)は、前記デジタル署名(Sa)を計算(28)する前に、前記セット(s)に属する少なくとも1つの他のドングル(b、c)の存在を検証(26)して、前記1又は2以上の他のドングル(b、c)の存在を正常に検証した場合にのみ、前記デジタル署名(Sa)を計算(28)するように構成されていることを特徴とする、セット(s)。
【請求項2】
前記ドングルの少なくとも1つ(a)は、ゼロ知識証明を要求することによって、前記セット(s)に属する少なくとも1つの前記他のドングル(b、c)の存在を検証するように構成される、請求項1に記載のセット(s)。
【請求項3】
前記ドングルの少なくとも1つ(a)は、前記デジタル署名を計算(28)する前に、存在を証明する必要がある前記他のドングル(b、c)の数の下限値を保存する、ことを特徴とする請求項1又は2に記載のセット(s)。
【請求項4】
前記少なくとも1つのドングル(a)が、前記セット(s)に属する前記少なくとも1つの他のドングル(b、c)の存在を検証するのに必要な時間を測定して、前記1又は2以上の他のドングル(b、c)の各々に対する所定の時間枠内で1又は2以上の他のドングル(b、c)の存在を正常に検証した場合にのみ、前記デジタル署名(Sa)を計算(28)するように構成される、ことを特徴とする請求項1から3の何れかに記載のセット(s)。
【請求項5】
前記ドングル(a、b、c)は、互いの間で直接無線接続(4、5)を確立して存在を検証するように構成され、前記少なくとも1つのドングル(a)は、前記セット(s)に属する前記少なくとも1つの他のドングル(b)との前記無線接続(4)の信号強度を測定して、前記信号強度が所定の最小信号強度を超過する場合、及び/又は前記信号強度から得られた距離尺度が前記1又は2以上の他のドングル(b)の各々に関する所定の最大距離を下回る場合にのみ、前記デジタル署名(Sa)を計算(28)するように構成される、ことを特徴とする請求項1から4の何れかに記載のセット(s)。
【請求項6】
前記ドングルのうちの少なくとも1つ(c)は、他の何れかのドングル(a、b)に対してそれ自体の存在を検証する前に、携帯端末(Tc)の存在を検証するように構成される、ことを特徴とする請求項1から5の何れかに記載のセット(s)。
【請求項7】
前記携帯端末(Tc)は、該携帯端末(Tc)のユーザの認証、好ましくは生体認証の後、限られた時間枠内でのみその存在を検証するように構成される、ことを特徴とする請求項6に記載のセット(s)。
【請求項8】
2又は3以上のドングル(a,b,c)のセット(s)に属するドングル(a)を用いてデジタル署名(Si)を提供する方法であって、前記ドングル(a)は、秘密鍵(Ka)を保持し、前記方法は、
署名されるメッセージ(M)をホストから受け取るステップと、
前記セット(s)に属する少なくとも1つの他のドングル(b、c)の存在を検証するステップと、
前記検証が成功した場合に、前記秘密鍵(Ka)を使用して前記メッセージ(M)のデジタル署名(Sa)を計算するステップ(28)と、
前記計算されたデジタル署名(Sa)を前記ホストに送信するステップと、
を含む、方法。
【請求項9】
前記セット(s)に属する少なくとも1つの他のドングル(b、c)の存在を検証するステップは、ことによって特徴付けられ、
前記ゼロ知識証明を要求することが、
前記ゼロ知識証明を提供する要求を前記少なくとも1つの他のドングル(b、c)に送るステップと、
前記少なくとも1つの他のドングル(b、c)からゼロ知識証明を受け取るステップと、
前記受け取ったゼロ知識証明を検証するステップ(26)と、
を含み、
前記少なくとも1つの他のドングル(b、c)の存在は、前記受け取ったゼロ知識証明の検証が成功した場合に検証される、請求項8に記載の方法。
【請求項10】
前記セット(s)に属する前記少なくとも1つの他のドングル(b、c)の存在を検証する間、前記存在を検証(26)するのに必要な時間を測定するステップと、前記受け取ったメッセージ(M)の署名(Sa)を計算(28)する前に、前記必要な時間が、前記1又は2以上の他のドングル(b、c)の各々に対する所定の時間枠内であることを要求するステップとによって特徴付けられる、請求項8又は9に記載の方法。
【請求項11】
前記セット(s)に属する前記少なくとも1つの他のドングル(b、c)との無線接続(4、5)の信号強度を測定するステップと、前記受け取ったメッセージ(M)の署名(Sa)を計算(28)する前に、前記測定された信号強度が所定の最小信号強度を超過すること、及び/又は前記測定された信号強度から得られた距離尺度が前記1又は2以上の他のドングル(b、c)の各々に関する所定の最大距離を下回ることを要求するステップとによって特徴付けられる、請求項8から10の何れかに記載の方法。
【請求項12】
前記受け取ったメッセージの署名を計算する前又はゼロ知識証明を提供する前に、前記ドングル(c)に接続された携帯端末(Tc)の存在を検証するステップ(56)によって特徴付けられる、請求項8から11の何れかに記載の方法。
【請求項13】
前記携帯端末(Tc)の存在を検証するステップは、好ましくは少なくとも部分的に生体認証情報を使用して、前記携帯端末(Tc)のユーザを認証するステップ(56)を含む、ことによって特徴付けられる、請求項12に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2又は3以上のドングルのセット、及びこのようなセットに属するドングルを用いてデジタル署名を提供する方法に関し、各ドングルは、秘密鍵を保持し、各ドングルは、メッセージを受け取り、秘密鍵を使用して受け取ったメッセージのデジタル署名を計算し、この計算されたデジタル署名を送信するように構成され、本方法は、署名されたメッセージを受け取るステップと、秘密鍵を使用してメッセージのデジタル署名を計算するステップと、計算されたデジタル署名を送信するステップとを含む。
【背景技術】
【0002】
本明細書において、「秘密鍵」という用語は、メッセージに署名するのに使用できる、それぞれのドングルによって保持され又はドングルに保存された何らかの秘密情報を指す。秘密鍵は、一般にドングルごとに異なり、すなわち、同じ秘密鍵を共有する2つのドングルは存在しない。具体的には、秘密鍵は、プライベート署名鍵とすることができ、好ましくは、秘密鍵を保持するそれぞれのドングルの内部のセキュア要素又は改ざん防止メモリに保存される。セキュア要素は、好ましくは、セキュア暗号プロセッサ(例えば、スマートカードで使用されるタイプのもの)、すなわち、暗号演算を実行するためのチップ又はマイクロプロセッサ上の専用コンピュータであり、ある程度の耐改ざん性を提供する複数の物理的セキュリティ手段を備えてパッケージに埋め込まれる。一般に、このセットはまた、秘密鍵を保持せずにメッセージ自体に署名するように構成されていないドングルを含むことができ、このドングルは、証拠としてのみ機能し、その存在は、実際の署名を行う少なくとも2つのドングルによって検証する必要がある。署名されるメッセージ、すなわち一般に「メッセージ」は、ドングルが受け取って署名できる何らかの信号又はデータ構造とすることができる。本発明は、具体的には、デジタル通貨(「暗号通貨」とも呼ばれる)の多重署名取引、又は一般にブロックチェーンアプリケーションの準備及び提供に関し、本出願では、メッセージは、いわゆる「リディームスクリプト」を含む取引(取引の詳細を保持するデータ構造)とすることができる。多重署名は、好ましくは、セットの少なくとも2つのドングルからの署名を含む。メッセージは、データ接続(USB、Bluetoothなど)を介してドングルに接続されたホストから受け取ることができ、計算されたデジタル署名は、同じデータ接続又は異なるデータ接続を使用してホストに返信すること、又は異なるホストに一緒に送信することができる。秘密鍵を使用して受け取ったメッセージのデジタル署名を計算することは、秘密鍵を用いてメッセージに署名することに相当する。デジタル署名の暗号化実施構成に応じて、このデジタル署名は、例えば、秘密鍵から得られた公開鍵を用いて検証することができる。
【0003】
デジタル通貨(例えば、ビットコイン)は、アドレスの生成を可能にし、このアドレスの任意の発信取引は、多重署名(マルチシグニチャ)を必要とする。このような多重署名アドレスから有効な発信取引を生成するのに、複数の秘密鍵(又はプライベートキー)が必要とされる。必要な秘密鍵の数Mは、一般に、認可されたプライベートキーの数Nより少ないか、又はそれに等しい。従って、有効な発信取引はまた、M-of-N多重署名(M-of-N multi-signature)取引と呼ばれる。このような多重署名アドレスを生成するために、N個全ての認可されたプライベートキー並びに有効な発信取引に必要なM個の署名の公開鍵が提供される必要がある。
【0004】
多重署名アドレスは、取引が、各人が1つの認可されたプライベートキーを制御する複数の人物の同意を必要とする場合、及び/又は認可された各プライベートキーが異なる方法で保護される(例えば、異なるストレージ手段に保存され、異なる場所で維持される)、有効な取引に複数の因子を必要とすべきである場合に使用される。従来型のデジタル署名又は「単一署名」は、信頼性を高めるためにセキュリティを損なう必要があるが(例えば、鍵の消失は、バックアップにより回避することができるが、他方では新しい攻撃ベクトルが導入される)、デジタル多重署名は、セキュリティと信頼性の何らかの所望のレベル及びバランスを達成可能にする。その結果、デジタル多重署名は、安全性を最重視すべき取引を保護するのに特に好適である。
【発明の概要】
【発明が解決しようとする課題】
【0005】
デジタル多重署名を提供する現在の方法の1つの欠陥は、個々の署名が、任意の異なる時点で生成され、且つ後で有効な多重署名にコンパイルされる可能性があることである。
【課題を解決するための手段】
【0006】
本発明の目的は、この欠陥を克服して、デジタル署名を提供する生成プロセスのセキュリティを高めることである。
【0007】
本発明は、最初に述べた種類のドングルのセットを用いてこの目的を解決し、ここでドングルのうちの少なくとも1つは、デジタル署名を計算する前に、セットに属する少なくとも1つの他のドングルの存在を検証して、1又は2以上の他のドングルの存在を正常に検証した場合にのみ、デジタル署名を計算するように構成される。1又は2以上の他のドングルの存在が検証された(すなわち、正常に)場合で且つその場合に限り、ドングルは、受け取ったメッセージのデジタル署名を計算することに進む。
【0008】
これに対応して、本発明は、最初に述べた種類の方法を用いて上記の目的を解決し、該方法は、デジタル署名を計算する前に、セットに属する少なくとも1つの他のドングルの存在を検証するステップと、検証が成功した場合にのみデジタル署名を計算するステップとを含む。
【0009】
少なくとも1つの他のドングルの存在を検証することによって、第1のドングルは、少なくとも2つの秘密鍵(1つが各ドングルによって保持される)が存在して同時に署名に利用可能になる必要があることを保証する。少なくとも2つのドングルの署名手順は、協調される必要がある。有効な多重署名を生成することを試みる攻撃者は、少なくとも2つのドングルを同時に制御する必要があることになり、このことは、それぞれ個別のドングルを順番に制御するよりも、達成する(特に検出されない)ことが一般により困難である。
【0010】
好ましくは、ドングルのうちの少なくとも1つは、ゼロ知識証明を要求することにより、セットに属する少なくとも1つの他のドングルの存在を検証する。これに対応して、本方法内でセットに属する少なくとも1つの他のドングルの存在を検証するステップは、ゼロ知識証明を要求することができ、該ゼロ知識証明を提供する要求を少なくとも1つの他のドングルに送るステップと、少なくとも1つの他のドングルからゼロ知識証明を受け取るステップと、受け取ったゼロ知識証明を検証するステップとを含み、少なくとも1つの他のドングルの存在は、受け取ったゼロ知識証明の検証が成功した場合に検証される。原理的には、ゼロ知識証明は、少なくとも1つの他のドングルのみが証明を提供でき、ドングルが存在する(すなわち、存在を検証するための証明を要求する少なくとも1つのドングルから到達可能である)場合のみのものであるため、存在の証明としての機能を果たす。ゼロ知識証明は、少なくとも1つの他のドングル(証明器)及びドングルのうちの少なくとも1つ(1又は複数の検証器)が接続されたチャレンジ/レスポンスプロトコルによって実装することができる。チャレンジは、有効期限が限られた一時的な(好ましくは1回の)トークンとすることができる。2つのドングル間の接続は、例えばBluetooth、ZigBee、又はWi-Fi(WPAN)接続などの直接接続とするか、或いは協調署名手順を調整する1又は2以上のホスト経由でルーティングすることができる。
【0011】
本方法の好ましい実施形態では、受け取ったゼロ知識証明を検証するステップは、同じセットに属する他の全てのドングルの保存された識別情報の集合で受け取った証明を検証するステップを含む。
【0012】
有利には、少なくとも1つの他のドングル(証明器)は、署名トリガを受け取り、該署名トリガを受け取った後の限られた時間枠内でのみ必要なゼロ知識証明を提供するように構成される。これに対応して、本方法は、署名されるメッセージを受け取る前に、ドングル(証明器)が、最初に署名トリガを受け取るステップを含み、署名トリガは、署名トリガを受け取った後の限られた時間枠の間、ドングルを署名モードに切り替え、時間枠の経過後、ドングルは、スタンバイモードに切り替わり、ドングルは、その存在のゼロ知識証明を他のドングルに送り、署名モードにあるときにのみ秘密鍵を使用してデジタル署名を計算する。署名トリガは、好ましくは、例えば、ユーザによって押されて、協調署名手順の承認を信号で伝えるためにドングルを制御する物理的ボタンなどの、それぞれのドングル上の物理的トリガである。署名トリガ後の時間枠(例えば、5分)が経過した後、少なくとも1つの他のドングルはスタンバイモードに入り、別の署名トリガが生じてこのドングルが再度署名モードに入るまで、要求されたゼロ知識証明を提供しない。時間枠外で(すなわち、スタンバイモードで)受け取ったゼロ知識証明要求は、保留中の要求として保存され、それぞれのドングルのユーザに通知することができる。この通知は、2つの目的を果たすことができ、この通知は、ユーザに署名の試みを信号で伝え、協調署名手順の承認の場合に、署名トリガを動作させることをユーザに気付かせる。
【0013】
上述のゼロ知識証明は、署名に使用される秘密鍵(秘密署名鍵)又は別の秘密鍵(秘密存在鍵)とすることができる秘密鍵の知識に関するゼロ知識証明とすることができる。好ましくは、各ドングルは、更なる秘密鍵(秘密存在鍵)を保持し、ゼロ知識証明は、更なる秘密鍵の所有に関係する。各ドングルは、更に別の異なる秘密鍵又は秘密存在鍵を有する。更に別の秘密鍵は、この秘密鍵を保持しているドングルのプライベート識別情報を表す。これにより、更に別の秘密鍵は、ドングルのセットの製造業者によるプロビジョニング中に各ドングル内でロックすることができる。次に、秘密署名鍵は、更に別の秘密鍵によって確立されたドングル間の暗号リンクを危険にさらすことなく、ドングル所有者の各々によって製造業者の管理外で独立して生成することができる。次に、ドングル所有者は、後で所有者の署名を検証する、例えば、多重署名アドレスを構築するため、公開署名鍵のみを提供する。
【0014】
好ましくは、ドングルのうちの少なくとも1つは、同じセットに属する他の全てのドングルの識別情報を保存する。識別情報は、秘密存在鍵又はプライベート識別情報に対応する公開鍵など、秘密鍵から得られた情報として保存することができる。識別情報は、好ましくは、ドングル内のセキュア要素又は改ざん防止メモリに秘密鍵(秘密署名鍵)と一緒に保存することができる。これに対応して、少なくとも1つの他のドングルの存在を検証するステップは、好ましくは、保存された識別情報と比較することによって、現在の他のドングルの識別情報を検証するステップを含む。保存された識別情報は、例えば、対応する公開存在鍵が検証ドングルによって保存された識別情報のうちの1つである(又はこれに含まれる)秘密存在鍵を用いてチャレンジが署名されたことを検証することによって、他のドングルのうちの少なくとも1つによって提供された存在証明を検証するのに使用することができる。
【0015】
本セットの好ましい実施形態では、ドングルの少なくとも1つは、デジタル署名を計算する前に、存在を証明する必要がある他のドングルの数の下限値を保存する。これに対応して、本方法は、受け取ったメッセージの署名を計算する前に、存在が検証された(メッセージを受け取った後)ドングルの総数が、所定の下限値より大きいか又はこれに等しいことを要求するステップを含むことができる。従って、この場合、ドングルが、下限値として規定された数と少なくとも同じ数のドングルの存在(任意選択で、これらのドングルが署名モードであることを含む)を正常に検証した場合にのみ、ドングルは、それ自体の秘密鍵を用いて受け取ったメッセージの署名を計算する。他のドングルは、存在がこの要件にカウントされるように同じセットに属する必要があり、すなわち、該ドングルは、現在検証中のドングルと同じ多重署名に参加する「署名者ドングル」である必要がある。また、他のドングルの存在は、同じセッション中で検証され、その間に、受け取ったメッセージが署名される必要がある。下限値は、1から、同じセットに属するドングルの総数マイナス1(ドングル自体を検証するため)の間とすることができる。十分な数の署名者ドングルの存在を実施することにより、実際に任意の署名を計算する前に、有効なM-of-N多重署名の実現可能性を試験することができる。ここで、Nは、同じセットに属するドングルの総数(署名者ドングルの総数)であり、Mは、有効な多重署名の必要な署名の数である。MがNより小さい場合に、下限値は、1からMマイナス1の間である。
【0016】
更に、少なくとも1つのドングルが、セットに属する少なくとも1つの他のドングルの存在を検証するのに必要な時間を測定して、1又は2以上の他のドングルの各々に対する所定の時間枠内で1又は2以上の他のドングルの存在を正常に検証した場合にのみ、デジタル署名を計算するように構成されることが有利であることが分かった。これに対応して、本方法は、有利には、セットに属する少なくとも1つの他のドングルの存在を検証する間、該存在を検証するのに必要な時間を測定するステップと、受け取ったメッセージの署名を計算する前に、該必要な時間が、1又は2以上の他のドングルの各々に対する所定の時間枠内であることを要求するステップとを含む。具体的には、検証ドングルは、存在の証明(例えば、ゼロ知識証明)を要求してからそれを受け取るまでの往復遅延時間を測定するように構成することができる。往復遅延時間に上限値を適用することにより、ドングルの直接(仲介されない)接続及び最大物理的距離を試験することができる。受け入れ可能な所定の時間枠は、初期化手順中、実際のドングルの往復遅延時間の測定値に従って選択することができる。ドングルの存在をスプーフィングすることを試みる攻撃者は、往復遅延時間が所定の時間枠を超過しないことを保証する必要がある。ネットワークにわたってルーティングされる離れたドングル及び/又は接続の場合、これは、物理的に不可能であることが判明することができ、実質上、この攻撃ベクトルが排除される。
【0017】
好ましくは、ドングルは、互いの間で直接無線接続を確立して存在を検証するように構成され、少なくとも1つのドングルは、セットに属する少なくとも1つの他のドングルとの無線接続の信号強度を測定して、該信号強度が所定の最小信号強度を超過するか、又は信号強度から得られた距離尺度が1又は2以上の他のドングルの各々の最大距離を下回る場合にのみ、デジタル署名を計算するように構成される。これに対応して、本方法は、好ましくは、セットに属する少なくとも1つの他のドングルとの無線接続の信号強度を測定するステップと、受け取ったメッセージの署名を計算する前に、測定された信号強度が所定の最小信号強度を超過すること、及び/又は測定された信号強度から得られた距離尺度が、1又は2以上の他のドングルの各々に関する所定の最大距離を下回ることを要求するステップとを含む。従って、検証ドングルは、セットからの他のドングルのうちの1又は2以上の信号強度が閾値最小信号強度を上回る場合、又は信号強度から得られた距離尺度が閾値最大距離を下回る場合にのみ、このドングル自体の秘密鍵を使用して、受け取ったメッセージの署名を計算する。無線接続は、例えば、Bluetooth、NFC、RFID、Google Thread、ZigBee、又はWPAN接続、又は一般に802.15.4プロトコルスイートからの任意の接続(メッシュネットワーク接続)とすることができる。ミリワット又はdBミリワット(dBm)で測定された物理的信号強度(RX値)又はパーセンテージで測定された受信信号強度表示(RSSI)は、信号強度の尺度として使用することができる。ドングルの最大物理的距離は、信号強度又は距離に下限値を適用することによって保証でき、該最大物理的距離は、往復遅延時間に対する上限値よりも正確に規定することができる。好ましくは、2つの手段が組み合わされて、セキュリティ及び精度が同時に達成される。
【0018】
本発明の好ましい実施形態によれば、ドングルのうちの少なくとも1つは、他の何れかのドングルに対してそれ自体の存在を検証する前に、携帯端末の存在を検証するように構成することができる。これに対応して、本方法は、受け取ったメッセージの署名を計算する前、又はゼロ知識証明を提供する前に、ドングルに接続された携帯端末の存在を検証するステップを含むことができる。携帯端末は、例えば、スマートフォン、スマートウォッチ又はタブレットコンピュータなどの任意の携帯型コンピュータ端末とすることができる。携帯端末の存在の検証は、セットに属する1又は2以上の他のドングルの存在の検証と同様とすることができる。一例では、携帯端末の存在(又は「より具体的には」その証明)の検証は、受け取ったメッセージの署名を計算する前に要求することができ、第2の例では、またそれとは無関係に、携帯端末の存在は、ドングル自体の存在のために要求することができ、すなわち、ドングルが署名モードに入る前に要求することができる。これらの実施形態では、携帯端末は、協調署名手順でドングルを使用するための第2の因子として作用する。このことは、ユーザによって通常頻繁に使用される携帯端末がないことが、より低い頻度で使用される可能性があるドングルがないことよりも気付かれる可能性が高いという認識に基づく。攻撃者は、ドングル並びに携帯端末の制御を奪い取る必要があることになり、これによって、それぞれの所有者に気付かれる可能性が非常に高くなり、従って、セットアップ全体のセキュリティが高まる。
【0019】
この文脈において、携帯端末が、携帯端末のユーザの認証、好ましくは生体認証の後、限られた時間枠内でのみその存在を検証するように構成されることが好都合であることが判明した。これに対応して、本方法中に携帯端末の存在を検証するステップは、好ましくは少なくとも部分的に生体認証情報を使用して、携帯端末のユーザを認証するステップを含むことができる。上記では、「存在」という用語は、一般的に、「署名の利用可能性」(例えば、「署名モード」にあること)を意味するのに使用される。その結果、署名手順は、任意の参加携帯端末のユーザが、認証情報(任意選択で、生体認証情報)を提供することにより、署名に同意することを表明していることを必要とする。生体認証情報の使用は、それが、参加している個人に関する協調署名手順の監査を助長するという利点を有する。
【0020】
好ましくは、ドングルのうちの少なくとも1つは、受け入れ可能なメッセージを識別するためのホワイトリストを保存し、受け取ったメッセージが該ホワイトリストに従って受け入れ可能なメッセージであることを検証して、受け取ったメッセージを正常に検証した場合にのみデジタル署名を計算するように構成される。これに対応して、本方法は、受け取ったメッセージの署名を計算する前に、受け取ったメッセージが、ドングルに保存されたホワイトリストに従って受け入れ可能なメッセージであることを要求するステップを含むことができる。ホワイトリストは、受け入れ可能なメッセージの特性の集合とすることができる。例えば、本発明が取引を署名するのに適用される場合に、ホワイトリストは、受信アドレスを含むことができ、ホワイトリスト上のこれらの受信アドレスの1つへの取引のみが、受け入れ可能とみなされる。メッセージ又は取引が試験され、受け入れ可能であることが判明した後にのみ、このメッセージ又は取引のデジタル署名が、秘密鍵を使用して計算される。従って、攻撃者は、ホワイトリスト(好ましくは、ホワイトリストを使用してドングル内のセキュア要素又は改ざん防止メモリに保存される)を危険にさらすこと、又はホワイトリスト上の受信アドレスのうちの1つを制御することができる必要がある。
【0021】
以下では、本発明によるセット及び方法の好ましい実施形態、並びにそれらの好ましい組み合わせが定められることになる。
【0022】
1.デジタル署名を提供するための2又は3以上のドングルのセットであって、
各ドングルが秘密鍵を保持し、
各ドングルは、メッセージを受け取って、該秘密鍵を使用して受け取ったメッセージのデジタル署名を計算して、計算されたデジタル署名を送信するように構成され、
ドングルのうちの少なくとも1つは、デジタル署名を計算する前に、セットに属する少なくとも1つの他のドングルの存在を検証して、1又は2以上の他のドングルの存在を正常に検証した場合にのみ、デジタル署名を計算するように構成されていることを特徴とするセット。
【0023】
2.ドングルの少なくとも1つは、ゼロ知識証明を要求することによって、セットに属する少なくとも1つの他のドングルの存在を検証するように構成される、実施形態1によるセット。
【0024】
3.少なくとも1つの他のドングルは、署名トリガを受け取って、該署名トリガを受け取った後の限られた時間枠内でのみ必要なゼロ知識証明を提供するように構成されることを特徴とする、実施形態2によるセット。
【0025】
4.各ドングルは、更なる秘密鍵を保持し、ゼロ知識証明は、更なる秘密鍵の所有に関係する、実施形態2又は3によるセット。
【0026】
5.ドングルの少なくとも1つは、同じセットに属する他の全てのドングルの識別情報を保存することを特徴とする、実施形態1から4の何れかによるセット。
【0027】
6.ドングルの少なくとも1つは、デジタル署名を計算する前に、存在を証明する必要がある他のドングルの数の下限値を保存することを特徴とする、実施形態1から5の何れかによるセット。
【0028】
7.少なくとも1つのドングルが、セットに属する少なくとも1つの他のドングルの存在を検証するのに必要な時間を測定して、1又は2以上の他のドングルの各々に対する所定の時間枠内で1又は2以上の他のドングルの存在を正常に検証した場合にのみ、デジタル署名を計算するように構成されることを特徴とする、実施形態1から6の何れかによるセット。
【0029】
8.ドングルは、互いの間で直接無線接続を確立して存在を検証するように構成され、少なくとも1つのドングルは、セットに属する少なくとも1つの他のドングルとの無線接続の信号強度を測定して、該信号強度が所定の最小信号強度を超過する場合、及び/又は信号強度から得られた距離尺度が1又は2以上の他のドングルの各々に関する所定の最大距離を下回る場合にのみ、デジタル署名を計算するように構成されることを特徴とする、実施形態1から7の何れかによるセット。
【0030】
9.ドングルのうちの少なくとも1つは、他の何れかのドングルに対してそれ自体の存在を検証する前に、携帯端末の存在を検証するように構成されることを特徴とする、実施形態1から8の何れかによるセット。
【0031】
10.携帯端末は、該携帯端末のユーザの認証、好ましくは生体認証の後、限られた時間枠内でのみその存在を検証するように構成されることを特徴とする、実施形態9によるセット。
【0032】
11.ドングルのうちの少なくとも1つは、受け入れ可能なメッセージを識別するためのホワイトリストを保存し、受け取ったメッセージが該ホワイトリストに従って受け入れ可能なメッセージであることを検証して、受け取ったメッセージを正常に検証した場合にのみデジタル署名を計算するように構成されることを特徴とする、実施形態1から10の何れかによるセット。
【0033】
12.実施形態1から11の何れかによるセットに属するドングルを用いてデジタル署名を提供するための方法であって、該ドングルは秘密鍵を保持し、該方法は、以下のステップ、すなわち、
署名されるメッセージを受け取るステップと、
セットに属する少なくとも1つの他のドングルの存在を検証するステップと、
該検証が成功した場合に、秘密鍵を使用してメッセージのデジタル署名を計算するステップと、
計算されたデジタル署名を送信するステップと、
を含む方法。
【0034】
13.セットに属する少なくとも1つの他のドングルの存在を検証するステップは、ゼロ知識証明を要求することを特徴とし、
該ゼロ知識証明を提供する要求を少なくとも1つの他のドングルに送るステップと、
該少なくとも1つの他のドングルからゼロ知識証明を受け取るステップと、
受け取ったゼロ知識証明を検証するステップと、
を含み、少なくとも1つの他のドングルの存在は、受け取ったゼロ知識証明の検証が成功した場合に、検証される、実施形態12による方法。
【0035】
14.受け取ったゼロ知識証明を検証するステップは、同じセットに属する他の全てのドングルの保存された識別情報の集合で受け取った証明を検証するステップを含むことを特徴とする、実施形態13による方法。
【0036】
15.署名されるメッセージを受け取る前に、ドングルは、最初に署名トリガを受け取り、該署名トリガは、署名トリガを受け取った後の限られた時間枠の間、該ドングルを署名モードに切り替え、該時間枠の経過後、ドングルは、スタンバイモードに切り替わり、ドングルは、その存在のゼロ知識証明を他のドングルに送り、署名モードにあるときにのみ、秘密鍵を使用してデジタル署名を計算することを特徴とする、実施形態12から14の何れかによる方法。
【0037】
16.受け取ったメッセージの署名を計算する前に、存在が検証されたドングルの総数が、所定の下限値より大きいか又はこれに等しいことを要求するステップを含むことを特徴とする、実施形態12から15の何れかによる方法。
【0038】
17.セットに属する少なくとも1つの他のドングルの存在を検証する間、該存在を検証するのに必要な時間を測定するステップと、受け取ったメッセージの署名を計算する前に、該必要な時間が、1又は2以上の他のドングルの各々に対する所定の時間枠内であることを要求するステップとを含むことを特徴とする、実施形態12から16の何れかによる方法。
【0039】
18.セットに属する少なくとも1つの他のドングルとの無線接続の信号強度を測定するステップと、受け取ったメッセージの署名を計算する前に、測定された信号強度が所定の最小信号強度を超過すること、及び/又は測定された信号強度から得られた距離尺度が1又は2以上の他のドングルの各々に関する所定の最大距離を下回ることを要求するステップとを含むことを特徴とする、実施形態12から17の何れかによる方法。
【0040】
19.受け取ったメッセージの署名を計算する前、又はゼロ知識証明を提供する前に、ドングルに接続された携帯端末の存在を検証するステップを含むことを特徴とする、実施形態12から18の何れかによる方法。
【0041】
20.携帯端末の存在を検証するステップは、好ましくは少なくとも部分的に生体認証情報を使用して、携帯端末のユーザを認証するステップを含む、実施形態19による方法。
【0042】
21.受け取ったメッセージの署名を計算する前に、受け取ったメッセージが、ドングルに保存されたホワイトリストに従って受け入れ可能なメッセージであることを要求するステップを含む、実施形態12から20の何れかによる方法。
【0043】
ここで図面を参照すると、図面は、本発明を例示する目的のものであり、本発明を限定するものではない。
【図面の簡単な説明】
【0044】
図1】本発明による3つのドングルのセットの使用例を概略的に示す。
図2図1に示されているドングルのうちの2つを使用して本発明によるデジタル署名を提供するための手順のシーケンス図を示す。
図3図1に示されている3つのドングル及び携帯端末を使用した図2の機能拡張形態を示す部分シーケンス図を示す。
【発明を実施するための形態】
【0045】
図1によって概略的に示される使用例は、3つのドングルa、b、cのセットsを含む。ドングルa、b、cの各々は、メッセージMのデジタル署名Si(M)を提供するように構成され(図2と比較)、ここで、Si(M)=S(M、Ki)であり、Kiは、ドングルiによって保持される秘密鍵であり、iは、a、b、又はcのうちの1つである。秘密鍵Kiは、それぞれのドングルiにセキュアに保存される秘密情報である。この秘密鍵は、初期化手順中にドングルiでローカルにランダムに生成でき、好ましくは、決してドングルiから離れない。従って、各ドングルiは、一般に異なる秘密鍵Kiを保持する。
【0046】
ドングルa、b、cは、ポケットに収まる携帯型(バッテリ式)ポータブルデバイスである。典型的に、セキュリティの高いアプリケーションに使用されるドングルiの所有者Oi(すなわち、Oa、Ob、Oc)は、これらの所有者のそれぞれのドングルiを常に携帯する必要がある。このことは、各ドングルiがそのそれぞれの所有者であるOiの排外的な管理下のままでることを保証するためである。この状況は、各ドングルiの制御範囲Ciを制限する円で図1に示されている。同じことが、本質的にホストh、その所有者Oh、及び制御範囲Chに適用される。
【0047】
図に示されているように、各ドングルiは、例えばワークステーション又はラップトップなどの別個のコンピュータであるホストhに接続される。接続1、2、3は、例えば、Bluetooth技術を使用した無線接続である。代替的に、ドングルiのうちの1又は2以上は、USB接続などの有線接続を使用してホストhに接続することができる。ドングルiは、追加の直接無線接続4、5、例えば、やはりBluetooth技術を使用して互いに接続される。ドングルaとドングルbとの間の直接接続4並びにドングルaとドングルcとの間の直接接続5のみが図1に示されているが、ドングルbとドングルcとの間に追加の直接接続が存在することができる。各ドングルiは、そのそれぞれの所有者Oiが押すことができる物理的ボタン6を備える。ドングルcは、このドングルcに関連する携帯端末Tcとの追加(第3)の無線接続7を有する。携帯端末Tcは、ドングルcの所有者Ocの個人用スマートフォンである。携帯端末Tcは、画面8及び指紋センサ9を備える。顔認識及び/又は音声認識を行うためのセンサなどの他の生体認証センサが、携帯端末Tcに含まれ得る。一般に、これらの生体認証センサは、ドングルcの所有者Ocを認証するように構成される。
【0048】
ホストhは、ネットワーク10を介してデータベース11と接続される。データベース11は、オンラインで、すなわちインターネットを介してアクセス可能な公開取引ディレクトリを表す。データベース11は、好ましくは、分散型公開取引ディレクトリであり、好ましくは、デジタル通貨の取引をセキュリティ保護するのに使用されるタイプの分散型ブロックチェーン(例えば、ビットコイン又はイーサリアム)である。
【0049】
各ドングルiは、広範囲にわたって利用可能なタイプの好適な無線送信コンポーネント(例えば、Bluetoothトランシーバ)を使用して、無線接続1、2、3経由でホストhからメッセージMを受け取るように構成される。同様に、各ドングルiは、メッセージMのコピーの有無にかかわらず、計算されたデジタル署名Si(M)を無線接続1、2、3経由でホストhに返信するように構成される。更に、各ドングルiは、秘密鍵Kiを使用して受け取ったメッセージMのデジタル署名Si(M)を計算するように構成される。典型的に、秘密鍵Kiは、メッセージMを受け入れて、対応する署名Si(M)を返すように構成されたセキュア要素に保存され、この署名は、受け入れられたメッセージM及び秘密鍵Kiから暗号的に得られる。従って、秘密鍵Kiは、それ自体、決して、セキュア要素を離れる必要又はセキュア要素の外部で認識されるようになる必要がない。セキュア要素は、好ましくは、セキュアな暗号プロセッサである。
【0050】
各ドングルiは更に、図2に関連してより詳細に説明するように、他の2つのドングルiの一方又は両方の存在を検証するように構成される。この存在検証手順が成功した場合にのみ、全ての必要な条件が試験されて満たされることが分かるので、ドングルiは、デジタル署名Si(M)を計算することに進むことになる。好ましくは、これらの条件の一部又は全部は、それぞれのドングルiのセキュア要素内で試験される。本実施例では、ドングルaは、ゼロ知識証明を要求することにより、同じセットsに属するドングルbの存在を検証するように構成される。必要なゼロゼロ知識証明は、ドングルaによって生成されて接続4を介してドングルbに送信されるランダムチャレンジRaのデジタル署名S(Ra、Ib)であり、ドングルbのプライベート識別情報Ibが使用される。ドングルbは、必要なゼロ知識証明を提供し、署名トリガ13を受け取った後の限られた時間枠12内でのみデジタル署名S(Ra、Ib)を計算するように構成される。プライベート識別情報Ibは、好ましくは秘密鍵Kbと同じドングルbのセキュア要素内に保存された更なる秘密鍵である。署名トリガ13は、ドングルbのボタン6を押すことにより、ドングルbの所有者Obによって作動することができる。ゼロ知識証明を要求するドングルaは、同じセットに属する他の2つのドングルb及びcの識別情報P(Ii)、すなわち、P(Ib)及びP(Ic)を保存する。ここで、識別情報P(Ii)は、それぞれのプライベート識別情報Iiに対応しそれから暗号的に得られる公開鍵である。存在は、デジタル署名Sa(M)を計算するための条件であるため、デジタル署名S(Ra、Ib)の形式でのゼロ知識証明は、好ましくは、セキュア要素によって検証される。従って、署名S(Ra、Ib)を検証するのに必要な識別情報P(Ib)を含む識別情報P(Ii)は、好ましくは、秘密鍵Kaと同じセキュア要素内に保存される。また、存在の検証に対するあらゆる外部制御を回避するために、ランダムチャレンジRaは、好ましくは、このセキュア要素によって生成され、セキュア要素が、署名S(Ra、Ib)を検証することになる。
【0051】
一般に、デジタル署名Sa(M)を提供するのに、セットsの全てのドングルiが存在して、任意の1つのドングルiに対してその存在を検証させる必要はなく、例えば、MがNより小さく、Nが同じセット内のドングルiの総数である場合のM-of-N多重署名の場合、サブセットの存在が十分とすることができる。図2に示されている例では、ドングルa及びbは、要求された署名を提供する前に1つのドングルの存在を検証して要求し、すなわち、この状況では、ドングルcがドングルa及びbに対して存在して、これらのそれぞれの署名をSa(M)及びSb(M)をホストhに提供する必要はない。代替的に、ドングルa及び/又はドングルbは、デジタル署名を計算する前に、存在が証明される必要がある他のドングルの数の下限値を保存することができる。図1に示されている使用例では、この下限値は、1又は2の何れかとすることができる。
S(Ra、Ib
ドングルaが2の下限値を保存する場合に、このドングルは、他のドングルb及びcの両方の検証を試み、これらの両方の存在が検証された(例えば、両方とも、それぞれ、デジタル署名S(Ra、Ib)又はS(Ra、Ic)の形式での存在の証明を提供した)後にのみ、デジタル署名Sa(M)を計算することになる。
【0052】
また、ドングルaは、ドングルbの存在を検証するのに必要な時間を測定するように構成される。詳細には、ランダムチャレンジRaを送ってからデジタル署名S(Ra、Ib)を受け取るまでの往復遅延時間D(a、b)を測定するように構成される。遅延時間D(a、b)が、所定の時間枠、例えば2ミリ秒(ms)内にあり、デジタル署名S(Ra、Ib)が有効な場合のみ、ドングルは、デジタル署名Sa(M)の計算に進むことになる。この条件は、好ましくは、セキュア要素内で試験されるので、セキュア要素は、好ましくは、クロックと、任意選択で、このクロックに確実に電力を供給する内部電源とを備える。デジタル署名S(Ra、Ib)の形式での存在証明が、後で、例えば3ms後に到来した場合には、ドングルaは、メッセージMのデジタル署名S(Ra)を計算しないことになる。この時間枠は、実質上、往復遅延時間D(a、b)の上限であり、ドングルaのセキュア要素とドングルbのセキュア要素と距離尺度として機能する。物理的距離は、限られた情報送信速度(一般に、光速)に起因して、往復の遅延時間に影響を与える。しかしながら、実際には、往復遅延時間は、2つのドングルa及びbのセキュア要素間の接続を仲介する送信電子機器における遅延によって支配されることになる。特に、所定の時間枠を実施すると、予告なしにドングル間の接続を中継することが困難又は不可能になる。
【0053】
更に、ドングルaは、ドングルとの直接無線接続4の信号強度を測定するように構成される。ドングルaは、直接無線接続4の測定された信号強度が、所定の最小信号強度、例えば4dBm(Bluetooth信号の推定10メートル範囲に相当)を超過した場合にのみ、受け取ったメッセージMのデジタル署名Sa(M)を計算するように構成される。
【0054】
図3に関連してより詳細に説明するように、ドングルcは、それ自体の存在をドングルa又はドングルbの何れかに確認する前に、携帯端末Tcの存在を検証するように構成される。同時に、携帯端末Tcは、所有者Ocの認証後、有効で認可された指紋を指紋センサ9に入力することにより、限られた時間枠内でのみこの携帯端末の存在を検証するように構成される。
【0055】
最後に、ドングルaは、受け入れ可能なメッセージMを識別するためのホワイトリストを保存する。メッセージMが取引の場合、ホワイトリストは、例えば5つの受け入れ可能な取引ターゲット(受信アドレス)を含む。ホストhが、異なるターゲットとの取引を含むメッセージMの署名を要求する場合に、ドングルaは、このようなメッセージMに署名することを拒否する。ホワイトリストは、好ましくは、ドングルaのセキュア要素内に保存される。
【0056】
上記において、いくつかの機能が単一のドングルa、b又はcに関して説明されている場合に、このような機能の各々は、他のそれぞれのドングルの何れか又は全てによって類似して、且つ同様の効果となる(更に多くの場合、セキュリティを高める)ように実装できることが当業者には明らかであろう。
【0057】
本方法を更に説明するために、例示的で比較的単純な実施形態が、図2に示されているシーケンス図とともに時系列順で説明される。図2における最初の状況は、所有者Oa及びObが特定の取引の実行に合意してそれを行い、取引を調整及び準備してそれをデータベース11にアップロードし、従って、コーディネータとして機能するホストhの所有者Ohを招待していることである。2人の所有者Oa及びObは、それぞれのドングルa及びbを持って来ており、これらのドングルは、最初、スタンバイモードにあり、図1に関連して上述したように構成され初期化される。当然ながら、所有者Oa、Obの何れかが、ホストhを所有して運用することはやはり可能である。しかしながら、本明細書では、分かりやすくするために、3人の別個の所有者Oh、Oa、及びObが想定されている。
【0058】
初めに、コーディネータ(すなわち、ホストhの所有者Oh及びオペレータ)は、ステップ14において、ドングルaの所有者Oaに、ドングルaの署名トリガを作動させるように依頼する。所有者Oaは、ドングルaのボタン6を押すことによって、ドングルaの署名トリガ15を作動させ、ドングルaのタイムラインに平行な左縦バーで示される限られた時間枠16の間(例えば、5分間)、ドングルaを署名モードに切り替える。ステップ17において、所有者Ohは、ドングルbの所有者Obにドングルbの署名トリガを作動させるように依頼する。所有者Obは、ドングルbのボタン6を押すことによって、ドングルbの署名トリガ13を作動させ、ドングルaのタイムラインに平行な左縦バーで示される限られた時間枠12の間、ドングルbを署名モードに切り替える。ここで、ドングルa及びbは、両方とも署名モードにある。
【0059】
コーディネータは、ステップ18において、所望の取引パラメータをホストhに入力する。ホストhは、ステップ19において、入力された取引パラメータをドラフトOR原案取引に編集し、このドラフト取引は、完全で有効な取引を形成するために多重署名を用いて署名される必要があるメッセージMに対応する。詳細には、メッセージMは、例えば、少なくとも1つの以前の(元の)取引の識別子と、この以前の取引が暗号的に関連するリディームスクリプトと、取引ターゲットアドレス及び取引金額とを含む。取引の状態20は、ホストhのタイムラインに平行な垂直バーで示される。
【0060】
メッセージMが準備されると、ホストhは、接続1(図1を参照)経由でメッセージMをドングルaに送信し、ドングルaは、このメッセージMを受け取る。ドングルaは、時間枠16の間にそれ自体が署名モードにあることを認識し、従って、ステップ21において、22で示されるようにローカルに保存されるランダムチャレンジRaを生成することに進む。ドングルaは、プライベート識別情報Ibのゼロ知識証明を提供する要求としてランダムチャレンジRaを接続4経由でドングルbに送信し、同時に、内部ストップウォッチを起動する。ドングルBは、ドングルaによって生成されたランダムチャレンジRaを受け取り、このランダムチャレンジRaを保存し(23)、ドングルBは、時間枠12の間、それ自体が署名モードにあることを認識しているので、ドングルBのプライベート識別情報Ibを使用して、ランダムチャレンジRaのデジタル署名S(Ra、Ib)を計算する(24)。ドングルBは、デジタル署名S(Ra、Ib)を保存し(25)、このデジタル署名をドングルaに返信する。ドングルaは、要求されたゼロ知識証明を形成するデジタル署名S(Ra、Ib)をドングルbから受け取って、内部ストップウォッチを停止し、ここで、この内部ストップウォッチが、遅延時間D(a、b)を読み取る。ドングルaは、遅延時間D(a、b)が、所定の時間枠内にあり、ドングルaによって測定された接続4の信号強度が、所定の最小信号強度を超過するか否か、及び、デジタル署名S(Ra、Ib)が、ローカルに保存された識別情報P(Ib)に従って有効であるか否かをチェックすること、すなわち、受け取ったゼロ知識証明を検証することによって、ドングルbの存在を検証する。従って、3つ全ての条件が満たされている場合に、ドングルbの存在が正常に検証され、ドングルaは、秘密鍵Kaをロック解除し(27)、この秘密鍵Kaを使用してメッセージMのデジタル署名Sa(M)を計算し(28)、この計算されたデジタル署名Sa(M)をホストhに送信する。
【0061】
ホストhは、ドラフト取引の部分的署名部分(例えば、部分的「scriptSig(スクリプトシグ)」)としてデジタル署名Sa(M)を保存する(29)。リディームスクリプトによって規定される取引は、3つのうちの2つの多重署名取引であると想定される。従って、ホストhは、セットsの第2のドングルiからの追加の署名を要求する。その結果、ホストhは、接続2経由でメッセージMをドングルbに送信する。ドングルbは、時間枠12の間、依然として署名モードにあるため、ドングルbは、ランダムチャレンジRbを生成することに進み(30)、ドングルbは、このランダムチャレンジをローカルに保存する(31)。ドングルaの存在を検証するために、ドングルbは、ランダムチャレンジRbをゼロ知識プロトコルの一部としてドングルaに送信する。ドングルaは、受け取ったランダムチャレンジRbを保存し(32)、また依然として、時間枠16の間、署名モードにあり、ドングルaのプライベート識別情報Iaを用いてランダムチャレンジRbに署名して(33)、デジタル署名S(Rb、Ia)を生成し、このデジタル署名が、保存され(34)、存在のゼロ知識証明としてドングルbに返信される。ドングルbは、ローカルに保存された識別情報P(Ia)を用いてデジタル署名S(Rb、Ia)を検証する(34)。(代替的に、識別情報P(Ia)は、ドングルbによって信頼された認証機関zによって署名されて、認証機関のプライベート識別情報Izを用いてこの認証機関によって計算されたデジタル署名S(P(Ia)、Iz)及びデジタル署名S(Rb、Ia)とともにドングルaからドングルbに送信することができる。この場合、ドングルbは、認証機関の識別情報P(Iz)のみを保存し、デジタル署名S(P(Ia)、Iz)を用いてドングルaの受け取った識別情報P(Ia)を検証し、次に、デジタル署名S(Rb、Ia)及び受け取った識別情報P(Ia)を用いてドングルaの存在を検証する。)存在のゼロ知識証明として受け取ったデジタル署名S(Rb、Ia)が有効であることが判明した場合に、ドングルbは、秘密鍵Kbをロック解除し、デジタル署名Sb(M)を計算して(36)、このデジタル署名Sb(M)をホストhに送信する。
【0062】
ここで、ホストhは、2つのドングルa、bから署名Sa(M)、Sb(M)を受け取り、従って、完全な署名部分を保持する(37)。ホストhは、この完全な署名部分37を用いて、有効な取引を編集する(39)。次に、ホストhは、有効な取引39をデータベース11にサブミットする(40)。データベース11(又は実質上、分散型公開取引ディレクトリに参加するノードのネットワーク)は、サブミットされた取引を検証する(41)。コーディネータは、サブミットされた取引がデータベース11に含まれ、従って、有効であることを検証する(42)。
【0063】
図3は、図2に関連して説明した手順を拡張できる部分シーケンス図を示しており、ドングルa、bが他の2つのドングルの下限値を保存する場合に、ドングルの存在は、メッセージMの署名が提供される前に検証される必要がある。この場合、図3のセクションIIIaに示されているシーケンスは、ドングルbの存在を検証した後の図2の時点IIIaに挿入することができる。ドングルaは、ランダムチャレンジRaをドングルcに送信し、この時点では、ドングルcは、依然としてスタンバイモードであるが、これにもかかわらずランダムチャレンジRaを保存する(43)。ドングルcは、進行中の協調署名手順及びこのドングルの必要な存在証明をこのドングルの所有者Ocに通知する。この通知に応答して、所有者Ocは、この所有者が署名に同意した場合に、ドングルc上のボタン6を押すことによって署名トリガを作動させ(45)、これによって、ドングルcが、限られた時間枠46の間、署名モードになる。ドングルcは、プライベート識別情報Icの第1の部分Ic1のみを保持し、プライベート識別情報Icの第2の部分Ic2は、携帯端末Tcによって保持される。従って、有効な存在証拠を提供するために、ドングルcは、部分署名のために、ドングルaから受け取られ保存されたランダムチャレンジRaを接続7経由で携帯端末Tcに送信する。この時点で、携帯端末Tcは、依然としてスタンバイモードにあり、受け取ったランダムチャレンジRaを保存する(47)。携帯端末Tcは、その所有者Ocに進行中の署名手順を通知し(48)、指紋センサ9に指紋を入力することにより認証を依頼する。所有者Ocは、要求された指紋を入力し(49)、これによって、携帯端末Tcが、限られた時間枠50の間、署名モードに切り替わる。ここで、署名モードでは、携帯端末Tcは、プライベート識別情報Icの第2の部分Ic2を使用して、ランダムチャレンジRaの部分デジタル署名S(Ra、Ic2)を計算して(51)それを保存し(52)、この部分デジタル署名S(Ra、Ic2)を接続7経由でドングルcに送信する。時間枠46の間、依然として署名モードにあるドングルcは、受け取った部分デジタル署名S(Ra、Ic2)を保存し(53)、プライベート識別情報Icの第1の部分Ic1を使用してランダムチャレンジRaの完全デジタル署名S(Ra、Ic1、Ic2)=S(Ra、Ic)を計算する(54)。ドングルcは、完全デジタル署名S(Ra、Ic)を保存し(55)、この完全デジタル署名を接続5経由でドングルaに返信する。次に、ドングルaは、ローカルに保存された識別情報P(Ic)を用いて受け取った署名S(Ra、Ic)を検証することによって、ドングルcの存在を検証し(56)、更に暗黙的に携帯端末Tcの存在を検証する。成功した場合に、ドングルaは、図2に関連して説明したデジタル署名Sa(M)の計算(27)に進む。
【0064】
図3のセクションIIIbに示されているシーケンスは、ドングルbがドングルaの存在を検証(35)した後の図2の時点IIIbに挿入することができる。この時点では、ドングルc及び携帯端末Tcは、時間枠46、50の間、依然として署名モードにある。従って、ドングルbがランダムチャレンジRbをドングルcに送信したときに、ドングルcは、ランダムチャレンジRbを保存し(57)、即座に、部分署名のためにこのランダムチャレンジRbを携帯端末Tcに転送する。携帯端末Tcは、受け取ったランダムチャレンジRbを保存し(58)、プライベート識別情報Icの第2の部分Ic2を使用してランダムチャレンジRbの部分デジタル署名S(Rb、Ic2)を計算(59)してそれを保存する(60)。携帯端末Tcは、部分デジタル署名S(Rb、Ic2)をドングルcに返信し、ドングルcが、受け取った部分デジタル署名S(Rb、Ic2)を保存(61)し、プライベート識別情報Icの第1の部分Ic1を使用してランダムチャレンジRbの完全デジタル署名S(Rb、Ic1、Ic2)=S(Rb、Ic)を計算する(62)。ドングルcは、完全デジタル署名S(Rb、Ic)を保存し(63)、ドングルbとドングルcとの間の直接無線接続経由でこの完全デジタル署名をドングルbに返信する。次に、ドングルbは、ローカルに保存された識別情報P(Ic)を用いて受け取った署名S(Rb、Ic)を検証することによって、ドングルcの存在及び携帯端末Tcの存在を検証する(64)。成功した場合、ドングルbは、図2に関連して説明したようにデジタル署名Sb(M)の計算(36)に進む。
【0065】
ドングルa、b、c及び携帯端末Tcは、限られた時間枠12、16、46、50(すなわち、これらが署名モードに入った後の所定の期間)の最後に、署名モードからスタンバイモードに自律的に切り替わる。
【0066】
図2及び図3におけるタイムラインと交差する平行な対角線66は、任意の時間が経過しており、この時間中、他のステップ及び状態変化が生じることができることを示している。
【符号の説明】
【0067】
4、5 無線接続
8 画面
9 指紋センサ
10 ネットワーク
11 データベース
a、b、c ドングル
s セット
c 携帯端末
図1
図2
図3