JP4877193B2 - 版数管理システムおよび版数管理方法 - Google Patents

版数管理システムおよび版数管理方法 Download PDF

Info

Publication number
JP4877193B2
JP4877193B2 JP2007278773A JP2007278773A JP4877193B2 JP 4877193 B2 JP4877193 B2 JP 4877193B2 JP 2007278773 A JP2007278773 A JP 2007278773A JP 2007278773 A JP2007278773 A JP 2007278773A JP 4877193 B2 JP4877193 B2 JP 4877193B2
Authority
JP
Japan
Prior art keywords
file
source file
hash
version
user terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007278773A
Other languages
English (en)
Other versions
JP2009110061A (ja
Inventor
雄一郎 三橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2007278773A priority Critical patent/JP4877193B2/ja
Publication of JP2009110061A publication Critical patent/JP2009110061A/ja
Application granted granted Critical
Publication of JP4877193B2 publication Critical patent/JP4877193B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、ファイルの版数管理を行う版数管理システムおよび版数管理方法に関する。
従来、ファイルの版数管理では、ファイルに含まれるデータの内容そのものを比較して、差分分析を行う手法が用いられていた。
しかしながら、上記の手法では、データのサイズが大きなファイルを検索する場合や多数のファイルを検索する場合に、差分分析を行う時間が増大してしまうという問題があった。また、昨今、プログラム開発を海外や遠隔地の会社に発注する、いわゆるオフショア開発が増加する中で、ファイル送受信時の情報漏洩を予防する必要性が高まっており、セキュリティ面でもファイルを平文のまま送受信していることは問題であった。
そこで、別の手法として、ハッシュ関数を利用して差分分析を行う装置が、特許文献1に開示されている。
特開2006−133954号公報
しかしながら、特許文献1に開示された装置では、デジタル文書データとそれに基づくハッシュ値などをそれぞれ作成し、版数管理に用いる版数管理情報は異なる独立したデータとして持つ必要があるという課題があった。
そこで、本発明の目的は、上述した課題を解決する版数管理システムおよび版数管理方法を提供することにある。
上記目的を達成するために本発明の版数管理システムは、
ソースファイルを作成・編集するユーザ端末と、当該ソースファイルの版数管理を行う版数管理装置と、を有してなる版数管理システムであって、
前記ユーザ端末は、
前記ソースファイルに含まれるデータのハッシュ値と、当該ソースファイルの版数管理に用いる版数管理情報のハッシュ値と、を計算し、当該計算結果を接続することで前記ソースファイルのハッシュファイルを作成する手段と、
前記ハッシュファイルを添付した前記ソースファイルを前記版数管理装置に送信する手段と、を有し、
前記版数管理装置は、
前記ユーザ端末から前記ソースファイルを受信すると、当該ソースファイルと当該ソースファイルに添付されたハッシュファイルとをセットで記憶手段に保存するファイル管理手段を有する、ことを特徴とする。
上記目的を達成するために本発明の版数管理方法は、
ソースファイルを作成・編集するユーザ端末と、当該ソースファイルの版数管理を行う版数管理装置と、による版数管理方法であって、
前記ユーザ端末が、前記ソースファイルに含まれるデータのハッシュ値と、当該ソースファイルの版数管理に用いる版数管理情報のハッシュ値と、を計算し、当該計算結果を接続することで前記ソースファイルのハッシュファイルを作成するステップと、
前記ユーザ端末が、前記ハッシュファイルを添付した前記ソースファイルを前記版数管理装置に送信するステップと、
前記版数管理装置が、前記ユーザ端末から前記ソースファイルを受信すると、当該ソースファイルと当該ソースファイルに添付されたハッシュファイルとをセットで記憶手段に保存するステップと、を有する、ことを特徴とする。
上述のように本発明によれば、版数管理装置は、ソースファイルに含まれるデータのハッシュ値とそのソースファイルの版数管理情報のハッシュ値とを接続したハッシュファイルを、そのソースファイルとセットで保存している。
そのため、ソースファイルの版数管理情報を、そのソースファイルに含まれるデータとは異なる独立したデータとして持つ必要がないという効果が得られる。
以下に、本発明を実施するための最良の形態について図面を参照して説明する。
(第1の実施形態)
図1は、本発明の第1の実施形態の版数管理システムの構成を示す図である。
図1を参照すると、本実施形態の版数管理システムは、ユーザ端末10と、版数管理装置20と、を有している。なお、図1においては、ユーザ端末10が1つだけ示されているが、ユーザ端末10は、同様のものを複数設けることも可能である。
ユーザ端末10および版数管理装置20は、プログラム制御により動作し、インターネットやイントラネットなどであるネットワーク100を介して相互に接続されている。
ユーザ端末10は、プログラム開発者が使用するパーソナルコンピュータやワークステーションなどの情報処理装置である。
ユーザ端末10は、記憶部11と、ファイル管理部12と、ハッシュ値計算部13と、差分分析部14と、インターフェイス15と、暗号化復号化部16と、を有している。
記憶部11は、ソースファイルやソースファイルの版数管理に用いる版数管理情報などを保存する。版数管理情報の項目には、ソースファイルの作成日、更新日、最終更新者の他、ソースファイルの編集の可否を表す排他制御状態フラグなどが含まれる。
ファイル管理部12は、版数管理装置20との間で送受信するソースファイルやハッシュファイルのファイル管理を行う。
ハッシュ値計算部13は、ハッシュ関数を利用して、版数管理装置20との間で送受信するソースファイルのハッシュファイルを作成する。
差分分析部14は、版数管理装置20から受信したソースファイルに添付されているハッシュファイルと、ハッシュ値計算部13で作成したハッシュファイルと、に含まれるハッシュ値を比較して、その差分を分析する。この比較結果を基に、ファイル管理部12は、版数管理装置20から受信したソースファイルの改ざんの有無などを検証する。
インターフェイス15は、ハッシュファイルを添付したソースファイルなどを、ネットワーク100を介して、版数管理装置20との間で送受信する。
暗号化復号化部16は、版数管理装置20との間で送受信するソースファイルやハッシュファイルの暗号化/復号化を行う。
版数管理装置20は、ファイルを保存するファイルサーバやデータベースも併せて搭載する複合サーバなどの情報処理装置である。
版数管理装置20は、記憶部21と、ファイル管理部24と、ハッシュ値計算部25と、差分分析部26と、インターフェイス27と、暗号化復号化部28と、を有している。
記憶部21は、ユーザ端末10との間で送受信するソースファイル22やソースファイル22のハッシュファイル23などを保存する。
ファイル管理部24は、ユーザ端末10との間で送受信するソースファイルやハッシュファイルのファイル管理を行う。
ハッシュ値計算部25は、ユーザ端末10との間で送受信するソースファイルのハッシュファイルを作成する。
差分分析部26は、ユーザ端末10から受信したソースファイルに添付されているハッシュファイルと、ハッシュ値計算部25で作成したハッシュファイルと、に含まれるハッシュ値を比較して、その差分を分析する。この比較結果を基に、ファイル管理部12は、版数管理装置20から受信したソースファイルの改ざんの有無などを検証する。
また、差分分析部26は、ユーザ端末10から受信したソースファイルに添付されているハッシュファイルと、記憶部21に記憶されているハッシュファイルと、に含まれるハッシュ値を比較して、その差分を分析する。この比較結果を基に、ファイル管理部12は、版数管理装置20から受信したソースファイルの編集の有無などを判定する。
インターフェイス27は、ハッシュファイルが添付されているソースファイルなどを、ネットワーク100を介して、ユーザ端末10との間で送受信する。
暗号化復号化部28は、ユーザ端末10との間で送受信するソースファイルやハッシュファイルの暗号化/復号化を行う。
ここで、ハッシュ値計算部13,25で作成されるハッシュファイルについて、詳細に説明する。
図2は、ハッシュ値計算部13,25で作成されるハッシュファイルの一例を示す図である。
図2を参照すると、ハッシュファイルは、ソースファイルに含まれるデータのハッシュ値の他、そのソースファイルの版数管理情報の各項目(作成日、更新日、最終更新者、および排他制御状態フラグ)のハッシュ値を含んでいる。
ハッシュ値計算部13,25は、ソースファイルを基にハッシュファイルを作成する場合、ハッシュ関数を利用して、まず、ソースファイルに含まれるデータのハッシュ値を計算する。図2では、ハッシュ値となったデータを***と表記している。次に、版数管理情報である、作成日、更新日、最終更新者、および排他制御状態フラグのハッシュ値をそれぞれ計算し、これを***のヘッダ部分に接続してハッシュファイルとする。なお、図2では、説明の便宜のため、版数管理情報を元データのままで表記している。
ハッシュ関数とは、あるデータに対して一定の桁数内の固定長テキストによる代表値を出力する関数であり、異なったデータからは常に異なったハッシュ値が得られることが望ましい。これをソースファイルに適用することで、ユニークな情報を持つデータを作成することができるため、ファイルの差分分析を行う場合に内容そのものを参照する必要がなく、高速に処理できる。標準化されたハッシュ関数のアルゴリズムにはSHA−1、MD5などがあり、本実施形態でもこれらのハッシュ関数の利用を想定している。
図3は、ソースファイルProgram01.apiの新規保存、編集用抽出、書戻、および参照用抽出を実行した場合のハッシュファイルの内容の履歴の一例を示す図である。なお、図3の詳細な説明は、図5以降の説明時に併せて行う。
図4は、図2に示したハッシュファイルを拡張した例を示す図である。
図4を参照すると、ハッシュファイルには、プログラム開発環境に依存するような情報を付与する必要がある場合に、任意に利用可能なオプションフィールドを追加することもできる。このように、本実施形態では、ソースファイルに含まれるデータに付加される情報に加え、多数の情報を付加することが可能である。これは、ハッシュ値によって最終的に固定長のテキストファイルに圧縮されるため、多数の情報を付与してもハッシュファイルのサイズは大きく増加することがないことから得られる利点である。
以下、本実施形態の版数管理システムの動作について説明する。
ここでは、ソースファイルの新規保存、編集用抽出、書戻、参照用抽出、および検索の動作を順番に説明する。
(1)新規保存
まず、USER01が、新規に作成したソースファイルProgram01.apiを版数管理装置20に新規保存する場合の動作について、図5および図6を参照して説明する。
図5を参照すると、USER01のユーザ端末10(送信側)では、まず、ファイル管理部12は、記憶部11から、ソースファイルProgram01.apiと、ソースファイルProgram01.apiの版数管理情報と、を読み出す。なお、ソースファイルProgram01.apiには、データのみが含まれている。
次に、ハッシュ値計算部13は、ハッシュ関数を利用して、ソースファイルProgram01.apiに含まれるデータのハッシュ値と、ソースファイルProgram01.apiの版数管理情報の各項目(作成日、更新日、最終更新者、および排他制御状態フラグ)のハッシュ値と、を計算し、これらを接続してハッシュファイルProgram01.hashを作成する(ステップA1)。このとき、排他制御状態フラグは、編集用抽出が可能な0に設定されている。
次に、暗号化復号化部16は、ソースファイルProgram01.apiとハッシュファイルProgram01.hashを公開鍵暗号などで暗号化する。
次に、インターフェイス15は、ソースファイルProgram01.apiに、ハッシュファイルProgram01.hashを電子署名として添付し、SSL(Secure Sockets Layer)などのセキュリティプロトコルを用いて、版数管理装置20へ送信する(ステップA2)。このとき、ソースファイルProgram01.apiの版数管理情報も併せて送信する。
版数管理装置20(受信側)では、まず、暗号化復号化部28は、ソースファイルProgram01.apiと、ソースファイルProgram01.apに添付されたハッシュファイルProgram01.hashを復号化する。
次に、ハッシュ値計算部25は、ユーザ端末10と同じハッシュ関数を利用して、ソースファイルProgram01.apiのハッシュファイルProgram01a.hashを作成する(ステップA3)。このとき、ユーザ端末10と同じハッシュ関数を利用するため、内容が全く同一のファイルであれば、ハッシュ値は変化しない。
そこで、差分分析部26は、ハッシュファイルProgram01.hashと、ハッシュファイルProgram01a.hashと、に含まれる全てのハッシュ値を比較する。
そして、ファイル管理部24は、全てのハッシュ値が一致すれば、ソースファイルProgram01.apiが改ざんされていないと判定し、いずれかのハッシュ値が不一致であれば、改ざんされたと判定する(ステップA4)。
図6を参照すると、版数管理装置20では、図5のステップA4でソースファイルProgram01.apiが改ざんされていないと判定されると(ステップB1)、ファイル管理部24は、ソースファイルProgram01.apiとハッシュファイルProgram01.hashとをセットで記憶部21に保存する。このとき、ソースファイルProgram01.apiの版数管理情報も併せて、記憶部21に保存する(ステップB2)。このときのハッシュファイルProgram01.hashは、図3の行1に示される内容であり、排他制御状態フラグが0に設定されている。また、ソースファイルProgram01.apiの版数は、初版に設定される。
(2)編集用抽出
続いて、USER02が、版数管理装置20からソースファイルProgram01.apiを編集用に抽出する場合の動作について、図7を参照して説明する。
図7を参照すると、USER02のユーザ端末10では、インターフェイス15は、版数管理装置20に対し、ソースファイルProgram01.apiの編集用抽出を要求する(ステップC1)。
版数管理装置20では、まず、ファイル管理部24は、ソースファイルProgram01.apiとセットで記憶部21に保存されているハッシュファイルProgram01.hashに含まれる排他制御状態フラグのハッシュ値を確認する(ステップC2)。
もし、排他制御状態フラグが0でなければ(ステップC3)、他のユーザがソースファイルProgram01.apiを編集用に抽出しているために、ファイル管理部24は、エラーを返す(ステップC4)。一方、排他制御状態フラグが0であれば(ステップC3)、ファイル管理部24は、ソースファイルProgram01.apiを抽出する(ステップC5)。
次に、新たなハッシュ値処理を行う(ステップC6)。このハッシュ値処理では、ファイル管理部24は、ソースファイルProgram01.apiが編集用に抽出されたことを示すために、排他制御状態フラグを1に更新するとともに、更新日と最終更新者を更新し(ステップC7)、ハッシュ値計算部25は、更新された排他制御状態フラグ、更新日、および最終更新者のハッシュ値を新たに計算し、ハッシュファイルProgram01.hashを更新する。このときのハッシュファイルProgram01.hashは、図3の行2に示される内容である。
ハッシュ値計算部25からハッシュファイルProgram01.hashが出力されると(ステップC8)、ファイル管理部24は、ハッシュファイルProgram01.hashを上書きして記憶部21に保存する(ステップC9)。
また、インターフェイス27は、ソースファイルProgram01.apiにハッシュファイルProgram01.hashを電子署名として添付し、セキュリティプロトコルを用いて、USER02のユーザ端末10へ送信する(ステップC10)。このとき、ソースファイルProgram01.apiの版数管理情報も併せて送信する。
その後、USER02のユーザ端末10では、ソースファイルProgram01.apiの改ざんの有無の検証を行う。このときの検証処理は、図5の受信側の処理と同様である(ただし、この場合は、送信側が版数管理装置20、受信側がUSER02のユーザ端末10となる)。以上で、編集用抽出動作が完了する。
(3)書戻
続いて、USER02が、編集後のソースファイルProgram01.apiを版数管理装置20に書き戻す動作について、図8を参照して説明する。
図8を参照すると、USER02のユーザ端末10では、編集後のソースファイルProgram01.apiを版数管理装置20に送信する。このときの送信処理は、図5の送信側の処理と同様である。
版数管理装置20では、まず、編集後のソースファイルProgram01.apiの改ざんの有無を検証する(ステップD1)。このときの検証処理は、図5の受信側の処理と同様である。
次に、ファイル管理部24は、ソースファイルProgram01.apiとセットで記憶部21に保存されているハッシュファイルProgram01.hashに含まれる排他制御状態フラグのハッシュ値を確認する(ステップD2)。
もし、排他制御状態フラグが0であった場合は(ステップD3)、ソースファイルProgram01.apiが編集用抽出の処理をされないで入手されたものである可能性があるため、ファイル管理部24は、エラーを返す(ステップD4)。また、ファイル管理部24は、最終更新者のハッシュ値も確認し(ステップD2)、最終更新者がUSER02ではない場合も(ステップD3)、同様にエラーを返す(ステップD4)。
排他制御状態フラグが1で、かつ、最終更新者がUSER02であった場合、差分分析部26は、ソースファイルProgram01.apiに含まれるデータ自体に変更があるかどうかを確認する差分チェックを行う(ステップD5)。この処理も、ソースファイルProgram01.apiに添付されたハッシュファイルProgram01.hashと、ソースファイルProgram01.apiとセットで記憶部21に保存されているハッシュファイルProgram01.hashと、に含まれるデータのハッシュ値を比較することで行うことができる。データのハッシュ値は、ハッシュ関数によって固定長となっているため、照合にかかる時間は、ファイルサイズや形式(テキストもしくはバイナリ)で左右されず、高速である。
もし、差分がない場合は(ステップD6)、ファイル管理部24は、その旨のメッセージを出力する(ステップD7)。差分がある場合は(ステップD6)、ファイル管理部24は、データが更新(編集)されたと判定し、前バージョンのソースファイルProgram01.apiおよびハッシュファイルProgram01.hashを、それぞれソースファイルProgram01-01.apiおよびハッシュファイルProgram01-01.hashにリネームする(ステップD8)。
次に、新たなハッシュ値処理を行う(ステップD9)。
差分がある場合、ハッシュ値処理では、ファイル管理部24は、ソースファイルProgram01.apiが編集用抽出が可能になったことを示すために、排他制御状態フラグを0に更新するとともに、更新日、最終更新者、およびデータを更新し(ステップD10)、ハッシュ値計算部25は、更新された排他制御状態フラグ、更新日、最終更新者、およびデータのハッシュ値を新たに計算し、ハッシュファイルProgram01-1.hashを更新する。このときのハッシュファイルProgram01-1.hashは、図3の行3に示される内容である。これにより、ソースファイルProgram01.apiの版数は、第二版に更新される。
ハッシュ値計算部25からハッシュファイルProgram01-1.hashが出力されると(ステップD11)、ファイル管理部24は、ハッシュファイルProgram01-1.hashを、ソースファイルProgram01-01.apiとセットで記憶部21に保存する(ステップD12)。
なお、差分がない場合、ハッシュ値処理では、ハッシュファイルProgram01.hashの更新に際し、データの更新は行われない。また、更新後のハッシュファイルProgram01.hashは、ソースファイルProgram01.apiとセットで記憶部21に保存される
(4)参照用抽出
続いて、USER02が、版数管理装置20からソースファイルProgram01-1.apiを参照用に抽出する場合の動作について、図9を参照して説明する。
参照用抽出は、ソースファイルProgram01-1.apiの内容を参照することのみが目的であり、書き戻しは行わない。参照用抽出が、編集用抽出とは大きく異なる点は、ソースファイルProgram01-1.apiの抽出の際に排他制御状態フラグを更新しないことである。
図9を参照すると、USER02のユーザ端末10では、インターフェイス15は、版数管理装置20に対し、ソースファイルProgram01-1.apiの参照用抽出を要求する(ステップE1)。
版数管理装置20では、まず、ファイル管理部24は、ソースファイルProgram01-1.apiを抽出する(ステップE2)。次に、新たなハッシュ値処理を行うが(ステップE3)、ここでは、ハッシュ値計算部25からは、ハッシュファイルProgram01-01.hashが、版数管理情報のいずれの項目も更新されずに出力される(ステップE4)。
次に、インターフェイス27は、ソースファイルProgram01-1.apiをUSER02のユーザ端末10に送信する(ステップE5)。このときの送信処理は、図5の送信側の処理と同様である。
USER02のユーザ端末10に向けて送信されたソースファイルProgram01-1.apiは、それ以降、版数管理装置20で利用されることはない。このソースファイルProgram01-1.apiをユーザ端末10で編集し書き戻そうとしても、排他制御状態フラグが1に更新されていないため、図8のステップD3,D4の処理を経てエラーが返される。このときのハッシュファイルProgram01-1.hashは、図3の行4に示される内容である。
なお、参照用抽出は、排他制御状態フラグが1に更新されないため、その後に、USER03が編集用抽出をすることは当然に可能である(図3の行5参照)。また、行6は、排他制御状態フラグが1である状態で、編集用抽出が要求されてエラーが返された例である。行7では、排他制御状態フラグが1であるが、要求が参照用抽出であるため、エラーにはならない。行8では、USER03が書き戻しを行って、排他制御状態フラグ、更新日、データが更新され、版数が第三版に更新される。
(5)検索
続いて、USERが、版数管理装置20からソースファイルを検索する場合の動作について説明する。
上記の(1)〜(4)の動作では、ユーザ端末10と版数管理装置20との間の通信の中に、ファイルの移動を伴う通信が含まれており、ファイルの移動を伴う通信の場合は、暗号化復号化部16,28を利用して暗号化通信を行っていた。
これに対して、ソースファイルの検索時には、ファイルの移動を伴う通信は一切含まれない。ファイル管理部24は、ファイル検索時にはハッシュファイルを参照するが、ファイルの検索結果は暗号化せずにユーザ端末10に送信する。
本実施形態においては、一方向性ハッシュ関数を利用することを前提に考えており、ファイルは固定長のデータに変換され、元のファイルへの復元が計算量的に不可能である。そのため、ファイル検索時には安全性を保ちつつ、通信量の増加やユーザ端末10および版数管理装置20の処理量を抑えることができる。
上述したように本実施形態においては、版数管理装置20は、ソースファイルに含まれるデータのハッシュ値とそのソースファイルの版数管理情報のハッシュ値とを接続したハッシュファイルを、そのソースファイルとセットで保存している。そのため、ソースファイルの版数管理情報を、そのソースファイルに含まれるデータとは異なる独立したデータとして持つ必要がないという効果が得られる。
また、版数管理装置20は、ソースファイルの更新(編集)や改ざんの有無を判定するための差分分析を、そのソースファイルのハッシュファイルに含まれるハッシュ値を利用して行うため、これらの判定処理の高速化が図れるという効果が得られる。
また、版数管理装置20およびユーザ端末10は、ソースファイルを暗号化して送信するため、ソースファイルに含まれるデータの覗き見を防ぐことができるという効果が得られる。
また、版数管理装置20およびユーザ端末10は、ソースファイルを基にハッシュ関数を利用してハッシュファイルを作成し、そのハッシュファイルを電子署名としてソースファイルに添付するため、データの改ざんなどを防ぐことができるという効果が得られる。
よって、プログラム開発を、自社内オフィスでの作業ではなく、オフショア開発で行う場合でも、セキュリティ性を保つことができる。
(第2の実施形態)
図10は、本発明の第2の実施形態の版数管理システムの構成を示す図である。
図10を参照すると、本実施形態の版数管理システムは、図1に示した第1の実施形態と比較して、記憶部21の内部に、ハッシュ用データベース29を設けた点が異なる。
ハッシュ用データベース29には、ハッシュファイルが保存されるが、その際に、ファイル管理部24は、ハッシュファイルに含まれるハッシュ値を、データおよび版数管理情報の項目ごとに区分して保存する。
本実施形態が第1の実施形態と異なる点は、版数管理装置20が、ユーザ端末10へソースファイルを送信する際に、そのソースファイルのハッシュファイルをハッシュ用データベース29から読み出す処理が必要になる点と、ユーザ端末10からソースファイルを受信した際に、そのソースファイルのハッシュファイルに含まれるハッシュ値をハッシュ用データベース29に書き込む処理が必要になる点である。
上述したように本実施形態においては、ハッシュファイルに含まれるハッシュ値をハッシュ用データベース29に保存しているため、高速化は差分分析だけでなく、版数管理全体に及ぶという効果が得られる。
ハッシュ値は、固定長のデータであるため、バイト単位での指定が可能である。例えば、図2において、排他制御状態フラグのハッシュ値のみを参照する場合に、排他制御状態フラグを示す文字列を直接指定することができる。これは、排他制御状態フラグより前にある作成日、更新日、最終更新者のフィールドが全て固定長となるからである。特に、最終更新者のフィールドは可変長となるので、より多くの情報を付加したハッシュファイルとなった場合に有効性は大きくなる。また、ハッシュ値はユニークなデータを持つために、索引機能を利用した高速検索も可能となる。
本実施形態のその他の効果は、第1の実施形態と同様である。
なお、第1および第2の実施形態においては、版数管理の対象をソースファイル以外とする応用も可能である。版数管理を目的とするファイルならば、ファイルの種類を選ぶことはない。より大きなサイズのファイルの差分管理を行う際にその有用性は大きくなる。
本発明は、プログラムファイルや文書ファイルなどの版数管理を必要とするファイルに、ファイル形式を問わずに適用できる。また、本発明は、ファイルの送受信時には暗号化も併せて行うため、セキュリティも保証される。
本発明の第1の実施形態の版数管理システムの構成を示す図である。 本発明に係るハッシュファイルの一例を示す図である。 本発明に係るハッシュファイルの内容の履歴の一例を示す図である。 図2に示したハッシュファイルを拡張した例を示す図である。 図1に示した版数管理システムにおける送受信動作を説明するフローチャートである。 図1に示した版数管理システムにおける新規保存動作を説明するフローチャートである。 図1に示した版数管理システムにおける編集用抽出動作を説明するフローチャートである。 図1に示した版数管理システムにおける書戻動作を説明するフローチャートである。 図1に示した版数管理システムにおける参照用抽出動作を説明するフローチャートである。 本発明の第2の実施形態の版数管理システムの構成を示す図である。
符号の説明
10 ユーザ端末
11 記憶部
12 ファイル管理部
13 ハッシュ値計算部
14 差分分析部
15 インターフェイス
16 暗号化復号化部
20 版数管理装置
21 記憶部
22 ソースファイル
23 ハッシュファイル
24 ファイル管理部
25 ハッシュ値計算部
26 差分分析部
27 インターフェイス
28 暗号化復号化部
29 ハッシュ用データベース

Claims (12)

  1. ソースファイルを作成・編集するユーザ端末と、当該ソースファイルの版数管理を行う版数管理装置と、を有してなる版数管理システムであって、
    前記ユーザ端末は、
    前記ソースファイルに含まれるデータのハッシュ値と、当該ソースファイルの版数管理に用いる版数管理情報のハッシュ値と、を計算し、当該計算結果を接続することで前記ソースファイルのハッシュファイルを作成する手段と、
    前記ハッシュファイルを添付した前記ソースファイルと当該ソースファイルの版数管理情報とを前記版数管理装置に送信する手段と、を有し、
    前記版数管理装置は、
    前記ユーザ端末から前記ソースファイルと当該ソースファイルの版数管理情報とを受信すると、当該ソースファイルと当該ソースファイルに添付されたハッシュファイルとをセットで記憶手段に保存すると共に、当該ソースファイルの版数管理情報を前記記憶手段に保存するファイル管理手段を有する、版数管理システム。
  2. 前記版数管理装置は、
    前記ユーザ端末から初版のソースファイルを受信すると、当該ソースファイルに含まれるデータのハッシュ値と、当該ソースファイルの版数管理情報のハッシュ値と、を計算し、当該計算結果を接続して当該ソースファイルのハッシュファイルを作成する手段と、
    前記ユーザ端末から受信した前記初版のソースファイルに添付されているハッシュファイルと、当該ソースファイルを基に自装置で作成したハッシュファイルと、に含まれる全てのハッシュ値を比較する差分分析手段をさらに有し、
    前記ファイル管理手段は、前記ハッシュファイルに含まれる全てのハッシュ値が一致する場合に、前記初版のソースファイルが改ざんされていないと判定し、当該ソースファイルと当該ソースファイルに添付されたハッシュファイルとをセットで前記記憶手段に保存すると共に、当該ソースファイルの版数管理情報を前記記憶手段に保存する、請求項1に記載の版数管理システム。
  3. 前記版数管理情報の項目には、前記ソースファイルの編集の可否を表すフラグが含まれており、
    前記ファイル管理手段は、前記ユーザ端末から前記ソースファイルの編集が要求されると、当該ソースファイルの版数管理情報を前記記憶手段から抽出し、前記フラグが編集可を示す場合に、当該ソースファイルを前記記憶手段から抽出して要求元のユーザ端末に送信するとともに、前記フラグを編集不可に更新した上で当該ソースファイルの版数管理情報を要求元のユーザ端末に送信する、請求項2に記載の版数管理システム。
  4. 前記差分分析手段は、前記要求元のユーザ端末から前記ソースファイルを受信すると、前記フラグが編集不可を示す場合に、当該ソースファイルに添付されているハッシュファイルと、前記記憶手段に記憶されているハッシュファイルと、に含まれる前記データのハッシュ値を比較し、
    前記ファイル管理手段は、前記ハッシュファイルに含まれる前記データのハッシュ値が異なる場合に、前記ソースファイルが編集されたと判定し、当該ソースファイルの版数を更新し、当該ソースファイルと当該ソースファイルに添付されているハッシュファイルのファイル名を更新後の版数に合わせてリネームし前記記憶手段に保存する、請求項3に記載の版数管理システム。
  5. 前記ファイル管理手段は、前記ユーザ端末から前記ソースファイルの参照が要求されると、前記フラグとは無関係に、当該ソースファイルを前記記憶手段から抽出して要求元のユーザ端末に送信し、前記フラグは更新しない、請求項3または4に記載の版数管理システム。
  6. 前記ファイル管理手段は、前記ハッシュファイルを保存する際に、当該ハッシュファイルに含まれるハッシュ値を、前記データおよび前記版数管理情報の項目ごとに区分して前記記憶手段のデータベースに保存する、請求項1から5のいずれか1項に記載の版数管理システム。
  7. ソースファイルを作成・編集するユーザ端末と、当該ソースファイルの版数管理を行う版数管理装置と、による版数管理方法であって、
    前記ユーザ端末が、前記ソースファイルに含まれるデータのハッシュ値と、当該ソースファイルの版数管理に用いる版数管理情報のハッシュ値と、を計算し、当該計算結果を接続することで前記ソースファイルのハッシュファイルを作成するステップと、
    前記ユーザ端末が、前記ハッシュファイルを添付した前記ソースファイルと当該ソースファイルの版数管理情報とを前記版数管理装置に送信するステップと、
    前記版数管理装置が、前記ユーザ端末から前記ソースファイルと当該ソースファイルの版数管理情報とを受信すると、当該ソースファイルと当該ソースファイルに添付されたハッシュファイルとをセットで記憶手段に保存すると共に、当該ソースファイルの版数管理情報を前記記憶手段に保存するステップと、を有する、版数管理方法。
  8. 前記版数管理装置が、前記ユーザ端末から初版のソースファイルを受信すると、当該ソースファイルに含まれるデータのハッシュ値と、当該ソースファイルの版数管理情報のハッシュ値と、を計算し、当該計算結果を接続して当該ソースファイルのハッシュファイルを作成するステップと、
    前記版数管理装置が、前記ユーザ端末から受信した前記初版のソースファイルに添付されているハッシュファイルと、当該ソースファイルを基に自装置で作成したハッシュファイルと、に含まれる全てのハッシュ値を比較するステップと、をさらに有し、
    前記保存ステップでは、前記ハッシュファイルに含まれる全てのハッシュ値が一致する場合に、前記初版のソースファイルが改ざんされていないと判定し、当該ソースファイルと当該ソースファイルに添付されたハッシュファイルとをセットで前記記憶手段に保存すると共に、当該ソースファイルの版数管理情報を前記記憶手段に保存する、請求項7に記載の版数管理方法。
  9. 前記版数管理情報の項目には、前記ソースファイルの編集の可否を表すフラグが含まれており、
    前記版数管理装置が、前記ユーザ端末から前記ソースファイルの編集が要求されると、当該ソースファイルの版数管理情報を前記記憶手段から抽出し、前記フラグが編集可を示す場合に、当該ソースファイルを前記記憶手段から抽出して要求元のユーザ端末に送信するとともに、前記フラグを編集不可に更新した上で当該ソースファイルの版数管理情報を要求元のユーザ端末に送信するステップをさらに有する、請求項8に記載の版数管理方法。
  10. 前記版数管理装置が、前記要求元のユーザ端末から前記ソースファイルを受信すると、前記フラグが編集不可を示す場合に、当該ソースファイルに添付されているハッシュファイルと、前記記憶手段に記憶されているハッシュファイルと、に含まれる前記データのハッシュ値を比較するステップと、
    前記版数管理装置が、前記ハッシュファイルに含まれる前記データのハッシュ値が異なる場合に、前記ソースファイルが編集されたと判定し、当該ソースファイルの版数を更新し、当該ソースファイルと当該ソースファイルに添付されているハッシュファイルのファイル名を更新後の版数に合わせてリネームし前記記憶手段に保存するステップと、をさらに有する、請求項9に記載の版数管理方法。
  11. 前記版数管理装置が、前記ユーザ端末から前記ソースファイルの参照が要求されると、前記フラグとは無関係に、当該ソースファイルを前記記憶手段から抽出して要求元のユーザ端末に送信し、前記フラグは更新しない、請求項9または10に記載の版数管理方法。
  12. 前記保存ステップでは、前記ハッシュファイルに含まれるハッシュ値を、前記データおよび前記版数管理情報の項目ごとに区分して前記記憶手段のデータベースに保存する、請求項7から11のいずれか1項に記載の版数管理方法。
JP2007278773A 2007-10-26 2007-10-26 版数管理システムおよび版数管理方法 Expired - Fee Related JP4877193B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007278773A JP4877193B2 (ja) 2007-10-26 2007-10-26 版数管理システムおよび版数管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007278773A JP4877193B2 (ja) 2007-10-26 2007-10-26 版数管理システムおよび版数管理方法

Publications (2)

Publication Number Publication Date
JP2009110061A JP2009110061A (ja) 2009-05-21
JP4877193B2 true JP4877193B2 (ja) 2012-02-15

Family

ID=40778526

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007278773A Expired - Fee Related JP4877193B2 (ja) 2007-10-26 2007-10-26 版数管理システムおよび版数管理方法

Country Status (1)

Country Link
JP (1) JP4877193B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612399B2 (en) * 2010-06-01 2013-12-17 Kabushiki Kaisha Toshiba Alteration detecting apparatus and alteration detecting method
JP5900193B2 (ja) * 2012-06-29 2016-04-06 富士通株式会社 更新判定プログラムおよび更新判定装置
CN110378133B (zh) * 2019-06-28 2023-05-05 深圳市元征科技股份有限公司 一种文件保护方法、装置、电子设备及存储介质
JP7272156B2 (ja) * 2019-07-16 2023-05-12 富士電機株式会社 情報処理装置、情報処理方法
CN112148350A (zh) * 2020-09-04 2020-12-29 深圳市大富网络技术有限公司 作品远程版本管理方法、电子设备以及计算机存储介质
JP2022174424A (ja) 2021-05-11 2022-11-24 富士通株式会社 情報処理プログラム、情報処理方法及び情報処理装置
CN117742777B (zh) * 2024-02-21 2024-05-03 沐曦集成电路(上海)有限公司 芯片文件版本管理系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7330981B2 (en) * 2004-04-23 2008-02-12 Microsoft Corporation File locker and mechanisms for providing and using same
JP4550487B2 (ja) * 2004-05-27 2010-09-22 三菱電機株式会社 ソフトウェア管理システム及び管理装置及び操作装置及びソフトウェア管理方法及びソフトウェア操作方法及びプログラム

Also Published As

Publication number Publication date
JP2009110061A (ja) 2009-05-21

Similar Documents

Publication Publication Date Title
US11632238B2 (en) Traceability of edits to digital documents via distributed ledgers
US20240248966A1 (en) Method and system for verifying integrity of a digital asset using a distributed hash table and a peer to-peer distributed ledger
JP6943356B2 (ja) Utxo基盤プロトコルを利用したブロックチェーン基盤の文書管理方法及びこれを利用した文書管理サーバ{method for managing document on basis of blockchain by using utxo−based protocol,and document management server using same}
JP4877193B2 (ja) 版数管理システムおよび版数管理方法
JP5783630B2 (ja) 複合リソース文書上のデジタル署名
US20200162266A1 (en) Facilitating analytic services for provenance of digital documents
CN101646995B (zh) 用于存储管理器的数据流过滤器和插件
TWI479341B (zh) 資訊系統中轉換資料之高處理能力,可靠複寫
US20160379013A1 (en) Cryptographic assurances of data integrity for data crossing trust boundaries
US20050210054A1 (en) Information management system
US20110271354A1 (en) Apparatus, system and method for securing digital documents in a digital appliance
US20070220260A1 (en) Protecting the integrity of electronically derivative works
JP2003508995A (ja) 内容が参照可能な情報を、安全に記憶し転送し検索するためのシステムおよび方法
CN111008034B (zh) 一种补丁生成方法及装置
US9607134B2 (en) System and method for protected publication of sensitive documents
JP2008542865A (ja) デジタル証拠バッグ
US20100223469A1 (en) Method, System and Computer Program Product for Certifying Software Origination
WO2023279698A1 (zh) 数据传输方法、系统、计算机设备及存储介质
JP2008102573A (ja) 文書管理システム及び文書管理装置と文書作成装置並びに文書管理方法
US11516002B1 (en) Tracking history of a digital object using a cryptographic chain
CN108052842A (zh) 签名数据的存储、验证方法及装置
JPWO2007072568A1 (ja) プログラム処理装置、プログラム処理方法、プログラム及びコンピュータ読取可能な記録媒体
CN110995440B (zh) 工作履历确认方法、装置、设备以及存储介质
CN112732789A (zh) 基于区块链的可搜索加密方法和电子设备
US20040237039A1 (en) Document structure inspection method and apparatus

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110922

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111101

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111114

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees