JP6895149B1 - データ管理システム - Google Patents

データ管理システム Download PDF

Info

Publication number
JP6895149B1
JP6895149B1 JP2020570985A JP2020570985A JP6895149B1 JP 6895149 B1 JP6895149 B1 JP 6895149B1 JP 2020570985 A JP2020570985 A JP 2020570985A JP 2020570985 A JP2020570985 A JP 2020570985A JP 6895149 B1 JP6895149 B1 JP 6895149B1
Authority
JP
Japan
Prior art keywords
group
information
tampering
argument
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020570985A
Other languages
English (en)
Other versions
JPWO2021100682A1 (ja
Inventor
山田 浩之
浩之 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Scalar Inc
Original Assignee
Scalar 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 Scalar Inc filed Critical Scalar Inc
Priority to JP2021089187A priority Critical patent/JP2021184252A/ja
Application granted granted Critical
Publication of JP6895149B1 publication Critical patent/JP6895149B1/ja
Publication of JPWO2021100682A1 publication Critical patent/JPWO2021100682A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • 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
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/108Transfer of content, software, digital rights or licenses
    • G06F21/1088Transfer of content, software, digital rights or licenses by using transactions with atomicity, consistency, or isolation and durability [ACID] properties
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2143Clearing memory, e.g. to prevent the data from being stolen

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)

Abstract

データ管理システムが、対象を指定した状態更新要求を受け付け、当該状態更新要求で指定されている対象の状態を更新する状態更新処理を実行する。状態更新処理は、第1の情報と第2の情報とをACID(Atomicity, Consistency, Isolation, Durability)トランザクショナルに更新する処理であるトランザクション処理を含む。第1の情報は、対象毎の第1のオブジェクト群(一つ以上の第1のオブジェクト)である。第1のオブジェクトは、対象の状態を表すデータである。第2の情報は、対象毎の第2のオブジェクト群(一つ以上の第2のオブジェクト)である。トランザクション処理は、指定された対象に対応した第1のオブジェクトを作成、更新又は消去する第1の処理と、当該第1の処理の内容と第1のオブジェクトのサマリとの少なくとも一つを含む第2のオブジェクトを、指定された対象に対応した第2のオブジェクト群に追加する第2の処理とを含む。

Description

