JP7478440B2 - 情報処理方法及び情報処理システム - Google Patents

情報処理方法及び情報処理システム Download PDF

Info

Publication number
JP7478440B2
JP7478440B2 JP2021052208A JP2021052208A JP7478440B2 JP 7478440 B2 JP7478440 B2 JP 7478440B2 JP 2021052208 A JP2021052208 A JP 2021052208A JP 2021052208 A JP2021052208 A JP 2021052208A JP 7478440 B2 JP7478440 B2 JP 7478440B2
Authority
JP
Japan
Prior art keywords
data
verification
information processing
processing device
distributed ledger
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021052208A
Other languages
English (en)
Other versions
JP2022149878A (ja
Inventor
克広 城野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
National Institute of Advanced Industrial Science and Technology AIST
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National Institute of Advanced Industrial Science and Technology AIST filed Critical National Institute of Advanced Industrial Science and Technology AIST
Priority to JP2021052208A priority Critical patent/JP7478440B2/ja
Publication of JP2022149878A publication Critical patent/JP2022149878A/ja
Application granted granted Critical
Publication of JP7478440B2 publication Critical patent/JP7478440B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、ブロックチェーンを利用して試験又は検査の正当性を検証する技術に関する。
製品又はサービスの特性についての試験又は検査における測定は、様々な産業の重要な基盤をなすものである。しかし、自動車分野や建築分野など、様々な分野で試験又は検査における測定に関する不正が大きな社会問題となっている。例えば、試験コストを下げるための過度な測定手順の簡素化、測定データのねつ造及び改ざん、試験又は検査所や測定員の資格不足、評価ソフトウェアの改ざん、試験又は検査の実施のための各種証明書の日付の改ざんなどの手続き上の不正が数多く報告されている。また、試験環境や試料の取り扱いが事前に定められた通りにされていない、証明書に不備があるなどの理由で、意図せず不正な試験又は検査結果が報告されてしまうことも起こりえることである。
分野によっては、試験又は検査の信頼性を確保する目的で、法令やマネジメントシステム規格に準じた試験又は検査機関の第三者認証を導入してきた。しかし、第三者認証は試験又は検査機関の能力を認証するもので、個別の試験又は検査の結果について、ねつ造又は改ざんなどの不正がなく、技術的に十分妥当な検討がなされたことを判定するわけではない。製品又はサービスの使用者の側からは、その使用者が使用する特定の製品又はサービスについての試験又は検査の結果が正しく得られたものであることを保証するシステムの構築が望まれる。
製品又はサービスの電子商取引の際に、製品又はサービスの品質やリスクを管理する目的で、品質、安全、環境性能、規制や規格への適合性、要求される特性の数値を記録し、閲覧に供するデータベースを備えた電子商取引システムの提案は従前にも行われてきた(例えば特許文献1)。しかしながら、データの保全性については考慮されていない。
また、膨大なデータを詳細かつ正しく検証するためには、検証を機械的に行う検証プログラムを用いることになる。試験又は検査データを改ざんする動機がある場合には、価値や正当性の判定を行う検証プログラムの実行時や実行結果の記録時にも、不正を働く動機がある。このため、検証プログラムの保全性を確保することが好ましい。
近年注目されるデータ及びプログラムの高い保全性を実現する一つの手段として、ブロックチェーン技術がある。ブロックチェーン技術は複数のピア(例えばサーバ)により構成されるピアツーピアネットワークにより実現される。複数のピアによりトランザクション(取引)を管理する。この際、一部のピアでは故障などのためにデータが記録されない恐れや、一部のピアが不正に操作されて記録が改ざんされる恐れがある。このため、トランザクションについての何らかのコンセンサスアルゴリズム(すなわち整合性を確認するアルゴリズム)が採用される。コンセンサスアルゴリズムを適切に設定することで、記録されるデータの保全性を確保することを実現する。
ブロックチェーン技術は、分散台帳技術を有することが一つの特徴である。分散台帳とは、代表的なブロックチェーンプラットフォームの一つであるハイパーレッジャーファブリックでは、複数のピアで共有するトランザクションの履歴の記録及びトランザクションの実行により更新されるデータベースにより構成される。ブロックチェーン技術の分散台帳では、台帳に記録する際に、その時点での取引履歴から生成されるデータを含む形で記録することで、遡っての改ざんを防ぐことに特徴がある。この特徴は、試験又は検査データの保全性を確保する目的で有用なものである。
近年進む測定器のIoT(Internet of Things)化により、測定措置をネットワークに接続し、試験又は検査のデータを集めることが技術上可能になってきている。このことから、ブロックチェーン技術を活用し、個別の試験又は検査についての不正の有無を細やかに検討できる可能性がある。例えば、測定器をネットワークにつなぎ、ブロックチェーンに組み込むことが提案されている(例えば特許文献2)。本技術では、ある測定値が特定の測定器で測定されたことを証明するために、ブロックチェーンへの記録と、測定器のログとを比較し、検証することもできる。
製品又はサービスの品質やリスクの判断において適用可能なブロックチェーンの活用も提案されている。例えば、ブロックチェーン上に、ある製品の生産についての過程のデータや、製品の特性の試験又は検査のデータ、試験又は検査時の測定者の生体センサデータなどを用いて、製品の価値の判定とその判定結果の正当性の判定を実施するシステムの提案がされている(例えば特許文献3)。ただし、検証プロセスはブロックチェーンネットワークの外で信頼できる機関が実施することが提案されており、試験又は検査データの機密性や検証プログラムの保全性を確保することは技術的にできていない。
検証プログラムの保全性については、検証プログラムをブロックチェーン上のスマートコントラクトとして配備することで、確保することができる。スマートコントラクトとは、ブロックチェーン上で動作するプログラムのことである。このスマートコントラクトの実行も、複数のピアで実行をシミュレーションし、その結果について、コンセンサスを得た場合にのみ、実行結果のトランザクションを記録することが可能である。一方で、検証プログラムをブロックチェーン上のスマートコントラクトとして配備することは、ピアの間で検証に用いるデータを共有することになるから、機密性の確保の面ではなお問題が残る。
試験又は検査のデータには高い機密性が求められる。直接的な試験又は検査の結果は、顧客が提供する製品又はサービスの性能を示すものである。製品又はサービスの開発のプロセスは高い機密性を求められる。それだけでなく、試験又は検査所の運営に関わるデータ、測定器に関するデータ、測定器の校正の記録なども、試験又は検査所の品質を構築する重要な情報であり、高い機密性を求められる。さらに言えば、個人情報が含まれることもある。このため、試験又は検査データの機密性を実現することは大きな課題である。
試験又は検査データの機密性を確保するための提案として、スマートメータにより測定した暗号化データをブロックチェーンの分散台帳に記録し、記録された暗号化データを準同型暗号により演算することで、電気料金について、電力データを秘匿した状態で計算するものがある(例えば非特許文献1)。これにより、ブロックチェーンに参加するピアに対しても、データを秘匿することが可能になる。但し、準同型暗号によりデータを秘匿した計算が可能であることが、このシステムの開発の前提である。準同型暗号によるデータ解析はその解析プログラムの開発が複雑になりやすく、計算時間もかかる。このため、システムの運用コストの面で負担が大きい。より負担の小さい手法で、試験又は検査データの機密性を確保することが求められている。
国際公開公報2007/129488号 特開2020-58771号公報 国際公開公報2017/090329号
Denial Peters et al., IT Security for Measuring Instruments: Confidential Checking of Software Functionality, Future of Information and Communication Conference (FICC) 2020
従って、本発明の目的は、一側面として、試験又は検査の正当性を、機密性を保持したまま検証できるようにするブロックチェーン技術を提供することである。
本発明に係る情報処理方法は、ブロックチェーンネットワークに属するピアに対応し、検証用のスマートコントラクトの処理を実行する各第1の情報処理装置によって実行されるものである。そして、測定器の測定値を含む第1データのハッシュ値が分散台帳上に登録されている状態において、(A)第1データと第1データのハッシュ値の分散台帳上の識別子とを含み且つ各第1の情報処理装置用の共通鍵で暗号化された検証データを含む第2データにより試験又は検査の検証を行うように要求された第2の情報処理装置から検証の指示を受信すると、検証のためのデータ要求を第2の情報処理装置に送信するステップと、(B)第2の情報処理装置から第2データを受信して、自装置用の共通鍵で復号することで、検証データを取得するステップと、(C)検証データに含まれる第1データのハッシュ値が、分散台帳に登録されているものと同じであることを検証することを含む検証処理を実行するステップと、(D)検証処理の結果を、第2の情報処理装置に送信するステップと、(E)検証用のスマートコントラクトの処理が成功した場合、検証処理の結果のハッシュ値を分散台帳に登録するステップとを含む。
一側面として、試験又は検査の正当性を、機密性を保持したまま検証できるようになる。
図1は、実施の形態に係るブロックチェーンシステムの概要を示す図である。 図2は、公開鍵を分散台帳に登録するための処理フローを示す図である。 図3は、記録スマートコントラクトを起動する際の処理フローを示す図である。 図4は、測定値などの試験又は検査データを分散台帳に登録するための処理フローを示す図である。 図5は、分散台帳に登録されたデータの無効化を行うための処理フローを示す図である。 図6は、変更スマートコントラクトを起動する際の処理フローを示す図である。 図7は、試験又は検査データの検証処理の処理フローを示す図である。 図8は、検証スマートコントラクトを起動する際の処理フローを示す図である。 図9は、検証スマートコントラクトを起動する際の処理フローを示す図である。 図10は、検証スマートコントラクトを起動する際の処理フローを示す図である。 図11は、検証スマートコントラクトを起動する際の処理フローを示す図である。 図12は、検証スマートコントラクトを起動する際の処理フローを示す図である。 図13は、検証結果の検証を行う際の処理フローを示す図である。 図14は、コンピュータ装置の機能ブロック図である。
[実施の形態の考え方について]
製品又はサービスの特性に関する試験又は検査の正当性を客観的に提示するためには、以下のような課題がある。
(1)試験又は検査データの機密性の確保
(2)試験又は検査データの保全性の確保
(3)検証プログラムの保全性の確保
従来型のクライアント&サーバ方式のサービスと比べて、ブロックチェーンの分散台帳によるデータ管理はデータの保全性を高めることに役立つ。また、ブロックチェーンにスマートコントラクトとして検証プログラムを実装することは、検証プログラムの保全性を確保することに役立つ。しかし、試験又は検査データの機密性の確保について、ブロックチェーンを用いたシステムで実現することが課題として残る。
検証結果の正当性を確認する動機があるのは、製品又はサービスのエンドユーザである。製品又はサービスのエンドユーザの各種データへのアクセス権を制御することは、コストがかかる。しかし、製品又はサービスのエンドユーザは試験又は検査の結果、製品又はサービスが要求基準に適合したものであることが分かればよく、試験又は検査データに関わるデータの全てに興味があるわけではない。データの機密性の観点からも、必要以上のデータの閲覧をさせないことが望ましい。ブロックチェーンの管理者やブロックチェーンネットワークのピアに対しても、閲覧を防ぐことが好ましい。
ブロックチェーンにピアとして参加する組織にとっては、情報の管理はコストを増加させる原因になる。特に、エンドユーザに関するデータを取得した場合は、その管理は大きな負担となる。このため、機密性が求められるデータについては、そもそも分散台帳上に記録せず、検証の目的以外にアクセスできないことを保証することができれば、試験又は検査の検証を目的とするブロックチェーンの運用のコストを下げることにつながる。
これらを踏まえ、本実施の形態は、製品又はサービスのエンドユーザも含むあらゆる関係者に、試験又は検査データを許容された用途以外に用いないことを保証しつつ、試験又は検査の正当性を検証でき、その検証結果を確認できるようにするものである。
なお、検証のためには、検証を行うブロックチェーンネットワーク上のピアには、試験又は検査データを引き渡すことになる。しかし、ブロックチェーンのスマートコントラクトは、予め決められたデータ処理しかできないことから、各ピアが自由にデータをコピーすることはできない。このため、各ピアには検証に用いられるデータのみを残し、検証に用いないデータは削除するという管理がブロックチェーンを用いることで可能となる。この仕組みを用いて、検証後に試験又は検査データにアクセスすることができないようにする。
本実施の形態における主要な特徴は、試験又は検査データを処理するサーバが、スマートコントラクト起動サーバを介して、ハッシュ化した試験又は検査データを、ブロックチェーンネットワークの分散台帳に記録することである。これによって、試験又は検査データそのものを、分散台帳に登録するよりもデータの機密性が向上する。但し、検証時には試験又は検査データを用いざるを得ないので、検証用のスマートコントラクトにおいて、ブロックチェーンネットワークのピアが、暗号化した試験又は検査データをスマートコントラクト起動サーバにアクセスして取得するものとする。これによって、検証のためのトランザクションに試験又は検査データを含めることなく、すなわち、試験又は検査データそのものを分散台帳に記録することなく、検証処理を実行できるようになる。
[実施の形態の具体的内容]
本実施の形態では、ある試験又は検査が予め登録した測定器で行われていることを確かめるものとする。当該試験又は検査に関わる団体組織を以降、コンソーシアムと呼ぶ。当該コンソーシアムが主体となってブロックチェーンネットワークを形成する。本実施の形態は、代表的なブロックチェーンプラットフォームの一つであるハイパーレッジャーファブリックの利用を前提とし、トランザクションの履歴の記録、及びトランザクションの実行により更新されるデータベースを含む分散台帳機能を有するものとする。但し、他の同様の分散台帳機能とスマートコントラクト実行機能を持つ他のシステムを採用しても良い。
本実施の形態において、上記コンソーシアムは試験又は検査所にとってのブロックチェーンネットワークの認証局の役割を果たし、X509やその他の形式の参加証明書を発行する。ハイパーレッジャーファブリックを用いる場合には、コンソーシアムは検証を実施しないピアを有するものとする。当該参加証明書は公開鍵を含み、ペアとなる秘密鍵は各ユーザで管理する。ブロックチェーンネットワークのピアとなるサーバを有するのは例えば測定器メーカであり、ここでは、2つの測定器メーカである測定器メーカAと測定器メーカBを想定する。但し、測定器メーカの数に制限はない。
本実施の形態では、測定器メーカAが提供する測定器は、センサと耐タンパ性のあるマイコンとが一体化したものである。このマイコンには、それぞれの測定器メーカにより、公開鍵暗号の秘密鍵が内蔵されている。この測定器を有する試験又は検査所は、その秘密鍵を知らされていないが、公開鍵は知らされているものとする。また、この測定器は、測定して取得した測定値を、内蔵マイコン内に備えられた秘密鍵により、デジタル署名付きで出力する。具体的には、測定値は、測定値をハッシュ化した値を秘密鍵で暗号化した値と共に出力される。この測定器は、例えばネットワークを介して、試験又は検査所が有する処理サーバに接続する。
図1を用いてさらに本実施の形態に係るシステム10の構成について説明する。本実施の形態に係るシステム10は、試験又は検査データの処理を行う処理サーバ12、測定器14と、測定器14がネットワークを介して接続され且つ試験又は検査データの処理を行う処理サーバ13と、ユーザ端末18と、スマートコントラクト起動サーバ11と、ピアのサーバ15及び16を含むブロックチェーンネットワーク17とを含む。
例えば、処理サーバ12は、測定器メーカAにより管理されており、処理サーバ13は、試験又は検査所が管理している。測定器14は、測定器メーカAの測定器であって、この試験又は検査所が管理している。コントラクト起動サーバ11は、ピアのサーバ15及びサーバ16を含むブロックチェーンネットワーク17に接続する。上で述べたようにハイパーレッジャーファブリックを用いる場合には、オーダラーピアの機能をブロックチェーンネットワーク17が含むものとする。また、ユーザ端末18は、コントラクト起動サーバ11を通して、ブロックチェーンネットワーク17における分散台帳上のデータベースを閲覧する。
ブロックチェーンネットワーク17にはスマートコントラクトが配備される。スマートコントラクトの配備は、特別な権限を持った管理者によって実施される。本実施の形態においては、コンソーシアムが管理者となる。スマートコントラクトを適切に動作させるための入力データの仕様はあらかじめ公開される。
ブロックチェーンネットワーク17には、記録スマートコントラクト、閲覧スマートコントラクト、変更スマートコントラクト、検証スマートコントラクトが配備される。実際の応用では、これら以外の様々な機能を付したスマートコントラクトを配備してもよい。また、必要に応じて、スマートコントラクト毎に異なるチャネル(ブロックチェーンネットワークを論理的に分割したもの)を形成してもよい。
以下、本システム10の処理について、図2乃至図12を用いて説明する。
まず、図2及び図3を用いて、測定器14が保有する秘密鍵に対応する公開鍵に関するデータをブロックチェーンネットワーク17に記録する処理について説明する。
まず、測定器メーカAの処理サーバ12は、測定器14に内蔵された秘密鍵に対応する公開鍵D1を取得する(図2:ステップS1)。例えば、測定器メーカAの作業員の入力を受け付けたり、測定器メーカAの処理サーバ12に接続されている他のコンピュータから読み出すことにより取得する。そして、処理サーバ12は、公開鍵D1をハッシュ化して、データH1を生成する(ステップS3)。ハッシュ化には、例えばSHA-256その他のアルゴリズムを用いる。そして、処理サーバ12は、データH1を含む記録要求を、コントラクト起動サーバ11に送信する(ステップS5)。この処理は、例えばコントラクト起動サーバ11のウェブサイトで登録する形で行うようにしても良い。
コントラクト起動サーバ11は、データH1を含む記録要求を受信し(ステップS7)、データ記録のための記録スマートコントラクトによる記録処理を実行する(ステップS9)。以下、本記録処理の処理フローを図3を用いて説明する。
まず、コントラクト起動サーバ11は、記録要求の要求元の実行権限を確認する処理を実行する(図3:ステップS21)。例えば、ID及びパスワードのようなもので権限を確認しても良いし、他の周知の方法などで確認しても良い。もし、実行権限がないと判断した場合には、以降の処理は行われない。一方、実行権限がある場合には、コントラクト起動サーバ11は、データH1及び分散台帳上のその識別子I1を含むトランザクションを生成し、当該トランザクションについての記録スマートコントラクトの起動を、ブロックチェーンネットワーク17における各ピアに指示する(ステップS23)。
ブロックチェーンネットワーク17における各ピアのサーバ15及び16は、コントラクト起動サーバ11による指示に応じて、データH1及び識別子I1を含むトランザクションについて記録スマートコントラクトを起動させる(ステップS25)。そうすると、各ピアのサーバ15及び16は、公開鍵D1のハッシュ化データであるデータH1及びその識別子I1を、分散台帳のデータベースに登録するシミュレーションを実行する(ステップS27)。そして、各ピアのサーバ15及び16は、シミュレーション結果を、ブロックチェーンネットワーク17に送信する(ステップS29)。
そうして、各ピアのサーバ15及び16は、自らのシミュレーション結果と受信したシミュレーション結果を照合して、規定された条件(例えば、全ピアで同じ結果)を満たす場合には、記録スマートコントラクト実行成功として、データH1及び識別子I1を含むデータを分散台帳のデータベースに登録する(ステップS31)。そして、各ピアのサーバ15及び16は、識別子I1を含むデータを、スマートコントラクト起動サーバ11に送信する(ステップS33)。
スマートコントラクト起動サーバ11は、各ピアのサーバ15及び16から、識別子I1を含むデータ(例えばデータH1を含むようにしても良い)を受信する(ステップS35)。なお、記録スマートコントラクト実行失敗ということになると、その旨スマートコントラクト起動サーバ11に通知される。この処理が終了すると、図2の処理に戻る。
ステップS9の後に、記録スマートコントラクト実行成功の場合には、スマートコントラクト起動サーバ11は、識別子I1を含むデータを、要求元の処理サーバ12に送信する(ステップS11)。なお、記録スマートコントラクト実行失敗の場合には、その旨要求元の処理サーバ12に通知する。成功の場合、要求元の処理サーバ12は、スマートコントラクト起動サーバ11から、識別子I1を含むデータを受信する(ステップS13)。そして、処理サーバ12は、測定器14が接続される処理サーバ13に、識別子I1及び公開鍵D1を送信する(ステップS15)。
これによって、公開鍵D1そのものではなく、公開鍵D1のハッシュ値H1が、分散台帳上に登録されるようになる。公開鍵D1は公開されるものではあるが、必要とする者のみに配布するものである。
次に、図4を用いて、試験又は検査に関するデータを、分散台帳のデータベースに登録する処理について説明する。
なお、事前に、処理サーバ13は、処理サーバ12から識別子I1及び公開鍵D1を受信し、データ格納部に格納しておく(ステップS41)。その後、測定器14により測定などが行われる。測定器14は、測定を行うと、その測定値のハッシュ値を算出して、そのハッシュ値に秘密鍵で暗号化することで得られるデジタル署名を生成する。
そして、処理サーバ13は、測定器14からデジタル署名付き測定値を取得する(ステップS43)。そして、処理サーバ13は、デジタル署名付き測定値、識別子I1及び公開鍵D1、測定の関連データを含むデータD0を生成する(ステップS45)。
関連データは、以下のようなデータを含む。
測定日
測定者の識別
測定器の識別
測定アイテムの識別
測定時の写真データ
測定アイテムに埋め込まれたIC(Integrated Circuit)チップを用いた認証データ
これ以外にも、測定者の資格データ、試験又は検査所が受けた第三者による審査に関するデータ、実験環境のデータを含むようにしても良い。これらのデータについては、予めフォーマットを決めておき、データD0を形成する。
その後、処理サーバ13は、データD0をハッシュ化して、データH0を生成する(ステップS47)。そして、処理サーバ13は、データH0を含む記録要求を、スマートコントラクト起動サーバ11に送信する(ステップS49)。スマートコントラクト起動サーバ11は、処理サーバ13から、データH0を含む記録要求を受信し(ステップS51)、データ記録のための記録スマートコントラクトによる記録処理を実行する(ステップS53)。この記録処理については、図3に示した処理と同様である。但し、データH0に対して分散台帳上の識別子はI0とする。
ステップS53で記録スマートコントラクト実行成功の場合、スマートコントラクト起動サーバ11は、識別子I0を含むデータ(データH0を含むようにしても良い)を、処理サーバ13に送信する(ステップS55)。処理サーバ13は、スマートコントラクト起動サーバ11から、識別子I0を含むデータを受信し、データ格納部に格納する(ステップS57)。
これによって、測定値を含む試験又は検査データそのものを分散台帳に登録するのではなく、測定値などを含む試験又は検査データのハッシュ値H0を登録することにより、試験又は検査データの機密性を確保できるようになる。但し、これだけで機密性の確保が完全になるわけではない。
次に、図5及び図6を用いて、分散台帳のデータベースに記録したデータH1又はH0を、無効化する処理について説明する。以下では、データH1の無効化について説明する。
本実施の形態では、測定器14に不正操作のタンパ検知機能を持たせ、不正操作のタンパ検知がなされると、例えば処理サーバ12に通知がなされるものとする。これによって、処理サーバ12は、測定器14から不正操作の通知を受信する(ステップS61)。そうすると、処理サーバ12は、測定器14に対応する識別子I1を特定する(ステップS63)。これは、測定器14のための公開鍵D1のハッシュ値H1を分散台帳に登録できた場合に得られるもので、データ格納部に格納しておくことで、本ステップに対処する。なお、不正操作のタンパ検知だけではなく、何らかの理由で無効化を要する事象を検出した場合も、同様に行う。
そして、処理サーバ12は、識別子I1を含む無効化要求をスマートコントラクト起動サーバ11に送信する(ステップS65)。スマートコントラクト起動サーバ11は、処理サーバ12から、識別子I1を含む無効化要求を受信し(ステップS67)、データ変更のための変更スマートコントラクトによる変更処理を実行する(ステップS69)。本変更処理については、図6を用いて説明する。
スマートコントラクト起動サーバ11は、要求元の処理サーバ12について、実行権限の確認を行う(図6:ステップS81)。実行権限がないと判断されると、以降の処理は行われない。実行権限があると確認されると、識別子I1を含む無効化トランザクションを生成し、当該無効化トランザクションについての変更スマートコントラクトの起動を、ブロックチェーンネットワーク17における各ピアに指示する(ステップS83)。
ブロックチェーンネットワーク17における各ピアのサーバ15及び16は、コントラクト起動サーバ11による指示に応じて、識別子I1を含む無効化トランザクションについて変更スマートコントラクトを起動させる(ステップS85)。そうすると、各ピアのサーバ15及び16は、識別子I1で特定され且つ公開鍵D1のハッシュ値であるデータD1の無効を、分散台帳のデータベースに登録するシミュレーションを実行する(ステップS87)。そして、各ピアのサーバ15及び16は、シミュレーション結果を、ブロックチェーンネットワーク17に送信する(ステップS89)。
そうして、各ピアのサーバ15及び16は、自らのシミュレーション結果と受信したシミュレーション結果を照合して、規定された条件(例えば、全ピアで同じ結果)を満たす場合には、変更スマートコントラクト実行成功として、識別子I1を含むデータ(例えば、識別子I1で特定されるデータD1の無効化を表すデータ)を分散台帳のデータベースに登録する(ステップS91)。そして、各ピアのサーバ15及び16は、識別子I1を含むデータを、スマートコントラクト起動サーバ11に送信する(ステップS93)。
スマートコントラクト起動サーバ11は、各ピアのサーバ15及び16から、識別子I1を含むデータを受信する(ステップS95)。なお、変更スマートコントラクト実行失敗ということになると、その旨スマートコントラクト起動サーバ11に通知される。この処理が終了すると、図5の処理に戻る。
ステップS69の後に、変更スマートコントラクト実行成功の場合には、スマートコントラクト起動サーバ11は、識別子I1を含むデータを、要求元の処理サーバ12に送信する(ステップS71)。なお、変更スマートコントラクト実行失敗の場合には、その旨要求元の処理サーバ12に通知する。成功の場合、要求元の処理サーバ12は、スマートコントラクト起動サーバ11から、識別子I1を含むデータを受信する(ステップS73)。これにて、処理サーバ12では、不正操作が行われた測定器14についての公開鍵D1のハッシュ値H1が無効化されたことが認識される。
なお、このデータの無効化は、過去に遡ってデータの有効性を真から偽に切り替えるのではなく、ある時点においてデータの有効性を真から偽に変更するものである。このため、どの時点でデータを変更したのかを、管理者等はブロックチェーンの分散台帳においてトランザクションの履歴の記録から確認することができる。
次に、試験又は検査データの検証処理について、図7乃至図12を用いて説明する。
まず、処理サーバ13は、データD0及び識別子I0を含む検証データDXを生成する(ステップS101)。なお、データD0は、上でも述べたように、デジタル署名付き測定値、識別子I1及び公開鍵D1、測定の関連データを含む。識別子I0は、データD0のハッシュ値H1を分散台帳上で識別するための識別子である。
また、処理サーバ13は、検証結果暗号化用の共通鍵KXを生成する(ステップS103)。この共通鍵KXは、AES(Advanced Encryption Standard)の鍵である。また、サーバ15は検証スマートコントラクトにて用いられる公開鍵P1とそれと対になる秘密鍵V1とを、サーバ16は公開鍵P2とそれと対になる秘密鍵V2とを予め生成しておく。スマートコントラクト起動サーバ11は、公開鍵P1及びP2を保持しており、例えば、処理サーバ13からの要求に応じて、各ピアのサーバ15及び16の公開鍵P1及びP2を送信する(ステップS105)。処理サーバ13は、スマートコントラクト起動サーバ11から、各ピアの検証用の公開鍵P1及びP2を取得する(ステップS107)。
そして、処理サーバ13は、公開鍵P0及び秘密鍵V0を生成し(ステップS109)、さらに、秘密鍵V0と各ピアの公開鍵P1及びP2から、各ピアの共通鍵K1及びK2を生成する(ステップS111)。本実施の形態では、公開鍵P1及びP2を例えば楕円曲線暗号による各ピアの公開鍵として、同じく秘密鍵V0を例えば楕円曲線暗号によるサーバ13の秘密鍵とし、楕円曲線ディフィーヘルマン鍵共有により、共通鍵K1及びK2を生成する。その後、処理サーバ13は、データDXと共通鍵KXを含むデータを、各共通鍵K1及びK2で暗号化することで、ピアのサーバ15のための暗号化データE1とピアのサーバ16のための暗号化データE2を生成する(ステップS113)。そして処理は、端子Aを介して図8の処理に移行する。
このような暗号化を行うのは、処理サーバ13、各ピアのサーバ15及び16が、いつでも通信用の公開鍵と秘密鍵のペアを変更できるようにするためである。例えば、処理サーバ13、各ピアのサーバ15又は16の秘密鍵が漏洩した場合でも、即座に漏洩が起きた当該処理サーバ又はピアの鍵ペアを個別に変更することで、それ以降機密性を保持しつつ通信できるようになる。暗号化手法は上記の方法に限られるものではなく、他の方法を採用しても良い。
その後、処理サーバ13は、暗号化データE1及びE2と公開鍵P0を含むデータEXを生成する(ステップS115)。この公開鍵P0は、共通鍵生成のためのデータである。そして、処理サーバ13は、データEXを含む検証要求を、スマートコントラクト起動サーバ11に送信する(ステップS117)。スマートコントラクト起動サーバ11は、データEXを含む検証要求を受信し(ステップS119)、検証要求に応じて、検証スマートコントラクトによる検証処理を実行する(ステップS121)。以下、検証処理について、図9乃至図12を用いて説明する。
スマートコントラクト起動サーバ11は、要求元の処理サーバ13について、実行権限の確認を行う(図9:ステップS131)。実行権限がないと判断されると、以降の処理は行われない。実行権限があると確認されると、スマートコントラクト起動サーバ11は、受信したデータEXを、記憶装置に格納する(ステップS133)。データEXをスマートコントラクトの入力とした場合、ハイパーレッジャーファブリックを用いたブロックチェーンシステムでは、分散台帳にデータEXが残ってしまう。そうすると、データEXは、各ピアのサーバ15及び16の所有者により、いつでも復号化できてしまう。本実施の形態では、データEXに含まれるデータDXが漏洩してしまうことを防ぐために、データEXをスマートコントラクトの入力に含めない。その代わりに、スマートコントラクト内のリクエストにより、ピアのサーバ15及び16に引き渡すことにし、スマートコントラクト起動サーバ11の記憶装置に一時的に格納しておく。
そして、スマートコントラクト起動サーバ11は、識別子ICを含む検証トランザクションを生成し、当該検証トランザクションについての検証スマートコントラクトの起動を、ブロックチェーンネットワーク17における各ピアに指示する(ステップS135)。なお、スマートコントラクト起動サーバ11と各ピアのサーバ15及び16との間の通信の正当性を確認する目的で、検証トランザクションに乱数を含めるようにしても良い。
ブロックチェーンネットワーク17における各ピアのサーバ15及び16は、コントラクト起動サーバ11による指示に応じて、識別子ICを含む検証トランザクションについて検証スマートコントラクトを起動させる(ステップS137)。そうすると、各ピアのサーバ15及び16は、検証スマートコントラクトの一部として、メモリのアクセス保護の設定を確認する(ステップS139)。
例えば、ピアのサーバ15及び16のOS(Operating System)がUbuntu 18.04 LTSであるとすると、スマートコントラクトの中で、サーバ15及び16自身の仮想メモリへのアクセス設定を確認する。具体的には、/proc/sys/kernel/yama/ptrace_scopeの設定が「0」でないことを確認する。/proc/sys/kernel/yama/ptrace_scopeの設定が「0」である場合には、以後の処理は行われず、検証は行われない。システムに要求するセキュリティの水準に応じて、さらに厳重な管理を求める設定の確認及びその設定変更を実施してもよい。このようなメモリのアクセス保護の設定を確認することで、ピアのサーバ15及び16の他のプロセスによりスマートコントラクトで検証するデータが盗み見られるのを防止する。
その後、サーバ15及び16は、秘密鍵VX1及び公開鍵PX1のペアを生成する(ステップS141)。なお、サーバ16については、秘密鍵VX2及び公開鍵PX2を生成するが、以下の説明では、主にサーバ15が生成する秘密鍵VX1及び公開鍵PX1を用いて説明することとし、適宜、サーバ16について説明するものとする。秘密鍵VX1及び公開鍵PX1と秘密鍵VX2及び公開鍵PX2は、一時的な使い捨ての鍵である。そして、サーバ15及び16は、公開鍵PX1(サーバ16の場合には公開鍵PX2)と要求元の正当性を確認するためのデータ(確認データ)とを含むデータ要求を、スマートコントラクト起動サーバ11に送信する(ステップS143)。確認データは、例えば、トランザクションに含まれる乱数のデジタル署名(サーバ15の場合には、乱数のハッシュ値を、サーバ15が公開鍵P1に対応する秘密鍵V1で暗号化したもの。サーバ16の場合には、乱数のハッシュ値を、サーバ16が公開鍵P2に対応する秘密鍵V2で暗号化したもの)であっても良い。このデジタル署名により、データ要求がピアのサーバ15又は16からの正当な要求であることが確認できる。
スマートコントラクト起動サーバ11は、サーバ15及び16から、公開鍵PX1(サーバ16の場合には公開鍵PX2)及び確認データを含むデータ要求を受信し(ステップS144)、確認データを用いてデータ要求元の正当性の確認を行う(ステップS145)。例えば、デジタル署名を検証(デジタル署名を公開鍵P1(サーバ16の場合には公開鍵P2)で復号して乱数のハッシュ値と比較する)することで、正当性の確認を行うようにしても良い。なお、正当性の確認に失敗すれば、後の処理は打ち切られる。正当性の確認に成功すれば、処理は、端子Bを介して図10の処理に移行する。
図10の処理に移行して、スマートコントラクト起動サーバ11は、秘密鍵VS及び公開鍵PSのペアを生成する(ステップS147)。さらに、スマートコントラクト起動サーバ11は、秘密鍵VSと公開鍵PX1から、サーバ15及び16の各々について、例えば楕円曲線ディフィーヘルマン鍵共有により、AES暗号の共通鍵KS1を生成する(ステップS149)。サーバ16については秘密鍵VSと公開鍵PX2から共通鍵KS2を生成する。これらの共通鍵KS1及びKS2は、検証スマートコントラクト内における一時的な使い捨ての共通鍵である。そして、スマートコントラクト起動サーバ11は、データEXを共通鍵KS1で暗号化し、暗号化データES1を生成する(ステップS151)。サーバ16については、データEXを共通鍵KS2で暗号化して暗号化データES2を生成する。
その後、スマートコントラクト起動サーバ11は、暗号化データES1及び公開鍵PSを、データ要求元のサーバ15に返信する(ステップS153)。サーバ16については、暗号化データES2及び公開鍵PSを送信する。なお、全てのサーバについて二重の暗号化データES1及びES2を送信した後に、データEXを削除することが好ましい。
一方、各ピアのサーバ15及び16は、スマートコントラクト起動サーバ11から、暗号化データES1又はES2と公開鍵PSを受信する(ステップS155)。そして、各ピアのサーバ15及び16は、秘密鍵VX1又はVX2と公開鍵PSから、例えば楕円曲線ディフィーヘルマン鍵共有により、共通鍵KS1又はKS2を生成する(ステップS157)。これら共通鍵VX1又はVX2についても、検証スマートコントラクト内における一時的な使い捨ての共通鍵である。そして、各ピアのサーバ15及び16は、共通鍵KS1又はKS2で暗号化データES1又はES2を復号し、データEXを生成する(ステップS159)。処理は、端子Cを介して図11の処理に移行する。このような一時的な使い捨ての共通鍵を、検証スマートコントラクト内において生成して用いることで、各ピアがデータES1又はES2を取得した場合でも、スマートコントラクトによる検証以外の目的でデータEXを復号することを防止する。なお、データEXは、上で述べたとおり暗号化データE1及びE2と公開鍵P0を含む。
図11の処理に移行して、各ピアのサーバ15及び16は、データEXに含まれる公開鍵P0と秘密鍵V1又はV2から、例えば楕円曲線ディフィーヘルマン鍵共有により、共通鍵K1又はK2を生成する(ステップS161)。そして、各ピアのサーバ15及び16は、データEXに含まれる暗号化データE1又はE2を共通鍵K1又はK2で復号し、データDXを生成する(ステップS163)。なお、データE1又はE2を復号すると、共通鍵KXも復号される。データDXは、データD0及び識別子I0を含む。また、データD0は、デジタル署名付き測定値、識別子I1及び公開鍵D1、測定の関連データを含む。識別子I0は、データD0のハッシュ値H0を分散台帳上で識別するための識別子である。これにより具体的な検証を行う準備が完了したことになる。
各ピアのサーバ15及び16は、データDXに含まれる公開鍵D1のハッシュ値を生成し、識別子I1で特定され且つ分散台帳に登録されたハッシュ値と一致するか否か判断することで、公開鍵D1のハッシュ値が分散台帳に登録済みであるか否かを検証する(ステップS165)。なお、識別子I1で特定されるハッシュ値が有効であるか否かをも確認し、無効となっていれば検証失敗とする。これにより、公開鍵D1の真正性が検証できる。
また、各ピアのサーバ15及び16は、データDXに含まれる試験又は検査データD0のハッシュ値を生成し、識別子I0で特定され且つ分散台帳に登録されたハッシュ値と一致するか否かを判断することで、試験又は検査データD0のハッシュ値が分散台帳に登録済みであるか否かを検証する(ステップS167)。なお、識別子I0で特定されるハッシュ値が有効であるか否かをも確認し、無効となっていれば検証失敗とする。これにより、データD0の改ざんがないことが検証される。
さらに、各ピアのサーバ15及び16は、データD0に含まれる測定値のデジタル署名を公開鍵D1で復号して、データD0に含まれる測定値から算出される測定値のハッシュ値と一致するか否かを検証する(ステップS169)。これにより、測定値が、正に公開鍵D1に対応する秘密鍵を有する測定器14で測定されたものであることを検証できる。
そして、各ピアのサーバ15及び16は、その他の所定の検証処理を実行する(ステップS171)。例えば、試験又は検査所が第三者認証による審査を規定の期間内に受けているか、実験の環境条件が定められた条件を満たしているか、試験又は検査を実施する要員が資格を有しているか、測定の結果として製品規格等に適合しているかなどを、測定データ及び測定の関連データを用いてチェックする。この目的で測定前に関連データ又はそのハッシュ値を分散台帳のデータベースに登録しておき、そのデータとの一致により真正性を検証することも考えられる。処理は、端子Dを介して図12の処理に移行する。
図12の処理の説明に移行して、各ピアのサーバ15及び16は、検証結果データRCを生成する(ステップS173)。この検証結果データRCについては、例えばテキスト形式やHTML(Hyper Text Markup Language)形式のデータであっても良い。また、検証結果データRCは、各検証項目の真偽を含み、他に数値の他の試験又は検査についての様々なデータを含んでもよい。検証結果データRCは、顧客が自身の依頼した測定アイテムが確かに測定されたことを確認できるようにするための情報をできるだけ多く含むことが望ましい。
各ピアのサーバ15及び16は、検証結果データRCを、データE1又はE2を復号することで得られる共通鍵KXで暗号化し、暗号化データECを生成する(ステップS175)。また、各ピアのサーバ15及び16は、検証結果データRCのハッシュ値HCを生成する(ステップS177)。そして、各ピアのサーバ15及び16は、検証結果データRCのハッシュ値HC及び識別子ICを、分散台帳のデータベースに登録するシミュレーションを実行する(ステップS179)。そして、各ピアのサーバ15及び16は、識別子IC及び暗号化データECを、スマートコントラクト起動サーバ11に送信する(ステップS181)。分散台帳上に検証結果データRCを残さないようにするため、検証スマートコントラクトの出力としてではなく、検証スマートコントラクト内の処理として行う。スマートコントラクト起動サーバ11は、各ピアのサーバ15及び16から、識別子IC及び暗号化データECを受信する(ステップS183)。なお、検証スマートコントラクト実行失敗ということになると、その旨スマートコントラクト起動サーバ11に通知される。そして、図8の処理に戻る。
さらに、各ピアのサーバ15及び16は、シミュレーション結果を、ブロックチェーンネットワーク17に送信する(ステップS185)。そして、各ピアのサーバ15及び16は、自らのシミュレーション結果と受信したシミュレーション結果を照合して、規定された条件(例えば、全ピアで同じ結果)を満たす場合には、検証スマートコントラクト実行成功として、ハッシュ値HC及び識別子ICを含むデータを分散台帳のデータベースに登録する(ステップS187)。これにて、後に識別子ICによって、ハッシュ値HCを得ることができるため、検証結果データRCの検証も行うことが出来るようになる。
図8の処理の説明に戻って、検証スマートコントラクト実行成功の場合には、スマートコントラクト起動サーバ11は、識別子IC及び暗号化データECを、要求元の処理サーバ13に送信する(ステップS123)。なお、検証スマートコントラクト実行失敗の場合には、その旨要求元の処理サーバ13に通知する。成功の場合、要求元の処理サーバ13は、スマートコントラクト起動サーバ11から、識別子IC及び暗号化データECを受信する(ステップS125)。そして、処理サーバ13は、共通鍵KXでデータECを復号し、検証結果データRCを取得する(ステップS127)。その後、処理サーバ13は、顧客に識別子IC及び検証結果データRCを通知する(ステップS129)。このステップ自体は処理サーバ13ではなく、他の端末などで行うようにしても良い。いずれにせよ、試験又は検査所の顧客は、分散台帳上の識別子ICと検証結果データRCを得ることになる。
次に、図13を用いて、試験又は検査所の顧客がユーザ端末18を用いて、検証結果データRCの正当性を確認する際の処理について説明する。例えば、ユーザ端末18は、処理サーバ13から、識別子IC及び検証結果データRCを受信する(ステップS191)。そうして、顧客の指示に応じて、ユーザ端末18は、識別子ICに対応するデータを、スマートコントラクト起動サーバ11に要求する(ステップS193)。
スマートコントラクト起動サーバ11は、ユーザ端末18からの要求に応じて、閲覧スマートコントラクトを起動させ、いずれかのピアのサーバに識別子ICに対応するデータの読み出しを行わせ、当該データを取得する。そして、スマートコントラクト起動サーバ11は、要求元のユーザ端末18に、読み出したデータを返信する(ステップS195)。閲覧スマートコントラクトの処理については、データの読み出しに過ぎず、従来技術と同様であるから、詳細については省略する。なお、識別子ICで特定され且つ分散台帳に登録されたハッシュ値HCも、無効化される場合もあるので、有効無効の別を表すデータについても取得する。
そして、ユーザ端末18は、スマートコントラクト起動サーバ11から、識別子ICに対応するデータを受信し(ステップS197)、検証結果データRCから算出される検証結果データRCのハッシュ値と、受信したデータとが一致するかで検証を行う(ステップS199)。一致していれば、試験又は検査所から受け取った検証結果データRCは、真正なものであることが確認できる。また、不一致であれば、検証結果データRCには、改ざんがなされていることになる。また、分散台帳から読み出されたデータが無効化されていれば、検証結果データRCも無効ということになる。
このような実施の形態によれば、ブロックチェーン上の分散台帳には、ハッシュ値のみを残すようにし、平文のデータや暗号化したデータも残さないようにしている。これにより、試験又は検査所は、秘匿すべき情報は秘匿したまま、共有しても良いデータのみ測定器メーカと共有することができるようになる。
また、顧客は、自身のアイテムについての情報は測定器メーカに知られることなく、自身のアイテムについて測定器メーカが登録した測定器によって実際に測定され、ねつ造も改ざんもされていないことを確かめることができる。
測定器メーカにとっては、顧客が依頼した測定アイテムと結びつけられたデータの検証が可能となり、サービスの付加価値を高めることができる。また、顧客の情報はスマートコントラクトの中でしか取り扱わないために、情報管理コストを小さくできる。
試験又は検査所は、測定器の公開鍵の情報は顧客に秘匿することができる。本実施の形態によれば、測定についての様々な情報の機密性を確保したまま、この測定が正しく行われたことは顧客に知らせることができる。
また、本実施の形態によれば、コンソーシアムが提供するクライアント&サーバ方式のサービスと比べ、検証プログラムの改ざんが難しいシステムを提供できる。改ざんした検証プログラムを用いた場合、クライアント&サーバ方式ではその痕跡が残らないが、ブロックチェーンネットワークでは、検証プログラムをスマートコントラクトとして配備することで、分散台帳上の記録に残る。このために、記録を残さず不正にプログラムを入れ替えることはできない。
さらに、本実施の形態によれば、コンソーシアムが提供するクライアント&サーバ方式のサービスと比べ、試験又は検査データの機密性を高めることができる。本実施の形態で用いた暗号化方式により、検証を実施する以外のピアは暗号化された試験又は検査データを入手したとしても復号化が困難である。このため、本実施の形態によれば、ブロックチェーンネットワークのピアがスマートコントラクト内で行う以外にデータを閲覧されることはない。
以上、本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、処理フローも一例であって、処理結果が変わらない限り、複数のステップを並列に実行したり、実行順番を入れ替えても良い。なお、処理サーバ12及び13、各ピアのサーバ15及び16、スマートコントラクト起動サーバ11は、処理フローにおいて示した各ステップのうち担当するステップを実行するための機能構成を有する。また、処理サーバ12及び13、各ピアのサーバ15及び16、スマートコントラクト起動サーバ11は、1台のコンピュータで実装される場合もあれば、複数台のコンピュータで実装される場合もある。また、仮想化されている場合もある。
上で述べた処理サーバ12及び13、各ピアのサーバ15及び16、スマートコントラクト起動サーバ11は、コンピュータ装置であって、図14に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。なお、HDDはソリッドステート・ドライブ(SSD:Solid State Drive)などの記憶装置でもよい。オペレーティング・システム(OS:Operating System)及び本発明の実施の形態における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
なお、上で述べたような処理を実行することで用いられるデータは、処理途中のものであるか、処理結果であるかを問わず、メモリ2501又はHDD2505等の記憶装置に格納される。
以上述べた実施の形態をまとめると以下のようになる。
本実施の形態に係る情報処理方法は、ブロックチェーンネットワークに属するピアに対応し、検証用のスマートコントラクトの処理を実行する各第1の情報処理装置(例えば、ピアのサーバ15及び16)によって実行されるものである。そして、測定器の測定値を含む第1データ(例えばデータD0)のハッシュ値が分散台帳上に登録されている状態において、(A)第1データと第1データのハッシュ値の分散台帳上の識別子(例えば、識別子I0)とを含み且つ各第1の情報処理装置用の共通鍵(例えば、共通鍵K1又はK2)で暗号化された検証データ(例えば、データE1及びE2)を含む第2データ(例えばデータEX)により試験又は検査の検証を行うように要求された第2の情報処理装置(例えば、スマートコントラクト起動サーバ11)から検証の指示を受信すると、検証のためのデータ要求を第2の情報処理装置に送信するステップと、(B)第2の情報処理装置から第2データを受信して、自装置用の共通鍵で復号することで、検証データを取得するステップと、(C)検証データに含まれる第1データのハッシュ値が、分散台帳に登録されているもの(例えば、H0)と同じであることを検証することを含む検証処理を実行するステップと、(D)検証処理の結果を、第2の情報処理装置に送信するステップと、(E)検証用のスマートコントラクトの処理が成功した場合、検証処理の結果のハッシュ値を分散台帳に登録するステップとを含む。
測定器の測定値を含む第1データについては、それ自身ではなくそのハッシュ値が分散台帳に登録される。また、検証データは暗号化されて第2の情報処理装置経由で第1の情報処理装置に送られ、第1の情報処理装置でのみ復号できるが、分散台帳上に記録されることはない。検証処理の結果についても、それ自身ではなくそのハッシュ値を分散台帳上に記録するようになっている。このように、検証データの機密性を保持したまま試験又は検査の正当性の検証が行われるようになる。
上記情報処理方法において、測定器で用いられる秘密鍵に対応する公開鍵のハッシュ値(例えば、ハッシュ値H1)がさらに分散台帳上に登録されている場合もある。この場合、上記第1データが、公開鍵(例えば、公開鍵D1)と、公開鍵のハッシュ値の分散台帳上の識別子(例えば、識別子I1)とをさらに含み、上記検証処理が、検証データに含まれる第1データが含む公開鍵のハッシュ値が、分散台帳に登録されているものと同じであることを検証する処理をさらに含むようにしても良い。これにより、公開鍵の真正性が確認できる。
さらに、上記情報処理方法において、第1データが、秘密鍵を用いて測定器で生成された測定値に対するデジタル署名とをさらに含むようにしても良い。この場合、上記検証処理が、第1データに含まれる測定値から得られる測定値のハッシュ値と、測定値に対するデジタル署名を公開鍵で復号した結果とが同じであることを検証する処理をさらに含むようにしても良い。これによって、送られてきた測定値を測定した測定器が、登録済みの測定器で測定されたことが検証できる。
また、上記情報処理方法において、上記第1データが、測定値以外の試験又は検査に関連する関連データをさらに含むようにしても良い。この場合、上記検証処理が、第1データに含まれる関連データが、予め定められた条件を満たしているか否かを検証する処理をさらに含むようにしても良い。この目的で測定前に関連データ又はそのハッシュ値を分散台帳のデータベースに登録しておき、そのデータとの一致により真正性を検証するなど、予め定められた付加的な検証処理をも行うようにしても良い。
なお、上で述べた検証データが、検証処理の結果を返信するための第2の共通鍵を含んでいる場合もある。この場合、上記検証処理の結果を、当該第2の共通鍵で暗号化して、第2の情報処理装置に送信する。これによって、検証処理の結果についても、機密性が保持される。
さらに、上記検証データが、第2の情報処理装置に検証を要求した第3の情報処理装置からの共通鍵生成用のデータを含むようにしても良い。この場合、上記情報処理方法は、上記共通鍵生成用のデータを用いて、自装置用の共通鍵を生成するステップをさらに含むようにしても良い。これによって、共通鍵自体を交換する手間を省略できる。
さらに、上記検証処理の結果を第2の情報処理装置に送信する処理は、検証用のスマートコントラクトの処理の成否にかかわらず行われることが好ましい。検証処理の結果それ自身を分散台帳に登録しないようにするためである。
なお、第2の情報処理装置から第1の情報処理装置への第2データの送信は、一時的な共通鍵を用いた共通鍵暗号方式にて第2データを暗号化した上で行われる場合もある。例えば、第2の情報処理装置では、第1の情報処理装置が検証用のスマートコントラクトの処理内において生成した公開鍵と第2の情報処理装置の秘密鍵から共通鍵を生成し、第1の情報処理装置では、第2の情報処理装置の公開鍵と第1の情報処理装置が検証用のスマートコントラクトの処理内において生成した秘密鍵から同じ共通鍵を生成して、暗号化及び復号化しても良い。このようにすれば、ブロックチェーンネットワークの管理者だけではなくブロックチェーンネットワークのピアに対しても、検証データの機密性を保持できる。
また、上で述べたような情報処理方法を実行する情報処理装置は、1台のコンピュータで実現される場合もあれば、複数台のコンピュータで実現される場合もあり、それらを合わせて情報処理システム又は単にシステムと呼ぶものとする。
10 システム 11 スマートコントラクト起動サーバ
12,13 処理サーバ 14 測定器
15,16 ピアのサーバ 17 ブロックチェーンネットワーク

Claims (10)

  1. ブロックチェーンネットワークに属するピアに対応し、検証用のスマートコントラクトの処理を実行する各第1の情報処理装置が、
    測定器の測定値を含む第1データのハッシュ値が分散台帳上に登録されている状態において、
    前記第1データと前記第1データのハッシュ値の分散台帳上の識別子とを含み且つ各前記第1の情報処理装置用の共通鍵で暗号化された検証データを含む第2データにより試験又は検査の検証を行うように要求された第2の情報処理装置から検証の指示を受信すると、検証のためのデータ要求を前記第2の情報処理装置に送信するステップと、
    前記第2の情報処理装置から前記第2データを受信して、自装置用の共通鍵で復号することで、前記検証データを取得するステップと、
    前記検証データに含まれる前記第1データのハッシュ値が、前記分散台帳に登録されているものと同じであることを検証することを含む検証処理を実行するステップと、
    前記検証処理の結果を、前記第2の情報処理装置に送信するステップと、
    前記検証用のスマートコントラクトの処理が成功した場合、前記検証処理の結果のハッシュ値を前記分散台帳に登録するステップと、
    を含む情報処理方法。
  2. 前記測定器で用いられる秘密鍵に対応する公開鍵のハッシュ値がさらに前記分散台帳上に登録されており、
    前記第1データが、前記公開鍵と、前記公開鍵のハッシュ値の前記分散台帳上の識別子とをさらに含み、
    前記検証処理が、
    前記検証データに含まれる前記第1データが含む前記公開鍵のハッシュ値が、前記分散台帳に登録されているものと同じであることを検証する処理をさらに含む
    請求項1記載の情報処理方法。
  3. 前記第1データが、前記秘密鍵を用いて前記測定器で生成された前記測定値に対するデジタル署名をさらに含み、
    前記検証処理が、前記第1データに含まれる前記測定値から得られる前記測定値のハッシュ値と、前記測定値に対するデジタル署名を前記公開鍵で復号した結果とが同じであることを検証する処理をさらに含む
    請求項2記載の情報処理方法。
  4. 前記第1データが、測定値以外の試験又は検査に関連する関連データをさらに含み、
    前記検証処理が、
    前記第1データに含まれる前記関連データが、予め定められた条件を満たしているか否かを検証する処理をさらに含む
    請求項1乃至3のいずれか1つ記載の情報処理方法。
  5. 前記検証データが、検証処理の結果を返信するための第2の共通鍵を含んでおり、
    前記検証処理の結果を、当該第2の共通鍵で暗号化して、前記第2の情報処理装置に送信する
    ことを特徴とする請求項1乃至4のいずれか1つ記載の情報処理方法。
  6. 前記検証データが、前記第2の情報処理装置に検証を要求した第3の情報処理装置からの共通鍵生成用のデータを含み、
    前記共通鍵生成用のデータを用いて、前記自装置用の共通鍵を生成するステップ
    をさらに含む請求項1乃至5記載の情報処理方法。
  7. 前記検証処理の結果を、前記第2の情報処理装置に送信する処理を、前記検証用のスマートコントラクトの処理の成否にかかわらず行う
    ことを特徴とする請求項1乃至6のいずれか1つ記載の情報処理方法。
  8. 前記第2の情報処理装置から前記第1の情報処理装置への前記第2データの送信は、一時的な共通鍵を用いた共通鍵暗号方式にて前記第2データを暗号化した上で行われる
    請求項1乃至7のいずれか1つ記載の情報処理方法。
  9. ブロックチェーンネットワークに属するピアに対応し、検証用のスマートコントラクトの処理を実行する第1の情報処理装置に、
    測定器の測定値を含む第1データのハッシュ値が分散台帳上に登録されている状態において、
    前記第1データと前記第1データのハッシュ値の分散台帳上の識別子とを含み且つ前記第1の情報処理装置用の共通鍵で暗号化された検証データを含む第2データにより試験又は検査の検証を行うように要求された第2の情報処理装置から検証の指示を受信すると、検証のためのデータ要求を前記第2の情報処理装置に送信するステップと、
    前記第2の情報処理装置から前記第2データを受信して、自装置用の共通鍵で復号することで、前記検証データを取得するステップと、
    前記検証データに含まれる前記第1データのハッシュ値が、前記分散台帳に登録されているものと同じであることを検証することを含む検証処理を実行するステップと、
    前記検証処理の結果を、前記第2の情報処理装置に送信するステップと、
    前記検証用のスマートコントラクトの処理が成功した場合、前記検証処理の結果のハッシュ値を前記分散台帳に登録するステップと、
    を実行させるためのプログラム。
  10. ブロックチェーンネットワークに属するピアに対応し、検証用のスマートコントラクトの処理を実行する情報処理システムであって、
    測定器の測定値を含む第1データのハッシュ値が分散台帳上に登録されている状態において、前記第1データと前記第1データのハッシュ値の分散台帳上の識別子とを含み且つ前記情報処理システム用の共通鍵で暗号化された検証データを含む第2データにより試験又は検査の検証を行うように要求された情報処理装置から検証の指示を受信すると、検証のためのデータ要求を前記情報処理装置に送信する手段と、
    前記情報処理装置から前記第2データを受信して、自システム用の共通鍵で復号することで、前記検証データを取得する手段と、
    前記検証データに含まれる前記第1データのハッシュ値が、前記分散台帳に登録されているものと同じであることを検証することを含む検証処理を実行する手段と、
    前記検証処理の結果を、前記情報処理装置に送信する手段と、
    前記検証用のスマートコントラクトの処理が成功した場合、前記検証処理の結果のハッシュ値を前記分散台帳に登録する手段と、
    を有する情報処理システム。
JP2021052208A 2021-03-25 2021-03-25 情報処理方法及び情報処理システム Active JP7478440B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021052208A JP7478440B2 (ja) 2021-03-25 2021-03-25 情報処理方法及び情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021052208A JP7478440B2 (ja) 2021-03-25 2021-03-25 情報処理方法及び情報処理システム

Publications (2)

Publication Number Publication Date
JP2022149878A JP2022149878A (ja) 2022-10-07
JP7478440B2 true JP7478440B2 (ja) 2024-05-07

Family

ID=83465078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021052208A Active JP7478440B2 (ja) 2021-03-25 2021-03-25 情報処理方法及び情報処理システム

Country Status (1)

Country Link
JP (1) JP7478440B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024122044A1 (ja) * 2022-12-09 2024-06-13 日本電気株式会社 車両カルテ検証システム、車両カルテ検証方法、及び、プログラム

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019511758A (ja) 2016-02-08 2019-04-25 モロニー,リンドセイ 文書情報の真正性検証のためのシステムおよび方法
JP2019091464A (ja) 2017-04-03 2019-06-13 株式会社野村総合研究所 検査システム、検査方法、およびコンピュータプログラム
JP2019106639A (ja) 2017-12-13 2019-06-27 富士通株式会社 電子取引装置、電子取引方法及びプログラム
US20190251470A1 (en) 2018-02-14 2019-08-15 Lucid Circuit, Inc. Systems and methods for data collection and analysis at the edge
JP2020057881A (ja) 2018-09-30 2020-04-09 株式会社ミツトヨ データ管理システム
JP2020527298A (ja) 2019-03-29 2020-09-03 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること
WO2021021942A1 (en) 2019-07-31 2021-02-04 Magic Leap, Inc. User data management for augmented reality using a distributed ledger
JP2021515427A (ja) 2018-06-29 2021-06-17 アドバンスド ニュー テクノロジーズ カンパニー リミテッド ブロックチェーンベースのデータ検証方法および装置、ならびに電子デバイス

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019511758A (ja) 2016-02-08 2019-04-25 モロニー,リンドセイ 文書情報の真正性検証のためのシステムおよび方法
JP2019091464A (ja) 2017-04-03 2019-06-13 株式会社野村総合研究所 検査システム、検査方法、およびコンピュータプログラム
JP2019106639A (ja) 2017-12-13 2019-06-27 富士通株式会社 電子取引装置、電子取引方法及びプログラム
US20190251470A1 (en) 2018-02-14 2019-08-15 Lucid Circuit, Inc. Systems and methods for data collection and analysis at the edge
JP2021515427A (ja) 2018-06-29 2021-06-17 アドバンスド ニュー テクノロジーズ カンパニー リミテッド ブロックチェーンベースのデータ検証方法および装置、ならびに電子デバイス
JP2020057881A (ja) 2018-09-30 2020-04-09 株式会社ミツトヨ データ管理システム
JP2020527298A (ja) 2019-03-29 2020-09-03 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 高度に利用可能な信頼できる実行環境を使用してブロックチェーンネットワークに対するアクセスデータを取得すること
WO2021021942A1 (en) 2019-07-31 2021-02-04 Magic Leap, Inc. User data management for augmented reality using a distributed ledger

Also Published As

Publication number Publication date
JP2022149878A (ja) 2022-10-07

Similar Documents

Publication Publication Date Title
CN110034924B (zh) 一种数据处理方法和装置
CN110011956B (zh) 一种数据处理方法和装置
US20160275461A1 (en) Automated attestation of device integrity using the block chain
CN103051451A (zh) 安全托管执行环境的加密认证
CN109905360B (zh) 数据验证方法及终端设备
JP2010238102A (ja) 情報処理装置、認証システム、認証方法、認証装置及びプログラム
JP3873603B2 (ja) ディジタル署名方法および装置
CN103916246A (zh) 一种基于可信计算的考试防作弊方法及系统
US20230360047A1 (en) Verification system and method
EP4092984A1 (en) Data processing method and apparatus, device and medium
TW202217610A (zh) 鑑認系統及方法
CA3049685A1 (en) Managing distributed content using layered permissions
CN112699353A (zh) 一种金融信息传输方法以及金融信息传输系统
JP7478440B2 (ja) 情報処理方法及び情報処理システム
CN111160997A (zh) 基于区块链的广告监管方法、装置及广告投放系统
TW202215814A (zh) 實體不可仿製之功能
JP5664759B2 (ja) 情報処理装置、認証システム、認証方法、認証装置及びプログラム
TW202215815A (zh) 實體不可仿製之功能
TW202232914A (zh) 實體不可仿製之功能
TW202230397A (zh) 實體不可仿製之功能
JP4626136B2 (ja) ディジタル署名処理システムおよびディジタル署名生成処理プログラムが記憶された記憶媒体
TWM579789U (zh) Electronic contract signing device
US20240137228A1 (en) Puf and blockchain based iot event recorder and method
Hosamani et al. How to Trust a Web Service Monitor Deployed in an Untrusted Environment?
CN115812294A (zh) 使用安全元件和密码的测试结果

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240327

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240415

R150 Certificate of patent or registration of utility model

Ref document number: 7478440

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150