(58)【調査した分野】(Int.Cl.,DB名)
前記第1の暗号化ノードが、前記メタデータツリーの第2の暗号化ノードの下にあり、前記第1のノード鍵ロックボックスが、前記第2の暗号化ノードに対応する第2のノード鍵ロックボックスからの第2のノード鍵でもってロック解除することができる、請求項1に記載の方法。
前記第1の暗号化ノードが、前記メタデータツリーにおいて第2の暗号化ノードの下にあり、前記第1の記録鍵ロックボックスが、前記第2の暗号化ノードに対応する第2の記録鍵ロックボックスに格納された第2の記録鍵でもってロック解除することができる、請求項3に記載の方法。
前記メタデータツリーのサブツリーが、前記第1の暗号化ノード、及び前記患者の患者鍵から生成されたサブツリーノード鍵でもって暗号化された暗号化サブツリーノードを含む、請求項1〜5の何れかに記載の方法。
前記第1の暗号化ノードを含む前記メタデータツリーのサブツリーを管理する第2の処理システムから前記第1のノード鍵および前記第1の記録鍵を受け取ることを更に含む、請求項1〜5の何れかに記載の方法。
前記メタデータツリーのサブツリーが、前記第1の暗号化ノード、及び前記患者の患者鍵から生成されたサブツリーノード鍵でもって暗号化された暗号化サブツリーノードを含む、請求項9〜12の何れかに記載の処理システム。
前記第1のノード鍵は、前記第1のノード鍵が取り消される前に格納された第1の暗号化ノードの下にあるノードの第1のセットにアクセスするために使用可能であるが、前記第1のノード鍵が取り消された後に格納された前記第1のノードの下にある暗号化ノードの第2のセットにアクセスするために使用可能ではなく、前記第2のノード鍵が、前記ノードの第2のセットにアクセスするために使用可能である、請求項14に記載の機械可読記憶媒体。
【図面の簡単な説明】
【0003】
【
図1】メタデータツリーにおける階層ロックボックスを有する電子医療記録の記憶処理環境の一例を示すブロック図である。
【
図2】階層ロックボックス及び暗号化データ記憶装置を有するメタデータツリーの一例を示すブロック図である。
【
図3】メタデータツリーのノードの一例を示すブロック図である。
【
図4】参加者システムの一例を示すブロック図である。
【
図5】階層ロックボックスを有するメタデータツリーを用いて暗号化記録を格納する一例を示す略図である。
【
図6】階層ロックボックスを有するメタデータツリーを用いて暗号化記録にアクセスする一例を示す略図である。
【
図7】階層ロックボックスを有するメタデータツリーを用いて鍵取り消しを行う一例を示す略図である。
【
図8】階層ロックボックスを有するメタデータツリーを用いて鍵取り消しの一例を示すブロック図である。
【
図9】階層ロックボックスを有するメタデータツリーを用いて鍵取り消し及び鍵伝達の一例を示すブロック図である。
【0004】
詳細な説明
以下の詳細な説明において、その一部を形成する添付図面を参照し、添付図面は、開示された内容が実施され得る特定の実施形態を一例として示す。理解されるべきは、他の実施形態が利用されることができ、構造的または論理的変更が本開示の範囲を逸脱せずに行われ得る。従って、以下の詳細な説明は、制限する意味に解釈されるべきではなく、本開示の範囲は、添付の特許請求の範囲により定義される。
【0005】
本明細書で説明される実施形態は、医療参加者(例えば、患者、医療提供者、支払者、及び研究者)間で電子医療記録(Electronic health Record:EHR)の安全でシームレスな共用を可能にする電子医療記録(EHR)記憶処理環境を提供する。当該環境は、患者の暗号化EHRを格納する暗号化データ記憶装置、及び各患者のメタデータツリーを格納するメタデータ記憶装置を含む。各メタデータツリーは、暗号化データ記憶装置における所与の患者のEHRに対するマッピングを提供する。各患者のメタデータツリーは、医療参加者が患者のEHRにアクセスすること及びEHRを格納(記憶)することを可能にするために、医療提供者のような認定された医療参加者によりアクセスされ得る。
【0006】
当該環境は、暗号化EHRの記録鍵、及びメタデータツリーのノードのノード鍵を用いてEHRに対するアクセスを制御する。暗号化EHRを暗号化データ記憶装置に格納する医療参加者は、記録鍵を用いてEHRを暗号化する。また、これら参加者は、対応する暗号化EHRの暗号化ノードをメタデータツリーに追加する。暗号化ノードは、対応する暗号化EHRに対する参照を含み、対応するノード鍵でもって暗号化される。
【0007】
また、各メタデータツリーは、ノード鍵および記録鍵を格納するための別個の階層ロックボックス機構も含む。特に、メタデータツリーの各ノードは、ノード鍵の対応するセットを格納するためのノード鍵ロックボックス(即ち、第1の階層ロックボックス機構)、及び対応する記録鍵を格納するための記録鍵ロックボックスを含む。各ノード鍵は、対応するノードを暗号化および暗号解読するために、及び対応するノードの下で各ノードにおけるノード鍵ロックボックスをロックする及びロック解除するために、取り消される前に利用可能である。各記録鍵は、対応するノードの下で各ノードにおける記録鍵ロックボックスをロックする及びロック解除する(即ち、第2の階層ロックボックス機構)ために、又は対応するEHRを暗号化および暗号解読するために利用可能である。別個の階層ロックボックス機構により、アクセス権が、メタデータツリーのノード及び暗号化EHRに関して別個に生成されることが可能になる。
【0008】
一人または複数の医療参加者は、患者のメタデータツリーの様々なサブツリーを操作(管理)することができる。サブツリーを操作する医療参加者は、サブツリーにおける最上位のノードに関するノード鍵および記録鍵を維持し、この場合、ノード鍵および記録鍵は、患者の患者鍵から導出される。各サブツリーのノード鍵および記録鍵が患者鍵から導出されるので、患者は、患者のEHRの全てに対するアクセスを取得するために、各サブツリーの全レベルにおいてノードロックボックス及び記録ロックボックスをロック解除することができる。
【0009】
サブツリーを管理するために、参加者は、患者の他の認定された医療参加者に対してアクセスを許可する及び取り消すために、サブツリーにおける対応するノードのノード鍵および記録鍵を管理する。参加者は、選択されたノード鍵および記録鍵を別の参加者に提供することにより、アクセスを許可する。サブツリーの所与のノードにおけるノード鍵および記録鍵が所与のノード下の全ノードにおいて対応するロックボックスをロック解除するために使用され得るので、参加者は、共用するために何れかのノード鍵および記録鍵を選択することによってアクセスのレベルを制御する。
【0010】
参加者は、サブツリーにおける取り消されたノードにおいて、ノード鍵ロックボックスのノード鍵を回転させることによってアクセスを取り消す。鍵取り消し後、アクセスが取り消された参加者は、取り消し前の、取り消されるノードの下に格納された暗号化ノードに対応するノード鍵ロックボックスを引き続きロック解除することができる。従って、取り消された参加者は、取り消し前に格納された暗号化EHRに引き続きアクセスすることができる。しかしながら、取り消された参加者は、取り消し後の取り消されたノードの下に格納された暗号化ノードに対応するノード鍵ロックボックスをロック解除することができない。特に、取り消された参加者は、対応する暗号化EHR(即ち、取り消し後に格納された暗号化EHR)に対する参照を暗号解読するために必要とされるこれらノードのノード鍵をロック解除することができない。また、取り消された参加者は、取り消されたノードの下に新たな暗号化ノードを追加することもできない。
【0011】
本明細書で使用される限り、用語「医療参観者」(「参加者」とも呼ばれる)は、患者、医療提供者、支払者、研究者、又は患者に対応する医療情報を生成および/または使用する患者の医療プロセスに必要とされる他の適切な人物を意味する。用語「患者」は、医療提供者から少なくとも1つの医療サービスを受ける人物を意味する。用語「医療提供者」(「提供者」とも呼ばれる)は、患者に対して少なくとも1つの医療サービスを提供する人物および/または施設を意味する。
【0012】
用語「電子医療記録」(EHR)は、医療参加者により生成され、少なくとも1つの機械可読記憶媒体に電子形式で格納される医療情報のセットを意味する。用語「暗号化電子医療記録」は、記録鍵のような暗号鍵で暗号化された電子医療記録を意味する。
【0013】
用語「メタデータ」は、電子医療記録のような少なくとも1つの記録を記述する情報のセットを意味する。用語「メタデータツリー」は、メタデータを含むノードのセットを意味し、この場合、各ノードは、当該セットの少なくとも1つの他のノードと所定の関係を有する。
【0014】
用語「記録鍵」は、患者のEHRを暗号化および暗号解読するために使用される暗号鍵を意味する。用語「ノード鍵」は、患者のメタデータツリーにおけるノードの少なくとも一部を暗号化および暗号解読するために使用される暗号鍵を意味する。用語「メタデータツリー鍵」は、患者のメタデータツリーの少なくとも一部を暗号化および暗号解読するために使用される暗号鍵を意味する。
【0015】
用語「記録鍵ロックボックス」は、メタデータツリーのノードに対応する記録鍵を格納するデータ構造を意味し、メタデータツリーのノードの親ノードからの対応する記録鍵でのみロック及びロック解除され得る。用語「ノード鍵ロックボックス」は、メタデータツリーのノードに対応する1つ又は複数のノード鍵のセットを格納するデータ構造を意味し、メタデータツリーのノードの親ノードからの対応する1つ又は複数のノード鍵のセットでのみロック及びロック解除され得る。
【0016】
図1は、各メタデータツリー50の階層ロックボックス62及び64を有する電子診療記録の記憶処理環境10の一例を示すブロック図である。環境10は、電子診療記録(EHR)記憶装置20、及び医療参加者システム30(1)〜30(m)のセットを含み、この場合、mは、2以上の整数である。環境10は、EHR記憶装置20及び参加者システム30を用いて、患者のEHRを作成、当該EHRにアクセス、当該EHRを記憶(格納)、操作(管理)及び共用するための能力を提供する。
【0017】
EHR記憶装置20は、データアクセスフロント22、暗号化データ記憶装置24、及びメタデータ記憶装置26を含む。データアクセスフロント22は、参加者システム30により暗号化データ記憶装置24及びメタデータ記憶装置26に対するアクセスを管理するために参加者システム30と通信する。
【0018】
暗号化データ記憶装置24は、参加者システム30により生成および提供された患者の暗号化EHRを格納する。暗号化EHRは、対応する記録鍵を用いて参加者システム30により暗号化および暗号解読される。暗号化データ記憶装置24は、暗号化EHRを格納するための任意の適切なタイプ、数、及び/又は構成の機械可読記憶媒体を含む。EHRが暗号化され且つ暗号化データ記憶装置24がEHRの暗号鍵(即ち、記録鍵)を格納しないので、暗号化データ記憶装置24は、信頼されたデータ記憶装置となることができるか又はなることができない(例えば、暗号化データ記憶装置24は、1つ又は複数の信頼されない第三者により所有または操作され得る)。
【0019】
メタデータ記憶装置26は、各患者のメタデータツリー50を格納し、この場合、各メタデータツリー50は、対応するノード鍵ロックボックス62及び記録鍵ロックボックス64を有するノード51のセットを含む。ノード51は、階層ツリー構造に構成され、
図2の例に示されるように、各対応する暗号化EHR80の、患者根ノード52、任意の適切な数のサブツリーノード54、任意の適切な数および適切なレベル数の中間ノード56、及び葉ノード58を含む。
【0020】
患者根ノード52は、患者を識別する情報を含む。サブツリーノード54は、各サブツリー54の下にあるノード56及び58の集合により形成された対応するサブツリーを管理(操作)する対応する医療参加者を識別する。中間ノード56は、EHRの論理的グループを表し(例えば、治療の病気のような患者情報のカテゴリにより)、当該グループを記述する情報を含む。各葉ノード58は、対応する暗号化EHR80を記述するメタデータを格納し、この場合、メタデータは、
図2において参照60を表す破線の矢印により示されるように、暗号化データ記憶装置24の暗号化EHR80に対する参照60を含む。参照60は、暗号化データ記憶装置24の暗号化EHR80にアクセスするために使用され得る。
【0021】
図3は、メタデータツリーノード51の一例を示すブロック図である。メタデータツリーノード51は、ノード識別子91、親識別子92、参加者識別子93、名称94、バージョン95、タイプ96、及び参照60を含む。ノード識別子91は、ノード51の全体的な一意の識別子であり、親識別子92は、ノード51の親ノードのノード識別子91である。参加者識別子93は、ノード51を作成した医療参加者を識別する情報である。名称94は、ノード51を作成した医療参加者により与えられる名称(名前)である。バージョン95は、ノード51のバージョン数である。タイプ96は、ノード51のタイプである。参照60は、暗号化データ記憶装置24の暗号化EHR80の記憶場所を識別する。
【0022】
図2に戻って参照すると、各ノード51は、対応するノード鍵を用いて参加者システム30により暗号化され、当該ノード鍵および任意の取り消されたノード鍵(後述される)が、ノード51に対応するノード鍵ロックボックス62に格納される。ノード51に対応する記録鍵ロックボックス64は、暗号化データ記憶装置24の対応するEHR80の記録鍵を格納する。暗号化データ記憶装置24から暗号化EHR80にアクセスするために、参加者システム30は、暗号化データ記憶装置24の暗号化EHR80の場所を見つけるための参照60、及び暗号化EHR80を暗号解読するための記録鍵を必要とする。
【0023】
各メタデータツリー50のノード鍵ロックボックス62及び記録鍵ロックボックス64の集合は、ノード鍵および記録鍵をそれぞれ格納するための別個の階層ロックボックス機構を形成する。別個の階層ロックボックス機構により、アクセス権が、メタデータツリーノード51及び暗号化EHR80に対して別個に付与されることが可能になる。
【0024】
各ノード鍵ロックボックス62は、対応するノード51のノード鍵のセット(即ち、現在のノード鍵および任意の取り消されたノード鍵)を格納する。各ノード鍵は、対応するノード51を暗号化および暗号解読するために使用可能であり、取り消される前に、対応するノード51の下にある各ノード51における各ノード鍵ロックボックス62をロックおよびロック解除するために使用可能である。例えば、中間ノード56のノード鍵ロックボックス62からのノード鍵は、当該中間ノード56の直下にある各葉ノード58の各ノード鍵ロックボックス62、並びに当該中間ノード56の直下にある他の中間ノード56のあらゆる他のノード鍵ロックボックス62(
図2には示されない)をロック及びロック解除するために使用され得る。
【0025】
各記録鍵ロックボックス64は、対応するノード51の記録鍵を格納する。各記録鍵は、暗号化ノードの下にある各暗号化ノードにおける記録鍵ロックボックスをロック及びロック解除するために、又は対応する暗号化EHR80を暗号化および暗号解読するために使用可能である。例えば、中間ノード56の記録鍵ロックボックス64からの記録鍵は、当該中間ノード56の直下にある各葉ノード58の各記録鍵ロックボックス64、並びに当該中間ノード56の直下にある他の中間ノード56のあらゆる他の記録鍵ロックボックス64(
図2には示されない)をロック及びロック解除するために使用され得る。各葉ノード58からの記録鍵は、対応する暗号化EHR80を暗号化および暗号解読するために使用され得る。
【0026】
メタデータツリー50により、仲間入りを許されていない医療参加者(例えば、異なる関係の無い企業体で業務を行う提供者)が、患者の様々な暗号化EHR80を暗号化データ記憶装置24に格納し、他の医療参加者とこれら暗号化EHR80を共用することが可能になる。暗号化EHR80はそれぞれ、1つの暗号化EHR80の記録鍵が任意の他の暗号化EHR80を暗号解読するために使用されることができないように、異なる記録鍵で暗号化される。医療参加者は、アクセスする必要がある暗号化EHR80がどれかを特定するためにメタデータツリー50を使用することができ、必要な暗号化EHR80を生成した他の医療参加者または患者からのアクセス(即ち、ノード鍵および記録鍵)を要求することができる。
【0027】
患者、医療提供者、支払者、研究者、及び患者の医療プロセスに必要とされる他の適切な人物を含む、参加者(図示せず)は、患者のEHR80を作成、当該EHR80にアクセス、当該EHR80を記憶(格納)、管理(操作)、及び共用するために、対応するデータアクセスアダプター32を用いてEHR記憶装置20と通信するために、対応する参加者システム30と相互作用する。各データアクセスアダプター32は、暗号化データ記憶装置24及びメタデータ記憶装置26にアクセスするために、EHR記憶装置20のデータアクセスフロント22と通信する。
【0028】
1つ又は複数の医療参加者は、メタデータツリー50の各サブツリーノード54から生じる様々なサブツリーを管理することができる。サブツリーを管理する医療参加者は、サブツリーノード及びサブツリーノード54(即ち、サブツリーの最上位のノード)のサブツリー記録鍵を維持し、サブツリーノード及びサブツリー記録鍵は、患者の患者鍵から導出される(例えば、患者が医療参加者に登録された際に、医療参加者に提供される)。
図2の例において、サブツリーノード及びサブツリーノード54のサブツリー記録鍵は、医療参加者システム30にのみ格納される(即ち、サブツリーノード54に対応するロックボックス62及び64ではない)。図示されない他の例において、サブツリーノード及びサブツリーノード54のサブツリー記録鍵は、医療参加者システム30に格納されることに加えて、メタデータツリー50のサブツリーノード54に対応するロックボックス62及び64に格納され得る。
【0029】
参加者は、参加者システム30を用いてメタデータツリー50のサブツリーを管理(操作)する。そうするために、参加者システム30は、他の参加者システム30を用いて患者の他の認定された医療参加者に対するアクセスを許可および取り消すために、サブツリーの対応するノード54、56及び58のノード鍵および記録鍵を管理する。参加者システム30は、選択されたノード鍵および記録鍵を別の参加者システム30に提供することにより、アクセスを許可する。サブツリーの所与のノード54、56又は58におけるノード鍵および記録鍵が、所与のノード54、56又は58の下にある全ノード56及び/又は58における対応するロックボックスをロック解除するために使用され得るので、参加者システム30は、どのノード鍵および記録鍵を他の参加者システム30と共用するかを選択することにより、アクセスのレベルを制御する。
【0030】
環境10において、EHR記憶装置20及び参加者システム30は、任意の適切なタイプ、数、及び構成の処理システムで実現されることができ、当該処理システムはそれぞれ、1つ又は複数のメモリ(即ち、コンピュータ可読媒体)に格納された命令を実行するための1つ又は複数のプロセッサを含む。特に、幾つかの実施形態において、データアクセスフロント22、暗号化データ記憶装置24、及びメタデータ記憶装置26は、異なる処理システムを用いて実現され得る。参加者システム30の例が
図4に示され、以下で更に詳述される。更に、任意の適切なタイプ、数、及び構成の有線および/または無線ネットワークデバイス(図示せず)を用いて、処理システムが通信することを可能にすることができる。
【0031】
図4は、参加者システム30の一例を示すブロック図である。参加者システム30は、メモリシステム104に格納された命令のセットを実行するように構成された1つ又は複数のプロセッサ102のセット、メモリシステム104、及び少なくとも1つの通信デバイス106を含む。プロセッサ102、メモリシステム104、及び通信デバイス106は、任意の適切なタイプ、数、及び/又は構成のコントローラ、バス、インターフェース、及び/又は他の有線または無線接続を含む相互接続108のセットを用いて通信する。
【0032】
参加者システム30は、サーバコンピュータ、ラップトップコンピュータ、タブレット型コンピュータ、デスクトップコンピュータ、処理能力を有する携帯電話(即ち、スマートフォン)、又は処理能力を有する別の適切なタイプの電子デバイスのような、任意の適切な処理デバイス又は処理デバイスの一部を表す。各プロセッサ102は、メモリシステム104に格納された命令にアクセスして命令を実行する、及びデータにアクセスしてデータをメモリシステム104に格納するように構成される。メモリシステム104は、命令およびデータを格納するように構成された、任意の適切なタイプ、数、及び構成の揮発性または不揮発性機械可読記憶媒体を含む。メモリシステム104の機械可読記憶媒体の例には、ハードディスクドライブ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリドライブ及びカード、及び他の適切なタイプの磁気ディスク及び/又は光ディスクが含まれる。機械可読記憶媒体は、品物または製品の一部であると考えられる。品物または製品は、1つ又は複数の製造されたコンポーネントを意味する。通信デバイス106は、参加者システム30が1つ又は複数の有線または無線ネットワークを介して通信することを可能にするように構成された、任意の適切なタイプ、数、及び/又は構成の通信デバイスを含む。
【0033】
データアクセスアダプター32は、プロセッサ102により実行された場合に、プロセッサ102にデータアクセスアダプター32の機能を実行させる命令を含み、当該アダプター32の機能はここで、
図5、
図6及び
図7に関連して説明される。
図5は、階層ロックボックス62及び64を有するメタデータツリー50を用いて暗号化記録80を格納する一例を示す略図である。
図6は、階層ロックボックス62及び64を有するメタデータツリー50を用いて、暗号化記録80にアクセスする一例を示す略図である。
図7は、階層ロックボックスを有するメタデータツリーを用いて、鍵取り消しを行う一例を示す略図である。
【0034】
図4及び
図5を参照すると、データアクセスアダプター32は、矢印141により示されるように、データアクセスフロント22を介してメタデータ記憶装置26から患者のメタデータツリー50にアクセスする。メタデータ記憶装置26は、矢印142により示されるように、データアクセスフロント22を介して提供者システム30にメタデータツリー50を提供する。データアクセスアダプター32は、矢印143により示されるように、新たな又は更新されたEHR120に対応する葉ノード58のメタデータツリー50における場所を特定する。当該場所に基づいて、データアクセスアダプター32は、メタデータツリー50の場所の上にあるサブツリーの別のノード鍵を用いてノード鍵112を生成する、又はサブツリーを管理する別の参加者システム30からノード鍵112を受け取る。また、データアクセスアダプター32は、メタデータツリー50の場所の上にあるサブツリーの別の記録鍵を用いて記録鍵114を生成する、又はサブツリーを管理する別の参加者システム30から記録鍵114を受け取る。
【0035】
データアクセスアダプター32は、矢印144により示されるように、暗号化EHR80を生成するために、記録鍵114を用いてEHR120を暗号化する。データアクセスアダプター32は、矢印145により示されるように、データアクセスフロント22を介して暗号化EHR80を暗号化データ記憶装置24に提供する。暗号化データ記憶装置24は、矢印146により示されるように、データアクセスフロント22を介してデータアクセスアダプター32にステータスを提供する。暗号化EHR80の格納が成功しなかったことを当該ステータスが示す場合、データアクセスアダプター32は、当該格納を再試行することができる。
【0036】
ひとたび当該格納が成功した場合、データアクセスアダプター32は、矢印147により示されるように、葉ノード58を生成して、ノード鍵112を用いて葉ノード58を暗号化する。データアクセスアダプター32は、暗号化データ記憶装置24に成功して格納された暗号化EHR80に対する参照60を含むように葉ノード58を生成し、葉ノード58の暗号化の一部として参照60を暗号化する。データアクセスアダプター32は、矢印148により示されるように、葉ノード58、ノード鍵を有するノード鍵ロックボックス62、及び記録鍵を有する記録鍵ロックボックス64を含むようにメタデータツリー50を更新する。データアクセスアダプター32は、葉ノード58の親ノード56からのノード鍵を用いてノート鍵ロックボックス62をロックし、葉ノード58の親ノード56からの記録鍵を用いて記録鍵ロックボックス64をロックする。データアクセスアダプター32は、矢印149により示されるように、データアクセスフロント22を介して、更新されたメタデータツリー50をメタデータ記憶装置26に提供する。メタデータ記憶装置26は、矢印150により示されるように、データアクセスフロント22を介して、ステータスをデータアクセスアダプター32に提供する。更新されたメタデータツリー50の格納が成功しなかったことを当該ステータスが示す場合、データアクセスアダプター32は、それが成功するまで当該更新を再試行することができる。
【0037】
データアクセスアダプター32は、暗号化データ記憶装置24に格納されるEHR毎に、
図5に示されたプロセスを繰り返す。
【0038】
ひとたび暗号化EHR80が暗号化データ記憶装置24に格納されると、対応するノード及び記録鍵を生成または取得する参加者は、
図6に示されるように、暗号化データ記憶装置24から暗号化EHR80にアクセスすることができる。
図4及び
図6を参照すると、データアクセスアダプター32は、矢印151により示されるように、データアクセスフロント22を介して、メタデータ記憶装置26から患者のメタデータツリー50にアクセスする。メタデータ記憶装置26は、矢印152により示されるように、データアクセスフロント22を介してメタデータツリー50を提供者システム30に提供する。データアクセスアダプター32は、矢印153により示されるように、暗号化EHR80に対応するメタデータツリー50において葉ノード58を特定する。
【0039】
データアクセスアダプター32は、矢印154により示されるように、葉ノード58に対応するノード鍵ロックボックス62及び記録鍵ロックボックス64からノード鍵112及び記録鍵114にアクセスする。データアクセスアダプター32が葉ノード58を含むサブツリーを管理(操作)する場合、データアクセスアダプター32は、葉ノード58のノード鍵112がアクセスされるまで、各逐次のノード鍵ロックボックス62をロック解除することにより、任意の中間ノード56及び葉ノード58から逐次にノード鍵にアクセスするためにサブツリーノード鍵を使用する。データアクセスアダプター32が葉ノード58を含むサブツリーを管理(操作)しない場合、データアクセスアダプター32は、ノード鍵112、又はサブツリーを管理する別の参加者システム30からサブツリーの中間ノード56からのノード鍵を受け取る。必要に応じて、データアクセスアダプター32は、葉ノード58のノード鍵112がアクセスされるまで、各逐次のノード鍵ロックボックス62をロック解除することにより、任意の中間ノード56及び葉ノード58から逐次にノード鍵にアクセスするために、受け取ったノード鍵を使用する。
【0040】
同様に、データアクセスアダプター32が葉ノード58を含むサブツリーを管理(操作)する場合、データアクセスアダプター32は、葉ノード58の記録鍵114がアクセスされるまで、各逐次の記録鍵ロックボックス64をロック解除することにより、任意の中間ノード56及び葉ノード58から逐次に記録鍵にアクセスするためにサブツリー記録鍵を使用する。データアクセスアダプター32が葉ノード58を含むサブツリーを管理(操作)しない場合、データアクセスアダプター32は、記録鍵114、又はサブツリーを管理する別の参加者システム30からサブツリーの中間ノード56からの記録鍵を受け取る。必要に応じて、データアクセスアダプター32は、葉ノード58の記録鍵114がアクセスされるまで、各逐次の記録鍵ロックボックス64をロック解除することにより、任意の中間ノード56及び葉ノード58から逐次に記録鍵にアクセスするために、受け取った記録鍵を使用する。
【0041】
ノード鍵112にアクセス後、データアクセスアダプター32は、矢印155により示されるように、所望の暗号化EHR80に対する参照60を取得するために、ノード鍵112でもって葉ノード58を暗号解読する。データアクセスアダプター32は、矢印156により示されるように、データアクセスフロント22を介して、暗号化データ記憶装置24から暗号化EHR80にアクセスする。暗号化データ記憶装置24は、矢印157により示されるように、データアクセスフロント22を介して、所望の暗号化EHR80を提供する。データアクセスアダプター32は、矢印158により示されるように、記録鍵114を用いて、暗号化EHR80を暗号解読されたEHR120へ暗号解読する。データアクセスアダプター32は、矢印159により示されるように、暗号解読されたEHR120を参加者に出力する(例えば、暗号解読されたEHR120を表示することにより)。
【0042】
データアクセスアダプター32は、暗号化データ記憶装置24からアクセスされた暗号化EHR毎に、
図6に示されたプロセスを繰り返す。
【0043】
上記の例において、各サブツリーのノード鍵および記録鍵が患者の患者鍵から導出されるので、患者は、サブツリーノード及び各サブツリーノード54の記録鍵を生成することができ、患者の全てのEHRにアクセスできるために各サブツリーの全レベルにおけるノード鍵ロックボックス62及び記録鍵ロックボックス64をロック解除するためにサブツリーノード鍵および記録鍵を使用することができる。
【0044】
患者を含む参加者は、
図7の方法を用いた取り消しの後に格納されたEHRに対して、別の参加者のアクセスを取り消すことができる。
図4及び
図7を参照すると、データアクセスアダプター32は、矢印161により示されるように、データアクセスフロント22を介して、メタデータ記憶装置26から患者のメタデータツリー50にアクセスする。メタデータ記憶装置26は、矢印162により示されるように、データアクセスフロント22を介して、メタデータツリー50を提供者システム30に提供する。データアクセスアダプター32は、矢印163により示されるように、鍵取り消しのためのノード56をメタデータツリー50において特定する。データアクセスアダプター32は、矢印164により示されるように、ノード56に新たなノード鍵を格納する別のノード鍵ロックボックス62を追加することにより、ノード56のノード鍵を取り消す。データアクセスアダプター32は、ノード鍵が取り消された場合に新たなノード鍵を選択するために、ノード鍵を前へ回転させる所定の鍵回転アルゴリズムを用いて新たなノード鍵を生成する。
【0045】
図8に示された鍵回転の例において、データアクセスアダプター32は、鍵取り消しのためのノード56(1)を特定する。データアクセスアダプター32は、時間t
Rにおけるノード56(1)のノード鍵ロックボックス62(0)に格納されたノード鍵を、新たなノード鍵を格納する別のノード鍵ロックボックス62(1)をノード56(1)に追加することによって取り消す。取り消し後、取り消されたノード鍵は、取り消し前に格納されたノード鍵ロックボックス62をロック解除するための能力を保持する。従って、ノード鍵ロックボックス62(0)の取り消されたノード鍵は、矢印172により示されるように、時間t
Rより前に格納された葉ノード58(1)及び58(2)のノード鍵ロックボックス62(0)(1)及び62(0)(2)をそれぞれロック解除するために使用され得る。
【0046】
ノード56の下に追加されたノード鍵ロックボックス62は、ノード56のごく最近に追加されたノード鍵を用いてロックされる。矢印174により示されるように、ノード56(1)の鍵取り消し後に格納されたノード58(3)に関して、ノード鍵ロックボックス62(1)(1)は、ノード56(1)のノード鍵ロックボックス62(1)に格納されたノード鍵、即ち、鍵取り消しにより追加されたノード鍵を用いてロックされる。ノード鍵ロックボックス62(0)の取り消されたノード鍵は、取り消し後に格納されたノード鍵ロックボックス62(1)(1)又は他のノード鍵ロックボックス62をロック解除するために使用できない。従って、取り消されたノード鍵は、ノード58(3)の参照60が暗号解読されることを可能にするためにノード鍵ロックボックス62(1)(1)に格納されたノード鍵へのアクセスを提供しない。
【0047】
ノード56の鍵取り消しの一部として追加されたノード鍵は、鍵取り消し後にノード56の下に追加された全てのノード鍵ロックボックス62をロック解除するために使用可能である。従って、ノード鍵ロックボックス62(1)からのノード鍵は、ノード58(3)の参照60が暗号解読されるのを可能にするノード鍵にアクセスするためにノード58(3)のノード鍵ロックボックス62(1)(1)をロック解除するために使用可能である。鍵取り消し前にノード56の下に追加されたノード鍵ロックボックス62に関して、新たなノード鍵は、取り消されたノード鍵を取得するために逆回転される。従って、ノード鍵ロックボックス62(1)からのノード鍵は、ノード58(1)及び58(2)のノード鍵ロックボックス62(0)(1)及び62(0)(2)をロック解除する取り消されたノード鍵(ノード鍵ロックボックス62(0)にも格納されている)を取得するために逆回転される。
【0048】
鍵取り消しが生じた、取り消されたノード(以降、取り消しノード)56の上にある全ノード54及び56からのノード鍵は、取り消しノード56にある及びその下にある全ノード鍵ロックボックス62をロック解除するために使用可能な状態のままである。従って、鍵取り消しは、取り消しノード56の上にあるノード鍵に対するアクセスに影響を与えない。
【0049】
図7に戻って参照すると、取り消しノード56は、メタデータツリー50において取り消しノード56の下に任意の中間ノード56を有し、データアクセスアダプター32は、矢印165により示されるように、メタデータツリー50における取り消しノード56の下にある全ての中間ノード56に鍵取り消しを伝達する。そうするために、データアクセスアダプター32は、
図9の例に示されるように、取り消しノード56の下にある各中間ノード56に、新たなノード鍵を格納する別のノード鍵ロックボックス62を追加する。
【0050】
図9において、データアクセスアダプター32は、鍵取り消しのためのノード56(2)を特定する。データアクセスアダプター32は、時間t
Rにおけるノード56(2)のノード鍵ロックボックス62(2)に格納されたノード鍵を、新たなノード鍵を格納する別のノード鍵ロックボックス62(3)をノード56(2)に追加することによって取り消す。また、データアクセスアダプター32は、矢印180により示されたように、個々の新たなノード鍵を格納するノード鍵ロックボックス62(3)(1)及び62(3)(2)をそれぞれ中間ノード56(3)及び56(4)に追加することにより、中間ノード56(3)及び56(4)に鍵取り消しを伝達する。
【0051】
ノード鍵ロックボックス62(2)の取り消されたノード鍵は、矢印182及び192により示されたように、時間t
Rの前に格納されたノード56(3)及び56(4)のノード鍵ロックボックス62(2)(1)及び62(2)(2)をそれぞれロック解除するための能力を保持する。同様に、ノード鍵ロックボックス62(2)(1)のノード鍵は、ノード58(4)及び58(5)のノード鍵ロックボックス62(2)(1)(1)及び62(2)(1)(2)をロック解除するための能力を保持する。
【0052】
矢印184により示されたように、ノード56(2)の鍵取り消し後に格納されたノード56(5)のノード鍵ロックボックス62(3)(3)は、ノード56(2)のノード鍵ロックボックス62(3)に格納されたノード鍵を用いてロックされる。同様に、矢印194により示されたように、ノード56(2)の鍵取り消し及びノード56(3)への伝達の後に格納されたノード58(6)のノード鍵ロックボックス62(3)(1)(1)は、ノード56(3)のノード鍵ロックボックス62(3)(1)に格納されたノード鍵を用いてロックされる。ノード鍵ロックボックス62(2)の取り消されたノード鍵は、ノード鍵ロックボックス62(3)(1)又は62(3)(3)をロック解除するために使用できない。
【0053】
ノード鍵ロックボックス62(3)(1)から伝達されたノード鍵は、ノード58(6)の参照60が暗号解読されることを可能にするノード鍵にアクセスするためにノード58(6)のノード鍵ロックボックス63(3)(1)(1)をロック解除するために使用可能である。ノード鍵ロックボックス62(3)(1)からのノード鍵は、ノード58(4)及び58(5)のノード鍵ロックボックス62(2)(1)(1)及び62(2)(1)(2)をロック解除する、ノード鍵ロックボックス62(2)(1)に格納されたノード鍵を取得するために逆回転される。
【0054】
図7の鍵取り消し方法に関して、記録鍵ロックボックス64の記録鍵は、ノード鍵の何らかの鍵取り消しの結果として変更されないままである。ノード鍵の取り消しは、取り消し後に格納されたEHRへのアクセスを阻止するのに十分である。その理由は、新たなノード鍵の使用により、新たなノード鍵を持っていない参加者(例えば、取り消されたノード鍵だけを持っている参加者)が、取り消し後に格納されたEHRへの参照60にアクセスすることが阻止されるからである。
【0055】
メタデータツリー50のサブツリーを管理する参加者システム30は、上記の鍵回転を実行するために、対応するサブツリーノード54の、サブツリーノード及びサブツリー記録鍵からそれぞれ生成されたノードシード及び記録シード(seed:種)を使用する。ノード51のノード鍵ロックボックス62のノードシードは、ノード識別子91(
図3に示された)及びサブツリーノード鍵のハッシュとして計算され得る。ノード51の記録鍵ロックボックス64の記録シードは、ノード識別子91(
図3に示された)及びサブツリー記録鍵のハッシュとして計算され得る。
【0056】
有利な点は、上記の実施形態により、医療参加者が、階層ロックボックスを有するメタデータツリーを用いて共通の暗号化データ記憶装置のEHRを安全に管理(操作)および共用することが可能になることができる。医療参加者は、メタデータツリーの各ノードのノード鍵および記録鍵を用いて、患者の選択されたEHRにアクセスする及び当該EHRを格納するために他の医療参加者の能力を制御する。患者鍵から導出されたサブツリー鍵を、選択された医療参加者に提供することにより、患者は、患者鍵を用いて患者の全EHRにアクセスするための能力を維持する。また、患者を含む医療参加者は、メタデータツリーの任意のレベルにおける鍵取り消しを用いて、他の医療参加者のアクセスを選択的に取り消すための能力も保持する。