本発明は、概して、データ管理技術に関する。
データ管理システムに改ざん検知性が必要とされる場合、データ管理システムに分散型台帳技術を適用することが考えられる。分散型台帳技術が適用されたデータ管理システムの一例として、ブロックチェーンが知られている(例えば非特許文献1)。
https://bitcoin.org/bitcoin.pdf
データを安全に管理したいという要望がある。一般的に、図1Aに例示するように、データは、DB(データベース)に格納される。
しかし、DBは、データの改ざんを検知する機構を有していないため、悪意をもった攻撃等がある場合、必ずしもデータを安全に管理することができない。
そこで、図1Bに例示するように、データを安全に管理するべく、データの管理にブロックチェーンを用いる方法が考えられる。
しかし、ブロックチェーンは、改ざん検知機構の特性上、データを更新及び消去することができないため、削除要件があるプライバシーデータ等を管理することが難しい。また、ブロックチェーンは、検索性が低いため、アプリケーションを効率的に記述することができない場合がある。
そこで、図1Cに例示するように、データをDB51に登録し、DB51の操作ログ(処理内容の一例)をブロックチェーン52に登録することで、データの更新又は消去、検索性の向上、及び、改ざん検知性の担保(改ざん検知すること)の全てを実現することが考えられる。
しかし、DB51とブロックチェーン52は別々のデータ管理システムである。このため、DB51とブロックチェーン52の一貫性を維持することができない。具体的には、例えば、DB51が更新を行いその操作ログをブロックチェーン52に登録する前にブロックチェーン52に障害が発生すると、DB51が更新を行ったがその操作ログがブロックチェーン52に存在しないことがある。また、DB51が改ざんされる可能性があるが、DB51とブロックチェーン52の一貫性は必ずしも維持されないため、DB51が改ざんされたのか、或いは、DB51の操作ログがブロックチェーン52に登録されなかったのかを区別することが困難である。
以上のような問題は、分散型台帳技術以外の技術により改ざん検知性が担保される場合についても起こり得る。
データ管理システムが、対象を指定した状態更新要求を受け付け、当該状態更新要求で指定されている対象の状態を更新する状態更新処理を実行する。状態更新処理は、第1の情報と第2の情報とをACID(Atomicity, Consistency, Isolation, Durability)トランザクショナルに更新する処理であるトランザクション処理を含む。第1の情報は、対象毎の第1のオブジェクト群である。第1のオブジェクト群は、一つ以上の第1のオブジェクトである。第1のオブジェクトは、対象の状態を表すデータである。第2の情報は、対象毎の第2のオブジェクト群である。第2のオブジェクト群は、一つ以上の第2のオブジェクトである。トランザクション処理は、指定された対象に対応した第1のオブジェクトを作成、更新又は消去する第1の処理と、当該第1の処理の内容と第1のオブジェクトのサマリとの少なくとも一つを含む第2のオブジェクトを、指定された対象に対応した第2のオブジェクト群に追加する第2の処理とを含む。
データの更新又は消去、検索性の向上、及び、改ざん検知性の担保を実現することに加え、第1の情報と第2の情報の一貫性の維持を実現することができる。
課題の一例を示す。 課題の一例を示す。 課題の一例を示す。 実施形態の概要を示す。 実施形態に係るシステム全体の構成例を示す。 クライアントシステム及びノードシステムの構成の一例を示す。 Mutable Record Set及びTamper-evident Record Setの構成例を示す。 状態更新処理の概要を模式的に示す。 実施形態で行われる処理の一例の流れを示す。
以下の説明では、「インターフェース装置」は、一つ以上のインターフェースを含む。一つ以上のインターフェースは、一つ以上の同種の通信インターフェースデバイス(例えば一つ以上のNIC(Network Interface Card))であってもよいし二つ以上の異種の通信インターフェースデバイス(例えばNICとHBA(Host Bus Adapter))であってもよい。
また、以下の説明では、「記憶装置」は、一つ以上のメモリを含む。記憶装置に関して少なくとも一つのメモリは、揮発性メモリでよい。記憶装置は、主に、プロセッサによる処理の際に使用される。記憶装置は、メモリの他に、一つ以上の不揮発性の記憶デバイス(例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive))を含んでもよい。
また、以下の説明では、「プロセッサ」は、一つ以上のプロセッサを含む。少なくとも一つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサである。一つ以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶装置(例えばメモリ)及び/又はインターフェース装置(例えば通信ポート)等を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。また、プロセッサは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))を含んでもよい。プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記録媒体(例えば非一時的な記録媒体)であってもよい。また、以下の説明において、二つ以上のプログラムが一つのプログラムとして実現されてもよいし、一つのプログラムが二つ以上のプログラムとして実現されてもよい。
また、以下の説明では、「yyy部」の表現にて機能を説明することがあるが、機能は、一つ以上のコンピュータプログラムがプロセッサによって実行されることで実現されてもよいし、一つ以上のハードウェア回路(例えばFPGA又はASIC)によって実現されてもよいし、それらの組合せによって実現されてもよい。プログラムがプロセッサによって実行されることで機能が実現される場合、定められた処理が、適宜に記憶装置及び/又はインターフェース装置等を用いながら行われるため、機能はプロセッサの少なくとも一部とされてもよい。機能を主語として説明された処理は、プロセッサあるいはそのプロセッサを有する装置が行う処理としてもよい。各機能の説明は一例であり、複数の機能が一つの機能にまとめられたり、一つの機能が複数の機能に分割されたりしてもよい。
また、以下の説明では、同種の要素を区別しないで説明する場合には、参照符号のうちの共通符号を使用し、同種の要素を区別する場合は、参照符号を使用することがある。
また、以下の説明では、「record」とは、アプリケーションプログラムのようなプログラムから見た1つの論理的な電子データの塊であり、具体的には、対象の状態を表すデータであるオブジェクトの一例である。recordとしてのデータは、例えば、キーバリューペア又はタプルがある。
また、以下の説明では、下記の用語定義が採用される。
・「対象」は、任意の有体物又は無体物である。例えば、「対象」として、口座を採用し、対象の状態として、残高を採用することができる。
・「状態更新要求」は、状態更新処理の要求である。
・「状態更新処理」は、対象の状態を更新する処理である。
・「Mutable Record Set」は、第1の情報の一例である。
・「mutable record」は、Mutable Record Setにおけるrecordであり、第1のオブジェクトの一例である。
・「Tamper-evident Record Set」は、第2の情報の一例である。
・「tamper-evident record」は、Tamper-evident Record Setにおけるrecordであり、第2のオブジェクトの一例である。
以下、本発明の一実施形態を説明する。
図2は、実施形態の概要を示す。
データ管理システム10が、クライアントプログラム134から、対象を指定した状態更新要求を受け付け、当該状態更新要求で指定されている対象の状態を更新する状態更新処理を実行する。状態更新処理は、Mutable Record Set201とTamper-evident Record Set202とをACID(Atomicity, Consistency, Isolation, Durability)トランザクショナルに更新する処理であるトランザクション処理を含む。
本実施形態では、データ管理システム10が、DBであり、上述のトランザクション処理は、DBのトランザクション処理である。なお、Mutable Record Set201とTamper-evident Record Set202とが格納されるデータ管理システムとして、DB以外のシステム、例えば、ファイルシステムが採用されてもよい。このように、Mutable Record Set201とTamper-evident Record Set202が一つのデータ管理システム10に格納されトランザクション処理はそのデータ管理システム10により行われるが、Mutable Record Set201とTamper-evident Record Set202の一貫性を維持した改ざんがされる可能性を低減するために、例えば、下記のうちの少なくとも一つが採用されてもよい。
・Mutable Record Set201の管理者(例えば、企業や部署といった組織)とTamper-evident Record Set202の管理者は異なっている。
・Mutable Record Set201とTamper-evident Record Set202は地理的に異なる場所に存在する。
Mutable Record Set201は、対象毎のmutable record群である。mutable record群は、一つ以上のmutable recordである。mutable recordは、対象の状態を表すデータである。
Tamper-evident Record Set202は、対象毎のtamper-evident record群である。tamper-evident record群は、一つ以上のtamper-evident recordである。各対象について、tamper-evident record群は、台帳に相当してよい。各対象について、tamper-evident record群は、tamper-evident recordの時系列でよい。tamper-evident recordの改ざん検知は、任意の方法に従う検知(例えば、構造を利用した検知、又は、決定性を利用した検知)でよい。本実施形態では、構造を利用した検知が採用される。具体的には、例えば、本実施形態では、Tamper-evident Record Set202は、DAG(Directed Acyclic Graph)をなすrecord群である。
トランザクション処理は、指定された対象に対応したmutable recordを作成、更新又は消去する第1の処理と、当該第1の処理の内容と第1のオブジェクトのサマリとの少なくとも一つを含むtamper-evident recordを、上記指定された対象に対応したtamper-evident record群に追加する第2の処理とを含む。
以下、本実施形態を詳細に説明する。
図3は、本実施形態に係るシステム全体の構成の一例を示す。
一つ又は複数のクライアントシステム13A、13B、…と、サーバシステム15が、通信ネットワーク19を介して通信可能に接続される。サーバシステム15が、一つ又は複数のノードシステム1300A、1300B、…から構成される。
クライアントシステム13は、クライアントプログラム134を実行する。クライアントプログラム134の他にユーザプログラム124を実行するクライアントシステム13があってもよいし(例えばクライアントシステム13A)、ユーザプログラム124を実行するユーザシステム12に通信ネットワーク14を介して接続されたクライアントシステム13(例えばクライアントシステム13B)があってもよい。ユーザシステム12は、ユーザの計算機(例えば、パーソナルコンピュータ)でよい。ユーザプログラム124は、Webブラウザでもよいしアプリケーションプログラムでもよい。通信ネットワーク14は通信ネットワーク19と一体でもよい。
データ管理システム10は、ノードシステム1300で実行されるサーバプログラム154を備える。データ管理システム10は、クライアントシステム13A、13B、…で実行されるクライアントプログラム134を含んでもよい。
図4は、クライアントシステム13及びノードシステム1300の構成の一例を示す。
クライアントシステム13は、一つ又は複数のクライアント計算機130を含む。クライアントシステム13が含むクライアント計算機130は一つでもよいため、一つのクライアント計算機130が一つのクライアントシステム13でもよい。
クライアント計算機130は、インターフェース装置131、記憶装置132及びそれらに接続されたプロセッサ133を有する。
インターフェース装置131は、通信ネットワーク19に接続される。
記憶装置132は、クライアントプログラム134及びクライアント管理データ135を記憶する。クライアント管理データ135は、クライアント計算機130において管理されるデータである。例えば、クライアント管理データ135は、秘密鍵361を含む。秘密鍵361は、ユーザの秘密鍵である。クライアント計算機130が複数のユーザに共有される場合(例えば、クライアント計算機130に複数のユーザシステム12が通信ネットワーク14を介して接続されている場合)、ユーザ毎に秘密鍵361が記憶される。なお、ユーザは、個人であっても組織(例えば、企業や金融機関)であってもよい。
プロセッサ133は、クライアントプログラム134を実行する。クライアントプログラム134がプロセッサ133に実行されることで、状態更新要求を発行する発行部411が実現される。
ノードシステム1300は、一つ又は複数のサーバ計算機150を含む。サーバシステム15が含むノードシステム1300は一つでもよく、ノードシステム1300が含むサーバ計算機150は一つでもよいため、一つのサーバ計算機150がサーバシステム15でもよい。従って、データ管理システム10が、一つのサーバ計算機150における一つのサーバプログラム154を含んだシステムでもよいし、更に、一つのクライアント計算機130における一つのクライアントプログラム134を含んだシステムでもよい。
サーバ計算機150は、インターフェース装置151、記憶装置152及びそれらに接続されたプロセッサ153を有する。
インターフェース装置151は、通信ネットワーク19に接続される。
記憶装置152は、サーバプログラム154及びサーバ管理データ155を記憶する。サーバ管理データ155は、サーバ計算機150において管理されるデータである。例えば、サーバ管理データ155は、公開鍵461と、Mutable Record Set201とTamper-evident Record Set202とを含む。Mutable Record Set201とTamper-evident Record Set202は、データ管理システム10に格納されるデータであり、一つ以上のサーバ計算機150に分散して存在してもよい。
プロセッサ153は、サーバプログラム154を実行する。サーバプログラム154がプロセッサ153に実行されることで、状態更新要求を受け付ける受付部421と、状態更新要求で指定されている対象の状態を更新する状態更新処理を実行する実行部422とが実現される。サーバプログラム154が、例えば、DBMS(DataBase Management System)として機能してよい。
図5は、Mutable Record Set201及びTamper-evident Record Set202の構成例を示す。図5は、説明を簡単にするために、Mutable Record Set201及びTamper-evident Record Set202の各々のうち、一つの対象(key“abc”)に該当する部分を示しているが、上述したように、mutable recordもtamper-evident recordも対象毎に存在する。
mutable recordは、F-outputを持つ。F-outputは、Functionが実行されることにより格納されたデータであり、対象の最新状態を表す。
tamper-evident recordは、key501、age502、C-input503、C-output504、Function505F、Contract505C、C-arg506、nonce507、Sig508、Prev-HV509及びHV510といった情報を持つ。
key501は、対象のIDである。age502は、対象の状態の世代を表す。対象の状態が更新される都度に、インクリメントされたage502を持つtamper-evident recordが追加される。
C-input503は、対象を含む一つ以上の対象の各々の直前状態を表す。C-output504は、Functionの実行により行われた処理の内容を表す。例えば、対象が口座Aであり、状態更新処理が、口座A(対象の一例)から口座B(或る別の対象の一例)へのX円の振込である場合、当該状態更新処理により追加されたtamper-evident recordにおけるC-input503及びC-output504は、それぞれ下記でよい。
・C-input503は、口座Aと口座Bの各々の直前の残高を表す(C-input703が、対象間(tamper-evident record群間)のrecord連鎖を実現できる)。
・C-output504は、口座Aから口座BへのX円の振込みという処理内容を表す。
Function505Fは、Functionの参照である(Functionそれ自体でもよい)。Functionは、Mutable Record Set201を操作する処理ロジック(例えば関数)である。
Contract505Cは、Contractの参照である(Contractそれ自体でもよい)。Contractは、Tamper-evident Record Set202を操作する処理ロジックである。
Function及びContractは、データ管理システム10のアプリケーションの処理ロジックの一部でよい。Function及びContractは、ユーザシステム12、クライアントシステム13及びサーバシステム15の少なくとも一つにデプロイされていてよい。Function及びContractの各々に対し電子署名が付与されていてよい。当該電子署名は、ユーザの秘密鍵361を用いた電子署名でよい。
本実施形態では、Mutable Record Set201を操作する処理ロジックとTamper-evident Record Set202を操作する処理ロジックとが別々の処理ロジックであるが、それらの処理ロジックが一つの処理ロジックとして定義されてもよい。
C-arg506は、Contractに使用される引数群(一つ以上の引数)である。
nonce507は、対象の最新状態(C-output504)に対応したnonceである。具体的には、nonce507は、当該最新状態が得られた状態更新処理の状態更新要求に関連付けられているnonceである。
Sig508は、状態更新要求を発行したユーザの秘密鍵361を用いた電子署名である。Sig508は、本実施形態では、Function505F、Contract505C及びC-arg506を含んだ情報セットに対する電子署名である。当該情報セットは、nonce507のような他の情報を含んでもよい。
Prev-HV509は、対象の直前世代のtamper-evident record(つまり親tamper-evident record)のHV510と同じ値である。つまり、Prev-HV509と、親tamper-evident record内のHV510とのリンクが、対象に対応したtamper-evident record群でのrecord連鎖を実現する。
HV510は、対象のTamper-evident recordのサマリ、例えばHV510以外の情報の少なくとも一部の情報(本実施形態では全ての情報501〜509)のハッシュ値(暗号学的に衝突が困難なハッシュ値)である。
以上の通り、Tamper-evident Record Set202において、異なるtamper-evident record群のC-input503間でrecord連鎖が実現され、また、同一のtamper-evident record群におけるtamper-evident record間(Prev-HV509とHV510間)でrecord連鎖が実現される。このようにして、Tamper-evident Record Set202は、DAG構造をなす。Tamper-evident Record Set202において、ノードは、tamper-evident recordであり、エッジは、一つ以上の状態更新処理におけるtamper-evident record間の関係を表す。
図6は、状態更新処理を模式的に示す。
説明を簡単にするために、一つの対象(key“abc”)を例に取る。以下の説明において、C-outputiは、Age“i”のC-outputである(iは、0〜Nの整数)。同様に、Age“i”に対応した要素“AAA”を、「AAAi」と表現する。
Contract及びFunctionがそれぞれ事前にサーバシステム15(又はサーバシステム15の外部のシステム)にデプロイされている。Contract及びFunctionのそれぞれに対して電子署名が付与されている。このため、Contract及びFunctionのいずれについても、改ざんの検知が可能である。状態更新要求には、デプロイ済のContractの参照とFunctionの参照とが指定される。
C-outputi=Contracti(C-inputi, C-argi)と表現することができる。すなわち、C-outputiは、C-inputi,とC-argiとを用いてContractiが実行された結果としての状態である。i=0の場合、C-outputiは、エンプティ状態であるため、C-output0の改ざん検知は可能である。C-arg1は、Sig1を用いて改ざん検知でき、Cotarct1の改ざん検知もできるため、C-output1の改ざんの検知も可能である(Cotarct1の参照の改ざんは、Sig1を用いて検知でき、Cotarct1それ自体の改ざんは、Cotarct1それ自体に対する電子署名を用いて検知できる)。同様に、C-outputiのi=2〜Nまで、改ざんの検知は可能である。
同様に、F-outoputi=Functioni(F-outoputi-1, F-argi, C-argi)と表現することができる。C-argiは、HV_F-argi(F-argiのハッシュ値)を含み、C-argiを用いてF-argiの改ざんの検知が行われる。
アプリケーションによっては、C-outputi=Contracti(C-argi)と表現されてよいし、F-outoputi=Functioni(F-argi,
C-argi)と表現されてよい。例えば、C-outputiは、対象の最新状態のサマリでもよい。
C-argiとF-argiのように引数が分かれている理由は、次の通りである。C-argiは、tamper-evident recordに格納され、C-argiに、消去要件があるデータ(例えば、プライバシーデータ)が含まれると、消去要件があるデータがtamper-evident recordに格納され、結果として、消去要件があるデータを消去することが困難となるためである。
そこで、引数がC-argiとF-argiに分離され、HV_F-argi(F-argiのハッシュ値)がC-argiに含まれることにより、F-argiの改ざんが検知される。HV_F-argiは、F-argiのサマリの一例である。
i=3を例に取り、図6を参照して、状態更新処理を説明する。なお、図6において、tamper-evident recordiのPrev-HViと、tamper-evident recordi-1のHVi-1は同じである。
発行部411(クライアントプログラム134)が、対象を指定した状態更新要求3を発行し、受付部421(サーバプログラム154)が、状態更新要求3を受け付ける。状態更新要求3は、Contract3の参照、C-arg3、Function3の参照、F-arg3、及びSig3を含む。
Sig3は、Contract3の参照、C-arg3及びFunction3の参照に対する電子署名であるため、Sig3を用いて、Contract3の参照、C-arg3及びFunction3の参照の改ざんの検知が可能である。F-arg3に対しては、上述したように電子署名は無い。
実行部422(サーバプログラム154)が、状態更新要求3で指定されている対象の状態を更新する状態更新処理を実行する。状態更新処理は、第1の改ざん検知処理、第2の改ざん検知処理、及び、DBのトランザクション処理を含む。
第1の改ざん検知処理は、Sig3を用いて、Contract3の参照、C-arg3及びFunction3の参照の改ざんを検知する処理である。C-arg3がHV_F-arg3を含むため、第1の改ざん検知処理は、HV_F-arg3の改ざんを検知することを含む。第1の改ざん検知処理において、改ざんが検知されない場合、第2の改ざん検知処理が行われる。
第2の改ざん検知処理は、C-arg3内のHV_F-arg3を用いてF-arg3の改ざんを検知する処理である。第2の改ざん検知処理は、F-argのハッシュ値を算出し、算出されたハッシュ値と、HV_F-argiとを比較することを含む。算出されたハッシュ値とHV_F-arg3が異なっている場合、F-argiの改ざんがあると検知される。
DBのトランザクション処理は、Mutable Record Set201及びTamper-evident Record Set202をACIDトランザクショナルに更新する処理、具体的には、下記を含む。
・Function3の実行、すなわち、F-arg3を用いて、状態更新要求3で指定された対象に対応したmutable recordをcreate、read、update又はdeleteすること。
・Contract3の実行、すなわち、C-arg3を用いて新たなtamper-evident recordをcreateし、当該新たなtamper-evident recordをTamper-evident Record Set202に追加すること(Contract3の実行では、Tamper-evident Record Set202のcreateに代えて又は加えて、tamper-evident recordのreadが行われてもよい)。追加されたtamper-evident recordは、Contract3の参照、C-arg3、Function3の参照、Sig3、Prev-HV3(HV2と同じハッシュ値)、及び、HV3(Contract3の参照、C-arg3、Function3の参照、Sig3、Prev-HV3を含んだ情報セットのハッシュ値)を含む。
図7は、実施形態で行われる処理の一例の流れを示す。
発行部411(クライアントプログラム134)が、Contractiの参照、C-argi、Functioniの参照、F-argi、及び、Sigiを含んだ状態更新要求iを作成する(S701)。Sigiは、Contractiの参照、C-argi、及び、Functioniの参照に対する電子署名であり、ユーザの秘密鍵361を用いて作成される。
発行部411が、S701で作成された状態更新要求iを送信する(S702)。
受付部421(サーバプログラム154)が、状態更新要求iを受信する(S711)。実行部422(サーバプログラム154)が、第1の改ざん検知処理を行う(S712)。第1の改ざん検知処理は、状態更新要求i内のSigiを用いて、状態更新要求i内のContractiの参照、C-argi、及び、Functioniの参照の改ざんを検知する処理である。当該処理では、ユーザの公開鍵461が用いられてよい。S712において改ざんが検知された場合(S712:Yes)、例えば、実行部422が、状態更新要求iに対する応答としてエラーを返し、処理を終了する。
S712において改ざんが検知されない場合(S712:No)、実行部422が、第2の改ざん検知処理を行う(S713)。第2の改ざん検知処理は、F-argiのハッシュ値を算出し、算出されたハッシュ値と、C-argi内のHV_F-argiとを比較することで、F-argiの改ざんを検知する処理である。F-argiの改ざんが検知された場合(S713:Yes)、例えば、実行部422が、トランザクションをアボートする(S718)。
S713においてF-argiの改ざんが検知されない場合(S713:No)、実行部422が、DBのトランザクション処理を開始する(S714)。例えば、実行部422が、Beginを実行する。
実行部422が、Functioniを実行する(S715)。Functioniの実行において、実行部422が、F-argiを用いてmutable recordのcreate、read、update又はdeleteを行う。
実行部422が、Contractiを実行する(S716)。Contractiの実行において、実行部422が、C-argiを用いて新たなtamper-evident recordをcreateし当該新たなtamper-evident recordをTamper-evident Record Set202に追加する(createに代えてreadが行われてもよい)。
実行部422が、トランザクション処理を終了する(S717)。例えば、実行部422が、Commitを実行する。
図7の説明において、下記のうちの少なくとも一つが採用されてよい。
・第1の改ざん検知処理及び第2の改ざん検知処理のうちの少なくとも一つが、トランザクション処理の開始から終了までの間に行われてよい。
・Contractiの実行が、Functioniの実行よりも先に行われてよい。
・トランザクション処理の開始と終了の表現として、BeginとCommit以外の表現が採用されてよい。
・状態更新要求i及びtamper-evident recordiにおいて、HV_F-argiが、C-argiの外にあり、Sigiに加えて、HV_F-argiに対する電子署名が存在してよい。
以上のように、本実施形態によれば、Mutable Record Set201とTamper-evident Record Set202とがACIDトランザクショナルに更新される。そのため、データの更新又は消去、検索性の向上、及び、改ざん検知性の担保を実現することに加え、Mutable Record Set201とTamper-evident Record Set202との一貫性の維持を実現することができる。
また、本実施形態によれば、消去されたmutable recordが表す状態(例えば、消去要件があるプライバシーデータ)は、Mutable Record Set201及びTamper-evident Record Set202のいずれからも復元困難である。なぜなら、Mutable Record Set201には、消去されたmutable recordは存在せず、Tamper-evident Record Set202にはF-argのハッシュ値であるHV_F-argがあるが、HV_F-argからはF-argを特定することは困難なためである。
また、本実施形態によれば、状態更新要求i内にF-argiに対する電子署名は無いが、C-argiにHV_F-argiが含まれ、C-argiに対するSigiがあるため、F-argiの改ざんを検知することができる。
以上、一実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実行することが可能である。
10:データ管理システム

