(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-05-11
(45)【発行日】2023-05-19
(54)【発明の名称】ハッシュチェーン利用データ非改ざん証明システム及びそのためのデータ管理装置
(51)【国際特許分類】
H04L 9/32 20060101AFI20230512BHJP
E02D 3/12 20060101ALI20230512BHJP
G09C 1/00 20060101ALI20230512BHJP
G06F 21/60 20130101ALI20230512BHJP
G06F 21/64 20130101ALI20230512BHJP
【FI】
H04L9/32 200A
E02D3/12 102
G09C1/00 640D
G06F21/60 340
G06F21/64
(21)【出願番号】P 2019106531
(22)【出願日】2019-06-06
【審査請求日】2022-04-21
(73)【特許権者】
【識別番号】390025759
【氏名又は名称】株式会社ワイビーエム
(74)【代理人】
【識別番号】100093687
【氏名又は名称】富崎 元成
(74)【代理人】
【氏名又は名称】町田 光信
(72)【発明者】
【氏名】坂本 光弘
【審査官】行田 悦資
(56)【参考文献】
【文献】特許第6521170(JP,B1)
【文献】国際公開第2008/026238(WO,A1)
【文献】米国特許出願公開第2019/0073146(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
E02D 3/12
G09C 1/00
G06F 21/60
G06F 21/64
(57)【特許請求の範囲】
【請求項1】
建設工事に関す
るデータを収集し、施工データとして送信する第1電子計算機、及び、前記第1電子計算機から送信された前記施工データを、通信手段を介して受信し、記憶手段に格納する第2電子計算機からなる建設データ管理システムにおいて、
前記建設工事に関する前記施工データを取得する施工データ取得手段、
前記施工データを用いてハッシュチェーン用のブロックを生成するブロック生成手段、
前記ブロック生成手段で生成された前記ブロックを格納するハッシュチェーン格納手段、
前記ブロック生成手段で生成された前記ブロックのハッシュ値を計算するハッシュ値計算手段、及び、
前記ハッシュ値計算手段で生成された前記ハッシュ値を格納するハッシュ値格納手段を備え、
前記ブロック生成手段は、
前記施工データが前記ハッシュチェーンのための最初の第1のデータである場合、前記ブロックを前記施工データから構成する手段、
前記施工データが前記第1のデータ以後のデータである場合、前記ブロックの直前に生成した前記ブロックの前記施工データ、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記施工データから構成する手段、又は、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記施工データから構成する手段、並びに、
前記ハッシュチェーンを完結するとき、前記ブロックの直前に生成した前記ブロックの前記施工データ、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記第1のデータから構成する手段、又は、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記第1のデータから構成する手段
からなる
ことを特徴とするハッシュチェーン利用データ非改ざん証明システム。
【請求項2】
請求項1に記載のハッシュチェーン利用データ非改ざん証明システムにおいて、
前記ハッシュチェーンの前記施工データを削除、修正、及び、追加の中から選択される一つを変更する場合、前記ハッシュチェーン利用データ非改ざん証明システムは、
前記変更を示す指示を取得する指示取得手段、
前記指示が示す前記施工データを特定し変更施工データとするデータ特定手段、
前記指示に基づいて前記変更施工データが入っている前記ブロックを特定するブロック特定データ、前記指示に基づいて入力された前記変更の理由又はコメントが入ったコメントデータ、及び、最後に生成された前記ブロックである最終ブロックの前記ハッシュ値からなるコマンドブロックを生成する機能、並びに、前記コマンドブロックを生成した後、前記変更施工データが入っている前記ブロックの直前の前記ブロックに入っている前記施工データ、前記指示に基づいて変更された
前記施工データ、及び、最後に生成された前記ブロックの前記ハッシュ値からなるブロックを生成する機能、又は、前記指示に基づいて変更された
前記施工データ、及び、最後に生成された前記ブロックの前記ハッシュ値からなるブロックを生成する機能を有する前記ブロック生成手段
からなる
ことを特徴とするハッシュチェーン利用データ非改ざん証明システム。
【請求項3】
請求項2に記載のハッシュチェーン利用データ非改ざん証明システムにおいて、
前記ハッシュチェーンは、前記変更によって、分岐した場合、前記分岐毎に完結した前記ハッシュチェーンを生成して管理する
ことを特徴とするハッシュチェーン利用データ非改ざん証明システム。
【請求項4】
請求項1乃至3の中から選択される1項に記載のハッシュチェーン利用データ非改ざん証明システムにおいて、
前記施工データは、
前記建設工事の写真、前記建設に関連する書類、及び、前記建設の現場における建設機械の稼働データからなる群の中から選択される1以上のデータである
ことを特徴とするハッシュチェーン利用データ非改ざん証明システム。
【請求項5】
請求項4に記載のハッシュチェーン利用データ非改ざん証明システムにおいて、
前記施工データは、撮影手段で撮影したディジタル画像データであり、
前記ブロックは、前記ディジタル画像データ、並びに、ディジタル画像データの属性情報に入力されたもので、直前の前記ブロックの前記ハッシュ値、及び/又は、直前の前記ブロックの前記ディジタル画像データ若しくは直前の前記ブロックの前記ディジタル画像データのサムネイル画像データ若しくは直前の前記ブロックの前記ディジタル画像データを圧縮した画像データとからなる
ことを特徴とするハッシュチェーン利用データ非改ざん証明システム。
【請求項6】
建設工事に関する施工データを収集し、記憶手段に格納して管理するための建設データ管理装置において、
前記建設工事に関する
前記施工データを取得する施工データ取得手段、
前記施工データを用いてハッシュチェーン用のブロックを生成するブロック生成手段、
前記ブロック生成手段で生成された前記ブロックを格納するハッシュチェーン格納手段、
前記ブロック生成手段で生成された前記ブロックのハッシュ値を計算するハッシュ値計算手段、及び、
前記ハッシュ値計算手段で生成された前記ハッシュ値をハッシュ値格納手段へ送信するハッシュ値送信手段
を備え、
前記ブロック生成手段は、
前記施工データが前記ハッシュチェーンのための最初の第1のデータである場合、前記ブロックを前記施工データから構成する手段、
前記施工データが前記第1のデータ以後のデータである場合、前記ブロックの直前に生成した前記ブロックの前記施工データ、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記施工データから構成する手段、又は、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記施工データから構成する手段、並びに、
前記ハッシュチェーンを完結するとき、前記ブロックの直前に生成した前記ブロックの前記施工データ、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記第1のデータから構成する手段、又は、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記第1のデータから構成する手段
からなる
ことを特徴とするハッシュチェーン利用データ非改ざん証明用データ管理装置。
【請求項7】
請求項6に記載のハッシュチェーン利用データ非改ざん証明用データ管理装置において、
前記ハッシュチェーンの前記施工データを削除、修正及び追加の中から選択される一つ
を変更する場合、前記ハッシュチェーン利用データ非改ざん証明用データ管理装置は、
前記変更を示す指示を取得する指示取得手段、
前記指示が示す前記施工データを特定し変更施工データとするデータ特定手段、並びに、
前記指示に基づいて前記変更施工データが入っている前記ブロックを特定するブロック特定データ、前記指示に基づいて入力された前記変更の理由又はコメントが入ったコメントデータ、及び、最後に生成された前記ブロックである最終ブロックの前記ハッシュ値からなるコマンドブロックを生成する機能、並びに、前記コマンドブロックを生成した後、前記変更施工データが入っている前記ブロックの直前の前記ブロックに入っている前記施工データ、前記指示に基づいて変更された
前記施工データ、及び、最後に生成された前記ブロックの前記ハッシュ値からなるブロックを生成する機能、又は、前記指示に基づいて変更された
前記施工データ、及び、最後に生成された前記ブロックの前記ハッシュ値からなるブロックを生成する機能を有する前記ブロック生成手段
からなる
ことを特徴とするハッシュチェーン利用データ非改ざん証明用データ管理装置。
【請求項8】
請求項7に記載のハッシュチェーン利用データ非改ざん証明用データ管理装置において、
前記ハッシュチェーンは、前記変更によって、分岐した場合、前記分岐毎に完結した前記ハッシュチェーンを生成して管理する
ことを特徴とするハッシュチェーン利用データ非改ざん証明用データ管理装置。
【請求項9】
請求項6乃至8の中から選択される1項に記載のハッシュチェーン利用データ非改ざん証明用データ管理装置において、
前記施工データは、前記建設工事の写真、前記建設に関連する書類、及び、前記建設の現場における建設機械の稼働データからなる群の中から選択される1以上のデータである
ことを特徴とするハッシュチェーン利用データ非改ざん証明用データ管理装置。
【請求項10】
請求項9に記載のハッシュチェーン利用データ非改ざん証明用データ管理装置において、
前記施工データは、撮影手段で撮影したディジタル画像データであり、
前記ブロックは、前記ディジタル画像データ、並びに、ディジタル画像データの属性情報に入力されたもので、直前の前記ブロックの前記ハッシュ値、及び/又は、直前の前記ブロックの前記ディジタル画像データ若しくは直前の前記ブロックの前記ディジタル画像データのサムネイル画像データ若しくは直前の前記ブロックの前記ディジタル画像データを圧縮した画像データとからなる
ことを特徴とするハッシュチェーン利用データ非改ざん証明用データ管理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、建設に係るデータを検証可能に管理できるシステムに関する。詳しくは、土木・建築において、工事、施工、会計等に関するデータを追跡及び検証可能に管理して、その改ざんを防止することができるハッシュチェーン利用データ非改ざん証明システム及びそのためのデータ管理装置に関する。
【背景技術】
【0002】
土木・建築・設備等の建設工事は、提案・計画段階から始め、計画、その承認、契約、設計、工事・施工、納品等の数多くの工程が行われ、技術者を始め多数の専門家が関わる。このような状況の中で、計画段階の文書、施工工事の施工データを始め、関係するデータ全てを保管し、例えば、いつ誰かによって改ざんされたか否かの検証ができることが重要である。
【0003】
従来から、土木、建築、設備等の建設工事では、建設物の品質管理において非破壊検査が不可能な場面や、工事が次の工程に進んだ後の検査が困難な場面が多くある。このため、一般に工事が正当な手段で正確に行われたかを管理する「プロセス管理」と呼ばれる手法や、工事の進捗に合わせて、外形検査を行い記録する「出来形管理」と呼ばれる管理手法が広く用いられ、ほとんどの場合どちらかの手法で建設構造物の品質管理が行われている。
【0004】
しかしながら、建設工事においてデータを正確に取得しても保管しない、場合によっては、工事データを改ざんする等の問題がたびたび起きている。これが不良工事の場合、建造物が傾斜する、建造物にヒビ割れが生じる等の原因になりかねない。よって、各種土木工事、建造物の建造等を行う場合、それに係るデータを正確に取得し、保管し、そして、第3者が監視・検証できるように、体制及びシステムを構築することが求められている。
【0005】
建設工事現場において、作業データを保存する機能を備えた装置が多数提案され開示されている(例えば、特許文献1、2を参照。)。例えば、建設現場で稼働する作業装置が工事を行なった結果を取得し、リアルタイムでそのままセンター装置へ送信し、保管するものがある(特許文献1)。詳しくは、工事データとして、作業装置の各部の作業時の測定結果を、携帯電話により通信回線で送信する。これにより、センター装置は工事データを直接リアルタイムに受信できる。
【0006】
また、建設現場の施工データを改ざんすることができないように保管するシステムが提案され開示されている(特許文献2)。このシステムでは、建設現場の端末は、建設機械の制御装置から機械動作データ、機械検知データを取得して施工データとしてサーバへ送信する。サーバは、タイムスタンプデータを施工データに追加して記憶装置に格納する。タイムスタンプデータは、タイムスタンプ局で、施工データのハッシュ値に時刻情報を追加し暗号鍵で暗号化して生成される。
【0007】
このサーバに保存されている施工データを検証するとき、タイムスタンプ付与施工データを、復号化してハッシュ値を取得する。このハッシュ値を、タイムスタンプ付与施工データに含まれる施工データのハッシュ値と比較して、施工データの改ざんを判定するものである。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2002-129549号公報
【文献】特開2017-157879号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、建設現場で稼働する建設機械の動作データを取得し、これをセンター装置に送信し、保管しても、意図的に改ざんしようとする者がいれば、保管されている動作データが改ざんされる余地が残る。例えば、建設現場で稼働する作業装置からデータを取得し送信する携帯電話機等では、それらの時刻を変更したり、センター装置で生のデータを改ざんしたりすることが技術的には可能である。
【0010】
また、特許文献2のシステムは、施工データにタイムスタンプを追加し、ハッシュ値で管理しても、データ毎に検証することはできるが、建設に関連する全てのデータの連続性の検証、そして、後から追加・修正・削除したデータに関しては、検証が不十分である。よって、土木・建築において、工事、施工、会計に関するデータを追跡及び検証可能に管理してその改ざん防止ができる仕組みが求められている。
【0011】
本発明は上述のような技術背景のもとになされたものであり、下記の目的を達成する。
本発明の目的は、建設において発生する、設計、工事、施工、検査、会計等に関するデータを追跡及び検証可能に管理してその改ざんを防止することができるハッシュチェーン利用データ非改ざん証明システム及びそのためのデータ管理装置を提供することである。
【0012】
本発明の他の目的は、建設において、設計、工事、施工、検査、会計等に関するデータを保管し、データが追加・修正・削除された場合、それを検証できるハッシュチェーン利用データ非改ざん証明システム及びそのためのデータ管理装置を提供することである。
【課題を解決するための手段】
【0013】
本発明は、前記目的を達成するため、次の手段を採る。
本発明のハッシュチェーン利用データ非改ざん証明システムは、
建設工事に関するデータを収集し、施工データとして送信する第1電子計算機、及び、前記第1電子計算機から送信された前記施工データを、通信手段を介して受信し、記憶手段に格納する第2電子計算機からなる建設データ管理システムにおいて、
前記建設工事に関する前記施工データを取得する施工データ取得手段、
前記施工データを用いてハッシュチェーン用のブロックを生成するブロック生成手段、
前記ブロック生成手段で生成された前記ブロックを格納するハッシュチェーン格納手段、
前記ブロック生成手段で生成された前記ブロックのハッシュ値を計算するハッシュ値計算手段、及び、
前記ハッシュ値計算手段で生成された前記ハッシュ値を格納するハッシュ値格納手段 を備え、
前記ブロック生成手段は、
前記施工データが前記ハッシュチェーンのための最初の第1のデータである場合、前
記ブロックを前記施工データから構成する手段、
前記施工データが前記第1のデータ以後のデータである場合、前記ブロックの直前に生成した前記ブロックの前記施工データ、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記施工データから構成する手段、又は、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記施工データから構成する手段、並びに、
前記ハッシュチェーンを完結するとき、前記ブロックの直前に生成した前記ブロックの前記施工データ、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記第1のデータから構成する手段、又は、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記第1のデータから構成する手段
からなる
ことを特徴とする。
【0014】
前記ハッシュチェーンの前記施工データを削除、修正、及び、追加の中から選択される一つを変更する場合、前記ハッシュチェーン利用データ非改ざん証明システムは、
前記変更を示す指示を取得する指示取得手段、
前記指示が示す前記施工データを特定し変更施工データとするデータ特定手段、
前記指示に基づいて、前記変更施工データが入っている前記ブロックを特定するブロック特定データ、前記指示に基づいて入力された前記変更の理由又はコメントが入ったコメントデータ、及び、最後に生成された前記ブロックである最終ブロックの前記ハッシュ値からなるコマンドブロックを生成する機能、並びに、前記コマンドブロックを生成した後、前記変更施工データが入っている前記ブロックの直前の前記ブロックに入っている前記施工データ、前記指示に基づいて変更された施工データ、及び、最後に生成された前記ブロックの前記ハッシュ値からなるブロックを生成する機能、又は、前記指示に基づいて変更された前記施工データ、及び、最後に生成された前記ブロックの前記ハッシュ値からなるブロックを生成する機能を有する前記ブロック生成手段
からなると良い。
【0015】
ハッシュチェーン利用データ非改ざん証明システムにおいて、前記ハッシュチェーンは、前記変更によって、分岐した場合、前記分岐毎に完結した前記ハッシュチェーンを生成して管理すると良い。
【0016】
前記施工データは、前記建設工事の写真、前記建設に関連する書類、及び、前記建設の現場における建設機械の稼働データからなる群の中から選択される1以上のデータであると良い。
【0017】
前記施工データは、撮影手段で撮影したディジタル画像データであり、
前記ブロックは、前記ディジタル画像データ、並びに、ディジタル画像データの属性情報に入力されたもので、直前の前記ブロックの前記ハッシュ値、及び/又は、直前の前記ブロックの前記ディジタル画像データ若しくは直前の前記ブロックの前記ディジタル画像データのサムネイル画像データ若しくは直前の前記ブロックの前記ディジタル画像データを圧縮した画像データとからなると良い。
【0018】
本発明のハッシュチェーン利用データ非改ざん証明用データ管理装置は、
建設工事に関する施工データを収集し、記憶手段に格納して管理するための建設データ管理装置において、
前記建設工事に関する前記施工データを取得する施工データ取得手段、
前記施工データを用いてハッシュチェーン用のブロックを生成するブロック生成手段、
前記ブロック生成手段で生成された前記ブロックを格納するハッシュチェーン格納手段、
前記ブロック生成手段で生成された前記ブロックのハッシュ値を計算するハッシュ値計算手段、
前記ハッシュ値計算手段で生成された前記ハッシュ値をハッシュ値格納手段へ送信するハッシュ値送信手段
を備え、
前記ブロック生成手段は、
前記施工データが前記ハッシュチェーンのための最初の第1のデータである場合、前記ブロックを前記施工データから構成する手段、
前記施工データが前記第1のデータ以後のデータである場合、前記ブロックの直前に生成した前記ブロックの前記施工データ、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記施工データから構成する手段、又は、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記施工データから構成する手段、並びに、
前記ハッシュチェーンを完結するとき、前記ブロックの直前に生成した前記ブロックの前記施工データ、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記第1のデータから構成する手段、又は、前記ブロックの直前に生成した前記ブロックの前記ハッシュ値、及び、前記第1のデータから構成する手段
からなる
ことを特徴とする。
【0019】
前記ハッシュチェーンの前記施工データを削除、修正及び追加の中から選択される一つを変更する場合、前記ハッシュチェーン利用データ非改ざん証明用データ管理装置は、
前記変更を示す指示を取得する指示取得手段、
前記指示が示す前記施工データを特定し変更施工データとするデータ特定手段、並びに、
前記指示に基づいて前記変更施工データが入っている前記ブロックを特定するブロック特定データ、前記指示に基づいて入力された前記変更の理由又はコメントが入ったコメントデータ、及び、最後に生成された前記ブロックである最終ブロックの前記ハッシュ値からなるコマンドブロックを生成する機能、並びに、前記コマンドブロックを生成した後、前記変更施工データが入っている前記ブロックの直前の前記ブロックに入っている前記施工データ、前記指示に基づいて変更された前記施工データ、及び、最後に生成された前記ブロックの前記ハッシュ値からなるブロックを生成する機能、又は、前記指示に基づいて変更された前記施工データ、及び、最後に生成された前記ブロックの前記ハッシュ値からなるブロックを生成する機能を有する前記ブロック生成手段
からなると良い。
【0020】
前記ハッシュチェーンは、前記変更によって、分岐した場合、前記分岐毎に完結した前記ハッシュチェーンを生成して管理すると良い。
前記施工データは、前記建設工事の写真、前記建設に関連する書類、及び、前記建設の現場における建設機械の稼働データからなる群の中から選択される1以上のデータであると良い。
【0021】
前記施工データは、撮影手段で撮影したディジタル画像データであり、
前記ブロックは、前記ディジタル画像データ、並びに、ディジタル画像データの属性情報に入力されたもので、直前の前記ブロックの前記ハッシュ値、及び/又は、直前の前記ブロックの前記ディジタル画像データ若しくは直前の前記ブロックの前記ディジタル画像データのサムネイル画像データ若しくは直前の前記ブロックの前記ディジタル画像データを圧縮した画像データとからなると良い。
【発明の効果】
【0022】
本発明によると、次の効果が奏される。本発明のハッシュチェーン利用データ非改ざん証明システムによると、建設工事等において、その計画、工事・施工、会計等に関するデータを、ハッシュチェーン技術を利用して改ざんできないように保管し、検証可能に管理できるようになった。また、建設工事等のデータを、後から追加・修正・削除しても、それが検証可能に管理できるようになった。
【図面の簡単な説明】
【0023】
【
図1】
図1は、本発明の第1の実施の形態の建設データ管理システム1の概要を示す概念図を図示している。
【
図2】
図2は、本発明の第1の実施の形態の建設データ管理システム1に利用するデータの概要を図示している図である。
【
図3】
図3は、本発明の第1の実施の形態の建設データ管理システム1で取り扱うハッシュチェーンの概要を図示している図である。
【
図4】
図4は、本発明の第1の実施の形態の建設データ管理システム1において、ハッシュチェーンの施工データが変更されるときの施工データの相対関係を図示している図である。
【
図5】
図5は、本発明の第1の実施の形態の建設データ管理システム1において、ハッシュチェーンを生成する様子を示した概念ブロック図である。
【
図6】
図6は、本発明の第1の実施の形態の建設データ管理システム1において、ハッシュチェーンの施工データの一部が変更されたとき、ハッシュチェーンを生成する様子を示した概念ブロック図である。
【
図7】
図7は、本発明の第1の実施の形態の建設データ管理システム1において、コマンドブロックの例を図示している図である。
【
図8】
図8は、本発明の第1の実施の形態の建設データ管理システム1において、ハッシュチェーンが完結する手順例を図示している概念ブロック図である。
【
図9】
図9は、本発明の第1の実施の形態の建設データ管理システム1において、現場端末2の動作手順の例を示すフローチャートである。
【
図10】
図10は、本発明の第1の実施の形態の建設データ管理システム1において、施工データが変更になったときの、現場端末2の動作手順の例を示すフローチャートである。
【
図11】
図11は、本発明の第1の実施の形態の建設データ管理システム1において、施工データを検証する手順例の流れを図示しているフローチャートである。
【
図12】
図12は、本発明の第1の実施の形態の建設データ管理システム1において、施工データを検証する手順例の流れを図示しているフローチャートである。
【
図13】
図13は、本発明の第1の実施の形態の建設データ管理システム1において、現場での処理の流れの一例を図示しているフローチャートである。
【
図14】
図14は、現場での処理の流れの他の一例を図示しているフローチャートである。
【
図15】
図15は、建設データ管理システム1がサーバ3と、ハッシュ値を管理するためのサーバ3aを備えた例を図示している図である
【
図16】
図16は、本発明の第1の実施の形態の建設データ管理システム1において、施工データとして利用するディジタル写真データの構造例を図示している概念ブロック図である。
【
図17】
図17は、本発明の第2の実施の形態の建設データ管理システムにおいて、サーバ3の動作手順の例を示すフローチャートである。
【
図18】
図18は、本発明の第2の実施の形態の建設データ管理システムにおいて、施工データが変更になった場合の、サーバ3の動作手順の例を示すフローチャートである。
【
図19】
図19は、本発明の第3の実施の形態の建設データ管理システム1において、ハッシュチェーンを生成する様子を示した概念ブロック図である。
【
図20】
図20は、本発明の第3の実施の形態の建設データ管理システム1において、ハッシュチェーンの施工データの一部が変更されたときの、ハッシュチェーンを生成する様子を示した概念ブロック図である。
【
図21】
図21は、本発明の第3の実施の形態の建設データ管理システム1において、ハッシュチェーンが完結する手順例を図示している概念ブロック図である。
【
図22】
図22は、本発明のその他の実施の形態の建設データ管理システムにおいて、分岐したハッシュチェーンの例を図示している概念図である。
【
図23】
図23は、本発明の他の実施の形態の建設データ管理システムにおいて、ハッシュチェーンのブロックの構成例を図示している概念図であり、
図23(a)~(f)はブロックに取り込まれる施工データとハッシュ値の位置関係を図示している。
【発明を実施するための形態】
【0024】
[第1の実施の形態]
本発明の第1の実施の形態の建設データ管理システム1について、図面を参照しながら説明する。
図1は、本発明の第1の実施の形態の建設データ管理システム1の概要を示す概念図である。建設データ管理システム1は、本例において、現場端末2、サーバ3、ネットワーク4等からなる。
【0025】
建設データ管理システム1は、建築工事、土木工事等の建設工事現場において、工事の計画、工事の設計図、建設機械の稼働データ、工事現場の現状況、使用機器の管理データ、資材の管理データ、保守点検データ、検査データ、工事会計データを始めとする工事現場に関するデータ(以下、「施工データ」という。)を収集し、ハッシュチェーンを利用して管理し、施工データの改ざんを検証するためのシステムである。特に、施工データが追加・修正・削除等のように変更されても、それが検証可能に管理され、データ改ざんを防止することができるシステムである。
【0026】
建設データ管理システム1は、施工データを所定単位でブロックにして連結することでハッシュチェーンにし、施工データと、ハッシュチェーンに利用されたハッシュ値(hash value)をデータベースによって管理する。建設データ管理システム1は、一連の施工データをハッシュチェーンで管理する。
【0027】
ハッシュチェーンに追加するための新規のブロックは、連結するブロックの施工データとハッシュ値、そして新規に追加する施工データ等からなり、ハッシュ関数を利用してハッシュ化され、新規のブロックに対応するハッシュ値が生成される。生成されたハッシュ値は、次のブロックに組み込まれる。このように、一つのブロックの内容が次のブロックに組み込まれ、施工データを含む一連のブロック、言い換えるとハッシュチェーンが生成され、データベースに格納されて管理される。
【0028】
建設データ管理システム1は、ハッシュチェーンとそれに含まれる施工データを検証することが出来るシステムであり、ハッシュチェーンとそれに含まれる施工データの改ざんを検証することができるシステムである。データベースに格納された施工データの追加、修正、削除によりハッシュチェーンが変更されたとき、建設データ管理システム1は、この変更された点からハッシュチェーンを新しく生成する。
【0029】
このように新しく生成された変更ハッシュチェーンと元のハッシュチェーンは、本システムで検証することが可能である。ハッシュチェーンが変更されたとき、建設データ管理システム1は、変更されたブロックを遡って削除することができ、このように変更された変更ハッシュチェーンを生成する。この変更ハッシュチェーンと元のハッシュチェーンは、本システムで検証することが可能である。
【0030】
以下、建設データ管理システム1の構成例を説明し、ハッシュチェーンの生成方法、変更ハッシュチェーンの生成方法、そのハッシュチェーンと変更ハッシュチェーンの検証方法等について説明する。そして、建設データ管理システム1の動作例をフローチャートを参照しながら説明する。
図1に図示した現場端末2とサーバ3は、ネットワーク4で互いに接続されて、互いにデータの送受信を行う。
【0031】
現場端末2は、入力手段、出力手段、中央処理装置、メモリ等を備えた汎用の電子計算機である。現場端末2は、ノート型パソコン、タブレット端末等の携帯可能な電子計算機、デスクトップ型パソコン、スタンドアローンパソコン、サーバ等の固定設置の電子計算機であることができる。現場端末2として、本例では、ノート型パソコン等の携帯可能なパーソナルコンピュータ、タッチ式及び/又はボタン式の入力手段を備えたタブレット端末等を利用する。
【0032】
サーバ3は、入力手段、出力手段、中央処理装置、メモリ等を備え、サーバとして機能する電子計算機である。サーバ3は、補助記憶装置であるサーバ補助記憶装置(図示せず。)を備え、このサーバ補助記憶装置には管理データベース5が格納される。
【0033】
なお、現場端末2は、ディジタルカメラ、スマートホン、タブレットパソコン等であることができる。建設データ管理システム1は
図1に図示した1台のサーバ3からなっているが、提供する機能毎にサーバを用意して利用することもできる。
【0034】
例えば、建設データ管理システム1は、管理データベース5の管理をするデータベース管理用サーバ、現場端末2等からデータを受信するデータ受信用サーバ、管理データベース5のデータ若しくはそれを処理した結果を表示するデータ表示用サーバ、ハッシュチェーンを生成するハッシュチェーン作成処理用サーバ、ユーザファイル等を保存するファイル保存用サーバ等のように、特定の1機能又は複数の機能を持つ2以上のサーバで構成される。
【0035】
サーバ3は、所定の手続きにより、管理データベース5の内容、サーバ補助記憶装置に格納されているファイルを、現場端末2や検証端末7等に送受信するサービスを提供する。また、サーバ3は、現場端末2等から送信されてきたデータ、ファイル等を管理データベース5、サーバ補助記憶装置等に格納するサービスも提供する。検証端末7は、ハッシュチェーンや施工データ等を検証するための端末であり、詳細は後述する。
【0036】
図1に図示したように、ネットワーク4は、現場の現場端末2とサーバ3の間にデータ通信を提供する通信網であり、公知の任意の通信網を利用できる。本発明は、通信網、及びその通信データ方式の発明ではないので、その詳細な説明は省略する。本例で、ネットワーク4としては、公衆通信網、インターネット、LAN等の任意の通信網を利用できるが、本実施の形態において、インターネットを例に説明する。図示しないが、現場では、建設工事等が行われており、現場の状況を示すデータは、現場端末2に取り込まれる。
【0037】
一例としては、現場で稼働している建設機械の稼働データは、現場端末2に取り込まれる。取り込まれる手段については、後述する。また一例としては、軟弱地盤に地盤改良材を注入して、軟弱地盤と共に攪拌翼でこれを攪拌して地盤を改良する地盤改良機の稼働データが現場端末2に取り込まれる。更に、杭打ち機、ディーゼルハンマ等の基礎工事用機械をはじめ掘削機等の他の建設機械の稼働データ等が現場端末に取り込まれる。
【0038】
〔データについて〕
本実施の形態において、施工データとしては、設計図又は仕様図に基づき建造物を建造する際の作業データを意味し、特に、建設機械の動作に関する機械動作データ、現場の特定や管理に関する現場データ、現場での施工作業に関する現場状況データを含むものとする。建設工事に関するもので、ディジタル化した紙の図面、CAD図面、検査リスト、納品書等は施工データに含まれるものとする。
【0039】
機械動作データは、例えば、建設機械の各種装置の設定情報、動作の種類、動作開始時間、動作停止時間、動作期間、動作中のエラー、作業者の認証データ、現在位置情報、移動情報等のように、建設機械及びそれに搭載又は付属の建設機械、それに搭載又は付属されている機械に関する各種情報である。機械動作データとしては、地盤改良の掘削深度、先行掘削深度、スイベルヘッドの昇降速度、攪拌軸の回転数、その積算回転数、トルク、電流値、攪拌翼に供給される地盤改良材の供給量、その積算量、攪拌軸の傾斜角度を地盤改良機を制御している機器、地盤改良機に搭載されている計測センサーから取得したデータ等が例示できる。
【0040】
現場データは、例えば、現場の名称、位置情報、範囲情報、現場の作業期間、現場の責任者の氏名、作業者の氏名、作業者の勤務時間、現場状況に関する地質情報、その他の特殊情報等である。現場状況データは、現場の各作業の開始時間、終了時間、作業期間、現場の作業に対する作業者の評価、現場のデータを取得した状況、時間、送信データの種類、数、時間、現場の状況写真、周囲の気温、湿度、雨量、風速度等の天気情報等のような現場管理に必要なデータである。
【0041】
使用機器の管理データは、例えば、計測機器の管理番号、使用材料のロット番号等である。資材の管理データは、例えば、使用資材の発注番号、使用資材の納品番号等である。保守点検データは、例えば、計測機器の保守点検の検査情報、履歴情報等である。検査データは、例えば、杭頭高さ、施工位置、供試体の圧縮試験結果、載荷試験結果、外形寸法、そしてそれの試験と測定のプロセス管理等に用いられる各種データ等である。
【0042】
現場端末2は、データ通信するための無線通信手段及び/又は有線通信手段等の通信手段を備える。現場端末2は、ネットワーク4に接続する通信端末6と接続し、通信端末6とネットワーク4を介してサーバ3と通信することもできる。通信端末6は、本発明の第1の実施の形態の建設データ管理システム1の通信手段の一例である。本発明は、ネットワーク、通信ネットワークの発明ではないので、通信回線、そのために利用される通信プロトコル等については必要最低限のみを説明をし、その詳細は省略する。
【0043】
サーバ3は、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)、他のネットワークに対し非公開のネットワークであるプライベートネットワーク等のデータ通信ネットワークに接続され、現場端末2とネットワーク4を介して接続されてデータ通信を行う。通信端末6は、入力手段、出力手段、中央処理装置、メモリ等を備えた通信手段であり、特に、現場端末2、ネットワーク4等と通信するための通信手段を備える。
【0044】
現場端末2は、通信用ルータ、携帯通信機等を用いることができるが、これらの機能を備えたパーソナルコンピュータ、タブレット端末等の電子計算機であっても良い。管理データベース5は、建設データ管理システム1に利用するデータを格納したものであり、複数のデータベースからなる。例えば、管理データベース5は、施工データを含むハッシュチェーンを格納するためのハッシュチェーンデータベース(以下、「ハッシュチェーンDB)という。)10、ハッシュチェーンのハッシュ値を格納するためのハッシュ値管理データベース(以下、「ハッシュ値管理DB」という。)11等からなる。
【0045】
ハッシュチェーンDB10はハッシュチェーンを構成する施工データと、それを含むブロック等からなる。ハッシュ値管理DB11は、ハッシュチェーンのハッシュ値からなる。ハッシュチェーンの中にハッシュ値が含まれるが、ブロック毎のハッシュ値を別のデータベースに複製して管理し、ハッシュチェーンを検証するときにこれを利用することもできる。
【0046】
図2は、建設データ管理システム1に利用する施工データの概要を図示している。建設データ管理システム1において、利用する施工データは、
図2に図示したように、D(1)~D(n)の一連のデータから成っている。D(1)~D(n)は、現場端末2に取り込んだ順番に、又は現場端末2の作業者が指定した順番に並んでいる。言い換えると、D(1)~D(n)は、ハッシュチェーンに取り込む順番になっている。
【0047】
D(1)~D(n)のそれぞれのデータサイズは、データ量を大小に指定する可変データ量、取り込んだ生のデータ量、所定の固定したサイズの固定データ量等のように、任意に指定することができ、現場や建設工事の要求に合わせて設定することができる。単位データは、例えば、工事看板の写真、施工現場の写真、建設機械の稼働データ等のように、施工に関するデータである。本例のように、建設工事に関するデータは、現場での作業毎にその証拠又は履歴保存用として、一連のデータが取得される。
【0048】
これがD(1)~D(n)として順番に建設データ管理システム1に取り込まれ、ハッシュ関数を利用して計算されてハッシュ値が生成され、一連のハッシュチェーンが生成される。
図3には、建設データ管理システム1で取り扱うハッシュチェーンの概要を図示している。ハッシュチェーンは、順番に連結されたブロックからなる。
図3には、ブロックをB(1)、B(2)、…B(n)と図示している。
【0049】
各ブロックは、
図2に図示した施工データを内包する。第2番目のブロックB(2)以後は、直前のブロックのハッシュ値と、直前のブロックの施工データを含む。例えば、ブロックB(2)場合、第1ブロックB(1)のハッシュ値H(1)と施工データD(1)、及び、第2施工データD(2)からなっている。以後は、同様である。一般的に表現すると、ブロックB(n)の場合、第n-1ブロックB(n-1)のハッシュ値H(n-1)と施工データD(n-1)、及び、施工データD(n)からなる。但し、第1ブロックB(1)の場合は、直前のブロックがないため、施工データD(1)のみからなる。
【0050】
建設現場では、データの修正が行われる場合がある。例えば、データの撮り直し、作業のやり直し等に起因するものや、人的なミスで再度データを取得、集計することもある。無論、機械のミス操作もある。このような場合は、データを修正し、この修正されたデータがなぜ修正されたかを説明し、後日、検証可能な形式で、データを保管することが重要である。
【0051】
例えば、施工データは、
図4に示すように、一部のデータが変更され、分岐して管理されることがある。変更された理由としては、現場の証拠として残す記録の取り直し、取得した記録の修正、不要になった記録の削除等があり、これは建設現場で日常的に行われているが、データ改ざんとは質が異なる。データ改ざんは、現場データとして虚偽データの利用、理由なく修正されたデータの利用、データの無断修正、現場データの理由なき削除等であり、現場を管理する上で、事実を誤解させる又は事後検証で事実を確認できないものを言う。
【0052】
これに対して、現場データが削除、修正、追加される等変更された場合、その理由を付加して、事後検証可能にすることはデータ改ざんに当たらないし、そのためのシステム構築が本発明の一目的である。例えば、
図4には、施工データD(k+1)が変更される例を示している。施工データはD(1)~D(n)の一連のデータが作成され、これらのデータからなるハッシュチェーンを元ハッシュチェーンという。
【0053】
図3に図示したように、元ハッシュチェーンが生成された後、施工データD(k+1)が変更される場合を考える。D(k+1)が変更されると、D(1)~D(k)、D(n+1)、D(n+2)…のように新規の一連データの施工データになる。このD(n+1)、D(n+2)…は、D(k+1)が変更された後に、ハッシュチェーンに取り込んだ施工データである。
【0054】
D(1)~D(k)、D(n+1)、D(n+2)からなるハッシュチェーンを変更ハッシュチェーンという。ハッシュチェーンが生成された後、施工データが変更された後のD(1)~D(k)、D(n+1)、D(n+2)…、そして、変更された施工データD(k+1)…D(n)は検証可能形式で、管理される(詳細は後述する。)。
【0055】
以下、このように検証可能な形式でデータを保管する手順を図を参照しながら説明する。まず、
図5には、施工データを取り込み、ハッシュ関数を利用して、ハッシュチェーンを生成する手順を示している。ブロックを生成するとき、計算処理が行われる。この計算処理は、以下の説明において、最初のブロックのための処理は1回目の処理、次のブロックのための処理は2回目の処理という風に順番に連続番号を付けて説明する。
【0056】
また、作業者は、施工データを取得し、この施工データは現場端末2で、又は、現場端末2からサーバ3へ送信されて計算処理され、ブロックが生成される。また、施工データは、現場の写真、機械動作データ等の一連のデータである。現場端末2に施工データが取り込まれると、ブロックが生成され、このブロックはハッシュ関数を利用してハッシュ化する計算が行われ、ブロックに対応するハッシュ値が生成される。
【0057】
ハッシュ値は所定のデータの要約値(ダイジェスト値ともいう)を計算して得たものである。本発明の場合、衝突耐性、一方向性、固定長のあるダイジェスト値を出す機能を持った関数である暗号学的ハッシュ関数を用いる。例えば、暗号学的ハッシュ関数としてはMD4,MD5,SHA-1,SHA-2等が例示できる。
【0058】
以下の説明において、建設データ管理システム1に取り込まれる施工データは現端末2が取得した順番にD(1)~D(n)、生成されるブロックはB(1)~B(n)、ハッシュ値は生成される順番にH(1)~H(n)とする。説明において、現場の記録として残すためのデータ例として、現場の作業の記録を例に説明する。まず、現場の記録は、最初のデータは、建設現場の基準になるデータにすることが多く、例えば、建設現場の看板の写真が第1施工データD(1)になる。
【0059】
作業者は、建設現場の看板の写真を撮り、その写真は現場端末2に取り込まれ、現場端末2で施工データD(1)として処理される。
図5に図示したように、現場端末2において、施工データD(1)を利用して、第1回目のブロックB(1)が生成され、第1回目の計算処理が行われ、ハッシュ値(H1)が生成される。
図3に図示したように、ハッシュチェーンには、B(1)が追加され、正確には、ハッシュチェーンの生成が開始され、最初の施工データD(1)を含む第1ブロックB(1)が取り込まれる。
【0060】
ハッシュ値H(1)は、現場端末2からサーバ3へ送信され、ハッシュ値管理DB11に格納される。D(1)とH(1)は、現場端末2からサーバ3へ送信され、ハッシュチェーンDB10に格納され、管理される。現場端末2に次の施工データD(2)が取り込まれると、D(2)を含む第2ブロックB(2)が生成され、B(2)に対するハッシュ値H(2)がハッシュ関数を利用して2回目の計算処理で計算される。
【0061】
ハッシュ値H(2)を計算するとき、現場端末2にD(2)の直前に取り込まれたD(1)と、B(1)に対応するH(1)及びD(2)が一つのブロックB(1)を構成し、ハッシュ値が計算され、ハッシュ値H(2)が生成される(2回目の計算処理)。現場端末2に施工データD(3)が取り込まれると、直前に取り込まれたD(2)と、B(2)に対応するH(2)及びD(3)が一つのブロックB(3)を構成し、ハッシュ値が計算され、ハッシュ値H(3)が生成される(3回目の計算処理)。
【0062】
このように、D(n)の施工データが現場端末2に取り込まれると、直前に取り込まれたD(n-1)と、B(n-1)に対応するH(n-1)及びD(n)が一つのブロックB(n)になり、B(n)のハッシュ値が計算され、ハッシュ値H(n)が生成される(n回目の計算処理)。そして、一連のB(1)~B(n)とH(1)~H(n)がハッシュチェーンDB10、ハッシュ値管理DB11にそれぞれ格納され、管理される。
【0063】
図5は、ハッシュチェーンの生成は、D(1)~D(n)に関して、現場端末2で取得され、ハッシュチェーンが生成された後、変更がない場合である。
図4に図示したように、D(1)~D(n)の内の一つの施工データが変更された場合、この例ではD(k+1)が変更される場合、ハッシュチェーンの生成について
図6を参照しながら説明する。D(k+1)以後の施工データは変更され、施工データD(k)からハッシュチェーンが変更され、D(1)~D(k)、D(n+1)・・・のように新しく変更されたハッシュチェーンが生成される。
【0064】
現場端末2にD(n)が取り込まれ、n回目の計算処理が行われた後、D(1)~D(n)の内の施工データD(k)に変更があったとする(
図4と
図6を参照。)。但し、1<k≦n、k=n-mである。D(k)は、D(n)からm番目前の施工データ、言い換えると、ブロックB(n)からm番目前のブロックの施工データが変更されたことになる。D(k)=D(n)の場合、m=0になり、D(n)自身が変更されたことになる。
【0065】
B(n)からm番目前のブロックの施工データが変更されたとき、変更の種類、変更理由や変更された施工データについて記述するコマンドデータCMD(m)が生成される。そして、CMD(m)とその直前に生成されたハッシュ値H(n)を合わせて一つのブロックとして生成される。以下、このブロックは小コマンドブロックという。コマンドブロックのハッシュ値が計算され、H(n+1)が生成される(n+1回目の計算処理)。
【0066】
コマンドデータを含むコマンドブロックは、現場端末2からサーバ3へ送信されハッシュチェーンDB10に追加される。同じく、ハッシュ値H(n+1)は、現場端末2からサーバ3へ送信され、ハッシュ値管理DB11に格納され管理される。
図7には、ブロックデータ20の例を図示している。コマンドデータ20は上述のCMD(m)を示すデータであり、ハッシュチェーンのデータが変更されたブロックを指定するブロック指定部21と、変更についての理由、コメント等からなるコメント部22からなっている。
【0067】
検証時に、このコマンドデータ20を分析し、ブロック指定部21から値「m」を取得し、コマンドブロックの直前のブロックから遡って計算し、変更されたブロックが計算できる。同じく、コメント部22から変更の理由を閲覧することができる。ブロック指定部21は、この例では、単に「m」と指定している。コメント部22では、変更についての記述であり、例えば、変更理由、変更をした者、変更日時等が入力される。
【0068】
図6において、n+1回目の計算処理の後、変更された施工データD(n+1)が現場端末2に入力される。そして、変更されていない最後のデータであるD(n-m)、直前のハッシュ値H(n+1)、変更されたデータD(n+1)がまとまって一つのブロックを構成しブロックとして生成される。そして、この生成されたブロックに対応するハッシュ値の計算が行われる(n+2回目の計算処理)。D(n+1)は、変更されたデータであり、その次のデータがD(n+2)として、入力される。
【0069】
以後、計算処理は、同じように、ブロックの最後のデータと、直前のハッシュ値、入力された新しいデータが一つのブロックを構成し、ハッシュ値の計算処理が行わる。ここでは、D(k+1)のみが変更された場合を示し、その変更として削除、修正、追加がある。まず、削除の場合は、D(k+1)は一連の施工データD(1)~D(n)から削除されることになり、
図6において、D(n+1)としてD(k+2)が入力され、同じくD(n+2)としてD(k+3)が入力される。以後は同じである。
【0070】
修正の場合は、D(k+1)はD(n+1)として修正されたD(k+1)が入力され、同じくD(n+2)としてD(k+2)が入力される。以後は同じである。追加の場合は、元の一連の施工データD(k)とD(k+1)の間に新規のD’(k+1)が入力されるので、D(n+1)として新規の施工データD’(k+1)が入力され、同じくD(n+2)としてD(k+1)が入力され、D(n+3)としてD(k+2)が入力される。以後は同じである。
【0071】
ハッシュチェーンとしては変更されたD(k+1)~D(n)はハッシュチェーンDB10に格納されたままであり、具体的には、それに対応するブロックB(k+1)~B(n)に格納されたままである。検証時は、全てのブロックを閲覧することができる。このとき、生成されたブロックは最初から順番に施工データを取得すると、B(1)~B(n)、B(n+1)、B(n+2)…から各施工データD(1)~D(n+2)…(D(1)~D(n)、D(n+1)、D(n+2)…)が取得される。
【0072】
この中で、コマンドブロックの指示に従って、一連の施工データをD(1)~D(k)、D(n+1)、D(n+2)…と取得し、現場の実際のデータとして取り扱う。ここでは、D(k+1)のみが変更された場合を説明したが、D(k+1)~D(n)の一部又は全体が削除、修正、追加等のように変更される場合は、同様に、D(n+1)から変更されたデータを順番に取り組んでいく。
【0073】
図8は、ハッシュチェーンが完結する手順例を図示している。ここでは、D(1)~D(n)までのデータが取り込まれ、計算処理が行われ、それに対応するハッシュ値H(1)~H(n)が生成されている。ハッシュチェーンにこれ以上のデータを追加しないで、一つのまとまったデータとして記録するためには、最初の施工データD(1)を用いて、最後のハッシュ値を生成する。
【0074】
図8に図示したように、最後のデータ(最終施工データとも言うことができる。)D(n)、直前のハッシュ値H(n)、最初の施工データ(基準施工データ)D(1)をまとめて一つのブロックとし、ハッシュ値を計算し、最後のハッシュ値(最終ハッシュ値又は完結ハッシュ値とも言うことができる。)H(n+1)を生成する(n+1回目の計算処理)。H(n+1)は、現場端末2からサーバ3へ送信され、ハッシュ値管理DB11に格納されて管理される。
【0075】
D(1)~D(n+1)の一連のデータは、現場端末2からサーバ3へ送信され、ハッシュチェーン10に格納されて管理される。このように、完結したハッシュチェーンを利用して、施工データを取得し利用するとき、まず、ハッシュチェーン、その中の施工データが改ざんされていないことが重要であり、これを検証計算によって検証し確認する。
【0076】
具体的には、ハッシュチェーンの一連のブロックB(1)~B(n+1)から施工データD(1)~D(n)を取得し、最初のD(1)から順番にハッシュ値を計算して、次のブロックのハッシュ値及びハッシュ値管理DB11から取得したハッシュ値と照合して検証する。全てのハッシュ値の検証で一致すれば、ハッシュチェーンが改ざんされていないことが証明できる。この照合によって、両者のハッシュ値が同じである場合、D(1)~D(n)の一連のデータは、改ざんされていないデータであることが証明できる。
【0077】
このように、一連のデータDと、それに対応するハッシュ値Hを別々のデータベースで管理することで、一連のデータが改ざんされていないことが証明、言い換えると、検証できる。一連の施工データがある場合、上述のように、それぞれについてハッシュチェーンのブロック生成し、最後は、最初の施工データを用いて最終ブロックを生成し、そのハッシュ値を計算する。このハッシュチェーンの各ブロックのハッシュ値をハッシュチェーンと独立して管理することで、ハッシュチェーンの改ざんが検証できる。
【0078】
図4に図示したハッシュチェーンのデータが変更する例では、データは、D(1)~D(n)、D(n+1)、D(n+2)…のように一連に管理されるが、実際に業務で利用されるデータは、D(1)~D(k)、D(n+1)、D(n+2)…となる。データD(k+1)~D(n)は、変更された対象のデータであり、業務に利用されないが、データ改ざんの点で、ハッシュチェーンに残って管理される。
【0079】
また、
図4に図示したように、データは、D(1)~D(n)、D(n+1)、D(n+2)…のように一連に完結されたハッシュチェーンを作成し、また、D(1)~D(k)、D(n+1)、D(n+2)…となるデータからなる変更ハッシュチェーンを生成して管理することができる。
【0080】
現場端末2の動作手順の例を
図9に図示したフローチャートを参照しながら説明する。まず、現場端末2が稼働すると、建設データ管理プログラムが起動され、ハッシュチェーンの初期処理が行われる(ステップ1)。このとき、ハッシュチェーンの初期処理としては、ユーザ設定、ユーザ認証、利用するハッシュ関数、パラメータ等の設定、現場端末の通信設定、管理データベース5(
図1を参照。)のアドレス設定等を始めとし、必要な各種設定が行われる。
【0081】
次に、データカウンタdを設定する。データカウンタdは、施工データをハッシュチェーンで管理するために、施工データをブロックに組み込むとき、施工データに付与するための番号である。つまり、施工データをハッシュチェーンに取り込む番号である。データカウンタdは文字若しくは記号と数字の組み合わせ等のように、任意の番号又は識別記号を付与することができる。例えば、データカウンタdは初期値として「0」、「1」等と設定する。管理をスムーズにするために連番が望ましい。
【0082】
そのため、本例では、データカウンタdは最初の施工データの「1」から最後の施工データまでに1つずつ加算する整数にした。そして、ハッシュ値カウンタhを設定する。ハッシュ値カウンタhは、データカウンタと同様に任意に設定することができる。本例では、「1」から始まり1つずつ加算される整数にした。以後、データカウンタの初期値を「1」、ハッシュ値カウンタの初期値を「1」として説明する。以下、番号を「i」とすると、施工データはD(i)、ブロックはB(i)、ハッシュ値はH(i)と表記される。
【0083】
現場端末2は施工データD(1)として基準データを取得する(ステップ2)。例えば、作業者はディジタルカメラ等の撮影手段で基準となる写真を撮影する。撮影した基準となる写真は、基準データとして出力され、現場端末2へ送信又は入力される。現場端末2では、基準データを受信する。基準データは、取得された順番で識別番号が付与されて管理される。この識別番号は任意の番号を付けることができるが、上記のデータカウンタ又は識別番号とデータカウンタの組み合わせで管理されることが好ましい。
【0084】
本例では、基準データは記憶装置に格納される。基準データはデータカウンタ「1」が付与され第1施工データのD(1)になる(ステップ3)。D(1)を利用し、ハッシュチェーンの第1ブロックのブロックB(1)を生成し、そのハッシュ値を計算し、第1ハッシュ値のハッシュ値H(1)を生成する(ステップ4、5)。ブロックB(1)は、基準データから構成される。ハッシュ値H(1)はハッシュ値管理DB11へ送信される(ステップ6)。
【0085】
データカウンタdを1増加し、ハッシュ値カウンタhを1増加する(ステップ7)。作業者は、次の第2施工データとして次の撮影データを現場端末2に取り込む。現場端末2では、第2施工データD(2)を受信し、識別番号を付与し、格納する(ステップ8、9)。第2施工データD(2)、第1施工データD(1)及び第1ハッシュ値H(1)を利用し、ハッシュチェーンの第2ブロックを生成し、そのハッシュ値を計算し第2ハッシュ値H(2)を生成する(ステップ10、11)。
【0086】
第2ブロックは、第2施工データD(2)、第1施工データD(1)及び第1ハッシュ値H(1)から構成される。第2ハッシュ値H(2)はハッシュ値管理DB11へ送信される(ステップ12)。次の施工データの取り込みを確認し、次の施工データがある場合は、継続して同様の処理を行う(ステップ13→ステップ7)。これにより、ステップ7~12の処理が繰り返し行われる。具体的には、作業者は、次の施工データを撮影し、現場端末2へ送信又は入力する。
【0087】
現場端末2では、施工データを受信し、識別番号を付与し、格納する(ステップ8,9)。この最新の施工データ、前回の施工データ及び直前に計算されたハッシュ値を利用し、ブロックを生成し、そのハッシュ値を計算する(ステップ10、11)。この計算で、生成されたハッシュ値はハッシュ値管理DB11へ送信される(ステップ12)。ステップ13において、次の施工データがない場合、現場端末2は、完結処理へ移行する(ステップ14→ステップ15)。
【0088】
まず、データカウンタdを1増加し、ハッシュ値カウンタhを1増加する(ステップ14)。現場端末2では、最後に取得した施工データDと、直前のハッシュ値H、第1施工データD(1)を利用して、ブロックを生成し、生成されたブロックのハッシュ値を計算する(ステップ15、16)。この計算で、生成されたハッシュ値はハッシュ値管理DB11へ送信される(ステップ17)。そして、現場端末2は次の処理へ移行する(ステップ18)。
【0089】
この一連の処理によって、現場の作業状況を示す施工データD及び/又は生成されたハッシュチェーンは管理データベース5へ送信され保存される。無論、一連の施工データD及び/又は生成されたハッシュチェーンは現場端末2の記憶装置に格納することができる。一連の施工データDは、ハッシュ値管理DB11からハッシュ値を取得し、ハッシュ値計算を行うことで、施工データの改ざん・変更の有無を検証することができる。
【0090】
図10は、現場の施工データが変更になった場合の処理の流れを示すフローチャートであり、ここで、ハッシュチェーンの施工データが変更された場合の、ハッシュチェーンの生成について説明する。
図9に示した通り、施工データを取得し、ハッシュチェーンに保存しているが、現場で施工データの修正及び作業のやり直し等を始め様々な理由で保管する施工データを変更する必要が生じる。以下は、このような変更の理由がいかなる場合でも、施工データを保管する手順を
図10を参照しながら説明する。
【0091】
まず、ハッシュチェーンが生成される途中で、データカウンタdがn、ハッシュ値カウンタhがmの場合を想定する。現場端末2は、現場で施工データを取得してハッシュチェーンを生成していると、途中に施工データの変更がない場合は、基本的に、施工データを取得する度にハッシュ値が生成されるので「d=m」である。しかし、
図10の説明において、一般化して説明する。つまり、「d=m」と「d≠m」の両方が想定される。
【0092】
作業者は、施工データの変更を示す指示を現場端末で入力し、ハッシュチェーンの変更を開始する(ステップ20、21)。施工データの変更は、施工データを取得しハッシュチェーンを生成している途中、又は、既に終了し完結されたハッシュチェーンに対して行うことができる。これは、現場端末の建設データ管理プログラムで、施工データの変更を示すボタンを操作、又は、現場端末2のユーザインターフェースから所定のコマンドを入力することで行わる。
【0093】
現場端末では、まず、変更される施工データを特定する(ステップ22)。これは、作業者は、現場端末で施工データの一覧を閲覧し、その中から変更する施工データを指定し特定する。又は、作業者は、変更する施工データの識別番号を直接指定することができる。これにより、現場端末2で変更される施工データが特定され、変更する施工データの識別番号が特定される(ステップ23)。変更される前の施工データの識別番号を特定し、例えば、kとなる。
【0094】
現場端末2は、ハッシュチェーンで最後に利用したデータカウンタ、とハッシュ値カウンタを取得する。言い換えるとデータカウンタdの現在値はn、同様に、ハッシュ値カウンタhの現在値はpを取得する(ステップ24)。現場端末2は、データカウンタd=n+1、ハッシュ値カウンタh=p+1の値を取得する(ステップ25)。まず、施工データの変更理由を示すコマンドデータ20(
図7を参照。)を生成する(ステップ26)。
【0095】
このとき、管理者は、施工データの変更理由を現場端末2に入力する。施工データの変更理由は、現場端末2の画面に表示されたボタンを操作したり、キーボードから管理者が入力したりと任意の方法で入力する。この変更の理由は、コマンドブロックのコメント部22(
図7を参照。)に入力される。コマンドデータは、変更する施工データの指定番号、変更の種類、変更理由等からなる。変更の種類は、施工データの削除、修正、変更、分岐等を指定する。変更の種類は変更するコマンドと表記しても良い。
【0096】
変更理由は、変更した作業者、変更日時、その理由等からなる。そして、現場端末2で、コマンドブロックが生成される(ステップ27)。具体的には、現場端末2では、コマンドデータ20、直前計算されたハッシュ値H(p)を利用し、コマンドブロックを生成し、そのハッシュ値を計算する(ステップ28)。ここで言う直前に計算されたハッシュ値はH(p)になる。そして、生成されたコマンドブロックのハッシュ値には、ハッシュ値カウンタhにp+1が付与され、ハッシュ値管理DB11へ送信される(ステップ29)。
【0097】
このようにコマンドブロックを生成するとき、一連の施工データが途中で変更され、それ以後の施工データを新規に取得する等のとき、施工データの順番が異なる。このとき、コマンドブロックは直前のハッシュ値を利用するので、生成されたハッシュ値が継続し、施工データの連続性が保証される。後日、このハッシュチェーンを検証するとき、正しい順番のハッシュ値を利用しないと、施工データの連続性を確認できないためである。その後、現場端末2は、新規に入力する施工データを取得する。
【0098】
これは、作業者が現場端末2を操作することにより入力され、現場端末2に格納される(ステップ30、31)。取得した施工データ、言い換えると変更施工データを利用してブロックを生成する(ステップ32)。このブロックは、変更施工データの直前のデータD(k)、直前に計算されたハッシュ値H(p+1)、変更施工データD(n+1)を利用し、ブロックを生成し、そのハッシュ値を計算する(ステップ33)。
【0099】
ここで言う変更施工データの直前の施工データはD(k)になり、直前に計算されたハッシュ値はコマンドブロックのハッシュ値H(p+1)になる。生成されたハッシュ値は、ハッシュ値カウンタ「p+2」番号が付与され、ハッシュ値管理DB11へ送信される(ステップ34)。データカウンタdとハッシュ値カウンタhが更新され(ステップ35)、以後は、変更施工データD(k+1)以後のデータが順番に取り込まれ、
図9のステップ7以後の処理が行われる(ステップ36→30)。
【0100】
又は、変更施工データ以後は、施工データが新規に入力され、
図9のステップ7以後と同様の処理が行われる(ステップ36→30)。そして、入力する施工データが終了すると、現場端末2では、最後に取得した施工データDと、直前のハッシュ値H、第1施工データD(1)を利用して、ブロックを生成し、そのハッシュ値を計算する(ステップ37、38)。生成されたハッシュ値はハッシュ値管理DB11へ送信される(ステップ39)。そして、現場端末2は次の処理へ移行する(ステップ40)。
【0101】
この一連の処理によって、現場の作業状況を示す施工データで変更された施工データがハッシュチェーンに取り込まれ、管理データベース5等に保存される。
【0102】
図11は、本発明の第1の実施の形態の建設データ管理システム1において、施工データを検証する手順例の流れを図示している。施工データは、ハッシュチェーンに組み込まれてサーバ3(
図1を参照。)に格納されている。このハッシュチェーンのハッシュ値はサーバ3のハッシュ値管理DB11に格納されている。ここで、検証端末7からサーバ3にアクセスし、施工データが改ざんされているか否かの検証をする手順を説明する。
【0103】
検証端末7上には、建設データ管理システム1用の検証プログラムが動作しており、検証に必要な機能、例えば、ハッシュチェーンをサーバ3又は現場端末2から取得する機能、ハッシュチェーンのハッシュ値をサーバ3から取得する機能、ハッシュチェーンの各ブロックのデータを用いてハッシュ値を計算する機能、この計算されたハッシュ値をサーバ3から取得したハッシュ値と比較する機能等を備えている。以下、これらの機能は、検証端末7の機能として説明する。
【0104】
検証は、施工を監督する監督者、建設の監査をする第3者、建設の依頼主、建設に係わった業者、そして行政組織の責任者、司法権限よる捜査官等の任意の者(以下、検証者という。)が行うことができる。しかし、施工工事に関してその営業秘密、個人情報漏洩等の機密データ管理の観点から、サーバ3へアクセスし、施工データが入っている管理データベース5、そしてハッシュ値管理DB11へアクセスする権限は、サーバ3の管理者から検証者が得なければならい。
【0105】
このような検証者、検証者のアクセス権限に関して、これは本発明の趣旨ではないので説明は省略する。検証端末7は、検証者が検証用に用いる電子計算機である。検証端末7は、中央処理手段、記憶手段、入出力手段等を備えた汎用の電子計算機である。検証端末7はサーバ3へアクセスして接続し、所定の認証手続きを行う(ステップ50、51、52)。
【0106】
認証手続きで検証端末7がサーバ3に認証されアクセスが許可される認証手続きが正常に終了し、検証端末7とサーバ3の間に通信リンクが確立され、データ通信が可能になる。認証手続きで検証端末7がサーバ3に認証されない場合、アクセスが許可されず、検証端末7が認証手続きを最初から行うか、中断する。認証手続きが正常に終了し、アクセスが許可されると検証端末7はサーバ3からハッシュチェーンを取得する。検証端末7は、管理データベース5へアクセスし、ハッシュチェーンをダウンロードする等して取得する(ステップ53、54)。
【0107】
検証端末7は、ハッシュチェーンをサーバ3からダウンロードし、受け取ると、ハッシュチェーンの識別番号を取得し、ハッシュ値を取得するためにハッシュ値管理DB11へアクセスする。サーバ3にハッシュチェーンを格納したハッシュチェーンDB10とハッシュ値管理DB11の両方が格納されているとサーバ3への接続認証は不要になる。しかし、ハッシュチェーンDB10とハッシュ値管理DB11が異なるサーバに格納されていると、ハッシュ値管理DB11が格納されているサーバ3a(
図15を参照。)への認証手続きが必要になる。
【0108】
検証端末7がハッシュ値管理DB11へアクセスし、ハッシュチェーンに対応する一連のハッシュ値H’を取得する(ステップ55、56)。一連のハッシュ値は、上述の
図5に示すH(1)~H(n)等のH(h)の値であり、ハッシュチェーンのブロックの数とハッシュ値の数が一致する。検証端末7は、データカウンタiとハッシュ値カウンタjを初期化する(ステップ57)。
【0109】
この例では、それぞれを「1」にする。検証端末は、ハッシュチェーンのi番目ブロックの施工データD(i)を利用して、そのハッシュ値H(i)を計算し生成する(ステップ58)。この例では第1ブロックの施工データD(1)を利用して、そのハッシュ値H(1)を計算し生成する。ハッシュ値管理DB11から取得した一連のハッシュ値から最初のハッシュ値H’(j)を取り出す(ステップ59)。この例では、ハッシュ値H’(1)を取得する。
【0110】
この生成したハッシュ値H(i)とハッシュ値H’(j)とを比較し、両方が一致する場合、第iブロックの施工データD(i)が改ざんされていない証明になる(ステップ60→62)。この例では、ハッシュ値H(1)がハッシュ値H’(1)と一致する場合、第1ブロックの施工データD(1)が改ざんされていない証明になる(ステップ62)。ハッシュ値H(i)がハッシュ値H’(j)と一致しない場合は、第iブロックの施工データD(i)が改ざんされたことになる(ステップ60→61)。
【0111】
検証結果が終了又は次の処理へ移行する(ステップ61→66)。そして、施工データが改ざんされていない場合、ハッシュチェーンに次のブロックがあるか否かを確認する(ステップ63)。次のブロックがあるとき、検証端末7は、データカウンタiとハッシュ値カウンタjを更新し、言い換えるとそれぞれを「1」で増加させる(ステップ64)。検証端末7は、ハッシュチェーンのi番目ブロックのハッシュ値H(i)を計算し生成する。そして、ハッシュ値H’(j)を取得する。
【0112】
検証端末7は、ハッシュ値H(j)とハッシュ値H’(j)を比較する(ステップ58~60)。このように、ステップ58~63の検証作業を繰り返し行う。全てのブロックについて検証が終わり、全てが改ざんされていないことが証明できた場合、ハッシュチェーンが改ざんされていないことになる。具体的には、ハッシュチェーンのブロック全てにおいて、同じように計算し、全てのブロックが改ざんされていないことが確認できる(ステップ63→65)。そして、検証端末7は次の処理へ移行する。
【0113】
以上の説明では、各ブロックは、施工データ、直前のブロックの施工データ、直前のブロックのハッシュ値から構成されており、ステップ60と並行して、直前のブロックの施工データを直前のブロックと比較して一致するかを確認することができる。同じく、ブロックのハッシュ値が計算されると次のブロックに入っているハッシュ値と比較して、一致するかを確認することができる。このように、ハッシュチェーンは、二重、三重の確認を行うことができるが、これは検証作業の要件によって決定するものである。
【0114】
図12は、本発明の第1の実施の形態の建設データ管理システム1において、施工データを検証する手順例の流れを図示している。この検証は、基本的にハッシュチェーンと、その中に格納された施工データを用いて行われる。このハッシュチェーンのハッシュ値はサーバ3のハッシュ値管理DB11に格納されている。ここで、施工データが改ざんされているか否かの検証をする手順を説明する。
【0115】
まず、
図11のフローチャートで説明したのと同じく、検証端末7はサーバ3へアクセスし、接続し、所定の認証手続きを行い、ハッシュチェーンをダウンロードする(ステップ70~74)。検証端末は、データカウンタiとハッシュ値カウンタjを初期化する(ステップ75)。この例では、それぞれを「1」にする。検証端末は、ハッシュチェーンの第i番目ブロックのハッシュ値H(j)を計算し生成する(ステップ76)。
【0116】
ハッシュチェーンの第i+1番目ブロックに入っているハッシュ値H’(j)を取得する(ステップ77)。この生成したハッシュ値H(j)をハッシュ値H’(j)と比較し、両方が一致するとき、第i番目ブロック、その中の施工データD(i)が改ざんされていない証明になる(ステップ78→79)。ハッシュ値H(j)がハッシュ値H’(j)と一致しない場合は、第i番目ブロック、その中の施工データD(i)が改ざんされたことになる(ステップ78→80)。検証結果が終了又は次の処理へ移行する(ステップ80→87)。
【0117】
ブロックが改ざんされていない場合、最後のブロックであることを確認する(ステップ81)。次のブロックがあるとき、検証端末7は、データカウンタiとハッシュ値カウンタjを更新し、言い換えるとそれぞれを「1」で増加させる(ステップ82)。ステップ76~79の検証作業を繰り返し行う。最後のブロックである場合、最後のブロックのハッシュ値H(j)を計算し生成する(ステップ83)。
【0118】
最後のブロックのハッシュ値H’(j)は、ハッシュチェーンに格納されていないので、ハッシュ値管理DB11にアクセスし、対応するハッシュ値H’(j)を取得する(ステップ84)。この生成したハッシュ値H(j)とハッシュ値H’(j)を比較し、両方が一致するとき、最後のブロック、その中の施工データが改ざんされていない証明になる(ステップ85→86)。このように、全てのブロックについて検証が終わると、全てが改ざんされていないことが証明できる。両方が一致しない場合、最後のブロックが改ざんされたことになり、検証作業を中断する(ステップ85→80)。
【0119】
〔現場例1〕
図13は、現場での処理の流れの一例を図示している。まず、現場で作業者が現場端末を稼働する(ステップ101)。現場端末が稼働すると、施工建設データ管理プログラムが起動され、初期化処理が行われる(ステップ102)。そして、作業者は現場端末を操作して、建設機械と接続する(ステップ103)。
【0120】
このとき、現場端末を操作し、現場端末を指定する。又は、現場端末は、予め設定された建設機械に自動的に接続する。作業者は、現場端末を操作して、現場の状況を記録することを開始し、基準データを指定又は取得する(ステップ104)。この最初のデータは基準データとし、記録し、ハッシュチェーンの生成が開始され、記録設定を行う(ステップ105)。言い換えると、建設現場のデータ記録が開始される。
【0121】
現場端末は、建設機械の付属する通信端末又は制御器等に、無線通信又は有線通信で接続され、建設機械から施工データを取得する(ステップ106、107)。具体的には、建設機械からその動作に関するデータ、又は、データ要求を建設機械に送信してその処理結果を建設機械から取得する。建設機械は基本的に連続して動作しており、現場端末は、建設機械から一定期間のデータを連続して又は所定時間間隔で取得することが好ましい。
【0122】
そのため、連続してデータを取得する場合、作業者は、現場端末2からデータ取得開始を指示し(ステップ106)、施工データの記録を確認しながら終了を指示する(ステップ107)。作業者のこの指示は、現場端末の画面を見ながら表示されるボタンを操作したり、コマンドを入力したりして行われる。そして、取得した施工データは、現場端末の記憶装置に記憶又は記録される(ステップ108)。現場端末は、施工データをサーバへ送信する(ステップ109)。
【0123】
続けて、次の施工データを取得する場合は、作業者が現場端末でその旨を指示して、上記の作業が繰り返し行われる(ステップ110→106)。施工データの取得が終了又は中断する場合、現場端末の次の処理を行う(ステップ111)。上記のステップ107とステップ108において、現場端末は、施工データの記録が一回の指示毎にあらかじめ設定された所定期間のデータの場合は、ステップ106とステップ107、又はステップ106~109の動作を自動的に行う。
【0124】
記録する施工データは、建設機械から所得した生のデータであることが好ましいが、データが膨大になること、又は、無意味なデータが多く含まれることもある。そのため、記録する施工データにおいて、建設機械から取得した生のデータをフィルタリング、縮小、ハッシュ化、フォーマット変更等の加工をすることは、現場の種類、要件によるものであり、本発明の範囲に含まれるものとする。この例では、施工データはサーバへ送信され、ハッシュチェーン生成はサーバで行われる。
【0125】
〔現場例2〕
図14は、現場での処理の流れの他の一例を図示している。この例では、現場端末でハッシュチェーンを生成する例である。前処理は上記の
図13のフローチャートと同じであり、異なる部分を説明する。ステップ120~128は
図14のステップ100~108と同じであるが、異なるのは、施工建設データ管理プログラムの初期化処理では、ハッシュチェーン生成のための初期処理が行われる。
【0126】
ハッシュ値の設定、サーバ、ハッシュチェーンデータベース、ハッシュ値データベース等の設定が行われる。また、基準データを取得したらハッシュチェーンの最初のブロックが生成され、最初のブロックの値が生成され、サーバへ送信される(ステップ124)。施工データの取得が終了すると、ブロックの生成が行われる(ステップ129)。このとき、取得した施工データ、直前のハッシュ値、直前のブロックの施工データを利用し、ブロック生成が行われる。
【0127】
生成されたブロックのハッシュ値が計算される。そして、生成されたブロックとハッシュ値は、サーバへ送信される(ステップ130)。サーバにおいて、ブロックは、施工データデータベース、ハッシュ値はハッシュ値データベースへ格納される。続けて、次の施工データを取得する場合は、作業者が現場端末でその旨を指示して、上記の作業が繰り返し行われる(ステップ131→126)。施工データの取得が終了又は中断する場合、現場端末において完結ブロックの生成が行われる(ステップ132)。
【0128】
この完結ブロックは、最初の施工データである基準データ、最後の施工データ、最後のハッシュ値からなり、そのハッシュ値が計算される(ステップ132)。そして、生成されたブロックとハッシュ値は、サーバへ送信される(ステップ133)。サーバにおいて、ブロックは、施工データデータベース、ハッシュ値はハッシュ値データベースへ格納される。現場端末は、次の処理を行う(ステップ134)。
【0129】
図15には、建設データ管理システム1がサーバ3と、ハッシュ値を管理するためのサーバ3aを備えた例を図示している。現場から取得するデータは、現場の基準データ、建設機械の稼働データ、その他に現場の状況を示す写真を始め様々なデータがあり、この中から証拠として保存するデータがハッシュチェーンに取り込まれている。ハッシュチェーンは、中の施工データは
図15に図示したようにサーバ3の管理データベース5に保管し、ハッシュチェーンのハッシュ値はサーバ3aのハッシュ値管理データベース5bに保管する。
【0130】
ハッシュチェーンとそのハッシュ値を異なるサーバ3、3aとデータベース5、5aに保管することは、改ざんを防ぐために有効な手段である。サーバ3とサーバ3aは、管理する上で、管理者が異なることが望ましい。上述の
図1の説明、
図9のフローチャート等においては、管理データベース5を例に、管理データベース5にハッシュチェーンデータベース5aとハッシュ値管理データベース5bが格納されていると説明した。
【0131】
ハッシュチェーンは、通常、現場の写真を始め、建設機械の稼働データを含み、容量も膨大になることがあり、一つのハッシュチェーンデータベース5aに格納されるとは限らない。そのため、ハッシュチェーンは、サーバ3の記憶手段に格納し、例えば、ハッシュチェーン若しくは複数のハッシュチェーンをまとめて一つのフォルダに格納することもできる。
【0132】
管理データベース5は、ハッシュチェーンの名称、識別番号、格納先等を記録したデータベースとすることができる。また、管理データベース5は、ハッシュチェーン毎のハッシュ値が格納されている格納先又はデータベースの名称、識別番号、格納先等を記録することもできる。
【0133】
【0134】
〔ディジタル画像データを利用する場合〕
図16は、施工データとしてディジタル写真データを利用する場合の、その構造例を図示している。
図16に図示したように、ディジタル写真データは、所定のフォーマットのファイル30からなる。ファイル30は、画像データを記録する画像データ部31、音声データを記録する音声データ部32、追加情報を記録するEXIF情報部33等からなる。
【0135】
画像データ部31は、これに限定されないが、RGB非圧縮データ、YCbCr非圧縮データ、JPEG圧縮データ等の画像フォーマットに準拠した画像データが入力される。
音声データ部32は、これに限定されないが、非圧縮音声データPCM,非圧縮音声データμ-Law PCM、圧縮音声データIMA-ADPCM等の圧縮方式のフォーマットに準拠した音声データが入力される。これらの画像フォーマット及び音声フォーマットは、汎用に利用されているものであり、詳細な説明は省略する。
【0136】
EXIF情報部32は、EXIF(Exchangeable image file format)によるメタデータを含む領域であり、撮影装置の機種、撮影時の条件情報等の撮影情報を中心に様々なデータを記録する部分である。EXIF情報部32は、データ構造としては、ヘッダ、IFD(Image File Directory)34、サムネイル画像等で構成される。IFD34はタグ構造の複数のエントリからなり、各エントリはエントリの識別子、タイプ、カウント、値等のタグから構成される。
【0137】
本システムは、このIFD34の中のタグの内のユーザコメント部分35は、利用者がコメント等を追加できる部分であり、画像情報の運用者が追加したり、独自のタグ名にして利用することができるものである。よって、本発明の建設データ管理システム1においては、このユーザコメント部分35に、ブロック情報を埋め込む。例えば、ファイル30を一つのブロックとして利用する場合、IFDのタグの内のユーザコメント部分35にブロックのためのデータ、例えば、ハッシュ値、連結するブロックのデータ等を埋め込む。
【0138】
ユーザコメント部分35に連結するブロックの画像データを埋め込む場合、画像データが大きくなることがあるので、所定のアルゴリズムに従って画像データを圧縮した圧縮画像、又は、画像データのサムネイル等を埋め込むことができる。検証時に、一つのブロックの画像データを検証してから、次に取り込まれた画像データを検証するので、圧縮画像でも、サムネイルでもハッシュ値と一緒に次のブロックに埋め込まれることになり、そのため改ざんされると検知できる。
【0139】
〔第2の実施の形態〕
本発明の第2の実施の形態を図面を参照しながら説明する。本発明の第2の実施の形態は上述の本発明の第1の実施の形態と基本的に同じであり、ここでは異なる部分のみを説明する。本発明の第2の実施の形態は、
図1に図示した建設データ管理システム1からなり、ハッシュチェーンを生成する処理は、サーバ3において行われる。現場端末2においては、作業者が現場端末を操作して施工データを取り込む。
【0140】
施工データは現場端末2に取り込まれると、サーバ3へ送信される。サーバ3は、現場端末2から施工データを受信すると、これを記憶装置に格納し、ブロックを生成する処理と、ブロックのハッシュ値を計算する処理を行い、ハッシュチェーンとそのハッシュ値を管理データベース5に格納する。サーバ3の動作手順の例を
図17に図示したフローチャートを参照しながら説明する。まず、サーバ3は、管理者または現場端末2からの指示によって、サーバ3上に建設データ管理サーバプログラムが起動され動作し、ハッシュチェーンの生成処理、そのハッシュ値管理のための処理を開始する。
【0141】
建設データ管理サーバプログラムは、以下に記述する機能及び処理をサーバ3にさせるプログラム、モジュール、サービスからなるものであり、以下、サーバ3の機能又は処理として説明する。サーバ3では管理者または現場端末2からの指示によって、建設データ管理システム1のハッシュチェーン生成処理が開始され、初期処理が行われる(ステップ200)。初期処理としては、ハッシュチェーン生成に必要なユーザ設定、ユーザ認証、利用するハッシュ関数のパラメータの設定、現場端末2との通信設定、管理データベース5(
図1を参照。)の設定等を始めとし、必要な各種設定が行われる。
【0142】
データカウンタdとハッシュ値カウンタhの設定が行われる(ステップ201)。以下、データカウンタの初期値を「1」、ハッシュ値カウンタの初期値を「1」として説明する。サーバ3は現場端末2から施工データD(1)として基準データを受信する(ステップ202)。サーバ3上には、基準データのデータカウンタ「1」が付与され、第1施工データのD(1)になり、D(1)からなるブロックB(1)を生成し、ハッシュチェーンDB10に保存する(ステップ203)。
【0143】
サーバ3は、ブロックB(1)のハッシュ値を計算し、第1ハッシュ値のハッシュ値H(1)を生成する(ステップ204)。ハッシュ値H(1)はハッシュ値管理DB11に格納される(ステップ205)。そして、現場端末2からの次の施工データを待ち、施工データを受信すると、データカウンタdを1増加し、ハッシュ値カウンタhを1増加する(ステップ206、207)。そして、サーバ3は、受信した施工データにデータカウンタを付与し、ブロックを生成し、ハッシュチェーンDB10に保存する(ステップ208)。
【0144】
ブロックは、受信した施工データ、前回に生成したブロックの施工データ及び直前に計算されたハッシュ値から構成され、そのハッシュ値を計算する(ステップ209)。この計算で、生成されたハッシュ値はハッシュ値管理DB11に保存される(ステップ210)。ステップ206において、次の施工データがない場合、ステップ211へ移行する(ステップ206→211)。
【0145】
サーバ3は現場端末2と通信し、直前に受信した施工データが最後の施工であるか、または、次の施工データがあるかを確認する(ステップ211)。次の施工データがある場合、言い換えると前に受信した施工データが最後の施工データではない場合、ステップ206~211の処理が繰り返し行われる。最後の施工データの場合、完結処理へ移行するが、まず、データカウンタdを1増加し、ハッシュ値カウンタhを1増加する(ステップ212)。
【0146】
サーバ3は、最後に取得した施工データDと、直前のハッシュ値H、第1施工データD(1)を利用して、最終ブロックを生成し保存する(ステップ213)。生成されたブロックのハッシュ値を計算する(ステップ214)。この計算で、生成されたハッシュ値はハッシュ値管理DB11に保存される(ステップ215)。そして、次の処理へ移行する(ステップ216)。
【0147】
図18は、施工データが変更になった場合、サーバ3においてハッシュチェーンを生成する処理の流れを示すフローチャートである。ハッシュチェーンが生成される途中で、データカウンタdがn、ハッシュ値カウンタhがmの場合を想定する。サーバ3において、現場端末2から施工データを取得しながらハッシュチェーンを生成している中で、管理者又は現場端末2から、施工データの変更を示す指示を受信する(ステップ220、221)。
【0148】
これにより、サーバ3でハッシュチェーンの変更を開始する。現場端末2から受信した指示には、変更する施工データ、変更の種類等が含まれている。サーバ3は、この指示を分析し、変更する施工データを特定する(ステップ222)。これにより、変更するブロックも特定される。サーバ3は、ハッシュチェーンで最後に利用したデータカウンタ、とハッシュ値カウンタを取得する。上記例では、データカウンタdの現在値はn、ハッシュ値カウンタhの現在値はpを取得する(ステップ223)。
【0149】
サーバ3は、データカウンタd=n+1、ハッシュ値カウンタh=p+1の値を取得する(ステップ224)。サーバ3は、施工データの変更理由を示すコマンドデータ20(
図7を参照。)を生成する(ステップ225)。このとき、サーバ3は、現場端末2に対して、変更理由の入力を要求し、その応答を取得する。又は、上記の変更指示に変更の理由、変更する施工データがある場合、それを利用する。
【0150】
管理者は、施工データの変更の理由を現場端末2の画面に表示されたボタンを操作したり、キーボードから入力したりと任意の方法で入力する。この変更の理由は、サーバ3へ送信され、サーバ3はコマンドブロックのコメント部22(
図7を参照。)に入力される。コマンドデータ20は、上述の現場端末2で生成されたものに準じる。そして、サーバ3は、コマンドブロックを生成する(ステップ226)。コマンドブロックには、コマンドデータ20、直前に計算されたハッシュ値H(p)が含まれる。
【0151】
コマンドブロックのハッシュ値を計算する(ステップ227)。生成されたコマンドブロックのハッシュ値には、ハッシュ値カウンタhにp+1を付与し、ハッシュ値管理DB11に保存する(ステップ228)。サーバ3は、新規に入力する施工データ又は一連の施工データの中で変更された施工データに続くもので変更されてない施工データの順番に取り込み、ハッシュチェーンを生成していく(ステップ229~233)。
【0152】
サーバ3は、ブロックに入力する施工データを取得し、ブロックを生成し、保存する(ステップ229、230)。施工データを変更した場合は、変更施工データの直前のデータD(k)、直前に計算されたハッシュ値H(p+1)、変更施工データD(n+1)を利用してブロックを生成する。その次は、直前のブロックの施工データ、直前に計算されたハッシュ値H、入力する施工データDを利用してブロックを生成する。生成されたブロックのハッシュ値を計算しハッシュ値管理DB11に保存する(ステップ231)。
【0153】
データカウンタdとハッシュ値カウンタhが更新される(ステップ232)。以後、施工データが終わるまでに、ステップ229以後の処理が繰り返し行われる(ステップ233→229)。施工データが終わると、上述の
図17のステップ213~216と同様に、ハッシュチェーンの完結処理を行う(ステップ234~236)。
【0154】
施工データは、ハッシュチェーンに組み込まれてサーバ3(
図1を参照。)に格納されている。このハッシュチェーンのハッシュ値はサーバ3のハッシュ値管理DB11に格納されている。本発明の第2の実施の形態の建設データ管理システム1において、施工データの検証は、検証端末7等からサーバ3にアクセスし、施工データが改ざんされているか否かの検証をする。この検証の手順例の流れは、
図11の手順と同様に行われるので詳細な説明は省略する。
【0155】
[第3の実施の形態]
本発明の第3の実施の形態の建設データ管理システム1について、図面を参照しながら説明する。本発明の第3の実施の形態の建設データ管理システム1は、本発明の第1の実施の形態の建設データ管理システム1と構成及び機能が同じであり、ここでは異なる点のみを記述する。具体的には、
図23(g)又は
図23(h)に図示したように、ブロックB(n)は、直前のブロックB(nー1)のハッシュ値と、新しく取り込む施工データD(n)からなる。
【0156】
図19には、施工データを取り込み、ハッシュ関数を利用して、ハッシュチェーンを生成する手順を示している。現場端末2において、施工データD(1)を利用して、第1回目のブロックB(1)が生成され、第1回目の計算処理が行われ、ハッシュ値(H1)が生成される。ハッシュチェーンには、B(1)が追加される。
【0157】
ハッシュ値H(1)は、現場端末2からサーバ3へ送信され、ハッシュ値管理DB11に格納される。D(1)とH(1)は、現場端末2からサーバ3へ送信され、ハッシュチェーンDB10に格納され、管理される。現場端末2に次の施工データD(2)が取り込まれると、D(2)を含む第2ブロックB(2)が生成され、B(2)に対するハッシュ値H(2)がハッシュ関数を利用して2回目の計算処理で計算される。
【0158】
ハッシュ値H(2)を計算するとき、B(1)に対応するH(1)及びD(2)が一つのブロックB(1)を構成し、ハッシュ値が計算され、ハッシュ値H(2)が生成される(2回目の計算処理)。現場端末2に施工データD(3)が取り込まれると、B(2)に対応するH(2)及びD(3)が一つのブロックB(3)を構成し、ハッシュ値が計算され、ハッシュ値H(3)が生成される(3回目の計算処理)。
【0159】
このように、D(n)の施工データが現場端末2に取り込まれると、B(n-1)に対応するH(n-1)及びD(n)が一つのブロックB(n)になり、B(n)のハッシュ値が計算され、ハッシュ値H(n)が生成される(n回目の計算処理)。そして、一連のB(1)~B(n)とH(1)~H(n)がハッシュチェーンDB10、ハッシュ値管理DB11に格納され、管理される。
【0160】
D(1)~D(n)の内の一つの施工データが変更された場合、この例ではD(k+1)が変更される場合、ハッシュチェーンの生成について
図20を参照しながら説明する。B(n)からm番目前のブロックの施工データが変更されたとき、変更の種類、変更理由や変更された施工データについて記述するコマンドデータCMD(m)が生成される。CMD(m)とその直前に生成されたハッシュ値H(n)を合わせて一つのブロックとして生成する。
【0161】
コマンドブロックのハッシュ値が計算され、H(n+1)が生成される(n+1回目の計算処理)。コマンドデータを含むコマンドブロックは現場端末2からサーバ3へ送信されハッシュチェーンDB10に追加される。同じく、ハッシュ値H(n+1)は、現場端末2からサーバ3へ送信され、ハッシュ値管理DB11に格納され管理される。
【0162】
図20において、n+1回目の計算処理の後、変更された施工データD(n+1)が現場端末2に入力される。そして、直前のハッシュ値H(n+1)、変更されたデータD(n+1)がまとまって一つのブロックを構成しブロックとして生成される。そして、この生成されたブロックに対応するハッシュ値の計算が行われる(n+2回目の計算処理)。
【0163】
以後、計算処理は、同じように、直前のハッシュ値、入力された新しいデータが一つのブロックを構成し、ハッシュ値の計算処理が行わる。
【0164】
図21は、ハッシュチェーンが完結する手順例を図示している。ここでは、D(1)~D(n)までのデータが取り込まれ、計算処理が行われ、それに対応するハッシュ値H(1)~H(n)が生成されている。ハッシュチェーンにこれ以上のデータを追加しないで、一つのまとまったデータとして記録するためには、最初の施工データD(1)を用いて、最後のハッシュ値を生成する。
【0165】
図21に図示したように、直前のハッシュ値H(n)、最初の施工データ(基準施工データ)D(1)をまとめて一つのブロックとし、ハッシュ値を計算し、最後のハッシュ値(最終ハッシュ値又は完結ハッシュ値とも言うことができる。)H(n+1)を生成する(n+1回目の計算処理)。H(n+1)は、現場端末2からサーバ3へ送信され、ハッシュ値管理DB11に格納されて管理される。
【0166】
〔その他の実施の形態〕
図22には変更したデータの例を図示している。一連のデータは、D(1)から始まっているが、データDa(1)で変更し、D(1)…Da(1)…Da(2)と、D(1)…Da(1)…Db(1)となる。このとき、D(1)…Da(1)…Da(2)は完結し、ハッシュチェーンDBに格納される。D(1)…Da(1)…Db(1)はDb(2)、Da(3)の2つの系統に分岐している。同じく、D(1)…Da(1)…Db(1)、Db(2)が完結し、ハッシュチェーンDBに格納される。
【0167】
新規に入力されたデータは、D(1)…Da(1)、Db(1)…Da(3)となり、最後は、完結する。このように、現場のデータは、途中で修正され、変更されると、その度に、一つの完結したハッシュチェーンを生成し、ハッシュチェーンDBに格納して管理される。無論、各ハッシュチェーンのハッシュ値は、ハッシュ値管理DBに格納されて管理される。
【0168】
次は、本発明の第1の実施の形態の建設データ管理システム1の動作概要を図面を参照しながら説明する。現場端末2は現場で設置されており、現場の施工データを取得して、ハッシュチェーンのための処理を行い、処理結果のハッシュチェーン又はそのブロック及びハッシュ値をサーバ3へ送信する。サーバ3では、現場端末2から送信されてきたハッシュチェーン又はそのブロック及びハッシュ値を管理データベース5に格納する。
【0169】
現場端末2が起動し、建設データ管理システム1用の建設データ管理プログラムが起動する。現場端末2は現場の作業者によって操作されるもので、現場で取得したデータが入力される。作業者は、ディジタルカメラ等で撮影した撮影データ、現場の建設機械の稼働状況を示す稼働データ等を現場端末2に入力する。
【0170】
または、現場端末2とディジタルカメラ等とを接続してデータ通信を行い撮影データを取得、若しくは、現場の建設機械の通信手段と接続し稼働データ等を現場端末2が取得する。この撮影データ、稼働データは、作業者が現場端末2、その上で動作する建設データ管理プログラムを操作し、データを一つ一つ入力指示することができるが、現場端末2をディジタルカメラ、建設機械等と接続させて自動的に取得することもできる。
【0171】
図23は、ハッシュチェーンのブロックの構成例を図示している。ハッシュチェーンのブロックは、基本的に、連結した直前のブロックの施工データDとハッシュ値、このブロックに取り込む施工データDからなっている。この3種類のデータはブロックに取り込まれる順番を入れ替えると8種類になり、この入れ替えた例を
図23(a)~(f)に図示している。
【0172】
図23(a)は、n番目のB(n)ブロックの場合を例に説明すると、ブロックB(n)には、ブロックB(n-1)の施工データD(n-1)とハッシュ値H(n-1)、及び、このブロックB(n)に取り込む施工データD(n)の順番で取り込まれている。そして、B(n)ブロックのハッシュ値が計算される。
【0173】
図23(b)では、ブロックB(n)には、ブロックB(n-1)のハッシュ値H(n-1)と施工データD(n-1)、及び、このブロックB(n)に取り込む施工データD(n)の順番で取り込まれている。そして、B(n)ブロックのハッシュ値が計算される。この計算されたハッシュ値は
図23(a)の場合のハッシュ値と異なる。その他の
図23(c)~(f)は、同様に取り込まれるデータD(n)、H(n-1)、D(nー1)の順番が異なっており、無論、計算された値も異なる。
【0174】
上述の本発明の第1の実施の形態の建設データ管理システム1は、
図3に図示したように、
図23(a)のブロック例を利用したハッシュチェーンの例である。建設データ管理システムは、
図23(b)~(f)に図示したブロックの中から選択される1ブロックを採用したハッシュチェーンを利用しており、その生成及び検証、それらのための処理は、上述の本発明の第1の実施の形態の建設データ管理システム1と同じであり、詳細な説明は省略する。
【0175】
図23(g)に図示したように、ブロックB(n)は、ブロックB(n)に取り込む施工データD(n)と、ブロックB(n-1)のハッシュ値H(n-1)の順番で取り込まれている。また、
図23(h)に図示したように、ブロックB(n)は、ブロックB(n-1)のハッシュ値H(n-1)とブロックB(n)に取り込む施工データD(n)の順番で取り込まれている。この
図23(g)と
図23(h)の例は、本発明の第3の実施の形態の例である。
【産業上の利用可能性】
【0176】
本発明は、建築、土木等の建設分野に利用すると良い。特に、建設現場の施工データ等の建設関連書類を保管し、それを証明、検証するために利用すると良い。
【符号の説明】
【0177】
1 …建設データ管理システム
2 …現場端末
3 …サーバ
4 …ネットワーク
5 …管理データベース
6 …通信端末
7 …検証端末
10…ハッシュチェーンデータベース(DB)
11…ハッシュ値管理データベース(DB)
20…コマンドデータ
21…ブロック指定部
22…コメント部