以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
〔1〕第1実施形態
〔1−1〕情報処理システムの構成例
図1に示すように、第1実施形態に係る情報処理システム1は、例示的に、ファイル管理装置2、アクセス許可装置3、及び、アクセス装置4をそなえてよい。なお、ファイル管理装置2、アクセス許可装置3、及び、アクセス装置4は、いずれも、情報処理システム1に複数存在してもよい。
ファイル管理装置2は、ファイル管理情報と、ファイルのアクセス許可条件とを管理する情報処理装置の一例である。情報処理装置としては、PCやサーバ、或いはストレージ装置等の種々のコンピュータが挙げられる。ストレージ装置はRedundant Arrays of Inexpensive Disks(RAID)装置であってもよい。
アクセス許可条件は、アクセス装置4又はユーザに対して設定される、暗号化ファイルの復号を許可する条件の一例である。アクセス許可条件としては、例えば、復号可能な場所の地理的な位置情報、閲覧可能な時間帯、アクセス可能な回数、ユーザID、及び、アクセス装置4の装置ID等の少なくとも1つに関する条件が挙げられる。
ファイル管理情報には、ファイル(例えば文書)を暗号化した暗号化ファイル、暗号化に用いた暗号鍵、及び、初期化ベクトルの少なくとも1つが含まれてよい。なお、初期化ベクトルは、暗号鍵とともにファイルの暗号化に用いられる情報の一例であり、復号鍵とともに暗号化ファイルの復号に用いられる復号情報の一例である。以下、初期化ベクトルについて説明する。
データの暗号化方式として、ブロック暗号が知られている。ブロック暗号は、暗号鍵と復号鍵とが共通である共通鍵暗号の一例である。
ブロック暗号の暗号利用モードのうち、Electronic Codebook Mode(ECBモード)と呼ばれる方式では、図2に例示するように、メッセージはブロックに分割され、それぞれのブロックは独立して暗号化される。また、それぞれの暗号化されたブロック(以下、暗号化ブロックと称する)は独立して復号される。
ECBモードでは、同一のデータ列を暗号化すると同一の暗号文になる性質があり、セキュリティ上の脅威となる場合がある。そこで、ブロック暗号において、初期化ベクトル(Initial Vector;以下、「IV」と表記する場合がある)と呼ばれるランダムデータ列を平文の最初のブロック等に追加する方式が知られている。初期化ベクトルを用いる暗号化方式としては、例えば、Cipher Block Chaining(CBC)モードやPropagating CBC(PCBC)モード、Cipher Feedback(CFB)モード、Output Feedback(OFB)モード等の方式が挙げられる。
一例として、図3に示すように、CBCモードでは、各ブロックは前の暗号化ブロックとのXORを取ってから暗号化される。従って、各々の暗号化ブロックはそれ以前のブロックに依存することとなる。最初のブロックは、初期化ベクトルとのXORを取ってから暗号化される。また、復号処理では、それぞれの暗号化ブロックの復号結果に対して、前の暗号化ブロックとのXORを取ることで、それぞれのブロックの平文が得られる。また、最初の暗号化ブロックの復号結果については、初期化ベクトルとのXORを取ることで、最初のブロックの平文が得られる。
以下の説明では、ファイルの暗号化方式として、初期化ベクトルを用いるブロック暗号を利用する場合を例に挙げて説明する。
アクセス許可装置3は、ファイルへのアクセス可否を判定する判定装置又は情報処理装置の一例である。判定装置又は情報処理装置としては、PCやサーバ等の種々のコンピュータが挙げられる。
アクセス装置4は、暗号化ファイルの復号を行なう端末の一例であって、ユーザがファイルにアクセスするために用いる情報処理装置の一例である。情報処理装置としては、PC、サーバ、Personal Digital Assistant(PDA)、スマートホン、又はタブレット等の種々のコンピュータが挙げられる。
図1に例示するように、ファイル管理装置2は、アクセス装置4に対して、暗号化ファイル、復号鍵(例えば、共通鍵)、条件種別、及び、F1の値を送信してよい。
なお、条件種別は、アクセス許可条件に設定される条件の種別、換言すれば、アクセス許可条件の判定でどのような情報が用いられるかを表す情報の一例である。例えば、条件種別は、位置情報、時刻情報、アクセス可能回数、ユーザID、及び、アクセス装置4の装置ID等の少なくとも1つの種別を含んでよい。
また、ファイル管理装置2は、アクセス許可装置3に、F2の値、及び、(設定されている場合は)アクセス許可条件を送信してよい。
F1及びF2は、初期化ベクトルを分解した情報であって、暗号化ファイルの復号に用いられる復号情報から演算される第1及び第2の情報の一例である。F1及びF2は、それぞれ、初期化ベクトルと同一のデータ長であってよい。F1は、例えば、初期化ベクトルとは異なるランダムデータ列であってよい。F2は、例えば、初期化ベクトル、F1、及び、アクセス許可条件の少なくとも1つに基づいて生成されてよい。一例として、F2は、初期化ベクトル、F1、及び、アクセス許可条件のXORを取った演算結果であってよい。
アクセス装置4は、暗号化ファイルを閲覧する際に、F2を記憶するアクセス許可装置3に対して、F1、及び、条件種別に応じた状態情報を送信してよい。状態情報としては、例えば、アクセス装置4の現在の位置情報、現在時刻、アクセス可能回数、ユーザID、及び、アクセス装置4の装置ID等の少なくとも1つの情報が挙げられる。
アクセス許可装置3は、アクセス装置4から受信したF1及び状態情報、アクセス許可条件、並びに、F1に対応するF2のXORを演算し、演算結果をアクセス装置4に送信してよい。アクセス装置4は、記憶する復号鍵と、アクセス許可装置3から受信した演算結果と、を用いて、暗号化ファイルを復号してよい。
ここで、XORの性質上、F2の値と、F2の演算に用いられた初期化ベクトル以外の情報とのXOR演算結果は、初期化ベクトルと一致する。このため、アクセス装置4がアクセス条件を満たしている場合、アクセス許可装置3での演算結果は、暗号化ファイルの暗号化に用いられた初期化ベクトルと同一になり、アクセス装置4は、暗号化ファイルを正しく復号できる。
一方、アクセス許可条件を満たしていない場合、演算結果が初期化ベクトルと異なるため、アクセス装置4は、暗号化ファイルの復号に失敗する。また、アクセス装置4が記憶するF1は、初期化ベクトルとは異なるランダムデータ列である。このため、アクセス装置4は、復号鍵及びF1を用いても暗号化ファイルを正しく復号できない。
また、アクセス許可装置3が記憶するF2も、初期化ベクトルとは異なるランダムデータ列である。このため、アクセス許可装置3は、F2を用いても暗号化ファイルを正しく復号できない。
このように、第1実施形態に係る情報処理システム1は、暗号化ファイルをアクセス装置4に持ち出す場合、復号に用いる初期化ベクトルを分散管理し、予め指定された条件が満たされた場合に、暗号化ファイルを復号し閲覧できるようにする。このように、ファイルを閲覧するアクセス装置4上の情報だけでは暗号化ファイルを復号できないようにすることで、セキュリティを強化できる。
また、情報処理システム1は、1つ又は複数のアクセス許可条件を指定して、ファイルへのアクセス許可又は拒否を決定できる。従って、ユーザが悪意を持ってファイルを不正に閲覧しようとした場合や、端末や復号鍵等を紛失した場合であっても、暗号化ファイルが復号されるときにアクセス許可条件を満たさなければ、暗号化ファイルの復号に失敗する。
また、端末や復号鍵等の紛失後に、アクセス許可装置3においてF2を無効化(例えば削除)することで、アクセス許可条件を満たす場合でも、アクセス許可装置3が正しい初期化ベクトルを生成できないため、暗号化ファイルの復号は不可能になる。
以上のように、第1実施形態に係る情報処理システム1によれば、暗号化ファイルに係るセキュリティリスクを低減できる。
以下、情報処理システム1の各装置の構成例について説明する。
〔1−2〕ファイル管理装置の構成例
図4は、ファイル管理装置2の機能構成例を示す図である。図4に示すように、ファイル管理装置2は、例示的に、ファイル登録部21、復号情報生成部22、情報送信部23、乱数発生部24、及び、メモリ部25をそなえてよい。
メモリ部25は、ファイル管理装置2が用いる後述する種々のデータ等の情報を格納する。メモリ部25は、例えば、Random Access Memory(RAM)等の揮発性メモリの記憶領域により実現されてよい。また、メモリ部25は、例えば、不揮発性のストレージの記憶領域により実現されてもよい。不揮発性のストレージとしては、例えば、Hard Disk Drive(HDD)等の磁気ディスク装置、Solid State Drive(SSD)等の半導体ドライブ装置、フラッシュメモリやRead Only Memory(ROM)等の不揮発性メモリ等が挙げられる。
乱数発生部24は乱数を発生させる。乱数発生部24から生成される複数の互いに異なる乱数は、図4に示すように、それぞれ、共通鍵101、初期化ベクトル102、及び、乱数値104として用いられてよい。なお、共通鍵101、初期化ベクトル102、及び、乱数値104は、いずれも同じビット長の乱数でよい。
乱数発生部24としては、ファイル管理装置2がそなえる又はファイル管理装置2に接続されたハードウェアの乱数発生器や、ソフトウェアによる乱数(疑似乱数)の生成機能等の、既知の種々の構成が用いられてよい。
ファイル登録部21は、入力されたファイル100を管理する。例えば、ファイル登録部21は、ファイル100が入力されると、ファイル100ごとに暗号鍵(例えば共通鍵101)と初期化ベクトル102とを生成し、ファイル100を暗号化して管理する。なお、ファイル100としては、例えば文書ファイルが挙げられる。
ファイル登録部21は、暗号化部211をそなえてよい。暗号化部211は、乱数発生部24から入力される共通鍵101及び初期化ベクトル102を用いて、入力されたファイル100の暗号化を行ない、暗号化ファイル103を生成してよい。暗号化部211は、暗号化方式として、ブロック暗号方式を採用してよい。ブロック暗号方式は、例えば、初期化ベクトルを用いる暗号化モードをサポートしてよい。
また、ファイル登録部21は、共通鍵101、初期化ベクトル102、及び、暗号化ファイル103を、ファイル管理情報212に登録してよい。なお、ファイル100がファイル管理情報212に登録されてもよい。ファイル管理情報212及びファイル管理情報212に登録される情報の少なくとも1つは、メモリ部25に格納されてもよい。
ファイル管理情報212の一例を図5に示す。ファイル管理情報212は、暗号化ファイル103、共通鍵101、及び、初期化ベクトル102のセットを管理する情報の一例である。ファイル管理情報212は、図5に示すように、例示的に、「ファイル名」、「暗号化ファイル名」、「共通鍵名」、「初期化ベクトル名」、「F1」、「F2」、「F1送信先」、及び、「F2送信先」の項目を含んでよい。なお、図7を用いて後述するアクセス許可条件105の情報がファイル管理情報212に含まれてもよい。
「ファイル名」は、ファイル100を特定する情報の一例である。「暗号化ファイル名」は、ファイル100に対応する暗号化ファイル103を特定する情報の一例である。「共通鍵名」及び「初期化ベクトル名」は、ファイル100の暗号化に用いた暗号鍵及び初期化ベクトル102をそれぞれ特定する情報の一例である。
「F1」及び「F2」は、それぞれ、後述する復号情報生成部22が生成するF1 106及びF2 107を特定する情報の一例である。「F1送信先」は、F1 106を配布するアクセス装置4を特定する情報の一例である。「F2送信先」は、F2 107を配布するアクセス許可装置3を特定する情報の一例である。
ファイル管理情報212には、上述した情報がファイル100に関連付けられて設定されてよい。なお、ファイル管理情報212には、上述した情報自体が設定されてもよいし、メモリ部25に格納される上述した情報への参照(例えばリンク)が設定されてもよい。
復号情報生成部22は、F1 106及びF2 107を生成する。復号情報生成部22は、演算処理部221をそなえてよい。
演算処理部221は、ファイル管理情報212で管理される初期化ベクトル102と、乱数発生部24から入力される乱数値104と、ファイル100ごとに設定されるアクセス許可条件105と、に基づいて、F1 106及びF2 107を演算してよい。
演算処理部221は、図6に例示するように、XOR演算部222及び変換部223をそなえてよい。演算処理部221は、図6に示すように、乱数値104をF1 106として出力してよい。また、演算処理部221は、乱数値104、初期化ベクトル102、及び、アクセス許可条件105をXOR演算部222に入力してよい。XOR演算部222は、入力されたこれらの値のXOR演算を行ない、演算結果をF2 107として出力してよい。
なお、演算処理部221は、アクセス許可条件105が「装置ID」や「ユーザID」等の情報であれば、変換部223において変換処理を行なわずに、アクセス許可条件105をそのままXOR演算部222に入力してよい。一方、アクセス許可条件105がその他の情報、例えば「位置情報」等である場合、演算処理部221は、変換部223によりアクセス許可条件105をF2 107の生成に適した形式に変換してから、XOR演算部222に入力してよい。
変換部223は、アクセス許可条件105の種別に応じて、アクセス許可条件105を変換してよい。変換部223の処理の詳細は後述する。
以上のように、演算処理部221によって初期化ベクトル102がF1 106及びF2 107に分解される。このとき、F1 106、F2 107、及び、初期化ベクトル102は、それぞれ、以下のような関係となる。
F1 = 乱数値
F2 = 初期化ベクトル^F1^アクセス許可条件
初期化ベクトル = F1^F2^アクセス許可条件
(但し、記号“^”はXOR演算子。以下同様)
アクセス許可条件105の一例を図7に示す。アクセス許可条件105は、図7に示すように、例示的に、「暗号化ファイル名」、「位置情報」、「閲覧可能時間帯」、「アクセス可能回数」、「装置ID」、及び、「ユーザID」等の項目を含んでよい。
なお、便宜上、図7においてアクセス許可条件105をテーブル形式で示すが、これに限定されるものではなく、アクセス許可条件105の情報は、種々の形態でメモリ部25等に格納されてよい。テーブル形式で図示する後述の他の情報についても同様である。
「暗号化ファイル名」は、暗号化ファイル103を特定する情報の一例である。「位置情報」は、ファイル100の閲覧を許可する位置又はエリア(範囲)を示す情報であり、例えば、Global Positioning System(GPS)情報の少なくとも一部を用いてよい。「閲覧可能時間帯」は、ファイル100の閲覧を許可する時間帯を示す情報である。「アクセス可能回数」は、暗号化ファイル103へのアクセス(例えばファイル100の閲覧)を許可する回数を示す情報である。「装置ID」及び「ユーザID」は、それぞれ、ファイル100の閲覧を許可するアクセス装置4及びユーザを特定する情報の一例である。
なお、アクセス許可条件105の「位置情報」として、例えば、ファイル100の閲覧を許可する位置又はエリアの中央の座標、一例として、アクセス許可装置3の位置の情報が用いられてもよい。
図8に、アクセス許可装置情報108の一例を示す。アクセス許可装置情報108は、図8に示すように、暗号化ファイル103を復号可能な場所の一例としての「アクセス許可装置名」及び当該アクセス許可装置情報108の「位置情報」を含んでよい。
アクセス許可条件105の「位置情報」には、アクセス許可装置情報108におけるアクセス許可装置情報108の「位置情報」、アクセス許可装置情報108の該当エントリのインデックス、又は、「アクセス許可装置名」へのリンク、が設定されてもよい。或いは、アクセス許可条件105には「位置情報」の項目を設けず、代わりにアクセス許可装置情報108が用いられてもよい。
また、アクセス許可条件105には「ユーザID」の項目を設けず、代わりにアクセス装置情報109が用いられてもよい。
図9に、アクセス装置情報109の一例を示す。アクセス装置情報109は、図9に示すように、暗号化ファイル103を復号可能なユーザが使用する「アクセス装置名」及び当該ユーザの識別情報の一例としての「ユーザID」を含んでよい。
なお、アクセス許可条件105の「ユーザID」には、アクセス装置情報109の該当エントリのインデックス、又は、「アクセス装置名」へのリンクが設定されてもよい。
アクセス許可条件105の「閲覧可能時間帯」、「アクセス可能回数」、及び、「装置ID」等についても同様に、アクセス許可条件105に加えて、又は、代えて、他の情報によってこれらの項目が管理されてもよい。
アクセス許可条件105には、ファイル100(例えば暗号化ファイル103)ごとに、例えばファイル管理装置2のオペレータ等によってこれらの項目の少なくとも1つの項目が条件として設定され、メモリ部25等に格納されてよい。また、アクセス許可条件105が設定されないファイル100が存在してもよい。
ファイル100にアクセス許可条件105が設定されない場合、演算処理部221は、図10に例示する演算処理部221Aとして構成され又は機能してもよい。図10に示すように、演算処理部221Aは、乱数値104及び初期化ベクトル102を入力とし、これらの値のXOR演算を行ない、演算結果をF2 107として出力するXOR演算部222Aをそなえてよい。このように、F2 107は、乱数値104(換言すればF1 106)と、初期化ベクトル102とのXOR演算によって取得されてもよい。なお、アクセス許可条件105が設定されない場合の構成例として図10に示す演算処理部221Aを説明したが、これに限定されるものではない。例えば、図6に示す演算処理部221において、アクセス許可条件105が設定されない場合、変換部223がオール“0”を出力するように構成又は機能させ、演算処理部221と演算処理部221Aとを共通化してもよい。
XOR演算部222又はXOR演算部222Aとしては、ハードウェアのXOR演算器や、ソフトウェアによるXOR演算機能等の、既知の種々の構成が用いられてよい。
また、演算処理部221は、F1 106及びF2 107を、ファイル管理情報212に登録してよい。F1 106及びF2 107の少なくとも1つの情報は、メモリ部25に格納されてもよい。
上述したアクセス許可条件105の設定処理や復号情報生成部22の処理は、暗号化ファイル103の配布前にアクセス許可条件105が変更される可能性を考慮して、例えば、アクセス装置4からファイル100の配布要求を受けたときに実施されてよい。或いは、アクセス許可条件105が変更される可能性が低い場合やアクセス許可条件105が設定されない場合には、これらの処理は、例えば、ファイル登録部21によるファイル100の登録の処理と並行して、又は、当該処理以降に実施されてもよい。
以上のように、復号情報生成部22は、暗号化されたファイルの復号に用いる復号情報から第1の情報及び第2の情報を演算する演算部の一例である。復号情報には、共通鍵101及び初期化ベクトル102の少なくとも一方が含まれてよい。第1及び第2の情報には、それぞれ、F1 106及びF2 107が含まれてよい。
情報送信部23は、アクセス装置4及びアクセス許可装置3に対して、それぞれ、ファイル100の閲覧に関する処理に用いる情報を送信する。なお、情報送信部23の処理は、アクセス装置4からファイル100の配布要求を受けた場合に実施されてよい。
例えば、情報送信部23は、ファイル管理情報212を参照して、アクセス装置4から閲覧を要求されたファイル100に関連付けられた各種情報を、アクセス装置4及びアクセス許可装置3へ送信する情報として取得してよい。これらの情報の少なくとも一部は、メモリ部25から取得されてよい。
一例として、情報送信部23は、アクセス装置4宛の情報として、暗号化ファイル103と、共通鍵101と、F1 106と、設定されている場合には条件種別110の該当エントリの情報とを取得し、これらの情報をアクセス装置4に送信してよい。
また、情報送信部23は、当該アクセス装置4に対するアクセス許可の判定を行なうアクセス許可装置3宛の情報として、F2 107と、アクセス許可条件105の該当エントリの情報とを取得し、これらの情報をアクセス許可装置3に送信してよい。
条件種別110の一例を図11に示す。条件種別110は、図11に示すように、例示的に、アクセス許可条件105と同様の項目を含んでよい。条件種別110は、アクセス許可条件105の更新に応じて適宜更新されてよい。
条件種別110には、暗号化ファイル103ごとに、各項目が当該暗号化ファイル103のアクセス許可の判定で用いられるか否か(例えば、有効か否か)を特定する情報が設定されてよい。図11の例では、有効を示す項目に“○”を設定し、無効を示す項目に“−”を設定している。
或いは、条件種別110には、暗号化ファイル103ごとに、アクセス許可条件105の各項目のうち、アクセス許可の判定に用いられる項目のみが設定されてもよい。なお、条件種別110を設けずに、情報送信部23は、アクセス許可条件105から、アクセス許可の判定に用いられる項目を示す情報をアクセス装置4に通知してもよい。
このように、情報送信部23は、第1の情報を、アクセス装置4に送信し、第2の情報を、アクセス許可装置3に送信する送信部の一例である。
なお、ファイル管理装置2では、暗号化ファイル103の配布済のアクセス装置4に係るアクセス許可条件105の追加、変更又は削除等の更新が発生する場合も想定される。
この場合、ファイル管理装置2は、乱数値104(F1 106)及び初期化ベクトル102の値を変更せずに、アクセス許可条件105を変更して、演算処理部221により新たなF2 107を生成してよい。そして、ファイル管理装置2は、新たに生成したF2 107をアクセス許可装置3に通知し、更新された条件種別110をアクセス装置4に通知してよい。
これにより、ユーザのアクセス許可条件105を変更する場合であっても、アクセス装置4に送信した暗号化ファイル103、共通鍵101、及び、F1 106等の情報を変更せずに、アクセス許可条件105を柔軟且つ容易に変更できる。
また、ファイル管理装置2は、ファイル100の閲覧を禁止又は停止する場合、当該ファイル100に対するF2 107を無効化してもよい。無効化の手法としては、F2 107を削除する、F2 107にオール“0”或いは誤った値を設定する、無効化を示すフラグを管理し当該フラグを無効に設定する等、種々の手法を用いることができる。無効化したF2 107の情報は、アクセス許可装置3に通知されてよい。
このように、ユーザがアクセス装置4や共通鍵101等を紛失したり、ユーザが離職したりした場合でも、ファイル管理装置2は、アクセス許可装置3においてF2 107を無効化すればよい。これにより、アクセス許可条件105が満たされる場合でも、アクセス許可装置3はF2 107が無効化されているため正しい初期化ベクトル102を生成できない。従って、暗号化ファイル103の復号が不可能になり、セキュリティリスク、例えば情報漏えいのリスクを低減できる。
〔1−3〕アクセス許可装置の構成例
図12は、アクセス許可装置3の機能構成例を示す図である。図12に示すように、アクセス許可装置3は、例示的に、アクセス装置通信部31、アクセス許可判定部32、及び、復号情報管理部33をそなえてよい。
なお、図示を省略するが、アクセス許可装置3は、アクセス許可装置3がそなえるメモリの記憶領域により実現されるメモリ部をそなえてもよい。メモリ部は、後述するF1 106、F2 107、暗号化ファイル名111、状態情報112、演算結果113、及び、管理情報331の少なくとも1つを記憶してよい。
アクセス装置通信部31は、アクセス装置4との間で通信を行なう。例えば、アクセス装置通信部31は、アクセス装置4からアクセス許可要求を受信し、アクセス許可判定部32に初期化ベクトル102を要求してよい。
また、アクセス装置通信部31は、アクセス許可判定部32から入力される初期化ベクトル102の演算結果113をアクセス許可要求の応答としてアクセス装置4に送信してよい。換言すれば、アクセス装置通信部31は、生成した初期化ベクトル102をアクセス装置4に通知する通知部の一例である。
なお、アクセス装置通信部31は、アクセス許可要求を受信すると、アクセス装置4に対して、アクセス装置4における復号対象の暗号化ファイル名111と、当該暗号化ファイルのF1 106と、アクセス装置4の状態情報112とを要求し取得してよい。或いは、これらの情報がアクセス許可要求に含まれていてもよい。
アクセス許可判定部32は、アクセス装置通信部31から入力される情報に基づき、アクセス装置4による暗号化ファイル103へのアクセス可否を判定する。
例えば、アクセス許可判定部32は、アクセス装置通信部31から入力される暗号化ファイル名111をF2 107の取得要求に含めて復号情報管理部33に送信してよい。また、アクセス許可判定部32は、復号情報管理部33からの応答に含まれるF2 107と、アクセス装置通信部31から入力されるF1 106及び状態情報112とに基づいて、演算結果113を演算してよい。そして、アクセス許可判定部32は、演算結果113を含む応答をアクセス装置通信部31に送信してよい。
上述のように、アクセス装置4がアクセス許可条件105を満たさない場合、アクセス許可装置3で生成される演算結果113を用いた暗号化ファイル103の復号は失敗する。従って、アクセス許可判定部32は、演算結果113が正しい初期化ベクトル102と一致するか否かにより、アクセス可否の判定結果を示すといえる。
アクセス許可判定部32は、図13に例示するように、XOR演算部321及び変換部322をそなえてよい。アクセス許可判定部32は、F1 106及びF2 107と、状態情報112と、をXOR演算部321に入力してよい。XOR演算部321は、入力されたこれらの値のXOR演算を行ない、XOR演算の演算結果113を出力してよい。
なお、アクセス許可判定部32は、状態情報112が「装置ID」や「ユーザID」等の情報であれば、変換部322において変換処理を行なわずに、状態情報112をそのままXOR演算部321に入力してよい。一方、状態情報112がその他の情報、例えば「位置情報」等である場合、アクセス許可判定部32は、変換部322により状態情報112をアクセス許可条件105の判定に適した形式に変換してから、XOR演算部321に入力してよい。
変換部322は、ファイル管理装置2から入力されるアクセス許可条件105に応じて、状態情報112を変換してよい。変換部322の処理の詳細は後述する。
なお、暗号化ファイル103にアクセス許可条件105が設定されていない場合、アクセス許可判定部32は、図14に例示するアクセス許可判定部32Aとして構成され又は機能してもよい。図14に示すように、アクセス許可判定部32Aは、F1 106及びF2 107を入力とし、これらの値のXOR演算を行ない、XOR演算の演算結果113を出力するXOR演算部321Aをそなえてよい。このように、演算結果113は、F1 106と、F2 107とのXOR演算によって取得されてもよい。なお、アクセス許可条件105が設定されない場合の構成例として図14に示すアクセス許可判定部32Aを説明したが、これに限定されるものではない。例えば、図13に示すアクセス許可判定部32において、アクセス許可条件105が設定されない場合、変換部322がオール“0”を出力するように構成又は機能させ、アクセス許可判定部32とアクセス許可判定部32Aとを共通化してもよい。
XOR演算部321又はXOR演算部321Aとしては、ハードウェアのXOR演算器や、ソフトウェアによるXOR演算機能等の、既知の種々の構成が用いられてよい。
なお、アクセス許可装置3は、ファイル管理装置2から初期化ベクトル102の情報を受信し、例えばメモリ部に記憶してもよい。この場合、アクセス許可判定部32は、生成した演算結果113と、記憶する初期化ベクトル102とを比較し、一致すれば演算結果113を応答する一方、一致しない場合は、アクセス拒否を応答してもよい。
また、アクセス許可装置3は、演算結果113を用いた復号結果(例えば、正常又は異常)をアクセス装置4から受信してもよい。この場合、アクセス許可判定部32は、同一の暗号化ファイル103又はF1 106について、以前に復号に成功したときの演算結果113とは異なる演算結果113が生成されたとき、アクセス拒否を応答してもよい。
さらに、アクセス許可装置3は、復号情報管理部33からF2 107が入力されない場合、例えば、F2 107が削除されている場合、アクセス拒否を応答してもよい。
上記いずれの手法によっても、復号に失敗するときにはアクセス拒否が通知されるため、アクセス装置4は、復号に失敗する演算結果113を用いて不要な復号を行なわずに済み、処理負荷の増加を抑制できる。
このように、アクセス許可判定部32は、暗号化ファイル103の復号可否を判定する判定部の一例である。また、アクセス許可判定部32は、アクセス装置4からF1 106を取得し、暗号化ファイル103の復号が可能な場合に、F1 106及びF2 107と、アクセス許可条件105とに基づき初期化ベクトル102を生成する生成部の一例である。暗号化ファイル103の復号が可能な場合としては、暗号化ファイル103を復号するときの状態情報112がアクセス許可条件105を満たす場合が挙げられる。
復号情報管理部33は、F2 107を管理する管理部の一例である。復号情報管理部33は、アクセス許可判定部32から入力される暗号化ファイル名111に対応する、F2 107をアクセス許可判定部32に応答する。復号情報管理部33は、例示的に、管理情報331をそなえてよい。
図15に管理情報331の一例を示す。図15に示すように、管理情報331は、「暗号化ファイル名」、及び、対応する「F2」を含んでよい。管理情報331は、ファイル管理装置2からF2 107の情報を受信すると、受信した情報を用いて管理情報331を更新してよい。
なお、ファイル管理装置2から受信するF2 107の情報としては、F2 107の登録、更新、及び、無効化等が挙げられる。
〔1−4〕アクセス装置の構成例
図16は、アクセス装置4の機能構成例を示す図である。図16に示すように、アクセス装置4は、例示的に、管理装置通信部41、状態情報取得部42、アクセス許可要求部43、復号部44、及び、表示部45をそなえてよい。
なお、図示を省略するが、アクセス装置4は、アクセス装置4がそなえるメモリの記憶領域により実現されるメモリ部をそなえてもよい。メモリ部は、後述するファイル100、共通鍵101、初期化ベクトル102、暗号化ファイル103、F1 106、条件種別110、及び、状態情報112の少なくとも1つを記憶してよい。
管理装置通信部41は、ファイル管理装置2との間で通信を行なう。例えば、管理装置通信部41は、ファイル管理装置2から暗号化ファイル103、共通鍵101、F1 106、及び、条件種別110を受信し、メモリ部に格納してよい。
状態情報取得部42は、暗号化ファイル103の閲覧を、例えばユーザから要求された場合、ファイル管理装置2から受信する条件種別110に応じた、アクセス装置4の状態情報112を取得し、取得した状態情報112をアクセス許可要求部43に出力する。
一例として、条件種別110が「位置情報」を示す場合、状態情報取得部42は、アクセス装置4がそなえる位置情報の取得装置、例えばGPS装置から、アクセス装置4の位置情報を状態情報112として取得してよい。
また、条件種別110が「閲覧可能時間帯」を示す場合、状態情報取得部42は、時刻情報の管理機能から、現在時刻の情報を状態情報112として取得してよい。なお、状態情報取得部42は、現在時刻の情報を、例えば、Network Time Protocol(NTP)サーバのような外部装置から取得してもよい。
さらに、条件種別110が「アクセス可能回数」を示す場合、状態情報取得部42は、同一の暗号化ファイル103へのアクセス回数、例えばアクセス可能要求を送信した回数又は暗号化ファイル103の復号を試行した回数を状態情報112として取得してよい。
また、条件種別110が「装置ID」又は「ユーザID」を示す場合、状態情報取得部42は、「装置ID」又は「ユーザID」を管理する機能から、これらのIDを状態情報112として取得してよい。
なお、条件種別110に複数の条件が含まれる場合、状態情報取得部42は、複数の条件を状態情報112として取得してよい。また、条件種別110を受信していない場合、例えば、アクセス許可条件105が設定されていない場合、状態情報取得部42は、アクセス許可条件105が設定されていない旨、又は、状態情報112を出力しない旨を、アクセス許可要求部43に通知してよい。
アクセス許可要求部43は、アクセス許可要求をアクセス許可装置3に送信し、アクセス許可装置3から受信する応答から初期化ベクトル102を取得する。
なお、アクセス許可要求部43は、アクセス許可要求の送信後、アクセス許可装置3からの要求に応じて、F1 106及び状態情報112と、暗号化ファイル名111とをアクセス許可装置3へ送信してもよい。或いは、アクセス許可要求部43は、これらの情報をアクセス許可要求に含めてもよい。
このように、アクセス許可要求部43は、暗号化ファイル103の復号を行なう場合、F1 106を、F2 107を有するアクセス許可装置3に通知する通知部の一例である。また、アクセス許可要求部43は、暗号化ファイル103の復号が可能な場合に、F1 106及びF2 107に基づき生成された初期化ベクトル102を、アクセス許可装置3から取得する取得部の一例である。
復号部44は、共通鍵101及びアクセス許可要求部43が取得した初期化ベクトル102を用いて暗号化ファイル103の復号を行ない、ファイル100を取得する。復号部44は、ファイル管理装置2の暗号化部211に対応する復号方式、例えば、ブロック暗号方式を採用してよい。ブロック暗号方式は、例えば、初期化ベクトルを用いる暗号化モードをサポートしてよい。
表示部45は、ファイル100の内容をユーザに表示する種々の装置である。一例として、表示部45は、ディスプレイ又はプリンタ等の一方又は双方であってよい。
なお、アクセス許可要求部43は、アクセス許可装置3から初期化ベクトル102を受信後、例えば、暗号化ファイル103を復号し復号後のファイル100を利用する間、一定時間ごとに、アクセス許可装置3に対して初期化ベクトル102を要求してもよい。アクセス許可装置3から受信した初期化ベクトル102が、過去に暗号化ファイル103の復号に成功した初期化ベクトル102とは異なる場合、アクセス装置4は、ファイル100の利用を停止、例えばファイル100を閉じてよい。
なお、一定時間ごとの要求は、アクセス許可要求とは区別して(例えば定期確認要求として)、アクセス許可装置3に送信されてよい。これにより、アクセス許可条件105に「アクセス可能回数」が含まれる場合、アクセス装置4からのアクセス回数に、定期確認要求の要求回数を含めずに済む。
このような定期的な確認により、暗号化ファイル103の復号成功後に、アクセス許可条件105を満たさなくなった場合、例えばファイル100を開いたまま閲覧が許可された位置から離れた場合等には、ファイル100へのアクセスが不可能になる。従って、情報漏えいのリスクを低減できる。
〔1−5〕アクセス許可条件の種別に応じた変換部の構成例
次に、ファイル管理装置2の演算処理部221がそなえる変換部223の構成例、及び、アクセス許可装置3のアクセス許可判定部32がそなえる変換部322の構成例を、アクセス許可条件の種別ごとに説明する。
〔1−5−1〕アクセス許可条件が位置情報の場合(第1の例)
(変換部223の構成例)
図17に例示するように、ファイル管理装置2の変換部223は、丸め演算部2231をそなえてよい。
例えば、アクセス許可条件105が「位置情報」を含む場合、「位置情報」は、ファイル100の閲覧を許可する位置、例えばアクセス許可装置3の緯度経度情報501であってよい。例えば、GPSからの情報で計算された緯度経度情報501は、“緯度:3541.1493(35度41.1493分)”、“経度:13945.3994(139度45.3994分)”等のように表現されてよい。
丸め演算部2231は、緯度経度情報501に対して丸め演算を行ない、ファイル100の閲覧を許可する位置を、当該位置を含むエリア(範囲)に拡張してよい。緯度経度情報501に対してどの程度の精度で丸め演算を行なうかは、例えばオペレータ等によって決定されてよい。丸め演算の精度によって、アクセス装置4にファイル100の閲覧を許可するエリアの広さが変化する。なお、丸め演算の精度は、ファイル100ごとに決められてもよい。
一例として、“緯度:3541.1493”、“経度:13945.3994”の緯度経度情報501に対する丸め演算部2231の処理を説明する。丸め演算部2231は、緯度経度情報501の緯度及び経度について、それぞれ、例えば分数部分の下2桁を四捨五入によって丸め、得られた緯度・経度の値を連結した連結値“3541151394540”を演算結果として取得する。取得した演算結果は、XOR演算部222(図6参照)に出力される。なお、丸め演算部2231は、四捨五入に代えて、切り捨て又は切り上げ等の丸め処理を行なってもよい。
XOR演算部222は、緯度経度情報501の丸め演算結果を用いて、以下のようにF2 107を演算してよい。
F2 = F1^IV^[緯度経度情報の丸め演算結果]
(変換部322の構成例)
図18に例示するように、アクセス許可判定部32の変換部322は、丸め演算部3221をそなえてよい。
例えば、アクセス装置4から入力される状態情報112が「位置情報」を含む場合、「位置情報」は、アクセス装置4の現在の位置の緯度経度情報601であってよい。
丸め演算部3221は、緯度経度情報601に対して丸め演算を行ない、ファイル100の閲覧を許可する位置を、当該位置を含むエリア(範囲)に拡張してよい。丸め演算部3221による丸め演算の精度や、丸め処理の方法(四捨五入等)は、ファイル管理装置2の丸め演算部2231と同様でよい。
丸め演算部3221によっても、丸め演算部2231と同様の手法により、緯度経度情報601をアクセス装置4の現在の位置を含むエリアの情報に変換できる。
XOR演算部321は、緯度経度情報601の丸め演算結果を用いて、以下のように演算結果113、例えば初期化ベクトル102を演算してよい。
IV = F1^F2^[緯度経度情報の丸め演算結果]
丸め演算部3221の演算結果が丸め演算部2231の演算結果と一致する場合、換言すれば、アクセス装置4のエリアがファイル100の閲覧を許可されたエリアと一致する場合、正しい初期化ベクトル102と一致する演算結果113が得られる。
〔1−5−2〕アクセス許可条件が位置情報の場合(第2の例)
(変換部223の構成例)
図19に例示するように、ファイル管理装置2の変換部223は、許可値生成部2232をそなえてよい。なお、図19においても、図17と同様に、変換部223から出力される情報は、乱数値104及び初期化ベクトル102とともにXOR演算部222に入力されてよい。以降の説明では、簡略化のため、演算処理部221等の図示を省略する。
アクセス許可条件105が「位置情報」を含む場合、「位置情報」は、基準点、例えばアクセス許可装置3の位置から、ファイル100の閲覧を許可する位置(上限位置)までの距離情報502であってよい。換言すれば、距離情報502は、ファイル100の閲覧を許可するエリアの半径と位置付けられてよい。
距離情報502、例えば“距離D”(D;distance)は、オペレータ等によって決定されてよい。“距離D”の値によって、アクセス装置4にファイル100の閲覧を許可するエリアの広さが変化する。なお、“距離D”の値は、ファイル100ごとに決められてもよい。
許可値生成部2232は、許可値、例えば“許可値A”を生成し、XOR演算部222に出力する。なお、変換部223は、距離情報502の有無に応じて“許可値A”の生成要否を決定してよく、“許可値A”の生成に“距離D”の値は用いられなくてもよい。
XOR演算部222は、“許可値A”を用いて、以下のようにF2 107を演算してよい。
F2 = F1^IV^[許可値A]
(変換部322の構成例)
図20に例示するように、アクセス許可判定部32の変換部322は、距離判定部3222をそなえてよい。なお、図20においても、図18と同様に、変換部322から出力される情報は、F1 106及びF2 107とともに、XOR演算部321に入力されてよい。以降の説明では、図の簡略化のため、XOR演算部321等の図示を省略する。
アクセス装置4から入力される状態情報112が「位置情報」を含む場合、「位置情報」は、基準点、例えばアクセス許可装置3からアクセス装置4の現在の位置までの距離情報602であってよい。
距離判定部3222は、距離情報602、例えば“距離d”と、ファイル管理装置2から受信したアクセス許可条件105の“距離D”とを比較し、“距離d”が“距離D”以下の場合に、“許可値A”を生成し、XOR演算部321に出力してよい。一方、距離判定部3222は、“距離d”が“距離D”よりも大きい場合に、“許可値A”とは異なる“拒否値R”を生成し、XOR演算部321に出力してよい。
なお、距離判定部3222の判定に用いる“距離D”及び“許可値A”は、それぞれ、許可値生成部2232の説明で用いた“距離D”及び“許可値A”と同一でよい。
このように、距離判定部3222は、現在の基準点とアクセス装置4との“距離d”が、事前にファイル管理装置2で定められた、アクセスを許可するときの基準点とアクセス装置4との“距離D”以下であるか否かを判定してよい。
XOR演算部321は、距離情報602の判定結果を用いて、以下のように演算結果113を演算してよい。
IV = F1^F2^[“許可値A”or“拒否値R”]
距離判定部3222の判定結果が許可値生成部2232の出力結果と一致する場合、換言すれば、アクセス装置4がファイル100の閲覧を許可された“距離D”内に位置する場合、正しい初期化ベクトル102と一致する演算結果113が得られる。
なお、状態情報112に含まれる「位置情報」が、図18に示す緯度経度情報601である場合に、距離判定部3222による処理が行なわれてもよい。この場合、変換部322は、基準点、例えばアクセス許可装置3の緯度経度情報と、アクセス装置4の緯度経度情報601とに基づき、両者の距離を“距離d”として算出し、距離判定部3222の判定に用いてもよい。
〔1−5−3〕アクセス許可条件が閲覧可能時間帯の場合
(変換部223の構成例)
図21に例示するように、ファイル管理装置2の変換部223は、ビット列生成部2233をそなえてよい。
アクセス許可条件105が閲覧可能時間帯503を含む場合、閲覧可能時間帯503は、例えば、1時間単位(0時〜23時)で指定されてよい。
ビット列生成部2233は、例えば、入力される閲覧可能時間帯503を、時刻を1時間単位でビット表現したビット列に変換し、XOR演算部222に出力してよい。
一例として、閲覧可能時間帯503が“12−18時”(例えば、12時00分〜17時59分)である場合、ビット列生成部2233は、下記のビット列を生成してよい。なお、下記のビット列では、最下位ビットが0時、最上位ビットが23時を表す計24ビットのうち、閲覧可能な時刻に“1”、閲覧不可能な時刻に“0”を設定する例を示す。
閲覧可能時刻“12−18時”を表すビット列:
“0b0000 0011 1111 0000 0000 0000”
XOR演算部222は、閲覧可能時刻を表すビット列を用いて、以下のようにF2 107を演算してよい。
F2 = F1^IV^[閲覧可能時刻を表すビット列]
なお、アクセス許可条件105の「閲覧可能時間帯」に、閲覧可能時刻を表すビット列が設定されてもよい。この場合、ビット列生成部2233は、変換部223に存在しなくてもよい。
また、閲覧可能時間帯503は、1時間単位ではなく、分単位、秒単位、或いは日単位等、又は、これらの組み合わせでもよい。
なお、ファイル管理装置2は、アクセス許可装置3に対するアクセス許可条件105の通知の際に、「閲覧可能時間帯」の情報として、上述したビット列を通知してよい。
(変換部322の構成例)
図22に例示するように、アクセス許可判定部32の変換部322は、ビット列生成部3223及びOR演算部3224をそなえてよい。
アクセス装置4から入力される状態情報112が現在時刻604を含む場合、ビット列生成部3223は、ファイル管理装置2のビット列生成部2233と同様の手法により、現在時刻604からビット列を生成し、OR演算部3224に出力してよい。
例えば、ビット列生成部3223は、ビット列生成部2233が1時間単位のビット列を生成する場合、現在時刻604を表す1時間単位のビット列を生成する。
一例として、現在時刻604が“15時”又は“10時”の場合、ビット列生成部3223は、それぞれ、下記のビット列を生成してよい。
現在時刻“15時”を表すビット列:
“0b0000 0000 1000 0000 0000 0000”
現在時刻“10時”を表すビット列:
“0b0000 0000 0000 0100 0000 0000”
OR演算部3224は、ビット列生成部3223から入力される現在時刻604を表すビット列と、閲覧可能時刻603を表すビット列とのOR演算を行ない、演算結果をXOR演算部321に出力してよい。なお、閲覧可能時刻603を表すビット列は、ファイル管理装置2から予め、例えばアクセス許可条件105の通知の際に取得してよい。
一例として、「閲覧可能時間帯」が“12−18時”であり、現在時刻604が“15時”である場合、OR演算結果は、下記のように閲覧可能時刻603のビット列と同一となる。
現在時刻“15時”の場合のOR演算結果:
“0b0000 0011 1111 0000 0000 0000”
一方、「閲覧可能時間帯」が“12−18時”であり、現在時刻604が“10時”である場合、OR演算結果は、下記のように閲覧可能時刻603のビット列とは異なる。
現在時刻“10時”の場合のOR演算結果:
“0b0000 0011 1111 0100 0000 0000”
XOR演算部321は、OR演算部3224のOR演算結果を用いて、以下のように演算結果113を演算してよい。
IV = F1^F2^[閲覧可能時刻のOR演算結果]
このように、現在時刻604が閲覧可能時刻603に含まれる場合(例えば、現在時刻604が“15時”)、OR演算結果は閲覧可能時刻603のビット列と同一になるため、正しい初期化ベクトル102と一致する演算結果113が得られる。
なお、現在時刻604として、アクセス装置4からビット列が入力される場合、ビット列生成部3223は変換部322に存在しなくてもよい。また、現在時刻604は、アクセス装置4ではなくアクセス許可装置3によって取得された時刻であってもよい。
〔1−5−4〕アクセス許可条件がアクセス可能回数の場合
(変換部223の構成例)
図23に例示するように、ファイル管理装置2の変換部223は、ビット列生成部2234をそなえてよい。
アクセス許可条件105がアクセス可能回数504を含む場合、アクセス可能回数504は、例えば、“5”回等の数値で指定されてよい。
ビット列生成部2234は、例えば、入力されるアクセス可能回数504をビット表現としたビット列を生成し、XOR演算部222に出力してよい。
一例として、ビット列生成部2234は、アクセス可能回数504、例えば“5”と同数のビットに“1”を設定したビット列を生成してよい。このビット列は、例えば、下記のように、0ビット目から4ビット目までの計5ビットに“1”が設定されてよい。
アクセス可能回数“5”を表すビット列:
“0b0001 1111”
XOR演算部222は、アクセス可能回数を表すビット列を用いて、以下のようにF2 107を演算してよい。
F2 = F1^IV^[アクセス可能回数を表すビット列]
なお、アクセス許可条件105の「アクセス可能回数」に、アクセス可能回数を表すビット列が設定されてもよい。この場合、ビット列生成部2234は、変換部223に存在しなくてもよい。
ファイル管理装置2は、アクセス許可装置3に対するアクセス許可条件105の通知の際に、「アクセス可能回数」の情報として、上述したビット列を通知してよい。
(変換部322の構成例)
図24に例示するように、アクセス許可判定部32の変換部322は、ビット列生成部3225及びOR演算部3226をそなえてよい。
アクセス装置4から入力される状態情報112がアクセス回数606を含む場合、ビット列生成部3225は、ファイル管理装置2のビット列生成部2234と同様の手法により、アクセス回数606からビット列を生成し、OR演算部3226に出力してよい。
一例として、ビット列生成部3225は、アクセス回数606、例えば“3”と同数のビットに“1”を設定したビット列を生成してよい。このビット列は、例えば、下記のように、0ビット目から2ビット目までの計3ビットに“1”が設定されてよい。
アクセス回数“3”を表すビット列:
“0b0000 0111”
OR演算部3226は、ビット列生成部3225から入力されるアクセス回数606を表すビット列と、アクセス可能回数605を表すビット列とのOR演算を行ない、演算結果をXOR演算部321に出力してよい。なお、アクセス可能回数605を表すビット列は、ファイル管理装置2から予め、例えばアクセス許可条件105の通知の際に取得してよい。
一例として、「アクセス可能回数」が“5”、アクセス回数606が“3”の場合、OR演算結果は、下記のようにアクセス可能回数605のビット列と同一になる。
アクセス回数“3”の場合のOR演算結果:
“0b0001 1111”
一方、「アクセス可能回数」が“5”、アクセス回数606が“7”の場合、OR演算結果は、下記のようにアクセス可能回数605のビット列とは異なる。
アクセス回数“7”の場合のOR演算結果:
“0b0111 1111”
XOR演算部321は、OR演算部3226のOR演算結果を用いて、以下のように演算結果113を演算してよい。
IV = F1^F2^[アクセス可能回数のOR演算結果]
このように、アクセス回数606がアクセス可能回数605以内の場合、OR演算結果はアクセス可能回数605と同一になるため、正しい初期化ベクトル102と一致する演算結果113が得られる。
なお、アクセス回数606として、アクセス装置4からビット列が入力される場合、ビット列生成部3225は変換部322に存在しなくてもよい。また、アクセス回数606は、アクセス装置4ではなくアクセス許可装置3により取得された回数であってもよい。例えば、アクセス許可装置3は、アクセス装置4からのアクセス許可要求の回数をファイル100ごとに計数してもよい。
また、上述した例では、変換部223がアクセス可能回数504をビット列に変換し、変換部322が、アクセス可能回数605及びアクセス回数606を表すビット列同士をOR演算するものとして説明したが、これに限定されるものではない。
例えば、ファイル管理装置2では、ビット列生成部2234が変換部223に存在せず、XOR演算部222は、アクセス可能回数504の数値“5”を用いてF2 107を生成してよい。
また、アクセス許可装置3では、アクセス可能回数605及びアクセス回数606が、“5”や“3”等の数値で指定されてもよい。この場合、ビット列生成部3225が変換部322に存在せず、変換部322には、OR演算部3226に代えて、値の大小を比較する比較部がそなえられてもよい。
比較部は、入力値のうちの最大の値を出力してよい。一例として、アクセス回数606がアクセス可能回数605以内の場合は、アクセス可能回数605の数値“5”が出力され、それ以外の場合はアクセス回数606の数値、例えば“7”が出力される。
このように、アクセス許可条件105が「アクセス許可回数」を含む場合、ビット列ではなく数値によって、F2 107及び演算結果113が生成されてもよい。
〔1−5−5〕アクセス許可条件が装置ID又はユーザIDの場合
アクセス許可条件105が「装置ID」又は「ユーザID」を含む場合、ファイル管理装置2の変換部223は、アクセスを許可するアクセス装置4又はユーザのIDをそのままXOR演算部222に出力してよい。
また、アクセス装置4から入力される状態情報112が「装置ID」又は「ユーザID」を含む場合、アクセス許可装置3の変換部322は、アクセス装置4又はユーザのIDをそのままXOR演算部321に出力してよい。
一例として、図25に示すように、ファイル管理装置2のXOR演算部222は、アクセス許可条件105に含まれる装置ID/ユーザID505を用いて、以下のようにF2 107を演算してよい。
F2 = F1^IV^[装置ID or ユーザID]
また、図26に例示するように、アクセス許可装置3のXOR演算部321は、アクセス装置4から入力される状態情報112に含まれる装置ID/ユーザID607を用いて、以下のように演算し演算結果113を取得してよい。
IV = F1^F2^[装置ID or ユーザID]
〔1−6〕動作例
次に、第1実施形態に係る情報処理システム1の動作例を説明する。
〔1−6−1〕ファイル登録処理
はじめに、ファイル管理装置2によるファイル100の登録処理の動作例を説明する。
図27に例示するように、ファイル管理装置2のファイル登録部21は、入力されるファイル100をファイル管理情報212に登録する(ステップS1)。なお、ファイル100の登録は、メモリ部25へのファイル100の格納を含んでもよい。
次いで、ファイル管理装置2は、乱数発生部24により、共通鍵101及び初期化ベクトル102をそれぞれ生成する(ステップS2及びS3)。
ファイル登録部21は、暗号化部211により、共通鍵101及び初期化ベクトル102を用いて、ファイル100の暗号化を行ない、暗号化ファイル103を取得する(ステップS4)。
ファイル登録部21は、暗号化ファイル103、共通鍵101、及び、初期化ベクトル102のセットを、ファイル管理情報212に登録して管理し(ステップS5)、処理が終了する。
〔1−6−2〕ファイル配布処理
次に、暗号化ファイル103の配布処理の動作例を説明する。
図28に例示するように、アクセス装置4は、ファイル100の配布要求をファイル管理装置2に送信する(ステップS11;図29の矢印(1)参照)。
ファイル管理装置2は、アクセス装置4からファイル100の配布要求を受信すると(ステップS12)、アクセス許可条件105を決定する(ステップS13)。また、ファイル管理装置2は、乱数発生部24により乱数値104を生成する(ステップS14)。
ファイル管理装置2の復号情報生成部22は、乱数値104及びアクセス許可条件105を用いて、初期化ベクトル102をF1 106及びF2 107に分解する(ステップS15;図29の矢印(2)参照)。
ファイル管理装置2の情報送信部23は、暗号化ファイル103、共通鍵101、F1 106、及び、条件種別110をアクセス装置4に送信する(ステップS16;図29の矢印(3)参照)。アクセス装置4は、受信した情報をメモリ部に保存する(ステップS17)。
また、情報送信部23は、F2 107及びアクセス許可条件105をアクセス許可装置3に送信する(ステップS18;図29の矢印(4)参照)。アクセス許可装置3は、受信した情報をメモリ部に保存する(ステップS19)。以上により、暗号化ファイル103の配布処理が終了する。
〔1−6−3〕ファイル閲覧処理
次に、ファイル100の閲覧処理の動作例を説明する。なお、ユーザは、事前にアクセス許可条件105を満たすような手順を踏んでから、アクセス装置4によるファイル100の閲覧処理を実行してよい。例えば、アクセス許可条件105が「位置情報」を含む場合、ユーザは、事前に、暗号化ファイル103が保存されたアクセス装置4を携帯して、復号場所(閲覧が許可された場所)に移動してよい。
図30に例示するように、アクセス装置4は、アクセス許可要求部43により、ファイル100のアクセス許可要求をアクセス許可装置3に送信する(ステップS21;図31の矢印(11)参照)。
アクセス許可装置3は、アクセス装置4にF1 106及び状態情報112を要求する(ステップS22;図31の矢印(12)参照)。アクセス装置4は、F1 106及び状態情報112をアクセス許可装置3に送信する(ステップS23;図31の矢印(13)参照)。
アクセス許可装置3は、復号情報管理部33により、管理情報331から暗号化ファイル名111に対応するF2 107を取得する(ステップS24)。
そして、アクセス許可装置3は、アクセス許可判定部32により、F1 106、F2 107、及び、状態情報112を用いて、初期化ベクトル102を演算し(ステップS25)、演算結果113をアクセス装置4に送信する(ステップS26)。
アクセス装置4は、復号部44により、共通鍵101及び初期化ベクトル102を用いて暗号化ファイル103を復号し(ステップS27)、復号したファイル100を表示部45に表示する(ステップS28)。以上により、ファイル100の閲覧処理が終了する。
ここで、ステップS25において、F2 107が管理情報331に存在し、且つ、状態情報112がアクセス許可条件105を満たす場合、演算結果113は正しい初期化ベクトル102と一致する(図31の符号(14)参照)。この場合、ステップS26で演算結果113(初期化ベクトル102)がアクセス装置4に送信され(図31の矢印(15)参照)、ステップS27でアクセス装置4は、暗号化ファイル103の復号に成功する(図31の符号(16)参照)。
一方、ステップS25において、F2 107が管理情報331に存在せず、又は、状態情報112がアクセス許可条件105を満たさない場合、演算結果113は正しい初期化ベクトル102と異なる(図32の符号(17)参照)。或いは、アクセス許可判定部32により、ファイル100へのアクセスが不可能と判断される。
この場合、ステップS26では、演算結果113、例えば誤った初期化ベクトル102、又は、アクセス不可の旨の判断結果がアクセス装置4に送信される(図32の矢印(18)参照)。従って、ステップS27では、アクセス装置4は、暗号化ファイル103の復号失敗、又は、復号不可能により、ファイル100の閲覧に失敗し(図31の符号(19)参照)、例えばエラーメッセージ等を表示部45に表示する。
〔1−6−4〕定期確認処理
次に、アクセス許可条件105を満たすか否かの定期確認処理の動作例を説明する。
図33に例示するように、アクセス装置4は、復号に成功した(例えば閲覧中の)ファイル100について、アクセス許可条件105の定期確認要求をアクセス許可装置3に送信する(ステップS31;図34の矢印(21)参照)。
アクセス許可装置3は、F1 106及び状態情報112をアクセス装置4に要求し(ステップS32:図34の矢印(22)参照)、アクセス装置4は、F1 106及び状態情報112を応答する(ステップS33:図34の矢印(23)参照)。
アクセス許可装置3は、管理情報331からF2 107を取得し(ステップS34)、F1 106、F2 107、及び、状態情報112から初期化ベクトル102を演算する(ステップS35;図34の符号(24)参照)。そして、アクセス許可装置3は、演算結果113をアクセス装置4に応答する(ステップS36;図34の矢印(25)参照)。
アクセス装置4は、受信した演算結果113と、以前に対象暗号化ファイル103の復号に成功した初期化ベクトル102とを比較し、一致するか否かを判定する(ステップS37;図34の符号(26)参照)。一致する場合(ステップS37でYes)、アクセス装置4は、一定時間待機し(ステップS38)、処理がステップS31に移行する。
一方、一致しない場合(ステップS37でNo)、アクセス装置4は、閲覧中のファイル100を閉じ(ステップS39)、処理が終了する。
〔1−6−5〕アクセス許可条件の更新処理
次に、アクセス許可条件105の更新処理の動作例を説明する。アクセス許可条件105を設定済のユーザ又はファイル100に対して、アクセス許可条件105の変更を行なう場合、例えば、ユーザ又はファイル100の管理者が、ファイル管理装置2にアクセス許可条件105の変更を要求してよい。この要求は、ファイル管理装置2のオペレータに対する要求であってもよい。
図35に例示するように、ファイル管理装置2は、アクセス許可条件105の変更を許可する場合、アクセス許可条件105を更新する(ステップS41)。また、ファイル管理装置2の復号情報生成部22は、F1 106及び初期化ベクトル102の値は変更せずに、F2 107の値を再計算する(ステップS42;図36の矢印(31)参照)。
一例として、「位置情報」に加えて、「閲覧可能時間帯」をアクセス許可条件105に加える場合、復号情報生成部22は、以下の演算を行なってよい。
F2 = F2^[閲覧可能時間帯]
次いで、ファイル管理装置2は、再計算したF2 107の更新をアクセス許可装置3に要求する(ステップS43;図36の矢印(32)参照)。アクセス許可装置3は、指示されたF2 107により管理情報331を更新する(ステップS44;図36の符号(33)参照)。以上により、アクセス許可条件105の更新処理が終了する。
なお、ファイル管理装置2は、F2 107の更新指示にF2 107の値を含めずに、更新されたアクセス許可条件105を含めてもよい。この場合、アクセス許可装置3は、アクセス許可条件105に基づいて管理情報331のF2 107を再計算し更新してもよい。また、ファイル管理装置2においてF2 107の再計算を行なわなくてもよい。
〔1−6−6〕アクセス許可条件の取消処理
次に、アクセス許可条件105の取消処理の動作例を説明する。アクセス許可条件105を設定済のユーザ又はファイル100に対して、アクセス許可条件105の取り消しを行なう場合、以下の処理を行なってよい。
図37に例示するように、ファイル管理装置2は、ファイル管理情報212からアクセス許可条件105の取り消し対象となる「F2」の値及び「F2送信先」の情報を検索する(ステップS51)。
次いで、ファイル管理装置2は、検索した「F2」を無効化して管理する(ステップS52;図38の符号(41)参照)。なお、F2 107の無効化では、上述のように、F2 107を削除してもよいし、アクセス許可条件105の再設定のために、例えばフラグ等によって無効を設定してもよい。ステップS52の処理は行なわれなくてもよい。
ファイル管理装置2は、検索した「F2送信先」のアクセス許可装置3に対して、該当するユーザ又はファイル100に対応するF2 107の値の無効化を指示する(ステップS53;図38の矢印(42)参照)。
アクセス許可装置3は、該当するF2 107を無効化する(ステップS54;図38の符号(43)参照)。これにより、アクセス許可装置3は、当該ファイル100の正しい初期化ベクトル102を計算できなくなり、ユーザはアクセス装置4による暗号化ファイル103の復号ができなくなる。
このように、アクセス許可条件105の削除を行なう場合、アクセス装置4に情報を送付したり、アクセス装置4上の情報を変更したりせずに済む。従って、アクセス装置4の盗難や紛失等に対しても対応が可能となり、情報漏えいのリスクを低減できる。
〔2〕第2実施形態
第1実施形態では、暗号化ファイル103の復号に用いる復号情報として、初期化ベクトル102をF1 106及びF2 107に分解し、F1 106をアクセス装置4に、F2 107をアクセス許可装置3に、それぞれ配布するものとして説明した。
第2実施形態では、暗号化ファイル103の復号に用いる復号情報として、共通鍵101をF1及びF2に分解し、F1 106をアクセス装置4に、F2 107をアクセス許可装置3に、それぞれ配布してもよい。
この場合、アクセス装置4には、暗号化ファイル103、初期化ベクトル102、共通鍵101のF1、及び、条件種別110が配布されてよい。また、アクセス許可装置3には、共通鍵101のF2及びアクセス許可条件105が配布されてよい。
第2実施形態において、第1実施形態と異なる点は、F1、F2、共通鍵101、及び、初期化ベクトル102の扱いとなる。例えば、ファイル管理装置2における共通鍵101のF1及びF2への分解(F2の生成)や、アクセス許可装置3における共通鍵101の生成の手法は、第1実施形態の説明において、「共通鍵101」と「初期化ベクトル102」とを置き換えればよい。
第2実施形態において、F1、F2、及び、共通鍵101は、それぞれ、以下のような関係となる。
F1 = 乱数値
F2 = 共通鍵^F1^アクセス許可条件
共通鍵 = F1^F2^アクセス許可条件
このように、第2実施形態によっても、第1実施形態と同様の効果を奏することができる。また、第2実施形態によれば、共通鍵101を分解するため、初期化ベクトル102を分解する第1実施形態とともに、分解対象の選択肢をユーザに提供できるため、セキュリティの向上を図ることができる。
〔3〕第3実施形態
第1及び第2実施形態では、アクセス許可装置3が、アクセス装置4からの要求に応じて、初期化ベクトル102又は共通鍵101を応答するものとしたが、これに限定されるものではない。
例えば、アクセス許可装置3は、アクセス装置4からのアクセス許可要求又は定期確認要求に応じて、対応するF2 107の値を応答してもよい。この場合、アクセス許可装置3の一部又は全部の機能は、アクセス装置4に存在してよい。例えば、アクセス許可判定部32がアクセス装置4に存在してもよく、アクセス装置4は、F1 106、状態情報112、及び、受信したF2 107を用いて、初期化ベクトル102又は共通鍵101を演算してもよい。
これにより、初期化ベクトル102又は共通鍵101はアクセス装置4内で演算されるため、アクセス許可装置3とアクセス装置4との間の伝送経路における、初期化ベクトル102又は共通鍵101の漏えい又は紛失のリスクを低減できる。
なお、アクセス許可装置3は、アクセス装置4がアクセス許可条件105を満たしているか否かを、アクセス装置4から取得する状態情報112から判定し、アクセス許可条件105を満たしている場合に、F2 107をアクセス装置4に送信してもよい。
〔4〕第4実施形態
アクセス許可装置3の一部又は全部の機能は、ファイル管理装置2に存在してもよく、或いは、ファイル管理装置2及びアクセス装置4に分散して存在してもよい。
これにより、ファイル管理装置2とアクセス許可装置3との間の伝送経路における、アクセス許可条件105や、F2 107の漏えい又は紛失のリスクを低減できる。
〔5〕第5実施形態
第1〜第4実施形態において、アクセス装置4に保存されているF1 106や、共通鍵101又は初期化ベクトル102は、アクセス装置4に搭載された暗号化モジュールによって、暗号化されてもよい。暗号化モジュールとしては、例えば、Trusted Platform Module(TPM)等が挙げられる。
また、アクセス許可装置3にも暗号化モジュールを搭載する場合、ファイル100の閲覧処理等におけるアクセス装置4とアクセス許可装置3との間の通信内容が、暗号化モジュールによって暗号化されてもよい。
このように、第5実施形態によれば、セキュリティリスクをさらに低減できる。
なお、暗号化方式として、公開鍵暗号方式も知られている。公開鍵暗号方式は、共通鍵暗号方式と比較して処理時間を要することが知られている。このため、公開鍵暗号方式は、ブロック暗号の共通鍵の暗号化や、電子署名等に使われることが多く、ファイル100自体の暗号化に用いられることは少ない。
そこで、アクセス装置4は、ファイル100と比較して情報量の少ないF1 106や、共通鍵101又は初期化ベクトル102を、公開鍵暗号方式によって暗号化する機能をそなえてもよい。
〔6〕ハードウェア構成例
次に、第1〜第5実施形態に係る情報処理システム1のハードウェア構成例について説明する。なお、ファイル管理装置2、アクセス許可装置3、及び、アクセス装置4は、いずれも同様のハードウェア構成をそなえてよい。従って、以下、ファイル管理装置2、アクセス許可装置3、及び、アクセス装置4の各々のハードウェア構成として、コンピュータ10を例に挙げて説明する。
コンピュータ10は、例示的に、Central Processing Unit(CPU)10a、メモリ10b、記憶部10c、Interface(IF)部10d、入出力部10e、及び読取部10fをそなえてよい。
CPU10aは、種々の制御や演算を行なうプロセッサの一例である。CPU10aは、コンピュータ10内の各ブロックとバスで相互に通信可能に接続されてよい。なお、プロセッサとしては、CPU10a等の演算処理装置に代えて、電子回路、例えばMicro Processing Unit(MPU)、Application Specific Integrated Circuit(ASIC)、Field Programmable Gate Array(FPGA)等の集積回路(IC)が用いられてもよい。
メモリ10bは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。メモリ10bとしては、例えばRAM等の揮発性メモリが挙げられる。メモリ10bは、ファイル管理装置2のメモリ部25、アクセス許可装置3及びアクセス装置4のメモリ部の一例である。
記憶部10cは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。記憶部10cとしては、例えばHDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、フラッシュメモリやROM等の不揮発性メモリ等の各種記憶装置が挙げられる。なお、ファイル管理装置2においては、記憶部10cは、複数の記憶装置をそなえるストレージ装置であってもよい。
例えば記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現する処理プログラム10hを格納してよい。処理プログラム10hは、第1〜第5実施形態に係るファイル管理装置2、アクセス許可装置3、又は、アクセス装置4の機能を実現するプログラムを含んでよい。
CPU10aは、例えば記憶部10cに格納された処理プログラム10hをメモリ10bに展開して実行することにより、コンピュータ10の機能を実現することができる。なお、コンピュータ10の機能の少なくとも一部がクラウド環境等により実現される場合、プログラム10hは、コンピュータ10及びクラウド環境の双方に提供されてもよいし、適宜分割されてそれぞれの装置に提供されてもよい。
IF部10dは、ファイル管理装置2、アクセス許可装置3、及び、アクセス装置4の各々の間のネットワークとの接続及び通信の制御等を行なう通信インタフェースの一例である。例えばIF部10dとしては、Local Area Network(LAN)、Universal Serial Bus(USB)、又はBLUETOOTH(登録商標)等に準拠したアダプタが挙げられる。
なお、処理プログラム10hは、ネットワーク等からIF部10dを介してコンピュータ10にダウンロードされてもよい。
入出力部10eは、マウス、キーボード、操作ボタン等の入力部、並びにディスプレイやプリンタ等の出力部(例えば図16の表示部45)の少なくとも一部を含んでよい。例えば入力部は、ファイル100の登録、アクセス許可条件105の更新、ファイル100の閲覧要求等の各種操作に用いられてもよい。出力部は、ファイル100やメッセージ(例えばエラーメッセージ)の表示等の、コンピュータ10における種々の操作に応じた表示に用いられてもよい。
読取部10fは、記録媒体10gに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10fは、コンピュータ読取可能な記録媒体10gを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10fとしては、例えばUSB等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10gには処理プログラム10hが格納されてもよい。
記録媒体10gとしては、例示的に、フレキシブルディスク、CD、DVD、ブルーレイディスク等の光ディスクや、USBメモリやSDカード等のフラッシュメモリ、等の非一時的な記録媒体が挙げられる。なお、CDとしては、例示的に、CD−ROM、CD−R、CD−RW等が挙げられる。また、DVDとしては、例示的に、DVD−ROM、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等が挙げられる。
上述したコンピュータ10のハードウェア構成は例示である。従って、コンピュータ10内でのハードウェアの増減(例えば任意のブロックの追加や省略)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは省略等は適宜行なわれてもよい。
〔7〕その他
上述した第1〜第5実施形態に係る技術は、以下のように変形、変更して実施することができる。
例えば、第1〜第5実施形態では、初期化ベクトル102又は共通鍵101を、F1及びF2の2つに分解するものとしたが、これに限定されるものではなく、3つ以上のF1〜Fx(xは3以上の整数)に分解してもよい。この場合、F1〜Fxは、2つ又は3つ以上の装置に分散して配布されてよい。
〔8〕付記
以上の第1〜第5実施形態に関し、更に以下の付記を開示する。
(付記1)
暗号化されたファイルの復号に用いる復号情報から第1の情報及び第2の情報を演算する演算部と、
前記第1の情報を、前記ファイルの復号を行なう端末に送信し、前記第2の情報を、前記ファイルの復号可否を判定する判定部に送信する送信部と、をそなえ、
前記第1の情報は、前記端末が前記ファイルの復号を行なう際に前記判定部に通知され、
前記復号情報は、前記ファイルの復号が可能な場合に、前記判定部により前記第1及び第2の情報に基づき生成され、前記端末による前記ファイルの復号に用いられる、
ことを特徴とする、情報処理装置。
(付記2)
前記演算部は、前記復号情報と、前記ファイルの復号を許可する条件とに基づいて、前記第1及び第2の情報を演算し、
前記復号情報は、前記条件が満たされる場合に、前記判定部により前記第1及び第2の情報と、前記条件とに基づき生成される、
ことを特徴とする、付記1記載の情報処理装置。
(付記3)
前記第1の情報は、乱数値であり、
前記第2の情報は、前記復号情報と、前記乱数値と、前記条件との排他的論理和演算の演算結果である、
ことを特徴とする、付記2記載の情報処理装置。
(付記4)
前記復号情報は、前記ファイルを復号するときの状態が前記条件を満たす場合に、前記第1及び第2の情報と、前記条件との排他的論理和演算によって前記判定部により生成される、
ことを特徴とする、付記3記載の情報処理装置。
(付記5)
前記条件は、前記ファイルの復号が可能な地理的な位置、時間帯、回数、端末、及び、ユーザの少なくとも1つに関する情報を含む、
ことを特徴とする、付記2〜4のいずれか1項記載の情報処理装置。
(付記6)
前記演算部は、前記条件が更新される場合、前記復号情報と、更新後の条件とに基づいて、前記第2の情報を更新し、
前記送信部は、前記第2の情報の更新を前記判定部に指示する、
ことを特徴とする、付記2〜5のいずれか1項記載の情報処理装置。
(付記7)
前記送信部は、前記ファイルの復号を拒否する場合、前記第2の情報の無効化を前記判定部に指示する、
ことを特徴とする、付記2〜6のいずれか1項記載の情報処理装置。
(付記8)
暗号化されたファイルの復号に用いる復号情報から第1の情報及び第2の情報を演算する情報処理装置と、
前記ファイルの復号を行なう端末と、
前記ファイルの復号可否を判定する判定部と、をそなえ、
前記情報処理装置は、前記第1の情報を、前記端末に送信し、前記第2の情報を、前記判定部に送信し、
前記端末は、前記ファイルの復号を行なう際に、前記第1の情報を前記判定部に通知し、
前記判定部は、前記ファイルの復号が可能な場合に、前記第1及び第2の情報に基づき前記復号情報を生成し、生成した復号情報を前記端末に通知する、
ことを特徴とする、情報処理システム。
(付記9)
前記情報処理装置は、前記復号情報と、前記ファイルの復号を許可する条件とに基づいて、前記第1及び第2の情報を演算し、
前記判定部は、前記条件が満たされる場合に、前記第1及び第2の情報と、前記条件とに基づき前記復号情報を生成する、
ことを特徴とする、付記8記載の情報処理システム。
(付記10)
前記第1の情報は、乱数値であり、
前記第2の情報は、前記復号情報と、前記乱数値と、前記条件との排他的論理和演算の演算結果である、
ことを特徴とする、付記9記載の情報処理システム。
(付記11)
前記判定部は、前記ファイルを復号するときの状態が前記条件を満たす場合に、前記第1及び第2の情報と、前記条件との排他的論理和演算によって前記復号情報を生成する、
ことを特徴とする、付記10記載の情報処理システム。
(付記12)
前記条件は、前記ファイルの復号が可能な地理的な位置、時間帯、回数、端末、及び、ユーザの少なくとも1つに関する情報を含む、
ことを特徴とする、付記9〜11のいずれか1項記載の情報処理システム。
(付記13)
前記情報処理装置は、前記条件が更新される場合、前記復号情報と、更新後の条件とに基づいて、前記第2の情報を更新し、前記第2の情報の更新を前記判定部に指示し、
前記判定部は、前記情報処理装置からの指示に応じて、前記第2の情報を更新する、
ことを特徴とする、付記9〜12のいずれか1項記載の情報処理システム。
(付記14)
前記情報処理装置は、前記ファイルの復号を拒否する場合、前記第2の情報の無効化を前記判定部に指示し、
前記判定部は、前記情報処理装置からの指示に応じて、前記第2の情報を無効化する、
ことを特徴とする、付記9〜13のいずれか1項記載の情報処理システム。
(付記15)
前記端末は、前記ファイルを復号し、復号後のファイルを利用する間、一定時間ごとに、前記第1の情報を前記判定部に通知し、
前記判定部は、前記ファイルの復号が可能な場合に、前記復号情報を生成し、生成した復号情報を前記端末に通知し、
前記端末は、前記判定部からの復号情報が、過去に前記ファイルの復号に成功した復号情報と異なる場合、前記復号後のファイルの利用を停止する、
ことを特徴とする、付記8〜14のいずれか1項記載の情報処理システム。
(付記16)
暗号化されたファイルの復号を行なう場合、前記ファイルの復号に用いる復号情報から演算された第1の情報及び第2の情報のうちの前記第1の情報を、前記第2の情報を有する判定部であって前記ファイルの復号可否を判定する前記判定部に通知する通知部と、
前記ファイルの復号が可能な場合に、前記第1及び第2の情報に基づき生成された前記復号情報を、前記判定部から取得する取得部と、
取得した前記復号情報を用いて前記ファイルの復号を行なう復号部と、をそなえる、
ことを特徴とする、端末。
(付記17)
暗号化されたファイルの復号に用いる復号情報から演算された第1の情報及び第2の情報のうちの前記第2の情報を管理する管理部と、
前記ファイルの復号を行なう端末から前記第1の情報を取得し、前記ファイルの復号が可能な場合に、前記第1及び第2の情報に基づき前記復号情報を生成する生成部と、
生成した前記復号情報を前記端末に通知する通知部と、をそなえる、
ことを特徴とする、判定装置。
(付記18)
コンピュータに、
暗号化されたファイルの復号に用いる復号情報から第1の情報及び第2の情報を演算し、
前記第1の情報を、前記ファイルの復号を行なう端末に送信し、前記第2の情報を、前記ファイルの復号可否を判定する判定部に送信する、
処理を実行させ、
前記第1の情報は、前記端末が前記ファイルの復号を行なう際に前記判定部に通知され、
前記復号情報は、前記ファイルの復号が可能な場合に、前記判定部により前記第1及び第2の情報に基づき生成され、前記端末による前記ファイルの復号に用いられる、
ことを特徴とする、処理プログラム。
(付記19)
情報処理装置が、
暗号化されたファイルの復号に用いる復号情報から第1の情報及び第2の情報を演算し、
前記第1の情報を、前記ファイルの復号を行なう端末に送信し、
前記第2の情報を、前記ファイルの復号可否を判定する判定部に送信し、
前記端末が、
前記ファイルの復号を行なう際に、前記第1の情報を前記判定部に通知し、
前記判定部が、
前記ファイルの復号が可能な場合に、前記第1及び第2の情報に基づき前記復号情報を生成し、生成した復号情報を前記端末に通知する、
ことを特徴とする、情報処理方法。