(57)【要約】【課題】セキュリティを担保しつつセキュリティ管理コストを軽減すること。【解決手段】鍵管理システムは、ファイルの暗号化に用いられる暗号鍵であるファイル鍵を暗号化する暗号鍵であるスコープ鍵を使用可能な条件を前記スコープ鍵ごとに定義する鍵管理テーブルを記憶する記憶部と、前記スコープ鍵を生成し、前記条件を満たす前記スコープ鍵を端末装置へ送信する第１の制御部と、を備える鍵管理装置と、前記鍵管理装置から得られた前記スコープ鍵によって前記ファイル鍵を暗号化する第２の制御部と、前記ファイル鍵によって暗号化された前記ファイルと前記スコープ鍵によって暗号化されたファイル鍵とを対応付けて記憶するファイル記憶部と、を備える前記端末装置と、を有する。【選択図】図２
2017079435.tif 000002
【特許請求の範囲】
【請求項１】
ファイルの暗号化に用いられる暗号鍵であるファイル鍵を暗号化する暗号鍵であるスコープ鍵を使用可能な条件を前記スコープ鍵ごとに定義する鍵管理テーブルを記憶する記憶部と、
前記スコープ鍵を生成し、前記条件を満たす前記スコープ鍵を端末装置へ送信する第１の制御部と、
を備える鍵管理装置と、
前記鍵管理装置から得られた前記スコープ鍵によって前記ファイル鍵を暗号化する第２の制御部と、
前記ファイル鍵によって暗号化された前記ファイルと前記スコープ鍵によって暗号化されたファイル鍵とを対応付けて記憶するファイル記憶部と、
を備える前記端末装置と、
を有することを特徴とする鍵管理システム。
【請求項２】
前記条件は、特定のユーザを表す識別子によってユーザ認証がなされていることである、
ことを特徴とする請求項１に記載の鍵管理システム。
【請求項３】
前記条件は、少なくとも１つのアプリケーションからなるアプリケーショングループに含まれるアプリケーションが前記ファイルを使用することである、
ことを特徴とする請求項１または請求項２に記載の鍵管理システム。
【請求項４】
前記第１の制御部は、前記端末装置ごとに異なる暗号鍵であるデバイス鍵を生成して前記端末装置へ送信し、
前記第２の制御部は、前記鍵管理装置から得られた前記デバイス鍵によって前記スコープ鍵を暗号化する、
ことを特徴とする請求項１から請求項３のいずれか一項に記載の鍵管理システム。
【請求項５】
ファイルの暗号化に用いられる暗号鍵であるファイル鍵を暗号化する暗号鍵であるスコープ鍵を使用可能な条件を前記スコープ鍵ごとに定義する鍵管理テーブルを記憶する記憶部と、
前記スコープ鍵を生成し、前記条件を満たす前記スコープ鍵を端末装置へ送信する制御部と、
を備えることを特徴とする鍵管理装置。
【請求項６】
コンピュータである鍵管理装置とコンピュータである端末装置からなる鍵管理システムにおける鍵管理方法であって、
前記鍵管理装置が備える記憶部が、ファイルの暗号化に用いられる暗号鍵であるファイル鍵を暗号化する暗号鍵であるスコープ鍵を使用可能な条件を前記スコープ鍵ごとに定義する鍵管理テーブルを記憶する記憶ステップと、
前記鍵管理装置が備える制御部が、前記スコープ鍵を生成し、前記条件を満たす前記スコープ鍵を端末装置へ送信する第１の制御ステップと、
前記端末装置が備える制御部が、前記鍵管理装置から得られた前記スコープ鍵によって前記ファイル鍵を暗号化する第２の制御ステップと、
前記端末装置が備えるファイル記憶部が、前記ファイル鍵によって暗号化された前記ファイルと前記スコープ鍵によって暗号化されたファイル鍵とを対応付けて記憶するファイル記憶ステップと、
を有することを特徴とする鍵管理方法。
【請求項７】
鍵管理装置と端末装置からなる鍵管理システムにおいて、
前記鍵管理装置のコンピュータに、
ファイルの暗号化に用いられる暗号鍵であるファイル鍵を暗号化する暗号鍵であるスコープ鍵を使用可能な条件を前記スコープ鍵ごとに定義する鍵管理テーブルを記憶する記憶ステップと、
前記スコープ鍵を生成し、前記条件を満たす前記スコープ鍵を端末装置へ送信する第１の制御ステップと、
を実行させ、
前記端末装置のコンピュータに、
前記鍵管理装置から得られた前記スコープ鍵によって前記ファイル鍵を暗号化する第２の制御ステップと、
前記ファイル鍵によって暗号化された前記ファイルと前記スコープ鍵によって暗号化されたファイル鍵とを対応付けて記憶するファイル記憶ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵管理システム、鍵管理装置、鍵管理方法、およびプログラムに関する。
【背景技術】
【０００２】
昨今、スマートフォンなどの情報端末装置が普及し、情報端末装置に格納されているファイルへの第三者による不正なアクセスを防止するセキュリティ技術の重要性が高まっている。そのようなセキュリティ技術の１つとしてファイルの暗号化がある。ファイルの暗号化において、全てのファイルが１つの暗号鍵で暗号化されていると、その暗号鍵が第三者に漏洩すれば全てのファイルが第三者によってアクセス可能な状態になる。したがって、高いセキュリティを確保するためには、ファイルごとに異なる暗号鍵でファイルが暗号化されることが望ましい。また、暗号鍵と暗号化されたファイルを同じ情報端末装置に格納した場合、暗号鍵が盗まれた際のセキュリティリスクが増大するため、暗号鍵は異なる情報端末装置、例えば管理サーバ等に格納するのが一般的である。しかしながら、その場合には、ファイルの数が増加するにつれて暗号鍵の数も増加するため、鍵の管理サーバにおける暗号鍵の管理に係るセキュリティ管理コストが増大する。
【０００３】
そこで例えば、特許文献１に記載のファイル暗号システムは、まず、ファイルごとにランダムに生成した乱数でファイルを暗号化して暗号文ファイルを生成し、さらに、その乱数を共通の暗号鍵で暗号化して暗号文鍵を生成する。そして、ファイル暗号システムは、この暗号文鍵と暗号化ファイルとを併せて格納する。これにより、ファイル暗号システムは、１つの暗号鍵を管理するだけで、ファイルごとに異なる暗号鍵でファイルを暗号化した場合と同程度のセキュリティを確保する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２６０９０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ファイルへの不正なアクセスを防止するため、ファイルの暗号化の他に、ファイルへのアクセス権限の設定に基づくアクセス制御が行われることがある。アクセス制御は、例えば、ファイルごとに、ファイルへアクセス可能なユーザやファイルへアクセス可能なアプリケーションなどが定義されたアクセス権情報、例えばＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ；アクセス制御リスト）を用いて行われる。これにより、特定のユーザ、または特定のアプリケーションのみが、ファイルへアクセス可能となる。
しかしながら、その場合、アクセス権情報への不正なアクセスを防止するための対処が必要になるなど、新たなセキュリティ管理コストが発生しうる。
【０００６】
本発明は上記の点に鑑みてなされたものであり、セキュリティを担保しつつセキュリティ管理コストを軽減することができる鍵管理システム、鍵管理装置、鍵管理方法、およびプログラムを提供する。
【課題を解決するための手段】
【０００７】
（１）本発明は上記の課題を解決するためになされたものであり、本発明の一態様としては、ファイルの暗号化に用いられる暗号鍵であるファイル鍵を暗号化する暗号鍵であるスコープ鍵を使用可能な条件を前記スコープ鍵ごとに定義する鍵管理テーブルを記憶する記憶部と、前記スコープ鍵を生成し、前記条件を満たす前記スコープ鍵を端末装置へ送信する第１の制御部と、を備える鍵管理装置と、前記鍵管理装置から得られた前記スコープ鍵によって前記ファイル鍵を暗号化する第２の制御部と、前記ファイル鍵によって暗号化された前記ファイルと前記スコープ鍵によって暗号化されたファイル鍵とを対応付けて記憶するファイル記憶部と、を備える前記端末装置と、を有することを特徴とする鍵管理システムである。
【０００８】
（２）また、本発明の一態様としては、前記条件は、特定のユーザを表す識別子によってユーザ認証がなされていることである、ことを特徴とする（１）に記載の鍵管理システムである。
【０００９】
（３）また、本発明の一態様としては、前記条件は、少なくとも１つのアプリケーションからなるアプリケーショングループに含まれるアプリケーションが前記ファイルを使用することである、ことを特徴とする（１）または（２）に記載の鍵管理システムである。
【００１０】
（４）また、本発明の一態様としては、前記第１の制御部は、前記端末装置ごとに異なる暗号鍵であるデバイス鍵を生成して前記端末装置へ送信し、前記第２の制御部は、前記鍵管理装置から得られた前記デバイス鍵によって前記スコープ鍵を暗号化する、ことを特徴とする（１）から（３）のいずれか一つに記載の鍵管理システムである。
【００１１】
（５）また、本発明の一態様としては、ファイルの暗号化に用いられる暗号鍵であるファイル鍵を暗号化する暗号鍵であるスコープ鍵を使用可能な条件を前記スコープ鍵ごとに定義する鍵管理テーブルを記憶する記憶部と、前記スコープ鍵を生成し、前記条件を満たす前記スコープ鍵を端末装置へ送信する制御部と、を備えることを特徴とする鍵管理装置である。
【００１２】
（６）また、本発明の一態様としては、コンピュータである鍵管理装置とコンピュータである端末装置からなる鍵管理システムにおける鍵管理方法であって、前記鍵管理装置が備える記憶部が、ファイルの暗号化に用いられる暗号鍵であるファイル鍵を暗号化する暗号鍵であるスコープ鍵を使用可能な条件を前記スコープ鍵ごとに定義する鍵管理テーブルを記憶する記憶ステップと、前記鍵管理装置が備える制御部が、前記スコープ鍵を生成し、前記条件を満たす前記スコープ鍵を端末装置へ送信する第１の制御ステップと、前記端末装置が備える制御部が、前記鍵管理装置から得られた前記スコープ鍵によって前記ファイル鍵を暗号化する第２の制御ステップと、前記端末装置が備えるファイル記憶部が、前記ファイル鍵によって暗号化された前記ファイルと前記スコープ鍵によって暗号化されたファイル鍵とを対応付けて記憶するファイル記憶ステップと、を有することを特徴とする鍵管理方法である。
【００１３】
（７）また、本発明の一態様としては、鍵管理装置と端末装置からなる鍵管理システムにおいて、前記鍵管理装置のコンピュータに、ファイルの暗号化に用いられる暗号鍵であるファイル鍵を暗号化する暗号鍵であるスコープ鍵を使用可能な条件を前記スコープ鍵ごとに定義する鍵管理テーブルを記憶する記憶ステップと、前記スコープ鍵を生成し、前記条件を満たす前記スコープ鍵を端末装置へ送信する第１の制御ステップと、を実行させ、前記端末装置のコンピュータに、前記鍵管理装置から得られた前記スコープ鍵によって前記ファイル鍵を暗号化する第２の制御ステップと、前記ファイル鍵によって暗号化された前記ファイルと前記スコープ鍵によって暗号化されたファイル鍵とを対応付けて記憶するファイル記憶ステップと、を実行させるためのプログラム。
【発明の効果】
【００１４】
本発明によれば、セキュリティを担保しつつセキュリティ管理コストを軽減することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態に係る鍵管理システムの概要を示す概略図である。
【図２】本実施形態に係る鍵管理システムにおける鍵管理装置の機能構成を示すブロック図である。
【図３】本実施形態に係る鍵管理システムにおける端末装置の機能構成を示すブロック図である。
【図４】本実施形態に係る鍵管理システムにおける端末装置の生成ファイル記憶部に格納されるデータの一例を示す概略図である。
【図５】本実施形態に係る鍵管理システムにおけるファイルの暗号化処理を示す概略図である。
【図６】本実施形態に係る鍵管理システムにおける暗号鍵の配布の流れを示すシーケンス図である。
【図７】本実施形態に係る鍵管理システムにおける暗号鍵の配布の流れを示すシーケンス図である。
【図８】本実施形態に係る鍵管理システムにおける鍵管理装置の鍵記憶部が記憶する鍵管理テーブルの構成の一例を示す図である。
【発明を実施するための形態】
【００１６】
（実施形態）
以下、本発明に係る実施形態について、図面を参照しながら説明する。
図１は、本実施形態に係る鍵管理システム１の概要を示す概略図である。
鍵管理システム１は、鍵管理装置１０と端末装置２０とを含んで構成される。
鍵管理装置１０は、少なくとも１つの端末装置２０と通信ネットワークを介して通信接続し、当該端末装置２０において格納されるファイルが暗号化される際に用いられる各種の暗号鍵の生成や管理をするサーバ装置である。鍵管理装置１０は、例えば、汎用コンピュータ、またはパーソナルコンピュータなどを含んで構成される。
【００１７】
また、鍵管理装置１０と端末装置２０とをつなぐ通信ネットワークは、例えば、専用線、またはインターネットなどを含んで構成される。なお、通信ネットワークは、無線通信ネットワーク、有線通信ネットワーク、または無線通信と有線通信を組み合わせた通信ネットワークの中のいずれでもよい。また、通信ネットワークには、無線通信基地局などの中継基地局が含まれていてもよい。
【００１８】
端末装置２０は、ユーザが使用する端末装置であり、各種のファイルを格納する。各種のファイルとは、例えば、テキストファイル、音声ファイル、動画ファイル、またはプログラムファイルなどである。端末装置２０は、例えば、スマートフォンなどの携帯型の端末装置、またはパーソナルコンピュータなどを含んで構成される。
【００１９】
（鍵管理装置の構成）
次に、本実施形態に係る鍵管理装置１０の構成について、図面を参照しながら説明する。
図２は、本実施形態に係る鍵管理システム１における鍵管理装置１０の機能構成を示すブロック図である。
鍵管理装置１０は、制御部１００と、通信部１０１と、乱数生成部１０２と、一時記憶部１０３と、鍵記憶部１０４と、を含んで構成される。
【００２０】
制御部１００（第１の制御部）は、鍵管理装置１０の各種の処理を制御する。制御部１００は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央処理装置）を含んで構成される。
通信部１０１は、少なくとも１つの端末装置２０と通信接続するための通信インターフェースである。
乱数生成部１０２は、各種の暗号鍵を生成するための擬似乱数を生成する。乱数生成部１０２は、例えば、擬似乱数を生成するアルゴリズムが実行される一時記憶領域であるＲＡＭを含んで構成される。
【００２１】
一時記憶部１０３は、生成した暗号鍵などを一時的に記憶する。一時記憶部１０３は記憶媒体、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  ｒｅａｄ／ｗｒｉｔｅ  Ｍｅｍｏｒｙ；読み書き可能なメモリ）を含んで構成される。
鍵記憶部１０４は、生成した暗号鍵などを記憶する。また、鍵記憶部１０４は、暗号鍵と当該暗号鍵の管理のために用いられる情報とを対応付けるテーブルである鍵管理テーブルを記憶する。鍵記憶部１０４は記憶媒体、例えば、ハードディスクドライブ（ＨＤＤ；Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を含んで構成される。
【００２２】
（端末装置の構成）
次に、本実施形態に係る端末装置２０の構成について、図面を参照しながら説明する。
図２は、本実施形態に係る鍵管理システム１における端末装置２０の機能構成を示すブロック図である。
端末装置２０は、制御部２００と、通信部２０１と、乱数生成部２０２と、一時記憶部２０３と、鍵記憶部２０４と、ファイル記憶部２０５と、を含んで構成される。
【００２３】
制御部２００（第２の制御部）は、端末装置２０の各種の処理を制御する。制御部２００は、例えば、ＣＰＵを含んで構成される。
通信部２０１は、鍵管理装置１０と通信接続するための通信インターフェースである。
乱数生成部２０２は、後述するファイル鍵という暗号鍵を生成するための乱数を生成する。乱数生成部２０２は、例えば、擬似乱数を生成するアルゴリズムが実行される一時記憶領域であるＲＡＭを含んで構成される。
【００２４】
一時記憶部２０３は、生成した暗号鍵などを一時的に記憶する。一時記憶部２０３は記憶媒体、例えば、ＲＡＭを含んで構成される。
鍵記憶部２０４は、生成した暗号鍵などを記憶する。鍵記憶部２０４は記憶媒体、例えば、ＨＤＤを含んで構成される。
【００２５】
ファイル記憶部２０５は、各種のファイル、および各ファイルと対にして格納されるメタデータを記憶する。メタデータとは、当該メタデータと対にして格納されるファイルに関連する情報を含んだデータである。メタデータには、例えば、当該メタデータと対にして格納されるファイルが暗号化される際に用いられた暗号鍵を示すデータなどが含まれる。ファイル記憶部２０５は記憶媒体、例えば、ＨＤＤを含んで構成される。
【００２６】
（端末装置に格納されるデータの概要）
次に、端末装置２０のファイル記憶部２０５に格納されるデータの概要について、図面を参照しながら説明する。
図４は、本実施形態に係る鍵管理システム１における端末装置２０のファイル記憶部２０５に格納されるデータの一例を示す概略図である。
【００２７】
なお、図４には図示していないが、ファイル記憶部２０５に格納されたファイルは、新規にファイル記憶部２０５に格納される際に、ファイル鍵と呼ぶ暗号鍵でまず暗号化されている。ファイル鍵は、乱数生成部２０２によって生成される乱数を用いて制御部２００によって生成される。すなわち、制御部２００は、新規にファイルをファイル記憶部２０５に格納する際に、ファイル鍵によってファイルを暗号化してから当該ファイルをファイル記憶部２０５に格納する。
【００２８】
ファイル鍵は、暗号化されるファイルごとに異なる鍵であり、端末装置２０において管理される。ファイル鍵は、ファイル毎に生成される暗号鍵であるためファイルの数が増加するのに応じてファイル鍵の数も増加する。そのため、ファイル鍵は、数が増加してファイル鍵の管理に係るセキュリティ管理コストが大きくなりうる暗号鍵である。しかしながら、ファイル鍵は、それぞれの端末装置２０において、制御部２００によって生成および管理されるため、鍵管理装置１０においてはファイル鍵を管理するためのセキュリティ管理コストは発生しない。
なお、後述する、ファイル鍵以外の暗号鍵、例えば、ユーザ鍵、アプリケーション鍵、グローバル鍵、およびデバイス鍵などは、鍵管理装置１０の制御部１００によって生成され、管理される。
【００２９】
図４に図示する端末装置２０のファイル記憶部２０５に格納されたファイルのうち、データ群ｉ０１に属するファイルが復号されるためには、ユーザＡのユーザ鍵であるユーザ鍵ｕｋｅｙ１を用いて復号される必要がある。ユーザ鍵とは、ユーザごと、すなわち、ユーザを識別するユーザＩＤ（Ｉｄｅｎｔｉｆｉｅｒ；識別子）にそれぞれ対応付けて生成される暗号鍵である。例えば、ユーザＡが端末装置２０にログインした（ユーザ認証された）場合には、ユーザＡのユーザ鍵であるユーザ鍵ｕｋｅｙ１によって、データ群ｉ０１に含まれるファイルが復号されうる。なお、ユーザＡ以外のユーザが端末装置２０にログインした（ユーザ認証された）場合には、データ群ｉ０１に含まれるファイルは復号されない。
すなわち、データ群ｉ０１に属するファイルは、ユーザＡが端末装置２０にログインした場合に復号されうるファイルである。
【００３０】
なお、詳細は後述するが、データ群ｉ０１に属するファイルはファイル鍵で暗号化され、当該ファイル鍵がユーザＡのユーザ鍵であるユーザ鍵ｕｋｅｙ１によって暗号化されている。そのため、ユーザ鍵ｕｋｅｙ１を用いてファイル鍵が復号され、その復号されたファイル鍵によってファイルが復号されることによって、データ群ｉ０１に属するファイルは復号される。
【００３１】
同様に、データ群ｉ０２に属するファイルが復号されるためには、ユーザＢのユーザ鍵であるユーザ鍵ｕｋｅｙ２を用いて復号される必要がある。データ群ｉ０２に属するファイルは、ユーザＢが端末装置２０にログインした（ユーザ認証された）場合に復号されうるファイルである。
【００３２】
例えば、ユーザＡに対応するユーザＩＤによって端末装置２０がユーザ認証されている場合には、ユーザＡのユーザ鍵であるユーザ鍵ｕｋｅｙ１が配布されることにより、データ群ｉ０１に属するファイルは復号されうる。一方、その場合においては、ファイルを復号するためにユーザＢのユーザ鍵であるユーザ鍵ｕｋｅｙ２を用いる必要があるデータ群ｉ０２に属するファイルは復号されない。
【００３３】
また、データ群ｉ０３に属するファイルが復号されるためには、アプリケーショングループ１のアプリケーショングループ鍵であるアプリケーショングループ鍵ａｐｋｅｙ１を用いて復号される必要がある。データ群ｉ０３に属するファイルは、アプリケーショングループ１に属するアプリケーションからアクセスされる場合にのみ復号されうるファイルである。
【００３４】
ここでいうアプリケーションとは、端末装置２０においてユーザによって使用されるアプリケーション、例えば、ウェブブラウザ、ファイルビューワ、またはメーラなどのアプリケーションである。アプリケーショングループとは、少なくとも１つのアプリケーションが含まれるアプリケーションの集合である。
例えば、アプリケーショングループ１に、ウェブブラウザとファイルビューワの２つのアプリケーションのみが含まれているならば、データ群ｉ０３に属するファイルは、アウェブブラウザまたはファイルビューワからアクセスされる場合のみに復号され、当該アプリケーションによって使用されうる。
【００３５】
同様に、データ群ｉ０４に属するファイルが復号されるためには、アプリケーショングループ２のアプリケーショングループ鍵であるアプリケーショングループ鍵ａｐｋｅｙ２という暗号鍵を用いて復号される必要がある。データ群ｉ０４に属するファイルは、アプリケーショングループ２に属するアプリケーションからアクセスされる場合にのみ復号されうるファイルである。
【００３６】
また、データ群ｉ０５に属するファイルを復号するためには、グローバル鍵ｇｋｅｙ１を用いて復号される必要がある。グローバル鍵ｇｋｅｙ１とは、端末装置２０にログインする（ユーザ認証される）全てのユーザ、および端末装置２０に含まれる全てのアプリケーションに配布される暗号鍵である。すなわち、データ群ｉ０５に属するファイルは、端末装置２０をどのユーザが使用する場合でも、また、端末装置２０のどのアプリケーションによってアクセスされる場合でも、復号されうるファイルである。
【００３７】
また、図４に図示するように、各データ群（図４における、データ群ｉ０１、データ群ｉ０２、・・・、データ群ｉ０５）に属するファイルは、後述するメタデータと対にして格納される。メタデータは、デバイス鍵ｄｋｅｙ１によって、さらに暗号化されている。デバイス鍵とは、端末装置２０ごとにそれぞれ生成される暗号鍵である。詳細については後述する。
【００３８】
また、図４において、データ群ｉ０１には、ユーザＡとアプリケーショングループ１の結合鍵である結合鍵ｕａｐｋｅｙ１という暗号鍵を用いて復号されうるデータ群ｉ１１が含まれている。このデータ群ｉ１１に属するファイルは、ユーザＡが端末装置２０ログインし（ユーザ認証され）、かつ、アプリケーショングループ１に属するアプリケーションからアクセスされる場合においてのみ復号されうるファイルである。
同様に、データ群ｉ０１には、ユーザＡとアプリケーショングループ２の結合鍵である結合鍵ｕａｐｋｅｙ２を用いて復号されうるデータ群ｉ１２が含まれている。このデータ群ｉ１２に属するファイルは、ユーザＡによって使用され、アプリケーショングループ２に属するアプリケーションからアクセスされる場合においてのみ復号されうるデータである。
【００３９】
このように、ユーザとアプリケーショングループの結合鍵は、ユーザ鍵によるアクセス制限とアプリケーショングループ鍵によるアクセス制限とを組み合わせたアクセス制限を設ける効果を持った暗号鍵である。すなわち、ユーザとアプリケーショングループの結合鍵を用いてファイルが暗号化された場合、ファイルがユーザ鍵で暗号化された後、さらにアプリケーショングループ鍵によって暗号化された場合と同等のアクセス制限が設けられることになる。
【００４０】
複数の暗号鍵を結合する結合鍵が用いられることによって、鍵管理装置１０は、本来、複数の暗号鍵（例えば、ユーザ鍵とアプリケーショングループ鍵）によって実現されうるアクセス制御を１つの暗号鍵で実現することが可能になるため、管理する暗号鍵の数を削減することができる。これにより、鍵管理装置１０における暗号鍵を管理するためのセキュリティ管理コストが削減される。
【００４１】
以上、説明したように、端末装置２０のファイル記憶部２０５に格納されているファイルの暗号化に用いられたファイル鍵は、当該ファイルが属するデータ群ごとに異なる暗号鍵（ユーザ鍵、アプリケーショングループ鍵、グローバル鍵、またはユーザとアプリケーションの結合鍵）を用いて復号される必要がある。
なお、以降の説明において、ユーザ鍵と、アプリケーショングループ鍵と、グローバル鍵と、ユーザとアプリケーションの結合鍵とを総称して、「スコープ鍵」と呼ぶことがある。
【００４２】
（ファイルの暗号化処理）
次に、本実施形態に係る鍵管理システム１におけるファイルの暗号化処理について、図面を参照しながら説明する。
図５は、本実施形態に係る鍵管理システム１におけるファイルの暗号化処理を示す概略図である。
まず、端末装置２０において新規にファイルが新規格納（保存）される際に、端末装置２０の制御部２００は、乱数生成部２０２によって生成される乱数に基づくファイル鍵を生成する（図５、Ｓ００１）。
【００４３】
なお、ファイル鍵は、鍵管理装置１０に備えられた乱数生成部１０２によって生成される乱数に基づいて生成され制御部１００によって生成され、通信部１０１を介して、端末装置２０へ送信（配布）されるような構成であっても構わない。すなわち、ファイル鍵は、鍵管理装置１０によって生成され、それぞれ端末装置２０によって管理される構成であってもよい。
【００４４】
また、制御部１００は、乱数生成部１０２によって生成される乱数に基づく初期化ベクトルを生成する（図５、Ｓ００２）。制御部１００は、通信部１０１を介して、当該初期化ベクトルを、上記においてファイルが新規格納された端末装置２０へ送信する。
【００４５】
また、制御部１００は、乱数生成部１０２によって生成される乱数に基づくＭａｃ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ；メッセージ認証コード）鍵を生成する（図５、Ｓ００３）。制御部１００は、通信部１０１を介して、当該Ｍａｃ鍵を、上記においてファイルが新規格納された端末装置２０へ送信する。なお、Ｍａｃ鍵とは、データの完全性を保証する技術であるメッセージ認証における出力値（Ｍａｃ値）を生成するために用いられる暗号鍵である。
【００４６】
端末装置２０の制御部２００は、上記において生成したファイル鍵を、上述したスコープ鍵によって暗号化する（図５、Ｓ００４）。なお、スコープ鍵は、予め鍵管理装置１０の制御部１００によって生成され、通信部１０１を介して端末装置２０に配布されている。詳細については後述する。
【００４７】
端末装置２０制御部２００は、上記において新規格納されたファイルを、ファイル鍵と初期化ベクトルによって暗号化する（図５、Ｓ００５）。暗号化方式には、例えば、２５６ビット長の暗号鍵を使用するＡＥＳ２５６が用いられる。
【００４８】
端末装置２０は、上記において新規格納されたファイルに対して、Ｍａｃ鍵を用いてＭａｃアルゴリズムによって演算処理することによってＭａｃ値を生成する（図５、Ｓ００６）。Ｍａｃアルゴリズムには、例えば、ＨｍａｃＳＨＡ２が用いられる。
【００４９】
端末装置２０は、上記において新規格納されたファイルに対応するメタデータ（すなわち、スコープ鍵によって暗号化されたファイル鍵、初期化ベクトル、Ｍａｃ値、およびＭａｃ鍵などを含むデータ）を、上述したデバイス鍵によって暗号化する（図５、Ｓ００７）。暗号化方式には、例えば、２５６ビット長の暗号鍵を使用するＡＥＳ２５６が用いられる。
【００５０】
端末装置２０は、上記においてファイル鍵によって暗号化されたファイルと、デバイス鍵によって暗号化されたメタデータとを、自らの端末装置２０が備えるファイル記憶部２０５に格納する。なお、上述したように、メタデータには、スコープ鍵によって暗号化されたファイル鍵が含まれる。
【００５１】
（暗号鍵の配布における鍵管理システムの動作）
次に、暗号鍵の配布の流れについて、図面を参照しながら説明する。
図６および図７は、本実施形態に係る鍵管理システム１における暗号鍵の配布の流れを示すシーケンス図である。
まず、端末装置２０から鍵管理装置１０へ認証要求を示すデータが送信される（図６、S１０１）。認証要求を示すデータは、例えば、ユーザが端末装置２０においてユーザがログインをした（ユーザ認証された）場合に送信される。
【００５２】
鍵管理装置１０の制御部１００は、乱数生成部１０２によって生成される乱数に基づくマスタ鍵を生成する（図６、Ｓ１０２）。なお、マスタ鍵とは、端末装置２０がオフライン（すなわち、鍵管理装置１０と通信接続されていない）の状態において使用される暗号鍵である。マスタ鍵は、後述するオフライン用鍵リストの暗号化に用いられる。本例においては、端末装置２０がオンラインで使用される場合と、オフラインで使用される（鍵管理装置１０との通信接続が切断された）場合とをそれぞれ想定して説明する。
【００５３】
鍵管理装置１０の制御部１００は、上記の認証要求を示すデータに含まれるユーザのパスワード（ユーザ認証に用いられたパスワード）のデータを用いて、パスワードベース鍵を生成する（図６、Ｓ１０３）。パスワードベース鍵は、例えば、暗号化鍵の生成手段の一つであるＰＢＫＤＦ２によって生成される。
【００５４】
鍵管理装置１０の制御部１００は、上記のマスタ鍵を、上記のパスワードベース鍵によって暗号化する（図６、Ｓ１０４）。
鍵管理装置１０の制御部１００は、のマスタ鍵、および上記のパスワードベース鍵によって暗号化されたマスタ鍵を、鍵記憶部１０４に格納する（図６、Ｓ１０５）。
【００５５】
鍵管理装置１０の制御部１００は、通信部１０１を介して端末装置２０へ、認証応答を示すデータを送信する（図６、Ｓ１０６）。
端末装置２０は、デバイスＩＤ、ユーザＩＤ、および鍵バージョンを、自らの端末装置２０のファイル記憶部２０５から取得する（図６、Ｓ１０７）。なお、鍵バージョンとは、暗号鍵が有効期限を持つ場合に暗号鍵が更新されることによる、暗号鍵のバージョンを示す。
端末装置２０は、オンライン用鍵リストの要求を示すデータを、鍵管理装置１０へ送信する（図６、Ｓ１０８）。オンライン用鍵リストの要求を示すデータには、デバイスＩＤ、ユーザＩＤ、および鍵バージョンを示すデータが含まれる。
【００５６】
鍵管理装置１０の制御部１００は、鍵記憶部１０４からオンライン用の暗号鍵を取得する。オンライン用の暗号鍵には、スコープ鍵が含まれる。鍵記憶部１０４にオンライン用の暗号鍵が格納されていない場合は、制御部１００は、オンライン用の暗号鍵を新たに生成する。
鍵管理装置１０の制御部１００は、取得したオンライン用の暗号鍵のリストであるオンライン用鍵リストを生成する（図６、Ｓ１０９）。
【００５７】
鍵管理装置１０の制御部１００は、鍵記憶部１０４からオフライン用の暗号鍵を取得する。鍵記憶部１０４にオフライン用の暗号鍵が格納されていない場合は、制御部１００は、オンライン用の暗号鍵を新たに生成する。なお、オフライン用の暗号鍵のリストに含まれる暗号鍵は、オンライン用の暗号鍵のリストに含まれる暗号鍵（スコープ鍵）と同一の暗号鍵であってもかまわない。
鍵管理装置１０の制御部１００は、取得したオフライン用の暗号鍵のリストであるオフライン用鍵リストを生成する（図６、Ｓ１１０）。
【００５８】
鍵管理装置１０の制御部１００は、鍵記憶部１０４からマスタ鍵を取得する。
鍵管理装置１０の制御部１００は、生成したオフライン用鍵リストを、当該マスタ鍵で暗号化する（図６、Ｓ１１１）。
【００５９】
鍵管理装置１０の制御部１００は、マスタ鍵で暗号化したオフライン用鍵リストを、鍵記憶部１０４に格納する（図６、Ｓ１１２）。
鍵管理装置１０の制御部１００は、通信部１０１を介して端末装置２０へ、オンライン用鍵リストを送信する（図６、Ｓ１１３）。オンライン用鍵リストは、スコープ鍵（すなわち、ユーザ鍵、アプリケーショングループ鍵、グローバル鍵、およびユーザとアプリケーショングループの結合鍵など）を含む。
【００６０】
端末装置２０は、取得したオンライン用鍵リストに含まれるオンライン用の暗号鍵（スコープ鍵）を、自らの端末装置２０の一時記憶部２０３に記憶する（図６、Ｓ１１４）。
【００６１】
以上により、鍵管理装置１０の一時記憶部１０３と端末装置２０の一時記憶部２０３には、同一のスコープ鍵か記憶される。これにより、端末装置２０は、鍵管理装置１０が生成したスコープ鍵を用いて、暗号化されたファイルを復号して使用することができる。また、ファイル群ごとに対応付けられたスコープ鍵が暗号化および復号に用いられることによって、端末装置２０は、ファイルへのアクセス権限のあるユーザ、およびアクセス権限のあるアプリケーショングループのみがファイルを使用可能なようにアクセス制御することができる。
【００６２】
次に、端末装置２０は、オフライン用鍵リストの要求を示すデータを、鍵管理装置１０へ送信する（図７、Ｓ１１５）。オフライン用鍵リストの要求を示すデータには、デバイスＩＤ、およびユーザＩＤを示すデータが含まれる。
鍵管理装置１０の制御部１００は、マスタ鍵で暗号化されたオフライン用鍵リスト、およびパスワードベース鍵で暗号化されたマスタ鍵を、鍵記憶部１０４から取得する（図７、Ｓ１１６）。
【００６３】
鍵管理装置１０の制御部１００は、通信部１０１を介して端末装置２０へ、マスタ鍵で暗号化したオフライン用鍵リスト、およびパスワードベース鍵で暗号化されたマスタ鍵を送信する（図７、Ｓ１１７）。
鍵管理装置１０の制御部１００は、マスタ鍵、パスワードベース鍵で暗号化されたマスタ鍵、およびマスタ鍵で暗号化されたオフライン用鍵リストを、鍵記憶部１０４から削除する（図７、Ｓ１１８）。このように、鍵管理装置１０の制御部１００は、オフラインの場合においてファイルの復号のために必要なオフライン用の暗号鍵をすべて端末装置２０へ送信し、鍵管理装置１０の鍵記憶部１０４に格納されたオフライン用の暗号鍵をすべて削除する。これにより、鍵管理装置１０からオフライン用の暗号鍵が漏洩することがなくなるためセキュリティの向上が図れる。
【００６４】
端末装置２０は、取得したマスタ鍵で暗号化したオフライン用鍵リスト、およびパスワードベース鍵で暗号化されたマスタ鍵を、自らの端末装置２０の一時記憶部２０３に記憶する（図６、Ｓ１１９）。
【００６５】
以上により、端末装置２０の制御部２００は、オフラインの状態であっても、パスワードベース鍵で暗号化されたマスタ鍵を、ユーザによって端末装置２０の入力部（図示せず）から入力されるパスワードによって復号することができる。さらに、制御部２００は、復号したマスタ鍵を用いて、マスタ鍵で暗号化されたオフライン用鍵リストを復号することができる。これにより、端末装置２０は、鍵管理装置１０からオフライン用鍵リストを取得した後であれば、その後オフラインの状態（鍵管理装置１０と端末装置２０との間の通信接続が切断された状態）になったとしても、オフライン用鍵リストに含まれる暗号鍵（例えば、スコープ鍵）を用いて暗号化されたファイルを使用することができる。
【００６６】
（鍵管理テーブルの構成）
次に、鍵管理装置１０の鍵記憶部１０４が記憶する鍵管理テーブルの構成について、図面を参照しながら説明する。
図８は、本実施形態に係る鍵管理システム１における鍵管理装置１０の鍵記憶部１０４が記憶する鍵管理テーブルの構成の一例を示す図である。
図示するように、鍵管理テーブルは、「デバイスＩＤ」と、「ユーザＩＤ」と、「スコープＩＤ」と、「グループＩＤ」と、「期限切れフラグ」と、「鍵バージョン」と、「有効期限日」と、「鍵の値」の少なくとも８つの項目を含む列からなる２次元の表形式のデータである。鍵管理テーブルの各行は、それぞれの暗号鍵に関する情報を表す。
【００６７】
「デバイスＩＤ」の項目には、デバイスを一意に識別する（すなわち、どの端末装置２０であるかを特定する）ための識別子が格納される。
「ユーザＩＤ」の項目には、端末装置２０にログインするユーザを一意に識別する識別子が格納される。
「スコープＩＤ」の項目には、スコープ鍵がどの種類の暗号鍵であるかを示す番号が格納される。本例においては、暗号鍵がグローバル鍵ならば「１」、ユーザ鍵ならば「２」、またはアプリケーショングループ鍵ならば「３」の番号が格納される。
「グループＩＤ」の項目には、暗号鍵がアプリケーショングループ鍵の場合（すなわち、上記の例においては、「スコープ鍵」の値が「３」である場合）にのみ、どのアプリケーショングループであるかを示す番号が格納される。
【００６８】
「期限切れフラグ」の項目には、暗号鍵の有効期限が切れているか否かを示す値が格納される。本例においては、有効期限が切れている場合には「Ｔｒｕｅ」、有効期限が切れていない場合には「Ｆａｌｓｅ」の値が格納される。
「鍵バージョン」の項目には、暗号鍵のバージョンを示すバージョン番号が格納される。
「有効期限日」の項目には、暗号鍵の有効期限日を示すデータが格納される。例えば、暗号鍵の有効期限日が「２０１６年１月１日」であるならば、「２０１６０１０１」という値が苦悩される。
「鍵の値」の項目には、暗号鍵の値（暗号鍵そのもの）が格納される。
このように、鍵管理テーブルには、スコープ鍵を使用可能な条件がスコープ鍵ごとに定義される。鍵管理装置１０は、端末装置２０から送信される認証要求を示す情報に基づいて、この条件を満たすスコープ鍵およびスコープ鍵に関する情報を端末装置２０へ送信する。
【００６９】
例えば、図８に示す鍵管理テーブルにおける最初のデータ行の各項目には、それぞれ、「ａｓｄｆｇｈｊ」、「−」、「１」、「−」、「Ｆａｌｓｅ」、「１」、「２０１６０１０１」、および「０ｘ１８６Ａ５９３Ｆ２６４Ｂ５９Ｃ６」という値が格納されている。なお、値が「−」となっているものは、値がない状態である（Ｎｕｌｌである）ことを示す。
【００７０】
「デバイスＩＤ」の項目の値である「ａｓｄｆｇｈｊ」は、この行のデータが「ａｓｄｆｇｈｊ」というデバイスＩＤが付与された端末装置２０で用いられる暗号鍵についてのデータであることを示す。
「スコープＩＤ」の項目の値である「１」は、この行のデータがグローバル鍵についてのデータであることを示す。
【００７１】
上述したように、ユーザに限定されない（どのユーザがログインした場合でも用いられる）グローバル鍵についてのデータであるため、この行のデータの「ユーザＩＤ」の項目の値は「−」となる。また、アプリケーションに限定されない（どのアプリケーションがアクセスした場合でも用いられる）グローバル鍵についてのデータであるため、この行のデータの「グループＩＤ」の項目の値は「−」となる。
【００７２】
「期限切れフラグ」の項目の値である「Ｆａｌｓｅ」は、暗号鍵の有効期限が切れていないことを示す。
「鍵バージョン」の項目の値である「１」は、暗号鍵のバージョン番号が「１」であることを示す。
【００７３】
「有効期限日」の項目の値である「２０１６０１０１」は、暗号鍵の有効期限日が「２０１６年１月１日」であることを示す。
「鍵の値」の項目の値である「０ｘ１８６Ａ５９３Ｆ２６４Ｂ５９Ｃ６」は、暗号鍵の値が「０ｘ１８６Ａ５９３Ｆ２６４Ｂ５９Ｃ６」であることを示す。
【００７４】
以上、説明したように、本実施形態に係る鍵管理システム１は、ファイルごとに異なるファイル鍵によってファイルを暗号化する。これにより、たとえ１つファイルのファイル鍵が悪意のある第三者に漏えいしたとしても、当該第三者は漏洩したファイル鍵に対応するファイル以外のファイルを復号することができない。したがって、本実施形態に係る鍵管理システム１は、複数のファイルを１つのファイル鍵で暗号化する場合と比べて、より高いセキュリティを確保することができる。
【００７５】
また、本実施形態に係る鍵管理システム１は、ファイルごとに異なるファイル鍵を、アクセス権限に基づいてグルーピングされたデータ群ごとに共通のスコープ鍵で暗号化する。そして、鍵管理システム１は、スコープ鍵で暗号化されたファイル鍵とファイルとを対にして端末装置２０に格納する。そのため、鍵管理装置１０はファイル鍵を管理する必要がなく、スコープ鍵を管理すればよい。これにより、本実施形態に係る鍵管理システム１は、ファイル毎に生成されるファイル鍵を全て管理する場合と比べて、鍵管理装置１０が管理する鍵の数を削減することができるため、セキュリティ管理コストを軽減することができる。
【００７６】
また、本実施形態に係る鍵管理装置１０は、ユーザごと、およびアプリケーショングループごとなど、アクセス権限に基づいてグルーピングされたスコープ鍵を生成する。これにより、鍵管理装置１０は、ファイルを復号しうる権限の制御（すなわち、ファイルに含まれるコンテンツへのアクセス制御）を、スコープ鍵を用いることによって行うことができる。これにより、鍵管理装置１０は、別途ＡＣＬなどのアクセス制御リストを作成して管理する必要が無く、当該アクセス制御リストへの不正なアクセスを防止するための処理を行う必要も無いため、アクセス制御リストを使用する場合と比べてセキュリティ管理コストを削減することができる。
【００７７】
以上により、本実施形態に係る鍵管理装置１０によれば、セキュリティを担保しつつセキュリティ管理コストを軽減することができる。
【００７８】
以上、この発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【００７９】
なお、上述した実施形態における鍵管理装置１０および端末装置２０の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【００８０】
なお、ここでいう「コンピュータシステム」とは、鍵管理装置１０および端末装置２０に内蔵されたコンピュータシステムであって、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００８１】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信回線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【００８２】
また、上述した実施形態における鍵管理装置１０および端末装置２０を、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の集積回路として実現してもよい。鍵管理装置１０および端末装置２０の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【００８３】
１・・・鍵管理システム、１０・・・鍵管理装置、２０・・・端末装置、１００・・・制御部、１０１・・・通信部、１０２・・・乱数生成部、１０３・・・一時記憶部、１０４・・・鍵記憶部、２００・・・制御部、２０１・・・通信部、２０２・・・乱数生成部、２０３・・・一時記憶部、２０４・・・鍵記憶部、２０５・・・ファイル記憶部
【図１】
2017079435.tif 000003
【図２】
2017079435.tif 000004
【図３】
2017079435.tif 000005
【図４】
2017079435.tif 000006
【図５】
2017079435.tif 000007
【図６】
2017079435.tif 000008
【図７】
2017079435.tif 000009
【図８】
2017079435.tif 000010