WO2016031033A1 - データ保持確認方法、装置 - Google Patents

データ保持確認方法、装置 Download PDF

Info

Publication number
WO2016031033A1
WO2016031033A1 PCT/JP2014/072669 JP2014072669W WO2016031033A1 WO 2016031033 A1 WO2016031033 A1 WO 2016031033A1 JP 2014072669 W JP2014072669 W JP 2014072669W WO 2016031033 A1 WO2016031033 A1 WO 2016031033A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
random number
user terminal
providing server
verification target
Prior art date
Application number
PCT/JP2014/072669
Other languages
English (en)
French (fr)
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 PCT/JP2014/072669 priority Critical patent/WO2016031033A1/ja
Publication of WO2016031033A1 publication Critical patent/WO2016031033A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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/36Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission

Definitions

  • the present invention relates to a technology for a data retention certification method and a data retention certification device.
  • Non-Patent Document 1 describes a method for realizing such data holding processing.
  • security certification a theory called “security certification” that a server operator does not hold data and cannot be falsely verified.
  • Non-Patent Document 1 when the technique described in Non-Patent Document 1 is used for data retention certification, a communication amount equivalent to data is generated, and the load on the network is high.
  • the computing resources available to the client are limited, for example, it is used in a portable mobile PC such as a mobile phone or a smartphone that requires power saving, or a card shape.
  • a model that assumes a small microcomputer or RFID as a client it is necessary to minimize the amount of calculation of the client.
  • the technique described in Non-Patent Document 1 is used for data retention certification, the calculation amount of the client becomes large.
  • the calculation amount of the server / client becomes enormous (one gigabyte of file data per kilobyte according to the OS file format, etc.
  • the client needs 1 million inverse power multiplications).
  • the present invention has been made in view of such a background, and the present invention is such that the server retains data while the communication amount is smaller than the data managed by the server and the calculation amount imposed on the client and the server is reduced.
  • the purpose is to prove.
  • the disclosed data retention certification system includes a user terminal and a providing server that proves to the user terminal that the verification target data is retained.
  • the user terminal calculates a voucher from the data to be verified using a pre-stored secret key, transmits the data to the server, and generates a random number when transmitting a request for data retention certification.
  • the providing server receives the random number, calculates the first evidence data from the received pseudorandom number generator and the stored data, and calculates the calculated first evidence data to the user terminal
  • the user terminal receives the first evidence data, calculates the second evidence data from the random number and the voucher using the pseudo random number generator, and obtains the first evidence data and the second evidence data. Based on the comparison result, it is determined whether the providing server stores the verification target data.
  • the server correctly holds the data while suppressing the calculation amount and the communication amount.
  • FIG. 1 is a diagram illustrating a configuration example of a data holding confirmation system according to the present embodiment.
  • the data retention confirmation system has a configuration in which a user terminal 200 and a service providing server (providing server) 300 are connected to each other via a network 100.
  • the providing server 300 is installed in a cloud operator, and a user terminal held by a user who uses the service of the cloud operator is a mobile phone or the like.
  • FIG. 2 is a functional schematic diagram illustrating a configuration example of the user terminal 200 according to the first embodiment.
  • the user terminal 200 includes a control unit 210 that processes data, a storage unit 220 that stores data, an input unit 201 that inputs information, an output unit 202 that outputs information, and an external device. And a communication unit 203 that transmits and receives data.
  • the control unit 210 includes an overall processing unit 211, a natural number generation unit 212, a random number generation unit 213, and a basic calculation unit 214.
  • the overall processing unit 211 performs overall control of processing in the user terminal 200, stores received information in the storage unit 220 via the input unit 201, and controls transmission and reception of information with the providing server 300.
  • the overall processing unit 211 performs processing for displaying data on the output unit 202, reads data stored in the storage unit 220, causes the natural number generation unit 212 to generate a natural number, To generate random number data, or cause the basic calculation unit 214 to perform data calculation processing, and to transmit communication data, verification target data of the user terminal 200, voucher, data identifier, and temporary information to the communication unit
  • the data is transmitted to the providing server 300 (FIG. 1) via 203.
  • a natural number having an arbitrary bit length can be generated by inputting a bit length (128, 256, 512, 1024, 2048, etc.) to the natural number generation unit 212.
  • the random number generation unit 213 generates a pseudo random number using a secret key or the like. At this time, the data value of the secret key is updated to a new data value by the random number generation unit 213 and stored again in the storage unit 220 by the overall processing unit 211. Note that the random number generation unit 213 may generate and output a random number using a physical phenomenon such as temperature, time, and electric energy, or a random number generation algorithm. Further, by inputting a bit length to the random number generation unit 213, a random number having an arbitrary bit length can be generated.
  • the basic operation unit 214 performs processing related to basic arithmetic operations such as addition, subtraction, multiplication, and remainder calculation.
  • the storage unit 220 stores communication data, a secret key, a public parameter, and temporary information.
  • the communication data includes verification target data that is a target of the holding certification, a voucher for verifying the holding of the verification target data, and a data identifier that is information for specifying the verification target data.
  • the verification target data is transmitted to the providing server 300 and is deleted after transmission. Although it is not necessary to delete the verification target data after transmission, this embodiment deals with a case where it is deleted.
  • the certificate is data used when verifying the holding of the verification target data.
  • the data identifier is data used when designating the verification target data that is the target of data retention.
  • the secret key is data used when generating a voucher, and is generated by the prime number generation unit 212 of the user terminal 200.
  • Public parameters are data used for verification of data retention.
  • Temporary information stores information that is temporarily required for processing by the control unit 210.
  • FIG. 3 is a functional schematic diagram illustrating a configuration example of the providing server 300 according to the first embodiment.
  • the providing server 300 includes a control unit 310 that processes data, a storage unit 320 that stores data, an input unit 301 that inputs information, an output unit 302 that outputs information, and an external device. And a communication unit 303 that transmits and receives data.
  • the control unit 310 includes an overall processing unit 311 and a basic calculation unit 313.
  • the overall processing unit 311 performs overall control of processing in the providing server 300, stores received information in the storage unit 320 via the input unit 301, and controls transmission and reception of information with the user terminal 200.
  • the overall processing unit 311 performs processing for displaying data on the output unit 302, reads data stored in the storage unit 320, and transmits the data to the user terminal 200 (FIG. 2) via the communication unit 303. .
  • the basic operation unit 313 performs processing related to basic arithmetic operations such as addition and subtraction.
  • the storage unit 320 stores verification target data, a data identifier, a secret key, a public parameter, and temporary information.
  • the verification target data is transmitted from the user terminal 200.
  • Public parameters are data used when creating temporary information from verification target data.
  • Temporary information stores information that is temporarily required for processing by the control unit 310.
  • FIG. 5 is a diagram illustrating a hardware configuration of a computer that is a user terminal 200 and a service provider server.
  • the computer (that is, user terminal 200, service provider server) includes a CPU (Central Processing Unit) 401, a memory 402, and an HDD (Hard Disk D rive), a reading device 407 such as a CDD (Compact Disk Drive) for reading data such as a CD (Compact Disk), an input device 406 such as a keyboard and a mouse, and an output device 405 such as a display.
  • a CPU Central Processing Unit
  • a memory 402 for controlling access memory
  • HDD Hard Disk D rive
  • a reading device 407 such as a CDD (Compact Disk Drive) for reading data such as a CD (Compact Disk)
  • an input device 406 such as a keyboard and a mouse
  • an output device 405 such as a display.
  • It is realized by a general PC (Personal Computer) having a communication device 404 such as a NIC (Network Interface Card) for connecting to a communication network.
  • NIC Network Interface Card
  • Each of the units 210, 211, 212, 213, 214, 310, 311 and 313 in FIGS. 2 to 4 is realized by a program stored in the external storage device 403 or the like being expanded in the memory and executed by the CPU.
  • the storage units 220 and 320 can be realized by the CPU 401 using the memory 402 or the external storage device 403, and each processing unit included in the control units 210 and 310 is stored in the external storage device 403.
  • the input units 201 and 301 can be realized by the CPU 501 using the input device 506, and the output units 202 and 302 are This can be realized by using the output device 505 by the CPU 501, and the communication units 203 and 303 can be realized by using the communication device 404 by the CPU 401.
  • FIG. 5 is a flowchart showing a procedure for generating a secret key and public parameters according to the first embodiment. This process is a process that is performed in advance to share the public parameters between the user terminal 200 and the providing server 300 so that the data possession proof can be obtained.
  • secret key and public parameter setting information is input to the user terminal 200 via the input unit 201 (S501).
  • the natural number generation unit 212 generates a natural number p and stores it as a secret key in the storage unit 220 (S502).
  • the data block length t as a public parameter and the data length s when the random number is divided into fixed lengths are stored in the storage unit 220 (S503).
  • the overall processing unit 211 transmits the public parameters t and s as communication data to the providing server 300 via the communication unit 203 (S504).
  • the overall processing unit 311 of the providing server 300 receives the public parameter t, which is communication data, via the communication unit 303 (S505) and stores it in the storage unit 320 (S506).
  • the overall processing unit 311 summarizes information as to whether or not the public parameter has been successfully received and stored in the storage unit 320 as a registration result, and transmits it as communication data to the user terminal 200 via the communication unit 303 (S507).
  • the overall processing unit 211 of the user terminal 200 receives the registration result, which is communication data, via the communication unit 203 (S508). If the providing server 300 has successfully registered the public parameters, the processing ends. If not completed, the process returns to S504 to perform a retransmission process.
  • FIG. 6 is a flowchart showing a procedure of registration processing of verification target data according to the first embodiment and the second embodiment.
  • This process is a process in which the user terminal 200 creates a voucher for each verification target data and deposits the verification target data in the providing server 300 so that verification of possession of the verification target data can be performed later.
  • the verification target data Mi to be registered in the providing server 300 is specified to the user terminal 200 via the input unit 201 (S601), and a data identifier i specifying the verification target data to be registered is generated and stored in the storage unit 220. (S602).
  • the basic arithmetic unit 214 reads the secret key p, calculates mij satisfying the following expression for each data block Mij, and stores it in the storage unit 220 as proof mij (S603).
  • mij Mij mod p
  • mod p is a calculation for obtaining a remainder obtained by dividing by p
  • mij in the above expression is a remainder obtained by dividing the data block Mij by p.
  • the overall processing unit 211 transmits the data identifier i and the verification target data Mi as communication data to the providing server 300 via the communication unit 203 (S604).
  • the overall processing unit 311 of the providing server 300 receives the verification target data Mi, which is communication data, via the communication unit 303 (S605) and stores it in the storage unit 320 (S606).
  • the data identifier i and the verification target data Mi are stored as a set in the storage unit 320 (FIG. 8).
  • the overall processing unit 311 summarizes information as to whether or not the verification target data has been successfully received and stored in the storage unit 320 as a registration result, and transmits it as communication data to the user terminal 200 via the communication unit 303 (S607). .
  • the overall processing unit 211 of the user terminal 200 receives the registration result, which is communication data, via the communication unit 203 (S608), and ends if the providing server 300 has successfully registered the verification target data, If not registered, the process returns to S604, and a retransmission process is performed.
  • the order of the process of sharing the public parameter between the user terminal 200 and the providing server 300 described in S501 to S508 and the process of registering the verification target data described in S601 to S608 may be in any order.
  • FIG. 7 is a flowchart showing the procedure of the verification process of the verification target data according to the first embodiment and the second embodiment.
  • This process is a process for verifying whether the verification target data is held without causing the providing server 300 to transmit the verification target data using the voucher created by the user terminal 200 in advance.
  • the data identifier i of the verification target data Mi to be confirmed to be held by the providing server 300 is specified to the user terminal 200 via the input unit 201 (S701).
  • the random number generation unit 213 generates a random number R (S702), and the overall processing unit 211 transmits the data identifier i and the random number R as communication data to the providing server 300 via the communication unit 203 (S703). .
  • the overall processing unit 311 of the providing server 300 receives the random number R and the data identifier i, which are communication data, via the communication unit 303 and stores them in the storage unit 320 (S704).
  • the overall processing unit 311 reads the data identifier i and specifies the verification target data Mi to be proved (S705).
  • the basic arithmetic unit 313 calculates Si by the following formula and stores it as evidence data Si in the storage unit 320 (S706).
  • the overall processing unit 311 transmits the evidence data Si as communication data to the user terminal 200 via the communication unit 303 (S707).
  • the overall processing unit 211 of the user terminal 200 receives the evidence data Si that is communication data via the communication unit 203 (S708).
  • processing procedures S501 to S508, S601 to S608, and S701 to S710 are examples, and the processing procedures may be changed if they are essentially the same as the above processing.
  • the random number R is directly transmitted.
  • the pseudo random number generator is used as a public parameter, and the pseudo random number data to be output with the seed r of the pseudo random number generator instead of the random number. You can send the length. That is, the user terminal 200 calculates a voucher from verification target data using a pre-stored secret key, transmits the data to the server, and generates a random number when transmitting a request for data retention certification, The generated random number is transmitted to the providing server 300.
  • the providing server 300 receives the random number, calculates the first evidence data from the pseudo random number generator and the stored data from the received random number, and calculates the calculated first
  • the evidence data is transmitted to the user terminal 200, the user terminal 200 receives the first evidence data, calculates the second evidence data from the random number and the voucher using the pseudo random number generator, and the first evidence data And the second evidence data are compared, and based on the comparison result, it is determined whether or not the providing server stores the verification target data.
  • the user terminal 200 When the user terminal 200 deposits the verification target data with the providing server, the user terminal 200 divides the verification target data into fixed-length blocks, calculates each block as a natural value, and calculates a remainder by a natural number Is stored as a voucher, and at the time of confirming the holding of the data to be verified, the random number or pseudo random number generator seed and the data identifier are transmitted to the providing server 300.
  • the providing server 300 generates the random number or pseudo random number.
  • the pseudo-random number generated by the received seed is divided into fixed lengths, data is acquired, divided into fixed lengths, the sum of products as natural numbers thereof is calculated, and transmitted to the user terminal 200 as evidence data Then, the user terminal 200 divides the pseudo random number generated by the random number or pseudo random number generator and the received seed into fixed lengths, and sums up the products of the stored vouchers. Remainder was calculated by a natural number that is compared with the remainder is received proof data, if it match may determine whether the providing server 300 has stored the verified data.
  • the user terminal 200 after transmitting the verification target data to the providing server 300, the user terminal 200 can confirm whether the providing server 300 has the verification target data without the verification target data. . Therefore, even when the verification target data has a huge size, the user terminal 200 has a certain communication amount (only data identifier and random number transmission and reception of evidence data Si), and the providing server 300 holds the verification target data. You can check whether
  • this service does not apply only to electronic document storage service providers. For example, it can be confirmed by the first embodiment that a local government or the like reliably stores a certain administrative document.
  • the notary office keeps the official documents at the request of the trustees, etc., but here again, the trustees etc. make a voucher of the official documents in advance to check whether the notary office holds the official documents Is possible.
  • Network 200 User terminal 201: Input unit 202: Output unit 203: Communication unit 210: Control unit 211: Overall processing unit 212: Natural number generation unit 213: Random number generation unit 214: Basic operation unit 220: Storage unit 300: Service Providing server 301: input unit 302: output unit 303: communication unit 310: control unit 311: overall processing unit 313: basic arithmetic unit 320: storage unit 400: computer 401: CPU (Central Processing Unit) 402: Memory 403: External storage device 404: Communication device 405: Output device 406: Input device 407: Reading device 408: Storage medium 409: Internal communication line A: Data holding confirmation method

