WO2019234850A1 - Security system and data processing apparatus - Google Patents

Security system and data processing apparatus Download PDF

Info

Publication number
WO2019234850A1
WO2019234850A1 PCT/JP2018/021708 JP2018021708W WO2019234850A1 WO 2019234850 A1 WO2019234850 A1 WO 2019234850A1 JP 2018021708 W JP2018021708 W JP 2018021708W WO 2019234850 A1 WO2019234850 A1 WO 2019234850A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
hash
calculated
hash value
data set
Prior art date
Application number
PCT/JP2018/021708
Other languages
French (fr)
Japanese (ja)
Inventor
太郎 上野
智光 本橋
Original Assignee
サスメド株式会社
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 サスメド株式会社 filed Critical サスメド株式会社
Priority to JP2019541363A priority Critical patent/JPWO2019234850A1/en
Priority to PCT/JP2018/021708 priority patent/WO2019234850A1/en
Publication of WO2019234850A1 publication Critical patent/WO2019234850A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Definitions

  • the present invention relates to a security system and a data processing apparatus, and more particularly to a technique for preventing fraudulent acts such as spoofing and falsification by a third party for data provided from a client to a server.
  • a block chain is a system for storing data by generating data units called blocks at regular intervals and connecting them like a chain. Since the contents of a certain block depend on the hash value of the immediately preceding block, it is said that tampering with a block once added to the chain is not possible unless all subsequent blocks are discarded.
  • Patent Documents 1 to 3 a technique for preventing falsification of data by calculating a hash value for each generated data and creating a hash chain is disclosed (for example, see Patent Documents 1 to 3).
  • Patent Documents 4 and 5 a technique for improving authentication accuracy by performing hash calculation by combining predetermined information and secret information.
  • JP 2006-3437 A Japanese Patent Laying-Open No. 2015-180097 Japanese Patent No. 5753273 JP 2012-3648 A Japanese Patent Laying-Open No. 2015-231177
  • Patent Document 4 the secret information described in Patent Document 4 is transmitted from the client to the server and stored, and is used for verifying the validity of the server device during the authentication process. Therefore, even if the technique described in Patent Document 4 is used, it is not possible to distinguish illegal data written in the server by client impersonation from legitimate data.
  • the system described in Patent Document 5 adds unique secret information different for each user to personal information, creates unique data for each user, and correctly identifies the user by collating the hash. is there.
  • the hash calculation including the secret information is performed by the registration authority server of the biometric authentication service system issuing the secret information. This is because when the registration authority gives an anonymous ID to a user, when the user makes an application for biometric authentication to the application provider, the anonymous ID and the actual user ID are given to the application provider. This is to ensure the legitimacy of the association. Therefore, even if the technique disclosed in Patent Document 5 is used, it is not possible to distinguish illegal data written on the server by impersonating the client from legitimate data.
  • the present invention has been made to solve such a problem, and an object of the present invention is to make it possible to distinguish illegal data written on a server by impersonating a client from legitimate data. It is another object of the present invention to prevent data from being falsified in the client before being written to the server.
  • data generated by a client when data generated by a client is transmitted to a server connected by a distributed network, data generated by the client, secret information issued by the client, A hash value is calculated by performing a hash calculation on the combination of the data, and the data and the hash value are transmitted to the server as a data set.
  • a hash value is calculated from a combination of secret information with respect to certain data in the client, the hash value that has already been calculated with respect to another data is further combined to generate certain data, secret information, A hash value is calculated by performing a hash calculation on a combination with a calculated hash value for another data.
  • the present invention configured as described above, even if a third party who does not know the secret information writes the data and the hash value to the server by impersonating the client, the spoofed data and the secret information Since the hash value calculated from this combination does not match the hash value written in the server, it can be determined that the data is illegal data by impersonation. As described above, according to the present invention, it is possible to distinguish illegal data written in the server by client impersonation from legitimate data.
  • a hash chain in which a plurality of data generated in the client are linked by a hash value is formed. For this reason, even if it is attempted to falsify certain data, it is necessary to falsify all other data connected by the hash chain, which makes it difficult to falsify.
  • FIG. 1 is a diagram illustrating an example of the overall configuration of a security system according to the present embodiment.
  • the security system according to the present embodiment includes a client 100 that generates data and transmits it to a server, and a plurality of servers 200A to 200C connected by a distributed network (hereinafter, any one is specified). If not, it may be simply referred to as server 200).
  • the client 100 corresponds to a data processing device and may be any terminal as long as it has a function of generating data.
  • the client 100 is configured by a personal computer, a smartphone, a tablet terminal, an in-vehicle terminal, a game terminal, a dedicated processing terminal in various industries, and the like. In practice, there are a plurality of clients 100, but only one is shown for convenience of explanation.
  • the client 100 and the server 200 are configured to be connectable via a communication network such as the Internet or a mobile phone network.
  • FIG. 1 shows a state where the client 100 is connected to the server 200A, the client 100 can be arbitrarily connected to any of the servers 200A to 200C in the distributed network.
  • Block chain technology is introduced in the plurality of servers 200A to 200C connected by a distributed network. That is, as will be described later, data is shared among the plurality of servers 200A to 200C by the block chain technology.
  • FIG. 1 shows three servers 200A to 200C, but there may be two servers or four or more servers.
  • a user who participates in a certain project repeatedly generates data in the client 100 and sequentially transmits the generated data to the server 200.
  • the project is optional.
  • An example is a clinical trial (clinical trial) for confirming the safety and efficacy of drugs, medical devices, treatment methods, and the like.
  • the client 100 repeatedly generates various clinical trial data related to the patient and transmits the generated clinical trial data to the server 200 on a daily basis until the trial is completed.
  • the clinical trial data is data including at least one of biological information measured for a patient, answer information for an inquiry including a patient's symptoms, and information indicating results of various tests.
  • treatment apps dedicated applications for disease treatment
  • development of therapeutic applications aimed at treating diseases such as nicotine dependence and sleep disorders through improvement of the lifestyle of patients is being promoted.
  • a therapeutic application As a medical device, it is necessary to obtain approval for the Law on Medical Products, Medical Devices, and the like.
  • the approval it is necessary to conduct a clinical trial to verify the effectiveness of the therapeutic effect using the therapeutic application.
  • the client 100 generates various clinical trial data by executing the treatment application, and repeatedly transmits the generated clinical trial data to the server 200 on a daily basis until the trial is completed.
  • the clinical trials listed here are merely examples of the project and are not limited thereto.
  • launching a new business or developing a new product in a company is an example of a project.
  • the project can be applied to the security system according to the present embodiment as long as data is repeatedly generated and transmitted to the server 200 periodically or irregularly in the client 100 during the period from the start to the end of the project. Is possible.
  • FIG. 2 is a block diagram illustrating a functional configuration example of the client 100 according to the present embodiment.
  • the client 100 according to the present embodiment includes a secret information issuing unit 11, a data generation unit 12, a hash calculation unit 13, a data set transmission unit 14, and a secret information transmission unit 15 as functional configurations. Yes.
  • the client 100 of the present embodiment includes a secret information storage unit 16 and a data storage unit 17 as nonvolatile storage media.
  • the above functional blocks 11 to 15 can be configured by any of hardware, DSP (Digital Signal Processor), and software.
  • each of the functional blocks 11 to 15 actually includes a CPU, RAM, ROM, etc. of a computer, and is stored in a recording medium such as a RAM, ROM, hard disk, or semiconductor memory. Is realized by operating.
  • the secret information issuing unit 11 issues secret information.
  • the secret information can be a character string composed of a combination of alphanumeric characters with a predetermined number of digits generated by a random number generator, for example. Alternatively, it may be a character string arbitrarily set by the user of the client 100. For example, when conducting a clinical trial of the above-described therapeutic application, the secret information issuing unit 11 issues secret information as one function of the therapeutic application when installing the therapeutic application on the client 100 and starting the clinical trial.
  • the secret information issued by the secret information issuing unit 11 is stored and stored in the secret information storage unit 16.
  • the secret information stored in the secret information storage unit 16 is used when calculating a hash value of data generated in the client 100, as will be described later.
  • the hash value calculated in this way is transmitted to the server 200, but the confidential information is not transmitted to the server 200 until the trial is completed, and is kept secret in the client 100.
  • the data generation unit 12 generates data to be transmitted to the server 200.
  • the data generation unit 12 repeatedly generates data having different contents as one project. For example, when the present embodiment is applied to a clinical trial of a therapeutic application, the data generation unit 12 repeatedly generates clinical trial data with different contents daily. In addition, when the present embodiment is applied to the execution of a business project in a company, the data generation unit 12 repeatedly generates minutes data with different contents daily, weekly, or irregularly.
  • the data generated by the data generation unit 12 is stored and stored in the data storage unit 17. Note that when the generated data is stored in the data storage unit 17, the data generation unit 12 may encrypt the data and store the encrypted data in the data storage unit 17. Further, the data generated by the data generation unit 12 is transmitted to the server 200 via the data set transmission unit 14.
  • the hash calculation unit 13 performs a combination of the generated data and the secret information issued by the secret information issue unit 11 and stored in the secret information storage unit 16.
  • a hash value is calculated by performing a hash calculation.
  • the hash value calculated by the hash calculation unit 13 is stored in the data storage unit 17 in association with the corresponding data, and stored until the project is completed. Further, the hash value calculated by the hash calculation unit 13 is transmitted to the server 200 via the data set transmission unit 14.
  • the hash calculation unit 13 calculates a hash value from a combination of secret information with respect to certain data
  • the hash calculation unit 13 further combines the hash value stored in the hash value storage unit 17, that is, a hash value that has already been calculated for another data.
  • the hash calculator 13 has calculated the above-mentioned certain data (data generated this time by the data generator 12), the secret information stored in the secret information storage unit 16, and another data, and has calculated the hash value storage unit.
  • a hash value is calculated by performing a hash calculation on the combination with the hash value stored in 17.
  • the hash value that has already been calculated for another data may be any hash value that has already been calculated for previously generated data.
  • a hash value calculated for the data generated immediately before can be used.
  • FIG. 3 is a diagram schematically showing the contents of the hash calculation performed by the hash calculation unit 13.
  • the vertical direction is the time axis, and the top is at the start of the project, and the time has passed toward the bottom.
  • the secret information issued by the secret information issuing unit 11 is a character string “abc”. This secret information “abc” is issued at the start of the project and is used repeatedly until the project is completed.
  • the data generation unit 12 repeatedly generates data “Data 1”, “Data 2”, “Data 3”,.
  • the hash calculation unit 13 includes the first data “Data1” and the secret information stored in the secret information storage unit 16.
  • the first hash value “Hash1” is calculated by performing hash calculation on the combination with “abc”.
  • the first hash value “Hash1” calculated by the hash calculator 13 is stored in the data storage unit 17 in association with the first data “Data1”.
  • the hash calculation unit 13 stores the second data “Data2” and the secret stored in the secret information storage unit 16.
  • a second hash value “Hash2” is calculated by performing a hash calculation on the combination of the information “abc” and the first hash value “Hash1” stored in the data storage unit 17.
  • the second hash value “Hash2” calculated by the hash calculation unit 13 is stored in the data storage unit 17 in association with the second data “Data2”.
  • the hash calculation unit 13 includes the third data “Data3” and the secret information stored in the secret information storage unit 16.
  • a third hash value “Hash3” is calculated by performing a hash calculation on the combination of “abc” and the second hash value “Hash2” stored in the data storage unit 17.
  • the third hash value “Hash3” calculated by the hash calculation unit 13 is stored in the data storage unit 17 in association with the third data “Data3”.
  • each time data is generated by the data generation unit 12 a hash value is calculated.
  • a hash value is calculated from the combination with the secret information for the latest data generated this time, a hash value obtained by further combining the hash values already calculated for the other data generated immediately before. A value is calculated, and the calculated hash value is stored in association with the latest data.
  • the data set transmission unit 14 transmits the data generated by the data generation unit 12 and the hash value calculated by the hash calculation unit 13 to the server 200 as a data set.
  • the hash calculation unit 13 and the data set transmission unit 14 perform processing each time data is generated by the data generation unit 12 and repeatedly transmit the data set to the server 200. For example, when data is generated daily by the data generation unit 12, the processes of the hash calculation unit 13 and the data set transmission unit 14 are also performed daily, and the data set is repeatedly transmitted to the server 200 on a daily basis.
  • the first data “Data1” is generated by the data generation unit 12, and the first hash value “Hash1” is correspondingly generated by the hash calculation unit 13. "Is calculated, the two are combined into a first data set ⁇ Data1, Hash1 ⁇ , which is transmitted to the server 200.
  • the data set transmission unit 14 When the second data “Data2” is generated by the data generation unit 12 and the second hash value “Hash2” is calculated by the hash calculation unit, the data set transmission unit 14 The two data sets are combined into a second data set ⁇ Data2, Hash2 ⁇ , which is transmitted to the server 200.
  • the data set transmission unit 14 When the third data “Data3” is generated by the data generation unit 12 and the corresponding hash value “Hash3” is calculated by the hash calculation unit, the data set transmission unit 14 The two are combined into a third data set ⁇ Data3, Hash3 ⁇ , which is transmitted to the server 200. The same applies to the fourth and subsequent items.
  • the server 200 collects the data sets transmitted from the client 100 in this way in units of blocks, and stores them in a time series as block data.
  • the storage of the block data is performed by a known method using a so-called block chain technique.
  • the secret information transmission unit 15 transmits the secret information to the server 200 at the end of the project. This is because the secret information is used when verifying the validity of the data sequentially transmitted from the client 100 to the server 200 and stored during the execution of the project.
  • the timing for verifying the validity of the data is set at the end of the project, but it is not necessarily limited to this.
  • secret information may be transmitted to the server 200 at that timing.
  • another secret information may be reissued in the client 100, and thereafter, the reissued secret information may be used.
  • FIG. 4 is a block diagram illustrating a functional configuration example of the server 200 according to the present embodiment. Although the functional configuration of the server 200A is shown here, the other servers 200B and 200C are configured similarly.
  • the server 200A includes a data set acquisition unit 21, a consensus processing unit 22, a storage control unit 23, a secret information acquisition unit 24, and a verification unit 25 as its functional configuration. Further, the server 200A includes a data storage unit 26 as a storage medium.
  • the above functional blocks 21 to 25 can be configured by any of hardware, DSP, and software.
  • each of the functional blocks 21 to 26 is actually configured by including a CPU, RAM, ROM, etc. of a computer, and a program stored in a recording medium such as RAM, ROM, hard disk, or semiconductor memory. Is realized by operating.
  • the data set acquisition unit 21 sequentially acquires the data sets transmitted from the client 100.
  • the consensus processing unit 22 performs consensus building processing for sharing the data set acquired by the data set acquisition unit 21 across the plurality of servers 200A to 200C. That is, the consensus processing unit 22 of the server 200A transmits the data set acquired by the data set acquisition unit 21 to the other servers 200B and 200C, and performs a predetermined consensus building process.
  • the consensus processing unit 22 verifies the validity of the data set acquired by the data set acquisition unit 21 by performing consensus formation processing using a PBFT (Practical Byzantine Fault Tolerance) consensus algorithm.
  • PBFT Practical Byzantine Fault Tolerance
  • the consensus algorithm to be used is not limited to PBFT.
  • other consensus algorithms such as Proof of Work, Proof of Stake, Paxos, Raft, and Sieve may be used.
  • the storage control unit 23 stores the data set in the data storage unit 26 only when an agreement is formed by the consensus processing unit 22. As a result, the consensus data sets are distributed and stored in the plurality of servers 200A to 200A.
  • the storage control unit 23 collects data sets (data sets that are consensus-formed by the consensus processing unit 22) sequentially acquired by the data set acquisition unit 21 from the client 100 in units of blocks, and stores the data sets in a time series as block data 26 is stored.
  • data sets data sets that are consensus-formed by the consensus processing unit 22
  • the storage control unit 23 collects data sets (data sets that are consensus-formed by the consensus processing unit 22) sequentially acquired by the data set acquisition unit 21 from the client 100 in units of blocks, and stores the data sets in a time series as block data 26 is stored.
  • one block may be constituted by one data set, or one block may be constituted by a plurality of data sets.
  • the storage control unit 23 performs the hash calculation on the combination of the data set acquired this time by the data set acquisition unit 21 and the consensus formation and the hash value calculated for another data set, thereby obtaining a hash value. And the data set is stored in the data storage unit 26 in association with the hash value.
  • FIG. 5 is a diagram schematically showing the contents of the hash calculation performed by the storage control unit 23.
  • the vertical direction is the time axis, and the top is at the start of the project, indicating that the time has passed toward the bottom.
  • the data set acquisition unit 21 sequentially acquires a plurality of data sets ⁇ Data1, Hash1 ⁇ , ⁇ Data2, Hash2 ⁇ , ⁇ Data3, Hash3 ⁇ ,.
  • the storage control unit 23 stores the data set ⁇ Data1, The first hash value “Hash11” is calculated by performing hash calculation on Hash1 ⁇ . Then, the storage control unit 23 collects the first data set ⁇ Data1, Hash1 ⁇ and the first hash value “Hash11” into one block, and stores them in the data storage unit 26 as block data.
  • the storage control unit 23 By performing a hash calculation on the combination of the data set ⁇ Data2, Hash2 ⁇ and the first hash value “Hash11” stored in the data storage unit 26, the second hash value “Hash12” is obtained. calculate. Then, the storage control unit 23 collects the second data set ⁇ Data2, Hash2 ⁇ and the second hash value “Hash12” into one block, and stores them in the data storage unit 26 as block data.
  • the storage control unit 23 determines that the third data set The third hash value “Hash13” is calculated by performing a hash calculation on the combination of the set ⁇ Data2, Hash2 ⁇ and the second hash value “Hash12” stored in the data storage unit 26. To do. Then, the storage control unit 23 collects the third data set ⁇ Data3, Hash3 ⁇ and the third hash value “Hash13” into one block, and stores them in the data storage unit 26 as block data.
  • a hash value is calculated.
  • the hash value is calculated for the latest data set acquired this time from the client 100
  • the hash values already calculated for another data set acquired from the client 100 immediately before are further combined.
  • the hash value is calculated, and the latest data set is stored in the data storage unit 26 in association with the calculated hash value.
  • hash chains linked by hash values are formed for a plurality of data sets distributed and stored by the plurality of servers 200A to 200C. For this reason, even if it is attempted to falsify data in a certain data set, it is necessary to falsify all other data sets connected by a hash chain, which makes it difficult to falsify. Thereby, it is possible to prevent falsification of data stored in the server 200.
  • a hash chain is formed in the client 100 and a hash chain is formed in the server 200, so a double chain is formed.
  • the hash chain in the server 200 is configured by a chain of hash values calculated including the hash value calculated by the client 100.
  • the secret information acquisition unit 24 acquires the secret information transmitted by the secret information transmission unit 15 of the client 100.
  • the verification unit 25 verifies the validity of the data stored in the server 200 using the secret information acquired by the secret information acquisition unit 24. In other words, the verification unit 25 calculates a hash value by performing a hash calculation on the combination of the data in the data set stored in the data storage unit 26 and the secret information acquired by the secret information acquisition unit 24. The validity of the data is verified by calculating and confirming whether the calculated hash value matches the hash value in the data set.
  • the verification unit 25 uses the “Data1” and the secret information acquisition unit 24. A hash value is calculated by performing a hash calculation on the combination with the acquired secret information “abc”. Then, the verification unit 25 checks whether or not the calculated hash value matches the hash value “Hash1” included in the first data set ⁇ Data1, Hash1 ⁇ . If they do not match, it is determined that the data is invalid (data generated by impersonation of the client 100).
  • the verification unit 25 uses the “Data2” and the secret information acquisition unit 24 to verify the validity.
  • a hash value is calculated by performing a hash calculation on the combination of the acquired secret information “abc” and the hash value “Hash1” included in the previous data set ⁇ Data1, Hash1 ⁇ . Then, the verification unit 25 checks whether or not the calculated hash value matches the hash value “Hash2” included in the second data set ⁇ Data2, Hash2 ⁇ . If they do not match, it is determined as invalid data. The same applies to the case of verifying the third and subsequent data.
  • the data generated by the client 100 when data generated by the client 100 is transmitted to the server 200 connected by the distributed network, the data generated by the client 100 and the data issued by the client 100 are issued.
  • a hash value is calculated by performing a hash calculation on the combination with the secret information, and the data and the hash value are transmitted to the server 200 as a data set.
  • the present embodiment configured as described above, even if a third party who does not know the secret information writes the data and its hash value to the server 200 by impersonating the client 100, the spoofed data and the secret are verified during the verification. Since the hash value calculated from the combination with the information does not match the hash value written in the server 200, it can be determined that the data is illegal data by impersonation. Thus, according to the present embodiment, it is possible to distinguish illegal data written in the server by impersonating the client 100 from valid data.
  • the client 100 calculates a hash value from a combination of secret information with respect to certain data
  • the hash value that has already been calculated with respect to another data is further combined to generate certain data, secret information
  • a hash value is calculated by performing a hash calculation on a combination with a calculated hash value for another data. The hash value calculated in this way is stored in association with the corresponding data.
  • a hash chain in which a plurality of data generated in the client 100 is linked by the hash value is formed in the client 100. For this reason, even if it is attempted to falsify certain data, it is necessary to falsify all other data connected by the hash chain, which makes it difficult to falsify. Therefore, according to the present embodiment, it is possible to prevent data from being falsified within the client 100 before being written to the server 200.
  • the data set and a hash value calculated for another data set are also calculated.
  • a hash value is calculated by performing a hash calculation on the combination. The hash value calculated in this way is stored in association with the corresponding data set.
  • the hash chain linked by the hash value is formed in association with a series of data sets. For this reason, the data set written in the server 200 can be prevented from being falsified.
  • a hash value forming a hash chain in the client 100 is transmitted to the server 200, and a hash on the server 200 is obtained by a chain of hash values calculated using the hash value in the client 100. Since the chain is formed, the hash chain has a double structure, and data alteration can be made more difficult.
  • both secret information for preventing spoofing of the client 100 and a hash chain for preventing falsification of data in the client 100 are implemented. It is not limited to this.
  • only the secret information for preventing impersonation of the client 100 may be implemented.
  • the hash calculator 13 does not combine the hash values that have already been calculated for the other data, and the hash value is determined based on the combination of the data generated by the data generator 12 and the secret information stored in the secret information storage unit 16. May be calculated.
  • the storage control unit 23 calculates a hash value by performing a hash calculation on the data set acquired by the data set acquisition unit 21 without combining hash values already calculated for another data set.
  • the data set may be stored in the data storage unit 26 in association with the calculated hash value.
  • the storage control unit 23 may store the data set acquired by the data set acquisition unit 21 in the data storage unit 26 without performing the hash calculation itself.
  • a pattern in which the generated data and secret information are combined and hashed and (2) a combination of the generated data, secret information, and a hash value that has been calculated for another data is hashed.
  • Two types of patterns to be applied are applicable.
  • the server 200 (A) a pattern for storing the data set acquired from the client 100 as it is, (B) a pattern for storing the data set acquired from the client 100 by hashing, and (C) data acquired from the client 100 It is possible to apply three types of patterns in which a set and a hash value calculated for another data set are combined and hashed and stored.
  • the two patterns on the client 100 side and the three patterns on the server 200 side can be arbitrarily combined and applied. Of these, the combination of (2) and (C) is the strongest security.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