Claims (4)

  1. 対象を指定した状態更新要求を受け付ける受付部と、
    前記状態更新要求で指定されている対象の状態を更新する状態更新処理を実行する実行部と
    を備え、
    前記状態更新処理は、第1の情報と第2の情報とをACID(Atomicity, Consistency, Isolation, Durability)トランザクショナルに更新する処理であるトランザクション処理を含み、
    前記第1の情報は、対象の第1のオブジェクト群であり、
    第1のオブジェクト群は、一つ以上の第1のオブジェクトであり、
    第1のオブジェクトは、対象の状態を表すデータであり、
    前記第2の情報は、対象の第2のオブジェクト群であり、
    第2のオブジェクト群は、一つ以上の第2のオブジェクトであり、
    前記トランザクション処理は、
    前記指定された対象に対応した第1のオブジェクトを作成、更新又は消去する第1の処理と、
    当該第1の処理の内容と第1のオブジェクトのサマリとの少なくとも一つを含む第2のオブジェクトを、前記指定された対象に対応した第2のオブジェクト群に追加する第2の処理と
    を含み、
    前記状態更新要求は、
    前記第1の処理に使用される一つ以上の引数である第1の引数群と、
    前記第1の引数群のサマリである引数群サマリと、
    前記引数群サマリに対する電子署名と
    を含み、
    前記実行部は、
    前記電子署名を用いて、前記引数群サマリの改ざんの有無を検知する第1の改ざん検知処理と、
    前記第1の改ざん検知処理において改ざんが無いことが検知された場合に、前記引数群サマリを用いて、前記第1の引数群の改ざんの有無を検知する第2の改ざん検知処理と
    を行う、
    データ管理システム。
  2. 前記第1の情報及び前記第2の情報は、それぞれデータベースに含まれる情報であり、
    前記トランザクション処理は、前記データベースのトランザクション処理である、
    請求項1に記載のデータ管理システム。
  3. データ管理システムが、対象を指定した状態更新要求を受け付け、
    前記状態更新要求は、
    1の処理に使用される一つ以上の引数である第1の引数群と、
    前記第1の引数群のサマリである引数群サマリと、
    前記引数群サマリに対する電子署名と
    を含み、
    前記第1の処理は、前記指定された対象に対応した第1のオブジェクトを作成、更新又は消去する処理であり、
    前記データ管理システムが、前記電子署名を用いて、前記引数群サマリの改ざんの有無を検知する第1の改ざん検知処理を行い、
    前記データ管理システムが、前記第1の改ざん検知処理において改ざんが無いことが検知された場合に、前記引数群サマリを用いて、前記第1の引数群の改ざんの有無を検知する第2の改ざん検知処理を行い、
    前記データ管理システムが、前記状態更新要求で指定されている対象の状態を更新する状態更新処理を実行し、
    前記状態更新処理は、第1の情報と第2の情報とをACID(Atomicity, Consistency, Isolation, Durability)トランザクショナルに更新する処理であるトランザクション処理を含み、
    前記第1の情報は、対象の第1のオブジェクト群であり、
    第1のオブジェクト群は、一つ以上の第1のオブジェクトであり、
    第1のオブジェクトは、対象の状態を表すデータであり、
    前記第2の情報は、対象の第2のオブジェクト群であり、
    第2のオブジェクト群は、一つ以上の第2のオブジェクトであり、
    前記トランザクション処理は、
    前記第1の処理と、
    当該第1の処理の内容と第1のオブジェクトのサマリとの少なくとも一つを含む第2のオブジェクトを、前記指定された対象に対応した第2のオブジェクト群に追加する第2の処理と
    を含む、
    データ管理方法。
  4. 対象を指定した状態更新要求を受け付け、
    前記状態更新要求は、
    1の処理に使用される一つ以上の引数である第1の引数群と、
    前記第1の引数群のサマリである引数群サマリと、
    前記引数群サマリに対する電子署名と
    を含み、
    前記第1の処理は、前記指定された対象に対応した第1のオブジェクトを作成、更新又は消去する処理であり、
    前記電子署名を用いて、前記引数群サマリの改ざんの有無を検知する第1の改ざん検知処理を行い、
    前記第1の改ざん検知処理において改ざんが無いことが検知された場合に、前記引数群サマリを用いて、前記第1の引数群の改ざんの有無を検知する第2の改ざん検知処理を行い、
    前記状態更新要求で指定されている対象の状態を更新する状態更新処理を実行する、
    ことをコンピュータに実行させ、
    前記状態更新処理は、第1の情報と第2の情報とをACID(Atomicity, Consistency, Isolation, Durability)トランザクショナルに更新する処理であるトランザクション処理を含み、
    前記第1の情報は、対象の第1のオブジェクト群であり、
    第1のオブジェクト群は、一つ以上の第1のオブジェクトであり、
    第1のオブジェクトは、対象の状態を表すデータであり、
    前記第2の情報は、対象の第2のオブジェクト群であり、
    第2のオブジェクト群は、一つ以上の第2のオブジェクトであり、
    前記トランザクション処理は、
    前記第1の処理と、
    当該第1の処理の内容と第1のオブジェクトのサマリとの少なくとも一つを含む第2のオブジェクトを、前記指定された対象に対応した第2のオブジェクト群に追加する第2の処理と
    を含む、
    コンピュータプログラム。
