JP2022055060A - 通信プログラム、通信装置、及び通信方法 - Google Patents

通信プログラム、通信装置、及び通信方法 Download PDF

Info

Publication number
JP2022055060A
JP2022055060A JP2020162429A JP2020162429A JP2022055060A JP 2022055060 A JP2022055060 A JP 2022055060A JP 2020162429 A JP2020162429 A JP 2020162429A JP 2020162429 A JP2020162429 A JP 2020162429A JP 2022055060 A JP2022055060 A JP 2022055060A
Authority
JP
Japan
Prior art keywords
check
program
data
server
processing
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.)
Pending
Application number
JP2020162429A
Other languages
English (en)
Inventor
文彦 小櫻
Fumihiko Kozakura
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020162429A priority Critical patent/JP2022055060A/ja
Priority to EP21179900.2A priority patent/EP3975501A1/en
Priority to US17/351,629 priority patent/US20220103372A1/en
Publication of JP2022055060A publication Critical patent/JP2022055060A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

【課題】事業者が実行したデータに対する処理の履歴の信頼性を向上させる通信プログラム、通信装置及び通信方法を提供する。【解決手段】通信装置が有するコンピュータに実行させる通信プログラムであるチェックプログラム受信処理S200において、ブロックチェーンネットワーク上のサーバから、データに対するデータ処理を検証するチェックプログラムを取得するS200-1:Yesと、チェックプログラムを実行S200-2し、チェックプログラムの実行中にデータ処理を実行S200-3することにより生成される検証の結果に、サーバの署名を付与S200-4して、ブロックチェーンネットワーク上に公開S200-4する。【選択図】図6

Description

