JP2021136686A - Data management method - Google Patents

Data management method Download PDF

Info

Publication number
JP2021136686A
JP2021136686A JP2021002705A JP2021002705A JP2021136686A JP 2021136686 A JP2021136686 A JP 2021136686A JP 2021002705 A JP2021002705 A JP 2021002705A JP 2021002705 A JP2021002705 A JP 2021002705A JP 2021136686 A JP2021136686 A JP 2021136686A
Authority
JP
Japan
Prior art keywords
data
trusted server
management method
server
data management
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
JP2021002705A
Other languages
Japanese (ja)
Inventor
欧佑 須藤
Osuke Sudo
欧佑 須藤
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.)
LayerX Inc
Original Assignee
LayerX Inc
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 LayerX Inc filed Critical LayerX Inc
Priority to JP2021002705A priority Critical patent/JP2021136686A/en
Publication of JP2021136686A publication Critical patent/JP2021136686A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

To safely manage data of high secrecy.SOLUTION: In a data management method, the contents of data to be managed by a distributed ledger are recorded in a trusted server including a trusted execution environment, encrypted data obtained by encrypting the data is recorded in the distributed ledger, and when the contents of data are updated in the trusted server, encrypted data obtained by encrypting the updated contents is added to the distributed ledger. When the encrypted data is added to the distributed ledger, the trusted server updates the contents of the data by decrypting the added encrypted data.SELECTED DRAWING: Figure 4

Description

本発明は、データ管理方法に関する。 The present invention relates to a data management method.

特許文献1では、ブロックチェーンに暗号化したデータを記録し、暗号化したまま演算
可能な秘密計算方式を採用している。
Patent Document 1 employs a secret calculation method in which encrypted data is recorded on a blockchain and can be calculated while being encrypted.

特開2020−021048号公報Japanese Unexamined Patent Publication No. 2020-021048

しかしながら、特許文献1に記載の技術では特殊な計算方式しか用いることができず、
一般的な処理を行うことができない。
However, the technique described in Patent Document 1 can only use a special calculation method.
General processing cannot be performed.

本発明はこのような背景を鑑みてなされたものであり、秘密性の高いデータを安全に管
理することのできる技術を提供することを目的とする。
The present invention has been made in view of such a background, and an object of the present invention is to provide a technique capable of safely managing highly confidential data.

上記課題を解決するための本発明の主たる発明は、データ管理方法であって、分散台帳
により管理しようとするデータの内容を、トラステッド実行環境を備えるトラステッドサ
ーバに記録し、前記分散台帳には、前記データを暗号化した暗号データを記録し、前記ト
ラステッドサーバで前記データの内容が更新された場合には、前記更新された内容を暗号
化した前記暗号データを前記分散台帳に追加し、前記分散台帳に前記暗号データが追加さ
れた場合には、前記トラステッドサーバは、追加された前記暗号データを復号化して前記
データの内容を更新すること、を特徴とする。
The main invention of the present invention for solving the above problems is a data management method, in which the contents of data to be managed by the distributed ledger are recorded in a trusted server provided with a trusted execution environment, and the distributed ledger can be used. When the encrypted data obtained by encrypting the data is recorded and the contents of the data are updated by the trusted server, the encrypted data in which the updated contents are encrypted is added to the distributed ledger, and the distributed data is added. When the encrypted data is added to the ledger, the trusted server decrypts the added encrypted data and updates the contents of the data.

その他本願が開示する課題やその解決方法については、発明の実施形態の欄及び図面に
より明らかにされる。
Other problems disclosed in the present application and solutions thereof will be clarified in the columns and drawings of the embodiments of the invention.

本発明によれば、秘密性の高いデータを安全に管理することができる。 According to the present invention, highly confidential data can be safely managed.

一般的なコンピュータの構成を説明する図である。It is a figure explaining the structure of a general computer. トラステッド実行環境(TEE;Trusted Execution Environment)を説明する図である。It is a figure explaining the trusted execution environment (TEE; Trusted Execution Environment). TEEにより対策可能な脅威を説明する図である。It is a figure explaining the threat which can be dealt with by TEE. 本発明の一実施形態に係るデータ管理システムの全体構成例を示す図である。It is a figure which shows the whole structure example of the data management system which concerns on one Embodiment of this invention. ユーザ端末1、TEEサーバ2及びBCノード3を実現するコンピュータのハードウェア構成例を示す図である。It is a figure which shows the hardware configuration example of the computer which realizes a user terminal 1, a TEE server 2 and BC node 3. 本実施形態のデータ管理システムにおけるデータ管理の概要を説明する図である。It is a figure explaining the outline of the data management in the data management system of this embodiment. ユーザからのデータアクセスを説明する図である。It is a figure explaining data access from a user. 本実施形態のデータ管理システムにおけるデータ管理に係るサブプロトコルを説明する図である。It is a figure explaining the sub-protocol related to the data management in the data management system of this embodiment. アテステーションサービスについて説明する図である。It is a figure explaining the attestation service. アテステーションサービスから応答されるREPORT構造体の主要項目を示す図である。It is a figure which shows the main item of the REPORT structure which is replied from the attestation service. REPORTの検証処理を説明する図である。It is a figure explaining the verification process of REPORT. TEEサーバ2を追加するときの動作を説明する図である。It is a figure explaining the operation when the TEE server 2 is added. TEEサーバ2を追加する処理の流れを示す図である。It is a figure which shows the flow of the process of adding a TEE server 2. TreeKEM形式のグループステートを説明する図である。It is a figure explaining the group state of the TreeKEM format. グループステートに含まれるアプリケーションキーチェーンの構成例を示す図である。It is a figure which shows the configuration example of the application key chain included in a group state. 図12の動作におけるハンドシェイクの詳細を説明する図である。It is a figure explaining the detail of the handshake in the operation of FIG. 書き込みの衝突を説明する図である。It is a figure explaining the collision of writing. 書き込み競合時のブロックチェーンネットワーク30におけるブロック高を説明する図である。It is a figure explaining the block height in the blockchain network 30 at the time of a write conflict. 書き込み衝突判定について説明する図である。It is a figure explaining the writing collision determination. 衝突検証を行う場合の秘密情報の状態遷移について説明する図である。It is a figure explaining the state transition of the secret information at the time of collision verification. エンクレーブ21における状態遷移の改ざん検出のための仕組みを説明する図である。It is a figure explaining the mechanism for the falsification detection of the state transition in the enclave 21.

<発明の概要>
本発明の実施形態の内容を列記して説明する。本発明は、たとえば、以下のような構成
を備える。
[項目1]
分散台帳により管理しようとするデータの内容を、トラステッド実行環境を備えるトラ
ステッドサーバに記録し、
前記分散台帳には、前記データを暗号化した暗号データを記録し、
前記トラステッドサーバで前記データの内容が更新された場合には、前記更新された内
容を暗号化した前記暗号データを前記分散台帳に追加し、
前記分散台帳に前記暗号データが追加された場合には、前記トラステッドサーバは、追
加された前記暗号データを復号化して前記データの内容を更新すること、
を特徴とするデータ管理方法。
[項目2]
項目1に記載のデータ管理方法であって、
ユーザ端末は、前記トラステッドサーバに対して前記データの更新リクエストを送信し

前記トラステッドサーバは、前記更新された内容を暗号化した前記暗号データを、対応
する前記分散台帳を構成するノードに送信し、
前記ノードは、前記暗号データを前記分散台帳に追加して、他の前記ノードに伝搬させ

前記ノードのそれぞれは、追加された前記暗号データを、対応する前記トラステッドサ
ーバに送信し、
前記トラステッドサーバは、追加された前記暗号データを復号化して、自身が記録して
いる前記データの内容を更新すること、
を特徴とするデータ管理方法。
[項目3]
項目1に記載のデータ管理方法であって、
前記トラステッドサーバが作成した秘密鍵による署名を含むデータをアテステーション
サービスに送信して正当性を検証させ、前記アテステーションサービスは検証結果に署名
し、前記トラステッドサーバは、前記検証結果に、前記トラステッドサーバが作成した公
開鍵を含めて前記分散台帳に登録し、前記ノードが、前記検証結果の署名を検証し、
前記トラステッドサーバは、前記分散台帳におけるトランザクションの発生時には、登
録されている前記公開鍵を用いて前記トランザクションに含まれる署名の検証を行うこと