Abstract

ユーザ端末は、自然数pとして予め記憶された秘密鍵を用いて検証対象データから証蹟を算出しておき、データ保持証明する要求を送信する際には、シードとしての乱数を生成し、生成した乱数を提供サーバへ送信し、提供サーバは、受信した乱数と保管している検証対象データから第1の証拠データを算出し、算出した第1の証拠データをユーザ端末へ送信し、ユーザ端末は、シードとしての乱数と証蹟から擬似乱数生成器を用いて第2の証拠データを算出し、受信した第1の証拠データの公開パラメータNによる剰余と第2の証拠データを比較した結果に基づいて、提供サーバが検証対象データを保管しているか否かを判定する。

Description

データ保持確認方法、装置
 本発明は、データ保持証明方法およびデータ保持証明装置の技術に関する。
 情報システムの開発の効率化、運用管理費の低減などを目的に、近年、情報システムを自分で保持せず、外部業者に委託するクラウドと呼ばれる運用管理形態が脚光を浴びている。このようなクラウドによる運用は、効率化やコスト低減というメリットを有する反面、情報システムを管理する業者が情報システムを利用する者とは異なるため、情報を外部業者に預託することに不安が生じる。そのため、事前にデータ損失の検知策として暗号技術を活用し、データの信頼性を確保する必要がある
 しかし、単純にデータ損失を検知する為にデータをダウンロードする方法では、通信量が膨大になるためにネットワーク負荷が高く、情報システム管理者に預託した全てのデータの確認ができなくなる。また、これは当初の目的であるコスト低減などに反しており、対策技術が求められる。
 このような対策技術のうち、サーバ/クライアントモデルにおいて、クライアントが、サーバにデータを預託しながら、サーバに対し、情報の保持確認処理を依頼できる暗号化方式が知られている。例えば、非特許文献1には、このようなデータ保持処理を実現する方式が記載されている。非特許文献1に記載の技術では、サーバ運営事業者がデータを保持しない場合、偽証が不可能であることが安全性証明と呼ばれる理論を用いて証明されている。このような安全な暗号化方式を用いることにより、クラウド業者などの不正を検知しながら、かつサーバに預託したデータの保持を安全に証明するための技術が開示されている。
