(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-21
(45)【発行日】2022-01-18
(54)【発明の名称】復号システム
(51)【国際特許分類】
H04L 9/08 20060101AFI20220111BHJP
【FI】
H04L9/08 A
(21)【出願番号】P 2020039609
(22)【出願日】2020-03-09
【審査請求日】2020-03-10
(73)【特許権者】
【識別番号】394013002
【氏名又は名称】三菱電機インフォメーションシステムズ株式会社
(74)【代理人】
【識別番号】100110423
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100147566
【氏名又は名称】上田 俊一
(72)【発明者】
【氏名】酒巻 一紀
【審査官】平井 誠
(56)【参考文献】
【文献】特開2004-004341(JP,A)
【文献】特表2017-507629(JP,A)
【文献】特開2018-110442(JP,A)
【文献】特開2014-060614(JP,A)
【文献】特開2010-130459(JP,A)
【文献】特開2001-236259(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
(57)【特許請求の範囲】
【請求項1】
入力データに対して
1つの暗号鍵を
分割した第1分散鍵と第2分散鍵とのそれぞれを順次使用して複数回の暗号処理を施すことで
生成された暗号データ
に対して、前記第2分散鍵を使用して復号処理を施すことで、第1復号データを生成する第1復号処理部を備える第2復号装置と、
前記第1復号データに対して、前記第1分散鍵を使用して復号処理を施すことで、前記入力データを生成する第2復号処理部を備える第1復号装置と、
鍵管理装置と
を備えた、復号システムであって、
前記鍵管理装置は、
前記第1復号装置との間、および
前記第2復号装置との間でデータの送受信を行う送受信部と、
前記暗号鍵と対となる復号鍵から、
前記第1分散鍵と
前記第2分散鍵とを生成する分散鍵生成部と、
前記分散鍵生成部で生成された前記第1分散鍵を前記送受信部を介して前記第1復号装置に送信し、前記分散鍵生成部で生成された前記第2分散鍵を、前記送受信部を介して前記第2復号装置に送信する処理部と
を
有し、
前記処理部は、
前記送受信部を介して、前記第1分散鍵を用いた復号処理を無効化させることを示す第1分散鍵失効情報を前記第1復号装置から取得した場合には、前記送受信部を介して、前記第2復号装置に対して前記第2分散鍵の削除要求を送信し、前記第2復号装置における前記第2分散鍵を用いた復号処理を禁止させる禁止処理を実行する
復号システム。
【請求項2】
前記処理部は、
前記禁止処理を実行した後に、前記送受信部を介して前記第1復号装置から分散鍵の再生成を要求する再生成要求を受信した場合には、前記分散鍵生成部に対して前記復号鍵から前記第1分散鍵および前記第2分散鍵とは異なる新たな分散鍵として第3分散鍵および第4分散鍵の生成を要求し、
前記分散鍵生成部で生成された前記第3分散鍵を前記送受信部を介して第1復号装置に送信し、前記分散鍵生成部で生成された前記第4分散鍵を前記送受信部を介して前記第2復号装置に送信する
請求項
1に記載の
復号システム。
【請求項3】
前記第1復号装置は、ユーザ端末であり、前記第2復号装置は復号サーバである
請求項1または2に記載の復号システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、複数の分散鍵を用いて復号処理を行う復号システムに関する。
【背景技術】
【0002】
暗号鍵を用いて暗号処理が施された暗号データを復号する際に、暗号鍵と対となる復号鍵を特定のユーザに渡しておき、特定のユーザが復号鍵を用いて暗号データを復号する従来技術がある。このようにして特定のユーザのみに権限を移譲することで、特定のユーザ以外のユーザが暗号データを復号することを防止している。
【0003】
なお、暗号方式としては、データにアクセスするためのアクセス権限が与えられる利用者が有する属性に関する条件式を用いてデータを暗号化することによって、条件式を満たす属性を有する利用者だけがデータを復号できるものがある。このような暗号は、「関数型暗号方式」とも呼ばれる(例えば、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【文献】T.Okamoto、K.Takashima、“Fully sec ure functional encryption with general r elations from the decisional linear assu mption”、CRYPTO、2010
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術には、以下のような課題がある。
従来技術では、特定のユーザに復号鍵を渡し、権限を移譲する。ここで、例えば、この特定のユーザに移譲した権限を剥奪し、譲渡した復号鍵による復号を防止する必要が生じる場合を考える。このような場合、譲渡した復号鍵による復号を防止するためには、暗号処理が施された暗号データから、他の暗号鍵を用いて再暗号化された新たな暗号データに差し替える必要がある。
【0007】
しかしながら、すでに存在する暗号データが、特定の量を超える膨大な量である場合などには、再暗号化を行う手間も膨大となる。従って、暗号処理が施された暗号データを流用しつつ、譲渡した復号鍵による復号を防止し、アクセス権限の変更ができる復号処理が望まれる。
【0008】
本開示は、前記のような課題を解決するためになされたものであり、再暗号化を行うことなしに既存の暗号データを流用しつつ、アクセス権限の変更ができる復号システムを得ることを目的とする。
【課題を解決するための手段】
【0011】
本開示に係る復号システムは、入力データに対して1つの暗号鍵を分割した第1分散鍵と第2分散鍵とのそれぞれを順次使用して複数回の暗号処理を施すことで生成された暗号データに対して、第2分散鍵を使用して復号処理を施すことで、第1復号データを生成する第1復号処理部を備える第2復号装置と、第1復号データに対して、第1分散鍵を使用して復号処理を施すことで、入力データを生成する第2復号処理部を備える第1復号装置と、鍵管理装置とを備えた、復号システムであって、鍵管理装置は、第1復号装置との間、および第2復号装置との間でデータの送受信を行う送受信部と、暗号鍵と対となる復号鍵から、第1分散鍵と第2分散鍵とを生成する分散鍵生成部と、分散鍵生成部で生成された第1分散鍵を送受信部を介して第1復号装置に送信し、分散鍵生成部で生成された第2分散鍵を、送受信部を介して第2復号装置に送信する処理部とを有し、処理部は、送受信部を介して、第1分散鍵を用いた復号処理を無効化させることを示す第1分散鍵失効情報を第1復号装置から取得した場合には、送受信部を介して、第2復号装置に対して第2分散鍵の削除要求を送信し、第2復号装置における第2分散鍵を用いた復号処理を禁止させる禁止処理を実行するものである。
【発明の効果】
【0012】
本開示によれば、再暗号化を行うことなしに既存の暗号データを流用しつつ、アクセス権限の変更ができる復号システムを得ることができる。
【図面の簡単な説明】
【0013】
【
図1】本開示の復号処理に関する概念を説明するための図である。
【
図2】本開示の復号システムにおける第1の実施例を説明するための図である。
【
図3】本開示の第1の実施例に対応する復号システムを実現するための機能ブロック図である。
【
図4】本開示の第1の実施例に対応する復号処理を実行する際の一連処理を示したフローチャートである。
【
図5】本開示の第1の実施例における暗号データ、分散鍵、復号ポリシ、および復号ポリシマスタの具体的なデータ構成を示した図である。
【
図6】本開示の復号システムにおける第2の実施例を説明するための図である。
【
図7】本開示の第2の実施例に対応する復号システムを実現するための機能ブロック図である。
【
図8】本開示の第2の実施例に対応する復号処理を実行する際の一連処理を示したフローチャートである。
【
図9】本開示の第2の実施例における暗号データ、分散鍵、復号ポリシ、復号ポリシマスタ、および復号データの具体的なデータ構成を示した図である。
【
図10】本開示の復号システムにおける第3の実施例を説明するための図である。
【
図11】本開示における複数の分散鍵の生成および管理を実現する鍵管理装置の機能ブロック図である。
【
図12】実施の形態1に係る復号システムの各機能を専用のハードウェアである処理回路で実現する場合を示した構成図である。
【
図13】実施の形態1に係る復号システムの各機能をプロセッサおよびメモリを備えた処理回路により実現する場合を示した構成図である。
【発明を実施するための形態】
【0014】
以下、本開示の復号システムの好適な実施の形態につき図面を用いて説明する。
【0015】
実施の形態1.
まず初めに、本開示の概念である、1つの暗号鍵を分割した複数の分散鍵を用いて暗号処理を行うメリットについて、図面を用いて説明する。
【0016】
図1は、本開示の復号処理に関する概念を説明するための図である。具体的には、
図1(a)は、1つの暗号鍵を用いた従来の暗号処理に関する説明図であり、
図1(b)は、1つの暗号鍵を分割した複数の分散鍵を用いた本開示の暗号処理に関する説明図である。
【0017】
図1(a)に示すように、1つの暗号鍵10を用いた従来の暗号処理においては、暗号化に使用した1つの暗号鍵10は、利用者に渡される。従って、この1つの暗号鍵10による復号処理を防止したい場合には、暗号化したファイルを再暗号化するか、ファイルへのアクセス権限をなくす必要がある。また、関数型暗号方式での権限をもつ暗号では、再暗号化が必須となる。
【0018】
これに対して、
図1(b)に示すように、1つの暗号鍵を2つに分割した分散鍵10a、10bを用いた本開示の暗号処理においては、最後の復号処理に使用する分散鍵10bのみを利用者に渡すことができる。
【0019】
従って、分散鍵10bを有する利用者に復号権限がなくなった場合には、サーバ側の分散鍵10aを削除することで、分散鍵10bを有する利用者による復号を不可能にすることができる。関数型暗号方式で権限変更を行った場合にも、現権限の分散鍵10bを削除して、新しい権限の分散鍵を、復号権限を有する新たな利用者に配布することで、アクセス権限の変更ができる。
【0020】
すなわち、
図1(a)に示した従来の暗号処理方法では、1つの暗号鍵10による復号処理を防止するためには、既存の暗号データに相当する暗号ファイル1aを使用できず、再暗号化により新たな暗号ファイル1bを作成する必要がある。
【0021】
これに対して、
図1(b)に示した本開示の暗号処理方法では、利用者に配布済みの分散鍵10bによる復号処理を防止するためには、既存の暗号データに相当する暗号ファイル1aを復号するために必要な新たな分散鍵10c、10d(図示せず)のうちの1つを、復号権限を有する新たな利用者に配布することで対応可能である。この結果、再暗号化を行うことなしに、既存の暗号データに相当する暗号ファイル1aを流用しつつ、アクセス権限の変更を容易に実現できる。
【0022】
なお、既存の暗号データを流用するために用いられる新たな分散鍵10c、10dの具体的な作成手法に関しては、特許文献1に詳述されており、説明を省略する。
【0023】
本開示は、上述したように、復号に使用する鍵を分割して複数の処理に分けて暗号処理を行うことを技術的特徴としている。そして、このような技術的特徴を適用することで、セキュリティを強化することができる。
【0024】
具体的には、以下のような3つのケースに対して、本開示による分散鍵を用いた復号処理を適用することが考えられる。
ケース1:複数サーバで鍵を分散した場合
ケース2:サーバとユーザで鍵を分散
ケース3:サーバと複数ユーザで鍵を分散
なお、
図1で説明したものは、ケース2に相当する。
【0025】
ケース1では、複数サーバで鍵を分散することで、1台のサーバが攻撃されても、復号するための鍵の漏洩を防止できる。この結果、セキュリティレベルを強化することができる。
【0026】
また、ケース2では、サーバとユーザとで鍵を分散することで、サーバ、ユーザどちらかが攻撃されても、復号するための鍵の漏洩を防止できる。この結果、セキュリティレベルを強化することができる。
【0027】
さらに、ケース3では、サーバと複数ユーザで鍵を分散ことで、分散鍵を有する複数ユーザの全員がそろわない限り、復号処理が行えないようにすることができる。この結果、セキュリティレベルを強化することができる。
【0028】
次に、ケース2およびケース3に関して、より具体的な実施例を、図面を用いて詳細に説明する。まず初めに、ケース2に関する具体的な実施例を、
図2~
図4を用いて説明する。
【0029】
図2は、本開示の復号システムにおける第1の実施例を説明するための図である。
図2(a)は、利用者に渡した1つの暗号鍵10を有する端末が乗っ取られた場合の従来の復号処理に関する説明図である。また、
図2(b)は、利用者に渡した分散鍵10bを有する端末が乗っ取られた場合の本開示の第1の実施例による復号処理に関する説明図である。
【0030】
図2(a)に示すように、1つの暗号鍵10を有する端末100が乗っ取られた場合において、サーバ200への不正アクセスを防止するためには、サーバ200内のアプリケーションによって不正アクセスを検知して、不正アクセスを遮断する必要がある。しかしながら、このような手法では、不正アクセスを遮断するための手段をアプリケーションに実装するため、設定漏れ、バグなどにより、大量にデータが流出するおそれがある。
【0031】
これに対して、
図2(b)に示すように、1つの暗号鍵10を2つに分割した分散鍵10a、10bのうちの一方の分散鍵10bを利用者の端末100が有し、他方の分散鍵10aをサーバ200が有する場合には、アクセスポリシの適合をチェックした後に、分散鍵10aを用いた復号処理を実行した上で、端末100に復号データを送信することができる。従って、アクセスポリシに従って復号処理を遮断することができ、また、分散鍵10bだけでは復号が不可能であり、不正アクセスを遮断してデータの流出を防止することができる。
【0032】
図3は、本開示の第1の実施例に対応する復号システムを実現するための機能ブロック図である。第1の実施例に係る復号システムは、ユーザ端末100、暗号データ保管サーバ210、および復号サーバ220を備えて構成されている。
【0033】
ユーザ端末100は、表示機能111および分割復号機能112を実行するプロセッサ110と、通信装置120とを備えて構成されている。
【0034】
暗号データ保管サーバ210は、通信装置211と、ユーザ認証機能212aおよびデータ取得機能212bを実行するプロセッサ212と、暗号データ1が記憶された記憶装置213とを備えて構成されている。
【0035】
復号サーバ220は、通信装置221と、ユーザ認証機能222a、復号ポリシ確認機能222bおよび分割復号機能222cを実行するプロセッサ222と、分散鍵10aおよび復号ポリシデータ20が記憶された記憶装置223とを備えて構成されている。
【0036】
そして、ユーザ端末100、暗号データ保管サーバ210、および復号サーバ220は、ネットワーク300を介して互いに接続されており、それぞれの通信装置120、211、221を介して相互通信が可能となっている。
【0037】
図4は、本開示の第1の実施例に対応する復号処理を実行する際の一連処理を示したフローチャートである。
図4に示したフローチャートを用いて、
図3に示した機能ブロックにより構成される復号システムにより実行される復号処理について、詳細に説明する。
【0038】
ステップS401において、ユーザ端末100は、復号すべきデータを取得するためのデータ取得要求を、暗号データ保管サーバ210に対して送信する。
【0039】
次に、ステップS402において、暗号データ保管サーバ210は、ユーザ端末100からデータ取得要求を受信すると、ユーザ認証処理を実行する。そして、認証に成功した場合には、ステップS403に進み、認証に成功しなかった場合には、一連処理を終了する。
【0040】
ステップS403に進んだ場合には、暗号データ保管サーバ210は、記憶装置213内に記憶されている暗号データ1を取得する。さらに、ステップS404において、暗号データ保管サーバ210は、暗号データ1を分散鍵10bで復号するための復号要求を、復号サーバ220に対して送信する。
【0041】
次に、ステップS405において、復号サーバ220は、暗号データ保管サーバ210から復号要求を受信すると、ユーザ認証処理を実行する。そして、認証に成功した場合には、ステップS406に進み、認証に成功しなかった場合には、一連処理を終了する。
【0042】
ステップS406に進んだ場合には、復号サーバ220は、記憶装置223内に記憶されている復号ポリシデータ20を取得する。さらに、ステップS407において、復号サーバ220は、アクセスポリシが適合しているか否かをチェックする。そして、アクセスポリシが適合した場合には、ステップS408に進み、アクセスポリシが適合しなかった場合には、一連処理を終了する。
【0043】
ステップS408に進んだ場合には、復号サーバ220は、記憶装置223内に記憶されている分散鍵10aを取得する。さらに、ステップS409において、復号サーバ220は、分散鍵10aを用いて暗号データ1を復号することで、復号データ2aを生成する。
【0044】
次に、ステップS410において、復号サーバ220は、生成した復号データ2aを、ユーザ端末100に対して送信する。
【0045】
次に、ステップS411において、ユーザ端末100は、復号サーバ220から送信された復号データ2aを受信する。すなわち、ユーザ端末100は、ステップS401において送信したデータ取得要求の返答として、ステップS411において復号データ2aを受信する。
【0046】
次に、ステップS412において、ユーザ端末100は、復号データ2aを復号するために必要な分散鍵10bを取得する。
【0047】
次に、ステップS413において、ユーザ端末100は、分散鍵10bを用いて復号データ2aを復号することで、復号データ2bを生成し、一連処理を終了する。
【0048】
図5は、本開示の第1の実施例における暗号データ1、分散鍵10b、復号ポリシ21、および復号ポリシマスタ22の具体的なデータ構成を示した図である。暗号データ1は、データIDおよびユーザIDと関連付けられたデータとして、記憶装置213内に記憶されている。また、分散鍵10bは、鍵IDおよびユーザIDと関連付けられたデータとして、記憶装置223内に記憶されている。
【0049】
復号ポリシ21は、ユーザIDごとに、1以上のポリシIDが関連付けられている。また、復号ポリシマスタ22は、ポリシIDごとに、具体的なポリシが特定されている。そして、復号ポリシ21および復号ポリシマスタ22から構成される復号ポリシデータ20が記憶装置223内に記憶されている。
【0050】
本開示の第1の実施例に係る復号システムは、
図3に示した機能ブロックに基づいて、
図4による一連処理を実行することで、以下のような効果を得ることができる。
効果1:サーバ側において、ユーザ認証、およびアクセスポリシの適合チェックを行うことで、ユーザ認証に成功し、かつアクセスポリシが適合しない限り、データ取得要求を送信したユーザは、復号データ2aを取得することができない構成とすることができる。
【0051】
効果2:ユーザ側に配布済みの分散鍵10bが乗っ取られた場合にも、サーバ側の分散鍵10aを削除し、復号データ2aを生成しないようにすることで、不正アクセスに対して復号データ2aを返送してしまうことを防止することができる。
【0052】
効果3:既存の暗号データ1を復号するために必要な新たな分散鍵10c、10dを新たに生成し、一方の分散鍵を、復号権限を有する新たな利用者に配布することで、再暗号化を行うことなしに既存の暗号データ1を流用した上で、分散鍵10bに基づく不正アクセスに対する復号処理を遮断することができる。
【0053】
この結果、再暗号化を行うことなしに既存の暗号データを流用しつつ、アクセス権限の変更ができる復号システムおよび復号処理方法を実現することができる。特に、第1の実施例によれば、不正アクセス時において、サーバ側でデータを復号する時点で不正アクセスを検知して復号処理を遮断することが可能となる。
【0054】
次に、ケース3に関する具体的な実施例を、
図6~
図9を用いて説明する。
【0055】
図6は、本開示の復号システムにおける第2の実施例を説明するための図である。
図6(a)は、許可するユーザから許可されたユーザに対して暗号データとしての個人情報が提供され、1つの暗号鍵10によって復号される従来の復号処理に関する説明図である。
【0056】
また、
図6(b)は、許可するユーザ、許可されたユーザ、およびサーバのそれぞれが分散鍵を有し、暗号データとしての個人情報が、それぞれの分散鍵によって順次復号される本開示の第2の実施例による復号処理に関する説明図である。
【0057】
図6(a)に示すように、許可されたユーザの端末100bは、サーバ200から取得した個人情報1に対して、1つの暗号鍵10を用いて復号処理を行う。この場合、サーバ200内のアプリケーションとして実装されるアクセスコントロールにより、許可されたユーザに対して個人情報1を提供すべきかが制御される。
【0058】
このため、不正アクセス、サーバ管理者による勝手な情報開示などにより、個人情報1がユーザ側に流出してしまうリスクがある。そして、暗号データとしての個人情報1がユーザ側に流出してしまうと、1つの暗号鍵10によって容易に復号が可能となってしまう。
【0059】
これに対して、
図6(b)に示すように、許可するユーザの端末100a、許可されたユーザの端末100b、およびサーバ200のそれぞれが分散鍵を有する場合には、3つの分散鍵10a、10b、10cがそろわない限り、暗号データとしての個人情報1が復号されてしまうおそれはない。
【0060】
特に、許可するユーザが分散鍵10aで復号しない限り、サーバ200上にある暗号データ1(個人情報1)は復号できない。従って、許可するユーザが必ず許可処理を行うことが必要となり、そのような許可処理が行われない不正アクセスを遮断することができ、データの流出を防止することができる。
【0061】
図7は、本開示の第2の実施例に対応する復号システムを実現するための機能ブロック図である。第2の実施例に係る復号システムは、ユーザ端末100a、ユーザ端末100b、暗号データ保管サーバ210、および復号サーバ220を備えて構成されている。
【0062】
ユーザ端末100aおよびユーザ端末100bのそれぞれは、表示機能111および分割復号機能112を実行するプロセッサ110と、通信装置120とを備えて構成されている。ここで、ユーザ端末100aは、許可するユーザが使用する端末に相当し、ユーザ端末100bは、許可されたユーザが使用する端末に相当する。
【0063】
暗号データ保管サーバ210は、通信装置211と、ユーザ認証機能212aおよびデータ取得機能212bを実行するプロセッサ212と、暗号データ1および復号データ2aが記憶された記憶装置213とを備えて構成されている。
【0064】
復号サーバ220は、通信装置221と、ユーザ認証機能222a、復号ポリシ確認機能222bおよび分割復号機能222cを実行するプロセッサ222と、分散鍵10bおよび復号ポリシデータ20が記憶された記憶装置223とを備えて構成されている。
【0065】
そして、ユーザ端末100a、ユーザ端末100b、暗号データ保管サーバ210、および復号サーバ220は、ネットワーク300を介して互いに接続されており、それぞれの通信装置120、120、211、221を介して相互通信が可能となっている。
【0066】
図8は、本開示の第2の実施例に対応する復号処理を実行する際の一連処理を示したフローチャートである。
図8に示したフローチャートを用いて、
図7に示した機能ブロックにより構成される復号システムにより実行される復号処理について、詳細に説明する。
【0067】
なお、
図8において、ステップS801~ステップS809は、分散鍵10aを用いて、ユーザ端末100aおよび暗号データ保管サーバ210のそれぞれが連動することで実行される第1の復号処理に関するフローチャートである。また、ステップS811~ステップS825は、分散鍵10bおよび分散鍵10cを用いて、ユーザ端末100a、ユーザ端末100b、暗号データ保管サーバ210、および復号サーバ220のそれぞれが連動することで実行される第2の復号処理に関するフローチャートである。
【0068】
まず、第1の復号処理について説明する。ステップS801において、ユーザ端末100aは、分散鍵10aによって復号すべき暗号データを取得するための暗号データ要求を、暗号データ保管サーバ210に対して送信する。
【0069】
次に、ステップS802において、暗号データ保管サーバ210は、ユーザ端末100aから暗号データ要求を受信すると、ユーザ認証処理を実行する。そして、認証に成功した場合には、ステップS803に進み、認証に成功しなかった場合には、第1の復号処理に関する一連処理を終了する。
【0070】
ステップS803に進んだ場合には、暗号データ保管サーバ210は、記憶装置213内に記憶されている暗号データ1を取得する。さらに、ステップS804において、暗号データ保管サーバ210は、暗号データ1を、ユーザ端末100aに対して返送する。
【0071】
次に、ステップS805において、ユーザ端末100aは、暗号データ保管サーバ210から暗号データ1を取得する。すなわち、ユーザ端末100aは、ステップS801において送信した暗号データ要求の返答として、ステップS805において暗号データ1を受信する。
【0072】
次に、ステップS806において、ユーザ端末100aは、暗号データ1を復号するために必要な分散鍵10aを取得する。
【0073】
次に、ステップS807において、ユーザ端末100aは、分散鍵10aを用いて暗号データ1を復号することで、復号データ2aを生成する。さらに、ステップS808において、ユーザ端末100aは、生成した復号データ2aを暗号データ保管サーバ210に対して送信する。
【0074】
そして、ステップS809において、暗号データ保管サーバ210は、ユーザ端末100aから送信された復号データ2aを、記憶装置213内に記憶させ、第1の復号処理に関する一連処理を終了する。
【0075】
次に、第2の復号処理について説明する。ステップS811において、ユーザ端末100aは、分散鍵10cを、許可されたユーザのユーザ端末100bに対して送信する。次に、ステップS812において、ユーザ端末100bは、ユーザ端末100aから送信された分散鍵10cを受信する。すなわち、ユーザ端末100bは、ユーザ端末100aから、個人情報である暗号データ1の復号を許可されることで、分散鍵10cを取得する。
【0076】
次に、ステップS813において、ユーザ端末100bは、復号すべきデータである復号データ2bを取得するための復号データ要求を、暗号データ保管サーバ210に対して送信する。
【0077】
次に、ステップS814において、暗号データ保管サーバ210は、ユーザ端末100bから復号データ要求を受信すると、ユーザ認証処理を実行する。そして、認証に成功した場合には、ステップS815に進み、認証に成功しなかった場合には、第2の復号処理に関する一連処理を終了する。
【0078】
ステップS815に進んだ場合には、暗号データ保管サーバ210は、先のステップS809によって記憶装置213内に記憶されている復号データ2aを取得する。さらに、ステップS816において、暗号データ保管サーバ210は、復号データ2aを分散鍵10bで復号するための復号要求を、復号サーバ220に対して送信する。
【0079】
次に、ステップS817において、復号サーバ220は、暗号データ保管サーバ210から復号要求を受信すると、ユーザ認証処理を実行する。そして、認証に成功した場合には、ステップS818に進み、認証に成功しなかった場合には、第2の復号処理に関する一連処理を終了する。
【0080】
ステップS818に進んだ場合には、復号サーバ220は、記憶装置223内に記憶されている復号ポリシデータ20を取得する。さらに、ステップS819において、復号サーバ220は、アクセスポリシが適合しているか否かをチェックする。そして、アクセスポリシが適合した場合には、ステップS820に進み、アクセスポリシが適合しなかった場合には、第2の復号処理に関する一連処理を終了する。
【0081】
ステップS820に進んだ場合には、復号サーバ220は、記憶装置223内に記憶されている分散鍵10bを取得する。さらに、ステップS821において、復号サーバ220は、分散鍵10bを用いて復号データ2aを復号することで、復号データ2bを生成する。
【0082】
次に、ステップS822において、復号サーバ220は、生成した復号データ2bを、ユーザ端末100bに対して送信する。
【0083】
次に、ステップS823において、ユーザ端末100bは、復号サーバ220から送信された復号データ2bを受信する。すなわち、ユーザ端末100bは、ステップS813において送信した復号データ要求の返答として、ステップS823において復号データ2bを受信する。
【0084】
次に、ステップS824において、ユーザ端末100bは、復号データ2bを復号するために必要な分散鍵10cを取得する。具体的には、ユーザ端末100bは、先のステップS812において受信済みの分散鍵10cを読み出す。
【0085】
次に、ステップS825において、ユーザ端末100bは、分散鍵10cを用いて復号データ2bを復号することで、復号データ2cを生成し、第2の復号処理に関する一連処理を終了する。
【0086】
図9は、本開示の第2の実施例における暗号データ1、分散鍵10c、復号ポリシ21、復号ポリシマスタ22、および復号データ2aの具体的なデータ構成を示した図である。暗号データ1は、データIDおよびユーザIDと関連付けられたデータとして、記憶装置213内に記憶されている。また、分散鍵10cは、鍵IDおよびユーザIDと関連付けられたデータとして、記憶装置223内に記憶されている。
【0087】
復号ポリシ21は、ユーザIDごとに、1以上のポリシIDが関連付けられている。また、復号ポリシマスタ22は、ポリシIDごとに、具体的なポリシが特定されている。そして、復号ポリシ21および復号ポリシマスタ22から構成される復号ポリシデータ20が記憶装置223内に記憶されている。
【0088】
さらに、復号データ2aは、許可するユーザのIDに相当するユーザID、および許可されたユーザのIDに相当する宛先ユーザIDと関連付けられて記憶装置213内に記憶されている。
【0089】
本開示の第2の実施例に係る復号システムは、
図7に示した機能ブロックに基づいて、
図8による一連処理を実行することで、以下のような効果を得ることができる。
効果1:サーバ側において、ユーザ認証、およびアクセスポリシの適合チェックを行うことで、ユーザ認証に成功し、かつアクセスポリシが適合しない限り、復号要求を送信したユーザは、復号データ2bを取得することができない構成とすることができる。
【0090】
効果2:ユーザ側に配布済みの分散鍵10a、10cが乗っ取られた場合にも、サーバ側の分散鍵10bを削除し、復号データ2bを生成しないようにすることで、不正アクセスに対して復号データ2bを返送してしまうことを防止することができる。
【0091】
効果3:既存の暗号データ1を復号するために必要な新たな分散鍵10d、10e、10fを生成し、分散鍵10d、10fを、復号権限を有する新たな利用者に配布することで、再暗号化を行うことなしに既存の暗号データ1を流用した上で、分散鍵10a、10cに基づく不正アクセスに対する復号処理を遮断することができる。
【0092】
効果4:許可するユーザが分散鍵10aで復号しない限り、サーバ上にある暗号データは復号できず、許可されたユーザが復号データを取得するためには、許可するユーザが許可処理を行うことが必須となる。
【0093】
この結果、再暗号化を行うことなしに既存の暗号データを流用しつつ、アクセス権限の変更ができる復号システムおよび復号処理方法を得ることができる。特に、第2の実施例によれば、本人同意処理(復号)を、ユーザ側で行うことが可能となる。
【0094】
次に、ケース3に関する第2の実施例とは異なる具体的な実施例を、
図10を用いて説明する。
図10は、本開示の復号システムにおける第3の実施例を説明するための図である。
【0095】
第3の実施例における復号システムは、情報許可者の端末100a、情報要求者の端末100b、およびサーバ200を備えて構成されている。ここで、情報許可者は、許可するユーザに相当し、情報要求者は、許可されたユーザに相当する。また、サーバ200は、暗号データ保管サーバ210および復号サーバ220の機能を兼ね備えたサーバに相当する。
【0096】
図10では、秘匿検索で条件に合うデータのみを情報許可者に提供する復号システムにおいて、ステップS1001~ステップS1008の一連処理が実行される流れを示している。
【0097】
ステップS1001において、情報要求者の端末100bは、サーバ200に対して、ほしい情報の条件を要求する。具体的には、情報要求者の端末100bは、鎌倉在住者を条件とした要求を行うことができる。
【0098】
次に、ステップS1002において、サーバ200は、暗号データ1の中から、秘匿検索で条件に合うデータを検索する。次に、ステップS1003において、サーバ200は、秘匿検索の結果として抽出された秘密分散データ3を、情報許可者の端末100aに対して送信する。
【0099】
次に、ステップS1004において、情報許可者の端末100aは、分散鍵10aを用いて、秘密分散データ3を復号し、秘密分散復号データ4を生成する。さらに、情報許可者の端末100aは、生成した秘密分散復号データ4をサーバ200に送信する。また、ステップS1005において、情報許可者は、分散鍵10cを情報共有者に提供し、情報開示を許可する。
【0100】
次に、ステップS1006において、サーバ200は、情報許可者の端末100aから送信された秘密分散復号データ4を、分散鍵10bによって復号し、秘密分散復号データ5を生成する。そして、ステップS1007において、サーバ200は、生成した秘密分散復号データ5を情報要求者の端末100bに送信する。
【0101】
次に、ステップS1008において、情報要求者の端末100bは、ステップS1007で受信した秘密分散復号データ5を、ステップS1005で提供された分散鍵10cを用いて復号することで、最終的な復号データ6を取得する。
【0102】
このように、第3の実施例によれば、サーバ200上、およびネットワーク上のデータは、常に暗号化された状態として送受信される。この結果、複数の分散鍵を使用して、個人情報を安全に情報要求者に開示することができる。
【0103】
上述したケース1~ケース3、および第1の実施例~第3の実施例の技術思想を整理すると、本開示における復号システムは、以下のような記憶部および復号処理部を備えている。
・復号されるべき入力データに対して、暗号鍵を用いた暗号処理を施すことで生成された暗号データを記憶する記憶部。
・記憶部に記憶された暗号データを、暗号処理に用いた暗号鍵による復号処理を施すことで入力データを復号する復号処理部。
【0104】
そして、本開示における復号システムを構成する記憶部および復号処理部は、以下のような点を技術的特徴としている。
・記憶部には、入力データに対して1つの暗号鍵を分割した複数の分散鍵のそれぞれを順次使用して複数回の暗号処理が施されることで、入力データに対して1つの暗号鍵を用いた暗号処理が施されることで生成される場合と同一の暗号データが記憶されている。
・復号処理部は、記憶部に記憶されている暗号データに対して、複数の分散鍵のそれぞれを順次使用して複数回の復号処理を施すことで、入力データを復号する。
【0105】
そして、複数の分割鍵は、2台以上のサーバのいずれかに分散配置されて管理されているか、または、1台のサーバと1以上のユーザのいずれかに分散配置されて管理されている。
【0106】
さらに、本開示における復号処理方法は、記憶部の機能を実行するための記憶ステップと、復号処理部の機能を実行するための復号ステップを備えていることを技術的特徴としている。
【0107】
従って、本開示に係る復号システムおよび復号処理方法を適用することで、分散鍵のすべてがそろわない限り、入力データを復号できない復号システムおよび復号処理方法を構築することができる。この結果、再暗号化を行うことなしに既存の暗号データを流用しつつ、アクセス権限の変更ができる復号システムおよび復号処理方法を実現することができる。
【0108】
実施の形態2.
先の実施の形態1では、複数の分散鍵を用いて復号処理を行う復号システムおよび復号処理方法について説明した。本実施の形態2では、複数の分散鍵の生成および管理について詳細に説明する。
【0109】
図11は、本開示における複数の分散鍵の生成および管理を実現する鍵管理装置の機能ブロック図である。
図11には、鍵管理装置30とともに、復号鍵の所有先である第1復号装置41および第2復号装置42が示されている。鍵管理装置30は、分散鍵生成部31、処理部32、および送受信部33を備えて構成されている。
【0110】
ここで、
図3と
図11との対応関係を説明すると、
図11における第1復号装置41は、
図3におけるユーザ端末100に相当し、
図11における第2復号装置42は、
図3における復号サーバ220に相当する。
【0111】
鍵管理装置30は、入力データに対して暗号鍵を用いた暗号処理を施すことで暗号データを生成し、暗号鍵と暗号データとを管理する機能を有する。さらに、鍵管理装置30は、複数の分散鍵を生成し管理する機能を有する。そこで、後者の機能について、
図11を用いて詳細に説明する。
【0112】
送受信部33は、第1復号装置41との間、および第2復号装置42との間でデータの送受信を行う。また、分散鍵生成部31は、暗号鍵と対となる復号鍵から、第1分散鍵と第2分散鍵とを生成する。
【0113】
さらに、処理部32は、分散鍵生成部31で生成された第1分散鍵を、送受信部33を介して第1復号装置41に送信する。同様に、処理部32は、分散鍵生成部31で生成された第2分散鍵を、送受信部33を介して第2復号装置に送信する。
【0114】
第1復号装置41が
図3におけるユーザ端末100に対応する場合には、第1分散鍵が
図3に示した分散鍵10bに相当することとなる。また、第2復号装置42が
図3における復号サーバ220に対応する場合には、第2分散鍵が
図3に示した分散鍵10aに相当することとなる。
【0115】
次に、第1復号装置41における復号処理に用いられる第1分散鍵を無効化したい場合が生じた際の一連処理について説明する。この場合、処理部32は、送受信部33を介して、第1分散鍵を用いた復号処理を無効化させることを示す第1分散鍵失効情報を、第1復号装置41から受信する。
【0116】
そして、処理部32は、第1分散鍵失効情報を取得した場合には、送受信部33を介して、第2復号装置42に対して、第2分散鍵の削除要求を送信する。すなわち、処理部32は、削除要求を送信することで、第2復号装置42における第2分散鍵を用いた復号処理を禁止させる禁止処理を実行する。
【0117】
次に、処理部32は、禁止処理を実行した後に、送受信部33を介して、第1復号装置41から分散鍵の再生成を要求する再生成要求を受信した場合には、分散鍵生成部31に対して復号鍵から第1分散鍵および第2分散鍵とは異なる新たな分散鍵として、第3分散鍵および第4分散鍵の生成を要求する。
【0118】
分散鍵生成部31は、処理部32からの要求に従って、復号鍵から、新たな分散鍵としての第3分散鍵および第4分散鍵を生成する。なお、関数型暗号を使用する場合には、分散鍵生成部31は、記憶している関数型暗号から復号鍵を生成することができる。また、関数型暗号を使用しない場合には、分散鍵生成部31は、復号鍵自体を記憶しておくこととする。
【0119】
次に、処理部32は、分散鍵生成部31で生成された第3分散鍵を、送受信部33を介して第1復号装置41に送信する。同様に、処理部32は、分散鍵生成部31で生成された第4分散鍵を、送受信部33を介して第2復号装置42に送信する。
【0120】
この結果、復号鍵に相当する第1分散鍵および第2分散鍵による暗号処理が施された暗号データを流用しつつ、譲渡済みの第1分散鍵および第2分散鍵による復号を防止し、新たに生成された第3分散鍵および第4分散鍵による復号を可能とすることができる。すなわち、再暗号化を行うことなしに、既存の暗号データを流用しつつ、アクセス権限の変更を実現することができる。
【0121】
例えば、暗号データを多数保持する会社において、暗号データを管理する社員が復号鍵である第1分散鍵を持ったまま退社する場合、第2復号装置42の第2分散鍵を削除することで、第1分散鍵を無効化することができる。このようなケースでは、従来、暗号データの再暗号化および復号鍵の再生成が必要となっていたが、本発明では、多数の暗号データの再暗号化は不要となる。
【0122】
なお、上述した実施の形態1に係る復号システムおよび実施の形態2に係る鍵管理装置における各機能は、処理回路によって実現される。各機能を実現する処理回路は、専用のハードウェアであってもよく、メモリに格納されるプログラムを実行するプロセッサであってもよい。
図12は、実施の形態1に係る復号システムの各機能を専用のハードウェアである処理回路1000で実現する場合を示した構成図である。また、
図13は、実施の形態1に係る復号システムあるいは実施の形態2に係る鍵管理装置の各機能をプロセッサ2001およびメモリ2002を備えた処理回路2000により実現する場合を示した構成図である。
【0123】
処理回路が専用のハードウェアである場合、処理回路1000は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものが該当する。端末およびサーバのそれぞれにおいて、各部の機能を個別の処理回路1000で実現してもよいし、各部の機能をまとめて処理回路1000で実現してもよい。
【0124】
一方、処理回路がプロセッサ2001の場合、端末あるいはサーバのそれぞれにおいて、各部の機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアおよびファームウェアは、プログラムとして記述され、メモリ2002に格納される。プロセッサ2001は、メモリ2002に記憶されたプログラムを読み出して実行することにより、各機能を実現する。すなわち、復号システムは、処理回路2000により実行されるときに、各機能を実現するための処理ステップが結果的に実行されることになるプログラムを格納するためのメモリ2002を備える。
【0125】
これらのプログラムは、上述した各部の手順あるいは方法をコンピュータに実行させるものであるともいえる。ここで、メモリ2002とは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable and Programmable Read Only Memory)等の、不揮発性または揮発性の半導体メモリが該当する。また、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等も、メモリ2002に該当する。
【0126】
なお、上述した各部の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【0127】
このように、処理回路は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述した各部の機能を実現することができる。
【符号の説明】
【0128】
1、1a、1b 暗号データ(暗号ファイル)、2、2a、2b。2c 復号データ、3 秘密分散データ、4 秘密分散復号データ、5 秘密分散復号データ、6 復号データ、10 暗号鍵、10a、10b、10c 分散鍵、20 復号ポリシデータ、21 復号ポリシ、22 復号ポリシマスタ、30 鍵管理装置、31 分散鍵生成部、32 処理部、33 送受信部、41 第1復号装置、42 第2復号装置、100、100a、100b 端末、110 プロセッサ、120 通信装置、200 サーバ、210 暗号データ保管サーバ、211 通信装置、212 プロセッサ、213 記憶装置、220復号サーバ、221 通信装置、222 プロセッサ、223 記憶装置、300 ネットワーク、1000、2000 処理回路、2001 プロセッサ、2002 メモリ。