本発明は、通信プログラム、通信装置、及び通信方法に関する。
近年、複数のコンピュータ(ブロックチェーンノード)が、互いに同期し、データの取引や加工の履歴を共有するブロックチェーンが注目されている。ブロックチェーンノードは、例えば、分散台帳と呼ばれる履歴のデータベースを有し、データに関する履歴を分散台帳に記入し、記入した分散台帳を他のブロックチェーンノードと同期することで、同等の分散台帳をブロックチェーンノード間で共有する。
ブロックチェーンに関する技術は、以下の先行文献に記載されている。
米国特許出願公開第2018/0096121号明細書 特開2013-149170号公報 特開2019-4463号公報
しかし、ブロックチェーンのネットワークに接続するブロックチェーンノードへの負担を減らすために、処理の一部をサブチェーンで処理する場合がある。サブチェーンは、ブロックチェーンノードに対応するローカルネットワークであり、例えば、ブロックチェーンを管理する事業者が、ブロックチェーン配下に設置する。
サブチェーン上でデータが処理された場合でも、ブロックチェーン上にデータの処理の履歴は記憶される。しかし、サブチェーンにおける処理は、ブロックチェーンの事業者が非公開で実行する処理である。そのため、履歴に示された処理内容が正しいか否かは、当該事業者を信頼するしかなく、信頼性が低い場合がある。
一開示は、事業者が実行したデータに対する処理の履歴の信頼性を向上させる通信プログラム、通信装置、及び通信方法を提供する。
データの取引を行うブロックチェーンネットワークに参加する通信装置が有するプログラムであって、前記ブロックチェーンネットワーク上のサーバから、前記データに対するデータ処理を検証するチェックプログラムを取得する取得処理と、前記チェックプログラムを実行し、前記チェックプログラムの実行中に前記データ処理を実行することにより生成される前記検証の結果に、前記サーバの署名を付与し、前記ブロックチェーンネットワーク上に公開するチェック処理とを、前記通信装置が有するコンピュータに実行させる。
一開示は、事業者が実行したデータに対する処理の履歴の信頼性を向上させることができる。
図1は、通信システム1の構成例を示す図である。 図2は、コンソーシアムサーバ200の構成例を表す図である。 図3は、サブチェーンノード100の構成例を表す図である。 図4は、サブチェーンノード100によるデータ処理のシーケンスの例を示す図である。 図5は、チェックプログラム要求受信処理S100の処理フローチャートの例を示す図である。 図6は、チェックプログラム受信処理S200の処理フローチャートの例を示す図である。 図7は、データがインフルエンザ情報である場合のシーケンスの例を示す図である。 図8は、一部処理を処理用プログラムで実行する場合のシーケンスの例を示す図である。 図9は、サブチェーンノード100によるデータ処理のシーケンスの例を示す図である。 図10は、チェック結果の署名の例を示す図である。 図11は、秘密鍵を秘匿する方法の例を示す図である。
[第1の実施の形態]
第1の実施の形態について説明する。
<通信システム1の構成例>
図1は、通信システム1の構成例を示す図である。通信システム1は、事業者10-1~3(以降、事業者10と呼ぶ場合がある)、コンソーシアムサーバ200、及びブロックチェーンネットワーク20を有する。通信システム1は、ブロックチェーンを採用する通信ネットワークである。
事業者10-1~3は、それぞれブロックチェーンノード11-1~3(以降、ブロックチェーンノード11と呼ぶ場合がある)を有する。事業者10は、ブロックチェーンノード11を用いて、ブロックチェーンネットワーク20を介して他のブロックチェーンノード11と通信を行う。そして、事業者10は、ブロックチェーンノード11を使用し、他の事業者10とデータの公開や取引を行う。事業者10は、例えば、分散台帳をブロックチェーンノード11内に有し、データの生成、公開、取引、加工等のデータに対する処理(以降、データ処理と呼ぶ場合がある)の履歴を分散台帳に記憶する。そして、事業者10は、分散台帳を他の事業者と同期することで、他の事業者10と同内容の分散台帳を共有する。
事業者10-1は、ローカルネットワークを有する。ローカルネットワークは、例えば、データ管理サーバ12、サブチェーンネットワーク13、サブチェーンノード100を有する。データ管理サーバ12は、ブロックチェーンノード11-1と接続し、ブロックチェーンノード11-1からデータを取得したり(チェックアウト)、ブロックチェーンノード11-1へデータを引き渡したり(チェックイン)する。サブチェーンネットワーク13は、ブロックチェーンネットワーク20とは異なるネットワークであり、例えば、ローカルネットワークである。サブチェーンノード100は、サブチェーンネットワーク13を介して通信を行う通信装置である。また、サブチェーンノード100は、データ管理サーバ12からデータを取得したり、取得したデータを加工したり、加工したデータをデータ管理サーバ12に引き渡したりする、データ処理を行う。サブチェーンノード100は、例えば、事業者10-1が操作するコンピュータやサーバマシンである。なお、他の事業者10も、事業者10-1と同様に、ローカルネットワークを有してもよい。
コンソーシアムサーバ200は、サブチェーンノード100に対して、チェックプログラムを提供する通信装置であり、例えば、コンピュータやサーバマシンである。
チェックプログラムは、サブチェーンノード100が実行するデータに対する処理(例えば、取得、引き渡し、加工など)をチェックし、どのような処理を行ったかを履歴として残すチェック処理を行うプログラムである。サブチェーンノード100が有するプロセッサやコンピュータは、チェックプログラムを実行することで、上述したチェック処理を実現する。
コンソーシアムサーバ200は、サブチェーンノード100の要求に応答し、チェックプログラムをサブチェーンノード100に引き渡す。コンソーシアムサーバ200は、ブロックチェーンノード11、ブロックチェーンネットワーク20又は他のネットワーク(図示しない)を介してサブチェーンノード100と通信し、サブチェーンノード100のチェックプログラムを送信することで、チェックプログラムを引き渡す。
通信システム1において、事業者10-1は、一部のデータに対してサブチェーンノード100を用いて加工する。この時、サブチェーンノード100は、コンソーシアムサーバ200に対してチェックプログラムを要求する。そして、サブチェーンノード100は、チェックプログラムを実行した後、データに対する処理を実行する。これにより、チェックプログラムによって、データに対する処理をチェックすることができる。サブチェーンノード100は、チェックプログラムを実行することで、データに対する処理の履歴を生成する。さらに、この履歴には、チェックプログラムの実行によって、コンソーシアムサーバ200の署名が付与される。この署名が付与されることで、当該履歴は、コンソーシアムサーバ200が認証する履歴であることが証明でき、信頼性が向上する。
なお、図1において、サブチェーンノード100は、ブロックチェーンノード11と異なる通信装置として記載されているが、同じ装置であってもよい。また、以降はサブチェーンノード100がデータ処理を実行する場合を例として説明するが、ブロックチェーンノード11がデータ処理を実行する場合も、同様の処理を適用することができる。ブロックチェーンノード11がデータ処理を実行する場合、ブロックチェーンノード11の処理の信頼性を向上させることができる。
<コンソーシアムサーバ200の構成例>
図2は、コンソーシアムサーバ200の構成例を表す図である。コンソーシアムサーバ200は、CPU(Central Processing Unit)210、ストレージ220、メモリ230、及び通信回路240を有する、例えば、サーバマシンである。
ストレージ220は、プログラムやデータを記憶する、フラッシュメモリ、HDD(Hard Disk Drive)、又はSSD(Solid State Drive)などの補助記憶装置である。ストレージ220は、チェックプログラム要求受信プログラム221及びチェックプログラム222を記憶する。チェックプログラム222は、サブチェーンノード100によって実行されるプログラムであり、サブチェーンノード100が実行するデータ処理を検証(チェック)するプログラムである。
メモリ230は、ストレージ220に記憶されているプログラムをロードする領域である。また、メモリ230は、プログラムがデータを記憶する領域としても使用されてもよい。
CPU210は、ストレージ220に記憶されているプログラムを、メモリ230にロードし、ロードしたプログラムを実行し、各部を構築し、各処理を実現するプロセッサである。
通信回路240は、他の装置と通信を行う回路である。通信回路240は、ネットワークを介して、他の装置とデータの送受信を行う。通信回路240は、例えば、NIC(Network Interface Card)である。
CPU210は、チェックプログラム要求受信プログラム221を実行することで、送信部及び受信部を構築し、チェックプログラム要求受信処理を行う。チェックプログラム要求受信処理は、サブチェーンノード100又はブロックチェーンノード11から、チェックプログラムの引き渡し(送信)を要求するチェックプログラム要求を受信したときの処理である。コンソーシアムサーバ200は、チェックプログラム要求受信処理において、秘密鍵と公開鍵を生成し、チェックプログラムに秘密鍵を付与し、サブチェーンノード100に送信する。
<サブチェーンノード100の構成例>
図3は、サブチェーンノード100の構成例を表す図である。サブチェーンノード100は、CPU110、ストレージ120、メモリ130、及び通信回路140を有する、例えば、通信装置である。
ストレージ120は、プログラムやデータを記憶する、フラッシュメモリ、HDD、又はSSDなどの補助記憶装置である。ストレージ120は、チェックプログラム要求プログラム121、チェックプログラム受信プログラム122、及びデータ処理プログラム123を記憶する。
メモリ130は、ストレージ120に記憶されているプログラムをロードする領域である。また、メモリ130は、プログラムがデータを記憶する領域としても使用されてもよい。
CPU110は、ストレージ120に記憶されているプログラムを、メモリ130にロードし、ロードしたプログラムを実行し、各部を構築し、各処理を実現するプロセッサである。
通信回路140は、他の装置と通信を行う回路である。通信回路140は、ネットワークを介して、他の装置とデータの送受信を行う。通信回路140は、例えば、NICや無線通信回路である。
CPU110は、チェックプログラム要求プログラム121を実行することで、要求部を構築し、チェックプログラム要求処理を行う。チェックプログラム要求処理は、チェックプログラム要求をコンソーシアムサーバ200に送信する処理であり、例えば、データ処理を実行する前処理として実行される。チェックプログラム要求処理は、例えば、ブロックチェーンノード11が行ってもよい。
CPU110は、チェックプログラム受信プログラム122を実行することで、取得部及びチェック部を構築し、チェックプログラム受信処理を行う。チェックプログラム受信処理は、チェックプログラムをコンソーシアムサーバ200から取得したときの処理である。サブチェーンノード100は、チェックプログラム受信処理において、チェックプログラムを実行し、データ処理を検証する。サブチェーンノード100は、検証結果(チェック結果)を、署名を付与し、ブロックチェーン上で公開する。
CPU110は、データ処理プログラム123を実行することで、データ処理部を構築し、データ処理を行う。データ処理は、データに対する処理であり、例えば、データのチェックイン、チェックアウト、及び加工(削除、統合、K匿名化などを含む)を行う処理である。
<データ処理>
図4は、サブチェーンノード100によるデータ処理のシーケンスの例を示す図である。ブロックチェーンノード11は、あるデータについてサブチェーンネットワークにおいてデータ処理を行うとき、コンソーシアムサーバ200に対してチェックプログラム要求を送信する(S10)。
コンソーシアムサーバ200は、チェックプログラム要求を受信すると(S10)、チェックプログラム要求受信処理を行う(S100)。
図5は、チェックプログラム要求受信処理S100の処理フローチャートの例を示す図である。コンソーシアムサーバ200は、チェックプログラム要求を受信するのを待ち受ける(S100-1のNo)。
コンソーシアムサーバ200は、チェックプログラム要求を受信すると(S100-1のYes)、署名用の鍵(公開鍵、秘密鍵)を生成する(S100-2)。そして、コンソーシアムサーバ200は、公開鍵をブロックチェーンで公開する。公開鍵のブロックチェーンでの公開は、例えば、公開鍵をブロックチェーンノード11に格納することである。
コンソーシアムサーバ200は、チェックプログラムに秘密鍵を付与する(S100-4)。チェックプログラムは、事業者10のサブチェーンで使用することが可能なプログラムであり、例えば、事前に用意され、コンソーシアムサーバ200の内部メモリなどに記憶される。
コンソーシアムサーバ200は、秘密鍵付きチェックプログラムを、チェックプログラムを要求するブロックチェーンノード11のサブチェーンノード100に引き渡し(S100-5)、処理を終了する。
図4のシーケンスに戻り、コンソーシアムサーバ200は、チェックプログラム要求受信処理S100において、秘密鍵付きチェックプログラムをサブチェーンノード100に引き渡す(S11、図5のS100-5)。サブチェーンノード100は、チェックプログラムを受信すると、チェックプログラム受信処理を行う(S200)。
図6は、チェックプログラム受信処理S200の処理フローチャートの例を示す図である。サブチェーンノード100は、チェックプログラム受信処理S200において、チェックプログラムを受信するのを待ち受ける(S200-1のNo)。サブチェーンノード100は、チェックプログラムを受信すると(S200-1のYes)、チェックプログラムを実行する(S200-2)。チェックプログラムを実行することで、データ処理の監視が開始される。なお、サブチェーンノード100は、処理S200-2の前に、チェックプログラムの署名を確認してもよい。署名が正しくない場合、チェックプログラムを再度要求してもよい。
サブチェーンノード100は、データ処理を実行する(S200-3)。このとき、処理S200-2においてデータ処理の監視が開始されているため、処理S200-3におけるデータ処理のチェック結果(例えば、どのようなデータ処理を実行されたかを示す履歴情報)が、チェックプログラムによって記録される。
サブチェーンノード100は、チェックプログラムの実行によるデータ処理のチェック結果に、チェックプログラムに付与されている秘密鍵で生成した署名を付与する(S200-4)。
サブチェーンノード100は、署名付きチェック結果を、ブロックチェーン上に格納し(S200-5)、処理を終了する。ブロックチェーン上に格納とは、例えば、ブロックチェーンノード11が有する分散台帳に、当該署名付きチェック結果を記憶することである。署名付きチェック結果が記憶された分散台帳は、ブロックチェーンノード11間で同期され、他のブロックチェーンノード11と同等の内容が共有される。
図4のシーケンスに戻り、サブチェーンノード100は、チェックプログラム受信処理S200において、チェックプログラムを実行する(図6のS200-2)。そして、サブチェーンノード100は、データ処理(図6のS200-3)として、ブロックチェーンノード11によるチェックアウトによりデータを取得し(S12)、データを加工し、ブロックチェーンノード11によるチェックインによりデータをブロックチェーンノード11に引き渡す(S13)。
そして、サブチェーンノード100は、チェックプログラムによるチェック結果に署名を付与し、署名付きチェック結果をブロックチェーンノード11に引き渡す(S14、図6のS200-4)。
第1の実施の形態において、サブチェーンノード100は、サブチェーンネットワーク内などのローカル環境で行ったデータ処理を、コンソーシアムサーバ200から取得したチェックプログラムでチェックする。そして、他のサブチェーンノードは、ブロックチェーン上で公開された、コンソーシアムサーバ200の発行した秘密鍵による署名が付与されたチェック結果を確認することで、ローカル環境で実行されたデータ処理の正当性が確認できる。他のサブチェーンノードは、公開鍵で署名を確認することができる。
<チェックプログラムのチェック内容例>
チェックプログラムのチェック内容の例について説明する。図7は、データがインフルエンザ情報である場合のシーケンスの例を示す図である。図7において、サブチェーンノード100は、県西部インフルエンザ情報と県東部インフルエンザ情報を入力データとし、K匿名化した県インフルエンザK匿名化情報を出力する。なお、K匿名化とは、例えば、個人情報である場合、個人が特定できない程度まで匿名化することを示す。
サブチェーンノード100は、ブロックチェーンノード11のチェックアウトにより、県西部インフルエンザ情報を取得する(S20)。さらに、サブチェーンノード100は、ブロックチェーンノード11のチェックアウトにより、県東部インフルエンザ情報を取得する(S21)。
サブチェーンノード100は、県西部インフルエンザ情報と県東部インフルエンザ情報を統合し、県インフルエンザ統合情報を生成する(S22)。
サブチェーンノード100は、県インフルエンザ統合情報に対してK匿名化を行い、県インフルエンザK匿名化情報を生成する(S23)。
サブチェーンノード100は、ブロックチェーンノード11のチェックインにより、県インフルエンザK匿名化情報をブロックチェーンノード11に引き渡す(S24)。
サブチェーンノード100は、チェックプログラムを実行することで、処理S20~24をチェックし、チェック結果を生成する。
チェックC20は、処理S20のチェックであり、チェックアウト内容チェックである。チェックアウト内容チェックは、チェックアウトしたデータが正しく伝わっているか確認するチェックであり、例えば、チェックアウト前のデータとチェックアウト後のデータを比較し、同じであれば正しく伝わっていると判定する。
チェックC21は、処理S21のチェックであり、チェックアウト内容チェックである。
チェックC22は、処理S22のチェックであり、データ統合チェックである。データ統合チェックは、データが正しく統合されているか否かを確認するチェックである。データ統合チェックは、例えば、統合対象の複数のデータの全てのレコードが、統合データに反映されているか否かを確認し、繁栄されていればデータが正しく統合されていると判定する。
チェックC23は、処理S23のチェックであり、K匿名化チェックである。K匿名化チェックは、データが正しく匿名化されているか否かを確認するチェックである。K匿名化チェックは、例えば、K匿名化の処理内容に基づき、K匿名化後のデータのレコードと、K匿名化前のレコードを対応させ、過不足がないか否かを確認し、過不足がない場合、K匿名化が正しく行われていると判定する。なお、K匿名化の処理内容によっては、レコードが削除される場合があるため、過不足があっても、削除されるべきレコードであると判定できる場合、K匿名化が正しく行われたと判定する。
チェックC24、処理S24チェックであり、チェックイン内容チェックである。チェックイン内容チェックは、チェックインしたデータが正しく伝わっているか確認するチェックであり、例えば、チェックイン前のデータとチェックイン後のデータを比較し、同じであれば正しく伝わっていると判定する。
サブチェーンノード100は、チェックプログラムを実行することで、データ処理のチェックを行い、それぞれのチェック結果を署名付きでブロックチェーンノード11に格納する。なお、チェックプログラムでNGと判定されるようなデータ処理は、不適切なデータ処理であるため、サブチェーンノード100は、チェック結果がNGであった場合、当該処理で生成したデータを破棄し、生成前のデータに戻してもよい。
また、上述した各チェックの例においては、正しいか否かを判定するチェック内容であるが、例えば、チェック内容は、データ処理の内容をチェック結果として記録することであってもよい。各ブロックチェーンノード11は、このデータ処理の内容を確認することで、正しいデータ処理が行われているか否かを判定することができる。
[第2の実施の形態]
第2の実施の形態について説明する。第2の実施の形態において、コンソーシアムサーバ200は、一部処理については、チェックプログラムに代替し、それぞれのデータ処理に応じた処理用プログラムをサブチェーンノード100に引き渡す。
図8は、一部処理を処理用プログラムで実行する場合のシーケンスの例を示す図である。データ処理の内容は、図7のシーケンスと同様である。
サブチェーンノード100は、データ処理の実行前に、チェックアウト処理プログラム、統合処理プログラム、チェックイン処理プログラム、及びチェックプログラムを、コンソーシアムサーバ200から取得する。なお、チェックアウト処理プログラム、統合処理プログラム、チェックイン処理プログラム、及びチェックプログラムには、それぞれ署名用秘密鍵が付与されている。
サブチェーンノード100は、処理S20及びS21を、チェックアウト処理プログラムで実行する(L20、L21)。チェックアウト処理プログラムを実行することで、チェックアウト処理が正しく実行される。そして、サブチェーンノード100は、チェックアウト処理プログラムの実行結果を、署名を付けてブロックチェーンノード11に引き渡し、ブロックチェーン上に公開する。
サブチェーンノード100は、処理S22を、統合処理プログラムで実行する(L22)。統合処理プログラムを実行することで、統合処理が正しく実行される。そして、サブチェーンノード100は、統合処理プログラムの実行結果を、署名を付けてブロックチェーンノード11に引き渡し、ブロックチェーン上に公開する。
サブチェーンノード100は、処理S24を、チェックイン処理プログラムで実行する(L24)。チェックイン処理プログラムを実行することで、チェックイン処理が正しく実行される。そして、サブチェーンノード100は、チェックイン処理プログラムの実行結果を、署名を付けてブロックチェーンノード11に引き渡し、ブロックチェーン上に公開する。
このように、一部の処理(チェックアウト、チェックイン、統合)を、コンソーシアムサーバ200から取得したプログラムを用いて実行する。しかし、一方で、K匿名化は、チェックプログラムを用いてチェックする。K匿名化は、匿名化する度合いや、匿名化の手法が多様であり、どの手法を用いてどの程度まで匿名化するかは、事業者の判断となるため、コンソーシアムサーバ200で共通の処理プログラムを用意することが困難である。そこで、K匿名化のような汎用性の低い処理は、事業者によって実行内容が異なるため、処理プログラムで実行せず、チェックプログラムでチェックすることとする。例えば、全ての事業者で同じことを行う処理のみを、処理プログラムで実行することとしてもよい。K匿名化の処理のチェック結果については、第1の実施の形態と同様に、署名を付けてブロックチェーン上に公開する。
[第3の実施の形態]
第3の実施の形態について説明する。第3の実施の形態において、サブチェーンノード100は、同一のチェックプログラムを、複数回(あるいは第1時間の間)使用する。そして、使用するごとに(あるいは第2時間ごとに)、コンソーシアムサーバ200から、処理識別子を取得する。また、処理識別子は、データ処理を行うデータ単位で取得してもよい。例えば、第1の実施の形態の例で示した県インフルエンザK匿名化情報を生成するまでの一連のデータ処理に対して、1つの処理識別子を取得する。すなわち、処理識別子は、目的のデータが生成されるまでの一連のデータ処理を1つの単位として取得されてもよい。
図9は、サブチェーンノード100によるデータ処理のシーケンスの例を示す図である。データ処理については、図4のシーケンスと同様であるため、説明を省略する。
サブチェーンノード100(又はブロックチェーンノード11)は、コンソーシアムサーバ200に、処理識別子を要求する処理識別子要求を送信する(S40)。
コンソーシアムサーバ200は、処理識別子要求を受信すると(S40)、処理識別子を生成し、例えば、公開鍵で暗号化し、サブチェーンノード100に引き渡す(S41)。
サブチェーンノード100は、秘密鍵で複合し、処理識別子を取得する。そして、データ処理を行い、チェック結果に処理識別子を用いた署名を付与し、ブロックチェーン上に公開する。
処理識別子は,例えば、ユーザ識別子、シリアル番号、乱数などから生成数値を、ハッシュ関数を用いてハッシュ化したハッシュ値である。なお、処理識別子は、外部から推測されないユニークな値であれば、これ以外であってもよい。
図10は、チェック結果の署名の例を示す図である。サブチェーンノード100は、チェック結果に対して、署名対象の情報に対して処理識別子を使いハッシュ値を求め(S1)、算出したハッシュ値を署名対象に加えて署名を生成し(S2)、チェック結果に付与する。
他のブロックチェーンノード11は、チェック結果の署名対象の情報から、ハッシュ値と他の情報を分離し、他の情報に対して処理識別子をキーとしてハッシュ値を求め、2つのハッシュ値を比較することで、正規のチェックプログラムが処理した結果と判定することができる。
なお、本実施の形態においては、チェックプログラムを例として説明したが、第2の実施の形態のように、処理プログラムに対しても同様の処理を行うことで、あるプログラムを複数回使用することが可能となる。
[その他の実施の形態]
通信システム1における、信頼性を向上させるためには、さらに、秘密鍵のセキュリティを向上することが必要となる。図11は、秘密鍵を秘匿する方法の例を示す図である。
コンソーシアムサーバ200は、秘密鍵を分割する(S50)。そして、冗長データを付与し、メモリに格納する(S51)。そして、ユーザの公開鍵(署名用公開鍵とは異なる鍵)で暗号化し(S52)、暗号化情報とし、サブチェーンノード100に送信する。
サブチェーンノード100は、暗号化情報をユーザの秘密鍵(署名用秘密鍵とは異なる鍵)で複合し(S53)、冗長データを削除し、結合し(S54)、署名用秘密鍵を取得する。これにより、より安全に秘密鍵の受け渡しができるようになる。
また、上述した実施の形態においては、サブチェーンノード100が、データ処理やチェックプログラムを実行するが、例えば、ブロックチェーンノード11がデータ処理及びチェックプログラムを実行してもよい。
以下、まとめると付記のようになる。
(付記1)
データの取引を行うブロックチェーンネットワークに参加する通信装置が有するプログラムであって、
前記ブロックチェーンネットワーク上のサーバから、前記データに対するデータ処理を検証するチェックプログラムを取得する取得処理と、
前記チェックプログラムを実行し、前記チェックプログラムの実行中に前記データ処理を実行することにより生成される前記検証の結果に、前記サーバの署名を付与し、前記ブロックチェーンネットワーク上に公開するチェック処理とを、
前記通信装置が有するコンピュータに実行させる通信プログラム。
(付記2)
前記チェックプログラムは、前記サーバが生成した秘密鍵が付与され、
前記秘密鍵に対応する公開鍵が前記ブロックチェーンネットワーク上に公開され、
前記チェック処理において、前記チェックプログラムに付与された前記秘密鍵を用いて前記サーバの署名を生成する
付記1記載の通信プログラム。
(付記3)
前記チェックプログラムに付与される秘密鍵は、前記サーバによって暗号化された暗号情報であり、
前記チェック処理において、前記暗号情報を複合し、前記秘密鍵を取得する
付記2記載の通信プログラム。
(付記4)
前記取得処理において、前記データ処理の一部又は全部の処理を実行する処理プログラムを前記サーバから受信し、
前記チェック処理において、前記データ処理の一部又は全部の処理を、前記処理プログラムを用いて実行し、前記処理プログラムを実行した実行結果に、前記サーバの署名を付与し、前記ブロックチェーンネットワーク上に公開する
付記1記載の通信プログラム。
(付記5)
前記データ処理の一部又は全部の処理は、他の通信装置においても同じ内容で実行される処理である
付記4記載の通信プログラム。
(付記6)
受信処理において、1又は複数のデータ処理ごとに、前記サーバから処理識別子を取得し、
前記チェック処理において、前記取得した処理識別子を用いて前記サーバの署名を生成する
付記1記載の通信プログラム。
(付記7)
前記処理識別子は、ハッシュ関数を用いて生成される
付記6記載の通信プログラム。
(付記8)
前記データ処理は、前記データを加工する処理を含む
付記1記載の通信プログラム。
(付記9)
前記データ処理は、前記データを前記ブロックチェーンネットワークから取得する処理、及び前記データを前記ブロックチェーンネットワークに引き渡す処理を含む
付記8記載の通信プログラム。
(付記10)
データの取引を行うブロックチェーンネットワークに参加する通信装置の配下の情報処理装置であって、前記ブロックチェーンネットワークに直接的に参加しない前記情報処理装置が有するプログラムであって、
前記通信装置から依頼され前記データに対するデータ処理を行うとき、
前記ブロックチェーンネットワーク上のサーバから、前記データ処理を検証するチェックプログラムを取得する取得処理と、
前記チェックプログラムを実行し、前記チェックプログラムの実行中に前記データ処理を実行することにより生成される前記検証の結果に、前記サーバの署名を付与し、前記通信装置を介して前記ブロックチェーンネットワーク上に公開するチェック処理とを、
前記情報処理装置が有するコンピュータに実行させる通信プログラム。
(付記11)
データの取引を行うブロックチェーンネットワークに参加する通信装置と通信を行うサーバが有するプログラムであって、
秘密鍵及び公開鍵を生成する鍵生成処理と、
前記通信装置が実行するデータ処理を検証するチェックプログラムに、前記秘密鍵を付与して送信する送信処理と、
前記公開鍵を前記ブロックチェーンネットワーク上に公開する公開処理とを、
前記サーバが有するコンピュータに実行させる通信プログラム。
(付記12)
データの取引を行うブロックチェーンネットワークに参加する通信装置であって、
前記ブロックチェーンネットワーク上のサーバから、前記データに対するデータ処理を検証するチェックプログラムを取得する取得部と、
前記チェックプログラムを実行し、前記チェックプログラムの実行中に前記データ処理を実行することにより生成される前記検証の結果に、前記サーバの署名を付与し、前記ブロックチェーンネットワーク上に公開するチェック部とを、
有する通信装置。
(付記13)
データの取引を行うブロックチェーンネットワークに参加する通信装置における通信方法であって、
前記ブロックチェーンネットワーク上のサーバから、前記データに対するデータ処理を検証するチェックプログラムを取得し、
前記チェックプログラムを実行し、前記チェックプログラムの実行中に前記データ処理を実行することにより生成される前記検証の結果に、前記サーバの署名を付与し、前記ブロックチェーンネットワーク上に公開する、
通信方法。
1 :通信システム
10 :事業者
11 :ブロックチェーンノード
12 :データ管理サーバ
13 :サブチェーンネットワーク
20 :ブロックチェーンネットワーク
100 :サブチェーンノード
110 :CPU
120 :ストレージ
121 :チェックプログラム要求プログラム
122 :チェックプログラム受信プログラム
123 :データ処理プログラム
130 :メモリ
140 :通信回路
200 :コンソーシアムサーバ
210 :CPU
220 :ストレージ
221 :チェックプログラム要求受信プログラム
222 :チェックプログラム
230 :メモリ
240 :通信回路