Giuseppe Ateniese, Randal Burns, Reza Curtmola, Joseph Herring, Lea Kissner, Zachary Peterson, Dawn Song:Provable Data Possession at Untrusted Stores. Proceedings of 14th ACM Conference on Computer and Communications Security (CCS 2007).
 しかしながら、非特許文献1に記載された技術を、データ保持証明に用いる場合、データと同等の通信量が発生してしまい、ネットワークへの負荷が高い。
 また、上記のサーバ/クライアントモデルにおいて、クライアントが利用できる計算資源が限られている場合、例えば、省電力性が求められる携帯電話やスマートフォン等の携帯型モバイルPC、または、カード形状で利用される小型マイコンやRFIDなどをクライアントと想定したモデルでは、クライアントの計算量を極力抑える必要がある。しかしながら、非特許文献1に記載された技術を、データ保持証明に用いる場合、クライアントの計算量が大きくなってしまう。実際、管理サーバ(前述の例ではサーバ)にクライアントがデータ保持証明プロトコルの要求をした場合、サーバ・クライアントの計算量が膨大になる(1ギガバイトのファイルデータがOSのファイルフォーマット等に従い1キロバイト毎に管理する場合、サーバのデータ保持を証明するためには、クライアントは100万回の逆元べき乗算が必要となる)。
 このような背景に鑑みて本発明がなされたのであり、本発明は、サーバが管理するデータよりも少ない通信量で、また、クライアントおよびサーバの負担する計算量を小さくしながらサーバがデータ保有を証明することを目的とする。
 開示するデータ保持証明システムは、ユーザ端末と、検証対象データを保持することをユーザ端末に証明する提供サーバとを含む。ユーザ端末は、予め記憶された秘密鍵を用いて検証対象データから証蹟を算出し、データをサーバに送信し、データ保持証明する要求を送信する際には、乱数を生成し、生成した乱数を提供サーバへ送信し、提供サーバは、乱数を受信し、受信した乱数から擬似乱数生成器と保管しているデータから第1の証拠データを算出し、算出した第1の証拠データをユーザ端末へ送信し、ユーザ端末は、第1の証拠データを受信し、乱数と証蹟から擬似乱数生成器を用いて第2の証拠データを算出し、第1の証拠データと第2の証拠データを比較し、の比較結果に基づいて、提供サーバが検証対象データを保管しているか否かを判定する。
 本発明によれば、計算量と通信量を抑えつつ、サーバが正しくデータを保有していることを証明することが可能となる。