According to the present invention, when transmitting data generated by a client 100 to a server 200 that is connected thereto via a distributed network, a hash value is calculated by performing hash calculation with respect to the combination of the data generated by the client 100 and confidential information issued by the client 100, and, as a result of transmitting said data and hash value to the server 200 as a data set, even if an unauthorized user who does not know the confidential information inputs the data and the hash value thereof to the server 200 by spoofing the identity of the client 100, a hash value calculated from a combination of spoofed data and the confidential information does not match the hash value stored in the server 200 when verified, and thus, it is possible to determine that the transmitted data is spoofed illegitimate data.

Description

セキュリティシステムおよびデータ処理装置Security system and data processing apparatus
 本発明は、セキュリティシステムおよびデータ処理装置に関し、特に、クライアントからサーバに提供されるデータについて、第三者によるなりすまし、改ざんといった不正行為を防止する技術に関するものである。 The present invention relates to a security system and a data processing apparatus, and more particularly to a technique for preventing fraudulent acts such as spoofing and falsification by a third party for data provided from a client to a server.
 近年、様々な分野において、ブロックチェーン技術の活用例が増えてきている。ブロックチェーンは、ブロックと呼ばれるデータの単位を一定時間ごとに生成し、チェーンのように連結していくことによりデータを保管するシステムである。あるブロックの内容は直前のブロックのハッシュ値に依存するため、いったんチェーンに追加されたブロックを改ざんすることは、それ以降のブロックを全て破棄しない限りできないとされている。 In recent years, the use of blockchain technology has increased in various fields. A block chain is a system for storing data by generating data units called blocks at regular intervals and connecting them like a chain. Since the contents of a certain block depend on the hash value of the immediately preceding block, it is said that tampering with a block once added to the chain is not possible unless all subsequent blocks are discarded.
 このように、ブロックチェーンのネットワークにデータが書き込まれた後は、ブロックチェーンの特性により、データの改ざんを困難にすることが可能である。しかしながら、ブロックチェーン上のノードを構成するサーバにデータが書き込まれる前の段階において、次のような問題があった。第1に、クライアントからサーバにデータが書き込まれるまでの間に、データの改ざんが行われる可能性がある。第2に、クライアントのなりすましによってブロックチェーンにデータが書き込まれた場合、真のデータとの区別ができなくなる。 As described above, after data is written to the block chain network, it is possible to make it difficult to alter the data due to the characteristics of the block chain. However, there are the following problems at the stage before data is written to the servers constituting the nodes on the block chain. First, there is a possibility that data is falsified before data is written from the client to the server. Second, when data is written to the block chain by client impersonation, it cannot be distinguished from true data.
 なお、発生するデータごとにハッシュ値を計算し、ハッシュチェーンを作成することによってデータの改ざんを防止する技術が開示されている(例えば、特許文献1~3参照)。また、所定の情報と秘密情報とを合わせてハッシュ計算をすることによって認証精度を改善する技術も知られている(例えば、特許文献4,5参照)。 In addition, a technique for preventing falsification of data by calculating a hash value for each generated data and creating a hash chain is disclosed (for example, see Patent Documents 1 to 3). There is also known a technique for improving authentication accuracy by performing hash calculation by combining predetermined information and secret information (see, for example, Patent Documents 4 and 5).