Claims (8)

  1. データの取引を行うブロックチェーンネットワークに参加する通信装置が有するプログラムであって、
    前記ブロックチェーンネットワーク上のサーバから、前記データに対するデータ処理を検証するチェックプログラムを取得する取得処理と、
    前記チェックプログラムを実行し、前記チェックプログラムの実行中に前記データ処理を実行することにより生成される前記検証の結果に、前記サーバの署名を付与し、前記ブロックチェーンネットワーク上に公開するチェック処理とを、
    前記通信装置が有するコンピュータに実行させる通信プログラム。
  2. 前記チェックプログラムは、前記サーバが生成した秘密鍵が付与され、
    前記秘密鍵に対応する公開鍵が前記ブロックチェーンネットワーク上に公開され、
    前記チェック処理において、前記チェックプログラムに付与された前記秘密鍵を用いて前記サーバの署名を生成する
    請求項1記載の通信プログラム。
  3. 前記チェックプログラムに付与される秘密鍵は、前記サーバによって暗号化された暗号情報であり、
    前記チェック処理において、前記暗号情報を複合し、前記秘密鍵を取得する
    請求項2記載の通信プログラム。
  4. 前記取得処理において、前記データ処理の一部又は全部の処理を実行する処理プログラムを前記サーバから受信し、
    前記チェック処理において、前記データ処理の一部又は全部の処理を、前記処理プログラムを用いて実行し、前記処理プログラムを実行した実行結果に、前記サーバの署名を付与し、前記ブロックチェーンネットワーク上に公開する
    請求項1記載の通信プログラム。
  5. 受信処理において、1又は複数のデータ処理ごとに、前記サーバから処理識別子を取得し、
    前記チェック処理において、前記取得した処理識別子を用いて前記サーバの署名を生成する
    請求項1記載の通信プログラム。
  6. 前記データ処理は、前記データを加工する処理を含む
    請求項1記載の通信プログラム。
  7. データの取引を行うブロックチェーンネットワークに参加する通信装置であって、
    前記ブロックチェーンネットワーク上のサーバから、前記データに対するデータ処理を検証するチェックプログラムを取得する取得部と、
    前記チェックプログラムを実行し、前記チェックプログラムの実行中に前記データ処理を実行することにより生成される前記検証の結果に、前記サーバの署名を付与し、前記ブロックチェーンネットワーク上に公開するチェック部とを、
    有する通信装置。
  8. データの取引を行うブロックチェーンネットワークに参加する通信装置における通信方法であって、
    前記ブロックチェーンネットワーク上のサーバから、前記データに対するデータ処理を検証するチェックプログラムを取得し、
    前記チェックプログラムを実行し、前記チェックプログラムの実行中に前記データ処理を実行することにより生成される前記検証の結果に、前記サーバの署名を付与し、前記ブロックチェーンネットワーク上に公開する、
    通信方法。
