JP2014017763A - 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム - Google Patents

暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム Download PDF

Info

Publication number
JP2014017763A
JP2014017763A JP2012155457A JP2012155457A JP2014017763A JP 2014017763 A JP2014017763 A JP 2014017763A JP 2012155457 A JP2012155457 A JP 2012155457A JP 2012155457 A JP2012155457 A JP 2012155457A JP 2014017763 A JP2014017763 A JP 2014017763A
Authority
JP
Japan
Prior art keywords
update
key
encrypted data
encryption
decryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012155457A
Other languages
English (en)
Inventor
Hisayuki Isshiki
寿幸 一色
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012155457A priority Critical patent/JP2014017763A/ja
Publication of JP2014017763A publication Critical patent/JP2014017763A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用情報を与えることなく、暗号更新を行う技術を提供すること。
【解決手段】更新前の鍵情報を取得する更新前鍵取得部101と、更新後の鍵情報を生成する鍵生成部102と、更新前の鍵情報に含まれる更新前復号用鍵情報を、更新後の鍵情報を用いて暗号化した更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化部103と、更新前復号用鍵暗号化データ、および、更新後の鍵情報に含まれる暗号更新用鍵情報を含む更新要求を、暗号更新装置200に送信する更新要求送信部104とを有する暗号更新要求装置100と、更新要求対象の暗号化データおよび更新前復号用鍵暗号化データを含む情報を、暗号更新用鍵情報を用いて暗号化した更新後の暗号化データを生成する暗号更新部201を有する暗号更新装置200とを備える。
【選択図】 図3

Description

