(57)【要約】データアクセス権限を制御するための方法および装置を開示する。方法は、第１のプロキシノードによって、要求ノードから第１の要求メッセージを受信するステップであって、第１の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第１の暗号化された暗号文を決定するステップと、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始するステップと、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップとを含む。この方法において、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができ、それにより、ネットワークにおける情報セキュリティを確実にし得る。
2021516917.tif 000002
【特許請求の範囲】
【請求項１】
データアクセス権限を制御するための方法であって、
第１のプロキシノードによって、要求ノードから第１の要求メッセージを受信するステップであって、前記第１の要求メッセージは、前記要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、
前記第１のプロキシノードによって、前記アクセスされるべきデータの前記識別子に基づいて、ブロックチェーンネットワークにおける第１の暗号化された暗号文を決定するステップ、および前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、
はいの場合、少なくとも１つの第２のプロキシノードに対して前記要求ノードについての権限検証要求を開始するステップ、および前記少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、前記第１の暗号化された暗号文のプロビジョニングを決定するステップと
を含む、方法。
【請求項２】
前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定する前記ステップは、
前記ブロックチェーン上で、前記要求ノードの前記識別に基づいて前記要求ノードの認可情報を読み取るステップを含み、前記認可情報は、前記ブロックチェーンのチェーンストレージ構造の末端に最も近く、前記認可情報は、許可または不許可を含む、請求項１に記載の方法。
【請求項３】
少なくとも１つの第２のプロキシノードに対して前記要求ノードについての権限検証要求を開始する前記ステップは、
前記第１のプロキシノードによって、ｍ個の第２のプロキシノードを決定するステップであって、ｍは１以上の正の整数である、ステップと、
前記権限検証要求を生成するステップであって、前記権限検証要求は、前記要求ノードの前記識別、および前記第１の暗号化された暗号文を含み、前記第１の暗号化された暗号文は、前記アクセスされるべきデータを暗号化することによって生成される、ステップと、
ｍ個の第２のプロキシノードのそれぞれに前記権限検証要求を送信するステップと
を含む、請求項１に記載の方法。
【請求項４】
前記少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、前記第１の暗号化された暗号文のプロビジョニングを決定する前記ステップは、
前記第１のプロキシノードによって、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するステップであって、前記第２のプロキシノードが、前記要求ノードの前記識別に基づいて、前記要求ノードがデータにアクセスする権限を有することを検証した後に、前記部分鍵は、前記第２のプロキシノードによって生成され送信され、ｋ≦ｍである、ステップと、
前記少なくともｋ個の部分鍵を回復して変換鍵を生成するステップと、
前記変換鍵および暗号化アルゴリズムを使用することによって、前記第１の暗号化された暗号文を第２の暗号化された暗号文に変換するステップであって、前記第２の暗号化された暗号文は、前記要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、
前記第２の暗号化された暗号文を前記要求ノードに送信するステップと
を含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、前記第１の暗号化された暗号文のプロビジョニングを決定するステップは、
前記第１のプロキシノードが、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを前記要求ノードに送信するステップを含む、請求項３に記載の方法。
【請求項６】
第１のプロキシノードによって、要求ノードから第１の要求メッセージを受信するステップは、
前記第１のプロキシノードによって、前記ブロックチェーンネットワーク上の任意のブロックチェーンノードによって転送された前記第１の要求メッセージを受信するステップを含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記第１のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有しないと決定し、前記要求ノードの前記第１の要求メッセージを拒否するステップをさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項８】
第１のノードによって、第２のノードの識別を取得するステップであって、前記識別は、前記第２のノードの認可情報を決定するために使用される、ステップと、
前記認可情報が許可である場合、前記第１のノードによって、前記第１のノードの秘密鍵、前記第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成するステップと、
前記第１のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成するステップと、
前記第１のノードによって、第１のトランザクション情報を生成し、前記ブロックチェーンネットワーク上に前記第１のトランザクション情報を記録するステップであって、前記第１のトランザクション情報は、前記第２のノードの前記識別、前記第２のノードの前記認可情報、および前記暗号化された部分鍵を含む、ステップと
を含む、データ伝送方法。
【請求項９】
前記第１のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成する前記ステップは、
前記第１のノードによって、秘密分散アルゴリズムを使用することによって前記変換鍵をｎ個の部分鍵に分割するステップであって、ｎは、１以上の正の整数である、ステップと、
前記第１のノードによって、前記ブロックチェーンネットワークからｍ個のプロキシノードを選択し、前記ｍ個のプロキシノードの公開鍵を使用することによって前記ｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成するステップであって、ｍ≦ｎである、ステップと
を含む、請求項８に記載の方法。
【請求項１０】
前記第１のトランザクション情報は、前記ｍ個のプロキシノードの識別と、前記変換鍵を回復するための部分鍵の最小量ｋとをさらに含む、請求項９に記載の方法。
【請求項１１】
前記ブロックチェーンネットワーク上に前記第１のトランザクション情報を記録するステップは、
前記第１のノードによって、前記第１のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、前記第１のトランザクション情報をブロードキャストし、前記ブロックチェーンノードを使用することによってネットワーク全体で前記第１のトランザクション情報について合意に達し、前記第１のトランザクション情報を記憶するステップを含む、請求項８から１０のいずれか一項に記載の方法。
【請求項１２】
前記認可情報が不許可である場合、前記第２のノードの前記認可情報をキャンセルするステップと、
第２のトランザクション情報を生成するステップであって、前記第２のトランザクション情報は、前記第２のノードの前記識別および前記第２のノードの前記認可情報を含む、ステップと、
前記ブロックチェーンネットワーク上に前記第２のトランザクション情報を記録するステップと
をさらに含む、請求項８に記載の方法。
【請求項１３】
第１のノードによって第２のノードの識別を取得するステップの前に、
前記第１のノードによって、前記第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成するステップと、
前記第１のノードによって、前記ブロックチェーンネットワーク上のトランザクションとして前記第１の暗号化された暗号文を記憶するステップと
をさらに含む、請求項８から１０のいずれか一項に記載の方法。
【請求項１４】
第２のプロキシノードによって、第１のプロキシノードから権限検証要求を受信するステップであって、前記権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、前記第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、
前記第２のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、
はいの場合、部分鍵を生成し、前記部分鍵を前記第１のプロキシノードに送信するステップと
を含む、データ伝送方法。
【請求項１５】
部分鍵を生成する前記ステップは、
前記第２のプロキシノードによって、ブロックチェーンネットワーク上の暗号化された部分鍵を取得するステップであって、前記暗号化された部分鍵は、前記第２のプロキシノードの公開鍵を使用した暗号化によって生成される、ステップと、
前記第２のプロキシノードによって、前記第２のプロキシノードの秘密鍵を使用することによって、前記暗号化された部分鍵を復号して、前記部分鍵を生成するステップと
を含む、請求項１４に記載の方法。
【請求項１６】
前記第２のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有しないと決定し、前記第１のプロキシノードの第１の要求を拒否するステップをさらに含む、請求項１４または１５に記載の方法。
【請求項１７】
第１のプロキシノードに適用されるネットワークノードであって、
要求ノードから第１の要求メッセージを受信するように構成された受信ユニットであって、前記第１の要求メッセージは、前記要求ノードの識別、およびアクセスされるべきデータの識別子を含む、受信ユニットと、
前記アクセスされるべきデータの前記識別子に基づいて、ブロックチェーンネットワークにおける第１の暗号化された暗号文を決定し、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するように構成された処理ユニットと、
前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有する場合、少なくとも１つの第２のプロキシノードに対して前記要求ノードについての権限検証要求を開始するように構成された送信ユニットと
を備え、
前記処理ユニットは、前記少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有する場合、前記第１の暗号化された暗号文のプロビジョニングを決定するようにさらに構成される、ネットワークノード。
【請求項１８】
前記送信ユニットは、ブロックチェーン上で、前記要求ノードの前記識別に基づいて前記要求ノードの認可情報を読み取るように特に構成され、前記認可情報は、前記ブロックチェーンのチェーンストレージ構造の末端に最も近く、前記認可情報は、許可または不許可を含む、請求項１７に記載のネットワークノード。
【請求項１９】
前記処理ユニットは、ｍ個の第２のプロキシノードを決定し、前記権限検証要求を生成するように特に構成され、前記権限検証要求は、前記要求ノードの前記識別、および前記第１の暗号化された暗号文を含み、前記第１の暗号化された暗号文は、前記アクセスされるべきデータを暗号化することによって生成され、ｍは１以上の正の整数であり、
前記送信ユニットは、前記ｍ個の第２のプロキシノードのそれぞれに前記権限検証要求を送信するように特に構成される、請求項１７に記載のネットワークノード。
【請求項２０】
前記受信ユニットは、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するようにさらに構成され、前記第２のプロキシノードが、前記要求ノードの前記識別に基づいて、前記要求ノードがデータにアクセスする権限を有することを検証した後に、前記部分鍵は、前記第２のプロキシノードによって生成され送信され、ｋ≦ｍであり、
前記処理ユニットは、前記少なくともｋ個の部分鍵を回復して変換鍵を生成し、前記変換鍵および暗号化アルゴリズムを使用することによって、前記第１の暗号化された暗号文を第２の暗号化された暗号文に変換するように特に構成され、前記第２の暗号化された暗号文は、前記要求ノードの公開鍵を使用して暗号化によって生成され、
前記送信ユニットは、前記第２の暗号化された暗号文を前記要求ノードに送信するようにさらに構成される、請求項１７から１９のいずれか一項に記載のネットワークノード。
【請求項２１】
前記処理ユニットは、前記受信ユニットを使用することによって、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または前記受信ユニットを使用することによって、少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、前記送信ユニットを使用することによって、アクセス拒否メッセージを前記要求ノードに送信するように特に構成される、請求項２０に記載のネットワークノード。
【請求項２２】
前記受信ユニットは、前記ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された前記第１の要求メッセージを受信するように特に構成される、請求項１７から２１のいずれか一項に記載のネットワークノード。
【請求項２３】
前記処理ユニットは、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有するかどうかを決定し、前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有しない場合、前記要求ノードの前記第１の要求メッセージを拒否するようにさらに構成された、請求項１７から２１のいずれか一項に記載のネットワークノード。
【請求項２４】
第１のノードに適用されるネットワークノードであって、
第２のノードの識別を取得するように構成された受信ユニットであって、前記識別は、前記第２のノードの認可情報を決定するために使用される、受信ユニットと、
前記認可情報が許可である場合、前記ネットワークノードの秘密鍵、前記第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成し、第１のトランザクション情報を生成し、前記ブロックチェーンネットワーク上に前記第１のトランザクション情報を記録するように構成された処理ユニットと
を備え、
前記第１のトランザクション情報は、前記第２のノードの前記識別、前記第２のノードの前記認可情報、および前記暗号化された部分鍵を含む、ネットワークノード。
【請求項２５】
前記処理ユニットは、秘密分散アルゴリズムを使用することによって前記変換鍵をｎ個の部分鍵に分割し、ｎは１以上の正の整数であり、前記ブロックチェーンネットワークからｍ個のプロキシノードを選択し、前記ｍ個のプロキシノードの公開鍵を使用することによって前記ｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成し、ｍ≦ｎであるように特に構成される、請求項２４に記載のネットワークノード。
【請求項２６】
前記第１のトランザクション情報は、前記ｍ個のプロキシノードの識別と、前記変換鍵を回復するための部分鍵の最小量ｋとをさらに含む、請求項２５に記載のネットワークノード。
【請求項２７】
前記処理ユニットは、前記第１のトランザクション情報を前記ブロックチェーンネットワーク上のブロックチェーンノードに送信し、前記第１のトランザクション情報をブロードキャストし、前記ブロックチェーンノードを使用することによってネットワーク全体で前記第１のトランザクション情報について合意に達し、前記第１のトランザクション情報を記憶するように特に構成される、請求項２４から２６のいずれか一項に記載のネットワークノード。
【請求項２８】
前記処理ユニットは、前記認可情報が不許可である場合、前記第２のノードの前記認可情報をキャンセルし、第２のトランザクション情報を生成し、前記ブロックチェーンネットワーク上に前記第２のトランザクション情報を記録するようにさらに構成され、前記第２のトランザクション情報は、前記第２のノードの前記識別および前記第２のノードの前記認可情報を含む、請求項２７に記載のネットワークノード。
【請求項２９】
前記処理ユニットは、前記第２のノードの前記識別を取得する前に、前記第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成し、前記ブロックチェーンネットワーク上のトランザクションとして前記第１の暗号化された暗号文を記憶するようにさらに構成された、請求項２４から２６のいずれか一項に記載のネットワークノード。
【請求項３０】
第２のプロキシノードに適用されるネットワークノードであって、
第１のプロキシノードから権限検証要求を受信するように構成された受信ユニットであって、前記権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、前記第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、受信ユニットと、
前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、はいの場合、部分鍵を生成するように構成された処理ユニットと、
前記部分鍵を第１のプロキシノードに送信するように構成された送信ユニットと
を備えた、ネットワークノード。
【請求項３１】
前記処理ユニットは、ブロックチェーンネットワーク上の暗号化された部分鍵を取得し、前記暗号化された部分鍵は、前記第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、前記第２のプロキシノードの秘密鍵を使用することによって、前記暗号化された部分鍵を復号して、前記部分鍵を生成するように特に構成された、請求項３０に記載のネットワークノード。
【請求項３２】
前記処理ユニットは、前記要求ノードの前記識別子に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有しない場合、前記第１のプロキシノードの第１の要求を拒否するようにさらに構成された、請求項３０または３１に記載のネットワークノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ブロックチェーンの分野に関し、特に、データアクセス権限を制御するための方法および装置に関する。
【背景技術】
【０００２】
本出願は、２０１８年３月１９日に中国国家知識産権局に出願された「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＣＯＮＴＲＯＬＬＩＮＧ  ＤＡＴＡ  ＡＣＣＥＳＳ  ＲＩＧＨＴ」と題される中国特許出願第２０１８１０２２４３５６．１号の優先権を主張するものであり、参照によりその全体が本明細書に組み込まれている。
【０００３】
ブロックチェーンは、分散型台帳とも呼ばれる。すなわち、トランザクションが、異なる場所に分散された複数のノードによって共同でアカウンティングされ、各ノードが完全なアカウントを記録する。狭義には、ブロックチェーンは、データブロックを時系列で結合することによって得られるチェーン化されたデータ構造であり、暗号を使用することによって改竄や偽造から保護される分散型台帳である。
【０００４】
ブロックチェーン技術のため、ブロックチェーンは分散化およびトラストレスという特徴を有する。分散化は、ブロックチェーンネットワーク全体において集中化されたハードウェアまたは管理メカニズムが存在せず、諸ノードの権限および義務が等しく、ノードの損傷または損失がネットワークシステム全体の動作に影響を与えないことを意味する。したがって、ブロックチェーンネットワークの望ましい堅牢性が保証される。トラストレスは、ノードがネットワーク全体においてデータ交換に参加するために相互信頼を必要としないことを意味する。ブロックチェーンネットワークシステム全体の動作ルールはオープンであり、透明性があり、すべてのブロックチェーンノード上のデータコンテンツもオープンである。したがって、システムにより指定されたルールまたは時間範囲内で、ノードは互いに欺くことができない。
【０００５】
クライアントは、ブロックチェーン上のノード内のアクセスデータを要求し、ブロックチェーン上のノードは、暗号化されたデータおよび復号鍵をクライアントに提供する。次いで、クライアントは、暗号化されたデータを、復号鍵を使用することによって復号して、アクセスデータを取得し、ブロックチェーン上にアクセスデータを記録する。この処理では、ブロックチェーンノードにおける台帳の過去のトランザクションデータが変更または削除されることが可能でなく、ブロックチェーン上のデータは公開され、キャンセルされることが可能でないため、アクセス権限がユーザに付与され復号鍵が配布されると、アクセス権限が取り消されることができない。この場合、ユーザのアクセス権限が禁止される必要があるとき、ユーザがデータにアクセスするのを防止することができず、データアクセスのリスクおよび不安定性をもたらす。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Ｉｍｐｒｏｖｅｄ  Ｐｒｏｘｙ  Ｒｅ−Ｅｎｃｒｙｐｔｉｏｎ  Ｓｃｈｅｍｅｓ  ｗｉｔｈ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｔｏ  Ｓｅｃｕｒｅ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｔｏｒａｇｅ
【発明の概要】
【０００７】
本出願は、データアクセス権限を制御するための方法および装置を提供して、ユーザのアクセス権限が変化したとき、ユーザによって要求されるデータまたは暗号文のプロビジョニングを制御する。
【０００８】
具体的には、上記の技術的問題を解決するために、本出願は、以下の技術的解決策を開示する。
【０００９】
第１の態様によれば、本出願は、データアクセス権限を制御するための方法を提供する。方法は、第１のプロキシノードによって、要求ノードから第１の要求メッセージを受信するステップであって、第１の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、第１のプロキシノードによって、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第１の暗号化された暗号文を決定するステップ、および要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始するステップ、および少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップとを含む。
【００１０】
任意選択で、第１のプロキシノードは、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、要求ノードが第１の暗号化された暗号文を読み取る権限を有しない場合、第１のプロキシノードは、要求ノードの第１の要求を拒否する。
【００１１】
この態様で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーン上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【００１２】
さらに、少なくとも１つの第２のプロキシノードを使用することによって要求元の識別がさらに検証され、したがって、１つのみの第１のプロキシノードが検証で使用されるときに不正行為が発生する可能性が回避されることが可能であり、それにより、検証精度をさらに改善し、情報伝送のセキュリティをさらに確実にする。
【００１３】
第１の態様に関し、第１の態様の実装では、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るステップを含み、認可情報は、ブロックチェーン上のチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【００１４】
この実装では、暗号化された暗号文および鍵を要求ノードが取得できるかどうかのチェックに備えるために、要求元の最新のアクセス権限が、要求ノードの認可情報を読み取ることによって取得されてよく、認可情報は、ブロックチェーン上のチェーンストレージ構造の末端に最も近い。
【００１５】
第１の態様に関し、第１の態様の別の実装では、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始するステップは、第１のプロキシノードによって、ｍ個の第２のプロキシノードを決定するステップであって、ｍは１以上の正の整数である、ステップと、権限検証要求を生成するステップであって、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、ｍ個の第２のプロキシノードのそれぞれに権限検証要求を別々に送信するステップとを含む。
【００１６】
第１の態様に関し、第１の態様のさらに別の実装では、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップは、
第１のプロキシノードによって、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するステップであって、第２のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第２のプロキシノードによって生成され送信され、ｋ≦ｍである、ステップと、少なくともｋ個の部分鍵を回復して変換鍵を生成するステップと、変換鍵および暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文を第２の暗号化された暗号文に変換するステップであって、第２の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、第２の暗号化された暗号文を要求ノードに送信するステップとを含む。
【００１７】
この実装では、第１のプロキシノードが、権限検証要求を複数の第２のプロキシノードに送信し、第２のプロキシノードにより送信された十分な量の部分鍵を取得した後のみに、変換鍵を回復することができる。すなわち、変換鍵は、複数の第２のプロキシノードが共同の復号に参加した後のみに生成されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、したがって、少数のノードが不正なやり方で権限制御を回避することによって暗号文を取得することが効果的に防止される。この方法は、復号複雑性を増大させて、効果的に暗号文の送信および読み取りのセキュリティを確実にし、認可されていないユーザが暗号文またはデータを読み取るのを防止する。
【００１８】
第１の態様に関し、第１の態様のさらに別の実装では、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップは、第１のプロキシノードが、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを要求ノードに送信するステップを含む。
【００１９】
第１の態様に関し、第１の態様のさらに別の実装では、第１のプロキシノードによって、要求ノードから第１の要求メッセージを受信するステップは、第１のプロキシノードによって、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することによって転送された第１の要求メッセージを受信するステップを含む。
【００２０】
第２の態様によれば、本出願は、データ伝送方法をさらに提供する。方法は、データソースまたはデータ所有者に適用され得る。この態様では、第１のノードは例として使用され、方法は、
第１のノードによって、第２のノードの識別を取得するステップであって、識別は、第２のノードの認可情報を決定するために使用され、認可情報は、許可および不許可を含み、第２のノードは、要求ノードまたはデータ要求元である、ステップと、認可情報が許可である場合、第１のノードによって、第１のノードの秘密鍵、第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成するステップと、第１のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成するステップと、第１のノードによって、第１のトランザクション情報を生成し、ブロックチェーンネットワーク上に第１のトランザクション情報を記録するステップであって、第１のトランザクション情報は、第２のノードの識別、第２のノードの認可情報、および暗号化された部分鍵を含む、ステップとを含む。
【００２１】
第２の態様に関し、第２の態様の実装では、第１のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成するステップは、第１のノードによって、秘密分散アルゴリズムを使用することによって変換鍵をｎ個の部分鍵に分割するステップであって、ｎは、１以上の正の整数である、ステップと、第１のノードによって、ブロックチェーンネットワークからｍ個のプロキシノードを選択し、ｍ個のプロキシノードの公開鍵を使用することによってｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成するステップであって、ｍ≦ｎである、ステップとを含む。
【００２２】
第２の態様に関し、第２の態様の別の実装では、第１のトランザクション情報は、ｍ個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量ｋとをさらに含む。取得された部分鍵の量がｋ未満であるとき、必要とされる変換鍵が回復されることができない。この場合、少数またはいくつかのプロキシノードによる不正行為が防止され、それにより、検証のセキュリティおよび信頼性を改善することができる。
【００２３】
第２の態様に関し、第２の態様のさらに別の実装では、ブロックチェーンネットワーク上に第１のトランザクション情報を記録するステップは、第１のノードによって、第１のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第１のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第１のトランザクション情報について合意に達し、第１のトランザクション情報を記憶するステップを含む。
【００２４】
第２の態様に関し、第２の態様のさらに別の実装では、方法は、認可情報が不許可である場合、第２のノードの認可情報をキャンセルするステップと、第２のトランザクション情報を生成するステップであって、第２のトランザクション情報は、第２のノードの識別および第２のノードの認可情報を含む、ステップと、ブロックチェーンネットワーク上に第２のトランザクション情報を記録するステップとをさらに含む。
【００２５】
第２の態様に関し、第２の態様のさらに別の実装では、第１のノードによって第２のノードの識別を取得するステップの前に、方法は、第１のノードによって、第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成するステップと、第１のノードによって、ブロックチェーンネットワーク上のトランザクションとして第１の暗号化された暗号文を記憶するステップとをさらに含む。
【００２６】
第３の態様によれば、本出願はデータ伝送方法をさらに提供し、方法は第２のプロキシノードに適用されてよく、第２のプロキシノードは第１のプロキシノードまたはプライマリプロキシノードであってよく、方法は、
第２のプロキシノードによって、第１のプロキシノードから権限検証要求を受信するステップであって、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、第２のプロキシノードによって、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、部分鍵を生成し、部分鍵を第１のプロキシノードに送信するステップとを含む。
【００２７】
この態様では、第１のプロキシノードが、要求ノードのアクセスが許可されることを検証したとき、第２のプロキシノードが、さらに要求ノードの権限を検証する。要求ノードのアクセスが許可されることを検証するとき、第２のプロキシノードが、生成された部分鍵を第１のプロキシノードに送信するので、第１のプロキシノードが、部分鍵を収集し最終的な変換鍵を合成し、それにより、第１のプロキシノードの不正行為を効果的に防止し、検証のセキュリティを改善する。
【００２８】
第３の態様に関し、第３の態様の実装では、部分鍵を生成するステップは、第２のプロキシノードによって、ブロックチェーンネットワーク上の暗号化された部分鍵を取得するステップであって、暗号化された部分鍵は、第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成される、ステップと、第２のプロキシノードによって、第２のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するステップとを含む。
【００２９】
第３の態様に関し、第３の態様の別の実装では、方法は、第２のプロキシノードによって、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、要求ノードが第１の暗号化された暗号文を読み取る権限を有しない場合、第１のプロキシノードの第１の要求を拒否するステップとをさらに含む。
【００３０】
第４の態様によれば、本出願は、データアクセス権限を制御するための装置をさらに提供する。たとえば、装置は、ネットワークノードであってよく、またはネットワークノードにおいて構成されてよい。装置またはネットワークノードは、上述の態様における第１のプロキシノード、第１のノード、または第２のプロキシノードであってよく、装置は、第１の態様から第３の態様および態様の実装における方法ステップを実行するように構成されたユニットを含む。
【００３１】
具体的には、装置は、受信ユニット、処理ユニット、および送信ユニットを含む。加えて、装置は、記憶ユニットなど別のユニットまたはモジュールをさらに含み得る。これは、本出願で限定されない。
【００３２】
第５の態様によれば、本出願はネットワークノードをさらに提供する。ネットワークノードは、プロセッサ、トランシーバ、およびメモリを含む。ネットワークノードは、第１のプロキシノードであるとき、
トランシーバは、要求ノードから第１の要求メッセージを受信するように構成され、第１の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含み、
プロセッサは、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第１の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、要求ノードの第１の要求を拒否し、または、はいの場合、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始し、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するように構成される。
【００３３】
第５の態様に関し、第５の態様の実装では、プロセッサは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るように特に構成され、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可および不許可を含む。
【００３４】
第５の態様に関し、第５の態様の別の実装では、プロセッサは、ｍ個の第２のプロキシノードを決定し、ｍは１以上の正の整数であり、権限検証要求を生成し、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、トランシーバを使用することによって、ｍ個の第２のプロキシノードのそれぞれに権限検証要求を送信するように特に構成される。
【００３５】
第５の態様に関し、第５の態様のさらに別の実装では、トランシーバは、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するように特に構成され、第２のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第２のプロキシノードによって生成され送信され、ｋ≦ｍであり、
プロセッサは、少なくともｋ個の部分鍵を回復して変換鍵を生成し、変換鍵および暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文を第２の暗号化された暗号文に変換するように特に構成され、第２の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成され、
トランシーバは、第２の暗号化された暗号文を要求ノードに送信するように特に構成される。
【００３６】
第５の態様に関し、第５の態様のさらに別の実装では、プロセッサは、第１のプロキシノードが、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、トランシーバを使用することによって、アクセス拒否メッセージを要求ノードに送信するように特に構成される。
【００３７】
第５の態様に関し、第５の態様のさらに別の実装では、トランシーバは、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された第１の要求メッセージを受信するように特に構成される。
【００３８】
さらに、ネットワークノードが第１のプロキシノードである場合、トランシーバは、第１のプロキシノードから権限検証要求を受信するように構成され、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、
プロセッサは、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第１のプロキシノードの第１の要求を拒否し、または、はいの場合、部分鍵を生成するように構成され、
トランシーバは、部分鍵を第１のプロキシノードに送信するようにさらに構成される。
【００３９】
任意選択で、プロセッサは、ブロックチェーンネットワーク上の暗号化された部分鍵を取得し、暗号化された部分鍵は、第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、第２のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するように特に構成される。
【００４０】
第６の態様によれば、本出願はネットワークノードをさらに提供する。ネットワークノードは、プロセッサ、トランシーバ、およびメモリを含む。ネットワークノードは、データソースまたはデータ所有者、たとえば、第１のノードであるとき、
トランシーバは、第２のノードの識別を取得するように構成され、識別は、第２のノードの認可情報を決定するために使用され、認可情報は、許可および不許可を含み、
プロセッサは、認可情報が許可である場合、ネットワークノードの秘密鍵、第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成し、第１のトランザクション情報を生成し、ブロックチェーンネットワーク上に第１のトランザクション情報を記録するように構成され、
第１のトランザクション情報は、第２のノードの識別、第２のノードの認可情報、および暗号化された部分鍵を含む。
【００４１】
第５の態様に関し、第５の態様の実装では、プロセッサは、秘密分散アルゴリズムを使用することによって変換鍵をｎ個の部分鍵に分割し、ｎは１以上の正の整数であり、ブロックチェーンネットワークからｍ個のプロキシノードを選択し、ｍ個のプロキシノードの公開鍵を使用することによってｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成し、ｍ≦ｎであるように特に構成される。
【００４２】
第５の態様に関し、第５の態様の別の実装では、第１のトランザクション情報は、ｍ個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量ｋとをさらに含む。
【００４３】
第５の態様に関し、第５の態様のさらに別の実装では、プロセッサは、具体的には第１のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第１のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第１のトランザクション情報について合意に達し、第１のトランザクション情報を記憶するように特に構成される。
【００４４】
第５の態様に関し、第５の態様のさらに別の実装では、プロセッサは、認可情報が不許可である場合、第２のノードの認可情報をキャンセルし、第２のトランザクション情報を生成し、ブロックチェーンネットワーク上に第２のトランザクション情報を記録するようにさらに構成され、第２のトランザクション情報は、第２のノードの識別および第２のノードの認可情報を含む。
【００４５】
第５の態様に関し、第５の態様のさらに別の実装では、プロセッサは、第２のノードの識別を取得する前に、第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成し、ブロックチェーンネットワーク上のトランザクションとして第１の暗号化された暗号文を記憶するようにさらに構成される。
【００４６】
第７の態様によれば、本出願はコンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体は、命令を記憶してよく、命令が実行されたとき、本出願において提供される第１の態様から第３の態様および第１の態様から第３の態様の実装におけるデータアクセス権限を制御するための方法の一部または全部のステップが実装されることが可能である。
【００４７】
第８の態様によれば、本出願は、命令を含むコンピュータプログラム製品をさらに提供する。命令がコンピュータ上で実行されたとき、コンピュータは上述の態様における方法を実行する。
【図面の簡単な説明】
【００４８】
【図１】本出願によるファブリックアーキテクチャの概略図である。
【図２】本出願による閾値暗号システムにおける復号のフローチャートである。
【図３】本出願による、クライアントによってブロックチェーンネットワーク上のアクセスデータを要求するためのフローチャートである。
【図４ａ】本出願によるブロックチェーンシステムの概略構造図である。
【図４ｂ】本出願による、データアクセス権限を制御するための方法のフローチャートである。
【図５】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図６Ａ】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図６Ｂ】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図７】本出願によるプロキシ再暗号化システムの役割のフローチャートである。
【図８Ａ】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図８Ｂ】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図８Ｃ】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図９】本出願によるネットワークノードの概略構造図である。
【図１０】本出願によるネットワークノードの概略構造図である。
【発明を実施するための形態】
【００４９】
本出願の実施形態における技術的解決策を当業者がよりよく理解するために、また、本出願の実施形態の目的、特徴、および利点をより明確にするために、以下では、添付の図面を参照して本出願の実施形態における技術的解決策をさらに詳細に説明する。
【００５０】
まず、本出願における基本的概念が詳細に説明される。
【００５１】
本出願の技術的解決策はブロックチェーンに関する。ブロックチェーン（Ｂｌｏｃｋ  Ｃｈａｉｎ）は、ビットコインに由来する分散されたデータベースであり、ビットコインの基礎となる技術である。ブロックチェーンは、暗号法を使用して関連付けを通して生成されたデータブロックの系列である。各データブロックは、１つのビットコインネットワークトランザクションに関する情報を含み、情報は、ビットコインネットワークトランザクションの妥当性を検証し（偽造防止）、次のブロック（ｂｌｏｃｋ）を生成するために使用される。
【００５２】
狭義には、ブロックチェーンは、データブロックを時系列で結合することによって得られるチェーン化されたデータ構造であり、暗号を使用することによって改竄や偽造から保護される分散型台帳である。広義には、ブロックチェーンは、複数の独立した分散されたノードを使用することによって同じレコードを記憶する分散型台帳である。
【００５３】
ブロックチェーン技術は、分散化されたトラストレスな様式で信頼できるデータベースを集合的に維持する技術的解決策である。新しいデータがブロックチェーンに書き込まれる必要があるたびに、データがブロックに集約され、既存のブロックチェーンの末端に追加される。ノードの新しく追加されたブロックが同じであることを確実にするために、合意アルゴリズムが使用される。
【００５４】
いくつかのトランザクションレコードが各ブロックに記録され、ブロックは、前のブロックのハッシュ値（ｈａｓｈ）を含む。すべてのブロックについて、このように前のブロック内の情報が記憶され、これらのブロックは、順に接続されてブロックチェーンを形成する。ブロックチェーンは、改竄されることが難しい。ブロックチェーン技術に基づいて、トランザクション（Ｔｒａｎｓａｃｔｉｏｎ、Ｔｘ）は、合意に達することができる２つの当事者によって直接行われ、したがって、トランザクションに参加するために、信頼される第三者の集中化された仲介役は必要とされない。
【００５５】
スマートコントラクト（ｓｍａｒｔ  ｃｏｎｔｒａｃｔ）は、分散型ブロックチェーン台帳上で実行され、台帳上のデータを管理することができる、イベント駆動されるステートフルプログラムである。スマートコントラクトは、一般的コンピュータ実行可能プログラムと見なされてよく、このコンピュータ実行可能プログラムは、正確かつ自動的に実行されることが可能である。スマートコントラクトのコードコンテンツが、トランザクションルールおよびロジックを指定する。ユーザがスマートコントラクトに署名し呼び出したとき、それは、コントラクトコンテンツが実行されブロックチェーン台帳に書き込まれることを意味する。
【００５６】
ブロックチェーンのコア技術の１つは、合意アルゴリズム、たとえば、ビットコインで使用されるプルーフオブワーク（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ、ＰｏＷ）アルゴリズムである。ブロックチェーン上の合意アルゴリズムは、ビザンチンフォールトトレランスに向けられた合意シナリオに適用され、すなわち、ブロックチェーンネットワーク上のノードが互いに信頼せず悪意のある嘘つきノードがあり得る。ブロックチェーンネットワーク上の各ノードは、「嘘つき」ノードであり得る。しかしながら、大量のノードがネットワーク内に集約されたとき、ノードの合意結果は信頼される結果である。合意アルゴリズムの主な機能は、有効なトランザクションブロックの同じ内容をブロックチェーンのすべてのノードが記録することを可能にすることである。
【００５７】
加えて、ブロックチェーンは、複数の当事者間の信頼問題を解決するための技術的メカニズムでもある。多者間信頼の前提条件は、技術的メカニズムが信頼できることである。したがって、ブロックチェーンは監査可能であることが必要である。ブロックチェーンシステム、スマートコントラクト、および合意アルゴリズムは、オープンソースであって複数の当事者に対してオープンである必要がある。
【００５８】
ハイパーレジャー（Ｈｙｐｅｒｌｅｄｇｅｒ）のファブリックプロジェクトは、合意に達するのを加速するメカニズムを使用する。このメカニズムのコアは、複数のエンドーサーピアがスマートコントラクトを実行し、実行結果をエンドース（ｅｎｄｏｒｓｅｍｅｎｔ）し、たとえば、エンドーサーピアがエンドーサーピアのコントラクト実行結果のコンテンツに署名して、結果が特定のエンドーサーピアにより送信されることを確実にすることである。ユーザは、実際の必要性に基づいて、ユーザのスマートコントラクトおよび複数の結果についての検証ポリシーによって信頼されるようにエンドーサーピアを設定してよく、たとえば、エンドースポリシー（ｅｎｄｏｒｓｅ  ｐｏｌｉｃｙ）を設定してよい。
【００５９】
図１に示されるように、クライアントは、スマートコントラクト実行プロポーザル（ｐｒｏｐｏｓａｌ）を３つのエンドーサーピアに送信し得る。エンドースポリシーは、３つの実行結果のコンテンツが一致することを必要とすることがあり、または少なくとも２つの実行結果のコンテンツが一貫することを必要とすることがある。クライアントは、エンドーサーピアによりフィードバックされた実行結果を収集し、オーダラーピア（Ｏｒｄｅｒｅｒ  ｐｅｅｒ）を使用することによって、トランザクションに記録された実行結果をブロックチェーンネットワークにブロードキャストする。ブロックチェーンネットワーク上のノード、たとえば、エンドーサーピアは、トランザクションを読み取り、エンドースポリシーが満たされていることを検証するときにトランザクションを有効なトランザクションと見なし、トランザクションにおけるデータの変更を受け入れ、変更をブロックチェーンに書き込む。
【００６０】
クライアント（ｃｌｉｅｎｔ）またはクライアントアプリケーションは、ソフトウェア開発キット（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ、ＳＤＫ）を使用することによってファブリックシステムと対話し、有効なトランザクションを構築し、エンドーサーピアのためにトランザクションを提供する。エンドースポリシーで必要とされるエンドーサーピアからの十分なサポートが収集されると、有効なトランザクションプロポーザルが構築され、オーダラーピアまたはプロキシノードに送信され得る。
【００６１】
エンドーサーピア（ｅｎｄｏｒｓｅｒ  ｐｅｅｒ）は、クライアントからのトランザクションの妥当性および権限のチェックを担当する。トランザクションが要件を満たす場合、エンドーサーピアはトランザクションに署名し、結果をクライアントに返す。
【００６２】
オーダラーピア（ｏｒｄｅｒｅｒ  ｐｅｅｒ）は、トランザクションを順序付けし、順序付けられたトランザクションを他のノードにブロードキャストすることを担当する。オーダラーピアは、合意サービスを提供するノードまたはクラスタを含む。
【００６３】
コミッターピア（ｃｏｍｍｉｔｔｅｒ  ｐｅｅｒ）は、同意されたシーケンスを有するバッチトランザクション結果のステータスをチェックし、トランザクションがエンドースポリシーの要件を満たすかどうかをチェックし、台帳の読み取りセットにおける変数のステータスが変更されないままであることを確実にし、有効なトランザクションを実行し、ブロックを生成し、ブロックを台帳に書き込むように構成される。
【００６４】
情報伝送のセキュリティおよび識別検証の精度を改善するために、本出願の技術的解決策はさらに、閾値暗号システム（Ｔｈｒｅｓｈｏｌｄ  ｃｒｙｐｔｏｓｙｓｔｅｍ）に関する。閾値暗号システムは、複数のメンバーの間で公開鍵に対応する秘密鍵を共有し、指定された量のメンバーが互いに協力したとき、公開鍵を使用することによって暗号化された暗号文が復号されることが可能である。閾値暗号システムの基礎は、秘密分散（ｓｅｃｒｅｔ  ｓｈａｒｉｎｇ）である。
【００６５】
具体的には、閾値暗号システムの解決策では、鍵をいくつかのシェア、たとえばｎ個のシェアに分割し、これらのシェアをｎ個の参加者に１つずつ送信する。任意のｔ（ｔ＜ｎ）個の参加者またはｎ個の参加者のうちｔより多数の参加者は、協力して復号操作を完了し得るが、ｔ未満の参加者は、復号操作を完了することができない。
【００６６】
以下では、閾値パスワードシステムにおけるすべての役割の機能および復号処理を説明する。
【００６７】
図２は、閾値暗号システムにおける復号の概略的フローチャートである。閾値暗号システムは、鍵分配者、鍵参加者、および鍵合成者を含む。さらに、鍵分配者は、閾値暗号システムの信頼されるエンティティを確立するように構成され、閾値暗号システムにおけるパラメータを生成し、これらのパラメータをキー共有者に安全に送信することを担当する。鍵参加者は、閾値暗号システムにおける復号操作に参加する単一エンティティである。鍵合成者は、複数の参加者の復号されたシェアを取得し、これらの復号されたシェアを検証し復号する。
【００６８】
たとえば、図２に示される通りである。ステップ１：閾値初期化設定。鍵分配者が、セキュリティパラメータを入力し、閾値暗号システムが、（ＰＫで表され得る）公開パラメータのグループ、たとえば、ｎ、ｔ、およびＳＫを返す。ｎは鍵参加者の量を表し、ｔは閾値を表し、ＳＫは閾値パスワードシステムにより生成された主鍵を示す。任意選択で、ＳＫ＝（ＳＫ１，ＳＫ２，・・・，ＳＫｎ）である。
【００６９】
ステップ２：暗号化。システムの公開パラメータＰＫおよび鍵参加者の識別ＩＤを使用することによって、平文メッセージを暗号化し、暗号化された暗号文ｃを生成し出力する。
【００７０】
ステップ３：鍵シェア生成（Ｓｈａｒｅ  ｋｅｙ  Ｇｅｎ）。鍵分配者は、システムの公開パラメータＰＫ、暗号化された暗号文ｃ、および主鍵ＳＫを使用することによって、鍵シェアＵｉを算出する。
【００７１】
ステップ４：鍵分配者は、鍵シェアＵｉをいくつかの鍵参加者に送信する。
【００７２】
ステップ５：鍵参加者は、鍵シェアＵｉを取得し、鍵参加者は、鍵シェアＵｉを復号して、復号されたシェア、たとえば、復号されたシェア１、・・・、復号されたシェアｔを生成する。
【００７３】
ステップ６：各鍵参加者は、復号後に生成された復号されたシェアを鍵合成者に送信する。
【００７４】
ステップ７：共同復号。鍵合成者は、復号されたシェアを取得し、たとえば、ｔ個の復号されたシェアを取得し、ｔ個の復号されたシェアを検証し、公開パラメータＰＫを使用することによって、ｔ個の復号されたシェアを合成して、暗号化された暗号文ｃを取得し、最後に、暗号化された暗号文を復号して平文メッセージを取得する。
【００７５】
本出願において提供される技術的解決策は、以下の技術的問題を解決することを目標とする。ブロックチェーンにおけるアクセス権限が付与され渡されると、アクセス権限は、変更されまたは取り消されることが不可能であり、結果として、権限を付与されていないユーザがデータにアクセスすることが可能である。具体的には、クライアントがデータにアクセスすることを要求しブロックチェーンネットワーク上の暗号文を復号する処理は、以下の通りである。
【００７６】
図３に示されるように、ステップ１：ユーザＡは、クライアント１の登録情報を使用することによって、情報、たとえば、平文情報を生成する。
【００７７】
ステップ２：クライアント１は、対称鍵を使用することによって情報を暗号化する。
【００７８】
ステップ３：クライアント１は、暗号化された情報を送信し、ブロックチェーン上のトランザクションとして暗号化された情報をブロックチェーンノード１に記録する。
【００７９】
ステップ４：ブロックチェーンノード１は、トランザクションを検証しブロードキャストする。
【００８０】
ステップ５：ブロックチェーンノード１ならびにブロックチェーンノード２および３は、トランザクションを含むブロックについて合意に達する。ブロックチェーンノード１、２、および３は、同じブロックチェーン上に配置されたノードである。
【００８１】
合意は、ブロックチェーンノード１、２、および３が別個にトランザクションがポリシーを満たすかどうかをチェックし、対応する検証結果を生成し、３つのブロックチェーンノードにより生成された検証結果が同じであることとして理解され得る。
【００８２】
ステップ６：ブロックチェーンノードは、ブロックチェーンノード１、２、および３により生成された検証結果が同じであることを確認し、ブロックを生成し、ローカル台帳における既存のブロックチェーンのチェーン化された構造の末尾にブロックを追加する。
【００８３】
ステップ７：ユーザＢ  は、クライアント２を使用することによって情報、たとえば、平文情報を取得する。
【００８４】
ステップ８：クライアント２は、平文情報にアクセスするためにユーザＢのアクセス権限を取得することをクライアント１に要求する。
【００８５】
ステップ９：クライアント１は、アクセス権限情報をクライアント２に送信し、アクセス権限情報は対称鍵を含む。
【００８６】
ステップ１０：クライアント２は、ブロックチェーン台帳に記憶され暗号化された情報を取得することをブロックチェーンノード３に要求する。
【００８７】
ステップ１１：クライアント２は、対称鍵を使用することによって情報を復号する。
【００８８】
アクセス権限を渡しデータを復号する上記の処理において、ブロックチェーンノードにおける台帳の過去のトランザクションデータが変更または削除されることが可能でなく、ブロックチェーン上のデータは公開され、キャンセルされることが可能でないため、アクセス権限がユーザに付与され復号鍵が配布されると、アクセス権限が取り消されることができない。この場合、ユーザのアクセス権限が禁止される必要があるとき、ユーザがデータにアクセスするのを防止することができず、権限を付与されていないユーザによるデータアクセスのリスクおよび不安定性をもたらす。
【００８９】
上記の問題を解決するために、本出願の実施形態における技術的解決策の主な着想は、複数のプロキシノードをブロックチェーンシステムに追加することである。一般ノードの機能に加えて、各ノードは、ユーザのアクセス権限を共同して検証し、暗号文変換操作を行うようにさらに構成される。
【００９０】
図４に示されるように、ブロックチェーンシステムは、データソースまたはデータ所有者、少なくとも１つのプロキシノード（Ｐｒｏｘｙ）、複数の一般ノード、およびデータ要求ノードを含む。データソースまたはデータ所有者は、データの保存者であり、アクセス権限の認可当事者である。一般ノードは、ブロックチェーン上のトランザクションのブロードキャスト、合意到達、記録および記憶などの機能を実行するように構成され得る。ユーザ要求ノードは、データにアクセスするのを要求するノードまたはクライアントである。
【００９１】
本出願において提供される技術的解決策は主に、３つの手順、すなわち、データ記憶、権限付与、およびデータ要求を含む。一般に、第１の、データソース（ｄａｔａ  ｓｏｕｒｃｅ）またはデータ所有者は、元の暗号文を暗号化し、元の暗号文をブロックチェーン上に記録し、記憶する。
【００９２】
次いで、データソースまたはデータ所有者は、権限を付与し、データソースまたはデータ所有者は、権限情報をブロックチェーンに書き込み、権限を付与されたノードに対応する変換鍵を生成する。データソースまたはデータ所有者は、変換鍵をいくつかの部分に分割し、それらの部分を異なるプロキシノードに送信する。
【００９３】
最後に、データ要求ノード要求がデータにアクセスするのを要求したとき、プロキシノードは、合意を開始し、データ要求ノードの最新のアクセス権限を読み取り、データ要求ノードが権限を有するかどうかをチェックする。データ要求ノードが権限を有する場合、プロキシノードは、変換鍵を収集し、元の暗号文を、権限が付与されたノードのみにより復号されることが可能な別の暗号文へ変換し、暗号文を要求ノードに返す。データ要求ノードが権限を有しない場合、アクセスは拒否される。
【００９４】
本出願の以下の実施形態では、すべてのネットワークデバイスが総称的にネットワークノードと呼ばれることに留意されたい。ネットワークノードは、要求メッセージを送信する第１のノードおよび第２のノードであってよく、ブロックチェーン上のブロックチェーンノード、たとえば、第１のブロックチェーンノードもしくは第１のプロキシノード、転送用のリレーノード、または任意の一般ノードであってよく、またはデータソースであってよい。
【００９５】
さらに、ネットワークノードは、局、基地局、ユーザ機器、クライアント、および端末を含むが、これらに限定されない。また、本出願の実施形態における２つの概念、デバイスとノードは等価である。言い換えれば、デバイスは、ノード、局、ＵＥ、ネットワーク要素デバイス、またはセンサなどを指すことがある。
【００９６】
本出願に記載されているブロックチェーンおよびブロックチェーンシステムは、様々なネットワーク（たとえば、モノのインターネット）に適用されてよく、ブロックまたはブロックチェーンノードは、様々なネットワークデバイス（たとえば、モノのインターネットデバイス）に展開され得る。ネットワークデバイスは、産業用のモノのインターネットデバイス、たとえば、様々な産業用センサおよび制御モジュールであってよく、ウェアラブルデバイス、家電、ホームセンサ、もしくはホーム制御モジュールなどであってよく、または基地局、拡張された基地局、スケジューリング機能を有するリレー、もしくは基地局機能を有するデバイスなどであってよい。基地局は、ＬＴＥシステムの進化型ノードＢ（ｅｖｏｌｖｅｄ  Ｎｏｄｅ  Ｂ、ｅＮＢ）または別のシステムの基地局であってよい。これは、本出願の実施形態で限定されない。
【００９７】
また、様々なデバイス、たとえば、携帯電話、インテリジェント端末、マルチメディアデバイス、ストリーミングメディアデバイスが、ユーザ機器（ｕｓｅｒ  ｅｑｕｉｐｍｅｎｔ、ＵＥ）であり得る。代替として、ＵＥは、別のワイヤレスネットワークデバイス、たとえば、ノードＢ（Ｎｏｄｅ  Ｂ）であってよい。具体的に、ワイヤレスネットワークデバイスの形態およびタイプは本出願で限定されない。
【００９８】
ＵＥは、無線アクセスネットワーク（ｒａｄｉｏ  ａｃｃｅｓｓ  ｎｅｔｗｏｒｋ、ＲＡＮ）を介して１つもしくは複数のコアネットワークと通信してよく、ＵＥはさらに、通信のために別の様式でワイヤレスネットワークにアクセスしてよく、またはＵＥは、別のＵＥとワイヤレス通信を直接行ってよい。これは、本出願の実施形態で限定されない。
【００９９】
図４ｂを参照すると、本出願の実施形態は、データアクセス権限を制御するための方法を提供する。方法は、以下のステップを含む。
【０１００】
ステップ４０１：第１のプロキシノードが、要求ノードから第１の要求メッセージを受信し、第１の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む。
【０１０１】
実装は、第１のプロキシノードによって、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することによって転送された第１の要求メッセージを受信するステップを含む。
【０１０２】
ステップ４０２：第１のプロキシノードは、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第１の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定する。
【０１０３】
ステップ４０２において、要求ノードの識別に基づいて、第１の暗号化された暗号文を読み取る権限を要求ノードが有するかどうかを決定するステップは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るステップを含み、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【０１０４】
ステップ４０３：第１の暗号化された暗号文を読み取る権限を要求ノードが有する、すなわち認可情報が許可である場合、第１のプロキシノードは、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始し、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定する。
【０１０５】
また、第１のプロキシノードが、第１の暗号化された暗号文を読み取る権限を要求ノードが有しないと決定した場合、第１のプロキシノードは、要求ノードの第１の要求を拒否する。
【０１０６】
ステップ４０３において、第１のプロキシノードによって、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始するステップは、
第１のプロキシノードによって、ｍ個の第２のプロキシノードを決定するステップであって、ｍは１以上の正の整数である、ステップと、権限検証要求を生成するステップであって、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、ｍ個の第２のプロキシノードのそれぞれに権限検証要求を送信するステップとを含む。
【０１０７】
任意選択で、第１のプロキシノードによって、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップは、
第１のプロキシノードによって、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するステップであって、第２のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第２のプロキシノードによって生成され送信され、ｋ≦ｍである、ステップと、少なくともｋ個の部分鍵を回復して変換鍵を生成するステップと、変換鍵および暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文を第２の暗号化された暗号文に変換するステップであって、第２の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、第２の暗号化された暗号文を要求ノードに送信するステップとを含む。
【０１０８】
さらに、第１のプロキシノードによって、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップは、第１のプロキシノードが、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを要求ノードに送信するステップを含む。
【０１０９】
この実施形態で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーン上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【０１１０】
さらに、少なくとも１つの第２のプロキシノードを使用することによって要求元の識別がさらに検証され、したがって、１つのみの第１のプロキシノードが検証で使用されるときに不正行為が発生する可能性が回避されることが可能であり、それにより、検証精度をさらに改善し、情報伝送のセキュリティをさらに確実にする。
【０１１１】
第２のプロキシノードは、第１のプロキシノードから権限検証要求を受信し、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される。
【０１１２】
第２のプロキシノードは、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第２のプロキシノードは第１のプロキシノードの第１の要求を拒否し、または、はいの場合、第２のプロキシノードは部分鍵を生成し部分鍵を第１のプロキシノードに送信する。
【０１１３】
任意選択で、部分鍵を生成するステップは、第２のプロキシノードによって、ブロックチェーンネットワーク上の暗号化された部分鍵を取得するステップであって、暗号化された部分鍵は、第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成される、ステップと、第２のプロキシノードによって、第２のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するステップとを含む。
【０１１４】
この実施形態では、第１のプロキシノードが、要求ノードのアクセスが許可されることを検証したとき、第２のプロキシノードが、さらに要求ノードの権限を検証する。要求ノードのアクセスが許可されることを検証するとき、第２のプロキシノードが、生成された部分鍵を第１のプロキシノードに送信するので、第１のプロキシノードが、部分鍵を収集し最終的な変換鍵を合成し、それにより、第１のプロキシノードの不正行為を効果的に防止し、検証のセキュリティを改善する。
【０１１５】
特定の実施形態において、本出願で開示される技術的解決策が上記の３つの手順の部分に従って詳細に説明される。
【０１１６】
ａ．データ記憶手順
「データ記憶手順」における動作を実行するためのエンティティは、データソースもしくはデータ所有者であってよく、またはデータを記憶し権限を付与する機能を有する別のノードであってよい。この実施形態では、「第１のノード」は、データ記憶処理を実行するためのエンティティを表すために使用される。別の名称、たとえば、データ所有者が使用されてもよいことは理解され得る。これは、本出願で限定されない。
【０１１７】
公開鍵暗号技術がデータ記憶手順で使用される。具体的には、公開鍵暗号（Ｐｕｂｌｉｃ  ｋｅｙ  ｃｒｙｐｔｏｇｒａｐｈ）は、非対称暗号法（ａｓｙｍｍｅｔｒｉｃ  ｃｒｙｐｔｏｇｒａｐｈｙ）と呼ばれることもあり、非対称暗号法は、暗号法のアルゴリズムであり、２つの鍵、すなわち、「パブリックキー」と呼ばれる公開鍵、および「プライベートキー」と呼ばれる秘密鍵を含む。
【０１１８】
２つの鍵は、異なる機能を有する。一方は暗号化に使用され、他方は復号に使用される。たとえば、鍵の一方は、平文を暗号化して、暗号化された暗号文を取得するために使用され、元の平文は、他方の対応する鍵を使用することによってのみ復号を通じて取得されることが可能である。すなわち、暗号化鍵は、暗号文を復号しデータにアクセスするために使用されることが可能でない。２つの異なる鍵は平文を暗号化および復号するために使用されるので、この処理は非対称暗号化と呼ばれることもある。暗号化と復号に同じ鍵が使用される対称暗号化と比べて、非対称暗号化方式は高いセキュリティを有する。２つの鍵の一方が得られても、暗号化された暗号文が復号されることが不可能であり、他方の鍵が算出されることが不可能であるからである。したがって、公開鍵は他者に開示され公表され、たとえば、ブロックチェーン上に記録されてよい。秘密鍵は、クライアントまたはＵＥによって保持される。
【０１１９】
「データ記憶手順」では、第１のノードは、以下の方法処理を主に実行する。
【０１２０】
第１のノードは、第１のノードの公開鍵、および暗号化アルゴリズム、たとえばプロキシ再暗号化アルゴリズムを使用することによって、暗号文を暗号化して、第１の暗号化された暗号文Ｅａを生成し、
第１のノードは、ブロックチェーンネットワーク上にトランザクション（ｔｒａｎｓａｃｔｉｏｎ）として第１の暗号化された暗号文Ｅａを記憶する。
【０１２１】
任意選択で、トランザクション記憶方式において、第１のノードは、ブロックチェーンネットワーク上の任意の一般ノードにトランザクション要求を送信し、トランザクション要求は、第１の暗号化された暗号文Ｅａを含み、トランザクション要求を受信する一般ノードは、ブロックチェーンネットワーク上にトランザクション要求をブロードキャストし、したがって、ブロックチェーン上のすべてのブロックチェーンノードが合意に達し、第１の暗号化された暗号文Ｅａの関係付けられたトランザクションを記憶する。
【０１２２】
さらに、任意選択で、別のトランザクション記憶方式において、第１のノードは、第１の暗号化された暗号文を含むトランザクション要求を任意のプロキシノード、たとえば、第１のプロキシノードに直接送信し、第１のプロキシノードはトランザクションをブロードキャストし、ブロックチェーン上のトランザクションについて合意に達する。
【０１２３】
ｂ．権限付与手順
図５に示されるように、方法は以下のステップを含む。
【０１２４】
ステップ５０１：第１のノードが、第２のノードの識別Ｉ、および第１の暗号化された暗号文Ｅａについての第２のノードのアクセス権限情報Ｒを記録する。
【０１２５】
第２のノードは、認可されたユーザであり、第２のノードの識別Ｉは、第２のノード識別子、ユーザＩＤ、デバイスＩＤ、デバイス識別子などであってよい。アクセス権限情報Ｒは、権限の付与および権限のキャンセルを含む。
【０１２６】
ステップ５０２：アクセス権限情報Ｒが権限を付与するまたは権限をキャンセルするコンテンツを含むかどうかを決定する。
【０１２７】
ステップ５０３ａ：アクセス権限情報Ｒが権限を付与するコンテンツを有する場合、第１のノードは、第１のノードの秘密鍵、第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵Ｔを生成する。
【０１２８】
ステップ５０３ｂ：アクセス権限情報Ｒが権限をキャンセルするコンテンツを有する場合、第１のノードは、トランザクション要求をブロックチェーンネットワーク上の任意のノードに送信し、トランザクション要求は、第２のノードのアクセス権限情報Ｒおよび識別Ｉを含む。
【０１２９】
ステップ５０４：ステップ５０３ａの手順を続ける。第１のノードは、秘密分散アルゴリズムを使用することによって変換鍵Ｔをｎ個の部分鍵に分割し、ここで、ｎは１以上の正の整数である。
【０１３０】
任意選択で、変換鍵Ｔは（ｍ，Ｔｎ）に分割される。Ｔｎは、分割を通して取得された任意の部分鍵を表し、ｍは、変換鍵Ｔを回復するために使用されることが可能な最小量Ｔｎを表す。
【０１３１】
ステップ５０５：第１のノードは、ブロックチェーンネットワークからｍ個のプロキシノードをランダムに選択し、ｍ個のプロキシノードの公開鍵を使用することによってｎ個の部分鍵Ｔｎを暗号化して、ｎ個の暗号化された部分鍵Ｔｎｅを生成し、ここで、ｍ≦ｎである。
【０１３２】
ステップ５０６：第１のノードは、第１のトランザクション情報を生成し、第１のトランザクション情報を任意の一般ノードまたはブロックチェーンノードに送信し、第１のトランザクション情報は、第２のノードの識別Ｉ、第２のノードの認可情報（またはアクセス権限情報Ｒ）、および暗号化された部分鍵Ｔｎｅのうちの少なくとも１つを含む。
【０１３３】
任意選択で、第１のトランザクション情報は、ｍ個のプロキシノードの識別と、変換鍵を回復するための最小量ｍの部分鍵Ｔｎｅとをさらに含む。
【０１３４】
ステップ５０７：一般ノードまたはプロキシノードが、ブロックチェーンネットワーク上で第１のトランザクション情報（Ｉ，Ｒ，Ｔｎｅ，ｍ）をブロードキャストおよび記憶し、またはステップ５０３ｂの手順に基づいてトランザクション要求（Ｉ，Ｒ）をブロードキャストおよび記憶する。
【０１３５】
ｃ．データ要求手順
この「データ要求手順」は、要求ノードがブロックチェーンに対するデータアクセス要求を開始し、認可されたアクセスが満たされたときに暗号化された暗号文を復号しそれにアクセスする処理を説明する。具体的には、図６に示されるように、手順は以下のステップを含む。
【０１３６】
ステップ６０１：データ要求ノードは、第１の要求メッセージを任意の一般ノードに送信し、第１の要求メッセージは、要求ノードの識別Ｉおよびアクセスされるべきデータの識別子、またはアクセスされるべきデータの識別子に対応する第１の暗号化された暗号文Ｅａを含む。
【０１３７】
ステップ６０２：一般ノードは、第１の要求メッセージを受信し第１のプロキシノードＰｍに転送する。
【０１３８】
任意選択で、第１のプロキシノードＰｍは、この要求のプライマリノードの役割をしてよい。
【０１３９】
ステップ６０３：第１のプロキシノードＰｍは、第１の要求メッセージを受信し、第１の要求メッセージで搬送されるアクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワーク上の第１の暗号化された暗号文Ｅａを決定し、要求ノードの識別Ｉに基づいて、第１の暗号化された暗号文Ｅａを読み取る権限を要求ノードが有するかどうかを決定する。
【０１４０】
たとえば、第１のプロキシノードＰｍは、ブロックチェーン上で、要求ノードの識別Ｉに基づいて要求ノードの認可情報を読み取り、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可および不許可を含む。
【０１４１】
任意選択で、複数の認可情報が存在する場合、最も大きい数を有するブロックに配置された認可情報が使用される。
【０１４２】
ステップ６０４ａ：データ要求ノードが権限を有せず、またはアクセスが許可されない場合、データ要求ノードのこのアクセス要求を拒否する。
【０１４３】
ステップ６０４ｂ：データ要求ノードが権限を有し、アクセスが許可される場合、少なくとも１つの第２のプロキシノードＰに対して要求ノードについての権限検証要求を開始する。
【０１４４】
第２のプロキシノードの選択はブロックチェーン上で事前設定されてよく、またはシステムがデフォルトでブロックチェーンノードが互いに発見できるものとする。
【０１４５】
さらに、デフォルトでブロックチェーンノードが互いに発見できるものとすることは、第１のプロキシノードは、トランザクション情報、たとえば、「権限付与手順」においてブロックチェーンに記憶された第１のトランザクションを使用することによって、部分鍵Ｔｎを暗号化する特定の第２のプロキシノードを認識し、暗号化された部分鍵Ｔｎｅを生成し、次いで、これらの第２のプロキシノードのそれぞれに権限検証要求を送信し得ることを意味する。
【０１４６】
権限検証要求は、要求ノードの識別Ｉおよび第１の暗号化された暗号文Ｅａを含む。
【０１４７】
ステップ６０５：第２のプロキシノードＰは、第１のプロキシノードＰｍから権限検証要求（Ｉ，Ｅａ）を受信し、要求ノードの識別Ｉに基づいて、第１の暗号化された暗号文Ｅａを読み取る権限をデータ要求ノードが有するかどうかを決定する。
【０１４８】
第１の暗号化された暗号文Ｅａは、アクセスされるべきデータを暗号化することによって生成される。
【０１４９】
ステップ６０６ａ：いいえ（認可されない）の場合、データ要求ノードのこのアクセス要求を拒否する。たとえば、第２のプロキシノードＰは、アクセス拒否メッセージを第１のプロキシノードＰｍにフィードバックする。
【０１５０】
ステップ６０６ｂ：はい（認可された）の場合、部分鍵Ｔｎを生成し、部分鍵Ｔｎを第１のプロキシノードＰｍに送信する。
【０１５１】
具体的には、第２のプロキシノードＰは、ブロックチェーン上で暗号化された部分鍵Ｔｎｅを読み取り、第２のプロキシノードＰの秘密鍵を使用することによってＴｎｅを復号して、部分鍵Ｔｎを取得する。
【０１５２】
ステップ６０７：第１のプロキシノードＰｍは、少なくともｋ個の第２のプロキシノードＰにより送信された部分鍵Ｔｎを受信し、ここで、ｋ≦ｍであり、ｍは、第２のプロキシノードの量ｍであり、第２のプロキシノードは、第１のプロキシノードＰｍにより決定され、権限検証要求を送信する。
【０１５３】
ステップ６０８：第１のプロキシノードＰｍは、少なくともｋ個の部分鍵Ｔｎを回復して、変換鍵Ｔを生成する。
【０１５４】
ステップ６０９：第１のプロキシノードＰｍは、変換鍵Ｔおよび暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文Ｅａを第２の暗号化された暗号文Ｅｂに変換し、第２の暗号化された暗号文Ｅｂは、データ要求ノードの公開鍵を使用することによって暗号化が行われた後に生成される。
【０１５５】
ステップ６１０：第１のプロキシノードＰｍは、第２の暗号化された暗号文Ｅｂを一般ノードに送信する。
【０１５６】
ステップ６１１：一般ノードは、第２の暗号化された暗号文Ｅｂを受信し、データ要求ノードに送信し、したがって、データ要求ノードは、データ要求ノードの秘密鍵を使用することによって第２の暗号化された暗号文Ｅｂを復号して、アクセスされるべきデータを取得する。
【０１５７】
有益な効果
本出願のこの実施形態で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーン上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【０１５８】
「権限付与手順」では、データソースは、変換鍵を複数の部分鍵に分割し、複数の部分鍵は、ブロックチェーン上に記憶され、複数のプロキシノードによって保持される。このように、変換鍵は、十分な量の部分鍵が「データ要求手順」で取得された後のみに回復されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、それにより、少数のノードが不正行為により権限制御を回避し暗号文を取得することを効果的に防止する。この方法は、復号複雑性を増大させて、効果的に暗号文の送信および読み取りのセキュリティを確実にし、権限を付与されていないユーザが暗号文またはデータを読み取るのを防止する。
【０１５９】
また、データを読み取るとき、権限を付与されていない当事者、たとえば、第１のプロキシノードおよび第２のプロキシノードが、平文を取得することができず、結果として、平文のコンテンツを読むことできず、それにより、データプライバシを保護する。
【０１６０】
この実施形態における「権限付与手順」および「データ要求手順」において変換鍵を分割および回復するプロセスに関して、上述された閾値暗号システムの役割の（図２に示される）機能およびフローチャートを参照することに留意されたい。
【０１６１】
また、この実施形態におけるプロキシノードは、プロキシ再暗号化システムにおけるプロキシノードまたはプロキシであってよく、プロキシ再暗号化（Ｐｒｏｘｙ  ｒｅ−ｅｎｃｒｙｐｔｉｏｎ）システムは、暗号文を安全に変換する機能を有する新しい公開鍵暗号化システムである。
【０１６２】
図７は、実施形態によるプロキシ再暗号化システムの役割のフローチャートである。システムは、委託者（Ｄｅｌｅｇａｔｏｒ）、セミトラステッドプロキシ（Ｐｒｏｘｙ）、および受託者（Ｄｅｌｅｇａｔｅｅ）を含む。
【０１６３】
具体的には、ステップ７０１：委託者は、委託者の公開鍵を使用することによって平文メッセージを暗号化して、暗号化された暗号文を生成する。
【０１６４】
ステップ７０２：委託者が、暗号化された暗号文をセミトラステッドプロキシに送信する。
【０１６５】
ステップ７０３：委託者は、受託者の公開鍵を取得する。
【０１６６】
ステップ７０４：委託者は、受託者のための暗号文変換鍵を認可する。
【０１６７】
ステップ７０５：委託者は、暗号文変換鍵をセミトラステッドプロキシに送信する。
【０１６８】
ステップ７０６：セミトラステッドプロキシが、委託者からの暗号化された暗号文、および受託者のための暗号文変換鍵を取得し、セミトラステッドプロキシは、暗号化された暗号文を変換する。具体的には、セミトラステッドプロキシは、暗号化された暗号文を、受託者の公開鍵により暗号化された暗号文に変換する。
【０１６９】
ステップ７０７：セミトラステッドプロキシは、変換された暗号文を受託者に送信する。
【０１７０】
ステップ７０８：受託者は、変換された暗号文を取得し、受託者の秘密鍵を使用することによって、変換された暗号文を復号して、平文メッセージを生成する。
【０１７１】
この実施形態では、プロキシ再暗号化システムにおける役割の機能に基づいて、権限検証処理がプロキシノードに追加され、認可されたアクセス権限を満たさないノードのアクセスが拒否され、それにより、ブロックチェーン上の各権限を制御および変更し、データ伝送のセキュリティおよび信頼性を改善する。
【０１７２】
特定の実施形態では、本出願で提供される方法は、アリスがスーパーレジャーファブリックブロックチェーン上にアリスの年齢を記憶し、年齢へのボブのアクセスを制御する例を使用することによって、詳細に説明される。
【０１７３】
この実施形態で使用されるシステムは、前もって確立され、システムのユーザとして、各参加者は、ペアの鍵（公開鍵および秘密鍵）を生成する。公開鍵は、ブロックチェーンネットワーク上に記録され開示されている。
【０１７４】
新しいプロキシノードが既存のファブリックブロックチェーンネットワークに追加され、新しいプロキシノードは権限検証および暗号文変換などの機能を有する。３つのプロキシノード（Ｘ、Ｙ、Ｚ）が、以下の構成ファイルを使用することによってファブリックブロックチェーンネットワークに追加される。
【０１７５】
特定の手順が図８に示される。
【０１７６】
データ記憶手順において、アリスは、データ所有者またはデータソースとして以下の方法ステップを実行し得る。
【０１７７】
ステップ８０１：アリスは、アリスの公開鍵Ｐａおよびプロキシ再暗号化アルゴリズムを使用することによって、アリスの年齢を含むデータに対してプロキシ再暗号化を実行して、第２層暗号文Ｅａを生成する。
【０１７８】
プロキシ再暗号化アルゴリズムは、非特許文献１に記載されたプロキシ再暗号化アルゴリズムにおける第２層暗号化アルゴリズ（Ｅ２）であり得る。
【０１７９】
ステップ８０２：アリスは、トランザクションにＥａをパッケージし、トランザクションをブロックチェーンネットワーク上の任意の一般ノードに送信する。一般ノードは、トランザクションを受信し、トランザクションをブロードキャストし、トランザクションについて合意に達してトランザクションを確認する。
【０１８０】
任意選択で、
記憶されたデータ擬似コードは以下の通りである。
【０１８１】
Ｆｕｎｃ  ｅｎｃｒｙｐｔ（ｄａｔａ）｛
Ｅａ  ＝  Ｅ２（ｄａｔａ，  Ｐａ）  ／／第２層暗号文を生成する
Ｔｘ  ＝  Ｐａｃｋａｇｅ（Ｅａ）  ／／トランザクションにＥａをパッケージする
Ｓｅｎｄ（Ｔｘ）  ／／トランザクションを送信する
｝
【０１８２】
パッケージされたトランザクションが表１に示される。
【０１８３】
【表１】
2021516917.tif 000003
【０１８４】
一般ノードにより実行される記録されたデータの擬似コードは、以下の通りである。
【０１８５】
ｆｕｎｃ  ｗｒｉｔｅＤａｔａ（ｄａｔａ，  ｏｗｎｅｒ）  ｛
ｉｄ＝＝ｎｕｌｌ：０？ｉｄ＋＋
ｐｕｔＳｔａｔｅ（”Ｄａｔａ”，  ｛”ｉｄ”：ｉｄ，  ”ｄａｔａ”：ｄａｔａ，  ”ｏｗｎｅｒ”：ｏｗｎｅｒ  ｝）  ／／データを記憶する
ｒｅｔｕｒｎ  ＳＵＣＣＥＳＳ
｝
【０１８６】
トランザクションが完了された後、ファブリックブロックチェーンに記録されたワールドステートが表２に示されるように表示される。
【０１８７】
【表２】
2021516917.tif 000004
【０１８８】
権限付与手順
ステップ８０３：アリスは、アリスの秘密鍵Ｓａおよびボブの公開鍵Ｐｂを使用することによって、プロキシ再暗号化アルゴリズムにおける変換鍵生成アルゴリズム（ＲＧ）を実行して、変換鍵Ｔとも呼ばれる再暗号化鍵Ｔを生成する。
【０１８９】
ステップ８０４：アリスは、変換鍵Ｔを使用し、ｎ＝３およびｋ＝２に設定し、ここで、ｎは、変換鍵Ｔを分割することによって得られるシェアの量を表し、ｋは、Ｔを回復するためのプロキシノードの最小量を表し、そして、シャミア鍵共有アルゴリズムを使用することによって、変換鍵Ｔを３つの部分鍵Ｔ１、Ｔ２、およびＴ３に分割する。
【０１９０】
ステップ８０５：アリスは、プロキシノードＸ、Ｙ、およびＺの公開鍵を使用することによって部分鍵Ｔ１、Ｔ２、およびＴ３を暗号化して、暗号化された部分鍵、たとえば、Ｔ１ｘ、Ｔ２ｙ、およびＴ３ｚを生成する。
【０１９１】
ステップ８０６：アリスは、要求者ボブが第２層暗号文Ｅａにアクセスする権限を有することを記録し、暗号文処理ノードは、Ｘ、Ｙ、およびＺであり、少なくとも２つのノードが共同処理に必要とされる。
【０１９２】
ステップ８０７：アリスパッケージは、上記の情報をトランザクションにパッケージし、トランザクションを一般ノードに送信し、一般ノードは、トランザクションに関する情報をブロードキャストし、トランザクションに関する情報について合意に達してトランザクションを確認する。
【０１９３】
任意選択で、
認可擬似コードは以下の通りである。
【０１９４】
Ｆｕｎｃ  Ａｕｔｈｏｒｉｚｅ（ｄａｔａｉｄ，  ｄｅｌｅｇａｔｅｅ，  ｒｉｇｈｔ，  ｔｈｒｅｓｈｏｌｄ，  ｄｉｖｉｓｉｏｎ）｛
Ｔ＝ＲＧ（Ｓａ，  ｄｅｌｅｇａｔｅｅ）／／変換鍵を生成する
Ｔｎ＝ＳｈａｍｉｒＳｐｌｉｔ（Ｔ，  ｄｉｖｉｓｉｏｎ，  ｔｈｒｅｓｈｏｌｄ）／／変換鍵を分割部分へ分割し、変換鍵は最小閾値部分を使用することによって回復されることが可能である。  
Ｆｏｒｅａｃｈ（ｔ  ｉｎ  Ｔｎ）｛／／Ｔｎにおける各鍵について
ｐ＝Ｒａｍｄｏｎ（ｐｒｏｘｙｌｉｓｔ）／／プロキシをランダムに選択する
Ｐｒｏｘｉｅｓ  ＋＝  ｐ／／選択されたプロキシを記録する
Ｔｎｅ  ＋＝  Ｅｎｃｒｙｐｔ（ｔ，  ｐ．Ｐｋ）  ／／プロキシの公開鍵を使用することによってｔを暗号化する
｝
Ｔｘ  ＝  Ｐａｃｋａｇｅ（Ａｌｉｃｅ，  ｄａｔａｉｄ，  ｄｅｌｅｇａｔｅｅ，  ｒｉｇｈｔ，  Ｐｒｏｘｉｅｓ，  Ｔｎｅ，  ｔｈｒｅｓｈｏｌｄ）
Ｓｅｎｄ（Ｔｘ）
｝
【０１９５】
パッケージされたトランザクションが表３に示される。
【０１９６】
【表３】
2021516917.tif 000005
【０１９７】
任意選択で、一般ノードによって実行される認可情報を記録する擬似コードは、以下の通りである。
【０１９８】
ｆｕｎｃ  ａｕｔｈｏｒｉｚｅ（ｄｅｌｅｇａｔｏｒ，  ｄａｔａｉｄ，  ｄｅｌｅｇａｔｅｅ，  ｒｉｇｈｔ，  ｋｅｙｓ，  ｐｒｏｘｙ，  ｋｅｙｓ，  ｔｈｒｅｓｈｏｌｄ）  ｛
ｉｆ  ｄｅｌｅｇａｔｏｒ  ＝＝  ｄａｔａ．ｏｗｎｅｒ｛／／認可者がデータ所有者であるかどうかを決定する
ｉｄ＝＝ｎｕｌｌ：０？ｉｄ＋＋
”ｒｉｇｈｔ”：  ｒｉｇｈｔ，  ”ｙｅｓ”：  ｋｅｙｓ｝）／／認可情報を記憶する
ｐｕｔＳｔａｔｅ（”Ｐｒｏｘｙ”，｛”ｉｄ”：ｉｄ，”ｐｒｏｘｙ”：ｐｒｏｘｙ，”ｔｈｒｅｓｈｏｌｄ”：ｔｈｒｅｓｈｏｌｄ｝）  ／／プロキシ情報を記憶する
ｒｅｔｕｒｎ  ＳＵＣＣＥＳＳ
｝
ｒｅｔｕｒｎ  ＦＡＩＬ
｝
【０１９９】
トランザクションが完了された後、ファブリックブロックチェーンに記録されたワールドステート状態が表４に示されるように表示される。
【０２００】
【表４】
2021516917.tif 000006
【０２０１】
データ要求
手順
ステップ８０８：ボブは、データ要求を任意の一般ノードに対して開始し、データ要求は、識別情報ボブおよびアクセスされるべきデータオブジェクト１を含む。
【０２０２】
ステップ８０９：一般ノードはデータ要求をプロキシノードＸに転送し、プロキシノードＸは、この要求についてのプライマリノードまたは第１のプロキシノードの役割をする。
【０２０３】
ステップ８１０：プロキシノードＸは、ブロックチェーン上のデータオブジェクト１に対するボブの最新の権限を読み取り、ここでは、読み取りの結果は「許可」である。
【０２０４】
ステップ８１１：プロキシノードＸは、データオブジェクト１の鍵処理ノード［Ｘ，Ｙ，Ｚ］を読み取り、ノードＸ、Ｙ、およびＺのそれぞれに対して鍵要求を開始し、鍵要求はボブの識別およびデータオブジェクト１を含み、プロキシノードＸは、フィードバック結果の待機を始める。
【０２０５】
ステップ８１２：プロキシノードＸ、Ｙ、およびＺは、チェーン上のデータオブジェクト１に対するボブの最新の権限を読み取り、ここでは、読み取りの結果は「許可」である。
【０２０６】
ステップ８１３：読み取りの結果が「許可」であるとき、プロキシノードＸ、Ｙ、およびＺは、チェーンに記録された暗号化された部分鍵Ｔ１ｘ、Ｔ２ｙ、およびＴ３ｚをそれぞれ読み取り、プロキシノードＸ、Ｙ、Ｚの秘密鍵を使用することによってこれらの暗号化された部分鍵を復号して部分鍵Ｔ１、Ｔ２、およびＴ３を取得し、次いで、部分鍵をプロキシノードＸに送信する。
【０２０７】
ステップ８１４：プロキシノードＸは、部分鍵Ｔ１、Ｔ２、およびＴ３のいずれか２つ、たとえば、Ｔ１およびＴ２を受信し、シャミア秘密分散アルゴリズムを使用することによって分割部分鍵を変換鍵Ｔへ回復する。
【０２０８】
ステップ８１５：プロキシノードＸは、データオブジェクト１に対応する第２層暗号文Ｅａを読み取り、変換鍵Ｔを使用することによってプロキシ再暗号化アルゴリズムにおける再暗号化方法（Ｒ）を実行して、第２層暗号文Ｅａを、ボブの公開鍵Ｐｂを使用することによって暗号化された第１層暗号文Ｅｂに変換する。
【０２０９】
ステップ８１６：プロキシノードＸは、第１層暗号文Ｅｂをボブに送信する。
【０２１０】
ステップ８１７：ボブは、第１層暗号文Ｅｂを受信し、ボブの秘密鍵Ｓｂを使用することによってプロキシを再暗号化アルゴリズムにおける復号方法（Ｄ）を実行して、アリスの年齢、すなわちａを取得する。
【０２１１】
この実施形態で提供される方法によれば、チェーン上のデータ伝送中の任意のノードの権限を制御するために、プロキシノードがブロックチェーンに追加される。具体的には、データ要求ノードがデータにアクセスする権限を有しないことが見出されたとき、データ要求ノードがデータにアクセスし続けることを防止するために、データ要求ノードの現在の要求が変更または拒否され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【０２１２】
また、閾値暗号システム内のすべての参加者が復号を完了するために互いに協力する特徴に基づいて、変換鍵は複数の部分鍵に分割され、複数の部分鍵はブロックチェーンに記憶され、複数のプロキシノードによって保持される。このように、変換鍵は、十分な量の部分鍵が「データ要求手順」で取得された後のみに回復されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、それにより、少数のノードが不正行為により権限制御を回避し暗号文を取得することを効果的に防止する。この方法は、復号複雑性を増大させて、データ伝送および読み取りのセキュリティを改善する。
【０２１３】
任意選択で、プロキシノードＸにより実行されるデータを読み取る擬似コードは、以下の通りである。
【０２１４】
Ｆｕｎｃ  ＲｅａｄＤａｔａ（ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）｛
Ｒ  ＝  ＲｅａｄＬａｓｔｅｓｔＲｉｇｈｔ（ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）  ／／最新の権限情報を読み取る
ｉｆ（Ｒ＝＝ａｌｌｏｗ）｛／／権限が付与されたかどうか決定する
Ｐｒｏｘｉｅｓ，  Ｔｈｒｅｓｈｏｌｄ  ＝  ＲｅａｄＰｒｏｘｙ（ｄａｔａ）  ／／変換鍵を保持するプロキシノードを読み取る
Ｆｏｒｅａｃｈ（ｐ  ｉｎ  Ｐｒｏｘｉｅｓ）｛
Ｋｅｙｓ  ＋＝  ｒｅｑｕｅｓｔＫｅｙ（ｐ，  ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）  ／／変換鍵のセグメントに適用する
｝
Ｉｆ（Ｋｅｙｓ．ｓｉｚｅ  ＞＝  Ｔｈｒｅｓｈｏｌｄ）｛／／収集された鍵フラグメントの量が閾値より大きいとき
Ｔ  ＝  Ｓｈａｍｉｒ．ＲｅｃｏｖｅｒＫｅｙ（Ｋｅｙｓ）  ／／鍵を回復する
Ｅａ  ＝  ＲｅａｄＥｎｃｒｙｐｔＤａｔａ（ｄａｔａ）  ／／元の暗号文を読み取る
Ｅｂ  ＝  Ｒ（Ｅａ，  Ｔ）  ／／アリスの公開鍵についての第２層暗号文をボブの公開鍵についての第１層暗号文に変換する
Ｒｅｔｕｒｎ  Ｅｂ
｝
Ｒｅｔｕｒｎ  ＦＡＩＬ  ／／変換鍵の十分なセグメントが収集されない
｝
Ｒｅｔｕｒｎ  ＵＮＡＵＴＨＯＲＩＺＥＤ  ／／認可されない
｝
【０２１５】
プロキシノードＸ、Ｙ、およびＺにより実行される鍵を読み取る擬似コードは、以下の通りである。
【０２１６】
Ｆｕｎｃ  ＲｅａｄＫｅｙ（ｄａｔａ，ｄｅｌｅｇａｔｅｅ）｛
Ｒ  ＝  ＲｅａｄＬａｓｔｅｓＲｉｇｈｔ（ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）／／最新の権限情報を読み取る
ｉｆ（Ｒ＝＝ａｌｌｏｗ）｛／／権限が付与されたかどうか決定する
Ｔｈｅ  ＥＫｅｙ  ＝  ＲｅａｄＥｎｃｒｙｐｔｅｄＫｅｙ（ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）／／プロキシノードにより保持される変換鍵のセグメントを読み取る
Ｋｅｙ  ＝  Ｄｅｃｒｙｐｔ（Ｅｋｅｙ，  ｓｅｌｆ．Ｓｋ）  ／／復号のためのプロキシノードの秘密鍵を使用する
Ｒｅｔｕｒｎ  Ｋｅｙ
｝
Ｒｅｔｕｒｎ  ＵＮＡＵＴＨＯＲＩＺＥＤ  ／／認可されない
｝
【０２１７】
認可取り消し手順：
上記の実施形態では、ボブの最新のアクセス権限が「不許可」であることをアリスが読み取ると、ボブの以前の認可が取り消される。具体的な処理は以下のようになる。
【０２１８】
アリスは、「不許可」であるボブの権限をブロックチェーンに追加する。
【０２１９】
この場合、ファブリックブロックチェーンに記録されたワールドステート状態が表５に示されるように表示される。
【０２２０】
【表５】
2021516917.tif 000007
【０２２１】
プロキシノードＸが、権限情報を読み取る処理において、権限情報がアクセス拒否を示すことを見出したとき、プロキシノードＸは、要求ノードのアクセス要求を拒否する。
【０２２２】
プロキシノードＸは、代替としてプライマリプロキシノード、たとえば、第１のプロキシノードであってよく、または別のプロキシノード、たとえば、プロキシノードＹおよびＺであってよいことは理解され得る。
【０２２３】
任意選択で、本出願の上記の実施形態におけるアクセス権限を制御するための方法はさらに、プロキシノードが不正行為をするのを防止し得る。具体的には、たとえば、この実施形態において、変換鍵は３つの部分に分割され、鍵共有参加者の閾値量は２である。以下の不正行為のケースがある。：
ケース１：プロキシノードＸが不正をし、権限が「不許可」であるときに部分鍵を求め続ける。プロキシノードＹおよびＺは不正をせず、権限情報が「不許可」であることを見出した場合に要求ノードのアクセス要求を拒否する。このケースでは、プロキシノードＸは変換鍵を取得することができない。
【０２２４】
ケース２：プロキシノードＸおよびＹが一緒に不正をする。変換鍵は取得されることが可能であるが、変換鍵を使用することによって変換が行われた後に結果が取得される暗号文はボブであるので、プロキシノードＸおよびＹはボブの秘密鍵を有せず、復号によって平文が取得されることが不可能である。
【０２２５】
ケース３：ボブは不正をし、変換鍵を取得することができない。
【０２２６】
ケース４：プロキシノードＸおよびＹならびにボブが一緒に不正をする。
【０２２７】
ボブが認可されない場合、ボブは変換鍵を取得することができない。
【０２２８】
ボブの認可が取り消される場合、ボブは、変換鍵を取得することができ、復号によって平文を取得することができる。しかしながら、不正行為コストは、認可中にボブが平文をバッファする方式のコストよりも高い。このケースでは、ボブが認可されているデータのみが漏洩され、他のデータは影響されない。
【０２２９】
図９は、本出願の実施形態によるデータアクセス権限を制御するための装置の概略構造図である。装置は、プロキシノードを含む。装置は、図５および図６に対応する権限を制御するための方法を実行するために、上記の実施形態におけるプロキシノードであってよく、またはプロキシノードに配置され、もしくは第１のプロキシノードに適用されてよい。
【０２３０】
図９に示されるように、ネットワークノードは、受信ユニット９０１、処理ユニット９０２、および送信ユニット９０３を含む。加えて、ネットワークノードは、別のユニットおよびモジュール、たとえば、記憶ユニットをさらに含み得る。
【０２３１】
具体的には、受信ユニット９０１は、要求ノードから第１の要求メッセージを受信するように構成され、第１の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む。
【０２３２】
処理ユニット９０２は、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第１の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するように構成される。
【０２３３】
送信ユニット９０３は、要求ノードが第１の暗号化された暗号文を読み取る権限を有していない場合、要求ノードの第１の要求を拒否し、要求ノードが権限を有する場合、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始するように構成される。
【０２３４】
処理ユニット９０２は、要求ノードが権限を有する場合、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するようにさらに構成される。
【０２３５】
任意選択で、この実施形態の可能な実装において、送信ユニット９０３は、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るように特に構成され、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可および不許可を含む。
【０２３６】
任意選択で、この実施形態の別の可能な実装では、処理ユニット９０２は、ｍ個の第２のプロキシノードを決定し、権限検証要求を生成するように特に構成され、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、ｍは１以上の正の整数である。
【０２３７】
送信ユニット９０３は、ｍ個の第２のプロキシノードのそれぞれに権限検証要求を送信するように特に構成される。
【０２３８】
任意選択で、この実施形態のさらに別の可能な実装では、受信ユニット９０１は、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するようにさらに構成され、第２のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第２のプロキシノードによって生成され送信され、ｋ≦ｍである。
【０２３９】
処理ユニット９０２は、少なくともｋ個の部分鍵を回復して変換鍵を生成し、変換鍵および暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文を第２の暗号化された暗号文に変換するように特に構成され、第２の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される。
【０２４０】
送信ユニット９０３は、第２の暗号化された暗号文を要求ノードに送信するようにさらに構成される。
【０２４１】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット９０２は、受信ユニットを使用することによって、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または受信ユニットを使用することによって、少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、送信ユニットを使用することによって、アクセス拒否メッセージを要求ノードに送信するように特に構成される。
【０２４２】
任意選択で、この実施形態のさらに別の可能な実装では、受信ユニット９０１は、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された第１の要求メッセージを受信するように特に構成される。
【０２４３】
ネットワークノードは、第２のプロキシノードにさらに適用されてよく、権限検証および結果フィードバックなどの第２のプロキシノードの機能を実行するように構成される。
【０２４４】
具体的には、受信ユニット９０１は、第１のプロキシノードから権限検証要求を受信するように構成され、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される。
【０２４５】
処理ユニット９０２は、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第１のプロキシノードの第１の要求を拒否し、または、はいの場合、部分鍵を生成するように構成される。
【０２４６】
送信ユニット９０３は、部分鍵を第１のプロキシノードに送信するように構成される。
【０２４７】
加えて、任意選択で、プロセッサは、ブロックチェーンネットワーク上の暗号化された部分鍵を取得し、暗号化された部分鍵は、第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、第２のプロキシノードの公開鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するように特に構成される。
【０２４８】
また、ネットワークノードは、代替として、データソースまたはデータ所有者、たとえば、第１のノードであってよく、第１のノードの構造は、図９に示されたネットワークノードの構造と同じである。しかしながら、ネットワークノードにおける各ユニットは、以下の機能をさらに有する。
【０２４９】
具体的には、受信ユニット９０１は、第２のノードの識別を取得するように構成され、識別は、第２のノードの認可情報を決定するために使用され、認可情報は、許可および不許可を含む。
【０２５０】
処理ユニット９０２は、認可情報が許可である場合、ネットワークノードの秘密鍵、第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成し、第１のトランザクション情報を生成し、ブロックチェーンネットワーク上に第１のトランザクション情報を記録するように構成され、
第１のトランザクション情報は、第２のノードの識別、第２のノードの認可情報、および暗号化された部分鍵を含む。
【０２５１】
任意選択で、この実施形態の可能な実装では、処理ユニット９０２は、秘密分散アルゴリズムを使用することによって変換鍵をｎ個の部分鍵に分割し、ｎは１以上の正の整数であり、ブロックチェーンネットワークからｍ個のプロキシノードを選択し、ｍ個のプロキシノードの公開鍵を使用することによってｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成し、ｍ≦ｎであるように特に構成される。
【０２５２】
第１のトランザクション情報は、ｍ個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量ｋとをさらに含む。
【０２５３】
任意選択で、この実施形態の別の可能な実装では、処理ユニット９０２は、第１のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第１のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第１のトランザクション情報について合意に達し、第１のトランザクション情報を記憶するように特に構成される。
【０２５４】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット９０２は、認可情報が不許可である場合、第２のノードの認可情報をキャンセルし、第２のトランザクション情報を生成し、ブロックチェーンネットワーク上に第２のトランザクション情報を記録するようにさらに構成され、第２のトランザクション情報は、第２のノードの識別および第２のノードの認可情報を含む。
【０２５５】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット９０２は、第２のノードの識別を取得する前に、第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成し、ブロックチェーンネットワーク上のトランザクションとして第１の暗号化された暗号文を記憶するようにさらに構成される。
【０２５６】
図１０に示されるように、特定のハードウェア実装において、上記の実施形態のネットワークノードは、トランシーバ１２０１、プロセッサ１２０２、およびメモリ１２０３を含む。ネットワークノードは、より多数または少数のコンポーネントをさらに含み、またはいくつかのコンポーネントを組み合わせてよく、または異なるコンポーネント配置を有してよい。これは、本出願で限定されない。
【０２５７】
トランシーバ１００１は、要求メッセージおよびフィードバック情報を受信および送信し、ネットワーク内の別のノードとのデータ伝送を実行するように構成される。トランシーバモジュールは、トランシーバモジュールを含んでよく、トランシーバモジュールは、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）モジュール、Ｂｌｕｅｔｏｏｔｈモジュール、ベースバンド（ｂａｓｅ  ｂａｎｄ）モジュールなどの通信モジュール、および通信モジュールに対応する無線周波数（ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ、ＲＦ）回路を含み得る。トランシーバモジュールは、ワイヤレスローカルエリアネットワーク、Ｂｌｕｅｔｏｏｔｈ通信、赤外線通信での通信、ならびに／またはセルラー通信システム、たとえば、広帯域符号分割多元接続（Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ、ＷＣＤＭＡ）および／もしくは高速ダウンリンクパケットアクセス（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｄｏｗｎｌｉｎｋ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ、ＨＳＤＰＡ）での通信を実行するように構成される。トランシーバモジュールは、端末デバイス内のすべてのコンポーネントの間の通信を制御するように構成され、直接メモリアクセス（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）をサポートし得る。
【０２５８】
スイッチの制御センターとして、プロセッサ１００２は、様々なインターフェースおよびラインを使用することによってスイッチ全体の様々な部分に接続され、スイッチデバイスの様々な機能を実行し、ならびに／またはメモリ１２０３に記憶されたソフトウェアプログラムおよび／もしくはモジュールを動作させまたは実行し、メモリ１２０３に記憶されたデータを呼び出すことによって、データを処理する。
【０２５９】
プロセッサ１２０２は、集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＩＣ）によって形成されてよく、たとえば、単一のパッケージ化されたＩＣによって形成されてよく、または同じ機能もしくは異なる機能を有する複数のパッケージ化されたＩＣを接続することによって形成されてよい。たとえば、プロセッサは、中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）のみを含んでよく、またはＧＰＵ、デジタル信号プロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ、ＤＳＰ）、およびトランシーバ内の制御チップ（たとえばベースバンドチップ）の組み合わせであってよい。本出願の様々な実装において、ＣＰＵは、単一のコンピューティングコアであってよく、または複数のコンピューティングコアを含んでよい。
【０２６０】
メモリ１００３は、揮発性メモリ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、たとえば、ランダムアクセスメモリ（Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭ）を含んでよく、または不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、たとえば、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）、ハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ、ＨＤＤ）、もしくはソリッドステートドライブ（Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｒｉｖｅ、ＳＳＤ）を含んでよく、またはメモリは、上記のタイプのメモリの組み合わせを含んでよい。メモリは、プログラムまたはコードを記憶し得る。スイッチにおけるプロセッサ１００２は、プログラムまたはコードを実行してネットワークノードの機能を実装する。
【０２６１】
この実施形態では、トランシーバ１００１によって実装される機能は、図９に示された受信ユニット９０１および送信ユニット９０３によって実装されてよく、またはプロセッサ１００２によって制御されるトランシーバ１００１によって実装されてよい。処理ユニット９０２によって実装される機能は、プロセッサ１００２によって実装され得る。
【０２６２】
加えて、本出願はコンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体はプログラムを記憶し得る。プログラムが実行されたとき、本出願で提供されるデータアクセス権限を制御するための方法およびデータ伝送方法の実施形態におけるステップの一部または全部が実行され得る。記憶媒体は、磁気ディスク、光ディスク、読み取り専用メモリ  ＲＯＭ、またはランダムアクセスメモリＲＡＭなどであり得る。
【０２６３】
上記の実施形態の全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせを使用することによって実装され得る。ソフトウェアが実施形態を実装するために使用されるとき、実施形態は完全にまたは部分的にコンピュータプログラム製品の形態で実装され得る。
【０２６４】
コンピュータプログラム製品は、１つまたは複数のコンピュータ命令、たとえば、検証命令を含む。コンピュータ命令がコンピュータ上でロードされ実行されたとき、本出願の実施形態で説明されたプロセスまたは機能が全体的または部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラマブル装置であり得る。
【０２６５】
コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてよく、またはコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてよい。たとえば、コンピュータ命令は、有線またはワイヤレス様式で、ウェブサイト、コンピュータ、サーバ、またはデータセンターから別のウェブサイト、コンピュータ、サーバ、またはデータセンターに伝送され得る。
【０２６６】
コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、または１つもしくは複数の使用可能な媒体を統合するサーバやデータセンターなどのストレージデバイスであり得る。使用可能な媒体は、磁気媒体、たとえば、フロッピーディスク、ハードディスク、磁気テープ、光学媒体（たとえばＤＶＤ）、またはソリッドステートドライブＳＳＤなどの半導体媒体であり得る。
【０２６７】
さらに、本出願の実施形態におけるネットワークノードは基地局またはアクセスポイントであり得ることに留意されたい。たとえば、基地局は、ＧＳＭまたはＣＤＭＡにおけるトランシーバ基地局（ＢＴＳ、Ｂａｓｅ  Ｔｒａｎｓｃｅｉｖｅｒ  Ｓｔａｔｉｏｎ）であってよく、ＷＣＤＭＡにおけるノードＢ（ＮｏｄｅＢ）であってよく、またはＬＴＥにおける進化型ノードＢ（ｅＮＢもしくはｅ−ＮｏｄｅＢ、ｅｖｏｌｕｔｉｏｎａｌ  Ｎｏｄｅ  Ｂ）であってよい。これは、本出願で限定されない。
【０２６８】
また、ネットワークノードはさらに、クライアントまたは端末デバイスであり得る。端末デバイスは、ユーザに音声および／もしくはデータ接続性を提供するデバイス、ワイヤレス接続機能を有するハンドヘルドデバイス、またはワイヤレスモデムに接続される別の処理デバイスであってよい。
【０２６９】
ワイヤレス端末は、無線アクセスネットワークＲＡＮを介して１つまたは複数のノードと通信し得る。ワイヤレス端末は、（「セルラー」電話とも呼ばれる）携帯電話などのモバイル端末、またはモバイル端末を有するコンピュータ、たとえば、ポータブル、ポケットサイズ、ハンドヘルド、コンピュータ内蔵、または車両搭載モバイル装置であってよく、それらは、無線アクセスネットワークと音声および／またはデータを交換する。たとえば、ワイヤレス端末は、パーソナル通信サービス（Ｐｅｒｓｏｎａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ、ＰＣＳ）電話、コードレス電話機、セッション開始プロトコル（ＳＩＰ）電話、ワイヤレスローカルループ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ｌｏｏｐ、ＷＬＬ）局、または携帯情報端末（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ、ＰＤＡ）などのデバイスであってよい。ワイヤレス端末は、システム、加入者ユニット（Ｓｕｂｓｃｒｉｂｅｒ  Ｕｎｉｔ）、加入者局（Ｓｕｂｓｃｒｉｂｅｒ  Ｓｔａｔｉｏｎ）、移動局（Ｍｏｂｉｌｅ  Ｓｔａｔｉｏｎ）、モバイル端末（Ｍｏｂｉｌｅ）、リモート局（Ｒｅｍｏｔｅ  Ｓｔａｔｉｏｎ）、アクセスポイント（Ａｃｃｅｓｓ  Ｐｏｉｎｔ、ＡＰ）、リモート端末（Ｒｅｍｏｔｅ  Ｔｅｒｍｉｎａｌ）、アクセス端末（Ａｃｃｅｓｓ  Ｔｅｒｍｉｎａｌ）、ユーザ端末（Ｕｓｅｒ  Ｔｅｒｍｉｎａｌ）、ユーザエージェント（Ｕｓｅｒ  Ａｇｅｎｔ）、ユーザデバイス（Ｕｓｅｒ  Ｄｅｖｉｃｅ）、またはユーザ機器（Ｕｓｅｒ  Ｅｑｕｉｐｍｅｎｔ）と呼ばれることもある。
【０２７０】
本出願の明細書、特許請求の範囲、および添付図面において、用語「第１」、「第２」など（もしあれば）は、同様の対象を区別することが意図されているが、必ずしも特定の順序または配列を示すものではない。そのように称されるデータは、適切な環境で交換可能であり、したがって、本明細書に記載された実施形態は、本明細書に示され説明された順序以外の順序で実装されることが可能であることを理解されたい。さらに、用語「含む」、「含有する」、または他の変形は、非排他的な包含を含むことを意図しており、たとえば、ステップまたはユニットのリストを含む処理、方法、システム、製品、デバイスは、それらのユニットに必ずしも限定されず、そのような処理、方法、システム、製品またはデバイスに明示的に列挙されないまたは固有でない他のユニットを含み得る。
【０２７１】
本発明の実施形態における技術は必要な一般的なハードウェアプラットフォームに加えてソフトウェアよって実装され得ることを、当業者は明確に理解し得る。そのような理解に基づいて、先行技術に本質的または部分的に貢献する本発明の実施形態における技術的解決策は、ソフトウェア製品の形態で実装され得る。コンピュータソフトウェア製品は、ＲＯＭ／ＲＡＭ、磁気ディスク、または光ディスクなどの記憶媒体に記憶されてよく、本発明の実施形態または実施形態のいくつかの部分で説明された方法を実行するように、コンピュータデバイス（パーソナルコンピュータ、サーバ、もしくはネットワークデバイスなどであり得る）に命令するためのいくつかの命令を含む。
【０２７２】
本明細書における実施形態の同じおよび類似する部分については、実施形態を参照されたい。特に、ネットワークノードまたは装置デバイスは、基本的に方法実施形態と同様であり、したがって簡潔に説明されている。関係付けられた部分については、方法実施形態の説明を参照されたい。
【０２７３】
本出願の上記の実装は、本出願の保護範囲に対する限定を構成しない。
【図１】
2021516917.tif 000008
【図２】
2021516917.tif 000009
【図３】
2021516917.tif 000010
【図４ａ】
2021516917.tif 000011
【図４ｂ】
2021516917.tif 000012
【図５】
2021516917.tif 000013
【図６Ａ】
2021516917.tif 000014
【図６Ｂ】
2021516917.tif 000015
【図７】
2021516917.tif 000016
【図８Ａ】
2021516917.tif 000017
【図８Ｂ】
2021516917.tif 000018
【図８Ｃ】
2021516917.tif 000019
【図９】
2021516917.tif 000020
【図１０】
2021516917.tif 000021
【手続補正書】
【提出日】令和2年10月26日(2020.10.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データアクセス権限を制御するための方法であって、
第１のプロキシノードによって、要求ノードから第１の要求メッセージを受信するステップであって、前記第１の要求メッセージは、前記要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、
前記第１のプロキシノードによって、前記アクセスされるべきデータの前記識別子に基づいて、ブロックチェーンにおける第１の暗号化された暗号文を決定するステップ、および前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、
前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有する場合、少なくとも１つの第２のプロキシノードに対して前記要求ノードについての権限検証要求を開始するステップ、および前記少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、前記第１の暗号化された暗号文のプロビジョニングを決定するステップと
を含む、方法。
【請求項２】
前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定する前記ステップは、
前記ブロックチェーン上で、前記要求ノードの前記識別に基づいて前記要求ノードの認可情報を読み取るステップを含み、前記認可情報は、前記ブロックチェーンのチェーンストレージ構造の末端に最も近く、前記認可情報は、許可または不許可を含む、請求項１に記載の方法。
【請求項３】
少なくとも１つの第２のプロキシノードに対して前記要求ノードについての権限検証要求を開始する前記ステップは、
前記第１のプロキシノードによって、ｍ個の第２のプロキシノードを決定するステップであって、ｍは１以上の正の整数である、ステップと、
前記権限検証要求を生成するステップであって、前記権限検証要求は、前記要求ノードの前記識別、および前記第１の暗号化された暗号文を含み、前記第１の暗号化された暗号文は、前記アクセスされるべきデータを暗号化することによって生成される、ステップと、
ｍ個の第２のプロキシノードのそれぞれに前記権限検証要求を送信するステップと
を含む、請求項１または２に記載の方法。
【請求項４】
前記少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、前記第１の暗号化された暗号文のプロビジョニングを決定する前記ステップは、
前記第１のプロキシノードによって、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するステップであって、前記第２のプロキシノードが、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有することを検証した後に、前記部分鍵は、前記第２のプロキシノードによって生成され送信され、ｋ≦ｍである、ステップと、
前記少なくともｋ個の部分鍵を回復して変換鍵を生成するステップと、
前記変換鍵および暗号化アルゴリズムを使用することによって、前記第１の暗号化された暗号文を、前記要求ノードの公開鍵により暗号化される第２の暗号化された暗号文に変換するステップと、
前記第２の暗号化された暗号文を前記要求ノードに送信するステップと
を含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、前記第１の暗号化された暗号文のプロビジョニングを決定する前記ステップは、
前記第１のプロキシノードが、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを前記要求ノードに送信するステップを含む、請求項３に記載の方法。
【請求項６】
前記第１のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有しないと決定し、前記要求ノードの前記第１の要求メッセージを拒否するステップをさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
第１のノードによって、第２のノードの識別を取得するステップであって、前記識別は、前記第２のノードの認可情報を決定するために使用される、ステップと、
前記認可情報が許可である場合、前記第１のノードによって、前記第１のノードの秘密鍵、前記第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成するステップと、
前記第１のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成するステップと、
前記第１のノードによって、第１のトランザクション情報を生成し、ブロックチェーン上に前記第１のトランザクション情報を記録するステップであって、前記第１のトランザクション情報は、前記第２のノードの前記識別、前記第２のノードの前記認可情報、および前記暗号化された部分鍵を含む、ステップと
を含む、データ伝送方法。
【請求項８】
前記第１のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成する前記ステップは、
前記第１のノードによって、秘密分散アルゴリズムを使用することによって前記変換鍵をｎ個の部分鍵に分割するステップであって、ｎは、１以上の正の整数である、ステップと、
前記第１のノードによって、前記ブロックチェーンネットワークからｍ個のプロキシノードを選択し、前記ｍ個のプロキシノードの公開鍵を使用することによって前記ｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成するステップであって、ｍ≦ｎである、ステップと
を含む、請求項７に記載の方法。
【請求項９】
前記第１のトランザクション情報は、前記ｍ個のプロキシノードの識別と、前記変換鍵を回復するための部分鍵の最小量ｋとをさらに含む、請求項８に記載の方法。
【請求項１０】
前記認可情報が不許可である場合、
第２のトランザクション情報を生成するステップであって、前記第２のトランザクション情報は、前記第２のノードの前記識別、および不許可である前記第２のノードの前記認可情報を含む、ステップと、
前記ブロックチェーンネットワーク上に前記第２のトランザクション情報を記録するステップと
をさらに含む、請求項７に記載の方法。
【請求項１１】
第１のノードによって第２のノードの識別を取得するステップの前に、
前記第１のノードによって、前記第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成するステップと、
前記第１のノードによって、前記ブロックチェーン上のトランザクションとして前記第１の暗号化された暗号文を記憶するステップと
をさらに含む、請求項７から９のいずれか一項に記載の方法。
【請求項１２】
第２のプロキシノードによって、第１のプロキシノードから権限検証要求を受信するステップであって、前記権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、前記第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、
前記第２のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、
前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有する場合、部分鍵を生成し、前記部分鍵を前記第１のプロキシノードに送信するステップと
を含む、データ伝送方法。
【請求項１３】
部分鍵を生成する前記ステップは、
前記第２のプロキシノードによって、ブロックチェーン上の暗号化された部分鍵を取得するステップであって、前記暗号化された部分鍵は、前記第２のプロキシノードの公開鍵を使用した暗号化によって生成される、ステップと、
前記第２のプロキシノードによって、前記第２のプロキシノードの秘密鍵を使用することによって、前記暗号化された部分鍵を復号して、前記部分鍵を生成するステップと
を含む、請求項１２に記載の方法。
【請求項１４】
第１のプロキシノードに適用されるネットワークノードであって、
要求ノードから第１の要求メッセージを受信するように構成された受信ユニットであって、前記第１の要求メッセージは、前記要求ノードの識別、およびアクセスされるべきデータの識別子を含む、受信ユニットと、
前記アクセスされるべきデータの前記識別子に基づいて、ブロックチェーンにおける第１の暗号化された暗号文を決定し、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するように構成された処理ユニットと、
前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有する場合、少なくとも１つの第２のプロキシノードに対して前記要求ノードについての権限検証要求を開始するように構成された送信ユニットと
を備え、
前記処理ユニットは、前記少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有する場合、前記第１の暗号化された暗号文のプロビジョニングを決定するようにさらに構成される、ネットワークノード。
【請求項１５】
前記送信ユニットは、ブロックチェーン上で、前記要求ノードの前記識別に基づいて前記要求ノードの認可情報を読み取るように構成され、前記認可情報は、前記ブロックチェーンのチェーンストレージ構造の末端に最も近く、前記認可情報は、許可または不許可を含む、請求項１４に記載のネットワークノード。
【請求項１６】
前記処理ユニットは、ｍ個の第２のプロキシノードを決定し、前記権限検証要求を生成するように構成され、前記権限検証要求は、前記要求ノードの前記識別、および前記第１の暗号化された暗号文を含み、前記第１の暗号化された暗号文は、前記アクセスされるべきデータを暗号化することによって生成され、ｍは１以上の正の整数であり、
前記送信ユニットは、前記ｍ個の第２のプロキシノードのそれぞれに前記権限検証要求を送信するように構成される、請求項１４または１５に記載のネットワークノード。
【請求項１７】
前記受信ユニットは、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するようにさらに構成され、前記第２のプロキシノードが、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有することを検証した後に、前記部分鍵は、前記第２のプロキシノードによって生成され送信され、ｋ≦ｍであり、
前記処理ユニットは、前記少なくともｋ個の部分鍵を回復して変換鍵を生成し、前記変換鍵および暗号化アルゴリズムを使用することによって、前記第１の暗号化された暗号文を前記要求ノードの公開鍵により暗号化された第２の暗号化された暗号文に変換するように構成され、
前記送信ユニットは、前記第２の暗号化された暗号文を前記要求ノードに送信するようにさらに構成される、請求項１４から１６のいずれか一項に記載のネットワークノード。
【請求項１８】
前記処理ユニットは、前記受信ユニットを使用することによって、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または前記受信ユニットを使用することによって、少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、前記送信ユニットを使用することによって、アクセス拒否メッセージを前記要求ノードに送信するように構成される、請求項１６に記載のネットワークノード。
【請求項１９】
前記処理ユニットは、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有するかどうかを決定し、前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有しない場合、前記要求ノードの前記第１の要求メッセージを拒否するようにさらに構成された、請求項１４から１８のいずれか一項に記載のネットワークノード。
【請求項２０】
第１のノードに適用されるネットワークノードであって、
第２のノードの識別を取得するように構成された受信ユニットであって、前記識別は、前記第２のノードの認可情報を決定するために使用される、受信ユニットと、
前記認可情報が許可である場合、前記ネットワークノードの秘密鍵、前記第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成し、第１のトランザクション情報を生成し、ブロックチェーン上に前記第１のトランザクション情報を記録するように構成された処理ユニットと
を備え、
前記第１のトランザクション情報は、前記第２のノードの前記識別、前記第２のノードの前記認可情報、および前記暗号化された部分鍵を含む、ネットワークノード。
【請求項２１】
前記処理ユニットは、秘密分散アルゴリズムを使用することによって前記変換鍵をｎ個の部分鍵に分割し、ｎは１以上の正の整数であり、前記ブロックチェーンネットワークからｍ個のプロキシノードを選択し、前記ｍ個のプロキシノードの公開鍵を使用することによって前記ｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成し、ｍ≦ｎであるように構成される、請求項２０に記載のネットワークノード。
【請求項２２】
前記第１のトランザクション情報は、前記ｍ個のプロキシノードの識別と、前記変換鍵を回復するための部分鍵の最小量ｋとをさらに含む、請求項２１に記載のネットワークノード。
【請求項２３】
前記処理ユニットは、前記認可情報が不許可である場合、第２のトランザクション情報を生成し、前記ブロックチェーン上に前記第２のトランザクション情報を記録するようにさらに構成され、前記第２のトランザクション情報は、前記第２のノードの前記識別、および不許可である前記第２のノードの認可情報を含む、請求項２０に記載のネットワークノード。
【請求項２４】
前記処理ユニットは、前記第２のノードの前記識別を取得する前に、前記第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成し、前記ブロックチェーン上のトランザクションとして前記第１の暗号化された暗号文を記憶するようにさらに構成された、請求項２０から２２のいずれか一項に記載のネットワークノード。
【請求項２５】
第２のプロキシノードに適用されるネットワークノードであって、
第１のプロキシノードから権限検証要求を受信するように構成された受信ユニットであって、前記権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、前記第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、受信ユニットと、
前記要求ノードの前記識別に基づいて、前記要求ノードが前記第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、前記要求ノードが前記第１の暗号化された暗号文を読み取る前記権限を有する場合、部分鍵を生成するように構成された処理ユニットと、
前記部分鍵を第１のプロキシノードに送信するように構成された送信ユニットと
を備えた、ネットワークノード。
【請求項２６】
前記処理ユニットは、ブロックチェーン上の暗号化された部分鍵を取得し、前記暗号化された部分鍵は、前記第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、前記第２のプロキシノードの秘密鍵を使用することによって、前記暗号化された部分鍵を復号して、前記部分鍵を生成するように構成された、請求項２５に記載のネットワークノード。
【請求項２７】
トランシーバ、メモリ、および前記メモリに記憶されたコードを実行して請求項１から１３に記載の方法の一つを実施するように構成されたプロセッサを備えた、ネットワークノード。
【請求項２８】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令がコンピュータにおいて実行されると、前記コンピュータに請求項１から１３に記載の方法の一つを実施させる、コンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、ブロックチェーンの分野に関し、特に、データアクセス権限を制御するための方法および装置に関する。
【背景技術】
【０００２】
本出願は、２０１８年３月１９日に中国国家知識産権局に出願された「ＭＥＴＨＯＤ  ＡＮＤ  ＡＰＰＡＲＡＴＵＳ  ＦＯＲ  ＣＯＮＴＲＯＬＬＩＮＧ  ＤＡＴＡ  ＡＣＣＥＳＳ  ＲＩＧＨＴ」と題される中国特許出願第２０１８１０２２４３５６．１号の優先権を主張するものであり、参照によりその全体が本明細書に組み込まれている。
【０００３】
ブロックチェーンは、分散型台帳とも呼ばれる。すなわち、トランザクションが、異なる場所に分散された複数のノードによって共同でアカウンティングされ、各ノードが完全なアカウントを記録する。狭義には、ブロックチェーンは、データブロックを時系列で結合することによって得られるチェーン化されたデータ構造であり、暗号を使用することによって改竄や偽造から保護される分散型台帳である。
【０００４】
ブロックチェーン技術のため、ブロックチェーンは分散化およびトラストレスという特徴を有する。分散化は、ブロックチェーンネットワーク全体において集中化されたハードウェアまたは管理メカニズムが存在せず、諸ノードの権限および義務が等しく、ノードの損傷または損失がネットワークシステム全体の動作に影響を与えないことを意味する。したがって、ブロックチェーンネットワークの望ましい堅牢性が保証される。トラストレスは、ノードがネットワーク全体においてデータ交換に参加するために相互信頼を必要としないことを意味する。ブロックチェーンネットワークシステム全体の動作ルールはオープンであり、透明性があり、すべてのブロックチェーンノード上のデータコンテンツもオープンである。したがって、システムにより指定されたルールまたは時間範囲内で、ノードは互いに欺くことができない。
【０００５】
クライアントは、ネットワークブロックチェーン上のノード内のアクセスデータを要求し、ブロックチェーンネットワーク上のノードは、暗号化されたデータおよび復号鍵をクライアントに提供する。次いで、クライアントは、暗号化されたデータを、復号鍵を使用することによって復号して、アクセスデータを取得し、ブロックチェーン上にアクセスデータを記録する。この処理では、ブロックチェーンノードにおける台帳の過去のトランザクションデータが変更または削除されることが可能でなく、ブロックチェーン上のデータは公開され、キャンセルされることが可能でないため、アクセス権限がユーザに付与され復号鍵が配布されると、アクセス権限が取り消されることができない。この場合、ユーザのアクセス権限が禁止される必要があるとき、ユーザがデータにアクセスするのを防止することができず、データアクセスのリスクおよび不安定性をもたらす。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】Ｉｍｐｒｏｖｅｄ  Ｐｒｏｘｙ  Ｒｅ−Ｅｎｃｒｙｐｔｉｏｎ  Ｓｃｈｅｍｅｓ  ｗｉｔｈ  Ａｐｐｌｉｃａｔｉｏｎｓ  ｔｏ  Ｓｅｃｕｒｅ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｔｏｒａｇｅ
【発明の概要】
【０００７】
本出願は、データアクセス権限を制御するための方法および装置を提供して、ユーザのアクセス権限が変化したとき、ユーザによって要求されるデータまたは暗号文のプロビジョニングを制御する。
【０００８】
具体的には、上記の技術的問題を解決するために、本出願は、以下の技術的解決策を開示する。
【０００９】
第１の態様によれば、本出願は、データアクセス権限を制御するための方法を提供する。方法は、第１のプロキシノードによって、要求ノードから第１の要求メッセージを受信するステップであって、第１の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、第１のプロキシノードによって、アクセスされるべきデータの識別子に基づいて、ブロックチェーンにおける第１の暗号化された暗号文を決定するステップ、および要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始するステップ、および少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップとを含む。
【００１０】
任意選択で、第１のプロキシノードは、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、要求ノードが第１の暗号化された暗号文を読み取る権限を有しない場合、第１のプロキシノードは、要求ノードの第１の要求を拒否する。
【００１１】
この態様で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーンネットワーク上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【００１２】
さらに、少なくとも１つの第２のプロキシノードを使用することによって要求元の識別がさらに検証され、したがって、１つのみの第１のプロキシノードが検証で使用されるときに不正行為が発生する可能性が回避されることが可能であり、それにより、検証精度をさらに改善し、情報伝送のセキュリティをさらに確実にする。
【００１３】
第１の態様に関し、第１の態様の実装では、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るステップを含み、認可情報は、ブロックチェーン上のチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【００１４】
この実装では、暗号化された暗号文および鍵を要求ノードが取得できるかどうかのチェックに備えるために、要求元の最新のアクセス権限が、要求ノードの認可情報を読み取ることによって取得されてよく、認可情報は、ブロックチェーン上のチェーンストレージ構造の末端に最も近い。
【００１５】
第１の態様に関し、第１の態様の別の実装では、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始するステップは、第１のプロキシノードによって、ｍ個の第２のプロキシノードを決定するステップであって、ｍは１以上の正の整数である、ステップと、権限検証要求を生成するステップであって、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、ｍ個の第２のプロキシノードのそれぞれに権限検証要求を別々に送信するステップとを含む。
【００１６】
第１の態様に関し、第１の態様のさらに別の実装では、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップは、
第１のプロキシノードによって、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するステップであって、第２のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第２のプロキシノードによって生成され送信され、ｋ≦ｍである、ステップと、少なくともｋ個の部分鍵を回復して変換鍵を生成するステップと、変換鍵および暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文を第２の暗号化された暗号文に変換するステップであって、第２の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、第２の暗号化された暗号文を要求ノードに送信するステップとを含む。
【００１７】
この実装では、第１のプロキシノードが、権限検証要求を複数の第２のプロキシノードに送信し、第２のプロキシノードにより送信された十分な量の部分鍵を取得した後のみに、変換鍵を回復することができる。すなわち、変換鍵は、複数の第２のプロキシノードが共同の復号に参加した後のみに生成されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、したがって、少数のノードが不正なやり方で権限制御を回避することによって暗号文を取得することが効果的に防止される。この方法は、復号複雑性を増大させて、効果的に暗号文の送信および読み取りのセキュリティを確実にし、認可されていないユーザが暗号文またはデータを読み取るのを防止する。
【００１８】
第１の態様に関し、第１の態様のさらに別の実装では、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップは、第１のプロキシノードが、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを要求ノードに送信するステップを含む。
【００１９】
第１の態様に関し、第１の態様のさらに別の実装では、第１のプロキシノードによって、要求ノードから第１の要求メッセージを受信するステップは、第１のプロキシノードによって、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することによって転送された第１の要求メッセージを受信するステップを含む。
【００２０】
第２の態様によれば、本出願は、データ伝送方法をさらに提供する。方法は、データソースまたはデータ所有者に適用され得る。この態様では、第１のノードは例として使用され、方法は、
第１のノードによって、第２のノードの識別を取得するステップであって、識別は、第２のノードの認可情報を決定するために使用され、認可情報は、許可または不許可を含み、第２のノードは、要求ノードまたはデータ要求元である、ステップと、認可情報が許可である場合、第１のノードによって、第１のノードの秘密鍵、第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成するステップと、第１のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成するステップと、第１のノードによって、第１のトランザクション情報を生成し、ブロックチェーン上に第１のトランザクション情報を記録するステップであって、第１のトランザクション情報は、第２のノードの識別、第２のノードの認可情報、および暗号化された部分鍵を含む、ステップとを含む。
【００２１】
第２の態様に関し、第２の態様の実装では、第１のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成するステップは、第１のノードによって、秘密分散アルゴリズムを使用することによって変換鍵をｎ個の部分鍵に分割するステップであって、ｎは、１以上の正の整数である、ステップと、第１のノードによって、ブロックチェーンネットワークからｍ個のプロキシノードを選択し、ｍ個のプロキシノードの公開鍵を使用することによってｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成するステップであって、ｍ≦ｎである、ステップとを含む。
【００２２】
第２の態様に関し、第２の態様の別の実装では、第１のトランザクション情報は、ｍ個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量ｋとをさらに含む。取得された部分鍵の量がｋ未満であるとき、必要とされる変換鍵が回復されることができない。この場合、少数またはいくつかのプロキシノードによる不正行為が防止され、それにより、検証のセキュリティおよび信頼性を改善することができる。
【００２３】
第２の態様に関し、第２の態様のさらに別の実装では、ブロックチェーン上に第１のトランザクション情報を記録するステップは、第１のノードによって、第１のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第１のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第１のトランザクション情報について合意に達し、第１のトランザクション情報を記憶するステップを含む。
【００２４】
第２の態様に関し、第２の態様のさらに別の実装では、方法は、認可情報が不許可である場合、第２のノードの認可情報をキャンセルするステップと、第２のトランザクション情報を生成するステップであって、第２のトランザクション情報は、第２のノードの識別および第２のノードの認可情報を含む、ステップと、ブロックチェーン上に第２のトランザクション情報を記録するステップとをさらに含む。
【００２５】
第２の態様に関し、第２の態様のさらに別の実装では、第１のノードによって第２のノードの識別を取得するステップの前に、方法は、第１のノードによって、第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成するステップと、第１のノードによって、ブロックチェーン上のトランザクションとして第１の暗号化された暗号文を記憶するステップとをさらに含む。
【００２６】
第３の態様によれば、本出願はデータ伝送方法をさらに提供し、方法は第２のプロキシノードに適用されてよく、第２のプロキシノードは第１のプロキシノードまたはプライマリプロキシノードであってよく、方法は、
第２のプロキシノードによって、第１のプロキシノードから権限検証要求を受信するステップであって、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、第２のプロキシノードによって、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、部分鍵を生成し、部分鍵を第１のプロキシノードに送信するステップとを含む。
【００２７】
この態様では、第１のプロキシノードが、要求ノードのアクセスが許可されることを検証したとき、第２のプロキシノードが、さらに要求ノードの権限を検証する。要求ノードのアクセスが許可されることを検証するとき、第２のプロキシノードが、生成された部分鍵を第１のプロキシノードに送信するので、第１のプロキシノードが、部分鍵を収集し最終的な変換鍵を合成し、それにより、第１のプロキシノードの不正行為を効果的に防止し、検証のセキュリティを改善する。
【００２８】
第３の態様に関し、第３の態様の実装では、部分鍵を生成するステップは、第２のプロキシノードによって、ブロックチェーン上の暗号化された部分鍵を取得するステップであって、暗号化された部分鍵は、第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成される、ステップと、第２のプロキシノードによって、第２のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するステップとを含む。
【００２９】
第３の態様に関し、第３の態様の別の実装では、方法は、第２のプロキシノードによって、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、要求ノードが第１の暗号化された暗号文を読み取る権限を有しない場合、第１のプロキシノードの第１の要求を拒否するステップとをさらに含む。
【００３０】
第４の態様によれば、本出願は、データアクセス権限を制御するための装置をさらに提供する。たとえば、装置は、ネットワークノードであってよく、またはネットワークノードにおいて構成されてよい。装置またはネットワークノードは、上述の態様における第１のプロキシノード、第１のノード、または第２のプロキシノードであってよく、装置は、第１の態様から第３の態様および態様の実装における方法ステップを実行するように構成されたユニットを含む。
【００３１】
具体的には、装置は、受信ユニット、処理ユニット、および送信ユニットを含む。加えて、装置は、記憶ユニットなど別のユニットまたはモジュールをさらに含み得る。これは、本出願で限定されない。
【００３２】
第５の態様によれば、本出願はネットワークノードをさらに提供する。ネットワークノードは、プロセッサ、トランシーバ、およびメモリを含む。ネットワークノードは、第１のプロキシノードであるとき、
トランシーバは、要求ノードから第１の要求メッセージを受信するように構成され、第１の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含み、
プロセッサは、アクセスされるべきデータの識別子に基づいて、ブロックチェーンにおける第１の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、要求ノードの第１の要求を拒否し、または、はいの場合、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始し、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するように構成される。
【００３３】
第５の態様に関し、第５の態様の実装では、プロセッサは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るように特に構成され、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【００３４】
第５の態様に関し、第５の態様の別の実装では、プロセッサは、ｍ個の第２のプロキシノードを決定し、ｍは１以上の正の整数であり、権限検証要求を生成し、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、トランシーバを使用することによって、ｍ個の第２のプロキシノードのそれぞれに権限検証要求を送信するように特に構成される。
【００３５】
第５の態様に関し、第５の態様のさらに別の実装では、トランシーバは、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するように特に構成され、第２のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第２のプロキシノードによって生成され送信され、ｋ≦ｍであり、
プロセッサは、少なくともｋ個の部分鍵を回復して変換鍵を生成し、変換鍵および暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文を第２の暗号化された暗号文に変換するように特に構成され、第２の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成され、
トランシーバは、第２の暗号化された暗号文を要求ノードに送信するように特に構成される。
【００３６】
第５の態様に関し、第５の態様のさらに別の実装では、プロセッサは、第１のプロキシノードが、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、トランシーバを使用することによって、アクセス拒否メッセージを要求ノードに送信するように特に構成される。
【００３７】
第５の態様に関し、第５の態様のさらに別の実装では、トランシーバは、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された第１の要求メッセージを受信するように特に構成される。
【００３８】
さらに、ネットワークノードが第２のプロキシノードである場合、トランシーバは、第１のプロキシノードから権限検証要求を受信するように構成され、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、
プロセッサは、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第１のプロキシノードの第１の要求を拒否し、または、はいの場合、部分鍵を生成するように構成され、
トランシーバは、部分鍵を第１のプロキシノードに送信するようにさらに構成される。
【００３９】
任意選択で、プロセッサは、ブロックチェーン上の暗号化された部分鍵を取得し、暗号化された部分鍵は、第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、第２のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するように特に構成される。
【００４０】
第６の態様によれば、本出願はネットワークノードをさらに提供する。ネットワークノードは、プロセッサ、トランシーバ、およびメモリを含む。ネットワークノードは、データソースまたはデータ所有者、たとえば、第１のノードであるとき、
トランシーバは、第２のノードの識別を取得するように構成され、識別は、第２のノードの認可情報を決定するために使用され、認可情報は、許可または不許可を含み、
プロセッサは、認可情報が許可である場合、ネットワークノードの秘密鍵、第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成し、第１のトランザクション情報を生成し、ブロックチェーン上に第１のトランザクション情報を記録するように構成され、
第１のトランザクション情報は、第２のノードの識別、第２のノードの認可情報、および暗号化された部分鍵を含む。
【００４１】
第６の態様に関し、第６の態様の実装では、プロセッサは、秘密分散アルゴリズムを使用することによって変換鍵をｎ個の部分鍵に分割し、ｎは１以上の正の整数であり、ブロックチェーンネットワークからｍ個のプロキシノードを選択し、ｍ個のプロキシノードの公開鍵を使用することによってｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成し、ｍ≦ｎであるように特に構成される。
【００４２】
第６の態様に関し、第６の態様の別の実装では、第１のトランザクション情報は、ｍ個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量ｋとをさらに含む。
【００４３】
第６の態様に関し、第６の態様のさらに別の実装では、プロセッサは、具体的には第１のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第１のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第１のトランザクション情報について合意に達し、第１のトランザクション情報を記憶するように特に構成される。
【００４４】
第６の態様に関し、第６の態様のさらに別の実装では、プロセッサは、認可情報が不許可である場合、第２のノードの認可情報をキャンセルし、第２のトランザクション情報を生成し、ブロックチェーン上に第２のトランザクション情報を記録するようにさらに構成され、第２のトランザクション情報は、第２のノードの識別および第２のノードの認可情報を含む。
【００４５】
第６の態様に関し、第６の態様のさらに別の実装では、プロセッサは、第２のノードの識別を取得する前に、第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成し、ブロックチェーン上のトランザクションとして第１の暗号化された暗号文を記憶するようにさらに構成される。
【００４６】
第７の態様によれば、本出願はコンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体は、命令を記憶してよく、命令が実行されたとき、本出願において提供される第１の態様から第３の態様および第１の態様から第３の態様の実装におけるデータアクセス権限を制御するための方法の一部または全部のステップが実装されることが可能である。
【００４７】
第８の態様によれば、本出願は、命令を含むコンピュータプログラム製品をさらに提供する。命令がコンピュータ上で実行されたとき、コンピュータは上述の態様における方法を実行する。
【図面の簡単な説明】
【００４８】
【図１】本出願によるファブリックアーキテクチャの概略図である。
【図２】本出願による閾値暗号システムにおける復号のフローチャートである。
【図３】本出願による、クライアントによってブロックチェーン上のアクセスデータを要求するためのフローチャートである。
【図４ａ】本出願によるブロックチェーンシステムの概略構造図である。
【図４ｂ】本出願による、データアクセス権限を制御するための方法のフローチャートである。
【図５】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図６Ａ】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図６Ｂ】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図７】本出願によるプロキシ再暗号化システムの役割のフローチャートである。
【図８Ａ】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図８Ｂ】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図８Ｃ】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図９】本出願によるネットワークノードの概略構造図である。
【図１０】本出願によるネットワークノードの概略構造図である。
【発明を実施するための形態】
【００４９】
本出願の実施形態における技術的解決策を当業者がよりよく理解するために、また、本出願の実施形態の目的、特徴、および利点をより明確にするために、以下では、添付の図面を参照して本出願の実施形態における技術的解決策をさらに詳細に説明する。
【００５０】
まず、本出願における基本的概念が詳細に説明される。
【００５１】
本出願の技術的解決策はブロックチェーンに関する。ブロックチェーン（Ｂｌｏｃｋ−Ｃｈａｉｎ）は、ビットコインに由来する分散されたデータベースであり、ビットコインの基礎となる技術である。ブロックチェーンは、暗号法を使用して関連付けを通して生成されたデータブロックの系列である。各データブロックは、１つのビットコインネットワークトランザクションに関する情報を含み、情報は、ビットコインネットワークトランザクションの妥当性を検証し（偽造防止）、次のブロック（ｂｌｏｃｋ）を生成するために使用される。
【００５２】
狭義には、ブロックチェーンは、データブロックを時系列で結合することによって得られるチェーン化されたデータ構造であり、暗号を使用することによって改竄や偽造から保護される分散型台帳である。広義には、ブロックチェーンは、複数の独立した分散されたノードを使用することによって同じレコードを記憶する分散型台帳である。
【００５３】
ブロックチェーン技術は、分散化されたトラストレスな様式で信頼できるデータベースを集合的に維持する技術的解決策である。新しいデータがブロックチェーンに書き込まれる必要があるたびに、データがブロックに集約され、既存のブロックチェーンの末端に追加される。ノードの新しく追加されたブロックが同じであることを確実にするために、合意アルゴリズムが使用される。
【００５４】
いくつかのトランザクションレコードが各ブロックに記録され、ブロックは、前のブロックのハッシュ値（ｈａｓｈ）を含む。すべてのブロックについて、このように前のブロック内の情報が記憶され、これらのブロックは、順に接続されてブロックチェーンを形成する。ブロックチェーンは、改竄されることが難しい。ブロックチェーン技術に基づいて、トランザクション（Ｔｒａｎｓａｃｔｉｏｎ、Ｔｘ）は、合意に達することができる２つの当事者によって直接行われ、したがって、トランザクションに参加するために、信頼される第三者の集中化された仲介役は必要とされない。
【００５５】
スマートコントラクト（ｓｍａｒｔ  ｃｏｎｔｒａｃｔ）は、分散型ブロックチェーン台帳上で実行され、台帳上のデータを管理することができる、イベント駆動されるステートフルプログラムである。スマートコントラクトは、一般的コンピュータ実行可能プログラムと見なされてよく、このコンピュータ実行可能プログラムは、正確かつ自動的に実行されることが可能である。スマートコントラクトのコードコンテンツが、トランザクションルールおよびロジックを指定する。ユーザがスマートコントラクトに署名し呼び出したとき、それは、コントラクトコンテンツが実行されブロックチェーン台帳に書き込まれることを意味する。
【００５６】
ブロックチェーンのコア技術の１つは、合意アルゴリズム、たとえば、ビットコインで使用されるプルーフオブワーク（Ｐｒｏｏｆ  ｏｆ  Ｗｏｒｋ、ＰｏＷ）アルゴリズムである。ブロックチェーン上の合意アルゴリズムは、ビザンチンフォールトトレランスに向けられた合意シナリオに適用され、すなわち、ブロックチェーンネットワーク上のノードが互いに信頼せず悪意のある嘘つきノードがあり得る。ブロックチェーンネットワーク上の各ノードは、「嘘つき」ノードであり得る。しかしながら、大量のノードがネットワーク内に集約されたとき、ノードの合意結果は信頼される結果である。合意アルゴリズムの主な機能は、有効なトランザクションブロックの同じ内容をブロックチェーンネットワークのすべてのノードが記録することを可能にすることである。
【００５７】
加えて、ブロックチェーンは、複数の当事者間の信頼問題を解決するための技術的メカニズムでもある。多者間信頼の前提条件は、技術的メカニズムが信頼できることである。したがって、ブロックチェーンは監査可能であることが必要である。ブロックチェーンシステム、スマートコントラクト、および合意アルゴリズムは、オープンソースであって複数の当事者に対してオープンである必要がある。
【００５８】
ハイパーレジャー（Ｈｙｐｅｒｌｅｄｇｅｒ）のファブリックプロジェクトは、合意に達するのを加速するメカニズムを使用する。このメカニズムのコアは、複数のエンドーサーピアがスマートコントラクトを実行し、実行結果をエンドース（ｅｎｄｏｒｓｅｍｅｎｔ）し、たとえば、エンドーサーピアがエンドーサーピアのコントラクト実行結果のコンテンツに署名して、結果が特定のエンドーサーピアにより送信されることを確実にすることである。ユーザは、実際の必要性に基づいて、ユーザのスマートコントラクトおよび複数の結果についての検証ポリシーによって信頼されるようにエンドーサーピアを設定してよく、たとえば、エンドースポリシー（ｅｎｄｏｒｓｅ  ｐｏｌｉｃｙ）を設定してよい。
【００５９】
図１に示されるように、クライアントは、スマートコントラクト実行プロポーザル（ｐｒｏｐｏｓａｌ）を３つのエンドーサーピアに送信し得る。エンドースポリシーは、３つの実行結果のコンテンツが一致することを必要とすることがあり、または少なくとも２つの実行結果のコンテンツが一貫することを必要とすることがある。クライアントは、エンドーサーピアによりフィードバックされた実行結果を収集し、オーダラーピア（Ｏｒｄｅｒｅｒ  ｐｅｅｒ）を使用することによって、トランザクションに記録された実行結果をブロックチェーンネットワークにブロードキャストする。ブロックチェーンネットワーク上のノード、たとえば、エンドーサーピアは、トランザクションを読み取り、エンドースポリシーが満たされていることを検証するときにトランザクションを有効なトランザクションと見なし、トランザクションにおけるデータの変更を受け入れ、変更をブロックチェーンに書き込む。
【００６０】
クライアント（ｃｌｉｅｎｔ）またはクライアントアプリケーションは、ソフトウェア開発キット（Ｓｏｆｔｗａｒｅ  Ｄｅｖｅｌｏｐｍｅｎｔ  Ｋｉｔ、ＳＤＫ）を使用することによってファブリックシステムと対話し、有効なトランザクションを構築し、エンドーサーピアのためにトランザクションを提供する。エンドースポリシーで必要とされるエンドーサーピアからの十分なサポートが収集されると、有効なトランザクションプロポーザルが構築され、オーダラーピアまたはプロキシノードに送信され得る。
【００６１】
エンドーサーピア（ｅｎｄｏｒｓｅｒ  ｐｅｅｒ）は、クライアントからのトランザクションの妥当性および権限のチェックを担当する。トランザクションが要件を満たす場合、エンドーサーピアはトランザクションに署名し、結果をクライアントに返す。
【００６２】
オーダラーピア（ｏｒｄｅｒｅｒ  ｐｅｅｒ）は、トランザクションを順序付けし、順序付けられたトランザクションを他のノードにブロードキャストすることを担当する。オーダラーピアは、合意サービスを提供するノードまたはクラスタを含む。
【００６３】
コミッターピア（ｃｏｍｍｉｔｔｅｒ  ｐｅｅｒ）は、同意されたシーケンスを有するバッチトランザクション結果のステータスをチェックし、トランザクションがエンドースポリシーの要件を満たすかどうかをチェックし、台帳の読み取りセットにおける変数のステータスが変更されないままであることを確実にし、有効なトランザクションを実行し、ブロックを生成し、ブロックを台帳に書き込むように構成される。
【００６４】
情報伝送のセキュリティおよび識別検証の精度を改善するために、本出願の技術的解決策はさらに、閾値暗号システム（Ｔｈｒｅｓｈｏｌｄ  ｃｒｙｐｔｏｓｙｓｔｅｍ）に関する。閾値暗号システムは、複数のメンバーの間で公開鍵に対応する秘密鍵を共有し、指定された量のメンバーが互いに協力したとき、公開鍵を使用することによって暗号化された暗号文が復号されることが可能である。閾値暗号システムの基礎は、秘密分散（ｓｅｃｒｅｔ  ｓｈａｒｉｎｇ）である。
【００６５】
具体的には、閾値暗号システムの解決策では、鍵をいくつかのシェア、たとえばｎ個のシェアに分割し、これらのシェアをｎ個の参加者に１つずつ送信する。任意のｔ（ｔ＜ｎ）個の参加者またはｎ個の参加者のうちｔより多数の参加者は、協力して復号操作を完了し得るが、ｔ未満の参加者は、復号操作を完了することができない。
【００６６】
以下では、閾値パスワードシステムにおけるすべての役割の機能および復号処理を説明する。
【００６７】
図２は、閾値暗号システムにおける復号の概略的フローチャートである。閾値暗号システムは、鍵分配者、鍵参加者、および鍵合成者を含む。さらに、鍵分配者は、閾値暗号システムの信頼されるエンティティを確立するように構成され、閾値暗号システムにおけるパラメータを生成し、これらのパラメータをキー共有者に安全に送信することを担当する。鍵参加者は、閾値暗号システムにおける復号操作に参加する単一エンティティである。鍵合成者は、複数の参加者の復号されたシェアを取得し、これらの復号されたシェアを検証し復号する。
【００６８】
たとえば、図２に示される通りである。ステップ１：閾値初期化設定。鍵分配者が、セキュリティパラメータを入力し、閾値暗号システムが、（ＰＫで表され得る）公開パラメータのグループ、たとえば、ｎ、ｔ、およびＳＫを返す。ｎは鍵参加者の量を表し、ｔは閾値を表し、ＳＫは閾値パスワードシステムにより生成された主鍵を示す。任意選択で、ＳＫ＝（ＳＫ１，ＳＫ２，・・・，ＳＫｎ）である。
【００６９】
ステップ２：暗号化。システムの公開パラメータＰＫおよび鍵参加者の識別ＩＤを使用することによって、平文メッセージを暗号化し、暗号化された暗号文ｃを生成し出力する。
【００７０】
ステップ３：鍵シェア生成（Ｓｈａｒｅ  ｋｅｙ  Ｇｅｎ）。鍵分配者は、システムの公開パラメータＰＫ、暗号化された暗号文ｃ、および主鍵ＳＫを使用することによって、鍵シェアＵｉを算出する。
【００７１】
ステップ４：鍵分配者は、鍵シェアＵｉをいくつかの鍵参加者に送信する。
【００７２】
ステップ５：鍵参加者は、鍵シェアＵｉを取得し、鍵参加者は、鍵シェアＵｉを復号して、復号されたシェア、たとえば、復号されたシェア１、・・・、復号されたシェアｔを生成する。
【００７３】
ステップ６：各鍵参加者は、復号後に生成された復号されたシェアを鍵合成者に送信する。
【００７４】
ステップ７：共同復号。鍵合成者は、復号されたシェアを取得し、たとえば、ｔ個の復号されたシェアを取得し、ｔ個の復号されたシェアを検証し、公開パラメータＰＫを使用することによって、ｔ個の復号されたシェアを合成して、暗号化された暗号文ｃを取得し、最後に、暗号化された暗号文を復号して平文メッセージを取得する。
【００７５】
本出願において提供される技術的解決策は、以下の技術的問題を解決することを目標とする。ブロックチェーンにおけるアクセス権限が付与され渡されると、アクセス権限は、変更されまたは取り消されることが不可能であり、結果として、権限を付与されていないユーザがデータにアクセスすることが可能である。具体的には、クライアントがデータにアクセスすることを要求しブロックチェーン上の暗号文を復号する処理は、以下の通りである。
【００７６】
図３に示されるように、ステップ１：ユーザＡは、クライアント１の登録情報を使用することによって、情報、たとえば、平文情報を生成する。
【００７７】
ステップ２：クライアント１は、対称鍵を使用することによって情報を暗号化する。
【００７８】
ステップ３：クライアント１は、暗号化された情報を送信し、ブロックチェーン上のトランザクションとして暗号化された情報をブロックチェーンノード１に記録する。
【００７９】
ステップ４：ブロックチェーンノード１は、トランザクションを検証しブロードキャストする。
【００８０】
ステップ５：ブロックチェーンノード１ならびにブロックチェーンノード２および３は、トランザクションを含むブロックについて合意に達する。ブロックチェーンノード１、２、および３は、同じブロックチェーンネットワーク上に配置されたノードである。
【００８１】
合意は、ブロックチェーンノード１、２、および３が別個にトランザクションがポリシーを満たすかどうかをチェックし、対応する検証結果を生成し、３つのブロックチェーンノードにより生成された検証結果が同じであることとして理解され得る。
【００８２】
ステップ６：ブロックチェーンノードは、ブロックチェーンノード１、２、および３により生成された検証結果が同じであることを確認し、ブロックを生成し、ローカル台帳における既存のブロックチェーンのチェーン化された構造の末尾にブロックを追加する。
【００８３】
ステップ７：ユーザＢ  は、クライアント２を使用することによって情報、たとえば、平文情報を取得する。
【００８４】
ステップ８：クライアント２は、平文情報にアクセスするためにユーザＢのアクセス権限を取得することをクライアント１に要求する。
【００８５】
ステップ９：クライアント１は、アクセス権限情報をクライアント２に送信し、アクセス権限情報は対称鍵を含む。
【００８６】
ステップ１０：クライアント２は、ブロックチェーン台帳に記憶され暗号化された情報を取得することをブロックチェーンノード３に要求する。
【００８７】
ステップ１１：クライアント２は、対称鍵を使用することによって情報を復号する。
【００８８】
アクセス権限を渡しデータを復号する上記の処理において、ブロックチェーンノードにおける台帳の過去のトランザクションデータが変更または削除されることが可能でなく、ブロックチェーン上のデータは公開され、キャンセルされることが可能でないため、アクセス権限がユーザに付与され復号鍵が配布されると、アクセス権限が取り消されることができない。この場合、ユーザのアクセス権限が禁止される必要があるとき、ユーザがデータにアクセスするのを防止することができず、権限を付与されていないユーザによるデータアクセスのリスクおよび不安定性をもたらす。
【００８９】
上記の問題を解決するために、本出願の実施形態における技術的解決策の主な着想は、複数のプロキシノードをブロックチェーンシステムに追加することである。一般ノードの機能に加えて、各ノードは、ユーザのアクセス権限を共同して検証し、暗号文変換操作を行うようにさらに構成される。
【００９０】
図４に示されるように、ブロックチェーンシステムは、データソースまたはデータ所有者、少なくとも１つのプロキシノード（Ｐｒｏｘｙ）、複数の一般ノード、およびデータ要求ノードを含む。データソースまたはデータ所有者は、データの保存者であり、アクセス権限の認可当事者である。一般ノードは、ブロックチェーン上のトランザクションのブロードキャスト、合意到達、記録および記憶などの機能を実行するように構成され得る。ユーザ要求ノードは、データにアクセスするのを要求するノードまたはクライアントである。
【００９１】
本出願において提供される技術的解決策は主に、３つの手順、すなわち、データ記憶、権限付与、およびデータ要求を含む。一般に、第１の、データソース（ｄａｔａ  ｓｏｕｒｃｅ）またはデータ所有者は、元の暗号文を暗号化し、元の暗号文をブロックチェーン上に記録し、記憶する。
【００９２】
次いで、データソースまたはデータ所有者は、権限を付与し、データソースまたはデータ所有者は、権限情報をブロックチェーンに書き込み、権限を付与されたノードに対応する変換鍵を生成する。データソースまたはデータ所有者は、変換鍵をいくつかの部分に分割し、それらの部分を異なるプロキシノードに送信する。
【００９３】
最後に、データ要求ノード要求がデータにアクセスするのを要求したとき、プロキシノードは、合意を開始し、データ要求ノードの最新のアクセス権限を読み取り、データ要求ノードが権限を有するかどうかをチェックする。データ要求ノードが権限を有する場合、プロキシノードは、変換鍵を収集し、元の暗号文を、権限が付与されたノードのみにより復号されることが可能な別の暗号文へ変換し、暗号文を要求ノードに返す。データ要求ノードが権限を有しない場合、アクセスは拒否される。
【００９４】
本出願の以下の実施形態では、すべてのネットワークデバイスが総称的にネットワークノードと呼ばれることに留意されたい。ネットワークノードは、要求メッセージを送信する第１のノードおよび第２のノードであってよく、ブロックチェーンネットワーク上のブロックチェーンノード、たとえば、第１のブロックチェーンノードもしくは第１のプロキシノード、転送用のリレーノード、または任意の一般ノードであってよく、またはデータソースであってよい。
【００９５】
さらに、ネットワークノードは、局、基地局、ユーザ機器、クライアント、および端末を含むが、これらに限定されない。また、本出願の実施形態における２つの概念、デバイスとノードは等価である。言い換えれば、デバイスは、ノード、局、ＵＥ、ネットワーク要素デバイス、またはセンサなどを指すことがある。
【００９６】
本出願に記載されているブロックチェーンおよびブロックチェーンシステムは、様々なネットワーク（たとえば、モノのインターネット）に適用されてよく、ブロックまたはブロックチェーンノードは、様々なネットワークデバイス（たとえば、モノのインターネットデバイス）に展開され得る。ネットワークデバイスは、産業用のモノのインターネットデバイス、たとえば、様々な産業用センサおよび制御モジュールであってよく、ウェアラブルデバイス、家電、ホームセンサ、もしくはホーム制御モジュールなどであってよく、または基地局、拡張された基地局、スケジューリング機能を有するリレー、もしくは基地局機能を有するデバイスなどであってよい。基地局は、ＬＴＥシステムの進化型ノードＢ（ｅｖｏｌｖｅｄ  Ｎｏｄｅ  Ｂ、ｅＮＢ）または別のシステムの基地局であってよい。これは、本出願の実施形態で限定されない。
【００９７】
また、様々なデバイス、たとえば、携帯電話、インテリジェント端末、マルチメディアデバイス、ストリーミングメディアデバイスが、ユーザ機器（ｕｓｅｒ  ｅｑｕｉｐｍｅｎｔ、ＵＥ）であり得る。代替として、ＵＥは、別のワイヤレスネットワークデバイス、たとえば、ノードＢ（Ｎｏｄｅ  Ｂ）であってよい。具体的に、ワイヤレスネットワークデバイスの形態およびタイプは本出願で限定されない。
【００９８】
ＵＥは、無線アクセスネットワーク（ｒａｄｉｏ  ａｃｃｅｓｓ  ｎｅｔｗｏｒｋ、ＲＡＮ）を介して１つもしくは複数のコアネットワークと通信してよく、ＵＥはさらに、通信のために別の様式でワイヤレスネットワークにアクセスしてよく、またはＵＥは、別のＵＥとワイヤレス通信を直接行ってよい。これは、本出願の実施形態で限定されない。
【００９９】
図４ｂを参照すると、本出願の実施形態は、データアクセス権限を制御するための方法を提供する。方法は、以下のステップを含む。
【０１００】
ステップ４０１：第１のプロキシノードが、要求ノードから第１の要求メッセージを受信し、第１の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む。
【０１０１】
実装は、第１のプロキシノードによって、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することによって転送された第１の要求メッセージを受信するステップを含む。
【０１０２】
ステップ４０２：第１のプロキシノードは、アクセスされるべきデータの識別子に基づいて、ブロックチェーンにおける第１の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定する。
【０１０３】
ステップ４０２において、要求ノードの識別に基づいて、第１の暗号化された暗号文を読み取る権限を要求ノードが有するかどうかを決定するステップは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るステップを含み、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【０１０４】
ステップ４０３：第１の暗号化された暗号文を読み取る権限を要求ノードが有する、すなわち認可情報が許可である場合、第１のプロキシノードは、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始し、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定する。
【０１０５】
また、第１のプロキシノードが、第１の暗号化された暗号文を読み取る権限を要求ノードが有しないと決定した場合、第１のプロキシノードは、要求ノードの第１の要求を拒否する。
【０１０６】
ステップ４０３において、第１のプロキシノードによって、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始するステップは、
第１のプロキシノードによって、ｍ個の第２のプロキシノードを決定するステップであって、ｍは１以上の正の整数である、ステップと、権限検証要求を生成するステップであって、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、ｍ個の第２のプロキシノードのそれぞれに権限検証要求を送信するステップとを含む。
【０１０７】
任意選択で、第１のプロキシノードによって、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップは、
第１のプロキシノードによって、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するステップであって、第２のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第２のプロキシノードによって生成され送信され、ｋ≦ｍである、ステップと、少なくともｋ個の部分鍵を回復して変換鍵を生成するステップと、変換鍵および暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文を第２の暗号化された暗号文に変換するステップであって、第２の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、第２の暗号化された暗号文を要求ノードに送信するステップとを含む。
【０１０８】
さらに、第１のプロキシノードによって、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するステップは、第１のプロキシノードが、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを要求ノードに送信するステップを含む。
【０１０９】
この実施形態で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーンネットワーク上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【０１１０】
さらに、少なくとも１つの第２のプロキシノードを使用することによって要求元の識別がさらに検証され、したがって、１つのみの第１のプロキシノードが検証で使用されるときに不正行為が発生する可能性が回避されることが可能であり、それにより、検証精度をさらに改善し、情報伝送のセキュリティをさらに確実にする。
【０１１１】
第２のプロキシノードは、第１のプロキシノードから権限検証要求を受信し、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される。
【０１１２】
第２のプロキシノードは、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第２のプロキシノードは第１のプロキシノードの第１の要求を拒否し、または、はいの場合、第２のプロキシノードは部分鍵を生成し部分鍵を第１のプロキシノードに送信する。
【０１１３】
任意選択で、部分鍵を生成するステップは、第２のプロキシノードによって、ブロックチェーン上の暗号化された部分鍵を取得するステップであって、暗号化された部分鍵は、第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成される、ステップと、第２のプロキシノードによって、第２のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するステップとを含む。
【０１１４】
この実施形態では、第１のプロキシノードが、要求ノードのアクセスが許可されることを検証したとき、第２のプロキシノードが、さらに要求ノードの権限を検証する。要求ノードのアクセスが許可されることを検証するとき、第２のプロキシノードが、生成された部分鍵を第１のプロキシノードに送信するので、第１のプロキシノードが、部分鍵を収集し最終的な変換鍵を合成し、それにより、第１のプロキシノードの不正行為を効果的に防止し、検証のセキュリティを改善する。
【０１１５】
特定の実施形態において、本出願で開示される技術的解決策が上記の３つの手順の部分に従って詳細に説明される。
【０１１６】
ａ．データ記憶手順
「データ記憶手順」における動作を実行するためのエンティティは、データソースもしくはデータ所有者であってよく、またはデータを記憶し権限を付与する機能を有する別のノードであってよい。この実施形態では、「第１のノード」は、データ記憶処理を実行するためのエンティティを表すために使用される。別の名称、たとえば、データ所有者が使用されてもよいことは理解され得る。これは、本出願で限定されない。
【０１１７】
公開鍵暗号技術がデータ記憶手順で使用される。具体的には、公開鍵暗号（Ｐｕｂｌｉｃ  ｋｅｙ  ｃｒｙｐｔｏｇｒａｐｈ）は、非対称暗号法（ａｓｙｍｍｅｔｒｉｃ  ｃｒｙｐｔｏｇｒａｐｈｙ）と呼ばれることもあり、非対称暗号法は、暗号法のアルゴリズムであり、２つの鍵、すなわち、「パブリックキー」と呼ばれる公開鍵、および「プライベートキー」と呼ばれる秘密鍵を含む。
【０１１８】
２つの鍵は、異なる機能を有する。一方は暗号化に使用され、他方は復号に使用される。たとえば、鍵の一方は、平文を暗号化して、暗号化された暗号文を取得するために使用され、元の平文は、他方の対応する鍵を使用することによってのみ復号を通じて取得されることが可能である。すなわち、暗号化鍵は、暗号文を復号しデータにアクセスするために使用されることが可能でない。２つの異なる鍵は平文を暗号化および復号するために使用されるので、この処理は非対称暗号化と呼ばれることもある。暗号化と復号に同じ鍵が使用される対称暗号化と比べて、非対称暗号化方式は高いセキュリティを有する。２つの鍵の一方が得られても、暗号化された暗号文が復号されることが不可能であり、他方の鍵が算出されることが不可能であるからである。したがって、公開鍵は他者に開示され公表され、たとえば、ブロックチェーン上に記録されてよい。秘密鍵は、クライアントまたはＵＥによって保持される。
【０１１９】
「データ記憶手順」では、第１のノードは、以下の方法処理を主に実行する。
【０１２０】
第１のノードは、第１のノードの公開鍵、および暗号化アルゴリズム、たとえばプロキシ再暗号化アルゴリズムを使用することによって、暗号文を暗号化して、第１の暗号化された暗号文Ｅａを生成し、
第１のノードは、ブロックチェーン上にトランザクション（ｔｒａｎｓａｃｔｉｏｎ）として第１の暗号化された暗号文Ｅａを記憶する。
【０１２１】
任意選択で、トランザクション記憶方式において、第１のノードは、ブロックチェーンネットワーク上の任意の一般ノードにトランザクション要求を送信し、トランザクション要求は、第１の暗号化された暗号文Ｅａを含み、トランザクション要求を受信する一般ノードは、ブロックチェーンネットワーク上にトランザクション要求をブロードキャストし、したがって、ブロックチェーンネットワーク上のすべてのブロックチェーンノードが合意に達し、第１の暗号化された暗号文Ｅａの関係付けられたトランザクションを記憶する。
【０１２２】
さらに、任意選択で、別のトランザクション記憶方式において、第１のノードは、第１の暗号化された暗号文を含むトランザクション要求を任意のプロキシノード、たとえば、第１のプロキシノードに直接送信し、第１のプロキシノードはトランザクションをブロードキャストし、ブロックチェーンネットワーク上のトランザクションについて合意に達する。
【０１２３】
ｂ．権限付与手順
図５に示されるように、方法は以下のステップを含む。
【０１２４】
ステップ５０１：第１のノードが、第２のノードの識別Ｉ、および第１の暗号化された暗号文Ｅａについての第２のノードのアクセス権限情報Ｒを記録する。
【０１２５】
第２のノードは、認可されたユーザであり、第２のノードの識別Ｉは、第２のノード識別子、ユーザＩＤ、デバイスＩＤ、デバイス識別子などであってよい。アクセス権限情報Ｒは、権限の付与および権限のキャンセルを含む。
【０１２６】
ステップ５０２：アクセス権限情報Ｒが権限を付与するまたは権限をキャンセルするコンテンツを含むかどうかを決定する。
【０１２７】
ステップ５０３ａ：アクセス権限情報Ｒが権限を付与するコンテンツを有する場合、第１のノードは、第１のノードの秘密鍵、第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵Ｔを生成する。
【０１２８】
ステップ５０３ｂ：アクセス権限情報Ｒが権限をキャンセルするコンテンツを有する場合、第１のノードは、トランザクション要求をブロックチェーンネットワーク上の任意のノードに送信し、トランザクション要求は、第２のノードのアクセス権限情報Ｒおよび識別Ｉを含む。
【０１２９】
ステップ５０４：ステップ５０３ａの手順を続ける。第１のノードは、秘密分散アルゴリズムを使用することによって変換鍵Ｔをｎ個の部分鍵に分割し、ここで、ｎは１以上の正の整数である。
【０１３０】
任意選択で、変換鍵Ｔは（ｍ，Ｔｎ）に分割される。Ｔｎは、分割を通して取得された任意の部分鍵を表し、ｍは、変換鍵Ｔを回復するために使用されることが可能な最小量Ｔｎを表す。
【０１３１】
ステップ５０５：第１のノードは、ブロックチェーンネットワークからｍ個のプロキシノードをランダムに選択し、ｍ個のプロキシノードの公開鍵を使用することによってｎ個の部分鍵Ｔｎを暗号化して、ｎ個の暗号化された部分鍵Ｔｎｅを生成し、ここで、ｍ≦ｎである。
【０１３２】
ステップ５０６：第１のノードは、第１のトランザクション情報を生成し、第１のトランザクション情報を任意の一般ノードまたはブロックチェーンノードに送信し、第１のトランザクション情報は、第２のノードの識別Ｉ、第２のノードの認可情報（またはアクセス権限情報Ｒ）、および暗号化された部分鍵Ｔｎｅのうちの少なくとも１つを含む。
【０１３３】
任意選択で、第１のトランザクション情報は、ｍ個のプロキシノードの識別と、変換鍵を回復するための最小量ｍの部分鍵Ｔｎｅとをさらに含む。
【０１３４】
ステップ５０７：一般ノードまたはプロキシノードが、ブロックチェーン上で第１のトランザクション情報（Ｉ，Ｒ，Ｔｎｅ，ｍ）をブロードキャストおよび記憶し、またはステップ５０３ｂの手順に基づいてトランザクション要求（Ｉ，Ｒ）をブロードキャストおよび記憶する。
【０１３５】
ｃ．データ要求手順
この「データ要求手順」は、要求ノードがブロックチェーンに対するデータアクセス要求を開始し、認可されたアクセスが満たされたときに暗号化された暗号文を復号しそれにアクセスする処理を説明する。具体的には、図６に示されるように、手順は以下のステップを含む。
【０１３６】
ステップ６０１：データ要求ノードは、第１の要求メッセージを任意の一般ノードに送信し、第１の要求メッセージは、要求ノードの識別Ｉおよびアクセスされるべきデータの識別子、またはアクセスされるべきデータの識別子に対応する第１の暗号化された暗号文Ｅａを含む。
【０１３７】
ステップ６０２：一般ノードは、第１の要求メッセージを受信し第１のプロキシノードＰｍに転送する。
【０１３８】
任意選択で、第１のプロキシノードＰｍは、この要求のプライマリノードの役割をしてよい。
【０１３９】
ステップ６０３：第１のプロキシノードＰｍは、第１の要求メッセージを受信し、第１の要求メッセージで搬送されるアクセスされるべきデータの識別子に基づいて、ブロックチェーン上の第１の暗号化された暗号文Ｅａを決定し、要求ノードの識別Ｉに基づいて、第１の暗号化された暗号文Ｅａを読み取る権限を要求ノードが有するかどうかを決定する。
【０１４０】
たとえば、第１のプロキシノードＰｍは、ブロックチェーン上で、要求ノードの識別Ｉに基づいて要求ノードの認可情報を読み取り、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【０１４１】
任意選択で、複数の認可情報が存在する場合、最も大きい数を有するブロックに配置された認可情報が使用される。
【０１４２】
ステップ６０４ａ：データ要求ノードが権限を有せず、またはアクセスが許可されない場合、データ要求ノードのこのアクセス要求を拒否する。
【０１４３】
ステップ６０４ｂ：データ要求ノードが権限を有し、アクセスが許可される場合、少なくとも１つの第２のプロキシノードＰに対して要求ノードについての権限検証要求を開始する。
【０１４４】
第２のプロキシノードの選択はブロックチェーン上で事前設定されてよく、またはシステムがデフォルトでブロックチェーンノードが互いに発見できるものとする。
【０１４５】
さらに、デフォルトでブロックチェーンノードが互いに発見できるものとすることは、第１のプロキシノードは、トランザクション情報、たとえば、「権限付与手順」においてブロックチェーンに記憶された第１のトランザクションを使用することによって、部分鍵Ｔｎを暗号化する特定の第２のプロキシノードを認識し、暗号化された部分鍵Ｔｎｅを生成し、次いで、これらの第２のプロキシノードのそれぞれに権限検証要求を送信し得ることを意味する。
【０１４６】
権限検証要求は、要求ノードの識別Ｉおよび第１の暗号化された暗号文Ｅａを含む。
【０１４７】
ステップ６０５：第２のプロキシノードＰは、第１のプロキシノードＰｍから権限検証要求（Ｉ，Ｅａ）を受信し、要求ノードの識別Ｉに基づいて、第１の暗号化された暗号文Ｅａを読み取る権限をデータ要求ノードが有するかどうかを決定する。
【０１４８】
第１の暗号化された暗号文Ｅａは、アクセスされるべきデータを暗号化することによって生成される。
【０１４９】
ステップ６０６ａ：いいえ（認可されない）の場合、データ要求ノードのこのアクセス要求を拒否する。たとえば、第２のプロキシノードＰは、アクセス拒否メッセージを第１のプロキシノードＰｍにフィードバックする。
【０１５０】
ステップ６０６ｂ：はい（認可された）の場合、部分鍵Ｔｎを生成し、部分鍵Ｔｎを第１のプロキシノードＰｍに送信する。
【０１５１】
具体的には、第２のプロキシノードＰは、ブロックチェーン上で暗号化された部分鍵Ｔｎｅを読み取り、第２のプロキシノードＰの秘密鍵を使用することによってＴｎｅを復号して、部分鍵Ｔｎを取得する。
【０１５２】
ステップ６０７：第１のプロキシノードＰｍは、少なくともｋ個の第２のプロキシノードＰにより送信された部分鍵Ｔｎを受信し、ここで、ｋ≦ｍであり、ｍは、第２のプロキシノードの量ｍであり、第２のプロキシノードは、第１のプロキシノードＰｍにより決定され、権限検証要求を送信する。
【０１５３】
ステップ６０８：第１のプロキシノードＰｍは、少なくともｋ個の部分鍵Ｔｎを回復して、変換鍵Ｔを生成する。
【０１５４】
ステップ６０９：第１のプロキシノードＰｍは、変換鍵Ｔおよび暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文Ｅａを第２の暗号化された暗号文Ｅｂに変換し、第２の暗号化された暗号文Ｅｂは、データ要求ノードの公開鍵を使用することによって暗号化が行われた後に生成される。
【０１５５】
ステップ６１０：第１のプロキシノードＰｍは、第２の暗号化された暗号文Ｅｂを一般ノードに送信する。
【０１５６】
ステップ６１１：一般ノードは、第２の暗号化された暗号文Ｅｂを受信し、データ要求ノードに送信し、したがって、データ要求ノードは、データ要求ノードの秘密鍵を使用することによって第２の暗号化された暗号文Ｅｂを復号して、アクセスされるべきデータを取得する。
【０１５７】
有益な効果
本出願のこの実施形態で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーンネットワーク上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【０１５８】
「権限付与手順」では、データソースは、変換鍵を複数の部分鍵に分割し、複数の部分鍵は、ブロックチェーン上に記憶され、複数のプロキシノードによって保持される。このように、変換鍵は、十分な量の部分鍵が「データ要求手順」で取得された後のみに回復されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、それにより、少数のノードが不正行為により権限制御を回避し暗号文を取得することを効果的に防止する。この方法は、復号複雑性を増大させて、効果的に暗号文の送信および読み取りのセキュリティを確実にし、権限を付与されていないユーザが暗号文またはデータを読み取るのを防止する。
【０１５９】
また、データを読み取るとき、権限を付与されていない当事者、たとえば、第１のプロキシノードおよび第２のプロキシノードが、平文を取得することができず、結果として、平文のコンテンツを読むことできず、それにより、データプライバシを保護する。
【０１６０】
この実施形態における「権限付与手順」および「データ要求手順」において変換鍵を分割および回復するプロセスに関して、上述された閾値暗号システムの役割の（図２に示される）機能およびフローチャートを参照することに留意されたい。
【０１６１】
また、この実施形態におけるプロキシノードは、プロキシ再暗号化システムにおけるプロキシノードまたはプロキシであってよく、プロキシ再暗号化（Ｐｒｏｘｙ  ｒｅ−ｅｎｃｒｙｐｔｉｏｎ）システムは、暗号文を安全に変換する機能を有する新しい公開鍵暗号化システムである。
【０１６２】
図７は、実施形態によるプロキシ再暗号化システムの役割のフローチャートである。システムは、委託者（Ｄｅｌｅｇａｔｏｒ）、セミトラステッドプロキシ（Ｐｒｏｘｙ）、および受託者（Ｄｅｌｅｇａｔｅｅ）を含む。
【０１６３】
具体的には、ステップ７０１：委託者は、委託者の公開鍵を使用することによって平文メッセージを暗号化して、暗号化された暗号文を生成する。
【０１６４】
ステップ７０２：委託者が、暗号化された暗号文をセミトラステッドプロキシに送信する。
【０１６５】
ステップ７０３：委託者は、受託者の公開鍵を取得する。
【０１６６】
ステップ７０４：委託者は、受託者のための暗号文変換鍵を認可する。
【０１６７】
ステップ７０５：委託者は、暗号文変換鍵をセミトラステッドプロキシに送信する。
【０１６８】
ステップ７０６：セミトラステッドプロキシが、委託者からの暗号化された暗号文、および受託者のための暗号文変換鍵を取得し、セミトラステッドプロキシは、暗号化された暗号文を変換する。具体的には、セミトラステッドプロキシは、暗号化された暗号文を、受託者の公開鍵により暗号化された暗号文に変換する。
【０１６９】
ステップ７０７：セミトラステッドプロキシは、変換された暗号文を受託者に送信する。
【０１７０】
ステップ７０８：受託者は、変換された暗号文を取得し、受託者の秘密鍵を使用することによって、変換された暗号文を復号して、平文メッセージを生成する。
【０１７１】
この実施形態では、プロキシ再暗号化システムにおける役割の機能に基づいて、権限検証処理がプロキシノードに追加され、認可されたアクセス権限を満たさないノードのアクセスが拒否され、それにより、ブロックチェーン上の各権限を制御および変更し、データ伝送のセキュリティおよび信頼性を改善する。
【０１７２】
特定の実施形態では、本出願で提供される方法は、アリスがスーパーレジャーファブリックブロックチェーン上にアリスの年齢を記憶し、年齢へのボブのアクセスを制御する例を使用することによって、詳細に説明される。
【０１７３】
この実施形態で使用されるシステムは、前もって確立され、システムのユーザとして、各参加者は、ペアの鍵（公開鍵および秘密鍵）を生成する。公開鍵は、ブロックチェーン上に記録され開示されている。
【０１７４】
新しいプロキシノードが既存のファブリックブロックチェーンネットワークに追加され、新しいプロキシノードは権限検証および暗号文変換などの機能を有する。３つのプロキシノード（Ｘ、Ｙ、Ｚ）が、以下の構成ファイルを使用することによってファブリックブロックチェーンネットワークに追加される。
【０１７５】
特定の手順が図８に示される。
【０１７６】
データ記憶手順において、アリスは、データ所有者またはデータソースとして以下の方法ステップを実行し得る。
【０１７７】
ステップ８０１：アリスは、アリスの公開鍵Ｐａおよびプロキシ再暗号化アルゴリズムを使用することによって、アリスの年齢を含むデータに対してプロキシ再暗号化を実行して、第２層暗号文Ｅａを生成する。
【０１７８】
プロキシ再暗号化アルゴリズムは、非特許文献１に記載されたプロキシ再暗号化アルゴリズムにおける第２層暗号化アルゴリズ（Ｅ２）であり得る。
【０１７９】
ステップ８０２：アリスは、トランザクションにＥａをパッケージし、トランザクションをブロックチェーンネットワーク上の任意の一般ノードに送信する。一般ノードは、トランザクションを受信し、トランザクションをブロードキャストし、トランザクションについて合意に達してトランザクションを確認する。
【０１８０】
任意選択で、
記憶されたデータ擬似コードは以下の通りである。
【０１８１】
Ｆｕｎｃ  ｅｎｃｒｙｐｔ（ｄａｔａ）｛
Ｅａ  ＝  Ｅ２（ｄａｔａ，  Ｐａ）  ／／第２層暗号文を生成する
Ｔｘ  ＝  Ｐａｃｋａｇｅ（Ｅａ）  ／／トランザクションにＥａをパッケージする
Ｓｅｎｄ（Ｔｘ）  ／／トランザクションを送信する
｝
【０１８２】
パッケージされたトランザクションが表１に示される。
【０１８３】
【表１】
2021516917.tif 000022
【０１８４】
一般ノードにより実行される記録されたデータの擬似コードは、以下の通りである。
【０１８５】
ｆｕｎｃ  ｗｒｉｔｅＤａｔａ（ｄａｔａ，  ｏｗｎｅｒ）  ｛
ｉｄ＝＝ｎｕｌｌ：０？ｉｄ＋＋
ｐｕｔＳｔａｔｅ（”Ｄａｔａ”，  ｛”ｉｄ”：ｉｄ，  ”ｄａｔａ”：ｄａｔａ，  ”ｏｗｎｅｒ”：ｏｗｎｅｒ  ｝）  ／／データを記憶する
ｒｅｔｕｒｎ  ＳＵＣＣＥＳＳ
｝
【０１８６】
トランザクションが完了された後、ファブリックブロックチェーンに記録されたワールドステートが表２に示されるように表示される。
【０１８７】
【表２】
2021516917.tif 000023
【０１８８】
権限付与手順
ステップ８０３：アリスは、アリスの秘密鍵Ｓａおよびボブの公開鍵Ｐｂを使用することによって、プロキシ再暗号化アルゴリズムにおける変換鍵生成アルゴリズム（ＲＧ）を実行して、変換鍵Ｔとも呼ばれる再暗号化鍵Ｔを生成する。
【０１８９】
ステップ８０４：アリスは、変換鍵Ｔを使用し、ｎ＝３およびｋ＝２に設定し、ここで、ｎは、変換鍵Ｔを分割することによって得られるシェアの量を表し、ｋは、Ｔを回復するためのプロキシノードの最小量を表し、そして、シャミア鍵共有アルゴリズムを使用することによって、変換鍵Ｔを３つの部分鍵Ｔ１、Ｔ２、およびＴ３に分割する。
【０１９０】
ステップ８０５：アリスは、プロキシノードＸ、Ｙ、およびＺの公開鍵を使用することによって部分鍵Ｔ１、Ｔ２、およびＴ３を暗号化して、暗号化された部分鍵、たとえば、Ｔ１ｘ、Ｔ２ｙ、およびＴ３ｚを生成する。
【０１９１】
ステップ８０６：アリスは、要求者ボブが第２層暗号文Ｅａにアクセスする権限を有することを記録し、暗号文処理ノードは、Ｘ、Ｙ、およびＺであり、少なくとも２つのノードが共同処理に必要とされる。
【０１９２】
ステップ８０７：アリスパッケージは、上記の情報をトランザクションにパッケージし、トランザクションを一般ノードに送信し、一般ノードは、トランザクションに関する情報をブロードキャストし、トランザクションに関する情報について合意に達してトランザクションを確認する。
【０１９３】
任意選択で、
認可擬似コードは以下の通りである。
【０１９４】
Ｆｕｎｃ  Ａｕｔｈｏｒｉｚｅ（ｄａｔａｉｄ，  ｄｅｌｅｇａｔｅｅ，  ｒｉｇｈｔ，  ｔｈｒｅｓｈｏｌｄ，  ｄｉｖｉｓｉｏｎ）｛
Ｔ＝ＲＧ（Ｓａ，  ｄｅｌｅｇａｔｅｅ）／／変換鍵を生成する
Ｔｎ＝ＳｈａｍｉｒＳｐｌｉｔ（Ｔ，  ｄｉｖｉｓｉｏｎ，  ｔｈｒｅｓｈｏｌｄ）／／変換鍵を分割部分へ分割し、変換鍵は最小閾値部分を使用することによって回復されることが可能である。
Ｆｏｒｅａｃｈ（ｔ  ｉｎ  Ｔｎ）｛／／Ｔｎにおける各鍵について
ｐ＝Ｒａｍｄｏｎ（ｐｒｏｘｙｌｉｓｔ）／／プロキシをランダムに選択する
Ｐｒｏｘｉｅｓ  ＋＝  ｐ／／選択されたプロキシを記録する
Ｔｎｅ  ＋＝  Ｅｎｃｒｙｐｔ（ｔ，  ｐ．Ｐｋ）  ／／プロキシの公開鍵を使用することによってｔを暗号化する
｝
Ｔｘ  ＝  Ｐａｃｋａｇｅ（Ａｌｉｃｅ，  ｄａｔａｉｄ，  ｄｅｌｅｇａｔｅｅ，  ｒｉｇｈｔ，  Ｐｒｏｘｉｅｓ，  Ｔｎｅ，  ｔｈｒｅｓｈｏｌｄ）
Ｓｅｎｄ（Ｔｘ）
｝
【０１９５】
パッケージされたトランザクションが表３に示される。
【０１９６】
【表３】
2021516917.tif 000024
【０１９７】
任意選択で、一般ノードによって実行される認可情報を記録する擬似コードは、以下の通りである。
【０１９８】
ｆｕｎｃ  ａｕｔｈｏｒｉｚｅ（ｄｅｌｅｇａｔｏｒ，  ｄａｔａｉｄ，  ｄｅｌｅｇａｔｅｅ，  ｒｉｇｈｔ，  ｋｅｙｓ，  ｐｒｏｘｙ，  ｋｅｙｓ，  ｔｈｒｅｓｈｏｌｄ）  ｛
ｉｆ  ｄｅｌｅｇａｔｏｒ  ＝＝  ｄａｔａ．ｏｗｎｅｒ｛／／認可者がデータ所有者であるかどうかを決定する
ｉｄ＝＝ｎｕｌｌ：０？ｉｄ＋＋
”ｒｉｇｈｔ”：  ｒｉｇｈｔ，  ”ｙｅｓ”：  ｋｅｙｓ｝）／／認可情報を記憶する
ｐｕｔＳｔａｔｅ（”Ｐｒｏｘｙ”，｛”ｉｄ”：ｉｄ，”ｐｒｏｘｙ”：ｐｒｏｘｙ，”ｔｈｒｅｓｈｏｌｄ”：ｔｈｒｅｓｈｏｌｄ｝）  ／／プロキシ情報を記憶する
ｒｅｔｕｒｎ  ＳＵＣＣＥＳＳ
｝
ｒｅｔｕｒｎ  ＦＡＩＬ
｝
【０１９９】
トランザクションが完了された後、ファブリックブロックチェーンに記録されたワールドステート状態が表４に示されるように表示される。
【０２００】
【表４】
2021516917.tif 000025
【０２０１】
データ要求手順
ステップ８０８：ボブは、データ要求を任意の一般ノードに対して開始し、データ要求は、識別情報ボブおよびアクセスされるべきデータオブジェクト１を含む。
【０２０２】
ステップ８０９：一般ノードはデータ要求をプロキシノードＸに転送し、プロキシノードＸは、この要求についてのプライマリノードまたは第１のプロキシノードの役割をする。
【０２０３】
ステップ８１０：プロキシノードＸは、ブロックチェーン上のデータオブジェクト１に対するボブの最新の権限を読み取り、ここでは、読み取りの結果は「許可」である。
【０２０４】
ステップ８１１：プロキシノードＸは、データオブジェクト１の鍵処理ノード［Ｘ，Ｙ，Ｚ］を読み取り、ノードＸ、Ｙ、およびＺのそれぞれに対して鍵要求を開始し、鍵要求はボブの識別およびデータオブジェクト１を含み、プロキシノードＸは、フィードバック結果の待機を始める。
【０２０５】
ステップ８１２：プロキシノードＸ、Ｙ、およびＺは、チェーン上のデータオブジェクト１に対するボブの最新の権限を読み取り、ここでは、読み取りの結果は「許可」である。
【０２０６】
ステップ８１３：読み取りの結果が「許可」であるとき、プロキシノードＸ、Ｙ、およびＺは、チェーンに記録された暗号化された部分鍵Ｔ１ｘ、Ｔ２ｙ、およびＴ３ｚをそれぞれ読み取り、プロキシノードＸ、Ｙ、Ｚの秘密鍵を使用することによってこれらの暗号化された部分鍵を復号して部分鍵Ｔ１、Ｔ２、およびＴ３を取得し、次いで、部分鍵をプロキシノードＸに送信する。
【０２０７】
ステップ８１４：プロキシノードＸは、部分鍵Ｔ１、Ｔ２、およびＴ３のいずれか２つ、たとえば、Ｔ１およびＴ２を受信し、シャミア秘密分散アルゴリズムを使用することによって分割部分鍵を変換鍵Ｔへ回復する。
【０２０８】
ステップ８１５：プロキシノードＸは、データオブジェクト１に対応する第２層暗号文Ｅａを読み取り、変換鍵Ｔを使用することによってプロキシ再暗号化アルゴリズムにおける再暗号化方法（Ｒ）を実行して、第２層暗号文Ｅａを、ボブの公開鍵Ｐｂを使用することによって暗号化された第１層暗号文Ｅｂに変換する。
【０２０９】
ステップ８１６：プロキシノードＸは、第１層暗号文Ｅｂをボブに送信する。
【０２１０】
ステップ８１７：ボブは、第１層暗号文Ｅｂを受信し、ボブの秘密鍵Ｓｂを使用することによってプロキシを再暗号化アルゴリズムにおける復号方法（Ｄ）を実行して、アリスの年齢、すなわちａを取得する。
【０２１１】
この実施形態で提供される方法によれば、チェーン上のデータ伝送中の任意のノードの権限を制御するために、プロキシノードがブロックチェーンネットワークに追加される。具体的には、データ要求ノードがデータにアクセスする権限を有しないことが見出されたとき、データ要求ノードがデータにアクセスし続けることを防止するために、データ要求ノードの現在の要求が変更または拒否され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【０２１２】
また、閾値暗号システム内のすべての参加者が復号を完了するために互いに協力する特徴に基づいて、変換鍵は複数の部分鍵に分割され、複数の部分鍵はブロックチェーンに記憶され、複数のプロキシノードによって保持される。このように、変換鍵は、十分な量の部分鍵が「データ要求手順」で取得された後のみに回復されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、それにより、少数のノードが不正行為により権限制御を回避し暗号文を取得することを効果的に防止する。この方法は、復号複雑性を増大させて、データ伝送および読み取りのセキュリティを改善する。
【０２１３】
任意選択で、プロキシノードＸにより実行されるデータを読み取る擬似コードは、以下の通りである。
【０２１４】
Ｆｕｎｃ  ＲｅａｄＤａｔａ（ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）｛
Ｒ  ＝  ＲｅａｄＬａｓｔｅｓｔＲｉｇｈｔ（ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）  ／／最新の権限情報を読み取る
ｉｆ（Ｒ＝＝ａｌｌｏｗ）｛／／権限が付与されたかどうか決定する
Ｐｒｏｘｉｅｓ，  Ｔｈｒｅｓｈｏｌｄ  ＝  ＲｅａｄＰｒｏｘｙ（ｄａｔａ）  ／／変換鍵を保持するプロキシノードを読み取る
Ｆｏｒｅａｃｈ（ｐ  ｉｎ  Ｐｒｏｘｉｅｓ）｛
Ｋｅｙｓ  ＋＝  ｒｅｑｕｅｓｔＫｅｙ（ｐ，  ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）  ／／変換鍵のセグメントに適用する
｝
Ｉｆ（Ｋｅｙｓ．ｓｉｚｅ  ＞＝  Ｔｈｒｅｓｈｏｌｄ）｛／／収集された鍵フラグメントの量が閾値より大きいとき
Ｔ  ＝  Ｓｈａｍｉｒ．ＲｅｃｏｖｅｒＫｅｙ（Ｋｅｙｓ）  ／／鍵を回復する
Ｅａ  ＝  ＲｅａｄＥｎｃｒｙｐｔＤａｔａ（ｄａｔａ）  ／／元の暗号文を読み取る
Ｅｂ  ＝  Ｒ（Ｅａ，  Ｔ）  ／／アリスの公開鍵についての第２層暗号文をボブの公開鍵についての第１層暗号文に変換する
Ｒｅｔｕｒｎ  Ｅｂ
｝
Ｒｅｔｕｒｎ  ＦＡＩＬ  ／／変換鍵の十分なセグメントが収集されない
｝
Ｒｅｔｕｒｎ  ＵＮＡＵＴＨＯＲＩＺＥＤ  ／／認可されない
｝
【０２１５】
プロキシノードＸ、Ｙ、およびＺにより実行される鍵を読み取る擬似コードは、以下の通りである。
【０２１６】
Ｆｕｎｃ  ＲｅａｄＫｅｙ（ｄａｔａ，ｄｅｌｅｇａｔｅｅ）｛
Ｒ  ＝  ＲｅａｄＬａｓｔｅｓＲｉｇｈｔ（ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）／／最新の権限情報を読み取る
ｉｆ（Ｒ＝＝ａｌｌｏｗ）｛／／権限が付与されたかどうか決定する
Ｔｈｅ  ＥＫｅｙ  ＝  ＲｅａｄＥｎｃｒｙｐｔｅｄＫｅｙ（ｄａｔａ，  ｄｅｌｅｇａｔｅｅ）／／プロキシノードにより保持される変換鍵のセグメントを読み取る
Ｋｅｙ  ＝  Ｄｅｃｒｙｐｔ（Ｅｋｅｙ，  ｓｅｌｆ．Ｓｋ）  ／／復号のためのプロキシノードの秘密鍵を使用する
Ｒｅｔｕｒｎ  Ｋｅｙ
｝
Ｒｅｔｕｒｎ  ＵＮＡＵＴＨＯＲＩＺＥＤ  ／／認可されない
｝
【０２１７】
認可取り消し手順：
上記の実施形態では、ボブの最新のアクセス権限が「不許可」であることをアリスが読み取ると、ボブの以前の認可が取り消される。具体的な処理は以下のようになる。
【０２１８】
アリスは、「不許可」であるボブの権限をブロックチェーンに追加する。
【０２１９】
この場合、ファブリックブロックチェーンに記録されたワールドステート状態が表５に示されるように表示される。
【０２２０】
【表５】
2021516917.tif 000026
【０２２１】
プロキシノードＸが、権限情報を読み取る処理において、権限情報がアクセス拒否を示すことを見出したとき、プロキシノードＸは、要求ノードのアクセス要求を拒否する。
【０２２２】
プロキシノードＸは、代替としてプライマリプロキシノード、たとえば、第１のプロキシノードであってよく、または別のプロキシノード、たとえば、プロキシノードＹおよびＺであってよいことは理解され得る。
【０２２３】
任意選択で、本出願の上記の実施形態におけるアクセス権限を制御するための方法はさらに、プロキシノードが不正行為をするのを防止し得る。具体的には、たとえば、この実施形態において、変換鍵は３つの部分に分割され、鍵共有参加者の閾値量は２である。以下の不正行為のケースがある。：
ケース１：プロキシノードＸが不正をし、権限が「不許可」であるときに部分鍵を求め続ける。プロキシノードＹおよびＺは不正をせず、権限情報が「不許可」であることを見出した場合に要求ノードのアクセス要求を拒否する。このケースでは、プロキシノードＸは変換鍵を取得することができない。
【０２２４】
ケース２：プロキシノードＸおよびＹが一緒に不正をする。変換鍵は取得されることが可能であるが、変換鍵を使用することによって変換が行われた後に結果が取得される暗号文はボブであるので、プロキシノードＸおよびＹはボブの秘密鍵を有せず、復号によって平文が取得されることが不可能である。
【０２２５】
ケース３：ボブは不正をし、変換鍵を取得することができない。
【０２２６】
ケース４：プロキシノードＸおよびＹならびにボブが一緒に不正をする。
【０２２７】
ボブが認可されない場合、ボブは変換鍵を取得することができない。
【０２２８】
ボブの認可が取り消される場合、ボブは、変換鍵を取得することができ、復号によって平文を取得することができる。しかしながら、不正行為コストは、認可中にボブが平文をバッファする方式のコストよりも高い。このケースでは、ボブが認可されているデータのみが漏洩され、他のデータは影響されない。
【０２２９】
図９は、本出願の実施形態によるデータアクセス権限を制御するための装置の概略構造図である。装置は、プロキシノードを含む。装置は、図５および図６に対応する権限を制御するための方法を実行するために、上記の実施形態におけるプロキシノードであってよく、またはプロキシノードに配置され、もしくは第１のプロキシノードに適用されてよい。
【０２３０】
図９に示されるように、ネットワークノードは、受信ユニット９０１、処理ユニット９０２、および送信ユニット９０３を含む。加えて、ネットワークノードは、別のユニットおよびモジュール、たとえば、記憶ユニットをさらに含み得る。
【０２３１】
具体的には、受信ユニット９０１は、要求ノードから第１の要求メッセージを受信するように構成され、第１の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む。
【０２３２】
処理ユニット９０２は、アクセスされるべきデータの識別子に基づいて、ブロックチェーンにおける第１の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定するように構成される。
【０２３３】
送信ユニット９０３は、要求ノードが第１の暗号化された暗号文を読み取る権限を有していない場合、要求ノードの第１の要求を拒否し、要求ノードが権限を有する場合、少なくとも１つの第２のプロキシノードに対して要求ノードについての権限検証要求を開始するように構成される。
【０２３４】
処理ユニット９０２は、要求ノードが権限を有する場合、少なくとも１つの第２のプロキシノードのフィードバック結果に基づいて、第１の暗号化された暗号文のプロビジョニングを決定するようにさらに構成される。
【０２３５】
任意選択で、この実施形態の可能な実装において、送信ユニット９０３は、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るように特に構成され、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【０２３６】
任意選択で、この実施形態の別の可能な実装では、処理ユニット９０２は、ｍ個の第２のプロキシノードを決定し、権限検証要求を生成するように特に構成され、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、ｍは１以上の正の整数である。
【０２３７】
送信ユニット９０３は、ｍ個の第２のプロキシノードのそれぞれに権限検証要求を送信するように特に構成される。
【０２３８】
任意選択で、この実施形態のさらに別の可能な実装では、受信ユニット９０１は、少なくともｋ個の第２のプロキシノードにより送信された部分鍵を受信するようにさらに構成され、第２のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第２のプロキシノードによって生成され送信され、ｋ≦ｍである。
【０２３９】
処理ユニット９０２は、少なくともｋ個の部分鍵を回復して変換鍵を生成し、変換鍵および暗号化アルゴリズムを使用することによって、第１の暗号化された暗号文を第２の暗号化された暗号文に変換するように特に構成され、第２の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される。
【０２４０】
送信ユニット９０３は、第２の暗号化された暗号文を要求ノードに送信するようにさらに構成される。
【０２４１】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット９０２は、受信ユニットを使用することによって、ｋ個未満の第２のプロキシノードにより送信された部分鍵を受信し、または受信ユニットを使用することによって、少なくとも１つの第２のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、送信ユニットを使用することによって、アクセス拒否メッセージを要求ノードに送信するように特に構成される。
【０２４２】
任意選択で、この実施形態のさらに別の可能な実装では、受信ユニット９０１は、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された第１の要求メッセージを受信するように特に構成される。
【０２４３】
ネットワークノードは、第２のプロキシノードにさらに適用されてよく、権限検証および結果フィードバックなどの第２のプロキシノードの機能を実行するように構成される。
【０２４４】
具体的には、受信ユニット９０１は、第１のプロキシノードから権限検証要求を受信するように構成され、権限検証要求は、要求ノードの識別、および第１の暗号化された暗号文を含み、第１の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される。
【０２４５】
処理ユニット９０２は、要求ノードの識別に基づいて、要求ノードが第１の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第１のプロキシノードの第１の要求を拒否し、または、はいの場合、部分鍵を生成するように構成される。
【０２４６】
送信ユニット９０３は、部分鍵を第１のプロキシノードに送信するように構成される。
【０２４７】
加えて、任意選択で、プロセッサは、ブロックチェーン上の暗号化された部分鍵を取得し、暗号化された部分鍵は、第２のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、第２のプロキシノードの公開鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するように特に構成される。
【０２４８】
また、ネットワークノードは、代替として、データソースまたはデータ所有者、たとえば、第１のノードであってよく、第１のノードの構造は、図９に示されたネットワークノードの構造と同じである。しかしながら、ネットワークノードにおける各ユニットは、以下の機能をさらに有する。
【０２４９】
具体的には、受信ユニット９０１は、第２のノードの識別を取得するように構成され、識別は、第２のノードの認可情報を決定するために使用され、認可情報は、許可および不許可を含む。
【０２５０】
処理ユニット９０２は、認可情報が許可である場合、ネットワークノードの秘密鍵、第２のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成し、第１のトランザクション情報を生成し、ブロックチェーン上に第１のトランザクション情報を記録するように構成され、
第１のトランザクション情報は、第２のノードの識別、第２のノードの認可情報、および暗号化された部分鍵を含む。
【０２５１】
任意選択で、この実施形態の可能な実装では、処理ユニット９０２は、秘密分散アルゴリズムを使用することによって変換鍵をｎ個の部分鍵に分割し、ｎは１以上の正の整数であり、ブロックチェーンネットワークからｍ個のプロキシノードを選択し、ｍ個のプロキシノードの公開鍵を使用することによってｎ個の部分鍵を暗号化して、ｎ個の暗号化された部分鍵を生成し、ｍ≦ｎであるように特に構成される。
【０２５２】
第１のトランザクション情報は、ｍ個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量ｋとをさらに含む。
【０２５３】
任意選択で、この実施形態の別の可能な実装では、処理ユニット９０２は、第１のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第１のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第１のトランザクション情報について合意に達し、第１のトランザクション情報を記憶するように特に構成される。
【０２５４】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット９０２は、認可情報が不許可である場合、第２のノードの認可情報をキャンセルし、第２のトランザクション情報を生成し、ブロックチェーン上に第２のトランザクション情報を記録するようにさらに構成され、第２のトランザクション情報は、第２のノードの識別および第２のノードの認可情報を含む。
【０２５５】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット９０２は、第２のノードの識別を取得する前に、第１のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第１の暗号化された暗号文を生成し、ブロックチェーン上のトランザクションとして第１の暗号化された暗号文を記憶するようにさらに構成される。
【０２５６】
図１０に示されるように、特定のハードウェア実装において、上記の実施形態のネットワークノードは、トランシーバ１００１、プロセッサ１００２、およびメモリ１００３を含む。ネットワークノードは、より多数または少数のコンポーネントをさらに含み、またはいくつかのコンポーネントを組み合わせてよく、または異なるコンポーネント配置を有してよい。これは、本出願で限定されない。
【０２５７】
トランシーバ１００１は、要求メッセージおよびフィードバック情報を受信および送信し、ネットワーク内の別のノードとのデータ伝送を実行するように構成される。トランシーバモジュールは、トランシーバモジュールを含んでよく、トランシーバモジュールは、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）モジュール、Ｂｌｕｅｔｏｏｔｈモジュール、ベースバンド（ｂａｓｅ  ｂａｎｄ）モジュールなどの通信モジュール、および通信モジュールに対応する無線周波数（ｒａｄｉｏ  ｆｒｅｑｕｅｎｃｙ、ＲＦ）回路を含み得る。トランシーバモジュールは、ワイヤレスローカルエリアネットワーク、Ｂｌｕｅｔｏｏｔｈ通信、赤外線通信での通信、ならびに／またはセルラー通信システム、たとえば、広帯域符号分割多元接続（Ｗｉｄｅｂａｎｄ  Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ａｃｃｅｓｓ、ＷＣＤＭＡ）および／もしくは高速ダウンリンクパケットアクセス（Ｈｉｇｈ  Ｓｐｅｅｄ  Ｄｏｗｎｌｉｎｋ  Ｐａｃｋｅｔ  Ａｃｃｅｓｓ、ＨＳＤＰＡ）での通信を実行するように構成される。トランシーバモジュールは、端末デバイス内のすべてのコンポーネントの間の通信を制御するように構成され、直接メモリアクセス（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）をサポートし得る。
【０２５８】
ネットワークノードの制御センターとして、プロセッサ１００２は、様々なインターフェースおよびラインを使用することによってネットワークノード全体の様々な部分に接続され、ネットワークノードの様々な機能を実行し、ならびに／またはメモリ１００３に記憶されたソフトウェアプログラムおよび／もしくはモジュールを動作させまたは実行し、メモリ１００３に記憶されたデータを呼び出すことによって、データを処理する。
【０２５９】
プロセッサ１００２は、集積回路（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＩＣ）によって形成されてよく、たとえば、単一のパッケージ化されたＩＣによって形成されてよく、または同じ機能もしくは異なる機能を有する複数のパッケージ化されたＩＣを接続することによって形成されてよい。たとえば、プロセッサは、中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）のみを含んでよく、またはＧＰＵ、デジタル信号プロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ、ＤＳＰ）、およびトランシーバ内の制御チップ（たとえばベースバンドチップ）の組み合わせであってよい。本出願の様々な実装において、ＣＰＵは、単一のコンピューティングコアであってよく、または複数のコンピューティングコアを含んでよい。
【０２６０】
メモリ１００３は、揮発性メモリ（ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、たとえば、ランダムアクセスメモリ（Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭ）を含んでよく、または不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）、たとえば、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）、ハードディスクドライブ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ、ＨＤＤ）、もしくはソリッドステートドライブ（Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｄｒｉｖｅ、ＳＳＤ）を含んでよく、またはメモリは、上記のタイプのメモリの組み合わせを含んでよい。メモリは、プログラムまたはコードを記憶し得る。ネットワークノードにおけるプロセッサ１００２は、プログラムまたはコードを実行してネットワークノードの機能を実装する。
【０２６１】
この実施形態では、トランシーバ１００１によって実装される機能は、図９に示された受信ユニット９０１および送信ユニット９０３によって実装されてよく、またはプロセッサ１００２によって制御されるトランシーバ１００１によって実装されてよい。処理ユニット９０２によって実装される機能は、プロセッサ１００２によって実装され得る。
【０２６２】
加えて、本出願はコンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体はプログラムを記憶し得る。プログラムが実行されたとき、本出願で提供されるデータアクセス権限を制御するための方法およびデータ伝送方法の実施形態におけるステップの一部または全部が実行され得る。記憶媒体は、磁気ディスク、光ディスク、読み取り専用メモリ  ＲＯＭ、またはランダムアクセスメモリＲＡＭなどであり得る。
【０２６３】
上記の実施形態の全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせを使用することによって実装され得る。ソフトウェアが実施形態を実装するために使用されるとき、実施形態は完全にまたは部分的にコンピュータプログラム製品の形態で実装され得る。
【０２６４】
コンピュータプログラム製品は、１つまたは複数のコンピュータ命令、たとえば、検証命令を含む。コンピュータ命令がコンピュータ上でロードされ実行されたとき、本出願の実施形態で説明されたプロセスまたは機能が全体的または部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラマブル装置であり得る。
【０２６５】
コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてよく、またはコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてよい。たとえば、コンピュータ命令は、有線またはワイヤレス様式で、ウェブサイト、コンピュータ、サーバ、またはデータセンターから別のウェブサイト、コンピュータ、サーバ、またはデータセンターに伝送され得る。
【０２６６】
コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、または１つもしくは複数の使用可能な媒体を統合するサーバやデータセンターなどのストレージデバイスであり得る。使用可能な媒体は、磁気媒体、たとえば、フロッピーディスク、ハードディスク、磁気テープ、光学媒体（たとえばＤＶＤ）、またはソリッドステートドライブＳＳＤなどの半導体媒体であり得る。
【０２６７】
さらに、本出願の実施形態におけるネットワークノードは基地局またはアクセスポイントであり得ることに留意されたい。たとえば、基地局は、ＧＳＭまたはＣＤＭＡにおけるトランシーバ基地局（ＢＴＳ、Ｂａｓｅ  Ｔｒａｎｓｃｅｉｖｅｒ  Ｓｔａｔｉｏｎ）であってよく、ＷＣＤＭＡにおけるノードＢ（ＮｏｄｅＢ）であってよく、またはＬＴＥにおける進化型ノードＢ（ｅＮＢもしくはｅ−ＮｏｄｅＢ、ｅｖｏｌｖｅｄ  Ｎｏｄｅ  Ｂ）であってよい。これは、本出願で限定されない。
【０２６８】
また、ネットワークノードはさらに、クライアントまたは端末デバイスであり得る。端末デバイスは、ユーザに音声および／もしくはデータ接続性を提供するデバイス、ワイヤレス接続機能を有するハンドヘルドデバイス、またはワイヤレスモデムに接続される別の処理デバイスであってよい。
【０２６９】
ワイヤレス端末は、無線アクセスネットワークＲＡＮを介して１つまたは複数のノードと通信し得る。ワイヤレス端末は、（「セルラー」電話とも呼ばれる）携帯電話などのモバイル端末、またはモバイル端末を有するコンピュータ、たとえば、ポータブル、ポケットサイズ、ハンドヘルド、コンピュータ内蔵、または車両搭載モバイル装置であってよく、それらは、無線アクセスネットワークと音声および／またはデータを交換する。たとえば、ワイヤレス端末は、パーソナル通信サービス（Ｐｅｒｓｏｎａｌ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｓｅｒｖｉｃｅ、ＰＣＳ）電話、コードレス電話機、セッション開始プロトコル（ＳＩＰ）電話、ワイヤレスローカルループ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ｌｏｏｐ、ＷＬＬ）局、または携帯情報端末（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ、ＰＤＡ）などのデバイスであってよい。ワイヤレス端末は、システム、加入者ユニット（Ｓｕｂｓｃｒｉｂｅｒ  Ｕｎｉｔ）、加入者局（Ｓｕｂｓｃｒｉｂｅｒ  Ｓｔａｔｉｏｎ）、移動局（Ｍｏｂｉｌｅ  Ｓｔａｔｉｏｎ）、モバイル端末（Ｍｏｂｉｌｅ）、リモート局（Ｒｅｍｏｔｅ  Ｓｔａｔｉｏｎ）、アクセスポイント（Ａｃｃｅｓｓ  Ｐｏｉｎｔ、ＡＰ）、リモート端末（Ｒｅｍｏｔｅ  Ｔｅｒｍｉｎａｌ）、アクセス端末（Ａｃｃｅｓｓ  Ｔｅｒｍｉｎａｌ）、ユーザ端末（Ｕｓｅｒ  Ｔｅｒｍｉｎａｌ）、ユーザエージェント（Ｕｓｅｒ  Ａｇｅｎｔ）、ユーザデバイス（Ｕｓｅｒ  Ｄｅｖｉｃｅ）、またはユーザ機器（Ｕｓｅｒ  Ｅｑｕｉｐｍｅｎｔ）と呼ばれることもある。
【０２７０】
本出願の明細書、特許請求の範囲、および添付図面において、用語「第１」、「第２」など（もしあれば）は、同様の対象を区別することが意図されているが、必ずしも特定の順序または配列を示すものではない。そのように称されるデータは、適切な環境で交換可能であり、したがって、本明細書に記載された実施形態は、本明細書に示され説明された順序以外の順序で実装されることが可能であることを理解されたい。さらに、用語「含む」、「含有する」、または他の変形は、非排他的な包含を含むことを意図しており、たとえば、ステップまたはユニットのリストを含む処理、方法、システム、製品、デバイスは、それらのユニットに必ずしも限定されず、そのような処理、方法、システム、製品またはデバイスに明示的に列挙されないまたは固有でない他のユニットを含み得る。
【０２７１】
本発明の実施形態における技術は必要な一般的なハードウェアプラットフォームに加えてソフトウェアよって実装され得ることを、当業者は明確に理解し得る。そのような理解に基づいて、先行技術に本質的または部分的に貢献する本発明の実施形態における技術的解決策は、ソフトウェア製品の形態で実装され得る。コンピュータソフトウェア製品は、ＲＯＭ／ＲＡＭ、磁気ディスク、または光ディスクなどの記憶媒体に記憶されてよく、本発明の実施形態または実施形態のいくつかの部分で説明された方法を実行するように、コンピュータデバイス（パーソナルコンピュータ、サーバ、もしくはネットワークデバイスなどであり得る）に命令するためのいくつかの命令を含む。
【０２７２】
本明細書における実施形態の同じおよび類似する部分については、実施形態を参照されたい。特に、ネットワークノードまたは装置デバイスは、基本的に方法実施形態と同様であり、したがって簡潔に説明されている。関係付けられた部分については、方法実施形態の説明を参照されたい。
【０２７３】
本出願の上記の実装は、本出願の保護範囲に対する限定を構成しない。
【国際調査報告】
2021516917.tif 000027
2021516917.tif 000028
2021516917.tif 000029
2021516917.tif 000030