JP2020162429A 2020-09-28 2020-09-28 通信プログラム、通信装置、及び通信方法 Pending JP2022055060A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2020162429A JP2022055060A (ja) 2020-09-28 2020-09-28 通信プログラム、通信装置、及び通信方法
EP21179900.2A EP3975501A1 (en) 2020-09-28 2021-06-16 Communication program, communication apparatus, and communication method
US17/351,629 US20220103372A1 (en) 2020-09-28 2021-06-18 Communication apparatus and communication method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020162429A JP2022055060A (ja) 2020-09-28 2020-09-28 通信プログラム、通信装置、及び通信方法

Publications (1)

Publication Number Publication Date
JP2022055060A true JP2022055060A (ja) 2022-04-07

Family

ID=76623858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020162429A Pending JP2022055060A (ja) 2020-09-28 2020-09-28 通信プログラム、通信装置、及び通信方法

Country Status (3)

Country Link
US (1) US20220103372A1 (ja)
EP (1) EP3975501A1 (ja)
JP (1) JP2022055060A (ja)

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359645B2 (en) * 2005-03-25 2013-01-22 Microsoft Corporation Dynamic protection of unpatched machines
US8386288B2 (en) * 2009-01-27 2013-02-26 Direct Response Medicine, Llc Workflow management system and method with workflow package exchange between drop-box application programs
JP5438140B2 (ja) 2012-01-20 2014-03-12 株式会社日立システムズ 修正プログラム提供システム及びプログラム
JP6810334B2 (ja) * 2016-06-17 2021-01-06 富士通株式会社 プロファイルデータ配信制御装置、プロファイルデータ配信制御方法およびプロファイルデータ配信制御プログラム
US10984081B2 (en) 2016-09-30 2021-04-20 Cable Television Laboratories, Inc. Systems and methods for secure person to device association
WO2018153486A1 (en) * 2017-02-24 2018-08-30 NEC Laboratories Europe GmbH Method for signing a new block in a decentralized blockchain consensus network
US20180365688A1 (en) 2017-06-14 2018-12-20 International Business Machines Corporation Transaction execution and validation in a blockchain
WO2019143850A1 (en) * 2018-01-17 2019-07-25 Medici Ventures, Inc. Multi-approval system using m of n keys to generate a transaction address
US10922423B1 (en) * 2018-06-21 2021-02-16 Amazon Technologies, Inc. Request context generator for security policy validation service
US20200117730A1 (en) * 2018-10-16 2020-04-16 Microsoft Technology Licensing, Llc Database management
US20200153605A1 (en) * 2018-11-13 2020-05-14 Accelor Ltd. Systems and methods for pre-executing transaction validation for blockchain applications
GB2583993B (en) * 2018-11-19 2023-08-02 Luther Systems Ltd Immutable ledger with efficient and secure data destruction, system and method
AU2018348322C1 (en) * 2018-11-27 2020-06-25 Advanced New Technologies Co., Ltd. Asymmetric key management in consortium blockchain networks
JP6650157B1 (ja) * 2019-05-08 2020-02-19 株式会社モールサービス 情報管理システム、情報管理方法及び情報管理プログラム
US11005872B2 (en) * 2019-05-31 2021-05-11 Gurucul Solutions, Llc Anomaly detection in cybersecurity and fraud applications
US11310284B2 (en) * 2019-05-31 2022-04-19 Varmour Networks, Inc. Validation of cloud security policies
KR20200139033A (ko) * 2019-06-03 2020-12-11 삼성에스디에스 주식회사 트랜잭션 가속 처리 장치 및 그 방법
WO2021019782A1 (ja) * 2019-08-01 2021-02-04 日本電信電話株式会社 所有者同一性確認システムおよび所有者同一性確認方法
US11626998B2 (en) * 2020-07-21 2023-04-11 Servicenow, Inc. Validated payload execution
CN111988402B (zh) * 2020-08-20 2022-06-24 支付宝(杭州)信息技术有限公司 一种数据核验方法、装置及电子设备