本実施形態に係るデータ保持証明システムの構成例を示す図である。 第一実施形態に係るユーザ端末の構成例を示す図である。 第一実施形態に係るサービス提供サーバの構成例を示す図である。 ユーザ端末、サービス提供サーバハードウェア構成例を示す図である。 第一実施形態に係る公開パラメータの登録処理の手順を示すフローチャートである。 第一実施形態に係る検証対象データの登録処理の手順を示すフローチャートである。 第一実施形態に係る検証対象データの保有証明処理の手順を示すフローチャートである。 第一実施形態に係る記憶部に格納されるデータ識別子と検証対象データを示す図である。
 次に、本発明を実施するための形態(「実施形態」という)について、適宜図面を参照しながら詳細に説明する。なお、実施形態において、同一の部材には原則として同一の符号を付け、繰り返しの説明は省略する。
 《システム構成》
  図1は、本実施形態に係るデータ保持確認システムの構成例を示す図である。
 データ保持確認システムは、ユーザ端末200と、サービス提供サーバ(提供サーバ)300とがネットワーク100を介して互いに接続された構成となっている。例えば、あるサービス提供形態では、提供サーバ300はクラウド事業者に設置され、クラウド事業者のサービスを利用するユーザが持つユーザ端末が携帯電話などである。
 《第一実施形態》
 次に、図2~図8を参照して、本発明に係る第一実施形態を説明する。
 (ユーザ端末)
 図2は、第一実施形態に係るユーザ端末200の構成例を示す機能概略図である。