特開2006-3437号公報JP 2006-3437 A 特開2015-180097号公報Japanese Patent Laying-Open No. 2015-180097 特許第5753273号公報Japanese Patent No. 5753273 特開2012-3648号公報JP 2012-3648 A 特開2015-231177号公報Japanese Patent Laying-Open No. 2015-231177
 しかしながら、特許文献4に記載の秘密情報は、クライアントからサーバに送信して保存され、認証処理時にサーバ装置の正当性を検証するために用いられる。そのため、特許文献4に記載の技術を用いても、クライアントのなりすましによってサーバに書き込まれた不正なデータを正当なデータと区別できるようにはならない。 However, the secret information described in Patent Document 4 is transmitted from the client to the server and stored, and is used for verifying the validity of the server device during the authentication process. Therefore, even if the technique described in Patent Document 4 is used, it is not possible to distinguish illegal data written in the server by client impersonation from legitimate data.
 これに対し、特許文献5に記載のシステムは、ユーザごとに異なる秘密情報を個人情報に追加することで、ユーザごとに一意のデータを作成し、そのハッシュの照合によってユーザを正しく識別するものである。しかしながら、秘密情報を含むハッシュ計算は、生体認証サービスシステムの登録局サーバが秘密情報を発行して行うようになされている。これは、登録局がユーザに対して匿名IDを付与する場合において、ユーザがアプリケーション事業者に対して生体認証の利用申請をする際に、アプリケーション事業者に対して匿名IDと実際のユーザIDとの紐付けの正当性を保証するためである。よって、この特許文献5に記載の技術を用いても、クライアントのなりすましによってサーバに書き込まれた不正なデータを正当なデータと区別できるようにはならない。 On the other hand, the system described in Patent Document 5 adds unique secret information different for each user to personal information, creates unique data for each user, and correctly identifies the user by collating the hash. is there. However, the hash calculation including the secret information is performed by the registration authority server of the biometric authentication service system issuing the secret information. This is because when the registration authority gives an anonymous ID to a user, when the user makes an application for biometric authentication to the application provider, the anonymous ID and the actual user ID are given to the application provider. This is to ensure the legitimacy of the association. Therefore, even if the technique disclosed in Patent Document 5 is used, it is not possible to distinguish illegal data written on the server by impersonating the client from legitimate data.
 本発明は、このような問題を解決するために成されたものであり、クライアントのなりすましによってサーバに書き込まれた不正なデータを正当なデータと区別できるようにすることを目的とする。また、本発明はさらに、サーバに書き込まれる前の段階でクライアント内でデータの改ざんが行われることを防止できるようにすることを目的とする。 The present invention has been made to solve such a problem, and an object of the present invention is to make it possible to distinguish illegal data written on a server by impersonating a client from legitimate data. It is another object of the present invention to prevent data from being falsified in the client before being written to the server.
 上記した課題を解決するために、本発明では、分散型ネットワークにより接続されたサーバに対してクライアントが生成したデータを送信する際に、クライアントおいて生成したデータと、クライアントにおいて発行した秘密情報との組み合わせに対してハッシュ計算をすることによりハッシュ値を算出し、データとハッシュ値とをデータセットとしてサーバに送信するようにしている。 In order to solve the above-described problem, in the present invention, when data generated by a client is transmitted to a server connected by a distributed network, data generated by the client, secret information issued by the client, A hash value is calculated by performing a hash calculation on the combination of the data, and the data and the hash value are transmitted to the server as a data set.
 本発明の他の態様では、クライアントにおいて、あるデータについて秘密情報との組み合わせからハッシュ値を算出する際に、別のデータについて算出済みのハッシュ値を更に組み合わせて、あるデータと、秘密情報と、別のデータについて算出済みのハッシュ値との組み合わせに対してハッシュ計算をすることによりハッシュ値を算出するようにしている。 In another aspect of the present invention, when a hash value is calculated from a combination of secret information with respect to certain data in the client, the hash value that has already been calculated with respect to another data is further combined to generate certain data, secret information, A hash value is calculated by performing a hash calculation on a combination with a calculated hash value for another data.
 上記のように構成した本発明によれば、秘密情報を知らない第三者がクライアントのなりすましによってサーバにデータとそのハッシュ値を書き込んだとしても、検証の際に、なりすましのデータと秘密情報との組み合わせから算出されるハッシュ値が、サーバに書き込まれているハッシュ値と一致しないため、なりすましによる不正なデータであると判別することができる。このように、本発明によれば、クライアントのなりすましによってサーバに書き込まれた不正なデータを正当なデータと区別することができる。 According to the present invention configured as described above, even if a third party who does not know the secret information writes the data and the hash value to the server by impersonating the client, the spoofed data and the secret information Since the hash value calculated from this combination does not match the hash value written in the server, it can be determined that the data is illegal data by impersonation. As described above, according to the present invention, it is possible to distinguish illegal data written in the server by client impersonation from legitimate data.
 本発明の他の特徴によれば、クライアントにおいて生成される複数のデータについて、ハッシュ値によって結び付けられたハッシュチェーンが形成されることになる。このため、あるデータを改ざんしようとしても、ハッシュチェーンで繋がりのある他のデータも全て改ざんすることが必要となるため、改ざんが難しくなる。これにより、本発明によれば、サーバに書き込まれる前の段階でクライアント内でデータの改ざんが行われることを防止することができる。 According to another feature of the present invention, a hash chain in which a plurality of data generated in the client are linked by a hash value is formed. For this reason, even if it is attempted to falsify certain data, it is necessary to falsify all other data connected by the hash chain, which makes it difficult to falsify. Thus, according to the present invention, it is possible to prevent data from being falsified in the client before being written to the server.
