(57)【要約】【課題】ファイル復号時の情報漏洩等を抑制し、ファイルが暗号化されていることや暗号化付加情報等を該ファイルのアクセスを行うアプリケーションに対して隠蔽可能としている。            【解決手段】プロセッサで実行されるプログラムは、暗号化されたファイルに対して、アプリケーションからの読み出し要求で指定されたデータを読み出して復号し、復号したデータを前記アプリケーションに返す処理と、前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返す処理とを含む。【選択図】図１１
2020160985.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されたファイルに対して、アプリケーションから読み出し要求されたデータを読み出して復号し、復号したデータを前記アプリケーションに返す復号部と、
前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返すファイル情報取得部と、
を含む、ことを特徴とするファイル暗号化復号装置。
【請求項２】
前記アプリケーションからのファイル書き込み要求に対して、書き込み対象のデータを所定のサイズ毎に暗号化し、鍵情報及び暗号化前の元のファイルサイズ情報を含む暗号付加情報を、暗号化データとともに、ストレージに格納する暗号化部をさらに含む、ことを特徴とする請求項１に記載のファイル暗号化復号装置。
【請求項３】
前記ファイル情報取得部は、前記アプリケーションからの前記ファイル情報取得要求として、ファイルサイズ情報の取得要求を受けると、前記暗号付加情報に含まれる前記元のファイルサイズ情報を取得して、前記アプリケーションに返す、ことを特徴とする請求項２に記載のファイル暗号化復号装置。
【請求項４】
前記復号部は、前記暗号化されたファイルに対する前記読み出し要求に対してデータ読み出しの開始位置からデータを読み出して所定のサイズ毎に復号し、復号の都度、前記所定のサイズを前記開始位置に加算していき、加算結果がデータ読み出しの終了位置に達した場合、復号したデータを前記アプリケーションに返し、一方、前記加算結果が前記終了位置に達する前に、前記暗号化前の元のファイルサイズを超えた場合、復号したデータにファイル終端を付加して前記アプリケーションに返す、ことを特徴とする請求項２又は３に記載のファイル暗号化復号装置。
【請求項５】
前記読み出し要求に対してデータを復号して返す１つ又は複数のアプリケーションを記憶部に予め設定しておき、
前記読み出し要求に対して、前記アプリケーションが前記記憶部に設定されたアプリケーションであるか確認し、
前記記憶部に設定されたアプリケーションであることを確認すると、前記読み出し要求で指定されたファイルが暗号化されているか否かを確認し、
暗号化されている場合、前記復号部に対して、復号を指示する暗号化確認部を備えた、ことを特徴とする請求項２乃至４のいずれか１項に記載のファイル暗号化復号装置。
【請求項６】
前記所定のサイズは、前記ストレージの所定のセクタサイズに対応する、請求項２乃至５のいずれか１項に記載のファイル暗号化復号装置。
【請求項７】
請求項１乃至６のいずれか１項に記載のファイル暗号化復号装置と、
所定のサイズのセクタ単位に読み書きが行われるストレージと、
前記ストレージに対して、前記ファイル暗号化復号装置を介して、読み出し、書き込み、ファイル情報の取得の少なくとも１つを行う、少なくとも１つのアプリケーションと、
を備えた、ことを特徴とする情報処理装置。
【請求項８】
暗号化されたファイルに対して、アプリケーションから読み出し要求されたデータを読み出して復号し、復号したデータを前記アプリケーションに返し、
前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返す、ことを特徴とするファイル暗号化復号方法。
【請求項９】
前記アプリケーションからのファイル書き込み要求に対して、書き込み対象のデータを所定のサイズ毎に暗号化し、鍵情報及び暗号化前の元のファイルサイズ情報を含む暗号付加情報を、暗号化データとともに、ストレージに格納する、ことを特徴とする請求項８に記載のファイル暗号化復号方法。
【請求項１０】
暗号化されたファイルに対して、アプリケーションから読み出し要求されたデータを読み出して復号し、復号したデータを前記アプリケーションに返す処理と、
前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返す処理と、
をプロセッサに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はファイル暗号化装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
ウィルス（標的型攻撃）や巧妙な手口によって機密情報が盗まれ外部へ流出するセキュリティ事件が後を絶たない。例えば非特許文献１において、「第１位  標的型攻撃による被害」、「第３位  ビジネスメール詐欺による被害」が選出されていることからも、明白である。ウィルス対策や情報漏えい経路の穴塞ぎでは日々発生する新たな攻撃への対応漏れリスクがある。そのため、「情報は漏れる」ことを前提とした対策、つまり、情報（ファイル）そのものを暗号化して守るファイル暗号化の対策が重要となる。
【０００３】
特許文献１には、記憶手段にファイルを記憶する前に、ファイルの暗号化の可否を示す暗号化情報に基づいて、ファイル毎に暗号化の必要性を判断し、暗号化が必要と判断されたファイルを暗号化するファイル管理方法、装置が開示されている。
【０００４】
セクタの暗号化を行う装置として特許文献２には、以下の課題が記載されている。ディスク全体を対象として暗号化を行う場合、非暗号化状態から初期暗号化を行う際に長時間（数時間程度）要する。そして、このような問題を回避する方策としては実際に使用されている領域のみを暗号化するなど、上記のディスク暗号の利点を生かしつつ目的とする特定の条件にあった記憶媒体内のデータが使用する必要な領域のみを対象とすることが考えられるが、ディスク暗号はファイルシステムより下位のファイルの概念がない階層で処理をしているため、それまでのディスク暗号はこのようなファイルなどの記憶媒体内のデータに関連付いた領域を選択的に暗号化することができなかった。特許文献２では、この課題を解決するために、以下の情報処理装置が開示されている。情報処理装置は、ディスク管理階層上ファイルシステムより上位に設けられ、記憶媒体内のデータを読み出すためのデータ読み出しアクセスを行うデータアクセス手段と、前記ファイルシステムより下位に設けられ、前記データ読み出しアクセスによって前記ファイルシステムから発生するデバイスドライバに対するセクタ単位のデータ読み出しアクセス要求によって、読み出されたセクタのデータを捕捉する捕捉手段と、前記補足されたセクタのデータを暗号化するデータ変換手段と、前記暗号化されたセクタのデータを前記暗号化されたデータのセクタに書き込むデータ書き込み手段と、を備える。
【０００５】
特許文献３には、仮想ファイルシステムドライバで管理されるセクタ情報に基づいて、オペレーティングシステムに対してボリュームファイルを対象とする仮想セクタ単位のデータの読み書きを行うにあたり、仮想セクタのセクタデータに対して暗号化を施して書き込みを行うとともに、読み込み時には復号化を行う仮想ディスクドライバが開示されている。
【０００６】
ファイル暗号化の場合、ファイルがどこにあっても暗号化された状態を維持する必要がある。また、権限のある利用者を識別し、権限のある利用者はファイルがどこで暗号化されたかに関わらず復号を行うことが求められる。そのため、図１に模式的に例示するように、復号に必要な暗号鍵や権限情報（「暗号付加情報」という）などを、暗号化データとともにファイルに格納することが一般的である。図１の例では、暗号化されたファイル（暗号化後のファイル）２１には、ヘッダ、データ、フッタを暗号化した暗号化データ２２とともに暗号付加情報２３が格納されている。このため、暗号化前のファイル２０と比べて、暗号化されたファイル２１では、データが暗号化されているのみではなく、暗号付加情報２３により、ファイルサイズが増加する。また、ファイルフォーマットが異なることとなる。
【０００７】
ファイルは任意のアプリケーション（例えば、メモ帳、Microsoft WORD等の文書作成ソフト等）で利用される。このため、ファイルサイズやファイルフォーマットが変化すると、任意のアプリケーションは、ファイルが開けないことや、（任意のアプリケーションから見た）ごみデータが表示されるなど、当該ファイルに関して意図した動作ができなくなる。そのため、任意のアプリケーションからみて、ファイルが暗号化されていることや暗号付加情報が付加されていることを意識させないことが必要である。なお、Microsoft WORDは米国Microsoft Corporation.の米国およびその他の国における登録商標又は商標である。
【０００８】
任意のアプリケーションがファイルにアクセスする場合には、例えば以下の手法がとられる。
【０００９】
・事前に、暗号化ファイル全体を復号し、
・暗号付加情報を削除した暗号化前のファイルを作成して、任意のアプリケーションから復号したファイルを参照させる。
【００１０】
しかしながら、上記手法の場合、ファイルサイズが大きくなるに従い、データの復号にかかる時間が大きくなり、ファイルが開くまでの待ち時間が増加する。このため、利用者の利便性が低下する。
【００１１】
動画のストリーミング再生に代表されるような、データの一部を参照し動作可能なアプリケーションは特にこの影響が顕著である。これは、動画のストリーミング再生は、ファイルの全体ではなく一部だけを参照し動作するが、一部のデータを参照した場合でも、事前にファイル全体を参照し復号を行うことが必要なためである。データを暗号化しつつ、アプリケーションがアクセスしたデータを復号することについては、Windows OS（Operating System）に実装されているBitLockerなどのディスク暗号化技術が知られている。これは、ハードディスクのセクタ単位に暗号化を行い、アクセスしたデータだけ復号するため、オーバーヘッドが小さい。なお、Windows（Microsoft Windows Operating System）、BitLockerは米国Microsoft Corporation.の米国およびその他の国における登録商標又は商標である。
【００１２】
しかしながら、ディスク暗号化の場合、アプリケーションがデータを読み取る際には、復号される。このため、復号されたデータが漏れるために、ファイル暗号化の要件を満たさない。また、ファイルサイズが変わる場合に対応できないため、ファイル暗号化の特性には適さない状況である。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００７−０２６１０５号公報
【特許文献２】国際公開第２００８／０９０９２８号
【特許文献３】特開２００７−１４０７２７号公報
【非特許文献】
【００１４】
【非特許文献１】「情報セキュリティ１０大脅威２０１８  ２章  情報セキュリティ１０大脅威組織編  2018年４月、独立行政法人  情報処理推進機構セキュリティセンター  ［2019年3月10日検索日］、  インターネット（ＵＲＬ：https://www.ipa.go.jp/files/000066223.pdf）
【発明の概要】
【発明が解決しようとする課題】
【００１５】
以下に関連技術の分析を与える。
【００１６】
ファイル全体を暗号化するファイル暗号化では、図２に例示するように、アプリケーション１０が要求したデータの大小にかかわらず、暗号化されたファイル２１の全体を復号した後、アプリケーション１０は該当する復号済みデータ２４を参照する。この場合、ファイル全体が平文とされ（図２のファイル２０）、前述したように、情報漏洩等が問題となる。また、暗号化されたファイル２１には、暗号付加情報が付加されており、アプリケーション１０では、ファイルサイズが変わる場合に対応できないという問題もある。
【００１７】
特許文献３等では、該当端末から他端末へファイルが持ち出されると、復号されてしまう。また、暗号化前後でセクタに格納されるデータ内容が異なる可能性がある。
【００１８】
アプリケーションで読み込むデータだけを復号することで復号時の情報漏洩等を抑制し、任意のアプリケーションからはファイルが暗号化されていることや暗号付加情報が付加されていることを意識させない（これらの情報をアプリケーションから隠蔽可能とする）ファイル暗号化・復号手法の実現が望まれる。
【００１９】
本発明は、上記事情等を鑑みて創案されたものであって、その目的の一つは、暗号化ファイルの復号時の情報漏洩等を抑制し、ファイルが暗号化されていることや暗号付加情報が付加されていること等を、該ファイルのアクセスを行うアプリケーションに対して隠蔽可能とするファイル暗号化復号装置、方法、プログラムを提供することにある。
【課題を解決するための手段】
【００２０】
本発明のいくつかの形態の一つによれば、暗号化されたファイルに対して、アプリケーションから読み出し要求されたデータを読み出して復号し、復号したデータを前記アプリケーションに返す復号部と、前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返すファイル情報取得部とを備えたファイル暗号化復号装置が提供される。
【００２１】
本発明の別の形態によれば、暗号化されたファイルに対して、アプリケーションから読み出し要求されたデータを読み出して復号し、復号したデータを前記アプリケーションに返し、
前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返すファイル暗号化復号方法が提供される。
【００２２】
本発明のさらに別の形態によれば、暗号化されたファイルに対して、アプリケーションから読み出し要求されたデータを読み出して復号し、復号したデータを前記アプリケーションに返す処理と、前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返す処理とをプロセッサに実行させるプログラムが提供される。
【００２３】
本発明のまたさらに別の形態によれば、上記プログラムを記憶した非一時的なコンピュータ可読媒体（non-transitory computer readable medium）（例えばＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory)、EEPROM(Electrically Erasable and Programmable ROM））等の半導体ストレージや、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc等）が提供される。
【発明の効果】
【００２４】
本発明によれば、ファイル復号時の情報漏洩等を抑制し、ファイルが暗号化されていることや暗号付加情報が付加されていること等を、該ファイルのアクセスを行うアプリケーションに対して隠蔽可能としている（すなわち、アプリケーションにファイルが暗号化されていることや暗号付加情報が付加されていることを意識させない）。
【図面の簡単な説明】
【００２５】
【図１】関連技術のファイル暗号化を説明する図である。
【図２】関連技術における暗号化されたファイルの復号を説明する図である。
【図３】本発明の例示的な実施形態を説明する図である。
【図４】本発明の例示的な実施形態の装置構成の一例を例示する図である。
【図５】本発明の例示的な実施形態におけるファイルの暗号化の動作の一例を説明する流れ図である。
【図６】本発明の例示的な実施形態におけるファイルオープン検知後の動作を説明する流れ図である。
【図７】本発明の例示的な実施形態におけるファイル読み込み動作の一例を説明する流れ図である。
【図８】本発明の例示的な実施形態におけるファイルサイズ取得動作の一例を説明する流れ図である。
【図９】本発明の例示的な実施形態におけるファイル書き込み動作の一例を説明する流れ図である。
【図１０】本発明の例示的な実施形態におけるコンピュータ実装例を説明する流れ図である。
【図１１】本発明の例示的な実施形態におけるプログラムモジュールを説明する流れ図である。
【発明を実施するための形態】
【００２６】
本発明の例示的な実施形態について説明する。例示的な実施形態では、図３に例示するように、ファイル暗号化復号装置１００は、ＨＤＤ（Hard Disk Drive）装置３０のセクタ単位にファイルの暗号化を行う。なお、セクタは、ＨＤＤ装置等のディスク装置のデータ書き込みの最小単位（例えば５１２バイト（Bytes））である。なお、ＨＤＤ装置の大容量化に伴い、４Ｋ（Kilo）バイトセクタ（１セクタ：４０９６バイト）の製品もある。アプリケーション１０は、ＨＤＤ装置３０のセクタ単位にデータを読み込む。アプリケーション１０からの読み出し（ＲＥＡＤ）要求に対して、ファイル暗号化復号装置１００は、ＨＤＤ装置３０において、読み出し要求されたデータ（セクタ）だけを復号し、アプリケーション１０に読み出し要求の応答として返す（アプリケーション１０で読み出されないデータ（セクタ）は復号しない）。
【００２７】
また、本発明の例示的な実施形態では、ファイル暗号化復号装置１００は、図１に示したように、暗号付加情報によって、ファイルサイズが増えた場合においても、ＨＤＤ装置３０において、１つのセクタに格納されるデータの内容は暗号化前後で変化しないようにする考慮を行う。例えば暗号化されたファイルのｎ番目のセクタには、暗号化前のファイルのｎ番目のセクタを暗号化したものが保存される。これは、セクタに格納されるデータの内容が暗号化前と後で変化した場合、アプリケーション１０がアクセスしたセクタのデータを復号した結果、アプリケーション１０が本来アクセスしたいデータが含まれない場合があり得ることになり、アプリケーションが意図した動作を行えない可能性があるためである。
【００２８】
本発明の例示的な実施形態では、端末１上で動作するアプリケーション１０（ＨＤＤ装置３０のファイルにアクセスする任意のアプリケーション）からは、
・ファイルが暗号化されていることや、
・暗号付加情報が付加されていること、
を意識させない。すなわち、ファイル暗号化復号装置１００では、これらの情報を、アプリケーション１０に対して隠蔽している。
【００２９】
アプリケーション１０からファイルの属性情報等のファイル情報取得要求が発行された場合、ファイル暗号化復号装置１００は、例えばＡＰＩ（Application Programming Interface）のフック技術等を用いて、ＨＤＤ装置３０に暗号化されて格納されているファイルのファイル情報ではなく、暗号化前のファイル情報を応答としてアプリケーション１０に返す。なお、ＡＰＩフックは、モジュールの実行可能領域のインポートアドレスエントリ（Import Address Table）を書き替えることで、ライブラリ関数やＡＰＩ関数の呼び出しを別の関数呼び出しに差し替える。
【００３０】
また、本発明の例示的な実施形態によれば、ファイル暗号化復号装置１００は、アプリケーション１０毎にファイルの復号要否を判断することで、アプリケーションが動作する端末外にファイルを持ち出す場合においても、ファイルを復号せずに暗号化したまま持ち出すことが可能となる。
【００３１】
上記したように、本発明の例示的な実施形態によれば、ファイルの情報漏洩等を抑制し、ファイルが暗号化されていることや暗号化ファイルに暗号付加情報が付加されていることを、当該ファイルのアクセスを行うアプリケーションに対して、隠蔽可能としている（アプリケーションにファイルが暗号化されていることや、暗号付加情報が付加されていることを意識させない）。以下、図面を参照して、本発明の例示的な実施形態についてさらに詳細に説明する。
【００３２】
図４は、本発明の例示的な実施形態の装置構成を模式的に示す図である。図４を参照すると、ファイル暗号化復号装置１００は、ファイル情報取得部１０１と、暗号化部１０２と、暗号付加情報格納部１０３と、ファイルオープン検知部１０４と、復号アプリケーション確認部１０５と、暗号化確認部１０６と、ファイル読込検知部１０７と、復号部１０８と、ファイル情報取得検知部１０９と、暗号付加情報取得部１１０と、ファイル書込検知部１１１を備えている。
【００３３】
図４を参照すると、ファイル暗号化復号装置１００は大きく２つの装置に分類することができる。
【００３４】
１つは、ファイルを暗号化する処理に関するものであり、ファイル情報取得部１０１、暗号化部１０２、暗号付加情報格納部１０３からなる。
【００３５】
他の１つは、任意のアプリケーションでの暗号化ファイルに対する処理に関するものであり、ファイルオープン検知部１０４、復号アプリケーション確認部１０５、暗号化確認部１０６、ファイル読込検知部１０７、復号部１０８、ファイル情報取得検知部１０９、暗号付加情報取得部１１０、ファイル書込検知部１１１からなる。
【００３６】
暗号化は、ユーザの操作または予め設定された実行スケジュールをトリガに動作する。暗号化が開始すると、ファイル情報取得部１０１は暗号化するファイルのファイルサイズを取得する。
【００３７】
ファイル情報取得部１０１は、アプリケーション１０からの所定のファイル情報取得要求（例えばファイルサイズ取得要求）に対して、暗号化されたファイルの暗号化前のファイル情報（例えばファイルサイズ）を応答としてアプリケーション１０に返す。なお、ファイル情報（属性情報）として、暗号化してデータのセキュリティを保護する暗号化属性等を含む場合、アプリケーション１０からのファイル情報（属性）の取得要求に対して、暗号化前のファイルの暗号化属性情報（暗号化されていない）を返すようにしてもよい。
【００３８】
暗号化部１０２は、ファイルデータの暗号化を行う。
【００３９】
本実施形態において、暗号化は、アプリケーション１０が動作する端末１に接続されたＨＤＤ装置３０のセクタサイズではなく、５１２バイト（最小セクタサイズ）毎に行う。
【００４０】
これは、ＨＤＤ装置３０のセクタサイズには５１２バイトや４Ｋバイトなど複数存在しており、暗号化したファイルは暗号化を行った端末１の環境以外でもファイルを復号する必要があるためである。本実施形態によれば、セクタサイズ４Ｋバイトの環境で暗号化したファイルを、セクタサイズが５１２バイトの環境でも復号することが可能となる。
【００４１】
暗号付加情報格納部１０３は、暗号化したデータに、
・暗号化に使用した鍵情報、
・元のファイルサイズ（暗号化前のファイルのファイルサイズ）
等を含む任意の暗号化情報（図１の２３）を付加し、ファイルとして保存する。なお、暗号付加情報は、例えば、図１に例示したように、暗号化したデータの末尾に付与するようにしてもよい。以上で、暗号化ファイルが作成される。
【００４２】
暗号化されてＨＤＤ装置３０に記憶されているファイルの復号処理は、任意のアプリケーション１０がファイル（暗号化ファイル又は未暗号化ファイル）にアクセスしたことをトリガに動作する。
【００４３】
ファイルオープン検知部１０４は、アプリケーション１０がファイルをオープンしたことを検知する。ファイルのオープンの検知は、ファイルシステムドライバなどでCreateFile命令またはこれに類する命令を検知することで行うようにしてもよい。この場合、ＡＰＩフック等の技術を用いてアプリケーション１０に介入して検知するようにしてもよい。
【００４４】
ファイルオープン検知部１０４でファイルオープンの検知後、復号アプリケーション確認部１０５に対して、データを復号して返すアプリケーションであるか確認実行の命令（コマンド）を発行する。
【００４５】
復号アプリケーション確認部１０５は、ファイルにアクセスしたアプリケーション１０が、暗号化されたファイルのデータを復号して返すアプリケーション１０であるか否かを確認する。なお、読み出し要求された暗号化されたファイルに関して、ファイル暗号化復号装置１００がデータの復号を行って返却するアプリケーション１０については、例えば端末１の利用者が、ファイル暗号化復号装置１００に対して、該端末１の画面から予め設定しておくようにしてもよい。暗号化されたファイルのデータを復号して返すアプリケーション１０について、例えば、アプリケーション名、パス名、ＩＤ等を、ファイル暗号化復号装置１００内の記憶部に事前に設定登録しておく。
【００４６】
復号アプリケーション確認部１０５は、ファイルに読み出し要求を行ったアプリケーション１０が、復号対象のアプリケーションであった場合、暗号化確認部１０６に対して暗号化確認実行の命令（コマンド）を発行する。
【００４７】
暗号化確認部１０６は、復号アプリケーション確認部１０５からの命令を受け、アクセスが行われたファイルが暗号化されているか否かを確認する。
【００４８】
ファイルが暗号化されているか否かの確認は、例えば、
・ファイルのフォーマットから確認する、
・暗号付加情報から確認する
等で行うようにしてもよい。
【００４９】
暗号化確認部１０６は、ファイルが暗号化されていることを確認した場合、以降、このファイルに対して、例えば、
・ファイル読込検知部１０７が、当該復号対象のアプリケーション１０によるファイルの読込みを検知した場合、
・ファイル情報取得検知部１０９が、当該アプリケーション１０によるファイル情報の取得を検知した場合、
・ファイル書込検知部１１１が、当該アプリケーション１０によるファイル書き込みを検知した場合に、
暗号化されたファイルへのアクセスであると判断して動作する。
【００５０】
ファイル読込検知部１０７は、当該アプリケーション１０がファイルを読み込んだことを検知する。この検知は、ファイルシステムドライバ等でReadFile命令またはこれに類する命令を検知することで行うようにしてもよい。例えば、ＡＰＩフック等の技術を用いてアプリケーション１０に介入して検知するようにしてもよい。
【００５１】
暗号化確認部１０６で、暗号化されたファイルへのアクセスであると判断されていた場合は、検知後、復号部１０８に対して、復号の実行の命令（指示）を発行する。
【００５２】
なお、復号部１０８では、アプリケーション１０が読み出し要求（例えばReadFile命令）で読み込もうとしているデータのオフセットが、暗号化前のファイルサイズを超えた場合には、それ以上はデータを読み込まず、ファイル終端（End Of File：EOF）をアプリケーション１０に返却する。
【００５３】
復号部１０８は、暗号付加情報取得部１１０で取得した鍵情報を使って、５１２バイト毎にデータを復号する。
【００５４】
ファイル情報取得検知部１０９は、アプリケーション１０が例えばファイル属性として、ファイルサイズを取得したことを検知する。この検知は、ＡＰＩフック等の技術を用いてアプリケーション１０に介入し、例えばGetFileSize命令またはこれに類する命令を検知するようにしてもよい。
【００５５】
ファイル情報取得検知部１０９は、暗号化確認部１０６で暗号化されたファイルへのアクセスであると判断されていた場合は、その検知後、暗号付加情報取得部１１０で取得した暗号化前のファイルサイズ情報をアプリケーション１０に返却する。
【００５６】
暗号付加情報取得部１１０は、暗号化ファイルに付与された、
・暗号化に使用した鍵情報、
・元ファイルサイズ
等の情報を取得する。
【００５７】
ファイル書込検知部１１１は、アプリケーション１０がファイルを書き込んだことを検知する。この検知は、ファイルシステムドライバなどで、例えばWriteFile命令またはこれに類する命令を検知するようにしてもよい。あるいは、例えばＡＰＩフック等の技術を用いてアプリケーション１０に介入して検知する方法を用いてもよい。
【００５８】
暗号化確認部１０６で暗号化されたファイルへのアクセス（書き込みアクセス）であると判断された場合に、ファイル情報取得部１０１、暗号化部１０２、暗号付加情報格納部１０３に指示して、暗号化データをファイルに書き込む。
【００５９】
図５は、本発明の例示的な実施形態において、ファイル暗号化復号装置１００でファイルを暗号化する処理手順の一例を説明する流れ図である。
【００６０】
ファイル情報取得部１０１は、暗号化前のファイルのファイルサイズを取得する（ステップＳ１）。
【００６１】
暗号化部１０２は、ファイルのデータを５１２バイト単位に暗号化する。これをファイル終端（ＥＯＦ）まで繰り返すことで、ファイル全体を暗号化する（ステップＳ２、Ｓ３）。
【００６２】
暗号付加情報格納部１０３は、暗号化に使用した鍵情報と、暗号化前のファイルのファイルサイズとをファイル末尾に付与する（ステップＳ４）。すなわち、暗号付加情報格納部１０３は、ステップＳ１で取得したファイルサイズの情報、および、ステップＳ２で暗号化に利用した鍵の情報をファイル末尾に付与する。
【００６３】
図６は、本発明の例示的な実施形態におけるファイルオープンの処理手順の一例を説明する図である。アプリケーション１０がファイルをオープンする命令（例えばe命令）を実行した場合、ファイルオープン検知部１０４でアプリケーション１０がファイルオープンしたことを検知し（ステップＳ１１）、以下の処理が行われる。
【００６４】
復号アプリケーション確認部１０５は、復号を行うべきアプリケーションとして予め設定されたアプリケーション１０からのファイルアクセス要求であるか否かを確認する（ステップＳ１２）。
【００６５】
復号アプリケーション確認部１０５で復号を行うべきアプリケーション１０と判断されなかった場合（ステップＳ１２のＮｏ分岐）、暗号化確認部１０６による確認処理（ステップＳ１３）は行わない。
【００６６】
復号アプリケーション確認部１０５で復号を行うべきアプリケーション１０であることが確認された場合（ステップＳ１２のＹｅｓ分岐）、暗号化確認部１０６は、ファイルが暗号化されているか否か確認する（ステップＳ１３）。ここで、暗号化されていないと判断された場合（ステップＳ１３のＮｏ分岐）、ステップＳ１４の処理は行わない。
【００６７】
ステップＳ１４において、暗号化確認部１０６は、暗号化されたファイルであることを不図示の記憶部に記憶する。また、暗号化確認部１０６は、当該ファイルの暗号化状態を毎回確認しないで済むように、ステップＳ１５以降で、復号処理が必要であるか否かを不図示の記憶部に記録するようにしてもよい。
【００６８】
アプリケーション１０からの処理要求に応じて分岐する（ステップＳ１５）。
【００６９】
ステップＳ１５において、アプリケーション１０からの処理要求がファイルの読み込みの場合、図７の結合子１に分岐する。図７において、ファイル読込検知部１０７において、アプリケーション１０がファイルの読み込み要求を発行したことを検知すると（ステップＳ２１）、以下の処理が実行される。
【００７０】
暗号化確認部１０６は、ステップＳ１４で記録した情報を参照して、ファイルが暗号化されているかを確認する（ステップＳ２２）。
【００７１】
ファイルが暗号化されている場合（ステップＳ２２のＹｅｓ分岐）、暗号付加情報取得部１１０は、暗号付加情報を取得する（暗号化に使用した鍵情報、暗号前の（元の）ファイルのファイルサイズ）（ステップＳ２３）。
【００７２】
読み出しデータのオフセットが元のファイルサイズ（暗号化前のファイルサイズ）の範囲内であるか否か判定する（ステップＳ２４）。読み出しデータのオフセットの初期値は、アプリケーション１０からの読み出し要求で指定されてもよい。このオフセットの初期値は、読み出しを開示するファイルの位置（読み出し範囲の開始位置）に対応する（開始位置は論理アドレスであってもよい）。例えばアプリケーション１０が文書の閲覧、編集（作成）、変換等を行うソフトウェアの場合、アプリケーション１０では、読み出し対象の頁や頁内の一部に対応する読み出し範囲の開始位置（論理アドレス）を、読み出しデータの開始位置（オフセットの初期値）として、読み出し要求の引数に設定してもよい。読み出し範囲の終了位置は、読み出し要求で指定される読み出しバイト数を、開始位置に加算した値とされる。
【００７３】
読み出しデータのオフセットは、図７のステップＳ２４〜２６のループで、復号されたデータ（セクタ）のサイズである５１２バイト単位に加算されていく。なお、ファイル暗号化復号装置１００を、ＨＤＤ装置３０（図３参照）のコントローラ等に実装し、復号部１０８では、アプリケーション１０からのＲＥＡＤ要求で指定されたデータの論理アドレスを、物理的なセクタ番号（セクタ番号）に変換してセクタ単位に読み出しを行うようにしてもよい。
【００７４】
読み出しデータが元のファイルサイズ（暗号化前のファイルのファイルサイズ）の範囲内である場合（ステップＳ２４のＹｅｓ分岐）、復号部１０８は、暗号化に使用した鍵情報を用いて、アプリケーション１０がアクセス対象のデータを５１２バイト毎に復号する（ステップＳ２５）。なお、暗号化部１０２と復号部１０８は、暗号化、復号を同じ鍵を使って行う共通鍵暗号方式を用いてもよい。
【００７５】
復号部１０８において、復号すべきデータがまだある場合（ステップＳ２６のＹｅｓ分岐）、ステップＳ２４に戻る。すなわち、ステップＳ２５でデータを復号し５１２バイト加算した結果、読み出しデータのオフセットが、暗号化されたファイルから読み出すデータの読み出し範囲の終了位置未満の場合、ステップＳ２４に戻る。
【００７６】
復号部１０８において復号すべきデータがない場合（ステップＳ２６のＮｏ分岐）、すなわち、ステップＳ２５でデータを復号し５１２バイト加算した結果、読み出しデータのオフセットが、暗号化されたファイルから読み出すデータの読み出し範囲の終了位置以上の場合、復号部１０８は、復号したデータをアクセス要求元のアプリケーション１０へ返却する。
【００７７】
ステップＳ２４の判定の結果、読み出しデータのオフセットが暗号化前ファイルサイズを超えた場合（ステップＳ２４のＮｏ分岐）、復号部１０８は、ファイル終端（ＥＯＦ）を付加し（ステップＳ２８）、復号したデータをアクセス要求元のアプリケーション１０へ返却する（ステップＳ２７）。なお、読み出しデータのオフセットを、読み出し対象のデータの論理アドレスとした場合、ステップＳ２４において、読み出したセクタのデータを復号し、５１２バイト加算した読み出しデータのオフセットが読み出し範囲の終了位置に対応する論理アドレスに達しないため、ステップＳ２４に戻ったが、読み出しデータのオフセットが、ファイルの先頭から元のファイルサイズ分加算した論理アドレスよりも大である場合、復号部１０８では、ステップＳ２８に分岐して、ファイル終端（ＥＯＦ）を付加するようにしてもよい。
【００７８】
ステップＳ２２において、ファイルが暗号化されていない場合（ステップＳ２２のＮｏ分岐）、読み出したデータをそのままアプリケーション１０に返却する（ステップＳ２９。
【００７９】
図７において、ステップＳ２７、Ｓ２９の処理ののち、図６の結合子４（ステップＳ１５）に移る。
【００８０】
図６のステップＳ１５において、アプリケーション１０からの要求がファイルサイズ取得要求の場合、図８の結合子２に分岐する。図８において、ファイル情報取得検知部１０９が、アプリケーション１０がファイルサイズ取得要求を発行したことを検知すると（ステップＳ３１）。以下の処理が行われる。
【００８１】
暗号化確認部１０６は、図６のステップＳ１４で記録した情報を参照して、アプリケーション１０からのファイルサイズ取得要求で指定されたファイルが暗号化されているかを確認する（ステップＳ３２）。
【００８２】
アプリケーション１０からのファイルサイズ取得要求で指定されたファイルが暗号化されている場合（ステップＳ３２のＹｅｓ分岐）、暗号付加情報取得部１１０は、ファイルサイズ取得要求で指定されたファイルの暗号化前のファイルサイズ（元のファイルサイズ）を取得する（ステップＳ３３）。
【００８３】
ファイル情報取得部１０１は、取得した暗号化前のファイルサイズをアプリケーション１０に返却する（ステップＳ３４）。
【００８４】
ファイルサイズ取得要求で指定されたファイルが暗号化されていない場合（ステップＳ３２のＮｏ分岐）、ファイルサイズ取得要求で指定されたファイルのファイルサイズをそのまま返却する（ステップＳ３５）。
【００８５】
図６のステップＳ１５において、アプリケーション１０からの要求がファイル書き込み要求の場合、図９の結合子３に分岐する。図９において、ファイル書込検知部１１１でアプリケーション１０がファイル書き込み要求（ＷＲＩＴＥ）を発行したことを検知すると（ステップＳ４１）、以下の処理が実行される。
【００８６】
データ書き込み対象のファイル（図６のステップＳ１１でオープンしたファイル）が暗号化されている場合（ステップＳ４２のＹｅｓ分岐）、暗号化部１０２は、アプリケーション１０がファイル書き込み要求で指定したデータを５１２バイト毎に暗号化してファイルに書き込む（ステップＳ４３）。ステップＳ４２において、ファイルが暗号化されているか否かは、暗号化確認部１０６で確認してもよい。この場合、暗号化確認部１０６は、図６のステップＳ１４で記録した情報を参照して、データ書き込み対象のファイルが、暗号化されているか否かを確認するようにしてもよい。ステップＳ４３では、図５を参照して説明した処理が行われる。このため、ステップＳ４３の説明は省略する。
【００８７】
データ書き込み対象のファイルが暗号化されていない場合（ステップＳ４２のＮｏ分岐）、アプリケーション１０がファイル書き込み要求で指定したデータをそのままファイルに書き込む（ステップＳ４４）。
【００８８】
なお、データ又は暗号化データのファイルへの書き込みは、ファイルの新規作成のほか、データの変更や追記（追加）等であってもよい。ファイルデータの変更（修正）は、暗号化されたファイルから変更対象のデータを含むセクタを読み出してセクタ単位に復号し修正箇所を変更データ（平文）で置き換えた上で当該セクタを暗号化して書き込むようにしてもよい。追記の場合、暗号化されたファイルのデータの最後に暗号化データが追加される。変更（修正）、追記等の場合、暗号付加情報（図１の２３）は、変更（修正）、追記の内容を反映した暗号前のファイルのファイルサイズに更新される。
【００８９】
本実施形態によれば、ファイル暗号化のメリットを維持したまま、ファイルが開くまでの待ち時間を減らすことができ、利用者の利便性が向上することが可能となる。
【００９０】
本実施形態において、暗号付加情報（図１の２３）はファイルの末尾に付けたが、ファイルの先頭に付加するようにしてもよい。この場合、暗号付加情報は必ず５１２バイトの倍数のサイズとし、アプリケーション１０がアクセスしたオフセットから暗号付加情報のサイズ（５１２バイトの倍数）分、オフセットをずらしてアクセスさせることで、同様の機能が実現可能となる。
【００９１】
本実施形態において、ファイル情報取得部１０１は、ファイル情報として、元にファイルサイズをアプリケーション１０に返しているが、当該ファイルの他の属性情報（例えば暗号化属性やファイルフォーマット等）の問い合わせに対して、暗号化前のファイルの属性情報（暗号化前の暗号化属性情報やファイルフォーマット）をアプリケーション１０に返すようにしてもよい。
【００９２】
図１０は、図４のファイル暗号化復号装置１００をコンピュータ装置（情報処理装置）２００で構成した例を説明する図である。コンピュータ装置２００は、プロセッサ２０１、メモリ２０２、表示装置２０３、Ｉ／Ｏインタフェース２０４と、ＨＤＤ装置（図３の３０）等のストレージ２０５を備えている。
【００９３】
メモリ２０２は、プロセッサ２０１で実行させるプログラム（命令群（instructions）、データ）２１０を記憶している。メモリ２０２は、例えばＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、又は、ＥＥＰＲＯＭ（Electrically Erasable and Programmable ROM）等の半導体メモリであってもよいし、あるいは、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、ＵＳＢ（Universal Serial Bus）、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）等であってもよい。
【００９４】
Ｉ／Ｏインタフェース２０４は、ＨＤＤ装置（図３の３０）等のストレージ２０５へのデータアクセス用のインタフェースを含む。プロセッサ２０１は複数のプロセッサ構成（マルチプロセッサ）であってもよい。プロセッサ２０１がプログラム２１０を読み出して実行することで、上記実施形態のファイル暗号化復号装置１００を実現するようにしてもよい。プロセッサ２０１上で上記実施形態のアプリケーション１０を実行するようにしてもよい。Ｉ／Ｏインタフェース２０４に加えて通信インタフェース等を備えた構成としてもよい。
【００９５】
プログラム２１０は、例えば図１１に示すプログラムモジュールを含む。復号モジュール２１１は、暗号化されたファイルに対して、アプリケーション１０からの読み出し要求で指定されたデータを読み出して復号し、復号したデータを読み出し要求の応答としてアプリケーション１０に返す処理を行うプログラムモジュールである。ファイル情報取得モジュール２１２は、アプリケーション１０から、ファイル情報の取得要求（例えばファイルサイズ取得要求）に対して、暗号化されたファイルの暗号化前のファイル情報を応答としてアプリケーション１０に返す処理を行うプログラムモジュールである。さらに、アプリケーション１０からのファイル書き込み要求に応じて所定のサイズのデータ毎に暗号化し、鍵情報、元のファイルサイズ情報を暗号付加情報としてストレージに格納するプログラムモジュールを備えてもよい。復号モジュール２１１は、ストレージからの読み出しデータのオフセットが、元のファイルサイズを超えた場合、読み出して復号したデータにファイルの終端を付加してアプリケーション１０に返すようにしてもよい。
【００９６】
なお、端末１は、ＰＣ（Personal Computer）等の情報処理端末装置、携帯端末、データ/ファイルの暗号化が行われるＩｏＴ（Internet of Things）機器等であってもよい。ファイル暗号化復号装置１００はハードディスクコントローラ側等に実装するようにしてもよい。
【００９７】
なお、上記実施形態では、暗号化されたファイルを格納するストレージとしてＨＤＤ装置３０を例に説明したが、ストレージはＨＤＤ装置に制限されるものでなく、例えばＳＳＤ（Solid State Drive）やリード／ライト光ディスク等に対しても適用可能である。
【００９８】
上記実施形態は、セキュリティ、標的型攻撃対策、ランサムウェア対策、ＤＲＭ（Digital Right Management）、コンテンツセキュリティ対策、ファイル暗号等の分野に適用可能である。
【００９９】
なお、上記の特許文献１−３、非特許文献１の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【０１００】
上記した実施形態は以下のように付記される（ただし以下に制限されない）。
【０１０１】
（付記１）
暗号化されたファイルに対して、アプリケーションから読み出し要求されたデータを読み出して復号し、復号したデータを前記アプリケーションに返す復号部と、
前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返すファイル情報取得部と、
を含む、ことを特徴とするファイル暗号化復号装置。
【０１０２】
（付記２）
前記アプリケーションからのファイル書き込み要求に対して、データを所定のサイズ毎に暗号化し、鍵情報及び暗号化前の元のファイルサイズ情報を含む暗号付加情報を、暗号化データとともに、ストレージに格納する暗号化部をさらに含む、ことを特徴とする付記１に記載のファイル暗号化復号装置。
【０１０３】
（付記３）
前記ファイル情報取得部は、前記ファイル情報取得要求として、ファイルサイズ情報の取得要求を受けると、前記暗号付加情報に含まれる前記元のファイルサイズ情報を取得して、前記アプリケーションに返す、ことを特徴とする付記２に記載のファイル暗号化復号装置。
【０１０４】
（付記４）
前記復号部は、前記暗号化されたファイルに対する前記読み出し要求に対してデータ読み出しの開始位置からデータを読み出して所定のサイズ毎に復号し、復号の都度、前記所定のサイズを前記開始位置に加算していき、加算結果がデータ読み出しの終了位置に達した場合、復号したデータを前記アプリケーションに返し、一方、前記加算結果が前記終了位置に達する前に、前記暗号化前の元のファイルサイズを超えた場合、復号したデータにファイル終端を付加して前記アプリケーションに返す、ことを特徴とする付記２又は３に記載のファイル暗号化復号装置。
【０１０５】
（付記５）
前記読み出し要求に対してデータを復号して返す１つ又は複数のアプリケーションを記憶部に予め設定しておき、
前記アプリケーションからの読み出し要求に対して、前記アプリケーションが前記記憶部に設定されたアプリケーションであるか確認し、
前記記憶部に設定されたアプリケーションであることを確認すると、前記読み出し要求で指定されたファイルが暗号化されているか否かを確認し、
暗号化されている場合、前記復号部に対して、復号を指示する暗号化確認部を備えた、ことを特徴とする付記２乃至４のいずれかに記載のファイル暗号化復号装置。
【０１０６】
（付記６）
前記所定のサイズは、前記ストレージのセクタサイズに対応する付記２乃至５のいずれかに記載のファイル暗号化復号装置。
【０１０７】
（付記７）
付記１乃至６のいずれかに記載のファイル暗号化復号装置と、
所定のサイズのセクタ単位に読み書きが行われるストレージと、
前記ストレージに対して、前記ファイル暗号化復号装置を介して、読み出し、書き込み、ファイル情報取得の少なくとも１つを行う、少なくとも１つのアプリケーションと、
を備えた、ことを特徴とする情報処理装置。
【０１０８】
（付記８）
暗号化されたファイルに対して、アプリケーションから読み出し要求されたデータを読み出して復号し、復号したデータを前記アプリケーションに返し、
前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返す、ことを特徴とするファイル暗号化復号方法。
【０１０９】
（付記９）
前記アプリケーションからのファイル書き込み要求に応じて前記所定のサイズのデータ毎に暗号化し、鍵情報及び暗号化前の元のファイルサイズ情報を含む暗号付加情報を、暗号化データとともにストレージに格納する付記８に記載のファイル暗号化復号方法。
【０１１０】
（付記１０）
前記ファイル情報取得要求として、ファイルサイズ情報の取得要求を受けると、前記暗号付加情報に含まれる前記元のファイルサイズ情報を取得して、前記アプリケーションに返す、ことを特徴とする付記９に記載のファイル暗号化復号方法。
【０１１１】
（付記１１）
前記暗号化されたファイルに対する前記読み出し要求に対してデータ読み出しの開始位置からデータを読み出して所定のサイズ毎に復号し、復号の都度、前記所定のサイズを前記開始位置に加算していき、加算結果がデータ読み出しの終了位置に達した場合、復号したデータを前記アプリケーションに返し、一方、前記加算結果が前記終了位置に達する前に、前記暗号化前の元のファイルサイズを超えた場合、復号したデータにファイル終端を付加して前記アプリケーションに返す、ことを特徴とする付記９又は１０に記載のファイル暗号化復号方法。
【０１１２】
（付記１２）
前記読み出し要求に対してデータを復号して返す１つ又は複数のアプリケーションを記憶部に予め設定しておき、
前記アプリケーションからの読み出し要求に対して、前記アプリケーションが前記記憶部に設定されたアプリケーションであるか確認し、
前記記憶部に設定されたアプリケーションであることを確認すると、前記読み出し要求で指定されたファイルが暗号化されているか否かを確認し、
暗号化されている場合、前記復号部に対して、復号を指示する、ことを特徴とする付記９乃至１１のいずれかに記載のファイル暗号化復号方法。
【０１１３】
（付記１３）
前記所定のサイズは、前記ストレージのセクタサイズに対応する付記９乃至１２のいずれかに記載のファイル暗号化復号方法。
【０１１４】
（付記１４）
暗号化されたファイルに対して、アプリケーションから読み出し要求されたデータを読み出して復号し、復号したデータを前記アプリケーションに返す復号処理と、
前記アプリケーションからのファイル情報取得要求に対して、前記暗号化されたファイルの暗号化前のファイル情報を応答として前記アプリケーションに返すファイル情報取得処理と、
をプロセッサに実行させるプログラム。
【０１１５】
（付記１５）
前記アプリケーションからのファイル書き込み要求に応じて前記所定のサイズのデータ毎に暗号化し、鍵情報及び暗号化前の元のファイルサイズ情報を含む暗号付加情報を、暗号化データとともにストレージに格納する暗号化処理をさら前記プロセッサに実行させる付記１４に記載のプログラム。
【０１１６】
（付記１６）
前記ファイル情報取得部処理は、前記ファイル情報取得要求として、ファイルサイズ情報の取得要求を受けると、前記暗号付加情報に含まれる前記元のファイルサイズ情報を取得して、前記アプリケーションに返す、付記１５に記載のプログラム。
【０１１７】
（付記１７）
前記復号処理は、前記暗号化されたファイルに対する前記読み出し要求に対してデータ読み出しの開始位置からデータを読み出して所定のサイズ毎に復号し、復号の都度、前記所定のサイズを前記開始位置に加算していき、加算結果がデータ読み出しの終了位置に達した場合、復号したデータを前記アプリケーションに返し、一方、前記加算結果が前記終了位置に達する前に、前記暗号化前の元のファイルサイズを超えた場合、復号したデータにファイル終端を付加して前記アプリケーションに返す、付記１５又は１６に記載のプログラム。
【０１１８】
（付記１８）
前記読み出し要求に対してデータを復号して返す１つ又は複数のアプリケーションを記憶部に予め設定しておく処理と、
前記アプリケーションからの読み出し要求に対して、前記アプリケーションが前記記憶部に設定されたアプリケーションであるか確認し、
前記記憶部に設定されたアプリケーションであることを確認すると、前記読み出し要求で指定されたファイルが暗号化されているか否かを確認し、
暗号化されている場合、前記復号部に対して、復号を指示する暗号化確認処理と、
をさら前記プロセッサに実行させる付記２乃至４のいずれかに記載のファイル暗号化復号装置。
【０１１９】
（付記１９）
前記所定のサイズは、前記ストレージのセクタサイズに対応する付記１５乃至１８のいずれかに記載のプログラム。
【符号の説明】
【０１２０】
１  端末
１０  アプリケーション
２０  暗号化前ファイル
２１  暗号化ファイル
２２  暗号化データ
２３  暗号付加情報
２４  復号済みデータ
３０  ＨＤＤ装置
１００  ファイル暗号化復号装置
１０１  ファイル情報取得部
１０２  暗号化部
１０３  暗号付加情報格納部
１０４  ファイルオープン検知部
１０５  復号アプリケーション確認部
１０６  暗号化確認部
１０７  ファイル読込検知部
１０８  復号部
１０９  ファイル情報取得検知部
１１０  暗号付加情報取得部
１１１  ファイル書込検知部
２００  コンピュータ装置
２０１  プロセッサ
２０２  メモリ
２０３  表示装置
２０４  Ｉ／Ｏインタフェース
２０５  ストレージ（ＨＤＤ装置）
２１０  プログラム
２１１  復号モジュール
２１２  ファイル情報取得モジュール
【図１】
2020160985.tif 000003
【図２】
2020160985.tif 000004
【図３】
2020160985.tif 000005
【図４】
2020160985.tif 000006
【図５】
2020160985.tif 000007
【図６】
2020160985.tif 000008
【図７】
2020160985.tif 000009
【図８】
2020160985.tif 000010
【図９】
2020160985.tif 000011
【図１０】
2020160985.tif 000012
【図１１】
2020160985.tif 000013