図示するように、ユーザ端末200は、データを処理する制御部210と、データを記憶する記憶部220と、情報を入力する入力部201と、情報を出力する出力部202と、外部装置とのデータの送受信を行う通信部203とを備える。
 制御部210は、全体処理部211と、自然数生成部212と、乱数生成部213と、基本演算部214とを備える。
 全体処理部211は、ユーザ端末200における処理を統括制御したり、入力部201を介して、受け付けた情報を記憶部220に格納したり、提供サーバ300との情報の送受信を制御する。
 また、全体処理部211は、データを出力部202に表示する処理を行ったり、記憶部220に格納されているデータを読み込み、それぞれ、自然数生成部212に自然数を生成させたり、乱数生成部213に乱数データを生成させたり、基本演算部214にデータの演算処理を行わせたりし、通信データや、ユーザ端末200の検証対象データや、証蹟や、データ識別子や、一時情報を、通信部203を介して、提供サーバ300(図1)へ送信する。
 自然数生成部212にビット長(128, 256, 512, 1024, 2048など)を入力することにより、任意のビット長の自然数を生成できる。
 乱数生成部213は、秘密鍵などを用いて擬似乱数を生成する。このとき、秘密鍵のデータ値は、乱数生成部213によって、新しいデータ値に更新され、再び、全体処理部211により記憶部220に格納される。なお、乱数生成部213は、温度、時間、電力量などの物理現象や、乱数生成アルゴリズムを用いて乱数を生成・出力してもよい。また、乱数生成部213へビット長を入力することにより、任意のビット長の乱数が生成できる。
 基本演算部214は、加減算、乗算、剰余算などの基本的な算術演算に関する処理を行う。
 記憶部220には、通信データと、秘密鍵と、公開パラメータと、一時情報とが格納されている。
 通信データは、保持証明の対象となる検証対象データと、検証対象データの保持を検証するための証蹟と、検証対象データを特定する情報であるデータ識別子を含む。
 検証対象データは、提供サーバ300へ送信されるものであり、送信後は削除されるものである。なお、検証対象データを送信後も削除しなくてよいが、本実施形態では、削除される場合を扱う。
 証積は、検証対象データの保持を検証する際に用いられるデータである。
 データ識別子は、データ保持の対象となる検証対象データを指定する際に用いられるデータである。
 秘密鍵は、証蹟を生成する際に用いられるデータであり、ユーザ端末200の素数生成部212で生成されるものである。
 公開パラメータは、データ保持の検証に用いられるデータである。
 一時情報は、制御部210での処理で一時的に必要となる情報が格納される。
 (提供サーバ)
 図3は、第一実施形態に係る提供サーバ300の構成例を示す機能概略図である。