本実施形態によるセキュリティシステムの全体構成例を示す図である。It is a figure which shows the example of whole structure of the security system by this embodiment. 本実施形態によるクライアントの機能構成例を示すブロック図である。It is a block diagram which shows the function structural example of the client by this embodiment. ハッシュ演算部によるハッシュ計算の内容を模式的に示す図である。It is a figure which shows typically the content of the hash calculation by a hash calculating part. 本実施形態によるサーバの機能構成例を示すブロック図である。It is a block diagram which shows the function structural example of the server by this embodiment. 記憶制御部によるハッシュ計算の内容を模式的に示す図である。It is a figure which shows typically the content of the hash calculation by a memory | storage control part.
 以下、本発明の一実施形態を図面に基づいて説明する。図1は、本実施形態によるセキュリティシステムの全体構成例を示す図である。図1に示すように、本実施形態によるセキュリティシステムは、データを生成してサーバに送信するクライアント100と、分散型ネットワークにより接続された複数のサーバ200A~200C(以下、どれか1つを特定しない場合は単にサーバ200と記すこともある)とを備えて構成されている。 Hereinafter, an embodiment of the present invention will be described with reference to the drawings. FIG. 1 is a diagram illustrating an example of the overall configuration of a security system according to the present embodiment. As shown in FIG. 1, the security system according to the present embodiment includes a client 100 that generates data and transmits it to a server, and a plurality of servers 200A to 200C connected by a distributed network (hereinafter, any one is specified). If not, it may be simply referred to as server 200).
 クライアント100は、データ処理装置に相当するものであり、データを生成する機能を有する端末であれば何でもよい。例えば、パーソナルコンピュータ、スマートフォン、タブレット端末、車載端末、ゲーム端末、各種業界の専用処理端末などによりクライアント100が構成される。なお、実際にはクライアント100は複数存在するが、説明の簡便のため1つのみ図示している。 The client 100 corresponds to a data processing device and may be any terminal as long as it has a function of generating data. For example, the client 100 is configured by a personal computer, a smartphone, a tablet terminal, an in-vehicle terminal, a game terminal, a dedicated processing terminal in various industries, and the like. In practice, there are a plurality of clients 100, but only one is shown for convenience of explanation.
 クライアント100とサーバ200との間は、インターネットや携帯電話網等の通信ネットワークにより接続可能に構成されている。図1では、クライアント100がサーバ200Aに接続された状態を示しているが、クライアント100は分散型ネットワーク内にあるサーバ200A~200Cの何れかと任意に接続することが可能である。 The client 100 and the server 200 are configured to be connectable via a communication network such as the Internet or a mobile phone network. Although FIG. 1 shows a state where the client 100 is connected to the server 200A, the client 100 can be arbitrarily connected to any of the servers 200A to 200C in the distributed network.
 分散型ネットワークにより接続された複数のサーバ200A~200Cには、ブロックチェーン技術が導入されている。すなわち、後述するように、ブロックチェーン技術によって、データが複数のサーバ200A~200Cにおいて共有されている。なお、図示の簡略ため、図1では3つのサーバ200A~200Cを示しているが、2つであってもよいし、4つ以上であってもよい。 Block chain technology is introduced in the plurality of servers 200A to 200C connected by a distributed network. That is, as will be described later, data is shared among the plurality of servers 200A to 200C by the block chain technology. For simplicity of illustration, FIG. 1 shows three servers 200A to 200C, but there may be two servers or four or more servers.
 本実施形態では、あるプロジェクトに参加するユーザがクライアント100においてデータの生成を繰り返し実行し、生成したデータをサーバ200に逐次送信するものとする。プロジェクトは任意である。一例として、薬剤や医療器具、治療方法等の安全性、有効性などを確認するための臨床試験(治験)が挙げられる。この場合、クライアント100は、患者に関する各種の治験データを生成し、生成した治験データをサーバ200に送信することを、治験が終了するまで日次で繰り返す。治験データとは、患者について測定された生体情報や、患者の症状などを含む問診に対する回答情報、各種テストの結果を示す情報などの少なくとも1つを含むデータである。 In this embodiment, it is assumed that a user who participates in a certain project repeatedly generates data in the client 100 and sequentially transmits the generated data to the server 200. The project is optional. An example is a clinical trial (clinical trial) for confirming the safety and efficacy of drugs, medical devices, treatment methods, and the like. In this case, the client 100 repeatedly generates various clinical trial data related to the patient and transmits the generated clinical trial data to the server 200 on a daily basis until the trial is completed. The clinical trial data is data including at least one of biological information measured for a patient, answer information for an inquiry including a patient's symptoms, and information indicating results of various tests.
 最近では、疾患治療用の専用アプリケーション(以下、治療用アプリという)をインストールしたスマートフォンを疾患治療のために活用する試みが行われるようになってきている。例えば、ニコチン依存症や睡眠障害などの疾患を、患者の生活習慣の改善を通じて治療することを目的とした治療用アプリの開発が進められている。治療用アプリを医療機器として活用するためには、医療品医療機器等法の承認を得る必要がある。そして、その承認を得るためには、治療用アプリを用いた治療効果の有効性を検証する治験を行うことが必要となる。この場合、クライアント100は、治療用アプリを実行することによって各種の治験データを生成し、生成した治験データをサーバ200に送信することを、治験が終了するまで日次で繰り返す。 Recently, attempts have been made to use smartphones installed with dedicated applications for disease treatment (hereinafter referred to as treatment apps) for disease treatment. For example, development of therapeutic applications aimed at treating diseases such as nicotine dependence and sleep disorders through improvement of the lifestyle of patients is being promoted. In order to use a therapeutic application as a medical device, it is necessary to obtain approval for the Law on Medical Products, Medical Devices, and the like. In order to obtain the approval, it is necessary to conduct a clinical trial to verify the effectiveness of the therapeutic effect using the therapeutic application. In this case, the client 100 generates various clinical trial data by executing the treatment application, and repeatedly transmits the generated clinical trial data to the server 200 on a daily basis until the trial is completed.
 なお、ここに挙げた治験は、あくまでもプロジェクトの一例であり、これに限定されるものではない。例えば、企業における新規事業の立ち上げや新製品開発などもプロジェクトの一例である。プロジェクトは、その開始から終了までの期間中に、クライアント100において定期的または不定期にデータを繰り返し生成し、サーバ200に送信するものであれば、何れも本実施形態のセキュリティシステムを適用することが可能である。 It should be noted that the clinical trials listed here are merely examples of the project and are not limited thereto. For example, launching a new business or developing a new product in a company is an example of a project. The project can be applied to the security system according to the present embodiment as long as data is repeatedly generated and transmitted to the server 200 periodically or irregularly in the client 100 during the period from the start to the end of the project. Is possible.
 図2は、本実施形態によるクライアント100の機能構成例を示すブロック図である。図2に示すように、本実施形態のクライアント100は、その機能構成として、秘密情報発行部11、データ生成部12、ハッシュ演算部13、データセット送信部14および秘密情報送信部15を備えている。また、本実施形態のクライアント100は、不揮発性の記憶媒体として、秘密情報記憶部16およびデータ記憶部17を備えている。 FIG. 2 is a block diagram illustrating a functional configuration example of the client 100 according to the present embodiment. As shown in FIG. 2, the client 100 according to the present embodiment includes a secret information issuing unit 11, a data generation unit 12, a hash calculation unit 13, a data set transmission unit 14, and a secret information transmission unit 15 as functional configurations. Yes. In addition, the client 100 of the present embodiment includes a secret information storage unit 16 and a data storage unit 17 as nonvolatile storage media.
 上記各機能ブロック11~15は、ハードウェア、DSP(Digital Signal Processor)、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック11~15は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。 The above functional blocks 11 to 15 can be configured by any of hardware, DSP (Digital Signal Processor), and software. For example, when configured by software, each of the functional blocks 11 to 15 actually includes a CPU, RAM, ROM, etc. of a computer, and is stored in a recording medium such as a RAM, ROM, hard disk, or semiconductor memory. Is realized by operating.
 秘密情報発行部11は、秘密情報を発行する。秘密情報は、例えば乱数発生器により発生される所定桁数の英数字の組み合わせから成る文字列とすることが可能である。あるいは、クライアント100のユーザが任意に設定した文字列としてもよい。例えば、上述した治療用アプリの治験を行う場合、秘密情報発行部11は、治療用アプリをクライアント100にインストールして治験を開始する際に、治療用アプリの一機能として秘密情報を発行する。 The secret information issuing unit 11 issues secret information. The secret information can be a character string composed of a combination of alphanumeric characters with a predetermined number of digits generated by a random number generator, for example. Alternatively, it may be a character string arbitrarily set by the user of the client 100. For example, when conducting a clinical trial of the above-described therapeutic application, the secret information issuing unit 11 issues secret information as one function of the therapeutic application when installing the therapeutic application on the client 100 and starting the clinical trial.
 秘密情報発行部11により発行された秘密情報は、秘密情報記憶部16に記憶して保存される。秘密情報記憶部16に記憶された秘密情報は、後述するように、クライアント100において生成されたデータのハッシュ値を計算する際に使用される。これにより算出されたハッシュ値はサーバ200に送信されるが、秘密情報は治験が終了するまでサーバ200には送信されず、クライアント100内において秘密に保持される。 The secret information issued by the secret information issuing unit 11 is stored and stored in the secret information storage unit 16. The secret information stored in the secret information storage unit 16 is used when calculating a hash value of data generated in the client 100, as will be described later. The hash value calculated in this way is transmitted to the server 200, but the confidential information is not transmitted to the server 200 until the trial is completed, and is kept secret in the client 100.
 データ生成部12は、サーバ200に送信するためのデータを生成する。データ生成部12は、1つのプロジェクトとして、異なる内容のデータの生成を繰り返し実行する。例えば、治療用アプリの治験に本実施形態を適用する場合、データ生成部12は、異なる内容の治験データの生成を日次で繰り返し実行する。また、企業における事業プロジェクトの実行に本実施形態を適用する場合、データ生成部12は、異なる内容の議事録データなどを日次や週時、または不定期に繰り返し生成する。 The data generation unit 12 generates data to be transmitted to the server 200. The data generation unit 12 repeatedly generates data having different contents as one project. For example, when the present embodiment is applied to a clinical trial of a therapeutic application, the data generation unit 12 repeatedly generates clinical trial data with different contents daily. In addition, when the present embodiment is applied to the execution of a business project in a company, the data generation unit 12 repeatedly generates minutes data with different contents daily, weekly, or irregularly.
 データ生成部12により生成されたデータは、データ記憶部17に記憶されて保存される。なお、データ生成部12は、生成したデータをデータ記憶部17に記憶させる際に、当該データを暗号化し、暗号化済みのデータをデータ記憶部17に記憶させるようにしてもよい。また、データ生成部12により生成されたデータは、データセット送信部14を介してサーバ200に送信される。 The data generated by the data generation unit 12 is stored and stored in the data storage unit 17. Note that when the generated data is stored in the data storage unit 17, the data generation unit 12 may encrypt the data and store the encrypted data in the data storage unit 17. Further, the data generated by the data generation unit 12 is transmitted to the server 200 via the data set transmission unit 14.
 ハッシュ演算部13は、データ生成部12によりデータが生成される都度、生成されたデータと、秘密情報発行部11により発行されて秘密情報記憶部16に記憶された秘密情報との組み合わせに対してハッシュ計算をすることにより、ハッシュ値を算出する。ハッシュ演算部13により算出されたハッシュ値は、対応するデータと関連付けてデータ記憶部17に記憶され、プロジェクトが終了するまで保存される。また、ハッシュ演算部13により算出されたハッシュ値は、データセット送信部14を介してサーバ200に送信される。 Each time data is generated by the data generation unit 12, the hash calculation unit 13 performs a combination of the generated data and the secret information issued by the secret information issue unit 11 and stored in the secret information storage unit 16. A hash value is calculated by performing a hash calculation. The hash value calculated by the hash calculation unit 13 is stored in the data storage unit 17 in association with the corresponding data, and stored until the project is completed. Further, the hash value calculated by the hash calculation unit 13 is transmitted to the server 200 via the data set transmission unit 14.
 ハッシュ演算部13は、あるデータについて秘密情報との組み合わせからハッシュ値を算出する際に、ハッシュ値記憶部17に記憶されているハッシュ値、すなわち、別のデータについて算出済みのハッシュ値を更に組み合わせてハッシュ値を算出する。すなわち、ハッシュ演算部13は、上記あるデータ(データ生成部12により今回生成されたデータ)と、秘密情報記憶部16に記憶されている秘密情報と、別のデータについて算出済みでハッシュ値記憶部17に記憶されているハッシュ値との組み合わせに対してハッシュ計算をすることにより、ハッシュ値を算出する。 When the hash calculation unit 13 calculates a hash value from a combination of secret information with respect to certain data, the hash calculation unit 13 further combines the hash value stored in the hash value storage unit 17, that is, a hash value that has already been calculated for another data. To calculate the hash value. That is, the hash calculator 13 has calculated the above-mentioned certain data (data generated this time by the data generator 12), the secret information stored in the secret information storage unit 16, and another data, and has calculated the hash value storage unit. A hash value is calculated by performing a hash calculation on the combination with the hash value stored in 17.
 別のデータについて算出済みのハッシュ値は、過去に生成されたデータについて既に算出されたハッシュ値であれば何でもよい。一例として、直前に生成されたデータについて算出されたハッシュ値とすることが可能である。 The hash value that has already been calculated for another data may be any hash value that has already been calculated for previously generated data. As an example, a hash value calculated for the data generated immediately before can be used.
 図3は、ハッシュ演算部13によるハッシュ計算の内容を模式的に示す図である。なお、図3において、縦方向は時間軸であり、一番上がプロジェクトの開始時で、下に行くほど時間が経過していることを示している。図3に示す例において、秘密情報発行部11により発行された秘密情報(秘密情報記憶部16に記憶された秘密情報)は、“abc”という文字列である。この秘密情報“abc”は、プロジェクトの開始時に発行され、プロジェクトが終了するまで繰り返し使用される。 FIG. 3 is a diagram schematically showing the contents of the hash calculation performed by the hash calculation unit 13. In FIG. 3, the vertical direction is the time axis, and the top is at the start of the project, and the time has passed toward the bottom. In the example shown in FIG. 3, the secret information issued by the secret information issuing unit 11 (secret information stored in the secret information storage unit 16) is a character string “abc”. This secret information “abc” is issued at the start of the project and is used repeatedly until the project is completed.
 データ生成部12は、異なる内容のデータ“Data1”,“Data2”,“Data3”,・・・を繰り返し生成する。まず、データ生成部12により1つ目のデータ“Data1”が生成されたとき、ハッシュ演算部13は、当該1つ目のデータ“Data1”と、秘密情報記憶部16に記憶されている秘密情報“abc”との組み合わせに対してハッシュ計算をすることにより、1つ目のハッシュ値“Hash1”を算出する。ハッシュ演算部13により算出された1つ目のハッシュ値“Hash1”は、1つ目のデータ“Data1”と関連付けてデータ記憶部17に記憶される。 The data generation unit 12 repeatedly generates data “Data 1”, “Data 2”, “Data 3”,. First, when the first data “Data1” is generated by the data generation unit 12, the hash calculation unit 13 includes the first data “Data1” and the secret information stored in the secret information storage unit 16. The first hash value “Hash1” is calculated by performing hash calculation on the combination with “abc”. The first hash value “Hash1” calculated by the hash calculator 13 is stored in the data storage unit 17 in association with the first data “Data1”.
 次に、データ生成部12により2つ目のデータ“Data2”が生成されたとき、ハッシュ演算部13は、当該2つ目のデータ“Data2”と、秘密情報記憶部16に記憶されている秘密情報“abc”と、データ記憶部17に記憶されている1つ目のハッシュ値“Hash1”との組み合わせに対してハッシュ計算をすることにより、2つ目のハッシュ値“Hash2”を算出する。ハッシュ演算部13により算出された2つ目のハッシュ値“Hash2”は、2つ目のデータ“Data2”と関連付けてデータ記憶部17に記憶される。 Next, when the second data “Data2” is generated by the data generation unit 12, the hash calculation unit 13 stores the second data “Data2” and the secret stored in the secret information storage unit 16. A second hash value “Hash2” is calculated by performing a hash calculation on the combination of the information “abc” and the first hash value “Hash1” stored in the data storage unit 17. The second hash value “Hash2” calculated by the hash calculation unit 13 is stored in the data storage unit 17 in association with the second data “Data2”.
 次いで、データ生成部12により3つ目のデータ“Data3”が生成されたとき、ハッシュ演算部13は、当該3つ目のデータ“Data3”と、秘密情報記憶部16に記憶されている秘密情報“abc”と、データ記憶部17に記憶されている2つ目のハッシュ値“Hash2”との組み合わせに対してハッシュ計算をすることにより、3つ目のハッシュ値“Hash3”を算出する。ハッシュ演算部13により算出された3つ目のハッシュ値“Hash3”は、3つ目のデータ“Data3”と関連付けてデータ記憶部17に記憶される。 Next, when the third data “Data3” is generated by the data generation unit 12, the hash calculation unit 13 includes the third data “Data3” and the secret information stored in the secret information storage unit 16. A third hash value “Hash3” is calculated by performing a hash calculation on the combination of “abc” and the second hash value “Hash2” stored in the data storage unit 17. The third hash value “Hash3” calculated by the hash calculation unit 13 is stored in the data storage unit 17 in association with the third data “Data3”.
 以下同様にして、データ生成部12によりデータが生成される都度、ハッシュ値の算出が実行される。このように、本実施形態では、今回生成された最新のデータについて秘密情報との組み合わせからハッシュ値を算出する際に、直前に生成された別のデータについて算出済みのハッシュ値を更に組み合わせてハッシュ値を算出し、算出したハッシュ値を最新のデータに関連付けて記憶するようにしている。 In the same manner, each time data is generated by the data generation unit 12, a hash value is calculated. As described above, in this embodiment, when the hash value is calculated from the combination with the secret information for the latest data generated this time, a hash value obtained by further combining the hash values already calculated for the other data generated immediately before. A value is calculated, and the calculated hash value is stored in association with the latest data.
 以上の処理により、クライアント100において生成される複数のデータについて、ハッシュ値によって結び付けられたハッシュチェーンが形成されることになる。このため、あるデータを改ざんしようとしても、ハッシュチェーンで繋がりのある他のデータも全て改ざんすることが必要となるため、改ざんが難しくなる。これにより、クライアント100で生成されたデータの改ざんを防止することが可能となる。 Through the above processing, a hash chain in which a plurality of data generated in the client 100 are linked by a hash value is formed. For this reason, even if it is attempted to falsify certain data, it is necessary to falsify all other data connected by the hash chain, which makes it difficult to falsify. As a result, it is possible to prevent falsification of data generated by the client 100.
 データセット送信部14は、データ生成部12により生成されたデータと、ハッシュ演算部13により算出されたハッシュ値とをデータセットとしてサーバ200に送信する。ハッシュ演算部13およびデータセット送信部14は、データ生成部12によりデータが生成される毎に処理を行って、データセットをサーバ200に繰り返し送信する。例えば、データ生成部12によりデータが日次で生成される場合は、ハッシュ演算部13およびデータセット送信部14の処理も日次で行い、データセットを日次でサーバ200に繰り返し送信する。 The data set transmission unit 14 transmits the data generated by the data generation unit 12 and the hash value calculated by the hash calculation unit 13 to the server 200 as a data set. The hash calculation unit 13 and the data set transmission unit 14 perform processing each time data is generated by the data generation unit 12 and repeatedly transmit the data set to the server 200. For example, when data is generated daily by the data generation unit 12, the processes of the hash calculation unit 13 and the data set transmission unit 14 are also performed daily, and the data set is repeatedly transmitted to the server 200 on a daily basis.
 図3に示した例の場合、データセット送信部14は、データ生成部12により1つ目のデータ“Data1”が生成され、それに対応してハッシュ演算部13により1つ目のハッシュ値“Hash1”が算出されたときに、この2つを組み合わせて1つ目のデータセット{Data1,Hash1}とし、これをサーバ200に送信する。 In the case of the example shown in FIG. 3, in the data set transmission unit 14, the first data “Data1” is generated by the data generation unit 12, and the first hash value “Hash1” is correspondingly generated by the hash calculation unit 13. "Is calculated, the two are combined into a first data set {Data1, Hash1}, which is transmitted to the server 200.
 次に、データ生成部12により2つ目のデータ“Data2”が生成され、それに対応してハッシュ演算部により2つ目のハッシュ値“Hash2”が算出されたときに、データセット送信部14は、この2つを組み合わせて2つ目のデータセット{Data2,Hash2}とし、これをサーバ200に送信する。 Next, when the second data “Data2” is generated by the data generation unit 12 and the second hash value “Hash2” is calculated by the hash calculation unit, the data set transmission unit 14 The two data sets are combined into a second data set {Data2, Hash2}, which is transmitted to the server 200.
 さらに、データ生成部12により3つ目のデータ“Data3”が生成され、それに対応してハッシュ演算部により3つ目のハッシュ値“Hash3”が算出されたときに、データセット送信部14は、この2つを組み合わせて3つ目のデータセット{Data3,Hash3}とし、これをサーバ200に送信する。4つ目以降も同様である。 Furthermore, when the third data “Data3” is generated by the data generation unit 12 and the corresponding hash value “Hash3” is calculated by the hash calculation unit, the data set transmission unit 14 The two are combined into a third data set {Data3, Hash3}, which is transmitted to the server 200. The same applies to the fourth and subsequent items.
 サーバ200は、このようにしてクライアント100から送信されたデータセットをブロック単位にまとめ、ブロックデータとして時系列に保存する。このブロックデータの保存は、いわゆるブロックチェーン技術で公知の方法により実行される。 The server 200 collects the data sets transmitted from the client 100 in this way in units of blocks, and stores them in a time series as block data. The storage of the block data is performed by a known method using a so-called block chain technique.
 秘密情報送信部15は、プロジェクトの終了時に秘密情報をサーバ200に送信する。これは、プロジェクトの実行中にクライアント100からサーバ200に逐次送信されて保存されたデータの正当性を検証する際に、当該秘密情報を使用するためである。 The secret information transmission unit 15 transmits the secret information to the server 200 at the end of the project. This is because the secret information is used when verifying the validity of the data sequentially transmitted from the client 100 to the server 200 and stored during the execution of the project.
 ここではデータの正当性を検証するタイミングをプロジェクトの終了時としているが、必ずしもこれに限定されない。例えば、プロジェクト実行中の途中段階でも、サーバ200に保存されたデータの正当性を検証する必要がある場合は、そのタイミングで秘密情報をサーバ200に送信してよい。なお、プロジェクトの途中段階で秘密情報をサーバ200に送信した場合、クライアント100において別の秘密情報を再発行し、それ以降は再発行された秘密情報を用いるようにしてもよい。 Here, the timing for verifying the validity of the data is set at the end of the project, but it is not necessarily limited to this. For example, if it is necessary to verify the validity of data stored in the server 200 even in the middle of the project execution, secret information may be transmitted to the server 200 at that timing. When secret information is transmitted to the server 200 in the middle of the project, another secret information may be reissued in the client 100, and thereafter, the reissued secret information may be used.
 図4は、本実施形態によるサーバ200の機能構成例を示すブロック図である。なお、ここではサーバ200Aの機能構成を示しているが、他のサーバ200B,200Cも同様に構成されている。 FIG. 4 is a block diagram illustrating a functional configuration example of the server 200 according to the present embodiment. Although the functional configuration of the server 200A is shown here, the other servers 200B and 200C are configured similarly.
 図4に示すように、本実施形態によるサーバ200Aは、その機能構成として、データセット取得部21、コンセンサス処理部22、記憶制御部23、秘密情報取得部24および検証部25を備えている。また、サーバ200Aは、記憶媒体としてデータ記憶部26を備えている。 As shown in FIG. 4, the server 200A according to the present embodiment includes a data set acquisition unit 21, a consensus processing unit 22, a storage control unit 23, a secret information acquisition unit 24, and a verification unit 25 as its functional configuration. Further, the server 200A includes a data storage unit 26 as a storage medium.
 上記各機能ブロック21~25は、ハードウェア、DSP、ソフトウェアの何れによっても構成することが可能である。例えばソフトウェアによって構成する場合、上記各機能ブロック21~26は、実際にはコンピュータのCPU、RAM、ROMなどを備えて構成され、RAMやROM、ハードディスクまたは半導体メモリ等の記録媒体に記憶されたプログラムが動作することによって実現される。 The above functional blocks 21 to 25 can be configured by any of hardware, DSP, and software. For example, when configured by software, each of the functional blocks 21 to 26 is actually configured by including a CPU, RAM, ROM, etc. of a computer, and a program stored in a recording medium such as RAM, ROM, hard disk, or semiconductor memory. Is realized by operating.
 データセット取得部21は、クライアント100より送信されたデータセットを逐次取得する。コンセンサス処理部22は、複数のサーバ200A~200Cの全体で、データセット取得部21により取得されたデータセットを共有するための合意形成処理を行う。すなわち、サーバ200Aのコンセンサス処理部22は、データセット取得部21により取得されたデータセットを他のサーバ200B,200Cに送信し、所定の合意形成処理を行う。 The data set acquisition unit 21 sequentially acquires the data sets transmitted from the client 100. The consensus processing unit 22 performs consensus building processing for sharing the data set acquired by the data set acquisition unit 21 across the plurality of servers 200A to 200C. That is, the consensus processing unit 22 of the server 200A transmits the data set acquired by the data set acquisition unit 21 to the other servers 200B and 200C, and performs a predetermined consensus building process.
 コンセンサス処理部22が行う合意形成処理として、ブロックチェーン技術で公知のコンセンサスアルゴリズムを用いることが可能である。例えば、コンセンサス処理部22は、PBFT(Practical Byzantine Fault Tolerance)のコンセンサスアルゴリズムを用いて合意形成処理を行うことにより、データセット取得部21により取得されたデータセットの正当性を検証する。なお、使用するコンセンサスアルゴリズムはPBFTに限定されない。例えば、Proof of Work、Proof of Stake、Paxos、Raft、Sieveなどの他のコンセンサスアルゴリズムを用いてもよい。 As the consensus building process performed by the consensus processing unit 22, it is possible to use a consensus algorithm known in the block chain technology. For example, the consensus processing unit 22 verifies the validity of the data set acquired by the data set acquisition unit 21 by performing consensus formation processing using a PBFT (Practical Byzantine Fault Tolerance) consensus algorithm. Note that the consensus algorithm to be used is not limited to PBFT. For example, other consensus algorithms such as Proof of Work, Proof of Stake, Paxos, Raft, and Sieve may be used.
 記憶制御部23は、コンセンサス処理部22により合意形成された場合にのみ、データセットをデータ記憶部26に記憶させる。これにより、複数のサーバ200A~200Aにおいて、合意形成されたデータセットが分散して保存される。 The storage control unit 23 stores the data set in the data storage unit 26 only when an agreement is formed by the consensus processing unit 22. As a result, the consensus data sets are distributed and stored in the plurality of servers 200A to 200A.
 また、記憶制御部23は、データセット取得部21がクライアント100から逐次取得したデータセット(コンセンサス処理部22により合意形成されたデータセット)をブロック単位にまとめ、ブロックデータとして時系列にデータ記憶部26に記憶させる。ブロックデータにまとめる単位は、1つのデータセットで1つのブロックを構成してもよいし、複数のデータセットで1つのブロックを構成してもよい。 In addition, the storage control unit 23 collects data sets (data sets that are consensus-formed by the consensus processing unit 22) sequentially acquired by the data set acquisition unit 21 from the client 100 in units of blocks, and stores the data sets in a time series as block data 26 is stored. As a unit to be combined into block data, one block may be constituted by one data set, or one block may be constituted by a plurality of data sets.
 このとき記憶制御部23は、データセット取得部21により今回取得されて合意形成されたデータセットと、別のデータセットについて算出済みのハッシュ値との組み合わせに対してハッシュ計算をすることによりハッシュ値を算出し、このハッシュ値と関連付けてデータセットをデータ記憶部26に記憶させる。 At this time, the storage control unit 23 performs the hash calculation on the combination of the data set acquired this time by the data set acquisition unit 21 and the consensus formation and the hash value calculated for another data set, thereby obtaining a hash value. And the data set is stored in the data storage unit 26 in association with the hash value.
 図5は、記憶制御部23によるハッシュ計算の内容を模式的に示す図である。なお、図5において、縦方向は時間軸であり、一番上がプロジェクトの開始時で、下に行くほど時間が経過していることを示している。図5に示すように、データセット取得部21は、クライアント100から複数のデータセット{Data1,Hash1},{Data2,Hash2},{Data3,Hash3},・・・を逐次取得する。 FIG. 5 is a diagram schematically showing the contents of the hash calculation performed by the storage control unit 23. In FIG. 5, the vertical direction is the time axis, and the top is at the start of the project, indicating that the time has passed toward the bottom. As shown in FIG. 5, the data set acquisition unit 21 sequentially acquires a plurality of data sets {Data1, Hash1}, {Data2, Hash2}, {Data3, Hash3},.
 まず、データセット取得部21により1つ目のデータセット{Data1,Hash1}が取得され、それについてコンセンサス処理部22により合意形成が行われたとき、記憶制御部23は、当該データセット{Data1,Hash1}に対してハッシュ計算をすることにより、1つ目のハッシュ値“Hash11”を算出する。そして、記憶制御部23は、当該1つ目のデータセット{Data1,Hash1}と1つ目のハッシュ値“Hash11”とを1つのブロックにまとめ、ブロックデータとしてデータ記憶部26に記憶させる。 First, when the first data set {Data1, Hash1} is acquired by the data set acquisition unit 21 and consensus is formed by the consensus processing unit 22, the storage control unit 23 stores the data set {Data1, The first hash value “Hash11” is calculated by performing hash calculation on Hash1}. Then, the storage control unit 23 collects the first data set {Data1, Hash1} and the first hash value “Hash11” into one block, and stores them in the data storage unit 26 as block data.
 次に、データセット取得部21により2つ目のデータセット{Data2,Hash2}が取得され、それについてコンセンサス処理部22により合意形成が行われたとき、記憶制御部23は、当該2つ目のデータセット{Data2,Hash2}と、データ記憶部26に記憶されている1つ目のハッシュ値“Hash11”との組み合わせに対してハッシュ計算をすることにより、2つ目のハッシュ値“Hash12”を算出する。そして、記憶制御部23は、当該2つ目のデータセット{Data2,Hash2}と2つ目のハッシュ値“Hash12”とを1つのブロックにまとめ、ブロックデータとしてデータ記憶部26に記憶させる。 Next, when the second data set {Data2, Hash2} is acquired by the data set acquisition unit 21 and consensus is formed by the consensus processing unit 22, the storage control unit 23 By performing a hash calculation on the combination of the data set {Data2, Hash2} and the first hash value “Hash11” stored in the data storage unit 26, the second hash value “Hash12” is obtained. calculate. Then, the storage control unit 23 collects the second data set {Data2, Hash2} and the second hash value “Hash12” into one block, and stores them in the data storage unit 26 as block data.
 次いで、データセット取得部21により3つ目のデータセット{Data3,Hash3}が取得され、それについてコンセンサス処理部22により合意形成が行われたとき、記憶制御部23は、当該3つ目のデータセット{Data2,Hash2}と、データ記憶部26に記憶されている2つ目のハッシュ値“Hash12”との組み合わせに対してハッシュ計算をすることにより、3つ目のハッシュ値“Hash13”を算出する。そして、記憶制御部23は、当該3つ目のデータセット{Data3,Hash3}と3つ目のハッシュ値“Hash13”とを1つのブロックにまとめ、ブロックデータとしてデータ記憶部26に記憶させる。 Next, when the third data set {Data3, Hash3} is acquired by the data set acquisition unit 21 and consensus is formed by the consensus processing unit 22, the storage control unit 23 determines that the third data set The third hash value “Hash13” is calculated by performing a hash calculation on the combination of the set {Data2, Hash2} and the second hash value “Hash12” stored in the data storage unit 26. To do. Then, the storage control unit 23 collects the third data set {Data3, Hash3} and the third hash value “Hash13” into one block, and stores them in the data storage unit 26 as block data.
 以下同様にして、データセット取得部21によりデータセットが取得されてコンセンサス処理部22により合意形成が行われる都度、ハッシュ値の算出が実行される。このように、本実施形態では、クライアント100から今回取得された最新のデータセットについてハッシュ値を算出する際に、直前にクライアント100から取得された別のデータセットについて算出済みのハッシュ値を更に組み合わせてハッシュ値を算出し、算出したハッシュ値と関連付けて最新のデータセットをデータ記憶部26に記憶させるようにしている。 In the same manner, each time a data set is acquired by the data set acquisition unit 21 and an agreement is formed by the consensus processing unit 22, a hash value is calculated. As described above, in this embodiment, when the hash value is calculated for the latest data set acquired this time from the client 100, the hash values already calculated for another data set acquired from the client 100 immediately before are further combined. Thus, the hash value is calculated, and the latest data set is stored in the data storage unit 26 in association with the calculated hash value.
 以上の処理により、複数のサーバ200A~200Cで分散保存される複数のデータセットについて、ハッシュ値によって結び付けられたハッシュチェーンが形成されることになる。このため、あるデータセットの中のデータを改ざんしようとしても、ハッシュチェーンで繋がりのある他のデータセットも全て改ざんすることが必要となるため、改ざんが難しくなる。これにより、サーバ200に保存されたデータの改ざんを防止することが可能となる。 Through the above processing, hash chains linked by hash values are formed for a plurality of data sets distributed and stored by the plurality of servers 200A to 200C. For this reason, even if it is attempted to falsify data in a certain data set, it is necessary to falsify all other data sets connected by a hash chain, which makes it difficult to falsify. Thereby, it is possible to prevent falsification of data stored in the server 200.
 上述したように、本実施形態では、クライアント100においてもその内部でハッシュチェーンを形成し、サーバ200においてもハッシュチェーンを形成しているので、2重のチェーンが形成されている。しかも、サーバ200でのハッシュチェーンは、クライアント100で算出されたハッシュ値を含めて算出したハッシュ値の連鎖により構成されている。これにより、データの改ざんをより強固に防止することが可能である。すなわち、サーバ200上のデータを改ざんするためには、サーバ200のデータ記憶部26に記憶されたハッシュ値の改ざんおよびクライアント100のデータ記憶部17に記憶されたハッシュ値の改ざんを行う必要があるため、サーバ200における通常の1種類のブロックチェーンを適用しただけの場合よりも改ざんが難しくなる。 As described above, in this embodiment, a hash chain is formed in the client 100 and a hash chain is formed in the server 200, so a double chain is formed. In addition, the hash chain in the server 200 is configured by a chain of hash values calculated including the hash value calculated by the client 100. As a result, it is possible to prevent data alteration more firmly. That is, in order to falsify the data on the server 200, it is necessary to falsify the hash value stored in the data storage unit 26 of the server 200 and the hash value stored in the data storage unit 17 of the client 100. For this reason, tampering is more difficult than when only one type of normal block chain is applied to the server 200.
 秘密情報取得部24は、クライアント100の秘密情報送信部15により送信された秘密情報を取得する。検証部25は、秘密情報取得部24により取得された秘密情報を用いて、サーバ200に保存されているデータの正当性を検証する。すなわち、検証部25は、データ記憶部26に記憶されているデータセットの中のデータと、秘密情報取得部24により取得された秘密情報との組み合わせに対してハッシュ計算をすることによってハッシュ値を算出し、算出したハッシュ値がデータセットの中のハッシュ値と一致するか否かを確認することにより、データの正当性を検証する。 The secret information acquisition unit 24 acquires the secret information transmitted by the secret information transmission unit 15 of the client 100. The verification unit 25 verifies the validity of the data stored in the server 200 using the secret information acquired by the secret information acquisition unit 24. In other words, the verification unit 25 calculates a hash value by performing a hash calculation on the combination of the data in the data set stored in the data storage unit 26 and the secret information acquired by the secret information acquisition unit 24. The validity of the data is verified by calculating and confirming whether the calculated hash value matches the hash value in the data set.
 例えば、図5に示した1つ目のデータセット{Data1,Hash1}に含まれるデータ“Data1”の正当性を検証する場合、検証部25は、当該“Data1”と、秘密情報取得部24により取得された秘密情報“abc”との組み合わせに対してハッシュ計算をすることにより、ハッシュ値を算出する。そして、検証部25は、この算出したハッシュ値が、1つ目のデータセット{Data1,Hash1}に含まれるハッシュ値“Hash1”と一致するか否かを確認し、一致する場合に正当なデータ、一致しない場合は不正なデータ(クライアント100のなりすましによって生成されたデータ)と判定する。 For example, when verifying the validity of the data “Data1” included in the first data set {Data1, Hash1} illustrated in FIG. 5, the verification unit 25 uses the “Data1” and the secret information acquisition unit 24. A hash value is calculated by performing a hash calculation on the combination with the acquired secret information “abc”. Then, the verification unit 25 checks whether or not the calculated hash value matches the hash value “Hash1” included in the first data set {Data1, Hash1}. If they do not match, it is determined that the data is invalid (data generated by impersonation of the client 100).
 また、図5に示した2つ目のデータセット{Data2,Hash2}に含まれるデータ“Data2”の正当性を検証する場合、検証部25は、当該“Data2”と、秘密情報取得部24により取得された秘密情報“abc”と、1つ前のデータセット{Data1,Hash1}に含まれるハッシュ値“Hash1”との組み合わせに対してハッシュ計算をすることにより、ハッシュ値を算出する。そして、検証部25は、この算出したハッシュ値が、2つ目のデータセット{Data2,Hash2}に含まれるハッシュ値“Hash2”と一致するか否かを確認し、一致する場合に正当なデータ、一致しない場合は不正なデータと判定する。3つ目以降のデータを検証する場合もこれと同様である。 When verifying the validity of the data “Data2” included in the second data set {Data2, Hash2} illustrated in FIG. 5, the verification unit 25 uses the “Data2” and the secret information acquisition unit 24 to verify the validity. A hash value is calculated by performing a hash calculation on the combination of the acquired secret information “abc” and the hash value “Hash1” included in the previous data set {Data1, Hash1}. Then, the verification unit 25 checks whether or not the calculated hash value matches the hash value “Hash2” included in the second data set {Data2, Hash2}. If they do not match, it is determined as invalid data. The same applies to the case of verifying the third and subsequent data.
 以上詳しく説明したように、本実施形態では、分散型ネットワークにより接続されたサーバ200に対してクライアント100が生成したデータを送信する際に、クライアント100おいて生成したデータと、クライアント100において発行した秘密情報との組み合わせに対してハッシュ計算をすることによりハッシュ値を算出し、データとハッシュ値とをデータセットとしてサーバ200に送信するようにしている。 As described above in detail, in this embodiment, when data generated by the client 100 is transmitted to the server 200 connected by the distributed network, the data generated by the client 100 and the data issued by the client 100 are issued. A hash value is calculated by performing a hash calculation on the combination with the secret information, and the data and the hash value are transmitted to the server 200 as a data set.
 このように構成した本実施形態によれば、秘密情報を知らない第三者がクライアント100のなりすましによってサーバ200にデータとそのハッシュ値を書き込んだとしても、検証の際に、なりすましのデータと秘密情報との組み合わせから算出されるハッシュ値が、サーバ200に書き込まれているハッシュ値と一致しないため、なりすましによる不正なデータであると判別することができる。このように、本実施形態によれば、クライアント100のなりすましによってサーバに書き込まれた不正なデータを正当なデータと区別することができる。 According to the present embodiment configured as described above, even if a third party who does not know the secret information writes the data and its hash value to the server 200 by impersonating the client 100, the spoofed data and the secret are verified during the verification. Since the hash value calculated from the combination with the information does not match the hash value written in the server 200, it can be determined that the data is illegal data by impersonation. Thus, according to the present embodiment, it is possible to distinguish illegal data written in the server by impersonating the client 100 from valid data.
 また、本実施形態では、クライアント100において、あるデータについて秘密情報との組み合わせからハッシュ値を算出する際に、別のデータについて算出済みのハッシュ値を更に組み合わせて、あるデータと、秘密情報と、別のデータについて算出済みのハッシュ値との組み合わせに対してハッシュ計算をすることによりハッシュ値を算出する。そして、このようにして算出されたハッシュ値を対応のデータと関連付けて記憶させるようにしている。 In this embodiment, when the client 100 calculates a hash value from a combination of secret information with respect to certain data, the hash value that has already been calculated with respect to another data is further combined to generate certain data, secret information, A hash value is calculated by performing a hash calculation on a combination with a calculated hash value for another data. The hash value calculated in this way is stored in association with the corresponding data.
 これにより、クライアント100において生成される複数のデータについて、ハッシュ値によって結び付けられたハッシュチェーンがクライアント100内で形成されることになる。このため、あるデータを改ざんしようとしても、ハッシュチェーンで繋がりのある他のデータも全て改ざんすることが必要となるため、改ざんが難しくなる。よって、本実施形態によれば、サーバ200に書き込まれる前の段階でクライアント100内でデータの改ざんが行われることを防止することができる。 Thereby, a hash chain in which a plurality of data generated in the client 100 is linked by the hash value is formed in the client 100. For this reason, even if it is attempted to falsify certain data, it is necessary to falsify all other data connected by the hash chain, which makes it difficult to falsify. Therefore, according to the present embodiment, it is possible to prevent data from being falsified within the client 100 before being written to the server 200.
 また、本実施形態では、クライアント100から送信されたデータセット(データとハッシュ値との組み合わせ)をサーバ200に書き込む際にも、当該データセットと、別のデータセットについて算出済みのハッシュ値との組み合わせに対してハッシュ計算をすることによりハッシュ値を算出する。そして、このようにして算出されたハッシュ値を対応のデータセットと関連付けて記憶させるようにしている。 In this embodiment, when writing a data set (a combination of data and a hash value) transmitted from the client 100 to the server 200, the data set and a hash value calculated for another data set are also calculated. A hash value is calculated by performing a hash calculation on the combination. The hash value calculated in this way is stored in association with the corresponding data set.
 これにより、サーバ200においても、ハッシュ値によって結び付けられたハッシュチェーンが一連のデータセットに紐付いて形成されることになる。このため、サーバ200に書き込まれたデータセットについても改ざんを防止することができる。特に、本実施形態では、クライアント100内でハッシュチェーンを形成しているハッシュ値をサーバ200に送信し、そのクライアント100内のハッシュ値を利用して算出したハッシュ値の連鎖によりサーバ200上のハッシュチェーンを形成しているので、ハッシュチェーンが2重構造となり、データの改ざんをより困難なものとすることができる。 Thereby, also in the server 200, the hash chain linked by the hash value is formed in association with a series of data sets. For this reason, the data set written in the server 200 can be prevented from being falsified. In particular, in the present embodiment, a hash value forming a hash chain in the client 100 is transmitted to the server 200, and a hash on the server 200 is obtained by a chain of hash values calculated using the hash value in the client 100. Since the chain is formed, the hash chain has a double structure, and data alteration can be made more difficult.
 なお、上記実施形態では、クライアント100のなりすましを防止するための秘密情報と、クライアント100内でのデータの改ざんを防止するためのハッシュチェーンとの両方を実装する例について説明したが、本発明はこれに限定されない。例えば、クライアント100のなりすましを防止するための秘密情報のみを実装した構成としてもよい。この場合、ハッシュ演算部13は、別のデータについて算出済みのハッシュ値は組み合わせず、データ生成部12により生成されたデータと、秘密情報記憶部16に記憶された秘密情報との組み合わせからハッシュ値を算出すればよい。 In the above embodiment, an example has been described in which both secret information for preventing spoofing of the client 100 and a hash chain for preventing falsification of data in the client 100 are implemented. It is not limited to this. For example, only the secret information for preventing impersonation of the client 100 may be implemented. In this case, the hash calculator 13 does not combine the hash values that have already been calculated for the other data, and the hash value is determined based on the combination of the data generated by the data generator 12 and the secret information stored in the secret information storage unit 16. May be calculated.
 また、上記実施形態では、サーバ200に保存するデータセットについてもハッシュチェーンを形成する例について説明したが、これがなくても、クライアント100のなりすましおよびクライアント100内でのデータの改ざんの防止効果が期待できる。この場合、例えば、記憶制御部23は、別のデータセットについて算出済みのハッシュ値は組み合わせず、データセット取得部21により取得されたデータセットに対してハッシュ計算をすることによりハッシュ値を算出し、当該算出したハッシュ値と関連付けてデータセットをデータ記憶部26に記憶させるようにしてよい。あるいは、記憶制御部23は、ハッシュ計算自体を行わず、データセット取得部21により取得されたデータセットをデータ記憶部26に記憶させるようにしてもよい。 In the above-described embodiment, an example in which a hash chain is formed for a data set stored in the server 200 has been described. However, even without this, an effect of preventing impersonation of the client 100 and alteration of data in the client 100 is expected. it can. In this case, for example, the storage control unit 23 calculates a hash value by performing a hash calculation on the data set acquired by the data set acquisition unit 21 without combining hash values already calculated for another data set. The data set may be stored in the data storage unit 26 in association with the calculated hash value. Alternatively, the storage control unit 23 may store the data set acquired by the data set acquisition unit 21 in the data storage unit 26 without performing the hash calculation itself.
 すなわち、クライアント100に関しては、(1)生成したデータと秘密情報とを組み合わせてハッシュ化するパターン、(2)生成したデータと秘密情報と別のデータについて算出済みのハッシュ値とを組み合わせてハッシュ化するパターンの2通りを適用可能である。また、サーバ200に関しては、(A)クライアント100から取得したデータセットをそのまま保存するパターン、(B)クライアント100から取得したデータセットをハッシュ化して保存するパターン、(C)クライアント100から取得したデータセットと別のデータセットについて算出済みのハッシュ値とを組み合わせてハッシュ化して保存するパターンの3通りを適用可能である。そして、クライアント100側の2パターンとサーバ200側の3パターンとを任意に組み合わせて適用することが可能である。このうち、(2)と(C)との組み合わせが最も強固なセキュリティとなる。 That is, for the client 100, (1) a pattern in which the generated data and secret information are combined and hashed, and (2) a combination of the generated data, secret information, and a hash value that has been calculated for another data is hashed. Two types of patterns to be applied are applicable. Regarding the server 200, (A) a pattern for storing the data set acquired from the client 100 as it is, (B) a pattern for storing the data set acquired from the client 100 by hashing, and (C) data acquired from the client 100 It is possible to apply three types of patterns in which a set and a hash value calculated for another data set are combined and hashed and stored. The two patterns on the client 100 side and the three patterns on the server 200 side can be arbitrarily combined and applied. Of these, the combination of (2) and (C) is the strongest security.
 その他、上記実施形態は、何れも本発明を実施するにあたっての具体化の一例を示したものに過ぎず、これによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその要旨、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。 In addition, each of the above-described embodiments is merely an example of implementation in carrying out the present invention, and the technical scope of the present invention should not be construed in a limited manner. That is, the present invention can be implemented in various forms without departing from the gist or the main features thereof.
 11 秘密情報発行部
 12 データ生成部
 13 ハッシュ演算部
 14 データセット送信部
 15 秘密情報送信部
 16 秘密情報記憶部
 17 データ記憶部
 100 クライアント(データ処理装置)
 200 サーバ
