(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】シークレット分割およびメタデータ記憶
(51)【国際特許分類】
H04L 9/08 20060101AFI20241203BHJP
H04L 9/32 20060101ALI20241203BHJP
G09C 1/00 20060101ALI20241203BHJP
【FI】
H04L9/08 A
H04L9/32 200A
G09C1/00 650Z
(21)【出願番号】P 2022551266
(86)(22)【出願日】2021-02-08
(86)【国際出願番号】 US2021017019
(87)【国際公開番号】W WO2021173330
(87)【国際公開日】2021-09-02
【審査請求日】2024-02-06
(32)【優先日】2020-02-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521151175
【氏名又は名称】ティーゼロ・アイピー,エルエルシー
(74)【代理人】
【識別番号】100118902
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100196508
【氏名又は名称】松尾 淳一
(74)【代理人】
【識別番号】100162846
【氏名又は名称】大牧 綾子
(72)【発明者】
【氏名】オルネラス,マイケル・ディー
(72)【発明者】
【氏名】エンペイ,ジェシー
(72)【発明者】
【氏名】ウェルカー,ブラッド
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2019-153842(JP,A)
【文献】特開2007-334417(JP,A)
【文献】米国特許出願公開第2017/0005797(US,A1)
【文献】米国特許出願公開第2007/0160198(US,A1)
【文献】国際公開第2019/021105(WO,A1)
【文献】RAMAN, K. V. and VARSHNEY, L. R.,Dynamic Distributed Storage for Scaling Blockchains,arXiv,1711.07617v2,[online],2018年01月07日,<URL:https://arxiv.org/abs/1711.07617v2>,[2024年10月28日 検索]
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
H04L 9/32
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサ
であって、
保護されるべきシークレットを決定し、
前記シークレットを、複数のシークレットシェアに分割し、前記複数のシークレットシェアの少なくともサブセットは、前記シークレットを再構成するために必要とされ、
前記複数のシークレットシェアの各
それぞれのシークレットシェアを、それぞれのシェアホルダに配布するために、それぞれのポータブル記憶デバイスまたは媒体に転送し、
前記複数のシークレットシェアの各
それぞれのシークレットシェア
の少なくともそれぞれのハッシュを
有するメタデータを生成し、
前記複数のシークレットシェアの各それぞれのシークレットシェアの前記少なくとも前記それぞれのハッシュを有する前記メタデータを個別の記憶デバイスまたは媒体に格納し、前記個別の記憶デバイスまたは媒体は、前記複数のシークレットシェアの各それぞれのシークレットシェアのために用いられるそれぞれのポータブル記憶デバイスまたは媒体のいずれとも別となるように構成された、少なくとも1つのプロセッサを備える、コンピューティングシステム。
【請求項2】
前記シークレットと、前記
複数のシークレットシェアと、前記
複数のシークレットシェアの
それぞれのハッシュとの各々は、異なるキャラクタの文字列である、請求項1に記載のコンピューティング
システム。
【請求項3】
前記シークレットは、秘密鍵を再構成するために使用
される暗号秘密鍵またはニーモニックフレーズもしくはシードである、請求項1に記載のコンピューティング
システム。
【請求項4】
前記少なくとも1つのプロセッサは、Shamirシークレットシェアまたは多項式補間を使用して、前記シークレットを、前記複数のシークレットシェアに分割するように構成される、請求項1に記載のコンピューティング
システム。
【請求項5】
前記少なくとも1つのプロセッサは、前記シークレットを再構成するために
前記複数のシークレットシェアの各
それぞれのシークレットシェアを少なくとも1回使用することによって、前記
複数のシークレットシェアを検証するように構成され、
前記
複数のシークレットシェアは、前記
複数のシークレットシェアが正常に検証された後、
前記それぞれのポータブル記憶デバイスまたは媒体に単に転送される、請求項1に記載のコンピューティング
システム。
【請求項6】
前記少なくとも1つのプロセッサは、
前記シークレットを決定する前に、前記コンピューティング
システムにおいて、少なくとも1つの記憶デバイスの内容を消去し、オペレーティングシステムのクリーンインストールを実行し、
前記複数のシークレットシェアの各
それぞれのシークレットシェアを
前記それぞれのポータブル記憶デバイスまたは媒体に転送した後、前記コンピューティング
システムにローカルに格納された前記シークレットおよび前記
複数のシークレットシェアのコピーを削除するように構成される、請求項1に記載のコンピューティング
システム。
【請求項7】
前記シークレットは、暗号秘密鍵であるか、または前記暗号秘密鍵を回復するために使用
されるニーモニックフレーズもしくはシードであり、
前記少なくとも1つのプロセッサは、前記暗号秘密鍵またはニーモニックフレーズもしくはシードを生成することにより、前記シークレットを決定するように構成される、請求項1に記載のコンピューティング
システム。
【請求項8】
前記少なくとも1つのプロセッサはまた、前記メタデータにおいて、以下の情報、す
なわち、
前記暗号秘密鍵に対応する公開鍵と、
分散型台帳における少なくとも1つのアドレスとを生成する、請求項7に記載のコンピューティング
システム。
【請求項9】
前記少なくとも1つのプロセッサは、
それぞれのシェアホルダから取得された少なくとも2つのシークレットシェア記憶デバイスまたは媒体から、取得されるシークレットシェアを決定し、
前記少なくとも2つのシークレットシェア記憶デバイスまたは媒体から取得された前記シークレットシェアを使用して、前記シークレットの再構成を試みるように構成される、請求項1に記載のコンピューティング
システム。
【請求項10】
前記少なくとも1つのプロセッサは、
前記シークレットの再構成の前記試みを行っている間に、前記取得されたシークレットシェアから前記シークレット
が正常に再構成
されな
かった場合、前記メタデータ
のうちの前記複数のシークレットシェアの各それぞれのシークレットシェアの前記少なくとも前記それぞれのハッシュに基づいて、前記取得されたシークレットシェアのうちの少なくとも1つのシークレットシェアを、
生成された前記複数のシークレットシェアの1つではないとして特定するように構成される、請求項9に記載のコンピューティング
システム。
【請求項11】
シークレット分割およびメタデータ記憶のための方法であって、
保護されるべきシークレットを決定するステップと、
前記シークレットを、複数のシークレットシェアに分割するステップであって、前記複数のシークレットシェアの少なくともサブセットが、前記シークレットを再構成するために必要とされる、分割するステップと、
前記複数のシークレットシェアの各
それぞれのシークレットシェアを、それぞれのシェアホルダに配布するために、それぞれのポータブル記憶デバイスまたは媒体に転送するステップと、
前記複数のシークレットシェアの少なくとも各
それぞれのシークレットシェアのハッシュを
有するメタデータを生成するステップと、
前記複数のシークレットシェアの各それぞれのシークレットシェアの前記少なくとも前記それぞれのハッシュを有する前記メタデータを個別の記憶デバイスまたは媒体に格納するステップであって、前記個別の記憶デバイスまたは媒体は、前記複数のシークレットシェアの各それぞれのシークレットシェアのために用いられるそれぞれのポータブル記憶デバイスまたは媒体のいずれとも別となる、ステップとを含む、方法。
【請求項12】
前記シークレットと、前記
複数のシークレットシェアと、前記
複数のシークレットシェアの
それぞれのハッシュとの各々は、異なるキャラクタの文字列である、請求項11に記載の方法。
【請求項13】
前記シークレットは、秘密鍵を再構成するために使用
される暗号秘密鍵またはニーモニックフレーズもしくはシードである、請求項11に記載の方法。
【請求項14】
前記分割するステップは、Shamirシークレットシェアまたは多項式補間を使用して前記シークレットを、前記複数のシークレットシェアに分割するステップを含む、請求項11に記載の方法。
【請求項15】
前記シークレットを再構成するために
前記複数のシークレットシェアの各
それぞれのシークレットシェアを少なくとも1回使用することによって、前記
複数のシークレットシェアを検証するステップをさらに含み、
前記
複数のシークレットシェアは、前記
複数のシークレットシェアが正常に検証された後、
前記それぞれのポータブル記憶デバイスまたは媒体に単に転送される、請求項11に記載の方法。
【請求項16】
前記シークレットを決定するステップの前に、コンピューティング
システムにおいて、少なくとも1つの記憶デバイスの内容を消去し、オペレーティングシステムのクリーンインストールを実行するステップと、
前記複数のシークレットシェアの各
それぞれのシークレットシェアを
前記それぞれのポータブル記憶デバイスまたは媒体に転送するステップの後、前記コンピューティング
システムにローカルに格納された前記シークレットおよび前記
複数のシークレットシェアのコピーを削除するステップとをさらに含む、請求項11
に記載の方法。
【請求項17】
前記シークレットは、暗号秘密鍵であるか、または前記暗号秘密鍵を回復するために使用
されるニーモニックフレーズもしくはシードであり、
前記シークレットは、前記暗号秘密鍵またはニーモニックフレーズもしくはシードを生成することによって決定される、請求項11に記載の方法。
【請求項18】
前記メタデータにおいて、以下の情報、すなわち、
前記暗号秘密鍵に対応する公開鍵と、
分散型台帳における少なくとも1つのアドレスと
を生成するステップをさらに含む、請求項17に記載の方法。
【請求項19】
それぞれのシェアホルダから取得された少なくとも2つのシークレットシェア記憶デバイスまたは媒体の各々から、取得されるシークレットシェアを決定するステップと、
前記少なくとも2つのシークレットシェア記憶デバイスまたは媒体
の各々から取得された前記シークレットシェアを使用して、前記シークレットの再構成を試みるステップとをさらに含む、請求項11に記載の方法。
【請求項20】
前記シークレットの再構成の前記試みを行っている間に、前記取得されたシークレットシェアから前記シークレット
が正常に再構成
されなかった場合、前記メタデータ
のうちの前記複数のシークレットシェアの各それぞれのシークレットシェアの前記少なくとも前記それぞれのハッシュに基づいて
、取得されたシークレットシェアのうちの少なくとも1つのシークレットシェアを、
生成された前記複数のシークレットシェアの1つではないとして特定するステップをさらに含む、請求項19に記載の方法。
【請求項21】
少なくとも1つのプロセッサ
であって、
複数のシェアホルダのうちの少なくとも2人から取得された少なくとも2つのシークレットシェア記憶デバイスまたは媒体の各々から、取得されるシークレットシェアを決定し、
前記
複数のシークレットシェアが前記複数のシェアホルダに配布される前に生成された複数のシークレットシェアの少なくともハッシュのリストを有するメタデータを判定し、
前記少なくとも2つのシークレットシェア記憶デバイスまたは媒体から取得され
たシークレットシェアを使用して
、シークレットの再構成を試み、
前記シークレットの再構成の前記試みを行っている間に、前記取得されたシークレットシェアから前記シークレット
が正常に再構成
されなかった場合、前記メタデータ
のうちの前記複数のシークレットシェアの前記少なくとも前記ハッシュの前記リストに基づいて、前記取得されたシークレットシェアのうちの少なくとも1つのシークレットシェアを、
生成された前記複数のシークレットシェアの1つではないとして特定するように構成された、
少なくとも1つのプロセッサを備える、コンピューティング
システム。
【請求項22】
前記シークレットと、前記取得されたシークレットシェアと、前記複数のシークレットシェアのハッシュとの各々は、異なるキャラクタの文字列である、請求項21に記載のコンピューティング
システム。
【請求項23】
前記シークレットは、秘密鍵を再構成するために使用
される暗号秘密鍵またはニーモニックフレーズもしくはシードである、請求項21に記載のコンピューティング
システム。
【請求項24】
前記少なくとも1つのプロセッサは、Shamir結合を使用して前記シークレットを再構成することを試みるように構成される、請求項21に記載のコンピューティング
システム。
【請求項25】
前記少なくとも1つのプロセッサは
、それぞれの
取得されたシークレットシェアを、前記メタデータにおけるハッシュの前記リストと比較することによって、前記取得されたシークレットシェア
の各それぞれの取得されたシークレットシェアを検証するように構成され、
前記それぞれの取得され
たシークレットシェアが、前記メタデータにおけるハッシュの前記リストにおけるハッシュと一致する場合、
前記それぞれの取得され
たシークレットシェアは正常に検証される、
ことをさらに備える、請求項21に記載のコンピューティング
システム。
【請求項26】
前記少なくとも1つのプロセッサは、前記
複数のシークレットシェアが正常に検証された後にのみ、前記シークレットを再構成することを試みるように構成される、請求項25に記載のコンピューティング
システム。
【請求項27】
前記少なくとも1つのプロセッサは、前記シークレットが、前記取得されたシークレットシェアから
、再構成されたシークレットとして再構成されたときに、前記再構成されたシークレットを必要とする以下のアクション、すなわち、
前記再構成されたシークレットを使用してデータを暗号化または解読すること、
前記再構成されたシークレットに基づいて、分散型台帳におけるトランザクションアドレスを生成すること、または、
前記再構成されたシークレットを使用してトランザクションに署名することであって、前記トランザクションは、前記分散型台帳におけるアドレスから暗号通貨を送金する、署名すること、のうちの少なくとも1つを実行するように構成される、請求項21に記載のコンピューティング
システム。
【請求項28】
前記少なくとも1つのプロセッサは、前記取得されるシークレットシェアが決定される前に、
前記シークレットを、前記複数のシークレットシェアに分割することであって、前記複数のシークレットシェアの少なくともサブセットは、前記シークレットを再構成するために必要とされる、分割することと、
前記複数のシークレットシェアの各
それぞれのシークレットシェアをそれぞれのポータブル記憶デバイスまたは媒体に転送することとを行うように構成され、
各ポータブル記憶デバイスまたは媒体は、前記複数のシェアホルダに配布される、請求項21に記載のコンピューティング
システム。
【請求項29】
方法であって、
複数のシェアホルダのうちの少なくとも2人から取得された少なくとも2つのシークレットシェア記憶デバイスまたは媒体の各々から取得されるシークレットシェアを決定するステップと、
前記
複数のシークレットシェアが前記複数のシェアホルダに配布される前に生成された複数のシークレットシェアの少なくともハッシュのリストを有するメタデータを判定するステップと、
前記少なくとも2つのシークレットシェア記憶デバイスまたは媒体から取得され
たシークレットシェアを使用して
、シークレットの再構成を試みるステップと、
前記シークレットの再構成の前記試みが行われている間に、前記取得されたシークレットシェアから前記シークレット
が正常に再構成
されなかった場合、前記メタデータ
のうちの前記複数のシークレットシェアの前記少なくとも前記ハッシュのリストに基づいて、前記取得されたシークレットシェアのうちの少なくとも1つのシークレットシェアを、
生成された前記複数のシークレットシェアの1つではないとして特定するステップとを含む、方法。
【請求項30】
前記シークレットと、前記取得されたシークレットシェアと、前記複数のシークレットシェアの前記ハッシュとの各々は、異なるキャラクタの文字列である、請求項29に記載の方法。
【請求項31】
前記シークレットは、秘密鍵を再構成するために使用
される暗号秘密鍵またはニーモニックフレーズもしくはシードである、請求項29に記載の方法。
【請求項32】
Shamir結合を使用して前記シークレットを再構成することを試みるステップをさらに含む、請求項29に記載の方法。
【請求項33】
それぞれの
取得されたシークレットシェアを、前記メタデータにおけるハッシュの前記リストと比較することによって、前記取得されたシークレットシェアの各
それぞれの取得されたシークレットシェアを検証するステップをさらに含み、
前記それぞれの
取得されたシークレットシェアが、前記メタデータにおけるハッシュの前記リストにおけるハッシュと一致する場合、
前記それぞれの
取得されたシークレットシェアは正常に検証される、請求項29に記載の方法。
【請求項34】
前記試みるステップは、前記
複数のシークレットシェアが正常に検証された後にのみ、前記シークレットを再構成することを試みるステップを含む、請求項33に記載の方法。
【請求項35】
前記シークレットが、前記取得されたシークレットシェアから
再構成されたシークレットとして再構成されたときに、前記再構成されたシークレットを必要とする以下のアクション、すなわち、
前記再構成されたシークレットを使用してデータを暗号化または解読するステップ、
前記再構成されたシークレットに基づいて、分散型台帳におけるトランザクションアドレスを生成するステップ、または、
前記再構成されたシークレットを使用してトランザクションに署名するステップであって、前記トランザクションは、前記分散型台帳におけるアドレスから暗号通貨を送金する、署名するステップのうちの少なくとも1つを実行するステップをさらに含む、請求項29に記載の方法。
【請求項36】
前記取得されるシークレットシェアが決定される前に、
前記シークレットを、前記複数のシークレットシェアに分割するステップであって、前記複数のシークレットシェアの少なくともサブセットは、前記シークレットを再構成するために必要とされる、分割するステップと、
前記複数のシークレットシェアの各
それぞれのシークレットシェアをそれぞれのポータブル記憶デバイスまたは媒体に転送するステップとをさらに含み、
各ポータブル記憶デバイスまたは媒体は、前記複数のシェアホルダに配布される、請求項29に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本願は、2020年2月26日に出願された「SECRET SPLITTING AND METADATA STORAGE(シークレット分割およびメタデータ記憶)」と題する米国仮特許出願第62/981,663号(代理人整理番号270.034USPR)の利益を主張し、そのすべては、参照により本明細書に組み込まれる。
【背景技術】
【0002】
[0002]データを安全に格納および送信するために暗号化を使用することができる。鍵は、データの暗号化および解読、またはトランザクションの署名に使用することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
[0003]コンピューティングデバイスは、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリとを含む。少なくとも1つのプロセッサは、保護されるべきシークレットを決定するように構成される。少なくとも1つのプロセッサはまた、シークレットを、複数のシークレットシェア(secret share)に分割するように構成され、シークレットシェアの少なくともサブセットは、シークレットを再構成するために必要とされる。少なくとも1つのプロセッサはまた、各シークレットシェアを、それぞれのシェアホルダに配布するために、それぞれのポータブル記憶デバイスまたは媒体に転送するように構成される。少なくとも1つのプロセッサはまた、各シークレットシェアの少なくともハッシュを用いてメタデータを生成するように構成され、メタデータは、シークレットシェアを用いて、ポータブル記憶デバイスまたは媒体とは別に格納される。
【0004】
[0004]コンピューティングデバイスは、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリとを含む。少なくとも1つのプロセッサは、シェアホルダから取得された少なくとも2つのシークレットシェア記憶デバイスまたは媒体の各々から、取得されるシークレットシェアを決定するように構成される。少なくとも1つのプロセッサはまた、シークレットシェアが複数のシェアホルダに配布される前に生成された複数のシークレットシェアの少なくともハッシュのリストを有するメタデータを判定するように構成される。少なくとも1つのプロセッサはまた、少なくとも2つのシークレットシェア記憶デバイスまたは媒体から取得されたシークレットシェアを使用して、シークレットを再構成しようと試みるように構成される。少なくとも1つのプロセッサはまた、取得されたシークレットシェアからシークレットを再構成できない場合、取得されたシークレットシェアのうちの少なくとも1つのシークレットシェアを、メタデータに基づいて、正しくないとして特定するように構成される。
【0005】
[0005]図面は例示的な実施形態のみを示しており、したがって、範囲を限定するものと見なされるべきではないことを理解した上で、添付の図面を使用して、例示的な実施形態をさらに具体的かつ詳細に説明する。
【図面の簡単な説明】
【0006】
【
図1】[0006]シークレット分割およびメタデータ記憶のための例示的なシステムを示すブロック図である。
【
図2】[0007]シークレット分割およびメタデータ記憶のためにシステムにおいて使用される例示的なコンピューティングデバイスを示すブロック図である。
【
図3】[0008]例示的なシークレット生成器を示すブロック図である。
【
図4】[0009]シークレット分割およびメタデータ記憶のための例示的なシステムを示すブロック図である。
【
図5】[0010]シークレットを分割し、メタデータを記憶するための例示的な方法を示すフロー図である。
【
図6】[0011]複数のシークレットシェアのうちの少なくとも2つからシークレットを再構成するための例示的な方法を示すフロー図である。
【
図7】[0012]本開示のいくつかの実施形態を利用できるコンピュータシステムの例を示す図である。
【発明を実施するための形態】
【0007】
[0013]一般的な慣例に従って、記載された様々な特徴は、縮尺どおりに描かれておらず、例示的な実施形態に関連する特定の特徴を強調するために描かれている。
[0014]以下の詳細な説明では、本明細書の一部を形成し、特定の例示的な実施形態を例として示す添付の図面を参照する。しかしながら、他の実施形態を利用することができ、論理的、機械的、および電気的な変更を行うことができることを理解されたい。さらに、図面および明細書に示される方法は、個々のステップを実行する場合がある順序を限定するものとして解釈されるべきではない。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【0008】
[0015]キャラクタの文字列は、データの暗号化および解読、ならびに、たとえば暗号通貨トランザクションなどの暗号トランザクションへの署名に使用することができる。特定の文字列を安全に保ち、限られた数の人だけがアクセスできるようにすることが望ましい。これらの文字列は、本明細書では「シークレット」と呼ばれる。シークレットの1つのタイプは、秘密鍵、公開鍵、暗号鍵、解読鍵、署名鍵、ならびに、パスワード、シークレットフレーズ、アカウント番号、または、鍵を再構成するために使用できるニーモニックフレーズ(mnemonic phrase)もしくはシード(seed)を含む(しかしながら、これらに限定されない)暗号鍵である。たとえば、シークレットは、プールされた暗号通貨を保持する分散型台帳におけるアドレスの秘密鍵(または、秘密鍵から導出されるニーモニックまたはシード)である場合がある。そのようなシークレットは、高価値を有する可能性があり、セキュリティを確保するために注意が必要である。さらに、シークレットは、たとえば、文字列として配置されたデジタル画像の生データ、文字列として配置されたデジタルビデオファイルの生データ、文字列として配置されたデジタルオーディオファイルの生データ、または、キャラクタの文字列として配置された他の任意のタイプのデジタルファイルのように、キャラクタの文字列として表すことができる任意のデジタルデータとすることができる。
【0009】
[0016]本明細書で使用されるように、「分散型台帳」という用語は、相互接続された複数のノードにわたって配布され、複数のノードが、台帳のコピーを格納する電子台帳を称する。いくつかの例では、分散型台帳は、分散型台帳内に格納されたデータを検証するために1つまたは複数のブロックチェーンを実施することができる。ブロックチェーンは、そのブロックを検証する各ブロックに添付された作業証明シール(proof-of-work seal)(ハッシュなど)を使用して、一度に1ブロックずつ構築される検証可能な永久台帳である。ブロックチェーンでは、前のブロックのハッシュが、現在のブロックに含まれているため、再帰により、現在のハッシュも、以前のすべてのブロックを、元々の起源ブロックに戻して検証する。ハッシュをブロックチェーンに挿入すると、そのハッシュが永続的に記録され、そのブロックがチェーンに追加された瞬間に、ハッシュされたデータのタイムスタンプ付きの存在証明を検証する公証人として機能する。将来のブロックは、チェーンに格納されたデータの操作、またはチェーンの再編成から保護するレイヤを追加するので、チェーンにおける以前のブロックに変更を加えることができないという追加の確実性を提供する。ブロックチェーンは、分散型台帳の実施である。例示的なブロックチェーンは、Bitcoinブロックチェーン、Ethereumブロックチェーン、Ravencoinブロックチェーン、BigchainDB、Billon、Chain、Corda、Credits、Elements、Monax、Fabric、HydraChain、Hyperledger、Multichain、Openchain、Quorum、Sawtooth、およびStellarを含むが、これらに限定されない。
【0010】
[0017]対称暗号化および解読では、同じ鍵を使用して、暗号化および解読、たとえば、異なるブロックチェーンアドレス、アカウント、および/またはウォレットの1つまたは複数の秘密鍵の暗号化および解読を行うことができる。たとえば、Advanced Encryption Standard(AES)鍵を使用して、データを対称的に暗号化および/または解読できる。いくつかの構成では、シークレットは、AES鍵(またはAES鍵から導出されるニーモニックまたはシード)である場合がある。限定することなく、対称鍵は、以下の暗号化、すなわち、Twofish、Serpent、Advanced Encryption Standard(AES)、Blowfish、CAST5、Kuznyechik、RC4、Data Encryption Standard(DES)、Triple DES(3DES)、Skipjack、Safer+/++(Bluetooth)、IDEAおよび/または他のサイファブロックコーディング(CBC)バリエーションのいずれかに従って動作することができる。
【0011】
[0018]いくつかの構成では、シークレットは、非対称鍵(または、非対称鍵から導出されるニーモニックまたはシード)である場合がある。秘密鍵と、対応する公開鍵とを含む「公開/秘密鍵ペア」は、非対称暗号化において使用する場合がある。秘密鍵および公開鍵は、それぞれ解読秘密鍵および暗号化公開鍵と呼ばれることもある。公開鍵は、暗号化に使用された公開鍵に対応する秘密鍵を使用してのみ解読できるデータの暗号化に使用できる。例では、公開鍵を使用して、分散型台帳におけるトランザクションアドレスを生成することができ、対応する秘密鍵のみが、トランザクションアドレスから資金を使うトランザクションに署名できる。これは、暗号化および解読(または、トランザクションの署名)に、同じ鍵が使用されないため、「非対称」暗号化/解読と呼ばれることがある。いくつかの構成では、秘密鍵および公開鍵は、代わりにそれぞれ署名鍵および署名検証鍵と呼ばれることがある。一般に、秘密鍵(場合によっては公開鍵)を安全に保つことが望ましい。限定することなく、非対称鍵は、以下の暗号化、すなわち、Rivest-Shamir-Adleman(RSA)および楕円曲線暗号(ECC)(たとえば、Curve25519)、エドワーズ曲線デジタル署名アルゴリズム(EdDSA)(たとえば、Ed25519)などのいずれかに従って動作することができる。
【0012】
[0019]鍵を安全に保つことと、必要なときにアクセスできるようにすることとの間には、しばしばトレードオフがある。場合によっては、シークレットへのアクセスを1人のユーザに限定することは望ましくない。さらに、複数の人がシークレットを使用する必要があることが望ましい場合もある。例では、これは、組織の複数の取締役、役員、パートナ、および/または従業員が、鍵の使用時に参加する必要がある場合に役立つ。シークレットは、複数のシェアに分割でき、シェアのサブセットを使用して、シークレットを再構成できる。例では、シークレットは、Shamirシークレットシェア(シャミールの秘密の共有)および/または多項式補間(polynomial interpolation)を使用して、シークレットシェアのセットに分割される。「部分」、「シェア」、および「構成要素」(および、それらの変形)という用語は、分割されたシークレット(暗号鍵など)の複数の部分のうちの1つの部分を称するために、本明細書では置換可能に使用される。例では、特定のシークレットを再構成するために、特定の量のシークレットシェアが必要になる場合がある。たとえば、特定のシークレットを再構成するために、N個のシークレットシェアのうちのM個が必要とされるように、特定のシークレットが、N個のシークレットシェアに分割される場合がある。例では、N個のシークレットシェアを、様々なシェアホルダに配布することができる。例では、各シークレットシェアは、異なるシークレットシェアを受け取る別の個人または人々のグループと重複しない、別の個人または人々のグループ(シェアホルダ)に配布される。しかしながら、いくつかの構成では、複数のシークレットシェアが、同じ個人または人々のグループに提供される場合がある。
【0013】
[0020]例では、シークレットシェアは、たとえば、USB鍵/メモリスティック(または他のソリッドステートドライブ)、または光学または磁気ディスクなど、シェアホルダに配布するために、ポータブル記憶デバイスまたは媒体に格納することができる。例では、シークレットシェアを画面に表示し、書き留め、または別の手法で(Quick Response(QR)コード、バーコードなどへの)印刷によって物理的に配布できる。例では、シークレットのシェア(たとえば、鍵)は、電子メール、ショートメッセージサービス(SMS)、マルチメディアメッセージングサービス(MMS)、インスタントメッセージング、プッシュ通知(プッシュ検証通知など)、通知のポーリング(またはプル)、またはBluetooth、Wi-Fi、または近距離無線通信(NFC)送信のうちの少なくとも1つを使って、ユーザのデバイスへ電子的に配布できる。
【0014】
[0021]シークレットを分割し、異なる人々(または人々のグループ)に配布すると、セキュリティのレイヤが追加される。なぜなら、これは、鍵および暗号鍵を、悪意を持って再構成するために、異なるシェアホルダによる共謀が必要とされることを意味するからである。シークレットを再構成する必要がある場合は、N個のシークレットシェアのうちの少なくともM個を収集する必要がある。再構成に失敗した場合は、シークレットシェアが、正しいシークレットに再構成しないか、再構成中にエラーが発生したために、障害ポイントを特定することが困難である場合がある。言い換えると、障害の原因となったシークレットシェアを特定することが困難になる。最悪のシナリオでは、あまりにも多くのシークレットシェアが失われたり、盗まれたり、破損したりすると、シークレットが回復不能になる可能性がある。
【0015】
[0022]したがって、本システムおよび方法は、アクションを実行するために多数のシェアが必要とされる場合に、複数のシェアホルダが、シークレットのシェアを保持することを必要とするシステムを改善する。具体的には、本システムおよび方法は、シークレットの再構成中に問題があれば、問題の原因をトラブルシューティングするために使用できるメタデータを生成する。このメタデータは、(1)特定のシークレットシェアの配布手段(たとえば、エビデンスバッグ)を特定のシークレットシェアへ、および/または、(2)特定のシークレットシェアの配布手段(たとえば、エビデンスバッグ(evidence bag))を特定のシークレット/ウォレット番号へマッピングすることができる。
【0016】
[0023]本システムおよび方法は、シークレットの配布および記憶のため、従来のシステムを、他の手法で改善することができる。第1に、特定のシークレットシェアに対する配布手段(たとえば、エビデンスバッグ)を、特定のシークレットシェアに付番することに加えて、メタデータは、シークレットシェアのハッシュを含む。したがって、いくつかの構成では、取得されたシークレットシェアのハッシュは、シークレットを再構成する試みが行われる前に検証できる。たとえば、シークレットの再構成を任された人またはスクリプトは(たとえば、シークレットの再構成を試みる前に)、以下、すなわち、(1)シークレットシェアがシェアホルダに配布される前にシークレットシェアから生成されたハッシュを、(2)シークレットシェアがシークレットの再構成に使用される直前または直後に取得されたシークレットシェアから生成されたハッシュと比較することができる。これにより、正しいシークレットシェア(シェアホルダが主張するシークレットシェア)のみが、シークレットの再構成に使用されるようになる。
【0017】
[0024]第2に、本明細書に記載のMオブNシステム(ここでは、いくつかの例では、N>M>1)を使用すると、単一の障害ポイントを排除するであろう。具体的には、鍵を回復不能にするためには、シークレットが不正な手法で再構成される前に、M個のシェアが紛失または盗難されねばならない(すなわち、シェアホルダのうちのM人が共謀する必要がある)。紛失/盗難された単一のシークレットシェア(または、悪意のある1人のシェアホルダ)では、シークレットを再構成できなかった。
【0018】
[0025]第3に、本明細書に記載のシステムおよび方法において使用されるメタデータは、メタデータの紛失または盗難に起因するあらゆるリスクを軽減しながら、(上記のような)利益をもたらす。メタデータの1つまたは複数のコピーが紛失または盗難された場合でも、不正なホルダは、未処理のシークレットシェアがどれだけ存在するか(および、それらのシークレットシェアのハッシュ)を単にするが、実際のシークレットシェアを所有することはない。
【0019】
[0026]本明細書で使用されるように、「暗号化」という用語またはその変形は、不正アクセスを阻止するために、データをコードに変換することを称する。暗号化は、単一の暗号化鍵を使用して、データの暗号化と解読との両方を行う対称暗号化や、公開鍵を使用して、データの暗号化を行い、対応する秘密鍵を使用して、データを解読する非対称暗号化など、様々な手法で実施できる。
【0020】
[0027]本明細書で使用されるように、「署名」という用語またはその変形は、たとえばシークレットを使用して、所望のトランザクションに関連付けられたデータを追加または変更することを称する。
【0021】
[0028]本明細書で使用されるように、特に明記しない限り、「ユーザ」という用語は、本明細書に記載される機能のいずれかを開始するためにカスタマデバイス102にアクセスする人(または、たとえばスクリプトのような、自動化された命令)を称する。
【0022】
[0029]本明細書で使用されるように、「ウォレット」という用語は、暗号通貨などのデジタル資産を格納および/または管理するために使用される命令のセット、デジタルファイル、および/またはメモリを称する。本明細書における記載は、暗号通貨に言及している箇所もあるが、他のタイプのデジタル資産が、ウォレットで保持および管理される場合もある。いくつかの例では、ウォレットは、1つまたは複数の秘密鍵、1つまたは複数の秘密鍵から導出される1つまたは複数の公開鍵、および/または1つまたは複数の秘密鍵および/または1つまたは複数の公開鍵から導出される1つまたは複数のトランザクションアドレスによって定義することができる。いくつかの例では、ウォレットは、1つまたは複数のプライベートアカウント鍵(および、任意選択の、対応する公開アカウント鍵)によって定義され、各々が1つまたは複数の子および/または孫トランザクション鍵を有することができる。
【0023】
[0030]
図1は、シークレット分割およびメタデータ記憶のための例示的なシステム100を示すブロック図である。システム100は、コンピューティングデバイス102と、複数の任意選択のコンピューティングデバイス104(任意選択のコンピューティングデバイス104-1から任意選択のコンピューティングデバイス104-Aまでなど)とを含む。コンピューティングデバイス102およびコンピューティングデバイス104の各々は、モバイル電話、タブレットコンピュータ、モバイルメディアデバイス、モバイルゲームデバイス、ラップトップコンピュータ、車両ベースのコンピュータなどのモバイルコンピューティングデバイス、または専用端末、公衆端末、キオスク、サーバ、またはデスクトップコンピュータなどの非モバイルデバイスのいずれかとして実施することができる。各コンピューティングデバイス104は、少なくとも1つのネットワーク106(ネットワーク106-1からネットワーク106-Aまでなど)を使用してコンピューティングデバイス102に通信可能に結合される。例では、少なくとも1つのネットワーク106は、少なくとも1つのワイヤネットワークおよび/または少なくとも1つのワイヤレスネットワークを含む。例では、ワイヤネットワークとワイヤレスネットワークとの任意の組合せを使用して、コンピューティングデバイス104をコンピューティングデバイス102に結合する。例では、少なくとも1つのネットワーク106は、少なくとも1つのローカルエリアネットワーク(LAN)、少なくとも1つのワイドエリアネットワーク(WAN)、またはインターネットのうちの少なくとも1つを含む。例では、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットの任意の組合せが、コンピューティングデバイス104をコンピューティングデバイス102に結合するための少なくとも1つのネットワーク106として使用される。いくつかの構成では、コンピューティングデバイス102は、他の時間中、(いずれのワイヤレスネットワークにもワイヤネットワークにも接続されていない)「エアギャップ」されている場合に、1つまたは複数の他のコンピューティングデバイス104に結合されている場合もある。例では、コンピューティングデバイス102およびコンピューティングデバイス104の各々は、少なくとも1つのメモリ、少なくとも1つのプロセッサ、少なくとも1つの任意選択のネットワークインターフェース、少なくとも1つの任意選択のディスプレイデバイス、少なくとも1つの任意選択の入力デバイス、および少なくとも1つの電源を含む。
【0024】
[0031]
図2は、シークレット分割およびメタデータ記憶のためにシステム100において使用される例示的なコンピューティングデバイス102を示すブロック図である。コンピューティングデバイス102は、少なくとも1つのメモリ202、少なくとも1つのプロセッサ204、任意選択の少なくとも1つのネットワークインターフェース206、任意選択のシークレット生成器208、任意選択のShamirシークレットシェアモジュール210、任意選択のハッシュ機能212、任意選択のディスプレイデバイス214、任意選択の入力デバイス216、任意選択の電源218、任意選択のシークレット再構成モジュール220、任意選択の検証モジュール222、および任意選択のメタデータモジュール224を含む。
【0025】
[0032]例では、少なくとも1つのメモリ202は、情報を格納するために使用される任意のデバイス、メカニズム、またはデータが投入されたデータ構造である。例では、少なくとも1つのメモリ202は、任意のタイプの揮発性メモリ、不揮発性メモリ、および/またはダイナミックメモリであるか、またはそれらを含むことができる。たとえば、少なくとも1つのメモリ202は、ランダムアクセスメモリ、メモリ記憶デバイス、光学メモリデバイス、磁気媒体、フロッピーディスク、磁気テープ、ハードドライブ、消去可能プログラマブル読取専用メモリ(EPROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、光学媒体(コンパクトディスク、DVD、Blu-rayディスク、M-DISCなど)などとすることができる。いくつかの実施形態によれば、少なくとも1つのメモリ202は、1つまたは複数のディスクドライブ、フラッシュドライブ、1つまたは複数のデータベース、1つまたは複数のテーブル、1つまたは複数のファイル、ローカルキャッシュメモリ、プロセッサキャッシュメモリ、リレーショナルデータベース、フラットデータベースなどを含むことができる。それに加えて、当業者は、少なくとも1つのメモリ202として使用できる情報を格納するための多くの追加のデバイスおよび技法を理解するであろう。少なくとも1つのメモリ202は、少なくとも1つのプロセッサ204で、1つまたは複数のアプリケーションまたはモジュールを実行するための命令を格納するために使用することができる。たとえば、少なくとも1つのメモリ202は、1つまたは複数の例において、任意選択のシークレット生成器208、任意選択のShamirシークレットシェアモジュール210、任意選択のハッシュ機能212、任意選択のシークレット再構成モジュール220、任意選択の検証モジュール222、および/または任意選択のメタデータモジュール224の機能を実行するために必要とされる命令のすべてまたはいくつかを収納するために使用できる。
【0026】
[0033]少なくとも1つのプロセッサ204は、汎用プロセッサ(GPP)、また(フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または他の集積回路または回路構成のような)専用の、または任意のプログラマブルロジックデバイスなどの任意の知られているプロセッサとすることができる。例では、任意選択のシークレット生成器208、任意選択のShamirシークレットシェアモジュール210、任意選択のハッシュ機能212、任意選択のシークレット再構成モジュール220、任意選択の検証モジュール222、および/または任意選択のメタデータモジュール224のいずれかが、少なくとも1つのプロセッサ204、および少なくとも1つのメモリ202によって実施される。
【0027】
[0034]例では、少なくとも1つの任意選択のネットワークインターフェース206は、ネットワーク(システム100の少なくとも1つのネットワーク106のうちの1つなど)と通信するための少なくとも1つの任意選択のアンテナを含むか、またはそれに結合される。例では、少なくとも1つの任意選択のネットワークインターフェース206は、イーサネットインターフェース、セルラ無線アクセス技術(RAT)無線、Wi-Fi無線、Bluetooth無線、または近距離無線通信(NFC)無線のうちの少なくとも1つを含む。例では、少なくとも1つの任意選択のネットワークインターフェース206は、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を使用して、リモートサーバとの、十分な速度でのセルラデータ通信(モバイルインターネット)を確立するように構成されたセルラ無線アクセス技術無線を含む。例では、セルラ無線アクセス技術は、パーソナル通信サービス(PCS)、特殊移動無線(SMR)サービス、拡張特殊移動無線(ESMR)サービス、高度ワイヤレスサービス(AWS)、符号分割多元接続(CDMA)、移動通信用グローバルシステム(GSM)サービス、広帯域符号分割多元接続(W-CDMA)、ユニバーサルモバイル通信システム(UMTS)、マイクロ波アクセス用ワールドワイドインタオペラビリティ(WiMAX)、第3世代パートナシッププロジェクト(3GPP(登録商標))、ロングタームエボリューション(LTE)、高速パケットアクセス(HSPA)、第3世代(3G)、第4世代(4G)、第5世代(5G)など、または他の適切な通信サービス、またはそれらの組合せのうちの少なくとも1つを含む。例では、少なくとも1つの任意選択のネットワークインターフェース206および/または少なくとも1つの任意選択のネットワークインターフェース206は、ワイドエリアネットワークではなく、リモートサーバと通信する、ワイヤレスローカルエリアネットワークと通信するように構成されたWi-Fi(IEEE802.11)無線を含む。例では、少なくとも1つの任意選択のネットワークインターフェース206および/または少なくとも1つの任意選択のネットワークインターフェース206は、パッシブ近距離通信(NFC)タグ、アクティブ近距離通信(NFC)タグ、パッシブ無線周波数識別(RFID)タグ、アクティブ無線周波数識別(RFID)タグ、近接カード、または他のパーソナルエリアネットワークデバイスなどの近接通信に限定される近距離無線通信デバイスを含む。例では、同じ少なくとも1つの任意選択のネットワークインターフェース206および/または少なくとも1つの任意選択のネットワークインターフェース206は、ネットワークへの外部ゲートウェイデバイス(NFC支払端末など)との通信にも使用される。
【0028】
[0035]例では、任意選択の少なくとも1つのディスプレイデバイス214は、発光ダイオード(LED)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、電子インクディスプレイ、電界放出ディスプレイ(FED)、表面伝導型電子放出ディスプレイ(SED)、またはプラズマディスプレイのうちの少なくとも1つを含む。例では、任意選択の少なくとも1つの入力デバイス216は、タッチスクリーン(容量性および抵抗性タッチスクリーンを含む)、タッチパッド、容量性ボタン、機械式ボタン、スイッチ、ダイヤル、キーボード、マウス、カメラ、生体認証センサ/スキャナなどを含む。例では、任意選択の少なくとも1つのディスプレイデバイス214および任意選択の少なくとも1つの入力デバイス216は、コンピューティングデバイス102とのユーザ対話のために、ヒューマンマシンインターフェース(HMI)に組み合わされる。例では、ネットワークノード102の様々な構成要素に電力を提供するために、少なくとも1つの任意選択の電源218が使用される。
【0029】
[0036]コンピューティングデバイス102の少なくとも1つのプロセッサ204は、少なくとも1つのシークレットを安全に生成するように構成される。例では、これは、任意選択のシークレット生成器208において実施される。コンピューティングデバイス102の少なくとも1つのプロセッサ204は、少なくとも1つのシークレットを安全に生成するように構成することができる。
【0030】
[0037]
図3は、シークレット生成器208の例を示すブロック図である。例では、シークレット生成器208は、異なるデータを同時またはほぼ同時に生成する。例では、シークレット生成器208は、(1)秘密鍵326、(2)秘密鍵326から導出される任意選択のニーモニック/シード328、(3)任意選択の公開鍵330、および/または、(4)(たとえば、暗号通貨を保持する)分散型台帳における少なくとも1つの任意選択のアドレス332を生成する。例では、秘密鍵326、任意選択のニーモニック/シード328、任意選択の公開鍵330、および少なくとも1つの任意選択のアドレス332の各々が、異なるキャラクタの文字列として表される。
【0031】
[0038]秘密鍵326またはニーモニック/シード328は、(後に分割され、シェアホルダに配布される)シークレットとしてもよい。例では、任意選択の公開鍵330は、秘密鍵326に対応し、秘密鍵326から導出される。例では、秘密鍵326および公開鍵330(および、任意選択でアドレス)は、単一の関数を使用して生成される。しかしながら、秘密鍵326は一般に、公開鍵330から導出されない。例では、秘密鍵326を使用して、任意選択のアドレス332から資金を支出することができる一方、任意選択の公開鍵330を使用して、アドレス332に出入りするトランザクションを監視する、またはアドレス332に暗号通貨を送金することができる。例では、秘密/公開鍵ペアが生成され、公開鍵330のハッシュは、(ウォレットへのトランザクションに使用できる)分散型台帳におけるアドレスである。あるいは、公開鍵330を使用して、データを暗号化する一方、秘密鍵326を使用して、データを解読することができる。秘密鍵326は一般に安全に保たれ(アクセスできる人は、比較的少なく)、公開鍵330は、より自由にシェアされる(アクセスできる人は、より多い)。
【0032】
[0039]秘密鍵326を紛失した場合、ニーモニックコードまたはシード328を使用して、秘密鍵326を回復することができる。例では、ニーモニックコードまたはシード328は、秘密鍵326を導出できる単語のセット(たとえば、12語または15語)である。例では、ニーモニックコードまたはシード328は、最初に秘密鍵326から導出される。例では、アドレス332は、公開鍵330のハッシュである場合がある。したがって、アドレスは、公開鍵330から導出されるが、公開鍵330は、アドレス332から導出されない場合がある。
【0033】
[0040]任意選択で、コンピューティングデバイス102の少なくとも1つのプロセッサ204は、ランダムな特性または疑似ランダムな特性を有するシーケンスを生成することによって、秘密鍵326を生成するように構成される。任意選択で、秘密鍵326は、Bitcoin Improvement Proposal 39(BIP39)(https://githob.com/bitcoin/bips/blob/master/bip-0039.mediawikiで入手でき、参照により本明細書に組み込まれる)に従って生成することができる。例では、対応する公開鍵330は、楕円曲線乗算(暗号関数の一種)を使用することによって秘密鍵326から生成される。次に、前述のように、アドレス332は、公開鍵330のハッシュである場合がある。
【0034】
[0041]再び
図2に戻って示すように、少なくとも1つのプロセッサ204は、シークレットを再構成するために、シークレットシェアの少なくとも1つのサブセットを使用できるシークレットシェアのセットに、シークレットを分割するようにさらに構成される。例では、これはShamirシークレットシェアモジュール210において実施される。例では、分割は構成可能であり、シークレットを再構成するために特定の量のシークレットシェアが必要になる場合がある。たとえば、特定のシークレットを再構成するためにN個のシークレットシェアのうちのM個が必要とされるように、特定のシークレットをN個のシークレットシェアに分割することができる。例では、各シークレットシェアは、異なるシェアホルダに配布される。例では、様々なシェアホルダに配布される前に、(以下に詳しく記載されるように)任意選択で、シークレットシェアを検証できる。例では、シークレットは、Shamirシークレットシェアおよび多項式補間のうちの少なくとも1つを介してN個のシークレットシェアに分割される。任意選択で、シェアホルダに配布する前に、(たとえば、対称鍵または非対称鍵を使用して)シークレットシェアを暗号化することができる。本明細書で使用されるように、「シェアホルダ」とは、少なくとも1つのシークレットシェアを安全に格納することを委託された個人または組織である。言い換えれば、シークレットシェアは、シークレットの生成および分割の後、保管のためにシェアホルダに配布される。
【0035】
[0042]例では、各シークレットシェアは、別個の記憶デバイスまたは媒体に転送することができる。例では、各シークレットシェアは、アーカイブグレードの光ディスク、たとえば、数百年または1,000年にわたってデータを保持するMILLENNIAL DISC(M-DISC)に書き込まれる。任意選択で、各個別のシークレットシェアは、(コンテンツの改ざんを困難にする)改ざん防止、および/または(セキュリティエンベロープまたはパッケージの内容が、改ざんされているか否かを示すメカニズムを提供する)不正開封防止されたセキュリティエンベロープまたはパッケージにも配置される。セキュリティエンベロープまたはパッケージが使用されているか否かに関わらず、各シークレットシェアは、それぞれの記憶媒体に配置されると、それぞれのシェアホルダに配布される。一般に、各シークレットシェアは、異なるシェアホルダに与えられるが、1人のシェアホルダが、生成されたシークレットシェアの複数を受け取る構成も可能である。
【0036】
[0043]代替的または追加的に、電子メール、ショートメッセージサービス(SMS)、マルチメディアメッセージングサービス(MMS)、インスタントメッセージング、プッシュ通知、またはプッシュ検証通知のうちの少なくとも1つなどによって、少なくとも1つのネットワークインターフェース206を使用して、シェアホルダ(またはシェアホルダのグループ)に属するデバイスに、シークレットシェアを、電子的に配布することができる。例では、シークレットシェアは、シェアホルダに(たとえば、クイックレスポンス(QR)コードとして)提供される媒体に、表示、印刷、または別の手法で固定され、シェアホルダは、シークレットシェアを、対応するコンピューティングデバイス104に入力し、自分の手書きで書き写し、および/または、印刷物自体を安全に格納する。
【0037】
[0044]コンピューティングデバイス102の少なくとも1つのプロセッサ204は、シークレットおよび/または個々のシークレットシェアのハッシュを生成するようにさらに構成される。例では、これは、暗号ハッシュ機能212において実施される。例では、シークレットまたはシークレットシェアのハッシュは、シークレットシェアが配布される前に生成され、検証目的で保存される。例では、ハッシュ機能212は、入力(シークレットまたはシークレットシェアなどのキャラクタ文字列)を受け取り、ハッシュ(異なるキャラクタの文字列)を返す。ハッシュ機能212への入力は、出力(ハッシュ)を一意に決定する。言い換えれば、特定のハッシュ機能212は、1つの特定の入力から特定の値のハッシュを生成するだけであり、入力に対するどの変化も、異なる値のハッシュを生成する。以下で論じるように、シークレットシェアのハッシュを比較することは、シークレットシェア自体を検証するためのプロキシとして機能する。使用できるハッシュ機能212の例は、セキュアハッシュアルゴリズム(SHA)-1、SHA-2関数(たとえば、SHA-256またはSHA-512(SHA2-512と呼ばれることもある))、またはMD4、MD5、RIPEMD160などのいずれかを含むが、これらに限定されない。
【0038】
[0045]例では、コンピューティングデバイス102の少なくとも1つのプロセッサ204は、シークレットシェアのセットから、シークレットを再構成するようにさらに構成され、ここでは、たとえば、シークレットを再構成するために、N個のシークレットシェアのうちのM個が必要とされるように、シークレットを再構成するために、シークレットシェアの少なくとも1つのサブセットを使用することができる。例では、これは、シークレット再構成モジュール220において実施される。例では、少なくとも1つのプロセッサ204は、シェアホルダのサブセットから、サブセット(たとえば、N個のうちのM個)のシークレットシェアを取得するように構成される。例では、シークレットシェアがポータブル記憶デバイスまたは媒体(たとえば、光ディスク)で配布された場合、取得は、コンピューティングデバイス102に物理的に持ち込まれたポータブル記憶デバイスまたは媒体から、シークレットシェアのサブセットを読み取ることを含む。あるいは、シークレットシェアが、印刷物(たとえば、バーコードまたはQRコード(登録商標))で配布された場合、取得は、カメラやスキャナなどの画像デバイスを使用して(シェアホルダによって物理的に持ち込まれた)シークレットシェアのサブセットをスキャンすることを含む。あるいは、シークレットシェアが、少なくとも1つのネットワーク106を介して電子的に配布された場合、取得は、少なくとも1つのネットワーク106を介して、シェアホルダの電子デバイス104から、シークレットシェアのサブセットを受け取ることを含むことができる。
【0039】
[0046]シークレットシェアのサブセットが(たとえば、エアギャップされたコンピューティングデバイス102に)取得されると、シークレット再構成モジュール220は、シークレットを安全に再構成するように構成される。例では、(たとえば、Shamirシークレットシェアモジュール210によって実行される)Shamirシークレットシェアは、シークレット434-1を使用して、(M-1)次の多項式を定義することを含み、N個のシークレットシェア436-1の各々は、定義された多項式で指摘される。これらの例では、N個の取得されたシークレットシェア436-2のうちの少なくともM個から、元々の多項式を決定することによって、シークレット434-2が(たとえば、シークレット再構成モジュール220において)再構成される。
【0040】
[0047]しかしながら、シークレットシェアは、配布前に暗号化されていた場合、シークレットが再構成される前に解読される可能性がある。シークレットシェアが配布前に対称鍵で暗号化される例では、同じ対称鍵を使用してシークレットシェアを解読してから、シークレットを再構成することができる。あるいは、シークレットシェアが配布前にそれぞれの非対称鍵(たとえば、公開鍵)で暗号化される場合、それぞれの非対称鍵に対応する解読鍵(たとえば、公開鍵に対応する秘密鍵)を使用してシークレットシェアを解読してから、シークレットを再構成することができる。シークレットシェアがシェアホルダへの配布前に暗号化されていない場合、シークレットの再構成の前に解読する必要はない。
【0041】
[0048]例では、コンピューティングデバイス102の少なくとも1つのプロセッサ204は、(1)少なくとも1つのシークレットシェア、および/または、(2)再構成されたシークレット自体を検証するようにさらに構成される。例では、これは、検証モジュール222において実施される。例では、少なくとも1つのプロセッサ204は、2つの異なる時間に得られたハッシュを比較するように構成される。例では、少なくとも1つのプロセッサ204は、(1)シークレットシェアがシェアホルダに配布される前にシークレットシェアから生成されたハッシュを、(2)シークレットシェアがシークレットの再構成に使用される直前または直後に配布されたシークレットシェアから生成されたハッシュと比較することができる。2つのハッシュが一致する場合、(ハッシュが生成された)シークレットシェアが同じであることが検証される。たとえば、シェアホルダから取得されたシークレットシェアは、シェアホルダに元々与えられていたシークレットシェアと同じである。
【0042】
[0049]代替的または追加的に、少なくとも1つのプロセッサ204は、(1)シークレットが分割される前にシークレットから生成されたハッシュを、(2)再構成後のシークレットから生成されたハッシュと比較することができる。2つのハッシュが一致する場合、ハッシュが生成されたシークレットは同じであると検証される。たとえば、再構成されたシークレットは、元々のシークレットと同じである。本明細書で論じられる様々な検証は、任意選択であることに留意されたい。
【0043】
[0050]例では、コンピューティングデバイス102の少なくとも1つのプロセッサ204は、コンピューティングデバイス102において生成されたシークレットおよび/またはシークレットシェアに関するメタデータを収集および格納するようにさらに構成される。例では、これはメタデータモジュール224において実施される。とりわけ、メタデータは、シークレットの再構成の前および/または後に、シークレットシェアを検証するために使用できる。さらに、メタデータを使用して、シークレットの再構成中にエラーが発生した場合(または、取得されたシークレットシェアを使用して、正しくないシークレットが再構成された場合)、シェアホルダから取得されたどのシークレットシェアが、障害の原因であったかを特定できる。
【0044】
[0051]例では、メタデータは、(1)シークレットシェアのハッシュのリスト、(2)シークレットを用いて生成された(および、シークレットに対応する)アドレス、(3)特定のシークレット/ウォレット番号への各シークレットシェアの配布手段(たとえば、エビデンスバッグ識別子)のマッピング、(4)ハッシュ機能212コード(たとえば、シークレットシェアをハッシュするために実行可能な命令のセット)のコピー、および/または、(5)シークレットを分割するために使用されるコード(たとえば、Shamir分割を実行するために実行可能な命令のセット)のコピーを含む。例では、メタデータの各コピーは、たとえばM-DISCなどの個別のポータブル記憶デバイスまたは媒体に保存される。代替的または追加的に、メタデータをパスワードマネージャソフトウェアに格納したり、保管用にQRコード(登録商標)として印刷したり、クラウドベースのストレージに電子的に送信したりすることができる。
【0045】
[0052]
図4は、シークレット434-1分割およびメタデータ440記憶のための例示的なシステム100を示すブロック図である。具体的には、
図4は、(1)シークレット434-1が生成され、シークレットシェア436-1に分割される、(2)メタデータ440が生成される、(3)シークレットシェア436-1が、シェアホルダ442-1から442-Nに配布される、(4)シークレットシェア436-2が取得される、(5)取得されたシークレットシェア436-2からシークレット434-2が再構成される、様々な段階を示す。いくつかの構成では、コンピューティングデバイス102が(たとえば、少なくとも1つのネットワーク106を介して)他のコンピューティングデバイス104に結合されている間に、5つの段階のうちのいくつかを実行することができる一方、コンピューティングデバイス102が、エアギャップされている(どのワイヤネットワークまたはワイヤレスネットワークにも結合されていない)間に、5つの段階のうちの他の段階を実行することができる。例では、段階(1)は、コンピューティングデバイス102がエアギャップされている間に実行される一方、段階(2)~(5)の少なくともいくつかは、コンピューティングデバイス102が、少なくとも1つの他のコンピューティングデバイス104に結合されている間に実行される。
【0046】
[0053]シークレットシェア436-2またはポータブル記憶デバイスまたは媒体を参照して、「取得された」という用語は、何かがシェアホルダ442に配布され、コンピューティングデバイス102に戻されたことを示すために使用される。例では、取得されたシークレットシェア436-2は、取得されたシークレットシェア436-2を格納するポータブル記憶デバイスまたは媒体が、改ざんされている(または、シェアホルダ442が誤って間違ったポータブル記憶デバイスまたは媒体に持ち込まれた)か否かに応じて、配布前に生成された元々のシークレットシェア436-1のうちの1つのシークレットシェアである場合も、そうでない場合もある。
【0047】
[0054]単純化のために、単一のコンピューティングデバイス102が
図4に示されているが、配布されるシークレットシェア436-1を生成するコンピューティングデバイス102は、シークレット434-2を再構成するコンピューティングデバイスと同じコンピューティングデバイス102であっても、そうでなくてもよい。言い換えると、生成部分403および再構成部分405は、同じまたは異なるコンピューティングデバイス102にあってもよい。
【0048】
[0055]任意選択で、コンピューティングデバイス102は、シークレット434-1が生成されて分割される前に、安全に消去/フォーマットすることができる。これは、記憶デバイス(たとえば、ハードディスクドライブ)を消去/フォーマットするための任意の適切な技法を使用することを含むことができる。例では、これは、コンピューティングデバイス102における記憶デバイス(たとえば、ハードディスクドライブ)のコンテンツを暗号化すること、およびオペレーティングシステムを(たとえば、クラウドベースのサーバから)復元することを含む。解読鍵は、暗号化プロセス中に生成または導出することができる。
【0049】
[0056]シークレット434-1は、(たとえば、プールされた暗号通貨を保持する分散型台帳におけるアドレス332の)暗号秘密鍵326、パスワード、秘密鍵326を再構成するために使用できるニーモニックフレーズもしくはシード328、公開鍵330、アドレス332、シークレットフレーズ、アカウント番号、文字列として配置されたデジタル画像の生データ、文字列として配置されたデジタルビデオファイルの生データ、文字列として配置されたデジタルオーディオファイルの生データ、または、キャラクタの文字列として配置された他の任意のタイプのデジタルファイルのような、任意のキャラクタの文字列とすることができる。
【0050】
[0057]例では、シークレット生成器208は、シークレット434-1を生成する。シークレット434-1が、秘密鍵326、または秘密鍵326を回復するためのニーモニック/シード328である例では、シークレット生成器208は、分散型台帳における、任意選択の公開鍵330、および/または、少なくとも1つの任意選択の(暗号通貨を保持する)アドレス332を生成する。シークレット434-1が、秘密鍵326である例では、シークレット生成器208は、疑似ランダム特性を有するシーケンスを生成することによって、秘密鍵326を生成する。少なくとも1つの任意選択のアドレス332が、シークレット434-1を用いて生成されると、(1)少額の暗号通貨をアドレス332に送金することと、(2)分散型台帳自体におけるアドレス332のためのトランザクションを表示することにより少額を検証することとによって、任意選択で検証してもよい。あるいは、シークレット434-1は、コンピューティングデバイス102において生成されるのではなく、コンピューティングデバイス102において(たとえば、ユーザ入力を介して、またはメモリから)識別および/または受信してもよい。たとえば、既存のアカウント番号、パスワード、または他のキャラクタの文字列は、コンピューティングデバイス102において生成されるのではなく、コンピューティングデバイス102に入力または送信してもよい。
【0051】
[0058]例では、Shamirシークレットシェアモジュール210は、シークレット434-1を、少なくとも2つのシークレットシェア436-1に分割する。例では、シークレット434-1は、N個のシークレットシェア436-1に分割され、ここでは、N個のシークレットシェア436-2のうちのM個が、シークレット434-2を再構成するために必要とされる。例では、シークレット434-1は、Shamirシークレットシェアおよび/または多項式補間を使用して、シークレットシェア436-1に分割される。例では、分割のためM値およびN値を指定するために、Shamirシークレットシェアモジュール210において、入力(たとえば、ユーザ入力)が受け取られる。一般に、限定することなく、1<M≦Nである。
【0052】
[0059]例では、ハッシュ機能212(たとえば、SHA-512)は、各シークレットシェア436-1のシェアハッシュ437を生成する。各シークレットシェア436-1は、SHA-512などの所与の最新のハッシュ機能212のために、正確に1つのハッシュ値を決定する。シェアハッシュ437は、メタデータモジュール224によって、メタデータ440の少なくとも1つのコピーに保存することができる(たとえば、M-DISCなどのアーカイブグレードの光学媒体に格納される)。シェアハッシュ437のリストに加えて、メタデータ440の各コピーは、(1)シークレット434-1を用いて生成された(およびそれに対応する)アドレス332のリスト、(2)特定のシークレット434-1/ウォレット番号への各シークレットシェア436-1の配布手段(たとえば、エビデンスバッグ識別子)のマッピング、(3)ハッシュ機能212コード(たとえば、シークレットシェア436-1をハッシュするために実行可能な命令のセット)のコピー、および/または、(4)シークレット434-1を分割するために使用されるコード(たとえば、Shamir分割を実行するために実行可能な命令のセット)のコピーをも含むことができる。例では、メタデータ440は、パスワードマネージャソフトウェアに格納されるか、保管用にQRコード(登録商標)として印刷されるか、光ディスクに転送される代わりに(またはそれに加えて)クラウドベースのストレージに電子的に送信される。
【0053】
[0060]例では、シェアハッシュ437は、シークレット434-2が再構成される時間またはその近傍の時間で、取得されたシークレットシェア436-2の後の検証のために、メタデータ440に保存される。
【0054】
[0061]任意選択で、シークレットシェア436-1は、配布前に検証モジュール222によって検証することができる。例では、すべてのシークレットシェア436-1を使用して、シークレット434-2を少なくとも1回再構成する。たとえば、シークレット434-2は、少なくともN/M(整数に切り上げ)回再構成する必要があり、たとえば、M=3でN=5の場合、シークレット434-2は、5/3(整数に切り上げ)=2回なので、シークレット434-2の再構成中にすべてのシークレットシェア436-1が少なくとも1回使用される。
【0055】
[0062]例では、シークレット434-1は、再構成されたシークレット434-2と比較される。シークレット434-1が、再構成されたシークレット434-2と一致する場合、(シークレット434-2を再構成するために使用される)シークレットシェア436-1が検証され、シェアホルダ442に配布される。シークレット434-1が、再構成されたシークレット434-2と一致しない場合、(シークレット434-2を再構成するために使用される)シークレットシェア436-1は検証されず、問題の原因が特定され、修正されるまで、シェアホルダ442に配布されない。
【0056】
[0063]あるいは、シークレット434-1のハッシュを、再構成されたシークレット434-2のハッシュと比較することができる。シークレット434-1のハッシュが、再構成されたシークレット434-2のハッシュと一致する場合、(シークレット434-2を再構成するために使用される)シークレットシェア436-1が検証され、シェアホルダ442へ配布される。シークレット434-1のハッシュが、再構成されたシークレット434-2のハッシュと一致しない場合、(シークレット434-2を再構成するために使用される)シークレットシェア436-1は検証されず、問題の原因が特定され、修正されるまで、シェアホルダ442に配布されない。
【0057】
[0064]任意選択で、シークレット434-1、シェアハッシュ436-1、および/または再構成されたシークレット434-2は、(すべてのシークレットシェア436-1を少なくとも1回使用してシークレット434-2を再構成することによって)シークレットシェア436-1が検証されると、コンピューティングデバイス102から削除される。
【0058】
[0065]シークレット434-1がシークレットシェア436-1に分割され(そして、シークレットシェア436-1が任意選択で検証され)ると、各シークレットシェア436-1は、それぞれのシークレットシェア記憶デバイス、または媒体438-1から438-Nを転送してもよい。例では、シークレットシェア記憶デバイスまたは媒体438は、たとえばM-DISCのような、アーカイブグレードの光学媒体である。しかしながら、光学媒体の代わりに、または光学媒体に加えて、他のタイプのポータブル記憶デバイスまたは媒体を、使用してもよい。あるいは、シークレットシェア436-1は、物理的な印刷物(たとえば、バーコードまたはQRコード(登録商標))で配布され、少なくとも1つのネットワーク106を介して電子的に配布され、シェアホルダ442が自分の手書きなどでそれを書き写すことができるように電子的に表示される。任意選択で、シークレットシェア436-1は、シークレットシェア記憶デバイスまたは媒体438で転送される前に暗号化されてもよい。任意選択で、シークレットシェア436-1は、配布のためにポータブル記憶デバイスまたは媒体に転送された後、コンピューティングデバイス102から削除される。
【0059】
[0066]任意選択で、コンピューティングデバイス102を、シークレットシェア436-1の配布後、再び安全に消去/フォーマットしてもよい。これは、記憶デバイス(たとえば、ハードディスクドライブ)を消去/フォーマットするための任意の適切な技法を使用することを含んでもよい。コンピューティングデバイス102の記憶デバイス(たとえば、ハードディスクドライブ)が、シークレット434-1の生成前に暗号化された例では、(記憶デバイスが暗号化されたときに生成または導出される)対応する解読鍵を、破棄、たとえば、安全に削除することができる。
【0060】
[0067]シークレット434-2が再構成されるべきである場合、(シークレットシェア436-2を格納する)少なくともいくつかのシークレットシェア記憶デバイスまたは媒体438が、シェアホルダ442から取得される。取得されるシークレットシェア記憶デバイスまたは媒体438の数は、シークレット434-1の分割中に決定されたMおよびNの値に依存する。M<Nの場合、取得されるシークレットシェア記憶デバイスまたは媒体438の数は、配布されたシークレットシェア436-1の数よりも少ない。M=Nの場合、配布されるシークレットシェア記憶デバイスまたは媒体438のすべてが、シークレット434-2の再構成のために取得される。
【0061】
[0068]シークレットシェア記憶デバイスまたは媒体438が(たとえば、シークレットシェア記憶デバイスまたは媒体438または物理的な印刷物で)物理的に配布された場合、少なくともサブセットは、一般的にコンピューティングデバイス102に物理的に戻される。この場合、シェアホルダ442の少なくともサブセットは、それぞれのシークレットシェア記憶デバイスまたは媒体438を、指定された日時に会議に物理的に持ち込むように求められる場合がある。シークレットシェア記憶デバイスまたは媒体438が物理的に取得されると、たとえば、シークレットシェア記憶デバイスまたは媒体438におけるシークレットシェア436-2を読み取ることや、印刷物におけるQRコード(登録商標)をスキャンすることなどによって、検証および/またはシークレットの再構成の前に処理される必要がある場合がある。
【0062】
[0069]シークレットシェア436-1が(たとえば、少なくとも1つのネットワーク106を介して)電子的に配布されたとき、少なくともサブセットは、一般に、シェアホルダ442から(たとえば、少なくとも1つのネットワーク106を介して)電子的に取得される。これは、シェアホルダ442の少なくともサブセットのデバイスに送信される電子的な要求を含むことができ、その後、承認されて、シークレットシェアが、コンピューティングデバイス102へ送信される。いくつかの構成では、配布のためにシークレット434-1を生成および分割するコンピューティングデバイス102は、シークレット434-2を再構成するコンピューティングデバイス102とは異なる場合がある。
【0063】
[0070]シークレットシェア436-1は、配布前に暗号化された場合、検証される前、またはシークレット434-2が再構成される前に、取得後に解読される。シークレットシェア436-1は、配布前に対称的に暗号化される場合、取得後に対称的に解読される。シークレットシェア436-1は、配布前に非対称に暗号化される場合、取得後に非対称に解読される。シークレットシェア436-1は、シェアホルダ442への配布前に暗号化されない場合、シークレットシェア434-2の再構成前に解除される必要はない。
【0064】
[0071]シークレット434-2を再構成する前に、取得されたシークレットシェア436-2は、任意選択で検証してもよい。例では、(シークレット434-2の再構成時またはその近傍で生成される)取得されたシークレットシェア436-2の少なくとも1つのハッシュが、(シークレットシェア436-1が配布される前に生成されたメタデータ440における)シェアハッシュ437のリストと比較される。取得されたシークレットシェア436-2のハッシュが、(メタデータ440における)シェアハッシュ437のリストにおけるハッシュと一致する場合、それは(シェアホルダ442-1に元々配布されていたシークレットシェア436-1と一致するので)、取得されたシークレットシェア436-2を使用して、所望されるシークレット434-2を再構成できることを意味する。取得されたシークレットシェア436-2のハッシュが、(メタデータ440における)シェアハッシュ437のリストにおけるどのハッシュとも一致しない場合、それは(シェアホルダ442に元々配布されていたシークレットシェア436-1のうちの1つのシークレットシェアではないので)、取得されたシークレットシェア436-2を使用して、所望されるシークレット434-2を再構成することはできないことを意味する。
【0065】
[0072]シークレットシェア436-2が取得され(任意選択で検証され)ると、シークレット434-2を、シークレット再構成モジュール220において再構成することができる。いくつかの構成では、シークレット再構成モジュール220およびShamirシークレットシェアモジュール210は、ともに実施することができる。例では、シークレット再構成モジュール220、220は、Shamirシークレットシェアモジュール210によって実行されるShamir分割に対応するShamir結合(シャミール結合)を使用する。
【0066】
[0073](シークレット434-2の再構成中にエラーが発生したか、または、再構成されたシークレット434-2が、元々のシークレット434-1と一致しないために)シークレット434-2が、シークレットシェア436-2から再構成できない場合、検証モジュール222は、メタデータ440に基づいて、少なくとも1つのシークレットシェア436-2を、正しくないと特定する場合がある。例では、これは、取得されたシークレットシェア436-2の少なくとも1つのハッシュを、メタデータ440におけるシェアハッシュ437のリストと比較することを含む。取得されたシークレットシェア436-2のハッシュが、(メタデータ440における)シェアハッシュ437のリストにおけるハッシュと一致する場合、それは(シェアホルダ442-1に元々配布されていたシークレットシェア436-1と一致するので)、取得された「正しい」シークレットシェア436-2である。取得されたシークレットシェア436-2のハッシュが、(メタデータ440における)シェアハッシュ437のリストにおけるどのハッシュとも一致しない場合、それは(シェアホルダ442に元々配布されていたシークレットシェア436-1のうちの1つのシークレットシェアではないので)、取得された「正しくない」シークレットシェア436-2として特定される。この再構成後の検証/特定により、問題を、特定のシェアホルダ442のシークレットシェア記憶デバイスまたは媒体438に絞り込むことができる。
【0067】
[0074]
図5は、シークレット434-1を分割し、メタデータ440を格納するための例示的な方法500を示すフロー図である。方法500は、シークレット分割およびメタデータ記憶のためのシステム100におけるコンピューティングデバイス102によって実行することができる。例では、方法500におけるステップの少なくともいくつかは、コンピューティングデバイス102における少なくとも1つのプロセッサによって実施される。
【0068】
[0075]方法500は、少なくとも1つのプロセッサが、コンピューティングデバイス102における少なくとも1つの記憶デバイス(たとえば、ハードディスクドライブ)の内容を消去する、任意選択のステップ502で始まる。例では、これは、少なくとも1つの記憶デバイスの内容を暗号化し、オペレーティングシステムを(たとえば、クラウドベースのサーバから)復元することを含む。記憶デバイスの内容を解読できる解読鍵を、生成または導出することができる。あるいは、記憶デバイスの内容を消去するための任意の適切な技法を使用することができる。
【0069】
[0076]方法500は、ステップ504に進み、ここでは、少なくとも1つのプロセッサは、保護されるべきシークレット434-1を決定する。例では、シークレット434-1は、たとえば、秘密鍵326を再構成するために使用できる暗号秘密鍵326またはニーモニックフレーズもしくはシード328などの、任意のキャラクタの文字列である。シークレット434-1が、秘密鍵326またはニーモニック/シード328である例では、決定することは、少なくとも1つのプロセッサがシークレット434-1を生成することを含むことができる。代替的または追加的に、決定することは、少なくとも1つのプロセッサが、既存のシークレット434-1を生成するのではなく、それを特定および/または受け取ることを含むことができる。
【0070】
[0077]シークレット434-1が、秘密鍵326、または秘密鍵326を回復するためのニーモニック/シード328である場合、少なくとも1つのプロセッサは、任意選択の公開鍵330、および/または、分散型台帳における(暗号通貨を保持する)少なくとも1つのアドレス332を生成することができる。少なくとも1つの任意選択のアドレス332が、シークレット434-1を用いて生成されると、(1)少額の暗号通貨をアドレス332に送金することと、(2)分散型台帳自体におけるアドレス332のためのトランザクションを表示することにより少額を検証することとによって、任意選択で検証することができる。これは、アドレスが、所望される分散型台帳における有効なアドレスであることを確認するのに役立つ。
【0071】
[0078]方法500はステップ506に進み、ここでは、少なくとも1つのプロセッサは、シークレット434-1を、複数のシークレットシェア436-1に分割し、複数のシークレットシェア436-1の少なくともサブセットは、シークレット434-2を再構成するために必要とされる。シークレット434-1は、Shamirシークレットシェアおよび/または多項式補間を使用して分割される場合がある。例では、コンピューティングデバイス102のユーザは、(1)シークレット434-1をいくつのシークレットシェア436-1に分割すべきか、および/または、(2)シークレット434-1を再構成するためにいくつのシークレットシェア436-1が必要とされるかを指定するユーザ入力を提供するように促される。例では、ユーザは、N(たとえば、N=1~100)およびM(たとえば、M<=N)に対して任意の数を選択してもよい。例では、ユーザは、シークレット434-1のセキュリティ、シークレット434-1のアクセス可能性、および/または他の任意の懸念事項に基づいて、MおよびNの構成を調整することができる。
【0072】
[0079]方法500は、任意選択のステップ508に進み、ここでは、少なくとも1つのプロセッサは、各シークレットシェア436-1を、少なくとも1回使用してシークレット434-1を再構成することによって、シークレットシェア436-1を検証する。たとえば、シークレット434-2は、少なくともN/M(整数に切り上げ)回再構成する必要があり、たとえば、M=3およびN=5である場合、シークレット434-2は、5/3(整数に切り上げ)=2回なので、シークレットの再構成中にすべてのシークレットシェア436-1が少なくとも1回使用される。シークレットシェア436-1は、(1)シークレット434-1を、再構成されたシークレット434-2と比較すること(ここでは、シークレット434-1が、再構成されたシークレット434-2と一致する場合にのみ、シークレットシェア436-1が検証される)、または、(2)シークレット434-1のハッシュを、再構成されたシークレット434-2のハッシュと比較すること(ここでは、シークレット434-1のハッシュが、再構成されたシークレットのハッシュ434-2と一致する場合にのみ、シークレットシェア436-1が検証される)によって検証できる。例では、たとえば、(1)シークレット434-1が、再構成されたシークレット434-2と一致しない場合、または、(2)シークレット434-1のハッシュが、再構成されたシークレット434-2のハッシュと一致しない場合のように、任意選択のステップ508において、シークレットシェア436-1のすべてが検証される訳ではない場合、方法500は、終了するか、または、以前のステップのいずれかに戻る。
【0073】
[0080]方法500は、ステップ510に進み、ここでは、少なくとも1つのプロセッサは、それぞれのシェアホルダ442への配布のために、各シークレットシェア436-1を、それぞれのポータブル記憶デバイスまたは媒体に転送する。例では、シークレットシェア436-1は、たとえばM-DISCのようなアーカイブグレードの光学媒体に転送される。しかしながら、光学媒体の代わりに、または光学媒体に加えて、他のタイプのポータブル記憶デバイスまたは媒体が、使用される場合がある。任意選択で、シークレットシェア436-1は、ポータブル記憶デバイスまたは媒体に転送される前に暗号化してもよい。
【0074】
[0081]配布は、各ポータブル記憶デバイスまたは媒体を、改ざん防止および/または不正開封防止されたセキュリティエンベロープまたはパッケージに物理的に配置することであって、各セキュリティエンベロープは、一意の識別子を有する、配置することと、その後、異なるセキュリティエンベロープまたはパッケージを、各シェアホルダ442へ転送することとを含むことができる。
【0075】
[0082]方法500は、ステップ512に進み、ここでは、少なくとも1つのプロセッサが、各シークレットシェア436-1の少なくともハッシュ437を用いて、メタデータ440を生成する。各シェアハッシュ437は、キャラクタの文字列であってもよく、その長さは、たとえば、SHA-512を使用して生成されるシェアハッシュ437が、512ビット長となるように、シェアハッシュ437を生成するために使用されるハッシュ機能212によって決定される。各シークレットシェア436-1は、SHA-512などの、所与の最新のハッシュ機能212が使用される場合、1つのハッシュ値を決定する場合がある(しかしながら、SHA-1関数の一部などの古いハッシュ機能ではハッシュ衝突する可能性がある)。
【0076】
[0083]シェアハッシュ437のリスト(ステップ510)に加えて、メタデータ440の各コピーはまた、(1)シークレット434-1を用いて生成された(および、シークレット434-1に対応する)アドレス332のリストと、(2)(シークレットシェア436-1を、特定のシークレット434-1/ウォレット番号に配布するために使用される各セキュリティエンベロープまたはパッケージの識別子のマッピングと、(3)メタデータ440におけるシェアハッシュ437を生成するために使用されるハッシュ機能212コードのコピー(任意選択のステップ508)と、および/または(4)シークレット434-1をシークレットシェア436-1に分割するために使用されるコードのコピー(ステップ506)とを含むことができる。
【0077】
[0084]方法500は、任意選択のステップ514に進み、ここでは、少なくとも1つのプロセッサは、ローカルに格納されたシークレット434-1、シークレットシェア436-1、および任意選択のシェアハッシュ437(および、任意選択のステップ508で生成された任意の再構成されたシークレット434-2)のコピーを削除する。任意選択のステップ518は、コンピューティングデバイス102における少なくとも1つの記憶デバイス(たとえば、ハードディスクドライブ)全体の内容を(たとえば、任意選択の502で作成された解読鍵を安全に削除することによって)再び消去することをさらに含むことができる。
【0078】
[0085]方法500は任意選択のステップ516に進み、ここでは、少なくとも1つのプロセッサは、シークレットシェア436-1を用いて、メタデータ440を、ポータブル記憶デバイスまたは媒体とは別に格納する。メタデータ440の各コピーは、(1)ポータブル記憶デバイスまたは媒体(たとえば、M-DISCなどのアーカイブグレードの光学媒体)に格納することができる、(2)(たとえば、適切な資格情報を有する人々へのアクセスを制限する)電子レポジトリに格納することができる、および/または(3)保管のためにQRコード(登録商標)として印刷することができる。あるいは、メタデータ440のために、任意の他の適切な記憶方法が使用できる。例では、(任意選択のステップ516において)メタデータ440を書き込む前に、(任意選択のステップ514において)ローカルに格納されたシークレット434-1およびシークレットシェア436-1のコピーを削除すると、シークレット434-1およびシークレットシェア436-1が、メタデータ440媒体に書き込まれることを防止する。
【0079】
[0086]例では、方法500は、たとえシェアハッシュ437が表示されても、シークレット434-1またはシークレット部分436-1さえもユーザに表示することなく実行される。追加のセキュリティのために、いくつかの構成では、方法500は、プロセス500を実行するユーザに加えて、少なくとも1人(たとえば2人)の証人とともに実行され、シークレット434-1およびシークレットシェア436-1が、無許可で配布されないことを保証する。
【0080】
[0087]
図6は、少なくとも2つの取得されたシークレットシェア436-2からシークレット434-2を再構成するための例示的な方法600を示すフロー図である。方法600は、コンピューティングデバイス102によって実行することができる。例では、
図6における方法600は、
図5における方法500へ順次実行され、この場合、
図6における方法600を実施するコンピューティングデバイス102は、
図5における方法500を実施するコンピューティングデバイス102と同じであっても、同じでなくてもよい。例では、方法600におけるステップの少なくともいくつかは、コンピューティングデバイス102における少なくとも1つのプロセッサによって実施される。
【0081】
[0088]方法600は、任意選択のステップ602で始まり、ここでは、複数のシークレットシェア記憶デバイスまたは媒体438のうちの少なくとも2つは、コンピューティングデバイス102へ取得され、各シークレットシェア記憶デバイスまたは媒体438は、シークレット434-1の、少なくとも1つの取得されたシークレットシェア436-2を記憶する。取得されるシークレットシェア記憶デバイスまたは媒体438の数は、シークレット434-1分割中に決定されたMおよびNの値に依存する。M<Nの場合、取得されるシークレットシェア記憶デバイスまたは媒体438の数は、配布されたシークレットシェア436-1の数よりも少ない。M=Nの場合、配布されたシークレットシェア記憶デバイスまたは媒体438のすべてが、シークレット434-2の再構成のために取得される。例では、シークレットシェア記憶デバイスまたは媒体438の少なくともサブセットが、物理的にコンピューティングデバイス102に持ち込まれる。例では、シェアホルダ442の少なくともサブセットは、それぞれのシークレットシェア記憶デバイスまたは媒体438を、指定された日時に会議に持ち込むように求められる場合がある。
【0082】
[0089]方法600は、ステップ604に進み、ここでは、シークレットシェア436-1は、シークレットシェア記憶デバイスまたは媒体438から決定され、たとえば、取得されたシークレットシェア436-2が、シークレットシェア記憶デバイスまたは媒体438から読み取られ、任意選択で、コンピューティングデバイス102に格納される。記憶デバイス(たとえば、USBドライブ)が使用される場合、たとえばUSBポートなどを介してコンピューティングデバイスに接続することができる。光学媒体(たとえば、M-DISC)が使用される場合、取得されたシークレットシェア436-2を読み取り、任意選択で、それらをコンピューティングデバイス102に格納するために、光学媒体をディスクドライブに配置することができる。
【0083】
[0090]シークレットシェア436-1が、配布前に暗号化された場合、ステップ604は、シークレットシェア436-1を解読することを含むことができる。シークレットシェア436-1が配布前に(対称鍵を使用して)対称的に暗号化されると、取得後に(同じ対称鍵を使用して)対称的に解読される。シークレットシェア436-1が、配布前に(公開鍵を使用して)非対称に暗号化されている場合、取得後に(公開鍵に対応する秘密鍵を使用して)非対称に解読される。シークレットシェア436-1が、シェアホルダ442への配布前に暗号化されていない場合、ステップ604において解読される必要はない。
【0084】
[0091]方法600はステップ606に進み、ここでは、少なくとも1つのプロセッサは、(シークレット434-1のための)メタデータ440を決定し、メタデータ440は、シークレットシェア436-1がシェアホルダ442に配布される前に生成された、シークレットシェア436-1の少なくともハッシュ437のリストを有する。例では、メタデータ440は、(1)シークレット434-1を用いて生成された(および、シークレット434-1に対応する)アドレス332のリストと、(2)(シークレットシェア436-1を、特定のシークレット434-1/ウォレット番号に配布するために使用される各セキュリティエンベロープまたはパッケージの識別子のマッピングと、(3)メタデータ440におけるシェアハッシュ437を生成するために使用されるハッシュ機能212コードのコピーと、および/または、(4)配布前に、シークレット434-1をシークレットシェア436-1に分割するために使用されるコードのコピーをも含む。
【0085】
[0092]方法600は、任意選択のステップ608に進み、ここでは、少なくとも1つのプロセッサは、取得されたシークレットシェア436-2を検証する。例では、取得されたシークレットシェア436-2のうちの少なくとも1つのシークレットシェアのハッシュが、メタデータ440におけるシェアハッシュ437のリストと比較される。取得されたシークレットシェア436-2のハッシュが、(メタデータ440における)シェアハッシュ437のリストにおけるハッシュと一致する場合、それは(シェアホルダ442-1に元々配布されていたシークレットシェア436-1と一致するので)、取得されたシークレットシェア436-2を使用して、所望されるシークレット434-2を再構成できることを意味する。取得されたシークレットシェア436-2のハッシュが、(メタデータ440における)シェアハッシュ437のリストにおけるどのハッシュとも一致しない場合、それは(シェアホルダ442に元々配布されていたシークレットシェア436-1のうちの1つのシークレットシェアではないので)、取得されたシークレットシェア436-2を使用して、所望されるシークレット434-2を再構成できないことを意味する。例では、方法600の後続のステップは、取得されたすべてのシークレットシェア436-2が、任意選択のステップ608で検証された場合にのみ実行される。
【0086】
[0093]方法600は、ステップ610に進み、ここでは、少なくとも1つのプロセッサは、取得されたシークレットシェア436-2を使用して、シークレット434-2を再構成しようと試みる。例では、ステップ610は、シークレットシェア436-1の配布前に実行されるShamirシークレットシェア(シークレット434-1の分割)であったものに対応するShamir結合を使用する。
【0087】
[0094]方法600は、任意選択のステップ612に進み、ここでは、取得されたシークレットシェア436-2からシークレット434-2を再構成できない場合、少なくとも1つのプロセッサは、メタデータ440に基づいて、少なくとも1つのシークレットシェア436-2を、正しくないと特定する。たとえば、任意選択のステップ612は、(1)シークレット434-2の再構成中にエラーが発生することに応じて、または、(2)シークレット434-2がステップ610において再構成され、分割および配布された元々のシークレット434-1と一致しない場合、実行することができる。このシナリオ(再構成されたシークレット434-2が元々のシークレット434-1と一致しない場合)は、(1)シークレットと、再構成されたシークレット434-1とのハッシュを比較すること、(2)再構成されたシークレット434-2に関連付けられたアドレスのアカウント残高が正しいか否かを判定すること(しかしながら、そのアドレスがトランザクションを受け取っていない場合、アドレスに残高がない、および/またはブロックチェーンエクスプローラに表示されない可能性がある)、または(3)(メタデータ440における)アドレスを、再構成されたシークレット434-2から導出されるアドレスと比較することによって判定できる。
【0088】
[0095]任意選択のステップ612は、任意選択のステップ608と同様に実行することができ、たとえば、取得されたシークレットシェア436-2のうちの少なくとも1つのシークレットシェアのハッシュが、メタデータ440におけるシェアハッシュ437のリストと比較される。取得されたシークレットシェア436-2のハッシュが、(メタデータ440における)シェアハッシュ437のリストにおけるハッシュと一致する場合、それは(シェアホルダ442-1に元々配布されていたシークレットシェア436-1と一致するので)、取得された「正しい」シークレットシェア436-2である。取得されたシークレットシェア436-2のハッシュが、(メタデータ440における)シェアハッシュ437のリストにおけるどのハッシュにも一致しない場合、それは(シェアホルダ442に元々配布されていたシークレットシェア436-1のうちの1つのシークレットシェアではないので)、取得された「正しくない」シークレットシェア436-2として特定される。
【0089】
[0096]したがって、シェアホルダ442のうちの1つのシェアホルダが(意図的または非意図的に)間違ったシークレットシェア記憶デバイスまたは媒体438を持ち込んだ場合、方法600は、問題を、(取得された正しくないシークレットシェア436-2を保持する)特定のシェアホルダ442のシークレットシェア記憶デバイスまたは媒体438に絞り込むのに役立つことができる。問題の原因を特定のシェアホルダ442に絞り込むことにより、問題を適切に対処することができる。
【0090】
[0097]シークレットシェア記憶デバイスまたは媒体438が、改ざん防止および/または不正開封防止セキュリティエンベロープまたはパッケージで配布される例では、セキュリティエンベロープまたはパッケージは、特定のシークレット434-1の再構成のために、シェアホルダ442が、所有している複数のセキュリティエンベロープまたはパッケージのどれを持ち込む必要があるのかを容易に特定できるように、シークレット434-1識別子(たとえば、「ウォレット1」)をリスト化することができる。
【0091】
[0098]それに加えて、メタデータ440をシークレットシェア記憶デバイスまたは媒体438から分離することによって、メタデータ440またはシークレットシェア記憶デバイスまたは媒体438の不正な所有者は、シークレット434-2を再構成するために、残りのシークレットシェア記憶デバイスまたは媒体438を盗むのに十分な情報を有してない可能性が高い。実際、シークレットシェア記憶デバイスまたは媒体438のうちの1つの不正な所有者は、シークレットシェア436-1によってどのタイプのデータが表されているか、またはそれに価値があるか否か、またはどの程度の価値があるかを知らない可能性がある。しかしながら、メタデータ440は、シークレットシェア記憶デバイスまたは媒体438がなくても、依然として有用である可能性があり、たとえば、誰かが、メタデータ440においてリストされたアドレスに関連付けられたトランザクションを監視する、および/または、メタデータ440におけるアドレスに暗号通貨を送金することを可能にする。
【0092】
[0099]さらに、どの個人がシェアホルダ442であるかのマッピングは、メタデータ440またはシークレットシェア記憶デバイスまたは媒体438から容易に入手できない場合がある。そのようなマッピング自体が、シェアホルダ442の安全を脅かす可能性がある。このマッピングをメタデータ440に含めないことにより、どの個人がシェアホルダ442であるかを把握することがより困難になる。しかしながら、いくつかの構成では、非常に少数の人々がアクセスできる、(セキュリティエンベロープまたはパッケージ番号への個人の)別のマッピングが存在する場合がある。
【0093】
[0100]方法600は、任意選択のステップ614に進み、ここでは、シークレット434-2は、取得されたシークレットのシェア436-2から再構成されると、少なくとも1つのプロセッサが、再構成されたシークレット434-2を要求するアクションを実行する。このアクションの例は、(1)再構成されたシークレット434-2を使用してデータを暗号化または解読すること、(2)再構成されたシークレット434-2に基づいて、分散型台帳におけるトランザクションアドレスを生成すること、および/または、(3)再構成されたシークレット434-2を使用して、暗号通貨をアドレスから送金するトランザクションに署名することを含むことができる。
【0094】
[0101]例では、方法600は、再構成されたシークレット434-1または再構成されたシークレット部分436-1さえも、ユーザに表示することなく実行される。追加のセキュリティのために、いくつかの構成では、方法600は、プロセス600を実行するユーザに加えて、少なくとも1人(たとえば、2人)の証人とともに実行され、シークレット434-1およびシークレットシェア436-1が、無許可で配布されないことを保証する。
【0095】
[0102]本明細書で紹介される技法は、専用ハードウェア(回路構成など)として、ソフトウェアおよび/またはファームウェアで適切にプログラムされたプログラマブル回路構成として、または専用およびプログラマブル回路構成の組合せとして具現化することができる。したがって、実施形態は、プロセスを実行するようにコンピュータ(または他の電子デバイス)をプログラムするために使用できる命令を格納した機械可読媒体を含むことができる。機械可読媒体は、たとえば、フロッピーディスク、光ディスク、コンパクトディスク読取専用メモリ(CD-ROM)、光磁気ディスク、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブル読取専用メモリ(EPROM)、電気的消去可能なプログラマブル読取専用メモリ(EEPROM)、磁気カードまたは光学カード、フラッシュメモリ、または電子命令の格納に適した他のタイプの媒体/機械可読媒体を含むことができる。
【0096】
[0103]コンピュータシステムの概要
[0104]本開示の実施形態は、上記の様々なステップおよび動作を含む。これらの様々なステップおよび動作は、ハードウェア構成要素によって実行できるか、または命令でプログラムされた汎用または専用プロセッサに、ステップを実行させるために使用される機械実行可能命令で具現化できる。あるいは、ステップは、ハードウェア、ソフトウェア、および/またはファームウェアの組合せによって実行することができる。したがって、
図7は、本開示の実施形態を利用できるコンピュータシステム700の例である。本例によれば、コンピュータシステム700は、相互接続702、少なくとも1つのプロセッサ704、少なくとも1つの通信ポート706、少なくとも1つのメインメモリ708、少なくとも1つのリムーバブル記憶媒体710、少なくとも1つの読取専用メモリ712、および少なくとも1つの大容量記憶デバイス714を含む。
【0097】
[0105]少なくとも1つのプロセッサ704は、任意の知られているプロセッサとすることができる。少なくとも1つの通信ポート706は、たとえば、モデムベースのダイアルアップ接続で使用するRS-232ポート、10/100イーサネットポート、または銅またはファイバを使用するギガビットポートのいずれかであるか、またはそれらを含むことができる。少なくとも1つの通信ポート706の性質は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはコンピュータシステム700が接続する任意のネットワークなどのネットワークに応じて選択することができる。少なくとも1つのメインメモリ708は、ランダムアクセスメモリ(RAM)、または当該技術分野で一般に知られている他の任意の動的記憶デバイスとすることができる。少なくとも1つの読取専用メモリ712は、少なくとも1つのプロセッサ704のための命令などの静的情報を記憶するためのプログラマブル読取専用メモリ(PROM)チップなどの任意の静的記憶デバイスとすることができる。
【0098】
[0106]少なくとも1つの大容量記憶デバイス714を使用して、情報および命令を格納することができる。たとえば、(シリアル/パラレルATAまたはSCSIインターフェースを使用する磁気ディスクドライブまたはソリッドステートドライブなどの)ハードディスク、光ディスク、リダンダント・アレイ・オブ・インディペンデント・ディスク(RAID)などのディスクのアレイ、または他の大容量記憶デバイスを使用することができる。相互接続702は、1つまたは複数のバス、ブリッジ、コントローラ、アダプタ、および/またはポイントツーポイント接続であるか、それらを含むことができる。相互接続702は、少なくとも1つのプロセッサ704を、他のメモリ、ストレージ、および通信ブロックと通信可能に結合する。相互接続702は、使用される記憶デバイスに応じて、PCI/PCI-XまたはSCSIベースのシステムバスとできる。少なくとも1つのリムーバブル記憶媒体710は、任意の種類の外付けハードドライブ、フロッピードライブ、コンパクトディスク読取専用メモリ(CD-ROM)、コンパクトディスク再書込可能(CD-RW)、デジタルビデオディスク読取専用メモリ(DVD-ROM)、Blu-Rayディスク読取専用メモリ(BD-ROM)、Blu-Rayディスク記録可能(BD-R)、Blu-Rayディスク記録可能消去可能(BD-RE)、MILLENNIAL DISC(M-DISC)などとすることができる。
【0099】
[0107]上記の構成要素は、いくつかのタイプの可能性を例示することを意図している。前述の例は、例示的な実施形態にすぎないため、決して本開示を限定すべきではない。下記および上記のものを含む、本明細書で説明される実施形態、構造、方法などは、様々な手法でともに組み合わせることができる。
【0100】
[0108]用語
[0109]本出願を通して使用される用語、略語、およびフレーズの簡単な定義を以下に示す。
【0101】
[0110]「接続された」、「結合された」、および「通信可能に結合された」という用語および関連する用語は、動作上の意味で使用され、直接的な物理的接続または結合に必ずしも限定されない。したがって、たとえば、2つのデバイスを直接結合するか、または、1つまたは複数の中間媒体またはデバイスを介して結合することができる。別の例として、物理的な接続を互いにシェアせずにデバイス間で情報を渡すことができるようにデバイスを結合することができる。本明細書で提供される開示に基づいて、当業者は、前述の定義に従って接続または結合が存在する様々な手法を認識するであろう。
【0102】
[0111]「~に基づく」というフレーズは、別段の明示的な指定がない限り、「~のみに基づく」を意味しない。言い換えれば、「~に基づく」というフレーズは、「~のみに基づく」と「少なくとも~に基づく」との両方を表す。それに加えて、「および/または」という用語は、「および」または「または」を意味する。たとえば、「Aおよび/またはB」は、「A」、「B」、または「AおよびB」を意味することができる。それに加えて、「A、B、および/またはC」は、「Aのみ」、「Bのみ」、「Cのみ」、「AおよびB」、「AおよびC」、「BおよびC」、または「A、B、およびC」を意味することができる。
【0103】
[0112]「例示的な実施形態において」、「実例である実施形態において」、「いくつかの実施形態において」、「いくつかの実施形態に従って」、「示された実施形態において」、「他の実施形態において」、「実施形態」、「例において」、「例」、「いくつかの例において」、「いくつかの例」などのフレーズは、一般に、フレーズに続く特定の特徴、構成、または特性が、本開示の少なくとも1つの実施形態に含まれ、本開示の1つの実施形態よりも多くの実施形態に含む場合があることを意味する。それに加えて、そのようなフレーズは、必ずしも同じ実施形態または異なる実施形態を称する訳ではない。
【0104】
[0113]明細書が、構成要素または機能を、含む「場合がある」、含む「ことができる」、含む「ことができた」、または含む「可能性がある」、または、構成要素または機能が、特性を有する「場合がある」、有する「ことができる」、有する「ことができた」、または有する「可能性がある」と述べている場合、その特定の構成要素または機能は、含まれる必要も、その特性を有する必要もない。
【0105】
[0114]「反応する」という用語は、完全にまたは部分的に反応することを含む。
[0115]「モジュール」という用語は、ソフトウェア、ハードウェア、またはファームウェア(またはそれらの任意の組合せ)の構成要素を広く称する。モジュールは通常、指定された入力を使用して、有用なデータまたは他の出力を生成できる機能的な構成要素である。モジュールは、自己完結型の場合と、そうではない場合とがある。(「アプリケーション」とも呼ばれる)アプリケーションプログラムは、1つまたは複数のモジュールを含む場合があるか、または、モジュールは、1つまたは複数のアプリケーションプログラムを含むことができる。
【0106】
[0116]「ネットワーク」という用語は、一般に、情報を交換できる相互接続されたデバイスのグループを称する。ネットワークは、ローカルエリアネットワーク(LAN)上の数台のパーソナルコンピュータの場合もあれば、世界規模のコンピュータネットワークであるインターネットのように大規模な場合もある。本明細書で使用される「ネットワーク」は、あるエンティティから別のエンティティに情報を送信できる任意のネットワークを包含することを意図される。場合によっては、ネットワークは、複数のネットワークから、あるいは、様々なネットワーク間での通信を容易にするために動作可能なゲートウェイを介して相互接続された、1つまたは複数の境界ネットワーク、音声ネットワーク、ブロードバンドネットワーク、金融ネットワーク、サービスプロバイダネットワーク、インターネットサービスプロバイダ(ISP)ネットワーク、および/または、公衆交換電話網(PSTN)のような複数の異種ネットワークからさえ構成されている場合もある。
【0107】
[0117]また、例示のために、本開示の様々な実施形態を、現代のコンピュータネットワーク内のコンピュータプログラム、物理的構成要素、および論理的相互作用の文脈で説明してきた。重要なことに、これらの実施形態は、最新のコンピュータネットワークおよびプログラムに関連して本開示の様々な実施形態を説明しているが、本明細書で説明されている方法および装置は、当業者が理解するように、他のシステム、デバイス、およびネットワークに等しく適用可能である。したがって、本開示の実施形態の例示された用途は、限定ではなく、例であることが意図される。本開示の実施形態が適用可能な他のシステム、デバイス、およびネットワークには、たとえば、他のタイプの通信およびコンピュータデバイスおよびシステムを含む。より具体的には、実施形態は、セル電話ネットワークおよび互換デバイスなどの通信システム、サービス、およびデバイスに適用可能である。それに加えて、実施形態は、パーソナルコンピュータから大規模なネットワークメインフレームおよびサーバまで、すべてのレベルのコンピューティングに適用可能である。
【0108】
[0118]結論として、本開示は、シークレット分割およびメタデータ記憶のための斬新なシステム、方法、および構成を提供する。本開示の1つまたは複数の実施形態の詳細な説明が上記で与えられたが、様々な代替、修正、および均等物が、本開示の精神から変化することなく、当業者に明らかであろう。たとえば、上記の実施形態は、特定の特徴に言及しているが、本開示の範囲は、特徴の異なる組合せを有する実施形態、および説明した特徴のすべてを含む訳ではない実施形態も含む。したがって、本開示の範囲は、特許請求の範囲に含まれるすべての代替、修正、および変形、ならびにそのすべての均等物を包含することを意図される。したがって、上記の説明は限定的なものと解釈されるべきではない。
例
[0119]例1は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリとを備え、少なくとも1つのプロセッサは、保護されるべきシークレットを決定し、シークレットを、複数のシークレットシェアに分割し、複数のシークレットシェアの少なくともサブセットは、シークレットを再構成するために必要とされ、各シークレットシェアを、それぞれのシェアホルダに配布するために、それぞれのポータブル記憶デバイスまたは媒体に転送し、少なくとも各シークレットシェアのハッシュを用いてメタデータを生成し、シークレットシェアを用いて、メタデータを、ポータブル記憶デバイスまたは媒体とは別に格納するように構成された、コンピューティングデバイスを含む。
【0109】
[0120]例2は、例1のコンピューティングデバイスを含み、シークレットと、シークレットシェアと、シークレットシェアのハッシュとの各々は、異なるキャラクタの文字列である。
【0110】
[0121]例3は、例1~例2のいずれかのコンピューティングデバイスを含み、シークレットは、秘密鍵を再構成するために使用できる暗号秘密鍵またはニーモニックフレーズもしくはシードである。
【0111】
[0122]例4は、例1~例3のいずれかのコンピューティングデバイスを含み、少なくとも1つのプロセッサは、Shamirシークレットシェアまたは多項式補間を使用して、シークレットを、複数のシークレットシェアに分割するように構成される。
【0112】
[0123]例5は、例1~例4のいずれかのコンピューティングデバイスを含み、少なくとも1つのプロセッサは、シークレットを再構成するために各シークレットシェアを少なくとも1回使用することによって、シークレットシェアを検証するように構成され、シークレットシェアは、シークレットシェアが正常に検証された後、それぞれのポータブル記憶デバイスまたは媒体に単に転送される。
【0113】
[0124]例6は、例1~例5のいずれかのコンピューティングデバイスを含み、少なくとも1つのプロセッサは、シークレットを決定する前に、コンピューティングデバイスにおいて、少なくとも1つの記憶デバイスの内容を消去し、オペレーティングシステムのクリーンインストールを実行し、各シークレットシェアをそれぞれのポータブル記憶デバイスまたは媒体に転送した後、コンピューティングデバイスにローカルに格納されたシークレットおよびシークレットシェアのコピーを削除するように構成される。
【0114】
[0125]例7は、例1~例6のいずれかのコンピューティングデバイスを含み、シークレットは、暗号秘密鍵であるか、または暗号秘密鍵を回復するために使用できるニーモニックフレーズもしくはシードであり、少なくとも1つのプロセッサは、暗号秘密鍵またはニーモニックフレーズもしくはシードを生成することにより、シークレットを決定するように構成される。
【0115】
[0126]例8は、例7のコンピューティングデバイスを含み、少なくとも1つのプロセッサはまた、メタデータにおいて、以下の情報、すなわち、暗号秘密鍵に対応する公開鍵と、分散型台帳における少なくとも1つのアドレスとを生成する。
【0116】
[0127]例9は、例1~例8のいずれかのコンピューティングデバイスを含み、少なくとも1つのプロセッサは、シェアホルダから取得された少なくとも2つのシークレットシェア記憶デバイスまたは媒体から、取得されるシークレットシェアを決定し、少なくとも2つのシークレットシェア記憶デバイスまたは媒体から取得されたシークレットシェアを使用して、シークレットの再構成を試みるように構成される。
【0117】
[0128]例10は、例9のコンピューティングデバイスを含み、少なくとも1つのプロセッサは、取得されたシークレットシェアからシークレットを再構成できない場合、メタデータに基づいて、取得されたシークレットシェアのうちの少なくとも1つのシークレットシェアを、正しくないとして特定するように構成される。
【0118】
[0129]例11は、保護されるべきシークレットを決定することと、シークレットを、複数のシークレットシェアに分割することであって、複数のシークレットシェアの少なくともサブセットは、シークレットを再構成するために必要とされる、分割することと、各シークレットシェアを、それぞれのシェアホルダに配布するために、それぞれのポータブル記憶デバイスまたは媒体に転送することと、少なくとも各シークレットシェアのハッシュを用いてメタデータを生成することと、シークレットシェアを用いて、メタデータを、ポータブル記憶デバイスまたは媒体とは別に格納することとを含む、シークレット分割およびメタデータ記憶のための方法を含む。
【0119】
[0130]例12は、例11の方法を含み、シークレットと、シークレットシェアと、シークレットシェアのハッシュとの各々は、異なるキャラクタの文字列である。
[0131]例13は、例11~例12のいずれかの方法を含み、シークレットは、秘密鍵を再構成するために使用できる暗号秘密鍵またはニーモニックフレーズもしくはシードである。
【0120】
[0132]例14は、例11~例13のいずれかの方法を含み、分割することは、Shamirシークレットシェアまたは多項式補間を使用して、シークレットを、複数のシークレットシェアに分割することを含む。
【0121】
[0133]例15は、例11~例14のいずれかの方法を含み、シークレットを再構成するために各シークレットシェアを少なくとも1回使用することによって、シークレットシェアを検証することをさらに含み、シークレットシェアは、シークレットシェアが正常に検証された後、それぞれのポータブル記憶デバイスまたは媒体に単に転送される。
【0122】
[0134]例16は、例11~例15のいずれかの方法を含み、シークレットを決定することの前に、コンピューティングデバイスにおいて、少なくとも1つの記憶デバイスの内容を消去し、オペレーティングシステムのクリーンインストールを実行することと、各シークレットシェアをそれぞれのポータブル記憶デバイスまたは媒体に転送することの後、コンピューティングデバイスにローカルに格納されたシークレットおよびシークレットシェアのコピーを削除することとをさらに含む。
【0123】
[0135]例17は、例11~例16のいずれかの方法を含み、シークレットは、暗号秘密鍵であるか、または暗号秘密鍵を回復するために使用できるニーモニックフレーズもしくはシードであり、シークレットは、暗号秘密鍵またはニーモニックフレーズもしくはシードを生成することによって決定される。
【0124】
[0136]例18は、例17の方法を含み、メタデータにおいて、以下の情報、すなわち、暗号秘密鍵に対応する公開鍵と、分散型台帳における少なくとも1つのアドレスとを生成することをさらに含む。
【0125】
[0137]例19は、例11~例18のいずれかの方法を含み、シェアホルダから取得された少なくとも2つのシークレットシェア記憶デバイスまたは媒体の各々から、取得されるシークレットシェアを決定することと、少なくとも2つのシークレットシェア記憶デバイスまたは媒体から取得されたシークレットシェアを使用して、シークレットの再構成を試みることとをさらに含む。
【0126】
[0138]例20は、例19の方法を含み、取得されたシークレットシェアからシークレットを再構成できない場合、メタデータに基づいて、取得されたシークレットシェアのうちの少なくとも1つのシークレットシェアを、正しくないとして特定することをさらに含む。
【0127】
[0139]例21は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリとを備え、少なくとも1つのプロセッサは、複数のシェアホルダのうちの少なくとも2人から取得された少なくとも2つのシークレットシェア記憶デバイスまたは媒体の各々から、取得されるシークレットシェアを決定し、シークレットシェアが複数のシェアホルダに配布される前に生成された複数のシークレットシェアの少なくともハッシュのリストを有するメタデータを判定し、少なくとも2つのシークレットシェア記憶デバイスまたは媒体から取得されたシークレットシェアを使用して、シークレットの再構成を試み、取得されたシークレットシェアからシークレットを再構成できない場合、メタデータに基づいて、取得されたシークレットシェアのうちの少なくとも1つのシークレットシェアを、正しくないとして特定するように構成された、コンピューティングデバイスを含む。
【0128】
[0140]例22は、例21のコンピューティングデバイスを含み、シークレットと、取得されたシークレットシェアと、複数のシークレットシェアのハッシュとの各々は、異なるキャラクタの文字列である。
【0129】
[0141]例23は、例21~例22のいずれかのコンピューティングデバイスを含み、シークレットは、秘密鍵を再構成するために使用できる暗号秘密鍵またはニーモニックフレーズもしくはシードである。
【0130】
[0142]例24は、例21~例23のいずれかのコンピューティングデバイスを含み、少なくとも1つのプロセッサは、Shamir結合を使用してシークレットを再構成することを試みるように構成される。
【0131】
[0143]例25は、例21~例24のいずれかのコンピューティングデバイスを含み、少なくとも1つのプロセッサは、取得されたそれぞれのシークレットシェアを、メタデータにおけるハッシュのリストと比較することによって、取得されたシークレットシェアの各々を検証するように構成され、取得されたそれぞれのシークレットシェアが、メタデータにおけるハッシュのリストにおけるハッシュと一致する場合、取得されたそれぞれのシークレットシェアは正常に検証される。
【0132】
[0144]例26は、例25のコンピューティングデバイスを含み、少なくとも1つのプロセッサは、シークレットシェアが正常に検証された後にのみ、シークレットを再構成することを試みるように構成される。
【0133】
[0145]例27は、例21~例26のいずれかのコンピューティングデバイスを含み、少なくとも1つのプロセッサは、シークレットが、取得されたシークレットシェアから再構成されたときに、再構成されたシークレットを必要とする以下のアクション、すなわち、再構成されたシークレットを使用してデータを暗号化または解読すること、再構成されたシークレットに基づいて、分散型台帳におけるトランザクションアドレスを生成すること、または、再構成されたシークレットを使用してトランザクションに署名することであって、トランザクションは、分散型台帳におけるアドレスから暗号通貨を送金する、署名すること、のうちの少なくとも1つを実行するように構成される。
【0134】
[0146]例28は、例21~例27のいずれかのコンピューティングデバイスを含み、少なくとも1つのプロセッサは、取得されるシークレットシェアが決定される前に、シークレットを、複数のシークレットシェアに分割することであって、複数のシークレットシェアの少なくともサブセットは、シークレットを再構成するために必要とされる、分割することと、各シークレットシェアをそれぞれのポータブル記憶デバイスまたは媒体に転送することとを行うように構成され、各ポータブル記憶デバイスまたは媒体は、複数のシェアホルダに配布される。
【0135】
[0147]例29は、複数のシェアホルダのうちの少なくとも2人から取得された少なくとも2つのシークレットシェア記憶デバイスまたは媒体の各々から取得されるシークレットシェアを決定することと、シークレットシェアが複数のシェアホルダに配布される前に生成された複数のシークレットシェアの少なくともハッシュのリストを有するメタデータを判定することと、少なくとも2つのシークレットシェア記憶デバイスまたは媒体から取得されたシークレットシェアを使用して、シークレットの再構成を試みることと、取得されたシークレットシェアからシークレットを再構成できない場合、メタデータに基づいて、取得されたシークレットシェアのうちの少なくとも1つのシークレットシェアを、正しくないとして特定することとを含む、方法を含む。
【0136】
[0148]例30は、例29の方法を含み、シークレットと、取得されたシークレットシェアと、複数のシークレットシェアのハッシュとの各々は、異なるキャラクタの文字列である。
【0137】
[0149]例31は、例29~例30のいずれかの方法を含み、シークレットは、秘密鍵を再構成するために使用できる暗号秘密鍵またはニーモニックフレーズもしくはシードである。
【0138】
[0150]例32は、例29~例31のいずれかの方法を含み、Shamir結合を使用してシークレットを再構成することを試みることをさらに含む。
[0151]例33は、例29~例32のいずれかの方法を含み、取得されたそれぞれのシークレットシェアを、メタデータにおけるハッシュのリストと比較することによって、取得されたシークレットシェアの各々を検証することをさらに含み、取得されたそれぞれのシークレットシェアが、メタデータにおけるハッシュのリストにおけるハッシュと一致する場合、取得されたそれぞれのシークレットシェアは正常に検証される。
【0139】
[0152]例34は、例33の方法を含み、試みることは、シークレットシェアが正常に検証された後にのみ、シークレットを再構成することを試みることを含む。
[0153]例35は、例29~例34のいずれかの方法を含み、シークレットが、取得されたシークレットシェアから再構成されたときに、再構成されたシークレットを必要とする以下のアクション、すなわち、再構成されたシークレットを使用してデータを暗号化または解読すること、再構成されたシークレットに基づいて、分散型台帳におけるトランザクションアドレスを生成すること、または、再構成されたシークレットを使用してトランザクションに署名することであって、トランザクションは、分散型台帳におけるアドレスから暗号通貨を送金する、署名すること、のうちの少なくとも1つを実行することをさらに含む。
【0140】
[0154]例36は、例29~例35のいずれかの方法を含み、取得されるシークレットシェアが決定される前に、シークレットを、複数のシークレットシェアに分割することであって、複数のシークレットシェアの少なくともサブセットは、シークレットを再構成するために必要とされる、分割することと、各シークレットシェアをそれぞれのポータブル記憶デバイスまたは媒体に転送することとをさらに含み、各ポータブル記憶デバイスまたは媒体は、複数のシェアホルダに配布される。