(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】情報提供システム、情報提供方法、及び、プログラム
(51)【国際特許分類】
G06F 21/62 20130101AFI20241203BHJP
G06F 21/64 20130101ALI20241203BHJP
G06Q 50/04 20120101ALI20241203BHJP
【FI】
G06F21/62
G06F21/64
G06Q50/04
(21)【出願番号】P 2022569410
(86)(22)【出願日】2020-12-17
(86)【国際出願番号】 JP2020047082
(87)【国際公開番号】W WO2022130551
(87)【国際公開日】2022-06-23
【審査請求日】2023-06-12
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】田邉 泰彦
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2020-010299(JP,A)
【文献】特開2007-074233(JP,A)
【文献】特許第6494004(JP,B1)
【文献】特表2020-508593(JP,A)
【文献】特開2020-025232(JP,A)
【文献】特表2018-516030(JP,A)
【文献】国際公開第2019/054043(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G06F 21/64
G06Q 50/04
(57)【特許請求の範囲】
【請求項1】
情報蓄積サーバと情報提供サーバを含む情報提供システムであって、
前記情報蓄積サーバは、
パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得手段と、
前記第1情報取得手段が取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信手段と、
前記第1の情報の前記プライベート情報を蓄積する第1情報記憶手段と、
を備え、
前記情報提供サーバは、
前記情報蓄積サーバから前記第1の情報を取得する第2情報取得手段と、
前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換手段と、
前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成手段と、
前記第2の情報をブロックチェーンによる分散台帳に登録する登録手段と、
前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信手段と、
前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信手段と、
を備え、
前記第2情報送信手段は、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記第1情報取得手段に蓄積されている複数の前記プライベート情報を前記第1情報記憶手段から取得し、
前記第1情報記憶手段から取得した複数の前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と複数の前記第2のハッシュ値を比較し、
前記検索キーに対応する前記パブリック情報と、前記第1のハッシュ値と一致している前記第2のハッシュ値に対応する前記プライベート情報と、を前記送信元に送信
し、
前記第2情報送信手段は、
前記第1のハッシュ値と一致している前記第2のハッシュ値が複数ある場合、前記第1情報記憶手段に蓄積されている前記プライベート情報が改竄されていると判定する、
情報提供システム。
【請求項2】
前記第2情報送信手段は、
前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有しない場合、前記検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報の前記パブリック情報を前記分散台帳から取得し、
前記分散台帳から取得した前記パブリック情報を前記送信元に送信する、
請求項1に記載の情報提供システム。
【請求項3】
情報蓄積サーバと情報提供サーバを含む情報提供システムを用いた情報提供方法であって、
前記情報蓄積サーバが、パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得段階と、
前記情報蓄積サーバが、前記第1情報取得段階で取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信段階と、
前記情報蓄積サーバが、前記第1の情報の前記プライベート情報を蓄積する第1情報記憶段階と、
前記情報提供サーバが、前記情報蓄積サーバから前記第1の情報を取得する第2情報取得段階と、
前記情報提供サーバが、前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換段階と、
前記情報提供サーバが、前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成段階と、
前記情報提供サーバが、前記第2の情報をブロックチェーンによる分散台帳に登録する登録段階と、
前記情報提供サーバが、前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信段階と、
前記情報提供サーバが、前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信段階と、
を含み、
前記第2情報送信段階では、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記情報蓄積サーバに蓄積されている複数の前記プライベート情報を前記情報蓄積サーバから取得し、
前記情報蓄積サーバから取得した複数の前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と複数の前記第2のハッシュ値を比較し、
前記検索キーに対応する前記パブリック情報と、前記第1のハッシュ値と一致している前記第2のハッシュ値に対応する前記プライベート情報と、を前記送信元に送信
し、
前記第2情報送信段階では、
前記第1のハッシュ値と一致している前記第2のハッシュ値が複数ある場合、前記第1情報記憶段階で蓄積した前記プライベート情報が改竄されていると判定する、
情報提供方法。
【請求項4】
請求項3に記載の情報提供方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報提供システム、情報提供方法、及び、非一時的なコンピュータ可読媒体に関する。
【背景技術】
【0002】
特許文献1は、ブロックチェーンによる分散台帳システムを構築する複数のトレーサビリティ情報管理サーバを開示している。特許文献1では、トレーサビリティ情報を製品の所有者以外の者が無制限にアクセスできると個人情報保護の観点から好ましくないとした上で、ユーザクライアント毎に個別のアクセス権限を付与する。各トレーサビリティ情報管理サーバは、ユーザクライアントのアクセス権限に応じて、トレーサビリティ情報管理サーバに登録されているトレーサビリティ情報の一部をユーザクライアントに送信する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、製品のライフサイクルに関する情報を分散台帳に登録することにより、当該情報の真正性を確保できることは周知の通りである。
【0005】
製品のライフサイクルに関する情報は、典型的には、組織名情報、製品型番情報、シリアル番号情報、プロセス名情報、ワークフロー名情報、タイムスタンプ情報、当該ワークフローの承認者情報及び作業者情報、当該ワークフローの作業手順情報及び作業結果情報を含み得る。
【0006】
これらの情報のうち、組織名情報、製品型番情報、シリアル番号情報、プロセス名情報、ワークフロー名情報、タイムスタンプ情報は、不特定の者が取得可能としても差し支えない情報と言える。これに対し、当該ワークフローの承認者情報及び作業者情報、当該ワークフローの作業手順情報及び作業結果情報は、技術情報及び個人情報に該当するので、特定の者しか取得できないようにしたい。端的に言えば、前者はアクセス制限のないパブリック情報であり、後者はアクセス制限のあるプライベート情報とも言える。このように背品ライフサイクルに関する情報は、公開範囲が異なる2種類の情報、即ち、パブリック情報とプライベート情報を含む。
【0007】
しかしながら、プライベート情報をパブリック情報と共に分散台帳に登録した場合、プライベート情報の漏洩のリスクがある。
【0008】
ここで、特許文献1のように、分散台帳にアクセスするユーザクライアント毎に個別のアクセス権限を設定し、アクセス権限に応じてユーザクライアントに送信する情報を限定することが考えられる。この場合でも、プライベート情報が分散台帳に登録されている以上、依然としてプライベート情報の漏洩のリスクを解消することはできない。
【0009】
本開示の目的は、上記の課題に鑑みたものであり、パブリック情報とプライベート情報の真正性を分散台帳により担保すると共に、プライベート情報の漏洩のリスクを抑制する技術を提供することにある。
【課題を解決するための手段】
【0010】
本開示の第1の観点によれば、
情報蓄積サーバと情報提供サーバを含む情報提供システムであって、
前記情報蓄積サーバは、
パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得手段と、
前記第1情報取得手段が取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信手段と、
前記第1の情報を蓄積する第1情報記憶手段と、
を備え、
前記情報提供サーバは、
前記情報蓄積サーバから前記第1の情報を取得する第2情報取得手段と、
前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換手段と、
前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成手段と、
前記第2の情報をブロックチェーンによる分散台帳に登録する登録手段と、
前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信手段と、
前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信手段と、
を備え、
前記第2情報送信手段は、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記検索キーを用いて前記第1情報記憶手段で検索を実行し、
前記検索キーに該当する前記第1の情報を前記第1情報記憶手段から取得し、
前記第1情報記憶手段から検索により取得した前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と前記第2のハッシュ値を比較し、
前記第1のハッシュ値と前記第2のハッシュ値が一致している場合、前記検索キーに対応する前記パブリック情報と、前記第1情報記憶手段から検索により取得した前記プライベート情報と、を前記送信元に送信する、
情報提供システムが提供される。
【0011】
本開示の第2の観点によれば、
情報蓄積サーバと情報提供サーバを含む情報提供システムであって、
前記情報蓄積サーバは、
パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得手段と、
前記第1情報取得手段が取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信手段と、
前記第1の情報の前記プライベート情報を蓄積する第1情報記憶手段と、
を備え、
前記情報提供サーバは、
前記情報蓄積サーバから前記第1の情報を取得する第2情報取得手段と、
前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換手段と、
前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成手段と、
前記第2の情報をブロックチェーンによる分散台帳に登録する登録手段と、
前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信手段と、
前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信手段と、
を備え、
前記第2情報送信手段は、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記第1情報取得手段に蓄積されている複数の前記プライベート情報を前記第1情報記憶手段から取得し、
前記第1情報記憶手段から取得した複数の前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と複数の前記第2のハッシュ値を比較し、
前記検索キーに対応する前記パブリック情報と、前記第1のハッシュ値と一致している前記第2のハッシュ値に対応する前記プライベート情報と、を前記送信元に送信する、
情報提供システムが提供される。
【0012】
本開示の第3の観点によれば、
情報蓄積サーバと情報提供サーバを含む情報提供システムを用いた情報提供方法であって、
前記情報蓄積サーバが、パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得段階と、
前記情報蓄積サーバが、前記第1情報取得段階で取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信段階と、
前記情報蓄積サーバが、前記第1の情報を蓄積する第1情報記憶段階と、
前記情報提供サーバが、前記情報蓄積サーバから前記第1の情報を取得する第2情報取得段階と、
前記情報提供サーバが、前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換段階と、
前記情報提供サーバが、前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成段階と、
前記情報提供サーバが、前記第2の情報をブロックチェーンによる分散台帳に登録する登録段階と、
前記情報提供サーバが、前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信段階と、
前記情報提供サーバが、前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信段階と、
を含み、
前記第2情報送信段階では、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記検索キーを用いて前記情報蓄積サーバで検索を実行し、
前記検索キーに該当する前記第1の情報を前記情報蓄積サーバから取得し、
前記情報蓄積サーバから検索により取得した前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と前記第2のハッシュ値を比較し、
前記第1のハッシュ値と前記第2のハッシュ値が一致している場合、前記検索キーに対応する前記パブリック情報と、前記情報蓄積サーバから検索により取得した前記プライベート情報と、を前記送信元に送信する、
情報提供方法が提供される。
【0013】
本開示の第4の観点によれば、
情報蓄積サーバと情報提供サーバを含む情報提供システムを用いた情報提供方法であって、
前記情報蓄積サーバが、パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得段階と、
前記情報蓄積サーバが、前記第1情報取得段階で取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信段階と、
前記情報蓄積サーバが、前記第1の情報の前記プライベート情報を蓄積する第1情報記憶段階と、
前記情報提供サーバが、前記情報蓄積サーバから前記第1の情報を取得する第2情報取得段階と、
前記情報提供サーバが、前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換段階と、
前記情報提供サーバが、前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成段階と、
前記情報提供サーバが、前記第2の情報をブロックチェーンによる分散台帳に登録する登録段階と、
前記情報提供サーバが、前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信段階と、
前記情報提供サーバが、前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信段階と、
を含み、
前記第2情報送信段階では、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記情報蓄積サーバに蓄積されている複数の前記プライベート情報を前記情報蓄積サーバから取得し、
前記情報蓄積サーバから取得した複数の前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と複数の前記第2のハッシュ値を比較し、
前記検索キーに対応する前記パブリック情報と、前記第1のハッシュ値と一致している前記第2のハッシュ値に対応する前記プライベート情報と、を前記送信元に送信する、
情報提供方法が提供される。
【発明の効果】
【0014】
本開示によれば、パブリック情報とプライベート情報の真正性を分散台帳により担保すると共に、プライベート情報の漏洩のリスクを抑制する。
【図面の簡単な説明】
【0015】
【
図1】情報提供システムの機能ブロック図である。(第1実施形態)
【
図2】情報提供システムの概略図である。(第2実施形態)
【
図3】情報蓄積サーバの機能ブロック図である。(第2実施形態)
【
図4】作業承認情報の一具体例である。(第2実施形態)
【
図5】情報DBに蓄積された複数の作業承認情報の一具体例である。(第2実施形態)
【
図6】情報提供サーバの機能ブロック図である。(第2実施形態)
【
図7】分散台帳に登録されている複数のBC登録情報の一具体例である。(第2実施形態)
【
図8】情報提供システムのシーケンス図である。(第2実施形態)
【
図9】情報提供システムのシーケンス図である。(第2実施形態)
【
図10】情報提供部が分散台帳から取得したBC登録情報の一具体例である。(第2実施形態)
【
図11】情報提供部が情報蓄積サーバから取得した作業承認情報の一具体例である。(第2実施形態)
【
図12】情報提供部が検索端末に提供する情報の一具体例である。(第2実施形態)
【
図13】情報DBに蓄積された複数のプライベート情報の一具体例である。(第3実施形態)
【
図14】情報提供システムのシーケンス図である。(第3実施形態)
【
図15】複数のプライベート情報と、そのハッシュ値との対応関係を示す図である。(第3実施形態)
【
図16】登録ハッシュ値をプライベート情報に置換する処理を示す図である。(第3実施形態)
【発明を実施するための形態】
【0016】
(第1実施形態)
以下、
図1を参照して、情報提供システム100を説明する。
【0017】
情報提供システム100は、情報蓄積サーバ110と情報提供サーバ120を含む。
【0018】
情報蓄積サーバ110は、中央演算処理器としてのCPU110a(Central Processing Unit)と、読み書き自由のRAM110b(Random Access Memory)、読み出し専用のROM110c(Read Only Memory)、通信インターフェース110dを備えている。そして、CPU110aがROM110cに記憶されている制御プログラムを読み出して実行することで、制御プログラムは、CPU110aなどのハードウェアを、各種機能部として機能させる。
【0019】
各種機能部は、第1情報取得部111、第1情報送信部112、第1情報記憶部113を含む。
【0020】
第1情報取得部111は、パブリック情報及びプライベート情報を含む第1の情報を取得する。第1情報取得部111は、第1情報取得手段の一具体例である。
【0021】
第1情報送信部112は、第1情報取得部111が取得した第1の情報を情報提供サーバ120に送信する。第1情報送信部112は、第1情報送信手段の一具体例である。
【0022】
第1情報記憶部113は、第1の情報を蓄積する。第1情報記憶部113は、第1情報記憶手段の一具体例である。
【0023】
情報提供サーバ120は、中央演算処理器としてのCPU120a(Central Processing Unit)と、読み書き自由のRAM120b(Random Access Memory)、読み出し専用のROM120c(Read Only Memory)、通信インターフェース120dを備えている。そして、CPU120aがROM120cに記憶されている制御プログラムを読み出して実行することで、制御プログラムは、CPU120aなどのハードウェアを、各種機能部として機能させる。
【0024】
各種機能部は、第2情報取得部121、変換部122、情報生成部123、登録部124、要求受信部125、第2情報送信部126を含む。
【0025】
第2情報取得部121は、情報蓄積サーバ110から第1の情報を取得する。第2情報取得部121は、第2情報取得手段の一具体例である。
【0026】
変換部122は、第1の情報のプライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する。変換部122は、変換手段の一具体例である。
【0027】
情報生成部123は、第1の情報の前記パブリック情報と、第1のハッシュ値と、を含む第2の情報を生成する。情報生成部123は、情報生成手段の一具体例である。
【0028】
登録部124は、第2の情報をブロックチェーンによる分散台帳に登録する。登録部124は、登録手段の一具体例である。
【0029】
要求受信部125は、パブリック情報の少なくとも一部を含む情報提供要求を受信する。要求受信部125は、要求受信手段の一具体例である。
【0030】
第2情報送信部126は、情報提供要求の送信元がプライベート情報へのアクセス権限を有する場合、送信元に、情報提供要求に応じて、パブリック情報及びプライベート情報を送信する。第2情報送信部126は、第2情報送信手段の一具体例である。
【0031】
第2情報送信部126は、情報提供要求に含まれるパブリック情報の少なくとも一部としての検索キーを用いて分散台帳で検索を実行する。
【0032】
第2情報送信部126は、検索キーに該当する第2の情報を分散台帳から取得する。
【0033】
第2情報送信部126は、検索キーを用いて第1情報記憶部113で検索を実行する。
【0034】
第2情報送信部126は、検索キーに該当する第1の情報を第1情報記憶部113から取得する。
【0035】
第2情報送信部126は、第1情報記憶部113から検索により取得したプライベート情報を所定のハッシュ関数で第2のハッシュ値に変換する。
【0036】
第2情報送信部126は、第1のハッシュ値と第2のハッシュ値を比較する。
【0037】
そして、第2情報送信部126は、第1のハッシュ値と第2のハッシュ値が一致している場合、検索キーに対応するパブリック情報と、第1情報記憶部113から検索により取得したプライベート情報と、を送信元に送信する。
【0038】
以上の構成によれば、パブリック情報とプライベート情報の真正性を分散台帳により担保すると共に、プライベート情報の漏洩のリスクを抑制できる。
【0039】
(第2実施形態)
次に、
図2から
図12を参照して、第2実施形態を説明する。まず、第2実施形態の課題を説明する。
【0040】
即ち、製品のライフサイクルに関する情報を分散台帳に登録することにより、当該情報の真正性を確保できることは周知の通りである。
【0041】
製品のライフサイクルに関する情報は、典型的には、組織名情報、製品型番情報、シリアル番号情報、プロセス名情報、ワークフロー名情報、タイムスタンプ情報、当該ワークフローの承認者情報及び作業者情報、当該ワークフローの作業手順情報及び作業結果情報を含み得る。
【0042】
これらの情報のうち、組織名情報、製品型番情報、シリアル番号情報、プロセス名情報、ワークフロー名情報、タイムスタンプ情報は、不特定の者が取得可能としても差し支えない情報と言える。これに対し、当該ワークフローの承認者情報及び作業者情報、当該ワークフローの作業手順情報及び作業結果情報は、技術情報及び個人情報に該当するので、特定の者しか取得できないようにしたい。端的に言えば、前者はアクセス制限のないパブリック情報であり、後者はアクセス制限のあるプライベート情報とも言える。このように背品ライフサイクルに関する情報は、公開範囲が異なる2種類の情報、即ち、パブリック情報とプライベート情報を含む。
【0043】
しかしながら、プライベート情報をパブリック情報と共に分散台帳に登録した場合、プライベート情報の漏洩のリスクがある。
【0044】
ここで、特許文献1のように、分散台帳にアクセスするユーザクライアント毎に個別のアクセス権限を設定し、アクセス権限に応じてユーザクライアントに送信する情報を限定することが考えられる。この場合でも、プライベート情報が分散台帳に登録されている以上、依然としてプライベート情報の漏洩のリスクを解消することはできない。
【0045】
本実施形態の課題は以上の通りであり、上記の課題を解決すべく、情報提供システム1を
図2に示している。情報提供システム1は、パブリック情報とプライベート情報の真正性を分散台帳により担保すると共に、プライベート情報の漏洩のリスクを抑制する特徴を有する。以下、
図2に示す情報提供システム1について詳細に説明する。
【0046】
情報提供システム1は、少なくとも1つの情報蓄積サーバ2と、情報提供サーバ3を含む。
図2に示すように、本実施形態の情報提供システム1は、複数の情報蓄積サーバ2を含む。情報提供システム1は、更に、分散台帳4を含み得る。
【0047】
情報提供システム1は、更に、少なくとも1つの作業端末5と、少なくとも1つの検索端末6と、を含み得る。本実施形態の情報提供システム1は、複数の作業端末5と、複数の検索端末6と、を含む。
【0048】
複数の情報蓄積サーバ2は、製品ライフサイクルを構成する各種プロセスに従事する事業主が管理するサーバである。複数の情報蓄積サーバ2は、典型的には、製品の検査業務に従事する事業主が管理するサーバ、製品の出荷業務に従事する事業主が管理するサーバ、製品の物流業務に従事する事業主が管理するサーバなどを含む。
【0049】
各作業端末5は、複数の情報蓄積サーバ2の何れか1つと通信可能な端末である。製品ライフサイクルに携わる作業者は、所定の作業手順に沿ってワークフローを実行し、実行結果としての作業結果を得る。作業者は、組織名情報、製品型番情報、シリアル番号情報、プロセス名情報、ワークフロー名情報、作業手順情報、作業結果情報、及び、作業者情報を作業端末5を用いて情報蓄積サーバ2に登録する。上記作業者は、上記作業手順と作業結果に関して承認者に承認を求める。この求めに応じて、承認者は、上記作業手順と作業結果を承認すると共に作業端末5を用いて情報蓄積サーバ2に承認者情報を登録する。作業者が情報蓄積サーバ2に登録した情報と、承認者が情報蓄積サーバ2に登録した情報と、を含む情報を以下、作業承認情報と称する。作業承認情報は、第1の情報の一具体例である。
【0050】
図3には、情報蓄積サーバ2の機能ブロック図を示している。
図3に示すように、中央演算処理器としてのCPU2a(Central Processing Unit)と、読み書き自由のRAM2b(Random Access Memory)、読み出し専用のROM2c(Read Only Memory)、通信インターフェース2dを備えている。そして、CPU2aがROM2cに記憶されている制御プログラムを読み出して実行することで、制御プログラムは、CPU2aなどのハードウェアを、各種機能部として機能させる。
【0051】
各種機能部は、ワークフロー部10、情報送信部11、情報DB12を含む。
【0052】
ワークフロー部10は、各作業端末5からパブリック情報及びプライベート情報を含む作業承認情報を取得し、取得した作業承認情報を情報DB12に登録する。具体的には、ワークフロー部10は、取得した作業承認情報にタイムスタンプ情報を追加した上で、作業承認情報を情報DB12に登録する。ワークフロー部10は、第1情報取得手段の一具体例である。
【0053】
図4には、ワークフロー部10が取得した作業承認情報を示している。
図4に示すように、作業承認情報は、パブリック情報とプライベート情報(秘匿化必要情報)を含む。パブリック情報は、組織名情報、製品型番情報、シリアル情報、プロセス名情報、ワークフロー名情報、タイムスタンプ情報を含む。プライベート情報は、承認者情報、作業者情報、作業手順情報、作業結果情報を含む。本実施形態において、パブリック情報は、複数の情報を含むが、これに代えて、1つのみの情報から構成されてもよい。同様に、本実施形態において、プライベート情報は、複数の情報を含むが、これに代えて、1つのみの情報から構成されてもよい。
【0054】
情報送信部11は、ワークフロー部10が取得し、タイムスタンプ情報を追加した作業承認情報を情報提供サーバ3に送信する。情報送信部11は、第1情報送信手段の一具体例である。
【0055】
情報DB12は、作業承認情報を蓄積する。情報DB12は、第1情報記憶手段の一具体例である。
図5には、情報DB12に蓄積された複数の作業承認情報を示している。
【0056】
図6には、情報提供サーバ3の機能ブロック図を示している。
図6に示すように、情報提供サーバ3は、中央演算処理器としてのCPU3a(Central Processing Unit)と、読み書き自由のRAM3b(Random Access Memory)、読み出し専用のROM3c(Read Only Memory)、通信インターフェース3dを備えている。そして、CPU3aがROM3cに記憶されている制御プログラムを読み出して実行することで、制御プログラムは、CPU3aなどのハードウェアを各種機能部として機能させる。
【0057】
各種機能部は、情報受信部20、ハッシュ変換部21、登録情報生成部22、BC登録部23、アカウント生成部24、アカウント払出部25、アカウント情報記憶部26、要求受信部27、情報提供部28を含む。
【0058】
情報受信部20は、情報蓄積サーバ2から作業承認情報を受信して取得する。情報受信部20は、第2情報取得手段の一具体例である。
【0059】
ハッシュ変換部21は、情報受信部20が取得した作業承認情報のプライベート情報を所定のハッシュ関数で登録ハッシュ値に変換する。登録ハッシュ値は、第1のハッシュ値の一具体例である。
【0060】
登録情報生成部22は、作業承認情報のパブリック情報と、登録ハッシュ値と、を含むBC登録情報を生成する。BC登録情報は、第2の情報の一具体例である。
【0061】
BC登録部23は、BC登録情報を分散台帳4に登録する。
【0062】
ここで、
図2を参照して、分散台帳4について説明する。分散台帳4は、典型的にはコンソーシアム型のブロックチェーン技術による分散型台帳であって、複数のノードにより構成されている。
図2に示す複数の情報提供サーバ3が分散台帳4を構成する複数のノードとして機能してもよく、複数の情報提供サーバ3と異なる複数のサーバが分散台帳4を構成する複数のノードとして機能してもよい。
【0063】
図7は、分散台帳4に登録されている複数のBC登録情報を示している。
図7に示すように、分散台帳4に登録されているBC登録情報は、プライベート情報を含まず、代わりに、プライベート情報をハッシュ変換した登録ハッシュ値を含む。従って、分散台帳4からプライベート情報が直接漏洩することはない。ハッシュ変換は、不可逆変換だからである。
【0064】
図6に戻り、アカウント生成部24は、作業承認情報を参照したいユーザーが検索端末6を介してアカウント申請したときに、当該ユーザー用のアカウント情報を生成する。アカウント情報は、典型的には、アカウント名情報と、プライベート情報へのアクセス権限の有無に関するアクセス権限情報と、を含む。アカウント生成部24は、生成したアカウント情報をアカウント情報記憶部26に記憶する。
【0065】
アカウント情報記憶部26は、複数のアカウント情報を記憶する。
【0066】
アカウント払出部25は、上記ユーザーに対しアカウント情報を払い出す。
【0067】
例えば、監査者がアカウントを申請した場合、アカウント生成部24は、プライベート情報へのアクセス権限を有するアカウント情報を生成し、当該監査者に対しアカウント情報を払い出す。これに対し、監査者でない者がアカウントを申請した場合、アカウント生成部24は、プライベート情報へのアクセス権限を有しないアカウント情報を生成し、当該者に対しアカウント情報を払い出す。
【0068】
要求受信部27は、情報提供要求を受信する。情報提供要求は、典型的には、パブリック情報の少なくとも一部を含む。情報提供要求は、パブリック情報のすべてを含んでもよい。監査者又はその他の者が検索端末6を操作すると、検索端末6は情報提供要求を情報提供サーバ3に送信する。要求受信部27は、検索端末6から情報提供要求を受信する。要求受信部27は、要求受信手段の一具体例である。
【0069】
情報提供部28は、情報提供要求の送信元がプライベート情報へのアクセス権限を有する場合、送信元に、情報提供要求に応じて、パブリック情報及びプライベート情報を送信する。情報提供部28は、第2情報送信手段の一具体例である。
【0070】
次に、
図8から
図12を参照して、情報提供システム1の動作を説明する。
図8及び
図9には、情報提供システム1のシーケンス図を示している。
【0071】
図8を参照して、まず、作業者及び承認者が作業端末5に作業承認情報を入力する。作業端末5は、入力された作業承認情報を情報蓄積サーバ2に送信する(S100)。
【0072】
情報蓄積サーバ2のワークフロー部10は、作業端末5から作業承認情報を取得し(S100)、作業承認情報にタイムスタンプ情報を付加する。情報送信部11は、ワークフロー部10が作業端末5から作業承認情報を取得したことをトリガーとして、
図4に例示する作業承認情報を情報提供サーバ3に送信する(S110)。また、ワークフロー部10は、
図5に示すように、取得した作業承認情報を情報DB12に蓄積する(S120)。
【0073】
情報提供サーバ3の情報受信部20は、情報蓄積サーバ2から作業承認情報を受信して取得する(S110)。ハッシュ変換部21は、情報受信部20が取得した作業承認情報のプライベート情報を所定のハッシュ関数で登録ハッシュ値に変換する(S130)。
【0074】
登録情報生成部22は、作業承認情報のパブリック情報と、登録ハッシュ値と、を含むBC登録情報を生成する(S140)。BC登録部23は、登録情報生成部22が生成したBC登録情報を分散台帳4に登録する(S150)。分散台帳4に記憶される複数のBC登録情報を
図7に示している。
【0075】
ステップS100からステップS150までの処理は、作業端末5に作業承認情報が入力されるたびに繰り返される。
【0076】
次に、作業承認情報を参照したいユーザーが検索端末6を介してアカウント申請すると(S160)、アカウント生成部24は、当該ユーザー用のアカウント情報を生成する(S170)。アカウント生成部24は、生成したアカウント情報をアカウント情報記憶部26に記憶すると共に、上記ユーザーに対しアカウント情報を払い出す(S180)。
【0077】
続けて
図9を参照されたい。作業承認情報を参照したいユーザーは、情報提供サーバ3から提供されたアカウント情報を用いて検索端末6にログインし、検索端末6を操作すると、検索端末6は情報提供要求を情報提供サーバ3に送信する(S200)。具体的には、作業承認情報を参照したいユーザーは、参照したい作業承認情報のパブリック情報を検索端末6に入力する。典型的には、作業承認情報を参照したいユーザーは、参照したい作業承認情報のパブリック情報の少なくとも一部を検索端末6に入力する。検索端末6は、ユーザーによって入力されたパブリック情報の少なくとも一部を含む情報提供要求を作成し、作成した情報提供要求を情報提供サーバ3に送信する(S200)。本実施形態において、情報提供要求は、パブリック情報の少なくとも一部と、送信元であるユーザーの有するアカウント情報と、を含み得る。
【0078】
情報提供サーバ3の情報提供部28は、アカウント情報記憶部26を参照して、情報提供要求の送信元であるアカウントがプライベート情報へのアクセス権限を有するか判定する(S210)。
【0079】
[アクセス権限を有する場合]
ステップS210で、情報提供要求の送信元であるアカウントがプライベート情報へのアクセス権限を有すると判定した場合、情報提供部28は、情報提供要求に含まれるパブリック情報の少なくとも一部としての検索キーを用いて分散台帳4で検索を実行する(S220)。ここで、説明の便宜上、上記の検索キーが「製品番号情報」「シリアル番号情報」「プロセス名情報」を含むものとし、「製品番号情報」は「ABC15000」であり、「シリアル番号情報」は「12345」であり、「プロセス名情報」は「検査」であるものとする。
【0080】
次に、情報提供部28は、上記検索キーに該当するBC登録情報を分散台帳4から取得する(S230)。
図10には、情報提供部28が分散台帳4から取得したBC登録情報を示している。
図10に示すように、上記の検索キーに対して、2つのBC登録情報が該当した。従って、情報提供部28は、
図10に示す2つのBC登録情報(BC登録情報4X、BC登録情報4Y)を分散台帳4から取得する。
【0081】
図9に戻り、情報提供部28は、上記検索キーを用いて情報蓄積サーバ2の情報DB12で検索を実行する(S240)。そして、情報提供部28は、上記検索キーに該当する作業承認情報を情報DB12から取得する(S250)。
図11には、情報提供部28が情報DB12から取得した作業承認情報を示している。
図11に示すように、上記の検索キーに対して、2つの作業承認情報が該当した。従って、情報提供部28は、
図11に示す2つの作業承認情報(作業承認情報2X、作業承認情報2Y)を情報DB12から取得する。
【0082】
続いて、情報提供部28は、情報DB12から検索により取得したプライベート情報を所定のハッシュ関数で検証ハッシュ値に変換する(S260)。検証ハッシュ値は、第2のハッシュ値の一具体例である。
【0083】
そして、情報提供部28は、ステップS230で取得したBC登録情報の登録ハッシュ値と、ステップS260で変換した検証ハッシュ値と、を比較する(S270)。以下、
図10及び
図11を参照して上記の比較を具体的に説明する。
【0084】
図10には、2つのBC登録情報として、BC登録情報4X、BC登録情報4Yを示している。
図11には、2つの作業承認情報として、作業承認情報2X、作業承認情報2Yを示している。
【0085】
図10に示すように、BC登録情報4Xは、承認者情報をハッシュ変換した登録ハッシュ値A、作業者情報をハッシュ変換した登録ハッシュ値B、作業手順情報をハッシュ変換した登録ハッシュ値C、作業結果情報をハッシュ変換した登録ハッシュ値Dを含む。同様に、BC登録情報4Yは、承認者情報をハッシュ変換した登録ハッシュ値E、作業者情報をハッシュ変換した登録ハッシュ値F、作業手順情報をハッシュ変換した登録ハッシュ値G、作業結果情報をハッシュ変換した登録ハッシュ値Hを含む。
【0086】
図11に示すように、作業承認情報2Xは、承認者情報a、作業者情報b、作業手順情報c、作業結果情報dを含む。同様に、作業承認情報2Yは、承認者情報e、作業者情報f、作業手順情報g、作業結果情報hを含む。
【0087】
情報提供部28は、BC登録情報4Xの登録ハッシュ値Aと、作業承認情報2Xの承認者情報aをハッシュ変換した検証ハッシュ値と、を比較する(S270)。比較の結果、両者が一致していたら、情報提供部28は、作業承認情報2Xの承認者情報aが改竄されていないと判定する。
【0088】
同様に、情報提供部28は、BC登録情報4Xの登録ハッシュ値Bと、作業承認情報2Xの作業者情報bをハッシュ変換した検証ハッシュ値と、を比較する。比較の結果、両者が一致していたら、情報提供部28は、作業承認情報2Xの作業者情報bが改竄されていないと判定する。
【0089】
情報提供部28は、登録ハッシュ値Cと作業手順情報c、登録ハッシュ値Dと作業結果情報dについても同様に比較し、改竄の有無を判定する。
【0090】
情報提供部28は、BC登録情報4Yの登録ハッシュ値Eと、作業承認情報2Yの承認者情報eをハッシュ変換した検証ハッシュ値と、を比較する。比較の結果、両者が一致していたら、情報提供部28は、作業承認情報2Yの承認者情報eが改竄されていないと判定する。
【0091】
同様に、情報提供部28は、BC登録情報4Yの登録ハッシュ値Fと、作業承認情報2Yの作業者情報fをハッシュ変換した検証ハッシュ値と、を比較する。比較の結果、両者が一致していたら、情報提供部28は、作業承認情報2Yの作業者情報fが改竄されていないと判定する。
【0092】
情報提供部28は、登録ハッシュ値Gと作業手順情報g、登録ハッシュ値Hと作業結果情報hについても同様に比較し、改竄の有無を判定する。
【0093】
なお、
図10に示すように、複数のBC登録情報のパブリック情報が相互に完全一致することはない。同様に、
図11に示すように、複数の作業承認情報のパブリック情報が相互に一致することはない。
図10の例では、各BC登録情報のパブリック情報のうち検索キーに含まれなかった情報であるワークフロー名情報及びタイムスタンプ情報が複数のBC登録情報間で相互に相違している。
図11でも同様である。従って、情報提供部28は、登録ハッシュ値と検証ハッシュ値を比較するに際し、ワークフロー名情報又はタイムスタンプ情報を逐一参照することで、どのBC登録情報がどの作業承認情報に対応しているか容易に認識することができる。
【0094】
上記比較の結果、作業承認情報のプライベート情報に含まれる承認者情報、作業者情報、作業手順情報、作業結果情報の何れもが改竄されていないと判定した場合、情報提供部28は、作業承認情報のプライベート情報が全体として改竄されていないと判定する。この判定後、情報提供部28は、検索キーに対応するパブリック情報と、情報DB12から検索により取得したプライベート情報と、を送信元に送信する(S280)。ここで、「検索キーに対応するパブリック情報」とは、分散台帳4から検索により取得したパブリック情報としてもよく、情報DB12から検索により取得したパブリック情報としてもよい。これらのパブリック情報は同一だからである。即ち、上記の判定後、情報提供部28は、情報DB12から検索により取得した作業承認情報を送信元に送信するようにしてもよい。
【0095】
上記比較の結果、作業承認情報のプライベート情報に含まれる承認者情報、作業者情報、作業手順情報、作業結果情報の何れかが改竄されていると判定した場合、情報提供部28は、情報DB12に記憶されている作業承認情報のプライベート情報が改竄されていると判定する。この判定後、情報提供部28は、情報DB12に記憶されている作業承認情報のプライベート情報が改竄されていたことを示す改竄メッセージを検索端末6に送信する(S290)。
【0096】
[アクセス権限を有さない場合]
ステップS210で、情報提供要求の送信元であるアカウントが、プライベート情報へのアクセス権限を有しないと判定した場合、情報提供部28は、情報提供要求に含まれるパブリック情報の少なくとも一部としての検索キーを用いて分散台帳4で検索を実行する(S300)。
【0097】
次に、情報提供部28は、上記検索キーに該当するBC登録情報を分散台帳4から取得する(S310)。
図10には、情報提供部28が分散台帳4から取得したBC登録情報を示している。
図10に示すように、上記の検索キーに対して、2つのBC登録情報が該当した。従って、情報提供部28は、
図10に示す2つのBC登録情報(BC登録情報4X、BC登録情報4Y)を分散台帳4から取得する。
【0098】
そして、情報提供部28は、分散台帳4から取得したBC登録情報のパブリック情報を検索端末6に送信する(S320)。このとき、
図10に示すように、情報提供部28は、分散台帳4から取得したBC登録情報の登録ハッシュ値を削除しないまま当該BC登録情報を検索端末6に送信してもよい。これに代えて、情報提供部28は、
図12に示すように、分散台帳4から取得したBC登録情報の登録ハッシュ値を削除した上で当該BC登録情報のパブリック情報のみを検索端末6に送信するようにしてもよい。
【0099】
以上に、本開示の第2実施形態を説明した。第2実施形態は、以下の特徴を有する。
【0100】
情報提供システム1は、情報蓄積サーバ2と情報提供サーバ3を含む。
【0101】
情報蓄積サーバは、ワークフロー部10と情報送信部11、情報DB12を含む。ワークフロー部10(第1情報取得手段)は、パブリック情報及びプライベート情報を含む作業承認情報(第1の情報)を取得する。情報送信部11(第1情報送信手段)は、ワークフロー部10が取得した作業承認情報を情報提供サーバ3に送信する。情報DB12(第1情報記憶手段)は、作業承認情報を蓄積する。
【0102】
情報提供サーバ3は、情報受信部20、ハッシュ変換部21、登録情報生成部22、BC登録部23、要求受信部27、情報提供部28を含む。情報受信部20(第2情報取得手段)は、情報蓄積サーバ2から作業承認情報を取得する。ハッシュ変換部21(変換手段)は、作業承認情報のプライベート情報を所定のハッシュ関数で登録ハッシュ値(第1のハッシュ値)に変換する。登録情報生成部22(情報生成手段)は、作業承認情報のパブリック情報と、登録ハッシュ値と、を含むBC登録情報(第2の情報)を生成する。BC登録部23(登録手段)は、BC登録情報をブロックチェーンによる分散台帳4に登録する。要求受信部27(要求受信手段)は、パブリック情報の少なくとも一部を含む情報提供要求を受信する。情報提供部28(第2情報送信手段)は、情報提供要求の送信元がプライベート情報へのアクセス権限を有する場合、送信元に、情報提供要求に応じて、パブリック情報及びプライベート情報を送信する。
【0103】
情報提供部28は、情報提供要求に含まれるパブリック情報の少なくとも一部としての検索キーを用いて分散台帳4で検索を実行する(S220)。情報提供部28は、検索キーに該当するBC登録部23を分散台帳4から取得する(S230)。情報提供部28は、検索キーを用いて情報DB12で検索を実行する(S240)。情報提供部28は、検索キーに該当する作業承認情報を情報DB12から取得する(S250)。情報提供部28は、情報DB12から検索により取得したプライベート情報を所定のハッシュ関数で検証ハッシュ値(第2のハッシュ値)に変換する(S260)。情報提供部28は、登録ハッシュ値と検証ハッシュ値を比較する(S270)。情報提供部28は、登録ハッシュ値と検証ハッシュ値が一致している場合、検索キーに対応するパブリック情報と、情報DB12から検索により取得したプライベート情報と、を送信元に送信する(S280)。
【0104】
以上の情報提供システム1によれば、パブリック情報とプライベート情報の真正性を分散台帳により担保すると共に、プライベート情報の漏洩のリスクを抑制することができる。
【0105】
また、情報提供部28は、登録ハッシュ値と検証ハッシュ値が一致していない場合、情報DB12に蓄積されているプライベート情報が改竄されていると判定する(S270、S290)。
【0106】
また、情報提供部28は、情報提供要求の送信元がプライベート情報へのアクセス権限を有しない場合、検索キーを用いて分散台帳で検索を実行する(S300)。情報提供部28は、検索キーに該当するBC登録情報のパブリック情報を分散台帳4から取得する(S310)。情報提供部28は、分散台帳4から取得したパブリック情報を送信元に送信する(S320)。以上の構成によれば、プライベート情報へのアクセス権限を有さない送信元に対しては、プライベート情報を送信しない構成が実現される。
【0107】
(変形例)
上記第2実施形態は、例えば、以下のように変更できる。
【0108】
図9のステップS270において、情報提供部28は、情報DB12から検索により取得した作業承認情報のパブリック情報と、分散台帳4から取得したBC登録情報のパブリック情報と、を比較してもよい。そして、両者が一致しない場合、情報提供部28は、情報DB12に蓄積されているパブリック情報が改竄されていると判定するようにしてもよい。この場合、ステップS290において、情報提供部28は、検索端末6に、情報DB12に蓄積されているパブリック情報が改竄されていることを示す改竄メッセージを送信するようにしてもよい。
【0109】
(第3実施形態)
次に、
図13から
図16を参照して、第3実施形態を説明する。以下、本実施形態が上記第2実施形態を相違する点を中心に説明し、重複する説明は省略する。
【0110】
上記第2実施形態では、
図5に示すように、情報DB12は、パブリック情報及びプライベート情報を含む作業承認情報を蓄積している。
【0111】
これに対し、本実施形態では、
図13に示すように、情報DB12は、作業承認情報のうちプライベート情報のみを蓄積する(S120)。
【0112】
また、上記第2実施形態では、
図9に示すように、情報提供部28は、検索キーを用いて情報蓄積サーバ2の情報DB12で検索を実行する(S240)。そして、情報提供部28は、上記検索キーに該当する作業承認情報を情報DB12から取得する(S250)。
【0113】
これに対し、本実施形態では、
図14に示すように、情報提供部28は、情報蓄積サーバ2の情報DB12から複数のプライベート情報を取得する(S251)。具体的には、情報提供部28は、各情報蓄積サーバ2の情報DB12に蓄積されているすべてのプライベート情報を取得する。
【0114】
次に、情報提供部28は、
図15に示すように、ステップS251で取得した複数のプライベート情報を所定のハッシュ関数で検証ハッシュ値に変換する(S261)。
【0115】
そして、情報提供部28は、ステップS230で取得したBC登録情報の登録ハッシュ値と、ステップS261で生成した検証ハッシュ値と、を比較する(S271)。
【0116】
そして、情報提供部28は、検索キーに対応するパブリック情報と、登録ハッシュ値と一致している検証ハッシュ値に対応するプライベート情報と、を送信元に送信する(S281)。典型的には、以下の通りである。
【0117】
図10には、情報提供部28が分散台帳4から取得したBC登録情報を示している。
図10に示すように、検索キーに対して、2つのBC登録情報が該当した。従って、情報提供部28は、
図10に示す2つのBC登録情報(BC登録情報4X、BC登録情報4Y)を分散台帳4から取得する。
【0118】
次に、情報提供部28は、まず、BC登録情報4Xの登録ハッシュ値Aと一致する検証ハッシュ値を、
図15に示す複数の検証ハッシュ値の中から特定する。そして、情報提供部28は、
図16に示すように、BC登録情報4Xの登録ハッシュ値Aを、特定した検証ハッシュ値に対応するプライベート情報で置換する。情報提供部28は、同様の処理を、BC登録情報4Xの登録ハッシュ値Bから登録ハッシュ値Dについても実行する。これにより、BC登録情報4Xは作業承認情報へと変換される。このように、BC登録情報4Xの登録ハッシュ値すべてをプライベート情報に変換できたら、情報提供部28は、パブリック情報とプライベート情報を送信元に送信する(S281)。BC登録情報4Yについても同様に処理する。
【0119】
もし、BC登録情報4Xの登録ハッシュ値Aと一致する検証ハッシュ値を
図15に示す複数の検証ハッシュ値の中で複数個特定できたら、情報提供部28は、情報DB12に記憶されているプライベート情報が改竄されていたと判定する。もし、BC登録情報4Xの登録ハッシュ値Aと一致する検証ハッシュ値を
図15に示す複数の検証ハッシュ値の中で1つも特定できなかったら、情報提供部28は、情報DB12に記憶されているプライベート情報が改竄されていたと判定する。そして、情報提供部28は、情報DB12に記憶されているプライベート情報が改竄されていたことを示す改竄メッセージを検索端末6に送信する(S291)。
【0120】
以上に、本開示の第3実施形態を説明したが、上記第3実施形態は、以下の特徴を有する。
【0121】
図13に示すように、情報DB12(第1情報記憶手段)は、作業承認情報(第1の情報)のプライベート情報を蓄積する。
図14に示すように、情報提供部28(第2情報送信手段)は、情報提供要求に含まれるパブリック情報の少なくとも一部としての検索キーを用いて分散台帳4で検索を実行する(S220)。情報提供部28は、検索キーに該当するBC登録情報(第2の情報)を分散台帳4から取得する(S230)。情報提供部28は、情報DB12に蓄積されている複数のプライベート情報を情報DB12から取得する(S251)。情報提供部28は、情報DB12から取得した複数のプライベート情報を所定のハッシュ関数で検証ハッシュ値(第2のハッシュ値)に変換する(S261)。情報提供部28は、登録ハッシュ値と複数の検証ハッシュ値を比較する(S271)。情報提供部28は、検索キーに対応するパブリック情報と、登録ハッシュ値と一致している検証ハッシュ値に対応するプライベート情報と、を送信元に送信する(S281)。以上の情報提供システム1によれば、パブリック情報とプライベート情報の真正性を分散台帳により担保すると共に、プライベート情報の漏洩のリスクを抑制することができる。また、情報蓄積サーバ2の情報DB12にパブリック情報を蓄積する必要がないので、情報DB12のリソースの節約に寄与する。
【0122】
なお、本実施形態においても、上記第2実施形態と同様に、情報DB12がパブリック情報及びプライベート情報を含む作業承認情報を蓄積するようにしてもよい。
【0123】
また、情報提供部28は、登録ハッシュ値と一致している検証ハッシュ値が複数ある場合、又は、ない場合、情報DB12に蓄積されているプライベート情報が改竄されていると判定する(S291)。以上の構成によれば、情報DB12に蓄積されているプライベート情報が改竄されていると判定できる。
【0124】
上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)を含む。非一時的なコンピュータ可読媒体の例は、更に、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROMを含む。非一時的なコンピュータ可読媒体の例は、更に、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0125】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限定されない。
【0126】
(付記1)
情報蓄積サーバと情報提供サーバを含む情報提供システムであって、
前記情報蓄積サーバは、
パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得手段と、
前記第1情報取得手段が取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信手段と、
前記第1の情報を蓄積する第1情報記憶手段と、
を備え、
前記情報提供サーバは、
前記情報蓄積サーバから前記第1の情報を取得する第2情報取得手段と、
前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換手段と、
前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成手段と、
前記第2の情報をブロックチェーンによる分散台帳に登録する登録手段と、
前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信手段と、
前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信手段と、
を備え、
前記第2情報送信手段は、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記検索キーを用いて前記第1情報記憶手段で検索を実行し、
前記検索キーに該当する前記第1の情報を前記第1情報記憶手段から取得し、
前記第1情報記憶手段から検索により取得した前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と前記第2のハッシュ値を比較し、
前記第1のハッシュ値と前記第2のハッシュ値が一致している場合、前記検索キーに対応する前記パブリック情報と、前記第1情報記憶手段から検索により取得した前記プライベート情報と、を前記送信元に送信する、
情報提供システム。
【0127】
(付記2)
前記第2情報送信手段は、前記第1のハッシュ値と前記第2のハッシュ値が一致していない場合、前記第1情報記憶手段に蓄積されている前記プライベート情報が改竄されていると判定する、
付記1に記載の情報提供システム。
【0128】
(付記3)
前記第2情報送信手段は、前記第1情報記憶手段から検索により取得した前記第1の情報の前記パブリック情報と、前記分散台帳から取得した前記第2の情報の前記パブリック情報と、が一致しない場合、前記第1情報記憶手段に蓄積されている前記パブリック情報が改竄されていると判定する、
付記1又は2に記載の情報提供システム。
【0129】
(付記4)
前記第2情報送信手段は、
前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有しない場合、前記検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報の前記パブリック情報を前記分散台帳から取得し、
前記分散台帳から取得した前記パブリック情報を前記送信元に送信する、
付記1から3までの何れか1項に記載の情報提供システム。
【0130】
(付記5)
情報蓄積サーバと情報提供サーバを含む情報提供システムであって、
前記情報蓄積サーバは、
パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得手段と、
前記第1情報取得手段が取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信手段と、
前記第1の情報の前記プライベート情報を蓄積する第1情報記憶手段と、
を備え、
前記情報提供サーバは、
前記情報蓄積サーバから前記第1の情報を取得する第2情報取得手段と、
前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換手段と、
前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成手段と、
前記第2の情報をブロックチェーンによる分散台帳に登録する登録手段と、
前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信手段と、
前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信手段と、
を備え、
前記第2情報送信手段は、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記第1情報取得手段に蓄積されている複数の前記プライベート情報を前記第1情報記憶手段から取得し、
前記第1情報記憶手段から取得した複数の前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と複数の前記第2のハッシュ値を比較し、
前記検索キーに対応する前記パブリック情報と、前記第1のハッシュ値と一致している前記第2のハッシュ値に対応する前記プライベート情報と、を前記送信元に送信する、
情報提供システム。
【0131】
(付記6)
前記第2情報送信手段は、
前記第1のハッシュ値と一致している前記第2のハッシュ値が複数ある場合、又は、ない場合、前記第1情報記憶手段に蓄積されている前記プライベート情報が改竄されていると判定する、
付記5に記載の情報提供システム。
【0132】
(付記7)
前記第2情報送信手段は、
前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有しない場合、前記検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報の前記パブリック情報を前記分散台帳から取得し、
前記分散台帳から取得した前記パブリック情報を前記送信元に送信する、
付記5又は6に記載の情報提供システム。
【0133】
(付記8)
情報蓄積サーバと情報提供サーバを含む情報提供システムを用いた情報提供方法であって、
前記情報蓄積サーバが、パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得段階と、
前記情報蓄積サーバが、前記第1情報取得段階で取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信段階と、
前記情報蓄積サーバが、前記第1の情報を蓄積する第1情報記憶段階と、
前記情報提供サーバが、前記情報蓄積サーバから前記第1の情報を取得する第2情報取得段階と、
前記情報提供サーバが、前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換段階と、
前記情報提供サーバが、前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成段階と、
前記情報提供サーバが、前記第2の情報をブロックチェーンによる分散台帳に登録する登録段階と、
前記情報提供サーバが、前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信段階と、
前記情報提供サーバが、前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信段階と、
を含み、
前記第2情報送信段階では、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記検索キーを用いて前記情報蓄積サーバで検索を実行し、
前記検索キーに該当する前記第1の情報を前記情報蓄積サーバから取得し、
前記情報蓄積サーバから検索により取得した前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と前記第2のハッシュ値を比較し、
前記第1のハッシュ値と前記第2のハッシュ値が一致している場合、前記検索キーに対応する前記パブリック情報と、前記情報蓄積サーバから検索により取得した前記プライベート情報と、を前記送信元に送信する、
情報提供方法。
【0134】
(付記9)
情報蓄積サーバと情報提供サーバを含む情報提供システムを用いた情報提供方法であって、
前記情報蓄積サーバが、パブリック情報及びプライベート情報を含む第1の情報を取得する第1情報取得段階と、
前記情報蓄積サーバが、前記第1情報取得段階で取得した前記第1の情報を前記情報提供サーバに送信する第1情報送信段階と、
前記情報蓄積サーバが、前記第1の情報の前記プライベート情報を蓄積する第1情報記憶段階と、
前記情報提供サーバが、前記情報蓄積サーバから前記第1の情報を取得する第2情報取得段階と、
前記情報提供サーバが、前記第1の情報の前記プライベート情報を所定のハッシュ関数で第1のハッシュ値に変換する変換段階と、
前記情報提供サーバが、前記第1の情報の前記パブリック情報と、前記第1のハッシュ値と、を含む第2の情報を生成する情報生成段階と、
前記情報提供サーバが、前記第2の情報をブロックチェーンによる分散台帳に登録する登録段階と、
前記情報提供サーバが、前記パブリック情報の少なくとも一部を含む情報提供要求を受信する要求受信段階と、
前記情報提供サーバが、前記情報提供要求の送信元が前記プライベート情報へのアクセス権限を有する場合、前記送信元に、前記情報提供要求に応じて、前記パブリック情報及び前記プライベート情報を送信する第2情報送信段階と、
を含み、
前記第2情報送信段階では、
前記情報提供要求に含まれる前記パブリック情報の少なくとも一部としての検索キーを用いて前記分散台帳で検索を実行し、
前記検索キーに該当する前記第2の情報を前記分散台帳から取得し、
前記情報蓄積サーバに蓄積されている複数の前記プライベート情報を前記情報蓄積サーバから取得し、
前記情報蓄積サーバから取得した複数の前記プライベート情報を前記所定のハッシュ関数で第2のハッシュ値に変換し、
前記第1のハッシュ値と複数の前記第2のハッシュ値を比較し、
前記検索キーに対応する前記パブリック情報と、前記第1のハッシュ値と一致している前記第2のハッシュ値に対応する前記プライベート情報と、を前記送信元に送信する、
情報提供方法。
【0135】
(付記10)
付記8に記載の情報提供方法をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
【0136】
(付記11)
付記9に記載の情報提供方法をコンピュータに実行させるプログラムが格納された非一時的なコンピュータ可読媒体。
【符号の説明】
【0137】
1 情報提供システム
2 情報蓄積サーバ
2X 作業承認情報
2Y 作業承認情報
3 情報提供サーバ
4 分散台帳
4X BC登録情報
4Y BC登録情報
5 作業端末
6 検索端末
10 ワークフロー部
11 情報送信部
12 情報DB
20 情報受信部
21 ハッシュ変換部
22 登録情報生成部
23 BC登録部
24 アカウント生成部
25 アカウント払出部
26 アカウント情報記憶部
27 要求受信部
28 情報提供部