本発明は、暗号化データの生成に用いられた暗号鍵を更新する暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラムに関する。
近年、クラウドサービスの普及に伴い、個人の保有するデータがクラウド上(ネットワーク上)のデータベースに記憶されることが多くなっている。また、個人の購買履歴や投薬情報をクラウド上のデータベースに収集し、集まったデータから得られた統計情報などを利用して、リコメンデーションや医療行為に用いるサービスも存在する。
これらの個人が保有するデータや、個人の購買履歴、投薬情報等は、重要な機密情報やプライバシー情報を含む場合がある。したがって、クラウド上におかれたデータベースのセキュリティ対策が充分でないと、そのような情報が漏洩する可能性がある。
そのため、プライバシー情報や機密情報を含むデータをクラウド上におかれたデータベースに保管する場合に、データを暗号化し、暗号化されたデータをデータベースに保管することが考えられている。データの暗号化は、データの保有者である利用者側の装置で行われる場合と、クラウド上のデータベース内で行われる場合とが考えられる。しかし、クラウド上に置かれたデータベースの場合、データベース管理者の身分が明らかでないことが多い。そのため、利用者がデータベース管理者を信頼できない可能性が考えられる。したがって、データベース管理者に対しても、利用者のデータが分からないようにすることが望ましい。この場合、データの暗号化は利用者側の装置で行い、クラウド側に復号用の鍵を秘匿する必要がある。
一方、計算機の進歩などを理由とした計算リソースの増加や更新後の攻撃法の発見などにより、暗号アルゴリズムや暗号鍵の更新が求められることがある。特に暗号鍵に関しては、定期的な更新をシステムにより求められることが多い。以降、暗号アルゴリズムや暗号鍵の更新を、総称して暗号更新というものとする。
例えば、特許文献1には、期限切れの秘密鍵を、セキュリティ性を維持しながら外部記憶媒体に保管する技術が記載されている。この関連技術は、更新前の秘密鍵を、更新後の公開鍵で暗号化してから、外部記憶媒体へ移動する。
また、例えば、特許文献2には、更新前の暗号化データと更新後の暗号化データを分けて管理することにより、逐次的に鍵の更新を行う技術が記載されている。この関連技術は、更新前の暗号化データを更新前の秘密鍵によって復号し、復号されたデータを更新後の公開鍵で再暗号化した後、更新前の暗号化データを消去する。
特開2006−211446号公報 特開2009−104445号公報
暗号アルゴリズムの危殆化や復号用の鍵の漏洩を考慮すると、暗号更新の際には、迅速にデータを更新後の暗号鍵で再暗号化することが望ましい。一般的には、暗号更新の際には、利用者側の装置が、更新前の暗号化データをデータベースから受信して復号し、更新後の暗号アルゴリズムや暗号鍵を用いて新しい暗号化データを生成し、再度データベースに送信すればよい。しかしながら、データ量が多い場合、データ通信量や復号および暗号化の処理コストが増大する。また、クラウド上のデータベースに暗号化データを保存する利用者は、スマートフォンなどの低い計算能力しか持たないデバイスを利用していることも考えられる。したがって、このような暗号更新の処理は、利用者側の装置にとって大きな負荷となる。
しかしながら、特許文献1には、このような更新前の公開鍵で暗号化されたデータを再暗号化することについては記載されていない。
また、特許文献2に記載された関連技術では、暗号化データの復号および再暗号化を逐次的に行う際に、更新前の暗号化データが長時間データベースに保存されたままになることを避ける必要がある。そのためには、なるべく短時間で暗号化データの更新を行う必要がある。したがって、暗号更新処理の多くはデータベース側で行われることが望ましい。ところが、クラウド上のデータベース側でこのような暗号化データの復号および再暗号化を行うには、データベース管理者に平文や復号用の鍵を与えることになる。つまり、データベース管理者に平文や復号用の鍵を与えれば、暗号更新された暗号化データをクラウド上で生成することができるため、暗号更新の際の上述のような利用者側の装置の負荷を軽減することができる。しかしながら、この場合、データベース管理者に平文が漏れてしまうという問題が生じる。
このように、関連技術では、暗号更新を行う際に、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、暗号更新を希望する利用者側の装置の負荷を軽減することができなかった。
本発明は、上述の課題を解決するためになされたもので、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用情報を与えることなく、暗号更新を行う技術を提供することを目的とする。
本発明の暗号更新要求装置は、暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得部と、更新後の鍵情報を生成する鍵生成部と、前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化部と、前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部と、を備える。
また、本発明の暗号更新装置は、前記暗号更新要求装置から前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新部を備える。
また、本発明の復号装置は、前記暗号更新要求装置によって生成された更新後の鍵情報を取得する更新後鍵取得部と、前記暗号更新装置によって生成された更新後の暗号化データを受信する暗号化データ受信部と、前記暗号化データ受信部によって受信された更新後の暗号化データを、前記更新後鍵取得部によって取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号部と、を備える。
また、本発明の暗号更新システムは、前記暗号更新要求装置と、前記暗号更新装置と、を含む。
また、本発明の暗号更新方法は、暗号更新要求装置は、暗号化データが生成される際に用いられた更新前の鍵情報を取得し、更新後の鍵情報を生成し、前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成し、前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信し、前記暗号更新装置は、前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより前記更新後の暗号化データを生成する。
また、本発明のコンピュータ・プログラムは、暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得ステップと、更新後の鍵情報を生成する鍵生成ステップと、前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化ステップと、前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部ステップと、をコンピュータ装置に実行させる。
また、本発明のコンピュータ・プログラムは、前記更新要求を受信する更新要求受信ステップと、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新ステップと、をコンピュータ装置に実行させる。
また、本発明のコンピュータ・プログラムは、前記更新後の鍵情報を取得する更新後鍵取得ステップと、前記更新後の暗号化データを受信する暗号化データ受信ステップと、前記暗号化データ受信ステップで受信された更新後の暗号化データを、前記更新後鍵取得ステップで取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号ステップと、をコンピュータ装置に実行させる。
本発明は、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用情報を与えることなく、暗号更新を行う技術を提供することができる。
本発明の第1の実施の形態としての暗号更新システムの構成を示すブロック図である。 本発明の第1の実施の形態としての暗号更新システムを構成する各装置のハードウェア構成図である。 本発明の第1の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。 本発明の第1の実施の形態としての暗号更新システムの暗号更新動作を説明するフローチャートである。 本発明の第2の実施の形態としての暗号更新システムの構成を示すブロック図である。 本発明の第2の実施の形態としての暗号更新システムを構成する各装置のハードウェア構成図である。 本発明の第2の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。 本発明の第2の実施の形態としての暗号更新システムの復号動作を説明するフローチャートである。 本発明の第3の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。 本発明の第3の実施の形態としての暗号更新システムの暗号更新動作を説明するフローチャートである。 本発明の第3の実施の形態としての暗号更新システムの復号動作を説明するフローチャートである。 本発明の第4の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。 本発明の第4の実施の形態としての暗号更新システムの暗号更新動作を説明するフローチャートである。 本発明の第4の実施の形態としての暗号更新システムの復号動作を説明するフローチャートである。 本発明の第5の実施の形態としての暗号更新システムを構成する各装置の機能ブロック図である。 本発明の第5の実施の形態としての暗号更新システムの復号動作を説明するフローチャートである。
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としての暗号更新システム1の構成を図1に示す。図1において、暗号更新システム1は、暗号更新要求装置100と、暗号更新装置200とを備えている。また、暗号更新要求装置100および暗号更新装置200は、インターネット、LAN(Local Area Network)、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して互いに通信可能に接続されている。
また、暗号更新要求装置100は、鍵記憶装置800と通信可能に接続されている。鍵記憶装置800は、1つ以上の鍵情報を記憶している装置である。鍵情報とは、暗号化データが暗号化された際に用いられた鍵に関する情報である。例えば、1つの鍵情報には、データを暗号化するために用いられた鍵を表す情報およびその鍵を用いて暗号化されたデータを復号するために用いられる鍵を表す情報が含まれていてもよい。また、鍵情報には、暗号化データがその鍵情報によって生成される際に用いられた暗号方式を表す情報が含まれていてもよい。例えば、暗号更新要求装置100および鍵記憶装置800は、ネットワークまたは外部装置接続インタフェースを介して接続されていてもよい。この場合、鍵記憶装置800は、セキュリティ性の高い装置であることが望ましい。また、暗号更新要求装置100および鍵記憶装置800間の通信は、セキュリティ性が確保されたものであることが望ましい。あるいは、暗号更新要求装置100および鍵記憶装置800は、同一のコンピュータ装置によって構成されていてもよい。
また、暗号更新装置200は、暗号化データ記憶装置900と通信可能に接続されている。暗号化データ記憶装置900は、鍵情報を用いて暗号化された1つ以上の暗号化データを記憶している装置である。例えば、暗号更新装置200および暗号化データ記憶装置900は、ネットワークまたは外部装置接続インタフェースを介して接続されていてもよい。あるいは、暗号更新装置200および暗号化データ記憶装置900は、同一のコンピュータ装置によって構成されていてもよい。また、例えば、暗号更新装置200は、暗号化データ記憶装置900をクラウド型のデータベースとして機能させるための管理装置であってもよい。
なお、図1には、各装置を1つずつ示したが、本発明の暗号更新システムが備える各装置の数および接続される各装置の数を限定するものではない。
次に、暗号更新システム1を構成する各装置のハードウェア構成を図2に示す。
図2において、暗号更新要求装置100は、CPU(Central Processing Unit)1001と、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003と、記憶装置1004と、ネットワークインタフェース1005とを備えたコンピュータ装置によって構成されている。例えば、暗号更新要求装置100は、暗号化データの保有者である利用者によって携帯される端末によって構成されていてもよい。
ROM1003および記憶装置1004には、コンピュータ装置を本実施の形態の暗号更新要求装置100として機能させるためのコンピュータ・プログラムおよび各種データが記憶されている。
CPU1001は、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行する。
ネットワークインタフェース1005は、ネットワークを介して暗号更新装置200との通信を行うモジュールである。
さらに、暗号更新要求装置100は、鍵記憶装置800と接続するための図示しない他のネットワークインタフェースまたは外部装置接続インタフェースを備えていてもよい。なお、暗号更新要求装置100および鍵記憶装置800が同一のコンピュータ装置によって構成される場合、鍵記憶装置800は、記憶装置1004によって構成可能である。
また、暗号更新装置200は、CPU2001と、RAM2002と、ROM2003と、ハードディスク等の記憶装置2004と、ネットワークインタフェース2005とを備えたコンピュータ装置によって構成されている。例えば、暗号更新装置200は、クラウド型のデータベースとしての暗号化データ記憶装置900を運営するデータベース管理者によって管理されるコンピュータ装置によって構成される。
ROM2003および記憶装置2004には、コンピュータ装置を本実施の形態の暗号更新装置200として機能させるためのコンピュータ・プログラムおよび各種データが記憶されている。
CPU2001は、ROM2003および記憶装置2004に記憶されたコンピュータ・プログラムおよび各種データをRAM2002に読み込んで実行する。
ネットワークインタフェース2005は、ネットワークを介して暗号更新要求装置100との通信を行うモジュールである。
さらに、暗号更新装置200は、暗号化データ記憶装置900と接続するための他のネットワークインタフェースまたは外部装置接続インタフェースを備えていてもよい。なお、暗号更新装置200および暗号化データ記憶装置900が同一のコンピュータ装置によって構成される場合、暗号化データ記憶装置900は、記憶装置2004によって構成可能である。
次に、暗号更新システム1を構成する各装置の機能ブロック構成を図3に示す。
まず、暗号更新要求装置100の機能ブロックについて説明する。図3において、暗号更新要求装置100は、更新前鍵取得部101と、鍵生成部102と、更新前復号用鍵暗号化部103と、更新要求送信部104とを備える。ここで、更新前鍵取得部101と、鍵生成部102と、更新前復号用鍵暗号化部103とは、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001によって構成される。また、更新要求送信部104は、ネットワークインタフェース1005と、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001とによって構成される。なお、暗号更新要求装置100およびその各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
更新前鍵取得部101は、暗号化データ記憶装置900に記憶されている暗号化データが生成される際に用いられた更新前の鍵情報を、鍵記憶装置800から取得する。
鍵生成部102は、更新後の鍵情報を生成する。更新後の鍵情報とは、鍵記憶装置800に記憶されている更新前の鍵情報を暗号更新するためのものである。
また、鍵生成部102は、更新後の鍵情報として、更新前の鍵情報と同一の暗号方式における鍵情報を生成してもよい。あるいは、鍵生成部102は、更新後の鍵情報として、更新前の暗号方式とは異なる更新後の暗号方式における新たな鍵情報を生成してもよい。その場合、鍵生成部102は、更新後の鍵情報に、更新後の暗号方式に関する情報も含めるようにすればよい。
また、鍵生成部102は、更新後の鍵情報を、鍵記憶装置800に登録してもよい。また、鍵生成部102は、暗号更新装置200から、後述の暗号更新の完了を通知されると、更新前の鍵情報を、鍵記憶装置800から削除するようにしてもよい。
更新前復号用鍵暗号化部103は、更新前復号用鍵情報を、更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する。ここで、更新前復号用鍵情報とは、更新前の鍵情報に含まれる情報のうち更新前の暗号化データの復号に必要となる情報である。鍵生成部102により暗号方式が更新されている場合、更新前復号用鍵情報には、更新前の暗号方式を表す情報も含まれていてよい。
更新要求送信部104は、更新前復号用鍵暗号化データおよび暗号更新用鍵情報を含む更新要求を、暗号更新装置200に送信する。ここで、暗号更新用鍵情報とは、更新後の鍵情報に含まれる情報のうち暗号更新に必要となる情報である。また、暗号更新用鍵情報は、新たな暗号化において必要な情報を含み、前述の更新前復号用鍵暗号化データを復号可能な情報を含まない情報である。
また、更新要求送信部104は、更新要求に、暗号更新の対象とする暗号化データを特定する情報を含めてもよい。また、更新要求送信部104は、このような暗号化データを特定する情報を、入力装置(図示せず)などを介して外部から取得してもよい。
次に、暗号更新装置200の各機能ブロックについて説明する。
図3において、暗号更新装置200は、暗号更新部201を備える。ここで、暗号更新部201は、ネットワークインタフェース2005と、ROM2003および記憶装置2004に記憶されたコンピュータ・プログラムおよび各種データをRAM2002に読み込んで実行するCPU2001とによって構成される。なお、暗号更新装置200およびその各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
暗号更新部201は、暗号更新要求装置100から受信される更新要求が対象とする暗号化データ、および、更新要求に含まれる更新前復号用鍵暗号化データを含む情報を、更新要求に含まれる暗号更新用鍵情報を用いて暗号化することにより、更新後の暗号化データを生成する。例えば、暗号更新部201は、更新要求が対象とする暗号化データを、更新要求に含まれる暗号化データを特定する情報に基づいて、暗号化データ記憶装置900から取得すればよい。
また、暗号更新部201は、生成した更新後の暗号化データを、暗号化データ記憶装置900に登録する。また、暗号更新部201は、更新前の暗号化データを、暗号化データ記憶装置900から削除する。
以上のように構成された暗号更新システム1の暗号更新動作について、図4を参照して説明する。なお、図4において、左図は暗号更新要求装置100の動作を示し、右図は暗号更新装置200の動作を示し、左右を結ぶ破線の矢印はデータの流れを示すものとする。
また、暗号化データ記憶装置900には、更新前の暗号化データが記憶されており、鍵記憶装置800には、更新前の暗号化データが暗号化される際に用いられた更新前の鍵情報が記憶されているものとする。
まず、更新前鍵取得部101は、鍵記憶装置800から、更新前の鍵情報を取得する(ステップS1)。
次に、暗号更新要求装置100の鍵生成部102は、更新後の鍵情報を生成する(ステップS2)。そして、鍵生成部102は、更新後の鍵情報を鍵記憶装置800に登録する。
次に、更新前復号用鍵暗号化部103は、ステップS1で取得された更新前の鍵情報に含まれる情報のうち更新前復号用鍵情報を、ステップS2で生成された更新後の鍵情報を用いて暗号化することにより、更新前復号用鍵暗号化データを生成する(ステップS3)。
次に、更新要求送信部104は、ステップS3で生成された更新前復号用鍵暗号化データと、ステップS2で生成された更新後の鍵情報のうち暗号更新に必要となる暗号更新用鍵情報とを含む更新要求を、暗号更新装置200に送信する(ステップS4)。例えば、前述のように、暗号更新用鍵情報には、暗号更新に必要となる鍵を表す情報や、更新後の暗号方式を表す情報が含まれ、更新前復号用鍵暗号化データを復号可能な情報は含まれない。
次に、暗号更新装置200の暗号更新部201は、更新要求を受信し、受信した更新要求が対象とする暗号化データを、暗号化データ記憶装置900から取得する(ステップS5)。
次に、暗号更新部201は、この更新要求に含まれる更新前復号用鍵暗号化データと、ステップS5で取得された暗号化データとを含む情報を、この更新要求に含まれる暗号更新用鍵情報を用いて暗号化することにより、更新後の暗号化データを生成する(ステップS6)。
次に、暗号更新部201は、ステップS6で生成された更新後の暗号化データを、暗号化データ記憶部30に登録し、更新前の暗号化データを削除する(ステップS7)。
また、この後、暗号更新部201は、暗号更新の完了を暗号更新要求装置100に通知してもよい。その場合、暗号更新要求装置100は、鍵記憶装置800から、更新前の鍵情報を削除してもよい。
以上で、暗号更新システム1は、暗号更新動作を終了する。
なお、このようにして生成された更新後の暗号化データは、更新後の鍵情報を取得可能な復号装置によって元のデータに復号可能である。具体的には、このような更新後の暗号化データは、更新後の鍵情報によって、更新前復号用鍵暗号化データと、更新前の暗号化データとに復号可能である。そして、そのようにして得られた更新前復号用鍵暗号化データは、更新後の鍵情報によって、更新前復号用鍵情報に復号可能である。その結果、前述のように得られた更新前の暗号化データは、前述のように得られた更新前復号用鍵情報によって元のデータに復号可能となる。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としての暗号更新システムは、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、暗号更新を行うことができる。
その理由は、暗号更新要求装置の鍵生成部が更新後の鍵情報を生成すると、更新前復号用鍵暗号化部が、更新前の鍵情報に含まれる情報のうち更新前の暗号化データを復号する際に必要となる更新前復号用鍵情報を、更新後の鍵情報を用いて暗号化した更新前復号用鍵暗号化データを生成し、更新要求送信部が、更新後の鍵情報に含まれる情報のうち暗号更新に必要となる暗号更新用鍵情報と更新前復号用鍵暗号化データとを含めた更新要求を、暗号更新装置に送信するからである。
そして、暗号更新装置の暗号化部は、更新要求の対象となる暗号化データと、更新前復号用鍵暗号化データとを含む情報を、暗号更新用鍵情報で暗号化することにより更新後の暗号化データを生成するからである。
このように、本実施の形態の暗号更新要求装置は、暗号更新の対象となる暗号化データを受信する処理、受信した暗号化データを一旦復号する処理、および、一旦復号したデータを更新後の鍵により再度暗号化する処理を行う必要がない。そして、本実施の形態の暗号更新要求装置は、更新前の鍵情報および更新後の鍵情報に基づく更新要求を暗号更新装置に送信するだけでよい。したがって、本実施の形態は、暗号更新を希望する利用者側の装置として暗号更新要求装置を適用することにより、暗号更新を希望する利用者側の装置の負荷を軽減することになる。
しかも、本実施の形態の暗号更新装置は、更新後の暗号化データを生成する際に、更新前の暗号化データを一旦復号する処理を行う必要がなく、更新前の暗号化データを復号するための情報や、更新前の暗号化データが暗号化される前の元のデータを知り得ない。なぜなら、暗号更新要求装置から受信される更新要求に含まれる更新前復号用鍵暗号化データは、更新後の鍵情報によって暗号化されているからである。また、更新要求に含まれる暗号更新用鍵情報には、更新後の鍵情報に含まれる情報のうち暗号更新に必要な情報は含まれるが、更新前復号用鍵暗号化データを復号可能な情報は含まれないからである。つまり、暗号更新装置は、更新前復号用鍵暗号化データを復号することはできない。したがって、本実施の形態は、暗号更新装置の管理者であるデータベース管理者に対して、復号用の情報を与えることがなく、元の平文データを秘匿したままにすることができる。
(第2の実施の形態)
本発明の第2の実施の形態としての暗号更新システム2の構成を図5に示す。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。本実施の形態では、本発明の暗号更新システムに、暗号更新された暗号化データを復号する復号装置が含まれる例について説明する。
図5において、暗号更新システム2は、本発明の第1の実施の形態としての暗号更新システム1に対して、暗号更新装置200に替えて暗号更新装置220を備え、さらに、復号装置300を備える点が異なる。また、暗号更新装置220および復号装置300は、インターネット、LAN、公衆回線網、無線通信網またはこれらの組合せ等によって構成されるネットワークを介して互いに通信可能に接続されている。また、復号装置300は、鍵記憶装置800とも通信可能に接続されている。例えば、復号装置300および鍵記憶装置800は、ネットワークまたは外部装置接続インタフェースを介して接続されていてもよい。この場合、復号装置300および鍵記憶装置800間の通信は、セキュリティ性が確保されたものであることが望ましい。あるいは、復号装置300および鍵記憶装置800は、同一のコンピュータ装置によって構成されていてもよい。さらには、暗号更新要求装置100と、復号装置300と、鍵記憶装置800とが、同一のコンピュータ装置によって構成されていてもよい。なお、図5には、各装置を1つずつ示したが、本発明の暗号更新システムが備える各装置の数および接続される各装置の数を限定するものではない。
次に、暗号更新システム2を構成する各装置のハードウェア構成を図6に示す。
図6において、暗号更新装置220は、本発明の第1の実施の形態における暗号更新装置200と同一のハードウェアによって構成されている。また、復号装置300は、CPU3001と、RAM3002と、ROM3003と、ハードディスク等の記憶装置3004と、ネットワークインタフェース3005とを備えたコンピュータ装置によって構成されている。例えば、復号装置300は、暗号化されたデータの保有者である利用者によって携帯される端末によって構成されていてもよい。
ROM3003および記憶装置3004には、コンピュータ装置を本実施の形態の復号装置300として機能させるためのコンピュータ・プログラムおよび各種データが記憶されている。
CPU3001は、ROM3003および記憶装置3004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行する。
ネットワークインタフェース3005は、ネットワークを介して暗号更新装置220との通信を行うモジュールである。
さらに、復号装置300は、鍵記憶装置800と接続するための図示しない他のネットワークインタフェースまたは外部装置接続インタフェースを備えていてもよい。なお、復号装置300および鍵記憶装置800が同一のコンピュータ装置によって構成される場合、鍵記憶装置800は、記憶装置3004によって構成可能である。
次に、暗号更新システム2を構成する各装置の機能ブロックについて、図7を参照して説明する。
まず、暗号更新装置220の機能ブロックについて説明する。
図7において、暗号更新装置220は、本発明の第1の実施の形態としての暗号更新装置200と同一の構成に加えて、さらに、暗号化データ送信部222を備えている。暗号化データ送信部222は、ネットワークインタフェース2005と、ROM2003および記憶装置2004に記憶されたコンピュータ・プログラムおよび各種データをRAM2002に読み込んで実行するCPU2001とによって構成される。なお、暗号更新装置220およびその各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
暗号化データ送信部222は、暗号化データ記憶装置900に記憶されている暗号化データを、復号装置300に対して送信する。例えば、暗号化データ送信部222は、復号装置300から受信する暗号化データの取得要求に応じて、該当する暗号化データを送信してもよい。
次に、復号装置300の機能ブロックについて説明する。
図7において、復号装置300は、更新後鍵取得部301と、暗号化データ受信部302と、復号部303とを備える。ここで、更新後鍵取得部301および復号部303は、ROM3003および記憶装置3004に記憶されたコンピュータ・プログラムおよび各種データをRAM3002に読み込んで実行するCPU3001によって構成される。また、暗号化データ受信部302は、ネットワークインタフェース3005と、ROM3003および記憶装置3004に記憶されたコンピュータ・プログラムおよび各種データをRAM3002に読み込んで実行するCPU3001とによって構成される。なお、復号装置300およびその各機能ブロックを構成するハードウェア構成は上述の構成に限定されない。
更新後鍵取得部301は、鍵記憶装置800から、更新後の鍵情報を取得する。
暗号化データ受信部302は、暗号更新装置220から、更新後の暗号化データを受信する。例えば、暗号化データ受信部302は、暗号更新装置220に対して暗号化データの取得要求を送信することにより、該当する暗号化データを受信してもよい。具体的には、暗号化データ受信部302は、復号対象とする暗号化データを特定する情報を、暗号化データの取得要求に含めて暗号更新装置220に送信すればよい。また、暗号化データ受信部302は、このような復号対象とする暗号化データを特定する情報を、入力装置(図示せず)を介して取得してもよい。これにより、復号対象となる暗号化データは、利用者によって指定可能となる。
復号部303は、更新後の暗号化データを、更新後の鍵情報を用いて元のデータに復号する。具体的には、復号部303は、更新後の暗号化データを、更新後の鍵情報を用いて復号することにより、更新前復号用鍵暗号化データおよび更新前の暗号化データを取得する。また、復号部303は、取得した更新前復号用鍵暗号化データを、更新後の鍵情報を用いて復号することにより、更新前復号用鍵情報を取得する。また、復号部303は、取得した更新前復号用鍵情報を用いて、更新前の暗号化データを元のデータに復号する。
以上のように構成された暗号更新システム2の動作について、図8を参照して説明する。なお、暗号更新システム2の暗号更新動作は、図4を参照して説明した本発明の第1の実施の形態としての暗号更新システム1と同様であるため、本実施の形態における詳細な説明を省略する。ここでは、暗号更新システム2における復号動作について説明する。なお、図8において、左図は復号装置300の動作を示し、右図は暗号更新装置220の動作を示し、左右を結ぶ破線の矢印はデータの流れを示すものとする。
また、暗号化データ記憶装置900には、更新後の暗号化データが記憶されており、鍵記憶装置800には、更新後の鍵情報が記憶されているものとする。
まず、復号装置300の暗号化データ受信部302は、暗号更新装置220に対して更新後の暗号化データの取得要求を送信する(ステップS11)。この取得要求には、例えば、復号対象とする更新後の暗号化データを特定する情報が含まれる。
次に、暗号更新装置220の暗号化データ送信部222は、ステップS11で送信された取得要求が対象とする更新後の暗号化データを、暗号化データ記憶部30から取得する(ステップS12)。
次に、暗号化データ送信部222は、ステップS12で取得した更新後の暗号化データを、復号装置300に送信する(ステップS13)。
次に、復号装置300の暗号化データ受信部302は、更新後の暗号化データを受信する(ステップS14)。
次に、更新後鍵取得部301は、鍵記憶装置800に記憶された更新後の鍵情報を取得する(ステップS15)。
次に、復号部303は、ステップS14で受信された更新後の暗号化データを、ステップS15で取得された更新後の鍵情報を用いて復号する(ステップS16)。これにより、更新前復号用鍵暗号化データと、更新前の暗号化データとが得られる。
次に、復号部303は、ステップS16で得られた更新前復号用鍵暗号化データを、ステップS15で取得された更新後の鍵情報を用いて復号する(ステップS17)。これにより、更新前復号用鍵情報が得られる。
次に、復号部303は、ステップS16で得られた更新前の暗号化データを、ステップS17で得られた更新前復号用鍵情報を用いて復号する(ステップS18)。もし、更新前復号用鍵情報に更新前の暗号方式を表す情報も含まれる場合、復号部303は、更新前の暗号方式により、更新前復号用鍵情報を用いて、更新前の暗号化データを復号すればよい。これにより、更新前の暗号化データが暗号化される前の元のデータが得られる。
以上で、暗号更新システム2は復号動作を終了する。
次に、本発明の第2の実施の形態の効果について述べる。
本発明の第2の実施の形態としての暗号更新システムは、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、暗号更新された暗号化データから、元のデータを復号することができる。
その理由は、復号装置の復号部が、更新後の暗号化データを、更新後の鍵情報を用いて復号することにより、更新前の暗号化データと、更新前復号用鍵暗号化データとを取得するからである。そして、復号部が、この更新前復号用鍵暗号化データを、更新後の鍵情報を用いて復号することにより、更新前の暗号化データを復号するための更新前復号用鍵情報を取得するからである。その結果、復号部は、この更新前復号用鍵情報を用いて、更新前の暗号化データを復号可能となるからである。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第2の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。本実施の形態では、本発明において公開鍵暗号方式を適用する場合について説明する。公開鍵暗号方式は、公開鍵および秘密鍵という2つの対になる鍵を用いて暗号化および復号を行う方式である。公開鍵によって暗号化された暗号化データは秘密鍵によって復号可能である。また、公開鍵に基づき秘密鍵を求めることが困難とされている。公開鍵は一般に公開され、秘密鍵はデータの所有者によって秘匿されるのが一般的である。
まず、本発明の第3の実施の形態としての暗号更新システム3の構成を図9に示す。図9において、暗号更新システム3は、本発明の第2の実施の形態としての暗号更新システム2に対して、暗号更新要求装置100に替えて暗号更新要求装置130と、暗号更新装置220に替えて暗号更新装置230と、復号装置300に替えて復号装置330とを備える点が異なる。なお、本実施の形態において、暗号更新装置230と、復号装置330と、鍵記憶装置800とは、同一のコンピュータ装置である利用者装置によって構成されていてもよい。また、暗号更新システム3を構成する各装置は、図6を参照して説明した本発明の第2の実施の形態としての暗号更新システム2を構成する各装置と同様のハードウェアによって構成可能である。
なお、本実施の形態では、鍵記憶装置800は、公開鍵暗号方式における公開鍵および秘密鍵を含む鍵情報を記憶しているものとする。
また、本実施の形態では、暗号化データ記憶装置900は、鍵記憶装置800に記憶された更新前の公開鍵により暗号化された暗号化データを記憶しているものとする。
まず、暗号更新要求装置130の機能ブロックについて説明する。
図9において、暗号更新要求装置130は、本発明の第2の実施の形態としての暗号更新要求装置100に対して、鍵生成部102に替えて鍵生成部132と、更新前復号用鍵暗号化部103に替えて更新前復号用鍵暗号化部133と、更新要求送信部104に替えて更新要求送信部134とを備える点が異なる。
鍵生成部132は、公開鍵暗号方式における更新後の公開鍵および秘密鍵を含む更新後の鍵情報を生成する。また、鍵生成部132は、更新後の公開鍵および秘密鍵を含む更新後の鍵情報を、鍵記憶装置800に登録してもよい。また、鍵生成部132は、暗号更新装置230における暗号更新が完了すると、更新前の公開鍵および秘密鍵を含む更新前の鍵情報を、鍵記憶装置800から削除してもよい。
更新前復号用鍵暗号化部133は、本発明の更新前復号用鍵情報として、更新前の秘密鍵を適用する。すなわち、更新前復号用鍵暗号化部133は、更新前の秘密鍵を、更新後の公開鍵で暗号化したものを、更新前復号用鍵暗号化データとして生成する。
更新要求送信部134は、本発明の暗号更新用鍵情報として、更新後の公開鍵を適用する。すなわち、更新要求送信部134は、更新前復号用鍵暗号化データと、更新後の公開鍵とを、更新要求に含めて暗号更新装置230に送信する。
次に、暗号更新装置230の機能ブロックについて説明する。
図9において、暗号更新装置230は、本発明の第2の実施の形態としての暗号更新装置200に対して、暗号更新部201に替えて暗号更新部231を備える点が異なる。
暗号更新部231は、暗号更新要求装置130から受信した更新要求が対象とする暗号化データと、この更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、更新要求に含まれる暗号更新用鍵情報としての更新後の公開鍵を用いて暗号化したものを、更新後の暗号化データとする。また、暗号更新部231は、更新後の暗号化データを暗号化データ記憶装置900に登録し、更新前の暗号化データを削除する。
次に、復号装置330の機能ブロックについて説明する。
図9において、復号装置330は、本発明の第2の実施の形態としての復号装置300に対して、復号部303に替えて復号部333を備える点が異なる。
復号部333は、更新後の秘密鍵を用いて、暗号化データ受信部302によって受信された更新後の暗号化データを復号する。これにより、更新前復号用鍵暗号化データと、更新前の暗号化データとが得られる。そして、復号部333は、更新後の秘密鍵を用いて、更新前復号用鍵暗号化データを復号する。これにより、更新前の秘密鍵が得られる。そして、復号部333は、更新前の秘密鍵を用いて、更新前の暗号化データを復号する。
以上のように構成された暗号更新システム3の動作について、図10〜図11を参照して説明する。なお、以下の説明において、更新前の公開鍵をpk_bと記載し、更新前の秘密鍵をsk_bと記載する。また、更新後の公開鍵をpk_n、更新後の秘密鍵をsk_nと記載する。また、公開鍵暗号方式における暗号化アルゴリズムをEncと記載する。また、暗号化される前の元のデータをd_iと記載する。また、暗号化アルゴリズムEncにより公開鍵pk_xを用いてデータd_xを暗号化した暗号化データをEnc_{pk_x}(d_x)と記載する。また、暗号化データ記憶装置900には、更新前の暗号化データであるEnc_{pk_b}(d_i)が記憶されているものとする。また、Enc_{pk_b}(d_i)を暗号化データ記憶装置900において特定する情報としてアドレスadd_iが、暗号更新要求装置130に対して与えられているものとする。
図10では、まず、暗号更新要求装置130の更新前鍵取得部101は、鍵記憶装置800から、更新前の鍵情報を取得する(ステップS20)。このとき、更新前鍵取得部101は、更新前復号用鍵情報である更新前の秘密鍵sk_bを少なくとも取得すればよい。
次に、鍵生成部132は、更新後の公開鍵pk_nおよび秘密鍵sk_nを含む更新後の鍵情報を生成する(ステップS21)。そして、鍵生成部132は、更新後の鍵情報を、鍵記憶装置800に記憶させる。
次に、更新前復号用鍵暗号化部133は、ステップS20で取得された更新前の秘密鍵sk_b(更新前復号用鍵情報)を、更新後の公開鍵pk_nで暗号化したEnc_{pk_n}(sk_b)を、更新前復号用鍵暗号化データとして生成する(ステップS22)。
次に、更新要求送信部134は、更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)と、更新後の公開鍵pk_n(暗号更新用鍵情報)と、暗号更新の要求対象となる更新前の暗号化データを特定するアドレスadd_iとを、更新要求requestに含めて暗号更新装置230に送信する(ステップS23)。
次に、更新要求requestを受信した暗号更新装置230の暗号更新部231は、更新要求requestに含まれるアドレスadd_iによって特定される更新前の暗号化データEnc_{pk_b}(d_i)を、暗号化データ記憶装置900から取得する(ステップS24)。
次に、暗号更新部231は、更新前の暗号化データと更新前復号用鍵暗号化データとを連結することによりD_i=Enc_{pk_b}(d_i)||Enc_{pk_n}(sk_b)を生成する。ここで、“||”は、ビットで表されたデータの連結を表す。そして、暗号更新部231は、このD_iを、更新後の公開鍵pk_nを用いて暗号化することにより、更新後の暗号化データとしてEnc_{pk_n}(D_i)を生成する(ステップS25)。
次に、暗号更新部231は、更新後の暗号化データEnc_{pk_n}(D_i)を暗号化データ記憶装置900に登録する。さらに、暗号更新部231は、暗号化データ記憶装置900から、更新前の暗号化データEnc_{pk_b}(d_i)を削除する(ステップS26)。これにより、アドレスadd_iにより更新後の暗号化データEnc_{pk_n}(D_i)が特定されるようになったものとする。
また、この時点で、暗号更新部231は、暗号更新要求装置130に、暗号更新の完了を通知してもよい。そして、通知を受けた暗号更新要求装置130は、鍵記憶装置800から、更新前の鍵情報(pk_bおよびsk_b)を削除してもよい。
以上で、暗号更新システム3は、暗号更新動作を終了する。
次に、暗号更新システム3が、更新後の暗号化データを復号する動作を図11に示す。
図11において、まず、復号装置330の暗号化データ受信部302は、復号対象とする更新後の暗号化データを特定するアドレスadd_iを含む取得要求を、暗号更新装置230に対して送信する(ステップS30)。
次に、暗号更新装置230の暗号化データ送信部222は、取得要求に含まれるアドレスadd_iによって特定される更新後の暗号化データEnc_{pk_n}(D_i)を、暗号化データ記憶装置900から取得する(ステップS31)。
次に、暗号化データ送信部222は、更新後の暗号化データEnc_{pk_n}(D_i)を、復号装置330に対して送信する(ステップS32)。
そして、復号装置330の暗号化データ受信部302は、暗号化データEnc_{pk_n}(D_i)を受信する(ステップS33)。
次に、更新後鍵取得部301は、鍵記憶装置800から、更新後の鍵情報を取得する(ステップS34)。このとき、更新後鍵取得部301は、更新後の秘密鍵sk_nを少なくとも取得すればよい。
次に、復号部333は、ステップS33で受信された暗号化データEnc_{pk_n}(D_i)を、ステップS34で取得された更新後の秘密鍵sk_nを用いて復号する(ステップS35)。これにより、更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)および更新前の暗号化データEnc_{pk_b}(d_i)が連結されたデータD_i=Enc_{pk_n}(sk_b)||Enc_{pk_b}(d_i)が得られる。
次に、復号部333は、更新後の秘密鍵sk_nを用いて、ステップS35で得られた更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)を復号する(ステップS36)。これにより、更新前の秘密鍵sk_bが得られる。
次に、復号部333は、ステップS36で得られた更新前の秘密鍵sk_bを用いて、ステップS35で得られた更新前の暗号化データEnc_{pk_b}(d_i)を復号する(ステップS37)。これにより、暗号化される前のデータd_iが得られる。
以上で、暗号更新システム3の復号動作の説明を終了する。
次に、本実施の形態としての暗号更新システム3において、公開暗号方式としてエルガマル暗号を適用した具体例について説明する。まず、エルガマル暗号について説明する。エルガマル暗号は鍵生成、暗号化、および、復号の3つの処理からなる公開鍵暗号方式である。以降、簡単のため、整数をpで割った余りの集合をZ_pと記載し、{1,…,p-1}をZ*_{p}と記す。
<鍵生成>エルガマル暗号の鍵生成は、以下の通り行われる。セキュリティパラメータをκとする。
1:κビットの素数pおよびZ*_{p}の生成元gを選ぶ。
2:Z_{p-1}からxをランダムに選ぶ。
3:y = g^{x} mod p を計算する。
4:公開鍵pk = (p, g, y)、秘密鍵sk=(x)とする。
<暗号化>エルガマル暗号の暗号化は、公開鍵pk=(p,g,y) およびメッセージM?Z*_{p}を入力として、以下の通り行われる。
1.Z_{p-1}からrをランダムに選ぶ。
2.C_1=g^{r} mod p, C_2=M・y^{r} mod p を計算する。
3.暗号文を(C_1, C_2)とする。
<復号>エルガマル暗号の復号は、秘密鍵sk=(x)および暗号文(C_1, C_2)を入力として、以下の通り行われる。
1.M’=C_2/(C_1)^{x} mod p を計算する。
2.メッセージをM’とする。
このようなエルガマル暗号を適用した場合の暗号更新システム3の動作について説明する。
なお、鍵記憶装置800には、エルガマル暗号の更新前の公開鍵pk_b=(p_b, g_b, y_b)および秘密鍵sk_b=(x_b)を含む鍵情報が記憶されているものとする。
また、暗号化データ記憶装置900には、公開鍵pk_bを用いて暗号化されたデータ Enc_{pk_b}(d_i)=(C_{1,b}=g_b^{r}, C_{2,b}=d_i・y_b^{r})を含む暗号化データが記憶されているものとする。さらに暗号化データEnc_{pk_b}(d_i)を特定するためのアドレスadd_iは、暗号更新要求装置130に与えられているものとする。
まず、エルガマル暗号を適用した場合の暗号更新システム3の暗号更新動作について説明する。
ここでは、まず、暗号更新要求装置130の更新前鍵取得部101は、鍵記憶装置800から更新前の鍵情報を取得する(ステップS20)。このとき、更新前鍵取得部101は、更新前復号用鍵情報である更新前の秘密鍵sk_b=(x_b)を少なくとも取得すればよい。
次に、鍵生成部132は、更新後の鍵情報として、更新後の公開鍵pk_n=(p_n, g_n, y_n)および更新後の秘密鍵sk_n=(x_n)を生成し、鍵記憶装置800に記憶させる(ステップS21)。
次に、更新前復号用鍵暗号化部133は、ステップS20で取得された更新前の秘密鍵sk_b=(x_b)を、更新後の公開鍵pk_n=(p_n, g_n, y_n)を用いて暗号化し、更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)=(g_n^{R}, sk_b・y_n^{R})を生成する(ステップS22)。
次に、更新要求送信部134は、暗号更新の対象とする更新前の暗号化データのアドレスadd_iと、更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)と、暗号更新用鍵情報である更新後の公開鍵pk_nとを含む更新要求requestを、暗号更新装置230に送信する(ステップS23)。
次に、更新要求request を受け取った暗号更新装置230では、暗号更新部231は、更新要求request に含まれるアドレスadd_iによって特定される更新前の暗号化データ Enc_{pk_b}(d_i) =(C_{1,b}=g_b^{r}, C_{2,b}=d_i・y_b^{r})を、暗号化データ記憶装置900から取得する(ステップS24)。
次に、暗号更新部231は、D_i=Enc_{pk_b}(d_i)||Enc_{pk_n}(sk_b)を、更新後の公開鍵pk_nを用いて暗号化することにより、更新後の暗号化データEnc_{pk_n}(D_i)=(g_n^{r_n}, D_i・y_n^{r_n}) を生成する(ステップS25)。
次に、暗号更新部231は、更新後の暗号化データEnc_{pk_n}(D_i)を、暗号化データ記憶装置900に登録するとともに、暗号化データ記憶装置900から更新前の暗号化データEnc_{pk_b}(d_i)を削除する(ステップS26)。これにより、アドレスadd_iにより更新後の暗号化データEnc_{pk_n}(D_i)が特定されるようになったものとする。
そして、この時点で、暗号更新部231は、暗号更新要求装置130に暗号更新の完了を通知してもよい。その場合、通知を受けた暗号更新要求装置130は、鍵記憶装置800から、更新前の公開鍵pk_bおよび更新前の秘密鍵sk_bを削除してもよい。
以上で、エルガマル暗号を適用した場合における暗号更新システム3の暗号更新動作の説明を終了する。
次に、エルガマル暗号を適用した場合における暗号更新システム3の復号動作について説明する。
まず、復号装置330の暗号化データ受信部302は、復号対象とする更新後の暗号化データを特定するアドレスadd_iを、暗号更新装置230に対して送信する(ステップS30)。
次に、暗号更新装置230の暗号化データ送信部222は、暗号化データ記憶装置900においてアドレスadd_iによって特定される暗号化データ Enc_{pk_n}(D_i) =(g_n^{r_n}, D_i・y_n^{r_n})を取得し(ステップS31)、復号装置330に送信する(ステップS32)。そして、復号装置330の暗号化データ受信部302は、復号対象として更新後の暗号化データEnc_{pk_n}(D_i)を受信する(ステップS33)。
次に、更新後鍵取得部301は、鍵記憶装置800から更新後の秘密鍵sk_n=(x_n)を取得する(ステップS34)。
次に、復号部333は、ステップS34で取得された更新後の秘密鍵sk_n=(x_n)を用いて、暗号化データEnc_{pk_n}(D_i)を復号する(ステップS35)。これにより、D_i=Enc_{pk_n}(sk_b)||Enc_{pk_b}(d_i)が得られる。
次に、復号部333は、ステップS34で取得された更新後の秘密鍵sk_nを用いて、更新前復号用鍵暗号化データであるEnc_{pk_n}(sk_b)=(g_n^{R}, sk_b・y_n^{R})を復号する(ステップS36)。これにより、更新前の秘密鍵sk_b=(x_b)が得られる。
次に、復号部333は、ステップS36で得られた更新前の秘密鍵sk_b=(x_b)を用いて、ステップS35で得られた更新前の暗号化データEnc_{pk_b}(d_i)=(g_b^{r}, d_i・y_b^{r}) を復号する(ステップS37)。これより、元のデータd_iが得られる。
以上で、エルガマル暗号を適用した場合における暗号更新システム3の復号動作の説明を終了する。
なお、本実施の形態において、更新前の公開鍵暗号方式と、更新後の公開鍵暗号方式とが同一である例について説明したが、本実施の形態は、更新前および更新後の公開鍵暗号方式が異なる場合にも適用可能である。この場合、鍵記憶装置800に記憶される鍵情報に、その公開鍵および秘密鍵を生成した公開鍵暗号方式を表す情報が含まれていればよい。また、この場合、暗号更新要求装置130の更新前復号用鍵暗号化部133は、更新前の秘密鍵および更新前の公開鍵暗号方式を表す情報を更新前復号用鍵情報とすればよい。そして、更新前復号用鍵暗号化部133は、更新前復号用鍵情報を更新後の公開鍵を用いて更新後の公開鍵暗号方式により暗号化したものを更新前復号用鍵暗号化データとすればよい。また、更新要求送信部134は、更新後の公開鍵および更新後の公開鍵暗号方式を表す情報を暗号更新用鍵情報として、更新要求に含めて送信すればよい。また、この場合、暗号更新装置230の暗号更新部231は、更新要求に含まれる暗号更新用鍵情報を参照することにより、更新後の公開鍵暗号方式により更新後の公開鍵を用いて暗号更新を行えばよい。また、この場合、復号装置330の復号部333は、更新後の暗号化データを更新後の公開鍵暗号方式により更新後の秘密鍵を用いて復号し、復号により得られる更新前復号用鍵暗号化データを更新後の公開鍵暗号方式により更新後の秘密鍵を用いて復号すればよい。これにより、更新前復号用鍵情報として、更新前の公開鍵暗号方式および更新前の秘密鍵が得られる。そして、復号部333は、更新前の公開鍵暗号方式により更新前の秘密鍵を用いて、更新前の暗号化データを復号すればよい。
また、本実施の形態において、暗号更新システム3は、複数回の暗号更新を行う場合にも適用可能である。すなわち、暗号更新要求装置130は、既に暗号更新した暗号化データに対してさらに次の暗号更新を要求し、暗号更新装置230は、既に暗号更新された暗号化データをさらに暗号更新してもよい。
この場合、具体的には、暗号更新システム3は、次のように、1回目の暗号更新と同様に2回目以降の暗号更新を行う。なお、暗号更新システム3は、1回目の暗号更新として、図10を用いて説明した暗号化動作を行い、更新後の暗号化データとして、Enc{pk_n}(D_i)を生成したものとする。
まず、暗号更新要求装置130の鍵生成部132は、さらに新たな公開鍵pk_n2および秘密鍵sk_n2を生成する。ここで、前回の更新後の公開鍵pk_nおよび秘密鍵sk_nは、今回の更新前の公開鍵および秘密鍵となる。そして、更新前復号用鍵暗号化部133は、更新前の秘密鍵sk_nを更新後の公開鍵pk_n2で暗号化した更新前復号用鍵暗号化データEnc_{pk_n2}(sk_n)を生成する。そして、更新要求送信部134は、更新前復号用鍵暗号化データEnc_{pk_n2}(sk_n)と、更新後の公開鍵pk_n2と、前回の更新後の暗号化データを特定するアドレスとを含む更新要求を、暗号更新装置230に送信する。
次に、暗号更新装置230の暗号更新部231は、前回の更新後の暗号化データEnc{pk_n}(D_i)と、今回の更新要求に含まれる更新前復号用鍵暗号化データEnc_{pk_n2}(sk_n)とを含む情報D2_iを、今回の更新要求に含まれる公開鍵pk_n2で暗号化したEnc_{pk_n2}(D2_i)を、今回の更新後の暗号化データとして、暗号化データ記憶装置900に登録すればよい。そして、暗号化データ記憶装置900からは、前回の更新後の暗号化データEnc{pk_n}(D_i)が削除される。また、暗号更新要求装置130の鍵記憶装置800からは、更新前の公開鍵pk_nおよび秘密鍵sk_nを含む鍵情報が削除され、今回の公開鍵pk_n2および秘密鍵sk_n2を含む鍵情報が記憶される。
そして、この場合、暗号更新システム3は、次のように、複数回の暗号更新がなされた暗号化データの復号を行う。
まず、復号装置330は、複数回の暗号更新がなされた暗号化データEnc_{pk_n2}(D2_i)に対して、図11を用いて説明した復号動作を行う。これにより、D_iが得られる。ここで、D_iは、Enc_{pk_n}(sk_b)||Enc_{pk_b}(d_i)であり、前回の更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)と、前々回の暗号化データEnc_{pk_b}(d_i)とを含む情報である。そこで、復号部333は、最初の復号過程で得られている前回の秘密鍵sk_nを用いて、前回の更新前復号用鍵暗号化データEnc_{pk_n}(sk_b)を復号する。これにより、前々回の秘密鍵sk_bが得られる。そこで、復号部333は、前々回の秘密鍵sk_bを用いて、前々回の暗号化データEnc_{pk_b}(d_i)を復号すればよい。これにより得られた元のデータd_iに、さらに以前の暗号化データおよび以前の更新前復号用鍵暗号化データが含まれる場合、復号部333は、元の平文データが得られるまで、再帰的に復号処理を行えばよい。
なお、本実施の形態において、公開鍵暗号方式としてエルガマル暗号を適用する例を中心に説明したが、本実施の形態は、RSA暗号、Cramer-Shoup 暗号などのその他の任意の公開鍵暗号方式にも適用可能である。
次に、本発明の第3の実施の形態の効果について述べる。
本発明の第3の実施の形態としての暗号更新システムは、公開鍵暗号方式により暗号化された暗号化データの暗号更新を、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、実行することができる。
その理由は、暗号更新要求装置の更新前復号用鍵暗号化部が、更新前の秘密鍵を更新後の公開鍵で暗号化した更新前復号用鍵暗号化データを生成し、更新要求送信部が、更新前復号用鍵暗号化データと、更新後の公開鍵とを更新要求に含めて、暗号更新装置に送信するからである。つまり、本実施の形態において、暗号更新要求装置から暗号更新装置に送られるデータは、更新後の公開鍵、および、更新前の秘密鍵が更新後の公開鍵を用いて暗号化された更新前復号用鍵暗号化データである。このように、更新前の秘密鍵は更新後の公開鍵によって暗号化されているため、暗号化データ記憶装置および暗号更新装置の管理者であるデータベース管理者は、更新前の秘密鍵を知り得ない。また、暗号更新装置は、暗号更新処理として、更新前復号用鍵暗号化データおよび更新前の暗号化データを含む情報を、更新後の公開鍵で暗号化するだけでよく、更新前の暗号化データを一旦復号する必要がない。したがって、データベース管理者は、元のデータを知ることがない。このように、本実施の形態としての暗号更新システムは、暗号化データが記憶されたデータベースの管理者に対して、復号用の鍵情報および平文データを漏洩させない。
また、暗号更新要求装置は、初回の暗号化データを生成して暗号化データ記憶装置に登録するだけでよく、暗号更新のほとんどの処理を、暗号更新装置に要求することができる。したがって、暗号更新要求装置は、暗号更新のために、登録した暗号化データを受信する処理、受信した暗号化データを復号する処理、および、復号したデータを更新後の鍵情報で暗号化する処理を行う必要がない。その結果、暗号更新を希望する利用者側の装置としての暗号更新要求装置の負荷が軽減される。また、更新後の暗号化データには、更新前の秘密鍵が暗号化された更新前復号用鍵暗号化データが含まれる。したがって、復号装置は、更新後の秘密鍵を用いて更新前復号用鍵暗号化データを復号することにより、更新前の秘密鍵を取得して元のデータを得ることができる。したがって、暗号更新要求装置や復号装置は、古い鍵情報を管理する必要がない。その結果、暗号更新要求装置および復号装置の負荷がさらに軽減されることになる。
(第4の実施の形態)
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第2の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。本実施の形態では、本発明において共通鍵暗号方式を適用する場合について説明する。共通鍵暗号方式では、共通鍵を用いて暗号化された暗号化データは、暗号化に用いられた共通鍵と同一の共通鍵によって復号可能である。
まず、本発明の第4の実施の形態としての暗号更新システム4の構成を図12に示す。図12において、暗号更新システム4は、本発明の第2の実施の形態としての暗号更新システム1に対して、暗号更新要求装置100に替えて暗号更新要求装置140と、暗号更新装置220に替えて暗号更新装置240と、復号装置300に替えて復号装置340とを備える点が異なる。なお、本実施の形態において、暗号更新装置240と、復号装置340と、鍵記憶装置800とは、同一のコンピュータ装置である利用者装置によって構成されていてもよい。また、暗号更新システム4を構成する各装置は、図6を参照して説明した本発明の第2の実施の形態としての暗号更新システム2を構成する各装置と同様のハードウェアによって構成可能である。
なお、本実施の形態では、鍵記憶装置800は、共通鍵暗号方式における第1の共通鍵および第2の共通鍵を含む鍵情報を記憶しているものとする。
また、本実施の形態では、暗号化データ記憶装置900は、鍵記憶装置800に記憶された更新前の第2の共通鍵により暗号化された暗号化データが記憶されているものとする。
まず、暗号更新要求装置140の機能ブロックについて説明する。図12において、暗号更新要求装置140は、本発明の第2の実施の形態としての暗号更新要求装置100に対して、鍵生成部102に替えて鍵生成部142と、更新前復号用鍵暗号化部103に替えて更新前復号用鍵暗号化部143と、更新要求送信部104に替えて更新要求送信部144とを備える点が異なる。
鍵生成部142は、共通鍵暗号方式における更新後の第1の共通鍵および更新後の第2の共通鍵を含む更新後の鍵情報を生成する。また、鍵生成部142は、更新後の第1の共通鍵および第2の共通鍵を含む更新後の鍵情報を、鍵記憶装置800に記憶させる。また、鍵生成部142は、暗号更新装置240における暗号更新が終了すると、更新前の第1の共通鍵および第2の共通鍵を含む更新前の鍵情報を、鍵記憶装置800から削除してもよい。
更新前復号用鍵暗号化部143は、本発明の更新前復号用鍵情報として、更新前の第2の共通鍵を適用する。すなわち、更新前復号用鍵暗号化部143は、更新前の第2の共通鍵を、更新後の第1の共通鍵で暗号化したものを、更新前復号用鍵暗号化データとして生成する。
更新要求送信部144は、本発明の暗号更新用鍵情報として、更新後の第2の共通鍵を適用する。すなわち、更新要求送信部144は、更新前復号用鍵暗号化データと、更新後の第2の共通鍵とを、更新要求に含めて暗号更新装置240に送信する。ここで、更新前復号用鍵暗号化データを復号可能な情報は、更新後の第1の共通鍵である。したがって、本発明の暗号更新用鍵情報として更新後の第2の共通鍵を適用することにより、暗号更新用鍵情報に、更新前復号用鍵暗号化データを復号可能な情報は含まれない。
次に、暗号更新装置240の機能ブロックについて説明する。図12において、暗号更新装置240は、本発明の第2の実施の形態としての暗号更新装置220に対して、暗号更新部201に替えて暗号更新部241を備える点が異なる。
暗号更新部241は、暗号更新要求装置140から受信した更新要求が対象とする暗号化データと、この更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、更新要求に含まれる暗号更新用鍵情報である更新後の第2の共通鍵を用いて暗号化したものを、更新後の暗号化データとする。また、暗号更新部241は、更新後の暗号化データを暗号化データ記憶装置900に登録し、更新前の暗号化データを削除する。
次に、復号装置340の機能ブロックについて説明する。図12において、復号装置340は、本発明の第2の実施の形態としての復号装置300に対して、復号部303に替えて復号部343を備える点が異なる。
復号部343は、更新後の第2の共通鍵を用いて、暗号化データ受信部302によって受信された更新後の暗号化データを復号する。これにより、更新前復号用鍵暗号化データと、更新前の暗号化データとが得られる。そして、復号部343は、更新後の第1の共通鍵を用いて、更新前復号用鍵暗号化データを復号する。これにより、更新前の第2の共通鍵が得られる。そして、復号部343は、更新前の第2の共通鍵を用いて、更新前の暗号化データを復号する。
以上のように構成された暗号更新システム4の動作について、図13〜図14を参照して説明する。
また、以下の説明において適用する共通鍵暗号方式は、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)、MISTY(登録商標)、Camellia(登録商標)、または、その他の共通鍵暗号方式のいずれであってもよい。いずれの共通鍵暗号方式であっても、鍵生成、暗号化、および、復号の各処理は以下のように表される。
<鍵生成>
セキュリティパラメータκを入力として、長さκのランダムな共通鍵skを出力する。鍵生成アルゴリズムを KeyGen(κ)=skと記す。
<暗号化>
メッセージMと共通鍵skを入力として、暗号文Cを出力する。暗号化アルゴリズムをEnc_{sk}(M)=Cと記載する。
<復号>
暗号文Cと共通鍵skを入力として、メッセージM’ を出力する。復号アルゴリズムをDec_{sk}(C)=M’と記載する。
このように、共通鍵暗号方式では、共通鍵skを知らないユーザは、暗号文CからメッセージMに関する情報を得られず、共通鍵skを知っているユーザは、メッセージMの暗号文Cから正しくMを復号できる。すなわち、Dec_{sk}(Enc_{sk}(M))=Mとなることが保証されている。
また、以下では、更新前の第1の共通鍵をsk_{b,1}と記載し、更新前の第2の共通鍵をsk_{b,2}と記載する。また、更新後の第1の共通鍵をsk_{n,1}と記載し、更新後の第2の共通鍵をsk_{n,2}と記載する。また、共通鍵暗号方式における暗号化アルゴリズムをEncと記載する。また、暗号化される前の元のデータをd_iと記載する。また、暗号化アルゴリズムEncにより共通鍵sk_xを用いてデータd_xを暗号化した暗号化データをEnc_{sk_x}(d_x)と記載する。また、暗号化データ記憶装置900には、更新前の暗号化データであるEnc_{sk_{b,2}}(d_i)が記憶されているものとする。また、Enc_{sk_{b,2}}(d_i)を暗号化データ記憶装置900において特定する情報としてアドレスadd_iが、暗号更新要求装置140に対して与えられているものとする。
まず、暗号更新システム4の暗号更新動作について、図13を参照して説明する。
図14では、まず、暗号更新要求装置140の更新前鍵取得部101は、鍵記憶装置800から、更新前の鍵情報を取得する(ステップS41)。このとき、更新前鍵取得部101は、更新前復号用鍵情報である更新前の第2の共通鍵sk_{b,2}を少なくとも取得すればよい。
次に、鍵生成部142は、更新後の第1の共通鍵および第2の共通鍵(sk_{n,1}, sk_{n,2})を生成し、鍵記憶装置800に記憶させる(ステップS42)。例えば、鍵生成部142は、上述のセキュリティパラメータκを用いて、KeyGen_nを2回実行することにより、KeyGen_n(κ)=sk_{n,1}、KeyGen_n(κ)=sk_{n,2}を得ることが可能である。
次に、更新前復号用鍵暗号化部143は、ステップS41で取得された更新前の第2の共通鍵sk_{b,2}を、更新後の第1の共通鍵 sk_{n,1} を用いて暗号化し、更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})を生成する(ステップS43)。
次に、更新要求送信部144は、暗号更新の対象とする暗号化データのアドレスadd_iと、更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})と、更新後の第2の共通鍵sk_{n,2}とを含む更新要求requestを、暗号更新装置240に対して送信する(ステップS44)。
次に、更新要求requestを受信した暗号更新装置240において、暗号更新部241は、更新要求requestに含まれるアドレス add_iによって特定される更新前の暗号化データEnc_{sk_{b,2}}(d_i)を、暗号化データ記憶装置900から取得する(ステップS45)。
次に、暗号更新部241は、ステップS45で取得された更新前の暗号化データと、更新要求に含まれる更新前復号用鍵暗号化データとを連結したデータD_i=Enc_{sk_{b,2}}(d_i)||Enc_{sk_{n,1}}(sk_{b,2})を生成する。そして、暗号更新部241は、生成したD_iを更新後の第2の共通鍵sk_{n,2}を用いて暗号化し、更新後の暗号化データEnc_{sk_{n,2}}(D_i)を生成する(ステップS46)。
次に、暗号更新部241は、更新後の暗号化データEnc_{sk_{n,2}}(D_i)を暗号化データ記憶装置900に登録するとともに、更新前の暗号化データEnc_{sk_{b,2}}(d_i)を暗号化データ記憶装置900から削除する(ステップS47)。これにより、アドレスadd_iにより更新後の暗号化データEnc_{sk_{n,2}}(D_i)が特定されるようになったものとする。
以上で、暗号更新システム4は、暗号更新動作を終了する。
次に、暗号更新システム4が更新後の暗号化データを復号する動作について、図14を参照して説明する。
図14において、まず、復号装置340の暗号化データ受信部302は、復号対象とする更新後の暗号化データを特定するアドレスadd_iを含む取得要求を、暗号更新装置240に対して送信する(ステップS50)。
次に、暗号更新装置240の暗号化データ送信部222は、取得要求に含まれるアドレスadd_iによって特定される更新後の暗号化データEnc_{sk_{n,2}}(D_i)を暗号化データ記憶装置900から取得する(ステップS51)。
次に、暗号化データ送信部222は、更新後の暗号化データEnc_{ sk_{n,2}}(D_i)を復号装置340に対して送信する(ステップS52)。
そして、復号装置340の暗号化データ受信部302は、更新後の暗号化データEnc_{sk_{n,2}}(D_i)を受信する(ステップS53)。
次に、更新後鍵取得部301は、鍵記憶装置800から、更新後の第1の共通鍵sk_{n,1}および第2の共通鍵sk_{n,2}を取得する(ステップS54)。
次に、復号部343は、ステップS53で受信された暗号化データEnc_{ sk_{n,2}}(D_i)を、ステップS54で取得された更新後の第2の共通鍵sk_{n,2}を用いて復号する(ステップS55)。これにより、D_i= Enc_{sk_{b,2}}(d_i)||Enc_{sk_{n,1}}(sk_{b,2})が得られる。すなわち、D_iは、更新前の暗号化データEnc_{sk_{b,2}}(d_i)および更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})が連結されたデータである。
次に、復号部343は、ステップS54で取得された更新後の第1の共通鍵sk_{n,1}を用いて、ステップS55で得られた更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})を復号する(ステップS56)。これにより、更新前の第2の共通鍵sk_{b,2}が得られる。
次に、復号部343は、ステップS56で得られた更新前の第2の共通鍵sk_{b,2}を用いて、ステップS55で得られた更新前の暗号化データEnc_{sk_{b,2}}(d_i)を復号する(ステップS57)。これにより、暗号化される前のデータd_iが得られる。
以上で、暗号更新システム4の復号動作の説明を終了する。
なお、本実施の形態において、更新前の共通鍵暗号方式と、更新後の共通鍵暗号方式とが同一である例について説明したが、暗号更新システム4は、更新前および更新後の共通鍵暗号方式が異なる場合にも適用可能である。この場合、鍵記憶装置800に記憶される鍵情報に、その第1の共通鍵および第2の共通鍵を生成した共通鍵暗号方式を表す情報が含まれていればよい。また、この場合、暗号更新要求装置140の更新前復号用鍵暗号化部143は、更新前の第2の共通鍵および更新前の共通鍵暗号方式を表す情報を更新前復号用鍵情報とすればよい。そして、更新前復号用鍵暗号化部143は、更新前復号用鍵情報を更新後の第1の共通鍵を用いて更新後の共通鍵暗号方式により暗号化したものを更新前復号用鍵暗号化データとすればよい。また、更新要求送信部144は、更新後の第2の共通鍵および更新後の共通鍵暗号方式を表す情報を暗号更新用鍵情報として、更新要求に含めて送信すればよい。また、この場合、暗号更新装置240の暗号更新部241は、更新要求に含まれる暗号更新用鍵情報を参照することにより、更新後の共通鍵暗号方式により更新後の第2の共通鍵を用いて暗号更新を行えばよい。また、この場合、復号装置340の復号部343は、更新後の暗号化データを更新後の共通鍵暗号方式により更新後の第2の共通鍵を用いて復号し、復号により得られる更新前復号用鍵暗号化データを更新後の共通鍵暗号方式により更新後の第1の共通鍵を用いて復号すればよい。これにより、更新前復号用鍵情報として、更新前の共通鍵暗号方式および更新前の第2の共通鍵が得られる。そして、復号部343は、更新前の共通鍵暗号方式により更新前の第2の共通鍵を用いて、更新前の暗号化データを復号すればよい。
次に、本発明の第4の実施の形態の効果について述べる。
本発明の第4の実施の形態としての暗号更新システムは、共通鍵暗号方式により暗号化された暗号化データの暗号更新を、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、実行することができる。
その理由は、暗号更新要求装置の更新前復号用鍵暗号化部が、更新前の第2の共通鍵を更新後の第1の共通鍵で暗号化した更新前復号用鍵暗号化データを生成し、更新要求送信部が、更新前復号用鍵暗号化データと、更新後の第2の共通鍵とを更新要求に含めて、暗号更新装置に送信するからである。つまり、本実施の形態において、暗号更新要求装置から暗号更新装置に送られるデータは、更新後の第2の共通鍵、および、更新前の第2の共通鍵が更新後の第1の共通鍵を用いて暗号化された更新前復号用鍵暗号化データである。また、更新要求には、更新後の第1の共通鍵が含まれないため、暗号更新装置は、更新前復号用鍵暗号化データを復号して更新前の第2の共通鍵を得ることはできない。したがって、暗号化データ記憶装置および暗号更新装置の管理者であるデータベース管理者は、更新前の暗号化データを復号するための更新前の第2の共通鍵を知り得ない。そして、暗号更新装置は、暗号更新処理として、更新前復号用鍵暗号化データおよび更新前の暗号化データを含む情報を、更新後の第2の共通鍵で暗号化するだけでよく、更新前の暗号化データを一旦復号する必要がない。したがって、データベース管理者は、元のデータを知ることがない。このように、本実施の形態としての暗号更新システムは、データベース管理者に対して、更新前の鍵情報や平文データを漏洩させない。
また、暗号更新要求装置は、初回の暗号化データを生成して暗号化データ記憶装置に登録するだけでよく、暗号更新のほとんどの処理を、暗号更新装置に要求することができる。したがって、暗号更新要求装置は、暗号更新のために、登録した暗号化データを受信する処理、受信した暗号化データを復号する処理、および、復号したデータを更新後の鍵情報で暗号化する処理を行う必要がない。その結果、暗号更新を希望する利用者側の装置としての暗号更新要求装置の負荷が軽減される。また、更新後の暗号化データには、更新前の第2の共通鍵が更新後の第1の共通鍵で暗号化された更新前復号用鍵暗号化データが含まれる。このため、復号装置は、更新後の第1の共通鍵を知っていれば、更新前復号用鍵暗号化データを復号することにより、更新前の第2の共通鍵を取得して元のデータを得ることができる。したがって、暗号更新要求装置や復号装置は、古い鍵情報を管理する必要がない。したがって、暗号更新要求装置および復号装置の負荷がさらに軽減されることになる。
(第5の実施の形態)
次に、本発明の第5の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第4の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。本実施の形態では、共通鍵暗号方式を適用する場合において、2回以上の暗号更新を行うケースについて説明する。
まず、本発明の第5の実施の形態としての暗号更新システム5の構成を図15に示す。図15において、暗号更新システム5は、本発明の第4の実施の形態としての暗号更新システム4に対して、暗号更新要求装置140に替えて暗号更新要求装置150と、復号装置340に替えて復号装置350とを備える点が異なる。なお、暗号更新要求装置150および復号装置350は、図2を参照して説明した本発明の第2の実施の形態としての暗号更新要求装置100および復号装置300と同一のハードウェアによって構成可能である。
まず、暗号更新要求装置150の機能ブロックについて説明する。図15において、暗号更新要求装置150は、本発明の第4の実施の形態としての暗号更新要求装置140に対して、更新前復号用鍵暗号化部143に替えて更新前復号用鍵暗号化部153を備える点が異なる。
更新前復号用鍵暗号化部153は、本発明の更新前復号用鍵情報として、更新前の第1の共通鍵および第2の共通鍵を適用する。すなわち、更新前復号用鍵暗号化部153は、更新前の第1の共通鍵および第2の共通鍵を含む情報を、更新後の第1の共通鍵を用いて暗号化したものを、更新前復号用鍵暗号化データとして生成する。
次に、復号装置350の機能ブロックについて説明する。図15において復号装置350は、本発明の第4の実施の形態としての復号装置340に対して、復号部343に替えて復号部353を備える点が異なる。
復号部353は、本発明の第4の実施の形態における復号部343と同様に構成されることにより得られる元のデータに対して、再帰的な復号処理を実行する。具体的には、復号部353は、1回目の復号処理により得られたデータに、さらに前々回の暗号化データと、前回の更新前復号用鍵暗号化データとが含まれる場合、次のように動作するよう構成される。本実施の形態では、更新前復号用鍵暗号化データからは、更新前の第1の共通鍵および第2の共通鍵が復号可能である。つまり、復号部353は、1回目の復号処理の過程で、更新前の第1の共通鍵および第2の共通鍵を得ている。そこで、復号部353は、1回目の復号処理により得られたデータに含まれている前回の更新前復号用鍵暗号化データを、更新前の第1の共通鍵を用いて復号する。これにより、前々回の第1の共通鍵および第2の共通鍵が得られる。そして、復号部353は、1回目の復号処理により得られたデータに含まれている前々回の暗号化データを、前々回の第2の共通鍵で復号する。これにより、前々回の暗号化データが暗号化される前の元のデータが得られる。このようにして、復号部353は、元の平文データが得られるまで、再帰的に復号処理を実行する。
暗号更新装置240は、本発明の第4の実施の形態と同様に構成される。ただし、暗号更新部241は、暗号更新要求装置150から受信される更新要求が対象とする暗号化データが、既に暗号更新された後の暗号化データであった場合にも、同様に動作するよう構成される。
すなわち、暗号更新部241は、暗号化データ記憶装置900に記憶されている前回の更新後の暗号化データと、今回の更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、今回の更新要求に含まれる第2の共通鍵で暗号化したものを、今回の更新後の暗号化データとする。ここで、暗号化データ記憶装置900に記憶されている前回の更新後の暗号化データとは、前々回の暗号化データと、前回の更新前復号用鍵暗号化データとを含む情報が、前回の第2の共通鍵で暗号化されたデータである。また、この前回の更新前復号用鍵暗号化データは、前々回の暗号化データを復号するための前々回の第2の共通鍵が前回の第1の共通鍵で暗号化されたデータである。
以上のように構成された暗号更新システム5の暗号更新の動作について、図面を参照して説明する。
まず、暗号更新システム5は、図13を用いて説明した本発明の第4の実施の形態の暗号更新システム5と略同様に動作することにより、暗号化データ記憶装置900に記憶された暗号化データEnc_{sk_{b,2}}(d_i)を暗号更新する。ただし、図13のステップS43において、更新前復号用鍵暗号化部153は、更新前の第1の共通鍵および更新前の第2の共通鍵を含む情報を更新後の第1の共通鍵で暗号化する点が異なる。つまり、本発明の第4の実施の形態では、ステップS43において、更新前復号用鍵暗号化データEnc_{sk_{n,1}}(sk_{b,2})が生成されていたが、本実施の形態では、ステップS43において、更新前復号用鍵暗号化データとしてEnc_{sk_{n,1}}(sk_{b,1}||sk_{b,2})が生成される。
そして、暗号更新システム5が上述のように暗号更新動作を終えると、暗号化データ記憶装置900には、暗号化データEnc_{sk_{n,2}}(D_i)が記憶されている。ここで、本実施の形態では、D_i=Enc_{sk_{b,2}}(d_i)||Enc_{sk_{n,1}}(sk_{b,1}||sk_{b,2})となる。
また、この時点で、暗号更新要求装置150は、鍵記憶装置800から更新前の第1の共通鍵sk_{b,1}および第2の共通鍵sk_{b,2}を削除する。したがって、鍵記憶装置800には、第1の共通鍵sk_{n,1}および第2の共通鍵sk_{n,2}が記憶されている。
さらに暗号更新を行う場合、暗号更新システム5は、図13を用いて説明した本発明の第4の実施の形態の暗号更新システム5と略同様に動作する。
すなわち、まず、鍵生成部142は、さらに更新後の第1の共通鍵sk_{nn,1}および第2の共通鍵sk_{nn,2}を生成し、鍵記憶装置800に記憶させる。
次に、更新前復号用鍵暗号化部153は、この時点において更新前の第1の共通鍵となるsk_{n,1}および更新前の第2の共通鍵となるsk_{n,2}を含む情報を、今回の更新後の第1の共通鍵sk_{nn,1}を用いて暗号化したEnc_{sk_{nn,1}(sk_{n,1}||sk_{n,2})を、更新前復号用鍵暗号化データとして生成する。
次に、更新要求送信部144は、この更新前復号用鍵暗号化データと、今回の更新後の第2の共通鍵sk_{nn,2}とを含む更新要求を、暗号更新装置240に送信する。
次に、暗号更新装置240の暗号更新部241は、既に暗号更新された暗号化データEnc_{ sk_{n,2}}(D_i)に対して、さらに暗号更新を実行する。すなわち、暗号更新部241は、DD_i=Enc_{sk_{n,2}}(D_i))|| Enc_{sk_{nn,1}}(sk_{n,1}||sk_{n,2})を求め、新たに更新した暗号化データとしてEnc_{sk_{nn,2}}(DD_i)を生成する。そして、暗号更新部241は、Enc{sk_{nn,2}}(DD_i)を、暗号化データ記憶装置900に登録するとともに、Enc_{sk_{n,2}}(D_i)を、暗号化データ記憶装置900から削除する。
また、暗号更新要求装置150は、鍵記憶装置800から、更新前の第1の共通鍵であるsk_{n,1}および更新前の第2の共通鍵であるsk_{n,2}を削除する。したがって、鍵記憶装置800には、最新の第1の共通鍵および第2の共通鍵であるsk_{nn,1},sk_{nn,2}が記憶されている。
次に、暗号更新システム5が、2回以上暗号更新された暗号化データを復号する動作について、図16を参照して説明する。
まず、復号装置350の暗号化データ受信部302は、暗号更新装置240に暗号化データの取得要求を送信することにより、Enc{sk_{nn,2}}(DD_i)を受信する(ステップS50〜S53)。
次に、更新後鍵取得部301は、鍵記憶装置800から、最新の第1の共通鍵sk_{nn,1}および第2の共通鍵sk_{nn,2}を取得する(ステップS54)。
次に、復号部353は、ステップS53で受信された暗号化データEnc{sk_{nn,2}}(DD_i)を、ステップS54で取得された最新の第2の共通鍵sk_{nn,2}を用いて復号する(ステップS55)。これにより、DD_i= Enc_{sk_{n,2}}(D_i))||Enc_{sk_{nn,1}}(sk_{n,1}||sk_{n,2})が得られる。
次に、復号部353は、ステップS54で取得された最新の第1の共通鍵sk_{nn,1}を用いて、ステップS55で得られた更新前復号用鍵暗号化データであるEnc_{sk_{nn,1}}(sk_{n,1}||sk_{n,2})を復号する(ステップS56)。これにより、前回の第1の共通鍵であるsk_{n,1}および前回の第2の共通鍵であるsk_{n,2}が得られる。
次に、復号部353は、ステップS56で得られた前回の第2の共通鍵sk_{n,2}を用いて、ステップS55で得られた更新前の暗号化データであるEnc_{sk_{n,2}}(D_i)を復号する(ステップS57)。これにより、D_iが得られる。ここで、D_iは、Enc_{sk_{b,2}}(d_i)||Enc_{sk_{n,1}}(sk_{b,1}||sk_{b,2})であり、前々回の暗号化データおよび前回の更新前復号用鍵暗号化データを含む。
次に、復号部353は、ステップS57で得られたデータが平文ではないため、(ステップS61でNo)、ステップS56で得られた前回の第1の共通鍵sk_{n,1}を用いて、前回の更新前復号用鍵暗号化データであるEnc_{sk_{n,1}}(sk_{b,2})を復号する(ステップS62)。これにより、前々回の第1の共通鍵sk_{b,1}および前々回の第2の共通鍵であるsk_{b,2}が得られる。
次に、復号部353は、ステップS62で得られた前々回の第2の共通鍵sk_{b,2}を用いて、ステップS57で得られた前々回の暗号化データEnc_{sk_{b,2}}(d_i)を復号する(ステップS63)。これにより、元のデータd_iが得られる。
もし、d_iが元の平文データではなく、さらに以前の更新前の暗号化データおよび以前の更新前復号用鍵暗号化データを含む場合(ステップS61でNo)、復号装置350は、ステップS62〜S63を繰り返す。
ステップS63で得られた元のデータが平文データであれば(ステップS61でYes)、暗号更新システム5は復号動作を終了する。
次に、本発明の第5の実施の形態の効果について述べる。
本発明の第5の実施の形態としての暗号更新システムは、共通鍵暗号方式により暗号化された暗号化データに対して、暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用の情報を与えることなく、複数回の暗号更新を行うことができる。
その理由は、暗号更新要求装置の更新前復号用鍵暗号化部が、更新前の第1の共通鍵および第2の共通鍵を含む情報を更新後の第1の共通鍵で暗号化したものを更新前復号用鍵暗号化データとして生成し、暗号更新装置の暗号更新部が、前回暗号更新された暗号化データと、今回の更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、今回の第2の共通鍵で暗号化することにより、今回の更新後の暗号化データを生成するからである。そして、復号装置の復号部は、復号により得られる元のデータに、前々回の暗号化データおよび前回の更新前復号用鍵暗号化データが含まれる場合、復号過程で得られた前回の第1の共通鍵を用いて前回の更新前復号用鍵暗号化データを復号することが可能となる。これにより、復号装置の復号部は、前回の更新前復号用鍵暗号化データから前々回の第1の共通鍵および第2の共通鍵を復号することができる。そして、復号装置の復号部は、得られた前々回の第2の共通鍵を用いて、前々回の暗号化データを復号する再帰的な復号処理を行うからである。
これにより、暗号更新要求装置は、既に暗号更新された暗号化データの暗号更新のために、既に暗号更新された暗号化データを一旦受信して復号する処理や、復号したデータを更新後の鍵情報により再度暗号化する処理を行う必要がなく、2回目以降の暗号更新の際にも更新処理のほとんどを暗号更新装置に要求することが可能となる。したがって、2回以上の暗号更新を行う場合においても、暗号更新を希望する利用者側の装置としての暗号更新要求装置の負荷が軽減される。
そして、このように複数回の暗号更新がなされた暗号化データには、以前の暗号化データの復号に必要となる以前の第1の共通鍵および以前の第2の共通鍵が暗号化された更新前復号用鍵暗号化データが含まれている。そのため、復号装置は、最新の第1の共通鍵および第2の共通鍵を知っていれば、複数回の暗号更新がなされた暗号化データからも、元の平文データを取得することが可能となる。したがって、復号装置は、複数回の暗号更新がなされた暗号化データを復号する場合であっても、以前の鍵情報をあらかじめ知る必要がない。したがって、複数回の暗号更新が行われる場合にも、暗号更新要求装置および復号装置は、以前の鍵情報を管理しておく必要がない。その結果、暗号更新要求装置および復号装置の負荷がさらに軽減される。
なお、上述した本発明の各実施の形態では、暗号更新要求装置、復号装置、および、鍵記憶装置が、異なるコンピュータ装置によって構成される例を中心に説明した。この場合、鍵記憶装置は、暗号更新要求装置の利用者および復号装置の利用者によって信頼できる管理者によって管理されるとともに、セキュリティ性が高い装置で構成されることが望ましい。また、暗号更新要求装置および鍵記憶装置間の鍵情報の送受信、および、復号装置および鍵記憶装置間の鍵情報の送受信に用いられる通信は、セキュリティ性が確保されたものであることが望ましい。
また、上述した本発明の各実施の形態において、暗号更新要求装置、復号装置、および、鍵記憶装置は、同一のコンピュータ装置である利用者装置によって構成されていてもよい。この場合、利用者装置は、平文データに対して初回の暗号化処理を行って生成した暗号化データをクラウド上等にある暗号化データ記憶装置に保存し、暗号化データ記憶装置の管理者に平文データを秘匿したまま、暗号化データの暗号更新を暗号更新装置に依頼することができる。しかも、利用者装置は、そのように暗号更新された暗号化データを受信して元のデータに復号することが可能となる。
また、上述した本発明の各実施の形態において、暗号更新要求装置は、暗号更新装置に送信する更新要求に、暗号更新の対象とする暗号化データを特定する情報として、暗号化データのアドレスを含める例を中心に説明したが、各実施の形態において、暗号更新の対象とする暗号化データを特定する情報は、その他の情報であってもよい。例えば、暗号更新要求装置は、鍵情報を特定する情報を更新要求に含めてもよい。この場合、その鍵情報により暗号化された暗号化データが、暗号更新の対象として特定される。その他、例えば、暗号更新要求装置は、鍵情報を特定する情報や暗号化データのアドレス、その他の情報の組み合わせにより暗号更新の対象とする暗号化データを特定する情報を、更新要求に含めてもよい。また、暗号更新要求装置は、更新要求に含めるための上述のような暗号化データを特定する情報を、入力装置を介して取得するようにしてもよい。これにより、暗号更新の対象となる鍵情報や暗号化データは、利用者によって指定可能となる。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した暗号更新要求装置、暗号更新装置、および、復号装置の各動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
また、上述した各実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得部と、
更新後の鍵情報を生成する鍵生成部と、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化部と、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部と、
を備えた暗号更新要求装置。
(付記2)
前記鍵情報には、暗号方式に関する情報が含まれ、
前記鍵生成部は、更新後の暗号方式を用いて前記更新後の鍵情報を生成し、
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報に、さらに前記更新前の暗号方式に関する情報を含めて前記更新前復号用鍵暗号化データを生成し、
前記更新要求送信部は、前記暗号更新用情報に、さらに前記更新後の暗号方式に関する情報を含めて前記更新要求を送信することを特徴とする付記1に記載の暗号更新要求装置。
(付記3)
前記更新前の鍵情報が公開鍵暗号方式における公開鍵および秘密鍵を含むとき、
前記鍵生成部は、前記更新後の鍵情報として、公開鍵暗号方式における新たな公開鍵および秘密鍵を生成し、
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報として前記更新前の秘密鍵を、前記更新後の公開鍵を用いて暗号化することにより前記更新前復号用鍵暗号化データを生成し、
前記更新要求送信部は、前記暗号更新用鍵情報として前記更新後の公開鍵と、前記更新前復号用鍵暗号化データとを、前記更新要求に含めて前記暗号更新装置に送信することを特徴とする付記1または付記2に記載の暗号更新要求装置。
(付記4)
前記更新前の鍵情報が共通鍵暗号方式における第1の共通鍵および第2の共通鍵を含むとき、
前記鍵生成部は、前記更新後の鍵情報として、共通鍵暗号方式における新たな第1の共通鍵および第2の共通鍵を生成し、
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報として前記更新前の第2の共通鍵を、前記更新後の第1の共通鍵を用いて暗号化することにより前記更新前復号用鍵暗号化データを生成し、
前記更新要求送信部は、前記暗号更新用鍵情報として前記更新後の第2の共通鍵と、前記更新前復号用鍵暗号化データとを、前記更新要求に含めて前記暗号更新装置に送信することを特徴とする付記1または付記2に記載の暗号更新要求装置。
(付記5)
前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報に、さらに更新前の前記第1の共通鍵を含めて前記更新前復号用鍵暗号化データを生成することを特徴とする付記4に記載の暗号更新要求装置。
(付記6)
付記1から付記5のいずれか1つに記載の暗号更新要求装置から前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新部を備えた暗号更新装置。
(付記7)
前記暗号更新要求装置から受信された更新要求に含まれる前記暗号更新用鍵情報に、公開鍵暗号方式における前記更新後の公開鍵が含まれるとき、
前記暗号更新部は、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記更新後の公開鍵を用いて暗号化することにより、前記更新後の暗号化データを生成することを特徴とする付記6に記載の暗号更新装置。
(付記8)
前記暗号更新要求装置から受信された更新要求に含まれる前記暗号更新用鍵情報に、共通鍵暗号方式における前記更新後の第2の共通鍵が含まれるとき、
前記暗号更新部は、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記更新後の第2の共通鍵を用いて暗号化することにより、前記更新後の暗号化データを生成することを特徴とする付記6に記載の暗号更新装置。
(付記9)
付記1から付記5のいずれか1つに記載の暗号更新要求装置によって生成された更新後の鍵情報を取得する更新後鍵取得部と、
付記6に記載の暗号更新装置によって生成された更新後の暗号化データを受信する暗号化データ受信部と、
前記暗号化データ受信部によって受信された更新後の暗号化データを、前記更新後鍵取得部によって取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号部と、
を備えた復号装置。
(付記10)
前記更新後鍵取得部によって取得される前記更新後の鍵情報に公開鍵暗号方式における前記更新後の秘密鍵が含まれるとき、
前記復号部は、前記更新後の暗号化データを前記更新後の秘密鍵を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の秘密鍵を用いて復号することにより前記更新前復号用鍵情報である前記更新前の秘密鍵を取得し、取得した更新前の秘密鍵を用いて前記更新前の暗号化データを復号することを特徴とする付記9に記載の復号装置。
(付記11)
前記更新後鍵取得部によって取得される前記更新後の鍵情報に共通鍵暗号方式における前記更新後の第1の共通鍵および第2の共通鍵が含まれるとき、
前記復号部は、前記更新後の暗号化データを前記更新後の第2の共通鍵を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の第1の共通鍵を用いて復号することにより前記更新前復号用鍵情報である前記更新前の第2の共通鍵を取得し、取得した更新前の第2の共通鍵を用いて前記更新前の暗号化データを復号することを特徴とする付記9に記載の復号装置。
(付記12)
前記復号部は、前記更新前復号用鍵情報を用いて前記更新前の暗号化データを復号することにより得られたデータに、前々回の暗号化データおよび前回の更新前復号用鍵暗号化データが含まれる場合、前記前回の更新前復号用鍵暗号化データを前記更新前復号用鍵情報を用いて復号することにより前々回の更新前復号用鍵情報を取得し、取得した前々回の更新前復号用鍵情報を用いて前記前々回の暗号化データを復号する再帰的な復号処理を実行することを特徴とする付記9から付記11のいずれか1つに記載の復号装置。
(付記13)
付記1から付記5のいずれか1つに記載の暗号更新要求装置と、
付記6に記載の暗号更新装置と、
を含む暗号更新システム。
(付記14)
さらに、付記9に記載の復号装置を備えることを特徴とする付記13に記載の暗号更新システム。
(付記15)
付記1から付記5のいずれか1つに記載の暗号更新要求装置と、
付記9に記載の復号装置と、
を備えた利用者装置。
(付記16)
暗号更新要求装置は、
暗号化データが生成される際に用いられた更新前の鍵情報を取得し、
更新後の鍵情報を生成し、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成し、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信し、
前記暗号更新装置は、
前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより前記更新後の暗号化データを生成する、暗号更新方法。
(付記17)
暗号化データが生成される際に用いられた更新前の鍵情報を取得し、
更新後の鍵情報を生成し、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成し、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する、暗号更新要求方法。
(付記18)
付記17に記載の暗号更新要求方法の実行により送信される前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより前記更新後の暗号化データを生成する、暗号更新方法。
(付記19)
付記17に記載の暗号更新要求方法の実行において用いられた前記更新後の鍵情報を取得し、
付記18に記載の暗号更新方法の実行により生成された前記更新後の暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データと、前記更新前復号用鍵暗号化データとを含む情報を取得し、
取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、
取得した更新前復号用鍵情報を用いて、前記更新前の暗号化データを復号する、復号方法。
(付記20)
暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得ステップと、
更新後の鍵情報を生成する鍵生成ステップと、
前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化ステップと、
前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
(付記21)
付記20に記載のコンピュータ・プログラムの実行により送信された前記更新要求を受信する更新要求受信ステップと、
前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
(付記22)
付記20に記載のコンピュータ・プログラムの実行により生成された前記更新後の鍵情報を取得する更新後鍵取得ステップと、
付記21に記載のコンピュータ・プログラムの実行により生成された前記更新後の暗号化データを受信する暗号化データ受信ステップと、
前記暗号化データ受信ステップで受信された更新後の暗号化データを、前記更新後鍵取得ステップで取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号ステップと、
をコンピュータ装置に実行させるコンピュータ・プログラム。
1、2、3、4、5 暗号更新システム
100、130、140、150 暗号更新要求装置
101 更新前鍵取得部
102、132、142 鍵生成部
103、133、143、153 更新前復号用鍵暗号化部
104、134、144 更新要求送信部
200、220、230、240 暗号更新装置
201、231、241 暗号更新部
222 暗号化データ送信部
300、330、340、350 復号装置
301 更新後鍵取得部
302 暗号化データ受信部
303、333、343、353 復号部
800 鍵記憶装置
900 暗号化データ記憶装置

