(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】データ管理システム、データ管理方法、データ管理プログラム
(51)【国際特許分類】
G06F 21/64 20130101AFI20241112BHJP
H04L 9/32 20060101ALI20241112BHJP
【FI】
G06F21/64
H04L9/32 200Z
(21)【出願番号】P 2023512917
(86)(22)【出願日】2022-03-23
(86)【国際出願番号】 JP2022013367
(87)【国際公開番号】W WO2022215517
(87)【国際公開日】2022-10-13
【審査請求日】2023-08-08
(32)【優先日】2021-04-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(74)【代理人】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】徐 シン
(72)【発明者】
【氏名】黄 浩倫
【審査官】塩澤 如正
(56)【参考文献】
【文献】米国特許出願公開第2020/0295947(US,A1)
【文献】特開2016-066012(JP,A)
【文献】中国特許出願公開第111914270(CN,A)
【文献】国際公開第2019/168871(WO,A1)
【文献】特開2007-275276(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/64
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
保存データの改ざん有無を検証可能なデータ管理システム(1)であって、
対象物に関するデータをオリジナルデータとして保存する記憶装置(3)と、
前記オリジナルデータに関する情報を記録するブロックチェーン(591)を保存する少なくとも1つのノード(2)と、を備え、
前記少なくとも1つのノードは、プロセッサ(21)とメモリ(22)とを備え、
前記メモリは、コンピュータ読み取り可能な命令を記憶し、
前記命令は、前記プロセッサにより実行された場合に、前記プロセッサに、
前記オリジナルデータを保存する際に、
前記データの各種属性と前記データの各種属性に応じた複数のハッシュ関数とを対応付けたハッシュ関数リスト(7)から、前記オリジナルデータの属性に対応するハッシュ関数を選択させ、
前記選択されたハッシュ関数を用いて、前記オリジナルデータのハッシュ値をオリジナルハッシュ値(822)として取得させ、
前記オリジナルハッシュ値と、前記選択されたハッシュ関数を特定するハッシュ関数特定情報(821)と、を前記ブロックチェーン上に保存させ
、
前記オリジナルデータを前記オリジナルハッシュ値と関連付けて前記記憶装置に保存させ、
要求データが要求された際に、
当該要求データに対応する前記オリジナルデータを、前記ブロックチェーンから取得した前記オリジナルハッシュ値を用いて前記記憶装置から取得させ、
前記要求データに対応する前記オリジナルデータの前記オリジナルハッシュ値と前記ハッシュ関数特定情報とを、前記ブロックチェーンから取得させ、
前記ハッシュ関数特定情報で特定されるハッシュ関数を用いて、前記記憶装置から取得した前記オリジナルデータのハッシュ値を検証ハッシュ値として取得させ、
前記ブロックチェーンから取得した前記オリジナルハッシュ値と前記検証ハッシュ値とを比較することで、前記記憶装置から取得した前記オリジナルデータが改ざんされているか否かを検証させ、
前記記憶装置から取得した前記オリジナルデータが改ざんされていないと判断した場合に、当該オリジナルデータを提供させる、データ管理システム。
【請求項2】
前記オリジナルデータは非公開データを含み、
前記命令は、前記プロセッサにより実行された場合に、前記プロセッサに、さらに、
前記オリジナルデータを保存する際に、当該オリジナルデータから前記非公開データを除いた公開データに基づいて、前記オリジナルハッシュ値を取得させる、
請求項
1に記載のデータ管理システム。
【請求項3】
保存データの改ざん有無を検証可能なデータ管理システム(1)であって、
対象物に関するデータをオリジナルデータとして保存する記憶装置(3)と、
前記オリジナルデータに関する情報を記録するブロックチェーン(591)を保存する少なくとも1つのノード(2)と、を備え、
前記少なくとも1つのノードは、プロセッサ(21)とメモリ(22)とを備え、
前記メモリは、コンピュータ読み取り可能な命令を記憶し、
前記オリジナルデータは、非公開データを含み、
前記命令は、前記プロセッサにより実行された場合に、前記プロセッサに、
前記オリジナルデータを保存する際に、
前記データの各種属性と前記データの各種属性に応じた複数のハッシュ関数とを対応付けたハッシュ関数リスト(7)から、前記オリジナルデータの属性に対応するハッシュ関数を選択させ、
前記選択されたハッシュ関数を用いて、前記オリジナルデータのハッシュ値をオリジナルハッシュ値(822)として取得させ、
前記オリジナルデータから前記非公開データを除いた公開データに基づいて、前記オリジナルハッシュ値を取得させ、
前記オリジナルハッシュ値と、前記選択されたハッシュ関数を特定するハッシュ関数特定情報(821)と、を前記ブロックチェーン上に保存させ、
データ要求時に、
要求された前記データである要求データに対応する前記オリジナルデータを、前記記憶装置から取得させ、
前記要求データに対応する前記オリジナルデータの前記オリジナルハッシュ値と前記ハッシュ関数特定情報とを、前記ブロックチェーンから取得させ、
前記ハッシュ関数特定情報で特定されるハッシュ関数を用いて、前記記憶装置から取得した前記オリジナルデータのハッシュ値を検証ハッシュ値として取得させ、
前記ブロックチェーンから取得した前記オリジナルハッシュ値と前記検証ハッシュ値とを比較することで、前記記憶装置から取得した前記オリジナルデータが改ざんされているか否かを検証させ、
前記記憶装置から取得した前記オリジナルデータが改ざんされていないと判断した場合に、当該オリジナルデータを提供させる、データ管理システム。
【請求項4】
前記命令は、前記プロセッサにより実行された場合に、前記プロセッサに、さらに、前記要求データが要求された際に、
前記記憶装置から取得した前記要求データに対応する前記オリジナルデータから前記非公開データを除いた公開データを取得させ、
前記取得した公開データに基づいて、前記検証ハッシュ値を取得させ、
前記ブロックチェーンから取得した前記オリジナルハッシュ値と前記検証ハッシュ値とを比較することで、前記取得した公開データが改ざんされているか否かを検証させ、
前記取得した公開データが改ざんされていないと判断すると、前記取得した公開データを提供させる、
請求項
2または3に記載のデータ管理システム。
【請求項5】
前記選択されたハッシュ関数を用いて前記オリジナルデータのハッシュ値を算出する外部ハッシュ値計算装置(9)をさらに備え、
前記命令は、前記プロセッサにより実行された場合に、前記プロセッサに、さらに、前記オリジナルデータを保存する際に、
前記外部ハッシュ値計算装置が算出した前記ハッシュ値を前記オリジナルハッシュ値として取得させる、
請求項1~
4のいずれか一項に記載のデータ管理システム。
【請求項6】
前記特定したハッシュ関数を用いて前記記憶装置から取得した
前記オリジナルデータのハッシュ値を算出する外部ハッシュ値計算装置(9)をさらに備え、
前記命令は、前記プロセッサにより実行された場合に、前記プロセッサに、さらに、前記要求データが要求された際に、
前記外部ハッシュ値計算装置が算出した前記ハッシュ値を前記検証ハッシュ値として取得させる、
請求項
1に記載のデータ管理システム。
【請求項7】
保存データの改ざん有無を検証可能なデータ管理方法であって、
対象物に関するデータをオリジナルデータとして記憶装置(3)に保存し、
前記データの各種属性と前記データの各種属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リスト(7)から、前記オリジナルデータの属性に対応するハッシュ関数を選択し、
前記選択されたハッシュ関数を用いて、前記オリジナルデータのハッシュ値をオリジナルハッシュ値(822)として取得し、
前記オリジナルハッシュ値と、前記選択されたハッシュ関数を特定するハッシュ関数特定情報(821)と、をブロックチェーン(591)上に保存
し、
前記オリジナルデータを前記オリジナルハッシュ値と関連付けて前記記憶装置に保存し、
要求データが要求された際に、当該要求データに対応する前記オリジナルデータを、前記ブロックチェーンから取得した前記オリジナルハッシュ値を用いて前記記憶装置から取得し、
前記要求データに対応する前記オリジナルデータの前記オリジナルハッシュ値と前記ハッシュ関数特定情報とを、前記ブロックチェーンから取得し、
前記ハッシュ関数特定情報で特定されるハッシュ関数を用いて、前記記憶装置から取得した前記オリジナルデータのハッシュ値を検証ハッシュ値として取得し、
前記ブロックチェーンから取得した前記オリジナルハッシュ値と前記検証ハッシュ値とを比較することで、取得した前記オリジナルデータが改ざんされているか否かを検証し、
前記記憶装置から取得した前記オリジナルデータが改ざんされていないと判断した場合、当該オリジナルデータを提供する、データ管理方法。
【請求項8】
保存データの改ざん有無を検証可能なデータ管理方法であって、
対象物に関するデータをオリジナルデータとして記憶装置(3)に保存し、
前記データの各種属性と前記データの各種属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リスト(7)から、前記オリジナルデータの属性に対応するハッシュ関数を選択し、
前記選択されたハッシュ関数を用いて、前記オリジナルデータのハッシュ値をオリジナルハッシュ値(822)として取得し、
非公開データを含む前記オリジナルデータから当該非公開データを除いた公開データに基づいて、前記オリジナルハッシュ値を取得し、
前記オリジナルハッシュ値と、前記選択されたハッシュ関数を特定するハッシュ関数特定情報(821)と、をブロックチェーン(591)上に保存し
データ要求時に、要求された前記データである要求データに対応する前記オリジナルデータを、前記記憶装置から取得し、
前記要求データに対応する前記オリジナルデータの前記オリジナルハッシュ値と前記ハッシュ関数特定情報とを、前記ブロックチェーンから取得し、
前記ハッシュ関数特定情報で特定されるハッシュ関数を用いて、前記記憶装置から取得した前記オリジナルデータのハッシュ値を検証ハッシュ値として取得し、
前記ブロックチェーンから取得した前記オリジナルハッシュ値と前記検証ハッシュ値とを比較することで、取得した前記オリジナルデータが改ざんされているか否かを検証し、
前記記憶装置から取得した前記オリジナルデータが改ざんされていないと判断した場合、当該オリジナルデータを提供する、データ管理方法。
【請求項9】
少なくとも1つのコンピュータ読み取り可能な非遷移記憶媒体に記憶され、命令を含むプログラムであり、
前記命令は、少なくとも1つのプロセッサ(21)により実行された場合に、前記少なくとも1つのプロセッサに、
データを保存する際に、
対象物に関する
前記データをオリジナルデータとして記憶装置(3)に保存させ、
前記データの各種属性と、前記データの各属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リスト(7)から、前記オリジナルデータの属性に対応するハッシュ関数を選択させ、
前記選択されたハッシュ関数を用いて、前記オリジナルデータのハッシュ値をオリジナルハッシュ値(822)として取得させ、
前記オリジナルハッシュ値と、前記選択されたハッシュ関数を特定するハッシュ関数特定情報(821)と、をブロックチェーン(591)上に保存させ
、
前記オリジナルデータを前記オリジナルハッシュ値と関連付けて前記記憶装置に保存させ、
要求データが要求された際に、
当該要求データに対応する前記オリジナルデータを、前記ブロックチェーンから取得した前記オリジナルハッシュ値を用いて前記記憶装置から取得させ、
前記要求データに対応する前記オリジナルデータの前記オリジナルハッシュ値と前記ハッシュ関数特定情報とを、前記ブロックチェーンから取得させ、
前記ハッシュ関数特定情報で特定されるハッシュ関数を用いて、前記記憶装置から取得した前記オリジナルデータのハッシュ値を検証ハッシュ値として取得させ、
前記ブロックチェーンから取得した前記オリジナルハッシュ値と前記検証ハッシュ値とを比較することで、前記記憶装置から取得した前記オリジナルデータが改ざんされているか否かを検証させ、
前記記憶装置から取得した前記オリジナルデータが改ざんされていないと判断すると、当該オリジナルデータを提供させる、データ管理プログラム。
【請求項10】
少なくとも1つのコンピュータ読み取り可能な非遷移記憶媒体に記憶され、命令を含むプログラムであり、
前記命令は、少なくとも1つのプロセッサ(21)により実行された場合に、前記少なくとも1つのプロセッサに、
データを保存する際に、
対象物に関する
前記データをオリジナルデータとして記憶装置(3)に保存させ、
前記データの各種属性と、前記データの各属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リスト(7)から、前記オリジナルデータの属性に対応するハッシュ関数を選択させ、
前記選択されたハッシュ関数を用いて、前記オリジナルデータのハッシュ値をオリジナルハッシュ値(822)として取得させ、
非公開データを含む前記オリジナルデータから当該非公開データを除いた公開データに基づいて、前記オリジナルハッシュ値を取得させ、
前記オリジナルハッシュ値と、前記選択されたハッシュ関数を特定するハッシュ関数特定情報(821)と、をブロックチェーン(591)上に保存させ
、
データ要求時に、
要求された前記データである要求データに対応する前記オリジナルデータを、前記記憶装置から取得させ、
前記要求データに対応する前記オリジナルデータの前記オリジナルハッシュ値と前記ハッシュ関数特定情報とを、前記ブロックチェーンから取得させ、
前記ハッシュ関数特定情報で特定されるハッシュ関数を用いて、前記記憶装置から取得した前記オリジナルデータのハッシュ値を検証ハッシュ値として取得させ、
前記ブロックチェーンから取得した前記オリジナルハッシュ値と前記検証ハッシュ値とを比較することで、前記記憶装置から取得した前記オリジナルデータが改ざんされているか否かを検証させ、
前記記憶装置から取得した前記オリジナルデータが改ざんされていないと判断すると、当該オリジナルデータを提供させる、データ管理システム。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2021年4月6日に出願された米国仮出願番号63/171,328に基づくもので、ここにその記載内容を援用する。
【技術分野】
【0002】
本開示は、ブロックチェーンを用いてデータを管理する技術に関する。
【背景技術】
【0003】
非特許文献1には、マルチメディアデータの管理システムが開示されている。非特許文献1の管理システムでは、保存データの編集履歴情報をブロックチェーン上に保存することで、保存データの改ざん検知を可能にしている。
【先行技術文献】
【非特許文献】
【0004】
【文献】The Multimedia Blockchain: A Distributed and Tamper-Proof Media Transaction Framework
【発明の概要】
【0005】
非特許文献1では、保存データ提供時に行われる改ざんの検証について言及されているものの、改ざんの有無を効率よく検証できない問題があった。
【0006】
本開示の第1態様によるデータ管理システムは、保存データの改ざん有無を検証可能なデータ管理システムであって、対象物に関するデータをオリジナルデータとして保存する記憶装置と、オリジナルデータに関する情報を記録するブロックチェーンを保存する少なくとも1つのノードと、を備える。少なくとも1つのノードは、プロセッサとメモリとを備える。メモリは、コンピュータ読み取り可能な命令を記憶し、命令は、プロセッサにより実行された場合に、プロセッサに、オリジナルデータを保存する際に、データの各種属性とデータの各種属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リストから、オリジナルデータの属性に対応するハッシュ関数を選択させることを含む。命令は、プロセッサに、選択されたハッシュ関数を用いて、オリジナルデータのハッシュ値をオリジナルハッシュ値として取得させることを含む。命令は、プロセッサに、オリジナルハッシュ値と、選択されたハッシュ関数を特定するハッシュ関数特定情報と、をブロックチェーン上に保存させることを含む。
【0007】
本開示の第1態様によるデータ管理システムは、保存データの改ざん有無を検証可能なデータ管理システムであって、対象物に関するデータをオリジナルデータとして保存する記憶装置と、オリジナルデータに関する情報を記録するブロックチェーンを保存する少なくとも1つのノードと、を備える。少なくとも1つのノードは、プロセッサとメモリとを備える。メモリは、コンピュータ読み取り可能な命令を記憶し、命令は、プロセッサにより実行された場合に、プロセッサに、オリジナルデータを保存する際に、データの各種属性とデータの各種属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リストから、オリジナルデータの属性に対応するハッシュ関数を選択させることを含む。命令は、プロセッサに、選択されたハッシュ関数を用いて、オリジナルデータのハッシュ値をオリジナルハッシュ値として取得させることを含む。命令は、プロセッサに、オリジナルハッシュ値と、選択されたハッシュ関数を特定するハッシュ関数特定情報と、をブロックチェーン上に保存させ、オリジナルデータをオリジナルハッシュ値と関連付けて記憶装置に保存させ、要求データが要求された際に、当該要求データに対応するオリジナルデータを、ブロックチェーンから取得したオリジナルハッシュ値を用いて記憶装置から取得させ、要求データに対応するオリジナルデータのオリジナルハッシュ値とハッシュ関数特定情報とを、ブロックチェーンから取得させ、ハッシュ関数特定情報で特定されるハッシュ関数を用いて、記憶装置から取得したオリジナルデータのハッシュ値を検証ハッシュ値として取得させ、ブロックチェーンから取得したオリジナルハッシュ値と検証ハッシュ値とを比較することで、記憶装置から取得したオリジナルデータが改ざんされているか否かを検証させ、記憶装置から取得したオリジナルデータが改ざんされていないと判断した場合に、当該オリジナルデータを提供させることを含む。
本開示の第2態様によるデータ管理システムは、保存データの改ざん有無を検証可能なデータ管理システム(1)であって、対象物に関するデータをオリジナルデータとして保存する記憶装置(3)と、オリジナルデータに関する情報を記録するブロックチェーン(591)を保存する少なくとも1つのノード(2)と、を備え、少なくとも1つのノードは、プロセッサ(21)とメモリ(22)とを備え、メモリは、コンピュータ読み取り可能な命令を記憶し、オリジナルデータは、非公開データを含み、命令は、プロセッサにより実行された場合に、プロセッサに、オリジナルデータを保存する際に、データの各種属性とデータの各種属性に応じた複数のハッシュ関数とを対応付けたハッシュ関数リスト(7)から、オリジナルデータの属性に対応するハッシュ関数を選択させ、選択されたハッシュ関数を用いて、オリジナルデータのハッシュ値をオリジナルハッシュ値(822)として取得させ、オリジナルデータから非公開データを除いた公開データに基づいて、オリジナルハッシュ値を取得させ、オリジナルハッシュ値と、選択されたハッシュ関数を特定するハッシュ関数特定情報(821)と、をブロックチェーン上に保存させ、データ要求時に、要求されたデータである要求データに対応するオリジナルデータを、記憶装置から取得させ、要求データに対応するオリジナルデータのオリジナルハッシュ値とハッシュ関数特定情報とを、ブロックチェーンから取得させ、ハッシュ関数特定情報で特定されるハッシュ関数を用いて、記憶装置から取得したオリジナルデータのハッシュ値を検証ハッシュ値として取得させ、ブロックチェーンから取得したオリジナルハッシュ値と検証ハッシュ値とを比較することで、記憶装置から取得したオリジナルデータが改ざんされているか否かを検証させ、記憶装置から取得したオリジナルデータが改ざんされていないと判断した場合に、当該オリジナルデータを提供させる。
【0008】
本開示の第3態様によるデータ管理方法は、保存データの改ざん有無を検証可能なデータ管理方法であって、対象物に関するデータをオリジナルデータとして記憶装置に保存することを含む。データ管理方法は、データの各種属性とデータの各種属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リストから、オリジナルデータの属性に対応するハッシュ関数を選択することを含む。データ管理方法、は選択されたハッシュ関数を用いて、オリジナルデータのハッシュ値をオリジナルハッシュ値として取得することを含む。データ管理方法、オリジナルハッシュ値と、選択されたハッシュ関数を特定するハッシュ関数特定情報と、をブロックチェーン上に保存し、オリジナルデータをオリジナルハッシュ値と関連付けて記憶装置に保存し、要求データが要求された際に、当該要求データに対応するオリジナルデータを、ブロックチェーンから取得したオリジナルハッシュ値を用いて記憶装置から取得し、要求データに対応するオリジナルデータのオリジナルハッシュ値とハッシュ関数特定情報とを、ブロックチェーンから取得し、ハッシュ関数特定情報で特定されるハッシュ関数を用いて、記憶装置から取得したオリジナルデータのハッシュ値を検証ハッシュ値として取得し、ブロックチェーンから取得したオリジナルハッシュ値と検証ハッシュ値とを比較することで、取得したオリジナルデータが改ざんされているか否かを検証し、記憶装置から取得したオリジナルデータが改ざんされていないと判断した場合、当該オリジナルデータを提供することを含む。
本開示の第4態様によるデータ管理方法は、保存データの改ざん有無を検証可能なデータ管理方法であって、対象物に関するデータをオリジナルデータとして記憶装置(3)に保存し、データの各種属性とデータの各種属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リスト(7)から、オリジナルデータの属性に対応するハッシュ関数を選択し、選択されたハッシュ関数を用いて、オリジナルデータのハッシュ値をオリジナルハッシュ値(822)として取得し、非公開データを含むオリジナルデータから当該非公開データを除いた公開データに基づいて、オリジナルハッシュ値を取得し、オリジナルハッシュ値と、選択されたハッシュ関数を特定するハッシュ関数特定情報(821)と、をブロックチェーン(591)上に保存し、データ要求時に、要求されたデータである要求データに対応するオリジナルデータを、記憶装置から取得し、要求データに対応するオリジナルデータのオリジナルハッシュ値とハッシュ関数特定情報とを、ブロックチェーンから取得し、ハッシュ関数特定情報で特定されるハッシュ関数を用いて、記憶装置から取得したオリジナルデータのハッシュ値を検証ハッシュ値として取得し、ブロックチェーンから取得したオリジナルハッシュ値と検証ハッシュ値とを比較することで、取得したオリジナルデータが改ざんされているか否かを検証し、記憶装置から取得したオリジナルデータが改ざんされていないと判断した場合、当該オリジナルデータを提供する。
【図面の簡単な説明】
【0009】
本開示の第5態様によるデータ管理プログラムは、少なくとも1つのコンピュータ読み取り可能な非遷移記憶媒体に記憶され、命令を含むプログラムであり、命令は、少なくとも1つのプロセッサにより実行された場合に、少なくとも1つのプロセッサに、オリジナルデータを保存する際に、対象物に関するデータをオリジナルデータとして記憶装置に保存させることを含む。命令は、少なくとも1つのプロセッサに、データの各種属性と、データの各属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リストから、オリジナルデータの属性に対応するハッシュ関数を選択させることを含む。命令は、少なくとも1つのプロセッサに、選択されたハッシュ関数を用いて、オリジナルデータのハッシュ値をオリジナルハッシュ値として取得させることを含む。命令は、少なくとも1つのプロセッサに、オリジナルハッシュ値と、選択されたハッシュ関数を特定するハッシュ関数特定情報と、をブロックチェーン上に保存させ、オリジナルデータをオリジナルハッシュ値と関連付けて記憶装置に保存させ、要求データが要求された際に、当該要求データに対応するオリジナルデータを、ブロックチェーンから取得したオリジナルハッシュ値を用いて記憶装置から取得させ、要求データに対応するオリジナルデータのオリジナルハッシュ値とハッシュ関数特定情報とを、ブロックチェーンから取得させ、ハッシュ関数特定情報で特定されるハッシュ関数を用いて、記憶装置から取得したオリジナルデータのハッシュ値を検証ハッシュ値として取得させ、ブロックチェーンから取得したオリジナルハッシュ値と検証ハッシュ値とを比較することで、記憶装置から取得したオリジナルデータが改ざんされているか否かを検証させ、記憶装置から取得したオリジナルデータが改ざんされていないと判断すると、当該オリジナルデータを提供させる。
本開示の第6態様によるデータ管理プログラムは、少なくとも1つのコンピュータ読み取り可能な非遷移記憶媒体に記憶され、命令を含むプログラムであり、命令は、少なくとも1つのプロセッサ(21)により実行された場合に、少なくとも1つのプロセッサに、データを保存する際に、対象物に関するデータをオリジナルデータとして記憶装置(3)に保存させ、データの各種属性と、データの各属性に対応付けられた複数のハッシュ関数とを対応付けたハッシュ関数リスト(7)から、オリジナルデータの属性に対応するハッシュ関数を選択させ、選択されたハッシュ関数を用いて、オリジナルデータのハッシュ値をオリジナルハッシュ値(822)として取得させ、非公開データを含むオリジナルデータから当該非公開データを除いた公開データに基づいて、オリジナルハッシュ値を取得させ、オリジナルハッシュ値と、選択されたハッシュ関数を特定するハッシュ関数特定情報(821)と、をブロックチェーン(591)上に保存させ、データ要求時に、要求されたデータである要求データに対応するオリジナルデータを、記憶装置から取得させ、要求データに対応するオリジナルデータのオリジナルハッシュ値とハッシュ関数特定情報とを、ブロックチェーンから取得させ、ハッシュ関数特定情報で特定されるハッシュ関数を用いて、記憶装置から取得したオリジナルデータのハッシュ値を検証ハッシュ値として取得させ、ブロックチェーンから取得したオリジナルハッシュ値と検証ハッシュ値とを比較することで、記憶装置から取得したオリジナルデータが改ざんされているか否かを検証させ、記憶装置から取得したオリジナルデータが改ざんされていないと判断すると、当該オリジナルデータを提供させる。
【発明を実施するための形態】
【0010】
以下、本開示の実施形態を図面に基づき説明する。
【0011】
図1に示す本開示のデータ管理システム1は、ネットワークNWに参加する複数の事業体10にそれぞれ保有される対象物に関する各種データを、事業体10間で相互に利用可能にしつつ管理するシステムである。一例として、対象物が車両である場合には、車両の整備業者、自動車保険会社、車両メーカー、中古車買取業者等の事業体10がネットワークNWに参加する。この場合、各事業体10は、それぞれが管理する記憶装置3に車両に関するデータを保存する。より具体的には、例えば整備業者は、自身が実施した車両の整備履歴や外観写真、車検データ等の車両整備に関するデータを車両ごとに保存する。また、自動車保険会社は、車両の事故状況や保険金による支払額、保険契約の内容などの保険情報を保存する。更に、車両メーカーは、車両の走行履歴やエンジン・モーターなどの作動状態など、車両に関する情報を自身の記憶装置3に保存する。
【0012】
他の一例として、対象物が食料品である場合には、農家、物流企業、食料品販売企業等が事業体10としてネットワークNWに参加する。この場合、各事業体10は、それぞれが管理する記憶装置3に食料品に関するデータを保存する。より具体的には、例えば農家は、生産食料品の写真や生産地情報等、物流企業は運送データ等を、自身が管理する記憶装置3に保存する。なお、本開示では、各事業体10にデータを提供するユーザーを、データ提供者と称する。また、記憶装置3に保存されたデータを利用するユーザーを、データ利用者と称する。データ提供者及びデータ利用者は、例えば、各事業体10の構成員(社員)等である。ただし、データ提供者やデータ利用者としては、例えば車両のオーナーや、農作物の消費者等、事業体10の構成員以外の者であって、本システム1の参加者以外の個人や団体であってもよい。各事業体10の記憶装置3に保存されたデータは、データ利用者の要求に応じてネットワークNWを介して取得され、データ利用者に提供される。
【0013】
図1に示されるように、各事業体10は、ネットワークNWに接続され、ブロックチェーンシステムを構成するノード2と、当該ブロックチェーンシステムとは独立した記憶装置3とを含んでいる。各事業体10のノード2は、他の事業体10のノード2とネットワークNWを介して相互に通信可能に接続されている。尚、
図1では4つの事業体10を例示的に図示しているが、データ管理システム1を構築する事業体10の数は2以上であればよい。
【0014】
データ管理システム1は、複数の事業体10の各記憶装置3に保存された対象物に関するデータを管理する。対象物に関するデータは、複数の事業体10間でやり取りされる、画像データやテキストデータ等、各種のデータ属性を持つデータである。データ属性とは、データ形式やデータの圧縮形式等である。
【0015】
図2に示すようにノード2は、プロセッサ21、RAM22、ストレージ23及び入出力インターフェース24等を含む制御回路を主体に構成されている。プロセッサ21は、RAM22と接続された演算処理のためのハードウェアであり、RAM22へのアクセス処理により種々のプログラムを実行可能である。入出力インターフェース24は、ノード2が他のノード2、ビジネス端末4、及び後述する外部ハッシュ値計算装置9と通信するための回路モジュールである。ストレージ23には、プロセッサ21によって実行されるデータ管理プログラムとして、提供されたデータを保存するデータ保存プログラム、及びデータ利用者からのデータ提供要求に応じて保存データを提供するデータ提供プログラムが格納されている。また、ストレージ23には、ネットワークNWへの参加時に付与され、自身がデータへのアクセス権限を有するノード2であることを示す認証情報が格納されている。さらにストレージ23には、
図3に示すハッシュ関数リスト7が格納されている。
【0016】
このハッシュ関数リスト7には、データの各種属性と、データの各種属性に対応する複数のハッシュ関数を示す情報が予め保存されている。一般的に、ハッシュ関数によるデータのハッシュ値算出効率は、データの属性に応じて異なる。そこでハッシュ関数リスト7では、データの各種属性毎にハッシュ値計算が効率的なハッシュ関数が対応付けられている。これにより、データの属性に応じた効率的なハッシュ関数を、ハッシュ関数リスト7を参照することで選択可能となっている。すなわち、本開示に係るデータ管理システム1では、ハッシュ関数リスト7を用いて、データ属性に合わせた最適なハッシュ関数を選択し得るようになっている。後述するように、ハッシュ関数リスト7からハッシュ関数が選択されると、選択されたハッシュ関数を指定するハッシュ関数特定情報821が生成される。尚、ハッシュ関数リスト7の内容は、ハッシュ関数が更新されたり、新たなハッシュ関数が開発されたりした場合に伴って随時更新されるようになっている。
【0017】
図3に示す通り本実施形態のハッシュ関数リスト7には、離散コサイン変換(DCT)や離散ウェーブレット変換(DWT)等によって圧縮されたデータに対応するハッシュ関数として、知覚ハッシュが設定されている。より具体的には、知覚ハッシュとして、例えばpHash,dHash等が挙げられる。尚、当該圧縮されたデータは、オリジナルのデータから抽出された特徴量からなるデータと言うことができる。また、ハッシュ関数リスト7には、画像データのデータ形式であるPNG,JPEG、映像データのデータ形式であるMP4,AVI,FLV、及び、音声データのデータ形式であるMP3,WAVE,AACに対して、MD5がハッシュ関数として指定されている。更に、ハッシュ関数リスト7には、特殊文書データのデータ形式であるPDF,WORD,PPT、及び、テキストデータ(TEXT)に対応するハッシュ関数として、SHA-1が指定されている。尚、
図3に示すデータ属性とハッシュ関数との対応関係はあくまで一例であって、ハッシュ関数リスト7の内容はこれに限定されるものではない。
【0018】
記憶装置3は、対応するノード2に提供された対象物に関するデータを、データのハッシュ値に対応付けて保存する。これにより記憶装置3は、後述するオリジナルハッシュ値822を検索キーとして用いることで、オリジナルハッシュ値822に対応する保存データを検索可能に構成されている。
【0019】
ビジネス端末4は、それぞれの事業体10に保有され、データの保存時や要求時に利用される。ビジネス端末4は、例えばスマートフォン、タブレット端末、及び専用端末等のコンピュータなどの電子機器である。ビジネス端末4は、事業体10のノード2に接続され、データ提供者による操作に応じて、データ等をノード2に送信する。また、ビジネス端末4は、データ利用者による操作に応じて、データの提供を要求するデータ要求クエリを当該事業体10のノード2へ送信する。データ要求クエリには、ブロックチェーン591からブロック情報を抽出するための情報等が含まれている。
【0020】
図1に示す外部ハッシュ値計算装置9は、図示しないプロセッサ及びメモリを備え、各種ハッシュ関数を保存する。外部ハッシュ値計算装置9は、ノード2からデータ及び選択されたハッシュ関数を指定する情報(ハッシュ関数特定情報821)を受信する。そして、外部ハッシュ値計算装置9は、指定されたハッシュ関数を用いて受信したデータのハッシュ値を算出する。さらに外部ハッシュ値計算装置9は、算出したハッシュ値をノード2へ送信する。
【0021】
ノード2は、データ保存プログラムを実行することにより、オリジナルデータ処理部51、オリジナルデータ保存部52、及びチェーン生成部53等の機能部として機能する。加えてノード2は、データ提供プログラムを実行することにより、ブロック抽出部61、保存データ取得部62、取得データ処理部63、及びデータ検証部64等の機能部として機能する。これら機能部の機能については、以下のデータ保存処理及びデータ提供処理の説明に合わせて説明を行う。
【0022】
(データ保存処理)
データ保存処理では、
図4に示すように、提供されたデータを記憶装置3に保存するための処理が行われる。このデータ保存処理は、データ提供者によるビジネス端末4を用いたノード2へのデータ提供をトリガとして開始される。以下の説明では、提供されたデータをオリジナルデータと呼ぶ。
【0023】
図4に示すデータ保存の過程では、例えば事業体10である車両の整備業者が、整備記録として車両の外観写真を自身の記憶装置3に保存する場合を想定する。この場合、データ提供者は事業体10である整備業者の社員である。または、事業体10である農家が、生産した食料品の写真を記憶装置3に保存する場合が考えられる。この場合、データ提供者は農家となる。
【0024】
S501においてオリジナルデータ処理部51は、データ提供者からビジネス端末4を介してデータを受信すると、提供されたオリジナルデータの属性に基づいて、ハッシュ関数リスト7からハッシュ関数を選択する。例えば、オリジナルデータがJPEG形式による画像データである場合、ハッシュ関数として「MD5」が選択される。S502においてオリジナルデータ処理部51は、選択したハッシュ関数を特定するハッシュ関数特定情報821を生成する。S503においてオリジナルデータ処理部51は、個人を特定可能な個人情報や、クレジットカード番号等の金融情報など、プライバシーに関わる情報(以下、非公開データと称する)をオリジナルデータから除去し、公開データとして取得する。尚、公開データを取得するS503の処理は、S501の処理よりも前に実施してもよい。さらにS504においてオリジナルデータ処理部51は、S502にて生成したハッシュ関数特定情報821を用いて、公開データのハッシュ値をオリジナルハッシュ値822として取得する。具体的には、オリジナルデータ処理部51は、公開データとS502にて生成したハッシュ関数特定情報821とを、外部ハッシュ値計算装置9に送信する。外部ハッシュ値計算装置9は、受信したハッシュ関数特定情報821で特定されるハッシュ関数を用いて、公開データのハッシュ値をオリジナルハッシュ値822として算出する。例えば、オリジナルデータがJPEG形式による画像データである場合、外部ハッシュ値計算装置9は、ハッシュ関数MD5を用いて公開データのハッシュ値を算出する。そして、外部ハッシュ値計算装置9が算出したオリジナルハッシュ値822をノード2へ送信することで、オリジナルデータ処理部51は、オリジナルハッシュ値822を取得する。
【0025】
S505においてオリジナルデータ保存部52は、非公開データを含むオリジナルデータを、S504で取得されたオリジナルハッシュ値822と対応付けて、ノード2に対応する記憶装置3に保存する。S506においてチェーン生成部53は、
図5に示すように、S502で生成されたハッシュ関数特定情報821、S504で取得されたオリジナルハッシュ値822、及び、保存ノード特定情報823等のメタデータをトランザクション情報82とするブロック8(
図5参照)を生成する。保存ノード特定情報823は、他の事業体10がデータを利用する際に、オリジナルデータが保存された事業体10(より詳しくは、ノード2)を特定するために使用される。そして、生成したブロック8をブロックチェーンデータベース59内のブロックチェーン591に保存する。また、ブロック8は、ブロック8自身に関するデータを、ブロックヘッダ81として有している。ここで、生成されたブロック8は、ネットワークNWに接続された各ノード2による公知の認証過程を経て、各ノード2に提供される。認証されたブロック8が提供された各ノード2は、ブロックチェーンデータベース59に保存されているブロックチェーン591に、ブロック8を保存する。ブロックチェーンデータベース59は、ストレージ23内に設けられた記憶領域である。こうして各ノード2において共通のブロックチェーン591が共有される。
【0026】
以上の処理によれば、オリジナルデータの属性に応じた最適なハッシュ関数がハッシュ関数リスト7を用いて選択される。そして、選択されたハッシュ関数を用いて、オリジナルデータのハッシュ値が算出される。これによれば、異なるデータ属性を有する多様なオリジナルデータに対して、効率的なハッシュ値計算が可能となる。ひいては、データ保存時に、記憶装置3へのオリジナルデータの保存を短時間で行うことが可能となる。
【0027】
また、オリジナルデータがオリジナルハッシュ値822と対応付けられた状態で、記憶装置3に保存される。これによれば、オリジナルハッシュ値822を検索キーとして用いることで、記憶装置3に保存されたオリジナルデータを効率的に検索・取得することが可能となる。
【0028】
さらに、オリジナルハッシュ値822および当該ハッシュ値822の算出に用いたハッシュ関数を特定するハッシュ関数特定情報821が、複数のノードで共有されたブロックチェーン591上に保存される。これによれば、オリジナルハッシュ値822やハッシュ関数特定情報821を改ざんが困難な状態で保存することが可能となる。データ提供時に、オリジナルハッシュ値822の算出に用いたハッシュ関数と同じハッシュ関数を用いた改ざん検証が可能となる。
【0029】
(データ提供処理)
次に、
図6を用いて、データ提供処理について説明する。データ提供処理では、データ利用者から所定の対象物に関するデータの提供が要求されると、当該要求されたデータを記憶する記憶装置3から当該データが取り出され、データ利用者に提供される。ここで、データ提供処理では、複数のノード2が連携することで、要求されたデータが保存された記憶装置3の特定と、データの抽出及び提供が実施される。このデータ提供処理は、データ利用者によるビジネス端末4を用いたノード2へのデータ要求クエリ送信をトリガとして開始される。尚、以下の説明では、データ利用者から要求された情報に対応するデータを要求データと称する。
【0030】
図6に示すデータ提供処理では、一例として、所定の事業体10(以下、第1事業体10aとする)が、他の事業体10(以下、第2事業体10bとする)に保存されたデータを要求する場合について説明する。より具体的には、第1ノード2aを管理する第1事業体10aである中古車買取業者が、第2事業体10bである車両の整備業者の記憶装置3に保存された車両の外観写真データ、車検情報等の取得を要求する場合が想定される。この場合、データ利用者は、例えば中古車買取業者の社員が該当する。または、第1事業体10aとしてのスーパー等の食料品販売業者が、第2事業体10bである農家等の食料品生産者が管理する記憶装置3に保存された食料品写真、食料品生産地の写真等の取得を要求する場合が考えられる。この場合、データ利用者は、例えば食料品販売業者の社員が該当する。尚、以下の説明では、第1事業体10aのノード2を第1ノード2a、第2事業体10bのノード2を第2ノード2bとして称することとする。
【0031】
S601において第1ノード2aのブロック抽出部61は、データ要求クエリを用いて、要求データに対応するオリジナルデータのトランザクション情報82をブロックチェーン591から抽出する。当該トランザクション情報82は、
図5に示す通り、ハッシュ関数特定情報821、オリジナルハッシュ値822、及び保存ノード特定情報823を含んでいる。S602において第1ノード2aのブロック抽出部61は、S601で取得したオリジナルハッシュ値822を、自身がデータへのアクセス権限を有するノード2であることを示す認証情報と併せて、保存ノード特定情報823から特定される第2ノード2bへと送信する。S603において第2ノード2bの保存データ取得部62は、受信したオリジナルハッシュ値822を検索キーとして用いることで、要求データに対応するオリジナルデータを記憶装置3から取得する。S604において第2ノード2bの取得データ処理部63は、S603で取得したオリジナルデータから非公開データを削除して公開データを取得する。S605において第2ノード2bの取得データ処理部63は、S604で取得した公開データを第1ノード2aへと送信する。S606において第1ノード2aのデータ検証部64は、S601で取得したハッシュ関数特定情報821で特定されるハッシュ関数を用いて、公開データのハッシュ値を検証ハッシュ値として取得する。具体的には、第1ノード2aのデータ検証部64は、公開データとS601で取得したハッシュ関数特定情報821とを、外部ハッシュ値計算装置9に送信する。外部ハッシュ値計算装置9は、受信したハッシュ関数特定情報821で特定されるハッシュ関数を用いて、公開データのハッシュ値を検証ハッシュ値として算出する。そして、外部ハッシュ値計算装置9が算出した検証ハッシュ値を第1ノード2aへ送信することで、データ検証部64は、検証ハッシュ値を取得する。S607において第1ノード2aのデータ検証部64は、S601においてブロックチェーンから取得したオリジナルハッシュ値822と、S606で取得した検証ハッシュ値とを比較することで、公開データが改ざんされているか否かを判断する。データ検証部64は、オリジナルハッシュ値822と検証ハッシュ値とが一致している場合、公開データが改ざんされていないと判断する。一方、オリジナルハッシュ値822と検証ハッシュ値とが異なっている場合、公開データが改ざんされていると判断する。
【0032】
公開データが改ざんされていないと判断された場合のS608において第1ノード2aのデータ検証部64は、第1事業体10aのビジネス端末4に公開データを送信する。一方、公開データが改ざんされていると判断した場合のS609において第1ノード2aのデータ検証部64は、第1事業体10aのビジネス端末4にデータ取得失敗通知を送信する。
【0033】
以上の処理によれば、第2ノード2bに対応する記憶装置3に保存されたデータを、第2ノード2bと異なるノード2である第1ノード2aに提供することができる。加えて、ブロックチェーン591が各ノード2によって参照可能な状態で保存されているため、第1ノード2aは、改ざんリスクの低いブロックチェーン591上のオリジナルハッシュ値822及びハッシュ関数特定情報821を用いて、取得した公開データの改ざんの有無を検証することができる。
【0034】
本実施形態のデータ管理システム1によれば、ブロックチェーン591上に保存されたハッシュ関数特定情報821で特定されるハッシュ関数を用いて、取得された公開データの改ざん有無が検証される。これによれば、データ保存時と同じ効率的なハッシュ関数を用いて検証ハッシュ値を算出することができる。ひいては、データ提供時における公開データの改ざん検証を効率的に実施することが可能となり、データ利用者へのデータの提供を短時間で行うことができる。
【0035】
本実施形態のデータ管理システム1によれば、外部ハッシュ値計算装置9によって、データのハッシュ値が算出される。これによれば、ノード2の処理負荷を軽減することができる。さらに、ハッシュ関数の更新があった場合にも、外部ハッシュ値計算装置9に保存されたハッシュ関数を更新することで共通のハッシュ関数を用いたハッシュ値算出を行うことができる。したがって、各ノード2に保存されたハッシュ関数リスト7が同期されていなくても、オリジナルハッシュ値822及び検証ハッシュ値の算出時に共通のハッシュ関数を用いることができる。
【0036】
以上、本開示の実施形態について説明したが、本開示は、上記実施形態に限定して解釈されるものではなく、本開示の要旨を逸脱しない範囲内において種々の実施形態及び組み合わせに適用することができる。
【0037】
上記実施形態によるデータ提供処理では、第1ノード2aと第2ノード2bが異なるノード2である例を説明した。しかし、本開示のデータ提供処理において、第1ノード2a及び第2ノード2bが同じノード2であってもよい。
【0038】
上記実施形態のハッシュ関数リスト7は、データ属性毎にハッシュ関数を示す情報を保存している。しかし、本開示のハッシュ関数リスト7は、ハッシュ関数特定情報821を保存してもよい。
【0039】
上記実施形態では、各ノード2がハッシュ関数リスト7を保存している。しかし、本開示は、各ノード2がハッシュ関数リスト7を保存する代わりに、外部ハッシュ値計算装置9がハッシュ関数リスト7を保存してもよい。この場合、各ノード2は、公開データのみを外部ハッシュ値計算装置9に送信することとなる。またこの場合、外部ハッシュ値計算装置9は、各ノード2から送信された公開データの属性に対応するハッシュ関数をハッシュ関数リスト7から選択して、公開データのハッシュ値を算出することとなる。
【0040】
上述した実施形態(
図3)に示すハッシュ関数リスト7は、ハッシュ値計算が最も効率的になるようデータ属性およびハッシュ関数の組み合わせが設定されていた。しかしながら、ハッシュ関数リスト7の内容はこれに限定されるものではない。例えば、ロバスト性を重視する観点から、ハッシュ関数リスト7のハッシュ関数を変更することもできる。具体的には、
図7に示すように、離散コサイン変換(DCT)や離散ウェーブレット変換(DWT)等によって圧縮されたデータに対応するハッシュ関数として、SHA-1を指定してもよい。また、ハッシュ関数リスト7には、画像データのデータ形式であるPNG,JPEG、映像データのデータ形式であるMP4,AVI,FLV、及び、音声データのデータ形式であるMP3,WAVE,AACに対応するハッシュ関数として、SHA-256を指定してもよい。更に、ハッシュ関数リスト7には、特殊文書データのデータ形式であるPDF,WORD,PPT、及び、テキストデータに対応するハッシュ関数として、SHA-512を指定してもよい。
【0041】
上記実施形態によるデータ管理システム1では、ノード2の外部に配置された外部ハッシュ値計算装置9によって、オリジナルハッシュ値822及び検証ハッシュ値を算出した。しかしながら、ハッシュ値の計算をノード2の外部で必ずしも行う必要はなく、例えば、
図8に示すように、外部ハッシュ値計算装置9を用いずに、ハッシュ値計算を行う機能部としてのハッシュ値計算部54を各ノード2の内部に設けてもよい。この場合、ハッシュ関数リスト7において各種データ属性に対応付けられた複数のハッシュ関数がストレージ23に保存するとともに、ハッシュ値計算部54は、ストレージ23に保存されたハッシュ関数を用いてオリジナルハッシュ値822及び検証ハッシュ値を算出するように構成される。この構成によれば、外部ハッシュ値計算装置9に不具合が起きたり、ノード2と外部ハッシュ値計算装置9との接続に問題が生じたりして、ハッシュ値の計算ができなくなる事態を回避し得る。