[0047]一般的な慣行にしたがって、説明される様々な特徴は、一定の縮尺で描かれていないが、例示的な実施形態に関連する特定の特徴を強調するように描かれている。
[0048]以下の詳細な説明では、本明細書の一部を形成し、例示として特定の例示的な実施形態が示されている添付の図面を参照する。しかしながら、他の実施形態が利用され得、そして論理的、機械的、および電気的変化がなされ得ることが理解されるべきである。さらに、図面の図および明細書に示されている方法は、個々のステップが実行され得る順序を限定するものとして解釈されるべきではない。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
[0049]暗号鍵を含む鍵は、データを暗号化および復号するため、ならびにトランザクションに署名するために使用できる。鍵には、秘密鍵、公開鍵、暗号化鍵、署名鍵、他の暗号鍵のみならず、パスワードおよび秘密を含めることができる(しかしながら、これらに限定されない)。例では、鍵は、文字列として具体化され得る。
[0050]いくつかの構成では、1つまたは複数の対称暗号化鍵が使用され得る。対称暗号化鍵(または単に「対称鍵」)を使用して、データを暗号化および/または復号できる。これは、たとえば、異なるブロックチェーンアドレス、アカウント、および/またはウォレットの、1つまたは複数の秘密鍵を暗号化および復号するために、同じ鍵を使用して暗号化および復号できるため、「対称的な」暗号化/復号と称される。限定することなく、対称鍵は、以下の暗号化、すなわち、Twofish、Serpent、高度暗号化標準(AES)、Blowfish、CAST5、Kuznyechik、RC4、Data Encryption Standard(DES)、Triple DES(3DES)、Skipjack、Safer+/++(Bluetooth)、IDEAおよび/または他の暗号ブロックコーディング(CBC)バリエーションのうちのいずれかにしたがって動作し得る。したがって、以下のいくつかの例では、AES鍵が使用されているが、他の対称鍵を代わりに使用することもできる。
[0051]いくつかの構成では、非対称暗号化が使用され得る。秘密鍵と、対応する公開鍵とを含む「公開/秘密鍵ペア」は、非対称暗号化において使用され得る。秘密鍵および公開鍵は、代わりに、復号秘密鍵および暗号化公開鍵と称され得る。公開鍵はデータの暗号化のために使用でき、データは、暗号化のために使用された公開鍵に対応する秘密鍵を使用してのみ復号できる。例では、公開鍵を使用して(たとえば、顧客のウォレットにおいて)トランザクションアドレスを生成することができ、対応する秘密鍵のみが、トランザクションアドレスからの資金を使うトランザクションに署名できる。これは、同じ鍵が暗号化と復号(またはトランザクションへの署名)のために使用されないため、「非対称」暗号化/復号と称され得る。一般に、秘密鍵(場合によっては公開鍵)を安全に保つことが望ましい。しかしながら、多くの場合、鍵を安全に保つことと、必要なときにアクセスできるようにすることとの間にはトレードオフがある。限定することなく、非対称鍵は、以下の暗号化、すなわち、Rivest-Shamir-Adleman(RSA)およびElliptic Curve Cryptography(ECC)(たとえば、Curve25519)、Edwards-curve Digital Signature Algorithm(EdDSA)(たとえば、Ed25519)などのうちのいずれかにしたがって動作し得る。
[0052]いくつかの構成では、メッセージは暗号的に署名され得る。例では、本明細書で説明されるオプションの暗号署名は、Ed25519を利用するLibsodium署名を使用して適用され得るが、他のプロトコルも使用され得る。暗号署名は、署名公開鍵および署名秘密鍵を備えた署名鍵ペアを使用し得る。具体的には、秘密署名鍵を使用して、最初に(メッセージ送信者において)メッセージに署名し、その後、メッセージの受信者は、受信/検証デバイスがすでに署名公開鍵を知っていると想定して、メッセージが署名公開鍵の作成者によって送信されたことを検証できる。言い換えると、署名を使用して、信頼できるソースからメッセージを受信したことを検証できる。いくつかの構成では、対称および/または非対称な暗号化に加えて、暗号署名(または単に「署名」)が使用され得る。
[0053]例では、送信デバイスは、鍵パーツを、送信デバイスの署名秘密鍵を使用して署名することを含めて暗号化(すなわち、二重暗号化)し、その後、受信デバイスに送信し得る。次に、受信デバイスは、受信デバイスが事前に知っている送信デバイスの署名公開鍵を使用して、(暗号化された鍵または鍵パーツにおける)署名を検証することによって、受信され暗号化(すなわち、二重暗号化)された鍵パーツが、信頼できるソースからのものであることを検証し得る。いくつかの構成では、署名を適用することは、少なくともメッセージおよび署名秘密鍵に基づいて(ハッシュ関数または他の暗号関数を使用して)少なくとも1つのハッシュを決定することを含み得る。いくつかの構成では、署名を検証することは、少なくとも、受信され署名されたメッセージと、署名公開鍵とに基づいて、少なくとも1つの暗号関数を適用することを含み得る。
[0054]いくつかの構成では、同じ非対称鍵ペアを使用して、(1)鍵または鍵パーツを暗号化(または二重暗号化)または復号し、(2)鍵または鍵パーツを署名または検証し得、たとえば、(送信デバイスにおいて)公開鍵は暗号化のために使用され、秘密鍵は署名のために使用され、(受信デバイスにおいて)公開鍵は署名の検証のために使用され、秘密鍵は復号のために使用される。あるいは、暗号化鍵ペアは、署名鍵ペアとは異なる場合がある。さらに、異なる鍵または鍵パーツが異なるパーツホルダに送信される場合、各パーツホルダは、固有の暗号化鍵ペアと同じである場合、または同じではない場合がある、固有の署名鍵ペアを有している場合がある。いくつかの構成では、たとえば、Libsodium SealedBoxまたはCryptoBox関数ライブラリへの単一の関数呼出を使用して、暗号化(対称または非対称)とオプションの署名とをともに適用できる。
[0055]場合によっては、1人の人に鍵へのフルアクセスを与えることは望ましくない。代わりに、鍵を使用するために複数の人が必要になることが望ましい場合がある。例では、これは、鍵が使用されるときに組織の複数の取締役、役員、パートナ、および/または従業員が参加する必要がある場合に役立つ可能性がある。鍵は、複数のパーツに分割でき、パーツのサブセットを使用して、鍵を再構築できる。例では、鍵のコンポーネントの生成は、鍵を再構築するために特定の数のコンポーネントを必要とするように構成できる。たとえば、特定の鍵を再構築するためにN個の鍵コンポーネントのうちのM個が必要になるように、特定の鍵が、N個の鍵コンポーネントに分割され得る。例では、N個の鍵コンポーネントを、様々なユーザに配布できる。例では、鍵コンポーネントは、電子メール、ショートメッセージサービス(SMS)、マルチメディアメッセージングサービス(MMS)、インスタントメッセージング、プッシュ通知(プッシュ検証通知など)、通知のポーリング(またはプル)、Bluetooth、Wi-Fi、または近距離通信(NFC)送信のうちの少なくとも1つを使用して、ユーザのデバイスに電子的に配布できる。例では、鍵コンポーネントは、画面に表示され、書き留められるか、または(クイックレスポンス(QR)コード、バーコードなどへの)印刷によって物理的に配布されるか、またはUSB鍵/メモリスティック(または、他のソリッドステートドライブ)、または光ディスクまたは磁気ディスクに格納される。例では、鍵は、多項式補間またはシャミール秘密共有のうちの少なくとも1つを介して鍵コンポーネントのセットに分割される。「鍵コンポーネント」、「鍵パーツ」、および「パーツ」という用語は、より大きな暗号鍵の一部を指すために、本明細書では相互置換可能に使用される。鍵コンポーネントは、鍵分割後に暗号化(または二重暗号化)され得る。
[0056]1つの構成では、資産鍵は、残高の多い保管アカウントに関連付けられた(たとえば、トランザクションに署名するための)秘密鍵、特に価値の高いデータを復号するための暗号鍵などであり得る。資産鍵を資産暗号化鍵で暗号化し、暗号化鍵を資産暗号化鍵パーツに分割することで、セキュリティと柔軟性の追加層を追加できる。資産暗号化鍵パーツは、対称鍵でさらに暗号化されて、暗号化された資産暗号化鍵パーツ(たとえば、単一暗号化パーツ)を生成し得る。オプションで、暗号化された資産暗号化鍵パーツを、公開鍵でさらに暗号化して、二重暗号化秘密パーツを形成し得る。単一暗号化または二重暗号化されたパーツのおのおのは、グループの1人に提供される。複数の暗号化されたパーツが、同じ個人またはエンティティに提供される可能性があるが、通常、暗号化された各パーツは、異なる個人またはエンティティに送られる。資産鍵を使用してアクションを実行するには、N個の暗号化されたパーツうちの少なくともM個を収集して復号し、その後、資産暗号化鍵に再構築する必要があり、たとえば、ここで、1<=M<=N(および、いくつかの構成では1<M<N)である。次に、資産暗号化鍵を使用して、たとえば、異なるブロックチェーンアドレス、アカウント、および/またはウォレットのうちの1つまたは複数の秘密鍵を暗号化または復号できる。
[0057]したがって、本システムおよび方法は、アクションを実行するために、複数の個人/エンティティが暗号鍵(または鍵パーツ)を保持することを必要とするシステムを改善する。具体的には、本システムおよび方法は、N個の鍵/パーツのうちのM個が必要であり、したがって、必要な場合にアクセス可能にしながら、無許可の目的のために資産暗号化鍵を再構築する(したがって、資産鍵にアクセスする)ためには、少なくともM人のパーツホルダ間の共謀が必要とされるので、悪意のある攻撃の可能性を最小限に抑える手法で、異なる鍵/鍵パーツを安全に生成および配布することによって、そのようなシステムを改善する。
[0058]さらに、本システムおよび方法は、資産暗号化鍵の様々なパーツが、パーツホルダへの配布前に(対称鍵およびオプションで公開鍵を用いて)さらに暗号化されるため、従来の鍵分割よりも安全である。したがって、鍵パーツが横取りされた場合でも、資産暗号化鍵は、対称鍵(および、鍵パーツで二重暗号化が使用されている場合は、公開鍵に対応する秘密鍵)を用いてのみ、シャミールパーツから再構築できる。言い換えると、対称鍵はパーツ配布器にのみ知られ、パーツホルダには知られていないため、鍵パーツの対称暗号化(または公開鍵を用いた二重暗号化)のこの特別な層は、悪意のあるアクタが、資産暗号化鍵を再構築する可能性を低減する。
[0059]図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およびコンピューティングデバイス104のおのおのは、少なくとも1つのメモリ、少なくとも1つのプロセッサ、少なくとも1つのオプションのネットワークインターフェース、少なくとも1つのオプションのディスプレイデバイス、少なくとも1つのオプションの入力デバイス、および少なくとも1つの電源を含む。
[0060]図2は、鍵を安全に生成、分割、および/または再構築するためにシステム100において使用される例示的なコンピューティングデバイス102のブロック図である。コンピューティングデバイス102は、少なくとも1つのメモリ202、少なくとも1つのプロセッサ204、オプションの少なくとも1つのネットワークインターフェース206、オプションの鍵生成モジュール208、オプションの鍵分割モジュール210、オプションの鍵再構築モジュール212、オプションの対称暗号化モジュール214、オプションの対称復号モジュール216、オプションの非対称暗号化モジュール218、およびオプションの非対称復号モジュール220を含む。さらに、コンピューティングデバイス102はまた、様々な他のモジュールおよび/またはハードウェア、たとえば、オプションのディスプレイデバイス、オプションの入力デバイス、およびオプションの電源を含み得る。
[0061]例では、少なくとも1つのメモリ202は、情報を格納するために使用される任意のデバイス、メカニズム、または入力されたデータ構造とすることができる。例では、少なくとも1つのメモリ202は、任意のタイプの揮発性メモリ、不揮発性メモリ、および/または動的メモリとすることができるか、またはそれらを含むことができる。たとえば、少なくとも1つのメモリ202は、ランダムアクセスメモリ、メモリストレージデバイス、光メモリデバイス、磁気媒体、フロッピーディスク、磁気テープ、ハードドライブ、消去可能プログラマブル読取専用メモリ(EPROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、光学媒体(コンパクトディスク、DVD、Blu-rayディスクなど)などとすることができる。いくつかの実施形態によれば、少なくとも1つのメモリ202は、1つまたは複数のディスクドライブ、フラッシュドライブ、1つまたは複数のデータベース、1つまたは複数のテーブル、1つまたは複数のファイル、ローカルキャッシュメモリ、プロセッサキャッシュメモリ、リレーショナルデータベース、フラットデータベースなどを含み得る。それに加えて、当業者は、少なくとも1つのメモリ202として使用できる情報を格納するための多くの追加のデバイスおよび技法を認識するであろう。少なくとも1つのメモリ202は、少なくとも1つのプロセッサ204において、1つまたは複数のアプリケーションまたはモジュールを実行するための命令を格納するために使用され得る。たとえば、少なくとも1つのメモリ202を、1つまたは複数の例で使用して、オプションの鍵生成モジュール208、オプションの鍵分割モジュール210、およびオプションの鍵再構築モジュール212の機能を実行するために必要な命令のすべてまたは一部を収納することができる。
[0062]少なくとも1つのプロセッサ204は、汎用プロセッサ(GPP)または専用(フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または他の集積回路または回路構成)、または任意のプログラマブルロジックデバイスなどの任意の周知のプロセッサとすることができる。例では、少なくとも1つの鍵生成モジュール208、鍵分割モジュール210、および/または鍵再構築モジュール212のいずれかが、少なくとも1つのプロセッサ204および少なくとも1つのメモリ202によって実施される。
[0063]例では、少なくとも1つのオプションのネットワークインターフェース206および/または少なくとも1つのオプションのネットワークインターフェース206は、(システム100の少なくとも1つのネットワーク106のうちの1つのような)ネットワークと通信するための少なくとも1つのオプションのアンテナを含むか、またはそれに結合される。例では、少なくとも1つのオプションのネットワークインターフェース206および/または少なくとも1つのオプションのネットワークインターフェース206は、イーサネットインターフェース、セルラ無線アクセス技術(RAT)無線、Wi-Fi無線、Bluetooth無線、または近距離通信(NFC)無線のうちの少なくとも1つを含む。例では、少なくとも1つのオプションのネットワークインターフェース206および/または少なくとも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(IEEE 802.11)無線を含む。例では、少なくとも1つのオプションのネットワークインターフェース206および/または少なくとも1つのオプションのネットワークインターフェース206は、パッシブ近距離通信(NFC)タグ、アクティブ近距離通信(NFC)タグ、パッシブ無線周波数識別(RFID)タグ、アクティブ無線周波数識別(RFID)タグ、近接カード、または他のパーソナルエリアネットワークデバイスなどの近距離通信に限定される近距離無線通信デバイスを含む。例では、同じ少なくとも1つのオプションのネットワークインターフェース206および/または少なくとも1つのオプションのネットワークインターフェース206もまた、ネットワーク(NFC決済端末など)への外部ゲートウェイデバイスとの通信に使用される。
[0064]例では、オプションの少なくとも1つのディスプレイデバイスは、発光ダイオード(LED)、液晶ディスプレイ(LDC)、発光ダイオード(LED)ディスプレイ、有機発光ダイオード(OLED)ディスプレイ、e-inkディスプレイ、フィールドエミッションディスプレイ(FED)、表面伝導電子エミッタディスプレイ(SED)、またはプラズマディスプレイのうちの少なくとも1つを含む。例では、オプションの少なくとも1つの入力デバイスは、(容量性および抵抗性タッチスクリーンを含む)タッチスクリーン、タッチパッド、容量性ボタン、機械式ボタン、スイッチ、ダイヤル、キーボード、マウス、カメラ、バイオメトリックセンサ/スキャナなどのうちの少なくとも1つを含む。例では、オプションの少なくとも1つのディスプレイデバイスおよびオプションの少なくとも1つの入力デバイスは、コンピューティングデバイス102とのユーザ相互作用のために、ヒューマンマシンインターフェース(HMI)に組み合わされる。例では、ネットワークノード102の様々なコンポーネントに電力を供給するために、少なくとも1つのオプションの電源が使用される。
[0065]コンピューティングデバイス102の少なくとも1つのプロセッサ204は、少なくとも1つの鍵、たとえば、資産鍵および/または資産暗号化鍵を安全に生成するように構成される。例では、これは、鍵生成モジュール208において実施される。コンピューティングデバイス102の少なくとも1つのプロセッサ204は、少なくとも1つの鍵をランダムに安全に生成するように構成され得る。例では、コンピューティングデバイス102の少なくとも1つのプロセッサ204は、少なくとも1つの鍵を安全に生成する鍵生成器を実施し得る。例では、鍵生成器は、線形フィードバックシフトレジスタ(LFSR)、Solitaire暗号、および/またはPontifex暗号のうちの少なくとも1つを含む。例では、コンピューティングデバイス102の少なくとも1つのプロセッサ204は、多くの疑似ランダム特性を有するシーケンスを生成することによって、少なくとも1つの鍵を生成するように構成される。例では、少なくとも1つの鍵を使用して、データを暗号化および/または復号できる。
[0066]少なくとも1つのプロセッサ204は、鍵をパーツに分割するようにさらに構成され、パーツのうちの少なくともサブセットを使用して鍵を再構築できる。例では、これは、鍵分割モジュール210において実施される。例では、鍵のパーツへの分割は設定可能であり、鍵を再構築するために特定数のパーツが必要になる場合がある。たとえば、特定の鍵を再構築するためにN個のパーツのうちのM個が必要となるように、特定の鍵が、N個のパーツに分割され得る。例では、パーツは、様々なユーザに配布される。例では、パーツは、電子メール、ショートメッセージサービス(SMS)、マルチメディアメッセージングサービス(MMS)、インスタントメッセージング、プッシュ通知、またはプッシュ検証通知のうちの少なくとも1つなどによって、少なくとも1つのネットワークインターフェース206を使用してユーザデバイスに電子的に配布できる。例では、鍵は、多項式補間またはシャミール秘密共有のうちの少なくとも1つによってパーツに分割される。例では、パーツは、ユーザに提供される媒体上に表示、印刷、またはその他の方法で固定でき、その後、ユーザは、鍵コンポーネントを、対応するコンピューティングデバイス104に入力できる。例では、資産暗号化鍵を再構築するために資産暗号化鍵パーツのサブセットが必要となるように、資産暗号化鍵を分割することにより、セキュリティと柔軟性の追加層を追加できる。
[0067]例では、少なくとも1つのプロセッサ204は、対称暗号化を1つまたは複数の鍵パーツに適用するように構成される。例では、この対称暗号化は、対称暗号化モジュール214において実施される。例では、AES鍵を使用して、資産暗号化鍵パーツを、暗号化された資産暗号化鍵パーツに暗号化する。例では、対称暗号化は、各資産暗号化鍵パーツに、少なくとも1つの排他的論理和(XOR)演算を適用することを含み、結果として得られる暗号化された資産暗号化鍵パーツは、資産暗号化鍵パーツとAES鍵との両方における対応するビット位置におけるビットが異なる場合、各ビット位置に1を含み、暗号化された資産暗号化鍵パーツは、資産暗号化鍵パーツとAES鍵との両方における対応するビット位置におけるビットが同じである場合、各ビット位置にゼロを含むようになる。
[0068]複数のAES鍵を使用して各資産暗号化鍵パーツを暗号化する例では、少なくとも1つのプロセッサ204は、各資産暗号化鍵パーツと、複数のAES鍵のうちの第1のAES鍵との間に第1の排他的論理和(XOR)を適用し、次に、第1のXORの結果と、複数のAES鍵のうちの第2のAES鍵との間に第2の排他的論理和(XOR)を適用するという具合に、複数のAES鍵のうちのすべてが使用されるまで行うように構成される。例では、1つの対称鍵のみが、資産暗号化鍵パーツを暗号化するために少なくとも1つのプロセッサ204によって使用され、資産暗号化鍵は、それ自体が対称鍵であり得る。
[0069]オプションで、少なくとも1つのプロセッサ204は、非対称暗号化を、1つまたは複数の鍵パーツに適用するように構成される。例では、この非対称暗号化は、非対称暗号化モジュール218において実施される。例では、非対称暗号化モジュール218は、パーツホルダへの配布前に、(鍵ペアにおける秘密鍵に対応する)公開鍵を使用して、暗号化された資産暗号化鍵パーツを、二重暗号化資産暗号化鍵パーツに公開鍵暗号化する。例では、鍵ペアにおける公開鍵を使用して、暗号化した後、鍵ペアにおける対応する秘密鍵のみを使用して復号できる。
[0070]例では、コンピューティングデバイス102のうちの少なくとも1つのプロセッサ204は、パーツのサブセット、たとえば、N個のパーツのうちのM個から、鍵を再構築するようにさらに構成される。例では、これは、鍵再構築モジュール212において実施される。例では、コンピューティングデバイス102は、パーツホルダから(物理的に印刷された、または電子的に表示された)QRコード(登録商標)をスキャンすることによって、(たとえば、対称および非対称暗号化を使用して対称的に暗号化または二重暗号化された)パーツを受信し得る。あるいは、パーツは、電子メール、ショートメッセージサービス(SMS)、マルチメディアメッセージングサービス(MMS)、インスタントメッセージング、プッシュ通知、またはプッシュ検証通知のうちの少なくとも1つなどによって、少なくとも1つのネットワークインターフェース206を使用してコンピューティングデバイス102において受信され得る。
[0071]例では、少なくとも1つのプロセッサ204は、対称的に暗号化された1つまたは複数の鍵パーツを復号するように構成される。例では、この対称復号は、たとえば、対称暗号化モジュール214において、対称暗号化のために使用されるものと同じ対称鍵を使用して、対称復号モジュール216において実施される。例では、暗号化のために使用される(同じ)AES鍵は、暗号化された資産暗号化鍵パーツを、資産暗号化鍵パーツに復号するためにも使用される。例では、AES復号は、各暗号化された資産暗号化鍵パーツに、少なくとも1つの排他的論理和(XOR)演算を適用することを含み、結果として得られる資産暗号化鍵パーツは、暗号化された資産暗号化鍵パーツとAES鍵との両方における対応するビット位置におけるビットが異なる場合、各ビット位置に1を含み、資産暗号化鍵パーツは、暗号化された資産暗号化鍵パーツとAES鍵との両方における対応するビット位置におけるビットが同じである場合、各ビット位置にゼロを含むようになる。
[0072]オプションで、少なくとも1つのプロセッサ204は、秘密鍵を使用して公開鍵暗号化された1つまたは複数の鍵パーツを復号するように構成される。例では、この非対称復号は、たとえば、非対称暗号化モジュール218において、非対称暗号化のために使用される公開鍵に対応する秘密鍵を使用して、非対称復号モジュール220において実施される。例では、秘密鍵は、二重暗号化された資産暗号化鍵パーツを、暗号化された資産暗号化鍵パーツに復号するために使用される。
[0073]それに加えて、暗号化モジュール217が図面に例示されている場合、構成に応じて、対称暗号化モジュール214または非対称暗号化モジュール218として動作するように構成できる。同様に、復号モジュール219が図面に例示されている場合、構成に応じて、対称復号モジュール216または非対称復号モジュール220として動作するように構成できる。暗号化モジュール217は、例示されている場合、実行する対称または非対称な暗号化に必要な適切な対称または非対称な鍵が例示されていない場合でも、これら鍵へのアクセスを有していると想定される。復号モジュール219は、例示されている場合、実行する対称または非対称な復号に必要な適切な対称または非対称な鍵が例示されていない場合でも、これら鍵へのアクセスを有していると想定される。
[0074]例では、資産暗号化鍵パーツを、様々なパーツホルダに配布することによってセキュリティの追加層が提供される。これは、資産鍵自体を変更することなく、パーツの一部が失われたり、構成される状況を支援することができる。例では、鍵パーツが紛失したり、危険にさらされた場合や、鍵パーツを有する個人のグループを変更する必要がある場合(幹部、他の従業員、または取締役が、辞任するか、または職位を変更する場合など)に、個人に提供される新しい資産暗号化鍵パーツを生成することが理にかなっている場合がある。そのような場合、十分な数のパーツが、少なくとも1つのプロセッサ204において受信され、少なくとも1つのプロセッサ204は、資産暗号化鍵を再生成するように構成される。1つまたは複数の新しい資産暗号化鍵パーツが生成され、パーツホルダに配布される前に、対称的に暗号化(および、オプションで公開鍵暗号化)される。
[0075]図3は、パーツのサブセットを使用して、資産暗号化鍵を再構築し、資産鍵へアクセスできる、複数の個人/エンティティ(パーツホルダ)に提供されるパーツに分割される資産暗号化鍵を使用して、少なくとも1つの資産鍵(または他の秘密)を保護するための例示的なシステム/方法論300を例示するブロック図である。鍵の文脈における「パーツ」および「コンポーネント」という用語は、本明細書では、鍵の一部を指すために相互置換可能に使用され得る。
[0076]資産鍵は、残高の多い保管アカウントに関連付けられた(たとえば、トランザクションに署名するための)秘密鍵、特に価値の高いデータを復号するための暗号鍵などであり得る。したがって、システム/方法論300を使用して、たとえば、(たとえば、Mが、N以下である場合)N人の個人のうちのM人に行動を要求するなど、承認された個人へのアクセスを提供しながら、資産鍵を安全に保つことができる。
[0077]図3のシステム/方法論は、以下を含むがこれらに限定されない、いくつかの目標を満たすように設計されている。第1に、すべての秘密が、たとえば、ディスク上または送信中に暗号化されることが望ましい。理想的には、秘密は、公開鍵暗号化される。秘密を公開鍵暗号化できない場合は、秘密をパスワード暗号化する必要がある。第2に、ペイロードの送信者と受信者とを識別するために、公開鍵暗号化を使用することが望まれる。意図された受信者のみが、メッセージを復号できる。受信者は、メッセージが、予想された送信者から送信されたことを認証できる。第3に、重要な秘密を、それらを必要とするサービスに分離することが望まれる。第4に、オフラインシステムとの相互作用を最小限に抑えることが望ましい。たとえば、(USBデバイスにおけるプラグインではなく)QRコード(登録商標)を使用して、システムとデータをやり取りすることが好ましい。プラットフォームのセキュリティユーザエクスペリエンスは、煩雑すぎる場合、管理の容易化のために回避され得るが、これは望ましくはない。
[0078]例示的なシステム/方法論300には、以下を含む4つの主要な部分、すなわち(1)プロセス設定/決定302、(2)秘密作成304、(3)トークン発行306、および(4)オフライン署名サービス308がある。要素302~908のおのおのは、ステップ、コンピューティングデバイス102、および/またはステップを実行する人/人々を表し得る。コンピューティングデバイス102は、ステップを実行するために使用される場合、ステップを実行するように構成されたコンピューティングデバイス102内に少なくとも1つのプロセッサを含み得る。
[0079]本明細書の説明は、資産暗号化鍵をパーツに分割することに焦点を絞っているが、秘密が資産暗号化鍵またはその他のものであるに関わらず、他の秘密(特に重要なもの)を分割および/または配布するために、同様のシステム/方法論を使用できることが理解される。さらに、資産暗号化鍵は、資産鍵を保護するために本明細書において説明されるように分割および暗号化され得るが、本システムおよび方法はまた、パーツに分割されて、複数のパーツホルダに配布される任意の秘密をより一般的に保護するために使用できる。たとえば、分割される秘密は、重要なパスワード、アカウント/ルーティング番号などであり、これはパーツに分割され、対称鍵で暗号化され、公開鍵暗号化によって多くのパーツホルダに配布される。つまり、再構築された秘密が、システム内の他の暗号化のために使用される対称鍵である場合ではなく、パーツから秘密を復号して再構築することがツールの最終目標になる可能性がある。例では、本明細書で説明された二重層暗号化を、オプションで使用して、パーツを保護することができる。
[0080]図3の設定/決定302を参照して、秘密(たとえば、資産暗号化鍵)をパーツに分割し、秘密パーツを暗号化し、および/または秘密パーツを配布するための様々な決定を行うことができる。これらの決定は、以下の判定、すなわち、(1)各秘密が分割されるパーツの数、(2)パーツホルダのアイデンティティ、および(3)誰が重要なパスワードを受信および/または保有しているか、を含み得る。例では、例示的なシステム/方法論300を実施するために、以下、すなわち、(1)データ転送および/またはバックアップのためのポータブルストレージドライブ(たとえば、USBまたは他のフラッシュメモリ)、(2)QRコード(登録商標)または他のコード/データをキャプチャ/スキャンするためのWebカメラまたは他の画像化デバイスを有し得るが、(Wi-Fiおよび/またはBluetoothなどの無線のない、および/または暗号化されたディスクなどを含む、エアギャップを設けられた)安全なラップトップ、(3)QRコード(登録商標)プリントアウトのための安全な保管(パーツホルダの所持中に開封されていないことを確認するために、金庫などのパーツホルダによって管理された安全な場所に置くことができる、パーツホルダに提供される改ざん追跡証拠バッグ(tamper tracking evidence bag)など)、(4)ラップトップおよびポータブルストレージドライブのための安全な保管(金庫など)、および/または(5)必要に応じてQRコード(登録商標)プリントアウトを印刷するためのプリンタ(これは、QRコード(登録商標)を印刷した後に破壊され、鍵パーツが含まれていたプリンタのメモリが破壊される場合がある)が使用され得る。
[0081]図3における秘密作成304は、たとえば、シャミールパーツ生成器を実施する少なくとも1つのプロセッサ204を備えたコンピューティングデバイス102を使用して、秘密を安全に生成することを含み得る。パーツ生成器は、秘密(たとえば、以下で論じられるSYM1鍵などの資産暗号化鍵)、対称鍵(以下で論じられ、別名、「暗号化鍵」とも称される第2の対称鍵SYM2など)、および/または、(秘密鍵および公開鍵を含む)オフライン署名サービス鍵ペアを生成し得る。資産暗号化鍵は、その後、パーツ(たとえば、シャミールパーツSYM1パーツ1~N)に分割され得る。各資産暗号化鍵パーツ(たとえば、SYM1パーツ)は、対称鍵SYM2を使用して暗号化される。このSYM2対称鍵は、SYM1パーツごとに同じである場合も、様々なSYM1パーツごとに異なる場合もある。パスワード暗号化は、オフライン署名サービス鍵ペアの秘密鍵、および/または、SYM2対称鍵にも適用され得る。オフライン署名サービス鍵ペアの公開鍵は、SYM2暗号化SYM1パーツのおのおのを暗号化するために使用される。
[0082]例では、SYM2暗号化SYM1パーツ(暗号化された資産暗号化鍵パーツ)は、たとえば、QRコード(登録商標)のプリントアウトとして印刷されて、パーツホルダに配布され得る。それに加えて、または、その代わりに、SYM2暗号化SYM1パーツは、オフライン署名サービス鍵ペアの公開鍵を使用して、さらに暗号化され得、これらの二重暗号化秘密パーツは、たとえば、QRコード(登録商標)のプリントアウトとして印刷され、パーツホルダに配布される。
[0083]図3におけるトークン発行306を参照して示すように、トークン発行306は、(1)保管者、ブローカディーラ、および/または保管ブローカディーラアカウントのイーサリアムアドレスを作成することと、(2)投資家アドレスのための階層的決定論的(HD)鍵を作成する(イーサリアムアドレスが、投資家のために生成される)ことと、(3)スマート契約を展開し、投資家アドレスにトークンを発行することとを含み得る。例では、管理者アドレスは、オフライン署名サービス308において作成され得る。例では、契約の所有権が、管理者アドレスに転送され得る。
[0084]本システムおよび方法は、オフライン署名サービス308および/またはオンライン署名サービスを利用して、とりわけ、秘密パーツから資産暗号化鍵を再構築し得る。オフライン署名サービスは、たとえば、印刷された(または電子的に表示された)QRコード(登録商標)をスキャンしたり、または、ポータブルストレージドライブを読み取ることによって、オフライン経路を介して秘密パーツを受信し得る。対照的に、オンライン署名サービスは、たとえば、インターネットなどのネットワーク接続を介して秘密パーツを受信し得る。
[0085]オフライン署名サービス308は、少なくとも1つのプロセッサを備えたコンピューティングデバイス102(たとえば、安全な、エアギャップを設けられたラップトップ)において実施され得る。オフライン署名サービス308に関して様々なアクションが講じられ得る。たとえば、限定されないが、以下の情報、すなわち、シャミールパーツ構成(役割、電子メールなど)と、オフライン署名サービス鍵ペアのパスワード保護された秘密鍵、およびオフライン署名サービスのためのSYM2鍵と、および/または、オンライン署名サービス鍵ペアの公開鍵とが提供され、オフライン署名サービス308へロードされ得る。様々な情報は、たとえば、エアギャップを設けられたラップトップに直接プラグインされたポータブルストレージドライブを介して、オフライン署名サービス308にロードされ得る。エアギャップを設けられたラップトップは、パスワードで保護され得る。オフライン署名サービス鍵ペアのパスワード保護された秘密鍵と、オフライン署名サービスのためのSYM2鍵と、および/または、オンライン署名サービス鍵ペアの公開鍵とは、オフライン署名サービス308を実施する、安全な、エアギャップを設けられたラップトップに、永続データとして記憶され得る。(304において作成された)シャミールパーツは、たとえば、すでにパーツホルダに提供されたQRコード(登録商標)をスキャンすることによって、パーツホルダから受け入れることができる。1つの構成では、オフライン署名サービス308は、オフライン署名サービス鍵ペアの秘密鍵を使用して、非対称(たとえば、公開鍵)暗号化を外し、SYM1資産暗号化鍵を再構築するのに十分なシャミールパーツが受信されるまで、SYM2暗号化SYM1パーツ(または二重暗号化秘密パーツ)をラップトップのメモリに格納する。
[0086]例では、オフライン署名サービス308はまた、以下に説明するように、スマート契約管理者アカウントを作成し得る。例では、オフライン署名サービス308は、システム/方法論300が初期化および設定された後に停止され得る。オフライン署名サービス308の停止中に、ラップトップにおける永続データは、金庫、貸金庫、またはロックボックスなどの安全な場所に別々にバックアップおよび保存され得る。
[0087]図4は、たとえば、図3に示されるオフライン署名サービス308と同様の、例示的な署名サービス408を例示するブロック図である。署名サービス408は、様々な鍵、たとえば、SYM2暗号化SYM1パーツ(暗号化された資産暗号化鍵パーツ)、二重暗号化秘密パーツ、署名サービス408鍵ペアの公開鍵、および/または、署名サービス408鍵ペアの秘密鍵などを保有できる。署名サービス408は、サービスとしてトランザクション(たとえば、引出または送金410)に署名し得る。たとえば、署名サービス408は、署名されていないトランザクション412を受信し、たとえば、イーサリアム、ビットコイン、レイブンコインなどのブロックチェーン416に記録するために、署名されたトランザクション414を送信し得る。
[0088]同様の署名サービスの実施は、ホットおよびコールドのウォレット秘密保管のために使用できる。ホットウォレットとコールドウォレットはどちらも保護されており、安全である一方、ホットウォレットは頻繁にアクセスされるが、ネットワークインターフェースを介して利用する必要がある。対照的に、コールドウォレットはめったにアクセスされず、ネットワークインターフェースを介して利用可能ではない。
[0089]図5Aは、たとえば、図3~図4に示されるオフライン署名サービス308と同様の、例示的な署名サービス408を例示するブロック図である。資産の秘密鍵を保護するために、鍵自体はパーツ(シャミール秘密パーツなど)に分割されない。むしろ、鍵は別の暗号化鍵(対称鍵など)で暗号化518され、暗号化鍵および暗号化された鍵は、(鍵分割モジュール210によって、)鍵コンポーネントのセットを形成するためにパーツ(シャミール秘密パーツなど)に分割される。鍵コンポーネントの各セットは、それぞれのパーツホルダに提供される。例では、鍵コンポーネントのすべてのセットのサブセットを使用して、暗号化鍵を再構築できる。
[0090]図5Bは、たとえば、図3~図4に示されるオフライン署名サービス308と同様の、別の例示的な署名サービス408を例示するブロック図である。図5Aとは対照的に、資産暗号化鍵(SYM1鍵)は、(実行される暗号化のタイプに応じて、対称鍵または非対称鍵である)鍵を用いて暗号化モジュール217において暗号化する前に、(鍵分割モジュール210によって)資産暗号化鍵パーツ(シャミール秘密パーツなど)に分割し得る。この結果は、暗号化された資産暗号化鍵パーツ(または、単一暗号化秘密パーツ:singly-encrypted secret part)となる可能性があり、これは、オプションで、署名サービス鍵ペア(図示せず)の公開鍵でさらに暗号化されて、二重暗号化秘密パーツを生成できる。暗号化された各資産暗号化鍵パーツ(または、二重暗号化秘密パーツ)は、それぞれのパーツホルダに提供され得る。例では、パーツのサブセットを使用して、すべてのパーツを必要とせずに、資産暗号化鍵を再構築できる。
[0091]図6は、資産暗号化鍵を分割するための方法600を例示するフロー図である。方法600は、おのおのが少なくとも1つのプロセッサで実施される、少なくとも1つのコンピューティングデバイス102によって実行され得る。たとえば、方法600は、オフライン署名サービス308を実施するコンピューティングデバイス102によって実行され得る。したがって、方法600は、少なくとも部分的に、図3に示される秘密作成304および/またはオフライン署名サービス308を実施し得る。
[0092]方法600は、ステップ602で開始し、ここで、少なくとも1つのプロセッサは、資産暗号化鍵を、資産暗号化鍵パーツのうちの少なくとも1つのセットに分割する。分割は、多項式補間またはシャミール秘密共有のうちの少なくとも1つを含み得る。
[0093](たとえば、N個の資産暗号化鍵パーツのうちの少なくともM個を使用して)再構築された場合、資産暗号化鍵を使用して、資産鍵(または、複数の資産鍵)へアクセスできる。各資産鍵は、たとえば、人または組織にとって非常に重要な暗号(たとえば、秘密)鍵であり得る。例では、各資産鍵は、(ブロックチェーン416におけるウォレットアドレスまたはスマート契約のための)ブロックチェーン(たとえば、イーサリアム、ビットコイン)秘密鍵であり、この場合、資産暗号化鍵は、少なくとも1つのブロックチェーン秘密鍵を暗号化/復号するために使用される。1つの構成では、単一の資産暗号化鍵(SYM1鍵)を使用して、異なるブロックチェーンアドレス、アカウント、および/またはウォレットのための複数の秘密鍵を、対称的に暗号化/復号し得る。別の構成では、ブロックチェーン秘密鍵ごとに、異なる資産暗号化鍵が使用され得る。さらに、資産鍵は、たとえば、暗号通貨ウォレットのためのパスワードまたは15語のニーモニックフレーズ(15-word mnemonic phrase)である、重要なデータの非暗号鍵文字列であり得る。
[0094]方法600は、ステップ604に進み、ここで、少なくとも1つのプロセッサは、少なくとも1つの対称鍵732(たとえば、SYM2鍵)、または少なくとも1つの公開鍵を使用して、資産暗号化鍵パーツのうちの少なくとも1つのセットを、暗号化された資産暗号化鍵パーツ(たとえば、SYM2暗号化SYM1パーツ、または「単一暗号化」秘密パーツ)のうちの少なくとも1つのセットに暗号化する。SYM2対称鍵は、SYM1パーツごとに同じである場合も、または資産暗号化鍵パーツ(SYM1パーツ)ごとに異なる場合もある。SYM2暗号化には、SYM2鍵を各SYM1パーツとXORすることを含み得る。あるいは、ステップ604において実行される暗号化は、たとえば、生成デバイスまたはパーツホルダに属する暗号化公開鍵を使用する非対称暗号化であり得る。例では、各公開鍵736は、たとえば、オフライン署名サービス308またはオンライン署名サービス1809の、対応する公開/秘密鍵ペアに属する。
[0095]オプションで、シャミールメタデータは、ステップ604の間に追加され得る。シャミールメタデータは、たとえば、資産暗号化鍵を再構築するために、N個の資産暗号化鍵パーツのうちのM個が必要とされるように、資産暗号化鍵パーツ(SYM1パーツ)から、資産暗号化鍵(SYM1鍵)を再構築するための指示および/または要件を提供し得る。(暗号化されているか否かに関わらず)特定のパーツのシャミールメタデータは、そのパーツがどのパーツホルダのために対象とされているのかを示し得る。
[0096]方法600は、少なくとも1つのプロセッサが、少なくとも1つの公開鍵を使用して、暗号化された資産暗号化鍵パーツ(SYM2暗号化SYM1パーツ)を暗号化するオプションのステップ606に進む。オプションのステップ606が実行される場合、結果として得られるパーツは、二重暗号化秘密パーツと称され得る。これは、オフライン署名サービス鍵ペアの公開鍵を使用して、公開鍵暗号化を適用することを含み得る。あるいは、各パーツホルダに固有の公開鍵を使用して、SYM2暗号化SYM1パーツのおのおのを暗号化することもできる。
[0097]図6には示されていないが、暗号化された(ステップ604から得られる単一暗号化、または、オプションのステップ606から得られる二重暗号化された)資産暗号化鍵パーツのうちの少なくとも1つのセットは、オプションで、(ステップ602および604を実行した)生成デバイスに属する署名秘密鍵を使用して署名できる。
[0098]方法600は、少なくとも1つのプロセッサが、暗号化された(単一または二重に暗号化された)資産暗号化鍵パーツのうちの少なくとも1つのセットを、パーツホルダ(たとえば、おのおのが、暗号化された資産暗号化鍵パーツのうちの1つのセットを受信する、N人のパーツホルダ)に通信する(ステップ604またはオプションのステップ606から)オプションのステップ608に進む。例では、これは、単一または二重に暗号化されたパーツを表すQRコード(登録商標)を印刷すること、またはそれらをポータブルストレージドライブに格納することを含み得る。
[0099](ステップ608において)暗号化された資産暗号化鍵パーツのうちの少なくとも1つのセットが、通信前に署名された場合、受信デバイスは、たとえば、生成デバイスに属し、暗号化された資産暗号化鍵パーツのうちの少なくとも1つのセットに署名するために使用される署名秘密鍵に対応する署名公開鍵を使用して、暗号化された資産暗号化鍵パーツのうちの少なくとも1つのセットが、信頼できるソースから受信されたことを検証し得る。
[0100]方法600は、少なくとも1つのプロセッサが、暗号化された(単一または二重に暗号化された)資産暗号化鍵パーツを復号して、資産暗号化鍵パーツ(SYM1パーツ)を生成するオプションのステップ610に進む。例では、(単一または二重に暗号化された)パーツは、少なくとも一部(たとえば、N人のうちのM人)のパーツホルダから受信できる。
[0101]暗号化された資産暗号化鍵パーツが、二重暗号化されている(オプションのステップ606がパーツに対して実行された)場合、各復号は、(1)二重暗号化秘密パーツを、(たとえば、オフライン署名サービス鍵ペア、オンライン署名サービス、またはそれぞれのパーツホルダ鍵ペアの)秘密鍵を使用して復号して、単一暗号化資産暗号化鍵パーツを生成することと、(2)単一暗号化資産暗号化鍵パーツを、(たとえば、暗号化された資産暗号化鍵に固有の)対称鍵、または、それぞれのパーツホルダ、オフライン署名サービス308、またはオンライン署名サービスの秘密鍵を使用して、資産暗号化鍵パーツ(SYM1パーツ)へ復号することとを含み得る。
[0102]暗号化された資産暗号化鍵パーツが、単一暗号化された(オプションのステップ606がパーツに対して実行されなかった)場合、復号は、暗号化された資産暗号化鍵パーツ(SYM2暗号化SYM1パーツ)を、対称鍵、または、それぞれのパーツホルダ、オフライン署名サービス308、またはオンライン署名サービスの秘密鍵を使用して復号することを含み得る。
[0103]方法600は、少なくとも1つのプロセッサが、復号された資産暗号化鍵パーツ(SYM1パーツ)から、資産暗号化鍵(SYM1鍵)を再構築するオプションのステップ612に進む。例では、資産暗号化鍵(SYM1鍵)を再構築するために、N個の復号された資産暗号化鍵パーツのうちの少なくともM個が必要である。ステップ612は、オプションのシャミールメタデータを利用して、資産暗号化鍵を再構築するのに十分な資産暗号化鍵パーツが収集されたか否かを知ることができる。
[0104]方法600は、少なくとも1つのプロセッサが、再構築された資産暗号化鍵を使用して、アクションを実行するオプションのステップ614に進む。例では、資産暗号化鍵を使用して、資産鍵(または、複数の資産鍵)へアクセスし得る。資産鍵が、(ブロックチェーン416におけるウォレットアドレスまたはスマート契約のための)ブロックチェーン(たとえば、イーサリアム、ビットコイン)の秘密鍵である場合、資産暗号化鍵は、ブロックチェーン秘密鍵を暗号化/復号するために使用される。例では、資産暗号化鍵は、顧客のウォレットの復元中に、スイープトランザクションに署名するために、または、残高の多いアカウントのトランザクションアドレスを生成するために使用される。あるいは、資産鍵は、暗号通貨ウォレットのためのパスワードまたは15語のシードニーモニックフレーズなどの非暗号鍵文字列であり得る。したがって、アクションは、ブロックチェーン416における暗号通貨アドレス/ウォレット/アカウントまたはスマート契約にアクセスするために、秘密ブロックチェーン鍵または他のパスワードのようなデータを、暗号化または復号することを含み得る。
[0105]図7~図9は、図3に例示される秘密作成304の様々な態様を例示する。具体的には、図7Aは、オフラインシャミールパーツ生成器726を使用して秘密を作成するための例示的なシステム/方法論700Aを例示するブロック図である。ユーザは、シャミールパーツに関するパスワード742およびシャミールパーツ構成724(役割、電子メールなど)を、オフラインシャミールパーツ生成器726に提供する。オフラインシャミールパーツ生成器726は、資産暗号化鍵728(SYM1鍵)を生成する。これは、(鍵分割モジュール210によって)資産暗号化鍵パーツ730(SYM1パーツ)に分割される。
[0106]例では、シャミールパーツ構成724からの情報は、オプションで、暗号化された資産暗号化鍵パーツ734および/または二重暗号化秘密パーツ738に、シャミールメタデータの形態で含まれ得る。シャミールメタデータは、たとえば、資産暗号化鍵728を再構築するために、N個の資産暗号化鍵パーツ730のうちのM個が必要とされるように、資産暗号化鍵パーツ730(SYM1パーツ)から、資産暗号化鍵728(SYM1鍵)を再構築するための指示および/または要件を提供し得る。(暗号化されているか否かに関わらず)特定のパーツのシャミールメタデータはまた、そのパーツがどのパーツホルダのために対象とされているのかを示し得る。
[0107]オフラインシャミールパーツ生成器726はまた、たとえば、対称暗号化モジュール214において少なくとも1つの排他的論理和(XOR)演算を使用して、資産暗号化鍵パーツ730(SYM1パーツ)を、暗号化された資産暗号化鍵パーツ734(SYM2暗号化SYM1パーツ、または単一暗号化秘密パーツ)に暗号化するために使用される対称鍵732(SYM2鍵)を生成する。このSYM2対称鍵732は、各SYM1パーツ730に対して同じである場合も、または様々なSYM1パーツ730に対して異なる場合もある。シャミールメタデータが追加された場合、暗号化された各資産暗号化鍵パーツ734は、シャミールメタデータを有するそれぞれの資産暗号化鍵パーツ730であり得、これら両方は、ともに対称的に暗号化される。(対称暗号化モジュール214における)第1段階の暗号化の間、第1の署名は、オプションで、配布器署名秘密鍵(図示せず)を使用して、暗号化された資産暗号化鍵パーツ734へ適用され得る。
[0108]いくつかの構成では、オフラインシャミールパーツ生成器726はまた、秘密鍵740および公開鍵736を含む(たとえば、オフライン署名サービス308のための)鍵ペアを生成する。例では、秘密鍵740は、暗号化されたパーツの配布器(およびオプションで、以下で論じられるパーツのアセンブラ/再構築器)にのみ知られているが、公開鍵736は、たとえば、パーツホルダ1620と、より自由に共有され得る。
[0109]公開鍵736は暗号化された資産暗号化鍵パーツ734(SYM2暗号化SYM1パーツ)のおのおのを、二重暗号化秘密パーツ738に暗号化するために(オプションの非対称暗号化モジュール218において)使用される。オプションで、(非対称暗号化モジュール218における)オプションの第2段階の暗号化の間、第2の署名は、オプションで、配布器署名秘密鍵(図示せず)を使用して、二重暗号化秘密パーツ738に適用され得る。各公開鍵736は、それぞれのパーツホルダに関連付けられた、二重暗号化秘密パーツ738とともに、それぞれのパーツホルダに配布され得る。
[0110]パスワード暗号化は、(たとえば、配布器鍵ペアの)秘密鍵740、ならびに対称鍵732(SYM2鍵)に適用される。言い換えれば、パスワードモジュール748の後、パスワード保護された秘密鍵744およびパスワード保護された対称鍵746からそれぞれ、秘密鍵740および対称鍵732(SYM2鍵)にアクセスするために、パスワード742が必要とされ得る。(パスワード保護された対称鍵746(SYM2鍵)744とともに)パスワード保護された秘密鍵744は、たとえば、後で資産暗号化鍵728を再構築するために、パーツアセンブラにおいて格納され得る。
[0111]図7Bは、シャミールパーツ生成器726を使用して、秘密を作成するための、別の例示的なシステム/方法論700Bを例示するブロック図である。図7Bは、図7Aと同じデバイス、モジュール、およびデータの多くを含み得る。特に明記されていない限り、図7Bにおけるデバイス、モジュール、およびデータは、図7Aにおけるデバイス、モジュール、およびデータと同様に動作する。
[0112]対称暗号化モジュール214およびオプションの非対称暗号化モジュール218の代わりに、シャミールパーツ生成器726は、第1の暗号化モジュール217Aおよび第2の暗号化モジュール217Bを使用し得る。各暗号化モジュール217は、(対称鍵732などの対称鍵を使用する)対称暗号化モジュール214、または(公開鍵736またはパーツホルダ暗号化公開鍵のような非対称鍵を使用する)非対称暗号化モジュール218であり得る。
[0113]したがって、二重暗号化秘密パーツ738は、おのおの対称または非対称である2段階の任意の暗号化を使用して暗号化され得る。たとえば、二重暗号化秘密パーツ738は、本明細書では、第1の非対称暗号化と、それに続く第2の対称暗号化とを使用して生成されるとしばしば説明されるが、(1)2段階の非対称暗号化と、(2)2段階の対称暗号化と、(3)第1段階の非対称暗号化および第2段階の対称暗号化と、または(4)第1段階の対称暗号化および第2段階の非対称暗号化とを使用して生成される。さらに、2段階の暗号化が本明細書で説明される場合、代わりに、おのおの対称または非対称である3段階以上が使用され得ることが理解される。
[0114]オプションで、シャミールメタデータは、暗号化された資産暗号化鍵パーツ734に追加され得る。シャミールメタデータが追加される場合、暗号化された各資産暗号化鍵パーツ734は、シャミールメタデータを有するそれぞれの資産暗号化鍵パーツ730であり得、これらは両方とも(対称的または非対称的に)ともに暗号化される。それに加えて、暗号化された資産暗号化鍵パーツ734および/または二重暗号化秘密パーツ738(生成された場合)は、配布器署名秘密鍵を使用して署名され得る。
[0115]図8は、オフライン署名サービス鍵ペアのSYM2対称鍵732および公開鍵736で暗号化されたSYM1パーツ730のおのおのについて、パーツQRコード854を生成するための例示的なシステム/方法論800を例示するブロック図である。各公開鍵暗号化SYM2暗号化SYM1パーツ(すなわち、二重暗号化秘密パーツ738)は、パーツQRコード854を印刷するためにプリンタ852に提供される。各パーツQRコード854は、パーツホルダに配布される。各パーツホルダは、それぞれのパーツQRコード854を安全に保つことが信頼されている個人またはエンティティであり得る。資産暗号化鍵728を再構築する必要がある場合、それぞれの各パーツホルダは、スキャンされるパーツQRコード854を提示することができ、その後、公開鍵暗号化SYM2暗号化SYM1パーツ(すなわち、二重暗号化秘密パーツ738)は、それらの秘密パーツ730に復号される(そして、M個の秘密パーツ730が収集された場合、資産暗号化鍵728として再構築される)。
[0116]図9は、たとえば、オンライン署名サービスのための、鍵ペアを作成するための例示的なシステム/方法論900を例示するブロック図である。鍵ペア生成器958は、秘密鍵941および公開鍵937を含むオンライン署名サービス鍵ペアを生成し得る。(オンライン署名サービスのための)パスワード923は、オンライン署名サービスのための秘密鍵941をパスワードで保護するためにユーザによって(コンピューティングデバイスへ)提供される。したがって、各秘密鍵941は、たとえば、パスワードモジュール748を使用して、(オンライン署名サービスのための)パスワード保護された秘密鍵945を生成するために、ユーザからのパスワード923で保護され得る。パスワード保護された秘密鍵945は(パスワード保護された対称鍵(SYM2鍵)746とともに)、たとえば、後に資産暗号化鍵728を再構築するために、パーツアセンブラにおいて格納され得る。
[0117]図10は、トークンを発行するための例示的なシステム/方法論306を例示するブロック図であり、たとえば、図10は、図3のトークン発行306の態様を例示する。トークン発行306は、以下の前提条件、すなわち、(1)(たとえば、個人識別可能情報(PII)ハッシュを含む)投資家情報1062の収集と、(2)展開アドレスの作成、および、イーサリアムブロックチェーン416を使用している場合は、ETH(イーサ)、または別のチェーンを使用している場合は、他のフューエルを使用した資金化を有し得る。例では、以下のイーサリアムアドレス、すなわち、(1)保管者、(2)ブローカディーラ、および(3)保管ブローカディーラアカウントが作成され得る。例では、投資家アドレスに対して階層的決定論的(HD)鍵が作成され、投資家のためにイーサリアムアドレスが生成される。例では、契約が展開され、トークンが投資家アドレスに発行される。例では、管理者アドレスは、オフライン署名サービス308において作成され得る。例では、契約の所有権が、管理者アドレスに転送され得る。
[0118]例では、投資家は、たとえば、イーサリアムウォレットを使用して、トークンを購入するための資金1070を提供する。投資家のPIIハッシュおよび他の構成情報1062には、スマート契約およびトークン発行モジュール1060を有効にするための公開鍵736が提供される。トークン発行306は、たとえば、セキュリティのため公開鍵736を使用して、保管者、ブローカディーラ(BD)、およびBDアカウントアドレスのための、公開鍵で暗号化された階層決定論的(HD)ニーモニック1064と、公開鍵で暗号化された(イーサリアム)秘密鍵1067とをもたらす。あるいは、HDニーモニックおよび秘密鍵を、他の手法で暗号化するか、まったく暗号化しないこともできる。暗号化されているか否かに関わらず、HDニーモニックおよび秘密鍵は、オプションで、たとえばポータブルストレージドライブのようなポータブルメモリ1068に格納され得る。
[0119]図11~図18は、たとえば図3における、オフライン署名サービス308の態様を例示する。具体的には、図11は、オフライン署名サービス308を初期化するための例示的なシステム/方法論を例示するブロック図である。オフライン署名サービス308は、たとえば、安全なエアギャップを設けられたラップトップにおいて、指示を実行するように構成された少なくとも1つのプロセッサを含むコンピューティングデバイス102によって実施され得る。
[0120]オフライン署名サービス308は、たとえば、パーツホルダ、および/または他のシステムから、様々な情報を受信し得る。例では、シャミールパーツ構成724(役割、電子メールなど)と、オフライン署名サービス鍵ペアのパスワード保護された秘密鍵744、およびオフライン署名サービスのためのパスワード保護された対称鍵746(パスワード保護されたSYM2鍵)と、および/または、オンライン署名サービス鍵ペアの公開鍵937とは、安全な、エアギャップを設けられたラップトップに(たとえば、ポータブルストレージドライブによって)提供される。パスワード保護された鍵が、オフライン署名サービス308において受信される場合、
[0121]オフライン署名サービス鍵ペアのラップトップ、および/または、パスワード保護された秘密鍵744と、オフライン署名サービス鍵ペアのパスワード保護された対称鍵746(パスワード保護されたSYM2鍵)とのロックを解除するために(モジュール1172のロックを解除するために)、パスワード742が提供される。ロックを解除する(たとえば、ロック解除モジュール1172においてパスワードを検証する)と、オフライン署名サービス鍵ペアのパスワード保護された秘密鍵744と、オフライン署名サービスのためのパスワード保護された対称鍵746(パスワード保護されたSYM2鍵)と、および/または、オンライン署名サービス鍵ペアの公開鍵937とは、安全な、エアギャップを設けられたラップトップに、永続データとして(永続メモリ1174に)格納される。
[0122]永続メモリ1174に格納されていると本明細書に説明される鍵のいずれも、それぞれのパスワード保護された形態、またはパスワード保護されていない形態で格納できることに留意されたい。たとえば、保護されていない秘密鍵740と、保護されていない対称鍵732(SYM2鍵)とは、永続メモリ1174に格納され得る。
[0123]シャミールパーツ受入モジュール1178は、たとえば、カメラまたはスキャナなどの少なくとも1つの画像化デバイス1176を使用する、(パーツホルダに提供される)パーツQRコード854をスキャンすることによって、少なくとも1つのパーツホルダのおのおのから、二重暗号化秘密パーツ738(SYM2暗号化SYM1パーツ)および(オンライン署名サービスのための)公開鍵937を受け入れることができる。例では、シャミールパーツ受入モジュール1178は、ロック解除指示1782に応答して動作し得る。オフライン署名サービス308は、秘密鍵740を使用して、非対称(たとえば、公開鍵)暗号化を外し、資産暗号化鍵(SYM1鍵)728を再構築するために十分なパーツが受信されるまで、暗号化された資産暗号化鍵パーツ(SYM2暗号化SYM1パーツ)734を、ラップトップのメモリ1180に格納する。
[0124]図12Aは、保管者トークン秘密を、オフライン署名サービス308にインポートするための例示的なシステム/方法論を例示するブロック図である。秘密をインポートするために、秘密インポートモジュール1284Aは、公開鍵で暗号化された(オフライン署名サービスの公開鍵で暗号化された)(イーサリアム)秘密鍵1067、およびオプションで、公開鍵で暗号化されたHDニーモニック1064を受信し得る。非対称復号モジュール220は、(永続メモリ1174からの)秘密鍵740を使用して、公開鍵で暗号化された(イーサリアム)秘密鍵1067を、イーサリアム秘密鍵1269に復号し得る。
[0125]鍵再構築モジュール212は、その後、メモリ1180に格納された、暗号化された資産暗号化鍵パーツ(SYM2暗号化SYM1パーツ)734から、資産暗号化鍵(SYM1鍵)728を再構築し得る。例では、暗号化された資産暗号化鍵パーツ734は、資産暗号化鍵(SYM1鍵)728を再構築する前に、(SYM2暗号化を外すために)最初に復号され得る。あるいは、メモリ1180は、保護されていない資産暗号化鍵パーツ730を格納することができ、その場合、資産暗号化鍵(SYM1鍵)728を再構築する前に、SYM2復号は必要とされない。
[0126]トークン暗号化モジュール214は、資産暗号化鍵728でトークンを暗号化し、暗号化(たとえば、SYM1暗号化)されたイーサリアム秘密鍵1271を、ラップトップにおける永続メモリ1174に格納し得る。
[0127]図12Bは、保管者トークン秘密を、オフライン署名サービス308にインポートするための別の例示的なシステム/方法論を例示するブロック図である。図12Bは、図12Aと同じデバイス、モジュール、およびデータの多くを含み得る。特に明記されていない限り、図12Bにおけるデバイス、モジュール、およびデータは、図12Aにおけるデバイス、モジュール、およびデータと同様に動作する。図12Bにおける秘密インポートモジュール1284Bは、(図12Aにおける非対称復号モジュール220の代わりに)対称または非対称な復号を利用する復号モジュール219を利用し得る。同様に、図12Bにおける秘密インポートモジュール1284Bは、(図12Aにおける対称暗号化モジュール214の代わりに)対称または非対称な復号を利用する暗号化モジュール217を利用し得る。
[0128]図13は、オフライン署名サービス308においてイーサリアムアドレスモジュール1383を使用して、スマート契約管理者アカウントを作成するための例示的なシステム/方法論を例示するブロック図である。イーサリアム鍵ペア生成器1397は、スマート契約管理者アカウントのためのイーサリアム管理者鍵ペア1393を作成することにより、管理者1394からの要求1396ごとにイーサリアムアドレスを作成し得る。
[0129]鍵再構築モジュール212は、その後、メモリ1180に格納された、暗号化された資産暗号化鍵パーツ(SYM2暗号化SYM1パーツ)734から、資産暗号化鍵(SYM1鍵)728を再構築し得る。例では、暗号化された資産暗号化鍵パーツ734は、資産暗号化鍵(SYM1鍵)728を再構築する前に、(SYM2暗号化を外すために)最初に復号され得る。あるいは、メモリ1180は、保護されていない資産暗号化鍵パーツ730を格納することができ、その場合、資産暗号化鍵(SYM1鍵)728を再構築する前に、SYM2復号は必要とされない。
[0130]アドレス暗号化モジュール1389は、資産暗号化鍵(SYM1鍵)728を使用して、スマート契約管理者アカウントイーサリアム秘密鍵1387を暗号化し、暗号化されたスマート契約管理者アカウント(イーサリアム)秘密鍵1385を、ラップトップにおける永続メモリ1174に格納し得る。管理者公開アドレスを、QRコード1355へ変換して、スマート契約1391を、たとえば、モバイル電話などのコンピューティングデバイス102 1399を介して、イーサリアムブロックチェーン416における管理者アドレスに転送するために使用できる。
[0131]図14は、(たとえば、図11~図13において説明されたような)初期タスクが完了すると、オフライン署名サービス308を停止し、バックアップを作成するための例示的なシステム/方法論1400を例示するブロック図である。例では、オフライン署名サービス308が停止され、(ラップトップにおける永続メモリ1174における)永続データが、少なくとも1つの別個の安全なバックアップ1402A~Nにバックアップされる。永続メモリ1174は、オフライン署名サービスの鍵ペア1406(秘密鍵740および公開鍵736)と、対称鍵(SYM2鍵)732と、SYM1暗号化(イーサリアム)秘密鍵1261(または、保護されていないイーサリアム秘密鍵1269)と、および/または、暗号化されたイーサリアム管理者秘密鍵1385(または、保護されていないイーサリアム管理者秘密鍵1387)とを含み得る。オプションで、オンライン署名サービスの秘密鍵941、公開鍵937、および/またはパスワード923もまた、永続メモリ1174に含まれる。しかしながら、その代わりに、永続メモリ1174には、より少ない、より多い、および/または異なるデータが存在し得る。
[0132]各安全なバックアップ1402は、ポータブルメモリ(たとえば、ポータブルストレージドライブ)に、または別個の安全な場所1404A~Nに保存される印刷されたQRコード(登録商標)として格納され得る。安全な場所1404の例には、金庫、貸金庫、またはロックボックスが含まれるが、これらに限定されない。
[0133]図15は、オフライン署名サービス308の停止後または停止中に、保護される必要のある潜在的なデータを例示するブロック図である。例では、(オフライン署名サービス308を実施する)ラップトップ、および/または、データのうちの少なくとも1つの安全なバックアップ1402が保護され得る。ラップトップおよび安全なバックアップ1402はおのおの、オフライン署名サービス308の鍵ペア1406(秘密鍵740および公開鍵736)と、保管者、BD、BD-アカウント、およびすべての投資家アカウントのためのSYM1暗号化された(イーサリアム)秘密鍵1261と、および/または、管理者1394のための、暗号化されたイーサリアム管理者秘密鍵1385(または、保護されていないイーサリアム管理者秘密鍵1387)とを含み得る。例では、ラップトップに格納された永続メモリ1174と、少なくとも1つの安全なバックアップ1402とは、オフライン署名サービス308の停止中/停止後に、安全な場所1404Aに保存され得る。
[0134]例では、オンライン署名サービス鍵ペア1408(秘密鍵941および公開鍵937)および/または、そのパスワード923もまた、永続メモリ1174の一部として保存されない場合、安全な場所1404Bにおいて保護される必要がある。例では、ラップトップに存在するオフライン署名サービス308の鍵ペア1406(秘密鍵740および公開鍵736)およびパスワード742の任意のコピーは、オフライン署名サービス308の停止中/停止後に、オプションで、安全に消去/破壊1510され得る。
[0135]パーツホルダは、(二重暗号化パーツ738、または暗号化された資産暗号化鍵パーツ734の)パーツQRコード854を、他のそれぞれの安全な場所1404C~Nに安全に格納する必要がある。暗号化されたパーツ(二重暗号化パーツ738または単一パーツ734)は、資産暗号化鍵(SYM1鍵)728の唯一のストアであり得る。したがって、シャミール構成(MおよびNの値)を決定する際には、失われるパーツが多すぎるために、資産暗号化鍵(SYM1鍵)728を再生成できないリスクを最小限に抑えながら、セキュリティを高く保つように考慮される。
[0136]図16は、資産暗号化鍵(SYM1鍵)728を安全に分割するための例示的なシステム/方法論1600を例示するブロック図である。具体的には、例示的なシステム/方法論1600は、秘密作成304、トークン発行306、およびオフライン署名サービス308のための様々なデータファイルを例示する。
[0137]秘密作成304は、(オフライン署名サービス308のための)パスワードを受信するオフラインシャミールパーツ生成器726と、二重暗号化秘密パーツ738を生成するために使用するシャミールパーツ構成724とを含み得る。二重暗号化秘密パーツ738は、JavaScript Object Notation(JSON)パーツ1616Bへ(JSONモジュール161Bを使用して)変換され、その後、PDFモジュール1614Bは、パーツQRコード854として(プリンタ852を使用して)印刷され、パーツホルダ1620に配布されるPDF QRコード1618Bを生成する。それに加えて、オフラインシャミールパーツ生成器726は、パスワード保護された秘密鍵744と、パスワード保護された対称鍵746とを生成することができ、これらはオフライン署名サービス308に送信される。
[0138]パーツホルダ1620は、コンピューティングデバイス102(たとえば、スマートフォン)、および/または、コンピューティングデバイス102を操作するユーザを表し得る。
[0139]トークン発行306は、(オフラインシャミールパーツ生成器726からの)シャミールパーツ構成724および公開鍵736に基づいて、SYM1暗号化(イーサリアム)秘密鍵1261を生成するスマート契約およびトークン発行モジュール1060を含み得る。SYM1暗号化(イーサリアム)秘密鍵1261は(JSONモジュール1612Aを使用して)JSONパーツ1616Aへ変換され、その後、PDFモジュール1614Aは、他のQRコード1622として(プリンタ852を使用して)印刷され、パーツホルダに配布されるPDF QRコード1618Aを生成する。
[0140]パーツQRコード854および/または他のQRコード222は、画像化デバイス1176によって(たとえば、オフライン署名サービス308の一部として)スキャンされ得る。パーツQRコード854がスキャンされる場合、二重暗号化秘密パーツ738が生成される。他のQRコード1622がスキャンされる場合、SYM1暗号化(イーサリアム)秘密鍵1261が生成され得る。オフライン署名サービス308は、上記のように、二重暗号化秘密パーツ738および/またはSYM1暗号化(イーサリアム)秘密鍵1261を使用し得る。さらに、(たとえば、暗号化および/またはパスワード保護された)上記の他の様々な鍵は、QRコード(登録商標)として印刷され、オフライン署名サービス308で使用するためにスキャンされ得る。それに加えて、(たとえば、暗号化および/またはパスワード保護された)上記の他の様々な鍵は、オフライン署名サービス308における使用のために、ポータブルストレージドライブを介して、ラップトップにロードされ得る。
[0141]例では、秘密作成304、トークン発行306、およびオフライン署名サービス308のおのおのは、本明細書で説明された機能を実行するために(たとえば、少なくとも1つのメモリに格納された)命令を実行する少なくとも1つのプロセッサを備えた別個のコンピューティングデバイス102において実施され得る。オプションで、トークン発行306および秘密作成304は、トークン発行306および秘密作成304を実施するコンピューティングデバイスとは別の分離されたコンピューティングデバイス102において実施されるオフライン署名サービス308とともに、同じコンピューティングデバイス102において実施され得る。たとえば、オフライン署名サービス308を実施するコンピューティングデバイス102は、エアギャップを設けられたラップトップまたは他のコンピューティングデバイス102であり得る。
[0142]図17は、例示的なシステム/方法論がどこで/どのように実行されるかについてのさらなる詳細を例示するブロック図である。図17に例示される態様は単なる例であり、限定として見なされるべきではない。例では、トークン発行306は、たとえば、イーサリアムブロックチェーンのようなブロックチェーン416へのアクセスと、(トークン発行306を実施するコンピューティングデバイス102における)ネットワークアクセスと、プリンタ852へのアクセスと、および/または、秘密作成304からの公開鍵736とを使用し得る。
[0143]例では、秘密作成304は、プリンタ852へのアクセスと、シャミールパーツ構成724、JAVAアーカイブ(JAR)ファイル、およびJAVAランタイム環境(JRE)を備えた入力ポータブルストレージドライブと、オプションのネットワークアクセスとを使用し得る。秘密作成304を実施するコンピューティングデバイス102で利用可能なネットワークアクセスがない場合、PDF QRコード1618Bのコピーを、ポータブルストレージドライブに格納して、他の場所で印刷し得る。
[0144]例では、オフライン署名サービス308は、画像化デバイス1176(たとえば、スキャナまたはWebカメラ)へのアクセスと、JARファイルおよびJAVA JREを使用したポータブルストレージドライブからの入力とを使用し得、(オフライン署名サービス308を実施するコンピューティングデバイス102における)ネットワークアクセスを使用しない。
[0145]図18Aは、たとえば、秘密エクスポートモジュール1826Aを使用して、オフライン署名サービス308から秘密をエクスポートするための例示的なシステム/方法論1800Aを例示するブロック図である。例では、秘密が保護された後、取引システムの準備ができたときに、投資家およびBD/アカウント鍵は、オフライン署名サービス308からオンライン署名サービス1809に転送される。オフライン署名サービス308は、メモリ1180から、暗号化された資産暗号化鍵パーツ(SYM2暗号化SYM1パーツ)734を受信し得る。オプションで、暗号化された資産暗号化鍵パーツ(SYM2暗号化SYM1パーツ)734は、パーツホルダ1620によって提供されるパーツQRコード854を介して受信され得る。
[0146]秘密をオンライン署名サービス1809に転送するために、暗号化された資産暗号化鍵パーツ(SYM2暗号化SYM1パーツ)734は、(対称鍵732を使用して対称復号モジュール216において)復号され、資産暗号化鍵パーツ(SYM1パーツ)730が生成され、資産暗号化鍵パーツ(SYM1パーツ)730は、その後、(鍵再構築モジュール212において)再構築され、SYM1資産暗号化鍵728が生成される。
[0147]ラップトップにおける永続メモリ1174からの所望のSYM1暗号化イーサリアム鍵1261は、SYM1資産暗号化鍵728を使用して復号され得る。復号されたイーサリアム鍵は、その後、非対称暗号化モジュール218において、(オンライン署名サービスのための)公開鍵937を使用して、公開鍵暗号化秘密鍵1828に暗号化される。公開鍵暗号化秘密鍵1828は、たとえば、コンピューティングデバイス102 1802を介して、オンライン署名サービス1809に送信される。ユーザは、(オンライン署名サービスのための)パスワード保護された秘密鍵945と、(オンライン署名サービスのための)パスワード923とを提供し得る。
[0148]図18Bは、たとえば、秘密エクスポートモジュール1826Bを使用して、オフライン署名サービス308から秘密をエクスポートするための例示的なシステム/方法論1800Bを例示するブロック図である。図18Bは、図18Aと同じデバイス、モジュール、およびデータの多くを含み得る。特に明記されていない限り、図18Bにおけるデバイス、モジュール、およびデータは、図18Aにおけるデバイス、モジュール、およびデータと同様に動作する。図18Bにおける秘密エクスポートモジュール1826Bは、(図18Aにおける対称復号モジュール216の代わりに)対称または非対称な復号を利用する復号モジュール219を利用し得る。同様に、図18Bにおける秘密エクスポートモジュール1826Bは、(図18Aにおける非対称暗号化モジュール218の代わりに)対称または非対称な復号を利用する暗号化モジュール217を利用し得る。
[0149]図19は、パーツ配布器1925を使用するパーツの配布のための例示的なシステム/方法論1900を例示するブロック図である。いくつかの構成では、パーツ配布器1925は、シャミールパーツ生成器726であり得るか、またはシャミールパーツ生成器726を実施し得る。クラスタがダウンしたときはいつでも、QRコード(登録商標)をスキャンするために幹部が部屋に集まることを期待するのは不合理であり得る。したがって、シャミールパーツを配布し、パーツを更新し、すべてのホルダのために固有の鍵ペアを作成し、ホルダが自分たちの鍵を管理できるようにするための、より良い手法があることが望ましい。
[0150]パーツ配布器1925を使用して、シャミールパーツを複数の(たとえば、N個の)パーツホルダ1620に配布できる。それに加えて、または、その代わりに、リポジトリ1927を使用して、パーツをパーツホルダ1620に送信する、および/または、パーツホルダ1620からパーツを受信できる。リポジトリ1927が使用される場合、パーツホルダ1620は、(たとえば、認証を含む)リポジトリ1927と通信して、それぞれのパーツを検索できる。リポジトリ1927は、パーツ配布器1925からパーツホルダ1620へのデータ(たとえば、鍵、暗号化されたパーツなど)の非同期転送を可能にし、パーツホルダ1620は、必要なときに、暗号化されたパーツを検索できるようになる。オプションで、リポジトリ1927は、パーツ配布器1925および/またはパーツホルダ1620と使用のための認証手順を実施し得る。
[0151]図19において、パーツ配布器1925は、二重暗号化秘密パーツ1939を、パーツホルダ1620および/またはリポジトリ1927に配布する。二重暗号化秘密パーツ1939は、上記の二重暗号化秘密パーツ738に類似している(しかしながら、同一ではない)。具体的には、二重暗号化秘密パーツ1939は、(1)対称鍵732(すなわち、配布器復号秘密鍵)、および(2)パーツホルダ暗号化公開鍵で暗号化され得る。対照的に、二重暗号化秘密パーツ738は、(1)対称鍵732(すなわち、配布器復号秘密鍵)、および(2)配布器暗号化公開鍵で暗号化され得る。
[0152]二重暗号化秘密パーツ1939は、おのおの対称または非対称である任意の2段階の暗号化を使用して暗号化され得ることに留意されたい。たとえば、二重暗号化秘密パーツ1939は、本明細書では、第1の非対称暗号化と、それに続く第2の対称暗号化を使用して生成されるとしばしば説明されるが、(1)2段階の非対称暗号化と、(2)2段階の対称暗号化と、(3)第1段階の非対称暗号化および第2段階の対称暗号化と、または(4)第1段階の対称暗号化および第2段階の非対称暗号化とを使用して生成され得る。それに加えて、単一暗号化秘密パーツ734は、対称暗号化または非対称暗号化を使用して暗号化され得る。
[0153]図20は、秘密パーツ730の配布のためにパーツ配布器1925およびリポジトリ1927を使用する、オンライン実施のための例示的なシステム/方法論2000を例示するブロック図である。パーツ配布器1925は、資産暗号化鍵(秘密)728から秘密パーツ730を作成する。例では、秘密パーツ730は、資産暗号化鍵パーツ730および/またはSYM1パーツ730とも称され得る。例では、秘密728、資産暗号化鍵728、およびSYM1鍵728という用語は、相互置換可能に使用され得る。
[0154]パーツ配布器1925は、二重暗号化秘密パーツ1939を格納し得る。上記のように、二重暗号化秘密パーツ1939は、パーツホルダ暗号化公開鍵2043を用いて(第2段階において)暗号化され得る一方、二重暗号化秘密パーツ738は、配布器1925の、配布器暗号化公開鍵2036を用いて暗号化され得る。
[0155]1つの構成では、パーツ配布器1925は、以下のように、二重暗号化秘密パーツ1939を生成し得る。各秘密パーツ730は、対称鍵732で暗号化されて、単一暗号化秘密パーツ734を生成し得る。例では、対称鍵732は、SYM2鍵732とも称され得る。単一の対称鍵732を使用して、すべての秘密パーツ730を暗号化し得るか、または、異なる対称鍵732を使用して、各秘密パーツ730を暗号化し得る。単一暗号化秘密パーツ734は、暗号化された資産暗号化鍵パーツ(SYM2暗号化SYM1パーツ)734とも称され得る。その後、各単一暗号化秘密パーツ734は、特定のパーツホルダ1620のための暗号化公開鍵2043を使用して、二重暗号化秘密パーツ1939に暗号化され得る(ここで、パーツホルダ1620は、暗号化公開鍵2043に対応する復号秘密鍵2047を保有する)。例では、パーツホルダ復号秘密鍵2047と、パーツホルダ暗号化公開鍵2043とは、たとえば、曲線25519のような楕円曲線暗号(ECC)を使用して暗号化を適用する。
[0156]別の構成では、パーツ配布器1925は、(1)QRコード854を介してパーツホルダ1620から、二重暗号化秘密パーツ738(配布器暗号化公開鍵2036)を受信し、(2)以下に説明するように、二重暗号化秘密パーツ738を二重暗号化秘密パーツ1939に再ラップ/再エンコードし、(3)二重暗号化秘密パーツ1939を格納し得る。
[0157]例では、(パーツホルダ暗号化公開鍵2043およびパーツホルダ復号秘密鍵2047を備える)パーツホルダの鍵ペアは、パーツホルダのコンピューティングデバイス1620(たとえば、モバイル電話)において生成され得る。例では、パーツホルダ暗号化公開鍵2043は、パーツホルダ1620から、少なくともパーツ配布器1925に通信され得る一方、パーツホルダ復号秘密鍵2047は、それぞれのパーツホルダ1620においてのみ保持され(および、知られ)ている。
[0158]パーツ配布器1925はまた、配布器暗号化公開鍵2036および配布器復号秘密鍵2040を備える配布器暗号鍵ペアを格納し得る。限定することなく、配布器暗号化鍵ペア(配布器復号秘密鍵2040および配布器暗号化公開鍵2036)は、オフライン署名サービス308鍵ペア(公開鍵736および秘密鍵740)および/またはオンライン署名サービス1809鍵ペア(公開鍵937および秘密鍵941)と同じであり得る。あるいは、配布器鍵ペアは、オフライン署名サービス308鍵ペアと、オンライン署名サービス1809鍵ペアとの両方と異なる場合がある。例では、配布器復号秘密鍵2040は、パーツ配布器1925(および、オプションで、以下に論じるパーツのアセンブラ/再構築器)のみに知られている一方、配布器暗号化公開鍵2036は、それに加えて、たとえば、パーツホルダ1620と、より自由に共有され得る。例では、配布器暗号化公開鍵2036および配布器復号秘密鍵2040は、たとえば、曲線25519のような楕円曲線暗号(ECC)を使用する暗号化を適用する。
[0159]このようにして、すべてのパーツペイロード(たとえば、二重暗号化秘密パーツ1939)は、複数の暗号化層で暗号化されるので、セキュリティ上の懸念をほとんど伴わずにどこにでも格納できる。たとえば、パーツホルダ1620は、必要に応じて、パーツホルダ1620によって暗号化されたパーツを検索するために、ファイルリポジトリ1927機能(Google/Firebaseなど)を備えたオンラインアカウントを使用できる。リポジトリ1927は、パーツ(たとえば、二重暗号化秘密パーツ1939)をストレージ/メモリ2002に格納し得る。
[0160]例では、リポジトリ1927は、パーツホルダ1620によって提供される認証資格情報2035に基づいてユーザを認証する、認証モジュール2031を含み得る。認証資格情報2035の例は、パスワードと、時間に対する感度の高いコードと、および/または、指紋データ(たとえば、顧客の指紋のスキャン)、網膜スキャンデータ(たとえば、顧客の網膜の画像)、顔認識データ(たとえば、顧客の顔の画像)、および/または音声データ(たとえば、顧客の声の記録)のような生体認証データとを含む。生の生体認証データ(たとえば、画像および/または記録)の代わりに、認証は、たとえば、画像特徴、音声特徴など生の生体認証データから導出される、処理済みのデータを使用し得る。それに加えて、二要素認証(2FA)が、リポジトリ1927によって使用され得る。
[0161]オプションで、パーツ配布器1925は、リポジトリ1927に送信する前に、配布器署名秘密鍵2093を使用して、単一暗号化秘密パーツ734および/または二重暗号化秘密パーツ1939に署名し得る。署名が使用される場合、パーツホルダ1620はまた、たとえば、単一暗号化秘密パーツ734および/または二重暗号化秘密パーツ1939を復号する前に、単一暗号化秘密パーツ734および/または二重暗号化秘密パーツ1939が、配布器署名公開鍵2095を使用して、信頼できるソース(パーツ配布器1925)によってリポジトリ1927に格納されたことを検証し得る。例では、配布器署名秘密鍵2093および配布器署名公開鍵2095は、たとえばEd25519のようなエドワーズ曲線デジタル署名アルゴリズム(EdDSA)にしたがって動作する。
[0162]以下に説明するように、(単一または二重に)暗号化された秘密パーツが、パーツホルダ1620において再暗号化され、(たとえば、リポジトリ1927を介して)秘密パーツのパーツ配布器1925および/またはアセンブラに送り返される場合、同様のオプションの署名および検証が行われ得る。具体的には、パーツホルダ1620は、オプションで、それぞれのパーツホルダ署名秘密鍵2099を使用して、再暗号化された秘密パーツに署名できる。署名が使用される場合、パーツ配布器1925および/またはアセンブラはまた、たとえば、再暗号化された秘密パーツを復号する前に、再暗号化された秘密パーツが、パーツホルダ公開鍵2097を使用して、信頼できるソース(パーツホルダ1620)によってリポジトリ1927に格納されたことを検証し得る。例では、パーツホルダ署名秘密鍵2099およびパーツホルダ署名公開鍵2097は、たとえばEd25519のようなエドワーズ曲線デジタル署名アルゴリズム(EdDSA)にしたがって動作する。
[0163]いくつかの構成では、配布器暗号化公開鍵2036は、配布器署名公開鍵2095または配布器署名秘密鍵2093と同じである。いくつかの構成では、配布器復号秘密鍵2040は、配布器署名公開鍵2095または配布器署名秘密鍵2093と同じである。
[0164]いくつかの構成では、パーツホルダ暗号化公開鍵2043は、パーツホルダ署名公開鍵2097またはパーツホルダ署名秘密鍵2099と同じである。いくつかの構成では、パーツホルダ復号秘密鍵2047は、パーツホルダ署名公開鍵2097またはパーツホルダ署名秘密鍵2099と同じである。
[0165]図21は、(たとえば、二重暗号化秘密パーツ1939である)パーツの配布のためにパーツ配布器1925およびリポジトリ1927を使用する、鍵交換のオンライン実施のための例示的なシステム/方法論2100を例示するブロック図である。パーツ配布器1925は、パーツが配布されるパーツホルダ1620の数およびアイデンティティを決定できる。
[0166]パーツ配布器1925は、安全に保管するために、その配布器暗号化公開鍵2036および秘密パーツ(たとえば、二重暗号化秘密パーツ1939)を、(Google Firestore/Firebaseのような)リポジトリ1927に送信し得る。パーツ配布器1925からリポジトリ1927への送信は、リポジトリ1927においてスキャンされ、ポータブルストレージドライブにロードされ、リポジトリ1927、SMSメッセージ、MMSメッセージなどに物理的に挿入されたQRコード(登録商標)(または、パーツ配布器1925によって電子的に表示されるQRコード(登録商標))としてパーツ配布器1925において印刷されたデータを、インターネット(たとえば、電子メール)などのネットワークを介して送信することを含み得る。
[0167]パーツホルダ1620は、それらのコンピューティングデバイス102(たとえば、モバイルデバイス)にアプリケーション(アプリ)をインストールおよび実行し、それらのリポジトリアカウント(たとえば、Googleアカウント)にサインインし得る。モバイルアプリは、鍵を作成し、(Firestore/Firebaseのような)リポジトリ1927およびパーツ配布器1925に(たとえば、電子メールによって)通信されるパーツホルダの公開鍵2043を格納し得る。パーツ配布器1925は、以下に説明するように、秘密728から、または、二重暗号化秘密パーツ738を受信し、パーツホルダの公開鍵2043を使用して二重暗号化秘密パーツ738を二重暗号化秘密パーツ1939に再ラッピングすることによって、二重暗号化秘密パーツ1939を生成し得る。
[0168]図22は、(たとえば、二重暗号化秘密パーツ1939のような)パーツの配布のために、パーツ配布器1925およびリポジトリ1927を使用する、鍵交換のオンライン実施のためのパーツセキュリティに関する例示的なシステム/方法論2200を例示するブロック図である。上記のように、パーツ配布器1925は、パーツホルダ1620のために、二重暗号化秘密パーツ1939を、リポジトリ1927のストレージ/メモリに格納し得る。各二重暗号化秘密パーツ1939は、たとえば、パーツホルダ1620によって要求されたときに、それぞれのパーツホルダ1620に送信され得る。
[0169]各パーツホルダ1620は、その後、その秘密鍵2047を使用して、それぞれの二重暗号化秘密パーツ1939を、単一暗号化秘密パーツ734に復号できる。各パーツホルダ1620は、対応する秘密鍵2047を有するパーツのみを復号できる。パーツホルダ1620(または、ハッカー)が、自分たちの二重暗号化秘密パーツ1939を復号したとしても、単一暗号化秘密パーツ734は、パーツ配布器1925によってのみ知られている対称鍵(SYM2鍵)732で暗号化される。図22は簡略化された例示であり、パーツ配布器1925、リポジトリ1927、およびパーツホルダ1620は、たとえば、図19~図20に例示されるように、他のモジュールおよび/またはデータをさらに含み得ることが理解される。
[0170]図23は、パーツホルダ1620A~Zの複数の配布器1925A~Bおよび/または複数のグループ2350A~Bを有する鍵交換のオンライン実施のための例示的なシステム/方法論2300を例示するブロック図である。例では、保管者ウォレット1925A~B(たとえば、オンラインおよび/またはオフライン)は、配布器1925として機能し得る。たとえば、二重暗号化秘密パーツ1939-1の第1のセットは、(Firestore/Firebaseなどの)リポジトリ1927を介して、パーツホルダ1620A~Bの第1のグループ2350Aに提供される第1の保管者ウォレット1925Aのために生成され得る。
[0171]同様に(たとえば、同時に)、二重暗号化秘密パーツ1939-2の第2のセットが、(Firestore/Firebaseなどの)リポジトリ1927を介してパーツホルダ1620O~Zの第2のグループ2350Bに提供される第2の保管者ウォレット1925Bのために生成され得る。例では、異なる各パーツ配布器/保管者ウォレット1925は、(たとえば、異なる少なくとも1つの資産暗号化鍵(秘密)728A~B、秘密パーツ730A~Bのセット、単一暗号化秘密パーツ734A~Bのセット、および対称鍵732A~Bから生成された)二重暗号化秘密パーツ1939の異なるセットを格納する。さらに、各配布器/保管者ウォレット1925は、(おのおのパーツホルダ暗号化公開鍵2043およびパーツホルダ復号秘密鍵2047を含む)パーツホルダ鍵ペアの異なるセットと、異なる配布器暗号化公開鍵2036および配布器復号公開鍵2040を利用し得る。例では、パーツホルダグループ2350A~Bは、オーバラップする場合と、オーバラップしない場合とがある。図23は、簡略化された例示であり、パーツ配布器1925、リポジトリ1927、およびパーツホルダ1620はさらに、たとえば、図19~図20に例示されるような、他のモジュールおよび/またはデータを含み得ることが理解される。
[0172]図24Aは、秘密728を再構築するために、パーツをオフライン署名サービス308に戻すための例示的なシステム/方法論2400Aを例示するブロック図である。例示的なシステム/方法論2400Aは、資産暗号化鍵(秘密)728の二重暗号化秘密パーツ738を、N人のパーツホルダ1620に安全に配布し、要求された場合、資産暗号化鍵(秘密)728を、たとえば、資産鍵のアクセス/利用のために、再構築するように動作し得る。例では、資産暗号化鍵(秘密)728を再構築するために、N人のパーツホルダ1620のうちの少なくともM人からの二重暗号化秘密パット738が必要である。
[0173]図24Aのシステム2400Aでは、各二重暗号化秘密パーツ738は、以下のように、すなわち、(1)対称鍵732を使用して、単一暗号化秘密パーツ734を生成する対称暗号化と、その後の、(2)配布器暗号化公開鍵2036で、二重暗号化秘密パーツ738を生成する非対称暗号化とによって、パーツ配布器1925において暗号化される。
[0174]パーツ配布器1925における第1段階の暗号化の間、シャミールメタデータは、オプションで、単一暗号化秘密パーツ734に追加され得る。シャミールメタデータは、たとえば、秘密728を再構築するために、N個の秘密パーツ730のうちのM個が必要とされるように、保護されていない秘密パーツ730から、秘密728を再構築するための指示および/または要件を提供し得る。シャミール分割および再構築は、N個の構成のうちのM個に限定されないことに留意されたい。たとえば、シャミール再構築は、N1個のうちのM1個、およびN2個のうちのM2個を必要とすることができる。言い換えれば、たとえば、秘密728を再構築するために、(N個のうちのM個よりも複雑である)ブール論理を使用して、異なるしきい値を有するパーツホルダ1620の異なるグループを有することができる。5人の幹部のうち3人、50人のスタッフのうち40人、または2つのバックアップコピーのうちの2つが、再構築のために必要になるように、シャミール分割を実行することができる。(暗号化されているか否かに関わらず)特定のパーツのシャミールメタデータは、そのパーツがどのパーツホルダ1620のために対象とされているのかを示し得る。
[0175]オプションで、固有のメッセージ認証コード(MAC)タグが、各二重暗号化秘密パーツ738に追加され得る。MACタグは、メッセージの受信者(たとえば、パーツホルダ1620および/またはアセンブラ2452)が、メッセージが、指定された送信者からのものであり、変更されていないことを検証することを可能にする、メッセージに追加される情報である。例では、システム2400Aにおいて使用される暗号化の一方または両方の段階は、たとえば、Libsodium SealedBoxまたはCryptoBox関数ライブラリへの単一の関数呼出を使用して、暗号化および署名をともに実行し得る。例では、MACタグは、オプションで、SealedBoxまたはCryptoBoxによって適用される暗号化/署名によって追加され得る。本明細書で説明される(たとえば、Ed25519を使用する)オプションの署名のいずれかの代わりに、またはそれに加えて、MACタグが使用され得る。
[0176]例では、二重暗号化秘密パーツ738は、安全に保管するために、たとえば、物理的なプリントアウト、安全な電子送信、および/またはポータブルストレージドライブによって、QRコード854によってパーツホルダに配布できる。秘密728を再構築する必要がある場合、(異なる二重暗号化秘密パーツ738を表すQRコード854は、アセンブラ2452内のまたはアセンブラ2452に結合された画像化デバイス1176(たとえば、安全な場所におけるコンピューティングデバイス102)に提示され得る。QRコード854は、物理的なプリントアウトまたは電子ディスプレイ(たとえば、パーツホルダの電話)に提示され得る。
[0177]アセンブラ2452は、パーツ配布器1925と同じであっても、同じでなくてもよく、たとえば、同じ物理的ハウジング内に配置され、および/または、同じコンピューティングデバイス102によって実施され得る。アセンブラ2452がパーツ配布器1925から物理的に離れている場合、アセンブラ2452は、たとえば、安全なネットワーク通信、スキャン印刷(または電子的に表示)されたQRコード(登録商標)、および/またはポータブルストレージドライブによって、パーツ配布器1925から、少なくとも配布器復号秘密鍵2040および対称鍵732を受信し得る。アセンブラ2452は、パーツ配布器1925から物理的に離れている場合、本明細書で論じられるように、別個のまたは同一の暗号化鍵ペアおよび/または署名鍵ペアを使用し得る。例では、任意の適切な構成が使用され得るが、アセンブラ2452は、オフライン署名サービス308を実施するとき、パーツ配布器1925から物理的に離れているが、オンライン署名サービス1809を実施するときはそうではない。それらが物理的に離れているか否かに関わらず、アセンブラ2452およびパーツ配布器1925は、単一の「システム」と称され得る。
[0178]アセンブラ2452は、パーツホルダ1620のうちの少なくともいくつか(たとえば、少なくともM人)からのQRコード854をスキャンして、二重暗号化秘密パーツ738を生成し得る。非対称復号モジュール220は、受信した各二重暗号化秘密パーツ738を、配布器復号秘密鍵2040を用いて、単一暗号化秘密パーツ734を生成し得る。例では、すべてのパーツホルダ1620から、二重暗号化秘密パーツ738を復号するために、配布器復号秘密鍵2040が使用され得るが、パーツ配布器1925(および、パーツ配布器1925と異なる場合は、アセンブラ2452)のみによって知られ得る。
[0179]対称復号モジュール216は、(対称鍵732を使用して)単一暗号化秘密パーツ734を復号して、秘密パーツ730を生成し得る。オフライン署名サービス308は、秘密728を再構築するのに十分な秘密パーツ730が収集されたか否かを判定し得る。この判定は、単一暗号化秘密パーツ734におけるシャミールメタデータに基づき得る。シャミールメタデータによれば、十分な秘密パーツ730(たとえば、N個のうちのM個)が収集されていない場合、秘密728の再構築は試みられない。
[0180]シャミールメタデータによれば、十分な秘密パーツ730(たとえば、N個のうちのM個)が収集された場合、鍵再構築モジュール212は、複数の秘密パーツ730をアセンブルして、資産暗号化鍵(秘密)728を生成し得る。単一の対称鍵732を使用して、すべての単一暗号化秘密パーツ734を復号することができるか、または、異なる対称鍵732を、各単一暗号化秘密パーツ734のために使用し得る。
[0181]再構築された秘密728を使用して、資産鍵へアクセス(たとえば、資産鍵を復号)し得る。資産鍵は、残高の多い保管アカウントに関連付けられた、(たとえば、トランザクションに署名するための)秘密鍵、特に価値の高いデータを復号するための暗号鍵などであり得る。したがって、資産暗号化鍵(秘密)728の再構築の後、資産鍵を使用して、トランザクションに署名し、および/または、データを復号し得る。
[0182]図24Bは、秘密728を再構築するために、パーツをオフライン署名サービス308に戻すための別の例示的なシステム/方法論2400Bを例示するブロック図である。図24Bは、図24Aと同じデバイス、モジュール、およびデータの多くを含み得る。特に明記されていない限り、図24Bにおけるデバイス、モジュール、およびデータは、図24Aにおけるデバイス、モジュール、およびデータと同様に動作する。
[0183]図24Aのシステム2400Aのように、秘密パーツ730は、最初に、対称鍵732を使用して対称的に暗号化され得る。しかしながら、図24Aのシステム2400Aとは異なり、その後、(図24Bのシステム2400Bにおいて)各二重暗号化秘密パーツ1939を生成するために使用される非対称暗号化は、二重暗号化秘密パーツ1939が対象とされているパーツホルダ1620のパーツホルダ暗号化公開鍵2043を使用し得る。パーツ配布器1925での対称暗号化の間、シャミールメタデータを、オプションで(二重暗号化秘密パーツ1939への非対称暗号化前に)単一暗号化秘密パーツ734に追加できる。オプションで、メッセージ認証コード(MAC)タグは、システム2400Bにおける暗号化(およびオプションの署名)の一方または両方の段階の間に、二重暗号化秘密パーツ1939に追加され得る。
[0184]以前のように、(パーツホルダの公開鍵2043で暗号化された)二重暗号化秘密パーツ1939は、印刷され、QRコード(登録商標)としてパーツホルダ1620に配布され、電子的に送信され、および/またはポータブルストレージドライブを介して送信される。二重暗号化秘密パーツ1939を受信した後、各パーツホルダ1620は、第1の非対称復号モジュール220Aを使用して、(二重暗号化秘密パーツ1939を暗号化するために使用されるパーツホルダ暗号化公開鍵2043に対応する)それぞれのパーツホルダ復号秘密鍵2047で、二重暗号化秘密パーツ1939を復号し得る。各パーツホルダ秘密鍵2047は、それぞれのパーツホルダ1620に固有であり(それぞれのパーツホルダ1620によってのみ知られ)得る。結果として得られる単一暗号化秘密パーツ734は、その後、(非対称暗号化モジュール218において)配布器暗号化公開鍵2036を用いて再暗号化され得る。したがって、各パーツホルダ1620は、(そのパーツホルダ暗号化公開鍵2043で暗号化された)二重暗号化秘密パーツ1939を受信し、(配布器暗号化公開鍵2036で暗号化された)二重暗号化秘密パーツ738を表すQRコード854を生成し得る。
[0185]QRコード854は、アセンブラ2452(たとえば、安全な場所にあるコンピューティングデバイス102)内の、またはアセンブラ2452に結合された画像化デバイス1176に表示され得る。アセンブラ2452は、パーツ配布器1925と同じであっても、同じでなくてもよく、たとえば、同じ物理的ハウジング内に配置され得、および/または、同じコンピューティングデバイス102によって実施され得る。アセンブラ2452がパーツ配布器1925から物理的に離れている場合、アセンブラ2452は、たとえば、安全なネットワーク通信、スキャン印刷(または電子的に表示)されたQRコード(登録商標)、および/またはポータブルストレージドライブによって、パーツ配布器1925から、少なくとも、配布器復号秘密鍵2040および対称鍵732を受信し得る。オプションで、パーツホルダ1620からアセンブラ2452への通信もまた、リポジトリ1927を介して行われ得る。
[0186]アセンブラ2452は、パーツホルダ1620のうちの少なくともいくつか(たとえば、少なくともM人)から、QRコード854をスキャンして、少なくとも1つの二重暗号化秘密パーツ738を生成できる。オフライン署名サービス308において、第2の非対称復号モジュール220Bは、受信された二重暗号化秘密パーツ738を、配布器復号秘密鍵2040で復号して、単一暗号化秘密パーツ734を生成し得る。例では、配布器復号秘密鍵2040は、すべてのパーツホルダ1620から二重暗号化秘密パーツ738を復号するために使用され得るが、配布器1925(および、配布器1925と異なる場合はアセンブラ2452)によってのみ知られ得る。
[0187]対称復号モジュール216は、(対称鍵732を使用して)単一暗号化秘密パーツ734を、秘密パーツ730に復号し得る。オフライン署名サービス308は、秘密728を再構築するのに十分な秘密パーツ730が収集されたか否かを判定し得る。この判定は、単一暗号化秘密パーツ734におけるシャミールメタデータに基づき得る。シャミールメタデータによれば、十分な秘密パーツ730(たとえば、N個のうちのM個)が収集されていない場合、秘密728の再構築は試みられない。
[0188]シャミールメタデータによれば、十分な秘密パーツ730(たとえば、N個のうちのM個)が収集された場合、鍵再構築モジュール212は、複数の秘密パーツ730をアセンブルして、資産暗号化鍵(秘密)728を生成し得る。単一の対称鍵732を使用して、すべての単一暗号化秘密パーツ734を復号し得るか、または異なる対称鍵732を、各単一暗号化秘密パーツ734のために使用し得る。
[0189]再構築された秘密728を使用して、資産鍵へアクセス(たとえば、資産鍵を復号)し得る。資産鍵は、残高の多い保管アカウントに関連付けられた(たとえば、トランザクションに署名するための)秘密鍵、特に価値の高いデータを復号するための暗号鍵などであり得る。したがって、資産暗号化鍵(秘密)728の再構築の後、資産鍵を使用して、トランザクションに署名し、および/またはデータを復号し得る。
[0190]図24Cは、秘密728を再構築するためにパーツをオフライン署名サービス308に戻すための別の例示的なシステム/方法論2400Cを例示するブロック図である。図24Cは、図24Aと同じデバイス、モジュール、およびデータの多くを含み得る。特に明記されていない限り、図24Cにおけるデバイス、モジュール、およびデータは、図24Aにおけるデバイス、モジュール、およびデータと同様に動作する。
[0191]図24Cのシステム2400Cにおいて、秘密パーツ730は、おのおの対称または非対称である2段階の暗号化を使用して、二重暗号化秘密パーツ738に暗号化される。たとえば、二重暗号化秘密パーツ738は、(1)対称鍵732を使用する第1の対称段階と、配布器暗号化公開鍵2036およびパーツホルダ暗号化公開鍵2043を使用する第2の非対称段階、(2)対称鍵732を使用する第1の対称段階と、対称鍵732(または、別の対称鍵)を再び使用する第2の対称段階、(3)配布器暗号化公開鍵2036またはパーツホルダ暗号化公開鍵2043を使用する第1の非対称段階と、対称鍵732を使用する第2の対称段階、または(4)配布器暗号化公開鍵2036またはパーツホルダ暗号化公開鍵2043を使用する第1の非対称段階と、配布器暗号化公開鍵2036またはパーツホルダ暗号化公開鍵2043を使用する第2の非対称段階を使用して生成され得る。二重暗号化秘密パーツ738の生成中に、パーツ配布器1925は、オプションで、シャミールメタデータを、(第1段階の暗号化の間に)単一暗号化秘密パーツ734に、または(第2段階の暗号化の間に)二重暗号化秘密パーツ738に追加し得る。オプションで、メッセージ認証コード(MAC)タグは、システム2400Cにおける暗号化(およびオプションの署名)の一方または両方の段階の間に、二重暗号化秘密パーツ1939に追加され得る。
[0192](二重暗号化秘密パーツ738を表す)QRコード854は、パーツホルダ1620に配布され、秘密728の再構築が望まれる場合、QRコード854のうちの少なくともいくつかは、画像化デバイスに提示されるか、またはアセンブラ2452に結合される。二重暗号化秘密パーツ738が、画像化デバイス1176に提示された各QRコード854から決定されると、第1の復号モジュール219Aは、各二重暗号化秘密パーツ738から、単一暗号化秘密パーツ734を生成し得る。第1の復号モジュール219Aは、(対称鍵732を使用する)対称復号モジュール216、または(配布器復号秘密鍵2040またはパーツホルダ復号秘密鍵2047などの非対称鍵を使用する)非対称復号モジュール220であり得る。
[0193]第2の復号モジュール219Bは、各単一暗号化秘密パーツ734を、秘密パーツ730に復号し得る。第2の復号モジュール219Bは、(対称鍵732などの対称鍵を使用する)対称復号モジュール216または(配布器復号秘密鍵2040またはパーツホルダ復号秘密鍵2047のような非対称鍵を使用する)非対称復号モジュール220であり得る。
[0194]オフライン署名サービス308は、秘密728を再構築するのに十分な秘密パーツ730が収集されたか否かを判定し得る。この判定は、単一暗号化秘密パーツ734におけるシャミールメタデータに基づき得る。シャミールメタデータによれば、十分な秘密パーツ730(たとえば、N個のうちのM個)が収集されていない場合、秘密728の再構築は試みられない。
[0195]シャミールメタデータによれば、十分な秘密パーツ730(たとえば、N個のうちのM個)が収集された場合、鍵再構築モジュール212は、資産暗号化鍵(秘密)728を生成するために複数の秘密パーツ730をアセンブルし得る。単一の対称鍵732を使用して、すべての単一暗号化秘密パーツ734を復号し得るか、または、異なる対称鍵732を、各単一暗号化秘密パーツ734のために使用し得る。
[0196]再構築された秘密728を使用して、資産鍵へアクセス(たとえば、資産鍵を復号)し得る。資産鍵は、残高の多い保管アカウントに関連付けられた(たとえば、トランザクションに署名するための)秘密鍵、特に価値の高いデータを復号するための暗号鍵などであり得る。したがって、資産暗号化鍵(秘密)728の再構築の後、資産鍵を使用して、トランザクションに署名し得る、および/または、データを復号し得る。
[0197]オプションで、図24A~図24Cのいずれかにおいて、送信された任意のパーツは、送信者に属する署名秘密鍵を使用して(暗号化に加えて)署名され得、その後、受信者は、送信者に属する署名公開鍵を使用して、署名を検証し得る。さらに、図24A~図24Cで説明される暗号化のいずれかの間に、暗号化が行われた時刻を示すタイムスタンプが、オプションで追加され得る。タイムスタンプを使用して、(エンコードされているか、またはされていない)様々なパーツがまだ実行可能か否か、または古すぎるために破棄する必要があるか否かを判定できる。
[0198]図25Aは、秘密728を再構築するために、パーツを、(たとえば、アセンブラ2452において実施される)オンライン署名サービス1809に戻すための例示的なシステム/方法論2500Aを例示するブロック図である。二重暗号化秘密パーツ1939は、第1に、配布器暗号化公開鍵2036を使用して、各秘密パーツ730を非対称的に暗号化することによって、パーツ配布器1925によって生成され、単一暗号化秘密パーツ734を生成し得る。第2に、各単一暗号化秘密パーツ734は、二重暗号化秘密パーツ1939を生成するために、(そのパーツが対象とされているそれぞれのパーツホルダ1620に属する)パーツホルダ暗号化公開鍵2043で非対称的に暗号化され得る。
[0199]したがって、二重暗号化秘密パーツ1939は、第1段階は、配布器暗号化公開鍵2036を使用し、第2段階は、それぞれのパーツホルダ暗号化公開鍵2043を使用する2段階の非対称暗号化を使用して、図25Aのシステム2500Aにおいて生成される。パーツ配布器1925における第1段階の暗号化の間、第1の署名は、オプションで、配布器署名秘密鍵2093を使用して、単一暗号化秘密パーツ734に適用され得る。パーツ配布器1925における第2段階の暗号化の間、第2の署名は、オプションで、配布器署名秘密鍵2093を使用して、二重暗号化秘密パーツ1939に適用され得る。
[0200]パーツ配布器1925における第1段階の暗号化の間、シャミールメタデータはまた、オプションで、単一暗号化秘密パーツ734に追加され得る。シャミールメタデータは、たとえば、秘密728を再構築するために、N個の秘密パーツ730のうちのM個が必要とされるように、保護されていない秘密パーツ730から、秘密728を再構築するための指示および/または要件を提供し得る。シャミール分割および再構築は、N個の構成のうちのM個に限定されないことに留意されたい。たとえば、シャミール再構築は、N1個のうちのM1個、および、N2個のうちのM2個を必要とすることができる。言い換えれば、たとえば秘密728を再構築するために、(N個のうちのM個よりも複雑である)ブール論理を使用して、異なるしきい値を有するパーツホルダ1620の異なるグループを有することができ、シャミール分割を実行して、5人の幹部のうちの3人、50人のスタッフのうちの40人、または2つのバックアップコピーのうちの2つが、再構築に必要になるようにすることができる。(暗号化されているか否かに関わらず)特定のパーツのシャミールメタデータは、そのパーツがどのパーツホルダ1620のために対象とされているのかを示し得る。オプションで、メッセージ認証コード(MAC)タグは、システム2500Aにおける暗号化(およびオプションの署名)の一方または両方の段階の間に、二重暗号化秘密パーツ1939に追加され得る。
[0201]二重暗号化秘密パーツ1939は、リポジトリ1927に表示されるQRコード(登録商標)を印刷し、リポジトリ1927に電子的に表示するなどを行う任意の適切な方法によって(Firestore/Firebaseなどの)リポジトリ1927に、たとえば、安全な電子通信を介して配布できる。
[0202]各パーツホルダ1620は、たとえば、パーツホルダ1620におけるユーザ入力に応答して、リポジトリ1927から、対象とされたそれぞれの二重暗号化秘密パーツ1939を検索し得る。検索に続いて、パーツ配布器1925において、第2段階の非対称暗号化の間に第2の署名が適用された場合、各パーツホルダ1620は、オプションで、配布器署名公開鍵2095を使用して、その二重暗号化秘密パーツ1939における第2の署名を検証し得る。例では、パーツホルダ1620は、第2の署名が検証できない場合、その二重暗号化秘密パーツ1939を破棄し得る。各パーツホルダ1620は、その後、(第1の非対称復号モジュール220Aを使用して)その二重暗号化秘密パーツ1939を、単一暗号化秘密パーツ734に非対称的に復号し得る。この段階において、単一暗号化秘密パーツ734は、(対称暗号化ではない)1つの非対称暗号化層およびオプションの第1の署名を備えた秘密パーツ730である。
[0203]各パーツホルダ1620は、配布器暗号化公開鍵2036を使用して、その単一暗号化秘密パーツ734を(非対称暗号化モジュール218において)再暗号化し(および、オプションで、そのパーツホルダ署名秘密鍵2099を使用して第3の署名を追加して)、二重暗号化秘密パーツ738を生成し得る。オプションで、パーツホルダ1620はまた、パーツホルダ1620において非対称再暗号化がいつ実行されたかを示すタイムスタンプを、結果として生じる二重暗号化秘密パーツ738に追加し得る。各パーツホルダ1620は、結果として生じる二重暗号化秘密パーツ738を、リポジトリ1927に、またはオンライン署名サービス1809に直接送信できる。
[0204]例では、(たとえば、サーバレス機能(serverless function)を実施する)各パーツホルダ1620は、パブリッシュ/サブスクライブ(pubsub)非同期メッセージングを使用して送信でき、結果として生じる二重暗号化秘密パーツ738を、リポジトリ1927に公開し、それを新しいpubsubトピックに書き込む。そのような構成では、オンライン署名サービス1809は、たとえば、送信サービス2554を使用して、pubsubトピックからのメッセージを消費し得る。しかしながら、パーツホルダ1620は、1つまたは複数の中間デバイスおよび/またはサービスの有無に関わらず、それらの二重暗号化秘密パーツ738を、オンライン署名サービス1809に送信するために、任意の適切な方法を使用し得る。
[0205]各二重暗号化秘密パーツ738を受信すると、オンライン署名サービス1809は、オプションで、パーツホルダ署名公開鍵2097を使用して、(QRコード854から決定される)二重暗号化秘密パーツ738における第3の署名が、第3の署名を送信したパーツホルダ1620に属していることを検証し得る。例では、オンライン署名サービス1809は、第3の署名が検証できない場合、二重暗号化秘密パーツ1939を破棄し得る。言い換えれば、いくつかの構成では、オンライン署名サービス1809は、二重暗号化秘密パーツ738における第3の署名が、たとえば、リポジトリ1927を介して、第3の署名を送信したパーツホルダ1620と一致する場合にのみ、二重暗号化秘密パーツ738を復号することができる。
[0206]オンライン署名サービス1809は、(第2の非対称復号モジュール220Bを使用して)二重暗号化秘密パーツ738を、配布器復号秘密鍵2040を使用して、単一暗号化秘密パーツ734に復号し得る。これは、(パーツホルダ1620において、単一暗号化パーツ734に追加された)タイムスタンプが最新のものであること、たとえば、所定の時間しきい値より古くないことを、オプションで検証するオンライン署名サービス1809を含み得る。いくつかの構成では、タイムスタンプが、所定の時間しきい値よりも古い場合、オンライン署名サービス1809は、単一暗号化秘密パーツ734を破棄し得る。
[0207]オンライン署名サービス1809は、オプションで、単一暗号化秘密パーツ734における(パーツ配布器1925において適用される)第1の署名が、パーツ配布器1925に属することを検証し得る。その後、第3の非対称復号モジュール220Cは、配布器復号秘密鍵2040を使用して、単一暗号化秘密パーツ734を、秘密パーツ730に復号し得る。例では、アセンブラ2452は、非対称復号モジュール220B~Cによって使用される秘密鍵2040を復号する配布器のように、機密データを格納するために、安全なメモリを使用して、ボールト2558を実施し得る。
[0208]オンライン署名サービス1809はまた、オプションで、シャミールメタデータを調べることによって、現在復号された秘密パーツ730を送信したパーツホルダ1620が、予想されたパーツホルダ1620と一致することを検証し得る。例では、オンライン署名サービス1809は、現在復号された秘密パーツ730を送信したパーツホルダ1620が、予想されたパーツホルダ1620と一致する場合にのみ、秘密728の再構築を試み得る。
[0209]オンライン署名サービス1809はまた、(資産暗号化鍵728とも称される)秘密728を再構築するのに十分な秘密パーツ730が収集されたか否かを判定し得る。オンライン署名サービス1809が、シャミールメタデータによって指定されたような十分な秘密パーツ730(たとえば、N個のうちのM個)が収集されたと判定した場合、鍵再構築モジュール212は、秘密728を再構築し得る。再構築された秘密728を使用して、資産鍵へアクセス(たとえば、資産鍵を復号)できる。資産鍵は、残高の多い保管アカウントに関連付けられた(たとえば、トランザクションに署名するための)秘密鍵、特に価値の高いデータを復号するための暗号鍵などであり得る。したがって、資産暗号化鍵(秘密)728の再構築の後、資産鍵を使用して、トランザクションに署名し得る、および/またはデータを復号し得る。
[0210]いくつかの構成では、パーツ配布器1925および/またはオンライン署名サービス1809は、上記のように、システム2500Aにおいて使用される関連する鍵をローテーションさせる(たとえば、新しいバージョンを作成して配布する)ことができる。例では、少なくとも1つのプロセッサは、(1)秘密/資産暗号化鍵/SYM1鍵728と、(2)対称鍵732(SYM2)と、(3)配布器復号秘密鍵2040および配布器暗号化公開鍵2036と、および/または(4)配布器署名秘密鍵2093および配布器署名公開鍵2095とからなる新しいセットを作成し得る。例では、少なくとも1つの鍵は、たとえば、毎日、毎週、毎月、毎年など、定期的にローテーションされる。
[0211]新しい鍵の作成に続いて、新しい秘密パーツ730は、新しい秘密/資産暗号化鍵/SYM1鍵728から作成され、新しい秘密パーツ730は、2段階(たとえば、上記の2つの非対称暗号化段階)で暗号化され、オプションで、配布器署名秘密鍵2093を使用して、各段階で署名され、結果として生じる二重暗号化秘密パーツ1939は、リポジトリ1927に送信される(たとえば、書き込まれる)。リポジトリ1927は、古い(ローテーション前の)二重暗号化秘密パーツ1939、および新しい(ローテーション後の)二重暗号化秘密パーツ1939を、一定期間格納し得ることに留意されたい。
[0212]パーツホルダ1620は、たとえば、テキストメッセージ、電子メール、プッシュ通知、自動電話呼出、他のアプリケーション内メッセージングなどを介して、リポジトリ1620において利用可能な新しい二重暗号化秘密パーツ1939を通知され得る。各パーツホルダ1620におけるアプリケーションは、それぞれのパーツホルダ1620のための新しい二重暗号化秘密パーツ1939を識別およびダウンロードすることができ、その後、パーツホルダ1620は、上記のように(配布器暗号化公開鍵2036で)復号および再暗号化し得る。
[0213]パーツホルダ1620は、二重暗号化秘密パーツ1939の以前および新規の配布中に、パーツホルダ1620として指定されたのであれば、特定のパーツホルダは、その古い(ローテーション前の)二重暗号化秘密パーツ1939およびその新しい(ローテーション後の)二重暗号化秘密パーツ1939を、一定期間格納し得ることに留意されたい。鍵ローテーション中に、新しいおよび/または異なるパーツホルダ1620を指定できることにも留意されたい。したがって、新たに指定されたパーツホルダ1620は、鍵のローテーション中に、その第1の二重暗号化秘密パーツ1939を受信し得る。逆に、ローテーション後の指定されたパーツホルダ1620ではなくなった、すでに指定されたパーツホルダ1620は、鍵ローテーション中、古い(ローテーション前の)二重暗号化秘密パーツ1939を所有するが、新しい(ローテーション後の)二重暗号化秘密パーツ1939を受信しない場合がある。
[0214]オンライン署名サービス1809は、たとえば、古い秘密/資産暗号化鍵/SYM1鍵728を再構築するのに十分な、それぞれの秘密パーツ730に復号される複数の古い(ローテーション前の)二重暗号化秘密パーツ738を受信し得る。これには、たとえば、古いパーツにおいてシャミールメタデータによって指定されているように、N個のうちM個、またはN個のうちN個の古い秘密パーツ730が必要になる場合がある。オンライン署名サービス1809はまた、たとえば、新しい秘密/資産暗号化鍵/SYM1鍵728を再構築するのに十分な、それぞれの秘密パーツ730に復号される、複数の新しい(ローテーション後の)二重暗号化秘密パーツ738を受信し得る。これには、たとえば、新しいパーツにおいてシャミールメタデータによって指定されているように、N個のうちM個、またはN個のうちN個の古い秘密パーツ730が必要になる場合がある。
[0215]例では、秘密728を使用して、資産鍵へアクセス(たとえば、資産鍵を復号)することができ、資産鍵は、残高の多い保管アカウントに関連付けられた(たとえば、トランザクションに署名するための)秘密鍵、特に価値の高いデータを復号するための暗号鍵などであり得る。したがって、再構築の後、古い秘密728を使用して資産鍵を復号することができ(その後、資産鍵は、オプションで、トランザクションに署名し、および/またはデータを復号するために使用され)、新しい秘密728は、資産鍵を再暗号化するために使用される。
[0216]定期的な鍵ローテーションは、(1)パーツホルダ1620ワークフローが実行され、デバイスを紛失したり、アクセスを失ったりすることはなくなり、(2)鍵のローテーションは、新しいパーツホルダ1620を搭載し、廃止されたパーツホルダ1620を除外する定期的な機会を提供するので、パーツホルダ1620の指定されたグループが経時的に変化できることを確実にする。
[0217]図25Bは、秘密728を再構築するために、パーツを(たとえば、アセンブラ2452において実施される)オンライン署名サービス1809に戻すための別の例示的なシステム/方法論2500Bを例示するブロック図である。図25Bは、図25Aと同じデバイス、モジュール、およびデータの多くを含み得る。特に明記されていない限り、図25Bにおけるデバイス、モジュール、およびデータは、図25Aにおけるデバイス、モジュール、およびデータと同様に動作する。
[0218]図25Bのシステム2500Bにおいて、二重暗号化秘密パーツ1939は、第1に、対称鍵732を使用して、各秘密パーツ730を対称的に暗号化することによって、パーツ配布器1925によって生成され、単一暗号化秘密パーツ734を生成し得る。第2に、各単一暗号化秘密パーツ734は、(そのパーツが対象とされているそれぞれのパーツホルダ1620に属する)パーツホルダ暗号化公開鍵2043で非対称的に暗号化され、二重暗号化秘密パーツ1939を生成し得る。
[0219]したがって、図25Aにおけるシステム2500Aとは対照的に、二重暗号化秘密パーツ1939は、(対称鍵732を使用する)第1段階の対称暗号化と、(それぞれのパーツホルダ暗号化公開鍵2043を使用する)第2段階の非対称暗号化とを使用して、図25Bのシステム2500Bにおいて生成される。パーツ配布器1925における第1段階の暗号化の間、第1の署名は、オプションで、配布器署名秘密鍵2093を使用して、単一暗号化秘密パーツ734に適用され得る。パーツ配布器1925における第2段階の暗号化の間、第2の署名は、オプションで、配布器署名秘密鍵2093を使用して、二重暗号化秘密パーツ1939に適用され得る。二重暗号化秘密パーツ1939は、パーツホルダ1620による非同期検索のために、リポジトリ1927に格納され得る。
[0220]パーツ配布器1925における第1段階の暗号化の間、シャミールメタデータはまた、オプションで、単一暗号化秘密パーツ734に追加され得る。シャミールメタデータは、たとえば、秘密728を再構築するために、N個の秘密パーツ730のうちのM個が必要とされるように、保護されていない秘密パーツ730から、秘密728を再構築するための指示および/または要件を提供し得る。シャミール分割および再構築は、N個の構成のうちのM個に限定されないことに留意されたい。たとえば、シャミール再構築は、N1個のうちのM1個、およびN2個のうちのM2個を必要とすることができる。言い換えれば、たとえば、秘密728を再構築するために、(N個のうちのM個よりも複雑である)ブール論理を使用して、異なるしきい値を有するパーツホルダ1620の異なるグループを有することができる。シャミール分割を実行して、5人の幹部のうちの3人、50人のスタッフのうちの40人、または2つのバックアップコピーのうちの2つが、再構築に必要になるようにすることができる。(暗号化されているか否かに関わらず)特定のパーツのシャミールメタデータは、そのパーツがどのパーツホルダ1620のために対象とされているのかを示し得る。オプションで、メッセージ認証コード(MAC)タグは、システム2500Bにおける暗号化(およびオプションの署名)の一方または両方の段階の間に、二重暗号化秘密パーツ1939に追加され得る。
[0221]二重暗号化秘密パーツ1939は、リポジトリ1927に表示されるQRコード(登録商標)を印刷し、リポジトリ1927に電子的に表示するなどを行う任意の適切な方法によって、(Firestore/Firebaseなどの)リポジトリ1927に、たとえば、安全な電子通信を介して配布できる。
[0222]各パーツホルダ1620は、たとえば、パーツホルダ1620におけるユーザ入力に応答して、リポジトリ1927から、対象とされたそれぞれの二重暗号化秘密パーツ1939を検索し得る。検索に続いて、パーツ配布器1925において、第2段階の非対称暗号化の間に第2の署名が適用された場合、各パーツホルダ1620は、オプションで、配布器署名公開鍵2095を使用して、その二重暗号化秘密パーツ1939における第2の署名を検証し得る。例では、パーツホルダ1620は、第2の署名が検証できない場合、その二重暗号化秘密パーツ1939を破棄し得る。各パーツホルダ1620は、その後、(第1の非対称復号モジュール220Aを使用して)その二重暗号化秘密パーツ1939を、単一暗号化秘密パーツ734に非対称的に復号し得る。この段階において、単一暗号化秘密パーツ734は、1つの対称暗号化層およびオプションの第1の署名を備えた秘密パーツ730である。
[0223]パーツホルダ1620は、配布器暗号化公開鍵2036を使用して、単一暗号化秘密パーツ734を(非対称暗号化モジュール218において)再暗号化して(および、オプションで、そのパーツホルダ署名秘密鍵2099を使用して第3の署名を追加して)、二重暗号化秘密パーツ738を生成し得る。オプションで、パーツホルダ1620はまた、パーツホルダ1620において非対称再暗号化がいつ実行されたかを示すタイムスタンプを、結果として生じる二重暗号化秘密パーツ738に追加し得る。各パーツホルダ1620は、結果として生じる二重暗号化秘密パーツ738を、リポジトリ1927に、またはオンライン署名サービス1809に直接送信できる。例では、(たとえば、サーバレス機能を実施する)各パーツホルダ1620は、パブリッシュ/サブスクライブ(pubsub)非同期メッセージングを使用して送信でき、結果として生じる二重暗号化秘密パーツ738を、リポジトリ1927に公開し、それを新しいpubsubトピックに書き込む。そのような構成では、オンライン署名サービス1809は、たとえば、送信サービス2554を使用して、pubsubトピックからのメッセージを消費し得る。しかしながら、パーツホルダ1620は、1つまたは複数の中間デバイスおよび/またはサービスの有無に関わらず、それらの二重暗号化秘密パーツ738を、オンライン署名サービス1809に送信するために、任意の適切な方法を使用し得る。
[0224]各二重暗号化秘密パーツ738を受信すると、オンライン署名サービス1809は、オプションで、パーツホルダ署名公開鍵2097を使用して、(QRコード854から決定される)二重暗号化秘密パーツ738における第3の署名が、第3の署名を送信したパーツホルダ1620に属していることを検証し得る。例では、オンライン署名サービス1809は、第3の署名が検証できない場合、二重暗号化秘密パーツ738を破棄し得る。言い換えれば、いくつかの構成では、オンライン署名サービス1809は、二重暗号化秘密パーツ738における第3の署名が、たとえば、リポジトリ1927を介して、第3の署名を送信したパーツホルダ1620と一致する場合にのみ、二重暗号化秘密パーツ738を復号し得る。
[0225]オンライン署名サービス1809は、(第2の非対称復号モジュール220Bを使用して)二重暗号化秘密パーツ738を、配布器復号秘密鍵2040を使用して、単一暗号化秘密パーツ734に復号し得る。これは、(パーツホルダ1620において、単一暗号化パーツ734に追加された)タイムスタンプが最新のものであること、たとえば、所定の時間しきい値より古くないことを、オプションで検証するオンライン署名サービス1809を含み得る。いくつかの構成では、タイムスタンプが、所定の時間しきい値よりも古い場合、オンライン署名サービス1809は、単一暗号化秘密パーツ734を破棄し得る。例では、アセンブラ2452は、対称鍵732および/または配布器復号秘密鍵2040などの機密データを格納するために、安全なメモリを使用してボールト2558を実施し得る。
[0226]オンライン署名サービス1809は、オプションで、単一暗号化秘密パーツ734における(パーツ配布器1925において適用される)第1の署名が、パーツ配布器1925に属することを検証し得る。その後、対称復号モジュール216は、対称鍵732を使用して、単一暗号化秘密パーツ734を、秘密パーツ730に復号し得る。
[0227]オンライン署名サービス1809はまた、オプションで、シャミールメタデータを調べることによって、現在復号された秘密パーツ730を送信したパーツホルダ1620が、予想されたパーツホルダ1620と一致することを検証し得る。例では、オンライン署名サービス1809は、現在復号された秘密パーツ730を送信したパーツホルダ1620が、予想されたパーツホルダ1620と一致する場合にのみ、秘密728の再構築を試み得る。
[0228]オンライン署名サービス1809はまた、(資産暗号化鍵728とも称される)秘密728を再構築するのに十分な秘密パーツ730が収集されたか否かを判定し得る。オンライン署名サービス1809が、シャミールメタデータによって指定されたような十分な秘密パーツ730(たとえば、N個のうちのM個)が収集されたと判定した場合、鍵再構築モジュール212は、秘密728を再構築し得る。再構築された秘密728を使用して、資産鍵へアクセス(たとえば、資産鍵を復号)し得る。資産鍵は、残高の多い保管アカウントに関連付けられた、(たとえば、トランザクションに署名するための)秘密鍵、特に価値の高いデータを復号するための暗号鍵などであり得る。したがって、資産暗号化鍵(秘密)728の再構築の後、資産鍵を使用して、トランザクションに署名し、および/またはデータを復号し得る。
[0229]いくつかの構成では、パーツ配布器1925および/またはオンライン署名サービス1809は、上記のように、システム2500Bにおいて使用される関連する鍵をローテーション(たとえば、新しいバージョンを作成して配布)し得る。
[0230]図25Cは、秘密728を再構築するために、パーツを(たとえば、アセンブラ2452において実施される)オンライン署名サービス1809に戻すための別の例示的なシステム/方法論2500Cを例示するブロック図である。図25Cは、図25Aと同じデバイス、モジュール、およびデータの多くを含み得る。特に明記されていない限り、図25Cにおけるデバイス、モジュール、およびデータは、図25Aにおけるデバイス、モジュール、およびデータと同様に動作する。
[0231]図25Cのシステム2500Cにおいて、秘密パーツ730は、おのおの対称または非対称である2段階の暗号化を使用して、二重暗号化秘密パーツ1939に暗号化される。たとえば、二重暗号化秘密パーツ1939は、(1)対称鍵732を使用する第1の対称段階と、配布器暗号化公開鍵2036またはパーツホルダ暗号化公開鍵2043を使用する第2の非対称段階、(2)対称鍵732を使用する第1の対称段階と、対称鍵732(または、別の対称鍵)を再び使用する第2の対称段階、(3)配布器暗号化公開鍵2036またはパーツホルダ暗号化公開鍵2043を使用する第1の非対称段階と、対称鍵732を使用する第2の対称段階、または(4)配布器暗号化公開鍵2036またはパーツホルダ暗号化公開鍵2043を使用する第1の非対称段階と、配布器暗号化公開鍵2036またはパーツホルダ暗号化公開鍵2043を使用する第2の非対称段階を使用して生成され得る。二重暗号化秘密パーツ1939の生成中に、パーツ配布器1925は、オプションで、シャミールメタデータを、(第1段階の暗号化の間に)単一暗号化秘密パーツ734に、または(第2段階の暗号化の間に)二重暗号化秘密パーツ1938に追加し得る。
[0232]パーツ配布器1925における第1段階の暗号化の間、第1の署名は、オプションで、配布器署名秘密鍵2093を使用して、単一暗号化秘密パーツ734に適用され得る。パーツ配布器1925における第2段階の暗号化の間、第2の署名は、オプションで、配布器署名秘密鍵2093を使用して、二重暗号化秘密パーツ1939に適用され得る。オプションで、メッセージ認証コード(MAC)タグは、システム2500Cにおける暗号化(およびオプションの署名)の一方または両方の段階の間に、二重暗号化秘密パーツ1939に追加され得る。
[0233]二重暗号化秘密パーツ1939は、パーツホルダ1620による非同期検索のために、リポジトリ1927に格納され得る。二重暗号化秘密パーツ1939は、リポジトリ1927に表示されるQRコード(登録商標)を印刷し、リポジトリ1927に電子的に表示するなどを行う任意の適切な方法によって、(Firestore/Firebaseなどの)リポジトリ1927に、たとえば、安全な電子通信を介して配布できる。
[0234]各パーツホルダ1620は、たとえば、パーツホルダ1620におけるユーザ入力に応答して、リポジトリ1927から、対象とされたそれぞれの二重暗号化秘密パーツ1939を検索し得る。検索に続いて、パーツ配布器1925において、第2段階の非対称暗号化の間に第2の署名が適用された場合、各パーツホルダ1620は、オプションで、配布器署名公開鍵2095を使用して、その二重暗号化秘密パーツ1939における第2の署名を検証し得る。例では、パーツホルダ1620は、第2の署名が検証できない場合、その二重暗号化秘密パーツ1939を破棄し得る。各パーツホルダ1620は、その後、(第1の非対称復号モジュール220Aを使用して)その二重暗号化秘密パーツ1939を、単一暗号化秘密パーツ734に非対称的に復号し得る。この段階において、単一暗号化秘密パーツ734は、1つの対称暗号化層およびオプションの第1の署名を備えた秘密パーツ730である。
[0235]検索に続いて、パーツホルダ1620において、復号モジュール219Aは、二重暗号化秘密パーツ1939を、単一暗号化秘密パーツ734に復号し得る。第1の復号モジュール219Aは、(対称鍵732のような対称鍵を使用する)対称復号モジュール216、または(配布器復号秘密鍵2040またはパーツホルダ復号秘密鍵2047などの非対称鍵を使用する)非対称復号モジュール220であり得る。
[0236]暗号化モジュール217は、その後、単一暗号化秘密パーツ734を、二重暗号化秘密パーツ738に再暗号化し得る。暗号化モジュール217は、(対称鍵732などの対称鍵を使用する)対称暗号化モジュール214、または(配布器暗号化公開鍵2036またはパーツホルダ暗号化公開鍵2043などの非対称鍵を使用する)非対称暗号化モジュール218であり得る。
[0237]パーツホルダ1620は、オプションで、そのパーツホルダ署名秘密鍵2099を使用して第3の署名を追加し得る。オプションで、パーツホルダ1620はまた、パーツホルダ1620において非対称再暗号化がいつ実行されたかを示すタイムスタンプを、結果として生じる二重暗号化秘密パーツ738に追加し得る。各パーツホルダ1620は、結果として生じる二重暗号化秘密パーツ738を、リポジトリ1927に、またはオンライン署名サービス1809に直接送信できる。例では、(たとえば、サーバレス機能を実施する)各パーツホルダ1620は、パブリッシュ/サブスクライブ(pubsub)非同期メッセージングを使用して送信でき、結果として生じる二重暗号化秘密パーツ738を、リポジトリ1927に公開し、それを新しいpubsubトピックに書き込む。そのような構成では、オンライン署名サービス1809は、たとえば、送信サービス2554を使用して、pubsubトピックからのメッセージを消費し得る。しかしながら、パーツホルダ1620は、1つまたは複数の中間デバイスおよび/またはサービスの有無に関わらず、それらの二重暗号化秘密パーツ738を、オンライン署名サービス1809に送信するために、任意の適切な方法を使用し得る。
[0238]各二重暗号化秘密パーツ738を受信すると、オンライン署名サービス1809は、オプションで、パーツホルダ署名公開鍵2097を使用して、(QRコード854から決定される)二重暗号化秘密パーツ738における第3の署名が、第3の署名を送信したパーツホルダ1620に属していることを検証し得る。例では、オンライン署名サービス1809は、第3の署名が検証できない場合、二重暗号化秘密パーツ738を破棄し得る。言い換えれば、いくつかの構成では、オンライン署名サービス1809は、二重暗号化秘密パーツ738における第3の署名が、たとえば、リポジトリ1927を介して、第3の署名を送信したパーツホルダ1620と一致する場合にのみ、二重暗号化秘密パーツ738を復号し得る。
[0239]オンライン署名サービス1809は、(第2の復号モジュール219Bを使用して)二重暗号化秘密パーツ738を、単一暗号化秘密パーツ734に復号し得る。第2の復号モジュール219Bは、(対称鍵732を使用する)対称復号モジュール216、または(配布器復号秘密鍵2040またはパーツホルダ復号秘密鍵2047などの非対称鍵を使用する)非対称復号モジュール220であり得る。オンライン署名サービス1809はまた、オプションで、(パーツホルダ1620において単一暗号化パーツ734に追加された)タイムスタンプが最新のものであること、たとえば、所定の時間しきい値より古くないことを検証し得る。いくつかの構成では、タイムスタンプが、所定の時間しきい値よりも古い場合、オンライン署名サービス1809は、単一暗号化秘密パーツ734を破棄し得る。
[0240]オンライン署名サービス1809は、オプションで、単一暗号化秘密パーツ734における(パーツ配布器1925において適用される)第1の署名が、パーツ配布器1925に属することを検証し得る。その場合(または、オプションの検証が実行されない場合)、第3の復号モジュール219Cはまた、各単一暗号化秘密パーツ734を、秘密パーツ730に復号し得る。第3の復号モジュール219Cは、(対称鍵732などの対称鍵を使用する)対称復号モジュール216、または(配布器復号秘密鍵2040またはパーツホルダ復号秘密鍵2047などの非対称鍵を使用する)非対称復号モジュール220であり得る。
[0241]オンライン署名サービス1809はまた、オプションで、シャミールメタデータを調べることによって、現在復号された秘密パーツ730を送信したパーツホルダ1620が、予想されたパーツホルダ1620と一致することを検証し得る。例では、オンライン署名サービス1809は、現在復号された秘密パーツ730を送信したパーツホルダ1620が、予想されたパーツホルダ1620と一致する場合にのみ、秘密728の再構築を試み得る。
[0242]オンライン署名サービス1809は、秘密728を再構築するのに十分な秘密パーツ730が収集されたか否かを判定し得る。この判定は、単一暗号化秘密パーツ734へのシャミールメタデータに基づき得る。シャミールメタデータによれば、十分な秘密パーツ730(たとえば、N個のうちのM個)が収集されていない場合、秘密728の再構築は試みられない。シャミールメタデータによれば、十分な秘密パーツ730(たとえば、N個のうちのM個)が収集された場合、鍵再構築モジュール212は、資産暗号化鍵(秘密)728を生成するために複数の秘密パーツ730をアセンブルし得る。単一の対称鍵732を使用して、すべての単一暗号化秘密パーツ734を復号し得るか、または、異なる対称鍵732を、各単一暗号化秘密パーツ734のために使用し得る。
[0243]再構築された秘密728を使用して、資産鍵へアクセス(たとえば、資産鍵を復号)し得る。資産鍵は、残高の多い保管アカウントに関連付けられた(たとえば、トランザクションを署名するための)秘密鍵、特に価値の高いデータを復号するための暗号鍵などであり得る。したがって、資産暗号化鍵(秘密)728の再構築の後、資産鍵を使用して、トランザクションに署名し得る、および/または、データを復号し得る。
[0244]いくつかの構成では、パーツ配布器1925および/またはオンライン署名サービス1809は、上記のように、システム2500Cにおいて使用される関連する鍵をローテーション(たとえば、新しいバージョンを作成して配布)し得る。
[0245]図26は、オフライン署名サービス308のためにシャミールパーツを再ラッピングするための例示的なシステム/方法論3200を例示するブロック図である。暗号化されたパーツは、まず、外側の暗号化層のために配布器暗号化公開鍵2036を使用して生成され得るが、各パーツホルダ1620に固有のパーツホルダ暗号化公開鍵2043で各パーツを再暗号化することが望ましい場合がある。たとえば、例示的なシステム/方法論3200は、(配布器1925の配布器暗号化公開鍵2036で暗号化された)二重暗号化秘密パーツ738を、非対称暗号化モジュール218を使用して、(パーツホルダの公開鍵2043で暗号化された)二重暗号化秘密パーツ1939へ変換し得る。例では、二重暗号化秘密パーツ738は、オフライン署名サービス308によって生成され得る一方、二重暗号化秘密パーツ1939は、パーツホルダ1620に配布され得る。
[0246]例では、各パーツホルダ1620の二重暗号化パーツ738は、QRコード854を介して安全なエアギャップを設けられたラップトップに提供できる。秘密再ラッピングモジュール2660は、(非対称復号モジュール220を使用して)二重暗号化パーツ738を、配布器復号秘密鍵2040を用いて、単一暗号化秘密パーツ734に復号できる。その後、各単一暗号化秘密パーツ734は、それぞれのパーツホルダ公開鍵2043を用いて、それぞれの二重暗号化秘密パーツ1939に(非対称暗号化モジュール218において)再暗号化される。
[0247]秘密パーツを(二重暗号化秘密パーツ738から二重暗号化秘密パーツ1939へ)再ラッピングすることは、代わりに(古いパーツを再ラッピングする代わりに)新しい秘密パーツを生成することを含み得ることに留意されたい。このような構成(図示せず)では、モジュール220における非対称復号ではなく、新しい秘密728が生成され、新しい秘密パーツ730に分割され、対称鍵(SYM2鍵)732を使用して暗号化され、パーツホルダ1620へ配布される前に、パーツホルダ暗号化公開鍵2043を使用して再度暗号化される。
[0248]例では、鍵をローテーションさせる(たとえば、新しいバージョンを作成して配布する)ことが望ましい。例では、オンライン署名サービス1809とオフライン署名サービス308との両方が、鍵ローテーションを可能にする。たとえば、(1)オフライン署名サービス308/配布器1925によって使用される配布器暗号化公開鍵2036および/または配布器復号秘密鍵2040、(2)オンライン署名サービス1809の公開鍵937および/または秘密鍵941、(3)対称鍵732、および/または(4)資産暗号化鍵(秘密)728のうちのいずれかが、更新/ローテーションされ得る。例では、パーツホルダ1620が会社を辞めるか、またはモバイルデバイスを紛失したときに、パーツを再配布することが望ましい場合もある。例では、(たとえば、N個の分割または異なるティアのうちの異なるM個のように)資産暗号化鍵(秘密)728を分割する方法を変更して、秘密パーツ730自体が再生成されるようにすることが望ましい場合がある。
[0249]例では、資産暗号化鍵(秘密)728は、署名サービスによって保護された秘密を暗号化するために使用される対称秘密である。例では、この秘密は、署名サービス内のメモリにのみ存在し、その一部は、シャミール秘密共有を介して、多くのパーツホルダ1620に配布される。例では、対称鍵732は、秘密パーツ730がパーツホルダ1620に渡される前に、秘密パーツ730を暗号化するために使用される対称鍵(または鍵のセット)である。例では、各シャミールパーツホルダ1620は、固有の(公開鍵2043を暗号化し、秘密鍵2047を復号する)鍵ペアを有し、復号秘密鍵2047は、パーツホルダ1620のモバイルデバイスにのみ存在する。例では、パーツ配布器1925プラットフォームにも独自の鍵ペア(配布器暗号化公開鍵2036および配布器復号秘密鍵2040)がある。例では、これらの2セットの鍵ペアは、パーツホルダ1620と、パーツ配布器1925プラットフォームとの間でメッセージを暗号化するために使用され、対象とされる受信者のみがメッセージの暗号化を解除でき、送信者は、署名によって認証される。
[0250]例では、本明細書で説明されるシステム/方法論は、攻撃/試みからの保護、様々な鍵/秘密によって保護された資産へのアクセスに役立つ。例では、ユーザは、アカウント(Googleアカウントなど)を使用して、モバイルアプリからリポジトリ(Firebaseなど)にログインし、これにより、追加のパスワードを覚えたり紛失したりすることがなくなり、誰かが自分の責任を他の誰かのせいにする可能性は低くなる。例では、攻撃は、複数のエンティティに対して実行する必要がある。十分なピースが収集されたとしても、攻撃者が取得するのは対称鍵で暗号化されたペイロードだけであるため、パーツホルダが共謀する(すなわち、N個のパーツのうちのM個がハッキングされる)ことはない。対称鍵が危険にさらされても、シャミールパーツの復号にのみ使用されるので大きな損失にはならない。シャミールパーツは、新しい対称鍵を用いて再収集および暗号化され、パーツホルダに再配布できる。誰かが、暗号化されたすべてのパーツを用いてFirebaseデータベースにアクセスした場合、攻撃者は、パーツを読み取ることはできるが、パーツは、特定の受信者の公開鍵用に暗号化されているため、パーツを復号できない。攻撃者は、パーツホルダの秘密鍵を取得するために、ホルダの電話をハッキングする必要もある。リポジトリ(Firestore/Firebaseデータベース)をハッキングした攻撃者は、パーツを削除する可能性があるため、リポジトリ(Firestore/Firebaseデータベース)のバックアップを実行する必要がある。
[0251]図27Aは、秘密パーツ730を、複数のパーツホルダ1620に安全に配布するための方法2700Aを例示するフロー図である。方法2700Aは、少なくとも1つのプロセッサを備えたコンピューティングデバイス102、たとえば、パーツ配布器1925を実施するコンピューティングデバイス102によって実行され得る。
[0252]方法2700Aは、少なくとも1つのプロセッサが、資産暗号化鍵728(SYM1鍵、または単に「秘密」とも呼ばれる)を決定する、オプションのステップ2702Aで開始し得る。資産暗号化鍵(秘密)728は、コンピューティングデバイス102によって生成され得、対称鍵、たとえば、高度暗号化標準(AES)鍵であり得る。例では、資産暗号化鍵(秘密)728を使用して、ブロックチェーンアドレス、アカウント、および/またはウォレットの1つまたは複数の秘密鍵を暗号化または復号できる。
[0253]方法2700Aは、少なくとも1つのプロセッサが、資産暗号化鍵(秘密)728を、少なくとも1つのセットの秘密パーツ730に分割するオプションのステップ2704Aに進み得る。これは、多項式補間および/またはシャミール秘密共有を使用することを含み得る。秘密パーツ730の各セットは、複数の秘密パーツ730を含み得る。
[0254]方法2700Aは、少なくとも1つのプロセッサが、各秘密パーツ730を、対応する単一暗号化秘密パーツ734に暗号化するステップ2706Aに進み得る。例では、ステップ2706Aにおける暗号化は、配布器暗号化公開鍵2036(または、パーツホルダ暗号化公開鍵2043)を使用して、たとえば非対称暗号化モジュール218を使用して、単一暗号化秘密パーツ734を生成する非対称暗号化である。
[0255]あるいは、ステップ2706Aにおける暗号化は、少なくとも1つの対応する対称鍵(SYM2)732を使用する、たとえば、対称暗号化モジュール214を使用する対称暗号化である。たとえば、同じ対称鍵732は、特定の秘密728の各秘密パーツ730を暗号化するために使用される。あるいは、異なる対称鍵732を使用して、特定の秘密728の各秘密パーツ730を暗号化する。
[0256]第1の署名は、たとえば、配布器署名秘密鍵2093を使用して、ステップ2706Aの間にオプションで適用され得る。シャミールメタデータは、オプションで、各単一暗号化秘密パーツ734の一部として暗号化され得る。シャミールメタデータは、たとえば、秘密728を再構築するために、N個の秘密パーツ730のうちのM個が必要とされるように、保護されていない秘密パーツ730から、秘密728を再構築するための指示および/または要件を提供し得る。(暗号化されているか否かに関わらず)特定のパーツのシャミールメタデータは、そのパーツがどのパーツホルダ1620のために対象とされているかを示し得る。
[0257]方法2700Aは、少なくとも1つのプロセッサが、対応する少なくとも1つの公開鍵を使用して、各単一暗号化秘密パーツ734を、対応する二重暗号化秘密パーツに暗号化するステップ2708Aに進み得る。例では、公開鍵は、配布器公開/秘密鍵ペア、または対応するパーツホルダ公開/秘密鍵ペアに属する。例では、各単一暗号化秘密パーツ734は、同じ配布器暗号化公開鍵2036を使用して暗号化され、二重暗号化秘密パーツ738を生成し得る。あるいは、各単一暗号化秘密パーツ734は、それぞれのパーツホルダ1620の異なる公開鍵2043を使用して暗号化され、二重暗号化秘密パーツ1939を生成し得る。
[0258]第2の署名は、オプションで、たとえば、配布器署名秘密鍵2093を使用して、ステップ2708Aの間に適用され得る。
[0259]方法2700Aは、少なくとも1つのプロセッサが、各二重暗号化秘密パーツを、それぞれのパーツホルダ1939に配布する、オプションのステップ2710Aに進み得る。例では、二重暗号化秘密パーツは、二重暗号化秘密パーツのQRコード(登録商標)を印刷することによって、または二重暗号化秘密パーツを、それぞれのパーツホルダ1620に与えられるポータブルストレージドライブにロードすることによって、それぞれのパーツホルダ1620に配布される。
[0260]図27Bは、資産暗号化鍵(秘密)728を安全に再構築するための別の方法2700Bを例示するフロー図である。方法2800Aは、少なくとも1つのプロセッサを備えたコンピューティングデバイス102、たとえば、パーツ配布器1925を実施するコンピューティングデバイス102によって実行され得る。
[0261]方法2700Bは、少なくとも1つのプロセッサが、(SYM1鍵、または単に「秘密」とも称される)資産暗号化鍵728を決定する、オプションのステップ2702Bで開始し得る。資産暗号化鍵(秘密)728は、コンピューティングデバイス102によって生成され得、対称鍵、たとえば、高度暗号化標準(AES)鍵であり得る。例では、その後、資産暗号化鍵(秘密)728を使用して、ブロックチェーンアドレス、アカウント、および/またはウォレットのための1つまたは複数の秘密鍵を暗号化または復号できる。
[0262]方法2700Bは、少なくとも1つのプロセッサが、資産暗号化鍵(秘密)728を、少なくとも1つのセットの秘密パーツ730に分割する、オプションのステップ2704Bに進み得る。これは、多項式補間および/またはシャミール秘密共有を使用することを含み得る。秘密パーツ730の各セットは、複数の秘密パーツ730を含み得る。
[0263]方法2700Bは、少なくとも1つのプロセッサが、各秘密パーツ730を、対応する単一暗号化秘密パーツ734に暗号化するステップ2706Bに進み得る。例では、ステップ2706Bにおける暗号化は、配布器暗号化公開鍵2036(または、パーツホルダ暗号化公開鍵2043)を使用して、たとえば非対称暗号化モジュール218を使用して、単一暗号化秘密パーツ734を生成する非対称暗号化である。
[0264]あるいは、ステップ2706Bにおける暗号化は、たとえば、対称暗号化モジュール214を使用して、少なくとも1つの対応する対称鍵(SYM2)732を使用する対称暗号化である。たとえば、同じ対称鍵732は、特定の秘密728の各秘密パーツ730を暗号化するために使用される。あるいは、異なる対称鍵732を使用して、特定の秘密728の各秘密パーツ730を暗号化する。
[0265]第1の署名は、たとえば、配布器署名秘密鍵2093を使用して、ステップ2706Bの間にオプションで適用され得る。シャミールメタデータは、オプションで、各単一暗号化秘密パーツ734の一部として暗号化され得る。シャミールメタデータは、たとえば、秘密728を再構築するために、N個の秘密パーツ730のうちのM個が必要とされるように、保護されていない秘密パーツ730から、秘密728を再構築するための指示および/または要件を提供し得る。(暗号化されているか否かに関わらず)特定のパーツのシャミールメタデータはまた、そのパーツがどのパーツホルダ1620のために対象とされているかを示し得る。
[0266]方法2700Bは、少なくとも1つのプロセッサが、各単一暗号化秘密パーツ734を、対応する二重暗号化秘密パーツに暗号化するステップ2708Bに進み得る。例では、ステップ2708Bにおける暗号化は、非対称暗号化である。例では、各単一暗号化秘密パーツ734は、配布器暗号化公開鍵2036を使用して暗号化されて、二重暗号化秘密パーツ738を生成し得る。あるいは、各単一暗号化秘密パーツ734は、それぞれのパーツホルダ1620の異なる公開鍵2043を使用して暗号化されて、二重暗号化秘密パーツ1939を生成し得る。
[0267]あるいは、ステップ2708Bにおける暗号化は、たとえば、対称暗号化モジュール214を使用して、少なくとも1つの対応する対称鍵(SYM2)732を使用する対称暗号化であり得る。たとえば、同じ対称鍵732は、特定の秘密728の各秘密パーツ730を暗号化するために使用される。あるいは、異なる対称鍵732を使用して、特定の秘密728の各秘密パーツ730を暗号化する。
[0268]第2の署名は、たとえば、配布器署名秘密鍵2093を使用して、ステップ2708Bの間にオプションで適用され得る。
[0269]方法2700Bは、少なくとも1つのプロセッサが、各二重暗号化秘密パーツを、それぞれのパーツホルダ1939に配布する、オプションのステップ2710Bに進み得る。例では、二重暗号化秘密パーツは、二重暗号化秘密パーツのQRコード(登録商標)を印刷することによって、または二重暗号化秘密パーツを、それぞれのパーツホルダ1620に与えられるポータブルストレージドライブにロードすることによって、それぞれのパーツホルダ1620に配布される。
[0270]図28は、二重暗号化秘密パーツ1939を再暗号化するための方法2800を例示するフロー図である。図28の方法2800は、図27Aの方法2700Aまたは図27Bの方法2700Bに続いて、または独立して実行され得る。方法2800は、少なくとも1つのプロセッサ、たとえば、スマートフォンを備えたパーツホルダ1620コンピューティングデバイスによって実行され得る。
[0271]方法2800は、少なくとも1つのプロセッサが、パーツ配布器1925によって生成された第1の二重暗号化秘密パーツ1939を受信するステップ2814で開始し得る。例では、第1の二重暗号化秘密パーツ1939は、複数のN個の二重暗号化秘密パーツ1939の中で固有であり、そのうち少なくともM個は、秘密728を再構築するために収集および復号される必要がある。例では、第1の二重暗号化秘密パーツ1939は、図27Aの方法2700Aまたは図27Bの方法2700Bを使用して生成および配布され得る。
[0272]例では、第1の二重暗号化秘密パーツ1939は、リポジトリ1927を介してパーツホルダ1620に配布され、パーツホルダ1620は、第1の二重暗号化秘密パーツ1939にアクセスする前に、リポジトリ1927と何らかの認証を実行し得る。あるいは、第1の二重暗号化秘密パーツ1939は、物理的に印刷されるか、または電子的にパーツホルダ1620に表示されるQRコード(登録商標)を介して、パーツホルダ1620に配布され得る。
[0273]方法2800は、少なくとも1つのプロセッサが、配布器署名公開鍵2095を使用して、第1の二重暗号化秘密パーツ1939における第2の署名を検証し得るオプションのステップ2816に進み得る。例では、第1の二重暗号化秘密パーツ1939は、第2の署名を検証できない場合、破棄され得る(そして、以下のステップ2818において復号されない)。
[0274]方法2800は、少なくとも1つのプロセッサが、第1の二重暗号化秘密パーツ1939を、単一暗号化秘密パーツ734に復号するステップ2818に進み得る。言い換えれば、ステップ2816は、第1の二重暗号化秘密パーツ1939における2つの暗号化層のうちの1つだけを復号することを含む。第1の二重暗号化秘密パーツ1939における第2段階の暗号化が、非対称暗号化であった場合、ステップ2816における復号は、配布器復号秘密鍵2040またはパーツホルダ復号秘密鍵2047)のような非対称鍵を使用する非対称復号であり得る。第1の二重暗号化秘密パーツ1939における第2段階の暗号化が、対称暗号化であった場合、ステップ2816における復号は、対称鍵732などの対称鍵を使用する対称復号であり得る。
[0275]方法2800は、少なくとも1つのプロセッサが、単一暗号化秘密パーツ734を、第1の二重暗号化秘密パーツ1939とは異なる第2の二重暗号化秘密パーツ738に再暗号化するステップ2820に進み得る。例では、ステップ2818は、パーツホルダ復号秘密鍵2047を使用して非対称復号を実行し、ステップ2820は、配布器暗号化公開鍵2036を使用して非対称暗号化を適用する。
[0276]方法2800は、少なくとも1つのプロセッサが、そのパーツホルダ署名秘密鍵2099を使用して第3の署名を追加する、オプションのステップ2822に進み得る。オプションで、パーツホルダ1620はまた、パーツホルダ1620において非対称再暗号化がいつ実行されたかを示すタイムスタンプを、結果として生じる第2の二重暗号化秘密パーツ738に追加し得る。第2の二重暗号化秘密パーツ738は、たとえば、リポジトリ1927、安全な電子通信、物理的に印刷された(または電子的に表示された)QRコード(登録商標)などを介して、アセンブラ2452に送信され得る。
[0277]図29Aは、資産暗号化鍵(秘密)728を安全に再構築するための方法2900Aを例示するフロー図である。例では、図29Aの方法2900Aは、図27Aの方法2700A、およびオプションで、図28の方法2800の後に実行され得る。あるいは、図29Aの方法2900Aは、図27Aの方法2700Aおよび図28の方法2800とは独立して実行され得る。方法2900Aは、少なくとも1つのプロセッサを備えたコンピューティングデバイス102、たとえば、オフライン署名サービス308および/またはオンライン署名サービス1809を実施するコンピューティングデバイス102によって実行され得る。
[0278]方法2900Aは、少なくとも1つのプロセッサが、公開/秘密鍵ペアに属する少なくとも公開鍵を使用して暗号化された、複数の二重暗号化秘密パーツを受信するステップ2926Aで開始し得る。例では、各二重暗号化秘密パーツ1939は、図27Aの方法2700Aにおいて説明されるように生成され得る。たとえば、二重暗号化秘密パーツ1939は、(1)パーツ配布器1925が、対称鍵732を使用して秘密パーツ730を非対称的に暗号化して、単一暗号化秘密パーツ732を生成することによって、および(2)パーツ配布器1925が、配布器暗号化公開鍵2036を使用して、単一暗号化秘密パーツ734を非対称的に暗号化することによって生成される。
[0279]あるいは、各二重暗号化秘密パーツ1939は、図27Aの方法2700Aおよび図28の方法2800に説明されるように生成され得る。たとえば、二重暗号化秘密パーツ1939は、(1)パーツ配布器1925が、配布器暗号化公開鍵2036を使用して秘密パーツ730を非対称的に暗号化して、単一暗号化秘密パーツ734を生成することによって、(2)パーツ配布器1925が、単一暗号化秘密パーツ734を、パーツホルダ暗号化公開鍵2043で非対称的に暗号化して、二重暗号化秘密パーツ1939を生成することによって、(3)パーツホルダ1925が、パーツホルダ復号秘密鍵2047を使用して、二重暗号化秘密パーツ1939を(単一暗号化秘密パーツ734に)非対称的に復号することによって、および(4)パーツホルダ1620が、配布器暗号化公開鍵2036を使用して、単一暗号化秘密パーツ734を、二重暗号化秘密パーツ738に非対称的に暗号化することによって生成され得る。
[0280]オプションで、各二重暗号化秘密パーツ738を受信すると、少なくとも1つのプロセッサは、パーツホルダ署名公開鍵2097を使用して、(QRコード854から決定される)二重暗号化秘密パーツ738における第3の署名が、第3の署名を送信したパーツホルダ1620に属していることを検証し得る。
[0281]方法2900Aは、(オフライン署名サービス308またはオンライン署名サービス1809において)少なくとも1つのプロセッサが、複数の二重暗号化秘密パーツ738のおのおのを、公開/秘密鍵ペアに属する秘密鍵を使用して、対応する単一暗号化秘密パーツ734に復号するステップ2928Aに進み得る。例では、配布器復号秘密鍵2040は、二重暗号化秘密パーツ738を、単一暗号化秘密パーツ734に復号するために使用される。オプションで、少なくとも1つのプロセッサは、(パーツホルダ1620において追加された)タイムスタンプが、最新のものであること、たとえば、所定の時間しきい値より古くないことを検証し得る。いくつかの構成では、タイムスタンプが、所定の時間しきい値よりも古い場合、少なくとも1つのプロセッサは、単一暗号化秘密パーツ734を破棄し得る。
[0282]方法2900Aは、少なくとも1つのプロセッサが、対応する各単一暗号化秘密パーツ734を、対応する秘密パーツ730に復号するステップ2930Aに進み得る。ステップ2930Aは、(たとえば、パーツ配布器1925における)第1段階の暗号化が、それぞれ非対称または対称であったか否かに応じて、非対称復号または対称復号を使用し得る。ステップ2930Aが対称復号を使用する場合、対称(たとえば、高度暗号化標準(AES))対称鍵732を使用して、特定の秘密728のすべての単一暗号化秘密パーツ734を復号し得る。あるいは、異なる対称鍵732を使用して、特定の秘密728の各単一暗号化秘密パーツ734を暗号化する。
[0283]ステップ2930Aが非対称復号を使用する場合、配布器復号秘密鍵2040を再び使用して、単一暗号化秘密パーツ734を、対応する秘密パーツ730に復号し得る。オプションで、少なくとも1つのプロセッサは、ステップ2930Aが実行される前または後に、単一暗号化秘密パーツ734における(パーツ配布器1925において適用された)第1の署名が、パーツ配布器1925に属することを検証し得る。
[0284]少なくとも1つのプロセッサは、オプションで、シャミールメタデータを調べることによって、現在復号された各秘密パーツ730を送信したパーツホルダ1620が、予想されたパーツホルダ1620と一致することを検証し得る。例では、オンライン署名サービス1809は、現在復号された各秘密パーツ730を送信したパーツホルダ1620が、予想されたパーツホルダ1620と一致する場合にのみ、秘密728の再構築を試み得る。
[0285]方法2900Aは、少なくとも1つのプロセッサが、ある数の秘密パーツ734から資産暗号化鍵(秘密)728を再構築するステップ2932Aに進み得る。例では、資産暗号化鍵(秘密)728は、対称(たとえば、高度暗号化標準(AES))鍵であり、異なるブロックチェーンアドレス、アカウント、および/またはウォレットのための1つまたは複数の資産鍵を暗号化または復号するために使用できる。例では、資産暗号化鍵(秘密)728は、資産暗号化鍵(秘密)728からすでに作成された秘密パーツ734の総数のうちのサブセットから再構築され、たとえば、ここで、1<=M<=N(いくつかの構成では1<M<N)である。少なくとも1つのプロセッサは、シャミールメタデータに基づいて資産暗号化鍵(秘密)728を再構築するのに十分な秘密パーツ734が収集されたか否かを判定し得る。
[0286]方法2900Aは、少なくとも1つのプロセッサが、再構築された暗号化鍵728を使用してアクションを実行する、オプションのステップ2934Aに進み得る。例では、資産暗号化鍵(秘密)728を使用して、資産鍵(または、複数の資産鍵)へアクセスし得る。資産鍵が、(ブロックチェーン416におけるウォレットアドレスまたはスマート契約のための)ブロックチェーン(たとえば、イーサリアム、ビットコイン)の秘密鍵である場合、資産暗号化鍵は、ブロックチェーン秘密鍵を暗号化/復号するために使用される。例では、資産暗号化鍵は、顧客のウォレットの復元中に、スイープトランザクションに署名するために、または残高の多いアカウントのトランザクションアドレスを生成するために使用される。あるいは、資産鍵は、暗号通貨ウォレットのためのパスワードまたは15語のシードニーモニックフレーズなどの非暗号鍵文字列であり得る。したがって、アクションは、ブロックチェーン416における暗号通貨アドレス/ウォレット/アカウントまたはスマート契約にアクセスするために、秘密ブロックチェーン鍵または他のパスワードのようなデータを、暗号化または復号することを含み得る。
[0287]方法2900Aは、上記のように、少なくとも1つのプロセッサが、少なくとも1つの鍵においてローテーションする(たとえば、新しいバージョンを作成して配布する)オプションのステップ2936Aに進み得る。例では、少なくとも1つのプロセッサは、(1)秘密/資産暗号化鍵/SYM1鍵728と、(2)対称鍵732(SYM2)と、(3)配布器復号秘密鍵2040および配布器暗号化公開鍵2036と、および/または(4)配布器署名秘密鍵2093および配布器署名公開鍵2095からなる新しいセットを作成し得る。例では、少なくとも1つの鍵は、たとえば、毎日、毎週、毎月、毎年など、定期的にローテーションされる(そして必要に応じて配布される)。
[0288]図29Bは、資産暗号化鍵(秘密)728を安全に再構築するための別の方法2900Aを例示するフロー図である。図29Bの方法2900Bは、図29Aの方法2900Aにおけるステップと同じものの多くを含み得る。特に明記されていない限り、図29Bのステップ方法2900Bは、図29Aの方法2900Aにおけるステップと同じである。
[0289]図29Aの方法2900Aにおけるステップ2928Aとは対照的に、ステップ2928Bでは、復号は、秘密鍵を使用する非対称復号に限定されない。第1の例では、(オフライン署名サービス308またはオンライン署名サービス1809において)少なくとも1つのプロセッサは、配布器復号秘密鍵2040を使用して、複数の二重暗号化秘密パーツ738のおのおのを、対応する単一暗号化秘密パーツ734に非対称的に復号する。第2の例では、(オフライン署名サービス308またはオンライン署名サービス1809において)少なくとも1つのプロセッサは、対称鍵732を使用して、複数の二重暗号化秘密パーツ738のおのおのを、対応する単一暗号化秘密パーツ734に対称的に復号する。
[0290]ここで紹介する技法は、専用ハードウェア(回路構成など)として、ソフトウェアおよび/またはファームウェアで適切にプログラムされたプログラマブル回路構成として、または専用回路構成とプログラマブル回路構成との組合せとして具体化できる。したがって、実施形態は、プロセスを実行するようにコンピュータ(または他の電子デバイス)をプログラムするために使用され得る命令を格納した機械可読媒体を含み得る。機械可読媒体は、たとえば、フロッピーディスク、光ディスク、コンパクトディスク読取専用メモリ(CD-ROM)、磁気光学ディスク、読取専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブル読取専用メモリ(EPROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、磁気カードまたは光学カード、フラッシュメモリ、または電子命令の格納に適した他のタイプの媒体/機械可読媒体を含み得る。
コンピュータシステムの概要
[0291]本開示の実施形態は、上記で説明された様々なステップおよび動作を含む。これらの様々なステップおよび動作は、ハードウェアコンポーネントによって実行され得るか、または汎用または専用プロセッサに対して、ステップを実行するための命令をプログラムさせる機械実行可能命令において具体化され得る。あるいは、ステップは、ハードウェア、ソフトウェア、および/またはファームウェアの組合せによって実行され得る。したがって、図30は、本開示の実施形態が利用され得るコンピュータシステム3000の例である。たとえば、コンピュータシステム3000は、上記のコンピューティングデバイス102および/またはコンピューティングデバイス104を実施し得る。本例によれば、コンピュータシステム3000は、相互接続3002、少なくとも1つのプロセッサ3004、少なくとも1つの通信ポート3006、少なくとも1つのメインメモリ3008、少なくとも1つのリムーバブルストレージ媒体3010、少なくとも1つの読取専用メモリ3012、および少なくとも1つの大容量ストレージデバイス3014を含む。
[0292]少なくとも1つのプロセッサ3004は、任意の周知のプロセッサとすることができる。少なくとも1つの通信ポート3006は、たとえば、モデムベースのダイヤルアップ接続で使用するためのRS-232ポートと、10/100イーサネットポートと、または銅線またはファイバを使用するギガビットポートとのいずれかとすることができるか、またはそれらを含むことができる。少なくとも1つの通信ポート3006の種類は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはコンピュータシステム3000が接続する任意のネットワークなどのネットワークに応じて選択され得る。少なくとも1つのメインメモリ3008は、ランダムアクセスメモリ(RAM)、または当該技術分野で一般に知られている他の任意の動的ストレージデバイスとすることができる。少なくとも1つの読取専用メモリ3012は、少なくとも1つのプロセッサ3004のための命令など、静的情報を格納するためのプログラマブル読取専用メモリ(PROM)チップなどの任意の静的ストレージデバイスとすることができる。
[0293]少なくとも1つの大容量ストレージデバイス3014を使用して、情報および命令を記憶できる。たとえば、ハードディスク(シリアル/パラレルATAまたはSCSIインターフェースを使用する磁気ディスクドライブまたはソリッドステートドライブなど)、光ディスク、Redundant Array of Independent Disks(RAID)などのディスクアレイ、または他の任意の大容量ストレージデバイスが使用され得る。相互接続3002は、1つまたは複数のバス、ブリッジ、コントローラ、アダプタ、および/またはポイントツーポイント接続とすることができるか、またはそれらを含むことができる。相互接続3002は、少なくとも1つのプロセッサ3004を、他のメモリ、ストレージ、および通信ブロックと通信可能に結合する。相互接続3002は、使用するストレージデバイスに応じて、PCI/PCI-XまたはSCSIベースのシステムバスとすることができる。少なくとも1つのリムーバブルストレージ媒体3010は、任意の種類の外付のハードドライブ、フロッピードライブ、コンパクトディスク読取専用メモリ(CD-ROM)、コンパクトディスク再書込可能(CD-RW)、デジタルビデオディスク読取専用メモリ(DVD-ROM)、Blu-Rayディスク読取専用メモリ(BD-ROM)、Blu-Rayディスク記録可能(BD-R)、Blu-Rayディスク記録可能消去可能(BD-RE)とすることができる。
[0294]上記のコンポーネントは、いくつかのタイプの可能性を例証することが意図されている。前述の例は単なる例示的な実施形態であるため、決して開示を制限するべきではない。下記および上記のものを含む、本明細書で説明された実施形態、構造、方法などは、様々な手法でともに組み合わせることができる。
用語
[0295]本出願全体で使用される用語、略語、および句の簡単な定義を以下に示す。
[0296]「接続された」、「結合された」、および「通信的に結合された」という用語および関連する用語は、動作上の意味で使用され、必ずしも直接の物理的接続または結合に限定されない。したがって、たとえば、2つのデバイスは、直接、または1つまたは複数の中間媒体またはデバイスを介して結合され得る。別の例として、デバイスは、互いにあらゆる物理的な接続を共有せずに、情報がそれらの間で受け渡されるように結合され得る。本明細書で提供される開示に基づいて、当業者は、前述の定義にしたがって接続または結合が存在する様々な手法を認識するであろう。
[0297]「~に基づく」という句は、特に明記しない限り、「~のみに基づく」を意味するものではない。言い換えれば、「~に基づく」という句は、「~のみに基づく」と「少なくとも~に基づく」との両方を説明する。それに加えて、「および/または」という用語は、「および」または「または」を意味する。たとえば、「Aおよび/またはB」は、「A」、「B」、または「AおよびB」を意味することができる。それに加えて、「A、B、および/またはC」は、「Aのみ」、「Bのみ」、「Cのみ」、「AおよびB」、「AおよびC」、「BおよびC」、または「A、B、およびC」を意味することができる。
[0298]「例示的な実施形態において」、「例示的な実施形態において」、「いくつかの実施形態において」、「いくつかの実施形態にしたがって」、「図示された実施形態において」、「他の実施形態において」、「実施形態」、「例において」、「例」、「いくつかの例において」、「いくつかの例」などの句は、一般に、句に続く特定の特徴、構造、または特性が、本開示の少なくとも1つの実施形態に含まれ、本開示の1つよりも多くの実施形態に含まれ得ることを意味する。それに加えて、そのような句は、必ずしも同じ実施形態または異なる実施形態を指すとは限らない。
[0299]明細書が、コンポーネントまたは特徴が、特性に含まれ「得る」、または特性を有し「得る」、特性に含まれることが「できる」、または特性を有することが「できる」、特性に含まれることが「可能である」、または特性を有することが「可能である」、あるいは、特性に含まれる「可能性がある」、または特性を有する「可能性がある」と述べている場合、特定のコンポーネントまたは特徴は、その特性に含まれることも、またはその特性を有することも必要とされない。
[0300]「応答する」という用語は、完全にまたは部分的に応答することを含む。
[0301]「モジュール」という用語は、ソフトウェア、ハードウェア、またはファームウェア(または、それらの任意の組合せ)のコンポーネントを広く指す。モジュールは通常、指定された入力を使用して有用なデータまたは他の出力を生成できる機能コンポーネントである。モジュールは、自己完結型である場合と、そうでない場合とがある。(「アプリケーション」とも呼ばれる)アプリケーションプログラムは、1つまたは複数のモジュールを含み得るか、またはモジュールは、1つまたは複数のアプリケーションプログラムを含むことができる。
[0302]「ネットワーク」という用語は、一般に、情報を交換することができる相互接続されたデバイスのグループを指す。ネットワークは、ローカルエリアネットワーク(LAN)における数台のパーソナルコンピュータのような小さなもの、または、コンピュータの世界的なネットワークであるインターネットのような大きなものとなり得る。本明細書で使用される場合、「ネットワーク」は、あるエンティティから別のエンティティに情報を送信することができる任意のネットワークを包含することが意図される。場合によっては、ネットワークは、複数のネットワークから、さらには、1つまたは複数の境界ネットワーク、音声ネットワーク、ブロードバンドネットワーク、金融ネットワーク、サービスプロバイダネットワーク、インターネットサービスプロバイダ(ISP)ネットワーク、および/または、様々なネットワーク間の通信を容易にするように動作可能なゲートウェイを介して相互接続された公衆交換電話網(PSTN)のような複数のヘテロジニアスなネットワークからさえも構成され得る。
[0303]また、例示のために、本開示の様々な実施形態は、現代のコンピュータネットワーク内のコンピュータプログラム、物理的コンポーネント、および論理的相互作用の文脈で本明細書において説明される。重要なことに、これらの実施形態は、現代のコンピュータネットワークおよびプログラムに関連して本開示の様々な実施形態を説明するが、本明細書において説明される方法および装置は、当業者が理解するように、他のシステム、デバイス、およびネットワークに等しく適用可能である。したがって、本開示の実施形態の例示された用途は、限定を意味しておらず、例である。本開示の実施形態が適用可能である他のシステム、デバイス、およびネットワークは、たとえば、他のタイプの通信およびコンピュータデバイスおよびシステムを含む。より具体的には、実施形態は、セル電話ネットワークおよび互換性のあるデバイスのような、通信システム、サービス、およびデバイスに適用可能である。それに加えて、実施形態は、パーソナルコンピュータから、大規模ネットワークのメインフレームおよびサーバまでのすべてのレベルのコンピューティングに適用可能である。
[0304]結論として、本開示は、鍵を安全に分割、配布、および/または再構築するための新規のシステム、方法、および配置を提供する。本開示の1つまたは複数の実施形態の詳細な説明が上記で与えられているが、様々な代替、修正、および均等物は、本開示の精神から変化することなく、当業者に明らかであろう。たとえば、上記の実施形態は、特定の特徴に言及しているが、本開示の範囲はまた、特徴の異なる組合せを有する実施形態、および説明された特徴のすべてを含む訳ではない実施形態を含む。したがって、本開示の範囲は、特許請求の範囲内にあるようなすべてのそのような代替、修正、および変形を、それらのすべての均等物とともに包含することが意図されている。したがって、上記の説明は限定として見なされるべきではない。
例示的な実施形態
[0305]例1は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリとを備えるシステムを含み、少なくとも1つのプロセッサは、少なくとも1つのセットの秘密パーツの各秘密パーツを、対応する単一暗号化秘密パーツに暗号化し、対応する少なくとも1つの公開鍵を使用して、対応する各単一暗号化秘密パーツを、対応する二重暗号化秘密パーツに暗号化するように構成され、各公開鍵は、少なくとも1つの公開/秘密鍵ペアの対応するペアに属し、少なくとも1つのセットの秘密パーツのうちの、秘密パーツの少なくともサブセットは、秘密を再構築するために使用される。
[0306]例2は、例1のシステムを含み、各秘密パーツは、少なくとも1つの対応する対称鍵を使用して、対応する単一暗号化秘密パーツに暗号化される。
[0307]例3は、例2のシステムを含み、第1の秘密パーツおよび第2の秘密パーツのための少なくとも1つの対応する対称鍵は同一である。
[0308]例4は、例2~例3のいずれかのシステムを含み、第1の秘密パーツおよび第2の秘密パーツのための少なくとも1つの対応する対称鍵は異なる。
[0309]例5は、例1~例4のいずれかのシステムを含み、各秘密パーツは、少なくとも1つの公開/秘密鍵ペアの対応するペアに属する対応する少なくとも1つの公開鍵を使用して、対応する単一暗号化秘密パーツに暗号化される。
[0310]例6は、例1~例5のいずれかのシステムを含み、少なくとも1つの公開鍵は、すべての単一暗号化秘密パーツを暗号化するために使用される単一の公開鍵であり、単一の公開鍵は、単一の公開/秘密鍵ペアに属し、少なくとも1つの秘密鍵は、単一の公開/秘密鍵ペアに属する単一の秘密鍵である。
[0311]例7は、例1~例6のいずれかのシステムを含み、少なくとも1つのプロセッサは、おのおのが、少なくとも1つの公開/秘密鍵ペアの対応するペアに属する、対応する少なくとも1つの秘密鍵を使用して、二重暗号化秘密パーツのうちの少なくとも1つを、単一暗号化秘密パーツのうちの少なくとも1つに復号し、第2の公開/秘密鍵ペアに属する対応する第2の公開鍵を使用して、少なくとも1つの単一暗号化秘密パーツのおのおのを再暗号化するようにさらに構成される。
[0312]例8は、例1~例7のいずれかのシステムを含み、少なくとも1つのプロセッサは、各秘密パーツを、少なくとも1つの対応する対称鍵と、排他的OR(XOR)することによって、各秘密パーツを暗号化して、対応する単一暗号化秘密パーツを生成するように構成される。
[0313]例9は、例1~例8のいずれかのシステムを含み、各二重暗号化秘密パーツは、少なくとも1つの対称鍵と、少なくとも1つの公開/秘密鍵ペアの対応するペアに属する対応する公開鍵との両方を使用して暗号化される。
[0314]例10は、例1~例9のいずれかのシステムを含み、各二重暗号化秘密パーツは、少なくとも1つの公開/秘密鍵ペアの対応するペアに属する対応する公開鍵を使用して、2回暗号化される。
[0315]例11は、例1~例10のいずれかのシステムを含み、各二重暗号化秘密パーツは、少なくとも1つの対称鍵と、対応するパーツホルダ公開/秘密鍵ペアに属する対応するパーツホルダ公開鍵との両方を使用して暗号化される。
[0316]例12は、例1~例11のいずれかのシステムを含み、少なくとも1つのプロセッサは、複数の二重暗号化秘密パーツを受信し、少なくとも1つの公開/秘密鍵ペアの対応するペアに属する対応する秘密鍵を使用して、複数の二重暗号化秘密パーツのおのおのを、対応する単一暗号化秘密パーツに復号し、対応する各単一暗号化秘密パーツを、対応する秘密パーツに復号し、ある数の対応する秘密パーツから、秘密を再構築するようにさらに構成され、この数は、以前に秘密から作成された秘密パーツの総数のサブセットである。
[0317]例13は、例12のシステムを含み、各二重暗号化秘密パーツは、それぞれのパーツホルダに分配され、複数の二重暗号化秘密パーツは、複数のパーツホルダから受信される。
[0318]例14は、例1~例13のいずれかのシステムを含み、少なくとも1つのプロセッサは、対称暗号化鍵である秘密を、複数の秘密パーツから再構築し、資産暗号化鍵を用いてアクションを実行するようにさらに構成される。
[0319]例15は、例14のシステムを含み、アクションは、再構築された秘密を使用する以下のアクション、すなわち、データを暗号化すること、データを復号すること、トランザクションアドレスを生成すること、およびトランザクションに署名することのうちの少なくとも1つを備える。
[0320]例16は、少なくとも1つのプロセッサと、少なくとも1つのプロセッサに通信可能に結合された少なくとも1つのメモリとを備えるシステムを含み、少なくとも1つのプロセッサは、公開/秘密鍵ペアに属する少なくとも公開鍵を使用して暗号化された、複数の二重暗号化秘密パーツを受信し、複数の二重暗号化秘密パーツのおのおのを、公開/秘密鍵ペアに属する秘密鍵を使用して、対応する単一暗号化秘密パーツに復号し、対応する各単一暗号化秘密パーツを、対応する秘密パーツに復号するように構成され、秘密は、以前に秘密から作成された秘密パーツの総数のうちのサブセットである数の、対応する秘密パーツから再構築される。
[0321]例17は、例16のシステムを含み、各二重暗号化秘密パーツは、少なくとも1つの対応する対称鍵を使用して、対応する単一暗号化秘密パーツに暗号化された。
[0322]例18は、例17のシステムを含み、第1の秘密パーツおよび第2の秘密パーツのための少なくとも1つの対称鍵は同一である。
[0323]例19は、例17~例18のいずれかのシステムを含み、第1の秘密パーツおよび第2の秘密パーツのための少なくとも1つの対称鍵は異なる。
[0324]例20は、例16~例19のいずれかのシステムを含み、各二重暗号化秘密パーツは、対称鍵、または、公開/秘密鍵ペアに属する公開鍵を使用して、対応する秘密パーツが、対応する単一暗号化秘密パーツに暗号化される第1段階と、対応する公開/秘密鍵ペアに属する公開鍵を使用して、単一暗号化秘密パーツが、それぞれの二重暗号化秘密パーツに暗号化される第2段階とを備える2段階を使用して暗号化された。
[0325]例21は、例16~例20のいずれかのシステムを含み、少なくとも1つのプロセッサは、再構築された秘密を使用して、以下のアクション、すなわち、データを暗号化すること、データを復号すること、トランザクションアドレスを生成すること、およびトランザクションに署名することのうちの少なくとも1つを実行するようにさらに構成される。
[0326]例22は、例16~例21のいずれかのシステムを含み、少なくとも1つのプロセッサは、対応する各単一暗号化秘密パーツを、少なくとも1つの対応する対称鍵と、排他的OR(XOR)することによって、対応する各単一暗号化秘密パーツを復号して、対応する秘密パーツを生成するように構成される。
[0327]例23は、例16~例22のいずれかのシステムを含み、複数の二重暗号化秘密パーツが、複数のパーツホルダから受信される。
[0328]例24は、秘密パーツを、複数のパーツホルダに安全に配布するための方法を含み、少なくとも1つの対称鍵、または、少なくとも1つの公開鍵の対応する鍵を使用して、少なくとも1つのセットの秘密パーツの各秘密パーツを、対応する単一暗号化秘密パーツに暗号化することであって、各公開鍵は、少なくとも1つの公開/秘密鍵ペアの対応するペアに属する、暗号化することと、対応する公開/秘密鍵ペアに属する対応する少なくとも1つの公開鍵を使用して、対応する各単一暗号化秘密パーツを、対応する二重暗号化秘密パーツに暗号化することと、各二重暗号化秘密パーツを、それぞれのパーツホルダに配布することとを備え、少なくとも1つのセットの秘密パーツのうちの、秘密パーツの少なくともサブセットは、秘密を再構築するために使用される。