JP2020570985A 2019-11-18 2020-11-17 データ管理システム Active JP6895149B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021089187A JP2021184252A (ja) 2019-11-18 2021-05-27 データ管理システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2019207639 2019-11-18
JP2019207639 2019-11-18
PCT/JP2020/042719 WO2021100682A1 (ja) 2019-11-18 2020-11-17 データ管理システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021089187A Division JP2021184252A (ja) 2019-11-18 2021-05-27 データ管理システム

Publications (2)

Publication Number Publication Date
JP6895149B1 true JP6895149B1 (ja) 2021-06-30
JPWO2021100682A1 JPWO2021100682A1 (ja) 2021-12-02

Family

ID=75979975

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020570985A Active JP6895149B1 (ja) 2019-11-18 2020-11-17 データ管理システム
JP2021089187A Pending JP2021184252A (ja) 2019-11-18 2021-05-27 データ管理システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021089187A Pending JP2021184252A (ja) 2019-11-18 2021-05-27 データ管理システム

Country Status (5)

Country Link
US (1) US20220405353A1 (ja)
EP (1) EP4064098A4 (ja)
JP (2) JP6895149B1 (ja)
CN (1) CN114746861A (ja)
WO (1) WO2021100682A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09311806A (ja) * 1996-05-24 1997-12-02 Hitachi Ltd データ不正更新の検出方法
US10565570B2 (en) * 2016-09-27 2020-02-18 The Toronto-Dominion Bank Processing network architecture with companion database
JP6587370B1 (ja) * 2019-01-16 2019-10-09 株式会社医療情報技術研究所 文書管理システム
US20220092224A1 (en) * 2019-01-23 2022-03-24 Scalar, Inc. Data management system with tamper-evidence

Also Published As

Publication number Publication date
EP4064098A1 (en) 2022-09-28
WO2021100682A1 (ja) 2021-05-27
US20220405353A1 (en) 2022-12-22
CN114746861A (zh) 2022-07-12
JP2021184252A (ja) 2021-12-02
JPWO2021100682A1 (ja) 2021-12-02
EP4064098A4 (en) 2023-11-22

Similar Documents

Publication Publication Date Title
EP3776208B1 (en) Runtime self-correction for blockchain ledgers
US11055442B2 (en) Secure decentralized system utilizing smart contracts, a blockchain, and/or a distributed file system
JP7382108B2 (ja) ブロックチェーンのための効率的な検証
AU2020267132B2 (en) Restore from a cloud-based data protection service
US10078459B1 (en) Ransomware detection using I/O patterns
US9558194B1 (en) Scalable object store
US10474632B2 (en) Segmented hashing for secure data modification
US11379316B2 (en) Snapshot restoration
JP2016517605A (ja) ビザンチン故障耐性データ複製を行う方法およびシステム
US11210003B2 (en) Method, device and computer program product for restoring data based on replacing child node identifiers with parent node identifier
Zhang et al. LedgerGuard: improving blockchain ledger dependability
JP6618138B1 (ja) 改ざん検知性を有するデータ管理システム
US9223517B1 (en) Scalable index store
JP6895149B1 (ja) データ管理システム
KR102416336B1 (ko) 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
US12032696B2 (en) Confidence-enabled data storage systems
US20220100858A1 (en) Confidence-enabled data storage systems
WO2020152893A1 (ja) 改ざん検知性を有するデータ管理システム
US11403186B1 (en) Accelerating backup by writing to performance ranked memory
WO2024040977A1 (zh) 一种病毒检测方法、装置、电子设备及存储介质
KR20230043339A (ko) 변경 불가 기능을 제공하는 분산 스토리지와 블록체인을 이용하여 대용량 콘텐츠의 무결성을 보장하는 데이터 관리 방법
CN118350048A (zh) 具有篡改检测性的数据管理系统
JP2020009073A (ja) 変換装置および変換プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201218

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20201218

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20210115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210420

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210422

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210527

R150 Certificate of patent or registration of utility model

Ref document number: 6895149

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250