図示するように、提供サーバ300は、データを処理する制御部310と、データを記憶する記憶部320と、情報を入力する入力部301と、情報を出力する出力部302と、外部装置とのデータの送受信を行う通信部303とを備える。
 制御部310は、全体処理部311と、基本演算部313と、を備える。
 全体処理部311は、提供サーバ300における処理を統括制御したり、入力部301を介して、受け付けた情報を記憶部320に格納したり、ユーザ端末200との情報の送受信を制御する。
 また、全体処理部311は、データを出力部302に表示する処理を行ったり、記憶部320に格納されているデータを読み込み、通信部303を介して、ユーザ端末200(図2)へ送信する。
 基本演算部313は、加減算などの基本的な算術演算に関する処理を行う。
 記憶部320には、検証対象データと、データ識別子と、秘密鍵と、公開パラメータと、一時情報とが格納されている。
 検証対象データは、ユーザ端末200から送信されたものである。
 公開パラメータは、検証対象データから、一時的な情報を作成する際に用いられるデータである。
 一時情報は、制御部310での処理で一時的に必要となる情報が格納される。
 (ハードウェア構成)
 図5は、ユーザ端末200、サービス提供者サーバであるコンピュータのハードウェア構成を示す図である。
 コンピュータ(つまり、ユーザ端末200、サービス提供者サーバ)は、CPU(Central Processing Unit)401と、メモリ402と、HDD(Hard Disk D
rive)等の外部記憶装置403と、CD(Compact Disk)等のデータを読み取るCDD(Compact Disk Drive)などの読書装置407と、キーボードやマウス等の入力装置406と、ディスプレイ等の出力装置405と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置404を有する一般的なPC(Personal Computer)で実現される。
 図2~図4の各部210、211、212、213、214、310、311、313は、外部記憶装置403などに格納されているプログラムが、メモリに展開され、CPUによって実行されることにより具現化する。例えば、記憶部220、320は、CPU401がメモリ402または外部記憶装置403を利用することにより実現可能であり、制御部210、310に含まれる各処理部は、外部記憶装置403に記憶されている所定のプログラムをメモリ402にロードしてCPU401で実行することで実現可能であり、入力部201、301は、CPU501が入力装置506を利用することで実現可能であり、出力部202、302は、CPU501が出力装置505を利用することで実現可能であり、通信部203、303は、CPU401が通信装置404を利用することで実現可能である。
 《フローチャート》
 (公開パラメータの登録処理)
 図5は、第一実施形態に係る秘密鍵と公開パラメータの生成処理の手順を示すフローチャートである。この処理は、データの保有証明ができるよう、ユーザ端末200と提供サーバ300間で公開パラメータを共有する為に事前に行われる処理である。
 まず、入力部201を介して、秘密鍵と公開パラメータの設定情報がユーザ端末200に入力される(S501)。
 そして、自然数生成部212は、自然数pを生成し、秘密鍵として記憶部220に格納する(S502)。
 次に、公開パラメータとしてのデータブロック長tと、乱数を固定長に分割する際のデータ長sを記憶部220に記憶する(S503)。
 そして、全体処理部211は、公開パラメータt、sを通信データとして、提供サーバ300へ通信部203を介して、送信する(S504)。
 そして、通信部303を介して、提供サーバ300の全体処理部311は、通信データである公開パラメータtを受信し(S505)、記憶部320へ格納する(S506)。
 また、全体処理部311は、無事に公開パラメータを受信し記憶部320へ格納できたかの情報を登録結果としてまとめ、通信データとして、ユーザ端末200へ通信部303を介して、送信する(S507)。
 そして、通信部203を介して、ユーザ端末200の全体処理部211は、通信データである登録結果を受信し(S508)、無事に提供サーバ300が公開パラメータを登録できていれば終了し、登録できていなければS504へ戻り、再送信処理を行う。
 (検証対象データの登録処理)
 図6は、第一実施形態および第二実施形態に係る検証対象データの登録処理の手順を示すフローチャートである。ここでは、第一実施形態に係る検証対象データの保有証明処理の手順を説明する。この処理は、ユーザ端末200が、後から検証対象データの保有証明ができるように、検証対象データ毎に証蹟を作成してから、提供サーバ300に検証対象データを預ける処理である。
 まず、入力部201を介して、提供サーバ300へ登録する検証対象データMiがユーザ端末200へ指定され(S601)、登録する検証対象データを特定するデータ識別子iが生成され、記憶部220へ格納される(S602)。
 そして、基本演算部214は、検証対象データMiをデータブロック長tのブロックに分割する:Mi=||Mij、Mijは長さtビットのデータブロックである。
 そして基本演算部214は、秘密鍵pを読み出し、各データブロック各データブロックMijに対して、以下の式を満たすmijを算出し、記憶部220へ証蹟mijとして格納する(S603)。
 (数1)
 mij = Mij mod p
 なお、mod pはpで割った余りを求める計算であり、上式のmijは、データブロックMijをpで割った余りである。
 そして、全体処理部211は、データ識別子iと検証対象データMiを通信データとして、提供サーバ300へ通信部203を介して、送信する(S604)。
 そして、通信部303を介して、提供サーバ300の全体処理部311は、通信データである検証対象データMiを受信し(S605)、記憶部320へ格納する(S606)。
 なお、データ識別子iと検証対象データMiは、組として記憶部320へ格納される(図8)。
 また、全体処理部311は、無事に検証対象データを受信し記憶部320へ格納できたかの情報を登録結果としてまとめ、通信データとして、ユーザ端末200へ通信部303を介して、送信する(S607)。
 そして、通信部203を介して、ユーザ端末200の全体処理部211は、通信データである登録結果を受信し(S608)、無事に提供サーバ300が検証対象データを登録できていれば終了し、登録できていなければS604へ戻り、再送信処理を行う。
 なお、S501からS508で説明した、ユーザ端末200と提供サーバ300間で公開パラメータを共有する処理と、S601からS608で説明した検証対象データの登録処理との順番は順不同でかまわない。
 (検証対象データの保有証明処理)
 図7は、第一実施形態および第二実施形態に係る検証対象データの保有証明処理の手順を示すフローチャートである。ここでは、第一実施形態に係る検証対象データの保有証明処理の手順を説明する。この処理は、ユーザ端末200が先に作成した証蹟を用い、提供サーバ300に検証対象データを送信させることなく、検証対象データを保持しているかを検証する処理である。
 まず、入力部201を介して、提供サーバ300の保有を確認したい検証対象データMiのデータ識別子iをユーザ端末200へ指定する(S701)。
 そして、乱数生成部213は、乱数Rを生成し(S702)、全体処理部211は、データ識別子iと乱数Rを通信データとして、提供サーバ300へ通信部203を介して、送信する(S703)。
 そして、通信部303を介して、提供サーバ300の全体処理部311は、通信データである乱数Rとデータ識別子iを受信し、記憶部320へ格納する(S704)。
 全体処理部311は、データ識別子iを読み込み、保有を証明すべき検証対象データMiを特定する(S705)。
 そして、基本演算部313は、公開パラメータt、sと検証対象データMiを読み出し、Miをデータブロック長Tのデータブロックに分割する:Mi=||Mij
 また、基本演算部313は、乱数Rをデータ長sのブロックに分割する:R=||Rj
 そして、基本演算部313は以下の式によりSiを算出し、記憶部320へ証拠データSiとして格納する(S706)。
 (数2)
 Si = ΣRj*Mij