Also Published As

Publication number Publication date
EP3975501A1 (en) 2022-03-30
US20220103372A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
US10708060B2 (en) System and method for blockchain-based notification
CN110620810B (zh) 在区块链上的连续资产转移的非链接所有权
US11533164B2 (en) System and method for blockchain-based cross-entity authentication
US10728042B2 (en) System and method for blockchain-based cross-entity authentication
US11316868B2 (en) Information verification system, information verification device, method and program
US7958367B2 (en) Authentication system and apparatus
US20230037932A1 (en) Data processing method and apparatus based on blockchain network, and computer device
US20210374112A1 (en) Migration support system, migration support method, and node
CN111339551B (zh) 数据的验证方法及相关装置、设备
US20200394162A1 (en) Operation management method for distributed ledger system, operation management system for distributed ledger system, and operation management program for distributed ledger system
US11379316B2 (en) Snapshot restoration
US11483158B2 (en) Distributed ledger device, distributed ledger system, and distributed ledger management method
CN115619395A (zh) 基于区块链的数据处理方法及相关设备
JP2022055060A (ja) 通信プログラム、通信装置、及び通信方法
KR20200118985A (ko) 블록체인 환경에서의 데이터 관리 방법 및 이를 위한 장치
JP2023106055A (ja) エビデンス管理方法、エビデンス管理システム及びノード
JP6901373B2 (ja) ユーザ管理装置、ユーザ管理システム
US20230064476A1 (en) Storage medium, data processing method, and data processing device
US20240144268A1 (en) Control method, non-transitory computer-readable storage medium for storing control program, and information processing apparatus
JP7424490B2 (ja) 登録者端末、検証者端末、管理システムおよびプログラム
JP6859293B2 (ja) データ管理システム、データ管理方法及びデータ管理プログラム
CN115955477A (zh) 基于云游戏的内网游戏文件分发方法、装置、介质及设备
CN116244709A (zh) 区块链网络中出块节点的确定方法及相关装置
JP2009010911A (ja) 認証システムおよび装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230608

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240306