Claims (10)

  1. 暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得部と、
    更新後の鍵情報を生成する鍵生成部と、
    前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化部と、
    前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部と、
    を備えた暗号更新要求装置。
  2. 前記更新前の鍵情報が公開鍵暗号方式における公開鍵および秘密鍵を含むとき、
    前記鍵生成部は、前記更新後の鍵情報として、公開鍵暗号方式における新たな公開鍵および秘密鍵を生成し、
    前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報として前記更新前の秘密鍵を、前記更新後の公開鍵を用いて暗号化することにより前記更新前復号用鍵暗号化データを生成し、
    前記更新要求送信部は、前記暗号更新用鍵情報として前記更新後の公開鍵と、前記更新前復号用鍵暗号化データとを、前記更新要求に含めて前記暗号更新装置に送信することを特徴とする請求項1に記載の暗号更新要求装置。
  3. 前記更新前の鍵情報が共通鍵暗号方式における第1の共通鍵および第2の共通鍵を含むとき、
    前記鍵生成部は、前記更新後の鍵情報として、共通鍵暗号方式における新たな第1の共通鍵および第2の共通鍵を生成し、
    前記更新前復号用鍵暗号化部は、前記更新前復号用鍵情報として前記更新前の第2の共通鍵を、前記更新後の第1の共通鍵を用いて暗号化することにより前記更新前復号用鍵暗号化データを生成し、
    前記更新要求送信部は、前記暗号更新用鍵情報として前記更新後の第2の共通鍵と、前記更新前復号用鍵暗号化データとを、前記更新要求に含めて前記暗号更新装置に送信することを特徴とする請求項1に記載の暗号更新要求装置。
  4. 請求項1から請求項3のいずれか1項に記載の暗号更新要求装置から前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新部を備えた暗号更新装置。
  5. 請求項1から請求項3のいずれか1項に記載の暗号更新要求装置によって生成された更新後の鍵情報を取得する更新後鍵取得部と、
    請求項4に記載の暗号更新装置によって生成された更新後の暗号化データを受信する暗号化データ受信部と、
    前記暗号化データ受信部によって受信された更新後の暗号化データを、前記更新後鍵取得部によって取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号部と、
    を備えた復号装置。
  6. 請求項1から請求項3のいずれか1項に記載の暗号更新要求装置と、
    請求項4に記載の暗号更新装置と、
    を含む暗号更新システム。
  7. 暗号更新要求装置は、
    暗号化データが生成される際に用いられた更新前の鍵情報を取得し、
    更新後の鍵情報を生成し、
    前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成し、
    前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信し、
    前記暗号更新装置は、
    前記更新要求を受信すると、前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより前記更新後の暗号化データを生成する、暗号更新方法。
  8. 暗号化データが生成される際に用いられた更新前の鍵情報を取得する更新前鍵取得ステップと、
    更新後の鍵情報を生成する鍵生成ステップと、
    前記更新前の鍵情報に含まれる情報のうち前記暗号化データの復号に用いられる更新前復号用鍵情報を、前記更新後の鍵情報を用いて暗号化することにより更新前復号用鍵暗号化データを生成する更新前復号用鍵暗号化ステップと、
    前記更新前復号用鍵暗号化データと、前記更新後の鍵情報に含まれる情報のうち前記暗号化データの暗号更新に用いられる暗号更新用鍵情報とを含む更新要求を、暗号更新装置に送信する更新要求送信部ステップと、
    をコンピュータ装置に実行させるコンピュータ・プログラム。
  9. 請求項8に記載のコンピュータ・プログラムの実行により送信された前記更新要求を受信する更新要求受信ステップと、
    前記更新要求が対象とする前記暗号化データと、前記更新要求に含まれる更新前復号用鍵暗号化データとを含む情報を、前記更新要求に含まれる前記暗号更新用鍵情報を用いて暗号化することにより更新後の暗号化データを生成する暗号更新ステップと、
    をコンピュータ装置に実行させるコンピュータ・プログラム。
  10. 請求項8に記載のコンピュータ・プログラムの実行により生成された前記更新後の鍵情報を取得する更新後鍵取得ステップと、
    請求項9に記載のコンピュータ・プログラムの実行により生成された前記更新後の暗号化データを受信する暗号化データ受信ステップと、
    前記暗号化データ受信ステップで受信された更新後の暗号化データを、前記更新後鍵取得ステップで取得された前記更新後の鍵情報を用いて復号することにより、前記更新前の暗号化データおよび前記更新前復号用鍵暗号化データを取得し、取得した前記更新前復号用鍵暗号化データを前記更新後の鍵情報を用いて復号することにより、前記更新前復号用鍵情報を取得し、取得した更新前復号用鍵情報を用いて前記更新前の暗号化データを復号する復号ステップと、
    をコンピュータ装置に実行させるコンピュータ・プログラム。