なお、Σはjに関する和、*乗算をあらわす。
 そして、全体処理部311は、証拠データSiを通信データとして、ユーザ端末200へ通信部303を介して、送信する(S707)。
 そして、通信部203を介して、ユーザ端末200の全体処理部211は、通信データである証拠データSiを受信する(S708)。
 そして、基本演算部214は、公開パラメータNと証蹟mijを読み出し、また乱数Rをデータ長sのブロックに分割する:R=||Rj
 そして、基本演算部214は、以下の式を満たすsiを算出し、証拠データとして記憶部220へ格納する(S709)。
 (数3)
 si = ΣRj*mij mod N
 そして、基本演算部214は、受信した証拠データSiから以下のSi’を計算する
 (数4)
 Si’ = Si mod N
 そして、基本演算部214は、証拠データsiと証拠データSi’を比較し、等しければ、提供サーバ300が被検証データMiをもっているとみなし、異なれば、被検証Miを持っていないとみなす(S710)。
 これは、剰余算が、先に乗算や加算をしたものに対して剰余をとったものと、剰余をとって乗算や加算をしたものが同じ剰余になることを利用している。
 なお、上記の処理手順S501~S508、S601~S608、S701~S710は、一例であり、本質的に上記の処理と同一であれば、処理手順を変更して実施してもかまわない。
 第一の実施形態では乱数Rを直接送信したが、通信量を削減するために、擬似乱数生成器を公開パラメータとし、乱数の代わりに、擬似乱数生成器のシードrと出力する擬似乱数のデータ長を送信してもかまわない。 すなわち、ユーザ端末200は、予め記憶された秘密鍵を用いて検証対象データから証蹟を算出し、データをサーバに送信し、データ保持証明する要求を送信する際には、乱数を生成し、生成した乱数を提供サーバ300へ送信し、提供サーバ300は、乱数を受信し、受信した乱数から擬似乱数生成器と保管しているデータから第1の証拠データを算出し、算出した第1の証拠データをユーザ端末200へ送信し、ユーザ端末200は、第1の証拠データを受信し、乱数と証蹟から擬似乱数生成器を用いて第2の証拠データを算出し、第1の証拠データと第2の証拠データを比較し、の比較結果に基づいて、提供サーバが検証対象データを保管しているか否かを判定する。
 また、ユーザ端末200は、検証対象データを提供サーバに預託する際には、検証対象データを固定長のブロックに分割し、それぞれのブロックを自然数値にして算出し、自然数による剰余を計算したものを証蹟として記憶し、検証対象データの保持確認の際には、乱数、または擬似乱数生成器のシードと、データの識別子を提供サーバ300に送信し、提供サーバ300は、乱数又は擬似乱数生成器と、受信したシードにより生成した擬似乱数を固定長に分割し、データを取得して、固定長に分割し、それらの自然数としての積の総和を計算し、証拠データとしてユーザ端末200に送信し、ユーザ端末200は、乱数又は擬似乱数生成器と、受信したシードにより生成した擬似乱数を固定長に分割し、記憶していた証蹟との積の総和である自然数による剰余を計算し、受信した証拠データである剰余とを比較し、一致していた場合には提供サーバ300が検証対象データを保管しているか否かを判定しても良い。
 (第一実施形態のまとめ)
  第一実施形態によれば、ユーザ端末200は、提供サーバ300に検証対象データを送信した後は、検証対象データなしで、提供サーバ300が検証対象データを保有しているかを確認することができる。従って、検証対象データが膨大なサイズである場合にも、ユーザ端末200は一定の通信量(データ識別子と乱数の送信と、証拠データSiの受信のみ)で、提供サーバ300が検証対象データを保有しているかを確認できる。
 (第一実施形態の適用対象)
  第一実施形態によれば、電子文書(データ)を預かるサービスを提供する、電子文書保管サービス事業者が、確かに電子文書を紛失していないことをユーザは確認できる。即ち、事業者に預ける電子文書を検証対象データM=||Miとみなし、この証蹟m1、m2、…をユーザが事前に作成することにより、ユーザは電子文書が事業者に管理されていることを第一実施形態により確認できる。
 また、本サービスは電子文書保管サービス事業者だけを適用対象とするものではない。例えば、自治体などが、ある行政文書を確かに保管していることを、第一実施形態により確認できる。
 また、自治体では、保管期間が満了したもののうち、保管価値のある行政文書は公文書館などへ移管することがある。従って、公文書館での保管状況についても同様に確認可能である。
 また、公証役場における電子公証サービスにも適用可能である。即ち、嘱託人等の依頼によって公証役場は公文書の保管を行うが、ここでも、嘱託人等が予め公文書の証蹟を作成することにより、公証役場が公文書を保持しているかを確認可能である。
100:ネットワーク
200:ユーザ端末
201:入力部
202:出力部
203:通信部
210:制御部
211:全体処理部
212:自然数生成部
213:乱数生成部
214:基本演算部
220:記憶部
300:サービス提供サーバ
301:入力部
302:出力部
303:通信部
310:制御部
311:全体処理部
313:基本演算部
320:記憶部
400:コンピュータ
401:CPU(Central Processing Unit)
402:メモリ
403:外部記憶装置
404:通信装置
405:出力装置
406:入力装置
407:読書装置
408:記憶媒体
409:内部通信線
A:データ保持確認方法

Claims (4)

  1.  ユーザ端末と、検証対象データを保持することをユーザ端末に証明する提供サーバとを含むデータ保持証明システムであって、
     前記ユーザ端末は、
     予め記憶された秘密鍵を用いて前記検証対象データから証蹟を算出し、データをサーバに送信し、データ保持証明する要求を送信する際には、乱数を生成し、生成した前記乱数を前記提供サーバへ送信し、
     前記提供サーバは、
     前記乱数を受信し、受信した前記乱数から擬似乱数生成器と保管しているデータから第1の証拠データを算出し、算出した前記第1の証拠データを前記ユーザ端末へ送信し、
     前記ユーザ端末は、
     前記第1の証拠データを受信し、前記乱数と前記証蹟から擬似乱数生成器を用いて第2の証拠データを算出し、前記第1の証拠データと前記第2の証拠データを比較し、前記の比較結果に基づいて、前記提供サーバが前記検証対象データを保管しているか否かを判定する
     ことを特徴とするデータ保持証明システム。
  2.  請求項1に記載のデータ保持証明システムであって、
     前記ユーザ端末は、
     前記検証対象データを提供サーバに預託する際には、前記検証対象データを固定長のブロックに分割し、それぞれの前記ブロックを自然数値にして算出し、自然数による剰余を計算したものを証蹟として記憶し、
     検証対象データの保持確認の際には、前記乱数、または擬似乱数生成器のシードと、前記データの識別子を前記提供サーバに送信し、
     前記提供サーバは、
     前記乱数又は前記擬似乱数生成器と、受信した前記シードにより生成した擬似乱数を固定長に分割し、前記データを取得して、固定長に分割し、それらの自然数としての積の総和を計算し、証拠データとして前記ユーザ端末に送信し、
     前記ユーザ端末は、
    前記乱数又は前記擬似乱数生成器と、受信した前記シードにより生成した擬似乱数を固定長に分割し、記憶していた前記証蹟との積の総和である前記自然数による剰余を計算し、受信した証拠データである前記剰余とを比較し、一致していた場合には前記提供サーバが前記検証対象データを保管しているか否かを判定する
     ことを特徴とするデータ保持証明システム。
  3.  ユーザ端末と、検証対象データを保持することをユーザ端末に証明する提供サーバとにおけるデータ保持証明方法であって、
     前記ユーザ端末は、
     予め記憶された秘密鍵を用いて前記検証対象データから証蹟を算出し、データをサーバに送信し、データ保持証明する要求を送信する際には、乱数を生成し、生成した前記乱数を前記提供サーバへ送信し、
     前記提供サーバは、
     前記乱数を受信し、受信した前記乱数から擬似乱数生成器と保管しているデータから第1の証拠データを算出し、算出した前記第1の証拠データを前記ユーザ端末へ送信し、
     前記ユーザ端末は、
     前記第1の証拠データを受信し、前記乱数と前記証蹟から擬似乱数生成器を用いて第2の証拠データを算出し、前記第1の証拠データと前記第2の証拠データを比較し、前記の比較結果に基づいて、前記提供サーバが前記検証対象データを保管しているか否かを判定する
     ことを特徴とするデータ保持証明方法。
  4.  請求項3に記載のデータ保持証明方法であって、
     前記ユーザ端末は、
     前記検証対象データを提供サーバに預託する際には、前記検証対象データを固定長のブロックに分割し、それぞれの前記ブロックを自然数値にして算出し、自然数による剰余を計算したものを証蹟として記憶し、
     検証対象データの保持確認の際には、前記乱数、または擬似乱数生成器のシードと、前記データの識別子を前記提供サーバに送信し、
     前記提供サーバは、
     前記乱数又は前記擬似乱数生成器と、受信した前記シードにより生成した擬似乱数を固定長に分割し、前記データを取得して、固定長に分割し、それらの自然数としての積の総和を計算し、証拠データとして前記ユーザ端末に送信し、
     前記ユーザ端末は、
    前記乱数又は前記擬似乱数生成器と、受信した前記シードにより生成した擬似乱数を固定長に分割し、記憶していた前記証蹟との積の総和である前記自然数による剰余を計算し、受信した証拠データである前記剰余とを比較し、一致していた場合には前記提供サーバが前記検証対象データを保管しているか否かを判定する
     ことを特徴とするデータ保持証明方法。
