(57)【要約】      （修正有）【課題】指定されたファイルに対する署名の作成及び署名のチェックを行うファイル処理ユニットに関し、所望のアプリケーションにて外部記憶装置に格納されたファイルをアクセスする際に、簡単に署名情報の作成、チェックが行えるようなファイル処理システムを提供する。【解決手段】ファイル処理ユニットは、コンピュータシステム内で動作するアプリケーションにて使用すべきファイルのオープン要求に応答して、当該ファイルのデータを用いて所定の規則に従って第二の署名情報を作成する第二の署名情報作成手段と、オープン要求に係るファイルのデータを用いて予め上記所定の規則に従って作成され、該ファイルに関連付けられて記憶装置内に格納された第一の署名情報と上記第二の署名情報とが一致するか否かを判定する署名一致判定手段と、アプケーションに提供すべき上記署名一致判定手段での判定結果を表す情報を作成する判定結果作成手段とを有する。【選択図】図１
2008226255.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステム内で動作するアプリケーションにて使用すべきファイルのオープン要求が発せられたときに、そのオープン要求に応答して、当該ファイルのデータを用いて所定の規則に従って第二の署名情報を作成する第二の署名情報作成手段と、
オープン要求に係るファイルのデータを用いて予め上記所定の規則に従って作成され、該ファイルに関連付けられて記憶装置内に格納された第一の署名情報と上記第二の署名情報とが一致するか否かを判定する署名一致判定手段と、
アプケーションに提供すべき上記署名一致判定手段での判定結果を表す情報を作成する判定結果作成手段とを有するファイル処理ユニット。
【請求項２】
請求項１記載のファイル処理ユニットにおいて、
上記第二の署名情報作成手段は、オープン要求に係る処理が完了する前に、オープン要求に係るファイルのデータを記憶装置から読み出すオープンファイル読み出し手段を有し、該オープンファイル読み出し手段にて読み出されたデータを用いて第二の署名情報を作成するようにしたファイル処理ユニット。
【請求項３】
請求項１または２記載のファイル処理ユニットにおいて、
上記オープン要求時にオープン要求に係るファイルに対応付けられて記憶装置内に格納された第一の署名情報のチェックを行うべきか否かを判定する署名チェック判定手段を有し、
当該オープン要求に係るファイルに対応付けられて記憶装置内に格納された第一の署名情報のチェックを行うべきであると署名チェック判定手段が判定したときに、上記第二の署名情報作成手段が上記第一の署名情報との一致を判定すべき第二の署名情報を作成するようにしたファイル処理ユニット。
【請求項４】
請求項３記載のファイル処理ユニットにおいて、
上記署名チェック判定手段は、アプケーションにてファイルが使用される前に、少なくともオープン要求に係るファイルに関連付けて記憶装置に格納された第一の署名情報のチェックを行う処理モードの設定を行うモード設定手段を有し、
上記署名チェック判定手段は、予め設定された処理モードに基づいて当該オープン要求に係るファイルに関連づけて記憶装置に格納された第一の署名情報のチェックを行うべきか否かを判定するモード判定手段を有するファイル処理ユニット。
【請求項５】
アプケーションからのイベントに基づいてファイルに対する処理を実行するファイルシステムを有するコンピュータシステムに適用されるファイル処理ユニットにおいて、
アプリケーションからのファイルクオープンのイベントに係るファイルに対するファイルシステムでの処理が完了する前に、該ファイルクオープンのイベントを受け取りそのイベントに係るファイルのデータを用いて所定の規則に従って第二の署名情報を作成する第二の署名情報作成手段と、
オープン要求に係るファイルのデータを用いて予め上記所定の規則に従って作成され、該ファイルに関連付けられて記憶装置内に格納された第一の署名情報と上記第二の署名情報とが一致するか否かを判定する署名一致判定手段と、アプケーションに提供すべき上記署名一致判定手段での判定結果を表す情報を作成する判定結果作成手段と、
上記判定結果を表す情報が作成された後に、上記判定結果を表す情報をファイルシステムに渡すと共に、上記ファイルオープンのイベントに係るファイルに対する上記ファイルシステムでの処理への復帰処理を行う第二の復帰手段とを備えたファイル処理ユニット。
【請求項６】
当該コンピュータシステムに接続される外部ユニットとして構成される請求項１乃至５いずれか記載のファイル処理ユニット。
【請求項７】
上記外部ユニットがＰＣカードとなる請求項６記載のファイル処理ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルオープン、ファイルクローズ、リード、ライト等のアプリケーションからの外部記憶装置に対するファイルアクセスに基づいて処理を行うファイル処理ユニットに係り、詳しくは、指定されたファイルに対する署名の作成及び署名のチェックを行うファイル処理ユニットに関する。
【背景技術】
【０００２】
コンピュータシステムを用いて作成され、外部記憶装置（ハードディスク、光ディスク、フロッピー（登録商標）ディスク等）に格納されたファイルのデータが他人によって改ざんされたか否かを判定するために、作成されたファイルの全部または一部を用いて作成された署名データがファイルに添付される。このような署名データの作成、チェックについては、従来、専用アプリケーションによってなされている。具体的には、次のような手順にて署名データの作成、チェックが行われる。
【０００３】
所望のアプリケーションによって作成されたファイルは外部記憶装置に格納される。その後、専用アプリケーションが立ち上げられ、その専用アプリケーションに従って作成されたファイルが外部記憶装置から読み出され、その読み出されたファイルの全部または一部のデータを用いて署名データが作成される。そして、この作成された署名データが対応するファイルに添付された状態で当該ファイルが再び外部記憶装置に格納される。
【０００４】
また、所望のアプリケーションによって外部記憶装置に格納されたファイルのデータの編集を行う場合、当該所望のアプリケーションが処理の対象となるファイルをアクセスする前に、専用アプリケーションが立ち上げられる。この専用アプリケーションに従って、処理の対象となるファイルのデータが外部記憶装置から読み出され、そのデータの全部または一部を用いて署名データが作成される。そして、この作成された署名データと、当該ファイルに既に添付された署名データとが比較され、それらが一致する場合には、適正なファイルのデータであるとして判定される。一方、上記両署名データが一致しない場合、当該処理の対象となるファイルのデータが前回署名データが作成されたときから現在に至る間に改ざんされたと判定される。
【０００５】
ユーザは、上記のような署名データのチェックの結果に基づいて、処理対象となるファイルのデータが改ざんされたか否かを認識できる。その後、所望のアプリケーションが処理の対象となるファイルのデータを外部記憶装置から読み出して、編集等の処理が実行される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のように専用アプリケーションによって署名データの作成、チェックを行うようにした従来のシステムでは、所望のアプリケーションによってファイルに対する処理を実行する前に、常に、専用アプリケーションを立ち上げて署名データの作成、チェックを行わなければならない。そのため、その操作が煩雑になってしまう。
【０００７】
そこで、本発明の課題は、所望のアプリケーションにて外部記憶装置に格納されたファイルをアクセスする際に、簡単に署名情報の作成、チェックが行えるようなファイル処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するため、本発明に係るファイル処理ユニットは、コンピュータシステム内で動作するアプリケーションにて使用すべきファイルのオープン要求が発せられたときに、そのオープン要求に応答して、当該ファイルのデータを用いて所定の規則に従って第二の署名情報を作成する第二の署名情報作成手段と、オープン要求に係るファイルのデータを用いて予め上記所定の規則に従って作成され、該ファイルに関連付けられて記憶装置内に格納された第一の署名情報と上記第二の署名情報とが一致するか否かを判定する署名一致判定手段と、アプケーションに提供すべき上記署名一致判定手段での判定結果を表す情報を作成する判定結果作成手段とを有する構成とした。
【０００９】
また、上記第二の署名情報作成手段は、オープン要求に係る処理が完了する前に、オープン要求に係るファイルのデータを記憶装置から読み出すオープンファイル読み出し手段を有し、該オープンファイル読み出し手段にて読み出されたデータを用いて第二の署名情報を作成するようにした。
【００１０】
さらに、上記オープン要求時にオープン要求に係るファイルに対応付けられて記憶装置内に格納された第一の署名情報のチェックを行うべきか否かを判定する署名チェック判定手段を有し、当該オープン要求に係るファイルに対応付けられて記憶装置内に格納された第一の署名情報のチェックを行うべきであると署名チェック判定手段が判定したときに、上記第二の署名情報作成手段が上記第一の署名情報との一致を判定すべき第二の署名情報を作成するようにした。
【００１１】
また、上記署名チェック判定手段は、アプケーションにてファイルが使用される前に、少なくともオープン要求に係るファイルに関連付けて記憶装置に格納された第一の署名情報のチェックを行う処理モードの設定を行うモード設定手段を有し、上記署名チェック判定手段は、予め設定された処理モードに基づいて当該オープン要求に係るファイルに関連づけて記憶装置に格納された第一の署名情報のチェックを行うべきか否かを判定するモード判定手段を有するようにした。
【００１２】
また、本発明は、アプケーションからのイベントに基づいてファイルに対する処理を実行するファイルシステムを有するコンピュータシステムに適用されるファイル処理ユニットにおいて、アプリケーションからのファイルクオープンのイベントに係るファイルに対するファイルシステムでの処理が完了する前に、該ファイルクオープンのイベントを受け取りそのイベントに係るファイルのデータを用いて所定の規則に従って第二の署名情報を作成する第二の署名情報作成手段と、オープン要求に係るファイルのデータを用いて予め上記所定の規則に従って作成され、該ファイルに関連付けられて記憶装置内に格納された第一の署名情報と上記第二の署名情報とが一致するか否かを判定する署名一致判定手段と、アプケーションに提供すべき上記署名一致判定手段での判定結果を表す情報を作成する判定結果作成手段と、上記判定結果を表す情報が作成された後に、上記判定結果を表す情報をファイルシステムに渡すと共に、上記ファイルオープンのイベントに係るファイルに対する上記ファイルシステムでの処理への復帰処理を行う第二の復帰手段とを備えるようにした。
【００１３】
なお、ファイル処理ユニットは、該コンピュータシステムに接続される外部ユニットとして構成するようにしてもよい。さらに、上記外部ユニットをＰＣカードとしてもよい。
【発明の効果】
【００１４】
本発明によれば、所望のアプリケーションを立ち上げた状態で、アプリケーションからオープンイベントが発行されると、自動的に当該オープンイベントに係るファイルに対応する署名情報が作成され、既に当該ファイルに関連付けられた署名情報との一致判定が行われる。従って、ユーザが特に署名情報のチェックを意識することなしに、ファイルオープンに係るファイルのチェックが行われるので、より簡単に署名情報のチェックが行えるようになる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて説明する。本発明の実施の一形態に係るファイル処理ユニットが適用されるコンピュータシステムのハードウエア構成は、例えば、図１に示すようになっている。図１において、このシステムは、ＣＰＵ１０、メモリユニット１２、入力ユニット１４、表示ユニット１６、ハードディスクドライブユニット（ＨＤＤ）１８及びインタフェース回路２２を有している。上記各ユニット及びインタフェース回路２２は、それぞれバスに接続されている。
【００１６】
メモリユニット１２には、オペレーションシステム（ＯＳ）や種々のアプリケーションが格納され、ＣＰＵ１０は、メモリユニット１２内のＯＳに従った処理及び選択されたアプリケーションを実行する。入力ユニット１４は、マウス及びキーボードを有し、アプリケーションの選択、選択されたアプリケーションによってオープンされたファイルに対するデータの入力、必要なモード設定、その他必要な情報を入力するために使用される。
【００１７】
表示ユニット１６は、各種制御画面、アプリケーションによってオープンされたファイルの情報等を表示する。ハードディスクドライブユニット１８は、ハードディスク２０を駆動し、選択されたアプリケーションやＯＳに基づいたＣＰＵ１０からの指令に従ってハードディスク２０へのファイルの格納、読み出しを行う。
【００１８】
インタフェース回路２２にはＰＣカード１００が接続される。ＰＣカード１００は本発明に係るファイル処理ユニットとしてのドライバを有し、インタフェース回路２２は、ＣＰＵ１０にて実行されるアプリケーションや例えばＯＳ内に構築されるファイルシステムとＰＣカード１００内のドライバとの間のインタフェースを行う。
【００１９】
上記のようなコンピュータシステムを立ち上げた状態で、ＰＣカード１００をインタフェース回路２２にセットすると、ＯＳ内に構築されるファイルシステムとＰＣカード１００内のドライバとの間で、例えば、図２に示す手順に従って初期処理が実行される。図２において、ファイルシステムがドライバ確認コマンドをドライバに対して送ると（Ｓ１）、ドライバは、初期処理の開始可能な状態にあるか否かを判定する（Ｓ２）。この判定の結果、ドライバが初期処理の開始可能な状態にない場合には、ドライバはエラー応答（ＮＧ応答）をファイルシステムに返送する。このエラー応答を受信したファイルシステムは、システムにセットされたドライバが起動できる状態ではないとして、所定のエラー処理を実行する（Ｓ３）。このエラー処理では、例えば、セットされたドライバが起動しない旨のメッセージを出力する。このメッセージは、表示ユニット１６に表示される。
【００２０】
一方、ドライバが上記初期処理の開始可能な状態なある場合には、ドライバは正常応答（ＯＫ応答）をファイルシステムに返送する。この正常応答を受信したファイルシステムは、当該ドライバを特定する情報をメモリユニット１４に登録する（Ｓ４）。そして、ファイルシステムは、例えば、セットされたドライバが登録された旨のメッセージを出力する。このメッセージは、表示ユニット１６に表示される。
【００２１】
上記のようにしてＰＣカード１００をインタフェース回路２２に接続し、ＰＣカード１００内のドライバがファイルシステムに登録されると、引き続き、図３に示す手順に従って処理が実行される。図３において、ドライバの登録を確認したファイルシステムは、初期処理の実行をドライバに対して指示する（Ｓ１１）。この指示を受信したドライバは、動作を開始し（Ｓ１２）、アプリケーションからファイルシステムに送られるイベントをドライバに渡す（フックする）要求をファイルシステム対して送る（Ｓ１３）。
【００２２】
この要求を受信したファイルシステムは、その要求が許容できる場合には、イベントをドライバに渡す際に指定すべきアドレス（フックアドレス）を登録すると共に、許容応答をドライバに返す（Ｓ１４）。一方、ドライバでの処理が不完全の場合や、ファイルシステムがドライバからの要求の受信に失敗した場合等には、ファイルシステムはドライバに対して要求エラーの応答を返す（Ｓ１４）。
【００２３】
上記のような応答を受信したドライバは、返送された応答が許容応答かエラー応答であるかの判定を行う（Ｓ１５）。その応答が許容応答であれば、初期処理は正常に終了する。一方、その受信した応答がエラー応答であれば、要求が失敗したとして、初期処理の再試行あるいは所定のエラー処理が実行される。上記のようにしてドライバの登録及び初期処理が終了した状態で、ユーザが入力ユニット１４を用いて必要なアプリケーションの指定を行うと、指定されたアプリケーションがハードディスク２０からハードディスクドライブユニット１８を介してメモリユニット１２に転送される。そして、そのアプリケーションの起動を行うと、例えば、図４に示す手順に従って、ユーザ認証及びモード設定の処理が実行される。
【００２４】
起動されたアプリケーションは、ユーザＩＤ及びパスワードの入力画面を表示ユニット１６に表示させる。そして、図４において、ユーザが入力ユニット１４を用いてユーザＩＤ及びパスワードを入力すると、アプリケーションは、そのユーザＩＤ及びパスワードを取得し（Ｓ２１）、入力されたユーザＩＤ及びパスワードのチェックを行う（Ｓ２２）。このチェックの結果、ユーザ認証がなされなかった場合には、所定のエラー処理が行われる。
【００２５】
一方、上記ユーザＩＤ及びパスワードによってユーザ認証がなされた場合には、アプリケーションはユーザが入力ユニット１４を用いて指定したフォルダ及び設定した処理モード（モード値）をＯＳを介してドライバに送る（Ｓ２３）。この処理モードは、図９に示すように、ファイルオープンのときに署名のチェックを行うか否か、ファイルクローズのときに署名作成を行うか否か、ライト処理のときにデータの暗号化・圧縮を行うか否か、リード処理のときにデータの復号・伸長を行うか否かに基づいて１６通りの処理モードが予め定められている。この図９に示す各モード値と処理内容との関係は、モードテーブルとしてドライバ内のメモリに予め格納されている。
【００２６】
また、上記のように処理モードの設定と共にフォルダが指定されると、処理モードとフォルダとが対応付けられ、例えば、図１０に示すようなテーブルとしてドライバのメモリ内に保存される。このようにフォルダと処理モードとの関係が定められることにより、各処理モードにて処理されるべきファイルは、その処理モードに対応したフォルダに格納されることになる。
【００２７】
上記処理モードの設定及びフォルダの指定が終了すると、アプリケーションは動作開始の指示をＯＳを介してドライバに送る（Ｓ２５）。そして、その指示を受信したドライバは、アプリケーションから発行されるイベント（ファイルオープン、ファイルクローズ、リード、ライト）に基づいた設定された処理モードでの動作を開始する。
【００２８】
以下、モード値１５（図９参照）が設定されると共に、フォルダＰ（図１０参照）が指定された場合を例に説明する。上記のような処理によりアプリケーション及びドライバが有効となっている状態で、ユーザがあるファイルのデータについて処理するために、ファイルオープンに係る操作を行うと、例えば、図５に示す手順に従って処理が実行される。
【００２９】
ユーザの操作に基づいてアプリケーションからオープン関数が発行される（Ｓ３１）。このオープン関数は、ファイルシステム（ＯＳ）に渡される。すると、ファイルシステムは、上記のようにした登録されたドライバ（図２参照）に対してフックアドレスと共にオープンイベントを渡し（Ｓ３２）、ファイルのオープン処理を開始する（Ｓ３３）。オープンイベントには、指定されたフォルダ名、ファイル名（パス名を含む）、ファイル属性、オープン関数のパラメータ、ファイルシステムへの復帰アドレス等が含まれる。
【００３０】
ドライバは、ファイルシステムからオープンイベントを受信すると（Ｓ３４）、以下の手順で処理を実行する。まず、指定されたフォルダのチェックが行われる（Ｓ３５）。この処理では、図１０に示すテーブルを参照して、ドライバにて処理（暗号化、復号、署名作成、署名チェック）を行うべきファイルが格納されたフォルダとして登録されているか否かが判定される。この例の場合、指定されたフォルダＰが処理対象のフォルダとして登録されているので（図１０参照）、更に、ドライバは指定されたファイルの属性を属性テーブル（図示せず）を参照してチェックする（Ｓ３６）。これは、指定されたファイルが、署名の付加や暗号化を行ってもよいファイルか否かをチェックするために行われる。システムファイル、隠しファイル、ドライバファイル等については、署名の付加や暗号化が行えないことを示す属性値が予め登録されている。
【００３１】
指定されたファイルが上記のような署名の付加や暗号化の対象となっていないファイルの場合、属性テーブルの当該指定ファイルに対して、処理中であることを示すファイルハンドルが保存される（Ｓ３７）。そして、モードテーブルを参照して、設定された処理モードがオープン時に処理を行うべきモードであるか否かが判定される（Ｓ３８）。この例の場合、モード値１５が設定されているので、ファイルオープン時に署名チェックを行うべき処理モードであると判定される。
【００３２】
すると、ドライバは指定されたファイルのリード要求をハードディスクドライブユニット１８に出力する（Ｓ３９）。この要求に対して、ハードディスクドライブ（ＨＤＤ）ユニット１８は、ハードディスク２０から指定されたファイルのデータを読み出し、そのデータをドライバに返す（Ｓ４０）。ハードディスクドライブユニット１８からデータを受信すると、ドライバは、受信したデータの全部または一部を用いて所定の規則に従って署名データ（Ａ）を作成る（Ｓ４１）。そして、更に、後述するように（ファイルクローズ時の処理）この指定されたファイルのデータ領域と別の領域に既に添付された署名データ（Ｂ）のリード要求をハードディスクドライブユニット１８に出力する（Ｓ４２）。この要求に対して、ハードディスクドライブユニット１８は、ハードディスク２０から指定されたファイルの所定領域から署名データ（Ｂ）を読み出し、その署名データ（Ｂ）をドライバに返す（Ｓ４３）。
【００３３】
ハードディスクドライブユニット１８からデータを受信すると、ドライバは、受信した署名データ（Ｂ）と上記のように作成した署名データ（Ａ）とを比較し、それらが一致するか否かを判定する（Ｓ４４）。これらの署名データ（Ａ）及び（Ｂ）が一致すると、正常ステータスが設定される（Ｓ４５）。そして、ドライバは、正常ステータスをファイルシステムに渡すと共に、ファイルシステムの復帰アドレスへの復帰処理を実行する（Ｓ４７）。
【００３４】
ファイルシステムは、復帰アドレスへの復帰を受けて、その復帰アドレスからのオープン処理を継続し、ドライバからの正常ステータスを確認した後にオープン処理を完了する（Ｓ４８）。そして、そのオープン処理の結果（オープンすべきファイルのデータ等）をアプリケーションに渡す。このオープン処理の結果を受けたアプリケーションは、オープン関数に復帰する（Ｓ４９）。その結果、アプリケーションにおいてユーザに指定されたファイルがオープンされる。
【００３５】
一方、指定されたファイルに既に添付された署名データ（Ｂ）と新たに作成された署名データ（Ａ）とが不一致の場合（Ｓ４４でＮＧ）、ドライバは、オープンエラーを設定し（Ｓ４６）、ファイルシステムの復帰アドレスへの復帰処理に際してそのオープンエラーのステータスをファイルシステムに渡す。この場合、ファイルシステムは、このオープンエラーを確認してオープン処理の完了を完了する（Ｓ４８）。そして、オープン処理の結果と共にオープンエラーのステータスがファイルシステムからアプリケーションに渡される。その結果、アプリケーションにおけるオープン関数への復帰によって、ファイルがオープンされると共に、ファイルのデータが改ざんされた可能性のある旨の表示等が行われる。
【００３６】
なお、上記オープンイベントに基づいた処理の過程で、指定されたフォルダがオープン時に署名チェックを行う処理モードに対応するものとして設定されていない場合（Ｓ３５でＮＧ）や、指定されたファイルが署名を必要としない属性を有するものである場合（Ｓ３６でＮＧ）、ドライバは、上述したような署名のチェックを行わずに、そのままファイルシステムの復帰アドレスへの復帰処理を実行する（Ｓ４７）。
【００３７】
上記のように、ユーザによるオープン操作に基づいてアプリケーションからオープン関数がファイルシステムに発行されると、ドライバにて署名のチェックが自動的に実行され、そのチェック結果がファイルシステムに返される。そして、ファイルシステムは、通常のオープン処理を実行し、そのオープン処理の結果と署名のチェック結果をアプリケーションに返す。従って、ユーザは、特に署名チェックのための専用のアプリケーションを立ち上げることなく、所望のアプリケーションを立ち上げた状態で、ファイルオープンの際に、処理モードの設定をするだけで、オープン処理の対象となるファイルの署名チェックの結果を得ることができる。
【００３８】
上記のようにしてオープンされたファイルに対するリード処理は、例えば、図６に示すような手順に従って実行される。図６において、アプリケーションからリード関数がファイルシステムに対して発行される（Ｓ５１）。このリード関数を受けたファイルシステムは、リードイベントをドライバに渡すと共に（Ｓ５２）、リード処理を開始する（Ｓ５３）。そして、このリードイベントを受信した（Ｓ５４）ドライバは、以下のような処理を実行する。
【００３９】
なお、リードイベントは、ファイル名（パス名を含む）
ファイルハンドルリードポイントリードバッファリードサイズファイルシステムへの復帰アドレス等を含む。
【００４０】
ファイルオープンの場合と同様にフォルダのチェックを行った後に（Ｓ５５）、ファイル属性のチェックが行われる（Ｓ５６）。このフォルダのチェックでは、図９及び図１０に示すテーブルを参照して、指定されたフォルダがリード時にデータの復号・伸長を行うファイルを格納した復号・伸長処理の対象となるフォルダであるか否かが判定される。また、ファイル属性のチェックでは、指定されたファイルに対して属性テーブルに要求に係るファイルハンドルが設定されているか否かが判定される。これは、指定されたファイルがリード時の処理対象となるファイルであるか否かを判定するためのものである。この例場合、フォルダＰがモード値１５に対応するものとして設定されているので、リード時にデータの復号・伸長を行うファイルが格納されたフォルダであると判定される。そして、指定されたファイルが、ファイルオープン時に前述したようにファイルハンドルがファイル属性として設定されているファイルであるので、要求に係るハンドルが設定されていると判定される。
【００４１】
上記の各チェックの後、更に、モードチェックが行われる（Ｓ５７）。このモードチェックでは、モードテーブルを参照して、設定された処理モードがリード時にデータの復号・伸長を行うモードであるか否かが判定される。この場合、モード値１５が設定されているので、リード時にデータの復号・伸長を行うモードとして判定される。
【００４２】
その後、指定されたファイルのデータの読み出し要求がドライバからハードディスクドライブユニット１８に出力される（Ｓ５８）。この要求を受けたハードディスクドライブユニット１８は、ハードディスク２０からバウンダリを考慮して指定されたファイルのデータを読み出し、そのデータをドライバに渡す（Ｓ５９）。この読み出されたデータは、後述するように所定のアルゴリズムに従って既に暗号化・圧縮されている。
【００４３】
ドライバは、このデータをハードディスクドライブユニット１８から受信すると、そのデータについて復号処理を行う（Ｓ６０）。この復号処理では、例えば、８バイト単位で上記暗号化・圧縮のアルゴリズムに対応するアルゴリズムに従ってデータの復号・伸長及び、端数処理を実行する。また、この復号処理では、読み出したデータの８バイトが復号・伸長されたデータの８バイトに対応するようにしている。その結果、データ長から両者の区別がつかないようになっている。
【００４４】
上記の復号処理が終了すると、リードサイズ分のデータがリードバッファに設定され（Ｓ６１）、ファイルシステムの復帰アドレスへの復帰処理が実行される（Ｓ６２）。ファイルシステムは、復帰アドレスへの復帰を受けて、その復帰アドレスからのリード処理を継続し、ドライバのリードバッファに設定されたデータを取得すると共にリード処理を完了する（Ｓ６３）。そして、そのリード処理の結果（リードデータ）をアプリケーションに渡す。
【００４５】
このリード処理の結果を受けたアプリケーションは、リード関数に復帰する（Ｓ６４）。その結果、アプリケーションがリードデータを取得し、そのアプリケーションでの処理により、例えば、リードデータが表示ユニット１６に表示される。なお、上記リードイベントに基づいた処理の過程で、指定されたフォルダがリード時に復号・伸長を行う処理モードに対応するものとして設定されていない場合（Ｓ５５でＮＧ）や、指定されたファイルに対して要求されたファイルハンドが設定されていない場合（Ｓ５６でＮＧ）、また、設定された処理モードがリード時に復号・伸長を行う処理モードではない場合（Ｓ５７でＮＯ）、ドライバは、上述したような復号処理を行わずに、そのままファイルシステムの復帰アドレスへの復帰処理を実行する（Ｓ４７）。その結果、ファイルシステムでのリード処理により、通常と同様に、リードデータがファイルシステムからアプリケーションに渡される。
【００４６】
上記のように、ファイルのリード時において、アプリケーションからリード関数が発行されると、ドライバにて、リード処理の対象となるファイルのデータの復号・伸長処理が自動的に実行され、その復号・伸長されたデータがファイルシステムに返される。そして、ファイルシステムは、通常のリード処理を実行し、そのリード処理の結果として復号・伸長されたデータをアプリケーションに返す。従って、ユーザは、暗号化・圧縮されたデータについて特に復号・伸長の処理について意識することなく、所望のアプリケーションを立ち上げた状態で、暗号化・圧縮されたデータを元のデータに復号・伸長した状態で得ることができる。
【００４７】
また、上記のようにしてオープンされたファイルに対するライト処理は、例えば、図７に示すような手順に従って実行される。図７において、アプリケーションからライト関数がファイルシステムに対して発行される（Ｓ７１）。このライト関数を受けたファイルシステムは、ライトイベントをドライバに渡すと共に（Ｓ７２）、ライト処理を開始する（Ｓ７３）。そして、このライトイベントを受信した（Ｓ７４）ドライバは、以下のような処理を実行する。
【００４８】
なお、ライトイベントは、ファイル名（パス名を含む）
ファイルハンドルライトポイントライトデータライトバッファライトサイズファイルシステムへの復帰アドレス等を含む。
【００４９】
ファイルオープン及びリード処理の場合と同様にフォルダのチェックを行った後に（Ｓ７５）、ファイル属性のチェックが行われる（Ｓ７６）。このフォルダのチェックでは、図９及び図１０に示すテーブルを参照して、指定されたフォルダがライト時にデータの暗号化・圧縮を行うファイルを格納した暗号化・圧縮処理の対象となるフォルダであるか否かが判定される。また、ファイル属性のチェックでは、指定されたファイルに対して属性テーブルに要求に係るファイルハンドルが設定されているか否かが判定される。この例場合、フォルダＰがモード値１５に対応するものとして設定されているので、ライト時にデータの暗号化・圧縮を行うファイルが格納されたフォルダであると判定される。そして、指定されたファイルが、ファイルオープン時に前述したようにファイルハンドルがファイル属性として設定されているファイルであるので、要求に係るハンドルが設定されていると判定される。
【００５０】
上記の各チェックの後、更に、モードチェックが行われる（Ｓ７７）。このモードチェックでは、モードテーブルを参照して、設定された処理モードがライト時にデータの暗号化・圧縮を行うモードであるか否かが判定される。この場合、モード値１５が設定されているので、ライト時にデータの暗号化・圧縮を行うモードとして判定される。
【００５１】
その後、指定されたファイルのデータの読み出し要求がドライバからハードディスクドライブユニット１８に出力される（Ｓ７８）。この要求を受けたハードディスクドライブユニット１８は、ハードディスク２０からバウンダリを考慮して指定されたファイルのデータを読み出し、そのデータをドライバに渡す（Ｓ７９）。この読み出されたデータは、後述するように所定のアルゴリズムに従って既に暗号化・圧縮されている。
【００５２】
ドライバは、このデータをハードディスクドライブユニット１８から受信すると、そのデータについて復号処理を行う（Ｓ８０）。この復号処理では、前述したリード時の処理と同様に暗号化・圧縮のアルゴリズムに対応したアルゴリズムに従って、８バイト単位でデータの復号・伸長及び、端数処理がなされる。上記の復号処理が終了すると、上記のように読み出されて復号処理によって元のデータの戻されたデータにライトデータが上書きされる（Ｓ８１）。そして、この読み出されたデータに上書きされたライトデータの暗号化処理が実行される（Ｓ８２）。この暗号化処理では、所定のアルゴリズムに従って８バイト単位でデータの暗号化・圧縮及び、端数処理がなされる。このとき、暗号化前のデータ８ビットが暗号化されたデータ８ビットに対応するようにデータの暗号化・圧縮がなれ、データ長から両者の区別がつかないようになっている。
【００５３】
このような暗号化処理が終了すると、ドライバはハードディスクドライブユニット１８にライト処理を要求する（Ｓ８３）。この要求に応答してハードディスクドライブユニット１８は、上記暗号化・圧縮されたデータを、バウンダリを考慮してハードディスク２０の指定されたファイルに書き戻し、その応答をドライバに返す（Ｓ８３）。
【００５４】
暗号化・圧縮されたデータの書き込み（ライト）が終了した後に、ドライバは、ファイルシステムへの復帰処理を実行する（Ｓ８６）。ファイルシステムは、ライト処理の完了した状態（Ｓ８５）で復帰アドレスへの復帰を受けて、ライト処理の結果をアプリケーションに渡す。このライト処理の結果を受けたアプリケーションは、ライト関数に復帰する（Ｓ８７）。
【００５５】
なお、上記ライトイベントに基づいた処理の過程で、指定されたフォルダがライト時に暗号化・圧縮を行う処理モードに対応するものとして設定されていない場合（Ｓ７５でＮＧ）や、指定されたファイルに対して要求されたファイルハンドが設定されていない場合（Ｓ７６でＮＧ）、また、設定された処理モードがライト時に暗号化・圧縮を行う処理モードではない場合（Ｓ７７でＮＯ）、ドライバは、上述したような暗号化処理を行わずに、そのままファイルシステムの復帰アドレスへの復帰処理を実行する（Ｓ４７）。その結果、ファイルシステムでのライト処理により、通常と同様に、アプリケーションからのライトデータがファイルシステムからハードディスクドライブユニット１８に渡され、そのライトデータがハードディスク２０の指定されたファイルに書き込まれる。
【００５６】
上記のように、ファイルのライト時において、アプリケーションからライト関数が発行されると、ドライバにて、ライトデータの暗号化・圧縮処理が自動的に実行され、その暗号化・圧縮されたデータが指定されたファイルに書き込まれる。そして、ファイルシステムは、通常のライト処理と同様にその処理結果をアプリケーションに戻す。従って、ユーザは、暗号化・圧縮について特に意識することなく、所望のアプリケーションを立ち上げた状態で、暗号化・圧縮されたデータがファイルに格納される。
【００５７】
上述したようにオープンされたファイルに対するクローズ処理は、例えば、図８に示す手順に従って実行される。図８において、ユーザの操作に基づいてアプリケーションからクローズ関数が発行される（Ｓ３１）。このクローズ関数は、ファイルシステムに渡される。すると、ファイルシステムは、ドライバに対してドライバにオープンイベントを渡し（Ｓ９２）、ファイルのクローズ処理を開始する（Ｓ９３）。クローズイベントには、ファイル名（パス名を含む）、ファイル属性、ファイルシステムへの復帰アドレス等が含まれる。
【００５８】
ドライバは、ファイルシステムからクローズイベントを受信すると（Ｓ９４）、以下の手順で処理を実行する。まず、ファイルオープン時の処理と同様に、フォルダのチェックを行った後に（Ｓ９５）、ファイル属性のチェックが行われる（Ｓ９６）。このフォルダのチェックでは、図９及び図１０に示すテーブルを参照して、指定されたフォルダがクローズ時に署名データの作成を行うファイルを格納した署名作成処理の対象となるフォルダであるか否かが判定される。また、ファイル属性のチェックでは、指定されたファイルに対して属性テーブルに要求に係るファイルハンドルが設定されているか否かが判定される。この例場合、フォルダＰがモード値１５に対応するものとして設定されているので、クローズ時に署名データの作成を行うファイルが格納されたフォルダであると判定される。そして、指定されたファイルが、ファイルオープン時に前述したようにファイルハンドルがファイル属性として設定されているファイルであるので、要求に係るハンドルが設定されていると判定される。
【００５９】
上記の各チェックの後、更に、モードチェックが行われる（Ｓ９７）。このモードチェックでは、モードテーブルを参照して、設定された処理モードがファイルクローズ時に署名データを作成するモードであるか否かが判定される。この場合、モード値１５が設定されているので、設定された処理モードがファイルクローズ時に署名データを作成するモードであると判定される。
【００６０】
次いで、ドライバは指定されたファイルのリード要求をハードディスクドライブユニット１８に出力する（Ｓ９８）。この要求に対して、ハードディスクドライブ（ＨＤＤ）ユニット１８は、ハードディスク２０から指定されたファイルのデータを読み出し、そのデータをドライバに返す（Ｓ９９）。ハードディスクドライブユニット１８からデータを受信すると、ドライバは、受信したデータの全部または一部を用いて所定の規則に従って署名データ（Ｂ）を作成する（Ｓ１００）。そして、この作成され署名データ（Ｂ）を指定されたファイルに付加する要求がドライバからハードディスクドライブユニット１８になされる（Ｓ１０１）。すると、ハードディスクドライブユニット１８は、指定されたファイルのデータ領域と別の所定領域に作成された署名データ（Ｂ）を格納する（Ｓ１０２）。
【００６１】
ドライバは、上記のように署名データ（Ｂ）を指定ファイルに付加する要求をハードディスクドライブユニット１８行った後に、属性テーブルにおける指定ファイルに対応したファイルハンドルを消去する（Ｓ１０３）。その後、正常ステータスが設定される（Ｓ１０４）。そして、ドライバは、正常ステータスをファイルシステムに渡すと共に、ファイルシステムの復帰アドレスへの復帰処理を実行する（Ｓ１０５）。
【００６２】
ファイルシステムは、復帰アドレスへの復帰を受けて、その復帰アドレスからのクローズ処理を継続し、ドライバからの正常ステータスを確認した後にクローズ処理を完了する（Ｓ１０６）。そして、そのクローズ処理の結果をアプリケーションに渡す。このクローズ処理の結果を受けたアプリケーションは、クローズ関数に復帰する（Ｓ１０７）。その結果、アプリケーションにおいてユーザに指定されたファイルがクローズされる。
【００６３】
なお、上記クローズイベントに基づいた処理の過程で、指定されたフォルダがクローズ時に署名データの作成を行う処理モードに対応するものとして設定されていない場合（Ｓ９５でＮＧ）や、指定されたファイルがについてファイルハンドルが設定されていない場合（Ｓ９６でＮＧ）、ドライバは、上述したような署名データ（Ｂ）の作成を行わずに、そのままファイルシステムの復帰アドレスへの復帰処理を実行する（Ｓ１０５）。
【００６４】
また、上記モードチェックの結果、設定された処理モードがファイルオープン時に署名データを作成するモードでない場合は（モード値０〜３、８〜１１）、正常ステータスが設定された後に（Ｓ１０４）、ファイルシステムの復帰アドレスへの復帰処理が実行される（Ｓ１０５）。上記のように、ユーザのクローズ操作に基づいてアプリケーションからクローズ関数がファイルシステムに発行されると、ドライバにて署名データ（Ｂ）が自動的に作成され、その署名データ（Ｂ）がクローズ処理に係るファイルに付加された状態で当該ファイルがクローズされる。従って、ユーザは、特に署名の作成を意識することなく、所望のアプリケーションを立ち上げた状態で、ファイルクローズを行うだけで、署名データが添付された状態で当該ファイルがクローズされる。
【００６５】
上述した例では、オープンイベント発行の際に署名データのチェック、リードイベント発行の際に暗号化・圧縮されたファイルデータの復号・伸長、ライトイベント発行の際に暗号化・圧縮、クローズイベント発行の際に署名データの作成を行う処理モード（モード値１５：図１０参照）が設定されたが、他のモードが設定された場合であっても、当該設定された処理モードにて有効となるオープンイベント発行の際の処理、リードイベント発行の際の処理、ライトイベント発行の際の処理及びクローズイベント発行の際の処理のうちの１または複数の処理が行われる。
【００６６】
例えば、暗号化・圧縮化されたファイルデータがＣＤ−ＲＯＭ等の媒体から提供される場合等では、モード値１を設定することができる。この場合、ファイルオープンをした後に、リードイベントが発行されたときに、当該暗号化・圧縮されたファイルデータが自動的に復号・伸長され、ユーザが当該ファイルデータの利用を行うことができる。例えば、作成したファイルデータを暗号化・圧縮してフロッピー（登録商標）ディスク等の媒体に格納し、該媒体を他のシステムに供給する場合等では、モード値２を設定することができる。この場合、ファイルオープンした後、ライトイベントが発行されたときに、当該ファイルのデータが自動的に暗号化・圧縮された状態でフロッピィーディスク等の媒体に格納される。
【００６７】
また、例えば、ファイルに署名データを添付した状態でフロッピー（登録商標）ディスク等の媒体に格納し、該媒体を他のシステムに供給する場合等では、モード値３を設定することができる。この場合、ファイルオープンした後、リード、ライトのイベントに基づいた処理が実行され、更に、ファイルクローズのイベントが発行されたときに、当該クローズされるファイルに対して自動的に署名データが添付される。更に、例えば、署名データが添付されたファイルがＣＤ−ＲＯＭ等の媒体にて提供される場合等では、モード値４を設定することができる。この場合、ファイルのオープンイベントが発行されたときに、自動的に、当該ファイルのデータに基づいて署名データが作成され、その作成された署名データとファイルに添付された署名データが一致するか否かが判定される。そして、各署名データが一致する場合のみ、そのファイルのデータの利用が可能となる。
【００６８】
また、上述した例では、署名データがクローズ要求に係るファイルのデータ領域と異なる領域に追加されるようにしたが、署名データを他のファイルに格納し、その署名データのファイルを上記データのファイルに関連づけハードディスク２０等の記憶装置に格納することもできる。更に、上記例では、ファイルを格納する記憶装置は、ハードディスク２０であったが、通常のコンピュータシステムの記憶装置として使用できるものであれば特に限定されない。また、署名データのチェック及び暗号化・圧縮データの復号・伸長の少なくともいずれか一方を行う処理モード（モード値１、８または９）では、読み取り専用の記憶媒体（ＣＤ−ＲＯＭ等）を記憶装置として用いることができる。
【００６９】
上記例では、本発明のファイル処理ユニットの実施の形態となるドライバは、ＰＣカード内に構成されたが、ＩＣカードや他の外部装置内に構成することも可能である。更に、当該ドライバは、コンピュータシステム内で実行される他のプログラムとして実現することも可能である。上記例において、図８に示すステップＳ９８及びＳ１００での処理が第一の署名情報作成手段に対応し、ステップＳ１０１での処理が署名情報格納制御手段に対応する。また、特にステップＳ９８での処理が、上記第一の署名情報作成手段におけるファイル読み出し手段に対応し、当該ステップＳ１０１での処理は特に署名情報格納手段における署名情報付加手段に対応する。
【００７０】
図８に示すステップＳ９５、Ｓ９６、Ｓ９７での処理がクローズ要求に係るファイルに署名情報を付加すべきか否かを判定する署名付加判定手段に対応し、図４に示すステップＳ２４での処理がモード設定手段に対応し、特に、ステップＳ９７での処理がモード判定手段に対応する。また、図５に示すステップＳ３９及びＳ４１での処理が第二の署名情報作成手段に対応し、ステップＳ４２及びＳ４４での処理が署名一致判定手段に対応し、各ステップＳ４５、Ｓ４６での処理が判定結果作成手段に対応する。そして、特に、ステップＳ３９での処理がオープンファイル読み出し手段に対応する。
【００７１】
図５に示すステップＳ３５、Ｓ３６、Ｓ３７での処理が署名チェック判定手段に対応し、図４に示すステップＳ２４での処理がモード設定手段に対応し、特に、図５に示すステップＳ３７での処理がモード判定手段に対応する。また、更に、図８に示すステップＳ１０５での処理が第一の復帰手段に対応し、図５に示すステップＳ４７での処理が第二の復帰手段に対応する。
【００７２】
なお、本発明は上記実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変形例が考えられることは言うまでもない。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の一形態に係るファイル処理ユニットが適用されるコンピュータシステムのハードウエア構成を示すブロック図である。
【図２】図１に示すシステムにおいて、ドライバとファイルシステム（ＯＳ）との間でなされるドライバ登録のための処理の手順を示すフローチャートである。
【図３】図１に示すシステムにおいて、ドライバとファイルシステムとの間でなされる初期処理の手順を示すフローチャートである。
【図４】図１に示すシステムにおいて、アプリケーションとドライバとの間でなされる認証チェックおよびモード設定についての処理の手順を示すフローチャートである。
【図５】図１に示すシステムにおいて、アプリケーション、ファイルシステム、ドライバおよびハードディスクドライブユニットの間で行われるファイルオープンに関する処理の手順を示すフローチャートである。
【図６】図１に示すシステムにおいて、アプリケーション、ファイルシステム、ドライバおよびハードディスクドライブユニットの間で行われるリードに関する処理の手順を示すフローチャートである。
【図７】図１に示すシステムにおいて、アプリケーション、ファイルシステム、ドライバおよびハードディスクドライブユニットの間で行われるライトに関する処理の手順を示すフローチャートである。
【図８】図１に示すシステムにおいて、アプリケーション、ファイルシステム、ドライバおよびハードディスクドライブユニットの間で行われるファイルクローズに関する処理の手順を示すフローチャートである。
【図９】モードテーブルの例を示す図である。
【図１０】フォルダと処理モードとの関係についてのテーブルを示す図である。
【符号の説明】
【００７４】
１０ ＣＰＵ
１２ メモリユニット
１４ 入力ユニット
１６ 表示ユニット
１８ ハードディスクドライブユニット
２０ ハードディスク
２２ インタフェース回路
１００ ＰＣカード
【図１】
2008226255.tif 000003
【図２】
2008226255.tif 000004
【図３】
2008226255.tif 000005
【図４】
2008226255.tif 000006
【図５】
2008226255.tif 000007
【図６】
2008226255.tif 000008
【図７】
2008226255.tif 000009
【図８】
2008226255.tif 000010
【図９】
2008226255.tif 000011
【図１０】
2008226255.tif 000012