説明

データベース暗号化装置、データベース暗号化システム、データベース暗号化方法及びプログラム

【課題】サーバ管理者による鍵の漏洩を防ぐとともに、安価に情報漏洩を防止できるデータベース暗号化装置、データベース暗号化システム、データベース暗号化方法及びプログラムを提供する。
【解決手段】DB暗号化装置2は、鍵クライアント装置6から受信した鍵から一意に求められる鍵特定値を計数し、鍵と鍵特定情報とを関連付けて揮発性メモリに記憶し、暗号化制御装置1は、鍵特定情報と、鍵クライアント装置6が生成した暗号化対象データに関する情報とを関連付けて不揮発性メモリに記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データベース暗号化装置、データベース暗号化システム、データベース暗号化方法及びプログラムに関する。
【背景技術】
【0002】
データを格納するシステムには、システム内のデータベースを参照することによる情報漏洩を防ぐため、データベース内の情報(データ)を難読化するデータベース暗号化システムがある。
【0003】
データベース暗号化システムとは、データ格納時に「暗号鍵」を基にデータを暗号化し、暗号化したデータをデータベースに格納し、データ参照時に「復号鍵」を基に暗号化したデータを復号化するシステムである。
【0004】
特許文献1は、データを暗号化してデータベースに記憶し、暗号化または復号化に要する鍵をデータベース所有者のシステムで管理する分散型データベースシステムを開示している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開昭61−80433号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1が開示する分散型データベースシステムは、不揮発性ディスクに鍵を格納しているため、サーバ管理者は、そのディスクを引き抜くことで鍵を参照することができる。すなわち、悪意のあるサーバ管理者が、鍵を格納している不揮発性ディスクを引く抜くことにより、データベースの情報が漏洩する可能性がある。
【0007】
この問題に対する解決策として、耐タンパ性を有しているHSM(Hardware Security Module)に暗号化した鍵を格納し、HSM内で鍵を復号化して鍵を取得する方法が考えられるが、HSMは特殊なハードウェアであり高価であるため、システム導入コストも高価になってしまう。
【0008】
また、HSMを使用しなくても、揮発性メモリを使用することでメモリを引き抜いた際に鍵が消滅する安価な方法が考えられるが、システム障害等の何かしらの理由で揮発性メモリへの電力供給が停止した場合、揮発性メモリ内の鍵のデータは全て消去されてしまうため、再度揮発性メモリに鍵を格納する必要がある。
【0009】
この時、本来システム停止前と同じ鍵を登録する必要があるが、仮にシステム停止前と異なる鍵が格納された場合、電力供給の停止前後で、異なる鍵で暗号化されたデータが同一データベース上に格納され、データベース内で矛盾が生じることとなる。
【0010】
本発明は、上記事情に鑑みてなされたものであり、サーバ管理者による鍵の漏洩を防ぐとともに、安価に情報漏洩を防止できるデータベース暗号化装置、データベース暗号化システム、データベース暗号化方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するため、本発明の第1の観点に係るデータベース暗号化装置は、
データの暗号化又は復号化に要する鍵と該鍵から一意に求められる鍵特定値とが関連付けて記憶される揮発性記憶部と、暗号化対象のデータを特定する暗号化情報と前記鍵特定値とが関連付けて記憶される不揮発性記憶部と、を備えるデータベース暗号化装置であって、
前記鍵と前記暗号化情報とを受信する受信手段と、
前記受信手段が受信した前記鍵を基に、前記鍵特定値を求める鍵特定値計数手段と、
前記受信手段が受信した前記暗号化情報が既に前記不揮発性記憶部に記憶されているか否かを判別する暗号化情報判別手段と、
前記暗号化情報判別手段の判別結果に基づいて、前記鍵特定値計数手段が求めた前記鍵特定値と前記受信手段が受信した前記暗号化情報に関連付けて前記不揮発性記憶部に記憶されている前記鍵特定値とを比較する鍵特定値比較手段と、
前記暗号化情報判別手段の判別結果に基づいて、前記受信手段が受信した前記暗号化情報と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて前記不揮発性記憶部に記憶するか否かを判別する暗号化情報記憶手段と、
前記鍵特定値比較手段の比較結果に基づいて、前記受信手段が受信した前記鍵と前記鍵特定値計数手段が求めた前記鍵特定値とを前記揮発性記憶部に関連付けて記憶するか否かを判別する鍵記憶手段と、
前記不揮発性記憶部に記憶された前記暗号化情報と前記鍵特定値、及び前記揮発性記憶部に記憶された前記鍵と前記鍵特定値を基に、データを暗号化又は復号化するデータ暗号化手段と、を備える、
ことを特徴とする。
【0012】
また、前記鍵特定値比較手段は、前記暗号化情報判別手段が、前記暗号化情報が既に前記不揮発性記憶部に記憶されていると判別した場合に、前記鍵特定値計数手段が求めた前記鍵特定値と前記不揮発性記憶部に既に記憶されている前記鍵特定値とを比較し、
前記鍵特定値比較手段が、前記二つの鍵特定値が等しいと判別した場合に、
前記鍵記憶手段は、前記受信手段が受信した前記鍵と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて前記揮発性記憶部に記憶し、
前記暗号化情報記憶手段は、前記受信手段が受信した前記暗号化情報と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて記憶しても良い。
【0013】
また、前記鍵特定値計数手段は、ハッシュ関数を基に、前記鍵特定値を求めても良い。
【0014】
上記目的を達成するため、本発明の第2の観点に係るデータベース暗号化システムは、
ネットワークを介して相互に接続される複数のクライアント装置とデータベース暗号化装置とを備えるデータベース暗号化システムであって、
前記クライアント装置は、
データの暗号化又は復号化に要する鍵を生成する鍵生成手段と、
暗号化対象のデータを特定する暗号化情報を生成する暗号化情報生成手段と、
前記鍵生成手段に生成された前記鍵と、前記暗号化情報生成手段に生成された前記暗号化情報とを、ネットワークを介して相互に接続された暗号化システムに送信する送信手段と、を備え、
前記データベース暗号化装置は、
データの暗号化又は復号化に要する鍵と該鍵から一意に求められる鍵特定値とが関連付けて記憶される揮発性記憶部と、暗号化対象のデータを特定する暗号化情報と前記鍵特定値とが関連付けて記憶される不揮発性記憶部と、を備えるデータベース暗号化装置であって、
前記鍵と前記暗号化情報とを受信する受信手段と、
前記受信手段が受信した前記鍵を基に、前記鍵特定値を求める鍵特定値計数手段と、
前記受信手段が受信した前記暗号化情報が既に前記不揮発性記憶部に記憶されているか否かを判別する暗号化情報判別手段と、
前記暗号化情報判別手段の判別結果に基づいて、前記鍵特定値計数手段が求めた前記鍵特定値と前記受信手段が受信した前記暗号化情報に関連付けて前記不揮発性記憶部に記憶されている前記鍵特定値とを比較する鍵特定値比較手段と、
前記暗号化情報判別手段の判別結果に基づいて、前記受信手段が受信した前記暗号化情報と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて前記不揮発性記憶部に記憶するか否かを判別する暗号化情報記憶手段と、
前記鍵特定値比較手段の比較結果に基づいて、前記受信手段が受信した前記鍵と前記鍵特定値計数手段が求めた前記鍵特定値とを前記揮発性記憶部に関連付けて記憶するか否かを判別する鍵記憶手段と、
前記不揮発性記憶部に記憶された前記暗号化情報と前記鍵特定値、及び前記揮発性記憶部に記憶された前記鍵と前記鍵特定値を基に、データを暗号化又は復号化するデータ暗号化手段と、を備える、
ことを特徴とする。
【0015】
上記目的を達成するため、本発明の第3の観点に係るデータベース暗号化方法は、
データの暗号化又は復号化に要する鍵と該鍵から一意に求められる鍵特定値とが関連付けて記憶される揮発性記憶部と、暗号化対象のデータを特定する暗号化情報と前記鍵特定値とが関連付けて記憶される不揮発性記憶部と、を備えるデータベース暗号化装置でデータベースを暗号化する方法であって、
前記鍵と前記暗号化情報とを受信する受信ステップと、
前記受信ステップが受信した前記鍵を基に、前記鍵特定値を求める鍵特定値計数ステップと、
前記受信ステップが受信した前記暗号化情報が既に前記不揮発性記憶部に記憶されているか否かを判別する暗号化情報判別ステップと、
前記暗号化情報判別ステップの判別結果に基づいて、前記鍵特定値計数ステップが求めた前記鍵特定値と前記受信ステップが受信した前記暗号化情報に関連付けて前記不揮発性記憶部に記憶されている前記鍵特定値とを比較する鍵特定値比較ステップと、
前記暗号化情報判別ステップの判別結果に基づいて、前記受信ステップが受信した前記暗号化情報と前記鍵特定値計数ステップが求めた前記鍵特定値とを関連付けて前記不揮発性記憶部に記憶するか否かを判別する暗号化情報記憶ステップと、
前記鍵特定値比較ステップの比較結果に基づいて、前記受信ステップが受信した前記鍵と前記鍵特定値計数ステップが求めた前記鍵特定値とを前記揮発性記憶部に関連付けて記憶するか否かを判別する鍵記憶ステップと、
前記不揮発性記憶部に記憶された前記暗号化情報と前記鍵特定値、及び前記揮発性記憶部に記憶された前記鍵と前記鍵特定値を基に、データを暗号化又は復号化するデータ暗号化ステップと、を備える、
ことを特徴とする。
【0016】
上記目的を達成するため、本発明の第4の観点に係るプログラムは、
データの暗号化又は復号化に要する鍵と該鍵から一意に求められる鍵特定値とが関連付けて記憶される揮発性記憶部と、暗号化対象のデータを特定する暗号化情報と前記鍵特定値とが関連付けて記憶される不揮発性記憶部と、を備えるコンピュータを、
前記鍵と前記暗号化情報とを受信する受信手段、
前記受信手段が受信した前記鍵を基に、前記鍵特定値を求める鍵特定値計数手段、
前記受信手段が受信した前記暗号化情報が既に前記不揮発性記憶部に記憶されているか否かを判別する暗号化情報判別手段、
前記暗号化情報判別手段の判別結果に基づいて、前記鍵特定値計数手段が求めた前記鍵特定値と前記受信手段が受信した前記暗号化情報に関連付けて前記不揮発性記憶部に記憶されている前記鍵特定値とを比較する鍵特定値比較手段、
前記暗号化情報判別手段の判別結果に基づいて、前記受信手段が受信した前記暗号化情報と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて前記不揮発性記憶部に記憶するか否かを判別する暗号化情報記憶手段、
前記鍵特定値比較手段の比較結果に基づいて、前記受信手段が受信した前記鍵と前記鍵特定値計数手段が求めた前記鍵特定値とを前記揮発性記憶部に関連付けて記憶するか否かを判別する鍵記憶手段、
前記不揮発性記憶部に記憶された前記暗号化情報と前記鍵特定値、及び前記揮発性記憶部に記憶された前記鍵と前記鍵特定値を基に、データを暗号化又は復号化するデータ暗号化手段、として機能させる、
ことを特徴とする。
【発明の効果】
【0017】
本発明によれば、サーバ管理者による鍵の漏洩を防ぐとともに、安価に情報漏洩を防止できる。
【図面の簡単な説明】
【0018】
【図1】本発明の実施形態に係るDB暗号化システムの構成例を示すブロック図である。
【図2】本発明の実施形態に係る各装置のハードウェア構成例を示すブロック図である。
【図3】本発明の実施形態に係るDB暗号化システムの構成例を示すブロック図である。
【図4】本発明の実施形態に係るDB暗号化システムにおける各DBに記憶されているデータの一例を示す図である。
【図5】本発明の実施形態に係るDB暗号化システムにおける鍵登録処理の一例を示すフロー図である。
【図6】本発明の実施形態に係るDB暗号化システムにおけるデータ格納処理の一例を示すフロー図である。
【図7】本発明の実施形態に係るDB暗号化システムにおけるデータ参照処理の一例を示すフロー図である。
【図8】本発明の実施形態に係るDB暗号化システムにおける処理の具体例を説明するための図である。
【図9】本発明の実施形態に係るDB暗号化システムの変形例の一例を示す図である。
【発明を実施するための形態】
【0019】
以下、本発明に係る実施形態では、共通鍵暗号方式を使用してデータの暗号化を実施する。共通鍵暗号方式とは、暗号化に使用する鍵と、復号化に使用する鍵が共通である方式のことである。
【0020】
本発明の実施形態に係るデータベース暗号化システム100(以下、DB暗号化システムとする)について、図面を参照して説明する。DB暗号化システム100は、図1に示すように、暗号化システム10と、クライアント装置5と、鍵クライアント装置6と、ネットワーク7と、から構成される。暗号化システム10は、暗号化制御装置1と、データベース暗号化装置2(以下、DB暗号化装置とする)と、データベース制御装置3(以下、DB制御装置とする)と、アプリ制御装置4と、から構成されるクラスタシステムである。
【0021】
暗号化システム10を構成する暗号化制御装置1、DB暗号化装置2、DB制御装置3、アプリ制御装置4は、それぞれ図2に示すように、制御部81と、主記憶部82と、外部記憶部83と、操作部84と、表示部85と、送受信部86から構成されている。主記憶部82と、外部記憶部83と、操作部84と、表示部85と、送受信部86は、いずれも内部バス80を介して制御部81に接続されている。
【0022】
送受信部86は、ネットワーク7に接続する網終端装置または無線通信装置と、それらと接続するシリアルインタフェースまたはLAN(Local Area Network)インタフェースから構成されている。送受信部86は、図1に示す各装置からネットワーク7を介して送信された要求や結果通知等を受信する。また、送受信部86は、受信した要求や情報等を、制御部81に供給する。
【0023】
外部記憶部83は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random−Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成され、後述する各処理を制御部81に行わせるためのプログラム89を予め記憶し、また、制御部81の指示に従って、外部記憶部83が記憶するデータを制御部81に供給し、制御部81から供給されたデータを記憶する。
【0024】
主記憶部82は、RAM(Random−Access Memory)等から構成され、外部記憶部83に記憶されているプログラム89を読み込み、さらに制御部81の作業領域としても使用される。
【0025】
制御部81は、CPU(Central Processing Unit)等から構成され、外部記憶部83に記憶されているプログラム89に従って、後述する各処理を実行する。
【0026】
操作部84は、キーボードやマウス、操作キーやタッチパネルなどの入力デバイス等と、入力デバイス等を内部バス80に接続するインタフェース装置から構成されている。操作部84は、ユーザの指示を入力させる機能を備える。
【0027】
表示部85は、LCD(Liquid Crystal Display)または有機EL(Electro Luminescence)等から構成されている。表示部85は、各データや情報等を表示する。
【0028】
続いて、図1に示す各装置の機能ブロックについて説明する。暗号化制御装置1は、図3に示すように、鍵特定値判別部110と、暗号化判別部120と、復号化判別部130と、鍵特定値DB140と、を備え、データを暗号化または復号化するか否かを判別する。
【0029】
鍵特定値DB140は、外部記憶部83に備えられ、図4(A)に示すように、暗号化対象データの情報や、暗号化または復号化する際に用いられる鍵を一意に特定する鍵特定値が記憶される。鍵特定値とは、例えば、鍵の値そのものではなく、鍵の値から求められる難読な値であり、鍵を特定することができる値である。また、暗号化対象データの情報とは、格納するデータのうちで暗号化するデータを特定する情報であり、例えば、データの種類や格納領域等である。
【0030】
鍵特定値判別部110、暗号化判別部120、復号化判別部130は、プログラム89により提供され、制御部81及び主記憶部82が協働して動作することで実現される機能部である。
【0031】
鍵特定値判別部110は、DB暗号化装置2から送信される後述する鍵登録判別要求に従って、鍵特定値が登録済みか否かを判別し、未登録の場合は、鍵登録判別要求を基に、鍵特定値を鍵特定値DB140に記憶する。
【0032】
暗号化判別部120は、鍵特定値DB140に記憶されている暗号化対象データの情報を参照し、データを格納する際に、データを暗号化するか否かを判別し、暗号化する場合はDB暗号化装置2にデータの暗号化を依頼し、暗号化が不要な場合はDB制御装置3にデータの格納を依頼する。
【0033】
復号化判別部130は、鍵特定値DB140に記憶されている暗号化対象データの情報を参照し、参照するデータを復号化する必要があるか否かを判別し、復号化する必要がある場合はDB暗号化装置2にデータの復号化を依頼し、復号化が不要な場合はアプリ制御装置4を介してクライアント装置5に参照したデータを送信する。
【0034】
DB暗号化装置2は、鍵登録部210、暗号化部220、復号化部230、鍵保管DB240から構成され、鍵の保管や、データの暗号化または復号化を行う。
【0035】
鍵保管DB240は、DIMM(Dual Inline Memory Module)やSIMM(Single Inline Memory Module)等の揮発性メモリから構成され、図4(B)に示すように、暗号化、復号化に必要な鍵値とその鍵値から一意に求められた鍵特定値を関連付けて記憶する。鍵保管DB240に記憶されているデータは、揮発性メモリへの電力供給の停止によって全て消去される。
【0036】
鍵登録部210、暗号化部220、復号化部230は、プログラム89により提供され、制御部81及び主記憶部82が協働して動作することで実現される機能部である。
【0037】
鍵登録部210は、鍵を特定する鍵特定値を生成し、鍵の値と、鍵特定値を関連付けて鍵保管DB240に記憶する。本実施形態では、鍵特定値には、ハッシュ値を使用する。ハッシュ値は、SHA1(Secure Hash Algorithm)等の一方向ハッシュ関数を使用して求めるが、これに限られず、MD5(Message Digest Algorithm)を使用しても良く、HMAC(Keyed−Hashing for Message Authentication code)と組み合わせて使用しても良い。
【0038】
暗号化部220は、暗号化制御装置1から受信した暗号化要求に従い、鍵保管DB240を参照して鍵特定値から暗号鍵を取得し、データの暗号化を行う。
【0039】
復号化部230は、暗号化制御装置1から受信した復号化要求に従い、鍵保管DB240を参照して鍵特定値から復号鍵を取得し、データの復号化を行う。
【0040】
DB制御装置3は、データ格納部310、データ抽出部320、データ保管DB330から構成され、各データを記憶する。
【0041】
データ保管DB330は、外部記憶部83に備えられ、図4(C)に示すように、各データを記憶する。データ保管DB330は、暗号化されたデータに限られず、暗号化されていない、または暗号化する必要のないデータも記憶する。
【0042】
データ格納部310とデータ抽出部320は、プログラム89により提供され、制御部81及び主記憶部82が協働して動作することで実現される機能部である。
【0043】
データ格納部310は、暗号化制御装置1から送信された後述するデータ格納要求に従ってデータを格納する。
【0044】
データ抽出部320は、暗号化制御装置1から送信された後述するデータ参照要求に従ってデータを抽出し、抽出したデータを暗号化制御装置1に返却する。
【0045】
アプリ制御装置4は、ネットワーク7を介してユーザにサービスを提供するプログラムを有する装置であり、クライアント装置5から暗号化システム10に対して送信される要求や情報を受信する。また、アプリ制御装置4は、外部記憶部83にデータ識別子記憶部410を備え、データ識別子記憶部410は、データにデータ集合の識別子(例えば、テーブル名やその列名等)を記憶している。アプリ制御装置4は、クライアント装置5との接続を確立し、クライアント装置5から送信された各要求を処理する。
【0046】
クライアント装置5は、ユーザが操作するサーバであり、PC(Personal Computer)や、携帯電話、PDA(Personal Digital Assistant)、キオスク端末、固定電話等である。
【0047】
鍵クライアント装置6は、ユーザが操作することで鍵の生成、保存、暗号化システム10への鍵の配送を行うための装置であり、PCや、携帯電話、PDA、キオスク端末、固定電話等である。
【0048】
以上が、DB暗号化システム100の構成である。
【0049】
続いて、DB暗号化システム100の動作について図5乃至7に示すフローチャートを参照して説明する。初めに、ユーザがデータ格納の事前準備として、暗号化システム10に鍵を保管する際の動作について説明する。
【0050】
ユーザは、鍵クライアント装置6を操作して鍵を生成し、生成した鍵と、どのデータを暗号化して保存しておくか、等の暗号化対象情報を作成する。暗号化対象情報は、データ集合の識別子、データ集合の特定の領域等であり、例えば、データ保管DB330に記憶しているテーブル名A、そのテーブルの列名B等であり、これらの暗号化対象情報の場合、Aテーブルの列名Bに該当するデータは暗号化して格納されることとなる。
【0051】
次に、鍵クライアント装置6は、DB暗号化装置2との接続を確立する。DB暗号化装置2の鍵登録部210は、鍵クライアント装置6との接続が確立すると、図5に示す鍵登録処理を開始する。
【0052】
鍵登録部210は、鍵クライアント装置6との接続を確立すると、クライアントが正当なユーザであることを判別するために、クライアント認証処理を行う(S100)。クライアント認証処理は、例えば、ID/Password認証によって行われるが、これに限られず、鍵クライアント装置6に格納された機器IDや、認証鍵を使用した機器認証等で行っても良い。なお、クライアント認証処理の結果、不当なユーザであると判別した場合、DB暗号化装置2は、鍵クライアント装置6との接続を切断する(図示せず)。
【0053】
鍵クライアント装置6は、DB暗号化装置2に認証されると、鍵登録要求を送信する。鍵登録要求は、生成した鍵と、暗号化対象情報と共に送信される。
【0054】
DB暗号化装置2の鍵登録部210は、鍵登録要求を受信すると(S101)、受信した鍵を基に鍵特定値を求める(S102)。鍵特定値は、鍵値をSHA1の一方向ハッシュ関数に適用することで求められる。
【0055】
次に、鍵登録部210は、鍵登録判別要求を暗号化制御装置1に対して送信する(S103)。鍵登録判別要求は、求めた鍵特定値と、暗号化対象情報と共に送信される。
【0056】
暗号化制御装置1の鍵特定値判別部110は、上述の鍵登録判別要求を受信すると、鍵特定値判別処理を開始する。
【0057】
鍵特定値判別部110は、DB暗号化装置2から鍵登録判別要求を受信すると(S104)、鍵登録判別要求に従って、暗号化対象情報が鍵特定値DB140に記憶されているか否かを判別する(S105)。例えば、暗号化対象情報がテーブル名A、列名Bである場合、鍵特定値判別部110は、テーブル名A、列名B、これらに関連付けられている鍵特定値が鍵特定値DB140に記憶されているか否かを判別する。
【0058】
記憶されていない場合、鍵特定値判別部110は、鍵特定値DB140に、暗号化対象情報と鍵特定値を関連付けて記憶し(S106)、登録完了として鍵登録要求に対する結果をDB暗号化装置2に送信し(S110)、処理を終了する。
【0059】
記憶されている場合、鍵特定値判別部110は、記憶されている鍵特定値が、鍵登録要求に含まれる鍵特定値と一致しているか否かを判別する(S107)。
【0060】
鍵特定値が一致している場合、鍵特定値判別部110は、登録済みとして鍵登録要求に対する結果をDB暗号化装置2に送信し(S108)、処理を終了する。鍵特定値が不一致である場合、鍵特定値判別部110は、不一致として鍵登録要求に対する結果をDB暗号化装置2に送信し(S109)、処理を終了する。
【0061】
次に、DB暗号化装置2の鍵登録部210は、暗号化制御装置1から鍵登録要求に対する結果を受信すると(S111)、その結果を判別する(S112)。
【0062】
結果が不一致である場合、鍵登録部210は、鍵クライアント装置6にエラーを通知し(S114)、不一致以外(登録済み、登録完了)である場合、鍵登録部210は、鍵保管DB240に、鍵と鍵特定値を関連付けて記憶し(S113)、鍵クライアント装置6から受信した鍵登録要求に対する結果を送信し(S115)、処理を終了する。
【0063】
以上が、ユーザが事前に暗号化システム10に鍵を保管する際の動作である。
【0064】
続いて、ユーザが暗号化システム10にデータを格納する際の動作について説明する。
【0065】
クライアント装置5を操作するユーザは、暗号化システム10に対して、ネットワーク7を介してデータ格納要求を送信する。データ格納要求は、格納するデータと共に送信される。例えば、氏名A、住所B、電話番号C等のデータである。
【0066】
アプリ制御装置4は、クライアント装置5からデータ格納要求を受信すると、アプリケーション処理を実行し、格納するデータに対応するデータ集合の識別子を特定し、データ格納要求を求めたデータ集合の識別子と共に、暗号化制御装置1に送信する。アプリケーション処理とは、例えば、氏名A、住所B、電話番号Cのデータを格納する場合、データ識別子記憶部410を参照し、格納に最適なテーブル名Dを求める処理である。
【0067】
暗号化制御装置1の暗号化判別部120は、アプリ制御装置4からデータ格納要求を受信すると、図6に示す暗号化判別処理を開始する。
【0068】
暗号化判別部120は、アプリ制御装置4からデータ格納要求を受信し(S200)、データ格納要求と共に受信したデータ集合の識別子が鍵特定値DB140に記憶されているか否かを判別する(S201)。
【0069】
鍵特定値DB140に該当するデータ集合の識別子が記憶されていない場合、暗号化判別部120は、アプリ制御装置4にデータ格納要求に対する結果としてエラーを送信する(S202)。また、この時の動作はこれに限られず、エラーを送信せずに新規にデータ集合の識別子(例えば、新規のテーブル)を生成するようにしても良い。
【0070】
鍵特定値DB140にデータ集合の識別子が記憶されている場合、暗号化判別部120は、その識別子に対応する暗号化対象情報と格納するデータとを比較し、暗号化が必要か否かを判別する(S203)。例えば、格納するデータが、テーブル名D、氏名A、住所B、電話番号Cであり、鍵特定値DB140にテーブル名D、列名「住所」に関連付けられた鍵特定値Eが記憶されている場合、住所Bの暗号化が必要であると判別する。
【0071】
暗号化が必要であると判別した場合、暗号化判別部120は、該当した暗号化対象情報に関連付けられている鍵特定値を取得し、DB暗号化装置2に暗号化要求を送信する(S204)。なお、暗号化要求は、鍵特定値、暗号化対象データと共に送信される。
【0072】
暗号化が不要であると判別した場合、暗号化判別部120は、DB制御装置3にデータ格納要求を送信する(S210)。
【0073】
DB暗号化装置2の暗号化部220は、上述の暗号化要求を受信すると暗号化処理を開始する。
【0074】
暗号化部220は、暗号化要求を受信すると(S205)、暗号化要求に含まれる鍵特定値を基に、鍵保管DB240から暗号鍵を取得する(S206)
【0075】
次に、暗号化部220は、暗号化処理を行う(S207)。暗号化処理とは、暗号化要求に含まれる暗号化対象データを、鍵保管DB240から取得した暗号鍵を使用して暗号化する処理である。本実施形態では、暗号化部220は、AES(Advanced Encryption Standard)アルゴリズムを使用して暗号化処理を行うが、これに限られず、DES(Data Encryption Standard)やT−DES(Triple Data Encryption Standard)、Camelliaアルゴリズムを使用しても良い。
【0076】
暗号化部220は、暗号化処理が終了すると、暗号化制御装置1に対して、暗号化の結果、すなわち、暗号化後のデータを送信し(S208)、処理を終了する。
【0077】
次に、暗号化制御装置1の暗号化判別部120は、DB暗号化装置2から暗号化結果を受信すると(S209)、DB制御装置3にデータ格納要求を送信する(S210)。データ格納要求は、テーブル名と、格納するデータと共に送信され、暗号化した場合は暗号化データも共に送信される。
【0078】
DB制御装置3のデータ格納部310は、上述のデータ格納要求を暗号化制御装置1から受信するとデータ格納処理を開始する。
【0079】
データ格納部310は、データ格納要求を受信すると(S211)、データ格納要求を基に、データ保管DB330に各データを記憶する(S212)。例えば、格納するデータが、テーブル名D、氏名A、住所X、電話番号Cである場合、データ格納部310は、データ保管DB330のDテーブルに、氏名A、住所X、電話番号C、を記憶する。
【0080】
データ格納部310は、データを格納すると、暗号化制御装置1にデータ格納要求の結果を送信し(S213)、処理を終了する。
【0081】
次に、暗号化制御装置1の暗号化判別部120は、DB制御装置3からデータ格納要求に対する結果を受信すると(S214)、そのデータ格納要求に従って、アプリ制御装置4に、データ格納要求に対する結果を送信し(S215)、処理を終了する。
【0082】
以上が、ユーザが暗号化システム10にデータを格納する際の動作である。
【0083】
続いて、ユーザが暗号化システム10に格納しているデータを参照する際の動作について説明する。
【0084】
クライアント装置5を操作するユーザは、暗号化システム10に対して、ネットワーク7を介してデータ参照要求を送信する。データ参照要求は、参照するデータの情報と共に送信される。例えば、電話番号C等のデータである。
【0085】
アプリ制御装置4は、クライアント装置5からデータ参照要求を受信すると、アプリケーション処理を実行し、参照するデータに対応するデータ集合の識別子を特定し、データ参照要求を求めたデータ集合の識別子と共に、暗号化制御装置1に送信する。アプリケーション処理とは、例えば、電話番号Cのデータを参照する場合、データ識別子記憶部410を参照し、参照に最適なテーブル名Dを求める処理である。
【0086】
暗号化制御装置1の復号化判別部130は、アプリ制御装置4からデータ参照要求を受信すると、図7に示す復号化判別処理を開始する。
【0087】
復号化判別部130は、アプリ制御装置4からデータ参照要求を受信し(S300)、DB制御装置3にデータ参照要求を送信する(S301)。このデータ参照要求は、アプリ制御装置4から受信したデータ参照要求とデータ集合の識別子及び参照するデータと共に送信される。例えば、テーブル名D、電話番号C等である。
【0088】
DB制御装置3のデータ抽出部320は、上述のデータ参照要求を暗号化制御装置1から受信するとデータ抽出処理を開始する。
【0089】
データ抽出部320は、データ参照要求を受信すると(S302)、データ参照要求を基に、データ保管DB330に記憶されているデータを取得する(S303)。例えば、テーブル名D、電話番号Cのデータを参照する場合、Dテーブルから、電話番号Cのデータを含むデータ群、氏名A、住所X、電話番号Cを取得する。
【0090】
データ抽出部320は、データを取得すると、暗号化制御装置1にデータ参照要求の結果、すなわち、取得した各データを送信し(S304)、処理を終了する。
【0091】
次に、暗号化制御装置1の復号化判別部130は、DB制御装置3からデータ参照要求に対する結果を受信すると(S305)、データ参照要求と共に送信された各データと、鍵特定値DB140に記憶されている暗号化対象情報とを比較し、復号化が必要か否かを判別する(S306)。例えば、参照結果のデータが、Dテーブル、氏名A、住所X、電話番号C、である場合、暗号化されている住所Xの復号化が必要であると判別する。
【0092】
復号化が必要であると判別した場合、復号化判別部130は、DB暗号化装置2に復号化要求を送信し(S307)、復号化が不要であると判別した場合、復号化判別部130は、アプリ制御装置4に参照結果のデータを送信し(S313)、処理を終了する。なお、復号化要求は、参照結果のデータ(暗号化データ)と、そのデータに対応する鍵特定値と共に送信される。
【0093】
DB暗号化装置2の復号化部230は、上述の復号化要求を受信すると復号化処理を開始する。
【0094】
復号化部230は、復号化要求を受信すると(S308)、復号化要求と共に送信された鍵特定値を基に、鍵保管DB240から復号鍵を取得する(S309)
【0095】
次に、復号化部230は、復号化処理を行う(S310)。復号化処理とは、復号化要求と共に送信された復号化対象データを、鍵保管DB240から取得した復号鍵を使用して復号化する処理である。
【0096】
復号化部230は、復号化処理が終了すると、暗号化制御装置1に対して、復号化の結果、すなわち、復号化後のデータ(平文)を送信し(S311)、処理を終了する。
【0097】
次に、暗号化制御装置1の復号化判別部130は、DB暗号化装置2から復号化結果を受信すると(S312)、アプリ制御装置4に、データ参照要求に対する結果、すなわち参照データを送信し(S313)、処理を終了する。アプリ制御装置4に送信する参照データは、例えば、氏名A、住所B、電話番号C、である。
【0098】
以上が、ユーザが暗号化システム10に格納しているデータを参照する際の動作である。
【0099】
続いて、理解を容易にするため、DB暗号化システム100の具体的な動作について説明する。本具体例では、DB暗号化装置2がシステム障害による電力供給停止により鍵が消去された場合について、図8を参照して説明する。
【0100】
暗号化制御装置1は、図8(A)に示すように、鍵特定値DB140に鍵特定値D2と暗号化対象情報Aを関連付けて記憶し、DB暗号化装置2は、図8(B)に示すように、鍵保管DB240に鍵K2と鍵特定値D2とを関連付けて記憶している。
【0101】
DB暗号化装置2においてシステム障害が発生し、電力供給が停止すると、鍵保管DB240は揮発性メモリで構成されているため、鍵保管DB240に記憶されていた各データは、図8(C)に示すように、全て消去される
【0102】
ユーザは、システム障害によって鍵が未登録状態となってしまったため、鍵クライアント装置6を操作して改めて鍵を登録する必要がある。ここで、まず、ユーザが鍵K2’(システム障害前と異なる鍵)を生成した場合について説明する。
【0103】
ユーザは鍵クライアント装置6を操作し、システム障害前の鍵K2と異なる鍵K2’を生成し、鍵登録要求を、鍵K2’と暗号化対象情報Aと共にDB暗号化装置2に送信する。
【0104】
DB暗号化装置2は鍵登録要求を受信すると、鍵K2’から鍵特定値D2’を求め、鍵登録判別要求を、暗号化対象情報Aと鍵特定値D2’と共に暗号化制御装置1に送信する。
【0105】
暗号化制御装置1は、鍵登録判別要求を受信すると、共に受信した暗号化対象情報Aが、鍵特定値DB140に記憶されているか否かを判別する。図8(A)に示すように、暗号化対象情報Aは登録されているため、暗号化対象情報Aに関連付けられている鍵特定値D2と、鍵登録判別要求と共に受信した鍵特定値D2’との比較をする。
【0106】
鍵特定値D2と鍵特定値D2’は異なる値であるため、暗号化制御装置1は、結果を不一致としてDB暗号化装置2を介して鍵クライアント装置6に送信する。すなわち、システム障害前と異なる鍵は登録されないこととなる。
【0107】
次に、ユーザが鍵K2(システム障害前と等しい鍵)を生成した場合について説明する。
【0108】
ユーザは鍵クライアント装置6を操作し、システム障害前の鍵K2と等しい鍵K2を生成し、鍵登録要求を、鍵K2と暗号化対象情報Aと共にDB暗号化装置2に送信する。
【0109】
DB暗号化装置2は鍵登録要求を受信すると、鍵K2から鍵特定値D2を求め、鍵登録判別要求を、暗号化対象情報Aと鍵特定値D2と共に暗号化制御装置1に送信する。
【0110】
暗号化制御装置1は、鍵登録判別要求を受信すると、共に受信した暗号化対象情報Aが、鍵特定値DB140に記憶されているか否かを判別する。図8(A)に示すように、暗号化対象情報Aは登録されているため、暗号化対象情報Aに関連付けられている鍵特定値D2と、鍵登録判別要求と共に受信した鍵特定値D2との比較をする。
【0111】
鍵特定値D2はどちらの値も等しいため、暗号化制御装置1は、結果を一致としてDB暗号化装置2に送信する。
【0112】
DB暗号化装置2は、一致の結果を受信すると、図8(D)に示すように、鍵保管DB240に鍵K2と鍵特定値D2を関連付けて記憶する。すなわち、鍵保管DB240に記憶されるデータは、システム障害前と同じデータとなる。
【0113】
以上説明したように、本実施形態に係るDB暗号化システム100は、暗号化または復号化に使用する鍵を揮発性メモリに記憶しているため、メモリを引き抜かれても電力供給停止に伴いデータが削除されることとなり、鍵の漏洩を防ぐことができる。
【0114】
また、システム障害等の電力供給停止により揮発性メモリに記憶された鍵が消去された場合でも、鍵登録時に、鍵値から求めた鍵特定値と、既に記憶されている鍵特定値との比較を行うため、鍵の消去前後での鍵の整合を取ることができる。
【0115】
[変形例]
本発明は、上記実施形態に限定されず、種々の変形例及び応用が可能である。上記実施形態は、クラウドコンピューティングにより実現するシステムによって説明したが、これに限られず、暗号化制御装置1、DB暗号化装置2、DB制御装置3、アプリ制御装置4の各機能を、物理的に一つのシステムで実現させても良い。
【0116】
また、本実施形態では、鍵クライアント装置6が鍵を生成したが、これに限られず、図9に示すように、鍵クライアント装置6を通信可能なHSM9を使用して鍵を生成しても良い。この場合、DB暗号化装置2とHSM9は、事前に共通鍵を有している必要がある。
【0117】
上述の構成の場合、鍵クライアント装置6は、HSM9に鍵生成要求を送信し、HSM9は、鍵生成要求を受信すると鍵K2を生成する。さらにHSM9は、生成した鍵K2を、DB暗号化装置2との共通鍵Kmを使用して暗号化し、暗号化した鍵Ksを鍵クライアント装置6に送信する。
【0118】
鍵クライアント装置6は、DB暗号化装置2に、暗号化された鍵Ksと共に鍵登録要求を送信する。DB暗号化装置2は、鍵登録要求を受信すると、暗号化された鍵KsをHSM9との共通鍵Kmで復号化し、HSM9が生成した鍵K2を取得する。その後の動作は、上述までで説明した動作と同等となる。
【0119】
このような構成にすることで、HSM9が鍵自体を暗号化して生成するため、鍵クライアント装置6での鍵の漏洩を防ぐことができる。
【0120】
また、本実施形態では、共通暗号鍵方式を使用してデータの暗号化を実施したが、これに限られず、公開暗号鍵方式を使用してデータを暗号化しても良い。この場合、鍵保管DB240には、公開鍵、秘密鍵、の二つの鍵値が記憶される。
【0121】
また、本実施形態では、鍵クライアント装置6が鍵を生成し、クライアント装置5がデータの格納、参照を要求する構成で説明したが、これに限られず、一つのクライアント装置5で鍵の生成、保管を実施しても良い。
【0122】
また、本実施形態では、暗号化対象データを鍵クライアント装置6によって事前に登録したが、これに限られず、予め暗号化対象のデータを記憶しても良い。例えば、予め暗号化制御装置1が「住所」「顧客番号」等のデータを記憶し、「住所」「顧客番号」のデータを格納する際は、暗号化するようにしても良い。
【0123】
また、本実施形態では、ハッシュ関数から鍵特定値を求めたが、これに限られず、新規の鍵を記憶する毎に識別子を1ずつ増加させ、この識別子を鍵特定値としても良く、ユーザ識別子を鍵特定値としても良い。
【0124】
また、本実施形態に係るDB暗号化システム100を構成する暗号化制御装置1、DB暗号化装置2、DB制御装置3、アプリ制御装置4は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、上述の動作を実行するためのプログラム89を、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、このプログラム89をコンピュータにインストールすることにより、上述の処理を実行する暗号化制御装置1、DB暗号化装置2、DB制御装置3、アプリ制御装置4を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置にこのプログラム89を格納しておき、通常のコンピュータシステムがダウンロード等することで暗号化制御装置1、DB暗号化装置2、DB制御装置3、アプリ制御装置4を構成してもよい。
【0125】
また、暗号化制御装置1、DB暗号化装置2、DB制御装置3、アプリ制御装置4の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
【0126】
また、搬送波にプログラム89を重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS:Bulletin Board System)にこのプログラム89を掲示し、ネットワークを介してプログラム89を配信してもよい。そして、このプログラム89を起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できるように構成してもよい。
【0127】
なお、クライアント装置5、鍵クライアント装置6についても、図2に示すハードウェア構成を採用することが可能であり、上述の説明と同様に、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。
【符号の説明】
【0128】
100 DB暗号化システム
10 暗号化システム
1 暗号化制御装置
110 鍵特定値判別部
120 暗号化判別部
130 復号化判別部
140 鍵特定値DB
2 DB暗号化装置
210 鍵登録部
220 暗号化部
230 復号化部
240 鍵保管DB
3 DB制御装置
310 データ格納部
320 データ抽出部
330 データ保管DB
4 アプリ制御装置
410 データ識別子記憶部
5 クライアント装置
6 鍵クライアント装置
7 ネットワーク
80 内部バス
81 制御部
82 主記憶部
83 外部記憶部
84 操作部
85 表示部
86 送受信部
89 プログラム
9 HSM


