(57)【特許請求の範囲】
【請求項１】
コンピュータに、文書を管理させる文書管理プログラムにおいて、
前記コンピュータを、
複数の文書本体が保管された文書保管手段から、任意の文書本体の少なくとも一部を含む搬出文書が持ち出されたとき、前記文書を分割し、分割後の複数の分割文書における署名をそれぞれ計算し、前記分割文書毎に、前記分割文書の一部を検索キーワードとし、算出された前記各署名および前記検索キーワードを含むログをログ格納部に出力するログ出力手段、
前記ログの元文書の検出要求を受けたとき、前記検索キーワードを含む前記文書本体を前記文書保管手段から検索し、前記検索キーワードが前記文書本体に含まれていれば、前記文書保管手段内の前記検索キーワードを含む前記複数の文書本体それぞれを分割した文書の署名と、前記ログに含まれる前記検索キーワードを含む前記分割文書の署名とを、それぞれ比較し、結果に応じて前記ログ出力時の前記搬出文書に対応する前記文書本体の少なくとも一部を構成する元文書を検出する文書本体検出手段、
として機能させることを特徴とする文書管理プログラム。
【請求項２】
前記文書本体を分割した文書の各署名と前記ログに含まれる各署名とが所定箇所以上一致する前記文書本体を、前記文書本体の前記ログの元文書として検出することを特徴とする請求項１記載の文書管理プログラム。
【請求項３】
前記文書本体検出手段は、前記検索キーワードが前記文書本体に含まれていない場合、別個の前記検索キーワードを取得し、前記検索キーワードを含む前記文書本体を前記文書保管手段から検索する処理を、前記文書本体に含まれている前記検索キーワードが見つかるまで所定回数繰り返すことを特徴とする請求項１記載の文書管理プログラム。
【請求項４】
前記ログ出力手段は、前記各分割文書のバイト数と前記分割文書毎に作成された分割署名とを含むログを出力し、
前記文書本体検出手段は、前記検索キーワードを含む文書本体を前記文書保管手段から検索し、前記検索キーワードが前記文書本体に含まれていれば、前記分割文書のバイト数から前記文書本体の前記検索キーワードを含むエリアを特定して前記エリアの署名を作成し、前記文書本体に含まれている検索キーワードの前記分割署名と、前記エリアの署名とを比較することを特徴とする請求項１ないし３のいずれかに記載の文書管理プログラム。
【請求項５】
文書を管理させる文書管理方法において、
ログ出力手段が、複数の文書本体が保管された文書保管手段から、任意の文書本体の少なくとも一部の搬出文書が持ち出されたとき、前記文書を分割し、分割後の複数の分割文書における署名をそれぞれ計算し、前記分割文書毎に、前記分割文書の一部を検索キーワードとし、算出された前記各署名および前記検索キーワードを含むログをログ格納部に出力し、
文書本体検出手段が、前記ログの元文書の検出要求を受けたとき、前記検索キーワードを含む前記文書本体を前記文書保管手段から検索し、前記検索キーワードが前記文書本体に含まれていれば、前記文書保管手段内の前記検索キーワードを含む前記複数の文書本体それぞれを分割した文書の署名と、前記ログに含まれる前記検索キーワードを含む前記分割文書の署名とを、それぞれ比較し、結果に応じて前記ログ出力時に対応する前記文書本体の少なくとも一部を構成する元文書を検出する、
ことを特徴とする文書管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は文書管理プログラムおよび文書管理方法に関し、特に重要文書を管理する文書管理プログラムおよび文書管理方法に関する。
【背景技術】
【０００２】
近年、社外秘の情報や個人情報等の秘密情報が記載された電子文書（以下「重要文書」という）を管理する必要性が高まっている。この重要文書を管理する方法の一つとして、重要文書が格納されている格納庫から任意の文書が持ち出されたとき、その任意の文書がどの重要文書を参照したものであるかを検出する方法が知られている。この検出方法しては、例えば、以下（１）〜（３）に挙げる方法が挙げられる。
（１）重要文書を別の保管場所に保存したとき、保存ファイル名称をログとして出力する方法。
（２）重要文書を別の保管場所に保存したとき、その文書全体の署名(メッセージ認証コードまたは、ハッシュコード)をログとして出力する方法（例えば、特許文献１参照）。
（３）重要文書を別の保管場所に保存したときに、その重要文書そのものをバックアップファイルとして保存する方法。【０００３】
以下、これらの（１）〜（３）に挙げた方法を具体的に説明する。
（１）の方法は、重要文書のファイル名がログとして出力され、保存ファイル名でログを解析すれば、いつ、誰が、どのパソコンから重要文書を持ち出したかを検出することができる。なお、ログとしては、保存日時、保存ユーザID、パソコンの固有情報などが出力される。
（２）の方法は、重要文書の署名がログとして出力され、署名を解析すれば、いつ、誰が、どのパソコンから重要文書を持ち出したかを検出することができる。
（３）の方法は、重要文書そのものがバックアップとして保存され、そのバックアップ文書と重要文書との内容を比較することによって、重要文書と同じ文書か、または重要文書の類似文書か否かを解析することができ、いつ、誰が、どのパソコンから重要文書を持ち出したかを検出することができる。
【特許文献１】特開平１１−１９６３９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術には以下のような問題があった。
前述した（１）の方法は、重要文書を別の保管場所に保存するときに、ファイル名を別のファイル名で保存すると、参照元の重要文書が分からない。すなわち、ログを解析しても、何の文書が持ち出されたのかを知ることができない。【０００５】
前述した（２）の方法は、重要文書の一部分の改ざん、一部分の切り出し、または一部分の追加による持ち出しの場合、本技術のログでは、保存文書全体の署名しか出力していないため、元の重要文書の署名とは異なる。このため、参照元の重要文書が分からない。すなわち、署名を解析しても、何の文書が持ち出されたのかを知ることができない。【０００６】
前述した（３）の方法は、文書を保存するときに、ログとは別に保存時の文書ファイルをバックアップとして残すので、バックアップ文書と重要文書の内容とを比較すれば、バックアップ文書と参照元の重要文書との同一性または類似性が検出できる。しかし、文書全体のバックアップを取るため、保存に必要な容量が膨大なものとなる。【０００７】
本発明はこのような点に鑑みてなされたものであり、ファイル名の変更や、ファイルの一部分の改ざん、一部分の切り出し、または一部分の追加が行われた文書であっても、文書全体を保存することなく、元文書の検出を行うことができる文書管理プログラムおよび文書管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明では上記問題を解決するために、図１に示すような文書管理プログラムが提供される。本発明に係る文書管理プログラムは、コンピュータに、文書を管理させるためのものである。この文書管理プログラムを実行するコンピュータ１は、ログ出力手段２と、文書本体検出手段３とを有する。【０００９】
ログ出力手段２は、複数の文書Ｄｏｃ（１）、Ｄｏｃ（２）、・・・、Ｄｏｃ（ｎ）が保管された文書保管庫４から、任意の文書、例えば、Ｄｏｃ（１）の少なくとも一部を含む文書Ａが持ち出されたとき、文書Ａを分割し、分割後の複数の分割文書ＤＡ（１）、ＤＡ（２）・・・、ＤＡ（ｍ）における署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）をそれぞれ計算し、算出された署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）を含むログをログ格納部５に出力する。【００１０】
文書本体検出手段３は、ログ格納部５に格納されたログの元文書の検出要求を受けたとき、文書保管庫４内の複数の文書Ｄｏｃ（１）、Ｄｏｃ（２）、・・・、Ｄｏｃ（ｎ）それぞれを分割した文書の署名、例えば、Ｄｏｃ（１）の署名ＤＳｉｇｎ（１）、ＤＳｉｇｎ（２）、・・・、Ｄｓｉｇｎ（ｊ）と、算出された署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）とを、それぞれ比較し、結果に応じてログ出力時の文書Ａに対応する文書Ｄｏｃ（１）の一部を構成する元文書を検出する。【００１１】
このような文書管理プログラムを実行するコンピュータによれば、文書保管庫４から、Ｄｏｃ（１）の少なくとも一部を含む文書Ａが持ち出されると、ログ出力手段２により、持ち出された文書Ａが分割された複数の分割文書ＤＡ（１）、ＤＡ（２）・・・、ＤＡ（ｍ）における署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）が、それぞれ計算され、算出された署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）を含むログがログ格納部５に出力される。その後、ログの元文書の検出要求を受けると、文書本体検出手段３により、署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）と文書本体を分割した文書の署名ＤＳｉｇｎ（１）、ＤＳｉｇｎ（２）、・・・、Ｄｓｉｇｎ（ｊ）とが、それぞれ比較され、結果に応じて文書Ａに対応する文書Ｄｏｃ（１）の少なくとも一部を構成する元文書が検出される。【００１２】
また、上記課題を解決するために、文書を管理させる文書管理方法において、ログ出力手段が、複数の文書本体が保管された文書保管手段から、任意の文書本体の少なくとも一部の搬出文書が持ち出されたとき、前記文書を分割し、分割後の複数の分割文書における署名をそれぞれ計算し、算出された前記各署名を含むログをログ格納部に出力し、文書本体検出手段が、前記ログの元文書の検出要求を受けたとき、前記文書保管手段内の前記複数の文書本体それぞれを分割した文書の署名と、前記ログに含まれる署名とを、それぞれ比較し、結果に応じて前記ログ出力時に対応する前記文書本体の少なくとも一部を構成する元文書を検出する、ことを特徴とする文書管理方法が提供される。【００１３】
このようなデータベース再編成方法によれば、複数の文書本体が保管された文書保管手段から、任意の文書本体の少なくとも一部の搬出文書が持ち出されると、ログ出力手段により搬出文書が分割され、分割後の複数の分割文書における署名がそれぞれ計算され、算出された各署名を含むログがログ格納部に出力される。その後、前記ログの元文書の検出要求を受けたとき、文書本体検出手段により、文書保管手段内の複数の文書本体それぞれを分割した文書の署名と、ログに含まれる署名とが、それぞれ比較され、結果に応じてログ出力時に対応する文書本体の少なくとも一部を構成する元文書が検出される。
【発明の効果】
【００１４】
本発明は、搬出文書のファイル名が重要文書のファイル名と異なっていたり、搬出文書の一部分が改ざん、切り出しまたは追加されていたりしても、文書保管手段内の複数の重要文書それぞれを分割した分割文書の署名と、ログに含まれる署名とを、それぞれ比較することによって、持ち出し文書全体のバックアップをとることなく、確実に、ログの元文書の検出を行うことができる。これにより、原本ファイルから搬出文書に対応する部分の元文書を知ることができる、すなわち、搬出された文書の内容を知ることができる。【００１５】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に適用される発明の概念図である。
【図２】本実施の形態のコンピュータのハードウェア構成例を示す図である。
【図３】本実施の形態を実現するための機能を示すブロック図である。
【図４】本実施の形態のコンピュータのプログラム構成を示した図である。
【図５】本実施の形態における管理簿に記載される項目を示す図である。
【図６】本実施の形態の分割ファイルを示す概略図である。
【図７】ファイルの種類、署名作成分割数および検索キーワードのバイト数の関係を示す図である。
【図８】管理情報作成の手順を示すフローチャートである。
【図９】ファイル検出手段の検出処理の手順を示すフローチャートである。
【図１０】ファイル検出手段の検出処理の手順を示すフローチャートである。
【図１１】検出処理ルーチンの手順を示すフローチャートである。
【図１２】検出処理ルーチンの手順を示すフローチャートである。
【図１３】変形例４のファイルの種類、署名作成分割数および検索キーワードのバイト数の関係を示す図である。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面を参照して詳細に説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。【００１８】
図１は、実施の形態に適用される発明の概念図である。本実施の形態の文書管理プログラムは、コンピュータに以下の処理を実行させることができ、このときコンピュータ１は、文書管理装置として機能する。【００１９】
文書登録手段７は、社外秘の情報や個人情報等の秘密情報が格納された文書（以下「重要文書」と言う）を文書保管庫４に登録する。
文書保管庫４は、複数の重要文書Ｄｏｃ（１）、Ｄｏｃ（２）、・・・、Ｄｏｃ（ｎ）を保管するために設けられている。重要文書Ｄｏｃ（１）、Ｄｏｃ（２）、・・・、Ｄｏｃ（ｎ）の更新、保存などは、特別の権限を有する管理者のみが行うことができるものとする。【００２０】
文書持ち出し手段６は、重要文書と内容が同じ、または重要文書に対してファイル名の変更、内容の一部改ざん、内容の一部切り出しおよび内容の追加等が行われた文書Ａを持ち出し、文書保管庫４以外の場所に保管させるためのものである。図１では、文書保管庫４内に格納された文書Ａが、文書持ち出し手段６に持ち出され、コンピュータ１の外部のメディアＭに保管される場合を示している。【００２１】
ログ出力手段２は、文書登録手段７により登録された重要文書Ｄｏｃ（１）、Ｄｏｃ（２）、・・・、Ｄｏｃ（ｎ）が保管された文書保管庫４から、文書Ａが文書持ち出し手段６に持ち出されたとき、持ち出された文書Ａを分割した複数の分割文書ＤＡ（１）、ＤＡ（２）・・・、ＤＡ（ｍ）における署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）をそれぞれ計算する。また、ログ出力手段２は、算出された署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）を含むログをログ格納部５に出力する。【００２２】
文書本体検出手段３は、文書Ａの元の文書を検出する要求を受けたとき、署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）と重要文書Ｄｏｃ（１）を分割した文書の署名ＤＳｉｇｎ（１）、ＤＳｉｇｎ（２）、・・・、ＤＳｉｇｎ（ｊ）とを、それぞれ比較することによって、文書Ａの持ち出し元である重要文書Ｄｏｃ（１）を検出する。【００２３】
このような文書管理装置によれば、文書保管庫４から、文書Ａが文書持ち出し手段６に持ち出されると、ログ出力手段２により文書Ａを分割した分割文書ＤＡ（１）、ＤＡ（２）・・・、ＤＡ（ｍ）における署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）がそれぞれ計算される。また、ログ出力手段２により、算出された署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）を含むログがログ格納部５に出力される。【００２４】
その後、ログの元文書の検出要求を受けると、文書本体検出手段３により、署名Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）と文書本体を分割した文書の署名ＤＳｉｇｎ（１）、ＤＳｉｇｎ（２）、・・・、Ｄｓｉｇｎ（ｊ）とが、それぞれ比較され、結果に応じてログ出力時の文書Ａに対応する重要文書の少なくとも一部を構成する元文書が検出される。【００２５】
このようにして、署名を用いることで、文書Ａのファイル名が重要文書のファイル名と異なっていたり、文書Ａの一部分が改ざん、切り出しまたは追加されていたりしても、文書Ａ全体のバックアップを取ることなく、容易かつ確実に文書Ａの持ち出し元である重要文書の検出を行うことができる。これにより、取り出された文書の内容を知ることができる。【００２６】
以下、本発明の実施の形態を具体的に説明する。
図２は、本実施の形態のコンピュータのハードウェア構成例を示す図である。本発明の実施の形態の文書管理プログラムおよび文書管理方法は、コンピュータ１００により実現される。【００２７】
コンピュータ１００は、以下の様なハードウェア構成を有している。
コンピュータ１００は、ＣＰＵ(Central Processing Unit)１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０１ａを介してＲＡＭ(Random Access Memory)１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５およびドライブ１０６が接続されている。【００２８】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。また、ＨＤＤ１０３には、ＯＳやアプリケーションプログラム等が格納される。【００２９】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０１ａを介してＣＰＵ１０１に送信する。【００３０】
ドライブ１０６は、メディアＭからのデータの読み取りおよびメディアＭに対してのデータの書き込みを行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。【００３１】
以下、図２に示す構成のシステムにおける本実施の形態の処理について詳細に説明する。
図３は、本実施の形態を実現するための機能を示すブロック図である。【００３２】
コンピュータ１００は、複数の原本ファイル（テキストファイル）を記憶する原本ファイル記憶部１１０、原本ファイル記憶部１１０に記憶されているデータを管理するファイルシステム１２０、ファイルシステム１２０を介して原本ファイル記憶部１１０に原本ファイルを入力し、また、原本ファイル記憶部１１０から原本ファイルを出力するファイル入出力部１３０、原本ファイル記憶部１１０からファイル入出力部１３０へのファイルの入力およびファイル入出力部１３０からのファイルの出力を監視するファイル入出力監視部１４０、ファイルの管理情報を作成する管理情報作成手段１５０、管理情報を管理するための管理簿１６１を記憶する管理簿記憶部１６０およびファイル検出手段１７０を有している。【００３３】
原本ファイル記憶部１１０は、管理対象の電子データの原本ファイルを記憶する記憶手段である。
ファイル入出力部１３０は、要求に応じて原本ファイルの一部または全部を含むファイル（以下、「搬出ファイル」と言う）を生成し、外部のメディア（記憶装置）Ｍに移動または複写する。【００３４】
なお、以下では原本ファイル記憶部１１０からファイル入出力部１３０に原本ファイルを出力することを「原本ファイルを持ち出す」と言う。
入出力監視部１４０は、原本ファイルの持ち出し時に、管理情報作成手段１５０に搬出ファイルを複写する。【００３５】
管理情報作成手段１５０は、入出力監視部１４０から受け取った搬出ファイルから管理情報（ログ）を作成し、その管理情報を管理簿記憶部１６０に格納する。
ファイル検出手段１７０は、管理簿記憶部１６０に格納された管理簿と原本ファイル記憶部１１０に記憶されている原本ファイルとを用いて、搬出ファイルの持ち出し元である原本ファイルを検出する。また、ファイル検出手段１７０は、検出結果をモニタ１１に出力する。【００３６】
なお、ファイル検出手段１７０の検出動作（作用）については、後に詳述する。
次に、ファイル入出力監視部とＯＳやアプリケーション等のプログラムとの関係について説明する。【００３７】
図４は、本実施の形態のコンピュータのプログラム構成を示した図である。図２と同じものには同じ番号を付し、説明は省略する。
本発明に係るファイル入出力監視部１４０は、システムが提供するＯＳ１９０と一体化して動作する。文書管理プログラムが起動しているとき、原本ファイル記憶部１１０に格納された原本ファイルの、ファイル入出力部１３０への持ち出し処理を実行させる際、ＯＳ１９０による原本ファイルの持ち出し処理を実行すると同時に、ファイル入出力監視部１４０が、管理情報作成手段１５０に搬出ファイルを複写する。【００３８】
次に、管理簿記憶部１６０に格納される管理簿１６１について説明する。
図５は、本実施の形態における管理簿１６１に記載される項目を示す図である。管理簿１６１には、原本ファイルの持ち出し時に作成される管理情報が記載されている。この管理情報は、履歴情報１６２および署名情報１６３で構成される。【００３９】
履歴情報１６２は、ファイルを保存した年月日を示す「出力年月日」、ファイルを保存した時分秒を示す「出力時分秒」、ファイル保存を行ったコンピュータの名称を示す「マシン名」、ファイル保存を行ったコンピュータのＩＰ（Internet Protocol）アドレスを示す「ＩＰアドレス」、ファイル保存を行ったコンピュータのＭＡＣ（Media Access Control）アドレスを示す「ＭＡＣアドレス」、ファイル保存を行ったコンピュータ上のログインＩＤを示す「ユーザ名」、保存を行ったファイルの名称を示す「ファイル名」、保存を行ったファイルのサイズ（バイト単位）を示す「ファイルサイズ」の項目で構成される。【００４０】
署名情報１６３は、保存を行ったファイル全体の署名を示す「全体署名」、ファイルの分割数を示す「署名作成分割数」、分割されたファイル（以下「分割ファイル」と言う）の１分割分の最初のＫバイト（Ｋは正の実数）分の単語、文節、または文章を抽出したキーワードを示す「検索キーワード」、分割ファイルの１分割ファイル当たりのバイト数を示す「署名対象バイト数」、分割ファイルの署名を示す「分割署名」の項目で構成される。【００４１】
なお、検索キーワードのＫバイトについては後に詳述する。
また、検索キーワード、署名対象バイト数および分割署名については、個々の分割ファイルついてそれぞれ作成され、管理簿１６１に記憶される。【００４２】
このような署名情報１６３は、署名情報作成動作によって作成される。なお、署名情報作成動作については、後に詳述する。
次に、署名情報１６３の具体例について説明する。【００４３】
図６は、本実施の形態の分割ファイルを示す概略図である。図６には、一例として、搬出ファイルＡ１を３つの分割ファイルＤＡ（１）、ＤＡ（２）、ＤＡ（３）に分割した場合の例が示されている。【００４４】
全体署名ＡＳ（１）は、搬出ファイルＡ１全体の署名である。この署名は、搬出ファイルＡ（１）に例えば、ＨＡＳＨ関数等を用いることにより作成される。管理簿の「全体署名」のデータ内容には、「ＡＳ（１）」が記載される。【００４５】
また、署名作成分割数は３であるので、管理簿の「署名作成分割数」のデータ内容には、「３」が記載される。
検索キーワードは、各分割ファイルの共通の部分が抽出される。図６では、各分割文書内の先頭からＫバイト分の検索キーワードが抽出されている。管理簿の「検索キーワード」のデータ内容には、分割ファイルＤＡ（１）、ＤＡ（２）、ＤＡ（３）にそれぞれ対応する検索キーワードが記載される。【００４６】
また、管理簿の「署名対象バイト数」のデータ内容には、分割ファイルＤＡ（１）、ＤＡ（２）、ＤＡ（３）のそれぞれのバイト数が記載される。
分割署名ＤＳ（１）、ＤＳ（２）、ＤＳ（３）は、分割ファイルＤＡ（１）、ＤＡ（２）、ＤＡ（３）に、それぞれ例えば、ＨＡＳＨ関数等を用いることにより作成される。図６に示す例では、管理簿の「分割署名」のデータ内容には、「ＤＳ（１）」、「ＤＳ（２）」、「ＤＳ（３）」が記載される。【００４７】
次に、署名作成分割数と検索キーワードのバイト数の算出方法について説明する。
図７は、ファイルの種類、署名作成分割数および検索キーワードのバイト数の関係を示す図である。【００４８】
本実施の形態では、図７に示すように、「ファイルの種類」（一例として履歴書、決裁書、顧客名簿等）、「署名作成分割数」および「検索キーワードのバイト数」が予め記述された対照表を用いて署名作成分割数および検索キーワードを求める。この対照表は、ＨＤＤ１０３内に予め格納されている。【００４９】
なお、対照表は外部ファイル（図示せず）に格納して、文書管理プログラムの起動時や分割ファイルの分割時に読み込んでもよい。
また、検索キーワードのバイト数は、計算式を用いて算出しても良いし、検量線等を用いて算出してもよい。【００５０】
また、搬出ファイルがどの「ファイルの種類」に対応するかの判断は、例えば、原本ファイルの拡張子から決定する方法や、別個に履歴書や決裁書や顧客名簿等の特徴が定義された分類表を用意し、その分類表を参照して決定する方法等が挙げられる。【００５１】
次に、署名情報作成動作について説明する。
図８は、署名情報作成の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。【００５２】
原本ファイルが持ち出されると、管理情報作成手段１５０は、入出力監視部１４０から、搬出ファイルを取得する（ステップＳ１１）。
次に、搬出ファイル全体の署名を作成する（ステップＳ１２）。【００５３】
そして、対照表を参照し、搬出ファイルの全バイト数を、搬出ファイルの種類に対応する署名作成分割数で割って、各分割ファイルの署名対象バイト数を算出する（ステップＳ１３）。【００５４】
次に、未署名作成バイト数として搬出ファイルの全バイト数を設定する（ステップＳ１４）。
その後、分割署名を作成していない分割ファイルがあるか否かを判断する（ステップＳ１５）。分割署名を作成していない分割ファイルがある場合は（ステップＳ１５のＹｅｓ）、搬出ファイルから署名対象バイト数分のファイルを読み込む（ステップＳ１６）。【００５５】
次に、ステップＳ１６で読み込んだファイルを今回の処理の分割ファイルとし、この分割ファイルのバイト数を今回の処理の署名対象バイト数としてＲＡＭ１０２にて保持する（ステップＳ１７）。【００５６】
そして、今回の処理の分割ファイルの先頭からＫバイト分を今回の処理の検索キーワードとし、ＲＡＭ１０２にて保持する（ステップＳ１８）。
次に、今回の処理の分割ファイルから分割署名を作成し、ＲＡＭ１０２にて保持する（ステップＳ１９）。【００５７】
その後、未署名作成バイト数から今回の分割ファイルの署名対象バイト数を減算して、その値を新たな未署名作成バイト数とする（ステップＳ２０）。その後、ステップＳ１５に戻る。【００５８】
一方、ステップＳ１５で、分割署名を作成していない分割ファイルがない場合（全ての分割ファイルに対して分割署名が作成された場合）は（ステップＳ１５のＮｏ）、ＲＡＭ１０２に保持されている各種署名情報と、別途作成された履歴情報とを管理簿記憶部１６０に出力して（ステップＳ２１）、署名情報作成動作を終了する。【００５９】
次に、ファイル検出手段による検出動作（作用）について説明する。
図９および図１０は、ファイル検出手段の検出動作の手順を示すフローチャートである。以下、図９および図１０に示す処理をステップ番号に沿って説明する。【００６０】
まず、管理簿記憶部１６０から検出対象の搬出ファイルの管理簿１６１を取り出し、管理情報を取得する（ステップＳ３１）。
次に、管理情報内の履歴情報から搬出ファイルの出力日時（以下「ｎＤａｔｅ」と言う）を取得する（ステップＳ３２）。【００６１】
次に、対照表を参照して搬出ファイルに対応する原本ファイルのうちの１つの原本ファイル（以下「今回の原本ファイル」と言う）の最終更新日時（以下「ｏＤａｔｅ」と言う）を取得する（ステップＳ３３）。【００６２】
そして、ｎＤａｔｅがｏＤａｔｅ以降の日時か否かを判断する（ステップＳ３４）。
ｎＤａｔｅがｏＤａｔｅよりも前の日時のとき（ステップＳ３４のＮｏ）は、搬出ファイルを、今回の原本ファイルの派生ファイルと判断せず、ステップＳ３１に戻る。【００６３】
一方、ｎＤａｔｅがｏＤａｔｅ以降の日時のとき（ステップＳ３４のＹｅｓ）は、履歴情報から搬出ファイルのファイルサイズ（以下「ｎＳｉｚｅ」と言う）を取得する（ステップＳ３５）。【００６４】
このステップＳ３２からステップＳ３５の、更新日付比較による、ファイル検出手段１７０の検出動作の処理対象とする搬出ファイルの絞り込みについては、簡易的に処理を行いたい場合（簡易検索処理）にのみ採用し、全件を対象としたい場合（全件検索処理）には採用しないよう構成することも好ましい。この場合、ステップＳ３１の前で簡易検索処理と全件検索処理とを選択的に識別可能とするような図示外の入力情報に基づき、いずれの処理が選択されているか識別して処理を分岐するよう構成すればよい。【００６５】
次に、原本ファイルのファイルサイズ（以下「ｏＳｉｚｅ」と言う）を取得する（ステップＳ３６）。
次に、ｎＳｉｚｅとｏＳｉｚｅとが等しいか否かを判断する（ステップＳ３７）。【００６６】
ｎＳｉｚｅとｏＳｉｚｅとが等しくなければ（ステップＳ３７のＮｏ）、検出処理ルーチン（ステップＳ３８）に移行する。
検出処理ルーチンから復帰後に、ステップＳ４３に移行する。【００６７】
一方、ｎＳｉｚｅとｏＳｉｚｅとが等しければ（ステップＳ３７のＹｅｓ）、管理情報から搬出ファイル全体の署名（以下「ｎＳｉｇｎ」と言う）を取得する（ステップＳ３９）。【００６８】
次に、原本ファイルの全体の署名（以下「ｏＳｉｇｎ」と言う）を作成する（ステップＳ４０）。
そして、ｎＳｉｇｎとｏＳｉｇｎとが等しいか否かを判断する（ステップＳ４１）。【００６９】
ｎＳｉｇｎとｏＳｉｇｎとが等しくなければ（ステップＳ４１のＮｏ）、検出処理ルーチン（ステップＳ３８）に移行する。
一方、ｎＳｉｇｎとｏＳｉｇｎとが等しければ（ステップＳ４１のＹｅｓ）、搬出ファイルを、今回の原本ファイルの派生ファイルとみなし、この履歴情報および管理情報を原本ファイルの情報として出力する（ステップＳ４２）。【００７０】
次に、搬出ファイルと署名の比較を行っていない原本ファイルがあるか否かを判断する（ステップＳ４３）。
搬出ファイルと署名の比較を行っていない原本ファイルがある場合は（ステップＳ４３のＮｏ）、ステップＳ３１に戻って引き続き検出動作を行う。
一方、搬出ファイルと比較を行っていない原本ファイルがない場合は（ステップＳ４３のＹｅｓ）、検出動作を終了する。【００７１】
本実施の形態では、ステップＳ３１〜Ｓ３４、ステップＳ３７、ステップＳ３９〜Ｓ４２を行うことによって、検出動作の時間を短縮することができる。
なお、本実施の形態では、搬出ファイルと署名の比較を行っていない原本ファイルがない場合、すなわち、搬出ファイルの署名と、対照表を参照して得られた全ての原本ファイルの署名とを比較した後に検出動作を終了したが、これに限らず、搬出ファイルを今回の原本ファイルの派生ファイルとみなした場合、搬出ファイルと署名の比較を行っていない原本ファイルがあっても検出動作を終了してもよい。【００７２】
図１１および図１２は、検出処理ルーチンの手順を示すフローチャートである。以下、図１１および図１２に示す処理をステップ番号に沿って説明する。
まず、管理情報から署名作成分割数（以下「ｈＭａｘ」と言う）を取得する（ステップＳ５１）。【００７３】
次に、署名作成分割数カウンタの値（以下「ｈＣｎｔ」と言う）を１に設定する（ステップＳ５２）。
次に、ｈＣｎｔとｈＭａｘとが等しいか否かを判断する（ステップＳ５３）。【００７４】
ｈＣｎｔとｈＭａｘとが等しくない場合（ステップＳ５３のＮｏ）は、管理情報から検索キーワードを取得する（ステップＳ５４）。
次に、取得した検索キーワードで原本ファイルを検索する（ステップＳ５５）。【００７５】
そして、原本ファイルに検索キーワードがヒットする部分があるか否かを判断する（ステップＳ５６）。
原本ファイルに検索キーワードがヒットしなければ（ステップＳ５６のＮｏ）、ＲＡＭ１０２に格納されている不一致レジスタの値（Ｍ）をインクリメントし（ステップＳ５７）、ステップＳ６４に移行する。【００７６】
一方、原本ファイルに検索キーワードがヒットすれば（ステップＳ５６のＹｅｓ）、管理情報から署名対象バイト数を取得する（ステップＳ５８）。
次に、管理情報から分割署名を取得する（ステップＳ５９）。【００７７】
次に、原本ファイルに含まれる検索キーワードの先頭位置からステップＳ５８で取得した署名対象バイト数分のファイルを取得し、このファイルの署名を作成する（ステップＳ６０）。【００７８】
そして、ステップＳ５９で取得した分割署名とステップＳ６０で作成した署名とが一致するか否かを判断する（ステップＳ６１）。
分割署名と原本ファイルで作成した署名とが一致しなければ（ステップＳ６１のＮｏ）、分割ファイルの前回ヒットした検索キーワードの次の位置を確認して（ステップＳ６２）、ステップＳ５６に戻る。【００７９】
一方、分割署名と原本ファイルで作成した署名とが一致すれば（ステップＳ６１のＹｅｓ）、ＲＡＭ１０２に格納されている一致レジスタの値（Ｎ）をインクリメントする（ステップＳ６３）。【００８０】
次に、ｈｃｎｔをインクリメントし（ステップＳ６４）、ステップＳ５３に戻る。
そして、これらステップＳ５３〜ステップＳ６４を署名作成分割数分繰り返し、ｈＣｎｔとｈＭａｘとが等しい場合（ステップＳ５３のＹｅｓ）は、一致レジスタの値（Ｎ）と不一致レジスタの値（Ｍ）とを用いて、類似度Ｌ＝Ｎ／（Ｎ＋Ｍ）を求める（ステップＳ６５）。
次に、この類似度Ｌを、予め設定しておいた類似度のしきい値ＬＬと比較する（ステップＳ６６）。【００８１】
Ｌ＜ＬＬのときは（ステップＳ６６のＮｏ）、搬出ファイルを原本ファイルの派生ファイルとみなさずに、次の原本ファイルを読み込んで（ステップＳ６７）、ステップＳ５３に戻り、この読み込んだ原本ファイルに対して前述した動作と同様の動作を行う。【００８２】
一方、Ｌ≧ＬＬのときは（ステップＳ６６のＹｅｓ）、搬出ファイルを原本ファイルの派生ファイルとみなし、管理情報の各項目をグラフィック処理装置１０４を介してモニタ１１に表示する。【００８３】
このように本実施の形態では、ファイル名の変更、ファイル内容の一部改ざん、ファイルの一部切り出しおよびファイル内容の追加のうちのいずれか１つまたは複数が行われた搬出ファイルが持ち出されても、管理情報作成手段１５０が、入出力監視部１４０から受け取った搬出ファイルから管理情報を作成し、原本ファイルにおける搬出ファイルの検索キーワードとヒットした部分の署名を作成し、この部分の署名と搬出ファイルの分割署名とを比較することによって、搬出ファイルから該当する原本ファイルを検出することができる。これにより、原本ファイルから持出文書に対応する部分の元文書を知ることができるため、取り出された文書の内容を知ることができる。【００８４】
また、搬出ファイル全体のバックアップを取る必要がないため、保存容量の増大を防止することができる。
なお、本実施の形態では、管理簿に記載されたファイルに対応する原本ファイルに対して検出動作を行ったが、これに限らず、例えば、全ての原本ファイルに対して検出動作を行ってもよい。【００８５】
ところで、本実施の形態では、対照表を用いて搬出ファイルの署名作成分割数および検索キーワードのバイト数を決定したが、これに限らず、以下の変形例を用いることもできる。【００８６】
（変形例１）
予め管理者が署名作成分割数を１００分割、検索キーワードのバイト数を８バイト等、署名作成分割数および検索キーワードのバイト数を決定する。【００８７】
（変形例２）
原本ファイルの種類に関わらず、署名作成分割数および検索キーワードのバイト数を割合で決定する。この割合は、単純に百分率でも良いし、その他の割合計算によるものでもよい。但し、ファイルの容量により検索キーワードのバイト数が、極端に小さい値または、大きい値になる可能性があるので、それぞれの限界値を決定する。これは、原本ファイルの種類、大きさなどにより決定し、ＨＤＤ１０３内または、外部ファイルに格納する。【００８８】
割合によって検索キーワードのバイト数を決めるときは、まず、署名作成分割数を決定する。そして、その署名作成分割数が限界値以内か否かを確認する。
例えば、搬出ファイルを１００分割するときに、１分割の最小バイト数を６４バイト（約１行分を想定）とした場合、原本ファイルのバイト数を署名作成分割数で割った結果が６３バイト以下の場合は、１分割当たりの分割ファイルを６４バイトとし、署名作成分割数を変更する処理を行う。この場合の署名作成分割数は、原本ファイルのバイト数／６４で求められる。また、１分割の最大バイト数を４０９６バイト（約１／２ページ分を想定）とした場合、原本ファイルのバイト数を署名作成分割数で割った結果が４０９７バイト以上の場合は、１分割当たりの分割ファイルを４０９６バイトとし、署名作成分割数を変更する処理を行う。この場合の分割数は、原本ファイルのバイト数／４０９６で求められる。【００８９】
署名作成分割数が決定すると、次に検索キーワードの割合を決定する。そして、その検索キーワードの割合が、分割ファイルに適応するか否かを確認する。
例えば、署名対象バイト数に対する検索キーワードのバイト数の百分率をａ％とした場合、検索キーワードのバイト数は、（分割ファイルのバイト数）／（署名作成分割数）×（ａ／１００）で求められる。【００９０】
この結果、例えば、検索キーワードが７バイト以下の時は、検索キーワードを８バイトとする。また、検索キーワードが１２９バイト以上の時は、検索キーワードを１２８バイトとする。【００９１】
（変形例３）
個々の原本ファイルの情報に基づいて署名作成分割数や検索キーワードのバイト数を決定する。【００９２】
（変形例４）
図１３は、変形例４のファイルの種類、署名作成分割数および検索キーワードのバイト数の関係を示す図である。【００９３】
変形例４では、実施形態で述べた対照表を用いる方法および変形例１〜３を組み合わせる。例えば、対照表を参照して、原本ファイルが履歴書であれば、署名作成分割数を５、検索キーワードを１６とし、原本ファイルが決裁書であれば変形例２で述べたように署名作成分割数および検索キーワードのバイト数を割合で決定する。【００９４】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、コンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disk)などがある。【００９５】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。【００９６】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。【００９７】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【００９８】
１  コンピュータ
２  ログ出力手段
３  文書本体検出手段
４  文書保管庫
５  ログ格納部
１００  コンピュータ
１１０  原本ファイル記憶部
１５０  管理情報作成手段
１６０  管理簿記憶部
１７０  ファイル検出手段
Ｄｏｃ（１）、Ｄｏｃ（２）・・・、Ｄｏｃ（ｎ）  重要文書
ＤＡ（１）、ＤＡ（２）、ＤＡ（３）・・・、ＤＡ（ｍ）  分割文書
Ｓｉｇｎ（１）、Ｓｉｇｎ（２）、・・・、Ｓｉｇｎ（ｍ）  署名
ＤＳｉｇｎ（１）、ＤＳｉｇｎ（２）、・・・、Ｄｓｉｇｎ（ｊ）  署名
【図１】
0004615010.tif 000002
【図２】
0004615010.tif 000003
【図３】
0004615010.tif 000004
【図４】
0004615010.tif 000005
【図５】
0004615010.tif 000006
【図６】
0004615010.tif 000007
【図７】
0004615010.tif 000008
【図８】
0004615010.tif 000009
【図９】
0004615010.tif 000010
【図１０】
0004615010.tif 000011
【図１１】
0004615010.tif 000012
【図１２】
0004615010.tif 000013
【図１３】
0004615010.tif 000014