(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】2021516917
(43)【公表日】20210708
(54)【発明の名称】データアクセス権限を制御するための方法および装置
(51)【国際特許分類】
   H04L 9/32 20060101AFI20210611BHJP
   H04L 9/08 20060101ALI20210611BHJP
【FI】
   !H04L9/00 675Z
   !H04L9/00 601A
【審査請求】有
【予備審査請求】未請求
【全頁数】83
(21)【出願番号】2020550788
(86)(22)【出願日】20190221
(85)【翻訳文提出日】20201026
(86)【国際出願番号】CN2019075719
(87)【国際公開番号】WO2019179277
(87)【国際公開日】20190926
(31)【優先権主張番号】201810224356.1
(32)【優先日】20180319
(33)【優先権主張国】CN
(81)【指定国】 AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.WCDMA
3.Hyperledger
(71)【出願人】
【識別番号】503433420
【氏名又は名称】華為技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
【住所又は居所】中華人民共和国 518129 広東省深▲チェン▼市龍崗区坂田 華為総部▲ベン▼公楼
【住所又は居所原語表記】Huawei Administration Building, Bantian, Longgang District, Shenzhen, Guangdong 518129, P.R. China
(74)【代理人】
【識別番号】100132481
【弁理士】
【氏名又は名称】赤澤 克豪
(74)【代理人】
【識別番号】100115635
【弁理士】
【氏名又は名称】窪田 郁大
(72)【発明者】
【氏名】胡 瑞▲豊▼
【住所又は居所】中華人民共和国 518129 広東省深▲チェン▼市龍崗区坂田 華為総部▲ベン▼公楼
(72)【発明者】
【氏名】蒋 ▲飛▼虎
【住所又は居所】中華人民共和国 518129 広東省深▲チェン▼市龍崗区坂田 華為総部▲ベン▼公楼
(72)【発明者】
【氏名】阮 子瀚
【住所又は居所】中華人民共和国 518129 広東省深▲チェン▼市龍崗区坂田 華為総部▲ベン▼公楼
(72)【発明者】
【氏名】姜 耀国
【住所又は居所】中華人民共和国 518129 広東省深▲チェン▼市龍崗区坂田 華為総部▲ベン▼公楼
(72)【発明者】
【氏名】周 皓▲ジュン▼
【住所又は居所】中華人民共和国 518129 広東省深▲チェン▼市龍崗区坂田 華為総部▲ベン▼公楼
(57)【要約】
データアクセス権限を制御するための方法および装置を開示する。方法は、第1のプロキシノードによって、要求ノードから第1の要求メッセージを受信するステップであって、第1の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第1の暗号化された暗号文を決定するステップと、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始するステップと、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップとを含む。この方法において、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができ、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【特許請求の範囲】
【請求項1】
データアクセス権限を制御するための方法であって、
第1のプロキシノードによって、要求ノードから第1の要求メッセージを受信するステップであって、前記第1の要求メッセージは、前記要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、
前記第1のプロキシノードによって、前記アクセスされるべきデータの前記識別子に基づいて、ブロックチェーンネットワークにおける第1の暗号化された暗号文を決定するステップ、および前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、
はいの場合、少なくとも1つの第2のプロキシノードに対して前記要求ノードについての権限検証要求を開始するステップ、および前記少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、前記第1の暗号化された暗号文のプロビジョニングを決定するステップと
を含む、方法。
【請求項2】
前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定する前記ステップは、
前記ブロックチェーン上で、前記要求ノードの前記識別に基づいて前記要求ノードの認可情報を読み取るステップを含み、前記認可情報は、前記ブロックチェーンのチェーンストレージ構造の末端に最も近く、前記認可情報は、許可または不許可を含む、請求項1に記載の方法。
【請求項3】
少なくとも1つの第2のプロキシノードに対して前記要求ノードについての権限検証要求を開始する前記ステップは、
前記第1のプロキシノードによって、m個の第2のプロキシノードを決定するステップであって、mは1以上の正の整数である、ステップと、
前記権限検証要求を生成するステップであって、前記権限検証要求は、前記要求ノードの前記識別、および前記第1の暗号化された暗号文を含み、前記第1の暗号化された暗号文は、前記アクセスされるべきデータを暗号化することによって生成される、ステップと、
m個の第2のプロキシノードのそれぞれに前記権限検証要求を送信するステップと
を含む、請求項1に記載の方法。
【請求項4】
前記少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、前記第1の暗号化された暗号文のプロビジョニングを決定する前記ステップは、
前記第1のプロキシノードによって、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するステップであって、前記第2のプロキシノードが、前記要求ノードの前記識別に基づいて、前記要求ノードがデータにアクセスする権限を有することを検証した後に、前記部分鍵は、前記第2のプロキシノードによって生成され送信され、k≦mである、ステップと、
前記少なくともk個の部分鍵を回復して変換鍵を生成するステップと、
前記変換鍵および暗号化アルゴリズムを使用することによって、前記第1の暗号化された暗号文を第2の暗号化された暗号文に変換するステップであって、前記第2の暗号化された暗号文は、前記要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、
前記第2の暗号化された暗号文を前記要求ノードに送信するステップと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、前記第1の暗号化された暗号文のプロビジョニングを決定するステップは、
前記第1のプロキシノードが、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを前記要求ノードに送信するステップを含む、請求項3に記載の方法。
【請求項6】
第1のプロキシノードによって、要求ノードから第1の要求メッセージを受信するステップは、
前記第1のプロキシノードによって、前記ブロックチェーンネットワーク上の任意のブロックチェーンノードによって転送された前記第1の要求メッセージを受信するステップを含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記第1のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有しないと決定し、前記要求ノードの前記第1の要求メッセージを拒否するステップをさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項8】
第1のノードによって、第2のノードの識別を取得するステップであって、前記識別は、前記第2のノードの認可情報を決定するために使用される、ステップと、
前記認可情報が許可である場合、前記第1のノードによって、前記第1のノードの秘密鍵、前記第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成するステップと、
前記第1のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成するステップと、
前記第1のノードによって、第1のトランザクション情報を生成し、前記ブロックチェーンネットワーク上に前記第1のトランザクション情報を記録するステップであって、前記第1のトランザクション情報は、前記第2のノードの前記識別、前記第2のノードの前記認可情報、および前記暗号化された部分鍵を含む、ステップと
を含む、データ伝送方法。
【請求項9】
前記第1のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成する前記ステップは、
前記第1のノードによって、秘密分散アルゴリズムを使用することによって前記変換鍵をn個の部分鍵に分割するステップであって、nは、1以上の正の整数である、ステップと、
前記第1のノードによって、前記ブロックチェーンネットワークからm個のプロキシノードを選択し、前記m個のプロキシノードの公開鍵を使用することによって前記n個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成するステップであって、m≦nである、ステップと
を含む、請求項8に記載の方法。
【請求項10】
前記第1のトランザクション情報は、前記m個のプロキシノードの識別と、前記変換鍵を回復するための部分鍵の最小量kとをさらに含む、請求項9に記載の方法。
【請求項11】
前記ブロックチェーンネットワーク上に前記第1のトランザクション情報を記録するステップは、
前記第1のノードによって、前記第1のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、前記第1のトランザクション情報をブロードキャストし、前記ブロックチェーンノードを使用することによってネットワーク全体で前記第1のトランザクション情報について合意に達し、前記第1のトランザクション情報を記憶するステップを含む、請求項8から10のいずれか一項に記載の方法。
【請求項12】
前記認可情報が不許可である場合、前記第2のノードの前記認可情報をキャンセルするステップと、
第2のトランザクション情報を生成するステップであって、前記第2のトランザクション情報は、前記第2のノードの前記識別および前記第2のノードの前記認可情報を含む、ステップと、
前記ブロックチェーンネットワーク上に前記第2のトランザクション情報を記録するステップと
をさらに含む、請求項8に記載の方法。
【請求項13】
第1のノードによって第2のノードの識別を取得するステップの前に、
前記第1のノードによって、前記第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成するステップと、
前記第1のノードによって、前記ブロックチェーンネットワーク上のトランザクションとして前記第1の暗号化された暗号文を記憶するステップと
をさらに含む、請求項8から10のいずれか一項に記載の方法。
【請求項14】
第2のプロキシノードによって、第1のプロキシノードから権限検証要求を受信するステップであって、前記権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、前記第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、
前記第2のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、
はいの場合、部分鍵を生成し、前記部分鍵を前記第1のプロキシノードに送信するステップと
を含む、データ伝送方法。
【請求項15】
部分鍵を生成する前記ステップは、
前記第2のプロキシノードによって、ブロックチェーンネットワーク上の暗号化された部分鍵を取得するステップであって、前記暗号化された部分鍵は、前記第2のプロキシノードの公開鍵を使用した暗号化によって生成される、ステップと、
前記第2のプロキシノードによって、前記第2のプロキシノードの秘密鍵を使用することによって、前記暗号化された部分鍵を復号して、前記部分鍵を生成するステップと
を含む、請求項14に記載の方法。
【請求項16】
前記第2のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有しないと決定し、前記第1のプロキシノードの第1の要求を拒否するステップをさらに含む、請求項14または15に記載の方法。
【請求項17】
第1のプロキシノードに適用されるネットワークノードであって、
要求ノードから第1の要求メッセージを受信するように構成された受信ユニットであって、前記第1の要求メッセージは、前記要求ノードの識別、およびアクセスされるべきデータの識別子を含む、受信ユニットと、
前記アクセスされるべきデータの前記識別子に基づいて、ブロックチェーンネットワークにおける第1の暗号化された暗号文を決定し、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するように構成された処理ユニットと、
前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有する場合、少なくとも1つの第2のプロキシノードに対して前記要求ノードについての権限検証要求を開始するように構成された送信ユニットと
を備え、
前記処理ユニットは、前記少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有する場合、前記第1の暗号化された暗号文のプロビジョニングを決定するようにさらに構成される、ネットワークノード。
【請求項18】
前記送信ユニットは、ブロックチェーン上で、前記要求ノードの前記識別に基づいて前記要求ノードの認可情報を読み取るように特に構成され、前記認可情報は、前記ブロックチェーンのチェーンストレージ構造の末端に最も近く、前記認可情報は、許可または不許可を含む、請求項17に記載のネットワークノード。
【請求項19】
前記処理ユニットは、m個の第2のプロキシノードを決定し、前記権限検証要求を生成するように特に構成され、前記権限検証要求は、前記要求ノードの前記識別、および前記第1の暗号化された暗号文を含み、前記第1の暗号化された暗号文は、前記アクセスされるべきデータを暗号化することによって生成され、mは1以上の正の整数であり、
前記送信ユニットは、前記m個の第2のプロキシノードのそれぞれに前記権限検証要求を送信するように特に構成される、請求項17に記載のネットワークノード。
【請求項20】
前記受信ユニットは、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するようにさらに構成され、前記第2のプロキシノードが、前記要求ノードの前記識別に基づいて、前記要求ノードがデータにアクセスする権限を有することを検証した後に、前記部分鍵は、前記第2のプロキシノードによって生成され送信され、k≦mであり、
前記処理ユニットは、前記少なくともk個の部分鍵を回復して変換鍵を生成し、前記変換鍵および暗号化アルゴリズムを使用することによって、前記第1の暗号化された暗号文を第2の暗号化された暗号文に変換するように特に構成され、前記第2の暗号化された暗号文は、前記要求ノードの公開鍵を使用して暗号化によって生成され、
前記送信ユニットは、前記第2の暗号化された暗号文を前記要求ノードに送信するようにさらに構成される、請求項17から19のいずれか一項に記載のネットワークノード。
【請求項21】
前記処理ユニットは、前記受信ユニットを使用することによって、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または前記受信ユニットを使用することによって、少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、前記送信ユニットを使用することによって、アクセス拒否メッセージを前記要求ノードに送信するように特に構成される、請求項20に記載のネットワークノード。
【請求項22】
前記受信ユニットは、前記ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された前記第1の要求メッセージを受信するように特に構成される、請求項17から21のいずれか一項に記載のネットワークノード。
【請求項23】
前記処理ユニットは、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有するかどうかを決定し、前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有しない場合、前記要求ノードの前記第1の要求メッセージを拒否するようにさらに構成された、請求項17から21のいずれか一項に記載のネットワークノード。
【請求項24】
第1のノードに適用されるネットワークノードであって、
第2のノードの識別を取得するように構成された受信ユニットであって、前記識別は、前記第2のノードの認可情報を決定するために使用される、受信ユニットと、
前記認可情報が許可である場合、前記ネットワークノードの秘密鍵、前記第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成し、第1のトランザクション情報を生成し、前記ブロックチェーンネットワーク上に前記第1のトランザクション情報を記録するように構成された処理ユニットと
を備え、
前記第1のトランザクション情報は、前記第2のノードの前記識別、前記第2のノードの前記認可情報、および前記暗号化された部分鍵を含む、ネットワークノード。
【請求項25】
前記処理ユニットは、秘密分散アルゴリズムを使用することによって前記変換鍵をn個の部分鍵に分割し、nは1以上の正の整数であり、前記ブロックチェーンネットワークからm個のプロキシノードを選択し、前記m個のプロキシノードの公開鍵を使用することによって前記n個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成し、m≦nであるように特に構成される、請求項24に記載のネットワークノード。
【請求項26】
前記第1のトランザクション情報は、前記m個のプロキシノードの識別と、前記変換鍵を回復するための部分鍵の最小量kとをさらに含む、請求項25に記載のネットワークノード。
【請求項27】
前記処理ユニットは、前記第1のトランザクション情報を前記ブロックチェーンネットワーク上のブロックチェーンノードに送信し、前記第1のトランザクション情報をブロードキャストし、前記ブロックチェーンノードを使用することによってネットワーク全体で前記第1のトランザクション情報について合意に達し、前記第1のトランザクション情報を記憶するように特に構成される、請求項24から26のいずれか一項に記載のネットワークノード。
【請求項28】
前記処理ユニットは、前記認可情報が不許可である場合、前記第2のノードの前記認可情報をキャンセルし、第2のトランザクション情報を生成し、前記ブロックチェーンネットワーク上に前記第2のトランザクション情報を記録するようにさらに構成され、前記第2のトランザクション情報は、前記第2のノードの前記識別および前記第2のノードの前記認可情報を含む、請求項27に記載のネットワークノード。
【請求項29】
前記処理ユニットは、前記第2のノードの前記識別を取得する前に、前記第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成し、前記ブロックチェーンネットワーク上のトランザクションとして前記第1の暗号化された暗号文を記憶するようにさらに構成された、請求項24から26のいずれか一項に記載のネットワークノード。
【請求項30】
第2のプロキシノードに適用されるネットワークノードであって、
第1のプロキシノードから権限検証要求を受信するように構成された受信ユニットであって、前記権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、前記第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、受信ユニットと、
前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、はいの場合、部分鍵を生成するように構成された処理ユニットと、
前記部分鍵を第1のプロキシノードに送信するように構成された送信ユニットと
を備えた、ネットワークノード。
【請求項31】
前記処理ユニットは、ブロックチェーンネットワーク上の暗号化された部分鍵を取得し、前記暗号化された部分鍵は、前記第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、前記第2のプロキシノードの秘密鍵を使用することによって、前記暗号化された部分鍵を復号して、前記部分鍵を生成するように特に構成された、請求項30に記載のネットワークノード。
【請求項32】
前記処理ユニットは、前記要求ノードの前記識別子に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有しない場合、前記第1のプロキシノードの第1の要求を拒否するようにさらに構成された、請求項30または31に記載のネットワークノード。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、ブロックチェーンの分野に関し、特に、データアクセス権限を制御するための方法および装置に関する。
【背景技術】
【0002】
本出願は、2018年3月19日に中国国家知識産権局に出願された「METHOD AND APPARATUS FOR CONTROLLING DATA ACCESS RIGHT」と題される中国特許出願第201810224356.1号の優先権を主張するものであり、参照によりその全体が本明細書に組み込まれている。
【0003】
ブロックチェーンは、分散型台帳とも呼ばれる。すなわち、トランザクションが、異なる場所に分散された複数のノードによって共同でアカウンティングされ、各ノードが完全なアカウントを記録する。狭義には、ブロックチェーンは、データブロックを時系列で結合することによって得られるチェーン化されたデータ構造であり、暗号を使用することによって改竄や偽造から保護される分散型台帳である。
【0004】
ブロックチェーン技術のため、ブロックチェーンは分散化およびトラストレスという特徴を有する。分散化は、ブロックチェーンネットワーク全体において集中化されたハードウェアまたは管理メカニズムが存在せず、諸ノードの権限および義務が等しく、ノードの損傷または損失がネットワークシステム全体の動作に影響を与えないことを意味する。したがって、ブロックチェーンネットワークの望ましい堅牢性が保証される。トラストレスは、ノードがネットワーク全体においてデータ交換に参加するために相互信頼を必要としないことを意味する。ブロックチェーンネットワークシステム全体の動作ルールはオープンであり、透明性があり、すべてのブロックチェーンノード上のデータコンテンツもオープンである。したがって、システムにより指定されたルールまたは時間範囲内で、ノードは互いに欺くことができない。
【0005】
クライアントは、ブロックチェーン上のノード内のアクセスデータを要求し、ブロックチェーン上のノードは、暗号化されたデータおよび復号鍵をクライアントに提供する。次いで、クライアントは、暗号化されたデータを、復号鍵を使用することによって復号して、アクセスデータを取得し、ブロックチェーン上にアクセスデータを記録する。この処理では、ブロックチェーンノードにおける台帳の過去のトランザクションデータが変更または削除されることが可能でなく、ブロックチェーン上のデータは公開され、キャンセルされることが可能でないため、アクセス権限がユーザに付与され復号鍵が配布されると、アクセス権限が取り消されることができない。この場合、ユーザのアクセス権限が禁止される必要があるとき、ユーザがデータにアクセスするのを防止することができず、データアクセスのリスクおよび不安定性をもたらす。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Improved Proxy Re−Encryption Schemes with Applications to Secure Distributed Storage
【発明の概要】
【0007】
本出願は、データアクセス権限を制御するための方法および装置を提供して、ユーザのアクセス権限が変化したとき、ユーザによって要求されるデータまたは暗号文のプロビジョニングを制御する。
【0008】
具体的には、上記の技術的問題を解決するために、本出願は、以下の技術的解決策を開示する。
【0009】
第1の態様によれば、本出願は、データアクセス権限を制御するための方法を提供する。方法は、第1のプロキシノードによって、要求ノードから第1の要求メッセージを受信するステップであって、第1の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、第1のプロキシノードによって、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第1の暗号化された暗号文を決定するステップ、および要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始するステップ、および少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップとを含む。
【0010】
任意選択で、第1のプロキシノードは、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、要求ノードが第1の暗号化された暗号文を読み取る権限を有しない場合、第1のプロキシノードは、要求ノードの第1の要求を拒否する。
【0011】
この態様で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーン上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【0012】
さらに、少なくとも1つの第2のプロキシノードを使用することによって要求元の識別がさらに検証され、したがって、1つのみの第1のプロキシノードが検証で使用されるときに不正行為が発生する可能性が回避されることが可能であり、それにより、検証精度をさらに改善し、情報伝送のセキュリティをさらに確実にする。
【0013】
第1の態様に関し、第1の態様の実装では、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るステップを含み、認可情報は、ブロックチェーン上のチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【0014】
この実装では、暗号化された暗号文および鍵を要求ノードが取得できるかどうかのチェックに備えるために、要求元の最新のアクセス権限が、要求ノードの認可情報を読み取ることによって取得されてよく、認可情報は、ブロックチェーン上のチェーンストレージ構造の末端に最も近い。
【0015】
第1の態様に関し、第1の態様の別の実装では、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始するステップは、第1のプロキシノードによって、m個の第2のプロキシノードを決定するステップであって、mは1以上の正の整数である、ステップと、権限検証要求を生成するステップであって、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、m個の第2のプロキシノードのそれぞれに権限検証要求を別々に送信するステップとを含む。
【0016】
第1の態様に関し、第1の態様のさらに別の実装では、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップは、
第1のプロキシノードによって、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するステップであって、第2のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第2のプロキシノードによって生成され送信され、k≦mである、ステップと、少なくともk個の部分鍵を回復して変換鍵を生成するステップと、変換鍵および暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文を第2の暗号化された暗号文に変換するステップであって、第2の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、第2の暗号化された暗号文を要求ノードに送信するステップとを含む。
【0017】
この実装では、第1のプロキシノードが、権限検証要求を複数の第2のプロキシノードに送信し、第2のプロキシノードにより送信された十分な量の部分鍵を取得した後のみに、変換鍵を回復することができる。すなわち、変換鍵は、複数の第2のプロキシノードが共同の復号に参加した後のみに生成されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、したがって、少数のノードが不正なやり方で権限制御を回避することによって暗号文を取得することが効果的に防止される。この方法は、復号複雑性を増大させて、効果的に暗号文の送信および読み取りのセキュリティを確実にし、認可されていないユーザが暗号文またはデータを読み取るのを防止する。
【0018】
第1の態様に関し、第1の態様のさらに別の実装では、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップは、第1のプロキシノードが、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを要求ノードに送信するステップを含む。
【0019】
第1の態様に関し、第1の態様のさらに別の実装では、第1のプロキシノードによって、要求ノードから第1の要求メッセージを受信するステップは、第1のプロキシノードによって、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することによって転送された第1の要求メッセージを受信するステップを含む。
【0020】
第2の態様によれば、本出願は、データ伝送方法をさらに提供する。方法は、データソースまたはデータ所有者に適用され得る。この態様では、第1のノードは例として使用され、方法は、
第1のノードによって、第2のノードの識別を取得するステップであって、識別は、第2のノードの認可情報を決定するために使用され、認可情報は、許可および不許可を含み、第2のノードは、要求ノードまたはデータ要求元である、ステップと、認可情報が許可である場合、第1のノードによって、第1のノードの秘密鍵、第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成するステップと、第1のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成するステップと、第1のノードによって、第1のトランザクション情報を生成し、ブロックチェーンネットワーク上に第1のトランザクション情報を記録するステップであって、第1のトランザクション情報は、第2のノードの識別、第2のノードの認可情報、および暗号化された部分鍵を含む、ステップとを含む。
【0021】
第2の態様に関し、第2の態様の実装では、第1のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成するステップは、第1のノードによって、秘密分散アルゴリズムを使用することによって変換鍵をn個の部分鍵に分割するステップであって、nは、1以上の正の整数である、ステップと、第1のノードによって、ブロックチェーンネットワークからm個のプロキシノードを選択し、m個のプロキシノードの公開鍵を使用することによってn個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成するステップであって、m≦nである、ステップとを含む。
【0022】
第2の態様に関し、第2の態様の別の実装では、第1のトランザクション情報は、m個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量kとをさらに含む。取得された部分鍵の量がk未満であるとき、必要とされる変換鍵が回復されることができない。この場合、少数またはいくつかのプロキシノードによる不正行為が防止され、それにより、検証のセキュリティおよび信頼性を改善することができる。
【0023】
第2の態様に関し、第2の態様のさらに別の実装では、ブロックチェーンネットワーク上に第1のトランザクション情報を記録するステップは、第1のノードによって、第1のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第1のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第1のトランザクション情報について合意に達し、第1のトランザクション情報を記憶するステップを含む。
【0024】
第2の態様に関し、第2の態様のさらに別の実装では、方法は、認可情報が不許可である場合、第2のノードの認可情報をキャンセルするステップと、第2のトランザクション情報を生成するステップであって、第2のトランザクション情報は、第2のノードの識別および第2のノードの認可情報を含む、ステップと、ブロックチェーンネットワーク上に第2のトランザクション情報を記録するステップとをさらに含む。
【0025】
第2の態様に関し、第2の態様のさらに別の実装では、第1のノードによって第2のノードの識別を取得するステップの前に、方法は、第1のノードによって、第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成するステップと、第1のノードによって、ブロックチェーンネットワーク上のトランザクションとして第1の暗号化された暗号文を記憶するステップとをさらに含む。
【0026】
第3の態様によれば、本出願はデータ伝送方法をさらに提供し、方法は第2のプロキシノードに適用されてよく、第2のプロキシノードは第1のプロキシノードまたはプライマリプロキシノードであってよく、方法は、
第2のプロキシノードによって、第1のプロキシノードから権限検証要求を受信するステップであって、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、第2のプロキシノードによって、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、部分鍵を生成し、部分鍵を第1のプロキシノードに送信するステップとを含む。
【0027】
この態様では、第1のプロキシノードが、要求ノードのアクセスが許可されることを検証したとき、第2のプロキシノードが、さらに要求ノードの権限を検証する。要求ノードのアクセスが許可されることを検証するとき、第2のプロキシノードが、生成された部分鍵を第1のプロキシノードに送信するので、第1のプロキシノードが、部分鍵を収集し最終的な変換鍵を合成し、それにより、第1のプロキシノードの不正行為を効果的に防止し、検証のセキュリティを改善する。
【0028】
第3の態様に関し、第3の態様の実装では、部分鍵を生成するステップは、第2のプロキシノードによって、ブロックチェーンネットワーク上の暗号化された部分鍵を取得するステップであって、暗号化された部分鍵は、第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成される、ステップと、第2のプロキシノードによって、第2のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するステップとを含む。
【0029】
第3の態様に関し、第3の態様の別の実装では、方法は、第2のプロキシノードによって、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、要求ノードが第1の暗号化された暗号文を読み取る権限を有しない場合、第1のプロキシノードの第1の要求を拒否するステップとをさらに含む。
【0030】
第4の態様によれば、本出願は、データアクセス権限を制御するための装置をさらに提供する。たとえば、装置は、ネットワークノードであってよく、またはネットワークノードにおいて構成されてよい。装置またはネットワークノードは、上述の態様における第1のプロキシノード、第1のノード、または第2のプロキシノードであってよく、装置は、第1の態様から第3の態様および態様の実装における方法ステップを実行するように構成されたユニットを含む。
【0031】
具体的には、装置は、受信ユニット、処理ユニット、および送信ユニットを含む。加えて、装置は、記憶ユニットなど別のユニットまたはモジュールをさらに含み得る。これは、本出願で限定されない。
【0032】
第5の態様によれば、本出願はネットワークノードをさらに提供する。ネットワークノードは、プロセッサ、トランシーバ、およびメモリを含む。ネットワークノードは、第1のプロキシノードであるとき、
トランシーバは、要求ノードから第1の要求メッセージを受信するように構成され、第1の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含み、
プロセッサは、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第1の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、要求ノードの第1の要求を拒否し、または、はいの場合、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始し、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するように構成される。
【0033】
第5の態様に関し、第5の態様の実装では、プロセッサは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るように特に構成され、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可および不許可を含む。
【0034】
第5の態様に関し、第5の態様の別の実装では、プロセッサは、m個の第2のプロキシノードを決定し、mは1以上の正の整数であり、権限検証要求を生成し、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、トランシーバを使用することによって、m個の第2のプロキシノードのそれぞれに権限検証要求を送信するように特に構成される。
【0035】
第5の態様に関し、第5の態様のさらに別の実装では、トランシーバは、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するように特に構成され、第2のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第2のプロキシノードによって生成され送信され、k≦mであり、
プロセッサは、少なくともk個の部分鍵を回復して変換鍵を生成し、変換鍵および暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文を第2の暗号化された暗号文に変換するように特に構成され、第2の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成され、
トランシーバは、第2の暗号化された暗号文を要求ノードに送信するように特に構成される。
【0036】
第5の態様に関し、第5の態様のさらに別の実装では、プロセッサは、第1のプロキシノードが、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、トランシーバを使用することによって、アクセス拒否メッセージを要求ノードに送信するように特に構成される。
【0037】
第5の態様に関し、第5の態様のさらに別の実装では、トランシーバは、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された第1の要求メッセージを受信するように特に構成される。
【0038】
さらに、ネットワークノードが第1のプロキシノードである場合、トランシーバは、第1のプロキシノードから権限検証要求を受信するように構成され、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、
プロセッサは、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第1のプロキシノードの第1の要求を拒否し、または、はいの場合、部分鍵を生成するように構成され、
トランシーバは、部分鍵を第1のプロキシノードに送信するようにさらに構成される。
【0039】
任意選択で、プロセッサは、ブロックチェーンネットワーク上の暗号化された部分鍵を取得し、暗号化された部分鍵は、第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、第2のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するように特に構成される。
【0040】
第6の態様によれば、本出願はネットワークノードをさらに提供する。ネットワークノードは、プロセッサ、トランシーバ、およびメモリを含む。ネットワークノードは、データソースまたはデータ所有者、たとえば、第1のノードであるとき、
トランシーバは、第2のノードの識別を取得するように構成され、識別は、第2のノードの認可情報を決定するために使用され、認可情報は、許可および不許可を含み、
プロセッサは、認可情報が許可である場合、ネットワークノードの秘密鍵、第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成し、第1のトランザクション情報を生成し、ブロックチェーンネットワーク上に第1のトランザクション情報を記録するように構成され、
第1のトランザクション情報は、第2のノードの識別、第2のノードの認可情報、および暗号化された部分鍵を含む。
【0041】
第5の態様に関し、第5の態様の実装では、プロセッサは、秘密分散アルゴリズムを使用することによって変換鍵をn個の部分鍵に分割し、nは1以上の正の整数であり、ブロックチェーンネットワークからm個のプロキシノードを選択し、m個のプロキシノードの公開鍵を使用することによってn個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成し、m≦nであるように特に構成される。
【0042】
第5の態様に関し、第5の態様の別の実装では、第1のトランザクション情報は、m個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量kとをさらに含む。
【0043】
第5の態様に関し、第5の態様のさらに別の実装では、プロセッサは、具体的には第1のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第1のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第1のトランザクション情報について合意に達し、第1のトランザクション情報を記憶するように特に構成される。
【0044】
第5の態様に関し、第5の態様のさらに別の実装では、プロセッサは、認可情報が不許可である場合、第2のノードの認可情報をキャンセルし、第2のトランザクション情報を生成し、ブロックチェーンネットワーク上に第2のトランザクション情報を記録するようにさらに構成され、第2のトランザクション情報は、第2のノードの識別および第2のノードの認可情報を含む。
【0045】
第5の態様に関し、第5の態様のさらに別の実装では、プロセッサは、第2のノードの識別を取得する前に、第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成し、ブロックチェーンネットワーク上のトランザクションとして第1の暗号化された暗号文を記憶するようにさらに構成される。
【0046】
第7の態様によれば、本出願はコンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体は、命令を記憶してよく、命令が実行されたとき、本出願において提供される第1の態様から第3の態様および第1の態様から第3の態様の実装におけるデータアクセス権限を制御するための方法の一部または全部のステップが実装されることが可能である。
【0047】
第8の態様によれば、本出願は、命令を含むコンピュータプログラム製品をさらに提供する。命令がコンピュータ上で実行されたとき、コンピュータは上述の態様における方法を実行する。
【図面の簡単な説明】
【0048】
【図1】本出願によるファブリックアーキテクチャの概略図である。
【図2】本出願による閾値暗号システムにおける復号のフローチャートである。
【図3】本出願による、クライアントによってブロックチェーンネットワーク上のアクセスデータを要求するためのフローチャートである。
【図4a】本出願によるブロックチェーンシステムの概略構造図である。
【図4b】本出願による、データアクセス権限を制御するための方法のフローチャートである。
【図5】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図6A】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図6B】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図7】本出願によるプロキシ再暗号化システムの役割のフローチャートである。
【図8A】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図8B】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図8C】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図9】本出願によるネットワークノードの概略構造図である。
【図10】本出願によるネットワークノードの概略構造図である。
【発明を実施するための形態】
【0049】
本出願の実施形態における技術的解決策を当業者がよりよく理解するために、また、本出願の実施形態の目的、特徴、および利点をより明確にするために、以下では、添付の図面を参照して本出願の実施形態における技術的解決策をさらに詳細に説明する。
【0050】
まず、本出願における基本的概念が詳細に説明される。
【0051】
本出願の技術的解決策はブロックチェーンに関する。ブロックチェーン(Block Chain)は、ビットコインに由来する分散されたデータベースであり、ビットコインの基礎となる技術である。ブロックチェーンは、暗号法を使用して関連付けを通して生成されたデータブロックの系列である。各データブロックは、1つのビットコインネットワークトランザクションに関する情報を含み、情報は、ビットコインネットワークトランザクションの妥当性を検証し(偽造防止)、次のブロック(block)を生成するために使用される。
【0052】
狭義には、ブロックチェーンは、データブロックを時系列で結合することによって得られるチェーン化されたデータ構造であり、暗号を使用することによって改竄や偽造から保護される分散型台帳である。広義には、ブロックチェーンは、複数の独立した分散されたノードを使用することによって同じレコードを記憶する分散型台帳である。
【0053】
ブロックチェーン技術は、分散化されたトラストレスな様式で信頼できるデータベースを集合的に維持する技術的解決策である。新しいデータがブロックチェーンに書き込まれる必要があるたびに、データがブロックに集約され、既存のブロックチェーンの末端に追加される。ノードの新しく追加されたブロックが同じであることを確実にするために、合意アルゴリズムが使用される。
【0054】
いくつかのトランザクションレコードが各ブロックに記録され、ブロックは、前のブロックのハッシュ値(hash)を含む。すべてのブロックについて、このように前のブロック内の情報が記憶され、これらのブロックは、順に接続されてブロックチェーンを形成する。ブロックチェーンは、改竄されることが難しい。ブロックチェーン技術に基づいて、トランザクション(Transaction、Tx)は、合意に達することができる2つの当事者によって直接行われ、したがって、トランザクションに参加するために、信頼される第三者の集中化された仲介役は必要とされない。
【0055】
スマートコントラクト(smart contract)は、分散型ブロックチェーン台帳上で実行され、台帳上のデータを管理することができる、イベント駆動されるステートフルプログラムである。スマートコントラクトは、一般的コンピュータ実行可能プログラムと見なされてよく、このコンピュータ実行可能プログラムは、正確かつ自動的に実行されることが可能である。スマートコントラクトのコードコンテンツが、トランザクションルールおよびロジックを指定する。ユーザがスマートコントラクトに署名し呼び出したとき、それは、コントラクトコンテンツが実行されブロックチェーン台帳に書き込まれることを意味する。
【0056】
ブロックチェーンのコア技術の1つは、合意アルゴリズム、たとえば、ビットコインで使用されるプルーフオブワーク(Proof of Work、PoW)アルゴリズムである。ブロックチェーン上の合意アルゴリズムは、ビザンチンフォールトトレランスに向けられた合意シナリオに適用され、すなわち、ブロックチェーンネットワーク上のノードが互いに信頼せず悪意のある嘘つきノードがあり得る。ブロックチェーンネットワーク上の各ノードは、「嘘つき」ノードであり得る。しかしながら、大量のノードがネットワーク内に集約されたとき、ノードの合意結果は信頼される結果である。合意アルゴリズムの主な機能は、有効なトランザクションブロックの同じ内容をブロックチェーンのすべてのノードが記録することを可能にすることである。
【0057】
加えて、ブロックチェーンは、複数の当事者間の信頼問題を解決するための技術的メカニズムでもある。多者間信頼の前提条件は、技術的メカニズムが信頼できることである。したがって、ブロックチェーンは監査可能であることが必要である。ブロックチェーンシステム、スマートコントラクト、および合意アルゴリズムは、オープンソースであって複数の当事者に対してオープンである必要がある。
【0058】
ハイパーレジャー(Hyperledger)のファブリックプロジェクトは、合意に達するのを加速するメカニズムを使用する。このメカニズムのコアは、複数のエンドーサーピアがスマートコントラクトを実行し、実行結果をエンドース(endorsement)し、たとえば、エンドーサーピアがエンドーサーピアのコントラクト実行結果のコンテンツに署名して、結果が特定のエンドーサーピアにより送信されることを確実にすることである。ユーザは、実際の必要性に基づいて、ユーザのスマートコントラクトおよび複数の結果についての検証ポリシーによって信頼されるようにエンドーサーピアを設定してよく、たとえば、エンドースポリシー(endorse policy)を設定してよい。
【0059】
図1に示されるように、クライアントは、スマートコントラクト実行プロポーザル(proposal)を3つのエンドーサーピアに送信し得る。エンドースポリシーは、3つの実行結果のコンテンツが一致することを必要とすることがあり、または少なくとも2つの実行結果のコンテンツが一貫することを必要とすることがある。クライアントは、エンドーサーピアによりフィードバックされた実行結果を収集し、オーダラーピア(Orderer peer)を使用することによって、トランザクションに記録された実行結果をブロックチェーンネットワークにブロードキャストする。ブロックチェーンネットワーク上のノード、たとえば、エンドーサーピアは、トランザクションを読み取り、エンドースポリシーが満たされていることを検証するときにトランザクションを有効なトランザクションと見なし、トランザクションにおけるデータの変更を受け入れ、変更をブロックチェーンに書き込む。
【0060】
クライアント(client)またはクライアントアプリケーションは、ソフトウェア開発キット(Software Development Kit、SDK)を使用することによってファブリックシステムと対話し、有効なトランザクションを構築し、エンドーサーピアのためにトランザクションを提供する。エンドースポリシーで必要とされるエンドーサーピアからの十分なサポートが収集されると、有効なトランザクションプロポーザルが構築され、オーダラーピアまたはプロキシノードに送信され得る。
【0061】
エンドーサーピア(endorser peer)は、クライアントからのトランザクションの妥当性および権限のチェックを担当する。トランザクションが要件を満たす場合、エンドーサーピアはトランザクションに署名し、結果をクライアントに返す。
【0062】
オーダラーピア(orderer peer)は、トランザクションを順序付けし、順序付けられたトランザクションを他のノードにブロードキャストすることを担当する。オーダラーピアは、合意サービスを提供するノードまたはクラスタを含む。
【0063】
コミッターピア(committer peer)は、同意されたシーケンスを有するバッチトランザクション結果のステータスをチェックし、トランザクションがエンドースポリシーの要件を満たすかどうかをチェックし、台帳の読み取りセットにおける変数のステータスが変更されないままであることを確実にし、有効なトランザクションを実行し、ブロックを生成し、ブロックを台帳に書き込むように構成される。
【0064】
情報伝送のセキュリティおよび識別検証の精度を改善するために、本出願の技術的解決策はさらに、閾値暗号システム(Threshold cryptosystem)に関する。閾値暗号システムは、複数のメンバーの間で公開鍵に対応する秘密鍵を共有し、指定された量のメンバーが互いに協力したとき、公開鍵を使用することによって暗号化された暗号文が復号されることが可能である。閾値暗号システムの基礎は、秘密分散(secret sharing)である。
【0065】
具体的には、閾値暗号システムの解決策では、鍵をいくつかのシェア、たとえばn個のシェアに分割し、これらのシェアをn個の参加者に1つずつ送信する。任意のt(t<n)個の参加者またはn個の参加者のうちtより多数の参加者は、協力して復号操作を完了し得るが、t未満の参加者は、復号操作を完了することができない。
【0066】
以下では、閾値パスワードシステムにおけるすべての役割の機能および復号処理を説明する。
【0067】
図2は、閾値暗号システムにおける復号の概略的フローチャートである。閾値暗号システムは、鍵分配者、鍵参加者、および鍵合成者を含む。さらに、鍵分配者は、閾値暗号システムの信頼されるエンティティを確立するように構成され、閾値暗号システムにおけるパラメータを生成し、これらのパラメータをキー共有者に安全に送信することを担当する。鍵参加者は、閾値暗号システムにおける復号操作に参加する単一エンティティである。鍵合成者は、複数の参加者の復号されたシェアを取得し、これらの復号されたシェアを検証し復号する。
【0068】
たとえば、図2に示される通りである。ステップ1:閾値初期化設定。鍵分配者が、セキュリティパラメータを入力し、閾値暗号システムが、(PKで表され得る)公開パラメータのグループ、たとえば、n、t、およびSKを返す。nは鍵参加者の量を表し、tは閾値を表し、SKは閾値パスワードシステムにより生成された主鍵を示す。任意選択で、SK=(SK1,SK2,・・・,SKn)である。
【0069】
ステップ2:暗号化。システムの公開パラメータPKおよび鍵参加者の識別IDを使用することによって、平文メッセージを暗号化し、暗号化された暗号文cを生成し出力する。
【0070】
ステップ3:鍵シェア生成(Share key Gen)。鍵分配者は、システムの公開パラメータPK、暗号化された暗号文c、および主鍵SKを使用することによって、鍵シェアUiを算出する。
【0071】
ステップ4:鍵分配者は、鍵シェアUiをいくつかの鍵参加者に送信する。
【0072】
ステップ5:鍵参加者は、鍵シェアUiを取得し、鍵参加者は、鍵シェアUiを復号して、復号されたシェア、たとえば、復号されたシェア1、・・・、復号されたシェアtを生成する。
【0073】
ステップ6:各鍵参加者は、復号後に生成された復号されたシェアを鍵合成者に送信する。
【0074】
ステップ7:共同復号。鍵合成者は、復号されたシェアを取得し、たとえば、t個の復号されたシェアを取得し、t個の復号されたシェアを検証し、公開パラメータPKを使用することによって、t個の復号されたシェアを合成して、暗号化された暗号文cを取得し、最後に、暗号化された暗号文を復号して平文メッセージを取得する。
【0075】
本出願において提供される技術的解決策は、以下の技術的問題を解決することを目標とする。ブロックチェーンにおけるアクセス権限が付与され渡されると、アクセス権限は、変更されまたは取り消されることが不可能であり、結果として、権限を付与されていないユーザがデータにアクセスすることが可能である。具体的には、クライアントがデータにアクセスすることを要求しブロックチェーンネットワーク上の暗号文を復号する処理は、以下の通りである。
【0076】
図3に示されるように、ステップ1:ユーザAは、クライアント1の登録情報を使用することによって、情報、たとえば、平文情報を生成する。
【0077】
ステップ2:クライアント1は、対称鍵を使用することによって情報を暗号化する。
【0078】
ステップ3:クライアント1は、暗号化された情報を送信し、ブロックチェーン上のトランザクションとして暗号化された情報をブロックチェーンノード1に記録する。
【0079】
ステップ4:ブロックチェーンノード1は、トランザクションを検証しブロードキャストする。
【0080】
ステップ5:ブロックチェーンノード1ならびにブロックチェーンノード2および3は、トランザクションを含むブロックについて合意に達する。ブロックチェーンノード1、2、および3は、同じブロックチェーン上に配置されたノードである。
【0081】
合意は、ブロックチェーンノード1、2、および3が別個にトランザクションがポリシーを満たすかどうかをチェックし、対応する検証結果を生成し、3つのブロックチェーンノードにより生成された検証結果が同じであることとして理解され得る。
【0082】
ステップ6:ブロックチェーンノードは、ブロックチェーンノード1、2、および3により生成された検証結果が同じであることを確認し、ブロックを生成し、ローカル台帳における既存のブロックチェーンのチェーン化された構造の末尾にブロックを追加する。
【0083】
ステップ7:ユーザB は、クライアント2を使用することによって情報、たとえば、平文情報を取得する。
【0084】
ステップ8:クライアント2は、平文情報にアクセスするためにユーザBのアクセス権限を取得することをクライアント1に要求する。
【0085】
ステップ9:クライアント1は、アクセス権限情報をクライアント2に送信し、アクセス権限情報は対称鍵を含む。
【0086】
ステップ10:クライアント2は、ブロックチェーン台帳に記憶され暗号化された情報を取得することをブロックチェーンノード3に要求する。
【0087】
ステップ11:クライアント2は、対称鍵を使用することによって情報を復号する。
【0088】
アクセス権限を渡しデータを復号する上記の処理において、ブロックチェーンノードにおける台帳の過去のトランザクションデータが変更または削除されることが可能でなく、ブロックチェーン上のデータは公開され、キャンセルされることが可能でないため、アクセス権限がユーザに付与され復号鍵が配布されると、アクセス権限が取り消されることができない。この場合、ユーザのアクセス権限が禁止される必要があるとき、ユーザがデータにアクセスするのを防止することができず、権限を付与されていないユーザによるデータアクセスのリスクおよび不安定性をもたらす。
【0089】
上記の問題を解決するために、本出願の実施形態における技術的解決策の主な着想は、複数のプロキシノードをブロックチェーンシステムに追加することである。一般ノードの機能に加えて、各ノードは、ユーザのアクセス権限を共同して検証し、暗号文変換操作を行うようにさらに構成される。
【0090】
図4に示されるように、ブロックチェーンシステムは、データソースまたはデータ所有者、少なくとも1つのプロキシノード(Proxy)、複数の一般ノード、およびデータ要求ノードを含む。データソースまたはデータ所有者は、データの保存者であり、アクセス権限の認可当事者である。一般ノードは、ブロックチェーン上のトランザクションのブロードキャスト、合意到達、記録および記憶などの機能を実行するように構成され得る。ユーザ要求ノードは、データにアクセスするのを要求するノードまたはクライアントである。
【0091】
本出願において提供される技術的解決策は主に、3つの手順、すなわち、データ記憶、権限付与、およびデータ要求を含む。一般に、第1の、データソース(data source)またはデータ所有者は、元の暗号文を暗号化し、元の暗号文をブロックチェーン上に記録し、記憶する。
【0092】
次いで、データソースまたはデータ所有者は、権限を付与し、データソースまたはデータ所有者は、権限情報をブロックチェーンに書き込み、権限を付与されたノードに対応する変換鍵を生成する。データソースまたはデータ所有者は、変換鍵をいくつかの部分に分割し、それらの部分を異なるプロキシノードに送信する。
【0093】
最後に、データ要求ノード要求がデータにアクセスするのを要求したとき、プロキシノードは、合意を開始し、データ要求ノードの最新のアクセス権限を読み取り、データ要求ノードが権限を有するかどうかをチェックする。データ要求ノードが権限を有する場合、プロキシノードは、変換鍵を収集し、元の暗号文を、権限が付与されたノードのみにより復号されることが可能な別の暗号文へ変換し、暗号文を要求ノードに返す。データ要求ノードが権限を有しない場合、アクセスは拒否される。
【0094】
本出願の以下の実施形態では、すべてのネットワークデバイスが総称的にネットワークノードと呼ばれることに留意されたい。ネットワークノードは、要求メッセージを送信する第1のノードおよび第2のノードであってよく、ブロックチェーン上のブロックチェーンノード、たとえば、第1のブロックチェーンノードもしくは第1のプロキシノード、転送用のリレーノード、または任意の一般ノードであってよく、またはデータソースであってよい。
【0095】
さらに、ネットワークノードは、局、基地局、ユーザ機器、クライアント、および端末を含むが、これらに限定されない。また、本出願の実施形態における2つの概念、デバイスとノードは等価である。言い換えれば、デバイスは、ノード、局、UE、ネットワーク要素デバイス、またはセンサなどを指すことがある。
【0096】
本出願に記載されているブロックチェーンおよびブロックチェーンシステムは、様々なネットワーク(たとえば、モノのインターネット)に適用されてよく、ブロックまたはブロックチェーンノードは、様々なネットワークデバイス(たとえば、モノのインターネットデバイス)に展開され得る。ネットワークデバイスは、産業用のモノのインターネットデバイス、たとえば、様々な産業用センサおよび制御モジュールであってよく、ウェアラブルデバイス、家電、ホームセンサ、もしくはホーム制御モジュールなどであってよく、または基地局、拡張された基地局、スケジューリング機能を有するリレー、もしくは基地局機能を有するデバイスなどであってよい。基地局は、LTEシステムの進化型ノードB(evolved Node B、eNB)または別のシステムの基地局であってよい。これは、本出願の実施形態で限定されない。
【0097】
また、様々なデバイス、たとえば、携帯電話、インテリジェント端末、マルチメディアデバイス、ストリーミングメディアデバイスが、ユーザ機器(user equipment、UE)であり得る。代替として、UEは、別のワイヤレスネットワークデバイス、たとえば、ノードB(Node B)であってよい。具体的に、ワイヤレスネットワークデバイスの形態およびタイプは本出願で限定されない。
【0098】
UEは、無線アクセスネットワーク(radio access network、RAN)を介して1つもしくは複数のコアネットワークと通信してよく、UEはさらに、通信のために別の様式でワイヤレスネットワークにアクセスしてよく、またはUEは、別のUEとワイヤレス通信を直接行ってよい。これは、本出願の実施形態で限定されない。
【0099】
図4bを参照すると、本出願の実施形態は、データアクセス権限を制御するための方法を提供する。方法は、以下のステップを含む。
【0100】
ステップ401:第1のプロキシノードが、要求ノードから第1の要求メッセージを受信し、第1の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む。
【0101】
実装は、第1のプロキシノードによって、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することによって転送された第1の要求メッセージを受信するステップを含む。
【0102】
ステップ402:第1のプロキシノードは、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第1の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定する。
【0103】
ステップ402において、要求ノードの識別に基づいて、第1の暗号化された暗号文を読み取る権限を要求ノードが有するかどうかを決定するステップは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るステップを含み、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【0104】
ステップ403:第1の暗号化された暗号文を読み取る権限を要求ノードが有する、すなわち認可情報が許可である場合、第1のプロキシノードは、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始し、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定する。
【0105】
また、第1のプロキシノードが、第1の暗号化された暗号文を読み取る権限を要求ノードが有しないと決定した場合、第1のプロキシノードは、要求ノードの第1の要求を拒否する。
【0106】
ステップ403において、第1のプロキシノードによって、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始するステップは、
第1のプロキシノードによって、m個の第2のプロキシノードを決定するステップであって、mは1以上の正の整数である、ステップと、権限検証要求を生成するステップであって、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、m個の第2のプロキシノードのそれぞれに権限検証要求を送信するステップとを含む。
【0107】
任意選択で、第1のプロキシノードによって、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップは、
第1のプロキシノードによって、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するステップであって、第2のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第2のプロキシノードによって生成され送信され、k≦mである、ステップと、少なくともk個の部分鍵を回復して変換鍵を生成するステップと、変換鍵および暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文を第2の暗号化された暗号文に変換するステップであって、第2の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、第2の暗号化された暗号文を要求ノードに送信するステップとを含む。
【0108】
さらに、第1のプロキシノードによって、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップは、第1のプロキシノードが、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを要求ノードに送信するステップを含む。
【0109】
この実施形態で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーン上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【0110】
さらに、少なくとも1つの第2のプロキシノードを使用することによって要求元の識別がさらに検証され、したがって、1つのみの第1のプロキシノードが検証で使用されるときに不正行為が発生する可能性が回避されることが可能であり、それにより、検証精度をさらに改善し、情報伝送のセキュリティをさらに確実にする。
【0111】
第2のプロキシノードは、第1のプロキシノードから権限検証要求を受信し、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される。
【0112】
第2のプロキシノードは、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第2のプロキシノードは第1のプロキシノードの第1の要求を拒否し、または、はいの場合、第2のプロキシノードは部分鍵を生成し部分鍵を第1のプロキシノードに送信する。
【0113】
任意選択で、部分鍵を生成するステップは、第2のプロキシノードによって、ブロックチェーンネットワーク上の暗号化された部分鍵を取得するステップであって、暗号化された部分鍵は、第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成される、ステップと、第2のプロキシノードによって、第2のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するステップとを含む。
【0114】
この実施形態では、第1のプロキシノードが、要求ノードのアクセスが許可されることを検証したとき、第2のプロキシノードが、さらに要求ノードの権限を検証する。要求ノードのアクセスが許可されることを検証するとき、第2のプロキシノードが、生成された部分鍵を第1のプロキシノードに送信するので、第1のプロキシノードが、部分鍵を収集し最終的な変換鍵を合成し、それにより、第1のプロキシノードの不正行為を効果的に防止し、検証のセキュリティを改善する。
【0115】
特定の実施形態において、本出願で開示される技術的解決策が上記の3つの手順の部分に従って詳細に説明される。
【0116】
a.データ記憶手順
「データ記憶手順」における動作を実行するためのエンティティは、データソースもしくはデータ所有者であってよく、またはデータを記憶し権限を付与する機能を有する別のノードであってよい。この実施形態では、「第1のノード」は、データ記憶処理を実行するためのエンティティを表すために使用される。別の名称、たとえば、データ所有者が使用されてもよいことは理解され得る。これは、本出願で限定されない。
【0117】
公開鍵暗号技術がデータ記憶手順で使用される。具体的には、公開鍵暗号(Public key cryptograph)は、非対称暗号法(asymmetric cryptography)と呼ばれることもあり、非対称暗号法は、暗号法のアルゴリズムであり、2つの鍵、すなわち、「パブリックキー」と呼ばれる公開鍵、および「プライベートキー」と呼ばれる秘密鍵を含む。
【0118】
2つの鍵は、異なる機能を有する。一方は暗号化に使用され、他方は復号に使用される。たとえば、鍵の一方は、平文を暗号化して、暗号化された暗号文を取得するために使用され、元の平文は、他方の対応する鍵を使用することによってのみ復号を通じて取得されることが可能である。すなわち、暗号化鍵は、暗号文を復号しデータにアクセスするために使用されることが可能でない。2つの異なる鍵は平文を暗号化および復号するために使用されるので、この処理は非対称暗号化と呼ばれることもある。暗号化と復号に同じ鍵が使用される対称暗号化と比べて、非対称暗号化方式は高いセキュリティを有する。2つの鍵の一方が得られても、暗号化された暗号文が復号されることが不可能であり、他方の鍵が算出されることが不可能であるからである。したがって、公開鍵は他者に開示され公表され、たとえば、ブロックチェーン上に記録されてよい。秘密鍵は、クライアントまたはUEによって保持される。
【0119】
「データ記憶手順」では、第1のノードは、以下の方法処理を主に実行する。
【0120】
第1のノードは、第1のノードの公開鍵、および暗号化アルゴリズム、たとえばプロキシ再暗号化アルゴリズムを使用することによって、暗号文を暗号化して、第1の暗号化された暗号文Eaを生成し、
第1のノードは、ブロックチェーンネットワーク上にトランザクション(transaction)として第1の暗号化された暗号文Eaを記憶する。
【0121】
任意選択で、トランザクション記憶方式において、第1のノードは、ブロックチェーンネットワーク上の任意の一般ノードにトランザクション要求を送信し、トランザクション要求は、第1の暗号化された暗号文Eaを含み、トランザクション要求を受信する一般ノードは、ブロックチェーンネットワーク上にトランザクション要求をブロードキャストし、したがって、ブロックチェーン上のすべてのブロックチェーンノードが合意に達し、第1の暗号化された暗号文Eaの関係付けられたトランザクションを記憶する。
【0122】
さらに、任意選択で、別のトランザクション記憶方式において、第1のノードは、第1の暗号化された暗号文を含むトランザクション要求を任意のプロキシノード、たとえば、第1のプロキシノードに直接送信し、第1のプロキシノードはトランザクションをブロードキャストし、ブロックチェーン上のトランザクションについて合意に達する。
【0123】
b.権限付与手順
図5に示されるように、方法は以下のステップを含む。
【0124】
ステップ501:第1のノードが、第2のノードの識別I、および第1の暗号化された暗号文Eaについての第2のノードのアクセス権限情報Rを記録する。
【0125】
第2のノードは、認可されたユーザであり、第2のノードの識別Iは、第2のノード識別子、ユーザID、デバイスID、デバイス識別子などであってよい。アクセス権限情報Rは、権限の付与および権限のキャンセルを含む。
【0126】
ステップ502:アクセス権限情報Rが権限を付与するまたは権限をキャンセルするコンテンツを含むかどうかを決定する。
【0127】
ステップ503a:アクセス権限情報Rが権限を付与するコンテンツを有する場合、第1のノードは、第1のノードの秘密鍵、第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵Tを生成する。
【0128】
ステップ503b:アクセス権限情報Rが権限をキャンセルするコンテンツを有する場合、第1のノードは、トランザクション要求をブロックチェーンネットワーク上の任意のノードに送信し、トランザクション要求は、第2のノードのアクセス権限情報Rおよび識別Iを含む。
【0129】
ステップ504:ステップ503aの手順を続ける。第1のノードは、秘密分散アルゴリズムを使用することによって変換鍵Tをn個の部分鍵に分割し、ここで、nは1以上の正の整数である。
【0130】
任意選択で、変換鍵Tは(m,Tn)に分割される。Tnは、分割を通して取得された任意の部分鍵を表し、mは、変換鍵Tを回復するために使用されることが可能な最小量Tnを表す。
【0131】
ステップ505:第1のノードは、ブロックチェーンネットワークからm個のプロキシノードをランダムに選択し、m個のプロキシノードの公開鍵を使用することによってn個の部分鍵Tnを暗号化して、n個の暗号化された部分鍵Tneを生成し、ここで、m≦nである。
【0132】
ステップ506:第1のノードは、第1のトランザクション情報を生成し、第1のトランザクション情報を任意の一般ノードまたはブロックチェーンノードに送信し、第1のトランザクション情報は、第2のノードの識別I、第2のノードの認可情報(またはアクセス権限情報R)、および暗号化された部分鍵Tneのうちの少なくとも1つを含む。
【0133】
任意選択で、第1のトランザクション情報は、m個のプロキシノードの識別と、変換鍵を回復するための最小量mの部分鍵Tneとをさらに含む。
【0134】
ステップ507:一般ノードまたはプロキシノードが、ブロックチェーンネットワーク上で第1のトランザクション情報(I,R,Tne,m)をブロードキャストおよび記憶し、またはステップ503bの手順に基づいてトランザクション要求(I,R)をブロードキャストおよび記憶する。
【0135】
c.データ要求手順
この「データ要求手順」は、要求ノードがブロックチェーンに対するデータアクセス要求を開始し、認可されたアクセスが満たされたときに暗号化された暗号文を復号しそれにアクセスする処理を説明する。具体的には、図6に示されるように、手順は以下のステップを含む。
【0136】
ステップ601:データ要求ノードは、第1の要求メッセージを任意の一般ノードに送信し、第1の要求メッセージは、要求ノードの識別Iおよびアクセスされるべきデータの識別子、またはアクセスされるべきデータの識別子に対応する第1の暗号化された暗号文Eaを含む。
【0137】
ステップ602:一般ノードは、第1の要求メッセージを受信し第1のプロキシノードPmに転送する。
【0138】
任意選択で、第1のプロキシノードPmは、この要求のプライマリノードの役割をしてよい。
【0139】
ステップ603:第1のプロキシノードPmは、第1の要求メッセージを受信し、第1の要求メッセージで搬送されるアクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワーク上の第1の暗号化された暗号文Eaを決定し、要求ノードの識別Iに基づいて、第1の暗号化された暗号文Eaを読み取る権限を要求ノードが有するかどうかを決定する。
【0140】
たとえば、第1のプロキシノードPmは、ブロックチェーン上で、要求ノードの識別Iに基づいて要求ノードの認可情報を読み取り、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可および不許可を含む。
【0141】
任意選択で、複数の認可情報が存在する場合、最も大きい数を有するブロックに配置された認可情報が使用される。
【0142】
ステップ604a:データ要求ノードが権限を有せず、またはアクセスが許可されない場合、データ要求ノードのこのアクセス要求を拒否する。
【0143】
ステップ604b:データ要求ノードが権限を有し、アクセスが許可される場合、少なくとも1つの第2のプロキシノードPに対して要求ノードについての権限検証要求を開始する。
【0144】
第2のプロキシノードの選択はブロックチェーン上で事前設定されてよく、またはシステムがデフォルトでブロックチェーンノードが互いに発見できるものとする。
【0145】
さらに、デフォルトでブロックチェーンノードが互いに発見できるものとすることは、第1のプロキシノードは、トランザクション情報、たとえば、「権限付与手順」においてブロックチェーンに記憶された第1のトランザクションを使用することによって、部分鍵Tnを暗号化する特定の第2のプロキシノードを認識し、暗号化された部分鍵Tneを生成し、次いで、これらの第2のプロキシノードのそれぞれに権限検証要求を送信し得ることを意味する。
【0146】
権限検証要求は、要求ノードの識別Iおよび第1の暗号化された暗号文Eaを含む。
【0147】
ステップ605:第2のプロキシノードPは、第1のプロキシノードPmから権限検証要求(I,Ea)を受信し、要求ノードの識別Iに基づいて、第1の暗号化された暗号文Eaを読み取る権限をデータ要求ノードが有するかどうかを決定する。
【0148】
第1の暗号化された暗号文Eaは、アクセスされるべきデータを暗号化することによって生成される。
【0149】
ステップ606a:いいえ(認可されない)の場合、データ要求ノードのこのアクセス要求を拒否する。たとえば、第2のプロキシノードPは、アクセス拒否メッセージを第1のプロキシノードPmにフィードバックする。
【0150】
ステップ606b:はい(認可された)の場合、部分鍵Tnを生成し、部分鍵Tnを第1のプロキシノードPmに送信する。
【0151】
具体的には、第2のプロキシノードPは、ブロックチェーン上で暗号化された部分鍵Tneを読み取り、第2のプロキシノードPの秘密鍵を使用することによってTneを復号して、部分鍵Tnを取得する。
【0152】
ステップ607:第1のプロキシノードPmは、少なくともk個の第2のプロキシノードPにより送信された部分鍵Tnを受信し、ここで、k≦mであり、mは、第2のプロキシノードの量mであり、第2のプロキシノードは、第1のプロキシノードPmにより決定され、権限検証要求を送信する。
【0153】
ステップ608:第1のプロキシノードPmは、少なくともk個の部分鍵Tnを回復して、変換鍵Tを生成する。
【0154】
ステップ609:第1のプロキシノードPmは、変換鍵Tおよび暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文Eaを第2の暗号化された暗号文Ebに変換し、第2の暗号化された暗号文Ebは、データ要求ノードの公開鍵を使用することによって暗号化が行われた後に生成される。
【0155】
ステップ610:第1のプロキシノードPmは、第2の暗号化された暗号文Ebを一般ノードに送信する。
【0156】
ステップ611:一般ノードは、第2の暗号化された暗号文Ebを受信し、データ要求ノードに送信し、したがって、データ要求ノードは、データ要求ノードの秘密鍵を使用することによって第2の暗号化された暗号文Ebを復号して、アクセスされるべきデータを取得する。
【0157】
有益な効果
本出願のこの実施形態で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーン上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【0158】
「権限付与手順」では、データソースは、変換鍵を複数の部分鍵に分割し、複数の部分鍵は、ブロックチェーン上に記憶され、複数のプロキシノードによって保持される。このように、変換鍵は、十分な量の部分鍵が「データ要求手順」で取得された後のみに回復されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、それにより、少数のノードが不正行為により権限制御を回避し暗号文を取得することを効果的に防止する。この方法は、復号複雑性を増大させて、効果的に暗号文の送信および読み取りのセキュリティを確実にし、権限を付与されていないユーザが暗号文またはデータを読み取るのを防止する。
【0159】
また、データを読み取るとき、権限を付与されていない当事者、たとえば、第1のプロキシノードおよび第2のプロキシノードが、平文を取得することができず、結果として、平文のコンテンツを読むことできず、それにより、データプライバシを保護する。
【0160】
この実施形態における「権限付与手順」および「データ要求手順」において変換鍵を分割および回復するプロセスに関して、上述された閾値暗号システムの役割の(図2に示される)機能およびフローチャートを参照することに留意されたい。
【0161】
また、この実施形態におけるプロキシノードは、プロキシ再暗号化システムにおけるプロキシノードまたはプロキシであってよく、プロキシ再暗号化(Proxy re−encryption)システムは、暗号文を安全に変換する機能を有する新しい公開鍵暗号化システムである。
【0162】
図7は、実施形態によるプロキシ再暗号化システムの役割のフローチャートである。システムは、委託者(Delegator)、セミトラステッドプロキシ(Proxy)、および受託者(Delegatee)を含む。
【0163】
具体的には、ステップ701:委託者は、委託者の公開鍵を使用することによって平文メッセージを暗号化して、暗号化された暗号文を生成する。
【0164】
ステップ702:委託者が、暗号化された暗号文をセミトラステッドプロキシに送信する。
【0165】
ステップ703:委託者は、受託者の公開鍵を取得する。
【0166】
ステップ704:委託者は、受託者のための暗号文変換鍵を認可する。
【0167】
ステップ705:委託者は、暗号文変換鍵をセミトラステッドプロキシに送信する。
【0168】
ステップ706:セミトラステッドプロキシが、委託者からの暗号化された暗号文、および受託者のための暗号文変換鍵を取得し、セミトラステッドプロキシは、暗号化された暗号文を変換する。具体的には、セミトラステッドプロキシは、暗号化された暗号文を、受託者の公開鍵により暗号化された暗号文に変換する。
【0169】
ステップ707:セミトラステッドプロキシは、変換された暗号文を受託者に送信する。
【0170】
ステップ708:受託者は、変換された暗号文を取得し、受託者の秘密鍵を使用することによって、変換された暗号文を復号して、平文メッセージを生成する。
【0171】
この実施形態では、プロキシ再暗号化システムにおける役割の機能に基づいて、権限検証処理がプロキシノードに追加され、認可されたアクセス権限を満たさないノードのアクセスが拒否され、それにより、ブロックチェーン上の各権限を制御および変更し、データ伝送のセキュリティおよび信頼性を改善する。
【0172】
特定の実施形態では、本出願で提供される方法は、アリスがスーパーレジャーファブリックブロックチェーン上にアリスの年齢を記憶し、年齢へのボブのアクセスを制御する例を使用することによって、詳細に説明される。
【0173】
この実施形態で使用されるシステムは、前もって確立され、システムのユーザとして、各参加者は、ペアの鍵(公開鍵および秘密鍵)を生成する。公開鍵は、ブロックチェーンネットワーク上に記録され開示されている。
【0174】
新しいプロキシノードが既存のファブリックブロックチェーンネットワークに追加され、新しいプロキシノードは権限検証および暗号文変換などの機能を有する。3つのプロキシノード(X、Y、Z)が、以下の構成ファイルを使用することによってファブリックブロックチェーンネットワークに追加される。
【0175】
特定の手順が図8に示される。
【0176】
データ記憶手順において、アリスは、データ所有者またはデータソースとして以下の方法ステップを実行し得る。
【0177】
ステップ801:アリスは、アリスの公開鍵Paおよびプロキシ再暗号化アルゴリズムを使用することによって、アリスの年齢を含むデータに対してプロキシ再暗号化を実行して、第2層暗号文Eaを生成する。
【0178】
プロキシ再暗号化アルゴリズムは、非特許文献1に記載されたプロキシ再暗号化アルゴリズムにおける第2層暗号化アルゴリズ(E2)であり得る。
【0179】
ステップ802:アリスは、トランザクションにEaをパッケージし、トランザクションをブロックチェーンネットワーク上の任意の一般ノードに送信する。一般ノードは、トランザクションを受信し、トランザクションをブロードキャストし、トランザクションについて合意に達してトランザクションを確認する。
【0180】
任意選択で、
記憶されたデータ擬似コードは以下の通りである。
【0181】
Func encrypt(data){
Ea = E2(data, Pa) //第2層暗号文を生成する
Tx = Package(Ea) //トランザクションにEaをパッケージする
Send(Tx) //トランザクションを送信する
【0182】
パッケージされたトランザクションが表1に示される。
【0183】
【表1】
【0184】
一般ノードにより実行される記録されたデータの擬似コードは、以下の通りである。
【0185】
func writeData(data, owner) {
id==null:0?id++
putState(”Data”, {”id”:id, ”data”:data, ”owner”:owner }) //データを記憶する
return SUCCESS
【0186】
トランザクションが完了された後、ファブリックブロックチェーンに記録されたワールドステートが表2に示されるように表示される。
【0187】
【表2】
【0188】
権限付与手順
ステップ803:アリスは、アリスの秘密鍵Saおよびボブの公開鍵Pbを使用することによって、プロキシ再暗号化アルゴリズムにおける変換鍵生成アルゴリズム(RG)を実行して、変換鍵Tとも呼ばれる再暗号化鍵Tを生成する。
【0189】
ステップ804:アリスは、変換鍵Tを使用し、n=3およびk=2に設定し、ここで、nは、変換鍵Tを分割することによって得られるシェアの量を表し、kは、Tを回復するためのプロキシノードの最小量を表し、そして、シャミア鍵共有アルゴリズムを使用することによって、変換鍵Tを3つの部分鍵T1、T2、およびT3に分割する。
【0190】
ステップ805:アリスは、プロキシノードX、Y、およびZの公開鍵を使用することによって部分鍵T1、T2、およびT3を暗号化して、暗号化された部分鍵、たとえば、T1x、T2y、およびT3zを生成する。
【0191】
ステップ806:アリスは、要求者ボブが第2層暗号文Eaにアクセスする権限を有することを記録し、暗号文処理ノードは、X、Y、およびZであり、少なくとも2つのノードが共同処理に必要とされる。
【0192】
ステップ807:アリスパッケージは、上記の情報をトランザクションにパッケージし、トランザクションを一般ノードに送信し、一般ノードは、トランザクションに関する情報をブロードキャストし、トランザクションに関する情報について合意に達してトランザクションを確認する。
【0193】
任意選択で、
認可擬似コードは以下の通りである。
【0194】
Func Authorize(dataid, delegatee, right, threshold, division){
T=RG(Sa, delegatee)//変換鍵を生成する
Tn=ShamirSplit(T, division, threshold)//変換鍵を分割部分へ分割し、変換鍵は最小閾値部分を使用することによって回復されることが可能である。
Foreach(t in Tn){//Tnにおける各鍵について
p=Ramdon(proxylist)//プロキシをランダムに選択する
Proxies += p//選択されたプロキシを記録する
Tne += Encrypt(t, p.Pk) //プロキシの公開鍵を使用することによってtを暗号化する

Tx = Package(Alice, dataid, delegatee, right, Proxies, Tne, threshold)
Send(Tx)
【0195】
パッケージされたトランザクションが表3に示される。
【0196】
【表3】
【0197】
任意選択で、一般ノードによって実行される認可情報を記録する擬似コードは、以下の通りである。
【0198】
func authorize(delegator, dataid, delegatee, right, keys, proxy, keys, threshold) {
if delegator == data.owner{//認可者がデータ所有者であるかどうかを決定する
id==null:0?id++
”right”: right, ”yes”: keys})//認可情報を記憶する
putState(”Proxy”,{”id”:id,”proxy”:proxy,”threshold”:threshold}) //プロキシ情報を記憶する
return SUCCESS

return FAIL
【0199】
トランザクションが完了された後、ファブリックブロックチェーンに記録されたワールドステート状態が表4に示されるように表示される。
【0200】
【表4】
【0201】
データ要求
手順
ステップ808:ボブは、データ要求を任意の一般ノードに対して開始し、データ要求は、識別情報ボブおよびアクセスされるべきデータオブジェクト1を含む。
【0202】
ステップ809:一般ノードはデータ要求をプロキシノードXに転送し、プロキシノードXは、この要求についてのプライマリノードまたは第1のプロキシノードの役割をする。
【0203】
ステップ810:プロキシノードXは、ブロックチェーン上のデータオブジェクト1に対するボブの最新の権限を読み取り、ここでは、読み取りの結果は「許可」である。
【0204】
ステップ811:プロキシノードXは、データオブジェクト1の鍵処理ノード[X,Y,Z]を読み取り、ノードX、Y、およびZのそれぞれに対して鍵要求を開始し、鍵要求はボブの識別およびデータオブジェクト1を含み、プロキシノードXは、フィードバック結果の待機を始める。
【0205】
ステップ812:プロキシノードX、Y、およびZは、チェーン上のデータオブジェクト1に対するボブの最新の権限を読み取り、ここでは、読み取りの結果は「許可」である。
【0206】
ステップ813:読み取りの結果が「許可」であるとき、プロキシノードX、Y、およびZは、チェーンに記録された暗号化された部分鍵T1x、T2y、およびT3zをそれぞれ読み取り、プロキシノードX、Y、Zの秘密鍵を使用することによってこれらの暗号化された部分鍵を復号して部分鍵T1、T2、およびT3を取得し、次いで、部分鍵をプロキシノードXに送信する。
【0207】
ステップ814:プロキシノードXは、部分鍵T1、T2、およびT3のいずれか2つ、たとえば、T1およびT2を受信し、シャミア秘密分散アルゴリズムを使用することによって分割部分鍵を変換鍵Tへ回復する。
【0208】
ステップ815:プロキシノードXは、データオブジェクト1に対応する第2層暗号文Eaを読み取り、変換鍵Tを使用することによってプロキシ再暗号化アルゴリズムにおける再暗号化方法(R)を実行して、第2層暗号文Eaを、ボブの公開鍵Pbを使用することによって暗号化された第1層暗号文Ebに変換する。
【0209】
ステップ816:プロキシノードXは、第1層暗号文Ebをボブに送信する。
【0210】
ステップ817:ボブは、第1層暗号文Ebを受信し、ボブの秘密鍵Sbを使用することによってプロキシを再暗号化アルゴリズムにおける復号方法(D)を実行して、アリスの年齢、すなわちaを取得する。
【0211】
この実施形態で提供される方法によれば、チェーン上のデータ伝送中の任意のノードの権限を制御するために、プロキシノードがブロックチェーンに追加される。具体的には、データ要求ノードがデータにアクセスする権限を有しないことが見出されたとき、データ要求ノードがデータにアクセスし続けることを防止するために、データ要求ノードの現在の要求が変更または拒否され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【0212】
また、閾値暗号システム内のすべての参加者が復号を完了するために互いに協力する特徴に基づいて、変換鍵は複数の部分鍵に分割され、複数の部分鍵はブロックチェーンに記憶され、複数のプロキシノードによって保持される。このように、変換鍵は、十分な量の部分鍵が「データ要求手順」で取得された後のみに回復されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、それにより、少数のノードが不正行為により権限制御を回避し暗号文を取得することを効果的に防止する。この方法は、復号複雑性を増大させて、データ伝送および読み取りのセキュリティを改善する。
【0213】
任意選択で、プロキシノードXにより実行されるデータを読み取る擬似コードは、以下の通りである。
【0214】
Func ReadData(data, delegatee){
R = ReadLastestRight(data, delegatee) //最新の権限情報を読み取る
if(R==allow){//権限が付与されたかどうか決定する
Proxies, Threshold = ReadProxy(data) //変換鍵を保持するプロキシノードを読み取る
Foreach(p in Proxies){
Keys += requestKey(p, data, delegatee) //変換鍵のセグメントに適用する

If(Keys.size >= Threshold){//収集された鍵フラグメントの量が閾値より大きいとき
T = Shamir.RecoverKey(Keys) //鍵を回復する
Ea = ReadEncryptData(data) //元の暗号文を読み取る
Eb = R(Ea, T) //アリスの公開鍵についての第2層暗号文をボブの公開鍵についての第1層暗号文に変換する
Return Eb

Return FAIL //変換鍵の十分なセグメントが収集されない

Return UNAUTHORIZED //認可されない
【0215】
プロキシノードX、Y、およびZにより実行される鍵を読み取る擬似コードは、以下の通りである。
【0216】
Func ReadKey(data,delegatee){
R = ReadLastesRight(data, delegatee)//最新の権限情報を読み取る
if(R==allow){//権限が付与されたかどうか決定する
The EKey = ReadEncryptedKey(data, delegatee)//プロキシノードにより保持される変換鍵のセグメントを読み取る
Key = Decrypt(Ekey, self.Sk) //復号のためのプロキシノードの秘密鍵を使用する
Return Key

Return UNAUTHORIZED //認可されない
【0217】
認可取り消し手順:
上記の実施形態では、ボブの最新のアクセス権限が「不許可」であることをアリスが読み取ると、ボブの以前の認可が取り消される。具体的な処理は以下のようになる。
【0218】
アリスは、「不許可」であるボブの権限をブロックチェーンに追加する。
【0219】
この場合、ファブリックブロックチェーンに記録されたワールドステート状態が表5に示されるように表示される。
【0220】
【表5】
【0221】
プロキシノードXが、権限情報を読み取る処理において、権限情報がアクセス拒否を示すことを見出したとき、プロキシノードXは、要求ノードのアクセス要求を拒否する。
【0222】
プロキシノードXは、代替としてプライマリプロキシノード、たとえば、第1のプロキシノードであってよく、または別のプロキシノード、たとえば、プロキシノードYおよびZであってよいことは理解され得る。
【0223】
任意選択で、本出願の上記の実施形態におけるアクセス権限を制御するための方法はさらに、プロキシノードが不正行為をするのを防止し得る。具体的には、たとえば、この実施形態において、変換鍵は3つの部分に分割され、鍵共有参加者の閾値量は2である。以下の不正行為のケースがある。:
ケース1:プロキシノードXが不正をし、権限が「不許可」であるときに部分鍵を求め続ける。プロキシノードYおよびZは不正をせず、権限情報が「不許可」であることを見出した場合に要求ノードのアクセス要求を拒否する。このケースでは、プロキシノードXは変換鍵を取得することができない。
【0224】
ケース2:プロキシノードXおよびYが一緒に不正をする。変換鍵は取得されることが可能であるが、変換鍵を使用することによって変換が行われた後に結果が取得される暗号文はボブであるので、プロキシノードXおよびYはボブの秘密鍵を有せず、復号によって平文が取得されることが不可能である。
【0225】
ケース3:ボブは不正をし、変換鍵を取得することができない。
【0226】
ケース4:プロキシノードXおよびYならびにボブが一緒に不正をする。
【0227】
ボブが認可されない場合、ボブは変換鍵を取得することができない。
【0228】
ボブの認可が取り消される場合、ボブは、変換鍵を取得することができ、復号によって平文を取得することができる。しかしながら、不正行為コストは、認可中にボブが平文をバッファする方式のコストよりも高い。このケースでは、ボブが認可されているデータのみが漏洩され、他のデータは影響されない。
【0229】
図9は、本出願の実施形態によるデータアクセス権限を制御するための装置の概略構造図である。装置は、プロキシノードを含む。装置は、図5および図6に対応する権限を制御するための方法を実行するために、上記の実施形態におけるプロキシノードであってよく、またはプロキシノードに配置され、もしくは第1のプロキシノードに適用されてよい。
【0230】
図9に示されるように、ネットワークノードは、受信ユニット901、処理ユニット902、および送信ユニット903を含む。加えて、ネットワークノードは、別のユニットおよびモジュール、たとえば、記憶ユニットをさらに含み得る。
【0231】
具体的には、受信ユニット901は、要求ノードから第1の要求メッセージを受信するように構成され、第1の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む。
【0232】
処理ユニット902は、アクセスされるべきデータの識別子に基づいて、ブロックチェーンネットワークにおける第1の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するように構成される。
【0233】
送信ユニット903は、要求ノードが第1の暗号化された暗号文を読み取る権限を有していない場合、要求ノードの第1の要求を拒否し、要求ノードが権限を有する場合、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始するように構成される。
【0234】
処理ユニット902は、要求ノードが権限を有する場合、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するようにさらに構成される。
【0235】
任意選択で、この実施形態の可能な実装において、送信ユニット903は、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るように特に構成され、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可および不許可を含む。
【0236】
任意選択で、この実施形態の別の可能な実装では、処理ユニット902は、m個の第2のプロキシノードを決定し、権限検証要求を生成するように特に構成され、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、mは1以上の正の整数である。
【0237】
送信ユニット903は、m個の第2のプロキシノードのそれぞれに権限検証要求を送信するように特に構成される。
【0238】
任意選択で、この実施形態のさらに別の可能な実装では、受信ユニット901は、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するようにさらに構成され、第2のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第2のプロキシノードによって生成され送信され、k≦mである。
【0239】
処理ユニット902は、少なくともk個の部分鍵を回復して変換鍵を生成し、変換鍵および暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文を第2の暗号化された暗号文に変換するように特に構成され、第2の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される。
【0240】
送信ユニット903は、第2の暗号化された暗号文を要求ノードに送信するようにさらに構成される。
【0241】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット902は、受信ユニットを使用することによって、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または受信ユニットを使用することによって、少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、送信ユニットを使用することによって、アクセス拒否メッセージを要求ノードに送信するように特に構成される。
【0242】
任意選択で、この実施形態のさらに別の可能な実装では、受信ユニット901は、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された第1の要求メッセージを受信するように特に構成される。
【0243】
ネットワークノードは、第2のプロキシノードにさらに適用されてよく、権限検証および結果フィードバックなどの第2のプロキシノードの機能を実行するように構成される。
【0244】
具体的には、受信ユニット901は、第1のプロキシノードから権限検証要求を受信するように構成され、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される。
【0245】
処理ユニット902は、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第1のプロキシノードの第1の要求を拒否し、または、はいの場合、部分鍵を生成するように構成される。
【0246】
送信ユニット903は、部分鍵を第1のプロキシノードに送信するように構成される。
【0247】
加えて、任意選択で、プロセッサは、ブロックチェーンネットワーク上の暗号化された部分鍵を取得し、暗号化された部分鍵は、第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、第2のプロキシノードの公開鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するように特に構成される。
【0248】
また、ネットワークノードは、代替として、データソースまたはデータ所有者、たとえば、第1のノードであってよく、第1のノードの構造は、図9に示されたネットワークノードの構造と同じである。しかしながら、ネットワークノードにおける各ユニットは、以下の機能をさらに有する。
【0249】
具体的には、受信ユニット901は、第2のノードの識別を取得するように構成され、識別は、第2のノードの認可情報を決定するために使用され、認可情報は、許可および不許可を含む。
【0250】
処理ユニット902は、認可情報が許可である場合、ネットワークノードの秘密鍵、第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成し、第1のトランザクション情報を生成し、ブロックチェーンネットワーク上に第1のトランザクション情報を記録するように構成され、
第1のトランザクション情報は、第2のノードの識別、第2のノードの認可情報、および暗号化された部分鍵を含む。
【0251】
任意選択で、この実施形態の可能な実装では、処理ユニット902は、秘密分散アルゴリズムを使用することによって変換鍵をn個の部分鍵に分割し、nは1以上の正の整数であり、ブロックチェーンネットワークからm個のプロキシノードを選択し、m個のプロキシノードの公開鍵を使用することによってn個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成し、m≦nであるように特に構成される。
【0252】
第1のトランザクション情報は、m個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量kとをさらに含む。
【0253】
任意選択で、この実施形態の別の可能な実装では、処理ユニット902は、第1のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第1のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第1のトランザクション情報について合意に達し、第1のトランザクション情報を記憶するように特に構成される。
【0254】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット902は、認可情報が不許可である場合、第2のノードの認可情報をキャンセルし、第2のトランザクション情報を生成し、ブロックチェーンネットワーク上に第2のトランザクション情報を記録するようにさらに構成され、第2のトランザクション情報は、第2のノードの識別および第2のノードの認可情報を含む。
【0255】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット902は、第2のノードの識別を取得する前に、第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成し、ブロックチェーンネットワーク上のトランザクションとして第1の暗号化された暗号文を記憶するようにさらに構成される。
【0256】
図10に示されるように、特定のハードウェア実装において、上記の実施形態のネットワークノードは、トランシーバ1201、プロセッサ1202、およびメモリ1203を含む。ネットワークノードは、より多数または少数のコンポーネントをさらに含み、またはいくつかのコンポーネントを組み合わせてよく、または異なるコンポーネント配置を有してよい。これは、本出願で限定されない。
【0257】
トランシーバ1001は、要求メッセージおよびフィードバック情報を受信および送信し、ネットワーク内の別のノードとのデータ伝送を実行するように構成される。トランシーバモジュールは、トランシーバモジュールを含んでよく、トランシーバモジュールは、ワイヤレスローカルエリアネットワーク(WLAN)モジュール、Bluetoothモジュール、ベースバンド(base band)モジュールなどの通信モジュール、および通信モジュールに対応する無線周波数(radio frequency、RF)回路を含み得る。トランシーバモジュールは、ワイヤレスローカルエリアネットワーク、Bluetooth通信、赤外線通信での通信、ならびに/またはセルラー通信システム、たとえば、広帯域符号分割多元接続(Wideband Code Division Multiple Access、WCDMA)および/もしくは高速ダウンリンクパケットアクセス(High Speed Downlink Packet Access、HSDPA)での通信を実行するように構成される。トランシーバモジュールは、端末デバイス内のすべてのコンポーネントの間の通信を制御するように構成され、直接メモリアクセス(direct memory access)をサポートし得る。
【0258】
スイッチの制御センターとして、プロセッサ1002は、様々なインターフェースおよびラインを使用することによってスイッチ全体の様々な部分に接続され、スイッチデバイスの様々な機能を実行し、ならびに/またはメモリ1203に記憶されたソフトウェアプログラムおよび/もしくはモジュールを動作させまたは実行し、メモリ1203に記憶されたデータを呼び出すことによって、データを処理する。
【0259】
プロセッサ1202は、集積回路(Integrated Circuit、IC)によって形成されてよく、たとえば、単一のパッケージ化されたICによって形成されてよく、または同じ機能もしくは異なる機能を有する複数のパッケージ化されたICを接続することによって形成されてよい。たとえば、プロセッサは、中央処理装置(Central Processing Unit、CPU)のみを含んでよく、またはGPU、デジタル信号プロセッサ(Digital Signal Processor、DSP)、およびトランシーバ内の制御チップ(たとえばベースバンドチップ)の組み合わせであってよい。本出願の様々な実装において、CPUは、単一のコンピューティングコアであってよく、または複数のコンピューティングコアを含んでよい。
【0260】
メモリ1003は、揮発性メモリ(volatile memory)、たとえば、ランダムアクセスメモリ(Random−Access Memory、RAM)を含んでよく、または不揮発性メモリ(non−volatile memory)、たとえば、フラッシュメモリ(flash memory)、ハードディスクドライブ(Hard Disk Drive、HDD)、もしくはソリッドステートドライブ(Solid−State Drive、SSD)を含んでよく、またはメモリは、上記のタイプのメモリの組み合わせを含んでよい。メモリは、プログラムまたはコードを記憶し得る。スイッチにおけるプロセッサ1002は、プログラムまたはコードを実行してネットワークノードの機能を実装する。
【0261】
この実施形態では、トランシーバ1001によって実装される機能は、図9に示された受信ユニット901および送信ユニット903によって実装されてよく、またはプロセッサ1002によって制御されるトランシーバ1001によって実装されてよい。処理ユニット902によって実装される機能は、プロセッサ1002によって実装され得る。
【0262】
加えて、本出願はコンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体はプログラムを記憶し得る。プログラムが実行されたとき、本出願で提供されるデータアクセス権限を制御するための方法およびデータ伝送方法の実施形態におけるステップの一部または全部が実行され得る。記憶媒体は、磁気ディスク、光ディスク、読み取り専用メモリ ROM、またはランダムアクセスメモリRAMなどであり得る。
【0263】
上記の実施形態の全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせを使用することによって実装され得る。ソフトウェアが実施形態を実装するために使用されるとき、実施形態は完全にまたは部分的にコンピュータプログラム製品の形態で実装され得る。
【0264】
コンピュータプログラム製品は、1つまたは複数のコンピュータ命令、たとえば、検証命令を含む。コンピュータ命令がコンピュータ上でロードされ実行されたとき、本出願の実施形態で説明されたプロセスまたは機能が全体的または部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラマブル装置であり得る。
【0265】
コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてよく、またはコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてよい。たとえば、コンピュータ命令は、有線またはワイヤレス様式で、ウェブサイト、コンピュータ、サーバ、またはデータセンターから別のウェブサイト、コンピュータ、サーバ、またはデータセンターに伝送され得る。
【0266】
コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、または1つもしくは複数の使用可能な媒体を統合するサーバやデータセンターなどのストレージデバイスであり得る。使用可能な媒体は、磁気媒体、たとえば、フロッピーディスク、ハードディスク、磁気テープ、光学媒体(たとえばDVD)、またはソリッドステートドライブSSDなどの半導体媒体であり得る。
【0267】
さらに、本出願の実施形態におけるネットワークノードは基地局またはアクセスポイントであり得ることに留意されたい。たとえば、基地局は、GSMまたはCDMAにおけるトランシーバ基地局(BTS、Base Transceiver Station)であってよく、WCDMAにおけるノードB(NodeB)であってよく、またはLTEにおける進化型ノードB(eNBもしくはe−NodeB、evolutional Node B)であってよい。これは、本出願で限定されない。
【0268】
また、ネットワークノードはさらに、クライアントまたは端末デバイスであり得る。端末デバイスは、ユーザに音声および/もしくはデータ接続性を提供するデバイス、ワイヤレス接続機能を有するハンドヘルドデバイス、またはワイヤレスモデムに接続される別の処理デバイスであってよい。
【0269】
ワイヤレス端末は、無線アクセスネットワークRANを介して1つまたは複数のノードと通信し得る。ワイヤレス端末は、(「セルラー」電話とも呼ばれる)携帯電話などのモバイル端末、またはモバイル端末を有するコンピュータ、たとえば、ポータブル、ポケットサイズ、ハンドヘルド、コンピュータ内蔵、または車両搭載モバイル装置であってよく、それらは、無線アクセスネットワークと音声および/またはデータを交換する。たとえば、ワイヤレス端末は、パーソナル通信サービス(Personal Communication Service、PCS)電話、コードレス電話機、セッション開始プロトコル(SIP)電話、ワイヤレスローカルループ(Wireless Local Loop、WLL)局、または携帯情報端末(Personal Digital Assistant、PDA)などのデバイスであってよい。ワイヤレス端末は、システム、加入者ユニット(Subscriber Unit)、加入者局(Subscriber Station)、移動局(Mobile Station)、モバイル端末(Mobile)、リモート局(Remote Station)、アクセスポイント(Access Point、AP)、リモート端末(Remote Terminal)、アクセス端末(Access Terminal)、ユーザ端末(User Terminal)、ユーザエージェント(User Agent)、ユーザデバイス(User Device)、またはユーザ機器(User Equipment)と呼ばれることもある。
【0270】
本出願の明細書、特許請求の範囲、および添付図面において、用語「第1」、「第2」など(もしあれば)は、同様の対象を区別することが意図されているが、必ずしも特定の順序または配列を示すものではない。そのように称されるデータは、適切な環境で交換可能であり、したがって、本明細書に記載された実施形態は、本明細書に示され説明された順序以外の順序で実装されることが可能であることを理解されたい。さらに、用語「含む」、「含有する」、または他の変形は、非排他的な包含を含むことを意図しており、たとえば、ステップまたはユニットのリストを含む処理、方法、システム、製品、デバイスは、それらのユニットに必ずしも限定されず、そのような処理、方法、システム、製品またはデバイスに明示的に列挙されないまたは固有でない他のユニットを含み得る。
【0271】
本発明の実施形態における技術は必要な一般的なハードウェアプラットフォームに加えてソフトウェアよって実装され得ることを、当業者は明確に理解し得る。そのような理解に基づいて、先行技術に本質的または部分的に貢献する本発明の実施形態における技術的解決策は、ソフトウェア製品の形態で実装され得る。コンピュータソフトウェア製品は、ROM/RAM、磁気ディスク、または光ディスクなどの記憶媒体に記憶されてよく、本発明の実施形態または実施形態のいくつかの部分で説明された方法を実行するように、コンピュータデバイス(パーソナルコンピュータ、サーバ、もしくはネットワークデバイスなどであり得る)に命令するためのいくつかの命令を含む。
【0272】
本明細書における実施形態の同じおよび類似する部分については、実施形態を参照されたい。特に、ネットワークノードまたは装置デバイスは、基本的に方法実施形態と同様であり、したがって簡潔に説明されている。関係付けられた部分については、方法実施形態の説明を参照されたい。
【0273】
本出願の上記の実装は、本出願の保護範囲に対する限定を構成しない。
【図1】
【図2】
【図3】
【図4a】
【図4b】
【図5】
【図6A】
【図6B】
【図7】
【図8A】
【図8B】
【図8C】
【図9】
【図10】
【手続補正書】
【提出日】20201026
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
データアクセス権限を制御するための方法であって、
第1のプロキシノードによって、要求ノードから第1の要求メッセージを受信するステップであって、前記第1の要求メッセージは、前記要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、
前記第1のプロキシノードによって、前記アクセスされるべきデータの前記識別子に基づいて、ブロックチェーンにおける第1の暗号化された暗号文を決定するステップ、および前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、
前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有する場合、少なくとも1つの第2のプロキシノードに対して前記要求ノードについての権限検証要求を開始するステップ、および前記少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、前記第1の暗号化された暗号文のプロビジョニングを決定するステップと
を含む、方法。
【請求項2】
前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定する前記ステップは、
前記ブロックチェーン上で、前記要求ノードの前記識別に基づいて前記要求ノードの認可情報を読み取るステップを含み、前記認可情報は、前記ブロックチェーンのチェーンストレージ構造の末端に最も近く、前記認可情報は、許可または不許可を含む、請求項1に記載の方法。
【請求項3】
少なくとも1つの第2のプロキシノードに対して前記要求ノードについての権限検証要求を開始する前記ステップは、
前記第1のプロキシノードによって、m個の第2のプロキシノードを決定するステップであって、mは1以上の正の整数である、ステップと、
前記権限検証要求を生成するステップであって、前記権限検証要求は、前記要求ノードの前記識別、および前記第1の暗号化された暗号文を含み、前記第1の暗号化された暗号文は、前記アクセスされるべきデータを暗号化することによって生成される、ステップと、
m個の第2のプロキシノードのそれぞれに前記権限検証要求を送信するステップと
を含む、請求項1または2に記載の方法。
【請求項4】
前記少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、前記第1の暗号化された暗号文のプロビジョニングを決定する前記ステップは、
前記第1のプロキシノードによって、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するステップであって、前記第2のプロキシノードが、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有することを検証した後に、前記部分鍵は、前記第2のプロキシノードによって生成され送信され、k≦mである、ステップと、
前記少なくともk個の部分鍵を回復して変換鍵を生成するステップと、
前記変換鍵および暗号化アルゴリズムを使用することによって、前記第1の暗号化された暗号文を、前記要求ノードの公開鍵により暗号化される第2の暗号化された暗号文に変換するステップと
前記第2の暗号化された暗号文を前記要求ノードに送信するステップと
を含む、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、前記第1の暗号化された暗号文のプロビジョニングを決定する前記ステップは、
前記第1のプロキシノードが、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを前記要求ノードに送信するステップを含む、請求項3に記載の方法。
【請求項6】
前記第1のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有しないと決定し、前記要求ノードの前記第1の要求メッセージを拒否するステップをさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
第1のノードによって、第2のノードの識別を取得するステップであって、前記識別は、前記第2のノードの認可情報を決定するために使用される、ステップと、
前記認可情報が許可である場合、前記第1のノードによって、前記第1のノードの秘密鍵、前記第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成するステップと、
前記第1のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成するステップと、
前記第1のノードによって、第1のトランザクション情報を生成し、ブロックチェーン上に前記第1のトランザクション情報を記録するステップであって、前記第1のトランザクション情報は、前記第2のノードの前記識別、前記第2のノードの前記認可情報、および前記暗号化された部分鍵を含む、ステップと
を含む、データ伝送方法。
【請求項8】
前記第1のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成する前記ステップは、
前記第1のノードによって、秘密分散アルゴリズムを使用することによって前記変換鍵をn個の部分鍵に分割するステップであって、nは、1以上の正の整数である、ステップと、
前記第1のノードによって、前記ブロックチェーンネットワークからm個のプロキシノードを選択し、前記m個のプロキシノードの公開鍵を使用することによって前記n個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成するステップであって、m≦nである、ステップと
を含む、請求項に記載の方法。
【請求項9】
前記第1のトランザクション情報は、前記m個のプロキシノードの識別と、前記変換鍵を回復するための部分鍵の最小量kとをさらに含む、請求項に記載の方法。
【請求項10】
前記認可情報が不許可である場合
第2のトランザクション情報を生成するステップであって、前記第2のトランザクション情報は、前記第2のノードの前記識別および不許可である前記第2のノードの前記認可情報を含む、ステップと、
前記ブロックチェーンネットワーク上に前記第2のトランザクション情報を記録するステップと
をさらに含む、請求項に記載の方法。
【請求項11】
第1のノードによって第2のノードの識別を取得するステップの前に、
前記第1のノードによって、前記第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成するステップと、
前記第1のノードによって、前記ブロックチェーン上のトランザクションとして前記第1の暗号化された暗号文を記憶するステップと
をさらに含む、請求項からのいずれか一項に記載の方法。
【請求項12】
第2のプロキシノードによって、第1のプロキシノードから権限検証要求を受信するステップであって、前記権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、前記第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、
前記第2のプロキシノードによって、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、
前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有する場合、部分鍵を生成し、前記部分鍵を前記第1のプロキシノードに送信するステップと
を含む、データ伝送方法。
【請求項13】
部分鍵を生成する前記ステップは、
前記第2のプロキシノードによって、ブロックチェーン上の暗号化された部分鍵を取得するステップであって、前記暗号化された部分鍵は、前記第2のプロキシノードの公開鍵を使用した暗号化によって生成される、ステップと、
前記第2のプロキシノードによって、前記第2のプロキシノードの秘密鍵を使用することによって、前記暗号化された部分鍵を復号して、前記部分鍵を生成するステップと
を含む、請求項1に記載の方法。
【請求項14】
第1のプロキシノードに適用されるネットワークノードであって、
要求ノードから第1の要求メッセージを受信するように構成された受信ユニットであって、前記第1の要求メッセージは、前記要求ノードの識別、およびアクセスされるべきデータの識別子を含む、受信ユニットと、
前記アクセスされるべきデータの前記識別子に基づいて、ブロックチェーンにおける第1の暗号化された暗号文を決定し、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するように構成された処理ユニットと、
前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有する場合、少なくとも1つの第2のプロキシノードに対して前記要求ノードについての権限検証要求を開始するように構成された送信ユニットと
を備え、
前記処理ユニットは、前記少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有する場合、前記第1の暗号化された暗号文のプロビジョニングを決定するようにさらに構成される、ネットワークノード。
【請求項15】
前記送信ユニットは、ブロックチェーン上で、前記要求ノードの前記識別に基づいて前記要求ノードの認可情報を読み取るように構成され、前記認可情報は、前記ブロックチェーンのチェーンストレージ構造の末端に最も近く、前記認可情報は、許可または不許可を含む、請求項1に記載のネットワークノード。
【請求項16】
前記処理ユニットは、m個の第2のプロキシノードを決定し、前記権限検証要求を生成するように構成され、前記権限検証要求は、前記要求ノードの前記識別、および前記第1の暗号化された暗号文を含み、前記第1の暗号化された暗号文は、前記アクセスされるべきデータを暗号化することによって生成され、mは1以上の正の整数であり、
前記送信ユニットは、前記m個の第2のプロキシノードのそれぞれに前記権限検証要求を送信するように構成される、請求項14または15に記載のネットワークノード。
【請求項17】
前記受信ユニットは、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するようにさらに構成され、前記第2のプロキシノードが、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有することを検証した後に、前記部分鍵は、前記第2のプロキシノードによって生成され送信され、k≦mであり、
前記処理ユニットは、前記少なくともk個の部分鍵を回復して変換鍵を生成し、前記変換鍵および暗号化アルゴリズムを使用することによって、前記第1の暗号化された暗号文を前記要求ノードの公開鍵により暗号化された第2の暗号化された暗号文に変換するように構成され
前記送信ユニットは、前記第2の暗号化された暗号文を前記要求ノードに送信するようにさらに構成される、請求項1から1のいずれか一項に記載のネットワークノード。
【請求項18】
前記処理ユニットは、前記受信ユニットを使用することによって、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または前記受信ユニットを使用することによって、少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、前記送信ユニットを使用することによって、アクセス拒否メッセージを前記要求ノードに送信するように構成される、請求項16に記載のネットワークノード。
【請求項19】
前記処理ユニットは、前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有するかどうかを決定し、前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有しない場合、前記要求ノードの前記第1の要求メッセージを拒否するようにさらに構成された、請求項1から18のいずれか一項に記載のネットワークノード。
【請求項20】
第1のノードに適用されるネットワークノードであって、
第2のノードの識別を取得するように構成された受信ユニットであって、前記識別は、前記第2のノードの認可情報を決定するために使用される、受信ユニットと、
前記認可情報が許可である場合、前記ネットワークノードの秘密鍵、前記第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって前記変換鍵を暗号化して、暗号化された部分鍵を生成し、第1のトランザクション情報を生成し、ブロックチェーン上に前記第1のトランザクション情報を記録するように構成された処理ユニットと
を備え、
前記第1のトランザクション情報は、前記第2のノードの前記識別、前記第2のノードの前記認可情報、および前記暗号化された部分鍵を含む、ネットワークノード。
【請求項21】
前記処理ユニットは、秘密分散アルゴリズムを使用することによって前記変換鍵をn個の部分鍵に分割し、nは1以上の正の整数であり、前記ブロックチェーンネットワークからm個のプロキシノードを選択し、前記m個のプロキシノードの公開鍵を使用することによって前記n個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成し、m≦nであるように構成される、請求項20に記載のネットワークノード。
【請求項22】
前記第1のトランザクション情報は、前記m個のプロキシノードの識別と、前記変換鍵を回復するための部分鍵の最小量kとをさらに含む、請求項21に記載のネットワークノード。
【請求項23】
前記処理ユニットは、前記認可情報が不許可である場合、第2のトランザクション情報を生成し、前記ブロックチェーン上に前記第2のトランザクション情報を記録するようにさらに構成され、前記第2のトランザクション情報は、前記第2のノードの前記識別および不許可である前記第2のノードの認可情報を含む、請求項2に記載のネットワークノード。
【請求項24】
前記処理ユニットは、前記第2のノードの前記識別を取得する前に、前記第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成し、前記ブロックチェーン上のトランザクションとして前記第1の暗号化された暗号文を記憶するようにさらに構成された、請求項20から22のいずれか一項に記載のネットワークノード。
【請求項25】
第2のプロキシノードに適用されるネットワークノードであって、
第1のプロキシノードから権限検証要求を受信するように構成された受信ユニットであって、前記権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、前記第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、受信ユニットと、
前記要求ノードの前記識別に基づいて、前記要求ノードが前記第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、前記要求ノードが前記第1の暗号化された暗号文を読み取る前記権限を有する場合、部分鍵を生成するように構成された処理ユニットと、
前記部分鍵を第1のプロキシノードに送信するように構成された送信ユニットと
を備えた、ネットワークノード。
【請求項26】
前記処理ユニットは、ブロックチェーン上の暗号化された部分鍵を取得し、前記暗号化された部分鍵は、前記第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、前記第2のプロキシノードの秘密鍵を使用することによって、前記暗号化された部分鍵を復号して、前記部分鍵を生成するように構成された、請求項25に記載のネットワークノード。
【請求項27】
トランシーバ、メモリ、および前記メモリに記憶されたコードを実行して請求項1から13に記載の方法の一つを実施するように構成されたプロセッサを備えた、ネットワークノード。
【請求項28】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令がコンピュータにおいて実行されると、前記コンピュータに請求項1から13に記載の方法の一つを実施させる、コンピュータ可読記憶媒体。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、ブロックチェーンの分野に関し、特に、データアクセス権限を制御するための方法および装置に関する。
【背景技術】
【0002】
本出願は、2018年3月19日に中国国家知識産権局に出願された「METHOD AND APPARATUS FOR CONTROLLING DATA ACCESS RIGHT」と題される中国特許出願第201810224356.1号の優先権を主張するものであり、参照によりその全体が本明細書に組み込まれている。
【0003】
ブロックチェーンは、分散型台帳とも呼ばれる。すなわち、トランザクションが、異なる場所に分散された複数のノードによって共同でアカウンティングされ、各ノードが完全なアカウントを記録する。狭義には、ブロックチェーンは、データブロックを時系列で結合することによって得られるチェーン化されたデータ構造であり、暗号を使用することによって改竄や偽造から保護される分散型台帳である。
【0004】
ブロックチェーン技術のため、ブロックチェーンは分散化およびトラストレスという特徴を有する。分散化は、ブロックチェーンネットワーク全体において集中化されたハードウェアまたは管理メカニズムが存在せず、諸ノードの権限および義務が等しく、ノードの損傷または損失がネットワークシステム全体の動作に影響を与えないことを意味する。したがって、ブロックチェーンネットワークの望ましい堅牢性が保証される。トラストレスは、ノードがネットワーク全体においてデータ交換に参加するために相互信頼を必要としないことを意味する。ブロックチェーンネットワークシステム全体の動作ルールはオープンであり、透明性があり、すべてのブロックチェーンノード上のデータコンテンツもオープンである。したがって、システムにより指定されたルールまたは時間範囲内で、ノードは互いに欺くことができない。
【0005】
クライアントは、ネットワークブロックチェーン上のノード内のアクセスデータを要求し、ブロックチェーンネットワーク上のノードは、暗号化されたデータおよび復号鍵をクライアントに提供する。次いで、クライアントは、暗号化されたデータを、復号鍵を使用することによって復号して、アクセスデータを取得し、ブロックチェーン上にアクセスデータを記録する。この処理では、ブロックチェーンノードにおける台帳の過去のトランザクションデータが変更または削除されることが可能でなく、ブロックチェーン上のデータは公開され、キャンセルされることが可能でないため、アクセス権限がユーザに付与され復号鍵が配布されると、アクセス権限が取り消されることができない。この場合、ユーザのアクセス権限が禁止される必要があるとき、ユーザがデータにアクセスするのを防止することができず、データアクセスのリスクおよび不安定性をもたらす。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Improved Proxy Re−Encryption Schemes with Applications to Secure Distributed Storage
【発明の概要】
【0007】
本出願は、データアクセス権限を制御するための方法および装置を提供して、ユーザのアクセス権限が変化したとき、ユーザによって要求されるデータまたは暗号文のプロビジョニングを制御する。
【0008】
具体的には、上記の技術的問題を解決するために、本出願は、以下の技術的解決策を開示する。
【0009】
第1の態様によれば、本出願は、データアクセス権限を制御するための方法を提供する。方法は、第1のプロキシノードによって、要求ノードから第1の要求メッセージを受信するステップであって、第1の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む、ステップと、第1のプロキシノードによって、アクセスされるべきデータの識別子に基づいて、ブロックチェーンにおける第1の暗号化された暗号文を決定するステップ、および要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始するステップ、および少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップとを含む。
【0010】
任意選択で、第1のプロキシノードは、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、要求ノードが第1の暗号化された暗号文を読み取る権限を有しない場合、第1のプロキシノードは、要求ノードの第1の要求を拒否する。
【0011】
この態様で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーンネットワーク上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【0012】
さらに、少なくとも1つの第2のプロキシノードを使用することによって要求元の識別がさらに検証され、したがって、1つのみの第1のプロキシノードが検証で使用されるときに不正行為が発生する可能性が回避されることが可能であり、それにより、検証精度をさらに改善し、情報伝送のセキュリティをさらに確実にする。
【0013】
第1の態様に関し、第1の態様の実装では、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るステップを含み、認可情報は、ブロックチェーン上のチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【0014】
この実装では、暗号化された暗号文および鍵を要求ノードが取得できるかどうかのチェックに備えるために、要求元の最新のアクセス権限が、要求ノードの認可情報を読み取ることによって取得されてよく、認可情報は、ブロックチェーン上のチェーンストレージ構造の末端に最も近い。
【0015】
第1の態様に関し、第1の態様の別の実装では、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始するステップは、第1のプロキシノードによって、m個の第2のプロキシノードを決定するステップであって、mは1以上の正の整数である、ステップと、権限検証要求を生成するステップであって、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、m個の第2のプロキシノードのそれぞれに権限検証要求を別々に送信するステップとを含む。
【0016】
第1の態様に関し、第1の態様のさらに別の実装では、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップは、
第1のプロキシノードによって、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するステップであって、第2のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第2のプロキシノードによって生成され送信され、k≦mである、ステップと、少なくともk個の部分鍵を回復して変換鍵を生成するステップと、変換鍵および暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文を第2の暗号化された暗号文に変換するステップであって、第2の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、第2の暗号化された暗号文を要求ノードに送信するステップとを含む。
【0017】
この実装では、第1のプロキシノードが、権限検証要求を複数の第2のプロキシノードに送信し、第2のプロキシノードにより送信された十分な量の部分鍵を取得した後のみに、変換鍵を回復することができる。すなわち、変換鍵は、複数の第2のプロキシノードが共同の復号に参加した後のみに生成されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、したがって、少数のノードが不正なやり方で権限制御を回避することによって暗号文を取得することが効果的に防止される。この方法は、復号複雑性を増大させて、効果的に暗号文の送信および読み取りのセキュリティを確実にし、認可されていないユーザが暗号文またはデータを読み取るのを防止する。
【0018】
第1の態様に関し、第1の態様のさらに別の実装では、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップは、第1のプロキシノードが、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを要求ノードに送信するステップを含む。
【0019】
第1の態様に関し、第1の態様のさらに別の実装では、第1のプロキシノードによって、要求ノードから第1の要求メッセージを受信するステップは、第1のプロキシノードによって、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することによって転送された第1の要求メッセージを受信するステップを含む。
【0020】
第2の態様によれば、本出願は、データ伝送方法をさらに提供する。方法は、データソースまたはデータ所有者に適用され得る。この態様では、第1のノードは例として使用され、方法は、
第1のノードによって、第2のノードの識別を取得するステップであって、識別は、第2のノードの認可情報を決定するために使用され、認可情報は、許可または不許可を含み、第2のノードは、要求ノードまたはデータ要求元である、ステップと、認可情報が許可である場合、第1のノードによって、第1のノードの秘密鍵、第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成するステップと、第1のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成するステップと、第1のノードによって、第1のトランザクション情報を生成し、ブロックチェーン上に第1のトランザクション情報を記録するステップであって、第1のトランザクション情報は、第2のノードの識別、第2のノードの認可情報、および暗号化された部分鍵を含む、ステップとを含む。
【0021】
第2の態様に関し、第2の態様の実装では、第1のノードによって、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成するステップは、第1のノードによって、秘密分散アルゴリズムを使用することによって変換鍵をn個の部分鍵に分割するステップであって、nは、1以上の正の整数である、ステップと、第1のノードによって、ブロックチェーンネットワークからm個のプロキシノードを選択し、m個のプロキシノードの公開鍵を使用することによってn個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成するステップであって、m≦nである、ステップとを含む。
【0022】
第2の態様に関し、第2の態様の別の実装では、第1のトランザクション情報は、m個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量kとをさらに含む。取得された部分鍵の量がk未満であるとき、必要とされる変換鍵が回復されることができない。この場合、少数またはいくつかのプロキシノードによる不正行為が防止され、それにより、検証のセキュリティおよび信頼性を改善することができる。
【0023】
第2の態様に関し、第2の態様のさらに別の実装では、ブロックチェーン上に第1のトランザクション情報を記録するステップは、第1のノードによって、第1のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第1のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第1のトランザクション情報について合意に達し、第1のトランザクション情報を記憶するステップを含む。
【0024】
第2の態様に関し、第2の態様のさらに別の実装では、方法は、認可情報が不許可である場合、第2のノードの認可情報をキャンセルするステップと、第2のトランザクション情報を生成するステップであって、第2のトランザクション情報は、第2のノードの識別および第2のノードの認可情報を含む、ステップと、ブロックチェーン上に第2のトランザクション情報を記録するステップとをさらに含む。
【0025】
第2の態様に関し、第2の態様のさらに別の実装では、第1のノードによって第2のノードの識別を取得するステップの前に、方法は、第1のノードによって、第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成するステップと、第1のノードによって、ブロックチェーン上のトランザクションとして第1の暗号化された暗号文を記憶するステップとをさらに含む。
【0026】
第3の態様によれば、本出願はデータ伝送方法をさらに提供し、方法は第2のプロキシノードに適用されてよく、第2のプロキシノードは第1のプロキシノードまたはプライマリプロキシノードであってよく、方法は、
第2のプロキシノードによって、第1のプロキシノードから権限検証要求を受信するステップであって、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、第2のプロキシノードによって、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、はいの場合、部分鍵を生成し、部分鍵を第1のプロキシノードに送信するステップとを含む。
【0027】
この態様では、第1のプロキシノードが、要求ノードのアクセスが許可されることを検証したとき、第2のプロキシノードが、さらに要求ノードの権限を検証する。要求ノードのアクセスが許可されることを検証するとき、第2のプロキシノードが、生成された部分鍵を第1のプロキシノードに送信するので、第1のプロキシノードが、部分鍵を収集し最終的な変換鍵を合成し、それにより、第1のプロキシノードの不正行為を効果的に防止し、検証のセキュリティを改善する。
【0028】
第3の態様に関し、第3の態様の実装では、部分鍵を生成するステップは、第2のプロキシノードによって、ブロックチェーン上の暗号化された部分鍵を取得するステップであって、暗号化された部分鍵は、第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成される、ステップと、第2のプロキシノードによって、第2のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するステップとを含む。
【0029】
第3の態様に関し、第3の態様の別の実装では、方法は、第2のプロキシノードによって、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するステップと、要求ノードが第1の暗号化された暗号文を読み取る権限を有しない場合、第1のプロキシノードの第1の要求を拒否するステップとをさらに含む。
【0030】
第4の態様によれば、本出願は、データアクセス権限を制御するための装置をさらに提供する。たとえば、装置は、ネットワークノードであってよく、またはネットワークノードにおいて構成されてよい。装置またはネットワークノードは、上述の態様における第1のプロキシノード、第1のノード、または第2のプロキシノードであってよく、装置は、第1の態様から第3の態様および態様の実装における方法ステップを実行するように構成されたユニットを含む。
【0031】
具体的には、装置は、受信ユニット、処理ユニット、および送信ユニットを含む。加えて、装置は、記憶ユニットなど別のユニットまたはモジュールをさらに含み得る。これは、本出願で限定されない。
【0032】
第5の態様によれば、本出願はネットワークノードをさらに提供する。ネットワークノードは、プロセッサ、トランシーバ、およびメモリを含む。ネットワークノードは、第1のプロキシノードであるとき、
トランシーバは、要求ノードから第1の要求メッセージを受信するように構成され、第1の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含み、
プロセッサは、アクセスされるべきデータの識別子に基づいて、ブロックチェーンにおける第1の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、要求ノードの第1の要求を拒否し、または、はいの場合、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始し、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するように構成される。
【0033】
第5の態様に関し、第5の態様の実装では、プロセッサは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るように特に構成され、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【0034】
第5の態様に関し、第5の態様の別の実装では、プロセッサは、m個の第2のプロキシノードを決定し、mは1以上の正の整数であり、権限検証要求を生成し、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、トランシーバを使用することによって、m個の第2のプロキシノードのそれぞれに権限検証要求を送信するように特に構成される。
【0035】
第5の態様に関し、第5の態様のさらに別の実装では、トランシーバは、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するように特に構成され、第2のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第2のプロキシノードによって生成され送信され、k≦mであり、
プロセッサは、少なくともk個の部分鍵を回復して変換鍵を生成し、変換鍵および暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文を第2の暗号化された暗号文に変換するように特に構成され、第2の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成され、
トランシーバは、第2の暗号化された暗号文を要求ノードに送信するように特に構成される。
【0036】
第5の態様に関し、第5の態様のさらに別の実装では、プロセッサは、第1のプロキシノードが、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、トランシーバを使用することによって、アクセス拒否メッセージを要求ノードに送信するように特に構成される。
【0037】
第5の態様に関し、第5の態様のさらに別の実装では、トランシーバは、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された第1の要求メッセージを受信するように特に構成される。
【0038】
さらに、ネットワークノードが第のプロキシノードである場合、トランシーバは、第1のプロキシノードから権限検証要求を受信するように構成され、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、
プロセッサは、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第1のプロキシノードの第1の要求を拒否し、または、はいの場合、部分鍵を生成するように構成され、
トランシーバは、部分鍵を第1のプロキシノードに送信するようにさらに構成される。
【0039】
任意選択で、プロセッサは、ブロックチェーン上の暗号化された部分鍵を取得し、暗号化された部分鍵は、第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、第2のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するように特に構成される。
【0040】
第6の態様によれば、本出願はネットワークノードをさらに提供する。ネットワークノードは、プロセッサ、トランシーバ、およびメモリを含む。ネットワークノードは、データソースまたはデータ所有者、たとえば、第1のノードであるとき、
トランシーバは、第2のノードの識別を取得するように構成され、識別は、第2のノードの認可情報を決定するために使用され、認可情報は、許可または不許可を含み、
プロセッサは、認可情報が許可である場合、ネットワークノードの秘密鍵、第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成し、第1のトランザクション情報を生成し、ブロックチェーン上に第1のトランザクション情報を記録するように構成され、
第1のトランザクション情報は、第2のノードの識別、第2のノードの認可情報、および暗号化された部分鍵を含む。
【0041】
の態様に関し、第の態様の実装では、プロセッサは、秘密分散アルゴリズムを使用することによって変換鍵をn個の部分鍵に分割し、nは1以上の正の整数であり、ブロックチェーンネットワークからm個のプロキシノードを選択し、m個のプロキシノードの公開鍵を使用することによってn個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成し、m≦nであるように特に構成される。
【0042】
の態様に関し、第の態様の別の実装では、第1のトランザクション情報は、m個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量kとをさらに含む。
【0043】
の態様に関し、第の態様のさらに別の実装では、プロセッサは、具体的には第1のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第1のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第1のトランザクション情報について合意に達し、第1のトランザクション情報を記憶するように特に構成される。
【0044】
の態様に関し、第の態様のさらに別の実装では、プロセッサは、認可情報が不許可である場合、第2のノードの認可情報をキャンセルし、第2のトランザクション情報を生成し、ブロックチェーン上に第2のトランザクション情報を記録するようにさらに構成され、第2のトランザクション情報は、第2のノードの識別および第2のノードの認可情報を含む。
【0045】
の態様に関し、第の態様のさらに別の実装では、プロセッサは、第2のノードの識別を取得する前に、第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成し、ブロックチェーン上のトランザクションとして第1の暗号化された暗号文を記憶するようにさらに構成される。
【0046】
第7の態様によれば、本出願はコンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体は、命令を記憶してよく、命令が実行されたとき、本出願において提供される第1の態様から第3の態様および第1の態様から第3の態様の実装におけるデータアクセス権限を制御するための方法の一部または全部のステップが実装されることが可能である。
【0047】
第8の態様によれば、本出願は、命令を含むコンピュータプログラム製品をさらに提供する。命令がコンピュータ上で実行されたとき、コンピュータは上述の態様における方法を実行する。
【図面の簡単な説明】
【0048】
【図1】本出願によるファブリックアーキテクチャの概略図である。
【図2】本出願による閾値暗号システムにおける復号のフローチャートである。
【図3】本出願による、クライアントによってブロックチェーン上のアクセスデータを要求するためのフローチャートである。
【図4a】本出願によるブロックチェーンシステムの概略構造図である。
【図4b】本出願による、データアクセス権限を制御するための方法のフローチャートである。
【図5】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図6A】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図6B】本出願による、データアクセス権限を制御するための別の方法のフローチャートである。
【図7】本出願によるプロキシ再暗号化システムの役割のフローチャートである。
【図8A】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図8B】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図8C】本出願による、データアクセス権限を制御するためのさらに別の方法のフローチャートである。
【図9】本出願によるネットワークノードの概略構造図である。
【図10】本出願によるネットワークノードの概略構造図である。
【発明を実施するための形態】
【0049】
本出願の実施形態における技術的解決策を当業者がよりよく理解するために、また、本出願の実施形態の目的、特徴、および利点をより明確にするために、以下では、添付の図面を参照して本出願の実施形態における技術的解決策をさらに詳細に説明する。
【0050】
まず、本出願における基本的概念が詳細に説明される。
【0051】
本出願の技術的解決策はブロックチェーンに関する。ブロックチェーン(BlockChain)は、ビットコインに由来する分散されたデータベースであり、ビットコインの基礎となる技術である。ブロックチェーンは、暗号法を使用して関連付けを通して生成されたデータブロックの系列である。各データブロックは、1つのビットコインネットワークトランザクションに関する情報を含み、情報は、ビットコインネットワークトランザクションの妥当性を検証し(偽造防止)、次のブロック(block)を生成するために使用される。
【0052】
狭義には、ブロックチェーンは、データブロックを時系列で結合することによって得られるチェーン化されたデータ構造であり、暗号を使用することによって改竄や偽造から保護される分散型台帳である。広義には、ブロックチェーンは、複数の独立した分散されたノードを使用することによって同じレコードを記憶する分散型台帳である。
【0053】
ブロックチェーン技術は、分散化されたトラストレスな様式で信頼できるデータベースを集合的に維持する技術的解決策である。新しいデータがブロックチェーンに書き込まれる必要があるたびに、データがブロックに集約され、既存のブロックチェーンの末端に追加される。ノードの新しく追加されたブロックが同じであることを確実にするために、合意アルゴリズムが使用される。
【0054】
いくつかのトランザクションレコードが各ブロックに記録され、ブロックは、前のブロックのハッシュ値(hash)を含む。すべてのブロックについて、このように前のブロック内の情報が記憶され、これらのブロックは、順に接続されてブロックチェーンを形成する。ブロックチェーンは、改竄されることが難しい。ブロックチェーン技術に基づいて、トランザクション(Transaction、Tx)は、合意に達することができる2つの当事者によって直接行われ、したがって、トランザクションに参加するために、信頼される第三者の集中化された仲介役は必要とされない。
【0055】
スマートコントラクト(smart contract)は、分散型ブロックチェーン台帳上で実行され、台帳上のデータを管理することができる、イベント駆動されるステートフルプログラムである。スマートコントラクトは、一般的コンピュータ実行可能プログラムと見なされてよく、このコンピュータ実行可能プログラムは、正確かつ自動的に実行されることが可能である。スマートコントラクトのコードコンテンツが、トランザクションルールおよびロジックを指定する。ユーザがスマートコントラクトに署名し呼び出したとき、それは、コントラクトコンテンツが実行されブロックチェーン台帳に書き込まれることを意味する。
【0056】
ブロックチェーンのコア技術の1つは、合意アルゴリズム、たとえば、ビットコインで使用されるプルーフオブワーク(Proof of Work、PoW)アルゴリズムである。ブロックチェーン上の合意アルゴリズムは、ビザンチンフォールトトレランスに向けられた合意シナリオに適用され、すなわち、ブロックチェーンネットワーク上のノードが互いに信頼せず悪意のある嘘つきノードがあり得る。ブロックチェーンネットワーク上の各ノードは、「嘘つき」ノードであり得る。しかしながら、大量のノードがネットワーク内に集約されたとき、ノードの合意結果は信頼される結果である。合意アルゴリズムの主な機能は、有効なトランザクションブロックの同じ内容をブロックチェーンネットワークのすべてのノードが記録することを可能にすることである。
【0057】
加えて、ブロックチェーンは、複数の当事者間の信頼問題を解決するための技術的メカニズムでもある。多者間信頼の前提条件は、技術的メカニズムが信頼できることである。したがって、ブロックチェーンは監査可能であることが必要である。ブロックチェーンシステム、スマートコントラクト、および合意アルゴリズムは、オープンソースであって複数の当事者に対してオープンである必要がある。
【0058】
ハイパーレジャー(Hyperledger)のファブリックプロジェクトは、合意に達するのを加速するメカニズムを使用する。このメカニズムのコアは、複数のエンドーサーピアがスマートコントラクトを実行し、実行結果をエンドース(endorsement)し、たとえば、エンドーサーピアがエンドーサーピアのコントラクト実行結果のコンテンツに署名して、結果が特定のエンドーサーピアにより送信されることを確実にすることである。ユーザは、実際の必要性に基づいて、ユーザのスマートコントラクトおよび複数の結果についての検証ポリシーによって信頼されるようにエンドーサーピアを設定してよく、たとえば、エンドースポリシー(endorse policy)を設定してよい。
【0059】
図1に示されるように、クライアントは、スマートコントラクト実行プロポーザル(proposal)を3つのエンドーサーピアに送信し得る。エンドースポリシーは、3つの実行結果のコンテンツが一致することを必要とすることがあり、または少なくとも2つの実行結果のコンテンツが一貫することを必要とすることがある。クライアントは、エンドーサーピアによりフィードバックされた実行結果を収集し、オーダラーピア(Orderer peer)を使用することによって、トランザクションに記録された実行結果をブロックチェーンネットワークにブロードキャストする。ブロックチェーンネットワーク上のノード、たとえば、エンドーサーピアは、トランザクションを読み取り、エンドースポリシーが満たされていることを検証するときにトランザクションを有効なトランザクションと見なし、トランザクションにおけるデータの変更を受け入れ、変更をブロックチェーンに書き込む。
【0060】
クライアント(client)またはクライアントアプリケーションは、ソフトウェア開発キット(Software Development Kit、SDK)を使用することによってファブリックシステムと対話し、有効なトランザクションを構築し、エンドーサーピアのためにトランザクションを提供する。エンドースポリシーで必要とされるエンドーサーピアからの十分なサポートが収集されると、有効なトランザクションプロポーザルが構築され、オーダラーピアまたはプロキシノードに送信され得る。
【0061】
エンドーサーピア(endorser peer)は、クライアントからのトランザクションの妥当性および権限のチェックを担当する。トランザクションが要件を満たす場合、エンドーサーピアはトランザクションに署名し、結果をクライアントに返す。
【0062】
オーダラーピア(orderer peer)は、トランザクションを順序付けし、順序付けられたトランザクションを他のノードにブロードキャストすることを担当する。オーダラーピアは、合意サービスを提供するノードまたはクラスタを含む。
【0063】
コミッターピア(committer peer)は、同意されたシーケンスを有するバッチトランザクション結果のステータスをチェックし、トランザクションがエンドースポリシーの要件を満たすかどうかをチェックし、台帳の読み取りセットにおける変数のステータスが変更されないままであることを確実にし、有効なトランザクションを実行し、ブロックを生成し、ブロックを台帳に書き込むように構成される。
【0064】
情報伝送のセキュリティおよび識別検証の精度を改善するために、本出願の技術的解決策はさらに、閾値暗号システム(Threshold cryptosystem)に関する。閾値暗号システムは、複数のメンバーの間で公開鍵に対応する秘密鍵を共有し、指定された量のメンバーが互いに協力したとき、公開鍵を使用することによって暗号化された暗号文が復号されることが可能である。閾値暗号システムの基礎は、秘密分散(secret sharing)である。
【0065】
具体的には、閾値暗号システムの解決策では、鍵をいくつかのシェア、たとえばn個のシェアに分割し、これらのシェアをn個の参加者に1つずつ送信する。任意のt(t<n)個の参加者またはn個の参加者のうちtより多数の参加者は、協力して復号操作を完了し得るが、t未満の参加者は、復号操作を完了することができない。
【0066】
以下では、閾値パスワードシステムにおけるすべての役割の機能および復号処理を説明する。
【0067】
図2は、閾値暗号システムにおける復号の概略的フローチャートである。閾値暗号システムは、鍵分配者、鍵参加者、および鍵合成者を含む。さらに、鍵分配者は、閾値暗号システムの信頼されるエンティティを確立するように構成され、閾値暗号システムにおけるパラメータを生成し、これらのパラメータをキー共有者に安全に送信することを担当する。鍵参加者は、閾値暗号システムにおける復号操作に参加する単一エンティティである。鍵合成者は、複数の参加者の復号されたシェアを取得し、これらの復号されたシェアを検証し復号する。
【0068】
たとえば、図2に示される通りである。ステップ1:閾値初期化設定。鍵分配者が、セキュリティパラメータを入力し、閾値暗号システムが、(PKで表され得る)公開パラメータのグループ、たとえば、n、t、およびSKを返す。nは鍵参加者の量を表し、tは閾値を表し、SKは閾値パスワードシステムにより生成された主鍵を示す。任意選択で、SK=(SK1,SK2,・・・,SKn)である。
【0069】
ステップ2:暗号化。システムの公開パラメータPKおよび鍵参加者の識別IDを使用することによって、平文メッセージを暗号化し、暗号化された暗号文cを生成し出力する。
【0070】
ステップ3:鍵シェア生成(Share key Gen)。鍵分配者は、システムの公開パラメータPK、暗号化された暗号文c、および主鍵SKを使用することによって、鍵シェアUiを算出する。
【0071】
ステップ4:鍵分配者は、鍵シェアUiをいくつかの鍵参加者に送信する。
【0072】
ステップ5:鍵参加者は、鍵シェアUiを取得し、鍵参加者は、鍵シェアUiを復号して、復号されたシェア、たとえば、復号されたシェア1、・・・、復号されたシェアtを生成する。
【0073】
ステップ6:各鍵参加者は、復号後に生成された復号されたシェアを鍵合成者に送信する。
【0074】
ステップ7:共同復号。鍵合成者は、復号されたシェアを取得し、たとえば、t個の復号されたシェアを取得し、t個の復号されたシェアを検証し、公開パラメータPKを使用することによって、t個の復号されたシェアを合成して、暗号化された暗号文cを取得し、最後に、暗号化された暗号文を復号して平文メッセージを取得する。
【0075】
本出願において提供される技術的解決策は、以下の技術的問題を解決することを目標とする。ブロックチェーンにおけるアクセス権限が付与され渡されると、アクセス権限は、変更されまたは取り消されることが不可能であり、結果として、権限を付与されていないユーザがデータにアクセスすることが可能である。具体的には、クライアントがデータにアクセスすることを要求しブロックチェーン上の暗号文を復号する処理は、以下の通りである。
【0076】
図3に示されるように、ステップ1:ユーザAは、クライアント1の登録情報を使用することによって、情報、たとえば、平文情報を生成する。
【0077】
ステップ2:クライアント1は、対称鍵を使用することによって情報を暗号化する。
【0078】
ステップ3:クライアント1は、暗号化された情報を送信し、ブロックチェーン上のトランザクションとして暗号化された情報をブロックチェーンノード1に記録する。
【0079】
ステップ4:ブロックチェーンノード1は、トランザクションを検証しブロードキャストする。
【0080】
ステップ5:ブロックチェーンノード1ならびにブロックチェーンノード2および3は、トランザクションを含むブロックについて合意に達する。ブロックチェーンノード1、2、および3は、同じブロックチェーンネットワーク上に配置されたノードである。
【0081】
合意は、ブロックチェーンノード1、2、および3が別個にトランザクションがポリシーを満たすかどうかをチェックし、対応する検証結果を生成し、3つのブロックチェーンノードにより生成された検証結果が同じであることとして理解され得る。
【0082】
ステップ6:ブロックチェーンノードは、ブロックチェーンノード1、2、および3により生成された検証結果が同じであることを確認し、ブロックを生成し、ローカル台帳における既存のブロックチェーンのチェーン化された構造の末尾にブロックを追加する。
【0083】
ステップ7:ユーザB は、クライアント2を使用することによって情報、たとえば、平文情報を取得する。
【0084】
ステップ8:クライアント2は、平文情報にアクセスするためにユーザBのアクセス権限を取得することをクライアント1に要求する。
【0085】
ステップ9:クライアント1は、アクセス権限情報をクライアント2に送信し、アクセス権限情報は対称鍵を含む。
【0086】
ステップ10:クライアント2は、ブロックチェーン台帳に記憶され暗号化された情報を取得することをブロックチェーンノード3に要求する。
【0087】
ステップ11:クライアント2は、対称鍵を使用することによって情報を復号する。
【0088】
アクセス権限を渡しデータを復号する上記の処理において、ブロックチェーンノードにおける台帳の過去のトランザクションデータが変更または削除されることが可能でなく、ブロックチェーン上のデータは公開され、キャンセルされることが可能でないため、アクセス権限がユーザに付与され復号鍵が配布されると、アクセス権限が取り消されることができない。この場合、ユーザのアクセス権限が禁止される必要があるとき、ユーザがデータにアクセスするのを防止することができず、権限を付与されていないユーザによるデータアクセスのリスクおよび不安定性をもたらす。
【0089】
上記の問題を解決するために、本出願の実施形態における技術的解決策の主な着想は、複数のプロキシノードをブロックチェーンシステムに追加することである。一般ノードの機能に加えて、各ノードは、ユーザのアクセス権限を共同して検証し、暗号文変換操作を行うようにさらに構成される。
【0090】
図4に示されるように、ブロックチェーンシステムは、データソースまたはデータ所有者、少なくとも1つのプロキシノード(Proxy)、複数の一般ノード、およびデータ要求ノードを含む。データソースまたはデータ所有者は、データの保存者であり、アクセス権限の認可当事者である。一般ノードは、ブロックチェーン上のトランザクションのブロードキャスト、合意到達、記録および記憶などの機能を実行するように構成され得る。ユーザ要求ノードは、データにアクセスするのを要求するノードまたはクライアントである。
【0091】
本出願において提供される技術的解決策は主に、3つの手順、すなわち、データ記憶、権限付与、およびデータ要求を含む。一般に、第1の、データソース(data source)またはデータ所有者は、元の暗号文を暗号化し、元の暗号文をブロックチェーン上に記録し、記憶する。
【0092】
次いで、データソースまたはデータ所有者は、権限を付与し、データソースまたはデータ所有者は、権限情報をブロックチェーンに書き込み、権限を付与されたノードに対応する変換鍵を生成する。データソースまたはデータ所有者は、変換鍵をいくつかの部分に分割し、それらの部分を異なるプロキシノードに送信する。
【0093】
最後に、データ要求ノード要求がデータにアクセスするのを要求したとき、プロキシノードは、合意を開始し、データ要求ノードの最新のアクセス権限を読み取り、データ要求ノードが権限を有するかどうかをチェックする。データ要求ノードが権限を有する場合、プロキシノードは、変換鍵を収集し、元の暗号文を、権限が付与されたノードのみにより復号されることが可能な別の暗号文へ変換し、暗号文を要求ノードに返す。データ要求ノードが権限を有しない場合、アクセスは拒否される。
【0094】
本出願の以下の実施形態では、すべてのネットワークデバイスが総称的にネットワークノードと呼ばれることに留意されたい。ネットワークノードは、要求メッセージを送信する第1のノードおよび第2のノードであってよく、ブロックチェーンネットワーク上のブロックチェーンノード、たとえば、第1のブロックチェーンノードもしくは第1のプロキシノード、転送用のリレーノード、または任意の一般ノードであってよく、またはデータソースであってよい。
【0095】
さらに、ネットワークノードは、局、基地局、ユーザ機器、クライアント、および端末を含むが、これらに限定されない。また、本出願の実施形態における2つの概念、デバイスとノードは等価である。言い換えれば、デバイスは、ノード、局、UE、ネットワーク要素デバイス、またはセンサなどを指すことがある。
【0096】
本出願に記載されているブロックチェーンおよびブロックチェーンシステムは、様々なネットワーク(たとえば、モノのインターネット)に適用されてよく、ブロックまたはブロックチェーンノードは、様々なネットワークデバイス(たとえば、モノのインターネットデバイス)に展開され得る。ネットワークデバイスは、産業用のモノのインターネットデバイス、たとえば、様々な産業用センサおよび制御モジュールであってよく、ウェアラブルデバイス、家電、ホームセンサ、もしくはホーム制御モジュールなどであってよく、または基地局、拡張された基地局、スケジューリング機能を有するリレー、もしくは基地局機能を有するデバイスなどであってよい。基地局は、LTEシステムの進化型ノードB(evolved Node B、eNB)または別のシステムの基地局であってよい。これは、本出願の実施形態で限定されない。
【0097】
また、様々なデバイス、たとえば、携帯電話、インテリジェント端末、マルチメディアデバイス、ストリーミングメディアデバイスが、ユーザ機器(user equipment、UE)であり得る。代替として、UEは、別のワイヤレスネットワークデバイス、たとえば、ノードB(Node B)であってよい。具体的に、ワイヤレスネットワークデバイスの形態およびタイプは本出願で限定されない。
【0098】
UEは、無線アクセスネットワーク(radio access network、RAN)を介して1つもしくは複数のコアネットワークと通信してよく、UEはさらに、通信のために別の様式でワイヤレスネットワークにアクセスしてよく、またはUEは、別のUEとワイヤレス通信を直接行ってよい。これは、本出願の実施形態で限定されない。
【0099】
図4bを参照すると、本出願の実施形態は、データアクセス権限を制御するための方法を提供する。方法は、以下のステップを含む。
【0100】
ステップ401:第1のプロキシノードが、要求ノードから第1の要求メッセージを受信し、第1の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む。
【0101】
実装は、第1のプロキシノードによって、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することによって転送された第1の要求メッセージを受信するステップを含む。
【0102】
ステップ402:第1のプロキシノードは、アクセスされるべきデータの識別子に基づいて、ブロックチェーンにおける第1の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定する。
【0103】
ステップ402において、要求ノードの識別に基づいて、第1の暗号化された暗号文を読み取る権限を要求ノードが有するかどうかを決定するステップは、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るステップを含み、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【0104】
ステップ403:第1の暗号化された暗号文を読み取る権限を要求ノードが有する、すなわち認可情報が許可である場合、第1のプロキシノードは、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始し、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定する。
【0105】
また、第1のプロキシノードが、第1の暗号化された暗号文を読み取る権限を要求ノードが有しないと決定した場合、第1のプロキシノードは、要求ノードの第1の要求を拒否する。
【0106】
ステップ403において、第1のプロキシノードによって、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始するステップは、
第1のプロキシノードによって、m個の第2のプロキシノードを決定するステップであって、mは1以上の正の整数である、ステップと、権限検証要求を生成するステップであって、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される、ステップと、m個の第2のプロキシノードのそれぞれに権限検証要求を送信するステップとを含む。
【0107】
任意選択で、第1のプロキシノードによって、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップは、
第1のプロキシノードによって、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するステップであって、第2のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第2のプロキシノードによって生成され送信され、k≦mである、ステップと、少なくともk個の部分鍵を回復して変換鍵を生成するステップと、変換鍵および暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文を第2の暗号化された暗号文に変換するステップであって、第2の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される、ステップと、第2の暗号化された暗号文を要求ノードに送信するステップとを含む。
【0108】
さらに、第1のプロキシノードによって、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するステップは、第1のプロキシノードが、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、アクセス拒否メッセージを要求ノードに送信するステップを含む。
【0109】
この実施形態で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーンネットワーク上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【0110】
さらに、少なくとも1つの第2のプロキシノードを使用することによって要求元の識別がさらに検証され、したがって、1つのみの第1のプロキシノードが検証で使用されるときに不正行為が発生する可能性が回避されることが可能であり、それにより、検証精度をさらに改善し、情報伝送のセキュリティをさらに確実にする。
【0111】
第2のプロキシノードは、第1のプロキシノードから権限検証要求を受信し、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される。
【0112】
第2のプロキシノードは、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第2のプロキシノードは第1のプロキシノードの第1の要求を拒否し、または、はいの場合、第2のプロキシノードは部分鍵を生成し部分鍵を第1のプロキシノードに送信する。
【0113】
任意選択で、部分鍵を生成するステップは、第2のプロキシノードによって、ブロックチェーン上の暗号化された部分鍵を取得するステップであって、暗号化された部分鍵は、第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成される、ステップと、第2のプロキシノードによって、第2のプロキシノードの秘密鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するステップとを含む。
【0114】
この実施形態では、第1のプロキシノードが、要求ノードのアクセスが許可されることを検証したとき、第2のプロキシノードが、さらに要求ノードの権限を検証する。要求ノードのアクセスが許可されることを検証するとき、第2のプロキシノードが、生成された部分鍵を第1のプロキシノードに送信するので、第1のプロキシノードが、部分鍵を収集し最終的な変換鍵を合成し、それにより、第1のプロキシノードの不正行為を効果的に防止し、検証のセキュリティを改善する。
【0115】
特定の実施形態において、本出願で開示される技術的解決策が上記の3つの手順の部分に従って詳細に説明される。
【0116】
a.データ記憶手順
「データ記憶手順」における動作を実行するためのエンティティは、データソースもしくはデータ所有者であってよく、またはデータを記憶し権限を付与する機能を有する別のノードであってよい。この実施形態では、「第1のノード」は、データ記憶処理を実行するためのエンティティを表すために使用される。別の名称、たとえば、データ所有者が使用されてもよいことは理解され得る。これは、本出願で限定されない。
【0117】
公開鍵暗号技術がデータ記憶手順で使用される。具体的には、公開鍵暗号(Public key cryptograph)は、非対称暗号法(asymmetric cryptography)と呼ばれることもあり、非対称暗号法は、暗号法のアルゴリズムであり、2つの鍵、すなわち、「パブリックキー」と呼ばれる公開鍵、および「プライベートキー」と呼ばれる秘密鍵を含む。
【0118】
2つの鍵は、異なる機能を有する。一方は暗号化に使用され、他方は復号に使用される。たとえば、鍵の一方は、平文を暗号化して、暗号化された暗号文を取得するために使用され、元の平文は、他方の対応する鍵を使用することによってのみ復号を通じて取得されることが可能である。すなわち、暗号化鍵は、暗号文を復号しデータにアクセスするために使用されることが可能でない。2つの異なる鍵は平文を暗号化および復号するために使用されるので、この処理は非対称暗号化と呼ばれることもある。暗号化と復号に同じ鍵が使用される対称暗号化と比べて、非対称暗号化方式は高いセキュリティを有する。2つの鍵の一方が得られても、暗号化された暗号文が復号されることが不可能であり、他方の鍵が算出されることが不可能であるからである。したがって、公開鍵は他者に開示され公表され、たとえば、ブロックチェーン上に記録されてよい。秘密鍵は、クライアントまたはUEによって保持される。
【0119】
「データ記憶手順」では、第1のノードは、以下の方法処理を主に実行する。
【0120】
第1のノードは、第1のノードの公開鍵、および暗号化アルゴリズム、たとえばプロキシ再暗号化アルゴリズムを使用することによって、暗号文を暗号化して、第1の暗号化された暗号文Eaを生成し、
第1のノードは、ブロックチェーン上にトランザクション(transaction)として第1の暗号化された暗号文Eaを記憶する。
【0121】
任意選択で、トランザクション記憶方式において、第1のノードは、ブロックチェーンネットワーク上の任意の一般ノードにトランザクション要求を送信し、トランザクション要求は、第1の暗号化された暗号文Eaを含み、トランザクション要求を受信する一般ノードは、ブロックチェーンネットワーク上にトランザクション要求をブロードキャストし、したがって、ブロックチェーンネットワーク上のすべてのブロックチェーンノードが合意に達し、第1の暗号化された暗号文Eaの関係付けられたトランザクションを記憶する。
【0122】
さらに、任意選択で、別のトランザクション記憶方式において、第1のノードは、第1の暗号化された暗号文を含むトランザクション要求を任意のプロキシノード、たとえば、第1のプロキシノードに直接送信し、第1のプロキシノードはトランザクションをブロードキャストし、ブロックチェーンネットワーク上のトランザクションについて合意に達する。
【0123】
b.権限付与手順
図5に示されるように、方法は以下のステップを含む。
【0124】
ステップ501:第1のノードが、第2のノードの識別I、および第1の暗号化された暗号文Eaについての第2のノードのアクセス権限情報Rを記録する。
【0125】
第2のノードは、認可されたユーザであり、第2のノードの識別Iは、第2のノード識別子、ユーザID、デバイスID、デバイス識別子などであってよい。アクセス権限情報Rは、権限の付与および権限のキャンセルを含む。
【0126】
ステップ502:アクセス権限情報Rが権限を付与するまたは権限をキャンセルするコンテンツを含むかどうかを決定する。
【0127】
ステップ503a:アクセス権限情報Rが権限を付与するコンテンツを有する場合、第1のノードは、第1のノードの秘密鍵、第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵Tを生成する。
【0128】
ステップ503b:アクセス権限情報Rが権限をキャンセルするコンテンツを有する場合、第1のノードは、トランザクション要求をブロックチェーンネットワーク上の任意のノードに送信し、トランザクション要求は、第2のノードのアクセス権限情報Rおよび識別Iを含む。
【0129】
ステップ504:ステップ503aの手順を続ける。第1のノードは、秘密分散アルゴリズムを使用することによって変換鍵Tをn個の部分鍵に分割し、ここで、nは1以上の正の整数である。
【0130】
任意選択で、変換鍵Tは(m,Tn)に分割される。Tnは、分割を通して取得された任意の部分鍵を表し、mは、変換鍵Tを回復するために使用されることが可能な最小量Tnを表す。
【0131】
ステップ505:第1のノードは、ブロックチェーンネットワークからm個のプロキシノードをランダムに選択し、m個のプロキシノードの公開鍵を使用することによってn個の部分鍵Tnを暗号化して、n個の暗号化された部分鍵Tneを生成し、ここで、m≦nである。
【0132】
ステップ506:第1のノードは、第1のトランザクション情報を生成し、第1のトランザクション情報を任意の一般ノードまたはブロックチェーンノードに送信し、第1のトランザクション情報は、第2のノードの識別I、第2のノードの認可情報(またはアクセス権限情報R)、および暗号化された部分鍵Tneのうちの少なくとも1つを含む。
【0133】
任意選択で、第1のトランザクション情報は、m個のプロキシノードの識別と、変換鍵を回復するための最小量mの部分鍵Tneとをさらに含む。
【0134】
ステップ507:一般ノードまたはプロキシノードが、ブロックチェーン上で第1のトランザクション情報(I,R,Tne,m)をブロードキャストおよび記憶し、またはステップ503bの手順に基づいてトランザクション要求(I,R)をブロードキャストおよび記憶する。
【0135】
c.データ要求手順
この「データ要求手順」は、要求ノードがブロックチェーンに対するデータアクセス要求を開始し、認可されたアクセスが満たされたときに暗号化された暗号文を復号しそれにアクセスする処理を説明する。具体的には、図6に示されるように、手順は以下のステップを含む。
【0136】
ステップ601:データ要求ノードは、第1の要求メッセージを任意の一般ノードに送信し、第1の要求メッセージは、要求ノードの識別Iおよびアクセスされるべきデータの識別子、またはアクセスされるべきデータの識別子に対応する第1の暗号化された暗号文Eaを含む。
【0137】
ステップ602:一般ノードは、第1の要求メッセージを受信し第1のプロキシノードPmに転送する。
【0138】
任意選択で、第1のプロキシノードPmは、この要求のプライマリノードの役割をしてよい。
【0139】
ステップ603:第1のプロキシノードPmは、第1の要求メッセージを受信し、第1の要求メッセージで搬送されるアクセスされるべきデータの識別子に基づいて、ブロックチェーン上の第1の暗号化された暗号文Eaを決定し、要求ノードの識別Iに基づいて、第1の暗号化された暗号文Eaを読み取る権限を要求ノードが有するかどうかを決定する。
【0140】
たとえば、第1のプロキシノードPmは、ブロックチェーン上で、要求ノードの識別Iに基づいて要求ノードの認可情報を読み取り、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【0141】
任意選択で、複数の認可情報が存在する場合、最も大きい数を有するブロックに配置された認可情報が使用される。
【0142】
ステップ604a:データ要求ノードが権限を有せず、またはアクセスが許可されない場合、データ要求ノードのこのアクセス要求を拒否する。
【0143】
ステップ604b:データ要求ノードが権限を有し、アクセスが許可される場合、少なくとも1つの第2のプロキシノードPに対して要求ノードについての権限検証要求を開始する。
【0144】
第2のプロキシノードの選択はブロックチェーン上で事前設定されてよく、またはシステムがデフォルトでブロックチェーンノードが互いに発見できるものとする。
【0145】
さらに、デフォルトでブロックチェーンノードが互いに発見できるものとすることは、第1のプロキシノードは、トランザクション情報、たとえば、「権限付与手順」においてブロックチェーンに記憶された第1のトランザクションを使用することによって、部分鍵Tnを暗号化する特定の第2のプロキシノードを認識し、暗号化された部分鍵Tneを生成し、次いで、これらの第2のプロキシノードのそれぞれに権限検証要求を送信し得ることを意味する。
【0146】
権限検証要求は、要求ノードの識別Iおよび第1の暗号化された暗号文Eaを含む。
【0147】
ステップ605:第2のプロキシノードPは、第1のプロキシノードPmから権限検証要求(I,Ea)を受信し、要求ノードの識別Iに基づいて、第1の暗号化された暗号文Eaを読み取る権限をデータ要求ノードが有するかどうかを決定する。
【0148】
第1の暗号化された暗号文Eaは、アクセスされるべきデータを暗号化することによって生成される。
【0149】
ステップ606a:いいえ(認可されない)の場合、データ要求ノードのこのアクセス要求を拒否する。たとえば、第2のプロキシノードPは、アクセス拒否メッセージを第1のプロキシノードPmにフィードバックする。
【0150】
ステップ606b:はい(認可された)の場合、部分鍵Tnを生成し、部分鍵Tnを第1のプロキシノードPmに送信する。
【0151】
具体的には、第2のプロキシノードPは、ブロックチェーン上で暗号化された部分鍵Tneを読み取り、第2のプロキシノードPの秘密鍵を使用することによってTneを復号して、部分鍵Tnを取得する。
【0152】
ステップ607:第1のプロキシノードPmは、少なくともk個の第2のプロキシノードPにより送信された部分鍵Tnを受信し、ここで、k≦mであり、mは、第2のプロキシノードの量mであり、第2のプロキシノードは、第1のプロキシノードPmにより決定され、権限検証要求を送信する。
【0153】
ステップ608:第1のプロキシノードPmは、少なくともk個の部分鍵Tnを回復して、変換鍵Tを生成する。
【0154】
ステップ609:第1のプロキシノードPmは、変換鍵Tおよび暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文Eaを第2の暗号化された暗号文Ebに変換し、第2の暗号化された暗号文Ebは、データ要求ノードの公開鍵を使用することによって暗号化が行われた後に生成される。
【0155】
ステップ610:第1のプロキシノードPmは、第2の暗号化された暗号文Ebを一般ノードに送信する。
【0156】
ステップ611:一般ノードは、第2の暗号化された暗号文Ebを受信し、データ要求ノードに送信し、したがって、データ要求ノードは、データ要求ノードの秘密鍵を使用することによって第2の暗号化された暗号文Ebを復号して、アクセスされるべきデータを取得する。
【0157】
有益な効果
本出願のこの実施形態で提供されるこの方法によれば、プロキシノードがブロックチェーンネットワークに追加されることにより、データソースは、暗号文を変更することなく、要求ノードの権限を自由に付与しまたは取り消すことができる。すなわち、プロキシノードは、ブロックチェーンネットワーク上の要求ノードの最新の権限を読み取って、アクセス要求を認可するか拒否するかを決定する。最新の権限がアクセス拒否である場合、ユーザは、データにアクセスし続けることを防止され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【0158】
「権限付与手順」では、データソースは、変換鍵を複数の部分鍵に分割し、複数の部分鍵は、ブロックチェーン上に記憶され、複数のプロキシノードによって保持される。このように、変換鍵は、十分な量の部分鍵が「データ要求手順」で取得された後のみに回復されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、それにより、少数のノードが不正行為により権限制御を回避し暗号文を取得することを効果的に防止する。この方法は、復号複雑性を増大させて、効果的に暗号文の送信および読み取りのセキュリティを確実にし、権限を付与されていないユーザが暗号文またはデータを読み取るのを防止する。
【0159】
また、データを読み取るとき、権限を付与されていない当事者、たとえば、第1のプロキシノードおよび第2のプロキシノードが、平文を取得することができず、結果として、平文のコンテンツを読むことできず、それにより、データプライバシを保護する。
【0160】
この実施形態における「権限付与手順」および「データ要求手順」において変換鍵を分割および回復するプロセスに関して、上述された閾値暗号システムの役割の(図2に示される)機能およびフローチャートを参照することに留意されたい。
【0161】
また、この実施形態におけるプロキシノードは、プロキシ再暗号化システムにおけるプロキシノードまたはプロキシであってよく、プロキシ再暗号化(Proxy re−encryption)システムは、暗号文を安全に変換する機能を有する新しい公開鍵暗号化システムである。
【0162】
図7は、実施形態によるプロキシ再暗号化システムの役割のフローチャートである。システムは、委託者(Delegator)、セミトラステッドプロキシ(Proxy)、および受託者(Delegatee)を含む。
【0163】
具体的には、ステップ701:委託者は、委託者の公開鍵を使用することによって平文メッセージを暗号化して、暗号化された暗号文を生成する。
【0164】
ステップ702:委託者が、暗号化された暗号文をセミトラステッドプロキシに送信する。
【0165】
ステップ703:委託者は、受託者の公開鍵を取得する。
【0166】
ステップ704:委託者は、受託者のための暗号文変換鍵を認可する。
【0167】
ステップ705:委託者は、暗号文変換鍵をセミトラステッドプロキシに送信する。
【0168】
ステップ706:セミトラステッドプロキシが、委託者からの暗号化された暗号文、および受託者のための暗号文変換鍵を取得し、セミトラステッドプロキシは、暗号化された暗号文を変換する。具体的には、セミトラステッドプロキシは、暗号化された暗号文を、受託者の公開鍵により暗号化された暗号文に変換する。
【0169】
ステップ707:セミトラステッドプロキシは、変換された暗号文を受託者に送信する。
【0170】
ステップ708:受託者は、変換された暗号文を取得し、受託者の秘密鍵を使用することによって、変換された暗号文を復号して、平文メッセージを生成する。
【0171】
この実施形態では、プロキシ再暗号化システムにおける役割の機能に基づいて、権限検証処理がプロキシノードに追加され、認可されたアクセス権限を満たさないノードのアクセスが拒否され、それにより、ブロックチェーン上の各権限を制御および変更し、データ伝送のセキュリティおよび信頼性を改善する。
【0172】
特定の実施形態では、本出願で提供される方法は、アリスがスーパーレジャーファブリックブロックチェーン上にアリスの年齢を記憶し、年齢へのボブのアクセスを制御する例を使用することによって、詳細に説明される。
【0173】
この実施形態で使用されるシステムは、前もって確立され、システムのユーザとして、各参加者は、ペアの鍵(公開鍵および秘密鍵)を生成する。公開鍵は、ブロックチェーン上に記録され開示されている。
【0174】
新しいプロキシノードが既存のファブリックブロックチェーンネットワークに追加され、新しいプロキシノードは権限検証および暗号文変換などの機能を有する。3つのプロキシノード(X、Y、Z)が、以下の構成ファイルを使用することによってファブリックブロックチェーンネットワークに追加される。
【0175】
特定の手順が図8に示される。
【0176】
データ記憶手順において、アリスは、データ所有者またはデータソースとして以下の方法ステップを実行し得る。
【0177】
ステップ801:アリスは、アリスの公開鍵Paおよびプロキシ再暗号化アルゴリズムを使用することによって、アリスの年齢を含むデータに対してプロキシ再暗号化を実行して、第2層暗号文Eaを生成する。
【0178】
プロキシ再暗号化アルゴリズムは、非特許文献1に記載されたプロキシ再暗号化アルゴリズムにおける第2層暗号化アルゴリズ(E2)であり得る。
【0179】
ステップ802:アリスは、トランザクションにEaをパッケージし、トランザクションをブロックチェーンネットワーク上の任意の一般ノードに送信する。一般ノードは、トランザクションを受信し、トランザクションをブロードキャストし、トランザクションについて合意に達してトランザクションを確認する。
【0180】
任意選択で、
記憶されたデータ擬似コードは以下の通りである。
【0181】
Func encrypt(data){
Ea = E2(data, Pa) //第2層暗号文を生成する
Tx = Package(Ea) //トランザクションにEaをパッケージする
Send(Tx) //トランザクションを送信する
【0182】
パッケージされたトランザクションが表1に示される。
【0183】
【表1】

【0184】
一般ノードにより実行される記録されたデータの擬似コードは、以下の通りである。
【0185】
func writeData(data, owner) {
id==null:0?id++
putState(”Data”, {”id”:id, ”data”:data, ”owner”:owner }) //データを記憶する
return SUCCESS
【0186】
トランザクションが完了された後、ファブリックブロックチェーンに記録されたワールドステートが表2に示されるように表示される。
【0187】
【表2】

【0188】
権限付与手順
ステップ803:アリスは、アリスの秘密鍵Saおよびボブの公開鍵Pbを使用することによって、プロキシ再暗号化アルゴリズムにおける変換鍵生成アルゴリズム(RG)を実行して、変換鍵Tとも呼ばれる再暗号化鍵Tを生成する。
【0189】
ステップ804:アリスは、変換鍵Tを使用し、n=3およびk=2に設定し、ここで、nは、変換鍵Tを分割することによって得られるシェアの量を表し、kは、Tを回復するためのプロキシノードの最小量を表し、そして、シャミア鍵共有アルゴリズムを使用することによって、変換鍵Tを3つの部分鍵T1、T2、およびT3に分割する。
【0190】
ステップ805:アリスは、プロキシノードX、Y、およびZの公開鍵を使用することによって部分鍵T1、T2、およびT3を暗号化して、暗号化された部分鍵、たとえば、T1x、T2y、およびT3zを生成する。
【0191】
ステップ806:アリスは、要求者ボブが第2層暗号文Eaにアクセスする権限を有することを記録し、暗号文処理ノードは、X、Y、およびZであり、少なくとも2つのノードが共同処理に必要とされる。
【0192】
ステップ807:アリスパッケージは、上記の情報をトランザクションにパッケージし、トランザクションを一般ノードに送信し、一般ノードは、トランザクションに関する情報をブロードキャストし、トランザクションに関する情報について合意に達してトランザクションを確認する。
【0193】
任意選択で、
認可擬似コードは以下の通りである。
【0194】
Func Authorize(dataid, delegatee, right, threshold, division){
T=RG(Sa, delegatee)//変換鍵を生成する
Tn=ShamirSplit(T, division, threshold)//変換鍵を分割部分へ分割し、変換鍵は最小閾値部分を使用することによって回復されることが可能である。
Foreach(t in Tn){//Tnにおける各鍵について
p=Ramdon(proxylist)//プロキシをランダムに選択する
Proxies += p//選択されたプロキシを記録する
Tne += Encrypt(t, p.Pk) //プロキシの公開鍵を使用することによってtを暗号化する

Tx = Package(Alice, dataid, delegatee, right, Proxies, Tne, threshold)
Send(Tx)
【0195】
パッケージされたトランザクションが表3に示される。
【0196】
【表3】

【0197】
任意選択で、一般ノードによって実行される認可情報を記録する擬似コードは、以下の通りである。
【0198】
func authorize(delegator, dataid, delegatee, right, keys, proxy, keys, threshold) {
if delegator == data.owner{//認可者がデータ所有者であるかどうかを決定する
id==null:0?id++
”right”: right, ”yes”: keys})//認可情報を記憶する
putState(”Proxy”,{”id”:id,”proxy”:proxy,”threshold”:threshold}) //プロキシ情報を記憶する
return SUCCESS

return FAIL
【0199】
トランザクションが完了された後、ファブリックブロックチェーンに記録されたワールドステート状態が表4に示されるように表示される。
【0200】
【表4】

【0201】
データ要求手順
ステップ808:ボブは、データ要求を任意の一般ノードに対して開始し、データ要求は、識別情報ボブおよびアクセスされるべきデータオブジェクト1を含む。
【0202】
ステップ809:一般ノードはデータ要求をプロキシノードXに転送し、プロキシノードXは、この要求についてのプライマリノードまたは第1のプロキシノードの役割をする。
【0203】
ステップ810:プロキシノードXは、ブロックチェーン上のデータオブジェクト1に対するボブの最新の権限を読み取り、ここでは、読み取りの結果は「許可」である。
【0204】
ステップ811:プロキシノードXは、データオブジェクト1の鍵処理ノード[X,Y,Z]を読み取り、ノードX、Y、およびZのそれぞれに対して鍵要求を開始し、鍵要求はボブの識別およびデータオブジェクト1を含み、プロキシノードXは、フィードバック結果の待機を始める。
【0205】
ステップ812:プロキシノードX、Y、およびZは、チェーン上のデータオブジェクト1に対するボブの最新の権限を読み取り、ここでは、読み取りの結果は「許可」である。
【0206】
ステップ813:読み取りの結果が「許可」であるとき、プロキシノードX、Y、およびZは、チェーンに記録された暗号化された部分鍵T1x、T2y、およびT3zをそれぞれ読み取り、プロキシノードX、Y、Zの秘密鍵を使用することによってこれらの暗号化された部分鍵を復号して部分鍵T1、T2、およびT3を取得し、次いで、部分鍵をプロキシノードXに送信する。
【0207】
ステップ814:プロキシノードXは、部分鍵T1、T2、およびT3のいずれか2つ、たとえば、T1およびT2を受信し、シャミア秘密分散アルゴリズムを使用することによって分割部分鍵を変換鍵Tへ回復する。
【0208】
ステップ815:プロキシノードXは、データオブジェクト1に対応する第2層暗号文Eaを読み取り、変換鍵Tを使用することによってプロキシ再暗号化アルゴリズムにおける再暗号化方法(R)を実行して、第2層暗号文Eaを、ボブの公開鍵Pbを使用することによって暗号化された第1層暗号文Ebに変換する。
【0209】
ステップ816:プロキシノードXは、第1層暗号文Ebをボブに送信する。
【0210】
ステップ817:ボブは、第1層暗号文Ebを受信し、ボブの秘密鍵Sbを使用することによってプロキシを再暗号化アルゴリズムにおける復号方法(D)を実行して、アリスの年齢、すなわちaを取得する。
【0211】
この実施形態で提供される方法によれば、チェーン上のデータ伝送中の任意のノードの権限を制御するために、プロキシノードがブロックチェーンネットワークに追加される。具体的には、データ要求ノードがデータにアクセスする権限を有しないことが見出されたとき、データ要求ノードがデータにアクセスし続けることを防止するために、データ要求ノードの現在の要求が変更または拒否され、それにより、ネットワークにおける情報セキュリティを確実にし得る。
【0212】
また、閾値暗号システム内のすべての参加者が復号を完了するために互いに協力する特徴に基づいて、変換鍵は複数の部分鍵に分割され、複数の部分鍵はブロックチェーンに記憶され、複数のプロキシノードによって保持される。このように、変換鍵は、十分な量の部分鍵が「データ要求手順」で取得された後のみに回復されることが可能であり、単一のノードまたは鍵参加者は、変換鍵または暗号文を取得することができず、それにより、少数のノードが不正行為により権限制御を回避し暗号文を取得することを効果的に防止する。この方法は、復号複雑性を増大させて、データ伝送および読み取りのセキュリティを改善する。
【0213】
任意選択で、プロキシノードXにより実行されるデータを読み取る擬似コードは、以下の通りである。
【0214】
Func ReadData(data, delegatee){
R = ReadLastestRight(data, delegatee) //最新の権限情報を読み取る
if(R==allow){//権限が付与されたかどうか決定する
Proxies, Threshold = ReadProxy(data) //変換鍵を保持するプロキシノードを読み取る
Foreach(p in Proxies){
Keys += requestKey(p, data, delegatee) //変換鍵のセグメントに適用する

If(Keys.size >= Threshold){//収集された鍵フラグメントの量が閾値より大きいとき
T = Shamir.RecoverKey(Keys) //鍵を回復する
Ea = ReadEncryptData(data) //元の暗号文を読み取る
Eb = R(Ea, T) //アリスの公開鍵についての第2層暗号文をボブの公開鍵についての第1層暗号文に変換する
Return Eb

Return FAIL //変換鍵の十分なセグメントが収集されない

Return UNAUTHORIZED //認可されない
【0215】
プロキシノードX、Y、およびZにより実行される鍵を読み取る擬似コードは、以下の通りである。
【0216】
Func ReadKey(data,delegatee){
R = ReadLastesRight(data, delegatee)//最新の権限情報を読み取る
if(R==allow){//権限が付与されたかどうか決定する
The EKey = ReadEncryptedKey(data, delegatee)//プロキシノードにより保持される変換鍵のセグメントを読み取る
Key = Decrypt(Ekey, self.Sk) //復号のためのプロキシノードの秘密鍵を使用する
Return Key

Return UNAUTHORIZED //認可されない
【0217】
認可取り消し手順:
上記の実施形態では、ボブの最新のアクセス権限が「不許可」であることをアリスが読み取ると、ボブの以前の認可が取り消される。具体的な処理は以下のようになる。
【0218】
アリスは、「不許可」であるボブの権限をブロックチェーンに追加する。
【0219】
この場合、ファブリックブロックチェーンに記録されたワールドステート状態が表5に示されるように表示される。
【0220】
【表5】

【0221】
プロキシノードXが、権限情報を読み取る処理において、権限情報がアクセス拒否を示すことを見出したとき、プロキシノードXは、要求ノードのアクセス要求を拒否する。
【0222】
プロキシノードXは、代替としてプライマリプロキシノード、たとえば、第1のプロキシノードであってよく、または別のプロキシノード、たとえば、プロキシノードYおよびZであってよいことは理解され得る。
【0223】
任意選択で、本出願の上記の実施形態におけるアクセス権限を制御するための方法はさらに、プロキシノードが不正行為をするのを防止し得る。具体的には、たとえば、この実施形態において、変換鍵は3つの部分に分割され、鍵共有参加者の閾値量は2である。以下の不正行為のケースがある。:
ケース1:プロキシノードXが不正をし、権限が「不許可」であるときに部分鍵を求め続ける。プロキシノードYおよびZは不正をせず、権限情報が「不許可」であることを見出した場合に要求ノードのアクセス要求を拒否する。このケースでは、プロキシノードXは変換鍵を取得することができない。
【0224】
ケース2:プロキシノードXおよびYが一緒に不正をする。変換鍵は取得されることが可能であるが、変換鍵を使用することによって変換が行われた後に結果が取得される暗号文はボブであるので、プロキシノードXおよびYはボブの秘密鍵を有せず、復号によって平文が取得されることが不可能である。
【0225】
ケース3:ボブは不正をし、変換鍵を取得することができない。
【0226】
ケース4:プロキシノードXおよびYならびにボブが一緒に不正をする。
【0227】
ボブが認可されない場合、ボブは変換鍵を取得することができない。
【0228】
ボブの認可が取り消される場合、ボブは、変換鍵を取得することができ、復号によって平文を取得することができる。しかしながら、不正行為コストは、認可中にボブが平文をバッファする方式のコストよりも高い。このケースでは、ボブが認可されているデータのみが漏洩され、他のデータは影響されない。
【0229】
図9は、本出願の実施形態によるデータアクセス権限を制御するための装置の概略構造図である。装置は、プロキシノードを含む。装置は、図5および図6に対応する権限を制御するための方法を実行するために、上記の実施形態におけるプロキシノードであってよく、またはプロキシノードに配置され、もしくは第1のプロキシノードに適用されてよい。
【0230】
図9に示されるように、ネットワークノードは、受信ユニット901、処理ユニット902、および送信ユニット903を含む。加えて、ネットワークノードは、別のユニットおよびモジュール、たとえば、記憶ユニットをさらに含み得る。
【0231】
具体的には、受信ユニット901は、要求ノードから第1の要求メッセージを受信するように構成され、第1の要求メッセージは、要求ノードの識別、およびアクセスされるべきデータの識別子を含む。
【0232】
処理ユニット902は、アクセスされるべきデータの識別子に基づいて、ブロックチェーンにおける第1の暗号化された暗号文を決定し、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定するように構成される。
【0233】
送信ユニット903は、要求ノードが第1の暗号化された暗号文を読み取る権限を有していない場合、要求ノードの第1の要求を拒否し、要求ノードが権限を有する場合、少なくとも1つの第2のプロキシノードに対して要求ノードについての権限検証要求を開始するように構成される。
【0234】
処理ユニット902は、要求ノードが権限を有する場合、少なくとも1つの第2のプロキシノードのフィードバック結果に基づいて、第1の暗号化された暗号文のプロビジョニングを決定するようにさらに構成される。
【0235】
任意選択で、この実施形態の可能な実装において、送信ユニット903は、ブロックチェーン上で、要求ノードの識別に基づいて要求ノードの認可情報を読み取るように特に構成され、認可情報は、ブロックチェーンのチェーンストレージ構造の末端に最も近く、認可情報は、許可または不許可を含む。
【0236】
任意選択で、この実施形態の別の可能な実装では、処理ユニット902は、m個の第2のプロキシノードを決定し、権限検証要求を生成するように特に構成され、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成され、mは1以上の正の整数である。
【0237】
送信ユニット903は、m個の第2のプロキシノードのそれぞれに権限検証要求を送信するように特に構成される。
【0238】
任意選択で、この実施形態のさらに別の可能な実装では、受信ユニット901は、少なくともk個の第2のプロキシノードにより送信された部分鍵を受信するようにさらに構成され、第2のプロキシノードが、要求ノードの識別に基づいて、要求ノードがデータにアクセスする権限を有することを検証した後に、部分鍵は、第2のプロキシノードによって生成され送信され、k≦mである。
【0239】
処理ユニット902は、少なくともk個の部分鍵を回復して変換鍵を生成し、変換鍵および暗号化アルゴリズムを使用することによって、第1の暗号化された暗号文を第2の暗号化された暗号文に変換するように特に構成され、第2の暗号化された暗号文は、要求ノードの公開鍵を使用して暗号化によって生成される。
【0240】
送信ユニット903は、第2の暗号化された暗号文を要求ノードに送信するようにさらに構成される。
【0241】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット902は、受信ユニットを使用することによって、k個未満の第2のプロキシノードにより送信された部分鍵を受信し、または受信ユニットを使用することによって、少なくとも1つの第2のプロキシノードによりフィードバックされた拒否メッセージを受信した場合、送信ユニットを使用することによって、アクセス拒否メッセージを要求ノードに送信するように特に構成される。
【0242】
任意選択で、この実施形態のさらに別の可能な実装では、受信ユニット901は、ブロックチェーンネットワーク上の任意のブロックチェーンノードを使用することにより転送された第1の要求メッセージを受信するように特に構成される。
【0243】
ネットワークノードは、第2のプロキシノードにさらに適用されてよく、権限検証および結果フィードバックなどの第2のプロキシノードの機能を実行するように構成される。
【0244】
具体的には、受信ユニット901は、第1のプロキシノードから権限検証要求を受信するように構成され、権限検証要求は、要求ノードの識別、および第1の暗号化された暗号文を含み、第1の暗号化された暗号文は、アクセスされるべきデータを暗号化することによって生成される。
【0245】
処理ユニット902は、要求ノードの識別に基づいて、要求ノードが第1の暗号化された暗号文を読み取る権限を有するかどうかを決定し、いいえの場合、第1のプロキシノードの第1の要求を拒否し、または、はいの場合、部分鍵を生成するように構成される。
【0246】
送信ユニット903は、部分鍵を第1のプロキシノードに送信するように構成される。
【0247】
加えて、任意選択で、プロセッサは、ブロックチェーン上の暗号化された部分鍵を取得し、暗号化された部分鍵は、第2のプロキシノードの公開鍵を使用することによって暗号化が行われた後に生成され、第2のプロキシノードの公開鍵を使用することによって、暗号化された部分鍵を復号して、部分鍵を生成するように特に構成される。
【0248】
また、ネットワークノードは、代替として、データソースまたはデータ所有者、たとえば、第1のノードであってよく、第1のノードの構造は、図9に示されたネットワークノードの構造と同じである。しかしながら、ネットワークノードにおける各ユニットは、以下の機能をさらに有する。
【0249】
具体的には、受信ユニット901は、第2のノードの識別を取得するように構成され、識別は、第2のノードの認可情報を決定するために使用され、認可情報は、許可および不許可を含む。
【0250】
処理ユニット902は、認可情報が許可である場合、ネットワークノードの秘密鍵、第2のノードの公開鍵、および暗号化アルゴリズムを使用することによって、変換鍵を生成し、ブロックチェーンネットワーク上のプロキシノードの公開鍵を使用することによって変換鍵を暗号化して、暗号化された部分鍵を生成し、第1のトランザクション情報を生成し、ブロックチェーン上に第1のトランザクション情報を記録するように構成され、
第1のトランザクション情報は、第2のノードの識別、第2のノードの認可情報、および暗号化された部分鍵を含む。
【0251】
任意選択で、この実施形態の可能な実装では、処理ユニット902は、秘密分散アルゴリズムを使用することによって変換鍵をn個の部分鍵に分割し、nは1以上の正の整数であり、ブロックチェーンネットワークからm個のプロキシノードを選択し、m個のプロキシノードの公開鍵を使用することによってn個の部分鍵を暗号化して、n個の暗号化された部分鍵を生成し、m≦nであるように特に構成される。
【0252】
第1のトランザクション情報は、m個のプロキシノードの識別と、変換鍵を回復するための部分鍵の最小量kとをさらに含む。
【0253】
任意選択で、この実施形態の別の可能な実装では、処理ユニット902は、第1のトランザクション情報をブロックチェーンネットワーク上のブロックチェーンノードに送信し、第1のトランザクション情報をブロードキャストし、ブロックチェーンノードを使用することによってネットワーク全体で第1のトランザクション情報について合意に達し、第1のトランザクション情報を記憶するように特に構成される。
【0254】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット902は、認可情報が不許可である場合、第2のノードの認可情報をキャンセルし、第2のトランザクション情報を生成し、ブロックチェーン上に第2のトランザクション情報を記録するようにさらに構成され、第2のトランザクション情報は、第2のノードの識別および第2のノードの認可情報を含む。
【0255】
任意選択で、この実施形態のさらに別の可能な実装では、処理ユニット902は、第2のノードの識別を取得する前に、第1のノードの公開鍵、およびプロキシ再暗号化アルゴリズムを使用することによって、アクセスされるべきデータを暗号化して、第1の暗号化された暗号文を生成し、ブロックチェーン上のトランザクションとして第1の暗号化された暗号文を記憶するようにさらに構成される。
【0256】
図10に示されるように、特定のハードウェア実装において、上記の実施形態のネットワークノードは、トランシーバ101、プロセッサ102、およびメモリ103を含む。ネットワークノードは、より多数または少数のコンポーネントをさらに含み、またはいくつかのコンポーネントを組み合わせてよく、または異なるコンポーネント配置を有してよい。これは、本出願で限定されない。
【0257】
トランシーバ1001は、要求メッセージおよびフィードバック情報を受信および送信し、ネットワーク内の別のノードとのデータ伝送を実行するように構成される。トランシーバモジュールは、トランシーバモジュールを含んでよく、トランシーバモジュールは、ワイヤレスローカルエリアネットワーク(WLAN)モジュール、Bluetoothモジュール、ベースバンド(base band)モジュールなどの通信モジュール、および通信モジュールに対応する無線周波数(radio frequency、RF)回路を含み得る。トランシーバモジュールは、ワイヤレスローカルエリアネットワーク、Bluetooth通信、赤外線通信での通信、ならびに/またはセルラー通信システム、たとえば、広帯域符号分割多元接続(Wideband Code Division Multiple Access、WCDMA)および/もしくは高速ダウンリンクパケットアクセス(High Speed Downlink Packet Access、HSDPA)での通信を実行するように構成される。トランシーバモジュールは、端末デバイス内のすべてのコンポーネントの間の通信を制御するように構成され、直接メモリアクセス(direct memory access)をサポートし得る。
【0258】
ネットワークノードの制御センターとして、プロセッサ1002は、様々なインターフェースおよびラインを使用することによってネットワークノード全体の様々な部分に接続され、ネットワークノードの様々な機能を実行し、ならびに/またはメモリ103に記憶されたソフトウェアプログラムおよび/もしくはモジュールを動作させまたは実行し、メモリ103に記憶されたデータを呼び出すことによって、データを処理する。
【0259】
プロセッサ102は、集積回路(Integrated Circuit、IC)によって形成されてよく、たとえば、単一のパッケージ化されたICによって形成されてよく、または同じ機能もしくは異なる機能を有する複数のパッケージ化されたICを接続することによって形成されてよい。たとえば、プロセッサは、中央処理装置(Central Processing Unit、CPU)のみを含んでよく、またはGPU、デジタル信号プロセッサ(Digital Signal Processor、DSP)、およびトランシーバ内の制御チップ(たとえばベースバンドチップ)の組み合わせであってよい。本出願の様々な実装において、CPUは、単一のコンピューティングコアであってよく、または複数のコンピューティングコアを含んでよい。
【0260】
メモリ1003は、揮発性メモリ(volatile memory)、たとえば、ランダムアクセスメモリ(Random−Access Memory、RAM)を含んでよく、または不揮発性メモリ(non−volatile memory)、たとえば、フラッシュメモリ(flash memory)、ハードディスクドライブ(Hard Disk Drive、HDD)、もしくはソリッドステートドライブ(Solid−State Drive、SSD)を含んでよく、またはメモリは、上記のタイプのメモリの組み合わせを含んでよい。メモリは、プログラムまたはコードを記憶し得る。ネットワークノードにおけるプロセッサ1002は、プログラムまたはコードを実行してネットワークノードの機能を実装する。
【0261】
この実施形態では、トランシーバ1001によって実装される機能は、図9に示された受信ユニット901および送信ユニット903によって実装されてよく、またはプロセッサ1002によって制御されるトランシーバ1001によって実装されてよい。処理ユニット902によって実装される機能は、プロセッサ1002によって実装され得る。
【0262】
加えて、本出願はコンピュータ記憶媒体をさらに提供する。コンピュータ記憶媒体はプログラムを記憶し得る。プログラムが実行されたとき、本出願で提供されるデータアクセス権限を制御するための方法およびデータ伝送方法の実施形態におけるステップの一部または全部が実行され得る。記憶媒体は、磁気ディスク、光ディスク、読み取り専用メモリ ROM、またはランダムアクセスメモリRAMなどであり得る。
【0263】
上記の実施形態の全部または一部は、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせを使用することによって実装され得る。ソフトウェアが実施形態を実装するために使用されるとき、実施形態は完全にまたは部分的にコンピュータプログラム製品の形態で実装され得る。
【0264】
コンピュータプログラム製品は、1つまたは複数のコンピュータ命令、たとえば、検証命令を含む。コンピュータ命令がコンピュータ上でロードされ実行されたとき、本出願の実施形態で説明されたプロセスまたは機能が全体的または部分的に生成される。コンピュータは、汎用コンピュータ、専用コンピュータ、コンピュータネットワーク、または他のプログラマブル装置であり得る。
【0265】
コンピュータ命令は、コンピュータ可読記憶媒体に記憶されてよく、またはコンピュータ可読記憶媒体から別のコンピュータ可読記憶媒体へ伝送されてよい。たとえば、コンピュータ命令は、有線またはワイヤレス様式で、ウェブサイト、コンピュータ、サーバ、またはデータセンターから別のウェブサイト、コンピュータ、サーバ、またはデータセンターに伝送され得る。
【0266】
コンピュータ可読記憶媒体は、コンピュータによってアクセス可能な任意の使用可能な媒体、または1つもしくは複数の使用可能な媒体を統合するサーバやデータセンターなどのストレージデバイスであり得る。使用可能な媒体は、磁気媒体、たとえば、フロッピーディスク、ハードディスク、磁気テープ、光学媒体(たとえばDVD)、またはソリッドステートドライブSSDなどの半導体媒体であり得る。
【0267】
さらに、本出願の実施形態におけるネットワークノードは基地局またはアクセスポイントであり得ることに留意されたい。たとえば、基地局は、GSMまたはCDMAにおけるトランシーバ基地局(BTS、Base Transceiver Station)であってよく、WCDMAにおけるノードB(NodeB)であってよく、またはLTEにおける進化型ノードB(eNBもしくはe−NodeB、evolved Node B)であってよい。これは、本出願で限定されない。
【0268】
また、ネットワークノードはさらに、クライアントまたは端末デバイスであり得る。端末デバイスは、ユーザに音声および/もしくはデータ接続性を提供するデバイス、ワイヤレス接続機能を有するハンドヘルドデバイス、またはワイヤレスモデムに接続される別の処理デバイスであってよい。
【0269】
ワイヤレス端末は、無線アクセスネットワークRANを介して1つまたは複数のノードと通信し得る。ワイヤレス端末は、(「セルラー」電話とも呼ばれる)携帯電話などのモバイル端末、またはモバイル端末を有するコンピュータ、たとえば、ポータブル、ポケットサイズ、ハンドヘルド、コンピュータ内蔵、または車両搭載モバイル装置であってよく、それらは、無線アクセスネットワークと音声および/またはデータを交換する。たとえば、ワイヤレス端末は、パーソナル通信サービス(Personal Communication Service、PCS)電話、コードレス電話機、セッション開始プロトコル(SIP)電話、ワイヤレスローカルループ(Wireless Local Loop、WLL)局、または携帯情報端末(Personal Digital Assistant、PDA)などのデバイスであってよい。ワイヤレス端末は、システム、加入者ユニット(Subscriber Unit)、加入者局(Subscriber Station)、移動局(Mobile Station)、モバイル端末(Mobile)、リモート局(Remote Station)、アクセスポイント(Access Point、AP)、リモート端末(Remote Terminal)、アクセス端末(Access Terminal)、ユーザ端末(User Terminal)、ユーザエージェント(User Agent)、ユーザデバイス(User Device)、またはユーザ機器(User Equipment)と呼ばれることもある。
【0270】
本出願の明細書、特許請求の範囲、および添付図面において、用語「第1」、「第2」など(もしあれば)は、同様の対象を区別することが意図されているが、必ずしも特定の順序または配列を示すものではない。そのように称されるデータは、適切な環境で交換可能であり、したがって、本明細書に記載された実施形態は、本明細書に示され説明された順序以外の順序で実装されることが可能であることを理解されたい。さらに、用語「含む」、「含有する」、または他の変形は、非排他的な包含を含むことを意図しており、たとえば、ステップまたはユニットのリストを含む処理、方法、システム、製品、デバイスは、それらのユニットに必ずしも限定されず、そのような処理、方法、システム、製品またはデバイスに明示的に列挙されないまたは固有でない他のユニットを含み得る。
【0271】
本発明の実施形態における技術は必要な一般的なハードウェアプラットフォームに加えてソフトウェアよって実装され得ることを、当業者は明確に理解し得る。そのような理解に基づいて、先行技術に本質的または部分的に貢献する本発明の実施形態における技術的解決策は、ソフトウェア製品の形態で実装され得る。コンピュータソフトウェア製品は、ROM/RAM、磁気ディスク、または光ディスクなどの記憶媒体に記憶されてよく、本発明の実施形態または実施形態のいくつかの部分で説明された方法を実行するように、コンピュータデバイス(パーソナルコンピュータ、サーバ、もしくはネットワークデバイスなどであり得る)に命令するためのいくつかの命令を含む。
【0272】
本明細書における実施形態の同じおよび類似する部分については、実施形態を参照されたい。特に、ネットワークノードまたは装置デバイスは、基本的に方法実施形態と同様であり、したがって簡潔に説明されている。関係付けられた部分については、方法実施形態の説明を参照されたい。
【0273】
本出願の上記の実装は、本出願の保護範囲に対する限定を構成しない。
【国際調査報告】