DESCRIPTION OF SYMBOLS 11 Secret information issuing part 12 Data generation part 13 Hash calculating part 14 Data set transmission part 15 Secret information transmission part 16 Secret information storage part 17 Data storage part 100 Client (data processing apparatus)
200 servers

Claims (9)

  1.  分散型ネットワークにより接続されたサーバと、データを生成して上記サーバに送信するクライアントとを備え、
     上記クライアントは、
     上記データを生成するデータ生成部と、
     秘密情報を発行する秘密情報発行部と、
     上記データ生成部により生成された上記データと上記秘密情報発行部により発行された上記秘密情報との組み合わせに対してハッシュ計算をすることによりハッシュ値を算出するハッシュ演算部と、
     上記データ生成部により生成された上記データと上記ハッシュ演算部により算出された上記ハッシュ値とをデータセットとして上記サーバに送信するデータセット送信部とを備え、
     上記サーバは、
     上記クライアントから送信されてくる上記データセットを保存する記憶制御部を備えたことを特徴とするセキュリティシステム。
    A server connected by a distributed network, and a client that generates data and sends it to the server,
    The above client
    A data generation unit for generating the data;
    A secret information issuing unit that issues secret information;
    A hash calculator that calculates a hash value by performing a hash calculation on the combination of the data generated by the data generator and the secret information issued by the secret information issuer;
    A data set transmission unit that transmits the data generated by the data generation unit and the hash value calculated by the hash calculation unit to the server as a data set;
    The server
    A security system comprising a storage control unit for storing the data set transmitted from the client.
  2.  上記ハッシュ演算部は、あるデータについて上記秘密情報との組み合わせからハッシュ値を算出する際に、別のデータについて算出済みのハッシュ値を更に組み合わせて、上記あるデータ、上記秘密情報および上記別のデータについて算出済みのハッシュ値の組み合わせに対してハッシュ計算をすることによりハッシュ値を算出することを特徴とする請求項1に記載のセキュリティシステム。 When the hash calculation unit calculates a hash value from a combination of the certain data and the secret information, the hash calculation unit further combines the calculated hash values for the other data, and the certain data, the secret information, and the other data 2. The security system according to claim 1, wherein a hash value is calculated by performing a hash calculation on a combination of hash values that have already been calculated.
  3.  上記記憶制御部は、上記データセットに対してハッシュ計算をすることによりハッシュ値を算出し、当該算出したハッシュ値と関連付けて上記データセットを保存することを特徴とする請求項1に記載のセキュリティシステム。 The security according to claim 1, wherein the storage control unit calculates a hash value by performing a hash calculation on the data set, and stores the data set in association with the calculated hash value. system.
  4.  上記記憶制御部は、上記データセットに対してハッシュ計算をすることによりハッシュ値を算出し、当該算出したハッシュ値と関連付けて上記データセットを保存することを特徴とする請求項2に記載のセキュリティシステム。 The security according to claim 2, wherein the storage control unit calculates a hash value by performing a hash calculation on the data set, and stores the data set in association with the calculated hash value. system.
  5.  上記記憶制御部は、あるデータセットに対して上記ハッシュ値を算出する際に、別のデータセットについて算出済みのハッシュ値を更に組み合わせて、上記あるデータセットおよび上記別のデータセットについて算出済みのハッシュ値の組み合わせに対してハッシュ計算をすることによりハッシュ値を算出し、当該算出したハッシュ値と関連付けて上記データセットを保存することを特徴とする請求項3に記載のセキュリティシステム。 When the storage control unit calculates the hash value for a certain data set, the storage control unit further combines the hash values that have been calculated for another data set, and has already been calculated for the one data set and the other data set. The security system according to claim 3, wherein a hash value is calculated by performing a hash calculation on a combination of hash values, and the data set is stored in association with the calculated hash value.
  6.  上記記憶制御部は、あるデータセットに対して上記ハッシュ値を算出する際に、別のデータセットについて算出済みのハッシュ値を更に組み合わせて、上記あるデータセットおよび上記別のデータセットについて算出済みのハッシュ値の組み合わせに対してハッシュ計算をすることによりハッシュ値を算出し、当該算出したハッシュ値と関連付けて上記データセットを保存することを特徴とする請求項4に記載のセキュリティシステム。 When the storage control unit calculates the hash value for a certain data set, the storage control unit further combines the hash values that have been calculated for another data set, and has already been calculated for the one data set and the other data set. 5. The security system according to claim 4, wherein a hash value is calculated by performing a hash calculation on a combination of hash values, and the data set is stored in association with the calculated hash value.
  7.  上記データ生成部は、1つのプロジェクトとして、異なる内容のデータの生成を繰り返し実行し、
     上記ハッシュ演算部および上記データセット送信部は、上記データ生成部により上記データが生成される毎に処理を行って上記データセットを上記サーバに繰り返し送信し、
     上記クライアントは、上記サーバに保存されたデータの正当性を検証する際に上記秘密情報を上記サーバに送信する秘密情報送信部を更に備えたことを特徴とする請求項1~6の何れか1項に記載のセキュリティシステム。
    The data generation unit repeatedly generates data of different contents as one project,
    The hash calculation unit and the data set transmission unit perform processing each time the data generation unit generates the data and repeatedly transmit the data set to the server.
    7. The client according to claim 1, further comprising a secret information transmitting unit that transmits the secret information to the server when verifying validity of data stored in the server. The security system described in the section.
  8.  データを生成するデータ生成部と、
     秘密情報を発行する秘密情報発行部と、
     上記データ生成部により生成された上記データと上記秘密情報発行部により発行された上記秘密情報との組み合わせに対してハッシュ計算をすることによりハッシュ値を算出するハッシュ演算部と、
     上記データ生成部により生成された上記データと上記ハッシュ演算部により算出された上記ハッシュ値とをデータセットとして、分散型ネットワークにより接続されたサーバに送信するデータセット送信部とを備えたことを特徴とするデータ処理装置。
    A data generation unit for generating data;
    A secret information issuing unit that issues secret information;
    A hash calculator that calculates a hash value by performing a hash calculation on the combination of the data generated by the data generator and the secret information issued by the secret information issuer;
    A data set transmission unit that transmits the data generated by the data generation unit and the hash value calculated by the hash calculation unit as a data set to a server connected by a distributed network. A data processing device.
  9.  上記ハッシュ演算部は、あるデータについて上記秘密情報との組み合わせからハッシュ値を算出する際に、別のデータについて算出済みのハッシュ値を更に組み合わせて、上記あるデータ、上記秘密情報および上記別のデータについて算出済みのハッシュ値の組み合わせに対してハッシュ計算をすることによりハッシュ値を算出することを特徴とする請求項7に記載のデータ処理装置。 When the hash calculation unit calculates a hash value from a combination of the certain data and the secret information, the hash calculation unit further combines the calculated hash values for the other data, and the certain data, the secret information, and the other data The data processing apparatus according to claim 7, wherein a hash value is calculated by performing a hash calculation on a combination of hash values that have already been calculated.
