(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-08-18
(54)【発明の名称】暗号化された秘密シェアを使用した鍵の回復
(51)【国際特許分類】
H04L 9/08 20060101AFI20220810BHJP
G09C 1/00 20060101ALI20220810BHJP
H04L 9/14 20060101ALI20220810BHJP
【FI】
H04L9/08 A
G09C1/00 650Z
H04L9/14
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021573170
(86)(22)【出願日】2020-06-01
(85)【翻訳文提出日】2021-12-09
(86)【国際出願番号】 US2020035543
(87)【国際公開番号】W WO2020251795
(87)【国際公開日】2020-12-17
(32)【優先日】2019-06-10
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-11-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521151175
【氏名又は名称】ティーゼロ・アイピー,エルエルシー
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100162846
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】ドラン,ジョナサン
(72)【発明者】
【氏名】オルネラス,マイケル・ディー
(72)【発明者】
【氏名】ハートリー,ケビン
(72)【発明者】
【氏名】チェン,ペンギュ
(72)【発明者】
【氏名】ジョンソン,ジャストン
(57)【要約】
プロセッサおよびメモリと、少なくとも1つのプロセッサに通信可能に結合され、少なくとも1つの遠隔に配置されたコンピューティングデバイスと通信するように構成された少なくとも1つのネットワークインターフェースと、を備えるコンピューティングシステムであって、少なくとも1つのネットワークインターフェースは、少なくとも1つの遠隔に配置されたコンピューティングデバイスから複数の公開暗号化鍵を受信するように構成されており、少なくとも1つのプロセッサは、少なくとも1つの秘密を複数のシェアに分割することであって、複数のシェアの少なくともサブセットは、少なくとも1つの秘密を再構築するのに十分である、分割することと、複数の公開暗号化鍵の異なる公開暗号化鍵に基づいて複数のシェアのそれぞれを暗号化して、複数の暗号化されたシェアを作成することとを行うように構成されており、少なくとも1つのネットワークインターフェースは、暗号化されたシェアを少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されている、コンピューティングシステム。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
ユーザコンピューティングデバイスであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリと、
前記少なくとも1つのプロセッサに通信可能に結合され、少なくとも1つの遠隔に配置されたコンピューティングデバイスと通信するように構成された少なくとも1つのネットワークインターフェースと、を備え、
前記少なくとも1つのネットワークインターフェースは、前記少なくとも1つの遠隔に配置されたコンピューティングデバイスから複数の公開暗号化鍵を受信するように構成されており、
前記少なくとも1つのプロセッサは、
少なくとも1つの秘密を複数のシェアに分割することであって、前記複数のシェアの少なくともサブセットは、前記少なくとも1つの秘密を再構築するのに十分である、分割することと、
前記複数の公開暗号化鍵の異なる公開暗号化鍵に基づいて前記複数のシェアのそれぞれを暗号化して、複数の暗号化されたシェアを作成することと、を行うように構成されており、
前記少なくとも1つのネットワークインターフェースは、前記暗号化されたシェアを前記少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されている、ユーザコンピューティングデバイス。
【請求項2】
前記少なくとも1つのプロセッサは、楕円曲線ディフィーヘルマン(ECDH)演算を使用して、前記複数の暗号化されたシェアのそれぞれを暗号化および署名するようにさらに構成されている、請求項1に記載のユーザコンピューティングデバイス。
【請求項3】
前記少なくとも1つのプロセッサは、楕円曲線ディフィーヘルマン(ECDH)演算を使用して暗号化するように構成されており、前記演算は、
それぞれが私有署名鍵および前記公開暗号化鍵のそれぞれの1つに基づいて決定される、複数のECDH鍵を決定すること、
それぞれがそれぞれのECDH鍵、公開署名鍵、および公開暗号化鍵のそれぞれの1つのハッシュとして決定される、複数の高度暗号化標準(AES)鍵を決定すること、および
前記複数のシェアのそれぞれを、それぞれのAES鍵と組み合わせて、それぞれの暗号化されたシェアに暗号化することを含む、請求項1に記載のユーザコンピューティングデバイス。
【請求項4】
前記複数の公開暗号化鍵の異なる各公開暗号化鍵は、異なるマスターシード鍵から階層的決定論的(HD)方法論を使用して導出されている、請求項1に記載のユーザコンピューティングデバイス。
【請求項5】
前記シェアは、シャミア秘密シェアである、請求項1に記載のユーザコンピューティングデバイス。
【請求項6】
前記少なくとも1つのプロセッサは、多項式補間またはシャミア秘密分散のうちの少なくとも1つを介して、前記少なくとも1つの秘密を複数のシェアに分割するように構成されている、請求項1に記載のユーザコンピューティングデバイス。
【請求項7】
前記シェアは、シャミア分散であり、
前記少なくとも1つのプロセッサは、シャミア秘密分散を使用して、前記少なくとも1つの秘密を複数のシェアに分割するように構成されている、請求項1に記載のユーザコンピューティングデバイス。
【請求項8】
前記少なくとも1つの秘密は、鍵、暗号鍵、私有鍵、公開暗号化鍵、暗号化鍵、署名鍵、およびパスワードのうちの少なくとも1つを含む、請求項1に記載のユーザコンピューティングデバイス。
【請求項9】
前記少なくとも1つの秘密を使用して、データを暗号化し、データを復号化し、トランザクションに署名することができる、請求項1に記載のユーザコンピューティングデバイス。
【請求項10】
前記複数の公開暗号化鍵は、それぞれ、異なる私有鍵との異なる暗号化鍵ペアの一部であり、異なる各私有鍵は、異なるコンピューティングデバイスに格納されている、請求項1に記載のユーザコンピューティングデバイス。
【請求項11】
異なる各コンピューティングデバイスは、異なるグループの個人によって制御されている、請求項10に記載のユーザコンピューティングデバイス。
【請求項12】
異なる各コンピューティングデバイスは、他の異なるコンピューティングデバイスとは異なる物理的位置に配置されている、請求項10に記載のユーザコンピューティングデバイス。
【請求項13】
前記少なくとも1つのネットワークインターフェースは、前記少なくとも1つの遠隔に配置されたコンピューティングデバイスから第1の複数の暗号化されたシェアの少なくとも第1のサブセットを受信するように構成されており、
前記少なくとも1つのプロセッサは、
前記第1の複数の暗号化されたシェアの前記第1のサブセットのそれぞれを復号化して、第1の複数の暗号化されていないシェアを作成し、
前記第1の複数の暗号化されていないシェアを使用して、前記少なくとも1つの秘密を再構築するように構成されている、請求項1に記載のユーザコンピューティングデバイス。
【請求項14】
前記少なくとも1つのネットワークインターフェースは、少なくとも1つの回復公開暗号化鍵を前記少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されており、
前記少なくとも1つのプロセッサは、前記少なくとも1つの回復公開暗号化鍵に対応する少なくとも1つの回復私有復号化鍵に基づいて、前記第1の複数の暗号化されたシェアの前記第1のサブセットのそれぞれを復号化するように構成されている、請求項13に記載のユーザコンピューティングデバイス。
【請求項15】
前記少なくとも1つの回復公開暗号化鍵の異なる各回復公開暗号化鍵は、前記少なくとも1つの回復私有復号化鍵の異なる回復私有復号化鍵との異なる回復暗号化鍵ペアの一部である、請求項14に記載のユーザコンピューティングデバイス。
【請求項16】
前記少なくとも1つの回復私有復号化鍵は、単一の回復私有復号化鍵であり、
前記少なくとも1つの回復公開暗号化鍵は、単一の回復公開暗号化鍵である、請求項14に記載のユーザコンピューティングデバイス。
【請求項17】
前記少なくとも1つのプロセッサは、暗号化の前に前記複数のシェアのそれぞれからハッシュを生成するようにさらに構成されており、
前記少なくとも1つのネットワークインターフェースは、前記ハッシュを前記少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するようにさらに構成されている、請求項14に記載のユーザコンピューティングデバイス。
【請求項18】
ユーザコンピューティングデバイスであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリと、
前記少なくとも1つのプロセッサに通信可能に結合され、少なくとも1つの遠隔に配置されたコンピューティングデバイスと通信するように構成された少なくとも1つのネットワークインターフェースと、を備え、
前記少なくとも1つのネットワークインターフェースは、少なくとも1つの回復公開暗号化鍵を少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されており、少なくとも1つの回復私有復号化鍵は、前記少なくとも1つの回復公開暗号化鍵に対応し、
前記少なくとも1つのネットワークインターフェースは、前記少なくとも1つの遠隔に配置されたコンピューティングデバイスから第1の複数の暗号化されたシェアの少なくともサブセットを受信するように構成されており、
前記少なくとも1つのプロセッサは、
前記第1の複数の回復暗号化されたシェアの前記サブセットのそれぞれを復号化して、前記少なくとも1つの回復公開暗号化鍵に対応する前記少なくとも1つの回復私有復号化鍵に基づいて、第1の複数の暗号化されていないシェアを作成し、
前記第1の複数の暗号化されていないシェアを使用して、前記少なくとも1つの秘密を再構築するように構成されている、ユーザコンピューティングデバイス。
【請求項19】
前記少なくとも1つの回復私有復号化鍵は、単一の回復私有復号化鍵であり、
前記少なくとも1つの回復公開暗号化鍵は、単一の回復公開暗号化鍵である、請求項18に記載のユーザコンピューティングデバイス。
【請求項20】
前記暗号化されていないシェアは、シャミア秘密シェアである、請求項18に記載のユーザコンピューティングデバイス。
【請求項21】
前記少なくとも1つのプロセッサは、多項式補間またはシャミア秘密分散のうちの少なくとも1つを介して、前記第1の複数の暗号化されていないシェアを使用して前記少なくとも1つの秘密を再構築するように構成されている、請求項18に記載のユーザコンピューティングデバイス。
【請求項22】
前記暗号化されていないシェアは、シャミアシェアであり、
前記少なくとも1つのプロセッサは、シャミア秘密分散を使用して前記第2の複数のシェアを使用して前記少なくとも1つの秘密を再構築するように構成されている、請求項18に記載のユーザコンピューティングデバイス。
【請求項23】
前記少なくとも1つの秘密は、鍵、暗号鍵、私有鍵、公開暗号化鍵、暗号化鍵、署名鍵、およびパスワードのうちの少なくとも1つを含む、請求項18に記載のユーザコンピューティングデバイス。
【請求項24】
前記少なくとも1つの秘密を使用して、データを暗号化し、データを復号化し、トランザクションに署名することができる、請求項18に記載のユーザコンピューティングデバイス。
【請求項25】
前記少なくとも1つの回復公開暗号化鍵の異なる各回復公開暗号化鍵は、前記少なくとも1つの回復私有復号化鍵の異なる回復私有復号化鍵との異なる回復暗号化鍵ペアの一部である、請求項18に記載のユーザコンピューティングデバイス。
【請求項26】
前記少なくとも1つのプロセッサは、楕円曲線ディフィーヘルマン(ECDH)演算を使用して復号化するように構成されており、前記演算は、
それぞれが、それぞれの回復公開署名鍵および前記少なくとも1つの回復私有復号化鍵のそれぞれの1つに基づいて決定される、少なくとも1つの回復ECDH鍵を決定すること、
回復ECDH鍵ごとに、前記それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、および前記少なくとも1つの回復公開暗号化鍵のそれぞれの1つのハッシュとして高度暗号化標準(AES)鍵を決定すること、および
前記第1の複数の回復暗号化されたシェアの前記サブセットのそれぞれを、対応する回復AES鍵と組み合わせて、それぞれの暗号化されていないシェアに復号化することを含む、請求項18に記載のユーザコンピューティングデバイス。
【請求項27】
第1のユーザコンピューティングデバイスと、
前記第1のユーザコンピューティングデバイスと通信するように構成された少なくとも1つの遠隔に配置されたコンピューティングデバイスと、を備える、システムであって、
前記少なくとも1つの遠隔に配置されたコンピューティングデバイスは、複数の公開暗号化鍵を前記第1のユーザコンピューティングデバイスに通信するように構成されており、
前記第1のユーザコンピューティングデバイスは、
少なくとも1つの秘密を複数のシェアに分割することであって、前記複数のシェアの少なくともサブセットは、前記少なくとも1つの秘密を再構築するのに十分である、分割することと、
前記複数の公開暗号化鍵の異なる公開暗号化鍵に基づいて前記複数のシェアのそれぞれを暗号化して、複数の暗号化されたシェアを作成することと、
前記暗号化されたシェアを前記少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信することと、を行うように構成されており、
前記少なくとも1つの遠隔に配置されたコンピューティングデバイスは、前記暗号化されたシェアを格納するように構成されている、システム。
【請求項28】
前記少なくとも1つのプロセッサは、私有署名鍵を使用して前記複数の暗号化されたシェアのそれぞれに署名するようにさらに構成されている、請求項27に記載のシステム。
【請求項29】
前記少なくとも1つのプロセッサは、楕円曲線ディフィーヘルマン(ECDH)演算を使用して暗号化するように構成されており、前記演算は、
それぞれが私有署名鍵および前記複数の公開暗号化鍵のそれぞれの1つに基づいて決定される、複数のECDH鍵を決定すること、
それぞれがそれぞれのECDH鍵、公開署名鍵、および前記複数の公開暗号化鍵のそれぞれの1つのハッシュとして決定される、複数の高度暗号化標準(AES)鍵を決定すること、および
前記複数のシェアのそれぞれを、それぞれのAES鍵とともに、前記複数の暗号化されたシェアのそれぞれの1つに暗号化することを含む、請求項27に記載のシステム。
【請求項30】
前記複数の公開暗号化鍵の異なる各公開暗号化鍵は、異なるマスターシード鍵から階層的決定論的(HD)方法論を使用して導出されている、請求項27に記載のシステム。
【請求項31】
前記シェアは、シャミア秘密シェアである、請求項27に記載のシステム。
【請求項32】
前記第1のユーザコンピューティングデバイスは、多項式補間またはシャミア秘密分散のうちの少なくとも1つを介して、前記少なくとも1つの秘密を複数のシェアに分割するように構成されている、請求項27に記載のシステム。
【請求項33】
前記シェアは、シャミアシェアであり、
前記第1のユーザコンピューティングデバイスは、シャミア秘密分散を使用して、前記少なくとも1つの秘密を複数のシェアに分割するように構成されている、請求項27に記載のシステム。
【請求項34】
前記少なくとも1つの秘密は、鍵、暗号鍵、私有鍵、公開暗号化鍵、暗号化鍵、署名鍵、およびパスワードのうちの少なくとも1つを含む、請求項27に記載のシステム。
【請求項35】
前記少なくとも1つの秘密は、データを暗号化し、データを復号化し、トランザクションに署名するために使用することができる、請求項27に記載のシステム。
【請求項36】
前記複数の公開暗号化鍵は、それぞれ、異なる私有鍵との異なる暗号化鍵ペアの一部であり、異なる各私有鍵は、異なるコンピューティングデバイスに格納されている、請求項27に記載のシステム。
【請求項37】
異なる各コンピューティングデバイスは、異なるグループの個人によって制御されている、請求項36に記載のシステム。
【請求項38】
異なる各コンピューティングデバイスは、他の異なるコンピューティングデバイスとは異なる物理的位置に配置されている、請求項36に記載のシステム。
【請求項39】
第2のユーザコンピューティングデバイスをさらに備え、
前記第2のユーザコンピューティングデバイスは、少なくとも1つの回復公開暗号化鍵を前記少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されており、
前記少なくとも1つの遠隔に配置されたコンピューティングデバイスは、少なくとも1つの回復暗号化されたシェアを前記第2のユーザコンピューティングデバイスに通信するように構成されており、
前記第2のユーザコンピューティングデバイスは、前記少なくとも1つの回復公開暗号化鍵に対応する少なくとも1つの回復私有復号化鍵に基づいて、前記少なくとも1つの回復暗号化されたシェアのそれぞれを復号化して、第1の複数の暗号化されていないシェアを作成するように構成されており、
前記第2のユーザコンピューティングデバイスは、前記第1の複数の暗号化されていないシェアを使用して前記少なくとも1つの秘密を再構築するように構成されている、請求項29に記載のシステム。
【請求項40】
前記少なくとも1つの回復公開暗号化鍵の異なる各回復公開暗号化鍵は、前記少なくとも1つの回復私有復号化鍵の異なる回復私有復号化鍵との異なる回復暗号化鍵ペアの一部である、請求項39に記載のシステム。
【請求項41】
前記少なくとも1つの回復私有復号化鍵は、単一の回復私有復号化鍵であり、
前記少なくとも1つの回復公開暗号化鍵は、単一の回復公開暗号化鍵である、請求項39に記載のシステム。
【請求項42】
前記第2のコンピューティングデバイスは、楕円曲線ディフィーヘルマン(ECDH)演算を使用して復号化するように構成されており、前記演算は、
それぞれが、それぞれの回復公開署名鍵および前記少なくとも1つの回復私有復号化鍵のそれぞれの1つに基づいて決定される、少なくとも1つの回復ECDH鍵を決定すること、
回復ECDH鍵ごとに、それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、およびそれぞれの回復公開暗号化鍵のハッシュとして、高度暗号化標準(AES)鍵を決定すること、および
前記少なくとも1つの回復暗号化されたシェアのそれぞれを、対応する回復AES鍵と組み合わせて、前記第1の複数の暗号化されていないシェアのそれぞれの1つに復号化することを含む、請求項41に記載のシステム。
【請求項43】
ユーザコンピューティングデバイスと、
前記第1のユーザコンピューティングデバイスと通信するように構成された少なくとも1つの遠隔に配置されたコンピューティングデバイスと、を備える、システムであって、
前記ユーザコンピューティングデバイスは、少なくとも1つの回復公開暗号化鍵を少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されており、少なくとも1つの回復私有復号化鍵は、前記少なくとも1つの回復公開暗号化鍵に対応し、
前記少なくとも1つの遠隔に配置されたコンピューティングデバイスは、第1の複数の回復暗号化されたシェアの少なくともサブセットを前記ユーザコンピューティングデバイスに通信するように構成されており、
前記ユーザコンピューティングデバイスは、
前記第1の複数の回復暗号化されたシェアの前記サブセットのそれぞれを復号化して、前記少なくとも1つの回復公開暗号化鍵に対応する前記少なくとも1つの回復私有復号化鍵に基づいて第1の複数の暗号化されていないシェアを作成し、
前記第1の複数の暗号化されていないシェアを使用して、前記少なくとも1つの秘密を再構築するように構成されている、システム。
【請求項44】
前記少なくとも1つの回復私有復号化鍵は、単一の回復私有復号化鍵であり、
前記少なくとも1つの回復公開暗号化鍵は、単一の回復公開暗号化鍵である、請求項43に記載のシステム。
【請求項45】
前記暗号化されていないシェアは、シャミア秘密シェアである、請求項43に記載のシステム。
【請求項46】
前記少なくとも1つのプロセッサは、多項式補間またはシャミア秘密分散のうちの少なくとも1つを介して、前記第1の複数の暗号化されていないシェアを使用して前記少なくとも1つの秘密を再構築するように構成されている、請求項43に記載のシステム。
【請求項47】
前記暗号化されていないシェアは、シャミアシェアであり、
前記少なくとも1つのプロセッサは、シャミア秘密分散を使用して前記第2の複数のシェアを使用して前記少なくとも1つの秘密を再構築するように構成されている、請求項43に記載のシステム。
【請求項48】
前記少なくとも1つの秘密は、鍵、暗号鍵、私有鍵、公開暗号化鍵、暗号化鍵、署名鍵、およびパスワードのうちの少なくとも1つを含む、請求項43に記載のシステム。
【請求項49】
前記少なくとも1つの秘密は、データを暗号化し、データを復号化し、トランザクションに署名するために使用することができる、請求項43に記載のシステム。
【請求項50】
前記少なくとも1つの回復公開暗号化鍵の異なる各回復公開暗号化鍵は、前記少なくとも1つの回復私有復号化鍵の異なる回復私有復号化鍵との異なる回復暗号化鍵ペアの一部である、請求項43に記載のシステム。
【請求項51】
前記ユーザコンピューティングデバイスは、楕円曲線ディフィーヘルマン(ECDH)演算を使用して復号化するように構成されており、前記演算は、
それぞれが、それぞれの回復公開署名鍵および前記少なくとも1つの回復私有復号化鍵のそれぞれの1つに基づいて決定される、少なくとも1つの回復ECDH鍵を決定すること、
回復ECDH鍵ごとに、前記それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、および前記少なくとも1つの回復公開暗号化鍵のそれぞれのハッシュとして高度暗号化標準(AES)鍵を決定すること、および
前記第1の複数の回復暗号化されたシェアの前記サブセットのそれぞれを、対応する回復AES鍵と組み合わせて、それぞれの暗号化されていないシェアに復号化することを含む、請求項43に記載のシステム。
【請求項52】
コンピュータ化された方法であって、
少なくとも1つの遠隔に配置されたコンピューティングデバイスから第1のユーザコンピューティングデバイスに複数の公開暗号化鍵を通信することと、
前記第1のユーザコンピューティングデバイスで少なくとも1つの秘密を複数のシェアに分割することであって、前記複数のシェアの少なくともサブセットは、前記少なくとも1つの秘密を再構築するのに十分である、分割することと、
複数の暗号化されたシェアを作成するために、前記第1のユーザコンピューティングデバイスで前記複数の公開暗号化鍵の異なる公開暗号化鍵に基づいて前記複数のシェアのそれぞれを暗号化することと、
前記暗号化されたシェアを前記第1のユーザコンピューティングデバイスから前記少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信することと、
前記暗号化されたシェアを前記少なくとも1つの遠隔に配置されたコンピューティングデバイスに格納することと、を含む、コンピュータ化された方法。
【請求項53】
少なくとも1つのモバイルストレージデバイスを介して、前記複数の暗号化されたシェアのそれぞれを、前記少なくとも1つの遠隔に配置されたコンピューティングデバイスから複数の信頼できるコンピューティングデバイスのそれぞれの1つに転送することと、
信頼できる各コンピューティングデバイスで、それぞれの暗号化されたシェアをそれぞれの暗号化されていないシェアに復号化することと、
信頼できる各コンピューティングデバイスで、それぞれの暗号化されていないシェアが、暗号化される前に前記複数のシェアの1つと一致することを検証することと、をさらに含む、請求項52に記載のコンピュータ化された方法。
【請求項54】
前記復号化することは、楕円曲線ディフィーヘルマン(ECDH)演算を使用することを含み、前記演算は、
それぞれが公開署名鍵と前記少なくとも1つの私有復号化鍵のそれぞれの1つに基づいて決定される、少なくとも1つのECDH鍵を決定すること、
回復ECDH鍵ごとに、高度暗号化標準(AES)鍵を、前記それぞれのECDH鍵、前記公開署名鍵、および前記少なくとも1つの公開暗号化鍵のそれぞれの1つのハッシュとして決定すること、および
暗号化された各シェアを、対応する回復AES鍵と組み合わせて、それぞれの暗号化されていないシェアに復号化することを含む、請求項53に記載のコンピュータ化された方法。
【請求項55】
前記第1のユーザコンピューティングデバイスで、前記第1の複数のシェアのそれぞれのハッシュを生成することと、
前記第1の複数のシェアの前記ハッシュを前記少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信することと、
前記ハッシュのそれぞれを、前記少なくとも1つの遠隔に配置されたコンピューティングデバイスから前記複数の信頼できるコンピューティングデバイスのそれぞれの1つに転送することと、
前記暗号化されていないシェアの各々から回復ハッシュを生成することと、をさらに含み、
前記検証することは、前記ハッシュを前記回復ハッシュと比較して、前記暗号化されていないシェアのデータが正確であるかどうかを判断することを含む、請求項53に記載のコンピュータ化された方法。
【請求項56】
前記暗号化されていないシェアを回復暗号化されたシェアに再暗号化することと、
前記暗号化されていないシェアを、前記少なくとも1つの遠隔に配置されたコンピューティングデバイスに転送することと、
前記回復暗号化されたシェアを、前記少なくとも1つの遠隔に配置されたコンピューティングデバイスから第2のユーザコンピューティングデバイスに通信することと、
複数の復号化されたシェアを作成するために、前記第2のユーザコンピューティングデバイスで前記回復暗号化されたシェアのそれぞれを復号化することと、
前記複数の復号化されたシェアを使用して、前記第2のユーザコンピューティングデバイスで前記少なくとも1つの秘密を再構築することと、をさらに含む、請求項55に記載のコンピュータ化された方法。
【請求項57】
再暗号化は、楕円曲線ディフィーヘルマン(ECDH)演算を使用することを含み、前記演算は、
それぞれがそれぞれの回復私有署名鍵およびそれぞれの回復公開暗号化鍵に基づいて決定される、複数の回復ECDH鍵を決定すること、
それぞれがそれぞれの回復ECDH鍵、それぞれの回復公開署名鍵、およびそれぞれの回復公開暗号化鍵のハッシュとして決定される、複数の高度暗号化標準(AES)鍵を決定すること、および
前記暗号化されていないシェアのそれぞれを、それぞれのAES鍵とともに、前記回復暗号化されたシェアのそれぞれの1つに暗号化すること、を含む、請求項55に記載のコンピュータ化された方法。
【請求項58】
コンピュータ化された方法であって、
少なくとも1つの回復公開暗号化鍵を、ユーザコンピューティングデバイスから少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信することであって、少なくとも1つの回復私有復号化鍵は、前記少なくとも1つの回復公開暗号化鍵に対応する、通信することと、
第1の複数の回復暗号化されたシェアの少なくともサブセットを、前記少なくとも1つの遠隔に配置されたコンピューティングデバイスから前記ユーザコンピューティングデバイスに通信することと、
前記ユーザコンピューティングデバイスで前記第1の複数の回復暗号化されたシェアの前記サブセットのそれぞれを復号化して、前記少なくとも1つの回復公開暗号化鍵に対応する前記少なくとも1つの回復私有復号化鍵に基づいて第1の複数の暗号化されていないシェアを作成することと、
前記第1の複数の暗号化されていないシェアを使用して、前記ユーザコンピューティングデバイスで前記少なくとも1つの秘密を再構築することと、を含む、コンピュータ化された方法。
【請求項59】
前記第1の複数の回復暗号化されたシェアの前記サブセットを前記少なくとも1つの遠隔に配置されたコンピューティングデバイスから前記ユーザコンピューティングデバイスに通信する前に、前記少なくとも1つの回復公開暗号化鍵に基づいて、1つ以上の信頼できるコンピューティングデバイスで第1の複数のシェアを前記第1の複数の回復暗号化されたシェアの前記少なくともサブセットに暗号化することをさらに含む、請求項58に記載のコンピュータ化された方法。
【請求項60】
暗号化は、楕円曲線ディフィーヘルマン(ECDH)演算を使用することを含み、前記演算は、
それぞれがそれぞれの回復私有署名鍵およびそれぞれの回復公開暗号化鍵に基づいて決定される、複数の回復ECDH鍵を決定すること、
それぞれがそれぞれの回復ECDH鍵、それぞれの回復公開署名鍵、およびそれぞれの回復公開暗号化鍵のハッシュとして決定される、複数の高度暗号化標準(AES)鍵を決定すること、および
前記複数の暗号化されていないシェアのそれぞれを、それぞれのAES鍵とともに、前記第1の複数の回復暗号化されたシェアのそれぞれの1つに暗号化することを含む、請求項59に記載のコンピュータ化された方法。
【請求項61】
復号化は、楕円曲線ディフィーヘルマン(ECDH)演算を使用することを含み、前記演算は、
それぞれがそれぞれの回復公開署名鍵と前記少なくとも1つの回復私有復号化鍵のうちの1つに基づいて決定される、少なくとも1つの回復ECDH鍵を決定すること、
回復ECDH鍵ごとに、前記それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、および前記少なくとも1つの回復公開暗号化鍵のうちの1つのハッシュとして高度暗号化標準(AES)鍵を決定すること、および
前記第1の複数の回復暗号化されたシェアの前記サブセットのそれぞれを、対応する回復AES鍵と組み合わせて、それぞれの暗号化されていないシェアに復号化することを含む、請求項58に記載のコンピュータ化された方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
この出願は、2019年6月10日に出願された「KEY RECOVERY USING ENCRYPTED SECRET SHARES」というタイトルの米国仮特許出願第62/859,568号(代理人整理番号270.031USPR)、および2019年11月6日に出願された「KEY RECOVERY USING ENCRYPTED SECRET SHARES」というタイトルの米国仮特許出願第62/931,753号(代理人整理番号270.031USP2)の利益を主張し、両方の全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
暗号化を使用して、データを安全に格納および送信できる。鍵は、データの暗号化と、暗号化されたデータの復号化に使用できる。
【発明の概要】
【0003】
プロセッサおよびメモリと、少なくとも1つのプロセッサに通信可能に結合され、少なくとも1つの遠隔に配置されたコンピューティングデバイスと通信するように構成された少なくとも1つのネットワークインターフェースと、を備えるコンピューティングシステムであって、少なくとも1つのネットワークインターフェースは、少なくとも1つの遠隔に配置されたコンピューティングデバイスから複数の公開暗号化鍵を受信するように構成されており、少なくとも1つのプロセッサは、少なくとも1つの秘密を複数のシェアに分割することであって、複数のシェアの少なくともサブセットは、少なくとも1つの秘密を再構築するのに十分である、分割することと、複数の公開暗号化鍵の異なる公開暗号化鍵に基づいて複数のシェアのそれぞれを暗号化して、複数の暗号化されたシェアを作成することとを行うように構成されており、少なくとも1つのネットワークインターフェースは、暗号化されたシェアを少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されている、コンピューティングシステム。
【図面の簡単な説明】
【0004】
図面は例示的な実施形態のみを描写し、したがって範囲を限定すると見なされるべきではないことを理解して、例示的な実施形態は、添付の図面を使用することにより、追加の特異性および詳細を伴って説明される。
【0005】
【
図1A】暗号化された秘密シェアを使用した暗号化された秘密バックアップのためのシステム例を示すブロック図である。
【
図1B】暗号化された秘密シェアを使用した秘密回復のためのシステム例を示すブロック図である。
【
図2A】顧客ウォレットを実装するための顧客デバイス上のノードツリー例を示すブロック図である。
【
図2B】秘密シェアの暗号化に使用される暗号化鍵のための階層的決定論的(HD)構造を実装するためのサードパーティシステムの別のノードツリー例を示すブロック図である。
【
図3A】私有ユーザ鍵の秘密シェアを生成および暗号化するためのシステム例を示すブロック図である。
【
図3B】私有ユーザ鍵を復元するために使用できるシード/ニーモニックフレーズの秘密シェアを生成および暗号化するための別のシステム例を示すブロック図である。
【
図4】秘密の秘密シェアを生成および暗号化するための方法例を示す流れ図である。
【
図5】秘密の暗号化された秘密シェアから秘密を復元するための方法例を示す流れ図である。
【
図6】秘密シェアの生成、暗号化、および配布のための方法を示すブロック図である。
【
図7】複数の暗号化されたシェアから秘密を回復するための方法を示すシーケンス図である。
【
図8】本開示のいくつかの実施形態を利用し得るコンピュータシステム例を示すブロック図である。
【
図9】別のコンピューティングデバイス例を示すブロック図である。
【0006】
一般的な慣行に従って、説明されている様々な特徴は、一定の縮尺で描かれているのではなく、例示的な実施形態に関連する特定の特徴を強調するように描かれている。
【発明を実施するための形態】
【0007】
以下の詳細な説明では、その一部を形成し、例示として特定の例示的な実施形態が示されている添付の図面を参照する。しかしながら、他の実施形態が利用され得ることと、論理的、機械的、および電気的変更がなされ得ることとを理解されたい。さらに、図面の図および明細書に示されている方法は、個々のステップが実行され得る順序を制限するものとして解釈されるべきではない。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【0008】
暗号鍵を含む鍵は、データの暗号化、データの復号化、およびトランザクションへの署名に使用できる。鍵には、私有鍵、公開鍵、暗号化鍵、署名鍵、および他の暗号鍵、ならびにパスワードおよび秘密を含めることができる(ただしこれらに限定されない)。鍵の難しさの1つは、鍵を安全に保ち、必要なときにアクセスできるようにすることである。場合によっては、ウォレットを悪意のある攻撃に対して脆弱なままにする可能性があるため、一個人/エンティティに限定されたウォレットにアクセスすることが望ましくない場合がある。代わりに、ウォレットを使用するために2以上の個人/エンティティからの検証を要求することが望ましい場合がある。
【0009】
一部の構成では、対称暗号化を実行するために1つ以上の対称暗号化鍵を使用してもよい。対称暗号化鍵(または単に「対称鍵」)を使用して、データを暗号化および/または復号化してもよい。これは「対称」暗号化/復号化と呼ばれる。なぜなら、同じ鍵を使用して暗号化と復号化を行うことができ、例えば、異なるブロックチェーンアドレス、アカウント、および/またはウォレットの1つ以上の私有鍵を暗号化および復号化することができるためである。対称鍵は、Twofish、Serpent、高度暗号化標準(AES)、Blowfish、CAST5、Kuznyechik、RC4、データ暗号化標準(DES)、Triple DES(3DES)、Skipjack、Safer+/++(Bluetooth)、IDEAおよび/または他の暗号ブロックコーディング(CBC)のバリエーションのいずれかの暗号化に従って動作し得る。したがって、以下のいくつかの例ではAES鍵が使用されるが、任意の他の対称鍵を代わりに使用することもできる。
【0010】
例では、AES鍵を用いて秘密部分を対称的に暗号化するには、少なくとも1つの排他的論理和(XOR)演算を適用することにより、結果的に暗号化された秘密部分に各ビット位置に1つが含まれ、ここで、秘密部分とAES鍵の両方の対応するビット位置のビットが異なり、暗号化された秘密部分は、各ビット位置にゼロを含み、ここで、秘密部分とAES鍵の両方の対応するビット位置のビットが同じである。
【0011】
一部の構成では、非対称暗号化を使用してもよい。私有鍵と対応する公開鍵を含む「公開/私有鍵ペア」を非対称暗号化で使用してもよい。あるいは、私有鍵と公開鍵は、復号化私有鍵と暗号化公開鍵と呼ばれることもある。これは、同じ鍵が暗号化と復号化(または署名トランザクション)に使用されないため、「非対称」暗号化/復号化と呼ばれる場合がある。一般に、私有鍵(場合によっては公開鍵)を安全に保つことが望ましい。非限定的に、非対称鍵は、次の暗号化、リベスト-シャミア-エーデルマン(RSA)および楕円曲線暗号(ECC)(例えば、Curve25519)、エドワーズ曲線デジタル署名アルゴリズム(EdDSA)(例えば、Ed25519)などのいずれかに従って動作し得る。
【0012】
例えば、公開鍵を使用してデータを暗号化すると、暗号化に使用された公開鍵に対応する私有鍵のみを使用してデータを復号化できる。例では、公開鍵を使用してトランザクションアドレスを(例えば、顧客ウォレット内で)生成することができ、対応する私有鍵のみが、トランザクションアドレスから資金を使用するトランザクションに署名できる。
【0013】
鍵は、複数の鍵成分(つまり、シェア)に分割され得る。ここで、鍵成分の少なくともサブセット(またはすべて)を使用して、元の鍵を再構築、つまり、鍵分割できる。例では、特定の鍵を再構築するために、特定の量の鍵成分、例えば、M個のうちのMまたはN個のうちのM(ここで、M<Nである)が必要とされ得る。例では、鍵は、多項式補間またはシャミアの秘密分散のうちの少なくとも1つを介して鍵成分のセットに分割される。
【0014】
例では、鍵および/または鍵成分は、電子メール、ショートメッセージサービス(SMS)、マルチメディアメッセージングサービス(MMS)、インスタントメッセージング、プッシュ通知(プッシュ検証通知など)の少なくとも1つを使用して、通知をポーリング(またはプル)するか、またはBluetooth、Wi-Fi、または近距離無線通信(NFC)送信によってデバイスに電子的に配布できる。例では、鍵および/または鍵成分を画面に表示して書き留めるか、さもなければ印刷(クイックレスポンス(QR)コード、バーコードなど)を通じて物理的に配布したり、またはUSB鍵/メモリスティック(もしくは他のソリッドステートドライブ)に、または光学ディスクもしくは磁気ディスクに格納したりできる。さらに、ノードツリー内の鍵または鍵成分のインデックスは、第1のデバイスから第2のデバイスに通信され得、これは、階層的決定論的(HD)鍵/ウォレットなどを用いて、第2のデバイスにすでに格納されている異なる鍵から鍵または鍵成分を導出することができる。
【0015】
定常操作中に、顧客ウォレットから復号化および/または署名/トランザクションするために、例えば、トランザクションアドレスから暗号通貨を転送するために私有鍵が必要になる場合がある。ユーザが私有鍵を紛失した場合(私有鍵を含むデバイスを紛失、破損、またはアップグレードした場合など)、本明細書で説明する方法論を使用して私有鍵を回復できる。ニーモニックフレーズ(12ワードの私有鍵ニーモニックなど)は私有鍵から生成して、私有鍵の回復に使用するためにバックアップできるが、これらは紛失の可能性があり、それを回復できるようにするマスター鍵を安全にバックアップする追加の方法があることが望ましい。以下の説明では、秘密を安全にバックアップおよび回復する方法について説明する。
【0016】
図1Aは、暗号化された秘密シェア120を使用する暗号化された秘密バックアップのためのシステム例100Aを示すブロック図である。システム100Aは、ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、および信頼できるコンピューティングデバイス106を含む。ユーザコンピューティングデバイス102は、ネットワーク108を介して遠隔に配置されたコンピューティングデバイス104に通信可能に結合されている。例では、信頼できるコンピューティングデバイス106(第1の信頼できるコンピューティングデバイス106-1、第2の信頼できるコンピューティングデバイス106-2、およびオプションの信頼できるコンピューティングデバイス106-Aなど)は、エアギャップコンピューティングデバイスであり、これは、それらが任意の他のデバイスとネットワーク化されていないことを意味する。そのような例では、データは、USBドライブなどのモバイルストレージデバイスを使用して、または他の適切な手段によって、遠隔に配置されたコンピューティングデバイス104と信頼できるコンピューティングデバイス106との間で通信することができる。例では、オペレータは、遠隔に配置されたコンピューティングデバイス104と第1の信頼できるコンピューティングデバイス106との間でデータを往復させる。システム100Aは、様々なデバイスのうちの2つ以上を含み得る。
【0017】
ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、信頼できるコンピューティングデバイス106、および本明細書に記載の任意の他のコンピューティングデバイスのそれぞれは、携帯電話、タブレットコンピュータ、モバイルメディアデバイス、モバイルゲームデバイス、ラップトップコンピュータなどのモバイルコンピューティングデバイス、または車両ベースのコンピュータなど、または専用端末、公共端末、キオスク、サーバ、クラウドサーバ、もしくはデスクトップコンピュータなどの非モバイルコンピューティングデバイスのいずれかとして実装され得る。例では、ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、信頼できるコンピューティングデバイス106、および任意の他のコンピューティングデバイスのそれぞれは、少なくとも1つのメモリ、少なくとも1つのプロセッサ、少なくとも1つのオプションのネットワークインターフェース、少なくとも1つのオプションの表示デバイス、少なくとも1つのオプションの入力デバイス、および少なくとも1つのオプションの電源を含み得る。さらに、ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、信頼できるコンピューティングデバイス106、および任意の他のコンピューティングデバイスのそれぞれは、オプションで、複数の物理デバイスを使用して実装してもよい。
【0018】
システム100Aは、私有鍵(例えば、数字、文字、および/または他の文字の一意の文字列)などの秘密が2つ(または任意の適切な数)の鍵成分に分割されるマルチパーティ鍵分割方法論を使用し得る。例では、鍵成分は、多項式補間またはシャミア秘密分散を使用して生成され得る。マルチパーティ鍵分割方法論では、異なる信頼できるコンピューティングデバイス106のためのHD公開鍵を使用して、異なる各鍵成分が暗号化され得る。
【0019】
本明細書で使用される場合、「暗号化」という用語またはその変形は、不正アクセスを防ぐためにデータをコードに変換することを指す。暗号化は、データの暗号化と復号化の両方に単一の暗号化鍵を使用する対称暗号化や、またはデータを暗号化する公開鍵とデータを復号化する対応する私有鍵を使用する非対称暗号化など、様々な方法で実装できる。
【0020】
本明細書で使用される場合、「署名」という用語またはその変形は、鍵(または鍵成分)を使用して所望のトランザクションに関連するデータの追加または変更を指す。
【0021】
本明細書で使用される場合、別段の指定がない限り、「ユーザ」(または「顧客」)という用語は、ユーザコンピューティングデバイス102にアクセスして本明細書で説明される機能のいずれかを開始する人(または自動化された命令、例えばスクリプト)を指す。
【0022】
本明細書で使用される場合、「ウォレット」という用語は、暗号通貨などのデジタル資産を格納および/または管理するために使用されるソフトウェアプログラム、デジタルファイル、および/またはメモリを指す。本システムおよび方法は、暗号通貨を使用して本明細書で説明されているが、暗号化鍵(暗号通貨/トークンとは無関係)、またはバックアップが必要な他のデータを含むがこれらに限定されない、あらゆるタイプのデジタル資産とも互換性がある。例では、ウォレットは、1つ以上の私有鍵、1つ以上の私有鍵から導出される1つ以上の公開鍵、および/または1つ以上の私有鍵および/または1つ以上の公開鍵から導出される1つ以上のトランザクションアドレスによって定義され得る。例では、ウォレットは、1つ以上の私有アカウント鍵(およびオプションの対応する公開アカウント鍵)によって定義され得、その各々は、1つ以上の子および/または孫トランザクション鍵を有し得る。
【0023】
本明細書で使用される場合、「分散型台帳」という用語は、複数の相互接続されたノードに分散され、2以上のノードが台帳のコピーを格納する電子台帳を指す。例では、分散型台帳は、分散型台帳内に格納されたデータを検証するために1つ以上のブロックチェーンを実装し得る。ブロックチェーンは、そのブロックを検証する各ブロックにプルーフオブワークシール(ハッシュなど)が貼付された、一度に1つのブロックで構築される検証可能な永続的な台帳である。ブロックチェーンでは、前のブロックのハッシュが現在のブロックに含まれているため、再帰によって、現在のハッシュはまた、前のすべてのブロックを検証して元のジェネシスブロックに戻る。ブロックチェーンにハッシュを挿入すると、そのハッシュが永続的に記録され、そのブロックがチェーンに追加された時点でのハッシュデータのタイムスタンプ付きの存在証明を検証する公証人として機能する。将来のブロックは、チェーンに格納されているデータの操作またはチェーンの再編成からの保護層を追加するため、チェーンの初期のブロックに変更を加えることができないという追加の確実性を提供する。ブロックチェーンは分散型台帳の実装であり、公開(つまり、誰でも見ることが可能)または私有の場合がある。例示的なブロックチェーンには、ビットコインブロックチェーン、イーサリアムブロックチェーン、BigchainDB、Billon、Chain、Corda、Credit、Element、Monax、Fabric、HydraChain、Hyperledger、Multichain、Openchain、Quorum、Sawtooth、およびStellarが含まれるが、これらに限定されない。
【0024】
例では、ユーザコンピューティングデバイス102は、例えば、アンドロイド(登録商標)またはiOS(登録商標)オペレーティングシステムを使用するモバイルデバイスであり得る。顧客は、遠隔に配置されたコンピューティングデバイス104に対応するアプリケーションをユーザコンピューティングデバイス102にダウンロードし得る。アプリケーションは、ユーザコンピューティングデバイス102にユーザインターフェースを提示し得、顧客は、ユーザインターフェースを使用して入力を提供し得る。ユーザ入力に少なくとも部分的に基づいて、ユーザコンピューティングデバイス102のアプリケーションは、遠隔に配置されたコンピューティングデバイス104との間で命令および/または他のデータを送受信し得る。例では、ユーザコンピューティングデバイス102のアプリケーションは、遠隔に配置されたコンピューティングデバイス104とのみ直接通信し得る。いくつかの手動介入により、データは、例えば、以下に説明する携帯型ストレージデバイスを使用する個人によって、遠隔に配置されたコンピューティングデバイス104と信頼できるコンピューティングデバイス106との間で転送され得る。
【0025】
遠隔に配置されたコンピューティングデバイス104は、通貨を他の形態の通貨に変換する銀行または銀行以外の金融機関、例えば、マネーサービスビジネス(MSB)または別の機関もしくは会社によって操作され得る。例では、遠隔に配置されたコンピューティングデバイス104は、1つ以上のサーバで実装され得る。遠隔に配置されたコンピューティングデバイス104は、1つ以上の顧客ウォレットに関連付けられた鍵および/または暗号化されたシェアを格納するためのリポジトリ(例えば、データベースおよび/またはセキュアメモリ)を維持し得る。リポジトリは、遠隔に配置されたコンピューティングデバイス104の他の機能を実行する同じまたは異なるデバイスに物理的に配置され得る。遠隔に配置されたコンピューティングデバイス104の操作者は、適用される規則および規制の下で必要とされる送金業者ライセンスを持っている場合と持っていない場合がある。
【0026】
例では、遠隔に配置されたコンピューティングデバイス104はまた、エンドユーザ(すなわち、顧客)がビットコインなどの暗号通貨を購入するのを支援することができる。具体的には、遠隔に配置されたコンピューティングデバイス104は、顧客が通貨を他の形式の通貨に、例えば、不換通貨を暗号通貨(例えば、ビットコイン)に、暗号通貨(例えば、ビットコイン)を不換通貨に、あるタイプの暗号通貨を異なる形式の通貨(例えば、イーサリアム)などに変換することを可能にし得る。例では、遠隔に配置されたコンピューティングデバイス104はまた、顧客が暗号通貨を使用して取引できる、すなわち、暗号通貨と引き換えに商品および/またはサービスを購入および/または販売できるようにし得る。暗号通貨に加えて、遠隔に配置されたコンピューティングデバイス104は、他のタイプの資産、例えば、少なくとも1つの証券、少なくとも1つの債券、少なくとも1つの商品、少なくとも1つの不動産、少なくとも1つの個人資産、少なくとも1つのファンド、少なくとも1つの通貨ファンド、少なくとも1つの上場投資信託、少なくとも1つの投資信託、少なくとも1つのインデックスファンド、少なくとも1つの債券ファンド、1つの商品ファンド、または少なくとも1つの不動産ファンドを使用する購入および/または取引を可能にし得る。
【0027】
暗号通貨の購入および暗号通貨を使用するトランザクションを可能にするために、遠隔に配置されたコンピューティングデバイス104は、いくつかの例では資産交換所と通信することができる。資産交換所は、証券、商品、デリバティブ、および/または他の金融商品、例えば、Kraken、SFOX、Coinbase(登録商標)などが取引される市場(および/または市場を運営する事業体)である場合がある。例では、資産交換所は、暗号通貨、デジタル通貨、不換通貨、および/または商品通貨の市場として機能し得る。例では、本明細書で説明される資産交換所は、分散型台帳、例えば、ブロックチェーン上で正常に実行されたトランザクションを記録し得る。代替的、または追加的に、資産交換所は、少なくとも1つの証券、少なくとも1つの債券、少なくとも1つの商品、少なくとも1つの不動産、少なくとも1つの個人資産、少なくとも1つのファンド、少なくとも1つの通貨ファンド、少なくとも1つの上場投資信託、少なくとも1つの投資信託、少なくとも1つのインデックスファンド、少なくとも1つの債券ファンド、少なくとも1つの商品ファンド、または少なくとも1つの不動産ファンドを取引するように構成され得る。資産交換所は、1つ以上のコンピューティングデバイスを使用して実装され得る。
【0028】
信頼できるコンピューティングデバイス106は、金融機関または他の機関もしくは会社であり得る。例では、信頼できるコンピューティングデバイス106は、例えば、私有鍵を保持することが信頼されている1つ以上のコンピューティングデバイスを使用して実装され得る。例では、信頼できるコンピューティングデバイス106は、信用組合または銀行によって所有および操作され得る。信頼できるコンピューティングデバイス106は、1つ以上の顧客ウォレットに関連付けられた鍵を格納するための鍵リポジトリ(例えば、データベースおよび/またはセキュアメモリ)を維持し得る。鍵リポジトリは、信頼できるコンピューティングデバイス106の他の機能を実行する同じまたは異なるデバイスに物理的に配置され得る。例では、信頼できるコンピューティングデバイス106の鍵リポジトリに格納された鍵(または鍵成分)は、緊急時に、例えば、ユーザコンピューティングデバイス102(およびそこに格納された鍵)が紛失、破損、アップグレードまたはハードリセット/再フォーマットされた時に使用され得る。オプションとして、信頼できるコンピューティングデバイス106は、適用される規則および規制の下で必要とされる送金業者ライセンスを有する場合がある。
【0029】
システム100A内のデバイスのそれぞれは、少なくとも1つのネットワーク108を使用して、1つ以上の他のデバイスに通信可能に結合され得る。例では、少なくとも1つのネットワーク108は、少なくとも1つの有線ネットワークおよび/または少なくとも1つの無線ネットワークを含む。例では、有線ネットワークと無線ネットワークの任意の組み合わせを使用して、ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、および信頼できるコンピューティングデバイス106を互いに結合することができる。例では、少なくとも1つのネットワーク108は、少なくとも1つのローカルエリアネットワーク(LAN)、少なくとも1つのワイドエリアネットワーク(WAN)、またはインターネットのうちの少なくとも1つを含む。例では、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットの任意の組み合わせを、ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104を互いに結合するための少なくとも1つのネットワーク108として使用することができる。他の実施形態では、信頼できるコンピューティングデバイス106はまた、少なくとも1つのネットワーク108を介して、遠隔に配置されたコンピューティングデバイス104および/またはユーザコンピューティングデバイス102に接続することができる。
【0030】
例では、ユーザコンピューティングデバイス102は、ネットワーク108を介して遠隔に配置されたコンピューティングデバイス104と通信するためのネットワークインターフェース(ネットワークインターフェース706など)を含む。信頼できるコンピューティングデバイス106がエアギャップされている例では、遠隔に配置されたコンピューティングデバイス104は、信頼できるコンピューティングデバイス106に転送およびインターフェースできるモバイルストレージデバイスにデータを提供するための取り外し可能なストレージインターフェースを含み、ここで、信頼できるコンピューティングデバイス106はまた、モバイルストレージインターフェースを有する。データはまた、信頼できるコンピューティングデバイス106から逆に遠隔に配置されたコンピューティングデバイス104にモバイルストレージデバイスを使用して提供することもできる。他の例では、データは、例えば、QRコード、ネットワーク、手動入力などを介して、異なる方法で、遠隔に配置されたコンピューティングデバイス104と信頼できるコンピューティングデバイス106との間で転送することができる。
【0031】
例では、ユーザコンピューティングデバイス102は、秘密110を複数のシェア112に分ける。例では、複数のシェアは2個である。例では、ユーザコンピューティングデバイス102は、多項式補間またはシャミア秘密分散を使用して、秘密を複数のシェア112に分ける。例では、シェアはシャミア秘密シェアである。例では、ユーザコンピューティングデバイス102は、異なる公開暗号化鍵118に基づいてシェア112のそれぞれを暗号化するように構成される。例では、各公開暗号化鍵118は、異なる信頼できるコンピューティングデバイス106における異なるHD私有復号化鍵114に対応するHD公開暗号化鍵116から導出される。各公開暗号化鍵118は、対応する私有復号化鍵(
図1Aには示されていない)との暗号化鍵ペアの一部であり、ここで、私有復号化鍵のみが、対応する公開暗号化鍵118を使用して暗号化されたデータを復号化できる。
【0032】
例では、第1のHD私有復号化鍵114-1に対応する第1のHD公開暗号化鍵116-1は、遠隔に配置されたコンピューティングデバイス104に格納され、ユーザコンピューティングデバイス102の特定のユーザ用の第1の公開暗号化鍵118-1を導出するために使用することができる。この第1の公開暗号化鍵118-1は、第1のシェア112-1の暗号化に使用されるために、ユーザコンピューティングデバイス102に提供される。
【0033】
例では、第2のHD私有復号化鍵114-2に対応する第2のHD公開暗号化鍵116-2は、遠隔に配置されたコンピューティングデバイス104に格納され、ユーザコンピューティングデバイス102の特定のユーザ用の第2の公開暗号化鍵118-2を導出するために使用することができる。この第2の公開暗号化鍵118-2は、第2のシェア112-2の暗号化に使用されるために、ユーザコンピューティングデバイス102に提供される。例では、任意の数の追加の公開暗号化鍵118をユーザコンピューティングデバイス102に提供して、同様の方法論を使用して追加のシェア112の暗号化に使用することができる。
【0034】
例では、各シェア112のシェアハッシュ122もまた、秘密110の分割に続いて作成および格納される。例では、ユーザコンピューティングデバイス102は、入力(例えば、シェア112)を受け取り、シェアハッシュ122(文字列)を返す暗号化ハッシュ関数を使用し得る。ハッシュ関数への入力(例えば、シェア112)は、出力(シェアハッシュ122)に対して一意に決定論的である。換言すれば、ハッシュ関数は、1つの特定の入力(例えば、シェア112)から特定の値のシェアハッシュ122のみを生成し、入力(例えば、シェア112)への変更は、異なるシェアハッシュ122を生成する。使用できるハッシュ関数の例には、SHA-1、SHA-256、SHA-512、MD4、MD5、RIPEMD160などが含まれるが、これらに限定されない。
【0035】
オプションで、私有署名鍵128はまた、シェア112の暗号化において使用される。例では、私有署名鍵128は、ユーザコンピューティングデバイス102によって生成され、そこに格納される。例では、私有署名鍵128は、公開署名鍵に対応する(
図1Aには示されていない)。例では、ユーザコンピューティングデバイス102は、楕円曲線ディフィーヘルマン(ECDH)演算を使用してシェア112を暗号化する。ECDHを使用する例では、各公開暗号化鍵118は、それぞれのECDH鍵135を出力するECDH演算への私有署名鍵128とともに提供される。次に、それぞれのAES鍵136が、それぞれ(1)それぞれのECDH鍵135、(2)公開署名鍵130、および(3)それぞれの公開暗号化鍵118のハッシュとして生成される。各AES鍵136は、シェア112を用いて対称的に暗号化されて、対応する暗号化されたシェア120にされる。したがって、異なるECDH鍵135、AES鍵136、および暗号化されたシェア120が、秘密110の各シェア112に対して生成され得る。
【0036】
例では、私有署名鍵128はすべてのシェア112に共通であり、それぞれの各公開暗号化鍵118はそれぞれのシェア112に固有である。公開暗号化鍵118は、私有署名鍵128と同じであっても異なっていてもよい。ECDHを使用する利点は、シェア112に個別に署名する必要がなく、両方の当事者が私有鍵を持っているという証拠を依然として提供する。あるいは、ECDHが使用されない例では、各シェア112は、暗号化されたシェア120に私有署名鍵128で引き続き署名するかどうかにかかわらず、それぞれの公開暗号化鍵118で暗号化され得る(暗号化されたシェア120を生成するため)。
【0037】
例では、暗号化されたシェア120は、後で回復中に使用されるストレージのために、遠隔に配置されたコンピューティングデバイス104に提供される。例では、対応するシェアハッシュ122は、遠隔に配置されたコンピューティングデバイス104にも提供される。例では、ユーザコンピューティングデバイス102は、認証公開鍵および認証私有鍵(図示せず)を含む認証鍵ペアを生成し得る。例では、ユーザコンピューティングデバイス102は、認証私有鍵を使用して遠隔に配置されたコンピューティングデバイス104に送信される暗号化されたシェア120および/またはシェアハッシュ122に署名し得る。認証公開鍵はまた、暗号化されたシェア120および/またはシェアハッシュ122のソースを検証するために、遠隔に配置されたコンピューティングデバイス104に送信され得る。
【0038】
例では、遠隔に配置されたコンピューティングデバイス104は、暗号化されたシェア120および/または対応するシェアハッシュ122、例えば、Google Firestore/Firebaseを格納するためのクラウドベースのファイルストレージリポジトリを含む(またはそれに通信可能に結合される)。例では、遠隔に配置されたコンピューティングデバイス104は、クラウドベースのファイルストレージリポジトリからデータを格納および/または検索し得る。例では、コンピューティングデバイス104および/またはシェアハッシュ122は、遠隔に配置されたコンピューティングデバイス104に冗長的に格納され、および/またはバックアップコピーは、他のデバイスに格納される。
【0039】
図1Bは、暗号化された秘密シェア120を使用する秘密110の回復のためのシステム例100Bを示すブロック図である。例では、システム100Bは、同じおよび/または同様の方法で接続されたシステム100Aと同じおよび/または同様の構成要素を含む。例では、システム100Bは、ユーザコンピューティングデバイス102(鍵/秘密を回復する必要がある)、遠隔に配置されたコンピューティングデバイス104、および信頼できるコンピューティングデバイス106を含む。
【0040】
例では、秘密110がユーザコンピューティングデバイス102で回復される必要がある場合、ユーザコンピューティングデバイス102は、回復されたデータの暗号化に使用される回復私有復号化鍵124および回復公開暗号化鍵126を含む回復暗号化鍵ペアを作成する。回復公開暗号化鍵126は、遠隔に配置されたコンピューティングデバイス104に提供される(およびオプションでそこに格納される)。ユーザコンピューティングデバイス102のユーザが秘密110を回復するための許可を有することを検証するために、ある種の検証が行われる。これは、ネットワーク108を介したユーザコンピューティングデバイス102から遠隔に配置されたコンピューティングデバイス104へのデータ転送、および/またはユーザとシステム100Bのオペレータの顧客サービス担当者との間の他の通信(例えば、SMS、電話の呼び出しなど)を介したデータ転送で行われ得る。ユーザが検証され、遠隔に配置されたコンピューティングデバイス104で回復公開暗号化鍵126が受信されると、以前に格納された暗号化されたシェア120、回復公開暗号化鍵126、および顧客識別子(顧客番号など)は、以前に格納された暗号化されたシェア120に対応する私有復号化鍵114を含む信頼されたコンピューティングデバイス106のそれぞれに提供される。例では、第1の暗号化されたシェア120-1、回復公開暗号化鍵126、オプションの公開署名鍵130、および顧客識別子が、第1の信頼できるコンピューティングデバイス106-1に提供される。例では、第2の暗号化されたシェア120-2、回復公開暗号化鍵126、オプションの公開署名鍵130、および顧客識別子が、第2の信頼できるコンピューティングデバイス106-2に提供される。例では、このデータは、USBドライブなどの1つ以上のモバイルストレージデバイスを使用して、遠隔に配置されたコンピューティングデバイス104から信頼できるコンピューティングデバイス106に提供される。
【0041】
ECDHが使用される場合、各信頼できるコンピューティングデバイス106はまた、回復されたデータの暗号化に使用される回復私有署名鍵132および回復公開署名鍵134を含む回復署名鍵ペアを生成し得る。ECDHが使用される場合、回復私有署名鍵132は、それぞれの信頼できるコンピューティングデバイス106に格納され得、一方、回復公開署名鍵134は、遠隔に配置されたコンピューティングデバイス104に転送され、次いで、ユーザコンピューティングデバイス102に通信され得る。
【0042】
例では、各信頼できるコンピューティングデバイス106は、対応するHD私有復号化鍵114から導出された異なる私有復号化鍵140と、HD私有復号化鍵114のインデックスとしての顧客識別子に基づいて、対応する暗号化されたシェア120を復号化するように構成される。例では、各私有復号化鍵140は、公開暗号化鍵118に対応する。ECDHを使用して暗号化されたシェア120を復号化するために、信頼できるコンピューティングデバイス106は、それぞれの私有復号化鍵140および公開署名鍵130(特定のユーザコンピューティングデバイス102用)を、それぞれのECDH鍵135を出力するECDH演算に提供する。例では、たとえ(1)ECDH鍵135が、公開暗号化鍵118および私有署名鍵128を使用してユーザコンピューティングデバイス102で生成されたとしても、(2)ECDH鍵135は、私有復号化鍵140および公開署名鍵130を使用して、信頼できるコンピューティングデバイス106で生成される。ユーザコンピューティングデバイス102および信頼できるコンピューティングデバイス106における対応するECDH鍵135は同一である。次に、それぞれのAES鍵136が、それぞれ(1)それぞれのECDH鍵135、(2)公開署名鍵130、および(3)それぞれの公開暗号化鍵118のハッシュとして生成される。例では、ユーザコンピューティングデバイス102および信頼できるコンピューティングデバイス106上で生成された対応するAES鍵136は(たとえそれらが類似しているが同一ではないプロセスで生成されたとしても)同一である。対応するAES鍵136と組み合わされた暗号化された各シェア120は、それぞれの信頼できるコンピューティングデバイス106において、対応するシェア112に対称的に復号化される。
【0043】
例えば、第1の信頼できるコンピューティングデバイス106-1は、第1の私有復号化鍵140(顧客のインデックスにある第1のHD私有復号化鍵114-1から導出される)および公開署名鍵130(例えば、遠隔に配置されたコンピューティングデバイス104を介してユーザコンピューティングデバイス102から受信される)をECDH演算に入力して、第1のECDH鍵135-1を生成することができ、これは、いくつかの構成においてユーザコンピューティングデバイス102によって生成された第1のECDH鍵135-1と同一である。第1の信頼できるコンピューティングデバイス106-1は、(1)第1のECDH鍵135-1、(2)公開署名鍵130、(3)第1の公開暗号化鍵118-1のハッシュとして第1のAES鍵136-1を生成することができる。第1の暗号化されたシェア120-1は、第1のAES鍵136-1と組み合わされて、第1の信頼できるコンピューティングデバイス106-1で第1のシェア112-1に対称的に復号化される(第1の信頼できるコンピューティングデバイス106-1には示されていない)。
【0044】
同様に、第2の信頼できるコンピューティングデバイス106-2は、第2の私有復号化鍵140(顧客のインデックスにある第2のHD私有復号化鍵114-2から導出される)および公開署名鍵130(例えば、遠隔に配置されたコンピューティングデバイス104を介してユーザコンピューティングデバイス102から受信される)を使用して、第2のECDH鍵135-2を生成することができ、これは、いくつかの構成においてユーザコンピューティングデバイス102によって生成された第2のECDH鍵135-2と同一である。第2の信頼できるコンピューティングデバイス106-2は、(1)第2のECDH鍵135-2、(2)公開署名鍵130、および(3)第2の公開暗号化鍵118-2のハッシュとして第2のAES鍵136-2を生成することができる。第2の暗号化されたシェア120-2は、第2のAES鍵136-2と組み合わされて、第2の信頼できるコンピューティングデバイス106-2で対称的に第2のシェア112-2に復号化される(第2の信頼できるコンピューティングデバイス106-2には示されていない)。
【0045】
あるいは、ECDHを使用しない例では、各信頼できるコンピューティングデバイス106は、異なる私有復号化鍵140を使用してそれぞれの暗号化されたシェア120を復号化し得、例えば、ECDH演算なしで、暗号化されていないシェア112のセットを結果的にもたらす。
【0046】
例では、現在暗号化されていないシェア112をハッシュすることができ、これらの回復ハッシュ(図示せず)は、データが同一であることを保証するために以前に作成され、信頼できるコンピューティングデバイス106に提供された元のシェアハッシュ122と比較される。
【0047】
次に、現在暗号化されていない各シェア112は、それぞれの回復公開暗号化鍵126に基づいて、それぞれの信頼できるコンピューティングデバイス106で、回復暗号化されたシェア142に再暗号化される。例では、同じ回復公開暗号化鍵126を各信頼できるコンピューティングデバイス106に提供して使用することができるが、他の例では、異なる回復公開暗号化鍵126を(ユーザコンピューティングデバイス102に格納された異なる回復私有復号化鍵124とともに)使うことができる。
【0048】
ECDHを使用する例では、回復公開暗号化鍵126および回復私有署名鍵132が、回復ECDH鍵137を出力するECDH演算に提供される。次に、それぞれの回復AES鍵138が、それぞれ(1)それぞれの回復ECDH鍵137、(2)それぞれの回復公開署名鍵134、および(3)回復公開暗号化鍵126のハッシュとして生成される。各回復AES鍵138は、シェア112を用いて対応する回復暗号化されたシェア142に対称的に暗号化される。したがって、異なる回復ECDH鍵137、回復AES鍵138、および回復暗号化されたシェア142は、各信頼できるコンピューティングデバイス106で生成され得る。
【0049】
あるいは、ECDHが使用されない例では、各シェア112は、回復私有署名鍵132で回復暗号化されたシェアに引き続き署名するかどうかにかかわらず、回復公開暗号化鍵126で暗号化され得る(回復暗号化されたシェア142を生成するため)。
【0050】
例では、再暗号化された回復暗号化されたシェア142は、遠隔に配置されたコンピューティングデバイス104(モバイルストレージ上など)に転送し戻され、ユーザコンピューティングデバイス102に(ネットワーク108などを介して)戻される。例では、(それぞれの秘密110の回復を求める)複数のユーザのデータは、信頼できるコンピューティングデバイス106から遠隔に配置されたコンピューティングデバイス104に単一のバッチで(モバイルストレージデバイスを介して)転送される。次に、ユーザコンピューティングデバイス102は、回復私有復号化鍵124に基づいて回復暗号化されたシェア142を復号化し、秘密110を復元することができる。
【0051】
ECDHを使用して回復暗号化されたシェア142を復号化するために、ユーザコンピューティングデバイス102は、回復私有復号化鍵124およびそれぞれの回復公開署名鍵134(特定の信頼できるコンピューティングデバイス106用)をECDH演算に提供し、これは、それぞれの回復ECDH鍵137を出力する。いくつかの構成では、ユーザコンピューティングデバイス102で生成された回復ECDH鍵137は、類似しているが同一ではないプロセスで生成されたとしても、信頼できるコンピューティングデバイス106で生成された対応する回復ECDH鍵137と同一である。例えば、ユーザコンピューティングデバイス102は、回復私有復号化鍵124および第1の回復公開署名鍵134-1をECDH演算に入力して、第1の回復ECDH鍵137-1を生成することができ、これは、第1の回復暗号化されたシェア142-1を再暗号化するために使用される第1の回復ECDH鍵137-1と同一である。同様に、ユーザコンピューティングデバイス102は、回復私有復号化鍵124および第2の回復公開署名鍵134-2をECDH演算に入力して、第2の回復ECDH鍵137-2を生成することができ、これは、第2の回復暗号化されたシェア142-2を再暗号化するために使用される第2の回復ECDH鍵137-2と同一である。次に、それぞれの回復AES鍵138が、それぞれ(1)それぞれの回復ECDH鍵137、(2)それぞれの回復公開署名鍵134、および(3)回復公開暗号化鍵126のハッシュとして生成される。例では、ユーザコンピューティングデバイス102および信頼できるコンピューティングデバイス106上で生成された対応する回復AES鍵138は、それらが類似しているが同一ではないプロセスで生成されたとしても、同一である。各回復暗号化されたシェア142は、対応する回復AES鍵138と組み合わされて、ユーザコンピューティングデバイスで対応するシェア112に対称的に復号化される。
【0052】
あるいは、ECDHを使用しない例では、ユーザコンピューティングデバイス102は、異なる回復私有復号化鍵124を使用してそれぞれの回復暗号化されたシェア142を復号化し得、例えば、ECDH演算なしで、暗号化されていないシェア112のセットを結果的にもたらす。次に、ECDHが使用されるか否かにかかわらず、暗号化されていないシェア112を組み合わせて、秘密110を再構成することができる。
【0053】
ユーザコンピューティングデバイス102の第1のAES鍵136-1および第2のAES鍵136-2は、それぞれ、(第1の信頼できるコンピューティングデバイス106-1における)第1のAES鍵136-1および(第1の信頼できるコンピューティングデバイス106-2における)第2のAES鍵136-2と同一であることに留意されたい。さらに、ユーザコンピューティングデバイス102における第1の回復AES鍵138-1および第2の回復AES鍵138-2は、それぞれ、(第1の信頼できるコンピューティングデバイス106-1における)第1の回復AES鍵138-1および(第1の信頼できるコンピューティングデバイス106-2における)第2の回復AES鍵138-2と同一である。しかしながら、いくつかの例では、第1のAES鍵136-1は、第1の回復AES鍵138-1と同一ではなく、第2のAES鍵136-2も第2の回復AES鍵138-2と同一ではない。
【0054】
図2Aは、顧客ウォレットを実装するための顧客デバイス上のノードツリー例を示すブロック図である。例では、ノードツリー200Aは、ビットコイン改善提案32(BIP32)の一部および/またはビットコイン改善提案44(BIP44)の一部に従って、顧客のために階層的決定論的(HD)ウォレットを実装し得る。BIP32(https://github.com/bitcoin/bips/blob/master/bip-0032.mediawikiで入手可能)およびBIP44(https://github.com/bitcoin/bips/blob/master/bip-0044.mediawikiで入手可能)は参照により本明細書に組み込まれる。
【0055】
ノードツリー200Aは、ユーザコンピューティングデバイス102上に存在し得、レベルの階層を含み得る。具体的には、ノードツリー200Aは、第1のレベル(L1)に私有ユーザ鍵202および私有アカウント鍵203を含み得る。私有ユーザ鍵202は、顧客に固有の数字、文字、および/または他の文字の一意の文字列であり得る。私有ユーザ鍵202は、暗号通貨のタイプにさらに固有であり得、例えば、ユーザコンピューティングデバイス102は、顧客ウォレットに格納された暗号通貨のタイプごとに異なる私有ユーザ鍵202を含み得る。例では、ユーザコンピューティングデバイス102は、ビットコイン、イーサリアム、ライトコインなどのそれぞれについて別個の私有ユーザ鍵202を格納し得る。顧客ウォレットは、私有ユーザ鍵202および/または他の私有アカウント鍵(図示されていない)によって定義され得る。
【0056】
オプションで、私有ユーザ鍵202は、シード/ニーモニックフレーズ201、例えば、ビットコイン改善提案39(BIP39)(https://github.com/bitcoin/bips/blob/master/bip-0039.mediawikiで利用可能であり、参照により本明細書に組み込まれる)に従うニーモニックコードまたはセンテンスから導出されたシードに基づいて、ユーザコンピューティングデバイス102で生成され得る。あるいは、私有ユーザ鍵202は、ランダムに、手動で、または他の手段によって、ユーザコンピューティングデバイス102で生成され得る。
【0057】
私有ユーザ鍵202は、私有アカウント鍵203を導出するために使用することができ、すなわち、私有ユーザ鍵202は、私有アカウント鍵203を決定することができる。例では、ユーザコンピューティングデバイス102は、ハッシュ関数、例えば、SHA256関数を使用して、私有ユーザ鍵202から私有アカウント鍵203を導出することができる。しかしながら、私有アカウント鍵203は、典型的には(および好ましくは)私有ユーザ鍵202を決定するものではなく、例えば、私有アカウント鍵203は、私有ユーザ鍵202を生成するために使用されない場合がある。
【0058】
私有ユーザ鍵202および私有アカウント鍵203は、「拡張」鍵であり得る。これは、チェーンコードが鍵文字列に追加されることを意味する。例では、私有ユーザ鍵202および私有アカウント鍵203のそれぞれは、追加の256ビットチェーンコードを伴う256ビット長であり得、すなわち、拡張私有ユーザ鍵202および拡張私有アカウント鍵203は、それぞれ512ビット長であり得る。拡張鍵を使用して子鍵を導出させることはできるが、非拡張(または「強化」)鍵を使用して子鍵を導出させることはできない。それらは拡張鍵であるため、私有ユーザ鍵202および私有アカウント鍵203をユーザコンピューティングデバイス102から遠隔に配置されたコンピューティングデバイス104または信頼できるコンピューティングデバイス106に送信することを回避することが好ましい場合がある。
【0059】
私有ユーザ鍵202は、ノードツリー200Aの第2のレベル(L2)に1つ以上のオプションの子私有アカウント/コイン鍵204A~Bを有することができる。私有アカウント/コイン鍵204は、例えば、BIP32に記載されているように、子鍵導出(CKD)関数を使用して私有ユーザ鍵202から導出され得る。各オプションの子私有アカウント/コイン鍵204A~Bは、ノードツリー200Aの第3のレベル(L3)に1つ以上のオプションの子私有トランザクション鍵206A~Bを有し得る。私有トランザクション鍵206は、例えば、BIP32に記載されているように、子鍵導出(CKD)関数を使用して私有ユーザ鍵202から導出され得る。私有トランザクション鍵206は、非拡張(すなわち、強化)鍵であり得、さらなる子鍵を導出するために使用され得ない。
【0060】
各私有アカウント/コイン鍵204および各私有トランザクション鍵206は、例えば、0~(232-1)の範囲の関連するインデックスを有し得る。インデックスは、ノードツリー200Aをナビゲートするために使用することができ、すなわち、インデックスは、対応する特定の私有アカウント/コイン鍵204および/または私有トランザクション鍵206の場所を一意に識別することができる。したがって、インデックスは、私有アカウント/コイン鍵204および/または私有トランザクション鍵206を識別するための効率的な方法として、デバイス間で送信され得る。
【0061】
同様に、私有アカウント鍵203は、ノードツリー200Aの第2のレベル(L2)に1つ以上のオプションの子公開アカウント/コイン鍵205A~Bを有することができる。公開アカウント/コイン鍵205は、例えば、BIP32に記載されているように、または関連する私有アカウント/コイン鍵204から導出されるように、子鍵導出(CKD)関数を使用して公開ユーザ鍵203から導出され得る。すなわち、公開アカウント/コイン鍵205Aは、私有アカウント/コイン鍵204Aから導出され得、公開アカウント/コイン鍵205Bは、私有アカウント/コイン鍵205Bから導出され得る。各オプションの子私有アカウント/コイン鍵204A~Bは、ノードツリー200Aの第3のレベル(L3)に1つ以上のオプションの子私有トランザクション鍵206A~Bを有し得る。私有トランザクション鍵206は、例えば、BIP32に記載されているように、または関連する私有トランザクション鍵206から導出されるように、子鍵導出(CKD)関数を使用して私有ユーザ鍵202から導出され得る。すなわち、公開トランザクション鍵207Aは、私有トランザクション鍵206Aから導出され得、公開トランザクション鍵207Bは、私有トランザクション鍵206Bから導出され得る。公開トランザクション鍵207は、非拡張(つまり、強化)鍵であり得、さらに子鍵を導出するために使用され得ない。
【0062】
各公開アカウント/コイン鍵205および各公開トランザクション鍵207は、例えば、0~(232-1)の範囲の関連するインデックスを有することができる。インデックスは、ノードツリー200Aをナビゲートするために使用することができ、すなわち、インデックスは、対応する特定の公開アカウント/コイン鍵205および/または私有トランザクション鍵207の場所を一意に識別することができる。したがって、インデックスは、公開アカウント/コイン鍵205および/または公開トランザクション鍵207を識別するための効率的な方法としてデバイス間で送信され得る。
【0063】
例では、ノードツリー200Aは、多くの異なるノード、特に多くの異なる(例えば、数百、数千、数百万、または数十億の)私有トランザクション鍵206を含み得、例えば、新しい私有トランザクション鍵206は、暗号通貨が顧客ウォレットに受け取られるすべてのトランザクション、および/または既存のトランザクションアドレス内のすべての暗号通貨より少ない暗号通貨が転送されるすべてのトランザクションに対して生成され得る。さらに、ノードツリー200Aは、多くの(例えば、数百、数千、数百万、または数十億の)公開トランザクション鍵207、例えば、ノードツリー200A内の各私有トランザクション鍵206に対応するものを含み得る。
【0064】
2つの階層レベル(L1~L3)で示されているが、ノードツリー200Aは、より多くの階層レベルを含み得る。例では、変更鍵レベル(図示せず)が、L1とL2の間に位置付けられ得る。
【0065】
図2Bは、秘密シェアの暗号化に使用される暗号化鍵の階層的決定論的(HD)構造を実装するためのサードパーティシステムの別のノードツリー例を示すブロック図である。例では、ノードツリー200Bは、BIP32の部分および/またはBIP44の部分に従って1人以上の顧客のために1つ以上のHDウォレットを実装することができる。
【0066】
ノードツリー200Bは、(例えば、リポジトリ内に)遠隔に配置されたコンピューティングデバイス104に格納され得、レベルの階層を含み得る。しかしながら、ユーザコンピューティングデバイス102のノードツリー200Aとは異なり、ノードツリー200Bは、トランザクションレベルに行く必要はなく、暗号化鍵レベルをシェアするだけでよい。具体的には、ノードツリー200Bは、マスター私有鍵222(シード221によって生成され得る)および第1のレベル(L0)の対応するマスター公開鍵223を含む。具体的には、信頼できるコンピューティングデバイス106はそれぞれ、1つ以上の私有シェア暗号化鍵224A~Bを導出するために使用される単一の私有シェア暗号化鍵224を格納することができる。言い換えれば、私有シェア暗号化鍵224は、遠隔に配置されたコンピューティングデバイス104に格納されたすべての私有シェア暗号化鍵224の親私有鍵であり得る。オプションで、私有シェア暗号化鍵224は、シード221、例えば、BIP39に従うニーモニックコードまたはセンテンスから導出されたシードに基づいて、遠隔に配置されたコンピューティングデバイス104で生成され得る。あるいは、私有シェア暗号化鍵224は、遠隔に配置されたコンピューティングデバイス104で、ランダムに、手動で、または他の手段によって生成され得る。
【0067】
私有シェア暗号化鍵224は、マスター公開鍵223を導出するために使用され得、これは、遠隔に配置されたコンピューティングデバイス104上のすべての公開シェア暗号化鍵225A~Bの親公開鍵であり得る。私有シェア暗号化鍵224およびマスター公開鍵223は、拡張鍵であり得る。したがって、遠隔に配置されたコンピューティングデバイス104からの私有シェア暗号化鍵224およびマスター公開鍵223の送信を回避することが好ましい場合がある。
【0068】
例では、第1のシェア暗号化鍵224Aおよび第1のシェア暗号化鍵225Aは、第1の顧客のために維持され得、一方で、第2のシェア暗号化鍵224Bおよび第2のシェア暗号化鍵225Bは、第2の顧客のために維持され得る。あるいは、第1のシェア暗号化鍵224Aおよび第1のシェア暗号化鍵225Aは、顧客ウォレットに保持された第1のタイプの暗号通貨のために維持され得、一方で、第2のシェア暗号化鍵224Bおよび第2のシェア暗号化鍵225Bは、同じ顧客ウォレットに保持された第2のタイプの暗号通貨のために維持され得る。第1のタイプと第2のタイプは、ビットコイン、イーサリアム、ライトコインなどの中から選択され得る。
【0069】
例では、ノードツリー200Bは、暗号通貨タイプごとに顧客ごとにシェア暗号化鍵224およびシェア暗号化鍵225を含み得る。すなわち、10人の顧客がそれぞれ、遠隔に配置されたコンピューティングデバイス104で3つの異なるタイプの暗号通貨を保持している場合、ノードツリー200Bは、30(すなわち、10x3)個の私有シェア暗号化鍵224および30個の公開シェア暗号化鍵225を含み得る。それらは拡張鍵であるため、私有シェア暗号化鍵224および公開シェア暗号化鍵225を、遠隔に配置されたコンピューティングデバイス104からユーザコンピューティングデバイス102または信頼できるコンピューティングデバイス106に送信することを回避することが好ましい場合がある。
【0070】
ノードツリー200Bの第2のレベル(L1)の私有シェア暗号化鍵224A~Bおよび公開シェア暗号化鍵225A~Bは、様々な顧客デバイス102および信頼できるコンピューティングデバイス106に格納された私有アカウント鍵および公開アカウント鍵に対応し得る(ただし、同一ではない)。
【0071】
2つの階層レベル(L0~L1)で示されているが、ノードツリー200Bは、より多くの階層レベルを含んでもよい。
【0072】
図3A~3Bは、秘密の秘密シェアの生成および暗号化のためのシステム例を示すブロック図である。
図3Aは、私有ユーザ鍵202自体の秘密シェアの生成および暗号化のためのシステム例を示すブロック図であり、一方で、
図3Bは、私有ユーザ鍵202を復元するために使用できるシード/ニーモニックフレーズ201の秘密シェアの生成および暗号化のための別のシステム例を示すブロック図である。例では、秘密(
図3Aの私有ユーザ鍵202または
図3Bのシード/ニーモニックフレーズ201など)が、秘密の複数のシャミアシェア304(第1のシャミアシェア304-1、第2のシャミアシェア304-2、および任意の数のオプションのシャミアシェア304からオプションのシャミアシェア304-A)を生成するシャミアシェアジェネレータ302(または他のシェアジェネレータ)に提供され、ここで、複数のシャミアシェア304は、秘密を再生成するために使用することができる。例では、M個のシャミアシェア304のうちのM個、例えば、2個のうちの2個、3個のうちの3個、4個のうちの4個、5個のうちの5個、10個のうちの10個などが、秘密を再生成するために必要である。他の例では、N個のシャミアシェアのうちのM個、例えば、3個のうちの2個、4個のうちの3個、5個のうちの3個などが、秘密を生成するために必要である。オプションで、メタデータ148は、シェア112の生成中に使用され、秘密を再構築するために必要なシェア112の数を示す。
【0073】
ユーザコンピューティングデバイス102でのECDHベースの暗号化例では、各公開シェア暗号化鍵225(例えば、公開暗号化鍵118)は、ECDH演算に対してシャミア私有署名鍵312(例えば、ユーザコンピューティングデバイス102の私有署名鍵128)を備えており、これは、それぞれのECDH鍵135を出力する(
図3A~3Bには示されていない)。次に、それぞれのAES鍵136(
図3A~3Bには示されていない)が、それぞれ(1)それぞれのECDH鍵135、(2)シャミア公開署名鍵310(例えば、ユーザコンピューティングデバイス102の公開署名鍵130)、および(3)それぞれの公開シェア暗号化鍵225(例えば、公開暗号化鍵118)のハッシュとして生成される。各AES鍵136は、シャミアシェア304(例えば、シェア112)を用いて対称的に暗号化されて、それぞれの暗号化されたシャミアシェア308(例えば、暗号化されたシェア120)にされる。
【0074】
信頼できるコンピューティングデバイス106でのECDHベースの暗号化例では、各公開シェア暗号化鍵225(例えば、回復公開暗号化鍵126)は、ECDH演算に対してシャミア私有署名鍵312(例えば、信頼できるコンピューティングデバイス106の回復私有署名鍵132)を備えており、これは、それぞれの回復ECDH鍵137(
図3A~3Bには示されていない)を出力する。次に、それぞれの回復AES鍵138(
図3A~3Bには示されていない)が、それぞれ(1)それぞれの回復ECDH鍵137、(2)シャミア公開署名鍵310(例えば、信頼できるコンピューティングデバイス106の回復公開署名鍵126)、および(3)それぞれの公開シェア暗号化鍵225(例えば、回復公開暗号化鍵126)のハッシュとして生成される。各回復AES鍵138は、シャミアシェア304(例えば、シェア112)を用いて対称的に暗号化されて、それぞれの暗号化されたシャミアシェア308(例えば、回復暗号化されたシェア142)にされる。
【0075】
ECDHを使用しない例では、各シャミアシェア304は(シャミアシェア暗号化装置306で)異なる公開シェア暗号化鍵225を使用して暗号化され、暗号化されたシャミアシェア308のセット(第1の暗号化されたシャミアシェア308-1、第2の暗号化されたシャミアシェア308-2、オプションの暗号化されたシャミアシェア308-Aを介した任意の数のオプションの暗号化されたシャミアシェア308含む)が結果的にもたらされる。シャミアシェア暗号化装置306は、ECDH以外の例ではECDHを実装しないが、暗号化されたシャミアシェア308は、オプションで、その後、シャミア私有署名鍵312を使用して署名され得る。
【0076】
図4は、秘密110の秘密シェア112を生成および暗号化するための方法例400を示す流れ図である。方法400は、ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、および/または信頼できるコンピューティングデバイス106によって実行され得る。ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、および/または信頼できるコンピューティングデバイス106のそれぞれは、少なくとも1つのメモリに格納された命令を実行する少なくとも1つのプロセッサを実装することができる。
【0077】
方法400は、ブロック402で始まり、少なくとも1つの遠隔に配置されたコンピューティングデバイス104からユーザコンピューティングデバイス102に複数の公開暗号化鍵118を通信する。この通信は、少なくとも1つのネットワーク108を介して複数の公開暗号化鍵118を送信する、遠隔に配置されたコンピューティングデバイス104を含み得る。例では、各公開暗号化鍵118は、遠隔に配置されたコンピューティングデバイス104にあるそれぞれのHD公開暗号化鍵116から導出される(ここで、各HD公開暗号化鍵116は、それぞれの信頼できるコンピューティングデバイス106に格納されたそれぞれのHD私有復号化鍵114に対応する)。複数の公開暗号化鍵118は「公開」(「私有」ではない)鍵であるため、少なくとも1つのネットワーク108を介して送信することにほとんど心配はない。
【0078】
方法400は、ブロック404に進み、第1のユーザコンピューティングデバイス102において秘密110をシェア112に分割する。例では、秘密110は、多項式補間および/またはシャミア秘密分散を使用してシェア112に分割される。例では、秘密110は、M個のシェア112に分割される。そのような構成では、秘密110を再構築するために、M個のシェア112のうちのM個すべてが必要とされる。例では、各シェア112は、M個の異なる信頼できるコンピューティングデバイス106のうちの1つに格納されている。あるいは、2個以上のシェア112を個々の信頼できるコンピューティングデバイス106に格納することができ、例えば、M個未満の信頼できるコンピューティングデバイス106が使用される。
【0079】
あるいは、秘密110は、N個のシェア112に分割され、それぞれが、異なる信頼できるコンピューティングデバイス106に格納される。そのような構成では、N個の信頼できるコンピューティングデバイス106のうちのM個だけが、秘密110の回復に関与する必要があるであろう(ここで、M<Nである)。オプションで、Mおよび/またはN(使用される構成に応じて)は、例えば、アカウントのセットアップ/オンボーディング中にユーザによって選択され得、メタデータ148で指定され得る。
【0080】
オプションで、ユーザコンピューティングデバイス102はまた、秘密110の分割に続いて(および暗号化の前に)、各シェア112のシェアハッシュ122を決定することができる。例では、ユーザコンピューティングデバイス102は、入力(例えば、シェア112)を受け取り、文字列(シェアハッシュ122)を返すハッシュ関数を使用することができる。ハッシュ関数の入力(例えば、シェア112)は、出力(例えば、シェアハッシュ122)に対して一意に決定論的である。言い換えると、ハッシュ関数は、1つの特定の入力(例えば、シェア112)から特定の値のハッシュ(例えば、シェアハッシュ122)のみを生成し、入力(例えば、シェア112)への変更は異なるハッシュ(例えば、シェアハッシュ122)を生成する。
【0081】
方法400は、ブロック406に進み、第1のユーザコンピューティングデバイス102で異なる公開暗号化鍵118に基づいて各シェア112を暗号化して、暗号化されたシェア120を作成する。例では、各シェア112は、楕円曲線ディフィーヘルマン(ECDH)演算を使用して暗号化される。ECDHを使用する例では、各公開暗号化鍵118は、それぞれのECDH鍵135を出力するECDH演算への私有署名鍵128とともに提供される。次に、それぞれのAES鍵136が、それぞれ(1)それぞれのECDH鍵135、(2)公開署名鍵130、および(3)それぞれの公開暗号化鍵118のハッシュとして生成される。各AES鍵136は、シェア112を用いて対称的に暗号化されて、対応する暗号化されたシェア120にされる。
【0082】
ECDHを使用しない例では、各シェア112は、異なる公開暗号化鍵118を使用して非対称的に暗号化され、暗号化されたシェアのセット120を結果的にもたらす。非ECDHの例では、暗号化されたシェア120は、オプションで、その後、私有署名鍵128を使用して署名され得る。
【0083】
方法400は、ブロック408に進み、暗号化されたシェア120をユーザコンピューティングデバイス102から遠隔に配置されたコンピューティングデバイス104に通信する。この通信は、暗号化されたシェア120を少なくとも1つのネットワーク108を介して遠隔に配置されたコンピューティングデバイス104に送信するユーザコンピューティングデバイス102を含み得る。例では、ユーザコンピューティングデバイス102に使用される信頼できるコンピューティングデバイス106の各場所に配置された遠隔に配置されたコンピューティングデバイス104が存在する。第1の例では、第1の信頼できるコンピューティングデバイス106および第2の信頼できるコンピューティングデバイス106は、それぞれ、第1の場所および第2の場所に配置されている。第1の例では、第1の遠隔に配置されたコンピューティングデバイス104および第2の遠隔に配置されたコンピューティングデバイス104もまた、それぞれ、例えば、第1の場所および第2の場所に配置される。ここで、(1)必要に応じて、第1の遠隔に配置されたコンピューティングデバイス104を使用して、第1の信頼できるコンピューティングデバイス106との間でデータを(手動介入を伴って)転送することができ、(2)必要に応じて、第2の遠隔に配置されたコンピューティングデバイス104を使用して、第2の信頼できるコンピューティングデバイス106との間でデータを(手動介入を伴って)転送することができる。
【0084】
第2の例では、第1の信頼できるコンピューティングデバイス106および第2の信頼できるコンピューティングデバイス106は、第1の場所に配置されている。第2の例では、第1の遠隔に配置されたコンピューティングデバイス104は、第1の場所に配置され得る。第2の例では、第1の遠隔に配置されたコンピューティングデバイス104は、(1)必要に応じて、第1の信頼できるコンピューティングデバイス106、および(2)必要に応じて、第2の信頼できるコンピューティングデバイス106との間で、データを(手動介入を伴って)転送することができる。
【0085】
オプションで、暗号化されていない各シェア112のシェアハッシュ122はまた、ユーザコンピューティングデバイス102から遠隔に配置されたコンピューティングデバイス104に通信され得る。
【0086】
オプションで、ユーザコンピューティングデバイス102は、認証公開鍵144および認証私有鍵146を含む認証鍵ペアを生成し、認証公開鍵を遠隔に配置されたコンピューティングデバイス104に送信し得る。例では、ユーザコンピューティングデバイス102は、ブロック408において遠隔に配置されたコンピューティングデバイス104に送信される暗号化されたシェア120(およびオプションでシェアハッシュ122)に署名することができる。例では、遠隔に配置されたコンピューティングデバイス104は、認証公開鍵144を使用して、暗号化されたシェア120(およびオプションでシェアハッシュ122)のソースを検証することができる。
【0087】
方法400は、ブロック410に進み、遠隔に配置されたコンピューティングデバイス104に暗号化されたシェア120を格納する。例では、遠隔に配置されたコンピューティングデバイス104は、暗号化されたシェア120を格納するためのクラウドベースのファイルストレージリポジトリを含む(またはそれに通信可能に結合される)。例では、遠隔に配置されたコンピューティングデバイス104は、クラウドベースのファイルストレージリポジトリからデータを格納および/または検索し得る。オプションで、遠隔に配置されたコンピューティングデバイス104はまた、例えば、クラウドベースのファイルストレージリポジトリ内に、各シェア112のシェアハッシュ122を格納する。
【0088】
図5は、秘密110の暗号化された秘密シェア112から秘密110を復元するための方法例500を示す流れ図である。方法500は、ユーザコンピューティングデバイス102が紛失、破損、アップグレード、またはハードリセット/フォーマットされた場合に顧客ウォレットを復元するために使用することができる。例では、
図5の方法500は、
図4の方法400の後に実行される。方法500は、ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、および/または信頼できるコンピューティングデバイス106によって実行され得る。ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、および/または信頼できるコンピューティングデバイス106のそれぞれは、少なくとも1つのメモリに格納された命令を実行する少なくとも1つのプロセッサを実装することができる。
【0089】
方法500は、ブロック502で始まり、回復公開暗号化鍵126をユーザコンピューティングデバイス102から信頼できるコンピューティングデバイス106に通信する。この通信は、回復公開暗号化鍵126を遠隔に配置されたコンピューティングデバイス104に(例えば、少なくとも1つのネットワーク108を介して)送信するユーザコンピューティングデバイス102を含み得、その後、回復公開暗号化鍵126は、遠隔に配置されたコンピューティングデバイス104から信頼できるコンピューティングデバイス106に(例えば、USBドライブなどの1つ以上のモバイルストレージデバイスを使用して)転送される。例では、回復公開暗号化鍵126は、ユーザコンピューティングデバイス102で生成され、それぞれが回復私有復号化鍵124に対応する。遠隔に配置されたコンピューティングデバイス104は、それらを信頼できるコンピューティングデバイス106に転送することに加えて、オプションで、回復公開暗号化鍵126を(例えば、クラウドベースのファイルストレージリポジトリ内に)格納してもよい。
【0090】
オプションで、ユーザコンピューティングデバイス102はまた、私有署名鍵128および公開署名鍵130との署名鍵ペアを生成してもよい。ユーザコンピューティングデバイス102は、オプションで、例えば、少なくとも1つのネットワーク108を介して、遠隔に配置されたコンピューティングデバイス104に公開署名鍵130を通信してもよい。次に、遠隔に配置されたコンピューティングデバイス104は、オプションで、例えば、USBドライブなどの1つ以上のモバイルストレージデバイスを使用して、公開署名鍵130を信頼できるコンピューティングデバイス106に転送してもよい。
【0091】
オプションで、M個の信頼できるコンピューティングデバイス106のそれぞれは、回復されたデータの暗号化に使用される回復私有署名鍵132および回復公開署名鍵134を含む回復署名鍵ペアを生成してもよい。信頼できるコンピューティングデバイス106は、オプションで、回復公開署名鍵134を遠隔に配置されたコンピューティングデバイス104に(例えば、USBドライブなどのモバイルストレージデバイスを使用して)転送し、これは、それらをユーザコンピューティングデバイス102に(例えば、少なくとも1つのネットワーク108を介して)通信する。
【0092】
方法500は、オプションのブロック504に進み、遠隔に配置されたコンピューティングデバイス104においてストレージリポジトリ(例えば、クラウドベースのファイルストレージリポジトリ)から暗号化されたシェア120を受信する。例では、暗号化されたシェア120は、
図4の方法400のブロック406に記載されているように暗号化された。例では、暗号化されたシェア120は、USBドライブなどの1つ以上のモバイルストレージデバイスを使用して、遠隔に配置されたコンピューティングデバイス104から信頼できるコンピューティングデバイス106に転送される。
【0093】
オプションで、暗号化されたシェア120は、ユーザコンピューティングデバイス102のユーザが秘密110を回復する許可を有することが検証された後にのみ(ストレージリポジトリから)受信される。これは、ネットワーク108を介したユーザコンピューティングデバイス102から遠隔に配置されたコンピューティングデバイス104へのデータ転送で、および/またはユーザとシステム100Bのオペレータの顧客サービス担当者との間の他の通信(例えば、SMS、電話での会話など)を介して行われ得る。
【0094】
方法500は、オプションのブロック506に進み、私有復号化鍵140に基づいて、信頼できるコンピューティングデバイス106で暗号化されたシェア120を復号化する。例では、異なる私有復号化鍵140は、異なる信頼できるコンピューティングデバイス106に格納され得、異なる公開暗号化鍵118に対応し、ここで、私有復号化鍵140のみが、対応する公開暗号化鍵118を使用して暗号化されたデータを復号化できる。
【0095】
ECDHを使用して暗号化されたシェア120を復号化するために、信頼できるコンピューティングデバイス106は、それぞれの私有復号化鍵140および公開署名鍵130(特定のユーザコンピューティングデバイス102用)を、それぞれのECDH鍵135を出力するECDH演算に提供する。次に、それぞれのAES鍵136が、それぞれ(1)それぞれのECDH鍵135、(2)公開署名鍵130、および(3)それぞれの公開暗号化鍵118のハッシュとして生成される。対応するAES鍵136と組み合わされた各暗号化されたシェア120は、それぞれの信頼できるコンピューティングデバイス106において、対応するシェア112に対称的に復号化される。
【0096】
あるいは、ECDHを使用しない例では、各信頼できるコンピューティングデバイス106は、異なる私有復号化鍵140を使用してそれぞれの暗号化されたシェア120を復号化し得、例えば、ECDH演算なしで、暗号化されていないシェア112のセットを結果的にもたらす。
【0097】
方法500は、オプションのブロック508に進み、信頼できるコンピューティングデバイス106で暗号化されていないシェア112を、回復公開暗号化鍵126に基づいて回復暗号化されたシェア142に暗号化する。ECDHを使用する例では、回復公開暗号化鍵126およびそれぞれの回復私有署名鍵132が、それぞれの回復AES鍵138を生成するために、各信頼できるコンピューティングデバイス106上のECDH演算に提供される。次に、各回復AES鍵138を使用して、シェア112を対応する回復暗号化されたシェア142に暗号化する。あるいは、ECDHが使用されない例では、各シェア112は、回復私有署名鍵132で回復暗号化されたシェアに引き続き署名するかどうかにかかわらず、回復公開暗号化鍵126で暗号化され得る(回復暗号化されたシェア142を生成するため)。
【0098】
方法500は、ブロック510に進み、信頼できるコンピューティングデバイス106からユーザコンピューティングデバイス102に回復暗号化されたシェア142を通信する。この通信は、回復暗号化されたシェア142を、信頼できるコンピューティングデバイス106から遠隔に配置されたコンピューティングデバイス104に(例えば、USBドライブなどの1つ以上のモバイルストレージデバイスを使用して)転送することを含み得る。次に、遠隔に配置されたコンピューティングデバイス104は、例えば、少なくとも1つのネットワーク108を介して、回復暗号化されたシェア142をユーザコンピューティングデバイス102に通信することができる。遠隔に配置されたコンピューティングデバイス104は、オプションで、それらをユーザコンピューティングデバイス102に転送することに加えて、回復暗号化されたシェア142を(例えば、クラウドベースのファイルストレージリポジトリ内に)格納してもよい。
【0099】
方法500は、ブロック512に進み、回復公開暗号化鍵126に対応する回復私有復号化鍵124に基づいて、ユーザコンピューティングデバイス102で回復暗号化されたシェア142の各サブセットを復号化する。ECDHを使用して暗号化されたシェア120を復号化するために、ユーザコンピューティングデバイス102は、回復AES鍵138を出力するECDH演算に、回復私有復号化鍵124およびそれぞれの回復公開署名鍵134(特定の信頼できるコンピューティングデバイス106用)を提供する。これは、シェア112を(ブロック508において)対応する回復暗号化されたシェア142に再暗号化するために使用される信頼できるコンピューティングデバイス106の回復AES鍵138と同一である。次に、ユーザコンピューティングデバイス102は、それぞれの回復AES鍵138を使用して、各回復暗号化されたシェア142を復号化して、それぞれのシェア112を生成し得る。
【0100】
あるいは、ECDHを使用しない例では、ユーザコンピューティングデバイス102は、異なる回復私有復号化鍵124を使用してそれぞれの回復暗号化されたシェア142を復号化し得、例えば、ECDH演算なしで、暗号化されていないシェア112のセットを結果的にもたらす。
【0101】
方法500は、ブロック514に進み、暗号化されていないシェア112を使用して、ユーザコンピューティングデバイス102で秘密110を再構築する。例では、秘密110は、M個のシェア112のうちのM個を組み合わせることによって再構築され得る。あるいは、秘密110を再構築するために、N個のシェア112のうちのM個だけが必要とされ得る。再構成の要件は、秘密110のシャミア分割中に生成されたメタデータ148に基づくことができる。
【0102】
図6は、秘密シェア112の生成、暗号化、および配布のための方法600を示すブロック図である。方法600は、
図1A~Bに示されるシステム100A~Bと同様のシステムで実行することができる。具体的には、方法600は、ユーザコンピューティングデバイス102(例えば、スマートフォン)、遠隔に配置されたコンピューティングデバイス104、第1の信頼できるコンピューティングデバイス106-1、および第2のコンピューティングデバイス106-2を含むシステムで実行される。方法600は、
図6に示されるデバイスのいずれかが多かれ少なかれあるシステムで実行され得ることが理解される。例では、2つの異なる遠隔に配置されたコンピューティングデバイス104があり得、第1の遠隔に配置されたコンピューティングデバイスは、第1の信頼できるコンピューティングデバイス106-1の場所にあり、第2の遠隔に配置されたコンピューティングデバイスは、第2の信頼できるコンピューティングデバイス106-2の場所にある。例では、図示されたすべてのステップが実行されるわけではなく、および/またはステップは異なる順序で実行される。
【0103】
さらに、遠隔に配置されたコンピューティングデバイス104は、(1)少なくとも1つのネットワーク108を介してユーザコンピューティングデバイス102と通信し、(2)ストレージリポジトリ、例えば、Google Firestore/Firebaseなどのクラウドベースのファイルストレージリポジトリを含み、および/またはそれらに通信可能に結合されている。さらに、信頼できるコンピューティングデバイス106は、USBドライブなどのモバイルストレージデバイスを使用してデータを手動で転送することによってのみデータを送受信できるエアギャップデバイス(例えば、ラップトップ)であり得る。
【0104】
方法600は、ユーザコンピューティングデバイス102のユーザがメインアカウントを開くためにユーザ登録を開始したとき、例えば、新しいユーザが暗号化および配布したい秘密110を持っているときに開始する。例では、ユーザコンピューティングデバイス102は、例えば、公開署名鍵130および私有署名鍵128を含む、鍵ペアを生成することができる。例では、ユーザコンピューティングデバイス102は、私有署名鍵128を使用して遠隔に配置されたコンピューティングデバイス104に送信されるデータ(例えば、暗号化されたシェア120およびシェアハッシュ122)に署名することができ、一方、公開署名鍵130は、このデータのソースを検証するために遠隔に配置されたコンピューティングデバイス104に送信される。
【0105】
メインアカウントの登録中に、新しいアカウントは、例えば、ユーザによって入力され、安全なプロトコルを介して遠隔に配置されたコンピューティングデバイス104に送信される、ユーザの識別データおよび/または支払いデータを入力され得る。IDデータには、ユーザの名前、生年月日、運転免許証番号および有効期限、住所、電話番号、電子メールアドレス、社会保障番号、ユーザの政府発行の写真付き身分証明書の画像、政府発行の写真付き身分証明書を保持しているユーザの写真、雇用情報、ならびに/または収入が含まれ得る。識別データはまた、指紋データ(例えば、ユーザの指紋のスキャン)、網膜スキャンデータ(例えば、ユーザの網膜の画像)、顔認識データ(例えば、ユーザの顔の画像)、および/または音声データ(例えば、ユーザの音声の録音)などの生体認証データを含み得る。生の生体認証データ(例えば、画像および/または記録)の代わりに、アプリケーションは、生の生体認証データ、例えば、画像特徴、音声特徴などから導出された処理済みデータのみを送信してもよい。支払いデータは、銀行口座情報、クレジットカード情報、非接触支払いデータ(例えば、Apple Pay(登録商標)またはAndroid Pay(登録商標)のユーザ名およびパスワード)、既存の暗号通貨ウォレット鍵、および/または他の支払い処理情報(例えば、ユーザ名、パスワード、PINコード、および/またはPayPal(登録商標)、WhatsApp(登録商標)などの他の情報)を含み得る。
【0106】
方法600は、遠隔に配置されたコンピューティングデバイス104が、それぞれ、第1のHD公開暗号化鍵116-1および第2のHD公開暗号化鍵116-2から第1の公開暗号化鍵118-1および第2の公開暗号化鍵118-2を導出するときに続行する。例では、第1のHD公開暗号化鍵116-1および第2のHD公開暗号化鍵116-2は、それぞれ、第1の信頼できるコンピューティングデバイス106-1に格納された第1のHD私有暗号化鍵114-1および第2の信頼できるコンピューティングデバイス106-2に格納された第2のHD秘密暗号化鍵114-2と同じツリー内にある。第1の公開暗号化鍵118-1および第2の公開暗号化鍵118-2は、例えば、
図4のブロック402と同様に、ユーザコンピューティングデバイス102に送信され得る。
【0107】
方法600は、秘密110およびメタデータ148が、JSONモジュール150によって単一のJavaScriptオブジェクト表記(JSON)ファイルに結合されるときに続行することができる。例では、秘密110は、シード/ニーモニックフレーズ201または私有ユーザ鍵202であるが、任意のデータであり得る。例では、メタデータ148は、暗号化されていないシェア112から秘密110を再構成するための要件を示している。
【0108】
方法600は、JSONファイルが、例えば、
図4のブロック404と同様に、(シャミアシェアジェネレータ302によって)第1のシェア112-1および第2のシェア112-2に分割されるときに続行し得る。例では、シャミアシェアジェネレータ302は、多項式補間またはシャミア秘密分散を使用して、秘密110をシェア112に分ける。例では、シェア112はシャミア秘密シェアである。例では、秘密110を再構築するために、第1のシェア112-1および第2のシェア112-2が必要である。すなわち、M個のシェア112のうちのM個が必要であり、ここで、M=2である。ただし、他の構成では、Mは任意の数(例えば、M=3、4、5など)にすることができ、および/またはN個のシェアのうちのM個のみが必要になる(例えば、3個のうちの2個、4個のうちの2個、4個のうちの3個、5個のうちの3個など)。例では、メタデータ148は、秘密110を再構築するために必要なシェア112の数を示している。
【0109】
方法600は、
図4のブロック406と同様に、シェア112が暗号化されたシェア120に暗号化されるときに続行することができる。ECDHを使用する例では、私有署名鍵128およびそれぞれの公開暗号化鍵118は、それぞれのAES鍵136を生成するECDH演算に提供される。言い換えれば、異なるAES鍵136は、私有署名鍵128(例えば、すべてのシェア112に共通である)およびそれぞれの公開暗号化鍵118(例えば、各シェア112に固有である)を使用して、各シェア112に対して生成され得る。各シェア112は、それぞれの暗号化されたシェア120を生成するために、それぞれのAES鍵136で暗号化される。ECDHを使用しない例では、各シェア112は、異なる公開暗号化鍵118を使用して非対称的に暗号化され、暗号化されたシェアのセット120を結果的にもたらす。非ECDHの例では、暗号化されたシェア120は、オプションで、その後、私有署名鍵128を使用して署名され得る。
【0110】
方法600は、シェア112がハッシュ関数152に入力されて、それぞれのハッシュ112を決定するときに続行することができる。例では、ユーザコンピューティングデバイス102は、シェア112からシェアハッシュ122、例えば、SHA-256を生成する任意の適切な暗号化ハッシュ関数を使用することができる。
【0111】
方法600は、シェアハッシュ122および暗号化されたシェア120が、認証私有鍵146を使用して(例えば、署名モジュール154において)署名され、署名156を生成するときに続行することができる。ユーザコンピューティングデバイス102は、署名156を遠隔に配置されたコンピューティングデバイス104に送信することができる。
【0112】
方法600は、遠隔に配置されたコンピューティングデバイス104が、遠隔に配置されたコンピューティングデバイス104に以前に格納された公開署名鍵130を使用して(例えば、検証モジュールにおいて)署名156を検証するときに続行することができる。署名156が検証されると、シェアハッシュ122および暗号化されたシェア120は、遠隔に配置されたコンピューティングデバイス104に、例えば、遠隔に配置されたコンピューティングデバイス104内のまたはそれに通信可能に結合されたクラウドベースのストレージリポジトリ内に格納される。
【0113】
図7は、例えば、ユーザコンピューティングデバイス102(およびそこに格納された任意の鍵)が、紛失、破損、アップグレード、またはハードリセット/再フォーマットされた場合に、複数の暗号化された秘密シェア118から秘密110を回復するための方法700を示すシーケンス図である。方法700は、
図1A~Bに示されているシステム100A~Bと同様のシステムで実行することができる。具体的には、方法700は、ユーザコンピューティングデバイス102(例えば、スマートフォン)、遠隔に配置されたコンピューティングデバイス104、第1の信頼できるコンピューティングデバイス106-1、および第2の信頼できるコンピューティングデバイス106-2を含むシステムで実行することができる。方法700は、
図7に示されるデバイスのいずれかが多かれ少なかれある、例えば、3つ以上の信頼できるコンピューティングデバイス106を備えたシステムで実行され得ることが理解される。例では、2つの異なる遠隔に配置されたコンピューティングデバイス104があり得、第1の遠隔に配置されたコンピューティングデバイスは、第1の信頼できるコンピューティングデバイス106-1の場所にあり、第2の遠隔に配置されたコンピューティングデバイスは、第2の信頼できるコンピューティングデバイス106-2の場所にある。
【0114】
例では、
図7の方法700は、例えば、
図6の方法600で説明されているように、ユーザコンピューティングデバイス102が秘密110を分割し、シェア112を暗号化されたシェア120に暗号化し、暗号化されたシェア120を遠隔に配置されたコンピューティングデバイス104に格納した後に実行される。例では、図示されたすべてのステップが実行されるわけではなく、および/またはステップは異なる順序で実行される。
【0115】
さらに、遠隔に配置されたコンピューティングデバイス104(1)は、少なくとも1つのネットワーク108を介してユーザコンピューティングデバイス102と通信し、(2)ストレージリポジトリ、例えば、Google Firestore/Firebaseなどのクラウドベースのファイルストレージリポジトリを含み、および/またはそれに通信可能に結合される。さらに、信頼できるコンピューティングデバイス106は、USBドライブなどのモバイルストレージデバイスを使用してデータを手動で転送することによってのみデータを送受信できるエアギャップデバイス(例えば、ラップトップ)であり得る。
【0116】
第1のステップで、ユーザは回復アカウントを登録する。回復アカウントは、電話の紛失または破損などにより、ユーザのメインアカウントの私有鍵が紛失した場合に使用できる。例では、登録は、ユーザコンピューティングデバイス102上で実行されているアプリケーションにユーザが情報を入力することを含む。例では、ユーザコンピューティングデバイス102は、例えば、回復公開署名鍵134および回復私有署名鍵132を含む、鍵ペアを生成することができる。例では、信頼できるコンピューティングデバイス106は、回復私有署名鍵132を使用して遠隔に配置されたコンピューティングデバイス104に送信されるデータ(例えば、暗号化されたシェア120およびシェアハッシュ122)に署名することができ、一方、回復公開署名鍵134は、このデータのソースを検証するために遠隔に配置されたコンピューティングデバイス104に送信される。
【0117】
回復アカウントの登録中に、回復アカウントにユーザのIDデータおよび/または支払いデータが入力され得る。例では、ユーザは、彼らの回復アカウントの最小限の情報、例えば、IDデータのいくつかの項目を入力し得る。次に、回復要求が(以下の第5のステップにおいて)承認された後、ユーザのメインアカウントからの残りのIDデータおよび/または支払いデータが回復アカウントに入力され得る。あるいは、すべてのIDデータおよび/または支払いデータは、回復アカウントの登録中に入力することができる。回復アカウントの登録中にIDデータおよび/または支払いデータが新たに入力される範囲で、それは、例えば、安全な転送プロトコルを使用して、遠隔に配置されたコンピューティングデバイス104に送信され得る。オプションで、(回復アカウントの登録中に)遠隔に配置されたコンピューティングデバイス104に送信されるデータは、回復私有署名鍵132を使用して署名され得る。
【0118】
第2のステップでは、ユーザコンピューティングデバイス102は、回復公開暗号化鍵126を遠隔に配置されたコンピューティングデバイス104に送信することができる。ユーザコンピューティングデバイス102は、回復されたデータの暗号化に使用される回復私有復号化鍵124および回復公開暗号化鍵126を含む回復暗号化鍵ペアを生成することができる。回復私有復号化鍵124は、ユーザコンピューティングデバイス102に格納され得、一方、(ユーザコンピューティングデバイス102からの)回復公開暗号化鍵126は、例えば、少なくとも1つのモバイルストレージデバイスを使用して、信頼できるコンピューティングデバイス106にさらに転送され得る。
【0119】
第3のステップでは、ユーザコンピューティングデバイス102は、遠隔に配置されたコンピューティングデバイス104に顧客確認(KYC:Know-Your-Customer)要求を送信することができる。例では、KYCは、ユーザが本人であるかどうかを検証したり、および/またはユーザが法執行機関の監視リストに含まれていないことを確認しようとする。KYCは、オプションで、(例えば、ソフトクレジットチェックを使用して)信用力を評価し、顧客の取引行為を分析し、および/または顧客の取引行為に基づいて顧客のアカウントの不正行為を監視する場合がある。例では、遠隔に配置されたコンピューティングデバイス104は、KYCを実行するために、IDサービスプロバイダ(図示せず)と相互作用することができる。オプションで、マネーロンダリング防止(AML)チェックもユーザに対して実行できる。AMLは、顧客がマネーロンダリングを行っていないこと、つまり、顧客が違法または非倫理的な活動から受け取った資金源を隠すための措置を講じていないことを確認しようとする。
【0120】
KYCおよび/またはAML手順が完了すると、IDサービスプロバイダは、遠隔に配置されたコンピューティングデバイス104に通知を送信することができる。通知は、ユーザのKYCおよび/またはAML手順の成功または失敗を示すことができる。例では、遠隔に配置されたコンピューティングデバイス104は、KYCおよび/またはAMLチェックが成功したかどうかをユーザコンピューティングデバイス102内のアプリケーションに示すことができる。
【0121】
第4のステップでは、ユーザコンピューティングデバイス102は、遠隔に配置されたコンピューティングデバイス104に支払い(回収費用)を送ることができる。この支払いは、クレジットカード支払い、自動決済機関(ACH)支払い、電子小切手、暗号通貨トランザクションなど、任意の適切な形式をとることができる。
【0122】
第5のステップでは、遠隔に配置されたコンピューティングデバイス104は、回復要求を承認することができる。これは、ユーザコンピューティングデバイス102のユーザが秘密110を回復するための許可を有することの検証を含み得る。これは、ネットワーク108を介したユーザコンピューティングデバイス102から遠隔に配置されたコンピューティングデバイス104へのデータ転送で、および/またはユーザとシステム100Bのオペレータの顧客サービス担当者との間の他の通信を介して行われ得る。例では、ユーザは、回復要求が承認される前に、電話でシステム100Bの顧客サービス担当者と話さなければならない。
【0123】
第6のステップでは、遠隔に配置されたコンピューティングデバイス104は、暗号化されたシェア120、シェアハッシュ122、および回復公開暗号化鍵126をストレージリポジトリから検索することができる。例では、暗号化されたシェア120、シェアハッシュ122、および回復公開暗号化鍵126は、ユーザコンピューティングデバイス102で生成され、少なくとも1つのネットワーク108を介して遠隔に配置されたコンピューティングデバイス104に送信された。例では、暗号化されたシェア120(およびシェアハッシュ122)の数は2個(M=2)であり、信頼できるコンピューティングデバイス106のそれぞれに1個であるが、いくつかの構成ではMは2を超える可能性がある。
【0124】
第7のステップでは、第1の暗号化されたシェア120-1は、回復公開暗号化鍵126に基づいて復号化および再暗号化される。具体的には、ステップ7Aにおいて、第1の暗号化されたシェア120-1、第1のシェアハッシュ122-1、および回復公開暗号化鍵126は、例えば、USBドライブなどのモバイルストレージデバイスを使用したデータの手動転送を介して、遠隔に配置されたコンピューティングデバイス104から第1の信頼できるコンピューティングデバイス106-1に転送される。ステップ7Bでは、第1の信頼できるコンピューティングデバイス106-1は、(
図5のブロック506で説明されるように)第1の暗号化されたシェア120-1を復号化し得、オプションで、保護されていない第1のシェア112-1の回復ハッシュが受信した第1のシェアハッシュ122-1と一致することを検証し得、回復公開暗号化鍵126に基づいて第1のシェア112-1を再暗号化して、(
図5のブロック508で説明されるように)第1の回復暗号化されたシェア142-1を生成し得る。ステップ7Cでは、第1の信頼できるコンピューティングデバイス106-1は、第1の回復暗号化されたシェア142-1を遠隔に配置されたコンピューティングデバイス104に送信することができる。例では、ステップ7Cは、USBドライブなどのモバイルストレージデバイスを使用してデータを手動で転送することを含み得る。
【0125】
第8のステップでは、第2の暗号化されたシェア120-2が、回復公開暗号化鍵126に基づいて復号化および再暗号化される。具体的には、ステップ8Aでは、第2の暗号化されたシェア120-2、第2のシェアハッシュ122-2、および回復公開暗号化鍵126は、例えば、USBドライブなどのモバイルストレージデバイスを使用したデータの手動転送を介して、遠隔に配置されたコンピューティングデバイス104から第2の信頼できるコンピューティングデバイス106-2に転送される。ステップ8Bでは、第2の信頼できるコンピューティングデバイス106-2は、(
図5のブロック506で説明されるように)第2の暗号化されたシェア120-2を復号化し得、オプションで、保護されていない第2のシェア112-2の回復ハッシュが受信した第2のシェアハッシュ122-2と一致することを検証し得、回復公開暗号化鍵126に基づいて、第2のシェア112-2を再暗号化して、(
図5のブロック508に説明されるように)第2の回復暗号化されたシェア142-2を生成し得る。ステップ8Cでは、第2の信頼できるコンピューティングデバイス106-2は、第2の回復暗号化されたシェア142-2を遠隔に配置されたコンピューティングデバイス104に送信することができる。例では、ステップ8Cは、USBドライブなどのモバイルストレージデバイスを使用してデータを手動で転送することを含み得る。
【0126】
図7には示されていないが、3つ以上の信頼できるコンピューティングデバイス106を方法700で使用することができ、ここで、各信頼できるコンピューティングデバイス106は、(1)手動転送を介してそれぞれの暗号化されたシェア120を受信し、(2)復号化し、検証し、それぞれの回復暗号化されたシェア142に再暗号化し、その後、(3)回復暗号化されたシェア142は、第7および第8のステップと同様に、遠隔に配置されたコンピューティングデバイス104に手動で転送される。
【0127】
第9のステップでは、遠隔に配置されたコンピューティングデバイス104は、回復暗号化されたシェア142をストレージリポジトリ内に格納することができる。
【0128】
第10のステップでは、ユーザコンピューティングデバイス102は、遠隔に配置されたコンピューティングデバイス102のステータスをポーリングすることができる。これは、遠隔に配置されたコンピューティングデバイス104が、十分な数(例えば、M個)の信頼できるコンピューティングデバイス106から回復暗号化されたシェア142を受信したかどうかを示すことを要求する定期的なメッセージを含み得る。
【0129】
第11のステップでは、ユーザコンピューティングデバイス102は、回復暗号化されたシェア142を検索および復号化することができる。回復暗号化されたシェア142は、少なくとも1つのネットワーク108を介して検索され得る。回復暗号化されたシェア142は、(例えば、
図5のブロック512に説明されるように)ECDHの有無にかかわらず復号化され得る。その後、シェア112を使用して、秘密110、例えば、シード/ニーモニックフレーズ201または私有ユーザ鍵202のいずれかを再構成することができる。
【0130】
第12のステップでは、ユーザコンピューティングデバイス102は、回復された秘密を使用して12ワードの回復プロセスを再開することができる。
【0131】
例では、本明細書のデバイスおよびシステムは、メモリおよび/またはプロセッサを使用して実装される。例では、メモリは、情報を格納するために使用される任意のデバイス、メカニズム、または入力されたデータ構造にすることができる。例では、メモリは、任意のタイプの揮発性メモリ、不揮発性メモリ、および/または動的メモリであり得るか、またはそれらを含み得る。例では、メモリは、ランダムアクセスメモリ、メモリストレージデバイス、光メモリデバイス、磁気媒体、フロッピーディスク、磁気テープ、ハードドライブ、消去可能なプログラム可能な読み取り専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、光媒体(コンパクトディスク、DVD、ブルーレイディスクなど)などであり得る。いくつかの実施形態によれば、メモリは、1つ以上のディスクドライブ、フラッシュドライブ、1つ以上のデータベース、1つ以上のテーブル、1つ以上のファイル、ローカルキャッシュメモリ、プロセッサキャッシュメモリ、リレーショナルデータベース、フラットデータベース、および/または同様のものを含み得る。さらに、当業者は、メモリとして使用することができる情報を格納するための多くの追加のデバイスおよび技術を理解するであろう。メモリは、プロセッサ上で1つ以上のアプリケーションまたはモジュールを実行するための命令を格納するために使用できる。例では、メモリを1つ以上の例で使用して、本明細書で説明するシステムデバイスのいずれかの機能を実行するために必要な命令のすべてまたは一部を収容することができる。プロセッサは、汎用プロセッサ(GPP)または特殊用途(フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または他の集積回路もしくは回路構成)などの任意の既知のプロセッサ、またはプログラマブルロジックデバイスとすることができる。
【0132】
ここで紹介する技術は、特殊用途ハードウェア(回路構成など)として、ソフトウェアおよび/またはファームウェアで適切にプログラムされたプログラム可能な回路構成として、または特殊用途およびプログラム可能な回路構成の組み合わせとして具体化できる。したがって、実施形態は、プロセスを実行するようにコンピュータ(または他の電子デバイス)をプログラムするために使用され得る命令を格納した機械可読媒体を含み得る。機械可読媒体は、例えば、フロッピーディスケット、光ディスク、コンパクトディスク読み取り専用メモリ(CD-ROM)、磁気光学ディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能なプログラム可能な読み取り専用メモリ(EPROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、磁気もしくは光カード、フラッシュメモリ、または電子命令の格納に適した他のタイプの媒体/機械可読媒体を含み得る。
【0133】
コンピュータシステムの概要
本開示の実施形態は、上記した様々なステップおよび動作を含む。これらの様々なステップおよび動作は、ハードウェア構成要素によって実行され得るか、または機械実行可能命令で具体化され得、これは、ステップを実行するための命令でプログラムされた汎用または特殊用途プロセッサをもたらすために使用され得る。あるいは、ステップは、ハードウェア、ソフトウェア、および/またはファームウェアの組み合わせによって実行され得る。したがって、
図8は、本開示の実施形態を利用することができるコンピュータシステム例800を示すブロック図である。本例によれば、コンピュータシステム800は、相互接続802、少なくとも1つのプロセッサ804、少なくとも1つの通信ポート806、少なくとも1つのメインメモリ808、少なくとも1つのモバイルストレージ媒体810、少なくとも1つの読み取り専用メモリ812、および少なくとも1つの大容量ストレージデバイス814を含む。
【0134】
少なくとも1つのプロセッサ804は、任意の既知のプロセッサであり得る。少なくとも1つの通信ポート806は、例えば、モデムベースのダイヤルアップ接続で使用するためのRS-232ポート、10/100イーサネットポート、または銅線もしくはファイバを使用するギガビットポートのいずれかであり得るか、またはそれらを含み得る。少なくとも1つの通信ポート806の性質は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはコンピュータシステム800が接続する任意のネットワークなどのネットワークに応じて選択することができる。少なくとも1つのメインメモリ808は、ランダムアクセスメモリ(RAM)、または当技術分野で一般に知られている他の任意の動的ストレージデバイスであり得る。少なくとも1つの読み取り専用メモリ812は、少なくとも1つのプロセッサ804の命令などの静的情報を格納するためのプログラマブル読み取り専用メモリ(PROM)チップなどの任意の静的ストレージデバイスであり得る。
【0135】
少なくとも1つの大容量ストレージデバイス814を使用して、情報および命令を格納することができる。例えば、ハードディスク(磁気ディスクドライブ、またはシリアル/パラレルATAもしくはSCSIインターフェースを使用するソリッドステートドライブなど)、光ディスク、レイド(RAID:Redundant Array of Independent Disk)などのディスクのアレイ、または任意の他の大容量ストレージデバイスを使用できる。相互接続802は、1つ以上のバス、ブリッジ、コントローラ、アダプタ、および/またはポイントツーポイント接続であり得るか、またはそれらを含み得る。相互接続802は、少なくとも1つのプロセッサ804を他のメモリ、ストレージ、および通信ブロックと通信可能に結合する。相互接続802は、使用されるストレージデバイスに応じて、PCI/PCI-XまたはSCSIベースのシステムバスであり得る。少なくとも1つのモバイルストレージ媒体810は、任意の種類の外付けハードドライブ、フロッピードライブ、コンパクトディスク読み取り専用メモリ(CD-ROM)、コンパクトディスク再書き込み可能(CD-RW)、デジタルビデオディスク読み取り専用メモリ(DVD-ROM)、ブルーレイディスク読み取り専用メモリ(BD-ROM)、ブルーレイディスク記録可能(BD-R)、ブルーレイディスク記録可能消去可能(BD-RE)であり得る。
【0136】
上記の構成要素は、いくつかのタイプの可能性を例示することを目的とする。前述の例は単なる例示的な実施形態であるため、決して開示を制限するべきではない。
【0137】
図9は、別のコンピューティングデバイス例900を示すブロック図である。コンピューティングデバイス例900は、ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、信頼できるコンピューティングデバイス106、資産交換IDサービスプロバイダ、ボールト(Vault)システム1250、および/またはオプションの記録保持システム1252のいずれかを実装するために使用され得る。コンピューティングデバイス900は、少なくとも1つのメモリ902、少なくとも1つのプロセッサ904、オプションの少なくとも1つのネットワークインターフェース906、オプションの表示デバイス908、オプションの入力デバイス910、およびオプションの電源912を含む。
【0138】
例では、少なくとも1つのメモリ902は、情報を格納するために使用される任意のデバイス、メカニズム、または入力されたデータ構造であり得る。例では、少なくとも1つのメモリ902は、任意のタイプの揮発性メモリ、不揮発性メモリ、および/または動的メモリであり得るか、またはそれらを含み得る。例では、少なくとも1つのメモリ902は、ランダムアクセスメモリ、メモリストレージデバイス、光メモリデバイス、磁気媒体、フロッピーディスク、磁気テープ、ハードドライブ、消去可能なプログラム可能な読み取り専用メモリ(EPROM)、電気的消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、光媒体(コンパクトディスク、DVD、ブルーレイディスクなど)および/または同様のものとすることができる。
【0139】
いくつかの実施形態によれば、少なくとも1つのメモリ902は、1つ以上のディスクドライブ、フラッシュドライブ、1つ以上のデータベース、1つ以上のテーブル、1つ以上のファイル、ローカルキャッシュメモリ、プロセッサキャッシュメモリ、リレーショナルデータベース、フラットデータベースおよび/または同様のものを含み得る。さらに、当業者は、少なくとも1つのメモリ902として使用することができる、情報を記憶するための多くの追加のデバイスおよび技術を理解するであろう。少なくとも1つのメモリ902は、少なくとも1つのプロセッサ904上で1つ以上のアプリケーションまたはモジュールを実行するための命令を格納するために使用され得る。例では、少なくとも1つのメモリ902を1つ以上の例で使用して、例えば、
図3~4および
図6~10において、本明細書で説明する機能を実行するために必要な命令のすべてまたは一部を収容することができる。
【0140】
少なくとも1つのプロセッサ904は、汎用プロセッサ(GPP)または特殊用途など(フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)または他の集積回路もしくは回路構成など)の任意の既知のプロセッサ、または任意のプログラム可能なロジックデバイスであり得る。例では、本明細書に開示される機能のいずれかは、少なくとも1つのプロセッサ904および少なくとも1つのメモリ902によって実装され得る。
【0141】
例では、少なくとも1つのオプションのネットワークインターフェース906は、ネットワーク(システム100の少なくとも1つのネットワーク108のうちの1つなど)と通信するための少なくとも1つのオプションのアンテナを含むか、またはそれに結合される。例では、少なくとも1つのオプションのネットワークインターフェース906は、イーサネットインターフェース、セルラー無線アクセス技術(RAT)無線、Wi-Fi無線、ブルートゥース無線、または近距離通信(NFC)無線のうちの少なくとも1つを含む。例では、少なくとも1つのオプションのネットワークインターフェース906は、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を使用してリモートサーバと十分な速度のセルラーデータ接続(モバイルインターネット)を確立するように構成されたセルラー無線アクセス技術無線を含む。例では、セルラー無線アクセス技術には、パーソナル通信サービス(PCS)、特殊移動無線(SMR)サービス、拡張特殊移動無線(ESMR)サービス、高度な無線サービス(AWS)、符号分割多元接続(CDMA)、移動体通信のためのグローバルシステム(GSM)サービス、ワイドバンド符号分割多元接続(W-CDMA)、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、ワイマックス(WiMAX:Worldwide Interoperability for Microwave Access)、第3世代パートナーシッププロジェクト(3GPP)、LTE(Long Term Evolution)、高速パケットアクセス(HSPA)、第3世代(3G)、第4世代(4G)、第5世代(5G)など、または他の適切な通信サービスのうちの少なくとも1つ、あるいはそれらの組み合わせが含まれる。例では、少なくとも1つのオプションのネットワークインターフェース906は、ワイドエリアネットワークではなく、リモートサーバと通信する無線ローカルエリアネットワークと通信するように構成されたWi-Fi(IEEE 802.11)無線を含む。例では、少なくとも1つのオプションのネットワークインターフェース906は、パッシブ近距離無線通信(NFC)タグ、アクティブ近距離無線通信(NFC)タグ、パッシブ無線周波数識別(RFID)タグ、アクティブ無線周波数識別(RFID)タグ、近接カード、またはその他のパーソナルエリアネットワークデバイスなどの近接通信に限定される近距離無線通信デバイスを含む。
【0142】
例では、オプションの少なくとも1つの表示デバイス908は、発光ダイオード(LED)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、e-inkディスプレイ、電界放出型ディスプレイ(FED)、表面伝導電子エミッターディスプレイ(SED)、またはプラズマディスプレイのうちの少なくとも1つを含む。例では、オプションの少なくとも1つの入力デバイス910は、タッチスクリーン(容量性および抵抗性タッチスクリーンを含む)、タッチパッド、容量性ボタン、機械的ボタン、スイッチ、ダイヤル、キーボード、マウス、カメラ、生体センサ/スキャナ、マイクロフォンなどのうちの少なくとも1つを含む。例では、オプションの少なくとも1つの表示デバイス908は、オプションの少なくとも1つの入力デバイス910と組み合わされて、ユーザコンピューティングデバイス102、遠隔に配置されたコンピューティングデバイス104、および/または信頼できるコンピューティングデバイス106とのユーザ相互作用のためにヒューマンマシンインターフェース(HMI)に入る。例では、少なくとも1つのオプションの電源912は、コンピューティングデバイス900の様々な構成要素に電力を供給するために使用される。
【0143】
用語
本出願全体で使用される用語、略語、および句の簡単な定義を以下に示す。
【0144】
「決定」という用語は、計算、コンピュータ計算、生成、処理、導出、調査、検索(例えば、テーブル、データベース、または別のデータ構造での検索)、確認などを含み得る。さらに、「決定」はまた、受信(例えば、情報の受信)、アクセス(例えば、メモリ内のデータへのアクセス)などを含み得る。また、「決定」は、解決、選択、選出、確立などを含み得る。
【0145】
「に基づく」という句は、特に明記されていない限り、「のみに基づく」という意味ではない。言い換えれば、「に基づく」という句は、「のみに基づく」と「少なくとも~に基づく」の両方を表す。さらに、「に基づく」という句は、中間ステップを排除するものではない。例えば、AはCに基づくは、BはCに基づく、AはBに基づくことを意味し得る。さらに、「および/または」という用語は「および」または「または」を意味する。例えば、「Aおよび/またはB」は、「A」、「B」、または「AおよびB」を意味し得る。さらに、「A、B、および/またはC」は、「Aのみ」、「Bのみ」、「Cのみ」、「AおよびB」、「AおよびC」、「BおよびC」、または「A、B、およびC」を意味し得る。
【0146】
「接続された」、「結合された」、および「通信可能に結合された」という用語および関連する用語は、動作上の意味で使用され、必ずしも直接の物理的接続または結合に限定されない。したがって、例えば、2つのデバイスは、直接、または1つ以上の中間媒体またはデバイスを介して結合され得る。別の例として、デバイスは、互いに物理的な接続を共有せずに、情報がそれらの間で受け渡されることができるように結合され得る。本明細書で提供される開示に基づいて、当業者は、前述の定義に従って接続または結合が存在する様々な方法を理解するであろう。
【0147】
「例示的な実施形態において」、「実施形態例において」、「いくつかの実施形態において」、「いくつかの実施形態に従う」、「示された実施形態において」、「他の実施形態において」、「実施形態」、「例において」、「例」、「いくつかの例において」、「いくつかの例」などの句は、一般に、その句に続く特定の特徴、構造、または特性が本開示の少なくとも1つの実施形態に含まれ、本開示の2以上の実施形態に含まれ得ることを意味する。さらに、そのような句は、必ずしも同じ実施形態または異なる実施形態を指すとは限らない。
【0148】
明細書において、構成要素または特徴が、含「まれてもよい」、含「むことができる」、含「む可能性がある」、または含「む場合がある」、あるいは特性を有「してもよい」、有「することができる」、有「する可能性がある」、または有「する場合がある」と記載されている場合、その特定の構成要素または特徴は含まれている必要はなく、その特性を有する必要もない。
【0149】
「応答性」という用語は、完全にまたは部分的に応答性を含む。
【0150】
「モジュール」という用語は、ソフトウェア、ハードウェア、またはファームウェア(またはそれらの任意の組み合わせの)構成要素を広く指す。モジュールは通常、指定された入力を使用して有用なデータまたは他の出力を生成できる機能的な構成要素である。モジュールは自己完結型である場合とそうでない場合がある。アプリケーションプログラム(「アプリケーション」とも呼ばれる)は、1つ以上のモジュールを含んでもよく、またはモジュールは、1つ以上のアプリケーションプログラムを含むことができる。
【0151】
結論として、本開示は、顧客デバイスおよび関連する方法でアクションを実行するために、N個の鍵のうちのM個を使用する新規の複数承認システムを提供する。本開示の1つ以上の実施形態の詳細な説明が上に与えられているが、様々な代替、修正、および同等物は、本開示の趣旨から逸脱することなく、当業者には明らかであろう。例では、上記の実施形態は特定の特徴に言及しているが、本開示の範囲はまた、特徴の異なる組み合わせを有する実施形態および記載された特徴のすべてを含まない実施形態を含む。したがって、本開示の範囲は、請求項の範囲内にあるようなすべてのそのような代替、修正、および変形を、それらのすべての同等物とともに包含することを意図している。したがって、上記の説明は限定的なものと見なされるべきではない。
【0152】
例示的な実施形態
実施例1は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリと、少なくとも1つのプロセッサに通信可能に結合され、少なくとも1つの遠隔に配置されたコンピューティングデバイスと通信するように構成された少なくとも1つのネットワークインターフェースと、を備える、ユーザコンピューティングデバイスであって、少なくとも1つのネットワークインターフェースは、少なくとも1つの遠隔に配置されたコンピューティングデバイスから複数の公開暗号化鍵を受信するように構成されており、少なくとも1つのプロセッサは、少なくとも1つの秘密を複数のシェアに分割することであって、複数のシェアの少なくともサブセットは、少なくとも1つの秘密を再構築するのに十分である、分割することと、複数の公開暗号化鍵の異なる公開暗号化鍵に基づいて複数のシェアのそれぞれを暗号化して、複数の暗号化されたシェアを作成することを行うように構成されており、少なくとも1つのネットワークインターフェースは、暗号化されたシェアを少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されている、ユーザコンピューティングデバイスを含む。
【0153】
実施例2は、少なくとも1つのプロセッサが、楕円曲線ディフィーヘルマン(ECDH)演算を使用して、複数の暗号化されたシェアのそれぞれを暗号化および署名するようにさらに構成されている、実施例1のユーザコンピューティングデバイスを含む。
【0154】
実施例3は、少なくとも1つのプロセッサが、楕円曲線ディフィーヘルマン(ECDH)演算であって、それぞれが、私有署名鍵と公開暗号化鍵のそれぞれの1つに基づいて、複数のECDH鍵を決定すること、それぞれが、それぞれのECDH鍵、公開署名鍵、および公開暗号化鍵のそれぞれの1つのハッシュとして決定される、複数の高度暗号化標準(AES)鍵を決定すること、および複数のシェアのそれぞれを、それぞれのAES鍵と組み合わせて、それぞれの暗号化されたシェアに暗号化することを含む、演算を使用して暗号化するように構成されている、実施例1~2のいずれかのユーザコンピューティングデバイスを含む。
【0155】
実施例4は、複数の公開暗号化鍵の異なる各公開暗号化鍵が、異なるマスターシード鍵から階層的決定論的(HD)方法論を使用して導出されている、実施例1~3のいずれかのユーザコンピューティングデバイスを含む。
【0156】
実施例5は、シェアがシャミア秘密シェアである、実施例1~4のいずれかのユーザコンピューティングデバイスを含む。
【0157】
実施例6は、少なくとも1つのプロセッサが、多項式補間またはシャミア秘密分散のうちの少なくとも1つを介して、少なくとも1つの秘密を複数のシェアに分割するように構成されている、実施例1~5のいずれかのユーザコンピューティングデバイスを含む。
【0158】
実施例7は、シェアがシャミアシェアであり、少なくとも1つのプロセッサが、シャミア秘密分散を使用して、少なくとも1つの秘密を複数のシェアに分割するように構成されている、実施例1~6のいずれかのユーザコンピューティングデバイスを含む。
【0159】
実施例8は、少なくとも1つの秘密が、鍵、暗号鍵、私有鍵、公開暗号化鍵、暗号化鍵、署名鍵、およびパスワードのうちの少なくとも1つを含む、実施例1~7のいずれかのユーザコンピューティングデバイスを含む。
【0160】
実施例9は、少なくとも1つの秘密を使用して、データを暗号化し、データを復号化し、トランザクションに署名することができる、実施例1~8のいずれかのユーザコンピューティングデバイスを含む。
【0161】
実施例10は、複数の公開暗号化鍵が、それぞれ、異なる私有鍵との異なる暗号化鍵ペアの一部であり、異なる各私有鍵は、異なるコンピューティングデバイスに格納されている、実施例1~9のいずれかのユーザコンピューティングデバイスを含む。
【0162】
実施例11は、異なる各コンピューティングデバイスが、異なるグループの個人によって制御されている、実施例10のユーザコンピューティングデバイスを含む。
【0163】
実施例12は、異なる各コンピューティングデバイスが、他の異なるコンピューティングデバイスとは異なる物理的位置に配置されている、実施例10~11のいずれかのユーザコンピューティングデバイスを含む。
【0164】
実施例13は、少なくとも1つのネットワークインターフェースが、少なくとも1つの遠隔に配置されたコンピューティングデバイスから第1の複数の暗号化されたシェアの少なくとも第1のサブセットを受信するように構成されており、少なくとも1つのプロセッサが、第1の複数の暗号化されたシェアの第1のサブセットのそれぞれを復号化して、第1の複数の暗号化されていないシェアを作成し、第1の複数の暗号化されていないシェアを使用して、少なくとも1つの秘密を再構築するように構成されている、実施例1~12のいずれかのユーザコンピューティングデバイスを含む。
【0165】
実施例14は、少なくとも1つのネットワークインターフェースが、少なくとも1つの回復公開暗号化鍵を少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されており、少なくとも1つのプロセッサが、少なくとも1つの回復公開暗号化鍵に対応する少なくとも1つの回復私有復号化鍵に基づいて、第1の複数の暗号化されたシェアの第1のサブセットのそれぞれを復号化するように構成されている、実施例13のユーザコンピューティングデバイスを含む。
【0166】
実施例15は、少なくとも1つの回復公開暗号化鍵の異なる各回復公開暗号化鍵が、少なくとも1つの回復私有復号化鍵の異なる回復私有復号化鍵との異なる回復暗号化鍵ペアの一部である、実施例14のユーザコンピューティングデバイスを含む。
【0167】
実施例16は、少なくとも1つの回復私有復号化鍵が、単一の回復私有復号化鍵であり、少なくとも1つの回復公開暗号化鍵が、単一の回復公開暗号化鍵である、実施例14~15のいずれかのユーザコンピューティングデバイスを含む。
【0168】
実施例17は、少なくとも1つのプロセッサが、暗号化の前に複数のシェアのそれぞれからハッシュを生成するようにさらに構成されており、少なくとも1つのネットワークインターフェースが、ハッシュを少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するようにさらに構成されている、実施例14~16のいずれかのユーザコンピューティングデバイスを含む。
【0169】
実施例18は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリと、少なくとも1つのプロセッサに通信可能に結合され、少なくとも1つの遠隔に配置されたコンピューティングデバイスと通信するように構成された少なくとも1つのネットワークインターフェースと、を備えるユーザコンピューティングデバイスであって、少なくとも1つのネットワークインターフェースは、少なくとも1つの回復公開暗号化鍵を少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されており、少なくとも1つの回復私有復号化鍵は、少なくとも1つの回復公開暗号化鍵に対応しており、少なくとも1つのネットワークインターフェースは、少なくとも1つの遠隔に配置されたコンピューティングデバイスから第1の複数の暗号化されたシェアの少なくともサブセットを受信するように構成されており、少なくとも1つのプロセッサは、第1の複数の回復暗号化されたシェアのサブセットのそれぞれを復号化して、少なくとも1つの回復公開暗号化鍵に対応する少なくとも1つの回復私有復号化鍵に基づいて第1の複数の暗号化されていないシェアを作成し、第1の複数の暗号化されていないシェアを使用して、少なくとも1つの秘密を再構築するように構成されている、ユーザコンピューティングデバイスを含む。
【0170】
実施例19は、少なくとも1つの回復私有復号化鍵が、単一の回復私有復号化鍵であり、少なくとも1つの回復公開暗号化鍵が、単一の回復公開暗号化鍵である、実施例18のユーザコンピューティングデバイスを含む。
【0171】
実施例20は、暗号化されていないシェアが、シャミア秘密シェアである、実施例18~19のいずれかのユーザコンピューティングデバイスを含む。
【0172】
実施例21は、少なくとも1つのプロセッサが、多項式補間またはシャミア秘密分散のうちの少なくとも1つを介して、第1の複数の暗号化されていないシェアを使用して少なくとも1つの秘密を再構築するように構成されている、実施例18~20のいずれかのユーザコンピューティングデバイスを含む。
【0173】
実施例22は、暗号化されていないシェアがシャミアシェアであり、少なくとも1つのプロセッサが、シャミア秘密分散を使用して第2の複数のシェアを使用して少なくとも1つの秘密を再構築するように構成されている、実施例18~21のいずれかのユーザコンピューティングデバイスを含む。
【0174】
実施例23は、少なくとも1つの秘密が、鍵、暗号鍵、私有鍵、公開暗号化鍵、暗号化鍵、署名鍵、およびパスワードのうちの少なくとも1つを含む、実施例18~22のいずれかのユーザコンピューティングデバイスを含む。
【0175】
実施例24は、少なくとも1つの秘密を使用して、データを暗号化し、データを復号化し、トランザクションに署名することができる、実施例18~23のいずれかのユーザコンピューティングデバイスを含む。
【0176】
実施例25は、少なくとも1つの回復公開暗号化鍵の異なる各回復公開暗号化鍵が、少なくとも1つの回復私有復号化鍵の異なる回復私有復号化鍵との異なる回復暗号化鍵ペアの一部である、実施例18~24のいずれかのユーザコンピューティングデバイスを含む。
【0177】
実施例26は、少なくとも1つのプロセッサが、楕円曲線ディフィーヘルマン(ECDH)演算であって、それぞれが、それぞれの回復公開署名鍵と少なくとも1つの回復私有復号化鍵のそれぞれの1つに基づいて決定される、少なくとも1つの回復ECDH鍵を決定すること、回復ECDH鍵ごとに、それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、および少なくとも1つの回復公開暗号化鍵のそれぞれの1つのハッシュとして高度暗号化標準(AES)鍵を決定すること、および第1の複数の回復暗号化されたシェアのサブセットのそれぞれを、対応する回復AES鍵と組み合わせて、それぞれの暗号化されていないシェアに復号化することを含む、演算を使用して復号化するように構成されている、実施例18~25のいずれかのユーザコンピューティングデバイスを含む。
【0178】
実施例27は、第1のユーザコンピューティングデバイスと、第1のユーザコンピューティングデバイスと通信するように構成された少なくとも1つの遠隔に配置されたコンピューティングデバイスと、を備えるシステムであって、少なくとも1つの遠隔に配置されたコンピューティングデバイスは、複数の公開暗号化鍵を第1のユーザコンピューティングデバイスに通信するように構成されており、第1のユーザコンピューティングデバイスは、少なくとも1つの秘密を複数のシェアに分割することであって、複数のシェアの少なくともサブセットは、少なくとも1つの秘密を再構築するのに十分である、分割することと、複数の公開暗号化鍵の異なる公開暗号化鍵に基づいて複数のシェアのそれぞれを暗号化して、複数の暗号化されたシェアを作成することと、暗号化されたシェアを少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信することとを行うように構成されており、少なくとも1つの遠隔に配置されたコンピューティングデバイスは、暗号化されたシェアを格納するように構成されている、システムを含む。
【0179】
実施例28は、少なくとも1つのプロセッサが、私有署名鍵を使用して複数の暗号化されたシェアのそれぞれに署名するようにさらに構成されている、実施例27のシステムを含む。
【0180】
実施例29は、少なくとも1つのプロセッサが、楕円曲線ディフィーヘルマン(ECDH)演算であって、それぞれが、私有署名鍵と複数の公開暗号化鍵のそれぞれの1つに基づいて決定される、複数のECDH鍵を決定すること、それぞれが、それぞれのECDH鍵、公開署名鍵、および複数の公開暗号化鍵のそれぞれの1つのハッシュとして決定される、複数の高度暗号化標準(AES)鍵を決定すること、および複数のシェアのそれぞれを、それぞれのAES鍵とともに、複数の暗号化されたシェアのそれぞれの1つに暗号化することを含む、演算を使用して暗号化するように構成されている、実施例27~28のいずれかのシステムを含む。
【0181】
実施例30は、複数の公開暗号化鍵の異なる各公開暗号化鍵が、異なるマスターシード鍵から階層的決定論的(HD)方法論を使用して導出されている、実施例27~29のいずれかのシステムを含む。
【0182】
実施例31は、シェアがシャミア秘密シェアである、実施例27~30のいずれかのシステムを含む。
【0183】
実施例32は、第1のユーザコンピューティングデバイスが、多項式補間またはシャミア秘密分散のうちの少なくとも1つを介して、少なくとも1つの秘密を複数のシェアに分割するように構成されている、実施例27~31のいずれかのシステムを含む。
【0184】
実施例33は、シェアがシャミアシェアであり、第1のユーザコンピューティングデバイスが、シャミア秘密分散を使用して、少なくとも1つの秘密を複数のシェアに分割するように構成されている、実施例27~32のいずれかのシステムを含む。
【0185】
実施例34は、少なくとも1つの秘密が、鍵、暗号鍵、私有鍵、公開暗号化鍵、暗号化鍵、署名鍵、およびパスワードのうちの少なくとも1つを含む、実施例27~33のいずれかのシステムを含む。
【0186】
実施例35は、少なくとも1つの秘密を使用して、データを暗号化し、データを復号化し、トランザクションに署名することができる、実施例27~34のいずれかのシステムを含む。
【0187】
実施例36は、複数の公開暗号化鍵が、それぞれ、異なる私有鍵との異なる暗号化鍵ペアの一部であり、異なる各私有鍵は、異なるコンピューティングデバイスに格納されている、実施例27~35のいずれかのシステムを含む。
【0188】
実施例37は、異なる各コンピューティングデバイスが、異なるグループの個人によって制御されている、実施例36のシステムを含む。
【0189】
実施例38は、異なる各コンピューティングデバイスが、他の異なるコンピューティングデバイスとは異なる物理的位置に配置されている、実施例36~37のいずれかのシステムを含む。
【0190】
実施例39は、第2のユーザコンピューティングデバイスをさらに備え、第2のユーザコンピューティングデバイスは、少なくとも1つの回復公開暗号化鍵を少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されており、少なくとも1つの遠隔に配置されたコンピューティングデバイスは、少なくとも1つの回復暗号化されたシェアを第2のユーザコンピューティングデバイスに通信するように構成されており、第2のユーザコンピューティングデバイスは、少なくとも1つの回復公開暗号化鍵に対応する少なくとも1つの回復私有復号化鍵に基づいて、少なくとも1つの回復暗号化されたシェアのそれぞれを復号化して、第1の複数の暗号化されていないシェアを作成するように構成されており、第2のユーザコンピューティングデバイスは、第1の複数の暗号化されていないシェアを使用して少なくとも1つの秘密を再構築するように構成されている、実施例29~38のいずれかのシステムを含む。
【0191】
実施例40は、少なくとも1つの回復公開暗号化鍵の異なる各回復公開暗号化鍵が、少なくとも1つの回復私有復号化鍵の異なる回復私有復号化鍵との異なる回復暗号化鍵ペアの一部である、実施例39のシステムを含む。
【0192】
実施例41は、少なくとも1つの回復私有復号化鍵が、単一の回復私有復号化鍵であり、少なくとも1つの回復公開暗号化鍵が、単一の回復公開暗号化鍵である、実施例39~40のいずれかのシステムを含む。
【0193】
実施例42は、第2のコンピューティングデバイスが、楕円曲線ディフィーヘルマン(ECDH)演算であって、それぞれが、それぞれの回復公開署名鍵と少なくとも1つの回復私有復号化鍵のそれぞれの1つに基づいて決定される、少なくとも1つの回復ECDH鍵を決定すること、回復ECDH鍵ごとに、それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、およびそれぞれの回復公開暗号化鍵のハッシュとして高度暗号化標準(AES)鍵を決定すること、および少なくとも1つの回復暗号化されたシェアのそれぞれを、対応する回復AES鍵と組み合わせて、第1の複数の暗号化されていないシェアのそれぞれの1つに復号化することを含む、演算を使用して復号化するように構成されている、実施例41のシステムを含む。
【0194】
実施例43は、第1のユーザコンピューティングデバイスと、第1のユーザコンピューティングデバイスと通信するように構成された少なくとも1つの遠隔に配置されたコンピューティングデバイスと、を備えるシステムであって、ユーザコンピューティングデバイスは、少なくとも1つの回復公開暗号化鍵を少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信するように構成されており、少なくとも1つの回復私有復号化鍵は、少なくとも1つの回復公開暗号化鍵に対応しており、少なくとも1つの遠隔に配置されたコンピューティングデバイスは、第1の複数の回復暗号化されたシェアの少なくともサブセットをユーザコンピューティングデバイスに通信するように構成されており、ユーザコンピューティングデバイスは、少なくとも1つの回復公開暗号化鍵に対応する少なくとも1つの回復私有復号化鍵に基づいて、第1の複数の回復暗号化されたシェアのサブセットのそれぞれを復号化して、第1の複数の暗号化されていないシェアを作成し、第1の複数の暗号化されていないシェアを使用して、少なくとも1つの秘密を再構築するように構成されている、システムを含む。
【0195】
実施例44は、少なくとも1つの回復私有復号化鍵が、単一の回復私有復号化鍵であり、少なくとも1つの回復公開暗号化鍵が、単一の回復公開暗号化鍵である、実施例43のシステムを含む。
【0196】
実施例45は、暗号化されていないシェアがシャミア秘密シェアである、実施例43~44のいずれかのシステムを含む。
【0197】
実施例46は、少なくとも1つのプロセッサが、多項式補間またはシャミア秘密分散のうちの少なくとも1つを介して第1の複数の暗号化されていないシェアを使用して少なくとも1つの秘密を再構築するように構成されている、実施例43~45のいずれかのシステムを含む。
【0198】
実施例47は、暗号化されていないシェアがシャミアシェアであり、少なくとも1つのプロセッサが、シャミア秘密分散を使用して第2の複数のシェアを使用して少なくとも1つの秘密を再構築するように構成されている、実施例43~46のいずれかのシステムを含む。
【0199】
実施例48は、少なくとも1つの秘密が、鍵、暗号鍵、私有鍵、公開暗号化鍵、暗号化鍵、署名鍵、およびパスワードのうちの少なくとも1つを含む、実施例43~47のいずれかのシステムを含む。
【0200】
実施例49は、少なくとも1つの秘密を使用して、データを暗号化し、データを復号化し、トランザクションに署名することができる、実施例43~48のいずれかのシステムを含む。
【0201】
実施例50は、少なくとも1つの回復公開暗号化鍵の異なる各回復公開暗号化鍵が、少なくとも1つの回復私有復号化鍵の異なる回復私有復号化鍵との異なる回復暗号化鍵ペアの一部である、実施例43~49のいずれかのシステムを含む。
【0202】
実施例51は、ユーザコンピューティングデバイスが、楕円曲線ディフィーヘルマン(ECDH)演算であって、それぞれが、それぞれの回復公開署名鍵と少なくとも1つの回復私有復号化鍵のそれぞれの1つに基づいて決定される、少なくとも1つの回復ECDH鍵を決定することと、回復ECDH鍵ごとに、それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、および少なくとも1つの回復公開暗号化鍵のそれぞれの1つのハッシュとして高度暗号化標準(AES)鍵を決定することと、第1の複数の回復暗号化されたシェアのサブセットのそれぞれを、対応する回復AES鍵と組み合わせて、それぞれの暗号化されていないシェアに復号化することとを含む、演算を使用して復号化するように構成されている、実施例43~50のいずれかのシステムを含む。
【0203】
実施例52は、複数の公開暗号化鍵を少なくとも1つの遠隔に配置されたコンピューティングデバイスから第1のユーザコンピューティングデバイスに通信することと、第1のユーザコンピューティングデバイスで少なくとも1つの秘密を複数のシェアに分割することであって、複数のシェアの少なくともサブセットは、少なくとも1つの秘密を再構築するのに十分である、分割することと、複数の暗号化されたシェアを作成するために、第1のユーザコンピューティングデバイスで複数の公開暗号化鍵の異なる公開暗号化鍵に基づいて複数のシェアのそれぞれを暗号化することと、暗号化されたシェアを第1のユーザコンピューティングデバイスから少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信することと、暗号化されたシェアを少なくとも1つの遠隔に配置されたコンピューティングデバイスに格納することと、を含む、コンピュータ化された方法を含む。
【0204】
実施例53は、少なくとも1つのモバイルストレージデバイスを介して、複数の暗号化されたシェアのそれぞれを少なくとも1つの遠隔に配置されたコンピューティングデバイスから複数の信頼できるコンピューティングデバイスのそれぞれの1つに転送することと、信頼できる各コンピューティングデバイスで、それぞれの暗号化されたシェアをそれぞれの暗号化されていないシェアに復号化することと、信頼できる各コンピューティングデバイスで、暗号化されていないそれぞれのシェアが、暗号化される前に複数のシェアの1つと一致することを検証することと、をさらに含む、実施例52のコンピュータ化された方法を含む。
【0205】
実施例54は、復号化することが、楕円曲線ディフィーヘルマン(ECDH)演算であって、それぞれが、公開署名鍵と少なくとも1つの私有復号化鍵のそれぞれの1つに基づいて決定される、少なくとも1つのECDH鍵を決定すること、回復ECDH鍵ごとに、高度暗号化標準(AES)鍵を、それぞれのECDH鍵、公開署名鍵、および少なくとも1つの公開暗号化鍵のそれぞれの1つのハッシュとして決定すること、および暗号化された各シェアを、対応する回復AES鍵と組み合わせて、それぞれの暗号化されていないシェアに復号化することを含む、演算を使用することを含む、実施例53のコンピュータ化された方法を含む。
【0206】
実施例55は、第1のユーザコンピューティングデバイスにおいて、第1の複数のシェアのそれぞれのハッシュを生成することと、第1の複数のシェアのハッシュを少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信することと、ハッシュのそれぞれを少なくとも1つの遠隔に配置されたコンピューティングデバイスから複数の信頼できるコンピューティングデバイスのそれぞれの1つに転送することと、暗号化されていない各シェアから回復ハッシュを生成することと、をさらに含み、検証することが、ハッシュを回復ハッシュと比較して、暗号化されていないシェアのデータが正確であるかどうかを判断することを含む、実施例53~54のいずれかのコンピュータ化された方法を含む。
【0207】
実施例56は、暗号化されていないシェアを暗号化された回復暗号化されたシェアに再暗号化することと、暗号化されていないシェアを少なくとも1つの遠隔に配置されたコンピューティングデバイスに転送することと、回復暗号化されたシェアを少なくとも1つの遠隔に配置されたコンピューティングデバイスから第2のユーザコンピューティングデバイスに通信することと、複数の復号化されたシェアを作成するために、第2のユーザコンピューティングデバイスで回復暗号化されたシェアのそれぞれを復号化することと、複数の復号化されたシェアを使用して、第2のユーザコンピューティングデバイスで少なくとも1つの秘密を再構築することと、をさらに含む、実施例55のコンピュータ化された方法を含む。
【0208】
実施例57は、再暗号化することが、楕円曲線ディフィーヘルマン(ECDH)演算であって、それぞれが、それぞれの回復私有署名鍵とそれぞれの回復公開暗号化鍵に基づいて決定される、複数の回復ECDH鍵を決定すること、それぞれが、それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、およびそれぞれの回復公開暗号化鍵のハッシュとして決定される、複数の高度暗号化標準(AES)鍵を決定すること、および暗号化されていない各シェアを、それぞれのAES鍵とともに、回復暗号化されたシェアのそれぞれの1つに暗号化することを含む、演算を使用することを含む、実施例55~56のいずれかのコンピュータ化された方法を含む。
【0209】
実施例58は、少なくとも1つの回復公開暗号化鍵を、ユーザコンピューティングデバイスから少なくとも1つの遠隔に配置されたコンピューティングデバイスに通信することであって、少なくとも1つの回復私有復号化鍵が、少なくとも1つの回復公開暗号化鍵に対応する、通信することと、第1の複数の回復暗号化されたシェアの少なくともサブセットを少なくとも1つの遠隔に配置されたコンピューティングデバイスからユーザコンピューティングデバイスに通信することと、少なくとも1つの回復公開暗号化鍵に対応する少なくとも1つの回復私有復号化鍵に基づいて、ユーザコンピューティングデバイスで第1の複数の回復暗号化されたシェアのサブセットのそれぞれを復号化して、第1の複数の暗号化されていないシェアを作成することと、第1の複数の暗号化されていないシェアを使用して、ユーザコンピューティングデバイスで少なくとも1つの秘密を再構築することと、を含む、コンピュータ化された方法を含む。
【0210】
実施例59は、第1の複数の回復暗号化されたシェアのサブセットを少なくとも1つの遠隔に配置されたコンピューティングデバイスからユーザコンピューティングデバイスに通信する前に、少なくとも1つの回復公開暗号化鍵に基づいて、1つ以上の信頼できるコンピューティングデバイスで第1の複数のシェアを、第1の複数の回復暗号化されたシェアの少なくともサブセットに暗号化することをさらに含む、実施例58のコンピュータ化された方法を含む。
【0211】
実施例60は、暗号化することが、楕円曲線ディフィーヘルマン(ECDH)演算であって、それぞれが、それぞれの回復私有署名鍵とそれぞれの回復公開暗号化鍵に基づいて決定される、複数の回復ECDH鍵を決定すること、それぞれが、それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、およびそれぞれの回復公開暗号化鍵のハッシュとして決定される、複数の高度暗号化標準(AES)鍵を決定すること、および複数の暗号化されていないシェアのそれぞれを、それぞれのAES鍵とともに、第1の複数の回復暗号化されたシェアのそれぞれの1つに暗号化することを含む、演算を使用することを含む、実施例59のコンピュータ化された方法を含む。
【0212】
実施例61は、復号化することが、楕円曲線ディフィーヘルマン(ECDH)演算であって、それぞれが、それぞれの回復公開署名鍵と少なくとも1つの回復私有復号化鍵の1つに基づいて決定される、少なくとも1つの回復ECDH鍵を決定すること、回復ECDH鍵ごとに、それぞれの回復ECDH鍵、それぞれの回復公開署名鍵、および少なくとも1つの回復公開暗号化鍵の1つのハッシュとして高度暗号化標準(AES)鍵を決定すること、および第1の複数の回復暗号化されたシェアのサブセットのそれぞれを、対応する回復AES鍵と組み合わせて、それぞれの暗号化されていないシェアに復号化することを含む、演算を使用することを含む、実施例58~60のいずれかのコンピュータ化された方法を含む。
【国際調査報告】