【特許請求の範囲】
【請求項1】
データの暗号化又は復号化に要する鍵と該鍵から一意に求められる鍵特定値とが関連付けて記憶される揮発性記憶部と、暗号化対象のデータを特定する暗号化情報と前記鍵特定値とが関連付けて記憶される不揮発性記憶部と、を備えるデータベース暗号化装置であって、
前記鍵と前記暗号化情報とを受信する受信手段と、
前記受信手段が受信した前記鍵を基に、前記鍵特定値を求める鍵特定値計数手段と、
前記受信手段が受信した前記暗号化情報が既に前記不揮発性記憶部に記憶されているか否かを判別する暗号化情報判別手段と、
前記暗号化情報判別手段の判別結果に基づいて、前記鍵特定値計数手段が求めた前記鍵特定値と前記受信手段が受信した前記暗号化情報に関連付けて前記不揮発性記憶部に記憶されている前記鍵特定値とを比較する鍵特定値比較手段と、
前記暗号化情報判別手段の判別結果に基づいて、前記受信手段が受信した前記暗号化情報と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて前記不揮発性記憶部に記憶するか否かを判別する暗号化情報記憶手段と、
前記鍵特定値比較手段の比較結果に基づいて、前記受信手段が受信した前記鍵と前記鍵特定値計数手段が求めた前記鍵特定値とを前記揮発性記憶部に関連付けて記憶するか否かを判別する鍵記憶手段と、
前記不揮発性記憶部に記憶された前記暗号化情報と前記鍵特定値、及び前記揮発性記憶部に記憶された前記鍵と前記鍵特定値を基に、データを暗号化又は復号化するデータ暗号化手段と、を備える、
ことを特徴とするデータベース暗号化装置。
【請求項2】
前記鍵特定値比較手段は、前記暗号化情報判別手段が、前記暗号化情報が既に前記不揮発性記憶部に記憶されていると判別した場合に、前記鍵特定値計数手段が求めた前記鍵特定値と前記不揮発性記憶部に既に記憶されている前記鍵特定値とを比較し、
前記鍵特定値比較手段が、前記二つの鍵特定値が等しいと判別した場合に、
前記鍵記憶手段は、前記受信手段が受信した前記鍵と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて前記揮発性記憶部に記憶し、
前記暗号化情報記憶手段は、前記受信手段が受信した前記暗号化情報と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて記憶する、
ことを特徴とする請求項1に記載のデータベース暗号化装置。
【請求項3】
前記鍵特定値計数手段は、ハッシュ関数を基に、前記鍵特定値を求める、
ことを特徴とする請求項1又は2に記載のデータベース暗号化装置。
【請求項4】
ネットワークを介して相互に接続される複数のクライアント装置とデータベース暗号化装置とを備えるデータベース暗号化システムであって、
前記クライアント装置は、
データの暗号化又は復号化に要する鍵を生成する鍵生成手段と、
暗号化対象のデータを特定する暗号化情報を生成する暗号化情報生成手段と、
前記鍵生成手段に生成された前記鍵と、前記暗号化情報生成手段に生成された前記暗号化情報とを、ネットワークを介して相互に接続された暗号化システムに送信する送信手段と、を備え、
前記データベース暗号化装置は、
データの暗号化又は復号化に要する鍵と該鍵から一意に求められる鍵特定値とが関連付けて記憶される揮発性記憶部と、暗号化対象のデータを特定する暗号化情報と前記鍵特定値とが関連付けて記憶される不揮発性記憶部と、を備えるデータベース暗号化装置であって、
前記鍵と前記暗号化情報とを受信する受信手段と、
前記受信手段が受信した前記鍵を基に、前記鍵特定値を求める鍵特定値計数手段と、
前記受信手段が受信した前記暗号化情報が既に前記不揮発性記憶部に記憶されているか否かを判別する暗号化情報判別手段と、
前記暗号化情報判別手段の判別結果に基づいて、前記鍵特定値計数手段が求めた前記鍵特定値と前記受信手段が受信した前記暗号化情報に関連付けて前記不揮発性記憶部に記憶されている前記鍵特定値とを比較する鍵特定値比較手段と、
前記暗号化情報判別手段の判別結果に基づいて、前記受信手段が受信した前記暗号化情報と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて前記不揮発性記憶部に記憶するか否かを判別する暗号化情報記憶手段と、
前記鍵特定値比較手段の比較結果に基づいて、前記受信手段が受信した前記鍵と前記鍵特定値計数手段が求めた前記鍵特定値とを前記揮発性記憶部に関連付けて記憶するか否かを判別する鍵記憶手段と、
前記不揮発性記憶部に記憶された前記暗号化情報と前記鍵特定値、及び前記揮発性記憶部に記憶された前記鍵と前記鍵特定値を基に、データを暗号化又は復号化するデータ暗号化手段と、を備える、
ことを特徴とするデータベース暗号化システム。
【請求項5】
データの暗号化又は復号化に要する鍵と該鍵から一意に求められる鍵特定値とが関連付けて記憶される揮発性記憶部と、暗号化対象のデータを特定する暗号化情報と前記鍵特定値とが関連付けて記憶される不揮発性記憶部と、を備えるデータベース暗号化装置でデータベースを暗号化する方法であって、
前記鍵と前記暗号化情報とを受信する受信ステップと、
前記受信ステップが受信した前記鍵を基に、前記鍵特定値を求める鍵特定値計数ステップと、
前記受信ステップが受信した前記暗号化情報が既に前記不揮発性記憶部に記憶されているか否かを判別する暗号化情報判別ステップと、
前記暗号化情報判別ステップの判別結果に基づいて、前記鍵特定値計数ステップが求めた前記鍵特定値と前記受信ステップが受信した前記暗号化情報に関連付けて前記不揮発性記憶部に記憶されている前記鍵特定値とを比較する鍵特定値比較ステップと、
前記暗号化情報判別ステップの判別結果に基づいて、前記受信ステップが受信した前記暗号化情報と前記鍵特定値計数ステップが求めた前記鍵特定値とを関連付けて前記不揮発性記憶部に記憶するか否かを判別する暗号化情報記憶ステップと、
前記鍵特定値比較ステップの比較結果に基づいて、前記受信ステップが受信した前記鍵と前記鍵特定値計数ステップが求めた前記鍵特定値とを前記揮発性記憶部に関連付けて記憶するか否かを判別する鍵記憶ステップと、
前記不揮発性記憶部に記憶された前記暗号化情報と前記鍵特定値、及び前記揮発性記憶部に記憶された前記鍵と前記鍵特定値を基に、データを暗号化又は復号化するデータ暗号化ステップと、を備える、
ことを特徴とするデータベース暗号化方法。
【請求項6】
データの暗号化又は復号化に要する鍵と該鍵から一意に求められる鍵特定値とが関連付けて記憶される揮発性記憶部と、暗号化対象のデータを特定する暗号化情報と前記鍵特定値とが関連付けて記憶される不揮発性記憶部と、を備えるコンピュータを、
前記鍵と前記暗号化情報とを受信する受信手段、
前記受信手段が受信した前記鍵を基に、前記鍵特定値を求める鍵特定値計数手段、
前記受信手段が受信した前記暗号化情報が既に前記不揮発性記憶部に記憶されているか否かを判別する暗号化情報判別手段、
前記暗号化情報判別手段の判別結果に基づいて、前記鍵特定値計数手段が求めた前記鍵特定値と前記受信手段が受信した前記暗号化情報に関連付けて前記不揮発性記憶部に記憶されている前記鍵特定値とを比較する鍵特定値比較手段、
前記暗号化情報判別手段の判別結果に基づいて、前記受信手段が受信した前記暗号化情報と前記鍵特定値計数手段が求めた前記鍵特定値とを関連付けて前記不揮発性記憶部に記憶するか否かを判別する暗号化情報記憶手段、
前記鍵特定値比較手段の比較結果に基づいて、前記受信手段が受信した前記鍵と前記鍵特定値計数手段が求めた前記鍵特定値とを前記揮発性記憶部に関連付けて記憶するか否かを判別する鍵記憶手段、
前記不揮発性記憶部に記憶された前記暗号化情報と前記鍵特定値、及び前記揮発性記憶部に記憶された前記鍵と前記鍵特定値を基に、データを暗号化又は復号化するデータ暗号化手段、として機能させる、
ことを特徴とするプログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate