(57)【特許請求の範囲】
【請求項１】
暗号化されるデータをアクセス制限データとして生成するアクセス制限データ生成部と、
暗号化された前記アクセス制限データを復号することが許可される利用者が有する属性に関する条件を復号可能条件として示す復号可能条件情報を取得する復号可能条件情報取得部と、
前記アクセス制限データ生成部によって生成された前記アクセス制限データを共通鍵を用いて共通鍵暗号方式で暗号化するアクセス制限データ暗号化部と、
前記アクセス制限データ暗号化部が前記アクセス制限データの暗号化に用いる前記共通鍵を、公開鍵と、前記復号可能条件情報取得部によって取得された前記復号可能条件情報とを用いて、前記復号可能条件を満たす属性に関連付けて生成される秘密鍵を用いて復号されるようにデータを暗号化するアクセス権付き暗号方式で、暗号化する共通鍵暗号化部と、
前記アクセス制限データ暗号化部によって暗号化された前記アクセス制限データと、前記共通鍵暗号化部によって暗号化された前記共通鍵と、を含んだ暗号化ファイルを生成する暗号化ファイル生成部と、
前記暗号化ファイルを記憶するための１つ以上のディレクトリであって前記復号可能条件情報が予め設定される１つ以上のディレクトリを有する暗号化ファイル記憶部と、
前記暗号化ファイル記憶部が有する１つ以上のディレクトリのうち前記暗号化ファイルを設定するいずれかのディレクトリを指定するディレクトリ指定情報を取得するディレクトリ指定情報取得部とを備え、
前記復号可能条件情報取得部は、前記暗号化ファイル記憶部が有する１つ以上のディレクトリそれぞれに設定された前記復号可能条件情報のうち、前記ディレクトリ指定情報取得部によって取得されたディレクトリ指定情報によって指定されるディレクトリに設定された前記復号可能条件情報を取得する
ことを特徴とするアクセス権付き暗号化装置。
【請求項２】
前記暗号化ファイル記憶部が有する１つ以上のディレクトリのうち少なくともいずれかのディレクトリがサブディレクトリを含み、
前記ディレクトリ指定情報取得部が前記サブディレクトリを指定する情報を前記ディレクトリ指定情報として取得した場合、前記復号可能条件情報取得部は、前記暗号化ファイル記憶部が有する１つ以上のディレクトリそれぞれに設定された前記復号可能条件のうち、前記サブディレクトリを含むディレクトリに設定された前記復号可能条件情報を取得する
ことを特徴とする請求項１記載のアクセス権付き暗号化装置。
【請求項３】
請求項１または請求項２に記載のアクセス権付き暗号化装置と、アクセス権付き復号装置とを備え、
前記アクセス権付き復号装置は、
前記暗号化ファイルに含まれる暗号化された前記共通鍵を、前記秘密鍵を用いて前記アクセス権付き暗号方式で復号する共通鍵復号部と、
前記暗号化ファイルに含まれる暗号化された前記アクセス権限データを、前記共通鍵を用いて前記共通鍵暗号方式で復号するアクセス制限データ復号部と
を備えることを特徴とするアクセス権付き暗号システム。
【請求項４】
利用者が有する属性に関する条件である復号可能条件を示す復号可能条件情報が設定される１つ以上のディレクトリを有する暗号化ファイル記憶部と、
前記暗号化ファイル記憶部が有する１つ以上のディレクトリのうちのいずれかのディレクトリを指定するディレクトリ指定情報を取得するディレクトリ指定情報取得部と、
暗号化されるデータをアクセス制限データとして生成するアクセス制限データ生成部と、
前記ディレクトリ指定情報取得部によって取得されたディレクトリ指定情報が指定するディレクトリに設定された前記復号可能条件情報を取得する復号可能条件情報取得部と、
前記アクセス制限データ生成部によって生成された前記アクセス制限データを共通鍵を用いて共通鍵暗号方式で暗号化するアクセス制限データ暗号化部と、
前記アクセス制限データ暗号化部が前記アクセス制限データの暗号化に用いる前記共通鍵を、公開鍵と、前記復号可能条件情報取得部によって取得された前記復号可能条件情報とを用いて、前記復号可能条件を満たす属性に関連付けて生成される秘密鍵を用いて復号されるようにデータを暗号化するアクセス権付き暗号方式で、暗号化する共通鍵暗号化部と、
前記アクセス制限データ暗号化部によって暗号化された前記アクセス制限データと、前記共通鍵暗号化部によって暗号化された前記共通鍵と、を含んだ暗号化ファイルを生成し、前記ディレクトリ指定情報取得部によって取得されたディレクトリ指定情報が指定するディレクトリに前記暗号化ファイルを記憶する暗号化ファイル生成部と、
利用者毎に、利用者を識別する識別子と、利用者が有する属性に関連付けて生成される秘密鍵と、を対応付けて記憶する秘密鍵記憶部と、
利用者を識別する利用者識別子を入力する利用者識別子入力部と、
前記秘密鍵記憶部に記憶される秘密鍵のうち、前記利用者識別子入力部に入力された前記利用者識別子と同じ識別子に対応付けられた秘密鍵を利用者秘密鍵として取得する利用者秘密鍵取得部と、
前記暗号化ファイル記憶部に記憶される前記暗号化ファイルに含まれる暗号化された前記共通鍵を、前記利用者秘密鍵取得部によって取得された前記利用者秘密鍵を用いて、前記アクセス権付き暗号方式で復号する共通鍵復号部と、
前記共通鍵復号部によって前記共通鍵が復号された場合、前記暗号化ファイル記憶部に記憶される前記暗号化ファイルに含まれる暗号化された前記アクセス制限データを、前記共通鍵復号部によって復号された前記共通鍵を用いて、前記共通鍵暗号方式で復号するアクセス制限データ復号部と
を備えることを特徴とするアクセス権付き暗号システム。
【請求項５】
暗号化ファイル記憶部と、ディレクトリ指定情報取得部と、アクセス制限データ生成部と、復号可能条件情報取得部と、アクセス制限データ暗号化部と、共通鍵暗号化部と、暗号化ファイル生成部とを備えるコンピュータを用いるアクセス権付き暗号化方法であって、
前記暗号化ファイル記憶部が、利用者が有する属性に関する条件である復号可能条件を示す復号可能条件情報が設定される１つ以上のディレクトリを有し、
ディレクトリ指定情報取得部が、前記暗号化ファイル記憶部が有する１つ以上のディレクトリのうちのいずれかのディレクトリを指定するディレクトリ指定情報を取得し、
前記アクセス制限データ生成部が、暗号化されるデータをアクセス制限データとして生成し、
前記復号可能条件情報取得部が、前記ディレクトリ指定情報取得部によって取得されたディレクトリ指定情報が指定するディレクトリに設定された前記復号可能条件情報を取得し、
前記アクセス制限データ暗号化部が、前記アクセス制限データ生成部によって生成された前記アクセス制限データを共通鍵を用いて共通鍵暗号方式で暗号化し、
前記共通鍵暗号化部が、前記アクセス制限データ暗号化部が前記アクセス制限データの暗号化に用いる前記共通鍵を、公開鍵と、前記復号可能条件情報取得部によって取得された前記復号可能条件情報とを用いて、前記復号可能条件を満たす属性に関連付けて生成される秘密鍵を用いて復号されるようにデータを暗号化するアクセス権付き暗号方式で、暗号化し、
前記暗号化ファイル生成部が、前記アクセス制限データ暗号化部によって暗号化された前記アクセス制限データと、前記共通鍵暗号化部によって暗号化された前記共通鍵と、を含んだ暗号化ファイルを生成し、前記ディレクトリ指定情報取得部によって取得されたディレクトリ指定情報が指定するディレクトリに前記暗号化ファイルを記憶する
ことを特徴とするアクセス権付き暗号化方法。
【請求項６】
暗号化ファイル記憶部を用いるアクセス権付き暗号化プログラムであって、
前記暗号化ファイル記憶部は、利用者が有する属性に関する条件である復号可能条件を示す復号可能条件情報が設定される１つ以上のディレクトリを有する記憶部であり、
前記暗号化ファイル記憶部が有する１つ以上のディレクトリのうちのいずれかのディレクトリを指定するディレクトリ指定情報を取得するディレクトリ指定情報取得処理と、
暗号化されるデータをアクセス制限データとして生成するアクセス制限データ生成処理と、
前記ディレクトリ指定情報取得処理によって取得されたディレクトリ指定情報が指定するディレクトリに設定された前記復号可能条件情報を取得する復号可能条件情報取得処理と、
前記アクセス制限データ生成処理によって生成された前記アクセス制限データを共通鍵を用いて共通鍵暗号方式で暗号化するアクセス制限データ暗号化処理と、
前記アクセス制限データ暗号化処理で前記アクセス制限データの暗号化に用いる前記共通鍵を、公開鍵と、前記復号可能条件情報取得処理によって取得された前記復号可能条件情報とを用いて、前記復号可能条件を満たす属性に関連付けて生成される秘密鍵を用いて復号されるようにデータを暗号化するアクセス権付き暗号方式で、暗号化する共通鍵暗号化処理と、
前記アクセス制限データ暗号化処理によって暗号化された前記アクセス制限データと、前記共通鍵暗号化処理によって暗号化された前記共通鍵と、を含んだ暗号化ファイルを生成し、前記ディレクトリ指定情報取得処理によって取得されたディレクトリ指定情報が指定するディレクトリに前記暗号化ファイルを記憶する暗号化ファイル生成処理と
をコンピュータに実行させるためのアクセス権付き暗号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、アクセス権を設定してデータを暗復号するアクセス権付き暗号化装置、アクセス権付き復号装置、アクセス権付き暗号システム、アクセス権付き暗号化方法、アクセス権付き復号方法、アクセス権付き暗号化プログラム、アクセス権付き復号プログラムに関するものである。
【背景技術】
【０００２】
一般によく利用されている持ち運びが容易なノートＰＣ（パーソナルコンピュータ）またはその他のモバイルコンピュータは盗難に合うリスクが高い。
ノートＰＣまたはその他のモバイルコンピュータの盗難は、コンピュータそのものの資産価値の損失よりもむしろ、コンピュータの内部に保存された個人情報や重要機密情報が漏洩することによる企業の信頼の喪失、という２次的被害の影響の方がはるかに大きい。
そのため、機密データが漏洩するという事件の増加に伴い、コンピュータ内の機密データを保護することが求められている。
【０００３】
コンピュータ内に保存された機密データを保護するための最も一般的な手段はデータの暗号化である。
万一、機密データを含むコンピュータが悪意のある者の手に渡った場合でも、機密データを復号するための復号鍵が無ければ機密データの情報を読み取ることはできない。
しかしながら、現存する暗号化方法には以下のような課題がある。
【０００４】
例えば、あるファイルシステムに保存する全てのファイルを同一の暗号鍵を用いて暗号化した場合には次のような課題がある。
利用者が復号鍵を損失した場合、全てのファイルが復号できなくなる。また、損失した復号鍵が悪意のある者に渡れば、全てのファイルが読み取られる危険性がある。
【０００５】
また、全てのファイルを別々の暗号鍵で暗号化した場合、復号処理が煩雑になってしまう。さらに、復号可能な利用者が追加された場合、追加された利用者の復号鍵を用いて復号できるように、ファイルを新たに暗号化する必要がある。また、復号可能な利用者が削除された場合、削除された利用者の復号鍵を用いて復号できないように、ファイルを新たに暗号化する必要がある。
【０００６】
特許文献１は、乱数生成器を用いて生成した乱数値を共通鍵暗号方式の共通鍵として用いてファイルを暗号化し、ファイルの復号が許可された利用者の公開鍵を用いて公開鍵暗号方式で共通鍵を暗号化する、という方式を開示している。
このようにすることで、全てのファイルを別々の共通鍵を用いて暗号化することができる。また、復号可能な利用者が変化した場合、ファイルの暗号化に用いた共通鍵を特定の公開鍵で暗号化すればよく、ファイルを再暗号化する必要は無い。
【０００７】
しかし、複数の利用者にファイルの復号を許可する場合、複数の利用者それぞれの公開鍵を用いて共通鍵を暗号化し、暗号化した複数の共通鍵を暗号化ファイルに付加する必要がある。
そのため、複数の利用者それぞれの公開鍵を収集しなければならず、共通鍵の暗号化が煩雑になり、暗号化ファイルのデータサイズが大きくなる、という課題がある。
【０００８】
特許文献１が開示する方式の課題の具体例は以下のとおりである。
例えば「人事部に所属し、且つ、総務部に所属する社員」にファイルのアクセスを許可する場合、人事部に所属する社員と総務部に所属する社員とを洗い出し、人事部と総務部との両方に所属する対象社員を判断し、対象社員の全員分の公開鍵（または公開鍵を含んだ証明書）を取得しなければならない。このため、作業が非常に煩雑である。
また、ファイルのアクセスを許可する対象社員が多い場合、「ファイルの暗号化に用いた共通鍵を対象社員の公開鍵を用いて暗号化したメタデータ」を対象社員の人数分、暗号化ファイルに付加しなければならない。すなわち、１００人の社員にファイルのアクセスを許可する場合、１００個のメタデータが暗号化ファイルに付加されることになり、暗号化ファイルのデータサイズが増大する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第４５９３７７４号公報
【非特許文献】
【００１０】
【非特許文献１】Ｄａｎ  Ｂｏｎｅｈ  Ａｍｉｔ  Ｓａｈａｉ  ａｎｄ  Ｂｒｅｎｔ  Ｗａｔｅｒｓ  “Ｆｕｎｃｔｉｏｎａｌ  ｅｎｃｒｙｐｔｉｏｎ：Ｄｅｆｉｎｉｔｉｏｎｓ  ａｎｄ  ｃｈａｌｌｅｎｇｅｓ”  ＴＣＣ  ２０１１  ＬＮＣＳ  ６５９７  ｐｐ．  ２５３−−２７３  ２０１１．
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、例えば、暗号化した１つの共通鍵を含み、一人以上の復号可能者が復号可能な暗号化ファイルを生成できるようにすること目的とする。
【課題を解決するための手段】
【００１２】
本発明のアクセス権付き暗号化装置は、
暗号化されるデータをアクセス制限データとして生成するアクセス制限データ生成部と、
暗号化された前記アクセス制限データを復号することが許可される利用者が有する属性に関する条件を復号可能条件として示す復号可能条件情報を取得する復号可能条件情報取得部と、
前記アクセス制限データ生成部によって生成された前記アクセス制限データを共通鍵を用いて共通鍵暗号方式で暗号化するアクセス制限データ暗号化部と、
前記アクセス制限データ暗号化部が前記アクセス制限データの暗号化に用いる前記共通鍵を、公開鍵と、前記復号可能条件情報取得部によって取得された前記復号可能条件情報とを用いて、前記復号可能条件を満たす属性に関連付けて生成される秘密鍵を用いて復号されるようにデータを暗号化するアクセス権付き暗号方式で、暗号化する共通鍵暗号化部と、
前記アクセス制限データ暗号化部によって暗号化された前記アクセス制限データと、前記共通鍵暗号化部によって暗号化された前記共通鍵と、を含んだ暗号化ファイルを生成する暗号化ファイル生成部とを備える。
【発明の効果】
【００１３】
本発明によれば、例えば、暗号化した１つの共通鍵を含み、一人以上の復号可能者が復号可能な暗号化ファイルを生成することができる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１における透過的暗号化ファイルシステム１００の構成図。
【図２】実施の形態１におけるユーザ管理ファイル１９９の一例を示す図。
【図３】実施の形態１におけるデータ暗号化部１４０の構成図。
【図４】実施の形態１における暗号化ファイル生成部１４４の構成図。
【図５】実施の形態１における暗号化ファイル１１９の構成図。
【図６】実施の形態１における透過的暗号化処理を示すフローチャート。
【図７】実施の形態１におけるデータ暗号化処理（Ｓ１４０）を示すフローチャート。
【図８】実施の形態１における暗号化ファイル生成処理（Ｓ１４４）を示すフローチャート。
【図９】実施の形態１におけるデータ復号部１５０の構成図。
【図１０】実施の形態１における透過的復号処理を示すフローチャート。
【図１１】実施の形態１におけるデータ復号処理（Ｓ２３０）を示すフローチャート。
【図１２】実施の形態１における透過的暗号化ファイルシステム１００のハードウェア資源の一例を示す図。
【図１３】実施の形態１における透過的暗号化ファイルシステム１００の透過的暗号化方法の概要図。
【図１４】実施の形態１における透過的暗号化ファイルシステム１００の透過的暗号化方法の概要図。
【図１５】実施の形態１における透過的暗号化ファイルシステム１００の透過的暗号化方法の概要図。
【図１６】実施の形態１における透過的暗号化ファイルシステム１００の構成例を示す図。
【図１７】実施の形態１における透過的暗号化ファイルシステム１００の構成例を示す図。
【図１８】実施の形態２（実施例１）における暗号化ファイル記憶部１６０の一例を示す図。
【図１９】実施の形態２（実施例２）における暗号化ファイル記憶部１６０の一例を示す図。
【発明を実施するための形態】
【００１５】
実施の形態１．
暗号化した１つの共通鍵を含み、一人以上の復号可能者が復号可能な暗号化ファイルを生成する形態について説明する。
【００１６】
図１は、実施の形態１における透過的暗号化ファイルシステム１００の構成図である。
実施の形態１における透過的暗号化ファイルシステム１００の構成について、図１に基づいて説明する。
【００１７】
透過的暗号化ファイルシステム１００は、アクセス権付き暗号化装置、アクセス権付き復号装置、アクセス権付き暗号システムの一例である。
【００１８】
透過的暗号化ファイルシステム１００は、ユーザおよびアプリケーションプログラムがデータの暗号化および復号を意識しなくても、データを暗号化および復号するシステムである。
つまり、透過的暗号化ファイルシステム１００は、データを保存するときにデータを透過的に暗号化し、データを使用するときにデータを透過的に復号する。
【００１９】
透過的暗号化ファイルシステム１００は、ログイン部１０１、アクセス権付き暗号鍵生成部１０９、アプリケーション部１１０、ファイルシステム部１２０、デバイス制御部１３０、データ暗号化部１４０、データ復号部１５０、暗号化ファイル記憶部１６０及びシステム記憶部１９０を備える。
【００２０】
ログイン部１０１は、透過的暗号化ファイルシステム１００に対するユーザのログインに関するログイン処理を実行する。
【００２１】
アクセス権付き暗号鍵生成部１０９は、アクセス権付き暗号方式の鍵生成アルゴリズムを実行し、１つの公開鍵（以下、「システム公開鍵１９１」という）とユーザ別の秘密鍵（以下、「ユーザ秘密鍵１９２」という）とを生成する。
アクセス権付き暗号方式は、復号可能条件を満たす属性に関連付けて生成されるユーザ秘密鍵１９２を用いて復号されるように、データを暗号化する暗号方式である。ここで、復号可能条件とは、暗号化されたデータを復号することが許可される（復号可能グループに属する）復号可能者が有する属性に関する条件である。
アクセス権付き暗号方式の一例として「関数型暗号」と呼ばれる暗号方式が挙げられる。関数型暗号では、復号可能者の属性を表す属性値を用いた論理式（例えば、「属性値ａ  ＡＮＤ  属性値ｂ」「属性値ａ  ＯＲ  属性値ｂ」など）を復号可能条件として指定することができる。関数型暗号（アクセス権付き暗号方式の一例）については、例えば、［非特許文献１］を参照のこと。
以下、復号可能条件を示すデータを「アクセス権情報１１２」という。
【００２２】
アプリケーション部１１０（アクセス制限データ生成部の一例）は、テキストファイル、ドキュメントファイル、画像ファイル、音声ファイルなどのデータを生成および編集するアプリケーションプログラム、を実行する実行部である。
実施の形態において、アプリケーション部１１０によって生成されるデータは暗号化され、アクセス権情報１１２が示す復号可能条件を満たすユーザ（復号可能者）だけがこのデータを復号して使用することができる。
以下、アプリケーション部１１０によって生成されるデータを「アクセス制限データ１１１」という。アクセス制限データ１１１は、アプリケーション部１１０によって一時的にメモリ（記憶部の一例）（図示省略）に記憶される。
【００２３】
ファイルシステム部１２０は、アクセス制限データ１１１を記憶管理する。
例えば、ファイルシステム部１２０は、デバイス制御部１３０を介して、暗号化ファイル記憶部１６０にアクセス制限データ１１１を記憶する。
また、ファイルシステム部１２０は、デバイス制御部１３０を介して、暗号化ファイル記憶部１６０からアクセス制限データ１１１を取得する。
【００２４】
デバイス制御部１３０は、暗号化ファイル記憶部１６０を制御する。
例えば、デバイス制御部１３０は、データ暗号化部１４０によって暗号化されたアクセス制限データ１１１を暗号化ファイル記憶部１６０に記憶し、データ復号部１５０によって復号されたアクセス制限データ１１１を暗号化ファイル記憶部１６０から取得する。
【００２５】
データ暗号化部１４０（復号可能条件情報取得部、共通鍵暗号化部、暗号化ファイル生成部の一例）は、アクセス権付き暗号方式によって、アクセス制限データ１１１を暗号化する。
このとき、データ暗号化部１４０は、乱数を生成し、生成した乱数を共通鍵として用いて共通鍵暗号方式の暗号化アルゴリズムを実行し、アクセス制限データ１１１を暗号化する。以下、暗号化したアクセス制限データ１１１を「暗号化データ１１９ｂ」という。
さらに、データ暗号化部１４０は、アクセス権情報１１２を用いてアクセス権付き暗号方式の暗号化アルゴリズムを実行し、アクセス制限データ１１１の暗号化に用いた乱数（共通鍵）を暗号化する。以下、暗号化した乱数（共通鍵）を「暗号化乱数１１９ａ」という。
そして、データ暗号化部１４０は、暗号化乱数１１９ａと暗号化データ１１９ｂとを含んだ暗号化ファイル１１９を生成する。
【００２６】
データ復号部１５０（利用者識別子入力部、利用者秘密鍵取得部、共通鍵復号部、アクセス制限データ復号部の一例）は、アクセス権付き暗号方式によって、暗号化ファイル１１９からアクセス制限データ１１１を復号する。
このとき、データ復号部１５０は、ユーザ秘密鍵１９２を用いてアクセス権付き暗号方式の復号アルゴリズムを実行し、暗号化ファイル１１９に含まれる暗号化乱数１１９ａを乱数（共通鍵）に復号する。
さらに、データ復号部１５０は、復号した乱数を共通鍵として用いて共通鍵暗号方式の復号アルゴリズムを実行し、暗号化ファイル１１９に含まれる暗号化データ１１９ｂをアクセス制限データ１１１に復号する。
【００２７】
暗号化ファイル記憶部１６０（暗号化ファイル記憶部の一例）は、暗号化ファイル１１９を記憶する。
【００２８】
システム記憶部１９０（秘密鍵記憶部の一例）は、透過的暗号化ファイルシステム１００で使用する各種データを記憶する。
例えば、システム記憶部１９０は、システム公開鍵１９１およびユーザ管理ファイル１９９を記憶する。ユーザ管理ファイル１９９は、ユーザ毎に、ユーザが有する属性およびユーザに割り当てられたユーザ秘密鍵１９２を設定するファイルである。
【００２９】
暗号化ファイル記憶部１６０およびシステム記憶部１９０は、例えば、ＨＤＤ（ハード・ディスク・ドライブ）またはＳＳＤ（ソリッド・ステート・ドライブ）などの記憶装置によって構成される。
【００３０】
次に、アクセス権付き暗号鍵生成部１０９が実行するアクセス権付き暗号鍵生成処理について説明する。
【００３１】
アクセス権付き暗号鍵生成部１０９は、アクセス権付き暗号方式の公開鍵生成アルゴリズムを実行し、１つのシステム公開鍵１９１を生成する。
システム公開鍵１９１の生成方法は、通常の公開鍵暗号方式での公開鍵の生成方法と同様である。例えば、アクセス権付き暗号鍵生成部１０９は、乱数を生成し、生成した乱数および所定のパラメータを用いてシステム公開鍵１９１を生成する。
システム公開鍵１９１は、秘匿しなくてよい情報であるため、任意の場所（例えば、外部ストレージまたはインターネット上のサーバ）に保存しても構わない。この場合、透過的暗号化ファイルシステム１００はシステム公開鍵１９１を使用する際に保存場所からシステム公開鍵１９１を取得する。
【００３２】
アクセス権付き暗号鍵生成部１０９は、ユーザ管理ファイル１９９に設定された各ユーザの属性を用いて、ユーザ毎にユーザ秘密鍵１９２を生成する。
【００３３】
図２は、実施の形態１におけるユーザ管理ファイル１９９の一例を示す図である。
実施の形態１におけるユーザ管理ファイル１９９について、図２に基づいて説明する。
【００３４】
ユーザ管理ファイル１９９は、ユーザ毎に、ユーザが有する属性およびユーザに割り当てられたユーザ秘密鍵１９２を設定するファイルである。
ユーザ管理ファイル１９９（ユーザ秘密鍵１９２を除く）は、ユーザ秘密鍵１９２を生成する前に、予め生成しておく。
【００３５】
ユーザ管理ファイル１９９は、「ユーザＩＤ」「所属」などの属性と「パスワード」と「ユーザ秘密鍵」とを対応付けている。
「ユーザＩＤ」は、ユーザを識別する識別子を示す。
「所属」は、ユーザが所属する部署の識別子（例えば、名称、部署コード）を示す。
「パスワード」は、ユーザが透過的暗号化ファイルシステム１００にログインするために使用するパスワードを示す。
「ユーザ秘密鍵」は、ユーザが有する属性に応じてユーザに割り当てられたユーザ秘密鍵１９２を示す。
【００３６】
ユーザＩＤおよび所属はユーザが有する属性の一例である。ユーザが有する属性として、その他に、氏名、年齢、性別、住所、役職、入社年度などが挙げられる。
【００３７】
アクセス権付き暗号鍵生成部１０９は、ユーザ毎に、ユーザ管理ファイル１９９から１つの属性値（例えば、ユーザＩＤ）または複数の属性値（例えば、ユーザＩＤと所属）を取得する。
アクセス権付き暗号鍵生成部１０９は、ユーザ毎に、ユーザ管理ファイル１９９から取得した１つまたは複数の属性値を入力パラメータとして用いて、アクセス権付き暗号方式の秘密鍵生成アルゴリズムを実行する。これにより、ユーザ毎に、ユーザの１つまたは複数の属性値の情報を埋め込んだユーザ秘密鍵１９２が生成される。
アクセス権付き暗号鍵生成部１０９は、ユーザ毎に、生成したユーザ秘密鍵１９２をユーザＩＤに対応付けてユーザ管理ファイル１９９に設定する。
【００３８】
次に、アクセス権付き暗号鍵生成部１０９によって生成されたシステム公開鍵１９１を用いて暗号化ファイル１１９を生成するデータ暗号化部１４０の構成について、図３に基づいて説明する。
図３は、実施の形態１におけるデータ暗号化部１４０の構成図である。
【００３９】
データ暗号化部１４０は、公開鍵入力部１４１、アクセス権情報入力部１４２、データ入力部１４３、暗号化ファイル生成部１４４および暗号化ファイル出力部１４５を備える。
【００４０】
公開鍵入力部１４１は、システム記憶部１９０からシステム公開鍵１９１を取得する。
アクセス権情報入力部１４２（復号可能条件情報取得部の一例）は、アクセス権情報１１２を取得する。例えば、アクセス権情報１１２は、アプリケーション部１１０に対してアクセス制限データ１１１の生成を要求するユーザによって指定され、または、暗号化ファイル１１９を保存するディレクトリ（フォルダともいう）に予め設定される。
データ入力部１４３は、アプリケーション部１１０によって生成されたアクセス制限データ１１１をデバイス制御部１３０から入力する。
暗号化ファイル生成部１４４（アクセス制限データ暗号化部、共通鍵暗号化部、暗号化ファイル生成部の一例）は、公開鍵入力部１４１が取得したシステム公開鍵１９１と、アクセス権情報入力部１４２が取得したアクセス権情報１１２と、データ入力部１４３が入力したアクセス制限データ１１１とを用いて、暗号化ファイル１１９を生成する。
暗号化ファイル出力部１４５は、暗号化ファイル生成部１４４によって生成された暗号化ファイル１１９をデバイス制御部１３０へ出力する。
【００４１】
次に、暗号化ファイル生成部１４４の構成について、図４に基づいて説明する。
図４は、実施の形態１における暗号化ファイル生成部１４４の構成図である。
【００４２】
暗号化ファイル生成部１４４は、乱数生成部１４４Ａ、共通鍵暗号化部１４４Ｂ、アクセス権付き暗号化部１４４Ｃおよび暗号化ファイル構成部１４４Ｄを備える。
【００４３】
乱数生成部１４４Ａは、アクセス制限データ１１１を暗復号するための共通鍵として用いる乱数１４４ａを生成する。
共通鍵暗号化部１４４Ｂ（アクセス制限データ暗号化部の一例）は、乱数生成部１４４Ａによって生成された乱数１４４ａを共通鍵として用いて共通鍵暗号方式の暗号化アルゴリズムを実行し、アクセス制限データ１１１を暗号化する。
アクセス権付き暗号化部１４４Ｃ（共通鍵暗号化部の一例）は、システム公開鍵１９１とアクセス権情報１１２とを入力パラメータとして用いてアクセス権付き暗号方式の暗号化アルゴリズムを実行し、乱数１４４ａを暗号化する。
暗号化ファイル構成部１４４Ｄ（暗号化ファイル生成部の一例）は、アクセス権付き暗号化部１４４Ｃによって暗号化された乱数１４４ａ（暗号化乱数１１９ａ）と、共通鍵暗号化部１４４Ｂによって暗号化されたアクセス制限データ１１１（暗号化データ１１９ｂ）とを含んだ暗号化ファイル１１９を生成する。
【００４４】
図５は、実施の形態１における暗号化ファイル１１９の構成図である。
図５に示すように、暗号化ファイル１１９は、メタデータフィールド１１９Ａとデータフィールド１１９Ｂとを有する。
データフィールド１１９Ｂは、ユーザデータ（例えば、暗号化データ１１９ｂ）を設定する領域である。
メタデータフィールド１１９Ａは、ユーザデータに関する情報を含んだメタデータ（例えば、暗号化乱数１１９ａ）を設定する領域である。
【００４５】
暗号化ファイル構成部１４４Ｄは、暗号化ファイル１１９のメタデータフィールド１１９Ａに暗号化乱数１１９ａを設定し、暗号化ファイル１１９のデータフィールド１１９Ｂに暗号化データ１１９ｂを設定する。
【００４６】
次に、暗号化ファイル１１９を生成する際の透過的暗号化処理について、図６に基づいて説明する。
図６は、実施の形態１における透過的暗号化処理を示すフローチャートである。
【００４７】
ここで、システム公開鍵１９１およびユーザ管理ファイル１９９（ユーザ秘密鍵１９２を含む）は予め生成されているものとする。
【００４８】
Ｓ１０１において、アクセス制限データ１１１を生成したいユーザは、透過的暗号化ファイルシステム１００にログインする。
このとき、ユーザは、キーボードまたはマウスなどの入力機器を用いて、ユーザＩＤおよびパスワードを透過的暗号化ファイルシステム１００に入力する。
ログイン部１０１は、入力されたユーザＩＤと同じユーザＩＤがユーザ管理ファイル１９９（図２参照）に設定されているか否かを判定する。入力されたユーザＩＤと同じユーザＩＤがユーザ管理ファイル１９９に設定されていない場合、ログイン部１０１はログインを許可しない。
入力されたユーザＩＤと同じユーザＩＤがユーザ管理ファイル１９９に設定されている場合、ログイン部１０１は、そのユーザＩＤに対応付けられているパスワードをユーザ管理ファイル１９９から取得する。
ログイン部１０１は、取得したパスワードと入力されたパスワードとが同じであるか否かを判定する。取得したパスワードと入力されたパスワードとが異なる場合、ログイン部１０１はログインを許可しない。
取得したパスワードと入力されたパスワードとが同じである場合、ログイン部１０１はログインを許可する。以下、ログインが許可されたユーザを「ログインユーザ」という。
ログインが許可された場合、処理はＳ１１０に進む。
【００４９】
Ｓ１１０において、ログインユーザは、入力機器を用いて、アクセス制限データ１１１の生成をアプリケーション部１１０に対して要求すると共に、アクセス制限データ１１１のアクセス権情報１１２を指定する。
但し、実施の形態２で説明するように、アクセス権情報１１２はアクセス制限データ１１１の暗号化ファイル１１９が記憶されるディレクトリに予め設定してもよい。
【００５０】
例えば、人事部に所属する社員だけにアクセス制限データ１１１を使用させたい場合、ログインユーザはアクセス制限データ１１１として属性値「人事部」を指定する。
人事部と総務部との少なくともいずれかに所属する社員にアクセス制限データ１１１を使用させたい場合、ログインユーザはアクセス制限データ１１１として属性値の論理式「人事部  ＯＲ  総務部」を指定する。
人事部と総務部との両方に所属する社員だけにアクセス制限データ１１１を使用させたい場合、ログインユーザはアクセス制限データ１１１として属性値の論理式「人事部  ＡＮＤ  総務部」を指定する。
【００５１】
アプリケーション部１１０は、テキストエディタ、ワードプロセッサ、画像編集プログラムまたは音声編集プログラムなどのアプリケーションプログラムを実行し、アクセス制限データ１１１を生成する。生成されたアクセス制限データ１１１は、アプリケーション部１１０によって一時的にメモリ（記憶部の一例）に記憶される。
アプリケーション部１１０は、生成したアクセス制限データ１１１と指定されたアクセス権情報１１２とをファイルシステム部１２０に出力する。
Ｓ１１０の後、処理はＳ１２０に進む。
【００５２】
Ｓ１２０において、ファイルシステム部１２０は、アプリケーション部１１０から出力されたアクセス制限データ１１１とアクセス権情報１１２とを入力する。
ファイルシステム部１２０は、アクセス権情報１１２が示す条件を満たすユーザだけがアクセスできるようにアクセス制限データ１１１を保存するために、アクセス制限データ１１１とアクセス権情報１１２とをデバイス制御部１３０に出力する。
Ｓ１２０の後、処理はＳ１３０に進む。
【００５３】
Ｓ１３０において、デバイス制御部１３０は、ファイルシステム部１２０から出力されたアクセス制限データ１１１とアクセス権情報１１２とを入力する。
デバイス制御部１３０は、アクセス権情報１１２が示す条件を満たすユーザだけが復号できるようにアクセス制限データ１１１を暗号化するために、アクセス制限データ１１１とアクセス権情報１１２とをデータ暗号化部１４０に出力する。
Ｓ１３０の後、処理はＳ１４０に進む。
【００５４】
Ｓ１４０において、データ暗号化部１４０は、デバイス制御部１３０から出力されたアクセス制限データ１１１とアクセス権情報１１２とを入力する。
データ暗号化部１４０は、アクセス権情報１１２を用いてアクセス権付き暗号方式の暗号化アルゴリズムを実行し、アクセス制限データ１１１を暗号化した暗号化データ１１９ｂを含んだ暗号化ファイル１１９を生成する。
データ暗号化部１４０は、生成した暗号化ファイル１１９をデバイス制御部１３０に出力する。
データ暗号化処理（Ｓ１４０）の詳細については後述する。
Ｓ１４０の後、処理はＳ１５０に進む。
【００５５】
Ｓ１５０において、デバイス制御部１３０は、データ暗号化部１４０から出力された暗号化ファイル１１９を入力し、入力した暗号化ファイル１１９を暗号化ファイル記憶部１６０に記憶する。
例えば、デバイス制御部１３０は、暗号化ファイル１１９とアクセス制限データ１１１のデータ名とを対応付けて暗号化ファイル記憶部１６０に記憶する。
Ｓ１５０の後、透過的暗号化処理は終了する。
【００５６】
図７は、実施の形態１におけるデータ暗号化処理（Ｓ１４０）を示すフローチャートである。
データ暗号化部１４０（図３参照）が実行するデータ暗号化処理（Ｓ１４０）について、図７に基づいて説明する。
【００５７】
Ｓ１４１において、公開鍵入力部１４１は、システム記憶部１９０からシステム公開鍵１９１を入力する。
Ｓ１４１の後、処理はＳ１４２に進む。
【００５８】
Ｓ１４２において、アクセス権情報入力部１４２は、デバイス制御部１３０から出力されるアクセス権情報１１２を入力する。
Ｓ１４２の後、処理はＳ１４３に進む。
【００５９】
Ｓ１４３において、データ入力部１４３は、デバイス制御部１３０から出力されるアクセス制限データ１１１を入力する。
Ｓ１４３の後、処理はＳ１４４に進む。
【００６０】
但し、Ｓ１４１からＳ１４３の順番を変えて実行しても構わない。
【００６１】
Ｓ１４４において、暗号化ファイル生成部１４４は、システム公開鍵１９１とアクセス権情報１１２とを用いて、アクセス制限データ１１１を暗号化した暗号化データ１１９ｂを含んだ暗号化ファイル１１９を生成する。
暗号化ファイル生成処理（Ｓ１４４）の詳細については後述する。
Ｓ１４４の後、処理はＳ１４５に進む。
【００６２】
Ｓ１４５において、暗号化ファイル出力部１４５は、暗号化ファイル生成部１４４によって生成された暗号化ファイル１１９をデバイス制御部１３０に出力する。
Ｓ１４５の後、データ暗号化処理（Ｓ１４０）は終了する。
【００６３】
図８は、実施の形態１における暗号化ファイル生成処理（Ｓ１４４）を示すフローチャートである。
暗号化ファイル生成部１４４（図４参照）が実行する暗号化ファイル生成処理（Ｓ１４４）について、図８に基づいて説明する。
【００６４】
Ｓ１４４Ａにおいて、乱数生成部１４４Ａは、アクセス制限データ１１１を暗号化するための共通鍵として用いる乱数１４４ａを生成する。
Ｓ１４４Ａの後、処理はＳ１４４Ｂに進む。
【００６５】
Ｓ１４４Ｂにおいて、共通鍵暗号化部１４４Ｂは、乱数生成部１４４Ａによって生成された乱数１４４ａを共通鍵として用いて共通鍵暗号方式の暗号化アルゴリズムを実行し、アクセス制限データ１１１を暗号化する。
Ｓ１４４Ｂの後、処理はＳ１４４Ｃに進む。
【００６６】
Ｓ１４４Ｃにおいて、アクセス権付き暗号化部１４４Ｃは、システム公開鍵１９１とアクセス権情報１１２とを用いてアクセス権付き暗号方式の暗号化アルゴリズムを実行し、乱数１４４ａを暗号化する。
これにより、暗号化された乱数１４４ａ（暗号化乱数１１９ａ）にはアクセス権情報１１２に関する情報が埋め込まれる。そして、アクセス権情報１１２が示す条件を満たすユーザに割り当てられたユーザ秘密鍵１９２を用いた場合にだけ、暗号化された乱数１４４ａが復号される。
Ｓ１４４Ｃの後、処理はＳ１４４Ｄに進む。
【００６７】
但し、Ｓ１４４ＢとＳ１４４Ｃとは順番を入れ替えても構わない。
【００６８】
Ｓ１４４Ｄにおいて、暗号化ファイル構成部１４４Ｄは、暗号化されたアクセス制限データ１１１（暗号化データ１１９ｂ）と暗号化された乱数１４４ａ（暗号化乱数１１９ａ）とを含んだ暗号化ファイル１１９（図５参照）を生成する。
Ｓ１４４Ｄの後、暗号化ファイル生成処理（Ｓ１４４）は終了する。
【００６９】
次に、暗号化ファイル１１９を復号するデータ復号部１５０の構成について、図９に基づいて説明する。
図９は、実施の形態１におけるデータ復号部１５０の構成図である。
【００７０】
データ復号部１５０は、暗号化ファイル分解部１５１、アクセス権付き復号部１５２および共通鍵方式復号部１５３を備える。
【００７１】
暗号化ファイル分解部１５１は、暗号化ファイル１１９から暗号化乱数１１９ａおよび暗号化データ１１９ｂを取得する。
アクセス権付き復号部１５２（利用者識別子入力部、利用者秘密鍵取得部、共通鍵復号部の一例）は、ユーザ秘密鍵１９２を用いてアクセス権付き暗号方式の復号アルゴリズムを実行し、暗号化乱数１１９ａを復号する。
共通鍵方式復号部１５３（アクセス制限データ復号部の一例）は、暗号化乱数１１９ａを復号して得られた乱数１４４ａを用いて共通鍵暗号方式の復号アルゴリズムを実行し、暗号化データ１１９ｂを復号する。暗号化データ１１９ｂを復号することにより、アクセス制限データ１１１が得られる。
【００７２】
次に、暗号化ファイル１１９をアクセス制限データ１１１に復号する際の透過的復号処理について、図１０に基づいて説明する。
図１０は、実施の形態１における透過的復号処理を示すフローチャートである。
【００７３】
Ｓ２０１において、アクセス制限データ１１１を使用したいユーザは透過的暗号化ファイルシステム１００にユーザＩＤとパスワードとを入力してログインし、ログイン部１０１はユーザのログインを処理する。ログインの処理方法は、透過的暗号化処理（図６）のＳ１０１と同様である。
ログインが許可された場合、処理はＳ２１０に進む。
【００７４】
Ｓ２１０において、Ｓ２０１でログインしたログインユーザは、入力機器を用いて、アクセス制限データ１１１の読み出しをアプリケーション部１１０に対して要求する。
要求を受けたアプリケーション部１１０は、ファイルシステム部１２０に対してアクセス制限データ１１１を要求する。
要求を受けたファイルシステム部１２０は、デバイス制御部１３０に対してアクセス制限データ１１１を要求する。
Ｓ２１０の後、処理はＳ２２０に進む。
【００７５】
Ｓ２２０において、デバイス制御部１３０は、要求されたアクセス制限データ１１１を暗号化した暗号化データ１１９ｂを含んだ暗号化ファイル１１９を暗号化ファイル記憶部１６０から取得する。
例えば、デバイス制御部１３０は、アクセス制限データ１１１のデータ名に対応付けられた暗号化ファイル１１９を暗号化ファイル記憶部１６０から取得する。
Ｓ２２０の後、Ｓ２３０に進む。
【００７６】
Ｓ２３０において、デバイス制御部１３０は、取得した暗号化ファイル１１９をデータ復号部１５０に出力する。
データ復号部１５０は、ログインユーザのユーザ秘密鍵１９２を用いてアクセス権付き暗号方式の復号アルゴリズムを実行し、暗号化ファイル１１９からアクセス制限データ１１１を復号する。
但し、ログインユーザがアクセス制限データ１１１の使用を許可された（グループに属する）ユーザではない場合、ログインユーザのユーザ秘密鍵１９２を用いて暗号化ファイル１１９からアクセス制限データ１１１を復号することができない。
その場合、アプリケーション部１１０はアクセス制限データ１１１の読み出しエラーをディスプレイに表示し、透過的復号化処理（図１０）は終了する（図示省略）。
【００７７】
暗号化ファイル１１９からアクセス制限データ１１１を復号することができた場合、データ復号部１５０は、復号により得られたアクセス制限データ１１１をデバイス制御部１３０に出力する。
データ復号処理（Ｓ２３０）の詳細については後述する。
Ｓ２３０の後、Ｓ２４０に進む。
【００７８】
Ｓ２４０において、デバイス制御部１３０は、データ復号部１５０から出力されたアクセス制限データ１１１を入力し、入力したアクセス制限データ１１１をファイルシステム部１２０に出力する。
ファイルシステム部１２０は、デバイス制御部１３０から出力されたアクセス制限データ１１１を入力し、入力したアクセス制限データ１１１をアプリケーション部１１０に出力する。
アプリケーション部１１０は、アクセス制限データ１１１を出力する。例えば、アプリケーション部１１０は、アクセス制限データ１１１をディスプレイに表示する。
Ｓ２４０の後、透過的復号処理（図１０）は終了する。
【００７９】
図１１は、実施の形態１におけるデータ復号処理（Ｓ２３０）を示すフローチャートである。
データ復号部１５０（図９参照）が実行するデータ復号処理（Ｓ２３０）について、図１１に基づいて説明する。
【００８０】
Ｓ２３１において、暗号化ファイル分解部１５１は、暗号化ファイル１１９（図５参照）のメタデータフィールド１１９Ａから暗号化乱数１１９ａを取得し、暗号化ファイル１１９のデータフィールド１１９Ｂから暗号化データ１１９ｂを取得する。
Ｓ２３１の後、処理はＳ２３２に進む。
【００８１】
Ｓ２３２において、アクセス権付き復号部１５２は、ユーザ管理ファイル１９９（図２参照）からログインユーザのユーザＩＤに対応付けられたユーザ秘密鍵１９２を取得する。
アクセス権付き復号部１５２は、取得したユーザ秘密鍵１９２を用いてアクセス権付き暗号方式の復号アルゴリズムを実行し、暗号化乱数１１９ａを乱数１４４ａに復号する。
但し、ログインユーザがアクセス制限データ１１１の使用を許可された（グループに属する）ユーザではない場合、ログインユーザのユーザ秘密鍵１９２を用いて暗号化乱数１１９ａを乱数１４４ａに復号することができない。
その場合、アクセス権付き復号部１５２は復号エラーをデバイス制御部１３０に通知し、データ復号処理（図１１）は終了する（図示省略）。
その後、デバイス制御部１３０はファイルシステム部１２０を介してアクセス制限データ１１１の読み出しエラーをアプリケーション部１１０に通知し、アプリケーション部１１０はアクセス制限データ１１１の読み出しエラーをディスプレイに表示する。
【００８２】
暗号化乱数１１９ａを乱数１４４ａに復号することができた場合、処理はＳ２３３に進む。
【００８３】
Ｓ２３３において、共通鍵方式復号部１５３は、乱数１４４ａを共通鍵として用いて共通鍵暗号方式の復号アルゴリズムを実行し、暗号化データ１１９ｂをアクセス制限データ１１１に復号する。
共通鍵方式復号部１５３は、復号により得られたアクセス制限データ１１１をデバイス制御部１３０に出力する。
Ｓ２３３の後、データ復号処理（図１１）は終了する。
【００８４】
図１２は、実施の形態１における透過的暗号化ファイルシステム１００のハードウェア資源の一例を示す図である。
図１２において、透過的暗号化ファイルシステム１００（コンピュータの一例）は、ＣＰＵ９０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ９０１は、バス９０２を介してＲＯＭ９０３、ＲＡＭ９０４、通信ボード９０５（通信装置）、ディスプレイ９１１（表示装置）、キーボード９１２、マウス９１３、ドライブ９１４、磁気ディスク装置９２０などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。ドライブ９１４は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの記憶媒体を読み書きする装置である。
ＲＯＭ９０３、ＲＡＭ９０４、磁気ディスク装置９２０およびドライブ９１４は記憶装置の一例である。キーボード９１２、マウス９１３および通信ボード９０５は入力装置の一例である。ディスプレイ９１１および通信ボード９０５は出力装置の一例である。
【００８５】
通信ボード９０５は、有線または無線で、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、電話回線などの通信網に接続している。
【００８６】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、プログラム群９２２、ファイル群９２３が記憶されている。
【００８７】
プログラム群９２２には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラム（例えば、アクセス権付き暗号化プログラム、アクセス権付き復号プログラム）は、ＣＰＵ９０１により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【００８８】
ファイル群９２３には、実施の形態において説明する「〜部」で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【００８９】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
フローチャートなどに基づいて説明する実施の形態の処理はＣＰＵ９０１、記憶装置、入力装置、出力装置などのハードウェアを用いて実行される。
【００９０】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【００９１】
図１３、図１４および図１５は、実施の形態１における透過的暗号化ファイルシステム１００の透過的暗号化方法の概要図である。
実施の形態１における透過的暗号化ファイルシステム１００の透過的暗号化方法の概要について、図１３から図１５に基づいて説明する。
【００９２】
図１３において、人事部２００Ａに所属するユーザ２０１ａ・２０１ｂには、所属先を示す属性値「人事部」の情報が埋め込まれたユーザ秘密鍵１９２ａ・１９２ｂが割り当てられる。
また、営業部２００Ｂに所属するユーザ２０１ｃ・２０１ｄには、所属先を示す属性値「営業部」の情報が埋め込まれたユーザ秘密鍵１９２ｃ・１９２ｄが割り当てられる。
一方、暗号化ファイル１１９は、アクセス制限データ１１１を暗号化して得られた暗号化データ１１９ｂと、暗号化データ１１９ｂを復号するための共通鍵として用いる乱数１４４ａを暗号化して得られた暗号化乱数１１９ａとを含んでいる。また、暗号化乱数１１９ａには、復号可能条件を示す論理式「人事部  ＯＲ  総務部」に関する情報が埋め込まれている。
この場合、人事部２００Ａに所属するユーザ２０１ａ・２０１ｂは、自分に割り当てられたユーザ秘密鍵１９２ａ・１９２ｂを用いて、暗号化ファイル１１９からアクセス制限データ１１１を復号することができる。ユーザ秘密鍵１９２ａ・１９２ｂに、暗号化乱数１１９ａを復号するための復号可能条件を満たす属性値「人事部」の情報が埋め込まれているからである。
しかし、営業部２００Ｂに所属するユーザ２０１ｃ・２０１ｄは、自分に割り当てられたユーザ秘密鍵１９２ｃ・１９２ｄを用いて、暗号化ファイル１１９からアクセス制限データ１１１を復号することができない。ユーザ秘密鍵１９２ｃ・１９２ｄに、暗号化乱数１１９ａを復号するための復号可能条件を満たす属性値「人事部」の情報が埋め込まれていないためである。
これにより、透過的暗号化ファイルシステム１００は、人事部２００Ａまたは総務部に所属する社員だけに使用させたいアクセス制限データ１１１を、他の部署（例えば、営業部２００Ｂ）に所属する社員に対して秘匿することができる。
【００９３】
図１４において、ユーザ２０１ｂの所属が人事部２００Ａから営業部２００Ｂに変更になった場合、透過的暗号化ファイルシステム１００は、ユーザ２０１ｂに割り当てていた元のユーザ秘密鍵１９２ｂを破棄する。
そして、透過的暗号化ファイルシステム１００は、新たな所属先を示す属性値「営業部」の情報を埋め込んだユーザ秘密鍵１９２ｂを生成し、生成したユーザ秘密鍵１９２ｂをユーザ２０１ｂに新たに割り当てる。
これにより、営業部２００Ｂに所属したユーザ２０１ｂは、新たに割り当てられたユーザ秘密鍵１９２ｂを用いて、暗号化ファイル１１９からアクセス制限データ１１１を復号することができなくなる。つまり、営業部２００Ｂに移ったユーザ２０１ｂに対してアクセス制限データ１１１を秘匿することができる。
以上のように、ユーザが所属するグループが変更になる場合であっても、暗号化ファイル１１９を新たに生成し直す必要はない。
【００９４】
図１５において、ユーザ２０１ｅが人事部２００Ａに新たに配属になった場合、透過的暗号化ファイルシステム１００は、所属先を示す属性値「人事部」の情報を埋め込んだユーザ秘密鍵１９２ｅを生成し、生成したユーザ秘密鍵１９２ｅをユーザ２０１ｅに割り当てる。
これにより、人事部２００Ａに所属したユーザ２０１ｅは、自分に割り当てられたユーザ２０１ｅを用いて、暗号化ファイル１１９からアクセス制限データ１１１を復号することができる。
以上のように、ユーザが新たに加わった場合であっても、暗号化ファイル１１９を新たに生成し直す必要はない。
【００９５】
実施の形態１では、データを透過的に暗号化および復号する透過的暗号化ファイルシステム１００について説明した。
透過的暗号化ファイルシステム１００は、一台のコンピュータで構成してもよいし、複数台のコンピュータで構成してもよい。
例えば、透過的暗号化ファイルシステム１００は、データを暗号化するアクセス権付き暗号化装置２１０と、データを復号するアクセス権付き復号装置２１１と、の二台のコンピュータで構成してもよい（図１６、図１７参照）。
【００９６】
図１６および図１７は、実施の形態１における透過的暗号化ファイルシステム１００の構成例を示す図である。
図１６に示すようにアクセス権付き暗号化装置２１０はデータ暗号化部１４０およびその他の構成を備え、図１７に示すようにアクセス権付き復号装置２１１はデータ復号部１５０およびその他の構成を備える。
アクセス権付き暗号化装置２１０とアクセス権付き復号装置２１１とは、ネットワーク２１９を介して通信を行う。
【００９７】
例えば、アクセス権付き暗号化装置２１０およびアクセス権付き復号装置２１１は、以下のように動作する。
【００９８】
アクセス権付き暗号化装置２１０のデバイス制御部１３０は、アクセス権付き暗号鍵生成部１０９によって生成されたユーザ秘密鍵１９２をユーザＩＤと共にアクセス権付き復号装置２１１へ送信する。
アクセス権付き復号装置２１１のデバイス制御部１３０は、ユーザ秘密鍵１９２とユーザＩＤとを受信し、受信したユーザ秘密鍵１９２を受信したユーザＩＤに対応付けてユーザ管理ファイル１９９に設定する。
【００９９】
アクセス権付き復号装置２１１のデバイス制御部１３０は、アクセス要求されたアクセス制限データ１１１の暗号化ファイル１１９をアクセス権付き暗号化装置２１０に要求する。
アクセス権付き暗号化装置２１０のデバイス制御部１３０は、要求された暗号化ファイル１１９をアクセス権付き復号装置２１１へ送信する。
アクセス権付き暗号化装置２１０のデバイス制御部１３０は暗号化ファイル１１９を受信し、データ復号部１５０は暗号化ファイル１１９を復号する。
【０１００】
実施の形態１において、アクセス権付き暗号方式は以下のような暗号方式である。
アクセス権付き暗号方式は、復号可能者を論理式（述語）によって指定できる暗号方式（例えば、関数型暗号）である。
これは従来のＲＳＡ暗号（ＲＳＡは登録商標）などとは異なり、暗号化ファイルを復号できるのは暗号化に使用した公開鍵に対応するただ１人のユーザではない。つまり、暗号化時に指定した述語にマッチしたユーザのユーザ秘密鍵であれば暗号化ファイルを復号できる。
このような暗号を用いることで、例えば、３人のユーザが復号できる暗号化ファイルを作成する場合に、３人それぞれの公開鍵を用いて暗号化を実施しなくてもよく、効率的である。
また、暗号化時に指定する述語には、ユーザではなく、ユーザの属性（例えば、役職や所属など）を使用することができる。
さらに、ユーザの属性を述語で指定した場合、その属性を持つユーザが新たに追加（ユーザ秘密鍵が新たに発行）されても、再暗号化の必要はない。
【０１０１】
実施の形態１により、例えば、以下のような効果を奏することができる。
透過的暗号化ファイルシステム１００は、アクセス権情報１１２を入力パラメータにしてアクセス権付き暗号方式でアクセス制限データ１１１を暗号化することにより、透過的かつ効率的にアクセス制限データ１１１を安全に保管することができる。
ユーザの所属や役職などを表す属性値を含む論理式（述語論理式ともいう）によって表現される複雑なアクセス権をアクセス制限データ１１１に設定したい場合であっても、透過的暗号化ファイルシステム１００は、論理式を示すアクセス権情報１１２を入力パラメータとするアクセス権付き暗号方式でアクセス制限データ１１１を暗号化することにより、暗号化ファイル１１９のサイズ増加を抑えることができる。アクセス権付き暗号方式を用いることにより、暗号化ファイル１１９に設定する暗号化乱数１１９ａの個数が１つで済むためである。
ユーザの属性（例えば、所属）が変更になる場合であっても、透過的暗号化ファイルシステム１００は、ユーザに紐付けられたユーザ秘密鍵１９２を再発行するだけで、アクセス制限データ１１１を再暗号化しなくてよい。
ユーザグループ（属性）に新たにユーザが追加される場合であっても、透過的暗号化ファイルシステム１００は、新たに追加されるユーザに対して当該ユーザグループ（属性）の情報を埋め込んだユーザ秘密鍵１９２を発行するだけで、アクセス制限データ１１１を再暗号化しなくてよい。
【０１０２】
実施の形態１において、例えば、以下のようなアクセス権付き暗号化装置、アクセス権付き復号装置およびアクセス権付き暗号システム（１００）について説明した。括弧内に実施の形態で用いた符号または名称を記す。
アクセス権付き暗号化装置は、アクセス制限データ生成部と、復号可能条件情報取得部と、アクセス制限データ暗号化部と、共通鍵暗号化部と、暗号化ファイル生成部とを備える。
前記アクセス制限データ生成部（１１０）は、暗号化されるデータをアクセス制限データ（１１１）として生成する。
前記復号可能条件情報取得部（１４２）は、暗号化された前記アクセス制限データを復号することが許可される利用者が有する属性に関する条件を復号可能条件として示す復号可能条件情報（１１２）を取得する。
前記アクセス制限データ暗号化部（１４４Ｂ）は、前記アクセス制限データ生成部によって生成された前記アクセス制限データを共通鍵（１４４ａ）を用いて共通鍵暗号方式で暗号化する。
前記共通鍵暗号化部（１４４Ｃ）は、前記アクセス制限データ暗号化部が前記アクセス制限データの暗号化に用いる前記共通鍵を、公開鍵（１９１）と、前記復号可能条件情報取得部によって取得された前記復号可能条件情報とを用いて、アクセス権付き暗号方式で暗号化する。前記アクセス権付き暗号方式は、前記復号可能条件を満たす属性に関連付けて生成される秘密鍵（１９２）を用いて復号されるようにデータを暗号化する暗号方式である。
前記暗号化ファイル生成部（１４４Ｄ）は、前記アクセス制限データ暗号化部によって暗号化された前記アクセス制限データと、前記共通鍵暗号化部によって暗号化された前記共通鍵と、を含んだ暗号化ファイル（１１９）を生成する。
【０１０３】
アクセス権付き復号装置は、暗号化ファイル記憶部と、秘密鍵記憶部と、利用者識別子入力部と、利用者秘密鍵取得部と、共通鍵復号部と、アクセス制限データ復号部とを備える。
前記暗号化ファイル記憶部（１６０）は、暗号化ファイル（１１９）を記憶する。
前記秘密鍵記憶部（１９０、１９９）は、利用者毎に、利用者を識別する識別子（ユーザＩＤ）と、利用者が有する属性に関連付けて生成される秘密鍵（１９２）と、を対応付けて記憶する。
前記利用者識別子入力部（１５２）は、利用者を識別する利用者識別子を入力する。
前記利用者秘密鍵取得部（１５２）は、前記秘密鍵記憶部に記憶される秘密鍵のうち、前記利用者識別子入力部に入力された前記利用者識別子と同じ識別子に対応付けられた秘密鍵を利用者秘密鍵として取得する。
前記共通鍵復号部（１５２）は、前記暗号化ファイル記憶部に記憶される前記暗号化ファイルに含まれる暗号化された前記共通鍵（１１９ａ）を、前記利用者秘密鍵取得部によって取得された前記利用者秘密鍵を用いて、前記アクセス権付き暗号方式で復号する。
前記アクセス制限データ復号部（１５３）は、前記共通鍵復号部によって前記共通鍵が復号された場合、前記暗号化ファイル記憶部に記憶される前記暗号化ファイルに含まれる暗号化された前記アクセス制限データ（１１９ｂ）を、前記共通鍵復号部によって復号された前記共通鍵を用いて、前記共通鍵暗号方式で復号する。
【０１０４】
実施の形態２．
暗号化ファイル１１９が保存されるディレクトリに予めアクセス権情報１１２を設定し、ディレクトリに予め設定されたアクセス権情報１１２を用いて暗号化ファイル１１９を生成する形態について説明する。
以下、実施の形態１と異なる事項について主に説明する。説明を省略した事項については実施の形態１と同様である。
【０１０５】
透過的暗号化ファイルシステム１００の構成は、実施の形態１と同様である（図１参照）。
但し、暗号化ファイル記憶部１６０は、アクセス権情報１１２が予め設定されるディレクトリを有する。
ディレクトリは、一般的なファイルシステムで利用されるものであり、「フォルダ」とも呼ばれる。
例えば、ディレクトリは、暗号化ファイル１１９を記憶するための記憶領域、暗号化ファイル１１９を記憶するための記憶領域に関する情報、またはその両方を組み合わせたものである。
【０１０６】
＜実施例１＞
図１８は、実施の形態２（実施例１）における暗号化ファイル記憶部１６０の一例を示す図である。
実施の形態２（実施例１）における暗号化ファイル記憶部１６０について、図１８に基づいて説明する。
【０１０７】
暗号化ファイル記憶部１６０は、暗号化ファイル１１９を記憶するための２つのディレクトリ２２０Ａ・２２０Ｂを備える。
ディレクトリ２２０Ａは人事部用の暗号化ファイル１１９を記憶するためのものであり、ディレクトリ２２０Ａにはアクセス権情報１１２ａとして属性値「人事部」が設定されている。
ディレクトリ２２０Ｂは営業部用の暗号化ファイル１１９を記憶するためのものであり、ディレクトリ２２０Ｂにはアクセス権情報１１２ｂとして属性値「営業部」が設定されている。
【０１０８】
次に、ディレクトリ２２０Ａ・２２０Ｂに設定されたアクセス権情報１１２ａ・１１２ｂを利用する方法について、実施の形態１で説明したフローチャートに基づいて説明する。
図６のＳ１１０において、ログインユーザは、アクセス権情報１１２を指定する代わりに、アクセス制限データ１１１の暗号化ファイル１１９を記憶するディレクトリを指定する。
例えば、人事部用のアクセス制限データ１１１を生成した場合、ログインユーザは人事部用のディレクトリ２２０Ａを保存先として指定する。
図６のＳ１４０において、データ暗号化部１４０は、ログインユーザに指定されたディレクトリ２２０Ａに設定されているアクセス権情報１１２ａを用いて、暗号化ファイル１１９を生成する。そのため、データ暗号化部１４０のアクセス権情報入力部１４２は、ディレクトリ２２０Ａからアクセス権情報１１２ａを取得する（図７のＳ１４２参照）。
図６のＳ１５０において、デバイス制御部１３０は、ログインユーザに指定されたディレクトリ２２０Ａに暗号化ファイル１１９を記憶する。
透過的暗号化処理（図６参照）のその他の処理については実施の形態１と同様である。また、透過的復号処理（図１０参照）についても実施の形態１と同様である。
【０１０９】
＜実施例２＞
図１９は、実施の形態２（実施例２）における暗号化ファイル記憶部１６０の一例を示す図である。
実施の形態２（実施例２）における暗号化ファイル記憶部１６０について、図１９に基づいて説明する。
【０１１０】
暗号化ファイル記憶部１６０は、人事部用のディレクトリ２２０Ａと営業部用のディレクトリ２２０Ｂとを備える。
人事部用のディレクトリ２２０Ａはサブディレクトリ２２１Ａを備える。サブディレクトリ２２１Ａにはアクセス権情報１１２が設定されていない。このため、サブディレクトリ２２１Ａは、親のディレクトリ２２０Ａに設定されたアクセス権情報１１２を継承する。
営業部用のディレクトリ２２０Ｂは営業部長用のサブディレクトリ２２１Ｂを備える。サブディレクトリ２２１Ｂにはアクセス権情報１１２ｃとして属性値「営業部長」が設定されている。
【０１１１】
次に、サブディレクトリ２２１Ａを利用する方法について、実施の形態１で説明したフローチャートに基づいて説明する。
図６のＳ１１０において、ログインユーザは、アクセス権情報１１２を指定する代わりに、アクセス制限データ１１１の暗号化ファイル１１９を記憶するサブディレクトリを指定する。
例えば、人事部用のアクセス制限データ１１１を生成した場合、ログインユーザは人事部用のディレクトリ２２０Ａ内のサブディレクトリ２２１Ａを保存先として指定する。
図６のＳ１４０において、ログインユーザに指定されたサブディレクトリ２２１Ａにはアクセス権情報１１２が設定されていないため、データ暗号化部１４０は、サブディレクトリ２２１Ａの親のディレクトリ２２０Ａに設定されているアクセス権情報１１２ａを用いて、暗号化ファイル１１９を生成する。そのため、データ暗号化部１４０のアクセス権情報入力部１４２は、ディレクトリ２２０Ａからアクセス権情報１１２ａを取得する（図７のＳ１４２参照）。
図６のＳ１５０において、デバイス制御部１３０は、ログインユーザに指定されたサブディレクトリ２２１Ａに暗号化ファイル１１９を記憶する。
【０１１２】
次に、サブディレクトリ２２１Ｂを利用する方法について、実施の形態１で説明したフローチャートに基づいて説明する。
図６のＳ１１０において、ログインユーザは、アクセス権情報１１２を指定する代わりに、アクセス制限データ１１１の暗号化ファイル１１９を記憶するサブディレクトリを指定する。
例えば、営業部長用のアクセス制限データ１１１を生成した場合、ログインユーザは営業部長用のサブディレクトリ２２１Ｂを保存先として指定する。
図６のＳ１４０において、データ暗号化部１４０は、ログインユーザに指定されたサブディレクトリ２２１Ｂに設定されているアクセス権情報１１２ｃを用いて、暗号化ファイル１１９を生成する。そのため、データ暗号化部１４０のアクセス権情報入力部１４２は、サブディレクトリ２２１Ｂからアクセス権情報１１２ｃを取得する（図７のＳ１４２参照）。
図６のＳ１５０において、デバイス制御部１３０は、ログインユーザに指定されたサブディレクトリ２２１Ｂに暗号化ファイル１１９を記憶する。
【０１１３】
次に、サブディレクトリ２２１Ｂを利用する別の方法について、実施の形態１で説明したフローチャートに基づいて説明する。
図６のＳ１１０において、ログインユーザは、営業部長用のサブディレクトリ２２１Ｂを指定したものとする。
図６のＳ１４０において、データ暗号化部１４０は、ログインユーザに指定されたサブディレクトリ２２１Ｂに設定されているアクセス権情報１１２ｃと、サブディレクトリ２２１Ｂの親のディレクトリ２２０Ｂに設定されているアクセス権情報１１２ｂとを用いて、暗号化ファイル１１９を生成する。そのため、データ暗号化部１４０のアクセス権情報入力部１４２は、サブディレクトリ２２１Ｂからアクセス権情報１１２ｃを取得すると共に親のディレクトリ２２０Ｂからアクセス権情報１１２ｂを取得する。
例えば、データ暗号化部１４０は、アクセス権情報１１２ｃとアクセス権情報１１２ｂとの論理積「営業部  ＡＮＤ  営業部長」を復号可能条件として用いて暗号化ファイル１１９を生成する。但し、データ暗号化部１４０は、論理和「営業部  ＯＲ  営業部長」または排他的論理和「営業部  ＮＯＲ  営業部長」など、その他の種類の論理式を復号可能条件として用いてもよい。この場合、複数のアクセス権情報１１２を組み合わせてどのような種類の論理式を生成するかを指定する情報を、ディレクトリ２２０Ｂ、サブディレクトリ２２１Ｂまたはアクセス権情報１１２ｃに設定しておけばよい。
図６のＳ１５０において、デバイス制御部１３０は、ログインユーザに指定されたサブディレクトリ２２１Ｂに暗号化ファイル１１９を記憶する。
【０１１４】
透過的暗号化処理（図６参照）のその他の処理については実施の形態１と同様である。また、透過的復号処理（図１０参照）についても実施の形態１と同様である。
【０１１５】
実施の形態２により、例えば、以下のような効果を奏することができる。
透過的暗号化ファイルシステム１００は、暗号化ファイル１１９を保存するディレクトリからアクセス権情報１１２を自動で取得することができる。
透過的暗号化ファイルシステム１００は、自動で取得したアクセス権情報１１２を入力パラメータにしてアクセス権付き暗号方式でアクセス制限データ１１１を暗号化することにより、透過的かつ効率的にアクセス制限データ１１１を安全に保管することができる。
【０１１６】
実施の形態２において、例えば、以下のようなアクセス権付き暗号化装置（１００）について説明した。括弧内に実施の形態で用いた符号または名称を記す。
暗号化ファイル記憶部（１６０）は、前記暗号化ファイル（１１９）を記憶するための１つ以上のディレクトリであって前記復号可能条件情報（１１２）が予め設定される１つ以上のディレクトリ（２２０）を有する。
ディレクトリ指定情報取得部（１４２）は、前記暗号化ファイル記憶部が有する１つ以上のディレクトリのうち前記暗号化ファイルを設定するいずれかのディレクトリを指定するディレクトリ指定情報を取得する。
復号可能条件情報取得部（１４２）は、前記暗号化ファイル記憶部が有する１つ以上のディレクトリそれぞれに設定された前記復号可能条件情報のうち、前記ディレクトリ指定情報取得部によって取得されたディレクトリ指定情報によって指定されるディレクトリに設定された前記復号可能条件情報を取得する。
【符号の説明】
【０１１７】
１００  透過的暗号化ファイルシステム、１０１  ログイン部、１０９  アクセス権付き暗号鍵生成部、１１０  アプリケーション部、１１１  アクセス制限データ、１１２  アクセス権情報、１１９  暗号化ファイル、１１９Ａ  メタデータフィールド、１１９Ｂ  データフィールド、１１９ａ  暗号化乱数、１１９ｂ  暗号化データ、１２０  ファイルシステム部、１３０  デバイス制御部、１４０  データ暗号化部、１４１  公開鍵入力部、１４２  アクセス権情報入力部、１４３  データ入力部、１４４  暗号化ファイル生成部、１４４Ａ  乱数生成部、１４４Ｂ  共通鍵暗号化部、１４４Ｃ  アクセス権付き暗号化部、１４４Ｄ  暗号化ファイル構成部、１４４ａ  乱数、１４５  暗号化ファイル出力部、１５０  データ復号部、１５１  暗号化ファイル分解部、１５２  アクセス権付き復号部、１５３  共通鍵方式復号部、１６０  暗号化ファイル記憶部、１９０  システム記憶部、１９１  システム公開鍵、１９２  ユーザ秘密鍵、１９３  システム共通鍵、１９９  ユーザ管理ファイル、２００Ａ  人事部、２００Ｂ  営業部、２０１ａ，２０１ｂ，２０１ｃ，２０１ｄ，２０１ｅ  ユーザ、２１０  アクセス権付き暗号化装置、２１１  アクセス権付き復号装置、２１９  ネットワーク、２２０Ａ，２２０Ｂ  ディレクトリ、２２１Ａ，２２１Ｂ  サブディレクトリ、９０１  ＣＰＵ、９０２  バス、９０３  ＲＯＭ、９０４  ＲＡＭ、９０５  通信ボード、９１１  ディスプレイ、９１２  キーボード、９１３  マウス、９１４  ドライブ、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  プログラム群、９２３  ファイル群。
【図１】
0005511925.tif 000002
【図２】
0005511925.tif 000003
【図３】
0005511925.tif 000004
【図４】
0005511925.tif 000005
【図５】
0005511925.tif 000006
【図６】
0005511925.tif 000007
【図７】
0005511925.tif 000008
【図８】
0005511925.tif 000009
【図９】
0005511925.tif 000010
【図１０】
0005511925.tif 000011
【図１１】
0005511925.tif 000012
【図１２】
0005511925.tif 000013
【図１３】
0005511925.tif 000014
【図１４】
0005511925.tif 000015
【図１５】
0005511925.tif 000016
【図１６】
0005511925.tif 000017
【図１７】
0005511925.tif 000018
【図１８】
0005511925.tif 000019
【図１９】
0005511925.tif 000020