を特徴とするデータ管理方法。
[項目4]
項目3に記載のデータ管理方法であって、
前記検証結果には、前記トラステッドサーバが実行しているプログラムを特定する情報
が含まれ、
前記トラステッドサーバは、前記検証結果の署名検証時に、自身が実行している前記プ
ログラムが、前記検証結果に含まれている情報が示す前記プログラムと一致することを検
証すること、
を特徴とするデータ管理方法。
[項目5]
項目4に記載のデータ管理方法であって、
前記ノードにおいてもさらに、前記検証結果に含まれている情報が示す前記プログラム
と前記分散台帳に登録されている前記検証結果に含まれている情報が示す前記プログラム
とが一致していることを検証すること、
を特徴とするデータ管理方法。
[項目6]
項目3に記載のデータ管理方法であって、
前記トラステッドサーバでは、前記秘密鍵及び前記公開鍵のペアを生成し、前記公開鍵
を前記検証結果に含めて前記分散台帳に登録すること、
を特徴とするデータ管理方法。
[項目7]
項目3に記載のデータ管理方法であって、
前記トラステッドサーバを追加する場合に、
追加される前記トラステッドサーバは、
前記アテステーションサービスに自身の前記トラステッド実行環境の正当性を検証さ
せ、
前記アテステーションサービスによる検証結果を、既存の前記トラステッドサーバに
送信し、
前記既存のトラステッドサーバは、
前記アテステーションサービスに自身の前記トラステッド実行環境の正当性を検証さ
せ、
前記アテステーションサービスによる検証結果と、前記追加されるトラステッドサー
バから受信した前記検証結果とを照合して、前記追加されるトラステッドサーバの参加可
否を決定し、
前記追加されるトラステッドサーバの参加が可能と判断した場合には、前記追加さ
れるトラステッドサーバから受信した前記検証結果とを照合して、前記追加されるトラス
テッドサーバの参加を決定すること、
を特徴とするデータ管理方法。
[項目8]
項目1に記載のデータ管理方法であって、
前記暗号化は共通のグループ鍵を用いて行われ、
前記トラステッドサーバはそれぞれ自身の秘密鍵を有しており、全ての前記トラステッ
ドサーバの公開鍵が前記分散台帳に記録されており、
前記トラステッドサーバは、同一の前記グループ鍵を算出するように、全ての前記公開
鍵と、自身の前記秘密鍵とを用いてシードを計算し、前記シードに基づいてグループ鍵を
計算すること、
を特徴とするデータ管理方法。
[項目9]
項目1に記載のデータ管理方法であって、
前記トラステッドサーバは、前記分散台帳で管理されるブロックごとの全てのデータの
第1のハッシュ値を計算して、前記第1のハッシュ値を前記分散台帳に記録し、前記デー
タの内容が更新された場合には、更新前の前記ハッシュ値と更新後の全前記ブロックの内
容との第2のハッシュ値を計算して、前記第2のハッシュ値を前記分散台帳に記録するこ
と、
を特徴とするデータ管理方法。
<Outline of the invention>
The contents of the embodiments of the present invention will be described in a list. The present invention includes, for example, the following configuration.
[Item 1]
The contents of the data to be managed by the distributed ledger are recorded on the trusted server equipped with the trusted execution environment, and
Cryptographic data obtained by encrypting the data is recorded in the distributed ledger.
When the content of the data is updated on the trusted server, the encrypted data obtained by encrypting the updated content is added to the distributed ledger.
When the encrypted data is added to the distributed ledger, the trusted server decrypts the added encrypted data and updates the contents of the data.
A data management method characterized by.
[Item 2]
The data management method described in item 1.
The user terminal sends an update request for the data to the trusted server, and the user terminal sends a request to update the data.
The trusted server transmits the encrypted data obtained by encrypting the updated contents to the nodes constituting the corresponding distributed ledger.
The node adds the encrypted data to the distributed ledger and propagates it to the other nodes.
Each of the nodes sends the added cryptographic data to the corresponding trusted server.
The trusted server decrypts the added encrypted data and updates the contents of the data recorded by itself.
A data management method characterized by.
[Item 3]
The data management method described in item 1.
The data including the signature with the private key created by the trusted server is transmitted to the attestation service to verify the validity, the attestation service signs the verification result, and the trusted server sends the verification result to the trusted. The public key created by the server is registered in the distributed ledger, and the node verifies the signature of the verification result.
When a transaction occurs in the distributed ledger, the trusted server verifies the signature included in the transaction using the registered public key.
A data management method characterized by.
[Item 4]
The data management method described in item 3
The verification result includes information that identifies the program that the trusted server is executing.
At the time of signature verification of the verification result, the trusted server verifies that the program executed by itself matches the program indicated by the information contained in the verification result.
A data management method characterized by.
[Item 5]
The data management method according to item 4.
Further, at the node, it is verified that the program indicated by the information included in the verification result and the program indicated by the information included in the verification result registered in the distributed ledger match. To do,
A data management method characterized by.
[Item 6]
The data management method described in item 3
The trusted server generates a pair of the private key and the public key, includes the public key in the verification result, and registers the public key in the distributed ledger.
A data management method characterized by.
[Item 7]
The data management method described in item 3
When adding the trusted server
The trusted server to be added
Have the attestation service verify the validity of its trusted execution environment
The verification result by the attestation service is transmitted to the existing trusted server, and the result is transmitted to the existing trusted server.
The existing trusted server
Have the attestation service verify the validity of its trusted execution environment
By collating the verification result by the attestation service with the verification result received from the added trusted server, it is determined whether or not the added trusted server can participate.
When it is determined that the added trusted server can participate, the participation of the added trusted server is determined by collating with the verification result received from the added trusted server.
A data management method characterized by.
[Item 8]
The data management method described in item 1.
The encryption is performed using a common group key,
Each of the trusted servers has its own private key, and the public keys of all the trusted servers are recorded in the distributed ledger.
The trusted server calculates a seed using all the public keys and its own private key so as to calculate the same group key, and calculates the group key based on the seed.
A data management method characterized by.
[Item 9]
The data management method described in item 1.
The trusted server calculates a first hash value of all data for each block managed by the distributed ledger, records the first hash value in the distributed ledger, and updates the contents of the data. In that case, the second hash value of the hash value before the update and the contents of all the blocks after the update is calculated, and the second hash value is recorded in the distributed ledger.
A data management method characterized by.

<本実施形態の概要>
以下、図面を用いて本発明の一実施形態に係るデータ管理システムについて説明する。
本実施形態のデータ管理システムは、秘密性の高いデータ(例えば個人情報など)を管理
する場合に、より安全にデータを管理可能とするものである。本実施形態のデータ管理シ
ステムでは、ブロックチェーンにデータを管理することでデータの改ざんを防止し、ブロ
ックチェーンには暗号化したデータを管理することでデータの秘匿性あるいは匿名性を担
保し、暗号化されたデータを復号化して処理する環境として、トラステッド実行環境(T
EE;Trusted Execution Environment)を採用することで、秘匿性及び安全性を向上さ
せている。
<Outline of this embodiment>
Hereinafter, a data management system according to an embodiment of the present invention will be described with reference to the drawings.
The data management system of the present embodiment makes it possible to manage data more safely when managing highly confidential data (for example, personal information). In the data management system of the present embodiment, data is managed in the blockchain to prevent data tampering, and encrypted data is managed in the blockchain to ensure data confidentiality or anonymity, and encryption is performed. A trusted execution environment (T) as an environment for decoding and processing the converted data.
By adopting EE (Trusted Execution Environment), confidentiality and safety are improved.

図1は、一般的なコンピュータの構成を説明する図である。一般的なコンピュータでは
、オペレーティングのカーネルがプログラムのコードやデータを、プロセス生成時や生成
後動的にメモリに割り当て、ユーザアプリケーションはメモリの断片化や別用途メモリへ
のアクセスを防ぐために仮想アドレス空間を利用している。オペレーティングシステムは
、カーネルメモリのページテーブルでマッピングメモリを元にCPUで演算し、メモリか
ら命令を読み出し、命令をもとにメモリからレジスタにデータを読みだし、レジスタ上の
データを元に演算を行い、演算結果をメモリに書き戻している。なお、キャッシュメモリ
などがその中間に存在することもある。
FIG. 1 is a diagram illustrating a general computer configuration. In a typical computer, the operating kernel allocates program code and data to memory dynamically during and after process creation, and user applications use a virtual address space to prevent memory fragmentation and access to purpose-built memory. I am using. The operating system calculates in the CPU based on the mapping memory in the page table of the kernel memory, reads the instruction from the memory, reads the data from the memory to the register based on the instruction, and performs the operation based on the data on the register. , The operation result is written back to the memory. A cache memory or the like may exist in the middle.

図2は、トラステッド実行環境(TEE;Trusted Execution Environment)を説明す
る図である。TEEとは、セキュアハードウェアの一種である。TEEは、例えば、メモ
リ上にエンクレーブ(Enclave)と呼ばれる暗号的に厳重に保護された領域を生成するこ
とで、秘密性の高いデータを保護しつつプログラムを実行する為のCPUの拡張機能であ
る。図2(a)に示されるように、TEEにおいて、エンクレーブを実現するプログラム
及びデータは、DRAMのサブセットであるPRM(Processor Reserved Memory)に保
管される。PRMは、他のソフトウェアから直接アクセスできない領域となっている。さ
らに、エンクレーブの内容は、PRMのサブセットであるEPC(Enclave Page Cache)
に記録される。すなわち、DRAM上のEPCが実際の保護領域である。CPUがエンク
レーブ外からのソフトウェア(オペレーティングシステムなどのシステムソフトウェアを
含む全てのソフトウェア)からのアクセスを制限する。EPC内のメモリは暗号化されて
おり、CPUが復号化して演算することができる。EPCへのダイレクトメモリアクセス
についてもCPUが制御する。
FIG. 2 is a diagram illustrating a Trusted Execution Environment (TEE). TEE is a type of secure hardware. TEE is, for example, an extended function of the CPU for executing a program while protecting highly confidential data by generating a cryptographically strictly protected area called an enclave in the memory. .. As shown in FIG. 2A, in TEE, the program and data for realizing enclave are stored in PRM (Processor Reserved Memory), which is a subset of DRAM. The PRM is an area that cannot be directly accessed by other software. Furthermore, the content of the enclave is EPC (Enclave Page Cache), which is a subset of PRM.
Recorded in. That is, the EPC on the DRAM is the actual protected area. The CPU restricts access from software from outside the enclave (all software including system software such as the operating system). The memory in the EPC is encrypted, and the CPU can decrypt and perform the calculation. The CPU also controls direct memory access to the EPC.

図2(b)に示されるように、それぞれのエンクレーブには、ELRANGE(Enclav
e Linear Address Range)と呼ばれる仮想アドレス空間が指定される。ELRANGEは
EPC領域にマッピングされる。一方で、仮想アドレスの割り当ては(TEEでは信頼し
ていない)カーネルの役割である。エンクレーブの初期化フェーズ前に全てのEPCは静
的に割り当てられる。エンクレーブには、ページテーブルが含められる。
As shown in FIG. 2 (b), each enclave has an ELRANGE (Enclav).
A virtual address space called e Linear Address Range) is specified. ELRANGE is mapped to the EPC region. On the other hand, virtual address allocation is the role of the kernel (which TEE does not trust). All EPCs are statically assigned before the enclave initialization phase. The enclave contains a page table.

図3は、TEEにより対策可能な脅威を説明する図である。TEEは、マルウェアなど
を用いた機密情報(秘密鍵、パスワードなどを含む。)の流出を防ぐことができるもので
ある。また、TEEでは、オペレーティングシステムも信頼されておらず、CPU及びエ
ンクレーブ内のコードのみが信頼されている。攻撃として、メモリ破壊(不正なメモリ書
き換え、操作など)、システムソフトウェアからの攻撃(信頼されていないオペレーティ
ングシステム)、コールブート攻撃(強制的な揮発遅延によるメモリの読み取りなど)へ
の対策がなされている。なお、当該図の説明は、 「Graphene-SGX: A Practical Library
OS for Unmodified Applications on SGX」, Chia-Che Tsai, Donald E. Porter, Mona
Vij. USENIX: https://www.usenix.org/system/files/conference/atc17/atc17-tsai.pdf
にて説明されている。
FIG. 3 is a diagram illustrating threats that can be dealt with by TEE. TEE can prevent the leakage of confidential information (including private key, password, etc.) using malware or the like. Also, in TEE, the operating system is not trusted, only the CPU and the code in the enclave are trusted. As attacks, countermeasures against memory corruption (illegal memory rewriting, operation, etc.), attacks from system software (untrusted operating system), and call boot attacks (memory reading due to forced volatilization delay, etc.) are taken. There is. The explanation of the figure is "Graphene-SGX: A Practical Library".
OS for Unmodified Applications on SGX ", Chia-Che Tsai, Donald E. Porter, Mona
Vij. USENIX: https://www.usenix.org/system/files/conference/atc17/atc17-tsai.pdf
It is explained in.

