(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-24
(45)【発行日】2022-04-01
(54)【発明の名称】楕円曲線暗号法による分散暗号鍵の提供及び記憶のための方法及びシステム
(51)【国際特許分類】
H04L 9/32 20060101AFI20220325BHJP
H04L 9/08 20060101ALI20220325BHJP
【FI】
H04L9/32 200Z
H04L9/08 B
H04L9/08 F
(21)【出願番号】P 2018538143
(86)(22)【出願日】2017-01-06
(86)【国際出願番号】 US2017012437
(87)【国際公開番号】W WO2017127238
(87)【国際公開日】2017-07-27
【審査請求日】2018-09-19
【審判番号】
【審判請求日】2020-07-21
(32)【優先日】2016-01-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500557864
【氏名又は名称】マスターカード インターナシヨナル インコーポレーテツド
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100192924
【氏名又は名称】石井 裕充
(72)【発明者】
【氏名】スティーブン チャールズ デイビス
【合議体】
【審判長】石井 茂和
【審判官】篠原 功一
【審判官】山澤 宏
(56)【参考文献】
【文献】特開平11-239124(JP,A)
【文献】特開2000-172174(JP,A)
【文献】特開2008-21164(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
H04L 9/00
(57)【特許請求の範囲】
【請求項1】
データへアクセスするために使用される複数の暗号鍵を
楕円曲線鍵共有方式を使用して配布する方法において、
処理サーバの受信装置によって、アクセス鍵要求を受信するステップであって、前記アクセス鍵要求は要求される鍵についての2より大きい数nを少なくとも含む、ステップと、
前記処理サーバによって、
楕円暗号法を用いた秘密鍵公開鍵ペア生成アルゴリズムを用いてn組の鍵ペアを生成するステッ
プと、
前記処理サーバによって、前記n組の鍵ペアの各々に含まれる前記秘密鍵を鍵導出アルゴリズムへ適用することによって、アクセス秘密鍵を導出するステップであって、前記鍵導出アルゴリズムはXOR論理演算の少なくとも1つである、ステップと、
前記処理サーバによって、前記鍵ペア生成アルゴリズムを用いて、前記導出されたアクセス秘密鍵に対応するアクセス公開鍵を生成するステップと、
前記処理サーバの送信装置によって、前記n組の鍵ペアの各々について、前記n組の鍵ペアのうちの1つに含まれる秘密鍵を電子的に送信するステップ
であって、当該ステップは、
前記処理サーバのメモリに、転送公開鍵と転送秘密鍵とを含む転送鍵ペアを記憶するステップと、
前記処理サーバの前記受信装置によって、共有公開鍵をn個のコンピューティング装置の各々から受信するステップと、
前記処理サーバによって、n個の共有秘密情報を生成するステップであって、
前記n個の共有秘密情報の各々は前記n個のコンピューティング装置の1つに関連付けられ、各共有秘密情報は、前記n個の公開鍵の共有公開鍵と前記転送秘密鍵と前記鍵ペア生成アルゴリズムとを用いて生成される、ステップと、
前記処理サーバによって、前記n組の鍵ペアの各々に含まれた前記秘密鍵を、暗号化アルゴリズムを用いて、前記n個の共有秘密情報の1つで暗号化す
るステップとを含み、
前記秘密鍵は、
前記n個のコンピューティング装置のうち対応する1つで生成される共有秘密情報を用いて暗号化されて、1つのコンピューティング装置に、他のn-1個のコンピューティング装置から転送され、前記1つのコンピューティング装置において、n個の前記秘密鍵に対して前記鍵導出アルゴリズムを適用することによって、アクセス秘密鍵の導出に用いられる、方法。
【請求項2】
請求項1に記載の方法において、更に、
前記処理サーバの前記送信装置によって、前記n個のコンピューティング装置へ、前記転送公開鍵を電子的に送信するステップを含む方法。
【請求項3】
請求項2に記載の方法において、前記転送公開鍵は、前記共有公開鍵を受信する前に、前記n個のコンピューティング装置へ電子的に送信される、方法。
【請求項4】
請求項2に記載の方法において、前記転送公開鍵は、暗号化済み秘密鍵に重畳される、方法。
【請求項5】
請求項1に記載の方法において、前記楕円曲線鍵共有方式は、楕円曲線ディフィー・ヘルマン鍵共有プロトコルである、方法。
【請求項6】
請求項1に記載の方法において、更に、
前記処理サーバの前記送信装置によって、トランザクション要求をブロックチェーン内のノードへ電子的に送信するステップであって、前記トランザクション要求は、前記導出されたアクセス秘密鍵を用いて署名された宛先アドレスを少なくとも含む、ステップを含む、方法。
【請求項7】
データへアクセスするために使用される複数の暗号鍵を
楕円曲線鍵共有方式を使用して配布するシステムにおいて、
処理サーバの送信装置と、
アクセス鍵要求を受信するよう構成された、前記処理サーバの受信装置であって、前記アクセス鍵要求は要求される鍵についての2より大きい数nを少なくとも含む、受信装置と、
楕円暗号法を用いた秘密鍵公開鍵ペア生成アルゴリズムを用いてn組の鍵ペアを生成するこ
とと、
前記n組の鍵ペアの各々に含まれる前記秘密鍵を鍵導出アルゴリズムへ適用することによって、アクセス秘密鍵を導出することであって、前記鍵導出アルゴリズムはXOR論理演算の少なくとも1つであることと、
を実行するよう構成された前記処理サーバのプロセッサと、を含み、
前記処理サーバの生成モジュールは更に、前記鍵ペア生成アルゴリズムを用いて、前記導出されたアクセス秘密鍵に対応するアクセス公開鍵を生成するよう構成され、
前記処理サーバの前記送信装置は、前記n組の鍵ペアの各々について、前記n組の鍵ペアのうちの1つに含まれる秘密鍵を電子的に送信するよう構成され、
前記送信のために前記処理サーバは、
転送公開鍵と転送秘密鍵とを含む転送鍵ペアを記憶するよう構成される、前記処理サーバのメモリを更に含み、
前記処理サーバの前記受信装置は、共有公開鍵をn個のコンピューティング装置の各々から受信するよう更に構成され、
前記処理サーバの前記プロセッサは、n個の共有秘密情報を生成するよう更に構成され、
前記n個の共有秘密情報の各々は前記n個のコンピューティング装置の1つに関連付けられ、各共有秘密情報は、前記n個の公開鍵の共有公開鍵と前記転送秘密鍵と前記鍵ペア生成アルゴリズムとを用いて生成され、
前記処理サーバの前記プロセッサは、前記n組の鍵ペアの各々に含まれた前記秘密鍵を、暗号化アルゴリズムを用いて、前記n個の共有秘密情報の1つで暗号化するよう構成され、
前記秘密鍵は、前記n個のコンピューティング装置のうち対応する1つで生成される共有秘密情報を用いて暗号化されて、1つのコンピューティング装置に、他のn-1個のコンピューティング装置から転送され、前記1つのコンピューティング装置において、n個の前記秘密鍵に対して前記鍵導出アルゴリズムを適用することによって、アクセス秘密鍵の導出に用いられる、システム。
【請求項8】
請求項
7に記載のシステムにおいて、前記処理サーバの前記送信装置は更に、前記転送公開鍵を、前記n個のコンピューティング装置へ電子的に送信するよう構成される、システム。
【請求項9】
請求項
8に記載のシステムにおいて、前記転送公開鍵は、前記共有公開鍵を受信する前に、前記n個のコンピューティング装置へ電子的に送信される、システム。
【請求項10】
請求項
8に記載のシステムにおいて、前記転送公開鍵は、暗号化済み秘密鍵に重畳される、システム。
【請求項11】
請求項
7に記載のシステムにおいて、前記楕円曲線鍵共有方式は、楕円曲線ディフィー・ヘルマン鍵共有プロトコルである、システム。
【請求項12】
請求項
7に記載のシステムにおいて、前記処理サーバの前記送信装置は更に、トランザクション要求をブロックチェーン内のノードへ電子的に送信するよう構成され、前記トランザクション要求は、前記導出されたアクセス秘密鍵を用いて署名された宛先アドレスを少なくとも含む、システム。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本願は、米国特許出願第15/001,775号(2016年1月20日出願)の優先権を主張するものであり、当該出願の開示全体をここに参照のために取り込む。
【技術分野】
【0002】
本開示はデータへアクセスするために使用される複数の暗号鍵を配布することに関し、特に、楕円曲線暗号法を用いて、データへアクセスするための単一の鍵を取得するために使用される複数の暗号鍵を安全に配布し、暗号鍵受信者によるデータ所有権の交渉を必要とすることに関する。
【背景技術】
【0003】
コンピューティング装置の数が数十億ある世界では、データは絶えず転送されている。データは一方のコンピューティング装置から他方へ(1つのコンピューティング装置から多くの他のコンピューティング装置へ、又は多くのコンピューティング装置から単一のものへ)転送される。多くの実施形態では、データ転送の安全性は、データが転送される場所と同じくらい重要である。例えばもしデータが適切に安全化され、意図された当事者だけがそのデータを閲覧できれば、データは、当該意図された当事者による容易なアクセスのために公衆に利用可能である。高いレベルの安全性があれば、データは、公衆からのアクセス性にもかかわらず、意図された当事者以外の任意のエンティティから安全である。結果的に、公衆チャネルを介して転送されるデータの安全性を確保することは非常に重要である。
【0004】
しかし、意図されたエンティティの群にとってデータが利用可能な場合、そのような期待をすることは非常に困難であることがある。例えば、もし当事者が、公衆に利用可能なデータを、異なる4人の群にとってアクセス可能にしたいとき、当事者はそのデータを暗号化して、異なる4人の各々へ、データへアクセスするのに適切な鍵を提供してよい。そのような場合、4つの鍵のうち任意のものは、転送されたデータを損なう。これにより状況は全く安全でない。高いレベルの安全性を維持するために、データへアクセスするための単一の鍵だけを配布することが、当事者の最大の関心事である。しかし、4人の群は、どの人が単一の鍵を受信するのかを識別できないことがあるし、そのような識別は時間がかかり又は当事者にとって不便であり得る。
【0005】
したがって、単一のアクセス鍵を用いることによって複数のエンティティによるアクセス性を得るデータ転送についての技術手段が必要である。更に転送元当事者がデータを複数エンティティの各々へ提供し、転送元当事者による参加無しにエンティティによる所有権の交渉を行う技術手段が必要である。そのような場合、データは、損失の可能性は最小の状態で安全に転送され、単一のエンティティ(これは転送元当事者による追加の参加を要求せずに複数のエンティティの中から選択可能である)にとってのみアクセスは可能である。
【発明の概要】
【0006】
本開示は、データへのアクセスにおいて使用される複数の暗号鍵を配布するシステム及び方法を記述する。
【0007】
データへアクセスするために使用される複数の暗号鍵を配布する方法は、
処理サーバの受信装置によって、アクセス鍵要求に重畳されたデータ信号を受信するステップであって、前記アクセス鍵要求は要求される鍵についての1より大きい数nを少なくとも含む、ステップと、
前記処理サーバの生成モジュールによって、鍵ペア生成アルゴリズムを用いてn組の鍵ペアを生成するステップであって、各鍵ペアは秘密鍵と公開鍵とを含む、ステップと、
前記処理サーバの導出モジュールによって、前記n組の鍵ペアの各々に含まれる前記秘密鍵を鍵導出アルゴリズムへ適用することによって、アクセス秘密鍵を導出するステップと、
前記処理サーバの前記生成モジュールによって、前記鍵ペア生成アルゴリズムを用いて、前記導出されたアクセス秘密鍵に対応するアクセス公開鍵を生成するステップと、
前記処理サーバの送信装置によって、前記n組の鍵ペアの各々について、前記n組の鍵ペアのうちの1つに含まれる秘密鍵に重畳されたデータ信号を電子的に送信するステップと、を含む。
【0008】
データへアクセスするために使用される複数の暗号鍵を配布するシステムは、
処理サーバの送信装置と、
アクセス鍵要求に重畳されたデータ信号を受信するよう構成された、前記処理サーバの受信装置であって、前記アクセス鍵要求は要求される鍵の数nを少なくとも含む、受信装置と、
鍵ペア生成アルゴリズムを用いてn組の鍵ペアを生成するよう構成された、前記処理サーバの生成モジュールであって、各鍵ペアは秘密鍵と公開鍵とを含む、生成モジュールと、
前記n組の鍵ペアの各々に含まれる前記秘密鍵を鍵導出アルゴリズムへ適用することによって、アクセス秘密鍵を導出するよう構成された、前記処理サーバの導出モジュールと、を含み、
前記処理サーバの前記生成モジュールは更に、前記鍵ペア生成アルゴリズムを用いて、前記導出されたアクセス秘密鍵に対応するアクセス公開鍵を生成するよう構成され、
前記処理サーバの前記送信装置は、前記n組の鍵ペアの各々について、前記n組の鍵ペアのうちの1つに含まれる秘密鍵に重畳されたデータ信号を電子的に送信するよう構成される。
【図面の簡単な説明】
【0009】
本開示の範囲は、添付の図面と共に解釈されると、例示的な実施形態についての下記の詳細な記載から最も良く理解される。図面には次の図が含まれる。
【0010】
【
図1】
図1は、本開示の実施形態による、報酬所有権の交渉のために複数のエンティティへ鍵を配布する高いレベルのシステム構造を示す。
【
図2】
図2は、本開示の実施形態による、報酬所有権の交渉のために複数のエンティティへ暗号鍵を配布する高い、
図1の処理サーバを示す。
【
図3】
図3は、例示的実施形態による、複数エンティティによる所有権の交渉のためにデータを安全化する
図2の処理サーバによるアクセス鍵の生成を示す。
【
図4】
図4は、例示的実施形態による、楕円曲線暗号法を用いてアクセス鍵を転送する処理フローを示すフローチャートである。
【
図5】
図5は、例示的実施形態による、データへアクセスするために使用される複数の暗号鍵を配布する例示的な方法を示すフローチャートである。
【
図6】
図6は、例示的実施形態による、コンピュータシステムアーキテクチャを示す機能ブロック図である。
【0011】
本開示の更なる応用分野は、下記の詳細な説明から自明である。例示的実施形態の詳細な説明は、例示目的のみを意図しており、本開示の範囲を必要的に制限することを意図しない。
【発明を実施するための形態】
【0012】
用語解説
ブロックチェーン:ブロックチェーンに関連付けられた1以上の基準又は慣習にしたがう全てのトランザクションの台帳である。1以上のコンピュータ装置は、ブロックチェーンネットワークを含んでよく、これはブロックチェーンにおけるブロックの一部としてトランザクションを処理及び記録するよう構成されてよい。一旦ブロックが完成すると、当該ブロックはブロックチェーンへ追加され、したがってトランザクション記録が更新される。多くの実施形態では、ブロックチェーンは時系列順のトランザクションの台帳であってよいし、ブロックチェーンネットワークによる使用に適した他の順番で提示されてもよい。いくつかの実施形態では、ブロックチェーンは通貨トランザクションの台帳であってよい。ブロックチェーンで記録されたトランザクションは、宛先アドレスと通貨金額とを含んでよい。これによりブロックチェーンは、どれほどの通貨が特定のアドレスへ帰属するかを記録する。そのような構成では、ブロックチェーンは、ブロックチェーンを基礎としたデジタル通貨を用いてよい。これは、それぞれのブロックチェーンに対し特有であってよい。いくつかの実施形態では、追加情報(例えばソースアドレス、タイムスタンプ等)が捕捉されてよい。いくつかの実施形態では、ブロックチェーンはまた、追加の、又はいくつかの実施形態では、任意のデータを含んでよい。これは、プルーフオブワークを通るブロックチェーンネットワークによって、及び/又は、それに関連付けられた他の任意の適切な検証技術によって、確認及び有効化される。いくつかの実施形態では、そのようなデータはトランザクションの一部としてブロックチェーンに含まれてよい(例えばトランザクションデータに付加される追加データに含まれる)。いくつかの実施形態では、そのようなデータをブロックチェーンに含めることは、トランザクションを構成してよい。そのような実施形態では、ブロックチェーンは特敵のデジタル通貨、仮想通貨、不換通貨又は他の種別の通貨に直接的に関連付けられなくてよい。ブロックチェーンは私的であってよい。このとき承認されたシステム又は装置だけがブロックチェーンへアクセス可能であってよい。または、ブロックチェーンが任意の装置又はシステムからアクセス可能であるときには公開されてよい。いずれの場合も、装置又はシステムがブロックチェーンへトランザクションを追加する機能は制限されてよい。
【0013】
楕円曲線暗号法による暗号鍵配布システム
図1は、データの安全転送において使用される楕円曲線暗号法を用いて暗号鍵を転送するシステム100を示す。
【0014】
システム100は処理サーバ102を含んでよい。処理サーバ102は、下記で詳述されるが、複数のコンピューティング装置104によるアクセスにおいて使用される楕円曲線暗号法を用いた配布のために、複数の暗号鍵を生成するよう構成されてよい。このことは、本開示の機能(これは汎用目的コンピュータ上では実行不可能である)を実行するよう特別にプログラムされたコンピュータ上での処理を要求するように実行され、また、精神的な処理やペン及び紙を用いた実際的な方法で実行されることができないので、データの安全転送における報酬所有権を交渉することにおいて技術的解決手段を提供する。処理サーバ102はアクセス鍵要求を受信する。これは、データのアクセスにおいて使用するために、コンピューティング装置104への配布用の複数の鍵を要求してよい。アクセス鍵要求は外部装置(例えば他のコンピューティング装置又はシステム)から、例えばその装置又はシステムから適切な通信ネットワーク(例えばローカルエリアネットワーク、ワイドエリアネットワーク、無線周波数、Bluetooth、近距離通信、インターネット等)を介した電子的送信によって受信されてよいし、処理サーバ102とインタフェース接続した1以上の入力装置(これは処理サーバ102のユーザによってアクセス可能である)を介して受信されてよい。アクセス鍵要求はコンピューティング装置104(これについてアクセス鍵が要求される)の数nを特定してよい。
図1に示す例では、アクセス鍵要求は3つのアクセス鍵についての要求であってよい。
【0015】
処理サーバ102は次いで、要求された鍵ペアの数nを生成してよい。各鍵ペアは秘密鍵と公開鍵と(これらは「報酬」秘密鍵と公開鍵とを含む「報酬」鍵ペアとして本開示で称される)を含んでよい。処理サーバ102は、要求された数の鍵ペアの生成において、適切な鍵ペア生成アルゴリズムを用いてよい。
【0016】
数nの報酬鍵ペアが生成されると、処理サーバ102は報酬秘密鍵をn組の報酬鍵ペアの各々から鍵導出アルゴリズムへ適用することによってアクセス秘密鍵を取得してよい。いくつかの実施形態では、導出アルゴリズムはXOR論理演算の使用を含んでよい。例示的実施形態では、鍵導出アルゴリズムは、アクセス秘密鍵の導出において報酬秘密鍵の順序付けや配列における相違が、同一のアクセス秘密鍵をもたらすようなものであってよい。そのような実施形態では、報酬秘密鍵の各々を所有する任意のエンティティであって使用される鍵導出アルゴリズムの知識を有しているエンティティは、報酬秘密鍵の順序又は配列にかかわらずアクセス秘密鍵を複製可能であってよい。
【0017】
処理サーバ102はまた、導出されたアクセスに対応するアクセス公開鍵を生成するよう構成される。アクセス公開鍵は、鍵ペア生成アルゴリズムを使用して生成されてよい。これは、報酬鍵ペアを生成するのに使用されたのと同一の鍵ペア生成アルゴリズムであってよい。
【0018】
処理サーバ102は、導出されたアクセス秘密鍵を用いて、データへのアクセスを制限してよい。秘密鍵を用いたデータへのアクセス制限のための任意の適切な方法が、使用されてよい。例えば一実施形態ではデータは、アクセス秘密鍵と適切な暗号アルゴリズムとを用いて暗号化されてよい。他の実施形態では、アクセスが制限される先のデータは、ブロックチェーンネットワーク106を介して利用可能なブロックチェーン通貨の金額であってよい。そのような実施形態では、アクセス公開鍵が、ブロックチェーン通貨の金額につき、宛先アドレスを生成するのに使用されてよい。このとき、アクセス秘密鍵は、宛先アドレスを署名し、それに関連付けられたブロックチェーン通貨へのアクセスを提供するのに使用される。ブロックチェーンネットワーク106を用いたブロックチェーン通貨の転送及びアクセスのための鍵ペアの使用は、当業者にとって自明である。
【0019】
処理サーバ102が、アクセス秘密鍵を用いて所望のデータへのアクセスを制限すると、処理サーバ102は報酬秘密鍵をコンピューティング装置104の各々へ電子的に送信してよい。このため、コンピューティング装置104の各々は異なる報酬秘密鍵を受信する。例えば
図1に示す例では、処理サーバ102は報酬秘密鍵Ka、Kb、及びKcを生成してよい。これらはそれぞれ、コンピューティング装置104a、104b、及び104cへ電子的に送信されてよい。いくつかの実施形態では、報酬秘密鍵は、インターネット又は他の適切な通信ネットワークを用いてそれぞれのコンピューティング装置104へ電子的に送信されるデータ信号において、重畳されてよい。
【0020】
例示的実施形態では、報酬秘密鍵は、共有秘密情報を使用した送信の前に暗号化されてよい。そのような実施形態では、処理サーバ102とコンピューティング装置104の各々とは、共有秘密情報による報酬秘密鍵の転送、暗号化及び復号化において使用するために鍵ペアを生成してよい。処理サーバ102とコンピューティング装置104とはそれぞれ、同一の鍵ペア生成アルゴリズムを用いて鍵ペアを生成してよい。鍵ペア生成アルゴリズムを用いて、処理サーバ102は、「転送」秘密鍵と公開鍵とを含む「転送」鍵ペアとして称される鍵ペアを生成してよい。各コンピューティング装置104は、鍵ペア生成アルゴリズムを用いて、「装置」秘密鍵及び公開鍵を含む「装置」鍵ペアとして称される鍵ペアを生成してよい。各コンピューティング装置104は、適切な通信手段を用いて、処理サーバ102へ、関連装置公開鍵を電子的に送信してよい。処理サーバ102は、各コンピューティング装置104へ、転送公開鍵を電子的に送信してよい。いくつかの実施形態では、転送公開鍵は、暗号化された報酬秘密鍵と共に(すなわち、同一の送信又は付随する送信において)送信されてよい。
【0021】
処理サーバ102がコンピューティング装置104から装置公開鍵を受信した後、処理サーバ102は共有秘密情報を生成してよい。共有秘密情報は、それぞれの鍵の生成において使用された鍵ペア生成アルゴリズムに関連する転送秘密鍵と装置公開鍵とを用いて生成されてよい。共有秘密情報は、第1の鍵ペアの秘密鍵及び第2の鍵ペアの公開鍵と共に生成されるとき、又は、第1の鍵ペアの公開鍵及び第2の鍵ペアの秘密鍵と共に生成されるときのものと同等の秘密情報であってよい。例えば例示的実施形態では、処理サーバ102は、処理サーバ102によって生成された転送秘密鍵とコンピューティング装置104aから受信された装置公開鍵とを用いて、秘密鍵Kaをコンピューティング装置104aへ伝送する際に使用される共有秘密情報を生成してよい。コンピューティング装置104aは、処理サーバ102から受信された転送公開鍵と、コンピューティング装置104aによって生成された装置秘密鍵とを用いて、同等の共有秘密情報を生成してよい。
【0022】
処理サーバ102がコンピューティング装置104に関連付けられた共有秘密情報を(例えばその特定のコンピューティング装置の装置公開鍵を用いて)生成すると、処理サーバ102は、関連共有秘密情報を用いて、そのコンピューティング装置104へ送信される報酬秘密鍵を暗号化してよい。任意の適切な暗号化アルゴリズム(例えばAES暗号化アルゴリズム)が使用されてよい。暗号化された報酬秘密鍵は次いで、任意の適切な通信手段を用いて、関連付けられたコンピューティング装置104へ電子的に送信されてよい。いくつかの実施形態では、処理サーバ102は、暗号化された報酬秘密鍵を伝送するために使用される電子通信に、転送公開鍵を含めてよい。
【0023】
各コンピューティング装置104は次いで、受信された暗号化済み報酬秘密鍵を復号化する際に使用するための共有秘密情報を生成してよい。共有秘密情報は処理サーバ102によって電子的に送信される転送公開鍵と、コンピューティング装置の生成済み装置秘密鍵とを用いて、生成されてよい。共有秘密情報は、対応する鍵ペアを生成する際にコンピューティング装置104と処理サーバ102とによって使用される鍵ペア生成アルゴリズムを用いて生成されてよい。コンピューティング装置104は共有秘密情報を用いて、処理サーバ102によって使用される適切な暗号化アルゴリズムを用いて報酬秘密鍵を復号化してよい。例えばコンピューティング装置104は、共有秘密情報を用いて、報酬秘密鍵の復号化において、AES256アルゴリズムを用いてよい。
【0024】
各コンピューティング装置104が、自身の報酬秘密鍵(適用される場合)を受信及び復号化すると、コンピューティング装置104は報酬秘密鍵の各々の所有について交渉してよい。いくつかの実施形態では、コンピューティング装置104に関連付けられたユーザは、コンピューティング装置104を使用すること無く、報酬秘密鍵の所有について交渉してよい。例えば例示された例では、コンピューティング装置104の3人のユーザはオフラインで交渉して、コンピューティング装置104aのユーザが報酬秘密鍵の各々を収集することを合意してよい。そのような実施形態では、コンピューティング装置104b及びコンピューティング装置104cは、適切な通信手段を用いて、コンピューティング装置104aへ報酬秘密鍵を電子的に送信してよい。
【0025】
いくつかの実施形態では、報酬秘密鍵は、共有秘密情報を使用してコンピューティング装置104間で転送されてよい。そのような実施形態では、コンピューティング装置104は、転送用に、報酬秘密鍵を暗号化するための共有秘密情報を生成する際に使用する関連装置公開鍵を交換してよい。例えばコンピューティング装置104bは共有秘密情報を生成して、コンピューティング装置104bによって生成された装置秘密鍵とコンピューティング装置104aによって生成された装置公開鍵とを用いて、報酬秘密鍵Kbを暗号化してよく、共有秘密情報を用いて報酬秘密鍵Kbを暗号化してよい。コンピューティング装置104bは、適切な通信手段を用いて、コンピューティング装置104aへ暗号化済み報酬秘密鍵Kbを電子的に送信してよい。コンピューティング装置104aは、コンピューティング装置104aによって生成された装置秘密鍵と、コンピューティング装置104bによって生成された装置公開鍵とを用いて、共有秘密情報を生成して、報酬秘密鍵Kbを復号化してよい。コンピューティング装置104a及びコンピューティング装置104cは、コンピューティング装置104aについての処理を繰り返して、報酬秘密鍵Kcを受信及び復号化してよい。
【0026】
コンピューティング装置104が報酬秘密鍵の各々を所有すると、当該コンピューティング装置104は、導出において処理サーバ102によって使用される鍵導出アルゴリズムを用いて、アクセス秘密鍵を導出してよい。コンピューティング装置104は、アクセス秘密鍵を用いて、転送されるデータへアクセスしてよい。例えばもしデータが、ブロックチェーンネットワーク106に関連付けられたブロックチェーン通貨であれば、コンピューティング装置104はアクセス秘密鍵を署名として用いて、アクセス公開鍵を用いて生成された宛先アドレスへ転送されたブロックチェーン通貨へ、アクセスしてよい。
【0027】
本開示の方法及びシステムは、複数のエンティティへ配布(分散)された複数の鍵によって導出される必要がある単一の秘密鍵を用いてアクセス可能なデータの転送を可能にする。複数エンティティへ配布(分散)された鍵を用いることによって、データは、複数エンティティによる交渉が実行されるまで安全なままであってよい。このとき、転送元当事者による参加は要求されない。更にアクセス鍵は、各エンティティへ配布された鍵を用いて導出されるので、データは単一の鍵を使用するときより非常に高いレベルの安全性を有する。これは、特にデータが公衆に利用可能だがアクセス不可能な場合に(例えばブロックチェーンネットワーク106内)、データについて一層強い保護を提供する。仮に報酬秘密鍵が転送時の高いレベルの保護を有していても、楕円曲線暗号法を使用することによって、一層強い保護が提供される。したがって本開示の方法及びシステムは、データ転送と、転送されるデータのアクセスにおいて使用される鍵の転送との両方において、一層の保護を提供する。
【0028】
本開示の方法及びシステムを使用することはまた、安全なデータへアクセスするために使用される暗号鍵を記憶する際に有益である。例えばエンティティは安全に記憶されるデータを有しており、本開示の方法を用いて単一の秘密鍵を生成してデータを暗号化する。このとき単一の秘密鍵を導出するのに使用される報酬秘密鍵は、複数の異なるコンピューティングシステムへ配布され、単一の秘密鍵は捨てられる。そのような場合、もしコンピューティングシステムの1つについての暗号鍵ストアが損なわれても、データは依然として安全である。というのも、報酬秘密鍵へのアクセスを得るエンティティは、データを暗号化するために使用される単一の秘密鍵を導出できないからである。損なわれた秘密鍵は、他のコンピューティングシステムへ提供されてよく、単一の秘密鍵はそこから導出される、報酬秘密鍵の新たなセットを生成する処理が繰り返される。そのような場合、任意の暗号鍵ストアが損なわれたときはいつでも、データは安全なままである。したがって本開示の方法及びシステムは、安全な分散暗号鍵ストレージを提供するのに有益である。
【0029】
処理サーバ
図2は、システム100の処理サーバ102の実施形態を示す。当業者にとって、
図2に示す処理サーバ102の実施形態が、例示目的のみで提供されることと、本開示の機能を実行するのに適した、処理サーバ102の全ての可能な構成を徹底的に示したものでないことは自明である。例えば
図6に示され下記で一層詳細に説明されるコンピュータシステム600が、処理サーバ102の適切な構成であってよい。
【0030】
処理サーバ102は受信装置202を含んでよい。受信装置202は1以上のネットワークプロトコルを介して1以上のネットワーク上でデータを受信するよう構成されてよい。いくつかの実施形態では受信装置202は、データを、コンピューティング装置104、ブロックチェーンネットワーク106、及び他のエンティティから適切な通信ネットワーク(例えばローカルエリアネットワーク、ワイドエリアネットワーク、無線周波数ネットワーク、インターネット等)を介して受信するよう構成されてよい。いくつかの実施形態では、受信装置202は複数の装置(例えば、異なるネットワーク上でデータを受信する異なる受信装置(例えば近距離通信でデータを受信する第1の受信装置と、インターネット上でデータを受信する第2の受信装置))を含んでよい。受信装置202は電子的に送信されるデータ信号を受信してよい。このとき、受信装置202によるデータ信号の受信によって、データはデータ信号上に重畳され、復号、解析(パース)、読取り、又は取得されてよい。いくつかの実施形態では、受信装置202は、受信されたデータ信号を解析して、そこに重ねられたデータを取得するための解析モジュールを含んでよい。例えば受信装置202は、受信されたデータ信号を受信し、処理装置によって実行される機能のための利用可能な入力へと変換して本開示の方法及びシステムを実行するよう構成される解析プログラムを含んでよい。
【0031】
受信装置202は、コンピューティング装置104によって電子的に送信されたデータ信号を受信するよう構成されてよい。これは、本開示の機能を実行する際に使用される。コンピューティング装置104によって電子的に送信されたデータ信号は、例えば共有秘密情報を生成する際に使用するために、装置公開鍵に重畳されてよい。受信装置202はまた、追加の装置及びシステムから(例えばブロックチェーンネットワーク106及び/又はデータ(例えばブロックチェーン通貨)の転送の際に使用するためにそれに関連付けられたノードから)、ブロックチェーンネットワーク106(例えばアクセス鍵要求を提出する外部コンピューティング装置)を介して、データ信号を受信してよい。いくつかの実施形態では、受信装置202は、コンピューティング装置104からデータへアクセスして報酬秘密鍵の1つを受信することについて、n個の報酬秘密鍵についてのアクセス鍵要求に重畳されたデータ信号を受信してよい。
【0032】
処理サーバ102はまた通信モジュール204を含んでよい。通信モジュール204は、本開示の機能を実行する際に使用するために、モジュール、エンジン、データベース、メモリ、及び処理サーバ102の他の構成要素の間でデータを転送するよう構成されてよい。通信モジュール204は1以上の通信種別を含んでよく、コンピューティング装置内での通信のために様々な通信方法を使用してよい。例えば通信モジュール204はバス、接続ピンコネクタ、ケーブル等を含んでよい。いくつかの実施形態では、通信モジュール204はまた、処理サーバ102の内部構成要素と処理サーバ102の外部構成要素(例えば外部で接続されたデータベース、表示装置、入力装置等)との間で通信するよう構成されてよい。処理サーバ102はまた、処理装置を含んでよい。処理装置は本開示の処理サーバ102の機能を実行するよう構成されてよい。このことは、当業者にとって自明である。いくつかの実施形態では、処理装置は、処理装置の1以上の機能を実行するよう特別に構成された複数のエンジン及び/又はモジュール(例えば問い合わせモジュール218、生成モジュール206、導出モジュール208、暗号化モジュール210、復号化モジュール212等)を含んでよい。本開示のように、「モジュール」との用語は、入力を受信し、当該入力を使用して1以上の処理を実行し、且つ出力を提供するよう特別にプログラムされたソフトウェア又はハードウェアであってよい。様々なモジュールによって実行される入力、出力及び処理は、本開示に基づいて、当業者にとって自明である。
【0033】
処理サーバ102はまた問い合わせモジュール218を含んでよい。問い合わせモジュール218はデータベース上のクエリを実行して情報を識別するよう構成されてよい。問い合わせモジュール218は1以上のデータ値又はクエリ列を受信してよく、それに基づいて、示されたデータベース(例えばメモリ216)上でクエリ列を実行して、そこに格納された情報を識別してよい。問い合わせモジュール218は次いで、識別された情報を、必要に応じて処理サーバ102の適切なエンジン又はモジュールへ出力してよい。例えば問い合わせモジュール218はメモリ216上でクエリを実行して、本開示の方法で使用するために、コンピューティング装置104から受信した又は処理サーバ102によって生成された1以上の鍵を識別してよい。
【0034】
処理サーバ102はまた生成モジュール206を含んでよい。生成モジュール206は鍵ペアと共有秘密情報とを生成するよう構成されてよい。生成モジュール206は要求を入力値として受信してよい。これは、鍵ペア又は共有秘密情報の生成を要求し、それに関した使用のための情報を含んでよい。生成モジュール206は、要求された機能を実行してよいし、処理サーバ102の他のモジュール又はエンジンによる使用のために、要求されたデータを出力してよい。例えば生成モジュール206は鍵ペア(例えば報酬秘密鍵)を、要求内に含まれる又は示される(及び、例えば問い合わせモジュール218によってメモリ216内で識別される)鍵ペア生成アルゴリズムを用いて生成するよう構成されてよい。生成モジュール206はまた、2つの異なる鍵ペア(これは同一の鍵ペア生成アルゴリズムを用いてよい)からの公開鍵と秘密鍵とを用いて、共有秘密情報を生成するよう構成されてよい。いくつかの実施形態では、生成モジュール206はまた、鍵ペア生成アルゴリズムを用いて秘密鍵に対応する公開鍵を生成してよい。
【0035】
処理サーバ102はまた導出モジュール208を含んでよい。導出モジュール208は公開鍵及び/又は秘密鍵を導出してよい。導出モジュール208は1以上の鍵及び鍵導出アルゴリズムとその標示とを入力値として受信してよく、要求された1又は複数の鍵を導出してよく、要求された1又は複数の鍵を、処理サーバ102の他のモジュール又はエンジンによる使用のために出力してよい。例えば導出モジュール208は、生成モジュール306によって生成された複数の報酬秘密鍵を受信してよいし、それに基づいて、適切な鍵導出アルゴリズムを用いて、対応するアクセス秘密鍵を導出してよい。いくつかの実施形態では、導出モジュール208はアルゴリズムを用いて、導出において報酬秘密鍵を使用する順番についての相違が同一のアクセス秘密鍵をもたらすという点で、報酬秘密鍵の順序付けや配列が非論理的なものになるようにしてよい。そのような実施形態では、鍵導出アルゴリズムはXOR論理演算の使用を含んでよい。
【0036】
処理サーバ102はまた暗号化モジュール210を含んでよい。暗号化モジュール210は適切な暗号化アルゴリズム(例えばAES256アルゴリズム)を用いて、データを暗号化するよう構成されてよい。暗号化モジュール210は、暗号化されるデータと、その使用のための鍵とを入力値として受信してよいし、適切なアルゴリズムを用いて当該データを暗号化してよいし、その使用のために処理サーバ104の他のモジュール又はエンジンへ、暗号化済みデータを出力してよい。いくつかの実施形態では、暗号化モジュール210は暗号化アルゴリズム又はその標示を入力値として受信してよい。他の実施形態では、暗号化モジュール210は使用される暗号化アルゴリズムを識別してよい。暗号化モジュール210は例えば、関連付けられて生成された共有秘密情報を用いて、報酬秘密鍵を暗号化してよい。
【0037】
処理サーバ102はまた復号化モジュール212を含んでよい。復号化モジュール212は適切な暗号化アルゴリズム(例えばAES256アルゴリズム)を用いて、データを復号化するよう構成されてよい。復号化モジュール212は、復号化されるデータと、その使用のための鍵とを入力値として受信してよいし、適切なアルゴリズムを用いて当該データを復号化してよいし、その使用のために処理サーバ102の他のモジュール又はエンジンへ、復号化済みデータを出力してよい。復号化モジュール212へ提供された入力は、使用する暗号化アルゴリズムを含んでよいし、その標示(例えば問い合わせモジュール218を介してメモリ216へ記憶される暗号化アルゴリズムを識別する際に使用する標示)を含んでよい。復号化モジュール212は例えば、関連する共有秘密情報を用いて、コンピューティング装置104によって提供される鍵を復号化してよい。
【0038】
いくつかの実施形態では、処理サーバ102は、本開示の機能を実行する際に使用する追加のモジュール又はエンジンを含んでよい。例えば処理サーバ102は(例えばブロックチェーントランザクションを開始及び提出するために、及び、ブロックチェーンネットワーク106を用いて、アドレスとブロックチェーン通貨を移転するトランザクション要求とを署名するために、)ブロックチェーンネットワーク106に関連して使用する追加のモジュールを含んでよい。いくつかの実施形態では、
図2に示され且つ本開示で説明される処理サーバ102のモジュールは、関連する追加の機能を実行するよう構成されてよい。例えば生成モジュール206は、アクセス公開鍵を用いて、ブロックチェーン宛先アドレスを生成するよう構成されてよい。
【0039】
処理サーバ102はまた、送信装置214を含んでよい。送信装置214は1以上のネットワークプロトコルを介して1以上のネットワーク上でデータを送信するよう構成されてよい。いくつかの実施形態では送信装置214は、データを、コンピューティング装置104、ブロックチェーンネットワーク106、及び他のエンティティへ適切な通信ネットワーク(例えばローカルエリアネットワーク、ワイドエリアネットワーク、無線周波数ネットワーク、インターネット等)を介して送信するよう構成されてよい。いくつかの実施形態では、送信装置214は複数装置(例えば、異なるネットワーク上でデータを送信するための異なる送信装置(例えば近距離通信でデータを送信する第1の送信装置と、インターネット上でデータを送信する第2の送信装置))を含んでよい。送信装置214は、重畳されたデータであって受信コンピューティング装置によって解析されるデータを有するデータ信号を電子的に送信してよい。いくつかの実施形態では、送信装置214は、データを重畳しエンコードし、又はデータを送信に適したデータ信号へ整形する1以上のモジュールを含んでよい。
【0040】
送信装置214は、データ信号(これは公開鍵及び/又は秘密鍵に重畳され、いくつかの実施形態では、共有秘密情報を用いて暗号化されてよい)をコンピューティング装置104へ電子的に送信するよう構成されてよい。例えば送信装置214は、データ信号(これは、共有秘密情報を生成する際にコンピューティング装置104によって使用するために、転送公開鍵に重畳されてよい)をコンピューティング装置104へ送信するよう構成されてよい。送信装置214はまた、ブロックチェーン通貨を転送する際に使用するために、ブロックチェーンネットワーク106へデータ信号を送信してよい。
【0041】
処理サーバ102はまた、メモリ216を含んでよい。メモリ216は、本開示の機能を実行するときに処理サーバ102が使用するためのデータを記憶するよう構成されてよい。メモリ216は、データ整形方法及びスキーマを用いてデータを格納するよう構成されてよく、また、任意の適切な種類のメモリ(例えば読み取り専用メモリ、ランダムアクセスメモリ等)であってよい。メモリ216は例えば暗号鍵及びアルゴリズム、通信プロトコル及び基準、データ整形基準及びプロトコル、モジュール用プログラムコード及び処理装置のアプリケーションプログラム、並びに、本開示の機能を実行する際に処理サーバ102によって使用される適切な他のデータを含んでよい。このことは、本開示を読む当業者にとって自明である。メモリ216は、鍵ペア生成アルゴリズムと、鍵導出アルゴリズムと、本開示の処理サーバ102の機能を実行する際に使用する暗号化アルゴリズムとを格納してよい。
【0042】
アクセス秘密鍵の導出
図3は複数のコンピューティング装置104への配布のために生成される複数の暗号鍵によってデータをアクセスする際に使用するために、アクセス秘密鍵を導出する処理300を示す図である。
【0043】
ステップ302にて処理サーバ102の生成モジュール206は、適切な鍵ペア生成アルゴリズムを用いて、複数の報酬鍵ペア304を生成してよい。生成モジュール206によって生成される報酬鍵ペア304の数は、処理サーバ102の受信装置202(又は処理サーバ102とインタフェース接続する1以上の入力装置)によって受信されるアクセス鍵要求に基づいてよい。
【0044】
図3に示す例では、生成モジュール206は3つの報酬鍵ペア304(
図3にて、鍵ペア1 304a、鍵ペア2 304b、鍵ペア3 304cとして示される)を生成してよい。各報酬鍵ペア304は、報酬秘密鍵と対応する報酬公開鍵とを含んでよい。ステップ305にて、処理サーバ102の導出モジュール208は、報酬鍵ペア304の各々からの報酬秘密鍵にXOR論理演算を用いて、アクセス秘密鍵308を導出してよい。導出されたアクセス秘密鍵については、XOR論理演算を用いることによって、アクセス秘密鍵308を導出する演算の順番は非論理的であってよい。例えば
図3に示す処理300では、鍵ペア304は3つの報酬秘密鍵R1、R2、及びR3を含んでよい。XOR(R1,XOR(R2,R3))により3つ全ての鍵についてXOR論理演算306を用いて導出されたアクセス秘密鍵308は、演算XOR(R2,XOR(R1,R3)) and XOR(R3,XOR(R1,R2))によって導出されたアクセス秘密鍵と同等であってよい。
【0045】
結果として生じたアクセス秘密鍵308は次いで、データへのアクセスを制限する際に処理サーバ102によって使用されてよい。例えばアクセス秘密鍵308はデータを暗号化するために使用されてよいし、ブロックチェーンネットワーク106に関連付けられたブロックチェーン通貨を受信する宛先アドレスを署名するために使用されてよい。各報酬鍵ペア304に含まれる報酬秘密鍵は、制限されたデータへのアクセスを提供するための手段として、コンピューティング装置104間で配布されてよい。配布された暗号鍵ストレージについては、エンティティはアクセス秘密鍵308を用いてデータを暗号化し又はデータへのアクセスを制限してよいし、アクセス秘密鍵308を破棄してよいし、次いで各報酬鍵ペア304における報酬秘密鍵をコンピューティング装置104(これはエンティティの一部(例えば補助の又は制御されたコンピューティングシステム)であってよいし、又は、関連する信頼されたエンティティであってよい)へ配布してよい。そのような実施形態では、任意のコンピューティング装置104についての鍵記憶が損なわれても、データは安全なままである。
【0046】
データアクセスのための楕円曲線暗号法による鍵転送処理
図4は、楕円曲線暗号法により秘密鍵を配布する処理(例えば、データアクセスのために使用されるアクセス秘密鍵の導出において使用される
図3に示す処理300を用いて生成された報酬秘密鍵の配布)を示す。
【0047】
ステップ402にて処理サーバ102は、例えば
図3に示され上述された処理300を用いて、複数の報酬鍵ペアを生成し、そこからアクセス秘密鍵を導出してよい。ステップ404にて処理サーバ102及びコンピューティング装置104は、共有秘密情報を生成する際に使用するために公開鍵を交換してよい。コンピューティング装置104は、鍵ペア生成アルゴリズムを用いて、装置鍵ペ
ア(これは装置秘密鍵と装置公開鍵とを含んでよい)を生成してよい。処理サーバ102の生成モジュール206は、同一の鍵ペア生成アルゴリズムを用いて転送鍵ペア(これは転送公開鍵と転送秘密鍵とをもたらす)を生成してよい。公開鍵の交換は、装置公開鍵をコンピューティング装置104から処理サーバ102へ電子的に通信することを含んでよく、転送公開鍵と処理サーバ102から(例えば送信装置214を介して)コンピューティング装置104へ電子的に送信することを含んでよい。
【0048】
ステップ406にて、処理サーバ102の生成モジュール206は共有秘密情報を生成してよい。共有秘密情報は同一の鍵ペア生成アルゴリズムを用いて、生成モジュール206によって生成された転送秘密鍵とコンピューティング装置104から受信された装置公開鍵とを用いて、生成されてよい。ステップ406にてコンピューティング装置104は、同一の鍵ペア生成アルゴリズムを用いて、コンピューティング装置104によって以前に生成された装置秘密鍵と処理サーバ104から受信された転送公開鍵とを用いて、同等の共有秘密情報を生成してよい。
【0049】
ステップ410にて、処理サーバ104の暗号化モジュール210は、共有秘密情報を用いて、適切な暗号化アルゴリズムにより、アクセス秘密鍵を導出する際に使用され且つステップ402にて生成された報酬秘密鍵を暗号化してよい。例えば暗号化アルゴリズムは、AES256アルゴリズムであってよい。ステップ412にて処理サーバ102の送信装置214は、適切な通信ネットワーク及びプロトコルを用いて、暗号化済み報酬秘密鍵に重畳されたデータ信号を、コンピューティング装置104へ電子的に送信してよい。
【0050】
ステップ414にて処理サーバ104は、データ信号を受信して、そこからの暗号化済み報酬秘密鍵を分析してよい。ステップ416にてコンピューティング装置104は、報酬秘密鍵を復号化してよい。報酬秘密鍵は、共有秘密情報を用いて、処理サーバ102によって使用されるのと同一の暗号化アルゴリズムを用いて復号化されてよい。復号化された報酬秘密鍵は次いで適切な鍵導出アルゴリズムを用いて、他の報酬秘密鍵(これは例えば他のコンピューティング装置104から受信される)と組み合わされて、アクセス秘密鍵を導出する際に使用されてよい。
【0051】
データへのアクセスのために使用される複数の暗号鍵を配布する例示的システム及び方法
図5は複数のコンピューティング装置へ、データへアクセスするためのアクセス鍵を導出するために使用される複数の暗号鍵を配布する方法500を示す。
【0052】
ステップ502にてアクセス鍵要求に重畳されたデータ信号は、処理サーバ(例えば処理サーバ102)の受信装置(例えば受信装置202)によって受信されてよい。このときアクセス鍵要求は少なくとも、要求される鍵についての1より大きい数nを含む。ステップ504にて、n組の鍵ペアは処理サーバの生成モジュール(例えば生成モジュール206)によって、鍵導出アルゴリズムを用いて生成されてよい。このとき各鍵ペアは秘密鍵と公開鍵とを含む。
【0053】
ステップ506にてアクセス鍵要求は、n組の鍵ペアの各々に含まれた秘密鍵を鍵導出アルゴリズムへ適用することにより、処理サーバの導出モジュール(例えば導出モジュール208)によって導出されてよい。ステップ508にて、導出された秘密鍵に対応するアクセス公開鍵は、鍵ペア生成アルゴリズムを用いて、処理サーバの生成モジュールによって生成されてよい。ステップ510にて、n組の鍵ペアの1つに含まれた秘密鍵に重畳されたデータ信号は、n組の鍵ペアの各々につき、処理サーバの送信装置(例えば送信装置214)によって電子的に送信されてよい。
【0054】
一実施形態では、方法500は次のことを含んでよい。処理サーバのメモリ(例えばメモリ216)に、転送公開鍵と転送秘密鍵とを含む転送鍵ペアを記憶するステップと、処理サーバの受信装置によって、共有公開鍵に重畳されたデータ信号をn個のコンピューティング装置(例えばコンピューティング装置104)から受信するステップと、処理サーバの生成モジュールによって、n個の共有秘密情報を生成するステップとであって、各共有秘密情報は、n個の共有公開鍵の共有公開鍵と前記転送秘密鍵と前記鍵ペア生成アルゴリズムとを用いて生成される、ステップと、処理サーバの暗号化モジュール(例えば暗号化モジュール210)によって、n組の鍵ペアの各々に含まれた秘密鍵を、暗号化アルゴリズムを用いて、n個の共有秘密情報で暗号化するステップであって、電子的に送信されたデータ信号に含まれて重畳された秘密鍵は暗号化されたそれぞれの秘密鍵である、ステップ。他の実施形態では方法500は更に、処理サーバの送信装置によって、n個のコンピューティング装置へ、転送公開鍵に重畳されたデータ信号を電子的に送信することを含んでよい。
【0055】
更に別の実施形態では、転送公開鍵に重畳されたデータ信号は、共有済み公開鍵に重畳されたデータ信号を受信する前に、n個のコンピューティング装置へ電子的に送信されてよい。更に別の実施形態では、転送公開鍵に重畳された各データ信号は、暗号化済み秘密鍵に重畳されたデータ信号と同一のデータ信号であってよい。
【0056】
いくつかの実施形態では、楕円曲線鍵共有方式は、楕円曲線ディフィー・ヘルマン鍵共有プロトコルであってよい。一実施形態では、鍵導出アルゴリズムはXOR論理演算の使用を含んでよい。いくつかの実施形態では方法500は更に、処理サーバの送信装置によって、トランザクション要求に重畳されたデータ信号をブロックチェーン内のノードへ電子的に送信することを含んでよい。このとき当該トランザクション要求は、導出済みアクセス秘密鍵を用いて署名された宛先アドレスを少なくとも含む。
【0057】
コンピュータシステムアーキテクチャ
図6は、コンピュータシステム600を示す。そこには、本開示の実施形態又はその一部が、コンピュータ読取り可能なコードとして実装されてよい。例えば
図1の処理サーバ102は、ハードウェア、ソフトウェア、ファームウェア、格納された命令を有する非一時的なコンピュータ読取り可能な媒体、又はこれらの組合せを用いてシステム600内に実装されてよく、1以上のコンピュータシステム又は他の処理システムにおいて実装されてよい。ハードウェア、ソフトウェア及びこれらの任意の組合せは、
図3乃至5の方法を実装するために使用されるモジュール及びコンポーネントを実現してよい。
【0058】
プログラマブルロジックが使用される場合、そのようなロジックは、商業的に利用可能な処理プラットフォーム又は特定用途装置上で実行してよい。当業者は、開示された事項についての実施形態が、様々なコンピュータシステム構成で実行可能であることを理解する。当該システム構成は、マルチコアのマルチプロセッサシステムと、ミニコンピュータと、メインフレームコンピュータと、分散された機能でリンクされ又はクラスタ化されたコンピュータと、任意の装置へ仮想的に実装可能な汎用(pervasive)又はミニチュアのコンピュータとを含む。例えば少なくとも1つのプロセッサ装置及びメモリが、上記実施形態を実装するために使用されてよい。
【0059】
本開示のプロセッサユニット又は装置は、単一のプロセッサ、複数のプロセッサ、又はこれらの組合せであってよい。プロセッサ装置は、1以上のプロセッサ「コア」を有してよい。本開示の「コンピュータプログラム媒体」、「非一時的なコンピュータ読取り可能な媒体」及び「コンピュータ使用可能な媒体」との用語は、概して、有形の媒体(例えば取外し可能な記憶ユニット618、取外し可能な記憶ユニット622及びハードディスクドライブ612にインストールされたハードディスク等)を指すために使用される。
【0060】
本開示の様々な実施形態は、この例示的なコンピュータシステム600に関して記述される。本開示を読んだ後、当業者にとって、他のコンピュータシステム及び/又はコンピュータアーキテクチャを用いて本開示をどのように実装するかは自明である。動作はシーケンシャルな処理として開示されるが、いくつかの動作は実際には、並行して、同時に及び/又は分散環境で、実行されてよい。このとき、プログラムコードは、単一プロセッサの又はマルチプロセッサのマシンによってアクセスするために、ローカルに又はリモートに格納された状態である。更に、いくつかの実施形態では、動作の順番は、開示される事項の趣旨を逸脱することなく再配置可能である。
【0061】
プロセッサ装置604は、本開示の機能を実行するよう特別に構成された特定用途又は汎用プロセッサ装置であってよい。プロセッサ装置604は、通信インフラストラクチャ606(例えばバス、メッセージキュー、ネットワーク、マルチコアメッセージパススキーム等)へ接続されてよい。ネットワークは、本開示の機能を実行するのに適した任意のネットワークであってよく、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク(例えばWifi)、モバイル通信ネットワーク、衛星ネットワーク、インターネット、光ファイバ、同軸ケーブル、赤外線、無線周波数(RF)又はこれらの任意の組合せを含んでよい。他の適切なネットワークタイプ及び構成は、当業者にとって自明である。コンピュータシステム600はまた、メインメモリ608(例えばランダムアクセスメモリ、読み取り専用メモリ等)を含んでよく、また、補助メモリ610を含んでよい。補助メモリ610は、ハードディスクドライブ612と取外し可能な記憶ドライブ614(例えばフロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュメモリ等)とを含んでよい。
【0062】
取外し可能な記憶ドライブ614は、周知の方法で、取外し可能な記憶ユニット618から読み取りを行ってもよいし、そこへ書き込みを行ってもよい。取外し可能な記憶ユニット618は、取外し可能な記憶ドライブ614によって読み取られ又は書き込まれることができる、取外し可能な記憶媒体を含んでよい。例えばもし取外し可能な記憶ドライブ614がフロッピーディスクドライブ又はユニバーサルシリアルバスポートであれば、取外し可能な記憶ユニット618はそれぞれ、フロッピーディスク又はポータブルフラッシュドライブであってよい。一実施形態では、取外し可能な記憶ユニット618は非一時的な読取り可能記録媒体であってよい。
【0063】
いくつかの実施形態では、補助メモリ610は代替手段を含み、コンピュータプログラム又は他の命令がコンピュータシステム600(例えば取外し可能な記憶ユニット622及びインタフェース620)にロードされることを可能にしてよい。そのような手段の例は、(例えばビデオゲームシステムで見られる)プログラムカートリッジ及びカートリッジインタフェース、取外し可能なメモリチップ(例えばEEPROM、PROM等)、関連ソケット、他の取外し可能な記憶ユニット622及びインタフェース620を含んでよい。このことは当業者にとって自明である。
【0064】
コンピュータシステム600に(例えばメインメモリ608に及び/又は補助メモリ610に)格納されたデータは、任意のタイプの適切なコンピュータ読取り可能な媒体(例えば光ストレージ(コンパクトディスク、デジタル多目的ディスク、Blu-rayディスク等)又は磁気テープストレージ(例えばハードディスクドライブ))上に格納されてよい。データは任意のタイプの適切なデータベース構成(例えばリレーショナルデータベース、構造化照会言語(SQL)データベース、分散データベース、オブジェクトデータベース等)で構成されてよい。適切な構成及びストレージタイプは、当業者にとって自明である。
【0065】
コンピュータシステム600はまた、通信インタフェース624を含んでよい。通信インタフェース624は、ソフトウェア及びデータが、コンピュータシステム600と外部装置との間で送信されることを可能にしてよい。例示的な通信インタフェース624は、モデム、ネットワークインタフェース(例えばイーサネットカード)、通信ポート、PCMCIAスロット及びカード等を含んでよい。通信インタフェース624を介して転送されるソフトウェア及びデータは信号形式であってよい。当該信号形式は、電子の、電磁気の、光の、又は当業者にとって自明な他の信号のものであってよい。信号は、通信パス626を介して伝わる。当該通信パス626は信号を伝送するよう構成され、電線、ケーブル、光ファイバ、電話線、携帯電話リンク、無線周波数リンク等を用いて実装されてよい。
【0066】
コンピュータシステム600は表示インタフェース602を更に含んでよい。表示インタフェース602は、データが、コンピュータシステム600と外部ディスプレイ630との間で転送されることを可能にするよう構成されてよい。例示的な表示インタフェース602は、高精細度マルチメディアインタフェース(HDMI)、デジタルビジュアルインタフェース(DVI)、ビデオグラフィックスアレイ(VGA)等を含んでよい。ディスプレイ630は任意の適切なタイプのディスプレイであってよく、コンピュータシステム600の表示インタフェース602を介して転送されるデータを表示する。ディスプレイ630は、ブラウン管(CRT)ディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、静電容量方式タッチディスプレイ、薄膜トランジスタ(TFT)ディスプレイ等を含む。
【0067】
コンピュータプログラム媒体及びコンピュータ使用可能な媒体は、メモリ(例えばメインメモリ608及び補助メモリ610)を指してよく、半導体メモリ(DRAM等)であってよい。これらのコンピュータプログラム製品は、コンピュータシステム600へソフトウェアを提供するための手段であってよい。コンピュータプログラム(例えばコンピュータ制御ロジック)は、メインメモリ608及び/又は補助メモリ610に格納されてよい。コンピュータプログラムはまた、通信インタフェース624を介して受信されてよい。そのようなコンピュータプログラムは、実行されると、コンピュータシステム600が本開示の方法を実行することを可能にしてよい。特に、コンピュータプログラムは、実行されると、プロセッサ装置604が
図3乃至5に示される本開示の方法を実行することを可能にしてよい。したがって、そのようなコンピュータプログラムはコンピュータシステム600のコントローラを示す。本開示はソフトウェアを使用して実装される。当該ソフトウェアは、取外し可能な記憶ドライブ614、インタフェース620、及びハードディスクドライブ612又は通信インタフェース624を用いて、コンピュータプログラム製品に格納されてコンピュータシステム600へロードされてよい。
【0068】
プロセッサ装置604は、コンピュータシステム600の機能を実行するよう構成される1以上のモジュール又はエンジンを含んでよい。各モジュール又はエンジンは、ハードウェアを用いて実装されてよく、いくつかの実施形態ではソフトウェア(例えばこれは、メインメモリ608又は補助メモリ610に格納されるプログラムコード又はプログラムに対応する)を用いてよい。そのような実施形態では、プログラムコードは、コンピュータシステム800のハードウェアによる実行前に、プロセッサ装置604によって(例えばモジュール又はエンジンをコンパイルすることによって)コンパイルされてよい。例えばプログラムコードは、低レベルの言語へと解釈されるプログラミング言語で記述されたソースコード(例えばアセンブリ言語又は機械コード)であってよい。これは、プロセッサ装置604及び/又はコンピュータシステム600の任意の追加のハードウェア構成要素によって実行するためのものである。コンパイル処理は、語彙解析と、前処理と、解析と、意味解析と、文法指向の翻訳と、コード生成と、コード最適化と、コンピュータシステム600の制御のためにプログラムコードを低レベルの言語へ解釈して本開示の機能を実行するのに適した任意の他の技術との使用を含んでよい。そのような処理によってコンピュータシステム600が、上記の機能を実行するために一意にプログラムされた特別構成コンピュータシステム600になることは当業者にとって自明である。
【0069】
本開示に一貫する技術は、とりわけ、データへのアクセスのために使用される複数の暗号鍵を配布するシステム及び方法を提供する。本開示のシステム及び方法の様々な例示的実施形態が上述されるが、それらは限定目的でなく例示目的のみで示されることを理解されたい。それは徹底したものでなく、本開示を、開示された形態そのものへ限定しない。上記の教示に照らして修正例及び変形例が可能である。広がり又は範囲を逸脱すること無く、本開示の実装から修正例及び変形例が得られてよい。