(57)【要約】暗号ファイルと平文ファイルが混在するフォルダに対してファイルアクセスする場合に、ユーザに意識させること無く整合性を保ったままファイルアクセスを可能とする暗号処理システムを提供する。このために、本発明では、フォルダに暗号ファイルと平文ファイルが混在して格納されている場合に、暗号ファイルに、このファイルが暗号ファイルであることを示す識別情報（好ましくはフッタ情報）を付加して、ファイル読み込み時に平文ファイルと暗号ファイルとを区別できるようにしている。また、上位アプリケーションに対しては、識別情報を除いた上で暗号ファイルを復号して得られる復号ファイルを引き渡すようにしている。また、読み込みファイルが平文ファイルである場合には、平文ファイルに対して復号化処理を実行せずに、平文ファイルを上位アプリケーションプログラムに渡す。
2008152736.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行するコンピュータを用いて、暗号ファイルと平文ファイルが混在して格納されているフォルダからファイルを取得して上位アプリケーションプログラムに引き渡す、ファイル処理システムであって、
前記暗号ファイルは、当該ファイルが暗号ファイルであることを示す識別情報が付加されており、前記システムは、
前記上位アプリケーションプログラムから、前記フォルダに格納されているファイルへの読み込み要求、又はファイルの書き込み要求があった場合、前記フォルダに対して前記ファイルの読み込み、又は書き込みを実行する、ファイル読み込み／書き込み手段と、
前記読み込みファイルが平文ファイルであるか暗号ファイルであるかを前記識別情報の有無に基づいて判別するファイル判別手段と、
前記読み込みファイルが暗号ファイルである場合、前記暗号ファイルを復号化すると共に、前記識別情報を前記読み込みファイルから除外した復号ファイルを前記上位アプリケーションプログラムに引き渡すファイル処理手段と、
を備えることを特徴とするファイル処理システム。
【請求項２】
前記識別情報は、前記暗号ファイルの実体データの後に付加されるフッタ情報であることを特徴とする請求項１に記載のファイル処理システム。
【請求項３】
前記読み込みファイルが平文ファイルである場合、前記ファイル処理手段は、前記平文ファイルに対して復号化処理を実行せずに、前記平文ファイルを前記上位アプリケーションプログラムに渡すことを特徴とする請求項１に記載のファイル処理システム。
【請求項４】
さらに、前記読み込みファイルが前記暗号ファイルである場合、前記復号化の前に認証処理を実行する認証手段を備え、
前記ファイル処理手段は、認証に成功した場合に前記暗号ファイルを復号化し、復号ファイルを前記上位アプリケーションプログラムに引き渡すことを特徴とする請求項１に記載のファイル処理システム。
【請求項５】
前記ファイルへの読み込み要求が、前記暗号ファイルの途中の位置から前記フッタ情報に亘る所定サイズ分のデータの読み込み要求である場合、前記ファイル処理手段は、前記識別情報の部分に無意情報を埋め込み、前記読み込みファイルの復号後、前記無意情報を取り除いて前記上位アプリケーションプログラムに引き渡すことを特徴とする請求項２に記載のファイル処理システム。
【請求項６】
前記ファイル処理手段は、前記上位アプリケーションプログラムによるファイル編集後のデータを暗号化すると共に、編集後のファイルサイズの増減に対応して、前記フッタ情報を暗号データに付加する位置を変更して更新暗号ファイルを生成し、
前記ファイル読み込み／書き込み手段は、前記フォルダに前記更新暗号ファイルを書き込むことを特徴とする請求項２に記載のファイル処理システム。
【請求項７】
プログラムを実行するコンピュータを用いて、暗号ファイルと平文ファイルが混在して格納されているフォルダからファイルを取得して上位アプリケーションプログラムに引き渡す、ファイル処理方法であって、
前記暗号ファイルは、当該ファイルが暗号ファイルであることを示す識別情報が付加されており、前記方法は、
ファイル読み込み／書き込み手段が、前記上位アプリケーションプログラムから、前記フォルダに格納されているファイルへの読み込み要求があった場合、この要求に応じて、前記フォルダから前記ファイルの読み込む、ファイル読み込み工程と、
ファイル判別手段が、前記読み込みファイルが平文ファイルであるか暗号ファイルであるかを前記識別情報の有無に基づいて判別するファイル判別工程と、
ファイル処理手段が、前記読み込みファイルが暗号ファイルである場合、前記暗号ファイルを復号化すると共に、前記識別情報を前記読み込みファイルから除外した復号ファイルを前記上位アプリケーションプログラムに引き渡すファイル処理工程と、
を備えることを特徴とするファイル処理方法。
【請求項８】
前記識別情報は、前記暗号ファイルの実体データの後に付加されるフッタ情報であることを特徴とする請求項７に記載のファイル処理方法。
【請求項９】
前記ファイル処理工程において、前記ファイル処理手段が、前記読み込みファイルが平文ファイルである場合、前記平文ファイルに対して復号化処理を実行せずに、前記平文ファイルを前記上位アプリケーションプログラムに渡すことを特徴とする請求項７に記載のファイル処理方法。
【請求項１０】
さらに、認証手段が、前記読み込みファイルが前記暗号ファイルである場合、前記復号化の前に認証処理を実行する認証工程を備え、
前記ファイル処理工程において、前記ファイル処理手段が、認証に成功した場合に前記暗号ファイルを復号化し、復号ファイルを前記上位アプリケーションプログラムに引き渡すことを特徴とする請求項７に記載のファイル処理方法。
【請求項１１】
前記ファイルへの読み込み要求が、前記暗号ファイルの途中の位置から前記フッタ情報に亘る所定サイズ分のデータの読み込み要求である場合、前記ファイル処理工程において、前記ファイル処理手段が、前記識別情報の部分に無意情報を埋め込み、前記読み込みファイルの復号後、前記無意情報を取り除いて前記上位アプリケーションプログラムに引き渡すことを特徴とする請求項８に記載のファイル処理方法。
【請求項１２】
さらに、前記ファイル処理手段が、前記上位アプリケーションプログラムによるファイル編集後のデータを暗号化すると共に、編集後のファイルサイズの増減に対応して、前記フッタ情報を暗号データに付加する位置を変更して更新暗号ファイルを生成する工程と、
前記ファイル読み込み／書き込み手段が、前記フォルダに前記更新暗号ファイルを書き込む工程と、を備えることを特徴とする請求項８に記載のファイル処理方法。
【請求項１３】
コンピュータにおいて実行され、暗号ファイルと平文ファイルが混在して格納されているフォルダからファイルを取得して上位アプリケーションプログラムに引き渡す、ファイル処理プログラムであって、
前記暗号ファイルは、当該ファイルが暗号ファイルであることを示す識別情報が付加されており、前記プログラムは、
ファイル読み込み／書き込み手段が、前記上位アプリケーションプログラムから、前記フォルダに格納されているファイルへの読み込み要求があった場合、この要求に応じて、前記フォルダから前記ファイルの読み込む、ファイル読み込み工程を実行するプログラムコードと、
ファイル判別手段が、前記読み込みファイルが平文ファイルであるか暗号ファイルであるかを前記識別情報の有無に基づいて判別するファイル判別工程を実行するプログラムコードと、
ファイル処理手段が、前記読み込みファイルが暗号ファイルである場合、前記暗号ファイルを復号化すると共に、前記識別情報を前記読み込みファイルから除外した復号ファイルを前記上位アプリケーションプログラムに引き渡すファイル処理工程を実行するプログラムコードと、
を備えることを特徴とするファイル処理プログラム。
【請求項１４】
前記識別情報は、前記暗号ファイルの実体データの後に付加されるフッタ情報であることを特徴とする請求項１３に記載のファイル処理プログラム。
【請求項１５】
前記ファイル処理工程において、前記ファイル処理手段が、前記読み込みファイルが平文ファイルである場合、前記平文ファイルに対して復号化処理を実行せずに、前記平文ファイルを前記上位アプリケーションプログラムに渡すことを特徴とする請求項１３に記載のファイル処理プログラム。
【請求項１６】
さらに、認証手段が、前記読み込みファイルが前記暗号ファイルである場合、前記復号化の前に認証処理を実行する認証工程を実行するプログラムコードを備え、
前記ファイル処理工程において、前記ファイル処理手段が、認証に成功した場合に前記暗号ファイルを復号化し、復号ファイルを前記上位アプリケーションプログラムに引き渡すことを特徴とする請求項１３に記載のファイル処理プログラム。
【請求項１７】
前記ファイルへの読み込み要求が、前記暗号ファイルの途中の位置から前記フッタ情報に亘る所定サイズ分のデータの読み込み要求である場合、前記ファイル処理工程において、前記ファイル処理手段が、前記識別情報の部分に無意情報を埋め込み、前記読み込みファイルの復号後、前記無意情報を取り除いて前記上位アプリケーションプログラムに引き渡すことを特徴とする請求項１４に記載のファイル処理プログラム。
【請求項１８】
さらに、前記ファイル処理手段が、前記上位アプリケーションプログラムによるファイル編集後のデータを暗号化すると共に、編集後のファイルサイズの増減に対応して、前記フッタ情報を暗号データに付加する位置を変更して更新暗号ファイルを生成する工程を実行するプログラムコードと、
前記ファイル読み込み／書き込み手段が、前記フォルダに前記更新暗号ファイルを書き込む工程を実行するプログラムコードと、を備えることを特徴とする請求項１４に記載のファイル処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル処理システム及び方法、並びにファイル処理プログラムに関し、例えば、暗号ファイルと平文ファイルが混在するフォルダに対してファイルアクセスする場合に適した暗号処理システム等に関するものである。
【背景技術】
【０００２】
暗号処理システムにおいて、機密情報等を格納した暗号ファイルと、機密でない一般情報を格納した平文ファイルとは、管理の容易性のため、それぞれ別のフォルダに保管して管理するのが一般的である。【０００３】
しかし、例えば、既に平文ファイルが存在しているフォルダに、後から暗号ファイルを追加する必要が生じる場合がある。そして、平文ファイルと暗号ファイルは、同じアプリケーションで作成されたファイルであれば暗号化前後で拡張子等も同一であり、外見上見分けがつかない。従って、このような場合、平文ファイルと暗号ファイルとの区別がつかず、ユーザ（ファイルサーバ管理者）の利便性が低下してしまう。また、平文ファイルと暗号ファイルとの区別がつかない結果、平文ファイルに対して本来不要な復号プロセスを実行してしまうという僅かな不注意でファイル破壊を引き起こす可能性がある。【０００４】
このため、同一フォルダに暗号ファイルと平文ファイルが混在させる場合、両ファイルを識別し、ファイルの整合性を保つ何らかの技術が必要である。例えば、特許文献１には、同一フォルダ内に暗号ファイルと平文ファイルの混在を許可する技術として、暗号ファイルのヘッダにラベル部を設けることにより、平文ファイルと区別をつけるという方針については示されている。
【特許文献１】特開２００５−１６５９００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１には、ラベル部を暗号ファイルと平文ファイルの差をユーザや他のアプリケーションプログラム（ＡＰ）が意識せずにアクセスできるようにするための具体的な方法については何ら示されていない。また、ヘッダにラベル部を設けた暗号ファイルをユーザが更新する場合に、ファイルの整合性を保ったままファイル更新を行う方法については、何ら示されていない。【０００６】
本発明はこのような状況に鑑みてなされたものであり、暗号ファイルと平文ファイルが混在するフォルダに対してファイルアクセスする場合に、ユーザに意識させること無く整合性を保ったままファイルアクセスを可能とする暗号処理システムを提供するものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、フォルダに暗号ファイルと平文ファイルが混在して格納されている場合に、暗号ファイルに、このファイルが暗号ファイルであることを示す識別情報（好ましくはフッタ情報）を付加して、ファイル読み込み時に平文ファイルと暗号ファイルとを区別できるようにしている。また、上位アプリケーションに対しては、識別情報を除いた上で暗号ファイルを復号して得られる復号ファイルを引き渡すようにしている。【０００８】
即ち、本発明によるファイル処理システムは、プログラムを実行するコンピュータを用いて、暗号ファイルと平文ファイルが混在して格納されているフォルダからファイルを取得して上位アプリケーションプログラムに引き渡す、ファイル処理システムであって、取り扱われる暗号ファイルは、当該ファイルが暗号ファイルであることを示す識別情報が付加されている。そして、このファイル処理システムは、上位アプリケーションプログラムから、フォルダに格納されているファイルへの読み込み要求、又はファイルの書き込み要求があった場合、フォルダに対してファイルの読み込み、又は書き込みを実行する、ファイル読み込み／書き込み手段と、読み込みファイルが平文ファイルであるか暗号ファイルであるかを識別情報の有無に基づいて判別するファイル判別手段と、読み込みファイルが暗号ファイルである場合、暗号ファイルを復号化すると共に、識別情報を読み込みファイルから除外した復号ファイルを上位アプリケーションプログラムに引き渡すファイル処理手段と、を備えることを特徴とする。なお、識別情報は、暗号ファイルの実体データの後に付加されるフッタ情報であることが好ましい。また、読み込みファイルが平文ファイルである場合、ファイル処理手段は、平文ファイルに対して復号化処理を実行せずに、平文ファイルを上位アプリケーションプログラムに渡す。【０００９】
また、記ファイルへの読み込み要求が、暗号ファイルの途中の位置からフッタ情報に亘る所定サイズ分のデータの読み込み要求である場合、ファイル処理手段は、識別情報の部分に無意情報（ＮＵＬＬ）を埋め込み、読み込みファイルの復号後、無意情報（ＮＵＬＬ）を取り除いて前記上位アプリケーションプログラムに引き渡す。【００１０】
本発明によるファイル処理システムは、さらに、読み込みファイルが暗号ファイルである場合、復号化の前に認証処理を実行する認証手段を備え、ファイル処理手段は、認証に成功した場合に暗号ファイルを復号化し、復号ファイルを上位アプリケーションプログラムに引き渡す。【００１１】
本発明は、一旦読み込んだファイルがデータ追加や削除によって更新された場合のフッタ情報の付加位置についても手当している。つまり、この場合、ファイル処理手段は、上位アプリケーションプログラムによるファイル編集後のデータを暗号化すると共に、編集後のファイルサイズの増減に対応して、フッタ情報を暗号データに付加する位置を変更して更新暗号ファイルを生成し、ファイル読み込み／書き込み手段は、フォルダに更新暗号ファイルを書き込むようにしている。【００１２】
さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
【発明の効果】
【００１３】
本発明によれば、暗号ファイルと平文ファイルが混在するフォルダに対しても、暗号ファイルにフッタ情報を付加することによって両者の識別を可能とし、更にユーザに引き渡すときにフッタ情報を隠蔽することによって、ユーザに意識させること無く整合性を保ったままファイルアクセスを可能とすることが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施の形態例を示すシステム構成図である。
【図２】本発明における平文ファイルと暗号ファイルの構成を示す図である。
【図３】暗号ファイル・平文ファイルかを判別する処理を説明するためのフローチャートである。
【図４】上位アプリケーションが暗号処理ドライバを介して暗号ファイルをアクセスする際の処理概要を示した図である。
【図５】フッタ情報隠蔽処理を説明するためのフローチャートである。
【図６】フッタ情報隠蔽の具体的方法について示した図である。
【図７】ファイルサイズ変更処理を説明するためのフローチャートである。
【図８】暗号ファイルを更新する際に、ファイルサイズ変更に伴うフッタ情報維持の方法について示した図である。
【符号の説明】
【００１５】
１…クライアント端末
２…ファイルサーバ
３…認証サーバ
４…ネットワーク
６…利用者
１１…暗号処理ドライバ
１２…上位アプリケーション
２２…平文ファイル
２３…暗号ファイル
２５…暗号データ
２６…フッタ
１００…暗号処理システム（ファイル処理システム）
【発明を実施するための最良の形態】
【００１６】
以下、本発明による実施形態について添付図面を用いて詳細に説明する。なお、本発明による実施形態は本発明を実現する上での一例に過ぎず、本発明はこれによって限定されるものではなく、発明の本質を逸脱しない範囲で変更又は／及び改良することができる。【００１７】
＜暗号処理システムの構成＞
図１は、本発明の実施形態による暗号処理システム（ファイル処理システム）の概略構成を示すブロック図である。図１において、暗号処理システム１００は、暗号ファイルの暗号化・復号化等を行うクライアント端末１と、暗号ファイル・平文ファイル等を保存するファイルサーバ２と、暗号ファイルアクセスのためのユーザ認証を行う認証サーバ３とが、ネットワーク４で接続されて構成されている。【００１８】
クライアント端末１は、暗号ファイルと平文ファイルの制御を行う暗号処理ドライバ１１と、ユーザ６等によって起動される上位アプリケーション１２と、指定されたファイルをネットワーク上のファイルサーバ２から検索して読み込んでくるリダイレクタ１３と、ユーザ認証を制御するクライアントサービス部１４、ユーザ６等が指示等を入力するための入力部１５と、アプリケーション出力等を表示する画面表示部１７とを備える。また、暗号処理ドライバ１１は、ファイル入力部１１１と、暗号・平文ファイル判別部１１２と、ファイル暗号・復号部１１３と、フッタ情報処理部１１４とを備えている。【００１９】
また、ファイルサーバ２には、平文ファイル２２と暗号ファイル２３が混在している共有機密フォルダ２１が存在している。【００２０】
認証サーバ３は、ユーザ６が暗号ファイル２３にアクセスする場合にクライアントサービス部１４との間で認証を行い、認証が成功すると、復号鍵１６を発行する。【００２１】
＜ファイルアクセス時の処理の概要＞
続いて、ユーザ６がネットワーク上の共有機密フォルダ２１に格納されているファイルをアクセスする手順について説明する。【００２２】
ユーザ６が、クライアント端末１の画面表示部１４、入力部１５等を介してファイルアクセス要求を行うと、クライアントサービス部１４はアクセス要求を暗号処理ドライバ１１に伝え、暗号処理ドライバ１１は更にアクセス要求をリダイレクタ１３に伝える。【００２３】
ファイルアクセス要求を受取ったリダイレクタ１３は、ネットワーク上のファイルサーバ２を検索して、共有機密フォルダ２１に格納された当該ファイルをクライアント端末１に読み込んで、暗号処理ドライバ１１に引き渡す。なお、ユーザからアクセス要求は、暗号ファイル、平文ファイルのいずれの場合もあるが、リダイレクタ１３では、暗号ファイルか平文ファイルかを意識せず、共有機密フォルダ２１から読み込んだままの形式で暗号処理ドライバ１１に引き渡す。【００２４】
ファイル入力部１１１によってファイルを受取った暗号処理ドライバ１１は、暗号・平文ファイル判別部１１２によって対象ファイルが平文ファイル２２であるか暗号ファイル２３であるか判定する。具体的には、暗号・平文ファイル判別部１１２は、アクセス対象のファイルに暗号ファイルであることを示す識別情報（フッタ情報）が含まれるか否か判別し、含まれていなければ平文ファイル、含まれていれば暗号ファイルであると判断する。フッタ情報は、対象ファイルのうち、終端から所定サイズ占めている。そして、フッタ情報処理部１１４が、フッタ情報を対象ファイルから分離する。また、後述のように（図３参照）、暗号・平文判別部１１２は、アイキャッチャ（対象ファイルが暗号ファイルであることを意味する固有の文字列）を探索し、復号鍵を取得する。なお、このとき、分離されたフッタ情報は、対象暗号ファイルの書き込み時（更新時）のために、図示しないメモリに一時的に格納される。【００２５】
暗号処理ドライバ１１は、対象ファイルが平文ファイルであると判断されれば、そのまま上位アプリケーション１２に引き渡す。一方、暗号処理ドライバ１１は、対象ファイルが暗号ファイルであると判断されれば、クライアントサービス部１４を介してユーザ認証のためにユーザ６からパスワード等の入力を要求する。入力部１５により入力されたパスワード等を受取ったクライアントサービス部１４は、認証サーバ３に問合せて認証を要求し、認証がＯＫの場合は復号鍵１６を取得して暗号処理ドライバ１１に渡す。【００２６】
復号鍵１６を受取った暗号処理ドライバ１１のファイル暗号復号部１１３は、フッタ情報から取得した復号鍵と復号鍵１６とを照合して所定の条件を満たすと、対象ファイルを復号化する。そして、ファイル暗号復号部は、ファイルの復号後に、フッタ情報隠蔽（後述）等の処理を行った後に上位アプリケーション１２に引き渡す。なお、対象ファイルの判別からファイル引渡までの処理（図３）、フッタ情報隠蔽処理（図５及び６）、及びＥＯＦ位置変更処理（図７及び８）については後に説明する。【００２７】
＜ファイルの構成＞
図２Ａは、共有機密フォルダ２１に平文ファイル２２と暗号ファイル２３が混在するようになる過程の一例を示した図である。【００２８】
まず、共有機密フォルダ２１を最初に登録した際に、既に平文ファイル２２が存在していたとする。もし、この図の例のシステムが、ファイルの新規登録について暗号ファイルしか許可していなかった場合、共有機密フォルダ２１に後から追加されるファイルは暗号ファイル２３のみであるが、当初より平文ファイル２２が存在しているため、共有機密フォルダ２１には平文ファイルと暗号ファイルが混在することになる。【００２９】
図２Ｂは、本発明における平文ファイルと暗号ファイルの構成を示す図である。共有機密フォルダ２１内には、平文ファイル２２と暗号ファイル２３が混在する。共有機密フォルダ内２１に存在するファイルが暗号されているか否かは、ファイル末尾に付加されているフッタ情報を確認することにより判定する。即ち、平文ファイル２２は平文データ実体２４のみからなるが、暗号ファイル２３は暗号データ実体２５の他に、暗号処理ドライバ１１のフッタ情報付加部１１４により、フッタ情報２６が付加されており、フッタ情報２６の分だけファイルサイズが大きくなっている。【００３０】
なお、フッタ情報２６のデータ形式については、暗号データ実体２５と明確に区別して識別可能なアイキャッチャが含まれていれば、他の部分の形式については問わない。また、ここでは、識別情報としてフッタ情報を示しているが、これに限られず、ヘッダ部分やファイルの途中に識別情報を配置する構成であっても良い。ただし、フッタに識別情報を配置することにより、ＯＳ上での実装が簡単になる。つまり、ヘッダ部分であると、データが存在する位置をオフセットして管理しなければならず、実装が困難となるのである。【００３１】
＜ファイル種別判別並びにファイル提示処理＞
次に、暗号処理ドライバ１１の暗号・平文ファイル判別部１１２（ここでは、以下「ファイル判別部１１２」という）が、フッタ情報をチェックして暗号ファイルか平文ファイルかを判別し、最終的にファイル暗号復号部がファイルを上位アプリケーションに引き渡すまでの処理について説明する。図３は、暗号ファイル・平文ファイル判別して、ファイルをユーザに提示（上位アプリケーションに引渡し）するまで処理を説明するためのフローチャートである。【００３２】
まず、ユーザ６の指示等に従って、上位アプリケーション１２がファイルオープン命令を生成し、それを受けてファイル判別部１１２が、アクセス対象ファイルをオープンする（Ｓ３０１）。アクセス対象には新規のファイルも含まれる場合があるため、ファイル判定部１１２は、対象ファイルの存否を判定する（Ｓ３０２）。対象ファイルが存在していない場合は、ファイル判別部１１２は、ファイルサイズ０（ゼロ）の暗号ファイルを新規作成して、処理を終了する（Ｓ３１３）。一方、対象ファイルが存在する場合は、ファイル判別部１１２は、次に対象ファイルのファイルサイズを取得し（Ｓ３０３）、ファイルサイズが０の場合は（Ｓ３０４）、対象ファイルが暗号ファイルであると判定する（Ｓ３０８）。【００３３】
ステップＳ３０４においてファイルサイズが正であると判断された場合は、ファイル判定部１１２は、ファイルサイズがフッタサイズ以上か否か判定し（Ｓ３０５）、ファイルサイズがフッタサイズ未満ならば対象ファイルにフッタ情報が存在しないことは明らかなので、対象ファイルが平文ファイルであると判定する。そして、ファイル判別部１１２は、平文ファイルをそのまま上位アプリケーションに引き渡す（Ｓ３１２）。ステップＳ３０５でファイルサイズがフッタサイズ以上であると判断されれば、ファイル判別部１１２は、フッタ情報に含まれるアイキャッチャ（固有の識別情報）を探索し、それと暗号ファイルの定義値とを比較して一致しているか判断する（Ｓ３０７）。両者が一致していなければ、処理はステップＳ３１１に移行し、対象ファイルは平文ファイルとして処理される。【００３４】
ステップＳ３０４でファイルサイズが０（ゼロ）であると判断された場合、或いは、ステップＳ３０７でアイキャッチャと暗号ファイルの定義値とが一致していると判断された場合、処理はステップＳ３０８に移行し、ファイル判別部１１２は、対象ファイルを暗号ファイル（ファイルサイズが０のときは空の暗号ファイル）であると判別する。このときフッタ情報から暗号ファイルの復号鍵が取得される。そして、ユーザ認証処理が、ユーザ６と認証サーバ３との間で実行される（Ｓ３０９）。認証が成功すれば、認証サーバ３が復号鍵１６を発行してクライアントサービス部１４にそれを譲り渡す。さらに、クライアントサービス部１４は、復号鍵１６をファイル暗号復号部１１３に譲り渡す。ファイル暗号復号部１１３は、クライアントサービス部１４からの復号鍵１６とフッタ情報から取得した復号鍵とを照合して、合致すれば復号可能と判断して対象暗号ファイルを復号し、復号ファイルを上位アプリケーション１２に引き渡す（Ｓ３１０）。【００３５】
なお、ここでは、新規ファイルを作成する場合は必ず暗号ファイルとして作成しているが、平文ファイルを新規作成するような選択肢があってもよい。【００３６】
以上のようにして、暗号・平文ファイルの判別、及び復号ファイルの引渡しまでの処理が完了する。【００３７】
＜暗号ファイルへのアクセス時の処理概要＞
図４は、上位アプリケーション１２が暗号処理ドライバ１１を介して暗号ファイル２３をアクセスする際の処理概要を示す図である。既に述べたように、暗号ファイル２３には暗号化したデータの実体２５に加えて、ファイル末尾にフッタ情報２６が付加されている。この暗号ファイル２３を復号化した場合、フッタ情報２６はユーザには認識させないようにしたい。フッタ情報には復号鍵等セキュリティ上重要な情報が含まれており、これを流出させないためである。そのため、暗号処理ドライバ１１の暗号ファイル復号部１１３においてファイルサイズを偽装し、フッタ情報２６を隠蔽する。さらに、後述のように（図６参照）、ファイルの終端（ＥＯＦ：End Of File）についても、物理的にはフッタ情報の末尾となるが、ユーザに示すＥＯＦは、擬似的にデータの実体２５の末尾となるように制御されている。【００３８】
＜フッタ情報の隠蔽処理＞
図５はファイル暗号復号部１１３におけるフッタ情報の隠蔽処理を説明するためのフローチャートであり、図６はその隠蔽処理の具体的方法について説明する図である。【００３９】
暗号処理ドライバ１１において、ファイルサイズを偽装しているため、上位アプリケーションではフッタ情報２６の存在を意識することはない。しかし、通常のアプリケーションでファイルサイズを超える読み込みを行うことは頻繁にある。また、アプリケーションが意図的にファイルサイズを超える読み込みを発生させる以外に、キャッシュにデータを載せるページングＲＥＡＤによりファイルサイズを超える読み込みが発生することがある。このとき、読み込みデータにフッタ情報が含まれ、それを誤って提示してしまう可能性もある。そこで、図５のようなフッタ情報隠蔽処理を実行する。【００４０】
図５において、まず、ユーザ６からの対象暗号ファイルの読み込み要求を取得する（Ｓ５０１）。例えば、図６の例において、上位アプリケーション１２から、暗号データ２５の長さが１０２４バイト、フッタ情報２６の長さ２５６バイト、実ファイルサイズが１２８０バイトの暗号ファイル２３に対して、暗号データの５１２バイト目（オフセット位置）から長さ７００バイト分の読み込み要求がユーザ６よりあった場合について考える（図６の６１参照）。【００４１】
そして、ファイル暗号復号部１１３は、暗号対象ファイルのうち、ユーザによって指定されたサイズのデータを取得する。図６では、５１２バイト目から７００バイト分のデータを取得する（図６の６２参照）。この場合、ネットワーク上のファイルシステムから読み込んだ７００バイト分のデータが、リダイレクタ１３によって暗号処理ドライバ１１に返される。【００４２】
続いて、ファイル暗号復号部１１３は、取得データにフッタ情報が含まれるか判断する（Ｓ５０３）。フッタ情報が取得暗号データに含まれると判断された場合、フッタ情報処理部は、取得暗号データのうちフッタ情報部分をＮＵＬＬ（意味を持たない情報：無意情報）で埋める（Ｓ５０４）。そして、ファイル暗号復号部１１３は、暗号デーの部分のみを復号する（Ｓ５０５）。ステップＳ５０３でフッタ情報が含まれないと判断された場合には、取得した暗号部分のみが復号される（Ｓ５０５）。そして、ファイル暗号復号部は、復号データを上位アプリケーションに引き渡す。図６の具体例で説明すると、暗号データの実体は５１２バイトのため、残りの１８８バイトはフッタ情報が含まれることになる。この場合、暗号処理ドライバ１１の暗号ファイル復号部１１３は、暗号データ５１２バイト分を復号化すると、フッタ情報の１１８バイト分はＮＵＬＬクリアし（図６の６３参照）、読み込んだデータ７００バイトからフッタ情報の１８８バイト分を減算した５１２バイトをファイルサイズとして上位アプリケーションに返すことにより、フッタ情報を隠蔽する（図６の６４参照）。【００４３】
なお、ここでは、取得暗号データにフッタ情報が含まれる場合にはＮＵＬＬで埋めているが、必ずしもＮＵＬＬで埋める必要はなく、フッタ情報処理部は、対応するフッタ情報部分を除去する処理を行ってもよい。【００４４】
＜暗号ファイルの更新処理＞
図７は、対象暗号ファイルを復号し、編集後再度暗号化してファイルサーバ２に格納するまでの処理を説明するためのフローチャートである。図８は、暗号ファイルの更新処理の具体例に関し、暗号ファイル２３を更新する際に、暗号処理ドライバ１１のフッタ情報処理部１１４によってファイルサイズ変更があったときにフッタ情報を付加する処理について示した図である。なお、ファイルサイズが変更された場合、フッタ情報処理部１１４は、フッタ情報を追記した結果は上位アプリケーションから認識できないよう、結果（ファイルポインタ位置や書き込んだサイズ）を偽装している。以下、更新処理の詳細を説明する。【００４５】
図７を参照すると、まず復号された対象ファイルが上位アプリケーション１２に引き渡される（Ｓ７０１：詳細について図３参照）。そして、上位アプリケーション１２によって対象ファイルが編集される（Ｓ７０２）。このとき、データが書き込まれてファイルサイズが大きくなったり、データが削除されてファイルサイズが小さくなったりする。続いて、編集後のファイルがファイル暗号復号部１１３によって暗号ファイルに変換される（Ｓ７０３）。【００４６】
次に、フッタ情報処理部１１４は、ファイル編集によってファイルサイズが大きくなり、ＥＯＦ（ユーザから見える見かけ上のＥＯＦ）の位置を伸長しなければならないか判断する（Ｓ７０４）。伸長するケースでないと判断された場合、フッタ情報処理部１１４は、さらにファイル編集によってＥＯＦを縮退する必要が生じたか判断する（Ｓ７０５）。ＥＯＦを伸長・縮退するケースで無い場合には、フッタ情報処理部１１４は従前の位置にフッタ情報を付加する（Ｓ７０６）。ＥＯＦを縮退する場合には、フッタ情報処理部１１４は、新しい位置をＥＯＦとしてフッタ情報を付加する（Ｓ７０７）。図８（ｄ）は、ファイルサイズ増加（縮退）の場合、即ち、現在のＥＯＦ未満の位置に新しいＥＯＦを設定する更新要求があった場合である。この場合、新しいＥＯＦの後ろにフッタ情報２６が書き込まれている。【００４７】
ステップＳ７０４でＥＯＦを伸長するケースであると判断すると、フッタ情報処理部１１４は、このＥＯＦの伸長が例えば３つの形態のうち何れに相当するものか判断する（Ｓ７０８）。つまり、ｉ）単純にデータの書き込みによりＥＯＦ位置に変更が生じた場合、ｉｉ）空データエリアが付加された場合、ｉｉｉ）空データが付加されたと共にデータが書き込まれた場合、である。【００４８】
ステップＳ７０８で、ｉ）の形態であると判断された場合には、フッタ情報処理部１１４は、書き込みデータ分のサイズだけＥＯＦの位置を後退させてフッタ情報を暗号データに付加する（Ｓ７０９）。図８（ａ）は、現在のファイルサイズを越えるようなデータ書き込みの要求があり、結果としてファイルサイズが拡張する場合の例を示している。この場合、更新された書き込みデータが、更新前の暗号データ実体に加えられた上で、更新された書き込みデータの後ろにフッタ情報２６が書き込まれている。【００４９】
ステップＳ７０８で、ｉｉ）の形態であると判断された場合には、フッタ処理部１１４は、空データ分のサイズだけＥＯＦの位置を後退させてフッタ情報を暗号データに付加する（Ｓ７１０）。図８（ｂ）は、ファイルサイズ増加（伸長）の場合、即ち、書き込みデータは無いが現在のＥＯＦを越えた位置に新しいＥＯＦを設定する更新要求があった場合の例を示している。この場合、元のＥＯＦ位置から新しいＥＯＦまでの間の区間は例えば未初期化エリア（空データエリア）となるが、新しいＥＯＦの後ろにフッタ情報２６が書き込まれている。【００５０】
ステップＳ７０８でｉｉｉ）の形態であると判断された場合には、フッタ情報処理部１１４は、空データ及び書き込みデータ分のサイズだけＥＯＦの位置を後退させてフッタ情報を暗号データに付加する（Ｓ７１１）。図８（ｃ）は、現在のＥＯＦを越えた位置から開始するデータ書き込み要求があった場合の例を示している。この場合、元のＥＯＦ位置から書き込みデータ開始位置までの間の区間は、例えば未初期化エリアとなり、その後に書き込みデータが追加され、更にその後にフッタ情報２６が書き込まれている。【００５１】
最後に、リダイレクタ１３は、フッタ情報付加後のファイルを暗号ファイルとしてファイルサーバ２に引き渡して、そのファイルはファイルサーバ２内に格納される。【００５２】
このようにして、暗号ファイル２３に対してファイルサイズを変更させる更新要求があった場合も、暗号処理ドライバ１１が上記のようなフッタ情報２６の位置の移動を行うことにより、上位アプリケーション１２に全く意識させることなく、整合性を保った状態で暗号ファイル２３を更新させることができるようになっている。【００５３】
＜まとめ＞
本実施形態においては、フォルダに暗号ファイルと平文ファイルが混在して格納されている場合に、暗号ファイルに、このファイルが暗号ファイルであることを示す識別情報（好ましくはフッタ情報）を付加してファイルを処理するようにしている。このようにすることによって、暗号ファイルと平文ファイルが混在するフォルダに対してアクセスする場合であっても、平文ファイルと暗号ファイルとを区別できるようになる。【００５４】
また、上位アプリケーションに対しては、識別情報を除いた上で暗号ファイルを復号して得られる復号ファイルを引き渡すようにしている。よって、ユーザにファイルの暗号の有無を意識させること無く、ファイルの整合性（暗号ファイルは復号して提示し、平文ファイルはそのまま提示すること）を保ったままファイルアクセスを可能とすることが可能となる。【００５５】
なお、識別情報は、暗号ファイルの実体データの後に付加されるフッタ情報であることが好ましい。ヘッダ情報やファイルの途中に識別情報があると、実態データを読み込む際にオフセットを常に考慮しなければならず、データ管理がフッタ情報よりも複雑になるからである。フッタ情報であれば、オフセットを考慮せずに、物理アドレスそのものでデータを管理できるというメリットがある。【００５６】
また、記ファイルへの読み込み要求が、暗号ファイルの途中の位置からフッタ情報に亘る所定サイズ分のデータの読み込み要求である場合（図６参照）、識別情報の部分に無意情報（ＮＵＬＬ）を埋め込み、読み込みファイルの復号後、無意情報（ＮＵＬＬ）を取り除いて前記上位アプリケーションプログラムに引き渡す。このようにすることにより、ファイルの整合性を担保しつつ、フッタ情報に含まれる復号鍵等の重要情報が外部に流出する危険性を回避することができる。【００５７】
さらに、読み込みファイルが暗号ファイルである場合には、復号化の前に認証処理を実行するようにしている。これにより、認証に成功した場合にのみ暗号ファイルを復号化するので、よりセキュリティを強化することができる。【００５８】
また、一旦読み込んだファイルがデータ追加や削除によって更新された場合のフッタ情報の付加位置についても手当している。つまり、この場合、上位アプリケーションプログラムによるファイル編集後のデータを暗号化すると共に、編集後のファイルサイズの増減に対応して、フッタ情報を暗号データに付加する位置を変更して更新暗号ファイルを生成し、フォルダに更新暗号ファイルを書き込むようにしている。【００５９】
本実施形態では、暗号ファイル及び平文ファイルがファイルサーバに格納されている形態が示されているが、これに限らず、クライアント端末のメモリ内に格納されていても良い。また、認証についても認証サーバにアクセスする形態が含まれているが、認証プログラムがクライアント端末にインストールされていても良い。さらに、暗号処理ドライバがクライアント端末にインストールされている形態が示されているが、この暗号処理ドライバの機能がネットワークを介したサーバに設けるようにしても良い。【００６０】
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ（登録商標）ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。【００６１】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。【００６２】
また、実施の形態の機能を実現するソフトウェアのプログラムコードがネットワークを介して配信されることにより、システム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ-ＲＷ、ＣＤ-Ｒ等の記憶媒体に格納され、そのシステム又は装置のコンピュータ(又はＣＰＵやＭＰＵ)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行することによっても、達成されるようにしてもよい。
【図１】
2008152736.tif 000003
【図２】
2008152736.tif 000004
【図３】
2008152736.tif 000005
【図４】
2008152736.tif 000006
【図５】
2008152736.tif 000007
【図６】
2008152736.tif 000008
【図７】
2008152736.tif 000009
【図８】
2008152736.tif 000010
【国際調査報告】
2008152736.tif 000011
2008152736.tif 000012