本実施形態では、秘密性の高い管理対象のデータ(以下、秘密情報という。)をTEE
のエンクレーブに格納し、ユーザはTEEサーバに対して秘密情報の読み書きを行う。そ
の一方で、秘密情報を暗号化したデータ(以下、暗号化情報という。)はブロックチェー
ンに登録し、秘密情報への読み書き等のオペレーションを、ブロックチェーン上でのトラ
ンザクションとして発生させるようにして、秘密情報と暗号化情報との同期をとっている
。これにより、ブロックチェーンによる改ざん困難性と、TEEによる秘密性とを組み合
わせることが可能となる。
In the present embodiment, highly confidential data to be managed (hereinafter referred to as confidential information) is referred to as TEE.
Stored in the enclave of, the user reads and writes confidential information to the TEE server. On the other hand, data in which confidential information is encrypted (hereinafter referred to as encrypted information) is registered in the blockchain, and operations such as reading and writing to the confidential information are generated as transactions on the blockchain. Confidential information and encrypted information are synchronized. This makes it possible to combine the difficulty of tampering with the blockchain and the confidentiality of the TEE.

<システム概要>
図4は、本発明の一実施形態に係るデータ管理システムの全体構成例を示す図である。
本実施形態のデータ管理システムは、TEEサーバ2及びブロックチェーンネットワーク
3を含んで構成される。ブロックチェーンネットワーク30は、複数のブロックチェーン
ノード(BCノード3)により構成される。本実施形態では、BCノード3には対応する
TEEサーバ2がそれぞれ設けられる。なお、BCノード3とTEEサーバ2とは1対1
のペアとして構成してもよいし、1つのBCノード3に複数のTEEサーバ2が対応し、
及び/又は、複数のBCノード3に1つ若しくは複数のTEEサーバ2が対応していても
よい。また、本実施形態では、TEEサーバ2は1つのツリーを構成するものとする。
<System overview>
FIG. 4 is a diagram showing an overall configuration example of a data management system according to an embodiment of the present invention.
The data management system of the present embodiment includes a TEE server 2 and a blockchain network 3. The blockchain network 30 is composed of a plurality of blockchain nodes (BC nodes 3). In the present embodiment, the BC node 3 is provided with the corresponding TEE server 2. The BC node 3 and the TEE server 2 are one-to-one.
It may be configured as a pair of, or one BC node 3 is supported by a plurality of TEE servers 2.
And / or, one or more TEE servers 2 may correspond to a plurality of BC nodes 3. Further, in the present embodiment, the TEE server 2 constitutes one tree.

TEEサーバ2は、TEEを備えるコンピュータである。TEEサーバ2は、ユーザ端
末1からのリクエストに応じて秘密情報を管理する。BCノード3は、上述したようにブ
ロックチェーンネットワーク30を構成する。BCノード3には、暗号化情報が分散台帳
に登録される。
The TEE server 2 is a computer provided with TEE. The TEE server 2 manages confidential information in response to a request from the user terminal 1. The BC node 3 constitutes the blockchain network 30 as described above. The encrypted information is registered in the distributed ledger in the BC node 3.

図5は、ユーザ端末1、TEEサーバ2及びBCノード3を実現するコンピュータのハ
ードウェア構成例を示す図である。ユーザ端末1、TEEサーバ2及びBCノード3は、
例えばワークステーションやパーソナルコンピュータのような汎用コンピュータとしても
よいし、あるいはクラウド・コンピューティングによって論理的に実現されてもよい。コ
ンピュータは、CPU01、メモリ102、記憶装置103、通信インタフェース104
、入力装置105、出力装置106を備える。記憶装置103は、各種のデータやプログ
ラムを記憶する、例えばハードディスクドライブやソリッドステートドライブ、フラッシ
ュメモリなどである。通信インタフェース104は、通信ネットワークに接続するための
インタフェースであり、例えばイーサネット(登録商標)に接続するためのアダプタ、公
衆電話回線網に接続するためのモデム、無線通信を行うための無線通信機、シリアル通信
のためのUSB(Universal Serial Bus)コネクタやRS232Cコネクタなどである。
入力装置105は、データを入力する、例えばキーボードやマウス、タッチパネル、ボタ
ン、マイクロフォンなどである。出力装置106は、データを出力する、例えばディスプ
レイやプリンタ、スピーカなどである。
FIG. 5 is a diagram showing a hardware configuration example of a computer that realizes a user terminal 1, a TEE server 2, and a BC node 3. User terminal 1, TEE server 2 and BC node 3
For example, it may be a general-purpose computer such as a workstation or a personal computer, or it may be logically realized by cloud computing. The computer includes a CPU 01, a memory 102, a storage device 103, and a communication interface 104.
, An input device 105, and an output device 106. The storage device 103 stores various data and programs, such as a hard disk drive, a solid state drive, and a flash memory. The communication interface 104 is an interface for connecting to a communication network, for example, an adapter for connecting to Ethernet (registered trademark), a modem for connecting to a public telephone network, a wireless communication device for performing wireless communication, and the like. It is a USB (Universal Serial Bus) connector or RS232C connector for serial communication.
The input device 105 is, for example, a keyboard, a mouse, a touch panel, a button, a microphone, or the like for inputting data. The output device 106 is, for example, a display, a printer, a speaker, or the like that outputs data.

<データ管理の概要>
図6は、本実施形態のデータ管理システムにおけるデータ管理の概要を説明する図であ
る。本実施形態のデータ管理システムでは、TEEサーバ2は秘密情報を平文で記録する
とともに、ブロックチェーンネットワーク30により共有される場合に、そのデータの秘
匿性を保護するために秘密情報の暗号化を行う。すなわち、TEE保護領域内部でのみ機
密性の高いデータを扱うようにし、ブロックチェーンネットワーク30上には暗号化した
データ(暗号文)のみを記録するようにする。TEEサーバ2は、外部からデータを見る
ことができない保護領域を持つコンピュータである。TEEは、保護領域内部のデータが
外部から勝手に見れないことを保証しているため、秘密情報の秘匿性を担保することがで
きる。また、TEEでは、後述するアテステーションサービスにより正しいプログラムが
動作していることが保証されるようにすることができるので、計算完全性を担保すること
ができる。
<Overview of data management>
FIG. 6 is a diagram illustrating an outline of data management in the data management system of the present embodiment. In the data management system of the present embodiment, the TEE server 2 records the secret information in plain text and encrypts the secret information in order to protect the confidentiality of the data when shared by the blockchain network 30. .. That is, highly confidential data is handled only inside the TEE protected area, and only encrypted data (ciphertext) is recorded on the blockchain network 30. The TEE server 2 is a computer having a protected area in which data cannot be viewed from the outside. Since the TEE guarantees that the data inside the protected area cannot be viewed from the outside without permission, the confidentiality of the confidential information can be ensured. Further, in TEE, it is possible to guarantee that the correct program is operating by the attestation service described later, so that the calculation completeness can be guaranteed.

図7は、ユーザからのデータアクセスを説明する図である。本実施形態のデータ管理シ
ステムでは、秘匿性あるいは匿名性を保証するためにブロックチェーンネットワーク30
上にはそれぞれの状態の暗号文をアカウントに紐づかない形式で保持する。オンチェーン
(ブロックチェーンネットワーク30で管理される分散台帳)には匿名性が保証されるよ
うに非構造化データ(暗号文)が管理され、オフチェーン(ブロックチェーンで管理され
ない場所、すなわち、TEEサーバ2)では、状態遷移できるように構造化データ(平文
の秘密情報)が管理される。復号化された秘密情報は、オフチェーンのエンクレーブ21
内のみに一時的に存在することになる。したがって、ユーザから自由にアクセスできない
保護領域に復号化された秘密情報を管理することができる。また、本実施形態のデータ管
理システムでは、ユーザ端末1からのリクエストに応じて、TEEサーバ2がエンクレー
ブ21内で秘密情報の状態を遷移させ、その結果を暗号化してブロックチェーンネットワ
ーク30にブロードキャストすることができる。そして、他のTEEサーバ2は暗号文を
ブロックチェーンネットワーク30から読み取り、エンクレーブ21内で復号化すること
で、エンクレーブ21内の秘密情報を更新することができる。暗号化情報は、ブロックチ
ェーンネットワーク30内では復号化することができず、エンクレーブ21内でのみ復号
化することができる。後述するオンチェーンでのREPORT検証によりTEEサーバ2
の計算完全性を検証することができる。REPORT検証は、TEEサーバ2が意図され
たプログラムを動かしているか否かを検証する。ユーザ端末1が秘密情報の状態を取得し
たい場合はTEEサーバ2から得ることができる。
FIG. 7 is a diagram illustrating data access from a user. In the data management system of the present embodiment, the blockchain network 30 is used to guarantee confidentiality or anonymity.
The ciphertext of each state is held above in a format that is not tied to the account. Unstructured data (ciphertext) is managed on-chain (distributed ledger managed by blockchain network 30) so that anonymity is guaranteed, and off-chain (places not managed by blockchain, that is, TEE server). In 2), structured data (confidential information in plain text) is managed so that state transitions can be made. The decrypted confidential information is the off-chain enclave 21.
It will temporarily exist only within. Therefore, it is possible to manage the decrypted confidential information in the protected area that cannot be freely accessed by the user. Further, in the data management system of the present embodiment, in response to the request from the user terminal 1, the TEE server 2 changes the state of the secret information in the enclave 21, encrypts the result, and broadcasts it to the blockchain network 30. be able to. Then, the other TEE server 2 can update the secret information in the enclave 21 by reading the ciphertext from the blockchain network 30 and decrypting it in the enclave 21. The encrypted information cannot be decrypted in the blockchain network 30, but can be decrypted only in the enclave 21. TEE server 2 by on-chain REPORT verification described later
The computational completeness of can be verified. The REPORT verification verifies whether the TEE server 2 is running the intended program. If the user terminal 1 wants to acquire the state of the secret information, it can be obtained from the TEE server 2.

