しかしながら、アクセス権限を有するユーザのみが復号可能となるようにデータを暗号化して公開する場合、ユーザは、暗号化されたデータをローカルディスクに保存することができる。そのため、仮にユーザのアクセス権限を事後的に失効させたとしても、過去に保存された暗号化データの流通は妨げられず、アクセス権限の柔軟な変更が困難だった。
そこで、本発明は、データのアクセス権限を柔軟に変更できるデータ管理装置、データ管理方法、データ管理プログラム及びデータ管理システムを提供する。
本発明の一態様に係るデータ管理装置は、公開されている暗号化データの暗号化に用いられた共通鍵を、秘密鍵に対応する公開鍵で暗号化した暗号化共通鍵の公開及び非公開を制御する暗号化共通鍵公開部を備える。
この態様によれば、暗号化共通鍵の公開及び非公開を制御することで、暗号化データを公開した後であっても、データのアクセス権限を柔軟に変更できる。
上記態様において、秘密鍵及び公開鍵は、複数のユーザ毎に設定されていてもよい。
この態様によれば、データのアクセス権限をユーザ毎に制御することができる。
上記態様において、暗号化共通鍵公開部は、ユーザ認証が不要であるクラウドストレージに暗号化共通鍵を公開してもよい。
この態様によれば、暗号化共通鍵を簡素な手続きで入手できるようにして、ユーザの利便性を向上させることができる。
上記態様において、暗号化共通鍵公開部は、複数のユーザグループ毎に設定されているグループ共通鍵を共通鍵で暗号化した第1暗号化共通鍵の公開及び非公開を制御してもよい。
この態様によれば、データのアクセス権限をユーザグループ毎に制御することができる。
本発明の他の態様に係るデータ管理方法は、公開されている暗号化データの暗号化に用いられた共通鍵を、秘密鍵に対応する公開鍵で暗号化した暗号化共通鍵の公開及び非公開を制御することを含む。
この態様によれば、暗号化共通鍵の公開及び非公開を制御することで、暗号化データを公開した後であっても、データのアクセス権限を柔軟に変更できる。
本発明の他の態様に係るデータ管理プログラムは、データ管理装置に備えられた演算部を、公開されている暗号化データの暗号化に用いられた共通鍵を、秘密鍵に対応する公開鍵で暗号化した暗号化共通鍵の公開及び非公開を制御する暗号化共通鍵公開部、として機能させる。
この態様によれば、暗号化共通鍵の公開及び非公開を制御することで、暗号化データを公開した後であっても、データのアクセス権限を柔軟に変更できる。
本発明の他の態様に係るデータ管理システムは、データ管理装置及び鍵リポジトリを含むデータ管理システムであって、データ管理装置は、データを共通鍵で暗号化して暗号化データを生成する第1暗号化部と、暗号化データを公開する暗号化データ公開部と、共通鍵を、秘密鍵に対応する公開鍵で暗号化して暗号化共通鍵を生成する第2暗号化部と、前記鍵リポジトリへの暗号化共通鍵の公開及び非公開を制御する暗号化共通鍵公開部と、を備える。
この態様によれば、暗号化共通鍵の公開及び非公開を制御することで、暗号化データを公開した後であっても、データのアクセス権限を柔軟に変更できる。
上記態様において、データ管理装置は、共通鍵を、複数のユーザグループ毎に設定されているグループ共通鍵で暗号化して第1暗号化共通鍵を生成する第3暗号化部と、グループ共通鍵を、公開鍵で暗号化して第2暗号化共通鍵を生成する第4暗号化部と、をさらに備え、暗号化データ公開部は、暗号化データ及び第2暗号化共通鍵を公開し、暗号化共通鍵公開部は、鍵リポジトリへの第1暗号化共通鍵の公開及び非公開を制御してもよい。
この態様によれば、データのアクセス権限をユーザグループ毎に制御することができる。
本発明によれば、データのアクセス権限を柔軟に変更できるデータ管理装置、データ管理方法、データ管理プログラム及びデータ管理システムを提供することができる。
添付図面を参照して、本発明の実施形態について説明する。なお、各図において、同一の符号を付したものは、同一又は同様の構成を有する。
図1は、本発明の実施形態に係るデータ管理システム100の概要を示す図である。データ管理システム100は、データ管理装置10、第1ユーザ端末21、第2ユーザ端末22及び鍵リポジトリ30を含む。データ管理装置10、第1ユーザ端末21、第2ユーザ端末22及び鍵リポジトリ30は、インターネット等の通信ネットワークNを介して接続される。第1ユーザ端末21は、第1ユーザにより用いられるスマートフォンやPC(Personal Computer)等の端末であり、第2ユーザ端末22は、第2ユーザにより用いられるスマートフォンやPC等の端末である。第1ユーザ端末21及び第2ユーザ端末22は、複数のユーザ端末の一例であり、データ管理システム100に含まれるユーザ端末の台数は任意である。
データ管理装置10は、汎用のコンピュータで構成され、テキスト、画像、動画、音声等の任意の形式のデータを特定の共通鍵で暗号化して、通信ネットワークNを介してアクセスできるように公開する。また、暗号化に用いた共通鍵をユーザが所持する秘密鍵に対応する公開鍵で暗号化して鍵リポジトリ30に保管する。
鍵リポジトリ30は、ユーザ認証が不要なクラウドストレージである。鍵リポジトリ30に保管されている情報は、共通鍵を特定のユーザの公開鍵で暗号化した情報であり、不特定のユーザは、情報を復号することができない。
図2は、本実施形態に係るデータ管理装置10の機能ブロックを示す図である。データ管理装置10は、第1暗号化部11、暗号化データ公開部12、第2暗号化部13、暗号化共通鍵公開部14、第3暗号化部15及び第4暗号化部16を備える。なお、データ管理装置10は、少なくとも暗号化共通鍵公開部14を備えていればよい。
第1暗号化部11は、データを共通鍵で暗号化して暗号化データを生成する。第1暗号化部11は、任意の暗号化アルゴリズムによってデータを暗号化してよいが、例えばAES(Advanced Encryption Standard)を用いてデータを暗号化してよい。また、データの内容は任意であり、テキスト、画像、動画、音声等であってよい。なお、暗号化データの生成は、データ管理装置10以外の装置によって行われてもよい。
暗号化データ公開部12は、暗号化データを公開する。暗号化データ公開部12は、暗号化データを、CDN(Content Delivery Network)によって一般に公開してよい。なお、暗号化データは、データ管理装置10以外の装置により公開されてもよい。
第2暗号化部13は、共通鍵を、ユーザの秘密鍵に対応する公開鍵で暗号化して暗号化共通鍵を生成する。第2暗号化部13は、任意の暗号化アルゴリズムによって共通鍵を暗号化してよいが、例えばRSA暗号を用いて共通鍵を暗号化してよい。なお、暗号化共通鍵の生成は、データ管理装置10以外の装置によって行われてもよい。
秘密鍵及び公開鍵は、複数のユーザ毎に設定されていてよい。本実施形態に係るデータ管理システム100の場合、秘密鍵及び公開鍵は、第1ユーザ及び第2ユーザそれぞれに固有のものであってよい。これにより、データのアクセス権限をユーザ毎に制御することができる。
暗号化共通鍵公開部14は、暗号化共通鍵の公開及び非公開を制御する。暗号化共通鍵公開部14は、公開されている暗号化データの暗号化に用いられた共通鍵を、秘密鍵に対応する公開鍵で暗号化した暗号化共通鍵の公開及び非公開を制御する。暗号化共通鍵公開部14は、暗号化共通鍵を鍵リポジトリ30に公開したり、鍵リポジトリ30に公開されている暗号化共通鍵を非公開に変更したりする。暗号化共通鍵の公開及び非公開の選択は、データの管理者によって行われてよい。ユーザは、暗号化データをいつでも入手することができるが、暗号化データを復号するためには、鍵リポジトリ30に保管された暗号化共通鍵を入手し、自己の秘密鍵で暗号化共通鍵を復号し、得られた共通鍵で暗号化データを復号する必要がある。データの管理者は、暗号化共通鍵の公開及び非公開を制御することで、特定のユーザにデータへのアクセス権限を与えたり、失効させたりすることができる。ここで、データへのアクセス権限の制御は、暗号化データの公開後であっても、任意のタイミングで行うことができる。
このように、本実施形態に係るデータ管理装置10によれば、暗号化共通鍵の公開及び非公開を制御することで、暗号化データを公開した後であっても、データのアクセス権限を柔軟に変更できる。
暗号化共通鍵公開部14は、ユーザ認証が不要であるクラウドストレージに暗号化共通鍵を公開してよい。本実施形態に係るデータ管理システム100では、暗号化共通鍵公開部14は、ユーザ認証が不要である鍵リポジトリ30に暗号化共通鍵を公開する。これにより、暗号化共通鍵を簡素な手続きで入手できるようにして、ユーザの利便性を向上させることができる。
第3暗号化部15は、共通鍵を、複数のユーザグループ毎に設定されているグループ共通鍵で暗号化して第1暗号化共通鍵を生成する。複数のユーザグループは、それぞれ複数のユーザが所属するグループであってよく、一人のユーザが複数のユーザグループに重複して所属していてもよい。第3暗号化部15は、任意の暗号化アルゴリズムによって共通鍵を暗号化してよいが、例えばAESを用いて共通鍵を暗号化してよい。なお、第1暗号化共通鍵の生成は、データ管理装置10以外の装置によって行われてもよい。
第4暗号化部16は、グループ共通鍵を、ユーザの秘密鍵に対応する公開鍵で暗号化して第2暗号化共通鍵を生成する。第4暗号化部16は、任意の暗号化アルゴリズムによってグループ共通鍵を暗号化してよいが、例えばRSA暗号を用いてグループ共通鍵を暗号化してよい。なお、第2暗号化共通鍵の生成は、データ管理装置10以外の装置によって行われてもよい。
暗号化データ公開部12は、暗号化データ及び第2暗号化共通鍵を公開してよい。暗号化データ公開部12は、暗号化データ及び第2暗号化共通鍵を、CDNによって一般に公開してよい。なお、暗号化データ及び第2暗号化共通鍵は、データ管理装置10以外の装置によって公開されてもよい。
暗号化共通鍵公開部14は、第1暗号化共通鍵の公開及び非公開を制御する。暗号化共通鍵公開部14は、第1暗号化共通鍵を鍵リポジトリ30に公開したり、鍵リポジトリ30に公開されている第1暗号化共通鍵を非公開に変更したりする。第1暗号化共通鍵の公開及び非公開の選択は、データの管理者によって行われてよい。ユーザは、暗号化データをいつでも入手することができるが、暗号化データを復号するためには、鍵リポジトリ30に保管された第1暗号化共通鍵を入手し、自己の秘密鍵で第1暗号化共通鍵を復号し、得られたグループ共通鍵で暗号化共通鍵を復号し、得られた共通鍵で暗号化データを復号する必要がある。データの管理者は、第1暗号化共通鍵の公開及び非公開を制御することで、特定のユーザグループにデータへのアクセス権限を与えたり、失効させたりすることができる。ここで、データへのアクセス権限の制御は、暗号化データの公開後であっても、任意のタイミングで行うことができる。
このように、本実施形態に係るデータ管理装置10によれば、第1暗号化共通鍵の公開及び非公開を制御することで、暗号化データを公開した後であっても、データのアクセス権限をユーザグループ毎に柔軟に変更できる。
図3は、本実施形態に係るデータ管理装置10の物理的構成を示す図である。データ管理装置10は、プロセッサに相当するCPU(Central Processing Unit)10aと、記憶部に相当するRAM(Random Access Memory)10bと、記憶部に相当するROM(Read only Memory)10cと、通信部10dと、入力部10eと、表示部10fと、を有する。これらの各構成は、バスを介して相互にデータ送受信可能に接続される。なお、本例ではデータ管理装置10が一台のコンピュータで構成される場合について説明するが、データ管理装置10は、複数のコンピュータが組み合わされて実現されてもよい。また、図3で示す構成は一例であり、データ管理装置10はこれら以外の構成を有してもよいし、これらの構成のうち一部を有さなくてもよい。
CPU10aは、RAM10b又はROM10cに記憶されたプログラムの実行に関する制御やデータの演算、加工を行う制御部である。CPU10aは、データの暗号化によってデータへのアクセス権限を制御するプログラム(データ管理プログラム)を実行する演算部である。CPU10aは、入力部10eや通信部10dから種々のデータを受け取り、データの演算結果を表示部10fに表示したり、RAM10bやROM10cに格納したりする。
RAM10bは、記憶部のうちデータの書き換えが可能なものであり、例えば半導体記憶素子で構成されてよい。RAM10bは、CPU10aが実行するデータ管理プログラム、共通鍵及びユーザの公開鍵等を記憶してよい。なお、これらは例示であって、RAM10bには、これら以外のデータが記憶されていてもよいし、これらの一部が記憶されていなくてもよい。
ROM10cは、記憶部のうちデータの読み出しが可能なものであり、例えば半導体記憶素子で構成されてよい。ROM10cは、例えばデータ管理プログラムや、書き換えが行われないデータを記憶してよい。
通信部10dは、データ管理装置10を他の機器に接続するインターフェースである。通信部10dは、インターネット等の通信ネットワークNに接続されてよい。
入力部10eは、データの管理者からデータの入力を受け付けるものであり、例えば、キーボードやタッチパネルを含んでよい。
表示部10fは、CPU10aによる演算結果を視覚的に表示するものであり、例えば、LCD(Liquid Crystal Display)により構成されてよい。表示部10fは、暗号化するデータの内容を表示したり、ユーザ毎に記憶された公開鍵を表示したりしてよい。
データ管理プログラムは、RAM10bやROM10c等のコンピュータによって読み取り可能な記憶媒体に記憶されて提供されてもよいし、通信部10dにより接続される通信ネットワークを介して提供されてもよい。データ管理装置10では、CPU10aがデータ管理プログラムを実行することにより、図2を用いて説明した様々な動作が実現される。なお、これらの物理的な構成は例示であって、必ずしも独立した構成でなくてもよい。例えば、データ管理装置10は、CPU10aとRAM10bやROM10cが一体化したLSI(Large-Scale Integration)を備えていてもよい。
図4は、本実施形態に係るデータ管理システム100によるユーザ単位のデータ管理の概要を示す図である。また、図5は、本実施形態に係るデータ管理システム100により実行されるユーザ単位のデータ管理処理のフローチャートである。はじめに、データ管理システム100は、データDを共通鍵Kで暗号化して暗号化データCDを生成する(S11)。この処理は、図4の「共通鍵で暗号化」と記載された処理C1に相当する。データ管理システム100は、生成した暗号化データCDをインターネット上に公開する(S12)。なお、暗号化データCDを公開するタイミングは任意である。
次に、データ管理システム100は、共通鍵Kを、秘密鍵に対応する公開鍵で暗号化して暗号化共通鍵CK1,CK2を生成する(S13)。この処理は、図4の「第1ユーザの公開鍵で暗号化」と記載された処理C2と、「第2ユーザの公開鍵で暗号化」と記載された処理C3に相当する。データ管理システム100は、暗号化共通鍵CK1,CK2を鍵リポジトリ30に公開する(S14)。暗号化共通鍵CK1,CK2が鍵リポジトリ30に公開されることで、第1ユーザ及び第2ユーザは、自己の秘密鍵を用いて暗号化共通鍵CK1又は暗号化共通鍵CK2を復号し、入手した共通鍵を用いて暗号化データCDを復号することができる。
その後、特定ユーザのアクセス権限を廃止する場合(S14:YES)、データ管理システム100は、特定ユーザに対応する暗号化共通鍵CK1,CK2を非公開に変更する(S15)。例えば、暗号化共通鍵CK1を非公開に変更する場合、第1ユーザは、暗号化データCDを復号するための共通鍵を手に入れることができなくなり、データDへのアクセス権限を失う。データ管理システム100は、特定のユーザの暗号化共通鍵を非公開に変更する際に、あわせて共通鍵を更新して、新たな共通鍵で暗号化データCDを生成して公開し、鍵リポジトリ30に公開している暗号化共通鍵を更新してもよい。これにより、暗号化共通鍵が非公開に変更されたユーザが古い共通鍵を保管していたとしても、暗号化データCDを復号することができなくなる。以上により、ユーザ単位のデータ管理処理が終了する。
図6は、本実施形態に係るデータ管理システム100によるユーザグループ単位のデータ管理の概要を示す図である。また、図7は、本実施形態に係るデータ管理システム100により実行されるユーザグループ単位のデータ管理処理のフローチャートである。はじめに、データ管理システム100は、データDを共通鍵Kで暗号化して暗号化データCDを生成する(S21)。この処理は、図6の「共通鍵で暗号化」と記載された処理C5に相当する。
次に、データ管理システム100は、共通鍵Kを、ユーザグループ毎に設定されているグループ共通鍵で暗号化して第1暗号化共通鍵CGK1A,CGK2Aを生成する(S22)。この処理は、図6の「第1グループの共通鍵で暗号化」と記載された処理C6と、「第2グループの共通鍵で暗号化」と記載された処理C7に相当する。
データ管理システム100は、グループ共通鍵を、秘密鍵に対応する公開鍵で暗号化して第2暗号化共通鍵CGK1B,CGK2Bを生成する(S23)。この処理は、図6の「第1ユーザの公開鍵で暗号化」と記載された処理C8と、「第2ユーザの公開鍵で暗号化」と記載された処理C9に相当する。
データ管理システム100は、暗号化データCD及び第2暗号化共通鍵CGK1B,CGK2Bをインターネット上に公開する(S24)。なお、暗号化データCD及び第2暗号化共通鍵CGK1B,CGK2Bを公開するタイミングは任意である。
また、データ管理システム100は、第1暗号化共通鍵CGK1A,CGK2Aを鍵リポジトリ30に公開する(S25)。第1ユーザ及び第2ユーザは、第2暗号化共通鍵CGK1B又は第2暗号化共通鍵CGK2Bを自己の秘密鍵を用いて復号し、入手したグループ共通鍵を用いて、鍵リポジトリ30に公開されている第1暗号化共通鍵CGK1A又は第1暗号化共通鍵CGK2Aを復号し、入手した共通鍵を用いて暗号化データCDを復号することができる。
その後、特定グループのアクセス権限を廃止する場合(S26:YES)、データ管理システム100は、特定グループに対応する第1暗号化共通鍵CGK1A,CGK2Aを非公開に変更する(S27)。例えば、第1暗号化共通鍵CGK1Aを非公開に変更する場合、第1ユーザグループに所属する複数のユーザ(例えば第1ユーザ)は、暗号化データCDを復号するためのグループ共通鍵を手に入れることができなくなり、データDへのアクセス権限を失う。データ管理システム100は、特定のグループの第1暗号化共通鍵を非公開に変更する際に、あわせて共通鍵を更新して、新たな共通鍵で暗号化データCDを生成して公開し、鍵リポジトリ30に公開している第1暗号化共通鍵を更新してもよい。これにより、第1暗号化共通鍵が非公開に変更されたユーザグループに所属するユーザが古い共通鍵を保管していたとしても、暗号化データCDを復号することができなくなる。以上により、ユーザグループ単位のデータ管理処理が終了する。
以上説明した実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。実施形態が備える各要素並びにその配置、材料、条件、形状及びサイズ等は、例示したものに限定されるわけではなく適宜変更することができる。また、異なる実施形態で示した構成同士を部分的に置換し又は組み合わせることが可能である。