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

データ管理システム Download PDF

Info

Publication number
WO2021100682A1
WO2021100682A1 PCT/JP2020/042719 JP2020042719W WO2021100682A1 WO 2021100682 A1 WO2021100682 A1 WO 2021100682A1 JP 2020042719 W JP2020042719 W JP 2020042719W WO 2021100682 A1 WO2021100682 A1 WO 2021100682A1
Authority
WO
WIPO (PCT)
Prior art keywords
target
information
group
arg
state
Prior art date
Application number
PCT/JP2020/042719
Other languages
English (en)
French (fr)
Inventor
山田 浩之
Original Assignee
株式会社Scalar
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 filed Critical 株式会社Scalar
Priority to CN202080079948.4A priority Critical patent/CN114746861A/zh
Priority to JP2020570985A priority patent/JP6895149B1/ja
Priority to US17/777,502 priority patent/US20220405353A1/en
Priority to EP20890791.5A priority patent/EP4064098A4/en
Publication of WO2021100682A1 publication Critical patent/WO2021100682A1/ja

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

Definitions

  • the present invention generally relates to data management technology.
  • Blockchain is known as an example of a data management system to which the distributed ledger technology is applied (for example, Non-Patent Document 1).
  • the data is stored in a DB (database).
  • the DB does not have a mechanism for detecting data tampering, it is not always possible to manage the data safely when there is a malicious attack or the like.
  • a method of using a blockchain for data management can be considered in order to manage the data safely.
  • the data in the DB 51 and registering the operation log of the DB 51 (an example of the processing content) in the blockchain 52 the data can be updated or deleted, the searchability can be improved, and the searchability can be improved. It is conceivable to realize all of the guarantee of tampering detectability (tampering detection).
  • the DB 51 and the blockchain 52 are separate data management systems. Therefore, the consistency between the DB 51 and the blockchain 52 cannot be maintained. Specifically, for example, if a failure occurs in the blockchain 52 before the DB51 updates and registers the operation log in the blockchain 52, the DB51 updates but the operation log does not exist in the blockchain 52. Sometimes. Further, although the DB 51 may be tampered with, the consistency between the DB 51 and the blockchain 52 is not always maintained, so whether the DB 51 has been tampered with or the operation log of the DB 51 has not been registered in the blockchain 52. Is difficult to distinguish.
  • the above problems may occur even when tampering detectability is guaranteed by a technology other than the distributed ledger technology.
  • the data management system receives the status update request for which the target is specified, and executes the status update process for updating the status of the target specified in the status update request.
  • the state update process includes transaction processing, which is a process of transactionally updating the first information and the second information in an ACID (Atomicity, Consistency, Isolation, Durability) transaction.
  • the first information is a first object group for each object.
  • the first object group is one or more first objects.
  • the first object is data representing the state of the target.
  • the second information is a second object group for each object.
  • the second object group is one or more second objects.
  • the transaction process includes a first process of creating, updating, or deleting a first object corresponding to a specified target, and a first process including at least one of the contents of the first process and a summary of the first object. It includes a second process of adding the second object to the second object group corresponding to the specified target.
  • An example of the problem is shown.
  • An example of the problem is shown.
  • An example of the problem is shown.
  • the outline of the embodiment is shown.
  • An example of the configuration of the entire system according to the embodiment is shown.
  • An example of the configuration of the client system and the node system is shown.
  • a configuration example of Mutable Record Set and Tamper-evident Record Set is shown.
  • the "interface device” includes one or more interfaces.
  • One or more interfaces may be one or more similar communication interface devices (eg, one or more NIC (Network Interface Card)) or two or more heterogeneous communication interface devices (eg NIC and HBA). Host Bus Adapter)) may be used.
  • NIC Network Interface Card
  • HBA Host Bus Adapter
  • the “storage device” includes one or more memories. At least one memory with respect to the storage device may be a volatile memory.
  • the storage device is mainly used during processing by the processor.
  • the storage device may include one or more non-volatile storage devices (for example, HDD (Hard Disk Drive) or SSD (Solid State Drive)).
  • processor includes one or more processors. At least one processor is typically a microprocessor such as a CPU (Central Processing Unit). Each of the one or more processors may be single core or multi core. The processor may include hardware circuits that perform some or all of the processing.
  • CPU Central Processing Unit
  • the process may be described with "program” as the subject, but the program is executed by the processor to appropriately perform the specified process in a storage device (for example, memory) and / or. Since it is performed while using an interface device (for example, a communication port) or the like, the subject of processing may be a processor.
  • the process described with the program as the subject may be a process performed by a processor or a device having the processor.
  • the processor may include a hardware circuit (for example, FPGA (Field-Programmable Gate Array) or ASIC (Application Specific Integrated Circuit)) that performs a part or all of the processing.
  • the program may be installed from the program source into a device such as a calculator.
  • the program source may be, for example, a program distribution server or a computer-readable recording medium (eg, a non-temporary recording medium). Further, in the following description, two or more programs may be realized as one program, or one program may be realized as two or more programs.
  • the function may be described by the expression of "yy part", but the function may be realized by executing one or more computer programs by the processor, or one. It may be realized by the above hardware circuit (for example, FPGA or ASIC), or may be realized by a combination thereof.
  • a function is realized by executing a program by a processor, the specified processing is appropriately performed using a storage device and / or an interface device, so that the function may be at least a part of the processor. Good.
  • the process described with the function as the subject may be a process performed by a processor or a device having the processor.
  • the description of each function is an example, and a plurality of functions may be combined into one function, or one function may be divided into a plurality of functions.
  • a common code among reference codes may be used when explaining without distinguishing elements of the same type, and a reference code may be used when distinguishing elements of the same type.
  • record is a block of one logical electronic data seen from a program such as an application program, and specifically, an example of an object which is data representing a target state.
  • the data as a record includes, for example, a key-value pair or a tuple.
  • -The "object” is any tangible or intangible object.
  • an account can be adopted as the "target” and a balance can be adopted as the target state.
  • -"Status update request” is a request for status update processing.
  • -The "state update process” is a process for updating the target state.
  • -The "Mutable Record Set” is an example of the first information.
  • -The "mutable record” is a record in the Mutable Record Set and is an example of the first object.
  • -The "Tamper-evident Record Set” is an example of the second information.
  • -"Tamper-evident record” is a record in the Tamper-evident Record Set and is an example of the second object.
  • FIG. 2 shows an outline of the embodiment.
  • the data management system 10 receives a state update request for which a target is specified from the client program 134, and executes a state update process for updating the state of the target specified in the state update request.
  • the state update process includes transaction processing which is a process of transactionally updating MutableRecordSet201 and Tamper-evidentRecordSet202 with ACID (Atomicity, Consistency, Isolation, Durability).
  • the data management system 10 is a DB
  • the above-mentioned transaction processing is a DB transaction processing.
  • a system other than the DB for example, a file system may be adopted.
  • the Mutable Record Set 201 and the Tamper-evident Record Set 202 are stored in one data management system 10, and transaction processing is performed by the data management system 10, but the consistency between the Mutable Record Set 201 and the Tamper-evident Record Set 202 is maintained.
  • at least one of the following may be adopted.
  • Mutable Record Set 201 for example, an organization such as a company or department
  • Tamper-evident Record Set 202 the administrator of Tamper-evident Record Set 202 are different.
  • -Mutable Record Set 201 and Tamper-evident Record Set 202 are located in geographically different locations.
  • MutableRecordSet201 is a mutablerecord group for each target.
  • a mutable record group is one or more mutable records.
  • the mutable record is data representing the target state.
  • Tamper-evident Record Set202 is a tamper-evident record group for each target.
  • the tamper-evident record group is one or more tamper-evident records.
  • the tamper-evident record group may correspond to a ledger.
  • the tamper-evident record group may be a time series of tamper-evident records.
  • the falsification detection of the tamper-evident record may be a detection according to an arbitrary method (for example, a detection using a structure or a detection using determinacy). In this embodiment, detection using a structure is adopted.
  • the Tamper-evident Record Set 202 is a record group forming a DAG (Directed Acyclic Graph).
  • the transaction process is a tamper-evident that includes at least one of a first process that creates, updates, or deletes a mutable record corresponding to a specified target, and a summary of the contents of the first process and the first object.
  • the second process of adding the record to the tamper-evident record group corresponding to the specified target is included.
  • FIG. 3 shows an example of the configuration of the entire system according to the present embodiment.
  • the server system 15 is composed of one or more node systems 1300A, 1300B, ...
  • the client system 13 executes the client program 134.
  • client system 13B may be present.
  • the user system 12 may be a user's computer (for example, a personal computer).
  • the user program 124 may be a Web browser or an application program.
  • the communication network 14 may be integrated with the communication network 19.
  • the data management system 10 includes a server program 154 executed by the node system 1300.
  • the data management system 10 may include a client program 134 executed by the client systems 13A, 13B, ....
  • FIG. 4 shows an example of the configuration of the client system 13 and the node system 1300.
  • the client system 13 includes one or more client computers 130. Since the client system 13 may include one client computer 130, one client computer 130 may be one client system 13.
  • the client computer 130 has an interface device 131, a storage device 132, and a processor 133 connected to them.
  • the interface device 131 is connected to the communication network 19.
  • the storage device 132 stores the client program 134 and the client management data 135.
  • the client management data 135 is data managed by the client computer 130.
  • the client management data 135 includes the private key 361.
  • the private key 361 is a user's private key.
  • the client computer 130 is shared by a plurality of users (for example, when a plurality of user systems 12 are connected to the client computer 130 via the communication network 14), the private key 361 is stored for each user.
  • the user may be an individual or an organization (for example, a company or a financial institution).
  • Processor 133 executes the client program 134.
  • the issuing unit 411 that issues the state update request is realized.
  • the node system 1300 includes one or more server computers 150. Since the node system 1300 included in the server system 15 may be one and the server computer 150 included in the node system 1300 may be one, one server computer 150 may be the server system 15. Therefore, the data management system 10 may be a system including one server program 154 in one server computer 150, or may be a system including one client program 134 in one client computer 130.
  • the server computer 150 has an interface device 151, a storage device 152, and a processor 153 connected to them.
  • the interface device 151 is connected to the communication network 19.
  • the storage device 152 stores the server program 154 and the server management data 155.
  • the server management data 155 is data managed by the server computer 150.
  • the server management data 155 includes a public key 461, a Mutable Record Set 201, and a Tamper-evident Record Set 202.
  • MutableRecordSet201 and Tamper-evidentRecordSet202 are data stored in the data management system 10, and may be distributed and exist in one or more server computers 150.
  • Processor 153 executes the server program 154.
  • the reception unit 421 that receives the state update request and the execution unit 422 that executes the state update process that updates the target state specified in the state update request are realized.
  • the server program 154 may function as, for example, a DBMS (DataBase Management System).
  • FIG. 5 shows a configuration example of Mutable Record Set 201 and Tamper-evident Record Set 202.
  • FIG. 5 shows a part corresponding to one target (key “abc”) of each of MutableRecordSet201 and Tamper-evidentRecordSet202 for the sake of simplicity.
  • FIG. Both mutable record and tamper-evident record exist for each target.
  • Mutable record has F-output.
  • F-output is the data stored by executing the Function, and represents the latest state of the target.
  • the tamper-evident record has information such as key501, age502, C-input503, C-output504, Function505F, Contract505C, C-arg506, nonce507, Sig508, Prev-HV509 and HV510.
  • Age502 represents the generation of the target state. Every time the target state is updated, a tamper-evident record with an incremented age 502 is added.
  • C-input 503 represents the immediately preceding state of each of one or more objects including the object.
  • C-output 504 represents the content of the process performed by executing the Function. For example, if the target is account A and the status update process is a transfer of X yen from account A (an example of the target) to account B (an example of another target), it is added by the status update process.
  • the C-input 503 and C-output 504 in the tamper-evident record may be as follows.
  • -C-input 503 represents the balance immediately before each of account A and account B (C-input 703 can realize a record chain between targets (tamper-evident record group)).
  • -C-output 504 represents the processing content of transferring X yen from account A to account B.
  • Function 505F is a reference to Function (may be Function itself).
  • Function is a processing logic (for example, a function) that operates MutableRecordSet201.
  • Contract505C is a reference to Contract (the Contract itself may be used). Contract is a processing logic that operates Tamper-evident Record Set 202.
  • Function and Contract may be a part of the processing logic of the application of the data management system 10.
  • the Function and Contract may be deployed in at least one of the user system 12, the client system 13, and the server system 15.
  • An electronic signature may be given to each of Function and Contract.
  • the electronic signature may be an electronic signature using the user's private key 361.
  • processing logic for operating MutableRecordSet201 and the processing logic for operating Tamper-evidentRecordSet202 are separate processing logics, but these processing logics may be defined as one processing logic.
  • C-arg506 is an argument group (one or more arguments) used for Contract.
  • the nonce 507 is a nonce corresponding to the latest state (C-output 504) of the target. Specifically, nonce 507 is a nonce associated with the state update request of the state update process in which the latest state is obtained.
  • Sig508 is an electronic signature using the private key 361 of the user who issued the status update request.
  • Sig508 is an electronic signature for an information set including Function505F, Contract505C and C-arg506.
  • the information set may include other information such as nonce 507.
  • Prev-HV509 is the same value as HV510 of the tamper-evident record (that is, the parent tamper-evident record) of the immediately preceding generation of the target. That is, the link between Prev-HV509 and HV510 in the parent tamper-evident record realizes a record chain in the tamper-evident record group corresponding to the target.
  • the HV510 is a summary of the target Tamper-evident record, for example, a hash value of at least a part of information other than the HV510 (all information 501 to 509 in this embodiment) (hash value that is cryptographically difficult to collide). Is.
  • the Tamper-evident Record Set 202 As described above, in the Tamper-evident Record Set 202, a record chain is realized between C-input 503 of different tamper-evident record groups, and between tamper-evident records in the same tamper-evident record group (Prev-HV509 and HV510). The record chain is realized between). In this way, the Tamper-evident Record Set 202 has a DAG structure.
  • the node is a tamper-evident record
  • the edge represents the relationship between the tamper-evident records in one or more state update processes.
  • FIG. 6 schematically shows the state update process.
  • C-output i is the C-output of Age “i” (i is an integer from 0 to N).
  • Age “i” i is an integer from 0 to N.
  • AAA the element "AAA” corresponding to Age “ i " is expressed as "AAA i”.
  • Contract and Function are deployed in the server system 15 (or a system outside the server system 15) in advance, respectively. Electronic signatures are given to each of Contract and Function. Therefore, tampering can be detected for both Contract and Function.
  • a reference to the deployed Contract and a reference to the Function are specified.
  • F-outoput i Function i (F-outoput i-1 , F-arg i, C-arg i).
  • C-arg i includes HV_F-arg i (hash value of F-arg i ), and tampering with F-arg i is detected using C-arg i.
  • C-output i may be a summary of the latest state of the target.
  • C-arg i is stored in the tamper-evident record
  • data with erasure requirements for example, privacy data
  • the data with erasure requirements is stored in the tamper-evident record.
  • HV_F-arg i (hash value of F-arg i ) is included in C-arg i , so that tampering with F-arg i is detected.
  • HV_F-arg i is an example of a summary of F-arg i.
  • the issuing unit 411 (client program 134) issues the target status update request 3
  • the reception unit 421 (server program 154) receives the status update request 3 .
  • the state update request 3 includes a Contract 3 reference, a C-arg 3 , a Function 3 reference, an F-arg 3 , and a Sig 3 .
  • Sig 3 is a digital signature for Contract 3 references, C-arg 3 and Function 3 references
  • Sig 3 can be used to detect tampering with Contract 3 references, C-arg 3 and Function 3 references. It is possible. As mentioned above, there is no electronic signature for F-arg 3.
  • Execution unit 422 (server program 154) executes a state update process for updating the target state specified in the state update request 3.
  • the state update process includes a first falsification detection process, a second falsification detection process, and a DB transaction process.
  • the first tampering detection process is a process of detecting tampering with the reference of Contract 3 , C-arg 3, and Function 3 by using Sig 3 . Since C-arg 3 contains HV_F-arg 3 , the first tampering detection process includes detecting tampering with HV_F-arg 3. If no falsification is detected in the first falsification detection process, the second falsification detection process is performed.
  • the second tampering detection process is a process for detecting tampering with F-arg 3 using HV_F-arg 3 in C-arg 3.
  • the second tampering detection process includes calculating the hash value of F-arg 3 and comparing the calculated hash value with HV_F-arg i. If the calculated hash value and HV_F-arg 3 are different, it is detected that F-arg i has been tampered with.
  • the DB transaction processing includes processing for updating Mutable Record Set 201 and Tamper-evident Record Set 202 in an ACID transaction, specifically, the following.
  • -Execution of Function 3 that is, using F-arg 3 , create, read, update, or delete the mutable record corresponding to the target specified in the state update request 3.
  • -Execute Contract 3 that is, create a new tamper-evident record using C-arg 3 , and add the new tamper-evident record to the Tamper-evident Record Set 202 (in the execution of Contract 3, Tamper -The tamper-evident record may be read in place of or in addition to the create of the evident Record Set202).
  • the added tamper-evident record includes Contract 3 reference, C-arg 3 , Function 3 reference, Sig 3 , Prev-HV 3 (same hash value as HV 2 ), and HV 3 (Contract 3 reference, Includes C-arg 3 , Function 3 reference, Sig 3 , Hash value of information set including Prev-HV 3).
  • FIG. 7 shows an example flow of processing performed in the embodiment.
  • the issuing unit 411 (client program 134) creates a state update request i including the contract i reference, the C-arg i , the function i reference, the F-arg i , and the Sig i (S701).
  • Sig i is a digital signature for the reference of Contract i , C-arg i , and the reference of Function i , and is created by using the user's private key 361.
  • the issuing unit 411 transmits the state update request i created in S701 (S702).
  • the reception unit 421 receives the status update request i (S711).
  • the execution unit 422 (server program 154) performs the first falsification detection process (S712).
  • the first alteration detection process using the Sig i in state update request i, see the Contract i in state update request i, C-arg i, and is the process of detecting tampering of references Function i .. In this process, the user's public key 461 may be used.
  • S712 S712: Yes
  • the execution unit 422 returns an error as a response to the state update request i, and ends the process.
  • the execution unit 422 When tampering is not detected in S712 (S712: No), the execution unit 422 performs a second tampering detection process (S713). Second alteration detection process calculates a hash value of the F-arg i, and the hash value calculated, by comparing the HV_F-arg i in C-arg i, falsification of F-arg i It is a process to detect. When tampering with F-arg i is detected (S713: Yes), for example, the execution unit 422 aborts the transaction (S718).
  • the execution unit 422 When tampering with F-arg i is not detected in S713 (S713: No), the execution unit 422 starts transaction processing of the DB (S714). For example, the execution unit 422 executes Begin.
  • Execution unit 422 executes Function i (S715). In the execution of Function i , the execution unit 422 creates, reads, updates or deletes the mutable record using F-arg i.
  • Execution unit 422 executes Contract i (S716). In the execution of Contract i , the execution unit 422 creates a new tamper-evident record using C-arg i and adds the new tamper-evident record to the Tamper-evident Record Set 202 (read replaces create). May be done).
  • Execution unit 422 ends transaction processing (S717). For example, the execution unit 422 executes Commit.
  • At least one of the following may be adopted.
  • -At least one of the first falsification detection process and the second falsification detection process may be performed between the start and the end of the transaction process.
  • -Contract i may be executed before Function i is executed.
  • -Expressions other than Begin and Commit may be adopted as expressions for the start and end of transaction processing.
  • HV_F-arg i is outside C-arg i
  • Mutable Record Set 201 and Tamper-evident Record Set 202 are updated in an ACID transitional manner. Therefore, in addition to updating or erasing data, improving searchability, and ensuring tampering detectability, it is possible to maintain consistency between Mutable Record Set 201 and Tamper-evident Record Set 202.
  • the state represented by the deleted mutable record (for example, privacy data having an deletion requirement) is difficult to restore from either Mutable Record Set 201 or Tamper-evident Record Set 202.
  • MutableRecordSet201 does not have an erased mutablerecord
  • Tamper-evidentRecordSet202 has HV_F-arg, which is a hash value of F-arg, but F-arg is specified from HV_F-arg. Because it is difficult to do.

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 (5)

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

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202080079948.4A CN114746861A (zh) 2019-11-18 2020-11-17 数据管理系统
JP2020570985A JP6895149B1 (ja) 2019-11-18 2020-11-17 データ管理システム
US17/777,502 US20220405353A1 (en) 2019-11-18 2020-11-17 Data management system
EP20890791.5A EP4064098A4 (en) 2019-11-18 2020-11-17 DATA MANAGEMENT SYSTEM

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-207639 2019-11-18
JP2019207639 2019-11-18