PCT/JP2014/072669 2014-08-29 2014-08-29 データ保持確認方法、装置 WO2016031033A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/072669 WO2016031033A1 (ja) 2014-08-29 2014-08-29 データ保持確認方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/072669 WO2016031033A1 (ja) 2014-08-29 2014-08-29 データ保持確認方法、装置

Publications (1)

Publication Number Publication Date
WO2016031033A1 true WO2016031033A1 (ja) 2016-03-03

Family

ID=55398969

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/072669 WO2016031033A1 (ja) 2014-08-29 2014-08-29 データ保持確認方法、装置

Country Status (1)

Country Link
WO (1) WO2016031033A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010070787A1 (ja) * 2008-12-18 2010-06-24 株式会社日立製作所 生体認証システムおよびその方法
WO2014068734A1 (ja) * 2012-10-31 2014-05-08 株式会社日立製作所 データ保持検証システム及び方法
JP2014146951A (ja) * 2013-01-29 2014-08-14 Kddi Corp 暗号化状態確認システム、暗号化状態確認方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010070787A1 (ja) * 2008-12-18 2010-06-24 株式会社日立製作所 生体認証システムおよびその方法
WO2014068734A1 (ja) * 2012-10-31 2014-05-08 株式会社日立製作所 データ保持検証システム及び方法
JP2014146951A (ja) * 2013-01-29 2014-08-14 Kddi Corp 暗号化状態確認システム、暗号化状態確認方法およびプログラム

Similar Documents

Publication Publication Date Title
KR102467596B1 (ko) 블록 체인 구현 방법 및 시스템
TWI760149B (zh) 決定用於資訊的安全交換的共同私密,及階層化的決定性加密金鑰
KR101999188B1 (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
Yang et al. Provable data possession of resource-constrained mobile devices in cloud computing
CN109889497B (zh) 一种去信任的数据完整性验证方法
US11184168B2 (en) Method for storing data on a storage entity
JP2018534629A (ja) ブールゲートのないマルチパーティ計算を用いて鍵付きハッシュメッセージ認証コード(hmac)を実行する方法
CN111125781B (zh) 一种文件签名方法、装置和文件签名验证方法、装置
Albeshri et al. Enhanced geoproof: improved geographic assurance for data in the cloud
Singh et al. Optimized public auditing and data dynamics for data storage security in cloud computing
Wu et al. Blockchain-based data audit mechanism for integrity over big data environments
CN106209365A (zh) 云环境下利用备份数据在用户撤销时重签名的方法
CN114785524A (zh) 电子印章生成方法、装置、设备和介质
Hussien et al. Public auditing for secure data storage in cloud through a third party auditor using modern ciphertext
Nayak et al. Privacy preserving provable data possession for cloud based electronic health record system
Kumar et al. Analysis and design of an optimized secure auditing protocol for storing data dynamically in cloud computing
JP5669204B2 (ja) 分散情報管理システム、分散情報管理方法、および分散情報管理プログラム
CN112184441A (zh) 数据处理方法、装置、节点设备及存储介质
KR101593675B1 (ko) 사용자 데이터의 무결성 검증 방법 및 그 장치
Gohel et al. A new data integrity checking protocol with public verifiability in cloud storage
WO2016031033A1 (ja) データ保持確認方法、装置
Pramudita et al. Development of IoT authentication mechanisms for microgrid applications
Ganorkar et al. An information security scheme for cloud based environment using 3DES encryption algorithm
CN108566277B (zh) 云存储中基于数据存储位置的删除数据副本方法
Abbdal et al. Secure third party auditor for ensuring data integrity in cloud storage

Legal Events

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

Ref document number: 14900887

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP