(57)【要約】      （修正有）【課題】ファイルが管理下から独立しても改訂情報の保証が可能なファイル管理装置、ファイル管理方法、及びこれらを実現するプログラムを提供する。【解決手段】管理サーバ１０において、特徴値算出部１６は、新バージョンのファイルに対して、そのファイル内容に一方向関数であるハッシュ関数を適用し、これにより得られるハッシュ値を特徴値として算出する。特徴値結合部１７は、新バージョンのファイルの特徴値と旧バージョンのファイルの特徴値とを結合して結合値を作成する。証明情報生成部１８は、結合値を含めた証明情報を生成する。そして、保存部（保存手段）１９は、証明情報生成部１８により生成されたデジタル署名などの証明情報を、新バージョンのファイルに関連付けて管理データベースに保存する。【選択図】図２
2007304888.tif 000002
【特許請求の範囲】
【請求項１】
ファイルの改訂情報を管理するファイル管理装置であって、
改訂されたファイルから、ファイル内容に基づいて定められる特徴値を算出する算出手段と、
前記改訂されたファイルの特徴値と改訂される前のファイルの特徴値とを含む証明情報を生成する生成手段と、
前記証明情報を前記改訂されたファイルに関連付けて保存する保存手段と、
を備えることを特徴とするファイル管理装置。
【請求項２】
前記特徴値は、ファイル内容に対してハッシュ関数を適用することによりハッシュ値として算出される請求項１に記載のファイル管理装置。
【請求項３】
ファイルの改訂情報を管理するファイル管理方法であって、
改訂されたファイルから、ファイル内容に基づいて定められる特徴値を算出する算出ステップと、
前記改訂されたファイルの特徴値と改訂される前のファイルの特徴値とを含む証明情報を生成する生成ステップと、
前記証明情報を前記改訂されたファイルに関連付けて保存する保存ステップと、
を備えることを特徴とするファイル管理方法。
【請求項４】
コンピュータに、
改訂されたファイルから、ファイル内容に基づいて定められる特徴値を算出する算出ステップと、
前記改訂されたファイルの特徴値と改訂される前のファイルの特徴値とを含む証明情報を生成する生成ステップと、
前記証明情報を前記改訂されたファイルに関連付けて保存する保存ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの改訂情報を管理するファイル管理装置、ファイル管理方法、及びこれらを実現するプログラムに関する。
【背景技術】
【０００２】
文書ファイルや画像ファイルなどのファイル（電子ファイル）では、その内容に改訂が施される機会が多いことから、改訂されているかどうかといった改訂情報を管理しておく必要がある（いわゆるバージョン管理）。改訂情報を管理する手法としては、例えば、管理システムに改訂前後のファイルを蓄積させる手法や、１つのファイルに改訂内容等の情報を含ませる手法などがある。
【特許文献１】特開２００３−２１６６０１号公報
【特許文献２】特開平１０−１２３９５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、管理システムに改訂前後のファイルを蓄積させる手法では、管理システムから一旦ファイルを取り出してしまうと、そのファイルは管理システムの管理下から独立したものとなり、改訂情報が保証されなくなってしまう。
【０００４】
他方、１つのファイルに改訂内容等の情報を含ませる手法では、ファイルが管理システムの管理下から独立しても改訂情報を保証することができるが、改訂を重ねるに連れてファイル構成が複雑となる上、ファイルサイズが増大してしまう。
【０００５】
また、特に画像ファイルでは、改訂前後のファイルから改訂内容（差分）を抽出することが困難であることから、改訂情報を管理するためには両方のデータが必要となり、ファイルサイズが殊更に増大してしまう。
【０００６】
特許文献１には、文書ファイルについて、本文データの改訂前後の差分データを抽出し、更新後の本文データと差分データにそれぞれ署名し、これらを文書ファイルに含める技術が開示されている。しかしながら、文書ファイルが差分データを含み、それぞれに署名を施すことから、改訂を重ねるに連れてファイル構成が複雑となる上、ファイルサイズが増大してしまう。
【０００７】
本発明は、上記問題に鑑みて為されたものであり、ファイルが管理下から独立しても改訂情報の保証が可能なファイル管理装置、ファイル管理方法、及びこれらを実現するプログラムを提供することをその目的の一つとする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明のファイル管理装置は、ファイルの改訂情報を管理するファイル管理装置であって、改訂されたファイルから、ファイル内容に基づいて定められる特徴値を算出する算出手段と、改訂されたファイルの特徴値と改訂される前のファイルの特徴値とを含む証明情報を生成する生成手段と、証明情報を改訂されたファイルに関連付けて保存する保存手段と、を備えることを特徴とする。
【０００９】
ここで、上記特徴値は、ファイル内容に対してハッシュ関数を適用することによりハッシュ値として算出されるものである。
【００１０】
また、本発明のファイル管理方法は、ファイルの改訂情報を管理するファイル管理方法であって、改訂されたファイルから、ファイル内容に基づいて定められる特徴値を算出する算出ステップと、改訂されたファイルの特徴値と改訂される前のファイルの特徴値とを含む証明情報を生成する生成ステップと、証明情報を改訂されたファイルに関連付けて保存する保存ステップと、を備えることを特徴とする。
【００１１】
また、本発明のプログラムは、コンピュータに、改訂されたファイルから、ファイル内容に基づいて定められる特徴値を算出する算出ステップと、改訂されたファイルの特徴値と改訂される前のファイルの特徴値とを含む証明情報を生成する生成ステップと、証明情報を改訂されたファイルに関連付けて保存する保存ステップと、を実行させるためのものである。
【発明の効果】
【００１２】
上記本発明によると、改訂されたファイルに関連付けて保存する証明情報に対し、改訂されたファイルの特徴値とともに改訂される前のファイルの特徴値を含めることによって、改訂されたファイルが管理下から独立しても、証明情報に含まれる改訂されたファイルの特徴値に基づいて、改訂されたファイルの内容についての保証が得ることができるとともに、証明情報に含まれる改訂されたファイルの特徴値と改訂される前のファイルの特徴値に基づいて、改訂されたファイルと改訂される前のファイルとの間の改訂情報についての保証も得ることができる。
【発明を実施するための最良の形態】
【００１３】
本発明の実施形態について、図面を参照しながら説明する。
【００１４】
図１は、ファイル管理装置としての管理サーバ１０の構成およびファイル検証装置としてのパーソナルコンピュータ（ＰＣ）２０の構成を表すブロック図である。管理サーバ１０は、文書ファイルや画像ファイルなどのファイル（電子ファイル）についての改訂情報（バージョン情報）を管理するものであり、ここで管理されているファイルは、管理サーバ１０の管理下から独立してもバージョン情報が保証される。また、ＰＣ２０は、管理サーバ１０の管理下から独立したファイルについてのバージョン情報を検証するものである。
【００１５】
［ファイル管理装置］
管理サーバ１０の構成について説明する。図１に示すように、管理サーバ１０は、全体の制御を司る制御部１１と、マウスやキーボード等で構成される操作部１２と、ＬＣＤ等で構成される表示部１３と、ネットワークに接続するための通信部１４と、ＨＤＤ等のドライブ装置やフラッシュメモリ等の半導体メモリなどで構成される記憶部１５と、を備える。
【００１６】
制御部１１は、ＣＰＵを主体としたコンピュータとして構成されており、ＣＰＵの動作に必要なプログラムやデータを格納しているＲＯＭや、ＣＰＵの作業領域とされるＲＡＭなどを有する。
【００１７】
記憶部１５には、各バージョンのファイルを格納する管理データベース１５Ｄが構築されている。ここに格納されているファイルには、バージョン情報を証明するための情報が付与されている。なお、管理データベース１５Ｄは、管理サーバ１０の装置外にあっても良い。
【００１８】
管理サーバ１０の要部機能について説明する。図２は、管理サーバ１０の動作を表すブロック図である。ここで、特徴値算出部１６、特徴値結合部１７、証明情報生成部１８、保存部１９は、制御部１１のＣＰＵの動作によって実現する。
【００１９】
管理サーバ１０では、管理サーバ１０上で若しくはＰＣ２０等を通じて、管理データベース１５Ｄに格納されているファイルの内容に変更が加えられると、新バージョンのファイル（改訂されたファイル）が作成されるとともに、以下の動作が行われる。
【００２０】
特徴値算出部（算出手段）１６は、新バージョンのファイルに対して、そのファイル内容に一方向関数であるハッシュ関数を適用し、これにより得られるハッシュ値を特徴値として算出する。ハッシュ関数には、公知のものを適宜利用することができる。ハッシュ関数を利用することで、特徴値をファイルサイズよりも小さいサイズのファイルとすることができ、証明情報のサイズの増大化を抑制することができる。
【００２１】
また、特徴値算出部１６は、旧バージョンのファイル（改訂される前のファイル）に対しても、そのファイル内容にハッシュ関数を適用し、ハッシュ値を特徴値として算出する。あるいは、管理データベース１５Ｄに旧バージョンのファイルの特徴値が既に存在する場合には、新たに算出することなく、その特徴値を利用することもできる。
【００２２】
特徴値結合部１７は、新バージョンのファイルの特徴値と旧バージョンのファイルの特徴値とを結合して結合値を作成する。
【００２３】
結合値は、連結する順序などの結合ルールに従って複数の特徴値を結合することにより作成できる。例えば、特徴値をバージョン順に連結するようにすることができる。これにより、検証時においては、管理データベース１５Ｄに格納されているファイルから同様の工程（同じハッシュ関数、同じ結合ルール）に従って検証用の結合値を作成し、両者が一致すれば、検証対象となるファイルが新バージョンのファイルであって旧バージョンのファイルから改訂されたものであることが証明される。
【００２４】
また、結合値に含まれる特徴値をそれぞれ識別可能な状態となるように含めることができる。これによれば、検証用の結合値を作成しなくとも、管理データベース１５Ｄに格納されているファイルから同じハッシュ関数を用いてそれぞれの特徴値を算出し、それぞれが一致すれば、検証対象となるファイルが新バージョンのファイルであって旧バージョンのファイルから改訂されたものであることが証明される。
【００２５】
図４ないし図６に、結合値の作成例を表す説明図を示す。
【００２６】
図４に示す第１作成例は、新バージョンのファイルのハッシュ値に対して、旧バージョンのファイルのうち改訂直前バージョンのファイルのハッシュ値を結合するものである。例えば、新バージョンをバージョン３としたとき、バージョン２のファイル内容（本文）からハッシュ値２を算出し、バージョン３のファイル内容からハッシュ値３を算出して、これらを連結する。
【００２７】
図５に示す第２作成例は、新バージョンのファイルのハッシュ値に対して、旧バージョンのファイル全てのハッシュ値を結合するものである。例えば、新バージョンをバージョン３としたとき、バージョン１および２のファイル内容（本文）からハッシュ値１および２をそれぞれ算出し、バージョン３のファイル内容からハッシュ値３を算出して、これらを連結する。
【００２８】
図６に示す第３作成例は、新バージョンのファイルのハッシュ値に対して、旧バージョンのファイルに付与されている署名等の証明情報の値を特徴値として結合するものである。例えば、新バージョンをバージョン３としたとき、バージョン３のファイル内容（本文）からハッシュ値３を算出し、バージョン２に付与されている署名値２と連結する。
【００２９】
以上のように、新バージョンのファイルの特徴値と旧バージョンのファイルの特徴値の結合値を用いることは、ファイル内容の差分を抽出するのに多大な処理を要する画像ファイルなどに適用する場合に、特に有効である。
【００３０】
証明情報生成部（生成手段）１８は、新バージョンのファイルの特徴値と旧バージョンのファイルの特徴値とが連結された結合値を含めた証明情報を生成する。
【００３１】
証明情報とは、ファイルの内容や作成（改訂）者、改訂日時などの情報を保証するための情報をいい、電子署名やタイムスタンプなどがこれに該当する。電子署名やタイムスタンプなどの証明情報は、保証を得たい内容に応じて適宜選択したり組み合わせたりすることができる。また、第三者機関により発行される証明情報を用いることで、高度の保証を得ることができる。
【００３２】
電子署名を実現する方式の一つであるデジタル署名の場合を例に挙げて説明する。証明情報生成部１８は、上記の結合値に対し、公開鍵暗号方式によるデジタル署名を行い、証明情報として、デジタル署名と署名者のデジタル証明書を保存部１９に保存する。これにより、ファイルの作成（改訂）者が証明されるとともに、ファイルの内容が改竄されていないことが保証される。
【００３３】
また、証明情報としてのデジタル署名には、新バージョンのファイルの特徴値と旧バージョンのファイルの特徴値とが連結された結合値が含まれていることから、上記のような保証に加えて、ファイルのバージョン情報についても保証されることになる。すなわち、検証時に、管理データベース１５Ｄに格納されているファイルから同様の工程に従って検証用の結合値を作成し、両者が一致すれば、検証対象となるファイルが新バージョンのファイルであって旧バージョンのファイルから改訂されたものであることが証明される。
【００３４】
そして、保存部（保存手段）１９は、図７に示すように、証明情報生成部１８により生成されたデジタル署名などの証明情報を、新バージョンのファイルに関連付けて管理データベース１５Ｄに保存する。これにより、新バージョンのファイルは、管理サーバ１０の管理下から独立してもバージョン情報が保証されることになる。
【００３５】
管理サーバ１０の動作について説明する。図８は、管理サーバ１０の動作（ファイル管理方法）を表すフローチャートである。この動作を実現するプログラムは、例えば制御部１１のＲＯＭに格納されており、ＣＰＵに読み出されて処理される。
【００３６】
管理サーバ１０の動作（ファイル管理方法）は、特徴値算出ステップ（Ｓ１２〜Ｓ１４）と、特徴値結合ステップ（Ｓ１５）と、証明情報生成ステップ（Ｓ１６〜Ｓ１７）と、保存ステップ（Ｓ１８）と、を含んでいる。
【００３７】
具体的には、管理サーバ１０は、ファイルが改訂されると（Ｓ１１：ＹＥＳ）、ハッシュ値の算出方法（ハッシュ関数）を選択し、若しくはユーザに選択させ（Ｓ１２）、新バージョンのファイルおよび旧バージョンのファイルからハッシュ値をそれぞれ算出する（Ｓ１３、Ｓ１４）。そして、管理サーバ１０は、それらのハッシュ値を結合させて結合値を得る（Ｓ１５）。その後、管理サーバ１０は、証明情報の種類を選択し、若しくはユーザに選択させ（Ｓ１６）、結合値を含めた証明情報を生成し（Ｓ１７）、証明情報を新バージョンのファイルに関連付けて保存する（Ｓ１８）。
【００３８】
［ファイル検証装置］
ＰＣ２０は、管理サーバ１０の管理下から独立したファイルについてのバージョン情報を検証するものである。
【００３９】
ＰＣ２０の構成について説明する。図１に示すように、ＰＣ２０は、全体の制御を司る制御部２１と、マウスやキーボード等で構成される操作部２２と、ＬＣＤ等で構成される表示部２３と、ネットワークに接続するための通信部２４と、を備える。
【００４０】
制御部２１は、ＣＰＵを主体としたコンピュータとして構成されており、ＣＰＵの動作に必要なプログラムやデータを格納しているＲＯＭや、ＣＰＵの作業領域とされるＲＡＭなどを有する。
【００４１】
ＰＣ２０の要部機能について説明する。図３は、ＰＣ２０の動作を表すブロック図である。ここで、抽出部２６、取得部２７、結合部２８、検証部２９は、制御部２１のＣＰＵの動作によって実現する。
【００４２】
ＰＣ２０は、検証対象となるファイルに関連付けて保存されている証明情報から、該証明情報に含まれている値を抽出する抽出部２６と、改訂されたファイルおよび改訂される前のファイルを保存しているデータベース１５Ｄから、該改訂されたファイルの特徴値および該改訂される前のファイルの特徴値を取得する取得部２７と、上記証明情報に含まれている値と、上記改訂されたファイルの特徴値および上記改訂される前のファイルの特徴値と、を比較することによって、上記検証対象となるファイルが、上記改訂されたファイルであるとともに上記改訂される前のファイルから改訂されたものであると認識する検証部２９と、を備える。
【００４３】
上述したように、管理サーバ１０により管理されていたファイルには、結合値を含んだ証明情報が関連付けて保存されていることから、抽出部２６は、検証対象となるファイルに関連付けて保存されている証明情報から、該証明情報に含まれている値を抽出する。具体的には、ファイルにデジタル署名が付与されている場合であれば、デジタル署名として暗号化されている結合値を公開鍵によって復号する。
【００４４】
他方、取得部２７は、管理データベース１５Ｄにアクセスし、格納されている各バージョンのファイルの特徴値を取得する。ここで、特徴値がハッシュ値である場合には、管理データベース１５Ｄに格納されている各バージョンのファイルに対し、そのファイル内容にハッシュ関数を適用してハッシュ値をそれぞれ算出する。また、結合部２８は、取得部２７が取得した各特徴値を結合する。
【００４５】
そして、検証部２９は、抽出部２６が検証対象となるファイルの証明情報から抽出した値と、取得部２７が取得した各特徴値を結合部２８が結合した値と、を比較することによって、検証対象となるファイルのバージョン情報を検証する。両者が一致する場合は、検証対象となるファイルが、新バージョンのファイルであるとともに旧バージョンのファイルから改訂されたものであること（バージョン情報）が保証される。
【００４６】
すなわち、検証対象となるファイルのバージョン情報が保証されるとともに、証明情報によって、検証対象となるファイルが新バージョンのファイルであるという保証を得ることができる。証明情報がデジタル署名である場合、検証対象となるファイルの作成（改訂）者が証明されるとともに、検証対象となるファイルが新バージョンのファイルの内容から改竄されていないことが保証される。
【００４７】
上述の図４ないし図６に示した作成例によって得られる結合値に対する検証方法の具体例をそれぞれ説明する。
【００４８】
図４の第１作成例により作成した結合値に対しては、管理データベース１５Ｄに格納されている新バージョンのファイルと改訂直前バージョンのファイルからそれぞれハッシュ値を算出し、これらを結合して、検証対象となるファイルから抽出した値と比較する。例えば、検証対象となるファイルがバージョン３のファイルであるか否かを検証するとき、検証対象となるファイルに関連付けて保存されている署名から、署名３の公開鍵によって結合値を復号する一方で、管理データベース１５Ｄに格納されているバージョン２および３のファイルからハッシュ値２および３をそれぞれ算出し、これらを連結して、両者を比較する。
【００４９】
図５の第２作成例により作成した結合値に対しては、管理データベース１５Ｄに格納されている新バージョンのファイルと全ての旧バージョンのファイルからそれぞれハッシュ値を算出し、これらを結合して、検証対象となるファイルから抽出した値と比較する。例えば、検証対象となるファイルがバージョン３のファイルであるか否かを検証するとき、検証対象となるファイルに関連付けて保存されている署名から、署名３の公開鍵によって結合値を復号する一方で、管理データベース１５Ｄに格納されているバージョン１ないし３のファイルからハッシュ値１ないし３をそれぞれ算出し、これらを連結して、両者を比較する。
【００５０】
図６の第３作成例により作成した結合値に対しては、管理データベース１５Ｄに格納されている新バージョンのファイルからハッシュ値を算出し、旧バージョンのファイルに付与されている署名等の証明情報の値を取得し、これらを結合して、検証対象となるファイルから抽出した値と比較する。例えば、検証対象となるファイルがバージョン３のファイルであるか否かを検証するとき、検証対象となるファイルに関連付けて保存されている署名から、署名３の公開鍵によって結合値を復号する一方で、管理データベース１５Ｄに格納されているバージョン３のファイルからハッシュ値３を算出し、バージョン２のファイルから署名値２を取得し、これらを連結して、両者を比較する。
【００５１】
ＰＣ２０の動作について説明する。図９は、ＰＣ２０の動作（ファイル検証方法）を表すフローチャートである。この動作を実現するプログラムは、例えば、制御部２１のＲＯＭに格納されており、ＣＰＵに読み出されて処理される。
【００５２】
ＰＣ２０の動作（ファイル検証方法）は、抽出ステップ（Ｓ２１）と、取得ステップ（Ｓ２２）と、結合ステップ（Ｓ２３）と、検証ステップ（Ｓ２４）と、を含んでいる。
【００５３】
具体的には、ＰＣ２０は、検証対象となるファイルに関連付けて保存されている証明情報から、該証明情報に含まれている値を抽出する（Ｓ２１）。また、ＰＣ２０は、管理データベース１５Ｄから、新バージョンのファイルの特徴値および旧バージョンのファイルの特徴値を取得し（Ｓ２２）、これらを結合する（Ｓ２３）。そして、ＰＣ２０は、Ｓ２１で抽出した値とＳ２３で結合した値を比較することによって、検証対象となるファイルのバージョン情報を検証する（Ｓ２４）。
【図面の簡単な説明】
【００５４】
【図１】ファイル管理装置およびファイル検証装置の構成を表すブロック図である。
【図２】ファイル管理装置の動作を表すブロック図である。
【図３】ファイル検証装置の動作を表すブロック図である。
【図４】結合値の第１作成例を表す説明図である。
【図５】結合値の第２作成例を表す説明図である。
【図６】結合値の第３作成例を表す説明図である。
【図７】結合値を含めた署名を表す説明図である。
【図８】ファイル管理装置の動作を表すフローチャートである。
【図９】ファイル検証装置の動作を表すフローチャートである。
【符号の説明】
【００５５】
１０  管理サーバ、１１  制御部、１２  操作部、１３  表示部、１４  通信部、１５  記憶部、１５Ｄ  管理データベース、１６  特徴値算出部（算出手段）、１７  特徴値結合部、１８  証明情報生成部（生成手段）、１９  保存部（保存手段）、２０  ＰＣ、２１  制御部、２２  操作部、２３  表示部、２４  通信部、２６  抽出部（抽出手段）、２７  取得部（取得手段）、２８  結合部、２９  検証部（検証手段）。
【図１】
2007304888.tif 000003
【図２】
2007304888.tif 000004
【図３】
2007304888.tif 000005
【図４】
2007304888.tif 000006
【図５】
2007304888.tif 000007
【図６】
2007304888.tif 000008
【図７】
2007304888.tif 000009
【図８】
2007304888.tif 000010
【図９】
2007304888.tif 000011