Publications (1)

Publication Number Publication Date
WO2021100682A1 true WO2021100682A1 (ja) 2021-05-27

Family

ID=75979975

Family Applications (1)

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

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)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6587370B1 (ja) * 2019-01-16 2019-10-09 株式会社医療情報技術研究所 文書管理システム
JP6618138B1 (ja) * 2019-01-23 2019-12-11 株式会社Scalar 改ざん検知性を有するデータ管理システム

Family Cites Families (2)

* 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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6587370B1 (ja) * 2019-01-16 2019-10-09 株式会社医療情報技術研究所 文書管理システム
JP6618138B1 (ja) * 2019-01-23 2019-12-11 株式会社Scalar 改ざん検知性を有するデータ管理システム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP4064098A4 *
TAKASHI IKEDA, MASANORI HIROTOMO, YOUJI FUKUTA, MASAMI MOHRI, YOSHIAKI SHIRAISHI: "Log Storing System Using Blockchain", IEICE TECHNICAL REPORT, vol. 119, no. 437 (ICSS2019-73), 24 February 2020 (2020-02-24), JP , pages 31 - 36, XP009536156, ISSN: 2432-6380 *

Also Published As

Publication number Publication date
EP4064098A1 (en) 2022-09-28
JP6895149B1 (ja) 2021-06-30
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
JP7382108B2 (ja) ブロックチェーンのための効率的な検証
US10078459B1 (en) Ransomware detection using I/O patterns
US10409986B1 (en) Ransomware detection in a continuous data protection environment
US9558194B1 (en) Scalable object store
US10474632B2 (en) Segmented hashing for secure data modification
JP6097880B2 (ja) ビザンチン故障耐性データ複製を行う方法およびシステム
CN110874739A (zh) 实现高完整性、高带宽、低延迟、安全处理的分布式计算和存储网络
US11379316B2 (en) Snapshot restoration
US10204021B2 (en) Recovery of an infected and quarantined file in a primary storage controller from a secondary storage controller
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) 改ざん検知性を有するデータ管理システム
US10558373B1 (en) Scalable index store
CN114327239A (zh) 存储和访问数据的方法、电子设备和计算机程序产品
JP6895149B1 (ja) データ管理システム
KR102416336B1 (ko) 블록체인을 관리하기 위한 장치, 방법, 시스템 및 컴퓨터 판독가능 저장 매체
US20220237156A1 (en) Storing digital data in storage devices using smart contract and blockchain technology
WO2020152893A1 (ja) 改ざん検知性を有するデータ管理システム
US12032696B2 (en) Confidence-enabled data storage systems
US20230094789A1 (en) Data distribution in target database systems
US20220100858A1 (en) Confidence-enabled data storage systems
US20220222149A1 (en) Accelerating backup by writing to performance ranked memory
KR20230043339A (ko) 변경 불가 기능을 제공하는 분산 스토리지와 블록체인을 이용하여 대용량 콘텐츠의 무결성을 보장하는 데이터 관리 방법
CN118350048A (zh) 具有篡改检测性的数据管理系统

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2020570985

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20890791

Country of ref document: EP

Kind code of ref document: A1

DPE1 Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101)
NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020890791

Country of ref document: EP

Effective date: 20220620