JP2012155457A 2012-07-11 2012-07-11 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム Pending JP2014017763A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012155457A JP2014017763A (ja) 2012-07-11 2012-07-11 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012155457A JP2014017763A (ja) 2012-07-11 2012-07-11 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム

Publications (1)

Publication Number Publication Date
JP2014017763A true JP2014017763A (ja) 2014-01-30

Family

ID=50112057

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012155457A Pending JP2014017763A (ja) 2012-07-11 2012-07-11 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP2014017763A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015136801A1 (ja) * 2014-03-13 2015-09-17 株式会社日立ソリューションズ 情報管理システム
US10243736B2 (en) 2015-06-12 2019-03-26 Konica Minolta, Inc. Cryptographic system, updating method, and non-transitory storage medium encoded with computer readable program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015136801A1 (ja) * 2014-03-13 2015-09-17 株式会社日立ソリューションズ 情報管理システム
JP2015187828A (ja) * 2014-03-13 2015-10-29 株式会社日立ソリューションズ 情報管理システム
US10243736B2 (en) 2015-06-12 2019-03-26 Konica Minolta, Inc. Cryptographic system, updating method, and non-transitory storage medium encoded with computer readable program

Similar Documents

Publication Publication Date Title
JP5377540B2 (ja) 鍵管理システム
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US20140098960A1 (en) Ciphertext Processing Method, Apparatus, and System
JP6194886B2 (ja) 暗号化統計処理システム、復号システム、鍵生成装置、プロキシ装置、暗号化統計データ生成装置、暗号化統計処理方法、および、暗号化統計処理プログラム
JP2016513825A (ja) 安全通信方法および装置
JP2014017556A (ja) 共有秘密鍵生成装置、暗号化装置、復号化装置、及びプログラム
US20160380768A1 (en) Data management device, system, re-encryption device, data sharing device, and storage medium
JP5047638B2 (ja) 暗号文復号権委譲システム
JP6556955B2 (ja) 通信端末、サーバ装置、プログラム
JP6033741B2 (ja) 暗号化鍵更新システム及びその方法
JP6468567B2 (ja) 鍵交換方法、鍵交換システム
JP5079479B2 (ja) Idベース暗号システム、方法
JP5289476B2 (ja) 通信装置および鍵算出装置
KR20150081168A (ko) 래티스에서의 아이디 기반 브로드캐스트 방법
JP6294882B2 (ja) 鍵保管装置、鍵保管方法、及びそのプログラム
JPWO2016199507A1 (ja) 鍵交換方法、鍵交換システム、鍵配送装置、通信装置、およびプログラム
JP2006279269A (ja) 情報管理装置、情報管理システム、ネットワークシステム、ユーザ端末、及びこれらのプログラム
JP6348273B2 (ja) 情報処理システム
JP2014017763A (ja) 暗号更新システム、暗号更新要求装置、暗号更新装置、復号装置、暗号更新方法、および、コンピュータ・プログラム
KR101793528B1 (ko) 무인증서 공개키 암호 시스템
JP2019125956A (ja) 鍵交換方法、鍵交換システム、鍵交換サーバ装置、通信装置、プログラム
KR20200131688A (ko) 비밀키 생성 장치 및 방법, 연산키 생성 장치 및 방법
KR101599996B1 (ko) 폐기가능한 id 기반 암호 서버 및 시스템
JP2020127084A (ja) 暗号化システム及び暗号化方法
KR102651443B1 (ko) 분산 해독 키 기반의 연합 학습 방법