PCT/JP2018/021708 2018-06-06 2018-06-06 Security system and data processing apparatus WO2019234850A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019541363A JPWO2019234850A1 (en) 2018-06-06 2018-06-06 Security system and data processing device
PCT/JP2018/021708 WO2019234850A1 (en) 2018-06-06 2018-06-06 Security system and data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/021708 WO2019234850A1 (en) 2018-06-06 2018-06-06 Security system and data processing apparatus

Publications (1)

Publication Number Publication Date
WO2019234850A1 true WO2019234850A1 (en) 2019-12-12

Family

ID=68769802

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/021708 WO2019234850A1 (en) 2018-06-06 2018-06-06 Security system and data processing apparatus

Country Status (2)

Country Link
JP (1) JPWO2019234850A1 (en)
WO (1) WO2019234850A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111553450A (en) * 2020-04-27 2020-08-18 中国银行股份有限公司 Two-dimensional code generation and verification method and device
JP2021061576A (en) * 2019-10-08 2021-04-15 グラビティ株式会社 Data management system, data management method, data management device, and data management program
JP7144020B1 (en) 2022-06-10 2022-09-29 株式会社Gfs Information processing method, server, and program
CN118171304A (en) * 2024-05-09 2024-06-11 江西怡杉科技有限公司 Intelligent hydraulic engineering management method and system based on ecological monitoring data

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH118620A (en) * 1997-04-18 1999-01-12 Sun Microsyst Inc System and method for efficiently executing authentication of communication channel and facilitating detection of illegal forgery
WO2016116999A1 (en) * 2015-01-19 2016-07-28 三菱電機株式会社 Packet transmission device, packet-receiving device, packet transmission program, and packet-receiving program
JP2017204706A (en) * 2016-05-10 2017-11-16 日本電信電話株式会社 Content distribution system, content distribution method, content generation device and content generation program
JP6245783B1 (en) * 2017-05-02 2017-12-13 サスメド株式会社 Security system and node device used therefor
JP2018081464A (en) * 2016-11-15 2018-05-24 富士通株式会社 Communication method, apparatus, and program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3619368B2 (en) * 1998-06-09 2005-02-09 日本電信電話株式会社 IC card information backup method and program recording medium
JP2002215029A (en) * 2001-01-22 2002-07-31 Seiko Epson Corp Information authentication device and digital camera using the same
JP2002244555A (en) * 2001-02-21 2002-08-30 Nippon Telegr & Teleph Corp <Ntt> Method, device, and program for detecting data falsification, and storage medium with stored program therefor
JP4569118B2 (en) * 2004-02-05 2010-10-27 株式会社日立製作所 Verification result recording method and apparatus for creating signature verification log
JP2008060745A (en) * 2006-08-30 2008-03-13 Fuji Xerox Co Ltd Information processing system and program
JP5099542B2 (en) * 2007-02-28 2012-12-19 学校法人東京電機大学 Operation record correctness proof system and method using camera
JP6648555B2 (en) * 2016-02-29 2020-02-14 富士ゼロックス株式会社 Information processing device and program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH118620A (en) * 1997-04-18 1999-01-12 Sun Microsyst Inc System and method for efficiently executing authentication of communication channel and facilitating detection of illegal forgery
WO2016116999A1 (en) * 2015-01-19 2016-07-28 三菱電機株式会社 Packet transmission device, packet-receiving device, packet transmission program, and packet-receiving program
JP2017204706A (en) * 2016-05-10 2017-11-16 日本電信電話株式会社 Content distribution system, content distribution method, content generation device and content generation program
JP2018081464A (en) * 2016-11-15 2018-05-24 富士通株式会社 Communication method, apparatus, and program
JP6245783B1 (en) * 2017-05-02 2017-12-13 サスメド株式会社 Security system and node device used therefor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
OHASHI, SHIGENORI ET AL.: "A registration method for digital content management systems utilizing blockchains", IEICE TECHNICAL REPORT, vol. 116, no. 23, May 2016 (2016-05-01), pages 13 - 18 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021061576A (en) * 2019-10-08 2021-04-15 グラビティ株式会社 Data management system, data management method, data management device, and data management program
CN111553450A (en) * 2020-04-27 2020-08-18 中国银行股份有限公司 Two-dimensional code generation and verification method and device
CN111553450B (en) * 2020-04-27 2023-04-18 中国银行股份有限公司 Two-dimensional code generation and verification method and device
JP7144020B1 (en) 2022-06-10 2022-09-29 株式会社Gfs Information processing method, server, and program
JP2023180844A (en) * 2022-06-10 2023-12-21 株式会社Gfs Information processing method, server, and program
CN118171304A (en) * 2024-05-09 2024-06-11 江西怡杉科技有限公司 Intelligent hydraulic engineering management method and system based on ecological monitoring data