本実施形態のデータ管理システムが有する性質には次の5つがある。
(1)データ有用性:ブロックチェーンネットワーク30に管理されているデータから全
ての秘密情報を復元可能である。
(2)ブロックチェーン対応性:既存の様々なブロックチェーン上で動作する。
(3)非同期:それぞれのTEEサーバ2は非同期に動作する。
(4)機密性:ブロックチェーンには暗号化データが管理される。
(5)正しい実行:コンフリクトなく実行される。
The data management system of the present embodiment has the following five properties.
(1) Data usefulness: All confidential information can be restored from the data managed by the blockchain network 30.
(2) Blockchain compatibility: Operates on various existing blockchains.
(3) Asynchronous: Each TEE server 2 operates asynchronously.
(4) Confidentiality: Encrypted data is managed in the blockchain.
(5) Correct execution: It is executed without conflict.

図8は、本実施形態のデータ管理システムにおけるデータ管理に係るサブプロトコルを
説明する図である。
FIG. 8 is a diagram illustrating a sub-protocol related to data management in the data management system of the present embodiment.

ユーザ端末1とTEEサーバ2との間ではチャレンジレスポンス認証が行われる(S8
01)。これは、ユーザ鍵ペアでアクセス可能なデータ管理である。次に、エンクレーブ
21内では、CGKA安全なグループ暗号化が行われる(S802)。すなわち、特定の
暗号文解読(秘密鍵漏洩)が他の暗号文に影響を与えないことを意味する。TEEサーバ
2のシミュレーション攻撃を防ぐトランザクション署名方式を採用する(S803)。こ
れは、TEEサーバ2が正しい処理をしていることを署名だけで検証することを意味する
。書き込み競合のロック方式を採用する(S804)。すなわち、データ競合対策である
。ブロック高ごとのエンクレーブ21内の状態ハッシュ値の一致検証を行う(S805)
。これにより全てのTEEサーバ2が同じ内部状態を持っていることを保証することがで
きる。
Challenge-response authentication is performed between the user terminal 1 and the TEE server 2 (S8).
01). This is data management accessible with a user key pair. Next, in the enclave 21, CGKA secure group encryption is performed (S802). That is, it means that a specific ciphertext decryption (secret key leakage) does not affect other ciphertexts. A transaction signature method for preventing a simulation attack of the TEE server 2 is adopted (S803). This means that the TEE server 2 verifies that the processing is correct only by signing. A lock method of write conflict is adopted (S804). That is, it is a measure against data conflict. Match verification of the state hash value in the enclave 21 for each block height is performed (S805).
.. This makes it possible to guarantee that all TEE servers 2 have the same internal state.

<アテステーションサービス>
図9は、アテステーションサービスについて説明する図である。サービスプロバイダー
(SP;Service Provider)はエンクレーブ21を備えていないコンピュータであり、独
立ソフトウェアベンダー(ISV;Independent Software Vendor)は、エンクレーブ2
1を備えているコンピュータである。SPが正当なエンクレーブ21であることをアテス
テーションサービス4が認証する。特定のメーカーが製造したCPUであるかどうか、脆
弱性はないか、MRENCLAVEの比較(実行プログラムの比較)などを認証する。ア
テステーションサービス4は、例えば、オープンソースのDCAPなどにより実装される
。エンクレーブ21が生成するQUOTEをアテステーションサービス4に送信し、アテ
ステーションサービス4の秘密鍵で署名されたREPORTが応答される。QUOTEに
は、MRENCLAVE(エンクレーブ計測値、ハッシュ値)が含まれる。ISVは、C
PU内の秘密鍵でQUOTEを署名する。当該秘密鍵は、CPUのチップ製造時に設定さ
れる固有の鍵であり、いわゆるRoot of Trustとして機能する。アテステー
ションサービス4は、対応する公開鍵で署名検証する。これにより、正当なトラステッド
実行環境から送られてきたQUOTEであることを保証することができる。アテステーシ
ョンサービス4は、秘密鍵で署名されたREPORTを応答する。REPORTには、M
RENCLAVEが含まれる。アテステーションサービス4は、X.509証明書で認証
することができる。
<Atestation service>
FIG. 9 is a diagram illustrating an attestation service. A service provider (SP) is a computer that does not have an enclave 21, and an independent software vendor (ISV) is an enclave 2.
It is a computer equipped with 1. The attestation service 4 authenticates that the SP is a legitimate enclave 21. It authenticates whether the CPU is manufactured by a specific manufacturer, whether it is vulnerable, and whether it is a comparison of MRENCLAVE (comparison of execution programs). The attestation service 4 is implemented by, for example, an open source DCAP. The QUATE generated by the enclave 21 is transmitted to the attestation service 4, and the REPORT signed with the private key of the attestation service 4 is returned. QUATE includes MRENCLAVE (enclave measurement value, hash value). ISV is C
Sign the QUATE with the private key in the PU. The private key is a unique key set when the CPU chip is manufactured, and functions as a so-called Root of Trust. The attestation service 4 verifies the signature with the corresponding public key. This makes it possible to guarantee that the QUATE is sent from a legitimate trusted execution environment. The attestation service 4 responds with a REPORT signed with a private key. For REPORT, M
RENCLAVE is included. Attestation service 4 is X.I. It can be authenticated with a 509 certificate.

図10は、アテステーションサービスから応答されるREPORT構造体の主要項目を
示す図である。idは、ユニークな識別子であり、timestampは、REPORT
生成時のタイムスタンプである。versionは、APIバージョンであり、isvE
nclaveQuoteStatusは、EPID署名に対するステータスである。CP
UCVNは、CPUのセキュリティバージョンであり、MISCSEKECTは、Enc
lave内での例外発生時のプロセッサ状態であり、ATTRIBUTESは、エンクレ
ーブ21の属性フラグである。MRENCLAVEは、エンクレーブ計測値である。MR
SIGNERは、エンクレーブ署名鍵のRSA公開鍵modulusのハッシュ値である
。ISVPRODIDは、エンクレーブのプロダクトIDであり、ISVSVNは、エン
クレーブのセキュリティバージョンである。REPORTDATAは、レポートデータで
ある。
FIG. 10 is a diagram showing the main items of the REPORT structure responded from the attestation service. id is a unique identifier and timestamp is REPORT.
This is the time stamp at the time of generation. version is the API version, isvE
nclaveQuoteStatus is the status for the EPID signature. CP
UCVN is the security version of the CPU and MISCSEKECT is Enc.
It is the processor state when an exception occurs in the love, and ATTRIBUTES is an attribute flag of the enclave 21. MRENCLAVE is an enclave measurement value. MR
SIGNER is a hash value of the RSA public key modulus of the enclave signing key. ISVPRODID is the product ID of the enclave and ISVSVN is the security version of the enclave. REPORTDATA is report data.

<REPORT検証>
図11は、REPORTの検証処理を説明する図である。REPORTの検証処理は、
TEEサーバ2が全て同じプログラムを実行していることをオンチェーンで合意しようと
するものである。各TEEサーバ2は、アテステーションサービス4にQUOTEを送信
して、正当なトラステッド実行環境であるか否かの検証を受ける。アテステーションサー
ビス4からは、REPORTが応答される。アテステーションサービス4では、上述した
ように、CPUの固有秘密鍵による署名の検証、セキュリティバージョンのチェックなど
が行われる。REPORTはMRENCLAVEを含み、X.509証明書で認証される
<REPORT verification>
FIG. 11 is a diagram illustrating a REPORT verification process. The verification process of REPORT is
It attempts to agree on-chain that the TEE servers 2 are all running the same program. Each TEE server 2 transmits QUATE to the attestation service 4 and undergoes verification as to whether or not it is a legitimate trusted execution environment. REPORT is returned from the attestation service 4. In the attestation service 4, as described above, the signature verification by the unique private key of the CPU, the security version check, and the like are performed. REPORT includes MRENCLAVE, X.I. Authenticated with 509 certificate.

TEEサーバ2は、スマートコントラクトを用いて、デプロイ時にオンチェーンで、R
EPORTの署名検証、MRENCLAVEの登録、ならびに、公開鍵及びエンドポイン
トなどのパラメタ登録を行う。TEEサーバ2は、REPORT内のREPORTDAT
A項目にエンクレーブ21内で生成した公開鍵(RAK)とノンスとを設定する。TEE
サーバ2は、公開鍵はオンチェーンに登録する。ブロックチェーンネットワーク30にお
いて、通常のトランザクションでは、著名公開鍵が登録されているか否かを検証し、その
公開鍵による署名検証を行うことができる。したがって、エンクレーブ21のプログラム
コードを変更すると、メモリ上の署名秘密鍵も失われ、署名検証を行うことができなくな
る。したがって、REPORTを検証することで、エンクレーブ21で実行しているプロ
グラムの真正性(他のTEEサーバ2のエンクレーブ21と同じプログラムを実行してい
ること)を保証することができる。ノンスは、REPORTのリプレイ攻撃を防ぐために
設定することが出来る。
The TEE server 2 uses smart contracts to be on-chain at deployment time and R
EPORT signature verification, MRENCLAVE registration, and parameter registration such as public key and endpoint are performed. The TEE server 2 is a REPORT DAT in REPORT.
Set the public key (RAK) and nonce generated in the enclave 21 in item A. TEE
The server 2 registers the public key on-chain. In the blockchain network 30, in a normal transaction, it is possible to verify whether or not a well-known public key is registered and to perform signature verification using the public key. Therefore, if the program code of the enclave 21 is changed, the signature private key in the memory is also lost, and the signature verification cannot be performed. Therefore, by verifying REPORT, it is possible to guarantee the authenticity of the program being executed by the enclave 21 (that the same program as the enclave 21 of the other TEE server 2 is being executed). Nonces can be set to prevent REPORT replay attacks.

TEEサーバ2は、最初の参加時と定期的なリフレッシュ時にのみREPORT検証を
行うものとする。これにより、トランザクションごとにアテンションサービス4との通信
を行う必要がなくなる。
The TEE server 2 shall perform REPORT verification only at the time of the first participation and the periodical refresh. This eliminates the need to communicate with the attention service 4 for each transaction.

