(57)【特許請求の範囲】
【請求項１】
情報端末装置とネットワークを介し接続する管理サーバであって、
元文書に対する更新内容を増分更新として更新順に前記元文書に追記する文書ファイルを前記情報端末装置から受信する受信手段と、
前記受信手段によって受信した前記文書ファイルのハッシュ値を算出するハッシュ値算出手段と、
前記受信手段によって受信した前記文書ファイルに含まれる、前記文書ファイルを識別する文書ファイルＩＤを取得する文書ファイルＩＤ取得手段と、
前記文書ファイルのハッシュ値と、前記文書ファイルＩＤと、前記文書ファイルのファイルサイズと、を対応付けて記憶するブロックが、前記文書ファイルを更新するごとに登録されるブロックチェーンネットワークから、前記文書ファイルＩＤ取得手段によって取得した前記文書ファイルＩＤを記憶するブロックのうちの最新ブロックに記憶するハッシュ値およびファイルサイズを取得するハッシュ値取得手段と、
前記ハッシュ値算出手段によって算出した前記ハッシュ値と、前記ハッシュ値取得手段によって取得した前記ハッシュ値が一致するか否か、および、前記受信手段によって受信した前記文書ファイルのファイルサイズと、前記ハッシュ値取得手段によって取得した前記ファイルサイズが一致するか否かによって前記文書ファイルが改ざんされているか否かを判断する改ざん判断手段と、
前記改ざん判断手段によって判断した判断結果を前記情報端末装置に送信する送信手段と、
を備えることを特徴とする管理サーバ。
【請求項２】
前記ブロックチェーンネットワークに登録するブロックに、前記文書ファイルのバージョン情報を前記文書ファイルＩＤに対応付けて記憶し、
前記改ざん判断手段によって改ざんなしと判断された場合に、前記最新ブロックに記憶された前記バージョン情報を前記文書ファイルのバージョン情報と判断するバージョン判断手段、をさらに備え、
前記送信手段は、前記バージョン判断手段によって判断した判断結果を前記情報端末装置に送信すること、を特徴とする請求項１に記載の管理サーバ。
【請求項３】
情報端末装置とネットワークを介し接続する管理サーバであって、
元文書に対する更新内容を増分更新として更新順に前記元文書に追記する文書ファイルを前記情報端末装置から受信する受信手段と、
前記受信手段によって受信した前記文書ファイルから前記文書ファイルを識別する文書ファイルＩＤを取得する文書ファイルＩＤ取得手段と、
前記文書ファイルのハッシュ値と、前記文書ファイルＩＤと、前記文書ファイルのファイルサイズと、を対応付けて記憶するブロックが、前記文書ファイルを更新するごとに登録されるブロックチェーンネットワークから、前記文書ファイルＩＤ取得手段によって取得した前記文書ファイルＩＤを記憶するブロックのうちの最新ブロックに記憶するファイルサイズを取得するハッシュ値取得手段と、
前記ハッシュ値取得手段によって取得したブロックのうちの前記最新ブロックに記憶されたファイルサイズと、前記文書ファイルのファイルサイズが一致するか否かによって前記文書ファイルが最新か否かを判断するバージョン判断手段と、
前記バージョン判断手段によって判断した判断結果を前記情報端末装置に送信する送信手段と、を備えることを特徴とする管理サーバ。
【請求項４】
前記受信手段によって受信した前記文書ファイルのハッシュ値を算出するハッシュ値算出手段と、
前記バージョン判断手段によって前記最新ブロックに記憶されたファイルサイズと、前記文書ファイルのファイルサイズが一致すると判断された場合に、前記最新ブロックに記憶されたハッシュ値と、前記ハッシュ値算出手段によって算出された前記ハッシュ値が一致するか否かによって、前記文書ファイルが改ざんされたか否かを判断する改ざん判断手段と、をさらに備えることを特徴とする請求項３に記載の管理サーバ。
【請求項５】
前記バージョン判断手段は、前記最新ブロックに記憶されたファイルサイズと、前記文書ファイルのファイルサイズが一致しないと判断する場合に、前記文書ファイルは最新バージョンではないと判断することを特徴とする請求項３に記載の管理サーバ。
【請求項６】
前記バージョン判断手段は、前記ハッシュ値取得手段によって前記ブロックチェーンネットワークから取得した、前記文書ファイルＩＤを記憶するブロックのうち、前記ブロックに記憶するファイルサイズと前記文書ファイルのファイルサイズが一致すると判断した場合であって、かつ、前記ブロックに記憶するハッシュ値と、前記文書ファイルのハッシュ値が一致すると判断した場合には、前記ブロックに記憶されたバーション情報を前記文書ファイルのバーション情報とし、未登録の更新なしと判断すること、を特徴とする請求項５に記載の管理サーバ。
【請求項７】
前記バージョン判断手段は、前記ハッシュ値取得手段によって前記ブロックチェーンネットワークから取得した、前記文書ファイルＩＤを記憶するブロックのうち、前記ブロックに記憶するファイルサイズと前記文書ファイルのファイルサイズが一致しないと判断した場合であって、かつ、前記ブロックに記憶されたハッシュ値と、前記文書ファイルの先頭から前記ファイルサイズまでの前記ハッシュ値が一致すると判断した場合には、前記ブロックに記憶されたバーション情報を前記文書ファイルのバーション情報とし、未登録の更新ありと判断すること、を特徴とする請求項５に記載の管理サーバ。
【請求項８】
情報端末装置とネットワークを介し接続する管理サーバであって、
元文書に対する更新内容を増分更新として更新順に前記元文書に追記する文書ファイルを前記情報端末装置から受信する受信手段と、
前記受信手段によって受信した前記文書ファイルから前記文書ファイルを識別する文書ファイルＩＤを取得する文書ファイルＩＤ取得手段と、
前記文書ファイルのハッシュ値と、前記文書ファイルＩＤと、前記文書ファイルのファイルサイズと、を対応付けて記憶するブロックが、前記文書ファイルを更新するごとに登録されるブロックチェーンネットワークから、前記文書ファイルＩＤ取得手段によって取得した前記文書ファイルＩＤを記憶するブロックのうちの最新ブロックに記憶するハッシュ値およびファイルサイズを取得するハッシュ値取得手段と、
前記文書ファイルのファイルサイズが、前記ハッシュ値取得手段によって取得した前記最新ブロックに記憶するファイルサイズより大きいか否かを判断するファイルサイズ判断手段と、
前記受信手段によって受信した前記文書ファイルの先頭から前記最新ブロックに記憶するファイルサイズまでのハッシュ値を算出するハッシュ値算出手段と、
前記ファイルサイズ判断手段によって前記文書ファイルのファイルサイズが、前記ハッシュ値取得手段によって取得した前記最新のブロックに記憶するファイルサイズより大きいと判断し、かつ、前記ハッシュ値取得手段によって取得した前記最新ブロックに記憶するハッシュ値と、前記ハッシュ値算出手段によって算出した前記ハッシュ値が一致する場合に、前記文書ファイルを登録可と判断する登録可否判断手段と、
前記登録可否判断手段によって判断した判断結果を前記情報端末装置に送信する送信手段と、
を備えることを特徴とする管理サーバ。
【請求項９】
前記ファイルサイズ判断手段は、前記文書ファイルのファイルサイズが、前記ハッシュ値取得手段によって取得した前記最新ブロックに記憶するファイルサイズと一致するか否かを判断し、
前記登録可否判断手段は、前記ファイルサイズ判断手段によって前記文書ファイルのファイルサイズが、前記ハッシュ値取得手段によって取得した前記最新ブロックに記憶するファイルサイズと一致すると判断した場合に、前記文書ファイルが登録済みであり、登録不可と判断すること、を特徴とする請求項８に記載の管理サーバ。
【請求項１０】
前記登録可否判断手段は、前記ファイルサイズ判断手段によって前記文書ファイルのファイルサイズが、前記ハッシュ値取得手段によって取得した前記最新のブロックに含むファイルサイズより小さいと判断した場合に、前記文書ファイルは登録不可と判断すること、を特徴とする請求項８に記載の管理サーバ。
【請求項１１】
情報端末装置と、前記情報端末装置にネットワークを介し接続する管理サーバと、を備える文書ファイル管理システムであって、
前記管理サーバは、
元文書に対する更新内容を増分更新として更新順に前記元文書に追記する文書ファイルを前記情報端末装置から受信する受信手段と、
前記受信手段によって受信した前記文書ファイルのハッシュ値を算出するハッシュ値算出手段と、
前記受信手段によって受信した前記文書ファイルに含まれる、前記文書ファイルを識別する文書ファイルＩＤを取得する文書ファイルＩＤ取得手段と、
前記文書ファイルのハッシュ値と、前記文書ファイルＩＤと、前記文書ファイルのファイルサイズと、を対応付けて記憶するブロックが、前記文書ファイルを更新するごとに登録されるブロックチェーンネットワークから、前記文書ファイルＩＤ取得手段によって取得した前記文書ファイルＩＤを記憶するブロックのうちの最新ブロックに記憶するハッシュ値およびファイルサイズを取得するハッシュ値取得手段と、
前記ハッシュ値算出手段によって算出した前記ハッシュ値と、前記ハッシュ値取得手段によって取得した前記ハッシュ値が一致するか否か、および、前記受信手段によって受信した前記文書ファイルのファイルサイズと、前記ハッシュ値取得手段によって取得した前記ファイルサイズが一致するか否かによって前記文書ファイルが改ざんされているか否かを判断する改ざん判断手段と、
前記改ざん判断手段によって判断した判断結果を前記情報端末装置に送信する送信手段と、を備え、
前記情報端末装置は、
前記判断結果を前記管理サーバから受信する受信手段と、
前記判断結果を表示部に表示する表示手段と、
を備えることを特徴とする文書ファイル管理システム。
【請求項１２】
情報端末装置と、前記情報端末装置にネットワークを介し接続する管理サーバと、を備える文書ファイル管理システムであって、
前記管理サーバは、
元文書に対する更新内容を増分更新として更新順に前記元文書に追記する文書ファイルを前記情報端末装置から受信する受信手段と、
前記受信手段によって受信した前記文書ファイルから前記文書ファイルを識別する文書ファイルＩＤを取得する文書ファイルＩＤ取得手段と、
前記文書ファイルのハッシュ値と、前記文書ファイルＩＤと、前記文書ファイルのファイルサイズと、を対応付けて記憶するブロックが、前記文書ファイルを更新するごとに登録されるブロックチェーンネットワークから、前記文書ファイルＩＤ取得手段によって取得した前記文書ファイルＩＤを記憶するブロックのうちの最新ブロックに記憶するファイルサイズを取得するハッシュ値取得手段と、
前記ハッシュ値取得手段によって取得したブロックのうちの前記最新ブロックに記憶されたファイルサイズと、前記文書ファイルのファイルサイズが一致するか否かによって前記文書ファイルが最新か否かを判断するバージョン判断手段と、
前記バージョン判断手段によって判断した判断結果を前記情報端末装置に送信する送信手段と、を備え、
前記情報端末装置は、
前記判断結果を前記管理サーバから受信する受信手段と、
前記判断結果を表示部に表示する表示手段と、
を備えることを特徴とする文書ファイル管理システム。
【請求項１３】
情報端末装置と、前記情報端末装置にネットワークを介し接続する管理サーバと、を備える文書ファイル管理システムであって、
前記管理サーバは、
元文書に対する更新内容を増分更新として更新順に前記元文書に追記する文書ファイルを前記情報端末装置から受信する受信手段と、
前記受信手段によって受信した前記文書ファイルから前記文書ファイルを識別する文書ファイルＩＤを取得する文書ファイルＩＤ取得手段と、
前記文書ファイルのハッシュ値と、前記文書ファイルＩＤと、前記文書ファイルのファイルサイズと、を対応付けて記憶するブロックが、前記文書ファイルを更新するごとに登録されるブロックチェーンネットワークから、前記文書ファイルＩＤ取得手段によって取得した前記文書ファイルＩＤを記憶するブロックのうちの最新ブロックに記憶するハッシュ値およびファイルサイズを取得するハッシュ値取得手段と、
前記文書ファイルのファイルサイズが、前記ハッシュ値取得手段によって取得した前記最新ブロックに記憶するファイルサイズより大きいか否かを判断するファイルサイズ判断手段と、
前記受信手段によって受信した前記文書ファイルの先頭から前記最新ブロックに記憶するファイルサイズまでのハッシュ値を算出するハッシュ値算出手段と、
前記ファイルサイズ判断手段によって前記文書ファイルのファイルサイズが、前記ハッシュ値取得手段によって取得した前記最新のブロックに記憶するファイルサイズより大きいと判断し、かつ、前記ハッシュ値取得手段によって取得した前記最新ブロックに記憶するハッシュ値と、前記ハッシュ値算出手段によって算出した前記ハッシュ値が一致する場合に、前記文書ファイルを登録可と判断する登録可否判断手段と、
前記登録可否判断手段によって判断した判断結果を前記情報端末装置に送信する送信手段と、を備え、
前記情報端末装置は、
前記判断結果を前記管理サーバから受信する受信手段と、
前記判断結果を表示部に表示する表示手段と、
を備えることを特徴とする文書ファイル管理システム。
【請求項１４】
コンピュータで実行される文書ファイル管理方法であって、
元文書に対する更新内容を増分更新として更新順に前記元文書に追記する文書ファイルを受信する受信ステップと、
前記受信ステップによって受信した前記文書ファイルのハッシュ値を算出するハッシュ値算出ステップと、
前記受信ステップによって受信した前記文書ファイルに含まれる、前記文書ファイルを識別する文書ファイルＩＤを取得する文書ファイルＩＤ取得ステップと、
前記文書ファイルのハッシュ値と、前記文書ファイルＩＤと、前記文書ファイルのファイルサイズと、を対応付けて記憶するブロックが、前記文書ファイルを更新するごとに登録されるブロックチェーンネットワークから、前記文書ファイルＩＤ取得ステップによって取得した前記文書ファイルＩＤを記憶するブロックのうちの最新ブロックに記憶するハッシュ値およびファイルサイズを取得するハッシュ値取得ステップと、
前記ハッシュ値算出ステップによって算出した前記ハッシュ値と、前記ハッシュ値取得ステップによって取得した前記ハッシュ値が一致するか否か、および、前記受信ステップによって受信した文書ファイルのファイルサイズと、前記ハッシュ値取得ステップによって取得した前記ファイルサイズが一致するか否かによって前記文書ファイルが改ざんされているか否かを判断する改ざん判断ステップと、
前記改ざん判断ステップによって判断した判断結果を送信する送信ステップと、
を含むことを特徴とする文書ファイル管理方法。
【請求項１５】
コンピュータで実行される文書ファイル管理方法であって、
元文書に対する更新内容を増分更新として更新順に前記元文書に追記する文書ファイルを受信する受信ステップと、
前記受信ステップによって受信した前記文書ファイルから前記文書ファイルを識別する文書ファイルＩＤを取得する文書ファイルＩＤ取得ステップと、
前記文書ファイルのハッシュ値と、前記文書ファイルＩＤと、前記文書ファイルのファイルサイズと、を対応付けて記憶するブロックが、前記文書ファイルを更新するごとに登録されるブロックチェーンネットワークから、前記文書ファイルＩＤ取得ステップによって取得した前記文書ファイルＩＤを記憶するブロックのうちの最新ブロックに記憶するファイルサイズを取得するハッシュ値取得ステップと、
前記ハッシュ値取得ステップによって取得したブロックのうちの前記最新ブロックに記憶されたファイルサイズと、前記文書ファイルのファイルサイズが一致するか否かによって前記文書ファイルが最新か否かを判断するバージョン判断ステップと、
前記バージョン判断ステップによって判断した判断結果を送信する送信ステップと、
を含むことを特徴とする文書ファイル管理方法。
【請求項１６】
コンピュータで実行される文書ファイル管理方法であって、
元文書に対する更新内容を増分更新として更新順に前記元文書に追記する文書ファイルを受信する受信ステップと、
前記受信ステップによって受信した前記文書ファイルから前記文書ファイルを識別する文書ファイルＩＤを取得する文書ファイルＩＤ取得ステップと、
前記文書ファイルのハッシュ値と、前記文書ファイルＩＤと、前記文書ファイルのファイルサイズと、を対応付けて記憶するブロックが、前記文書ファイルを更新するごとに登録されるブロックチェーンネットワークから、前記文書ファイルＩＤ取得ステップによって取得した前記文書ファイルＩＤを記憶するブロックのうちの最新ブロックに記憶するハッシュ値およびファイルサイズを取得するハッシュ値取得ステップと、
前記文書ファイルのファイルサイズが、前記ハッシュ値取得ステップによって取得した前記最新ブロックに記憶するファイルサイズより大きいか否かを判断するファイルサイズ判断ステップと、
前記受信ステップによって受信した前記文書ファイルの先頭から前記最新ブロックに記憶するファイルサイズまでのハッシュ値を算出するハッシュ値算出ステップと、
前記ファイルサイズ判断ステップによって前記文書ファイルのファイルサイズが、前記ハッシュ値取得ステップによって取得した前記最新のブロックに記憶するファイルサイズより大きいと判断し、かつ、前記ハッシュ値取得ステップによって取得した前記最新ブロックに記憶するハッシュ値と、前記ハッシュ値算出ステップによって算出した前記ハッシュ値が一致する場合に、前記文書ファイルを登録可と判断する登録可否判断ステップと、
を含むことを特徴とする文書ファイル管理方法。
【請求項１７】
請求項１４〜１６のいずれか１つに記載した文書ファイル管理方法をコンピュータに実行させることを特徴とする文書ファイル管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理サーバ、文書ファイル管理システム、文書ファイル管理方法、および文書ファイル管理プログラムに関する。
【背景技術】
【０００２】
近年、紙の書面に代り、内容の追加・修正、保管も容易な電子書面があらゆる場面で利用されている。特にＰＤＦ（Portable Document Format）ファイルは、ユーザが操作する情報端末装置の使用環境に影響されることが少なく、印刷または画面に表示する際にレイアウトが崩れることも少ないため、広く利用されている。このような電子書面において一部を修正したほぼ同一の電子書面が複数存在する場合、どの部分が変更されたのかを事後に確認することが難しいという問題があった。このような問題を解決するために、正式版の文書ファイルと暫定版の文書ファイルを段落ごとに比較し、両者の差分を全文比較で抽出する技術が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2013-045437号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した特許文献１に記載した技術では、対象となる部分を全文比較する必要があり、処理時間がかかるという問題があった。またユーザ自身が文書ファイルの正式版や改訂版を意識して管理する必要があり、文書ファイルの管理が煩雑であった。
【０００５】
本発明は、上記に鑑みてなされたものであり、文書ファイルの改ざんの有無や文書ファイルが最新のバージョンであるか否か、さらに登録対象の文書ファイルの登録可否をユーザの作業負担なく判断することができる管理サーバ、文書ファイル管理システム、文書ファイル管理方法、および文書ファイル管理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明では、元文書に対する更新内容を増分更新として更新順に元文書に追記するとともに、元文書および更新内容を追記した文書ごとに、文書ファイルのハッシュ値と、文書ファイルを識別する文書ファイルＩＤとをブロックチェーンネットワークに登録する文書ファイルを情報端末装置から受信し、受信した文書ファイルのハッシュ値を算出し、受信した文書ファイルに含まれる文書ファイルＩＤを取得し、取得した文書ファイルＩＤを記憶するブロックのなかの最新ブロックに記憶するハッシュ値をブロックチェーンネットワークから取得し、算出したハッシュ値と、取得したハッシュ値が一致するか否かによって文書ファイルが改ざんされているか否かを判断することを特徴とする。
【０００７】
また、本発明では、検証対象の文書ファイルから文書ファイルを識別する文書ファイルＩＤを取得し、文書ファイルのハッシュ値を算出し、文書ファイルＩＤを記憶するブロックのうち最新ブロックに記憶された文書ファイルに関する情報と、文書ファイルＩＤおよび文書ファイルのハッシュ値を記憶するブロックに記憶された文書ファイルに関する情報を対比することによって、検証対象の文書ファイルが最新であるか否かを判断することを特徴とする。
【０００８】
また、本発明では、登録対象の文書ファイルから文書ファイルを識別する文書ファイルＩＤを取得し、文書ファイルのファイルサイズが、文書ファイルＩＤを記憶するブロックのうち最新ブロックに記憶するファイルサイズより大きいか否かを判断し、文書ファイルの先頭から最新ブロックに記憶するファイルサイズまでのハッシュ値を算出し、文書ファイルのファイルサイズが、最新のブロックに記憶するファイルサイズより大きいと判断し、かつ、最新ブロックに記憶するハッシュ値と、算出した文書ファイルのハッシュ値が一致する場合に、文書ファイルを登録可と判断することを特徴とする。
【発明の効果】
【０００９】
上述したように構成した本発明によれば、文書ファイルの改ざんの有無や文書ファイルが最新のバージョンであるか否か、さらに登録対象の文書ファイルの登録可否をユーザの作業負担なく判断することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】実施例１にかかる文書ファイル管理システム１０の構成を示すブロック図である。
【図２】管理サーバ１００と情報端末装置２００が実行する文書ファイル登録処理手順を示すフローチャートである。
【図３】管理サーバ１００と情報端末装置２００が実行する文書ファイル改ざん確認処理手順を示すフローチャートである。
【図４】管理サーバ１００と情報端末装置２００が実行する文書ファイルバージョン確認処理手順を示すフローチャートである。
【図５】管理サーバ１００が実行するバージョン判断処理手順を示すフローチャートである。
【図６】検証対象の文書ファイルのハッシュ値とブロックチェーンネットワークのブロックに記憶されている文書ファイルのハッシュ値のイメージの一例を示す説明図である。
【図７】管理サーバ１００が実行するバージョン判断処理手順を示すフローチャートである。
【図８】管理サーバ１００と情報端末装置２００が実行する、文書ファイルの最新バージョン確認処理手順を示すフローチャートである。
【図９】管理サーバ１００が実行する最新バージョン判断処理手順を示すフローチャートである。
【図１０】実施例２にかかる文書ファイル管理システム２０の構成を示すブロック図である。
【図１１】管理サーバ４００と情報端末装置２００が実行する文書ファイル登録可否判断処理手順を示すフローチャートである。
【図１２】管理サーバ４００が実行する文書ファイルの登録可否処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し本発明の実施例を説明する。なお、以下の説明は、実施の形態の一例であり、本発明は、これらの実施例に限定されるものではない。
【実施例１】
【００１２】
図１は、実施例１にかかる文書ファイル管理システム１０の構成を示すブロック図である。文書ファイル管理システム１０は、管理サーバ１００と、情報端末装置２００−１〜ｎ（以下、情報端末装置２００と示す）と、ブロックチェーンネットワーク３００とを備える。管理サーバ１００と情報端末装置２００、ブロックチェーンネットワーク３００は、図１に示すように、ネットワークＮを介して互いに通信可能に接続する。ネットワークＮは、インターネット、イントラネット、ＬＡＮ（Local Area Network）やＶＰＮ（Virtual Private Network）、移動体通信網等の任意の通信ネットワークおよびそれらの組合せであり、その一部または全部が有線または無線であってもよい。
【００１３】
管理サーバ１００は、情報端末装置２００から受信した文書ファイルに関する情報をブロックチェーンネットワーク３００に登録するとともに、文書ファイルの改ざんの有無および文書ファイルが最新のバージョンであるか否か、登録対象の文書ファイルの登録可否等をブロックチェーンネットワーク３００を用いて判断するサーバである。管理サーバ１００は、送受信部１０１と、ＩＤ取得部１０２と、ハッシュ値算出部１０３と、ブロックチェーン登録部１０４と、ハッシュ値取得部１０５と、改ざん判断部１０６と、バージョン判断部１０７と、を備える。
【００１４】
送受信部１０１は、情報端末装置２００から送信された文書ファイルおよび登録要求を受信する。送受信部１０１は、受信した文書ファイルに関する情報をブロックチェーンネットワーク３００に送信する。送受信部１０１は、情報端末装置２００から送信された文書ファイルおよび様々の確認要求を受信し、確認結果を情報端末装置２００に送信する。
【００１５】
ＩＤ取得部１０２は、文書登録要求とともに受信した文書ファイルに文書ファイルＩＤが格納されていれば、文書ファイルＩＤを取得する。またＩＤ取得部１０２は、文書ファイルに文書ファイルＩＤが格納されていなければ、文書ファイルＩＤを生成し、生成した文書ファイルＩＤを文書ファイルに格納する。文書ファイルＩＤは、文書ファイルを一意に識別する情報であり、文書ファイルを一意に識別できれば、文書名等であってもよい。
【００１６】
ハッシュ値算出部１０３は、文書ファイルのハッシュ値を算出する。ハッシュ値算出部１０３は、文書ファイルの先頭からファイルサイズまでのハッシュ値を算出する。ここで、文書ファイルは、一例としてＰＤＦファイルであり、最初に作成した元文書に対し編集した際の更新内容を増分更新として更新順に追記し１つの文書ファイルとする。なお文書ファイルは、更新内容を文書ファイルに追記することができれば、ＰＤＦファイル以外であってもよい。本実施例では、文書ファイルがＰＤＦファイルの場合を中心に説明する。
【００１７】
ブロックチェーン登録部１０４は、登録要求された文書ファイル（文書ファイルＩＤを含む文書ファイル）の文書ファイルＩＤとハッシュ値、バージョン情報、ファイルサイズ等をブロックチェーンネットワーク３００に送信し、ブロックチェーンネットワーク３００内のブロックに文書ファイルＩＤとハッシュ値、バージョン情報、ファイルサイズ、登録日時等を記憶する。なお、登録日時は、ブロックをブロックチェーンネットワーク３００に格納する際に自動的に記録される。ブロックチェーンネットワーク３００には、登録要求された文書ファイルの文書ファイルＩＤとハッシュ値、バージョン情報、ファイルサイズ、登録日時等を記憶したブロックが登録順に格納されている。
【００１８】
ハッシュ値取得部１０５は、文書ファイルに格納された文書ファイルＩＤを取得し、取得した文書ファイルＩＤをブロックチェーンネットワーク３００に送信することによって、ブロックチェーンネットワーク３００の文書ファイルＩＤが一致するブロックからハッシュ値を取得する。ハッシュ値取得部１０５は、ハッシュ値に加え、ブロックに記憶するファイルサイズ、バージョン情報、登録日時等を取得する。ハッシュ値取得部１０５は、同一の文書ファイルＩＤを記憶するブロックが複数格納されている場合は、ブロックごとの、複数のハッシュ値、ファイルサイズ、バージョン情報、登録日時等を取得する。
【００１９】
改ざん判断部１０６は、文書ファイルから算出したハッシュ値とハッシュ値取得部１０５によって取得したハッシュ値の比較結果に基づき改ざんの有無を判断する。改ざん判断部１０６は、文書ファイルから算出したハッシュ値とハッシュ値取得部１０５によって取得したハッシュ値が一致する場合は改ざんがないと判断し、ハッシュ値が一致しない場合は改ざんがあると判断する。
【００２０】
バージョン判断部１０７は、ブロックチェーンネットワーク３００のブロックに記憶する、１つの文書ファイルのバージョンごとに異なるハッシュ値、ファイルサイズ、バージョン情報に基づいて、検証対象である文書ファイルのバージョン情報と、ブロックチェーンネットワーク３００に登録されていない更新がなされているか否か、検証対象である文書ファイルが最新のバージョンであるか否か等を判断する。
【００２１】
情報端末装置２００は、文書ファイルの改ざんやバージョンを管理したいユーザが操作するパーソナルコンピュータ、タブレット端末、スマートフォン等であり、情報端末装置２００から管理サーバ１００に対し様々なリクエストを送信し、リクエストに対するレスポンスを受信し表示する。
【００２２】
ブロックチェーンネットワーク３００は、いわゆる分散型台帳技術を用いたシステムであり、本実施例では、文書ファイルＩＤと文書ファイルのハッシュ値、さらに文書ファイルのファイルサイズ、バージョン情報等をブロックチェーンネットワーク３００に送信することによって、登録順にブロックに記憶される。またブロックチェーンネットワーク３００に文書ファイルＩＤを送信することによって、ブロックに記憶した文書ファイルのハッシュ値、さらに文書ファイルのファイルサイズ、バージョン情報、登録日時等をブロックごとに取得する。
【００２３】
上述のように構成された文書ファイル管理システム１０で実行する文書ファイル登録処理について説明する。図２は、管理サーバ１００と情報端末装置２００が実行する文書ファイル登録処理手順を示すフローチャートである。
【００２４】
情報端末装置２００は、文書ファイルの登録を受付ける（ステップＳ２０１）。情報端末装置２００は、文書ファイルおよび文書登録要求を管理サーバ１００に送信する（ステップＳ２０２）。
【００２５】
管理サーバ１００において、送受信部１０１は、文書ファイルおよび文書登録要求を受信する（ステップＳ２０３）。ＩＤ取得部１０２は、文書ファイルに文書ファイルＩＤが格納されているか否かを判断する（ステップＳ２０４）。文書ファイルに文書ファイルＩＤが格納されていると判断した場合（ステップＳ２０４：Ｙｅｓ）、ＩＤ取得部１０２は、文書ファイルから文書ファイルＩＤを取得する（ステップＳ２０５）。
【００２６】
文書ファイルに文書ファイルＩＤが格納されていないと判断した場合（ステップＳ２０４：Ｎｏ）、ＩＤ取得部１０２は、文書ファイルＩＤを生成する（ステップＳ２０６）。ＩＤ取得部１０２は、文書ファイルＩＤを文書ファイルに格納する（ステップＳ２０７）。ハッシュ値算出部１０３は、文書ファイルのハッシュ値を算出する（ステップＳ２０８）。送受信部１０１は、文書ファイルの文書ファイルＩＤとハッシュ値をブロックチェーンネットワーク３００に送信する（ステップＳ２０９）。これにより、文書ファイルＩＤとハッシュ値は、ブロックチェーンネットワーク３００のブロックに記憶される。なお文書ファイルＩＤとハッシュ値に加え、ファイルサイズ、バージョン情報等をブロックチェーンネットワーク３００に送信し、ブロックチェーンネットワーク３００のブロックに記憶してもよい。送受信部１０１は、ＩＤ取得部１０２によって文書ファイルＩＤを生成したか否かを判断する（ステップＳ２１０）。文書ファイルＩＤを生成していないと判断した場合（ステップＳ２１０：Ｎｏ）、処理を終了する。文書ファイルＩＤを生成したと判断した場合（ステップＳ２１０：Ｙｅｓ）、送受信部１０１は、文書ファイルを情報端末装置２００に送信する（ステップＳ２１１）。
【００２７】
情報端末装置２００は、文書ファイルを受信する（ステップＳ２１２）。情報端末装置２００は、文書ファイルを格納する（ステップＳ２１３）。より具体的には、情報端末装置２００は、管理サーバ１００に送信した文書ファイルを管理サーバ１００から受信した文書ファイルに置換える。これにより、当初文書ファイルＩＤを保持していなかった文書ファイルであっても、ブロックチェーンネットワーク３００のブロックに記憶した情報と、情報端末装置２００に格納する文書ファイルを文書ファイルＩＤで紐付けすることができる。
【００２８】
このように、文書ファイルに文書ファイルＩＤを含むとともに、文書ファイルに関する情報を文書ファイルＩＤに対応付けてブロックチェーンネットワーク３００のブロックに記憶させることによって、文書ファイル自体からブロックチェーンネットワーク３００を検索する際のキーとなる文書ファイルＩＤを取得することができるため、文書ファイルと文書ファイルＩＤを関連付ける仕組み（例えばデータベース等）を設ける必要もなく、文書ファイルのみでブロックチェーンネットワーク３００に記憶する文書ファイルに関する情報を参照することができる。
【００２９】
また文書ファイルに関する情報としてバージョン情報をブロックに記憶することにより、文書ファイルに複数のバージョンが存在する場合であっても、バージョンごとにブロックチェーンネットワーク３００のブロックに文書ファイルに関する情報を記憶することができ、文書ファイルのバージョンごとのハッシュ値を保持することができる。
【００３０】
次に文書ファイル管理システム１０で実行する文書ファイル改ざん確認処理について説明する。図３は、管理サーバ１００と情報端末装置２００が実行する文書ファイル改ざん確認処理手順を示すフローチャートである。
【００３１】
情報端末装置２００は、検証対象である文書ファイルを受付ける（ステップＳ３０１）。例えば文書ファイルの一覧から選択によって文書ファイルを受付けてもよい。情報端末装置２００は、文書ファイルと改ざん確認要求を管理サーバ１００に送信する（ステップＳ３０２）。
【００３２】
管理サーバ１００の送受信部１０１は、文書ファイルと改ざん確認要求を情報端末装置２００から受信する（ステップＳ３０３）。ハッシュ値算出部１０３は、受信した文書ファイルのハッシュ値を算出する（ステップＳ３０４）。ＩＤ取得部１０２は、文書ファイルから文書ファイルＩＤを取得する（ステップＳ３０５）。ハッシュ値取得部１０５は、文書ファイルＩＤに対応するハッシュ値をブロックチェーンネットワーク３００から取得する（ステップＳ３０６）。なお改ざん確認処理において、バージョンが異なる文書ファイルがブロックチェーンネットワーク３００に記憶されている場合は、文書ファイルから取得した文書ファイルＩＤを記憶するブロックのうち、ブロックチェーンネットワーク３００に最も新しく登録されたブロック（以下、最新ブロックという）に含まれるハッシュ値と比較することによって改ざんの有無を確認することができる。
【００３３】
改ざん判断部１０６は、ハッシュ値算出部１０３によって算出した文書ファイルのハッシュ値と、ブロックチェーンネットワーク３００から取得したハッシュ値との比較結果に基づき文書ファイルが改ざんされているか否かを判断する（ステップＳ３０７）。
【００３４】
より具体的には、改ざん判断部１０６は、検証対象の文書ファイルのハッシュ値とブロックチェーンネットワーク３００に記憶されたハッシュ値が一致する場合は、検証対象の文書ファイルは、ブロックチェーンネットワーク３００にハッシュ値が記憶された文書ファイルから改ざんされていないと判断する。改ざん判断部１０６は、検証対象の文書ファイルのハッシュ値とブロックチェーンネットワーク３００に記憶された文書ファイルのハッシュ値が一致しない場合は、検証対象の文書ファイルはブロックチェーンネットワーク３００にハッシュ値が記憶された文書ファイルから改ざんされていると判断する。
【００３５】
送受信部１０１は、改ざん判断部１０６による改ざんに関する判断結果を情報端末装置２００に送信する（ステップＳ３０８）。
【００３６】
情報端末装置２００は、改ざんに関する判断結果を管理サーバ１００から受信する（ステップＳ３０９）。情報端末装置２００は、改ざんに関する判断結果を表示部に表示する（ステップＳ３１０）。
【００３７】
このように、ユーザが入手した文書ファイルを管理サーバ１００に送信することによって文書ファイルの内容が改ざんされているか否かを判断することができる。また文書ファイルの改ざんの有無をブロックチェーンネットワーク３００のブロックに記憶した文書ファイルに関する情報を用いて判断することができるため、電子署名システム等を利用することなく改ざんの有無を判断することができる。なお文書ファイルは、更新内容を増分更新として追記できる旨を上述したが、改ざん確認の対象とする文書ファイルは、更新内容を追記しない文書ファイルでもよい。
【００３８】
上述した処理において、検証対象の文書ファイルが改ざんされていないと判断した場合に、ブロックチェーンネットワーク３００のブロックに自動的に記録された登録日時を取得することにより、登録日時に文書ファイルが存在したことを証明することもできる。
【００３９】
次に文書ファイル管理システム１０で実行する文書ファイルバージョン確認処理について説明する。図４は、管理サーバ１００と情報端末装置２００が実行する文書ファイルバージョン確認処理手順を示すフローチャートである。
【００４０】
情報端末装置２００は、検証対象である文書ファイルを受付ける（ステップＳ４０１）。例えば文書ファイルの一覧から選択によって文書ファイルを受付けるとともに、バージョン確認のメニューを選択してもよい。情報端末装置２００は、文書ファイルとバージョン確認要求を管理サーバ１００に送信する（ステップＳ４０２）。
【００４１】
管理サーバ１００の送受信部１０１は、文書ファイルとバージョン確認要求を情報端末装置２００から受信する（ステップＳ４０３）。ＩＤ取得部１０２は、文書ファイルから文書ファイルＩＤを取得する（ステップＳ４０４）。ハッシュ値取得部１０５は、文書ファイルＩＤに対応するハッシュ値とファイルサイズ、バージョン情報をブロックチェーンネットワーク３００から取得する（ステップＳ４０５）。なおバージョン確認処理においては、バージョンが異なる複数の文書ファイルに関する情報がブロックチェーンネットワーク３００に記憶されていることが想定されるため、文書ファイルＩＤに対応する、複数のハッシュ値とファイルサイズ、バージョン情報が取得される。バージョン判断部１０７は、バージョン判断処理を実行する（ステップＳ４０６）。詳細は、図５と図７を参照して後述する。送受信部１０１は、文書ファイルのバージョンに関する判断結果を情報端末装置２００に送信する（ステップＳ４０７）。
【００４２】
情報端末装置２００は、文書ファイルのバージョンに関する判断結果を管理サーバ１００から受信する（ステップＳ４０８）。情報端末装置２００は、文書ファイルのバージョンに関する判断結果を表示部に表示する（ステップＳ４０９）。
【００４３】
次に、管理サーバ１００で実行するバージョン判断処理について説明する。図５は、管理サーバ１００が実行するバージョン判断処理手順を示すフローチャートである。
【００４４】
バージョン判断部１０７は、検証対象である文書ファイルのファイルサイズを取得する（ステップＳ５０１）。バージョン判断部１０７は、ブロックチェーンネットワーク３００から取得した文書ファイルＩＤに対応するデータのうち、文書ファイルのファイルサイズと一致するデータがあるか否かを判断する（ステップＳ５０２）。図６は、検証対象の文書ファイルのハッシュ値とブロックチェーンネットワークのブロックに記憶されている文書ファイルのハッシュ値のイメージの一例を示す説明図である。図６に示す例では、ブロックチェーンネットワーク３００に記憶されているブロックから３つのバージョンのデータであるハッシュ値、ファイルサイズ、バージョン情報を取得し、そのうちのファイルサイズが一致するデータがあるか否かを判断する。図６に示す場合は、一致するデータはない。
【００４５】
文書ファイルのファイルサイズと一致するデータがあると判断した場合（ステップＳ５０２：Ｙｅｓ）、バージョン判断部１０７は、ハッシュ値が一致するか否かを判断する（ステップＳ５０３）。ハッシュ値が一致すると判断した場合（ステップＳ５０３：Ｙｅｓ）、バージョン判断部１０７は、検証対象の文書ファイルのバージョン情報と未登録の更新がされていない旨を判断する（ステップＳ５０４）。検証対象の文書ファイルのバージョンは、ファイルサイズが一致し、かつ、ハッシュ値が一致するデータのバーション情報であると判断でき、またブロックチェーンネットワーク３００に記憶したデータのファイルサイズが一致することから、バージョン情報に対応する文書ファイルにさらに追加したデータがない、すなわちブロックチェーンネットワーク３００に登録されていない更新内容の追記はないと判断することができる。ハッシュ値が一致しないと判断した場合（ステップＳ５０３：Ｎｏ）、ステップＳ５０５に進む。
【００４６】
文書ファイルのファイルサイズと一致するデータがないと判断した場合（ステップＳ５０２：Ｎｏ）、すなわちブロックチェーンネットワーク３００に登録されていない更新内容の追記があると判断した場合、バージョン判断部１０７は、文書ファイルのファイルサイズより次に小さいファイルサイズのデータを選択する（ステップＳ５０５）。図６に示す例では、バージョン情報が“バージョン２”のデータが選択される。
【００４７】
ハッシュ値算出部１０３は、文書ファイルの先頭からファイルサイズまでのデータのハッシュ値を算出する（ステップＳ５０６）。図６に示す例では、検証対象の文書ファイルの先頭から“バージョン２”のファイルサイズである“サイズ２”まで、すなわち元文書＋更新１までのデータのハッシュ値を算出する。バージョン判断部１０７は、選択されたデータのハッシュ値と、算出したハッシュ値が一致するか否かを判断する（ステップＳ５０７）。ハッシュ値が一致すると判断した場合（ステップＳ５０７：Ｙｅｓ）、バージョン判断部１０７は、検証対象の文書ファイルのバージョン情報と未登録の更新がされている旨を判断する（ステップＳ５０８）。検証対象の文書ファイルのバージョンは、ハッシュ値が一致するデータのバーション情報であると判断でき、またブロックチェーンネットワーク３００に記憶したデータのファイルサイズが一致しないことから、ブロックチェーンネットワーク３００に登録されていない更新内容の追記はあると判断することができる。
【００４８】
ハッシュ値が一致しないと判断した場合（ステップＳ５０７：Ｎｏ）、バージョン判断部１０７は、ブロックチェーンネットワーク３００から取得した文書ファイルＩＤに対応するデータがあるか否かを判断する（ステップＳ５０９）。データがあると判断した場合（ステップＳ５０９：Ｙｅｓ）、ステップＳ５０５に戻り、次の処理を実行する。データがないと判断した場合（ステップＳ５０９：Ｎｏ）、処理を終了する。
【００４９】
このように、ユーザが入手した文書ファイルを管理サーバ１００に送信することによって、検証対象の文書ファイルのバージョン情報と、検証対象の文書ファイルに未登録の更新がされているのか否かを確認することができる。また文書ファイルの文書ファイルのバージョンに関する情報をブロックチェーンネットワーク３００のブロックに記憶するため、電子署名システム等を利用することなくバージョンを管理することができる。
【００５０】
ブロックチェーンネットワーク３００のブロックに文書ファイルに関する情報を記憶した登録日時は、ブロックチェーンネットワーク３００のブロックに自動的に記録されるため、各バージョンの文書ファイルが存在した日時を証明することもできる。
【００５１】
図５で説明したバージョン判断処理に代えて、さらに検証対象の文書ファイルが最新のバージョンであるか否かの判断を加えた、管理サーバ１００で実行するバージョン判断処理について説明する。図７は、管理サーバ１００が実行するバージョン判断処理手順を示すフローチャートである。
【００５２】
バージョン判断部１０７は、検証対象である文書ファイルのファイルサイズを取得する（ステップＳ７０１）。バージョン判断部１０７は、検証対象である文書ファイルのファイルサイズと、ブロックチェーンネットワーク３００から取得した文書ファイルＩＤを記憶するブロックのうち、最新ブロックに記憶された文書ファイルのファイルサイズが一致するか否かを判断する（ステップＳ７０２）。
【００５３】
検証対象である文書ファイルのファイルサイズが最新ブロックに記憶された文書ファイルのファイルサイズと一致すると判断した場合（ステップＳ７０２：Ｙｅｓ）、バージョン判断部１０７は、検証対象である文書ファイルのハッシュ値と、最新ブロックに記憶されたハッシュ値が一致するか否かを判断する（ステップＳ７０３）。ハッシュ値が一致すると判断した場合（ステップＳ７０３：Ｙｅｓ）、バージョン判断部１０７は、検証対象の文書ファイルが最新バージョンであり、改ざんなしと判断する（ステップＳ７０４）。バージョン判断部１０７は、検証対象の文書ファイルのバージョンとして、最新ブロックに記憶するバージョン情報を取得する（ステップＳ７０５）。バージョン判断部１０７は、検証対象の文書ファイルに未登録の更新なしと判断する（ステップＳ７０６）。検証対象である文書ファイルのハッシュ値と最新ブロックに記憶されたハッシュ値が一致しないと判断した場合（ステップＳ７０３：Ｎｏ）、バージョン判断部１０７は、検証対象の文書ファイルに改ざんありと判断する（ステップＳ７０７）。
【００５４】
検証対象である文書ファイルのファイルサイズが最新ブロックに記憶された文書ファイルのファイルサイズと一致しないと判断した場合（ステップＳ７０２：Ｎｏ）、バージョン判断部１０７は、検証対象の文書ファイルが最新バージョンでないと判断する（ステップＳ７０８）。バージョン判断部１０７は、次に新しいブロックがあるか否かを判断する（ステップＳ７０９）。より具体的には、バージョン判断部１０７は、現在取得しているブロックの次に新しいブロックに記憶するハッシュ値、ファイルサイズ、バージョン情報、登録日時等を取得しているか否かを判断する。
【００５５】
次に新しいブロックがあると判断した場合（ステップＳ７０９：Ｙｅｓ）、バージョン判断部１０７は、次に新しいブロックに記憶されたファイルサイズを取得する（ステップＳ７１０）。バージョン判断部１０７は、検証対象の文書ファイルのファイルサイズと次に新しいブロックに記憶されたファイルサイズが一致するか否かを判断する（ステップＳ７１１）。検証対象の文書ファイルのファイルサイズと次に新しいブロックに記憶されたファイルサイズが一致しないと判断した場合（ステップＳ７１１：Ｎｏ）、ハッシュ値算出部１０３は、文書ファイルの先頭から、次に新しいブロックに記憶されたファイルサイズまでのハッシュ値を算出する（ステップＳ７１２）。バージョン判断部１０７は、次に新しいブロックに記憶されたハッシュ値と、算出されたハッシュ値が一致するか否かを判断する（ステップＳ７１３）。次に新しいブロックに含まれるハッシュ値と、算出されたハッシュ値が一致しないと判断した場合（ステップＳ７１３：Ｎｏ）、ステップＳ７０９に戻る。
【００５６】
次に新しいブロックに記憶されたハッシュ値と、算出されたハッシュ値が一致すると判断した場合（ステップＳ７１３：Ｙｅｓ）、バージョン判断部１０７は、検証対象の文書ファイルのバージョンとして、次に新しいブロックに記憶されたバージョン情報を取得する（ステップＳ７１４）。バージョン判断部１０７は、検証対象の文書ファイルには未登録の更新ありと判断する（ステップＳ７１５）。
【００５７】
検証対象の文書ファイルのファイルサイズと次に新しいブロックに記憶されたファイルサイズが一致すると判断した場合（ステップＳ７１１：Ｙｅｓ）、バージョン判断部１０７は、検証対象である文書ファイルのハッシュ値と、次に新しいブロックに記憶されたハッシュ値が一致するか否かを判断する（ステップＳ７１６）。ハッシュ値が一致すると判断した場合（ステップＳ７１６：Ｙｅｓ）、バージョン判断部１０７は、検証対象の文書ファイルのバージョンとして、次に新しいブロックに記憶されたバージョン情報を取得する（ステップＳ７１７）。バージョン判断部１０７は、検証対象の文書ファイルには未登録の更新なしと判断する（ステップＳ７１８）。ハッシュ値が一致しないと判断した場合（ステップＳ７１６：Ｎｏ）、バージョン判断部１０７は、検証対象の文書ファイルに改ざんありと判断する（ステップＳ７１９）。
【００５８】
次に新しいブロックがないと判断した場合（ステップＳ７０９：Ｎｏ）、バージョン判断部１０７は、検証対象の文書ファイルに一致するバージョン情報はないと判断する（ステップＳ７２０）。
【００５９】
このように、検証対象の文書ファイルのファイルサイズやハッシュ値を、ブロックチェーンネットワーク３００に記憶した最新ブロックから順に検証していくことによって、検証対象の文書ファイルのバージョン情報、未登録の更新の有無に加え、検証対象の文書ファイルが最新のバージョンであるか否かを判断することができる。
【００６０】
次に、検証対象の文書ファイルが最新バージョンか否かを確認する処理について説明する。図８は、管理サーバ１００と情報端末装置２００が実行する、文書ファイルの最新バージョン確認処理手順を示すフローチャートである。
【００６１】
情報端末装置２００は、検証対象である文書ファイルを受付ける（ステップＳ８０１）。例えば文書ファイルの一覧から選択によって文書ファイルを受付けるとともに、最新バージョン確認のメニューを選択してもよい。情報端末装置２００は、文書ファイルと最新バージョン確認要求を管理サーバ１００に送信する（ステップＳ８０２）。
【００６２】
管理サーバ１００の送受信部１０１は、文書ファイルと最新バージョン確認要求を情報端末装置２００から受信する（ステップＳ８０３）。ＩＤ取得部１０２は、文書ファイルから文書ファイルＩＤを取得する（ステップＳ８０４）。ハッシュ値取得部１０５は、ブロックチェーンネットワーク３００に格納された、文書ファイルの文書ファイルＩＤを記憶する最新ブロックからバージョン情報、ファイルサイズ、登録日時を取得する（ステップＳ８０５）。バージョン判断部１０７は、最新バージョン判断処理を実行する（ステップＳ８０６）。詳細は、図９を参照して後述する。送受信部１０１は、文書ファイルが最新バージョンであるか否かの判断結果を情報端末装置２００に送信する（ステップＳ８０７）。
【００６３】
情報端末装置２００は、文書ファイルが最新バーションであるか否かの判断結果を管理サーバ１００から受信する（ステップＳ８０８）。情報端末装置２００は、判断結果を表示部に表示する（ステップＳ８０９）。
【００６４】
次に、管理サーバ１００で実行する最新バージョン判断処理について説明する。図９は、管理サーバ１００が実行する最新バージョン判断処理手順を示すフローチャートである。
【００６５】
ハッシュ値算出部１０３は、検証対象である文書ファイルのハッシュ値を算出する（ステップＳ９０１）。ハッシュ値取得部１０５は、検証対象である文書ファイルの文書ファイルＩＤとハッシュ値が一致するブロックをブロックチェーンネットワーク３００から取得する（ステップＳ９０２）。なお検証対象である文書ファイルのハッシュ値に代えて、検証対象である文書ファイルのファイルサイズとし、検証対象である文書ファイルの文書ファイルＩＤとファイルサイズが一致するブロックをブロックチェーンネットワーク３００から取得してもよい。バージョン判断部１０７は、検証対象である文書ファイルの文書ファイルＩＤとハッシュ値が一致するブロックが取得できたか否かを判断する（ステップＳ９０３）。
【００６６】
検証対象である文書ファイルの文書ファイルＩＤとハッシュ値が一致するブロックが取得できたと判断した場合（ステップＳ９０３：Ｙｅｓ）、ハッシュ値取得部１０５は、取得したブロックに記憶するバージョン情報、ファイルサイズ、登録日時を取得する（ステップＳ９０４）。
【００６７】
バージョン判断部１０７は、最新ブロックに記憶するバージョン情報と、取得したブロックに記憶するバーション情報が一致するか否かを判断する（ステップＳ９０５）。最新ブロックに記憶するバージョン情報と、取得したブロックに記憶するバーション情報が一致すると判断した場合（ステップＳ９０５：Ｙｅｓ）、バージョン判断部１０７は、最新ブロックに記憶するファイルサイズと、取得したブロックに記憶するファイルサイズが一致するか否かを判断する（ステップＳ９０６）。バージョン判断部１０７は、最新ブロックに記憶するファイルサイズと、取得したブロックに記憶するファイルサイズが一致すると判断した場合（ステップＳ９０６：Ｙｅｓ）、バージョン判断部１０７は、最新ブロックに記憶する登録日時と、取得したブロックに記憶する登録日時が一致するか否かを判断する（ステップＳ９０７）。最新ブロックに記憶する登録日時と、取得したブロックに記憶する登録日時が一致すると判断した場合（ステップＳ９０７：Ｙｅｓ）、バージョン判断部１０７は、検証対象の文書ファイルが最新バージョンであると判断する（ステップＳ９０８）。
【００６８】
最新ブロックに記憶するバージョン情報と、取得したブロックに記憶するバーション情報が一致しないと判断した場合（ステップＳ９０５：Ｎｏ）、または、最新ブロックに記憶するファイルサイズと、取得したブロックに記憶するファイルサイズが一致しないと判断した場合（ステップＳ９０６：Ｎｏ）、または、最新ブロックに記憶する登録日時と、取得したブロックに記憶する登録日時が一致しないと判断した場合（ステップＳ９０７：Ｎｏ）、検証対象の文書ファイルは最新バーションでないと判断する（ステップＳ９０９）。
【００６９】
検証対象である文書ファイルの文書ファイルＩＤとハッシュ値が一致するブロックが取得できない、すなわち検証対象である文書ファイルに関する情報がブロックチェーンネットワーク３００に登録されていないと判断した場合（ステップＳ９０３：Ｎｏ）、検証対象の文書ファイルは最新バーションでないと判断する（ステップＳ９１０）。
【００７０】
なお、上述した処理では、最新ブロックに記憶するバージョン情報と、取得したブロックに記憶するバーション情報が一致するか否かの判断（ステップＳ９０５）、最新ブロックに記憶するファイルサイズと、取得したブロックに記憶するファイルサイズが一致するか否かの判断（ステップＳ９０６）、最新ブロックに記憶する登録日時と、取得したブロックに記憶する登録日時が一致するか否かの判断（ステップＳ９０７）のすべてが一致する場合に、検証対象の文書ファイルが最新バージョンであると判断したが、それらの判断のうちのいずれか１つ、または、いずれか２つの組合せの判断で一致する場合に、検証対象の文書ファイルが最新バージョンであると判断してもよい。
【００７１】
このように、ユーザが入手した文書ファイルを管理サーバ１００に送信するだけで、ブロックチェーンネットワーク３００のブロックに記憶された最新のバージョンの文書ファイルであるか否かを判断することができる。また検証対象の文書ファイルのバージョンに関する情報をブロックチェーンネットワーク３００のブロックに記憶するため、バージョンを管理するための複雑な仕組みを構築する必要なく、検証対象の文書ファイルが最新のバージョンであるか否かを簡便な仕組みで判断することができる。
【実施例２】
【００７２】
次に、文書ファイル（より具体的には、文書ファイルに関する情報）をブロックチェーンネットワーク３００に登録する際に、登録対象の文書ファイルは登録可であるか否かを判断する処理について説明する。図１０は、実施例２にかかる文書ファイル管理システム２０の構成を示すブロック図である。文書ファイル管理システム２０は、管理サーバ４００と、情報端末装置２００と、ブロックチェーンネットワーク３００とを備え、管理サーバ４００と、情報端末装置２００と、ブロックチェーンネットワーク３００とを通信ネットワークＮを介して通信可能に接続する。
【００７３】
管理サーバ４００は、情報端末装置２００から受信した文書ファイルに関する情報をブロックチェーンネットワーク３００に登録可か不可かを判断するサーバである。管理サーバ４００は、送受信部１０１と、ＩＤ取得部１０２と、ハッシュ値算出部１０３と、ブロックチェーン登録部１０４と、ハッシュ値取得部１０５と、改ざん判断部１０６と、バージョン判断部１０７と、ファイルサイズ判断部４０８と、登録可否判断部４０９と、を備える。本実施例では、実施例１と同一の符号を付した各部は、実施例１と同様の機能、構成であるため、上述した説明を参照し、以下実施例１と異なる点を中心に説明する。
【００７４】
ファイルサイズ判断部４０８は、登録対象である文書ファイルのファイルサイズが、ハッシュ値取得部１０５によって取得した最新ブロックに記憶するファイルサイズより大きいか否かを判断する。
【００７５】
登録可否判断部４０９は、登録対象である文書ファイルのファイルサイズが、最新のブロックに記憶するファイルサイズより大きいか否かの判断、登録対象である文書ファイルのファイルサイズが、最新のブロックに記憶するファイルサイズに一致するか否かの判断、登録対象である文書ファイルのハッシュ値が最新のブロックに記憶するハッシュ値に一致するか否かの判断に基づき、登録対象である文書ファイルの登録可否を判断する。
【００７６】
図１１は、管理サーバ４００と情報端末装置２００が実行する文書ファイル登録可否判断処理手順を示すフローチャートである。
【００７７】
情報端末装置２００は、文書ファイルの登録を受付ける（ステップＳ１１０１）。情報端末装置２００は、文書ファイルおよび文書登録要求を管理サーバ４００に送信する（ステップＳ１１０２）。
【００７８】
管理サーバ４００において、送受信部１０１は、文書ファイルおよび文書登録要求を受信する（ステップＳ１１０３）。ＩＤ取得部１０２は、文書ファイルに文書ファイルＩＤが格納されているか否かを判断する（ステップＳ１１０４）。文書ファイルに文書ファイルＩＤが格納されていないと判断した場合（ステップＳ１１０４：Ｎｏ）、ＩＤ取得部１０２は、文書ファイルＩＤを生成する（ステップＳ１１０５）。ＩＤ取得部１０２は、文書ファイルＩＤを文書ファイルに格納する（ステップＳ１１０６）。
【００７９】
文書ファイルに文書ファイルＩＤが格納されていると判断した場合（ステップＳ１１０４：Ｙｅｓ）、ＩＤ取得部１０２は、文書ファイルから文書ファイルＩＤを取得する（ステップＳ１１０７）。次に、文書ファイル登録可否判断処理を実行する（ステップＳ１１０８）。文書ファイル登録可否判断処理の詳細は、図１２を用いて後述する。文書ファイル登録可否判断処理に基づき、文書ファイルが登録可か否かを判断する（ステップＳ１１０９）。文書ファイルが登録可と判断した場合（ステップＳ１１０９：Ｙｅｓ）、ステップＳ１１１１に進む。文書ファイルが登録不可と判断した場合（ステップＳ１１０９：Ｎｏ）、送受信部１０１は、文書ファイルが登録不可である旨のメッセージを情報端末装置２００に送信する（ステップＳ１１１０）。
【００８０】
ハッシュ値算出部１０３は、文書ファイルのハッシュ値を算出する（ステップＳ１１１１）。送受信部１０１は、文書ファイルの文書ファイルＩＤとハッシュ値をブロックチェーンネットワーク３００に送信する（ステップＳ１１１２）。これにより、登録可である文書ファイルの文書ファイルＩＤとハッシュ値は、ブロックチェーンネットワーク３００のブロックに記憶される。なお文書ファイルＩＤとハッシュ値に加え、ファイルサイズ、バージョン情報等をブロックチェーンネットワーク３００に送信し、ブロックチェーンネットワーク３００のブロックに記憶してもよい。送受信部１０１は、ＩＤ取得部１０２によって文書ファイルＩＤを生成したか否かを判断する（ステップＳ１１１３）。文書ファイルＩＤを生成していないと判断した場合（ステップＳ１１１３：Ｎｏ）、処理を終了する。文書ファイルＩＤを生成したと判断した場合（ステップＳ１１１３：Ｙｅｓ）、送受信部１０１は、文書ファイルＩＤを記憶した文書ファイルを情報端末装置２００に送信する（ステップＳ１１１４）。
【００８１】
情報端末装置２００は、文書ファイルＩＤを記憶した文書ファイルを受信する（ステップＳ１１１５）。情報端末装置２００は、文書ファイルＩＤを記憶した文書ファイルを格納する（ステップＳ１１１６）。より具体的には、情報端末装置２００は、管理サーバ４００に送信した文書ファイルを管理サーバ４００から受信した文書ファイルに置換える。これにより、当初文書ファイルＩＤを保持していなかった文書ファイルを文書ファイルＩＤを記憶した文書ファイルに置換えることができ、ブロックチェーンネットワーク３００のブロックに記憶した文書ファイルに関する情報と、情報端末装置２００に格納する文書ファイルを文書ファイルＩＤで紐付けすることができる。
【００８２】
次に、管理サーバ４００で実行する、文書ファイルの登録可否判断処理を説明する。図１２は、管理サーバ４００が実行する文書ファイルの登録可否判断処理手順を示すフローチャートである。
【００８３】
ハッシュ値取得部１０５は、登録対象である文書ファイルの文書ファイルＩＤが一致する最新ブロックをブロックチェーンネットワーク３００から取得する（ステップＳ１２０１）。ハッシュ値取得部１０５は、最新ブロックに記憶するファイルサイズを取得する（ステップＳ１２０２）。
【００８４】
バージョン判断部１０７は、最新ブロックに記憶するファイルサイズと、登録対象である文書ファイルのファイルサイズが一致するか否かを判断する（ステップＳ１２０３）。最新ブロックに記憶するファイルサイズと、登録対象である文書ファイルのファイルサイズが一致しないと判断した場合（ステップＳ１２０３：Ｎｏ）、ファイルサイズ判断部４０８は、登録対象である文書ファイルのファイルサイズが最新ブロックに記憶するファイルサイズより大きいか否かを判断する（ステップＳ１２０４）。
【００８５】
登録対象である文書ファイルのファイルサイズが最新ブロックに記憶するファイルサイズより大きいと判断した場合（ステップＳ１２０４：Ｙｅｓ）、ハッシュ値算出部１０３は、登録対象である文書ファイルの先頭から、最新ブロックに記憶するファイルサイズまでのハッシュ値を算出する（ステップＳ１２０５）。バージョン判断部１０７は、算出したハッシュ値と、最新ブロックに記憶するハッシュ値が一致するか否かを判断する（ステップＳ１２０６）。算出したハッシュ値と、最新ブロックに記憶するハッシュ値が一致すると判断した場合（ステップＳ１２０６：Ｙｅｓ）、登録可否判断部４０９は、登録対象である文書ファイルは登録可と判断する（ステップＳ１２０７）。算出したハッシュ値と、最新ブロックに記憶するハッシュ値が一致しないと判断した場合（ステップＳ１２０６：Ｎｏ）、登録可否判断部４０９は、登録対象である文書ファイルに改ざんあり、登録対象である文書ファイルは登録不可と判断する（ステップＳ１２０８）。
【００８６】
登録対象である文書ファイルのファイルサイズが最新ブロックに記憶するファイルサイズより大きくないと判断した場合（ステップＳ１２０４：Ｎｏ）、登録可否判断部４０９は、登録対象である文書ファイルは登録不可と判断する（ステップＳ１２０９）。
【００８７】
最新ブロックに記憶するファイルサイズと、登録対象である文書ファイルのファイルサイズが一致すると判断した場合（ステップＳ１２０３：Ｙｅｓ）、ハッシュ値算出部１０３は、登録対象である文書ファイルのハッシュ値を算出する（ステップＳ１２１０）。バージョン判断部１０７は、算出したハッシュ値と、最新ブロックに記憶するハッシュ値が一致するか否かを判断する（ステップＳ１２１１）。算出したハッシュ値と、最新ブロックに記憶するハッシュ値が一致すると判断した場合（ステップＳ１２１１：Ｙｅｓ）、登録可否判断部４０９は、登録対象である文書ファイルは既に登録済みであり、登録不可と判断する（ステップＳ１２１２）。算出したハッシュ値と、最新ブロックに記憶するハッシュ値が一致しないと判断した場合（ステップＳ１２１１：Ｎｏ）、登録可否判断部４０９は、登録対象である文書ファイルは改ざんあり、登録不可と判断する（ステップＳ１２１３）。
【００８８】
このように、文書ファイルに関する情報をブロックチェーンネットワーク３００に登録して管理する場合に、新たな文書ファイル、または、既にブロックチェーンネットワーク３００に記憶する各バージョンに対応するブロックのなかから最新ブロックに対応する文書ファイルに更新内容を追加するような文書ファイル以外の文書ファイルは、登録不可と判断し登録しないことによって、ブロックチェーンネットワーク３００によって、分岐するバージョンが存在しないように文書ファイルを管理することができる。例えば、図６の元文書の文書ファイル、元文書＋更新１の文書ファイル、元文書＋更新１＋更新２の文書ファイルに関する情報が登録されている場合、元文書＋更新１＋更新３の文書ファイルに関する情報をブロックチェーンネットワーク３００に登録しようとした場合には登録不可と判断され、文書ファイルに関する情報は登録されない。
【００８９】
上述した実施例にかかる管理サーバ１００、情報端末装置２００、管理サーバ４００のハードウェア構成は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）等の外部記憶装置、通信制御装置等を備えた通常のコンピュータであり、ＲＯＭやＲＡＭ、ＨＤＤ等に記憶されたプログラムをＣＰＵが読み出し動作させることによって、上述した構成や機能を実現する。
【００９０】
管理サーバ１００、情報端末装置２００、管理サーバ４００で動作するプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納しておき、ネットワーク経由でダウンロードさせることにより提供したり、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ、ＳＤカード等のコンピュータで読取り可能な記録媒体に記録し提供してもよい。また、上述した機能や処理を実現するプログラムは、ＡＰＩ（Application Programming Interface）やＳａａＳ（Software as a Service）、クラウドコンピューティングという利用形態で提供してもよい。
【００９１】
なお、本発明は、上述した実施例そのままに限定されるものではなく、必ずしも物理的に図示のように構成されている必要はない。また、本発明は、実施例で説明した構成要素の全部または一部を、各種の負荷や使用状況などに応じ、任意の単位で機能的または物理的に分割、統合、入替、変形または削除して構成することができる。
【符号の説明】
【００９２】
１０…文書ファイル管理システム、１００…管理サーバ、１０１…送受信部、１０２…ＩＤ取得部、１０３…ハッシュ値算出部、１０４…ブロックチェーン登録部、１０５…ハッシュ値取得部、１０６…改ざん判断部、１０７…バージョン判断部、２００…情報端末装置、３００…ブロックチェーンネットワーク、４００…管理サーバ、４０８…ファイルサイズ判断部、４０９…登録可否判断部、Ｎ…ネットワーク
【要約】
【課題】文書ファイルの改ざんの有無等をユーザの作業負担なく判断することができる。
【解決手段】ハッシュ値算出部１０３は、元文書に対する更新内容を増分更新として更新順に元文書に追記するとともに、元文書および更新内容を追記した文書ごとに、文書ファイルのハッシュ値と、文書ファイルを識別する文書ファイルＩＤとをブロックチェーンネットワークに登録する文書ファイルのハッシュ値を算出し、ＩＤ取得部１０２は、受信した文書ファイルに含まれる、文書ファイルを識別する文書ファイルＩＤを取得し、ハッシュ値取得部１０５は、文書ファイルＩＤを記憶するブロックのなかの最新ブロックに記憶するハッシュ値をブロックチェーンネットワークから取得し、改ざん判断部１０６は、算出したハッシュ値と、ブロックチェーンネットワーク３００から取得したハッシュ値が一致するか否かによって文書ファイルが改ざんされているか否かを判断する。
【選択図】図１【図１】
0006836643.tif 000002
【図２】
0006836643.tif 000003
【図３】
0006836643.tif 000004
【図４】
0006836643.tif 000005
【図５】
0006836643.tif 000006
【図６】
0006836643.tif 000007
【図７】
0006836643.tif 000008
【図８】
0006836643.tif 000009
【図９】
0006836643.tif 000010
【図１０】
0006836643.tif 000011
【図１１】
0006836643.tif 000012
【図１２】
0006836643.tif 000013