Also Published As

Publication number Publication date
JPWO2019234850A1 (en) 2020-06-25

Similar Documents

Publication Publication Date Title
US10880080B1 (en) Cryptographic key generation from biometric data
CN111066287B (en) Retrieving public data of blockchain networks using trusted execution environments
JP7153056B6 (en) Method and system for event-locked encryption implemented in blockchain
US10396985B1 (en) Federated identity management based on biometric data
CN110603783B (en) Secure dynamic threshold signature scheme using trusted hardware
JP6811339B2 (en) Read public data for blockchain networks using a highly available and reliable execution environment
JP3230238U (en) A system for securely storing electronic data
CN109196816B (en) Public key infrastructure using blockchains
WO2019234850A1 (en) Security system and data processing apparatus
US9497210B2 (en) Stateless attestation system
CN111756533B (en) System, method and storage medium for secure password generation
US20190253260A1 (en) Electronic certification system
CN105659559B (en) The safety of authenticating remote server
CN110892434A (en) Transferring digital tickets over a blockchain network
JP6906521B2 (en) Biometric Protocol Standard Systems and Methods
Jung et al. An improved and secure anonymous biometric-based user authentication with key agreement scheme for the integrated epr information system
JP2021520009A (en) Integration of biometric data on the blockchain system
KR20180130623A (en) Blockchain formation method for application integrity verification and application integrity verification method
US11533186B2 (en) Proprietor&#39;s identity confirmation system, terminal management server, and proprietor&#39;s identity confirmation method
CN114049121B (en) Block chain based account resetting method and equipment
JP6742558B2 (en) Certification system and certification program
WO2019198130A1 (en) Authentication system and authentication program
CN112422534B (en) Credit evaluation method and equipment for electronic certificate
CN113159774A (en) Monitorable zero-knowledge proof verification method and system in block chain
JP2010252275A (en) Authentication processing method, authentication processing program, recording medium and authentication processing system

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019541363

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: 18921620

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18921620

Country of ref document: EP

Kind code of ref document: A1