<ネットワークへの参加>
図12は、TEEサーバ2を追加するときの動作を説明する図である。図12の例では
、TEEサーバ2(2)が新規に追加され、TEEサーバ2(1)が既存である。
<Participation in the network>
FIG. 12 is a diagram illustrating an operation when the TEE server 2 is added. In the example of FIG. 12, the TEE server 2 (2) is newly added, and the TEE server 2 (1) already exists.

新規のTEEサーバ2(2)からアテステーションサービス4に署名済みQUOTE構
造体データを送信する(S121)。アテステーションサービス4からは、REPORT
構造体データが応答される(S122)。新規のTEEサーバ2(2)から既存のTEE
サーバ2(1)に対してinitkeyを送信する(S123)。initkeyの公開
鍵がグループステートとして登録されることになる。TEEサーバ2(1)及びTEEサ
ーバ2(2)は互いにREPORTの検証を行う。すなわち、新規のTEEサーバ2(2
)と既存のTEEサーバ2(1)との間でREPORT構造体データを共有し、REPO
RTの署名、タイムスタンプ、ステータスなどを検証するとともに、お互いのMRENC
LAVEが一致するか否かを検証する。
The new TEE server 2 (2) transmits the signed QUATE structure data to the attestation service 4 (S121). From Ate Station Service 4, REPORT
The structure data is returned (S122). Existing TEE from new TEE server 2 (2)
Initkey is transmitted to the server 2 (1) (S123). The public key of initkey will be registered as a group state. The TEE server 2 (1) and the TEE server 2 (2) mutually verify REPORT. That is, the new TEE server 2 (2)
) And the existing TEE server 2 (1) to share the REPORT structure data and REPO.
While verifying RT signature, time stamp, status, etc., each other's MRENC
Verify whether the LAVEs match.

次に、既存のTEEサーバ2(1)から新規のTEEサーバ2(2)に対してグループ
ステートを送信する(S124)。グループステートは、後述するTreeKEM形式で
ある。新規のTEEサーバ2(2)は、秘密鍵(dhsecret)を追加して、グルー
プステートから暗号化に用いるグループ鍵を抽出する。また、新規のTEEサーバ2(2
)は、グループステートから追加(Add)のハンドシェイクを作成し、ハンドシェイクと
、署名マッピングとをブロックチェーンネットワーク30に送信する(S125)。また
、新規のTEEサーバ2(2)は、スマートコントラクトにより、REPORTと、指定
のパラメータ(TEE名称、URL、タイムスタンプなど)をブロックチェーンネットワ
ーク30に送信することができる。ブロックチェーンネットワーク30では、REPOR
Tの検証、MRENCLAVEの一致検証、REPORTDATA内のノンス検証、RE
PORTDATA内の公開鍵登録、タイムスタンプ登録などを行うことができる。
Next, the group state is transmitted from the existing TEE server 2 (1) to the new TEE server 2 (2) (S124). The group state is in the TreeKEM format, which will be described later. The new TEE server 2 (2) adds a private key (dhsecret) and extracts the group key used for encryption from the group state. Also, the new TEE server 2 (2)
) Creates an add handshake from the group state, and transmits the handshake and the signature mapping to the blockchain network 30 (S125). In addition, the new TEE server 2 (2) can transmit REPORT and designated parameters (TEE name, URL, time stamp, etc.) to the blockchain network 30 by a smart contract. In blockchain network 30, REPOR
T verification, MRENCLAVE match verification, nonce verification in REPORTDATA, RE
Public key registration, time stamp registration, etc. in PORTDATA can be performed.

図13は、TEEサーバ2を追加する処理の流れを示す図である。 FIG. 13 is a diagram showing a flow of processing for adding the TEE server 2.

ユーザ端末1からシグネチャが新規のTEEサーバ2に送信され(S1301)、TE
Eサーバ2ではシグネチャの検証が行われる(S1302)。新規のTEEサーバ2は、
QUOTEをアテステーションサービス4に送信し(S1303)、アテステーションサ
ービス4からREPORTが応答される(S1304)。新規のTEEサーバ2から既存
のTEEサーバ2にinitkeyが送信され(S1305)、既存のTEEサーバ2か
らwelcomが応答される(S1306)。
The signature is transmitted from the user terminal 1 to the new TEE server 2 (S1301), and the TE
Signature verification is performed on the E server 2 (S1302). The new TEE server 2
QUATE is transmitted to the attestation service 4 (S1303), and REPORT is returned from the attestation service 4 (S1304). An initkey is transmitted from the new TEE server 2 to the existing TEE server 2 (S1305), and a welcome is returned from the existing TEE server 2 (S1306).

新規のTEEサーバ2は、REPORT、公開鍵、ノンス、追加のハンドシェイクをブ
ロックチェーンネットワーク30にブロードキャストする(S1307)。ブロックチェ
ーンネットワーク30では、MRENCLAVEの検証(S1308)、REPORTの
署名の検証(S1309)、ノンスの検証(S1310)、公開鍵の検証(S1311)
、REPORTの日時の検証(S1312)が行われ、追加のハンドシェイクが実行され
る(S1313)。
The new TEE server 2 broadcasts REPORT, public key, nonce, and additional handshake to blockchain network 30 (S1307). In the blockchain network 30, MRENCLAVE verification (S1308), REPORT signature verification (S1309), nonce verification (S1310), and public key verification (S1311).
, REPORT date and time verification (S1312) is performed and an additional handshake is performed (S1313).

ブロックチェーンネットワーク30から既存のTEEサーバ2にハンドシェイクが応答
され(S1314)、既存のTEEサーバ2はグループステートを更新する(S1315
)。ブロックチェーンネットワーク30からは新規のTEEサーバ2にもハンドシェイク
が応答され(S1316)、新規のTEEサーバ2もグループステートを更新する(S1
317)。
A handshake is replied from the blockchain network 30 to the existing TEE server 2 (S1314), and the existing TEE server 2 updates the group state (S1315).
). A handshake is also responded to the new TEE server 2 from the blockchain network 30 (S1316), and the new TEE server 2 also updates the group state (S1).
317).

以上のようにして、新規のTEEサーバ2がネットワークに登録される。 As described above, the new TEE server 2 is registered in the network.

<TreeKEM形式>
図14は、TreeKEM形式のグループステートを説明する図である。TreeKE
M(木構造の鍵カプセル化手法;Key Encapsulation Method)の詳細については、MLS
(Messaging Layer Security)プロトコルのRFC標準のドラフト(https://tools.ietf
.org/html/draft-ietf-mls-protocol-08)を参照する。ここで、配送サーバ(Delivering
Server)のOrderingをブロックチェーンネットワーク30が行うものとする。
また、ハンドシェイク及びアプリケーションメッセージの順序はグローバルに共通である
ものとする。TEEサーバ2のネットワーク全体で共有されるマスターシードの存在を消
去する。TEEサーバ2ごとに自由に鍵の変更が可能であるため、情報漏洩後の対応(P
CS;Post-Compromise Security)が可能である。また、マスターを削除することもでき
る。
<TreeKEM format>
FIG. 14 is a diagram illustrating a TreeKEM format group state. TreeKE
For more information on M (Tree-structured Key Encapsulation Method), see MLS.
(Messaging Layer Security) RFC standard draft of protocol (https://tools.ietf)
.org / html / draft-ietf-mls-protocol-08). Here, the delivery server (Delivering)
It is assumed that the blockchain network 30 performs the ordering of Server).
In addition, the order of handshakes and application messages shall be globally common. The existence of the master seed shared by the entire network of the TEE server 2 is deleted. Since the key can be freely changed for each TEE server 2, what to do after information leakage (P)
CS; Post-Compromise Security) is possible. You can also delete the master.

木構造のリーフは、各メンバーのinitkeyから生成されるノード(公開鍵DHP
ubKey)である。該当するメンバーのみがリーフとその直接パスで接続されたメンバ
ーの秘密鍵DHSecretを知っている。
The tree-structured leaf is a node (public key DHP) generated from each member's initkey.
ubKey). Only the relevant member knows the private key DHSeclet of the member connected by the leaf and its direct path.

図14の例において、ルートKは、全てのメンバーが知っている。KDF(Key Deriva
tion Function)チェーンのグループキーとして利用することができる。生成(Create)
、追加(Add)、更新(Update)、削除(Remove)のハンドシェイク操作でTreeKEM
は変化する。エポック(Epoch)が変化して、情報漏洩後の対策(PCS)となる。オン
チェーンでは、エポック、署名者のインデックスに対応付けた公開鍵(signer_i
ndex=>identityPubkey)を保持する。これにより、操作が更新であ
る場合、signer_indexが存在するかどうかを判定し、操作が追加及び削除で
ある場合には、signer_indexが存在しないかどうかを判定することができる
。identityPubkeyによりハンドシェイクの署名を検証することができる。
ハンドシェイク時には前回のインデックス(prior_index)が一致するかどう
かを検証することができる。また、ハンドシェイクごとにエポックはインクリメントされ
る。TEEサーバ2は、受信したハンドシェイクの中のHMACを検証することができる
In the example of FIG. 14, route K is known to all members. KDF (Key Deriva)
statement Function) Can be used as a group key for the chain. Create
, Add, Update, Remove Handshake operation, TreeKEM
Changes. Epoch changes and becomes a countermeasure (PCS) after information leakage. On-chain, public key (signer_i) associated with epoch and signer's index
ndex => identity Pubkey) is retained. Thereby, when the operation is an update, it can be determined whether or not the signer_index exists, and when the operation is addition and deletion, it can be determined whether or not the signer_index exists. The signature of the handshake can be verified by the identity Pubkey.
At the time of handshake, it is possible to verify whether or not the previous index (prior_index) matches. Also, the epoch is incremented with each handshake. The TEE server 2 can verify the HMAC in the received handshake.

図15は、グループステートに含まれるアプリケーションキーチェーンの構成例を示す
図である。このアプリケーションキーチェーンは、前方秘匿性(Forward Secrecy)の要
である。本実施形態のデータ管理システムでは、TEEサーバ2ごとにアプリケーション
チェーンを回していく。署名された公開鍵で識別することができる。グループキーからメ
ンバーインデックス(roster idx)ごとに、KDFチェーンを用いることによ
り、前方秘匿性を得ながらメッセージの暗号化に用いる鍵を生成することができる。受け
取ったメッセージの復号化にラチェット(ratchet)を用いることができる。なお、ML
Sでは暗号化にもラチェットが用いられている。各ユーザごとの生成(generation)をエ
ンクレーブ21内に保持する。ブロックチェーンネットワーク30がこの生成とエポック
の変化とをグローバルに順序づけするために、全てのTEEサーバ2で共通の暗号化情報
に対して共通の鍵を利用することができる。
FIG. 15 is a diagram showing a configuration example of the application key chain included in the group state. This application keychain is the cornerstone of forward secrecy. In the data management system of this embodiment, the application chain is rotated for each TEE server 2. It can be identified by the signed public key. By using the KDF chain for each member index (roster idx) from the group key, it is possible to generate a key used for message encryption while obtaining forward secrecy. A ratchet can be used to decrypt the received message. In addition, ML
In S, a ratchet is also used for encryption. The generation for each user is held in the enclave 21. In order for the blockchain network 30 to globally order this generation and epoch changes, a common key can be used for common encrypted information in all TEE servers 2.

図16は、図12の動作におけるハンドシェイクの詳細を説明する図である。新規のT
EEサーバ2(2)がステップS124で受け取ったwelcomから生成するグループ
ステートには自身のノードにのみ秘密鍵DHSecretKeyが含まれる。そして、自
身のノードから直接パスで接続されているノードの鍵が分かる。秘密鍵は自身しか知らな
い。新規TEEサーバ2(2)のリーフインデックスは、既存のメンバーであるTEEサ
ーバ2(1)が決定する。ステップS125で、新規TEEサーバ2(2)のinitk
eyがブロックチェーンネットワーク30に記録されるが、秘密鍵DHSecretKe
yは含まれない。ブロックチェーンネットワーク30が、新規TEEサーバ2(2)のメ
ンバーインデックス(roster index)を決定し、ハンドシェイクの応答ステ
ップS126で、TreeKEMのメンバーインデックス(roster index)
に公開鍵DHPubKeyを追加し、新しいグループルートを決定する。
FIG. 16 is a diagram illustrating details of the handshake in the operation of FIG. New T
The group state generated from the welcome received by the EE server 2 (2) in step S124 includes the private key DHSecretKey only in its own node. Then, you can find the key of the node connected by the path directly from your own node. Only you know the private key. The leaf index of the new TEE server 2 (2) is determined by the existing member TEE server 2 (1). In step S125, the initk of the new TEE server 2 (2)
ey is recorded in the blockchain network 30, but the private key DHSecretKe
y is not included. The blockchain network 30 determines the member index (roster index) of the new TEE server 2 (2), and in the response step S126 of the handshake, the member index (roster index) of TreeKEM.
Add the public key DHPubKey to and determine the new group route.

initkeyには、user_init_key_id、supported_ve
rsion、cipher_suites、dhpubkey、credential、
signatureが含まれる。
Initkey includes user_init_key_id, supported_ve
rsion, cipher_suites, dhpubkey, credential,
Signature is included.

welcome(グループステート)には、user_init_key_id、ci
pehr_suite、encrypted_group_stateが含まれる。
Welcome (group state) includes user_init_key_id, ci
Includes pehr_suite and enclosed_group_state.

追加(Add)のハンドシェイクには、prior_epoch、GroupAdd、s
igner_index、signature、conf_macが含まれる。ここで、
GroupAddには、roster_index、init_key、welcome
_hashが含まれる。
For the Add handshake, preor_epoch, GroupAd, s
igner_index, signature, conf_mac are included. here,
GroupAdd includes roster_index, init_key, welcome
_Hash is included.

このようにTreeKEM形式のグループステートをブロックチェーンネットワークで
共有することにより、TEEサーバ2の各ペア間で秘密鍵を共有するよりも、効率的に鍵
を共有することが可能となる。また、仮に暗号化に使う秘密鍵(TreeKEMのルート
ノードの秘密鍵)が漏洩した場合であっても、それぞれ別の秘密鍵で暗号化しているため
、他の暗号文は解読できない。また、それぞれのTEEサーバ2がそれぞれ管理する秘密
鍵で暗号化することができるので、秘密鍵漏洩の責務を主体ごとに分けることができる。
By sharing the TreeKEM format group state in the blockchain network in this way, it is possible to share the key more efficiently than sharing the private key between each pair of TEE servers 2. Even if the private key used for encryption (the secret key of the root node of TreeKEM) is leaked, other ciphertexts cannot be decrypted because they are encrypted with different private keys. Further, since the private key managed by each TEE server 2 can be used for encryption, the responsibility for leaking the private key can be divided for each subject.

<更新ハンドシェイク>
図14に示したTreeKEMにおいて、ノードFを更新する場合の例を説明する。全
てのメンバーTEEサーバ2は更新されたグループルート(K)を得る。Fが更新される
と、そのHKDFが親ノードであるIの鍵となる。更新されたI及びKは、それぞれのサ
ブグループにだけ伝えられる。すなわち、IはEの鍵で暗号化を行い、KはJの鍵で暗号
化を行う。更新(Update)のハンドシェイクには、prior_epoch、Updat
e Operation、signer_index、signature、conf_
macが含まれる。
<Updated handshake>
An example of updating the node F in the TreeKEM shown in FIG. 14 will be described. All member TEE servers 2 get the updated group route (K). When F is updated, its HKDF becomes the key of I, which is the parent node. Updated I and K are only communicated to their respective subgroups. That is, I encrypts with the key of E, and K encrypts with the key of J. For the update handshake, prior_epoch, Update
eOperation, signature_index, signature, conf_
Macintosh is included.

<削除ハンドシェイク>
図14に示したTreeKEMにおいて、Dを削除(Remove)するハンドシェイクを行
う場合、当該ハンドシェイクはブロックチェーンネットワーク30によりブロードキャス
トされ、Dが知っているノードの鍵を全て消去することになる。すなわち、Dからルート
Kまでの、D、H、J、Kの鍵が削除される。
<Delete handshake>
In the TreeKEM shown in FIG. 14, when a handshake to remove D is performed, the handshake is broadcast by the blockchain network 30 to erase all the keys of the nodes that D knows. That is, the keys of D, H, J, and K from D to route K are deleted.

<書き込み処理>
図17は、書き込みの衝突を説明する図である。例えば、あるTEEサーバ2において
アリスがボブに20送金する状態遷移が生じ、他のTEEサーバ2においてチャーリーが
ボブに30送金する状態遷移が生じるという競合の可能性がある。TEEサーバ2は独立
に動作しているため、オンチェーン上では匿名性が失われないように衝突検出(及びロッ
ク制御)が必要である。
<Writing process>
FIG. 17 is a diagram illustrating a writing collision. For example, there is a possibility of competition that a state transition in which Alice sends 20 remittances to Bob occurs in one TEE server 2 and a state transition in which Charlie sends 30 remittances to Bob occurs in another TEE server 2. Since the TEE server 2 operates independently, collision detection (and lock control) is required so that anonymity is not lost on the chain.

図18は、書き込み競合時のブロックチェーンネットワーク30におけるブロック高を
説明する図である。あるTEEサーバ2(A)において2つのブロックが追加され、他の
TEEサーバ2(B)において1つのブロックが追加される場合に、TEEサーバ2(A
)においてブロック高が5、TEEサーバ2(B)においてブロック高が6であった場合
、TEEサーバ2(A)及びTEEサーバ2(B)の両方でブロック高7になるところ、
競合排他制御を行った場合には、いずれもブロック高8になるべきである。
FIG. 18 is a diagram for explaining the block height in the blockchain network 30 at the time of write conflict. When two blocks are added in one TEE server 2 (A) and one block is added in another TEE server 2 (B), the TEE server 2 (A)
), The block height is 5, and the block height is 6 in the TEE server 2 (B).
When the conflict exclusion control is performed, the block height should be 8 in each case.

図19は、書き込み衝突判定について説明する図である。書き込み操作が並行して行わ
れないように、事前発生関係を補足する。すなわち、TEEサーバ2は、ブロックチェー
ンネットワーク30に送信する暗号化情報には、固定バイト長の乱数rを追加するように
する。すなわち、公開鍵pubkey、状態情報state、現在の乱数(本実施形態で
はハッシュ値とする。)r_iを含めて、暗号化関数Encに与えたEnc(pubke
y||state||r_i)を送信する。エンクレーブ21内では、公開鍵pubke
yに対応付けて状態情報stateと、ハッシュ値r_iとを記録(pubkey=>(
state,r_i))する。
FIG. 19 is a diagram illustrating a write collision determination. Supplement the pre-occurrence relationship so that write operations are not performed in parallel. That is, the TEE server 2 adds a random number r having a fixed byte length to the encryption information transmitted to the blockchain network 30. That is, Enc (pubke) given to the encryption function Enc including the public key pubkey, the state information state, and the current random number (hash value in this embodiment) r_i.
y || state || r_i) is transmitted. In Enclave 21, the public key pubke
Record the state information state and the hash value r_i in association with y (pubkey => (
state, r_i)).

TEEサーバ2は、ロック制御用にrのノンスセットをオンチェーンのストレージに追
加する。また、トランザクションには、直前のハッシュr_{i−1}を含めるようにす
る。ブロックチェーンネットワーク30では、ノンスセットにr_{i−1}が存在して
いないことを確認したうえで、ノンスセットにr_iを加える。ブロックチェーンネット
ワーク30におけるトランザクション処理は、グローバルに順序付けされる。したがって
、ブロックに取り込まれるトランザクションがr_{i−1}を使うと、次のトランザク
ションではノンス検証ではじかれることになる。
The TEE server 2 adds a nonce set of r to the on-chain storage for lock control. Also, the transaction should include the immediately preceding hash r_ {i-1}. In the blockchain network 30, after confirming that r_ {i-1} does not exist in the noncet, r_i is added to the noncet. Transaction processing in the blockchain network 30 is ordered globally. Therefore, if the transaction captured in the block uses r_ {i-1}, it will be rejected by the nonce verification in the next transaction.

図19の例では、TEEサーバ2(A)がボブの残高を70に登録してブロック高が7
になった後、TEEサーバ2(B)は、この状態を読み取り、TEEサーバ2(B)のr
_iはノンス検証ではじかれるため、新たにリトライ処理をすることで、ブロック高8に
トランザクション処理が行われることになる。
In the example of FIG. 19, the TEE server 2 (A) registers Bob's balance with 70 and has a block height of 7.
After becoming, the TEE server 2 (B) reads this state and r of the TEE server 2 (B).
Since _i is repelled by the nonce verification, transaction processing is performed at a block height of 8 by performing a new retry process.

なお、同一ユーザ(TEEサーバ2)による状態遷移は、1ブロックについて1回に制
限するものとする。
The state transition by the same user (TEE server 2) is limited to once per block.

図20は、衝突検証を行う場合の秘密情報の状態遷移について説明する図である。TE
Eサーバ2とブロックチェーンネットワーク30との間のデータ同期は、ベストエフォー
トにて各TEEサーバ2が独立して行う。同期が遅延しているTEEサーバ2(A)がボ
ブの状態を書き換えるトランザクションをブロックチェーンネットワーク30にブロード
キャストする場合、乱数部分はr_2でなくてはいけない。
ここで、r_0=0であり、r_1は、r_0を含めたハッシュ値であり、例えば、遷
移対象account、遷移させる状態をstate_0として、r_1=Hash(a
ccount,state_0,r_0)として求めることができる。同様に、r_2=
Hash(account,state_1,r_1)であり、一般化してr_{i}=
Hash(account,state_{i−1},r_{i−1})となる。図20
の例では、r_2=Hash(Bob,30,r_1)となる。このように、直前の状態
遷移時のハッシュ値を含めて暗号化を行うことにより、衝突検出を行うことが可能となる
FIG. 20 is a diagram for explaining the state transition of the secret information when the collision verification is performed. TE
Data synchronization between the E server 2 and the blockchain network 30 is performed independently by each TEE server 2 at best effort. When the TEE server 2 (A) whose synchronization is delayed broadcasts a transaction that rewrites Bob's state to the blockchain network 30, the random number portion must be r_2.
Here, r_0 = 0, and r_1 is a hash value including r_0. For example, the transition target account and the transition state are set_0, and r_1 = Hash (a).
It can be obtained as ccount, state_0, r_0). Similarly, r_2 =
Hash (account, state_1, r_1), generalized to r_ {i} =
Hash (account, state_ {i-1}, r_ {i-1}). FIG. 20
In the example of, r_2 = Hash (Bob, 30, r_1). In this way, collision detection can be performed by performing encryption including the hash value at the time of the immediately preceding state transition.

なお、衝突の検証を行わない遷移対象(アカウント)に対する状態遷移は、ロックを行
わずに暗号化データをブロードキャストするようにしてもよい。例えば、送金における受
け手の状態遷移が該当する。送り手は残高の検証を行う必要があるところ、「送金」のユ
ースケースでは送り手が複数のTEEサーバ2に跨がらないと考えられるため、実質的に
はロックを行うことなく状態遷移をさせることができる。また、フラグを用いてロックを
行うようにすることもできる。
Note that the state transition for the transition target (account) for which collision verification is not performed may broadcast the encrypted data without locking. For example, the state transition of the recipient in remittance is applicable. Where the sender needs to verify the balance, in the use case of "remittance", it is considered that the sender does not straddle multiple TEE servers 2, so the state transition is substantially performed without locking. be able to. It is also possible to lock using a flag.

図21は、エンクレーブ21における状態遷移の改ざん検出のための仕組みを説明する
図である。全てのエンクレーブ21は、少なくともユーザ(アカウント)の状態をマッピ
ングしている部分については、同じ状態をブロック高ごとに持たなければならないため、
そのハッシュ値をオンチェーンで一致することを検証することが好ましい。そこで、本実
施形態のデータ管理システムでは、ブロックチェーンネットワーク30における全てのト
ランザクションにブロック高とその時の状態ハッシュ値を含めるようにしている。すなわ
ち、RPCハンドラ22は、エンクレーブ21に送るトランザクションインデックス(t
x_index)がシーケンシャルになるようにキャッシュする。そして、状態変化を効
率的にハッシュ計算し、かつその順序に対しての検証も行うことができるように、エンク
レーブ21が管理している状態(enclave_state)のハッシュチェーンを作
成する。すなわち、ハッシュ関数Hを用いて、i番目のハッシュ値をHASH_i、i番
目の状態をstate_iとして、HASH_i=H(state_i,H(state
_{i−1}))によりハッシュ値を計算する。これにより、あるエンクレーブ21にお
いて状態が改ざんされた場合であっても、その改ざんをブロックチェーンネットワーク3
0又は他のTEEサーバ2において検出することができる。また、本実施形態では、暗号
化情報を管理するブロックチェーンネットワーク30における全てのBCノード3におい
て、暗号化情報の検証を行うことができる。したがって、従来技術のようにトランザクシ
ョンデータの正当性を単一の認証サーバでのみ検証を行うような方式に加えて、安全性を
向上することができる。
FIG. 21 is a diagram illustrating a mechanism for detecting falsification of state transitions in the enclave 21. All enclaves 21 must have the same state for each block height, at least for the part that maps the state of the user (account).
It is preferable to verify that the hash values match on-chain. Therefore, in the data management system of the present embodiment, the block height and the state hash value at that time are included in all transactions in the blockchain network 30. That is, the RPC handler 22 sends the transaction index (t) to the enclave 21.
x_index) is cached so that it is sequential. Then, a hash chain of the state (enclave_state) managed by the enclave 21 is created so that the state change can be efficiently hash-calculated and the order can be verified. That is, using the hash function H, HASH_i = H (state_i, H (state)), where the i-th hash value is HASH_i and the i-th state is state_i.
Calculate the hash value by _ {i-1})). As a result, even if the state of a certain enclave 21 is tampered with, the tampering can be carried out by the blockchain network 3
It can be detected at 0 or another TEE server 2. Further, in the present embodiment, the encrypted information can be verified at all BC nodes 3 in the blockchain network 30 that manages the encrypted information. Therefore, the security can be improved in addition to the method of verifying the validity of transaction data only by a single authentication server as in the prior art.

以上、本実施形態について説明したが、上記実施形態は本発明の理解を容易にするため
のものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸
脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
Although the present embodiment has been described above, the above embodiment is for facilitating the understanding of the present invention, and is not for limiting and interpreting the present invention. The present invention can be modified and improved without departing from the spirit thereof, and the present invention also includes an equivalent thereof.

例えば、本実施形態では、TEE(Trusted Execution Environment;トラステッド実
行環境)を想定していたが、TEEに限らず、機密性の高いコンピューティング環境であ
ればよい。例えば、AWS Nitro Enclavesなどのサービスを利用するこ
とも可能である。
For example, in the present embodiment, TEE (Trusted Execution Environment) is assumed, but it is not limited to TEE, and any computing environment with high confidentiality may be used. For example, it is possible to use services such as AWS Enclaves.

また、本実施形態では、TEEサーバ2とBCノード3とは別体であるものとしたが、
一体として、BCノード3がエンクレーブ21を備え、TEEサーバ2の機能を実現する
ようにしてもよい。
Further, in the present embodiment, the TEE server 2 and the BC node 3 are separated from each other.
As a whole, the BC node 3 may include an enclave 21 to realize the function of the TEE server 2.

また、本実施形態では、グループステートはTreeKEM形式であるものとしたが、
これに限らず、例えば、非同期ラチェットツリー(Asynchronous Ratcheting Tree;AR
T)形式であってもよい。すなわち、グループステートは、グループ参加者(本実施形態
では、全てのTEEサーバ2)がその公開鍵を全員と共有することが可能であり、参加者
全ての公開鍵と自身の秘密鍵とを用いてツリー構造などに応じてグループシードを算出す
ることが可能であり、グループシードからハッシュ計算などにより計算したデータを共通
のグループ鍵として算出することが可能であるような構造体であればよい。このグループ
鍵を用いて秘密情報を暗号化することにより、全てのTEEサーバ2が共通の鍵を用いて
暗号化を行うことができ、また、グループステートへの公開鍵の追加、更新、削除は、グ
ループへのメンバーの追加、更新、削除に対応付けることができる。
Further, in the present embodiment, the group state is assumed to be in the TreeKEM format.
Not limited to this, for example, Asynchronous Ratcheting Tree (AR)
It may be in the T) format. That is, in the group state, the group participants (in this embodiment, all TEE servers 2) can share the public key with all the participants, and the public keys of all the participants and their own private keys are used. It is possible to calculate the group seed according to the tree structure or the like, and any structure may be used as long as it is possible to calculate the data calculated from the group seed by hash calculation or the like as a common group key. By encrypting the secret information using this group key, all TEE servers 2 can perform encryption using a common key, and the addition, update, and deletion of the public key to the group state can be performed. , Can be associated with adding, updating, and deleting members to a group.

また、本実施形態では、ブロックチェーンネットワーク30が暗号化情報を管理するも
のとしたが、これに限らず、データの改ざん防止を担保する分散型台帳の仕組みであれば
ブロックチェーン以外の手法により管理するようにしてもよい。分散型台帳とは、複数の
ノードの間で、取り扱う台帳データをセキュアに共有する分散データベースである。ブロ
ックチェーンも分散型台帳に含まれる。
Further, in the present embodiment, the blockchain network 30 manages the encrypted information, but the present invention is not limited to this, and any distributed ledger mechanism that guarantees the prevention of data tampering is managed by a method other than the blockchain. You may try to do it. The distributed ledger is a distributed database that securely shares the ledger data to be handled among a plurality of nodes. Blockchain is also included in the distributed ledger.

1 ユーザ端末
2 TEEサーバ
3 ブロックチェーンノード
4 アテステーションサービス
21 エンクレーブ
30 ブロックチェーンネットワーク
1 User terminal 2 TEE server 3 Blockchain node 4 Attestation service 21 Enclave 30 Blockchain network

Claims (9)

分散台帳により管理しようとするデータの内容を、トラステッド実行環境を備えるトラ
ステッドサーバに記録し、
前記分散台帳には、前記データを暗号化した暗号データを記録し、
前記トラステッドサーバで前記データの内容が更新された場合には、前記更新された内
容を暗号化した前記暗号データを前記分散台帳に追加し、
前記分散台帳に前記暗号データが追加された場合には、前記トラステッドサーバは、追
加された前記暗号データを復号化して前記データの内容を更新すること、
を特徴とするデータ管理方法。
The contents of the data to be managed by the distributed ledger are recorded on the trusted server equipped with the trusted execution environment, and
Cryptographic data obtained by encrypting the data is recorded in the distributed ledger.
When the content of the data is updated on the trusted server, the encrypted data obtained by encrypting the updated content is added to the distributed ledger.
When the encrypted data is added to the distributed ledger, the trusted server decrypts the added encrypted data and updates the contents of the data.
A data management method characterized by.
請求項1に記載のデータ管理方法であって、
ユーザ端末は、前記トラステッドサーバに対して前記データの更新リクエストを送信し

