(57)【要約】データへアクセスするために使用される複数の暗号鍵を配布する方法は、アクセス鍵要求に重畳されたデータ信号を受信するステップと、鍵ペア生成アルゴリズムを用いてn組の鍵ペアを生成するステップと、アクセス秘密鍵を導出するステップと、前記導出されたアクセス秘密鍵に対応するアクセス公開鍵を生成するステップと、前記n組の鍵ペアのうちの１つに含まれる秘密鍵に重畳されたデータ信号を電子的に送信するステップと、を含む。
2019507539.tif 000002
【特許請求の範囲】
【請求項１】
データへアクセスするために使用される複数の暗号鍵を配布する方法において、
処理サーバの受信装置によって、アクセス鍵要求に重畳されたデータ信号を受信するステップであって、前記アクセス鍵要求は要求される鍵についての１より大きい数nを少なくとも含む、ステップと、
前記処理サーバの生成モジュールによって、鍵ペア生成アルゴリズムを用いてn組の鍵ペアを生成するステップであって、各鍵ペアは秘密鍵と公開鍵とを含む、ステップと、
前記処理サーバの導出モジュールによって、前記n組の鍵ペアの各々に含まれる前記秘密鍵を鍵導出アルゴリズムへ適用することによって、アクセス秘密鍵を導出するステップと、
前記処理サーバの前記生成モジュールによって、前記鍵ペア生成アルゴリズムを用いて、前記導出されたアクセス秘密鍵に対応するアクセス公開鍵を生成するステップと、
前記処理サーバの送信装置によって、前記n組の鍵ペアの各々について、前記n組の鍵ペアのうちの１つに含まれる秘密鍵に重畳されたデータ信号を電子的に送信するステップと、を含む方法。
【請求項２】
請求項１に記載の方法において、更に、
前記処理サーバのメモリに、転送公開鍵と転送秘密鍵とを含む転送鍵ペアを記憶するステップと、
前記処理サーバの前記受信装置によって、共有公開鍵に重畳されたデータ信号をn個のコンピューティング装置の各々から受信するステップと、
前記処理サーバの前記生成モジュールによって、n個の共有秘密情報を生成するステップであって、各共有秘密情報は、前記n個の公開鍵の共有公開鍵と前記転送秘密鍵と前記鍵ペア生成アルゴリズムとを用いて生成される、ステップと、
前記処理サーバの暗号化モジュールによって、前記n組の鍵ペアの各々に含まれた前記秘密鍵を、暗号化アルゴリズムを用いて、前記n個の共有秘密情報の１つで暗号化するステップと、
前記電子的に送信されたデータ信号に重畳されて含まれた前記秘密鍵は、それぞれの前記暗号化された秘密鍵である、方法。
【請求項３】
請求項２に記載の方法において、更に、
前記処理サーバの前記送信装置によって、前記n個のコンピューティング装置へ、前記転送公開鍵に重畳されたデータ信号を電子的に送信するステップを含む方法。
【請求項４】
請求項３に記載の方法において、前記転送公開鍵に重畳された前記データ信号は、前記共有公開鍵に重畳された前記データ信号を受信する前に、前記n個のコンピューティング装置へ電子的に送信される、方法。
【請求項５】
請求項３に記載の方法において、前記転送公開鍵に重畳された各データ信号は、暗号化済み秘密鍵に重畳された各データ信号と同一のデータ信号である、方法。
【請求項６】
請求項２に記載の方法において、前記送信されたデータ信号は、ブロックチェーンネットワーク内のノードへ電子的に送信され、前記暗号化された秘密鍵は、前記それぞれの共有公開鍵に対応する宛先アドレスを更に含むトランザクション要求に含まれる、方法。
【請求項７】
請求項１に記載の方法において、前記鍵ペア生成アルゴリズムは、楕円曲線鍵共有方式である、方法。
【請求項８】
請求項７に記載の方法において、前記楕円曲線鍵共有方式は、楕円曲線ディフィー・ヘルマン鍵共有プロトコルである、方法。
【請求項９】
請求項１に記載の方法において、前記鍵導出アルゴリズムはXOR論理演算の使用を含む、方法。
【請求項１０】
請求項１に記載の方法において、更に、
前記処理サーバの前記送信装置によって、トランザクション要求に重畳されたデータ信号をブロックチェーン内のノードへ電子的に送信するステップであって、前記トランザクション要求は、前記導出されたアクセス秘密鍵を用いて署名された宛先アドレスを少なくとも含む、ステップを含む、方法。
【請求項１１】
データへアクセスするために使用される複数の暗号鍵を配布するシステムにおいて、
処理サーバの送信装置と、
アクセス鍵要求に重畳されたデータ信号を受信するよう構成された、前記処理サーバの受信装置であって、前記アクセス鍵要求は要求される鍵の数nを少なくとも含む、受信装置と、
鍵ペア生成アルゴリズムを用いてn組の鍵ペアを生成するよう構成された、前記処理サーバの生成モジュールであって、各鍵ペアは秘密鍵と公開鍵とを含む、生成モジュールと、
前記n組の鍵ペアの各々に含まれる前記秘密鍵を鍵導出アルゴリズムへ適用することによって、アクセス秘密鍵を導出するよう構成された、前記処理サーバの導出モジュールと、を含み、
前記処理サーバの前記生成モジュールは更に、前記鍵ペア生成アルゴリズムを用いて、前記導出されたアクセス秘密鍵に対応するアクセス公開鍵を生成するよう構成され、
前記処理サーバの前記送信装置は、前記n組の鍵ペアの各々について、前記n組の鍵ペアのうちの１つに含まれる秘密鍵に重畳されたデータ信号を電子的に送信するよう構成される、システム。
【請求項１２】
請求項１１に記載のシステムにおいて、
前記処理サーバの暗号化モジュールと、
転送公開鍵と転送秘密鍵とを含む転送鍵ペアを記憶するよう構成される、前記処理サーバのメモリと、を更に含み、
前記処理サーバの前記受信装置は、共有公開鍵に重畳されたデータ信号をn個のコンピューティング装置の各々から受信するよう更に構成され、
前記処理サーバの前記生成モジュールは、n個の共有秘密情報を生成するよう更に構成され、各共有秘密情報は、前記n個の公開鍵の共有公開鍵と前記転送秘密鍵と前記鍵ペア生成アルゴリズムとを用いて生成され、
前記処理サーバの前記暗号化モジュールは、前記n組の鍵ペアの各々に含まれた前記秘密鍵を、暗号化アルゴリズムを用いて、前記n個の共有秘密情報の１つで暗号化するよう構成され、
前記電子的に送信されたデータ信号に重畳されて含まれた前記秘密鍵は、それぞれの前記暗号化された秘密鍵である、システム。
【請求項１３】
請求項１２に記載のシステムにおいて、前記処理サーバの前記送信装置は更に、前記転送公開鍵に重畳されたデータ信号を、前記n個のコンピューティング装置へ電子的に送信するよう構成される、システム。
【請求項１４】
請求項１３に記載のシステムにおいて、前記転送公開鍵に重畳された前記データ信号は、前記共有公開鍵に重畳された前記データ信号を受信する前に、前記n個のコンピューティング装置へ電子的に送信される、システム。
【請求項１５】
請求項１３に記載のシステムにおいて、前記転送公開鍵に重畳された各データ信号は、暗号化済み秘密鍵に重畳された各データ信号と同一のデータ信号である、システム。
【請求項１６】
請求項１２に記載のシステムにおいて、前記送信されたデータ信号は、ブロックチェーンネットワーク内のノードへ電子的に送信され、前記暗号化された秘密鍵は、前記それぞれの共有公開鍵に対応する宛先アドレスを更に含むトランザクション要求に含まれる、システム。
【請求項１７】
請求項１１に記載のシステムにおいて、前記鍵ペア生成アルゴリズムは、楕円曲線鍵共有方式である、システム。
【請求項１８】
請求項１７に記載のシステムにおいて、前記楕円曲線鍵共有方式は、楕円曲線ディフィー・ヘルマン鍵共有プロトコルである、システム。
【請求項１９】
請求項１１に記載のシステムにおいて、前記鍵導出アルゴリズムはXOR論理演算の使用を含む、システム。
【請求項２０】
請求項１１に記載のシステムにおいて、前記処理サーバの前記送信装置は更に、トランザクション要求に重畳されたデータ信号をブロックチェーン内のノードへ電子的に送信するよう構成され、前記トランザクション要求は、前記導出されたアクセス秘密鍵を用いて署名された宛先アドレスを少なくとも含む、システム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、米国特許出願第15/001,775号（2016年1月20日出願）の優先権を主張するものであり、当該出願の開示全体をここに参照のために取り込む。
【技術分野】
【０００２】
本開示はデータへアクセスするために使用される複数の暗号鍵を配布することに関し、特に、楕円曲線暗号法を用いて、データへアクセスするための単一の鍵を取得するために使用される複数の暗号鍵を安全に配布し、暗号鍵受信者によるデータ所有権の交渉を必要とすることに関する。
【背景技術】
【０００３】
コンピューティング装置の数が数十億ある世界では、データは絶えず転送されている。データは一方のコンピューティング装置から他方へ（１つのコンピューティング装置から多くの他のコンピューティング装置へ、又は多くのコンピューティング装置から単一のものへ）転送される。多くの実施形態では、データ転送の安全性は、データが転送される場所と同じくらい重要である。例えばもしデータが適切に安全化され、意図された当事者だけがそのデータを閲覧できれば、データは、当該意図された当事者による容易なアクセスのために公衆に利用可能である。高いレベルの安全性があれば、データは、公衆からのアクセス性にもかかわらず、意図された当事者以外の任意のエンティティから安全である。結果的に、公衆チャネルを介して転送されるデータの安全性を確保することは非常に重要である。
【０００４】
しかし、意図されたエンティティの群にとってデータが利用可能な場合、そのような期待をすることは非常に困難であることがある。例えば、もし当事者が、公衆に利用可能なデータを、異なる４人の群にとってアクセス可能にしたいとき、当事者はそのデータを暗号化して、異なる４人の各々へ、データへアクセスするのに適切な鍵を提供してよい。そのような場合、４つの鍵のうち任意のものは、転送されたデータを損なう。これにより状況は全く安全でない。高いレベルの安全性を維持するために、データへアクセスするための単一の鍵だけを配布することが、当事者の最大の関心事である。しかし、４人の群は、どの人が単一の鍵を受信するのかを識別できないことがあるし、そのような識別は時間がかかり又は当事者にとって不便であり得る。
【０００５】
したがって、単一のアクセス鍵を用いることによって複数のエンティティによるアクセス性を得るデータ転送についての技術手段が必要である。更に転送元当事者がデータを複数エンティティの各々へ提供し、転送元当事者による参加無しにエンティティによる所有権の交渉を行う技術手段が必要である。そのような場合、データは、損失の可能性は最小の状態で安全に転送され、単一のエンティティ（これは転送元当事者による追加の参加を要求せずに複数のエンティティの中から選択可能である）にとってのみアクセスは可能である。
【発明の概要】
【０００６】
本開示は、データへのアクセスにおいて使用される複数の暗号鍵を配布するシステム及び方法を記述する。
【０００７】
データへアクセスするために使用される複数の暗号鍵を配布する方法は、
処理サーバの受信装置によって、アクセス鍵要求に重畳されたデータ信号を受信するステップであって、前記アクセス鍵要求は要求される鍵についての１より大きい数nを少なくとも含む、ステップと、
前記処理サーバの生成モジュールによって、鍵ペア生成アルゴリズムを用いてn組の鍵ペアを生成するステップであって、各鍵ペアは秘密鍵と公開鍵とを含む、ステップと、
前記処理サーバの導出モジュールによって、前記n組の鍵ペアの各々に含まれる前記秘密鍵を鍵導出アルゴリズムへ適用することによって、アクセス秘密鍵を導出するステップと、
前記処理サーバの前記生成モジュールによって、前記鍵ペア生成アルゴリズムを用いて、前記導出されたアクセス秘密鍵に対応するアクセス公開鍵を生成するステップと、
前記処理サーバの送信装置によって、前記n組の鍵ペアの各々について、前記n組の鍵ペアのうちの１つに含まれる秘密鍵に重畳されたデータ信号を電子的に送信するステップと、を含む。
【０００８】
データへアクセスするために使用される複数の暗号鍵を配布するシステムは、
処理サーバの送信装置と、
アクセス鍵要求に重畳されたデータ信号を受信するよう構成された、前記処理サーバの受信装置であって、前記アクセス鍵要求は要求される鍵の数nを少なくとも含む、受信装置と、
鍵ペア生成アルゴリズムを用いてn組の鍵ペアを生成するよう構成された、前記処理サーバの生成モジュールであって、各鍵ペアは秘密鍵と公開鍵とを含む、生成モジュールと、
前記n組の鍵ペアの各々に含まれる前記秘密鍵を鍵導出アルゴリズムへ適用することによって、アクセス秘密鍵を導出するよう構成された、前記処理サーバの導出モジュールと、を含み、
前記処理サーバの前記生成モジュールは更に、前記鍵ペア生成アルゴリズムを用いて、前記導出されたアクセス秘密鍵に対応するアクセス公開鍵を生成するよう構成され、
前記処理サーバの前記送信装置は、前記n組の鍵ペアの各々について、前記n組の鍵ペアのうちの１つに含まれる秘密鍵に重畳されたデータ信号を電子的に送信するよう構成される。
【図面の簡単な説明】
【０００９】
本開示の範囲は、添付の図面と共に解釈されると、例示的な実施形態についての下記の詳細な記載から最も良く理解される。図面には次の図が含まれる。
【００１０】
【図１】図１は、本開示の実施形態による、報酬所有権の交渉のために複数のエンティティへ鍵を配布する高いレベルのシステム構造を示す。
【図２】図２は、本開示の実施形態による、報酬所有権の交渉のために複数のエンティティへ暗号鍵を配布する高い、図１の処理サーバを示す。
【図３】図３は、例示的実施形態による、複数エンティティによる所有権の交渉のためにデータを安全化する図２の処理サーバによるアクセス鍵の生成を示す。
【図４】図４は、例示的実施形態による、楕円曲線暗号法を用いてアクセス鍵を転送する処理フローを示すフローチャートである。
【図５】図５は、例示的実施形態による、データへアクセスするために使用される複数の暗号鍵を配布する例示的な方法を示すフローチャートである。
【図６】図６は、例示的実施形態による、コンピュータシステムアーキテクチャを示す機能ブロック図である。
【００１１】
本開示の更なる応用分野は、下記の詳細な説明から自明である。例示的実施形態の詳細な説明は、例示目的のみを意図しており、本開示の範囲を必要的に制限することを意図しない。
【発明を実施するための形態】
【００１２】
用語解説
ブロックチェーン：ブロックチェーンに関連付けられた１以上の基準又は慣習にしたがう全てのトランザクションの台帳である。１以上のコンピュータ装置は、ブロックチェーンネットワークを含んでよく、これはブロックチェーンにおけるブロックの一部としてトランザクションを処理及び記録するよう構成されてよい。一旦ブロックが完成すると、当該ブロックはブロックチェーンへ追加され、したがってトランザクション記録が更新される。多くの実施形態では、ブロックチェーンは時系列順のトランザクションの台帳であってよいし、ブロックチェーンネットワークによる使用に適した他の順番で提示されてもよい。いくつかの実施形態では、ブロックチェーンは通貨トランザクションの台帳であってよい。ブロックチェーンで記録されたトランザクションは、宛先アドレスと通貨金額とを含んでよい。これによりブロックチェーンは、どれほどの通貨が特定のアドレスへ帰属するかを記録する。そのような構成では、ブロックチェーンは、ブロックチェーンを基礎としたデジタル通貨を用いてよい。これは、それぞれのブロックチェーンに対し特有であってよい。いくつかの実施形態では、追加情報（例えばソースアドレス、タイムスタンプ等）が捕捉されてよい。いくつかの実施形態では、ブロックチェーンはまた、追加の、又はいくつかの実施形態では、任意のデータを含んでよい。これは、プルーフオブワークを通るブロックチェーンネットワークによって、及び／又は、それに関連付けられた他の任意の適切な検証技術によって、確認及び有効化される。いくつかの実施形態では、そのようなデータはトランザクションの一部としてブロックチェーンに含まれてよい（例えばトランザクションデータに付加される追加データに含まれる）。いくつかの実施形態では、そのようなデータをブロックチェーンに含めることは、トランザクションを構成してよい。そのような実施形態では、ブロックチェーンは特敵のデジタル通貨、仮想通貨、不換通貨又は他の種別の通貨に直接的に関連付けられなくてよい。ブロックチェーンは私的であってよい。このとき承認されたシステム又は装置だけがブロックチェーンへアクセス可能であってよい。または、ブロックチェーンが任意の装置又はシステムからアクセス可能であるときには公開されてよい。いずれの場合も、装置又はシステムがブロックチェーンへトランザクションを追加する機能は制限されてよい。
【００１３】
楕円曲線暗号法による暗号鍵配布システム
図１は、データの安全転送において使用される楕円曲線暗号法を用いて暗号鍵を転送するシステム１００を示す。
【００１４】
システム１００は処理サーバ１０２を含んでよい。処理サーバ１０２は、下記で詳述されるが、複数のコンピューティング装置１０４によるアクセスにおいて使用される楕円曲線暗号法を用いた配布のために、複数の暗号鍵を生成するよう構成されてよい。このことは、本開示の機能（これは汎用目的コンピュータ上では実行不可能である）を実行するよう特別にプログラムされたコンピュータ上での処理を要求するように実行され、また、精神的な処理やペン及び紙を用いた実際的な方法で実行されることができないので、データの安全転送における報酬所有権を交渉することにおいて技術的解決手段を提供する。処理サーバ１０２はアクセス鍵要求を受信する。これは、データのアクセスにおいて使用するために、コンピューティング装置１０４への配布用の複数の鍵を要求してよい。アクセス鍵要求は外部装置（例えば他のコンピューティング装置又はシステム）から、例えばその装置又はシステムから適切な通信ネットワーク（例えばローカルエリアネットワーク、ワイドエリアネットワーク、無線周波数、Bluetooth、近距離通信、インターネット等）を介した電子的送信によって受信されてよいし、処理サーバ１０２とインタフェース接続した１以上の入力装置（これは処理サーバ１０２のユーザによってアクセス可能である）を介して受信されてよい。アクセス鍵要求はコンピューティング装置１０４（これについてアクセス鍵が要求される）の数nを特定してよい。図１に示す例では、アクセス鍵要求は３つのアクセス鍵についての要求であってよい。
【００１５】
処理サーバ１０２は次いで、要求された鍵ペアの数wを生成してよい。各鍵ペアは秘密鍵と公開鍵と（これらは「報酬」秘密鍵と公開鍵とを含む「報酬」鍵ペアとして本開示で称される）を含んでよい。処理サーバ１０２は、要求された数の鍵ペアの生成において、適切な鍵ペア生成アルゴリズムを用いてよい。例示的実施形態では、鍵ペア生成アルゴリズムは、楕円曲線鍵共有方式であってよい。更なる実施形態では、当業者に理解されるように、楕円曲線ディフィー・ヘルマン（ECDH）鍵共有プロトコルが、n組の鍵ペアの各々を生成する際に使用されてよい。いずれの場合にも、鍵ペア生成アルゴリズムは、下記で詳述されるように、共有秘密情報の使用に対し適切なものであってよい。
【００１６】
数nの報酬鍵ペアが生成されると、処理サーバ１０２は報酬秘密鍵をn組の報酬鍵ペアの各々から鍵導出アルゴリズムへ適用することによってアクセス秘密鍵を取得してよい。いくつかの実施形態では、導出アルゴリズムはXOR論理演算の使用を含んでよい。例示的実施形態では、鍵導出アルゴリズムは、アクセス秘密鍵の導出において報酬秘密鍵の順序付けや配列における相違が、同一のアクセス秘密鍵をもたらすようなものであってよい。そのような実施形態では、報酬秘密鍵の各々を所有する任意のエンティティであって使用される鍵導出アルゴリズムの知識を有しているエンティティは、報酬秘密鍵の順序又は配列にかかわらずアクセス秘密鍵を複製可能であってよい。
【００１７】
処理サーバ１０２はまた、導出されたアクセスに対応するアクセス公開鍵を生成するよう構成される。アクセス公開鍵は、鍵ペア生成アルゴリズムを使用して生成されてよい。これは、報酬鍵ペアを生成するのに使用されたのと同一の鍵ペア生成アルゴリズムであってよい。例えば例示的実施形態では、処理サーバ１０２は、ECDH鍵共有プロトコルを用いて、アクセス公開鍵を、導出されたアクセス秘密鍵の鍵ペアの一部として生成してよい。
【００１８】
処理サーバ１０２は、導出されたアクセス秘密鍵を用いて、データへのアクセスを制限してよい。秘密鍵を用いたデータへのアクセス制限のための任意の適切な方法が、使用されてよい。例えば一実施形態ではデータは、アクセス秘密鍵と適切な暗号アルゴリズムとを用いて暗号化されてよい。他の実施形態では、アクセスが制限される先のデータは、ブロックチェーンネットワーク１０６を介して利用可能なブロックチェーン通貨の金額であってよい。そのような実施形態では、アクセス公開鍵が、ブロックチェーン通貨の金額につき、宛先アドレスを生成するのに使用されてよい。このとき、アクセス秘密鍵は、宛先アドレスを署名し、それに関連付けられたブロックチェーン通貨へのアクセスを提供するのに使用される。ブロックチェーンネットワーク１０６を用いたブロックチェーン通貨の転送及びアクセスのための鍵ペアの使用は、当業者にとって自明である。
【００１９】
処理サーバ１０２が、アクセス秘密鍵を用いて所望のデータへのアクセスを制限すると、処理サーバ１０２は報酬秘密鍵をコンピューティング装置１０４の各々へ電子的に送信してよい。このため、コンピューティング装置１０４の各々は異なる報酬秘密鍵を受信する。例えば図１に示す例では、処理サーバ１０２は報酬秘密鍵Ka、Kb、及びKcを生成してよい。これらはそれぞれ、コンピューティング装置104a、104b、及び104cへ電子的に送信されてよい。いくつかの実施形態では、報酬秘密鍵は、インターネット又は他の適切な通信ネットワークを用いてそれぞれのコンピューティング装置１０４へ電子的に送信されるデータ信号において、重畳されてよい。
【００２０】
例示的実施形態では、報酬秘密鍵は、共有秘密情報を使用した送信の前に暗号化されてよい。そのような実施形態では、処理サーバ１０２とコンピューティング装置１０４の各々とは、共有秘密情報による報酬秘密鍵の転送、暗号化及び復号化において使用するために鍵ペアを生成してよい。処理サーバ１０２とコンピューティング装置１０４とはそれぞれ、同一の鍵ペア生成アルゴリズムを用いて鍵ペアを生成してよい。これは、ECDH鍵共有プロトコル、又は、共有秘密情報と関連した使用のために適切な他のアルゴリズムであってよい。鍵ペア生成アルゴリズムを用いて、処理サーバ１０２は、「転送」秘密鍵と公開鍵とを含む「転送」鍵ペアとして称される鍵ペアを生成してよい。各コンピューティング装置１０４は、鍵ペア生成アルゴリズムを用いて、「装置」秘密鍵及び公開鍵を含む「装置」鍵ペアとして称される鍵ペアを生成してよい。各コンピューティング装置１０４は、適切な通信手段を用いて、処理サーバ１０２へ、関連装置公開鍵を電子的に送信してよい。処理サーバ１０２は、各コンピューティング装置１０４へ、転送公開鍵を電子的に送信してよい。いくつかの実施形態では、転送公開鍵は、暗号化された報酬秘密鍵と共に（すなわち、同一の送信又は付随する送信において）送信されてよい。
【００２１】
処理サーバ１０２がコンピューティング装置１０４から装置公開鍵を受信した後、処理サーバ１０２は共有秘密情報を生成してよい。共有秘密情報は、それぞれの鍵の生成において使用された鍵ペア生成アルゴリズムに関連する転送秘密鍵と装置公開鍵とを用いて生成されてよい。共有秘密情報は、第１の鍵ペアの秘密鍵及び第２の鍵ペアの公開鍵と共に生成されるとき、又は、第１の鍵ペアの公開鍵及び第２の鍵ペアの秘密鍵と共に生成されるときのものと同等の秘密情報であってよい。例えば例示的実施形態では、処理サーバ１０２は、処理サーバ１０２によって生成された転送秘密鍵とコンピューティング装置１０４aから受信された装置公開鍵とを用いて、秘密鍵Kaをコンピューティング装置104aへ伝送する際に使用される共有秘密情報を生成してよい。コンピューティング装置１０４ａは、処理サーバ１０２から受信された転送公開鍵と、コンピューティング装置１０４ａによって生成された装置秘密鍵とを用いて、同等の共有秘密情報を生成してよい。
【００２２】
処理サーバ１０２がコンピューティング装置１０４に関連付けられた共有秘密情報を（例えばその特定のコンピューティング装置の装置公開鍵を用いて）生成すると、処理サーバ１０２は、関連共有秘密情報を用いて、そのコンピューティング装置１０４へ送信される報酬秘密鍵を暗号化してよい。任意の適切な暗号化アルゴリズム（例えばAES暗号化アルゴリズム)が使用されてよい。暗号化された報酬秘密鍵は次いで、任意の適切な通信手段を用いて、関連付けられたコンピューティング装置１０４へ電子的に送信されてよい。いくつかの実施形態では、処理サーバ１０２は、暗号化された報酬秘密鍵を伝送するために使用される電子通信に、転送公開鍵を含めてよい。
【００２３】
各コンピューティング装置１０４は次いで、受信された暗号化済み報酬秘密鍵を復号化する際に使用するための共有秘密情報を生成してよい。共有秘密情報は処理サーバ１０２によって電子的に送信される転送公開鍵と、コンピューティング装置の生成済み装置秘密鍵とを用いて、生成されてよい。共有秘密情報は、対応する鍵ペアを生成する際にコンピューティング装置１０４と処理サーバ１０２とによって使用される鍵ペア生成アルゴリズムを用いて生成されてよい。コンピューティング装置１０４は共有秘密情報を用いて、処理サーバ１０２によって使用される適切な暗号化アルゴリズムを用いて報酬秘密鍵を復号化してよい。例えばコンピューティング装置１０４は、共有秘密情報を用いて、報酬秘密鍵の復号化において、AES256アルゴリズムを用いてよい。
【００２４】
各コンピューティング装置１０４が、自身の報酬秘密鍵（適用される場合）を受信及び復号化すると、コンピューティング装置１０４は報酬秘密鍵の各々の所有について交渉してよい。いくつかの実施形態では、コンピューティング装置１０４に関連付けられたユーザは、コンピューティング装置１０４を使用すること無く、報酬秘密鍵の所有について交渉してよい。例えば例示された例では、コンピューティング装置１０４の３人のユーザはオフラインで交渉して、コンピューティング装置１０４ａのユーザが報酬秘密鍵の各々を収集することを合意してよい。そのような実施形態では、コンピューティング装置１０４ｂ及びコンピューティング装置１０４ｃは、適切な通信手段を用いて、コンピューティング装置１０４ａへ報酬秘密鍵を電子的に送信してよい。
【００２５】
いくつかの実施形態では、報酬秘密鍵は、共有秘密情報を使用してコンピューティング装置１０４間で転送されてよい。そのような実施形態では、コンピューティング装置１０４は、転送用に、報酬秘密鍵を暗号化するための共有秘密情報を生成する際に使用する関連装置公開鍵を交換してよい。例えばコンピューティング装置１０４ｂは共有秘密情報を生成して、コンピューティング装置１０４ｂによって生成された装置秘密鍵とコンピューティング装置１０４ａによって生成された装置公開鍵とを用いて、報酬秘密鍵Kbを暗号化してよく、共有秘密情報を用いて報酬秘密鍵Kbを暗号化してよい。コンピューティング装置１０４ｂは、適切な通信手段を用いて、コンピューティング装置１０４ａへ暗号化済み報酬秘密鍵Kbを電子的に送信してよい。コンピューティング装置１０４ａは、コンピューティング装置１０４ａによって生成された装置秘密鍵と、コンピューティング装置１０４ｂによって生成された装置公開鍵とを用いて、共有秘密情報を生成して、報酬秘密鍵Kbを復号化してよい。コンピューティング装置１０４ａ及びコンピューティング装置１０４ｃは、コンピューティング装置１０４ａについての処理を繰り返して、報酬秘密鍵Kcを受信及び復号化してよい。
【００２６】
コンピューティング装置１０４が報酬秘密鍵の各々を所有すると、当該コンピューティング装置１０４は、導出において処理サーバ１０２によって使用される鍵導出アルゴリズムを用いて、アクセス秘密鍵を導出してよい。コンピューティング装置１０４は、アクセス秘密鍵を用いて、転送されるデータへアクセスしてよい。例えばもしデータが、ブロックチェーンネットワーク１０６に関連付けられたブロックチェーン通貨であれば、コンピューティング装置１０４はアクセス秘密鍵を署名として用いて、アクセス公開鍵を用いて生成された宛先アドレスへ転送されたブロックチェーン通貨へ、アクセスしてよい。
【００２７】
本開示の方法及びシステムは、複数のエンティティへ配布（分散）された複数の鍵によって導出される必要がある単一の秘密鍵を用いてアクセス可能なデータの転送を可能にする。複数エンティティへ配布（分散）された鍵を用いることによって、データは、複数エンティティによる交渉が実行されるまで安全なままであってよい。このとき、転送元当事者による参加は要求されない。更にアクセス鍵は、各エンティティへ配布された鍵を用いて導出されるので、データは単一の鍵を使用するときより非常に高いレベルの安全性を有する。これは、特にデータが公衆に利用可能だがアクセス不可能な場合に（例えばブロックチェーンネットワーク１０６内）、データについて一層強い保護を提供する。仮に報酬秘密鍵が転送時の高いレベルの保護を有していても、楕円曲線暗号法を使用することによって、一層強い保護が提供される。したがって本開示の方法及びシステムは、データ転送と、転送されるデータのアクセスにおいて使用される鍵の転送との両方において、一層の保護を提供する。
【００２８】
本開示の方法及びシステムを使用することはまた、安全なデータへアクセスするために使用される暗号鍵を記憶する際に有益である。例えばエンティティは安全に記憶されるデータを有しており、本開示の方法を用いて単一の秘密鍵を生成してデータを暗号化する。このとき単一の秘密鍵を導出するのに使用される報酬秘密鍵は、複数の異なるコンピューティングシステムへ配布され、単一の秘密鍵は捨てられる。そのような場合、もしコンピューティングシステムの１つについての暗号鍵ストアが損なわれても、データは依然として安全である。というのも、報酬秘密鍵へのアクセスを得るエンティティは、データを暗号化するために使用される単一の秘密鍵を導出できないからである。損なわれた秘密鍵は、他のコンピューティングシステムへ提供されてよく、単一の秘密鍵はそこから導出される、報酬秘密鍵の新たなセットを生成する処理が繰り返される。そのような場合、任意の暗号鍵ストアが損なわれたときはいつでも、データは安全なままである。したがって本開示の方法及びシステムは、安全な分散暗号鍵ストレージを提供するのに有益である。
【００２９】
処理サーバ
図２は、システム１００の処理サーバ１０２の実施形態を示す。当業者にとって、図２に示す処理サーバ１０２の実施形態が、例示目的のみで提供されることと、本開示の機能を実行するのに適した、処理サーバ１０２の全ての可能な構成を徹底的に示したものでないことは自明である。例えば図６に示され下記で一層詳細に説明されるコンピュータシステム６００が、処理サーバ１０２の適切な構成であってよい。
【００３０】
処理サーバ１０２は受信装置２０２を含んでよい。受信装置２０２は１以上のネットワークプロトコルを介して１以上のネットワーク上でデータを受信するよう構成されてよい。いくつかの実施形態では受信装置２０２は、データを、コンピューティング装置１０４、ブロックチェーンネットワーク１０６、及び他のエンティティから適切な通信ネットワーク（例えばローカルエリアネットワーク、ワイドエリアネットワーク、無線周波数ネットワーク、インターネット等）を介して受信するよう構成されてよい。いくつかの実施形態では、受信装置２０２は複数の装置（例えば、異なるネットワーク上でデータを受信する異なる受信装置（例えば近距離通信でデータを受信する第１の受信装置と、インターネット上でデータを受信する第２の受信装置））を含んでよい。受信装置２０２は電子的に送信されるデータ信号を受信してよい。このとき、受信装置２０２によるデータ信号の受信によって、データはデータ信号上に重畳され、復号、解析（パース）、読取り、又は取得されてよい。いくつかの実施形態では、受信装置２０２は、受信されたデータ信号を解析して、そこに重ねられたデータを取得するための解析モジュールを含んでよい。例えば受信装置２０２は、受信されたデータ信号を受信し、処理装置によって実行される機能のための利用可能な入力へと変換して本開示の方法及びシステムを実行するよう構成される解析プログラムを含んでよい。
【００３１】
受信装置２０２は、コンピューティング装置１０４によって電子的に送信されたデータ信号を受信するよう構成されてよい。これは、本開示の機能を実行する際に使用される。コンピューティング装置１０４によって電子的に送信されたデータ信号は、例えば共有秘密情報を生成する際に使用するために、装置公開鍵に重畳されてよい。受信装置２０２はまた、追加の装置及びシステムから（例えばブロックチェーンネットワーク１０６及び／又はデータ（例えばブロックチェーン通貨）の転送の際に使用するためにそれに関連付けられたノードから）、ブロックチェーンネットワーク１０６（例えばアクセス鍵要求を提出する外部コンピューティング装置）を介して、データ信号を受信してよい。いくつかの実施形態では、受信装置２０２は、コンピューティング装置１０４からデータへアクセスして報酬秘密鍵の１つを受信することについて、n個の報酬秘密鍵についてのアクセス鍵要求に重畳されたデータ信号を受信してよい。
【００３２】
処理サーバ１０２はまた通信モジュール２０４を含んでよい。通信モジュール２０４は、本開示の機能を実行する際に使用するために、モジュール、エンジン、データベース、メモリ、及び処理サーバ１０２の他の構成要素の間でデータを転送するよう構成されてよい。通信モジュール２０４は１以上の通信種別を含んでよく、コンピューティング装置内での通信のために様々な通信方法を使用してよい。例えば通信モジュール２０４はバス、接続ピンコネクタ、ケーブル等を含んでよい。いくつかの実施形態では、通信モジュール２０４はまた、処理サーバ１０２の内部構成要素と処理サーバ１０２の外部構成要素（例えば外部で接続されたデータベース、表示装置、入力装置等）との間で通信するよう構成されてよい。処理サーバ１０２はまた、処理装置を含んでよい。処理装置は本開示の処理サーバ１０２の機能を実行するよう構成されてよい。このことは、当業者にとって自明である。いくつかの実施形態では、処理装置は、処理装置の１以上の機能を実行するよう特別に構成された複数のエンジン及び／又はモジュール（例えば問い合わせモジュール２１８、生成モジュール２０６、導出モジュール２０８、暗号化モジュール２１０、復号化モジュール２１２等）を含んでよい。本開示のように、「モジュール」との用語は、入力を受信し、当該入力を使用して１以上の処理を実行し、且つ出力を提供するよう特別にプログラムされたソフトウェア又はハードウェアであってよい。様々なモジュールによって実行される入力、出力及び処理は、本開示に基づいて、当業者にとって自明である。
【００３３】
処理サーバ１０２はまた問い合わせモジュール２１８を含んでよい。問い合わせモジュール２１８はデータベース上のクエリを実行して情報を識別するよう構成されてよい。問い合わせモジュール２１８は１以上のデータ値又はクエリ列を受信してよく、それに基づいて、示されたデータベース（例えばメモリ２１６）上でクエリ列を実行して、そこに格納された情報を識別してよい。問い合わせモジュール２１８は次いで、識別された情報を、必要に応じて処理サーバ１０２の適切なエンジン又はモジュールへ出力してよい。例えば問い合わせモジュール２１８はメモリ２１６上でクエリを実行して、本開示の方法で使用するために、コンピューティング装置１０４から受信した又は処理サーバ１０２によって生成された１以上の鍵を識別してよい。
【００３４】
処理サーバ１０２はまた生成モジュール２０６を含んでよい。生成モジュール２０６は鍵ペアと共有秘密情報とを生成するよう構成されてよい。生成モジュール２０６は要求を入力値として受信してよい。これは、鍵ペア又は共有秘密情報の生成を要求し、それに関した使用のための情報を含んでよい。生成モジュール２０６は、要求された機能を実行してよいし、処理サーバ１０２の他のモジュール又はエンジンによる使用のために、要求されたデータを出力してよい。例えば生成モジュール２０６は鍵ペア（例えば報酬秘密鍵）を、要求内に含まれる又は示される（及び、例えば問い合わせモジュール２１８によってメモリ２１６内で識別される）鍵ペア生成アルゴリズムを用いて生成するよう構成されてよい。生成モジュール２０６はまた、２つの異なる鍵ペア（これは同一の鍵ペア生成アルゴリズムを用いてよい）からの公開鍵と秘密鍵とを用いて、共有秘密情報を生成するよう構成されてよい。いくつかの実施形態では、生成モジュール２０６はまた、鍵ペア生成アルゴリズムを用いて秘密鍵に対応する公開鍵を生成してよい。例示的な実施形態では、ECDH鍵共有プロトコルは、生成モジュール２０６によって使用されてよい。
【００３５】
処理サーバ１０２はまた導出モジュール２０８を含んでよい。導出モジュール２０８は公開鍵及び／又は秘密鍵を導出してよい。導出モジュール２０８は１以上の鍵及び鍵導出アルゴリズムとその標示とを入力値として受信してよく、要求された１又は複数の鍵を導出してよく、要求された１又は複数の鍵を、処理サーバ１０２の他のモジュール又はエンジンによる使用のために出力してよい。例えば導出モジュール２０８は、生成モジュール３０６によって生成された複数の報酬秘密鍵を受信してよいし、それに基づいて、適切な鍵導出アルゴリズムを用いて、対応するアクセス秘密鍵を導出してよい。いくつかの実施形態では、導出モジュール２０８はアルゴリズムを用いて、導出において報酬秘密鍵を使用する順番についての相違が同一のアクセス秘密鍵をもたらすという点で、報酬秘密鍵の順序付けや配列が非論理的なものになるようにしてよい。そのような実施形態では、鍵導出アルゴリズムはXOR論理演算の使用を含んでよい。
【００３６】
処理サーバ１０２はまた暗号化モジュール２１０を含んでよい。暗号化モジュール２１０は適切な暗号化アルゴリズム（例えばAES256アルゴリズム）を用いて、データを暗号化するよう構成されてよい。暗号化モジュール２１０は、暗号化されるデータと、その使用のための鍵とを入力値として受信してよいし、適切なアルゴリズムを用いて当該データを暗号化してよいし、その使用のために処理サーバ１０４の他のモジュール又はエンジンへ、暗号化済みデータを出力してよい。いくつかの実施形態では、暗号化モジュール２１０は暗号化アルゴリズム又はその標示を入力値として受信してよい。他の実施形態では、暗号化モジュール２１０は使用される暗号化アルゴリズムを識別してよい。暗号化モジュール２１０は例えば、関連付けられて生成された共有秘密情報を用いて、報酬秘密鍵を暗号化してよい。
【００３７】
処理サーバ１０２はまた復号化モジュール２１２を含んでよい。復号化モジュール２１２は適切な暗号化アルゴリズム（例えばAES256アルゴリズム）を用いて、データを復号化するよう構成されてよい。復号化モジュール２１２は、復号化されるデータと、その使用のための鍵とを入力値として受信してよいし、適切なアルゴリズムを用いて当該データを復号化してよいし、その使用のために処理サーバ１０２の他のモジュール又はエンジンへ、復号化済みデータを出力してよい。復号化モジュール２１２へ提供された入力は、使用する暗号化アルゴリズムを含んでよいし、その標示（例えば問い合わせモジュール２１８を介してメモリ２１６へ記憶される暗号化アルゴリズムを識別する際に使用する標示）を含んでよい。復号化モジュール２１２は例えば、関連する共有秘密情報を用いて、コンピューティング装置１０４によって提供される鍵を復号化してよい。
【００３８】
いくつかの実施形態では、処理サーバ１０２は、本開示の機能を実行する際に使用する追加のモジュール又はエンジンを含んでよい。例えば処理サーバ１０２は（例えばブロックチェーントランザクションを開始及び提出するために、及び、ブロックチェーンネットワーク１０６を用いて、アドレスとブロックチェーン通貨を移転するトランザクション要求とを署名するために、）ブロックチェーンネットワーク１０６に関連して使用する追加のモジュールを含んでよい。いくつかの実施形態では、図２に示され且つ本開示で説明される処理サーバ１０２のモジュールは、関連する追加の機能を実行するよう構成されてよい。例えば生成モジュール２０６は、アクセス公開鍵を用いて、ブロックチェーン宛先アドレスを生成するよう構成されてよい。
【００３９】
処理サーバ１０２はまた、送信装置２１４を含んでよい。送信装置２１４は１以上のネットワークプロトコルを介して１以上のネットワーク上でデータを送信するよう構成されてよい。いくつかの実施形態では送信装置２１４は、データを、コンピューティング装置１０４、ブロックチェーンネットワーク１０６、及び他のエンティティへ適切な通信ネットワーク（例えばローカルエリアネットワーク、ワイドエリアネットワーク、無線周波数ネットワーク、インターネット等）を介して送信するよう構成されてよい。いくつかの実施形態では、送信装置２１４は複数装置（例えば、異なるネットワーク上でデータを送信するための異なる送信装置（例えば近距離通信でデータを送信する第１の送信装置と、インターネット上でデータを送信する第２の送信装置））を含んでよい。送信装置２１４は、重畳されたデータであって受信コンピューティング装置によって解析されるデータを有するデータ信号を電子的に送信してよい。いくつかの実施形態では、送信装置２１４は、データを重畳しエンコードし、又はデータを送信に適したデータ信号へ整形する１以上のモジュールを含んでよい。
【００４０】
送信装置２１４は、データ信号（これは公開鍵及び／又は秘密鍵に重畳され、いくつかの実施形態では、共有秘密情報を用いて暗号化されてよい）をコンピューティング装置１０４へ電子的に送信するよう構成されてよい。例えば送信装置２１４は、データ信号（これは、共有秘密情報を生成する際にコンピューティング装置１０４によって使用するために、転送公開鍵に重畳されてよい）をコンピューティング装置１０４へ送信するよう構成されてよい。送信装置２１４はまた、ブロックチェーン通貨を転送する際に使用するために、ブロックチェーンネットワーク１０６へデータ信号を送信してよい。
【００４１】
処理サーバ１０２はまた、メモリ２１６を含んでよい。メモリ２１６は、本開示の機能を実行するときに処理サーバ１０２が使用するためのデータを記憶するよう構成されてよい。メモリ２１６は、データ整形方法及びスキーマを用いてデータを格納するよう構成されてよく、また、任意の適切な種類のメモリ（例えば読み取り専用メモリ、ランダムアクセスメモリ等）であってよい。メモリ２１６は例えば暗号鍵及びアルゴリズム、通信プロトコル及び基準、データ整形基準及びプロトコル、モジュール用プログラムコード及び処理装置のアプリケーションプログラム、並びに、本開示の機能を実行する際に処理サーバ１０２によって使用される適切な他のデータを含んでよい。このことは、本開示を読む当業者にとって自明である。メモリ２１６は、鍵ペア生成アルゴリズムと、鍵導出アルゴリズムと、本開示の処理サーバ１０２の機能を実行する際に使用する暗号化アルゴリズムとを格納してよい。
【００４２】
アクセス秘密鍵の導出
図３は複数のコンピューティング装置１０４への配布のために生成される複数の暗号鍵によってデータをアクセスする際に使用するために、アクセス秘密鍵を導出する処理３００を示す図である。
【００４３】
ステップ３０２にて処理サーバ１０２の生成モジュール２０６は、適切な鍵ペア生成アルゴリズム（これは楕円曲線鍵共有方式（例えばECDH鍵共有プロトコル）であってよい）を用いて、複数の報酬鍵ペア３０４を生成してよい。生成モジュール２０６によって生成される報酬鍵ペア３０４の数は、処理サーバ１０２の受信装置２０２（又は処理サーバ１０２とインタフェース接続する１以上の入力装置）によって受信されるアクセス鍵要求に基づいてよい。
【００４４】
図３に示す例では、生成モジュール２０６は３つの報酬鍵ペア３０４（図３にて、鍵ペア１  304a、鍵ペア２  304b、鍵ペア３  304cとして示される）を生成してよい。各報酬鍵ペア３０４は、報酬秘密鍵と対応する報酬公開鍵とを含んでよい。ステップ３０５にて、処理サーバ１０２の導出モジュール２０８は、報酬鍵ペア３０４の各々からの報酬秘密鍵にXOR論理演算を用いて、アクセス秘密鍵３０８を導出してよい。導出されたアクセス秘密鍵については、XOR論理演算を用いることによって、アクセス秘密鍵３０８を導出する演算の順番は非論理的であってよい。例えば図３に示す処理３００では、鍵ペア３０４は３つの報酬秘密鍵R1、R2、及びR3を含んでよい。XOR(R1,XOR(R2,R3))により３つ全ての鍵についてXOR論理演算３０６を用いて導出されたアクセス秘密鍵３０８は、演算XOR(R2,XOR(R1,R3))  and  XOR(R3,XOR(R1,R2))によって導出されたアクセス秘密鍵と同等であってよい。
【００４５】
結果として生じたアクセス秘密鍵３０８は次いで、データへのアクセスを制限する際に処理サーバ１０２によって使用されてよい。例えばアクセス秘密鍵３０８はデータを暗号化するために使用されてよいし、ブロックチェーンネットワーク１０６に関連付けられたブロックチェーン通貨を受信する宛先アドレスを署名するために使用されてよい。各報酬鍵ペア３０４に含まれる報酬秘密鍵は、制限されたデータへのアクセスを提供するための手段として、コンピューティング装置１０４間で配布されてよい。配布された暗号鍵ストレージについては、エンティティはアクセス秘密鍵３０８を用いてデータを暗号化し又はデータへのアクセスを制限してよいし、アクセス秘密鍵３０８を破棄してよいし、次いで各報酬鍵ペア３０４における報酬秘密鍵をコンピューティング装置１０４（これはエンティティの一部（例えば補助の又は制御されたコンピューティングシステム）であってよいし、又は、関連する信頼されたエンティティであってよい）へ配布してよい。そのような実施形態では、任意のコンピューティング装置１０４についての鍵記憶が損なわれても、データは安全なままである。
【００４６】
データアクセスのための楕円曲線暗号法による鍵転送処理
図４は、楕円曲線暗号法により秘密鍵を配布する処理（例えば、データアクセスのために使用されるアクセス秘密鍵の導出において使用される図３に示す処理３００を用いて生成された報酬秘密鍵の配布）を示す。
【００４７】
ステップ４０２にて処理サーバ１０２は、例えば図３に示され上述された処理３００を用いて、複数の報酬鍵ペアを生成し、そこからアクセス秘密鍵を導出してよい。ステップ４０４にて処理サーバ１０２及びコンピューティング装置１０４は、共有秘密情報を生成する際に使用するために公開鍵を交換してよい。コンピューティング装置１０４は、鍵ペア生成アルゴリズムを用いて、装置鍵ペア（例えばECDH鍵共有プロトコル）（これは装置秘密鍵と装置公開鍵とを含んでよい）を生成してよい。処理サーバ１０２の生成モジュール２０６は、同一の鍵ペア生成アルゴリズムを用いて転送鍵ペア（これは転送公開鍵と転送秘密鍵とをもたらす）を生成してよい。公開鍵の交換は、装置公開鍵をコンピューティング装置１０４から処理サーバ１０２へ電子的に通信することを含んでよく、転送公開鍵と処理サーバ１０２から（例えば送信装置２１４を介して）コンピューティング装置１０４へ電子的に送信することを含んでよい。
【００４８】
ステップ４０６にて、処理サーバ１０２の生成モジュール２０６は共有秘密情報を生成してよい。共有秘密情報は同一の鍵ペア生成アルゴリズム（例えばECDH鍵共有プロトコル）を用いて、生成モジュール２０６によって生成された転送秘密鍵とコンピューティング装置１０４から受信された装置公開鍵とを用いて、生成されてよい。ステップ４０６にてコンピューティング装置１０４は、同一の鍵ペア生成アルゴリズムを用いて、コンピューティング装置１０４によって以前に生成された装置秘密鍵と処理サーバ１０４から受信された転送公開鍵とを用いて、同等の共有秘密情報を生成してよい。
【００４９】
ステップ４１０にて、処理サーバ１０４の暗号化モジュール２１０は、共有秘密情報を用いて、適切な暗号化アルゴリズムにより、アクセス秘密鍵を導出する際に使用され且つステップ４０２にて生成された報酬秘密鍵を暗号化してよい。例えば暗号化アルゴリズムは、AES256アルゴリズムであってよい。ステップ４１２にて処理サーバ１０２の送信装置２１４は、適切な通信ネットワーク及びプロトコルを用いて、暗号化済み報酬秘密鍵に重畳されたデータ信号を、コンピューティング装置１０４へ電子的に送信してよい。
【００５０】
ステップ４１４にて処理サーバ１０４は、データ信号を受信して、そこからの暗号化済み報酬秘密鍵を分析してよい。ステップ４１６にてコンピューティング装置１０４は、報酬秘密鍵を復号化してよい。報酬秘密鍵は、共有秘密情報を用いて、処理サーバ１０２によって使用されるのと同一の暗号化アルゴリズムを用いて復号化されてよい。復号化された報酬秘密鍵は次いで適切な鍵導出アルゴリズムを用いて、他の報酬秘密鍵（これは例えば他のコンピューティング装置１０４から受信される）と組み合わされて、アクセス秘密鍵を導出する際に使用されてよい。
【００５１】
データへのアクセスのために使用される複数の暗号鍵を配布する例示的システム及び方法
図５は複数のコンピューティング装置へ、データへアクセスするためのアクセス鍵を導出するために使用される複数の暗号鍵を配布する方法５００を示す。
【００５２】
ステップ５０２にてアクセス鍵要求に重畳されたデータ信号は、処理サーバ（例えば処理サーバ１０２）の受信装置（例えば受信装置２０２）によって受信されてよい。このときアクセス鍵要求は少なくとも、要求される鍵についての１より大きい数nを含む。ステップ５０４にて、n組の鍵ペアは処理サーバの生成モジュール（例えば生成モジュール２０６）によって、鍵導出アルゴリズムを用いて生成されてよい。このとき各鍵ペアは秘密鍵と公開鍵とを含む。
【００５３】
ステップ５０６にてアクセス鍵要求は、n組の鍵ペアの各々に含まれた秘密鍵を鍵導出アルゴリズムへ適用することにより、処理サーバの導出モジュール（例えば導出モジュール２０８）によって導出されてよい。ステップ５０８にて、導出された秘密鍵に対応するアクセス公開鍵は、鍵ペア生成アルゴリズムを用いて、処理サーバの生成モジュールによって生成されてよい。ステップ５１０にて、n組の鍵ペアの１つに含まれた秘密鍵に重畳されたデータ信号は、n組の鍵ペアの各々につき、処理サーバの送信装置（例えば送信装置２１４）によって電子的に送信されてよい。
【００５４】
一実施形態では、方法５００は次のことを含んでよい。処理サーバのメモリ（例えばメモリ２１６）に、転送公開鍵と転送秘密鍵とを含む転送鍵ペアを記憶するステップと、処理サーバの受信装置によって、共有公開鍵に重畳されたデータ信号をn個のコンピューティング装置（例えばコンピューティング装置１０４）から受信するステップと、処理サーバの生成モジュールによって、n個の共有秘密情報を生成するステップとであって、各共有秘密情報は、n個の共有公開鍵の共有公開鍵と前記転送秘密鍵と前記鍵ペア生成アルゴリズムとを用いて生成される、ステップと、処理サーバの暗号化モジュール（例えば暗号化モジュール２１０）によって、n組の鍵ペアの各々に含まれた秘密鍵を、暗号化アルゴリズムを用いて、n個の共有秘密情報で暗号化するステップであって、電子的に送信されたデータ信号に含まれて重畳された秘密鍵は暗号化されたそれぞれの秘密鍵である、ステップ。他の実施形態では方法５００は更に、処理サーバの送信装置によって、n個のコンピューティング装置へ、転送公開鍵に重畳されたデータ信号を電子的に送信することを含んでよい。
【００５５】
更に別の実施形態では、転送公開鍵に重畳されたデータ信号は、共有済み公開鍵に重畳されたデータ信号を受信する前に、n個のコンピューティング装置へ電子的に送信されてよい。更に別の実施形態では、転送公開鍵に重畳された各データ信号は、暗号化済み秘密鍵に重畳されたデータ信号と同一のデータ信号であってよい。更に別の実施形態では、送信されるデータ信号は、ブロックチェーンネットワーク（例えばブロックチェーンネットワーク１０６）内のノードへ電子的に送信されてよい。暗号化済み秘密鍵がトランザクション要求に含まれるとき、それは更に、それぞれの共有済み公開鍵に対応する宛先アドレスを含んでよい。
【００５６】
いくつかの実施形態では、鍵ペア生成アルゴリズムは、楕円曲線鍵共有方式であってよい。更に別の実施形態では、楕円曲線鍵共有方式は、楕円曲線ディフィー・ヘルマン鍵共有プロトコルであってよい。一実施形態では、鍵導出アルゴリズムはXOR論理演算の使用を含んでよい。いくつかの実施形態では方法５００は更に、処理サーバの送信装置によって、トランザクション要求に重畳されたデータ信号をブロックチェーン内のノードへ電子的に送信することを含んでよい。このとき当該トランザクション要求は、導出済みアクセス秘密鍵を用いて署名された宛先アドレスを少なくとも含む。
【００５７】
コンピュータシステムアーキテクチャ
図６は、コンピュータシステム６００を示す。そこには、本開示の実施形態又はその一部が、コンピュータ読取り可能なコードとして実装されてよい。例えば図１の処理サーバ１０２は、ハードウェア、ソフトウェア、ファームウェア、格納された命令を有する非一時的なコンピュータ読取り可能な媒体、又はこれらの組合せを用いてシステム６００内に実装されてよく、１以上のコンピュータシステム又は他の処理システムにおいて実装されてよい。ハードウェア、ソフトウェア及びこれらの任意の組合せは、図３乃至５の方法を実装するために使用されるモジュール及びコンポーネントを実現してよい。
【００５８】
プログラマブルロジックが使用される場合、そのようなロジックは、商業的に利用可能な処理プラットフォーム又は特定用途装置上で実行してよい。当業者は、開示された事項についての実施形態が、様々なコンピュータシステム構成で実行可能であることを理解する。当該システム構成は、マルチコアのマルチプロセッサシステムと、ミニコンピュータと、メインフレームコンピュータと、分散された機能でリンクされ又はクラスタ化されたコンピュータと、任意の装置へ仮想的に実装可能な汎用（pervasive）又はミニチュアのコンピュータとを含む。例えば少なくとも１つのプロセッサ装置及びメモリが、上記実施形態を実装するために使用されてよい。
【００５９】
本開示のプロセッサユニット又は装置は、単一のプロセッサ、複数のプロセッサ、又はこれらの組合せであってよい。プロセッサ装置は、１以上のプロセッサ「コア」を有してよい。本開示の「コンピュータプログラム媒体」、「非一時的なコンピュータ読取り可能な媒体」及び「コンピュータ使用可能な媒体」との用語は、概して、有形の媒体（例えば取外し可能な記憶ユニット６１８、取外し可能な記憶ユニット６２２及びハードディスクドライブ６１２にインストールされたハードディスク等）を指すために使用される。
【００６０】
本開示の様々な実施形態は、この例示的なコンピュータシステム６００に関して記述される。本開示を読んだ後、当業者にとって、他のコンピュータシステム及び／又はコンピュータアーキテクチャを用いて本開示をどのように実装するかは自明である。動作はシーケンシャルな処理として開示されるが、いくつかの動作は実際には、並行して、同時に及び／又は分散環境で、実行されてよい。このとき、プログラムコードは、単一プロセッサの又はマルチプロセッサのマシンによってアクセスするために、ローカルに又はリモートに格納された状態である。更に、いくつかの実施形態では、動作の順番は、開示される事項の趣旨を逸脱することなく再配置可能である。
【００６１】
プロセッサ装置６０４は、本開示の機能を実行するよう特別に構成された特定用途又は汎用プロセッサ装置であってよい。プロセッサ装置６０４は、通信インフラストラクチャ６０６（例えばバス、メッセージキュー、ネットワーク、マルチコアメッセージパススキーム等）へ接続されてよい。ネットワークは、本開示の機能を実行するのに適した任意のネットワークであってよく、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、無線ネットワーク（例えばＷｉｆｉ）、モバイル通信ネットワーク、衛星ネットワーク、インターネット、光ファイバ、同軸ケーブル、赤外線、無線周波数（ＲＦ）又はこれらの任意の組合せを含んでよい。他の適切なネットワークタイプ及び構成は、当業者にとって自明である。コンピュータシステム６００はまた、メインメモリ６０８（例えばランダムアクセスメモリ、読み取り専用メモリ等）を含んでよく、また、補助メモリ６１０を含んでよい。補助メモリ６１０は、ハードディスクドライブ６１２と取外し可能な記憶ドライブ６１４（例えばフロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリ等）とを含んでよい。
【００６２】
取外し可能な記憶ドライブ６１４は、周知の方法で、取外し可能な記憶ユニット６１８から読み取りを行ってもよいし、そこへ書き込みを行ってもよい。取外し可能な記憶ユニット６１８は、取外し可能な記憶ドライブ６１４によって読み取られ又は書き込まれることができる、取外し可能な記憶媒体を含んでよい。例えばもし取外し可能な記憶ドライブ６１４がフロッピーディスクドライブ又はユニバーサルシリアルバスポートであれば、取外し可能な記憶ユニット６１８はそれぞれ、フロッピーディスク又はポータブルフラッシュドライブであってよい。一実施形態では、取外し可能な記憶ユニット６１８は非一時的な読取り可能記録媒体であってよい。
【００６３】
いくつかの実施形態では、補助メモリ６１０は代替手段を含み、コンピュータプログラム又は他の命令がコンピュータシステム６００（例えば取外し可能な記憶ユニット６２２及びインタフェース６２０）にロードされることを可能にしてよい。そのような手段の例は、（例えばビデオゲームシステムで見られる）プログラムカートリッジ及びカートリッジインタフェース、取外し可能なメモリチップ（例えばＥＥＰＲＯＭ、ＰＲＯＭ等）、関連ソケット、他の取外し可能な記憶ユニット６２２及びインタフェース６２０を含んでよい。このことは当業者にとって自明である。
【００６４】
コンピュータシステム６００に（例えばメインメモリ６０８に及び／又は補助メモリ６１０に）格納されたデータは、任意のタイプの適切なコンピュータ読取り可能な媒体（例えば光ストレージ（コンパクトディスク、デジタル多目的ディスク、Blu-rayディスク等）又は磁気テープストレージ（例えばハードディスクドライブ））上に格納されてよい。データは任意のタイプの適切なデータベース構成（例えばリレーショナルデータベース、構造化照会言語（ＳＱＬ）データベース、分散データベース、オブジェクトデータベース等）で構成されてよい。適切な構成及びストレージタイプは、当業者にとって自明である。
【００６５】
コンピュータシステム６００はまた、通信インタフェース６２４を含んでよい。通信インタフェース６２４は、ソフトウェア及びデータが、コンピュータシステム６００と外部装置との間で送信されることを可能にしてよい。例示的な通信インタフェース６２４は、モデム、ネットワークインタフェース（例えばイーサネットカード）、通信ポート、ＰＣＭＣＩＡスロット及びカード等を含んでよい。通信インタフェース６２４を介して転送されるソフトウェア及びデータは信号形式であってよい。当該信号形式は、電子の、電磁気の、光の、又は当業者にとって自明な他の信号のものであってよい。信号は、通信パス６２６を介して伝わる。当該通信パス６２６は信号を伝送するよう構成され、電線、ケーブル、光ファイバ、電話線、携帯電話リンク、無線周波数リンク等を用いて実装されてよい。
【００６６】
コンピュータシステム６００は表示インタフェース６０２を更に含んでよい。表示インタフェース６０２は、データが、コンピュータシステム６００と外部ディスプレイ６３０との間で転送されることを可能にするよう構成されてよい。例示的な表示インタフェース６０２は、高精細度マルチメディアインタフェース（ＨＤＭＩ）、デジタルビジュアルインタフェース（ＤＶＩ）、ビデオグラフィックスアレイ（ＶＧＡ）等を含んでよい。ディスプレイ６３０は任意の適切なタイプのディスプレイであってよく、コンピュータシステム６００の表示インタフェース６０２を介して転送されるデータを表示する。ディスプレイ６３０は、ブラウン管（ＣＲＴ）ディスプレイ、液晶ディスプレイ（ＬＣＤ）、発光ダイオード（ＬＥＤ）ディスプレイ、静電容量方式タッチディスプレイ、薄膜トランジスタ（ＴＦＴ）ディスプレイ等を含む。
【００６７】
コンピュータプログラム媒体及びコンピュータ使用可能な媒体は、メモリ（例えばメインメモリ６０８及び補助メモリ６１０）を指してよく、半導体メモリ（ＤＲＡＭ等）であってよい。これらのコンピュータプログラム製品は、コンピュータシステム６００へソフトウェアを提供するための手段であってよい。コンピュータプログラム（例えばコンピュータ制御ロジック）は、メインメモリ６０８及び／又は補助メモリ６１０に格納されてよい。コンピュータプログラムはまた、通信インタフェース６２４を介して受信されてよい。そのようなコンピュータプログラムは、実行されると、コンピュータシステム６００が本開示の方法を実行することを可能にしてよい。特に、コンピュータプログラムは、実行されると、プロセッサ装置６０４が図３乃至５に示される本開示の方法を実行することを可能にしてよい。したがって、そのようなコンピュータプログラムはコンピュータシステム６００のコントローラを示す。本開示はソフトウェアを使用して実装される。当該ソフトウェアは、取外し可能な記憶ドライブ６１４、インタフェース６２０、及びハードディスクドライブ６１２又は通信インタフェース６２４を用いて、コンピュータプログラム製品に格納されてコンピュータシステム６００へロードされてよい。
【００６８】
プロセッサ装置６０４は、コンピュータシステム６００の機能を実行するよう構成される１以上のモジュール又はエンジンを含んでよい。各モジュール又はエンジンは、ハードウェアを用いて実装されてよく、いくつかの実施形態ではソフトウェア（例えばこれは、メインメモリ６０８又は補助メモリ６１０に格納されるプログラムコード又はプログラムに対応する）を用いてよい。そのような実施形態では、プログラムコードは、コンピュータシステム８００のハードウェアによる実行前に、プロセッサ装置６０４によって（例えばモジュール又はエンジンをコンパイルすることによって）コンパイルされてよい。例えばプログラムコードは、低レベルの言語へと解釈されるプログラミング言語で記述されたソースコード（例えばアセンブリ言語又は機械コード）であってよい。これは、プロセッサ装置６０４及び／又はコンピュータシステム６００の任意の追加のハードウェア構成要素によって実行するためのものである。コンパイル処理は、語彙解析と、前処理と、解析と、意味解析と、文法指向の翻訳と、コード生成と、コード最適化と、コンピュータシステム６００の制御のためにプログラムコードを低レベルの言語へ解釈して本開示の機能を実行するのに適した任意の他の技術との使用を含んでよい。そのような処理によってコンピュータシステム６００が、上記の機能を実行するために一意にプログラムされた特別構成コンピュータシステム６００になることは当業者にとって自明である。
【００６９】
本開示に一貫する技術は、とりわけ、データへのアクセスのために使用される複数の暗号鍵を配布するシステム及び方法を提供する。本開示のシステム及び方法の様々な例示的実施形態が上述されるが、それらは限定目的でなく例示目的のみで示されることを理解されたい。それは徹底したものでなく、本開示を、開示された形態そのものへ限定しない。上記の教示に照らして修正例及び変形例が可能である。広がり又は範囲を逸脱すること無く、本開示の実装から修正例及び変形例が得られてよい。
【図１】
2019507539.tif 000003
【図２】
2019507539.tif 000004
【図３】
2019507539.tif 000005
【図４】
2019507539.tif 000006
【図５】
2019507539.tif 000007
【図６】
2019507539.tif 000008
【国際調査報告】
2019507539.tif 000009
2019507539.tif 000010
2019507539.tif 000011