前記トラステッドサーバは、前記更新された内容を暗号化した前記暗号データを、対応
する前記分散台帳を構成するノードに送信し、
前記ノードは、前記暗号データを前記分散台帳に追加して、他の前記ノードに伝搬させ

前記ノードのそれぞれは、追加された前記暗号データを、対応する前記トラステッドサ
ーバに送信し、
前記トラステッドサーバは、追加された前記暗号データを復号化して、自身が記録して
いる前記データの内容を更新すること、
を特徴とするデータ管理方法。
The data management method according to claim 1.
The user terminal sends an update request for the data to the trusted server, and the user terminal sends a request to update the data.
The trusted server transmits the encrypted data obtained by encrypting the updated contents to the nodes constituting the corresponding distributed ledger.
The node adds the encrypted data to the distributed ledger and propagates it to the other nodes.
Each of the nodes sends the added cryptographic data to the corresponding trusted server.
The trusted server decrypts the added encrypted data and updates the contents of the data recorded by itself.
A data management method characterized by.
請求項1に記載のデータ管理方法であって、
前記トラステッドサーバが作成した秘密鍵による署名を含むデータをアテステーション
サービスに送信して正当性を検証させ、前記アテステーションサービスは検証結果に署名
し、前記トラステッドサーバは、前記検証結果に、前記トラステッドサーバが作成した公
開鍵を含めて前記分散台帳に登録し、前記ノードが、前記検証結果の署名を検証し、
前記トラステッドサーバは、前記分散台帳におけるトランザクションの発生時には、登
録されている前記公開鍵を用いて前記トランザクションに含まれる署名の検証を行うこと

を特徴とするデータ管理方法。
The data management method according to claim 1.
The data including the signature with the private key created by the trusted server is transmitted to the attestation service to verify the validity, the attestation service signs the verification result, and the trusted server sends the verification result to the trusted. The public key created by the server is registered in the distributed ledger, and the node verifies the signature of the verification result.
When a transaction occurs in the distributed ledger, the trusted server verifies the signature included in the transaction using the registered public key.
A data management method characterized by.
請求項3に記載のデータ管理方法であって、
前記検証結果には、前記トラステッドサーバが実行しているプログラムを特定する情報
が含まれ、
前記トラステッドサーバは、前記検証結果の署名検証時に、自身が実行している前記プ
ログラムが、前記検証結果に含まれている情報が示す前記プログラムと一致することを検
証すること、
を特徴とするデータ管理方法。
The data management method according to claim 3.
The verification result includes information that identifies the program that the trusted server is executing.
At the time of signature verification of the verification result, the trusted server verifies that the program executed by itself matches the program indicated by the information contained in the verification result.
A data management method characterized by.
請求項4に記載のデータ管理方法であって、
前記ノードにおいてもさらに、前記検証結果に含まれている情報が示す前記プログラム
と前記分散台帳に登録されている前記検証結果に含まれている情報が示す前記プログラム
とが一致していることを検証すること、
を特徴とするデータ管理方法。
The data management method according to claim 4.
Further, at the node, it is verified that the program indicated by the information included in the verification result and the program indicated by the information included in the verification result registered in the distributed ledger match. To do,
A data management method characterized by.
請求項3に記載のデータ管理方法であって、
前記トラステッドサーバでは、前記秘密鍵及び前記公開鍵のペアを生成し、前記公開鍵
を前記検証結果に含めて前記分散台帳に登録すること、
を特徴とするデータ管理方法。
The data management method according to claim 3.
The trusted server generates a pair of the private key and the public key, includes the public key in the verification result, and registers the public key in the distributed ledger.
A data management method characterized by.
請求項3に記載のデータ管理方法であって、
前記トラステッドサーバを追加する場合に、
追加される前記トラステッドサーバは、
前記アテステーションサービスに自身の前記トラステッド実行環境の正当性を検証さ
せ、
前記アテステーションサービスによる検証結果を、既存の前記トラステッドサーバに
送信し、
前記既存のトラステッドサーバは、
前記アテステーションサービスに自身の前記トラステッド実行環境の正当性を検証さ
せ、
前記アテステーションサービスによる検証結果と、前記追加されるトラステッドサー
バから受信した前記検証結果とを照合して、前記追加されるトラステッドサーバの参加可
否を決定し、
前記追加されるトラステッドサーバの参加が可能と判断した場合には、前記追加さ
れるトラステッドサーバから受信した前記検証結果とを照合して、前記追加されるトラス
テッドサーバの参加を決定すること、
を特徴とするデータ管理方法。
The data management method according to claim 3.
When adding the trusted server
The trusted server to be added
Have the attestation service verify the validity of its trusted execution environment
The verification result by the attestation service is transmitted to the existing trusted server, and the result is transmitted to the existing trusted server.
The existing trusted server
Have the attestation service verify the validity of its trusted execution environment
By collating the verification result by the attestation service with the verification result received from the added trusted server, it is determined whether or not the added trusted server can participate.
When it is determined that the added trusted server can participate, the participation of the added trusted server is determined by collating with the verification result received from the added trusted server.
A data management method characterized by.
請求項1に記載のデータ管理方法であって、
前記暗号化は共通のグループ鍵を用いて行われ、
前記トラステッドサーバはそれぞれ自身の秘密鍵を有しており、全ての前記トラステッ
ドサーバの公開鍵が前記分散台帳に記録されており、
前記トラステッドサーバは、同一の前記グループ鍵を算出するように、全ての前記公開
鍵と、自身の前記秘密鍵とを用いてシードを計算し、前記シードに基づいてグループ鍵を
計算すること、
を特徴とするデータ管理方法。
The data management method according to claim 1.
The encryption is performed using a common group key,
Each of the trusted servers has its own private key, and the public keys of all the trusted servers are recorded in the distributed ledger.
The trusted server calculates a seed using all the public keys and its own private key so as to calculate the same group key, and calculates the group key based on the seed.
A data management method characterized by.
請求項1に記載のデータ管理方法であって、
前記トラステッドサーバは、前記分散台帳で管理されるブロックごとの全てのデータの
第1のハッシュ値を計算して、前記第1のハッシュ値を前記分散台帳に記録し、前記デー
タの内容が更新された場合には、更新前の前記ハッシュ値と更新後の全前記ブロックの内
容との第2のハッシュ値を計算して、前記第2のハッシュ値を前記分散台帳に記録するこ
と、
を特徴とするデータ管理方法。
The data management method according to claim 1.
The trusted server calculates a first hash value of all data for each block managed by the distributed ledger, records the first hash value in the distributed ledger, and updates the contents of the data. In that case, the second hash value of the hash value before the update and the contents of all the blocks after the update is calculated, and the second hash value is recorded in the distributed ledger.
A data management method characterized by.
JP2021002705A 2020-02-21 2021-01-12 Data management method Pending JP2021136686A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021002705A JP2021136686A (en) 2020-02-21 2021-01-12 Data management method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020028802A JP6830635B1 (en) 2020-02-21 2020-02-21 Data management method
JP2021002705A JP2021136686A (en) 2020-02-21 2021-01-12 Data management method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020028802A Division JP6830635B1 (en) 2020-02-21 2020-02-21 Data management method

Publications (1)

Publication Number Publication Date
JP2021136686A true JP2021136686A (en) 2021-09-13

Family

ID=74562362

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020028802A Active JP6830635B1 (en) 2020-02-21 2020-02-21 Data management method
JP2021002705A Pending JP2021136686A (en) 2020-02-21 2021-01-12 Data management method

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020028802A Active JP6830635B1 (en) 2020-02-21 2020-02-21 Data management method

Country Status (1)

Country Link
JP (2) JP6830635B1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6931999B2 (en) * 2017-02-06 2021-09-08 株式会社日立製作所 Credit management system and credit management method
EP3522056B1 (en) * 2018-02-06 2022-05-18 Nokia Technologies Oy Distributed computing system for anonymized computation
SG11201908946PA (en) * 2019-03-26 2019-10-30 Alibaba Group Holding Ltd Program execution and data proof scheme using multiple key pair signatures
CN110245943B (en) * 2019-05-20 2021-04-23 创新先进技术有限公司 Receipt storage method and node based on judgment condition
CN110580412B (en) * 2019-11-08 2020-03-06 支付宝(杭州)信息技术有限公司 Permission query configuration method and device based on chain codes

Also Published As

Publication number Publication date
JP2021136470A (en) 2021-09-13
JP6830635B1 (en) 2021-02-17

Similar Documents

Publication Publication Date Title
CN109361668B (en) Trusted data transmission method
JP2020528224A (en) Secure execution of smart contract operations in a reliable execution environment
CN107506659B (en) Data protection system and method of general database based on SGX
US10498712B2 (en) Balancing public and personal security needs
US11212095B2 (en) Allowing restricted external access to devices
JP2010514000A (en) Method for securely storing program state data in an electronic device
CN110235134B (en) Addressing trusted execution environments using clean room provisioning
JP6671701B1 (en) Arithmetic device, arithmetic method, arithmetic program, and arithmetic system
US11398906B2 (en) Confirming receipt of audit records for audited use of a cryptographic key
US11640480B2 (en) Data message sharing
US20230198746A1 (en) Secure key exchange using key-associated attributes
EP3836478A1 (en) Method and system of data encryption using cryptographic keys
US20230021749A1 (en) Wrapped Keys with Access Control Predicates
US11405201B2 (en) Secure transfer of protected application storage keys with change of trusted computing base
JP6830635B1 (en) Data management method
JP2022522555A (en) Secure message delivery using semi-trusted relayers
US11683159B2 (en) Hybrid content protection architecture
Rawat et al. ECFS: An enterprise-class cryptographic file system for linux
CA3042984C (en) Balancing public and personal security needs
Prasad et al. Implementing Preserved Access of Cloud Networking
JP2022551586A (en) Execution of entity-specific cryptographic code in cryptographic coprocessors
KR20230070772A (en) Blockchain based cloud storage system and the method of controlling access right in the cloud storage system
Dhillon SECURITY AT THE OPERATING SYSTEM LEVEL (MICROSOFT)
Nepal et al. Portable Key Management Service for Cloud Storage