The present invention relates to a data possession verification system and method. The data possession verification system and method are, for example, appropriate and suitable for a cloud system for providing a cloud service.
Recently, a user does not own a server and a storage device for purposes of efficient information system development and reduction in operations management cost, and an operation management form, called a cloud, for outsourcing data possession to an external operator is focused. Advantages such as efficient development and cost reduction are obtained by using the cloud service. On the other hand, an operator managing a server and a storage device is not a user of the server and the storage device, and therefore the user is concerned about depositing confidential information to an external operator. Therefore, data reliability needs to be ensured by utilizing an encryption technique as a detection measure of data loss.
However, in a method, in which data loss is simply detected by downloading the data, a network load is increased since a communication amount significantly increases, and therefore all of data deposited to the information system administrator cannot be validated. Also, this is against the initial purpose such as cost reduction, and a countermeasure technique is required.
In such countermeasure techniques, in a server/client model, an encryption method is known in which a client can request a process for validating information possession from a server while depositing data to the server. For example, a method for realizing the data possession validation process is described in NPL 1. It is certified by using a theory called a security proof in a technique described in NPL 1 that false evidence is not possible in the case where a server operator does not possess data. NPL 1 discloses a technique to safely certify data possession deposited to a server while detecting an unauthorized process of such as a cloud operator by using such a safe encryption method.
In the case where the technique described in NPL 1 is used for data possession verification described above, not only a server, but a client is required to have an enormous calculation amount (such as n times modular exponentiations) to conclusively verify data possession in a storage device with 100% accuracy.
For example, a model assuming that a client is a portable mobile PC such as a cell phone and a smartphone requiring power saving or a card like small-sized microcomputer and RFID need to reduce a calculation amount of the client as much as possible. However, in the technique described in NPL 1, in the case where a client requests data possession verification protocol from a management server (a server in the above-described example), a calculation amount of a server/client actually becomes enormous. For example, in the case where file data of 1 giga byte is administered for each 1 kilo byte in accordance with such as a file format of an operating system (OS), a client needs to perform an inverse calculation or a modular exponentiation, known that a calculation load thereof is high, more than 100 million times to conclusively verify data possession of a server with 100% accuracy.
The above-described issue is considered in the present invention, and an object of the present invention is to propose a data possession verification system and method which can verify with a small communication amount or a small calculation amount whether a server device possesses verification target data deposited to the server device by a user terminal.
According to the present invention, to solve the issue, in a data possession verification system configured to verify whether a server device possesses verification target data deposited to the server device by a user terminal, predetermined verification information is transmitted from the user terminal to the server device, and the server device calculates server side evidence data, which is specific to the verification target data and has a smaller data size than that of the verification target data, by using the possessed verification target data and the verification information, and transmits the calculated server side evidence data to the user terminal, and the user terminal compares user terminal side evidence data based on the verification information and the server side evidence data transmitted from the server device, and determines based on a result of the comparison whether the server device possesses the verification target data.
In the present invention, a data possession verification method for verifying whether a server device possesses verification target data deposited to the server device by a user terminal includes a first step in which the user terminal transmits predetermined verification information to the server device, and the server device calculates server side evidence data, which is specific to the verification target data and has a smaller data size than that of the verification target data, by using the possessed verification target data and the verification information, and transmits the calculated server side evidence data to the user terminal, and a second step in which the user terminal compares user terminal side evidence data based on the verification information and the server side evidence data transmitted from the server device, and determines based on a result of the comparison whether the server device possesses the verification target data.
By the data possession verification system and method according to the present invention, a data possession verification system and method which can verify with a small communication amount or a small calculation amount whether a server device possesses verification target data deposited to the server device by a user terminal can be realized.
An embodiment of the present invention will be described below with reference to drawings.
In
The user terminal 2 and the service providing server 3 include, as illustrated in
The CPU is a processor responsible for operation control of an overall device (the user terminal 2 or the service providing server 3). The memory 12 is used for storing each program and also used as a work memory of the CPU 11. The external storage device 13 includes, for example, a nonvolatile mass storage device of such as a hard disk device, and programs and data are stored in the external storage device 13. A program stored in the external storage device 13 is expanded to the memory 12. When the CPU 11 executes the program, the user terminal 2 or the service providing server 3 wholly performs each processing to be described later.
The reading and writing device 14 includes a memory reader/writer corresponding a storage medium 18 such as a secure digital (SD) card, a micro SD card, and a micro secure digital high capacity (SDHC) card, or a disc device corresponding to the storage medium 18 such as a compact disc (CD) or a digital versatile disc (DVD).
The communication device 15 is an interface for connecting the user terminal 2 or the service providing server 3 to the network 4 (
The control unit 20 is a functional block for performing each process to be described later and includes an overall processing unit 30, a random number generation unit 31, a prime number generation unit 32, and a basic operation unit 33. The overall processing unit 30, the random number generation unit 31, the prime number generation unit 32, and the basic operation unit 33 are embodied by executing corresponding programs expanded to the memory 12 (
The overall processing unit 30 is a function to integratedly control processes in the user terminal 2, and performs each process such as a control process responding to an instruction from a user, which has been input via the input unit 22, an image output to the output unit 23, and communication with the service providing server 3 via the communication unit 24.
The random number generation unit 31 is a function to generate a dummy random number with an arbitrary bit length (for example, 512 bit, 1024 bit, or 2048 bit) preliminary specified by using such as a secret key. In this case, a data value of the secret key is updated to a new data value by the random number generation unit 31. The random number generation unit 31 may generate a random number by using a physical phenomenon such as a temperature, a time, and a power amount and a random number generation algorithm.
The prime number generation unit 32 is a function to request generation of a dummy random number from the random number generation unit 31 and generate a prime number with an arbitrary bit length (for example 512 bit, 1024 bit, or 2048 bit) preliminary set through a test to determine whether the generated dummy random number is a prime number. As an algorithm of a prime number in the prime number generation unit 32, a normal prime number generation algorithm can be applied.
The basic operation unit 33 is a function to perform processes regarding basic arithmetic operations such as an addition, a subtraction, and a comparison operation.
The storage unit 21 includes the memory 12, the external storage device 13, and the storage medium 18, which have been described above regarding
The communication data 34 includes verification target data 40, trace data 41, and a data identifier 42. The verification target data 40 is user data deposited to the service providing server 3. In the case of the embodiment, this verification target data 40 is deleted after being transmitted to the service providing server 3, but not necessarily deleted.
The trace data 41 is data used for verifying whether the service providing server 3 possesses the verification target data 40, and calculated by using the verification target data 40. A specific method for calculating the trace data 41 will be described later. The data identifier 42 is an identifier specific to the verification target data 40 generated when the verification target data 40 is registered to the service providing server 3. The data identifier 42 is used when the verification target data 40 requested to the service providing server 3 is specified.
The secret key 35 is an encryption key used when the trace data 41 is generated, and the secret key 35 is generated in the prime number generation unit 32 in the user terminal 2. The public parameter 36 is an encryption key used to verify whether the service providing server 3 possesses the verification target data 40. The temporary information 37 is data temporarily needed in a process performed by the control unit 20.
The input unit 22 is a function used when a user controls the user terminal 2 and includes the input device 16 (
The control unit 50 is a functional block for performing each process to be described later and includes an overall processing unit 60 and a basic operation unit 61. The overall processing unit 60 and the basic operation unit 61 are embodied by executing corresponding programs expanded to the memory 12 (
The overall processing unit 60 is a function to integratedly control processes in the service providing server 3, and performs each process such as a control process responding to an instruction from a user, which has been input via the input unit 52, an image output to the output unit 53, and communication with the user terminal 2 via the communication unit 54. Also the basic operation unit 61 is a function to perform processes regarding basic arithmetic operations such as an addition, a subtraction, and a comparison operation.
The storage unit 51 includes the memory 12, the external storage device 13, and the storage medium 18, which have been described above regarding
The verification target data 40 is user data deposited from the user terminal 2. The data identifier 42 is an identifier specific to the verification target data 40 transmitted from the user terminal 2 with the verification target data 40. Also, the public parameter 36 is an encryption key used to verify whether the service providing server 3 possesses the verification target data 40, and preliminarily registered by the user terminal 2. The temporary information 62 is information temporarily required in a process performed by the control unit 50.
The input unit 52 is a function used when a user controls the service providing server 3, and includes the input device 16 (
A data possession verification method in the cloud system 1 will be described next with reference to
(1-2-1) Public Parameter Registration Process
The public parameter registration process is started by inputting setting information on the secret key 35 and the public parameter 36 by operating the input unit 22 of user's user terminal 2 by the user and inputting a registration instruction of the public parameter 36 to the service providing server 3 (hereinafter called a public parameter registration instruction).
Practically, the overall processing unit 30 (
Next, the overall processing unit 30 reads out two secret keys p and q stored in the storage unit 21 in step SP1 and provides the basic operation unit 33 with the read two secret keys p and q and an instruction for calculating a product of the two secret keys p and q. In this manner, the basic operation unit 33 calculates a product of the two secret keys p and q in accordance with the instruction (SP3).
Next, the overall processing unit 30 stores the product of the two secret keys p and q calculated by the basic operation unit 33 in the storage unit 21 as the public parameter 36, and transmits the public parameter 36 to the service providing server 3 via the communication unit 24 (
On the other hand, the overall processing unit 60 (
The overall processing unit 30 in the user terminal 2 receives the registration process result via the communication unit 24 (SP8) and determines based on the registration process result whether the public parameter 36 has been successfully registered to the service providing server 3 (SP9). The overall processing unit 30 performs a retransmission process for the public parameter 36 in the case where the overall processing unit 30 has determined that the registration of the public parameter 36 has been failed (SP4). In the case where the overall processing unit 30 has determined that the public parameter 36 has been successfully registered, the overall processing unit 30 finishes the public parameter registration process.
(1-2-2) Verification Target Data Registration Process
The verification target data registration process is started by specifying requested verification target data 40 among the verification target data 40 stored in the storage unit 21 of the user terminal 2 by operating the input unit 22 of user's user terminal 2 by the user, and inputting a registration instruction of the verification target data 40 to the service providing server 3 (hereinafter called a verification target data registration instruction).
Practically, after the verification target data registration instruction is input via the input unit 22 (SP20), the overall processing unit 30 (
Then, the overall processing unit 30 provides the basic operation unit 33 with an instruction for generating the trace data 41 of the verification target data 40 by using the two secret keys p and q stored in the storage unit 21 in step SP2 in the public parameter registration process (
[Mathematical Formula 1]
mi=Mi mod(p−1)(q−1) (1)
Incidentally, “mod” is an operator for calculating a remainder after division. Therefore, the formula (1) represents that a remainder after dividing the verification target data 40 by products (p−1) (q−1) of a value obtained by subtracting “1” from one of the secret key p and a value obtained by subtracting “1” from another secret key q is calculated as the trace data 41.
Then, the overall processing unit 30 transmits, to the service providing server 3 via the communication unit 24, the verification target data 40 specified in the verification target data registration instruction and the data identifier 42 of the verification target data 40 generated in step SP21 (SP23).
On the other hand, when the overall processing unit 60 (
The overall processing unit 30 in the user terminal 2 receives the registration process result via the communication unit 24 and determines based on the registration process result whether the verification target data 40 and the data identifier 42 are successfully registered to the service providing server 3 (SP27). In the case where the overall processing unit 30 determines that the registration of the verification target data 40 and the data identifier 42 has been failed, a retransmission process of the verification target data 40 and the data identifier 42 is performed (SP23). In the case where the overall processing unit 30 has determined that the verification target data 40 and the data identifier 42 have been successfully registered, the overall processing unit 30 finishes the verification target data registration process.
(1-2-3) Verification Target Data Possession Verification Process
The verification target data possession verification process is started by operating the input unit 22 of user's user terminal 2 by the user, specifying the data identifier 42 (
Practically, the overall processing unit 30 in the user terminal 2 first provides the random number generation unit 31 (
On the other hand, the overall processing unit 60 in the service providing server 3 receives the random number and the data identifier 42 (
Subsequently, the overall processing unit 60 provides the basic operation unit 61 (
In this manner, the basic operation unit 61, in accordance with the instruction, denotes the random number received in step SP33 as R, the verification target data specified in step SP34 as Mi, the public parameter stored in the storage unit 51 in step SP6 in the public parameter registration process as N, calculates the server side evidence data Si satisfying the following formula, and stores the calculated server side evidence data Si in the storage unit 51 (SP35).
[Mathematical Formula 2]
Si=R
Mi mod N (2)
As described above, “mod” is an operator for calculating a remainder after division. Therefore, the formula (2) represents that a remainder after dividing the Mi-th power of the random number R by the public parameter 36 is calculated as the server side evidence data Si.
Then, the overall processing unit 60 transmits the above-described server side evidence data Si stored in the storage unit 51 to the user terminal 2 via the communication unit 54 (SP36).
On the other hand, after the overall processing unit 30 in the user terminal 2 receives the server side evidence data Si via the communication unit 24 (SP37), the overall processing unit 30 provides the basic operation unit 33 with an instruction for generating evidence data on the user terminal 2 side (herein after called a user terminal side evidence data) by using the random number generated by the random number generation unit 31 in step SP31, the public parameter 36 generated by the basic operation unit 33 in step SP6 in the public parameter registration process, and the trace data 41 generated by the basic operation unit 33 in step SP22 in the verification target data registration process (
In this manner, in accordance with the instruction, the basic operation unit 33 denotes the above random number as R, the above public parameter as N, and the above trace data as mi, calculates user terminal side evidence data Ti satisfying the following formula, and stores the calculated user terminal side evidence data Ti in the storage unit 21 (SP38).
[Mathematical Formula 3]
Ti=R
Mi mod N (3)
Then, the basic operation unit 33 determines whether the service providing server 3 possesses the verification target data 40 targeted at the time by comparing the server side evidence data Si received in step SP37 and the user terminal side evidence data Ti calculated in step SP38.
Specifically, the basic operation unit 33 determines whether the server side evidence data Si and the user terminal side evidence data Ti are equal by using that the following formula is established by setting k as an arbitrary integer according to Fermat's little theorem:
[Mathematical Formula 4]
R
mi nod N=Rmi+k(p−1)(q−1)mod N=RMi mod N (4)
In the case where the basic operation unit 33 has obtained, by the determination, a determination result process that the server side evidence data Si and the user terminal side evidence data Ti have been equal, the basic operation unit 33 determines that the service providing server 3 possesses the verification target data 40 targeted at the time. In the case where the basic operation unit 33 has obtained a determination result that the server side evidence data Si and the user terminal side evidence data Ti have not been equal (different), the basic operation unit 33 determines that the service providing server 3 does not possess the verification target data 40 (SP39).
The overall processing unit 30 displays the determination result of the basic operation unit 33 on the output unit 23 (SP40), then finishes the verification target data possession verification process.
As described above, the cloud system 1 according to the embodiment can verify whether the service providing server 3 stores the verification target data 40 on the user terminal 2 side, without transmitting the verification target data 40 (
Also, in the cloud system 1 according to the embodiment, calculations by the formulae (2) and (3) are only needed in the service providing server 3 and the user terminal 2 to verify whether the service providing server 3 stores the verification target data 40, and the cloud system can verify by very simple calculations whether the service providing server 3 possesses the verification target data 40.
In this manner, the data possession verification method according to the embodiment can verify with a small communication amount or a small calculation amount whether the service providing server 3 possesses the verification target data 40 deposited to the service providing server 3 by the user terminal 2.
In the data possession verification method according to the first embodiment, for example, a user can validate that an electronic document storage service provider providing a service for storing an electronic document (data) does not lose an electronic document deposited by the user. Specifically, by setting an electronic document deposited to the electronic document storage service provider as the verification target data 40 and preliminary preparing the trace data 41 of the verification target data 40 by a user, the user can validate that the electronic document is stored in the electronic document storage service provider.
Also, the data possession verification method according to the embodiment is not applied only to an electronic document storage service provider. For example, the method can be applied to a process that a local government validates that an administrative document is certainly stored as well.
Furthermore, the local government sometimes transfers, to a public archives office, an administrative document worthwhile storing after expiry of the storage period thereof. Therefore, the data possession verification method according to the embodiment can be applied for validating a storage state in the public archives office.
The data possession verification method according to the embodiment can be also applied to an electronic authentication service in a notary public office. Specifically, the notary public office stores an official document by request from such as a commissioned person. Therefore, the notary public office can validate possession of the official document by preliminary preparing trace data of the official document by such as the commissioned person.
The data possession verification method according to the above-described first embodiment can unlimitedly verify whether the service providing server 3 possesses the verification target data 40. However, a modular operation is needed in the user terminal 2 and the service providing server 3, and a heavy load is applied to the user terminal 2 or the service providing server 3 having low calculation capability.
In the embodiment, the data possession verification method will be described in which the verification whether the service providing server 3 possesses verification target data can be performed with a small calculation amount although the frequency to verify whether the service providing server 3 possesses verification target data is limited.
In
The one-way function 81 is a function to embody a corresponding program, in which the CPU 11 (
A data possession verification method according to the embodiment is realized by a secret key registration process for preliminarily registering multiple secret keys to the service providing server 72, a verification target data registration process for depositing the verification target data 40 to the service providing server 72, and then a verification target data possession verification process for verifying that the verification target data 40 is possessed in the service providing server 72. The public parameter registration process, the verification target data registration process, and the verification target data possession verification process will be described below.
(2-2-1) Secret Key Registration Process
The secret key registration process is started by inputting secret key setting information and a quantity of secret keys to be prepared by operating an input unit 22 of user's user terminal 71 by the user and inputting a registration instruction of the secret key to the service providing server 72 (hereinafter called a secret key registration instruction).
Practically, after the secret key registration instruction is input via the input unit 22, the overall processing unit 82 (
(2-2-2) Verification Target Data Registration Process
The verification target data registration process in the data possession verification method according to the embodiment is similar to the verification target data registration process according to the first embodiment described above regarding
Practical in the case of the data possession verification method, in step SP22 in the verification target data registration process, the overall processing unit 82 (
The calculated trace data 41 is stored in the storage unit 21.
[Mathematical Formula 5]
mi=Func(Mi∥kj) (5)
“Func” is an operator denoting a unidirectional function, and “II” is an operator denoting a coupling value of adjacent values. Specifically, “Mi∥kj” represents data in which a value of “Mi” is an upper value and a value of “kj” is a lower value. Therefore, the formula 5 represents that an output value of the unidirectional function Func, in which a coupling value of a value of the verification target data 40 and a value of the secret key kj is an input, is calculated as the trace data 41.
In the case of the data possession verification method, process contents other than the above in the verification target data registration process are similar to the process contents in the verification target data registration process according to the first embodiment described above regarding
(2-2-3) Verification Target Data Possession Verification Process
The verification target data possession verification process is started by operating the input unit 22 of user's user terminal 71 by the user, specifying a data identifier 42 of the verification target data 40 requested by the user, and inputting an instruction for verifying whether the corresponding verification target data 40 is possessed in the service providing server 72 (hereinafter called a verification target data possession verification instruction).
Practically, when the verification target data possession verification instruction specifying the data identifier 42 of the verification target data 40 is input via the input unit 22 (SP50), the overall processing unit 82 (
On the other hand, the overall processing unit 92 (
Subsequently, the overall processing unit 92 provides the one-way function 91 with an instruction for generating evidence data (hereinafter called server side evidence data) on the service providing server 72 side of the verification target data 40 by using the secret key 83 received in step SP52 and the verification target data 40 specified in step SP53. In this manner, the one-way function 91, in accordance with the instruction, denotes the secret key 83 received in step SP52 as kj and the verification target data 40 specified in step SP53 as Mi, calculates the server side evidence data Si satisfying the following formula, and stores the calculated server side evidence data Si in the storage unit 51 (SP54).
[Mathematical Formula 6]
Si=Func(Mi∥kj) (6)
Then, the overall processing unit 92 transmits the above-described server side evidence data Si stored in the storage unit 51 to the user terminal 71 via the communication unit 54 (SP55).
On the other hand, the overall processing unit 82 (
In the case where the server side evidence data Si and the user terminal side evidence data Ti are equal, the basic operation unit 33 determines that the service providing server 72 possesses the verification target data 40 targeted at the time. In the case where the server side evidence data Si and the user terminal side evidence data Ti are not equal (different), the basic operation unit 33 determines that the service providing server 72 does not possess the verification target data 40 (SP57).
The overall processing unit 82 displays a determination result of the basic operation unit 33 on the output unit 23 (SP58), then finishes the verification target data possession verification process.
As described above, the cloud system 70 according to the embodiment can verify on the user terminal 71 side whether the service providing server 3 possesses the verification target data 40, without transmitting the verification target data 40 (
Also, in the cloud system 70 according to the embodiment, calculations by the formulae (5) and (6) are only needed in the user terminal 71 and the service providing server 72 to verify whether the service providing server 72 possesses the verification target data 40, and the cloud system 70 can verify by very simple calculations weather the service providing server 72 possesses the verification target data 40.
In this manner, according to the data possession verification method according to the embodiment, the verification whether the service providing server 72 possesses the verification target data 40 deposited to the service providing server 72 by the user terminal 71 can be performed with a small communication amount or a small calculation amount.
The data possession verification method according to the embodiment significantly differs from the data possession verification method according to the first embodiment in the point that the user terminal 71 transmits the secret key 83, instead of a random number, when the service providing server 72 generates the server side evidence data Si.
In this case, as with basically transmitting different random number each time in the data possession verification method according to the first embodiment, the user terminal 71 needs to transmit the secret key 83, of which value is different each time, to the service providing server 72 in the data possession verification method according to the second embodiment. Otherwise, even if the service providing server 72 does not possess the verification target data 40, by reusing the server side evidence data Si, the service providing server 72 can falsely report to the user terminal 71 that the service providing server 72 possesses the verification target data 40. Therefore, in the data possession verification method according to the second embodiment, the verification whether the service providing server 72 possesses the verification target data 40 can be performed for the times corresponding to the number of the secret keys 83 generated in the secret key registration process.
In the verification target data possession verification method according to the first embodiment and the verification target data possession verification method according to the second embodiment, to verify whether the service providing servers 3, 72 possess the verification target data 40, the user terminals 2, 71 need to possess the trace data 41 for each verification target data 40. Therefore, the trace data 41 need to be shared among multiple user terminals 2, 71 to enable the multiple user terminals 2, 71 to verify whether the service providing servers 3, 72 possess the same verification target data 40.
However, in the case whether the trace data 41 are shared among multiple user terminals 2, 71, all trace data 41 of the verification target data 40 possessed in each user terminal 2, 71 need to be updated as well every time the verification target data 40 is updated, and therefore it takes too much effort to actually apply it.
On the other hand, in the existing technique disclosed in NPL 1, both of the user terminals 2, 71 and the service providing servers 3, 72 need to handle an enormous amount of calculations called a modular exponentiation with a high calculation load.
A verification data possession verification method according to the third embodiment will be described below, in which the user terminals 2, 71 and the service providing servers 3, 72 can verify whether the service providing servers 3, 72 possess the verification target data 40, without possessing the trace data 41 in the user terminals 2,71 and by a much less number of modular exponentiations in comparison with the existing technique disclosed in NPL 1
In
The one-way function 111 is a function to embody a corresponding program in which the CPU 11 (
In
A data possession verification method according to the embodiment will be described next. As with the data possession verification method according to the first embodiment, the data possession verification method according to the embodiment is realized by a public parameter registration process for preliminarily registering the public parameter 36 to the service providing server 102, a verification target data registration process for depositing the verification target data 40 to the service providing server 102, and then a verification target data possession verification process for verifying that the verification target data 40 is possessed in the service providing server 102. The public parameter registration process, the verification target data registration process, and the verification target data possession verification process will be described below.
(3-2-1) Public Parameter Registration Process
The public parameter registration process is started by inputting setting information on a secret key and a public parameter by operating the input unit 22 of user's user terminal 101 by the user, and by inputting a registration instruction of the public parameter to the service providing server 102 (hereinafter called a public parameter registration instruction).
Practically, the overall processing unit 112 (
Subsequently, the overall processing unit 112 provides the random number generation unit 31 (
[Mathematical Formula 7]
ed=l mod N (4)
Furthermore, the overall processing unit 112 provides the random number generation unit 31 with an instruction for generating a random number. In this manner, the random number generation unit 31 generates a random number (k) in accordance with the instruction. The overall processing unit 112 stores the random number, which has been generated by the random number generation unit 31, as a secret key k in the storage unit 21 (SP62).
Then, the overall processing unit 112 transmits the public parameter 36, which has been generated in step SP61, to the service providing server 102 via the communication unit 24 (
On the other hand, when the overall processing unit 121 (
When the overall processing unit 112 of the user terminal 101 receives the registration process result via the communication unit 24 (SP67), the overall processing unit 112 determines based on the registration process result whether the public parameter 36 is successfully registered to the service providing server 102 (SP68). The overall processing unit 112 performs a retransmission process for the public parameter 36 in the case where the overall processing unit 112 has determined that the registration of the public parameter 36 has been failed (SP63). In the case where the overall processing unit 112 has determined that the public parameter 36 has been successfully registered, the overall processing unit 112 finishes the public parameter registration process.
(3-2-2) Verification Target Data Registration Process
The verification target data registration process is started by operating the input unit 22 of user's user terminal 101 (
Practically, after the verification target data registration instruction is input via the input unit 22 (SP70), the overall processing unit 112 (
Subsequently, the overall processing unit 112, with respect to the basic operation unit 33 (
[Mathematical Formula 8]
mi(j)=Exp(g,Mi(j)d+Func(k∥j)d)mod N (8)
As described above, “mod” is an operator for calculating a remainder after division. “Func” is a unidirectional function. Also, “∥” is an operator indicating coupling of adjacent values. Therefore, “k∥j” represents data in which a value of “k” is a upper value and a value of “j” is a lower value. “Exp” is an operator indicating a modular exponential function in which a first parameter is a bottom and a second parameter is a power-law exponent. Therefore, for example, “Exp (2, 3)” represents the cube of 2 (=8), and “Exp (3, 4)” represents the fourth power of 3 (=81).
Then, the overall processing unit 112 transmits, to the service providing server 102 via the communication unit 24, the verification target data 40, the data identifier 42A of each divided data 40A of the verification target data 40 obtained as described above, and the trace data 41 for each of the divided data 40A (SP73).
On the other hand, when the overall processing unit 121 (
Then, the overall processing unit 121 transmits, to the user terminal 101 via the communication unit 54 (
When the overall processing unit 112 (
In the existing technique disclosed in NPL 1, a process for sharing a public parameter and a process procedure for registering verification target data are almost same as the public parameter registration process and the verification target data registration process according to the embodiment, except for a method for generating the trace data (mi(j)) for each divided data 40A of the verification target data 40 in the verification target data registration process. Specifically, in the existing technique, the trace data (mi(j)) for each divided data 40A of the verification target data 40 is each generated in accordance with the following formula.
[Mathematical Formula 9]
mi(j)=Exp(g,Mi(j)d)+Func(k∥j)d mod N (9)
Although calculation formulae of the formulae (8) and (9) are different, a modular exponentiation with the highest calculation load is performed once in the both of them. Therefore, the calculation amount of the formula (8) and the calculation amount of the formula (9) are almost the same, and data size is considered to be almost the same. Therefore, in the verification target data registration process according to the embodiment, a calculation amount required to the user terminal 101 and the service providing server 102 can be considered to be the same amount as the existing technique disclosed in NPL 1.
(3-2-3) Verification Target Data Possession Verification Process
The verification target data possession verification process is started by operating the input unit 22 of user's user terminal 101 (
When the verification target data possession verification instruction, in which the data identifier 42 of the verification target data 40 has been specified, is input via the input unit 22 (SP80), the overall processing unit 112 (
[Mathematical Formula 10]
i(j)=Func(k∥j) (10)
Also, the overall processing unit 112 provides the random number generation unit 31 with an instruction for generating a random number. In this manner, the random number generation unit 31 generates a random number t of 0 or more but less than p and generates a parameter h satisfying the following formula (SP81).
[Mathematical Formula 11]
h=g
t mod N (11)
In the above-described description, “p” is one of random numbers generated by the random number generation unit 31 when generating the public parameter 36 (
Subsequently, the overall processing unit 112 provides the random number generation unit 31 with an instruction for generating a random number for each divided data 40A of the verification target data 40. In this manner, the random number generation unit 31, in accordance with the instruction, generates a random number (R(j)(j=1 to n)) for each divided data 40A of the verification target data 40 (SP82).
Then, the overall processing unit 112 transmits, to the service providing server 102 via the communication unit 24 (
On the other hand, when the overall processing unit 121 (
Subsequently, the overall processing unit 121 reads out the data identifiers 42A of each divided data 40A of the corresponding verification target data 40 from the storage unit 51 based on the data identifier 42A received in step SP84 and specifies, based on the read data identifier 42A, each of the divided data 40A of the verification target data 40 to be verified that the service providing server 102 is possessed the data (SP85).
Then, the overall processing unit 121 provides the basic operation unit 61 (
[Mathematical Formula 12]
Si=Func(hR1mi(1)+R2Mi(2)+ . . . +(n)mod N) (12)
[Mathematical Formula 13]
Ui=g
(R1(i(1)+Mi(1))+R2(i(2)+Mi(2)+ . . . +Rn(i(n)+Mi(n)))dN (13)
In the formula (13), an exponent part represented by the following formula (14) includes multiplication and addition, and by previously calculating the exponent part, the formula (13) can be operated by one-time modular exponentiation and around n-times multiplication/addition:
[Mathematical Formula 14]
((R1(i(1)+Mi(1))+R2(i(2)+Mi(2))+ . . . +Rn(i(n)+Mi(n)))d (14)
In this case, a calculation amount of the addition/multiplication is low. Therefore an actual operation amount of the formula (13) is almost equal to an operation amount of one-time modular exponentiation.
Then, the overall processing unit 121 reads out the first and second server side evidence data Si, Ui, calculated as described above, from the storage unit 51 and transmits the read first and second server side evidence data Si, Ui to the user terminal 101 via the communication unit 24 (SP87).
On the other hand, after the overall processing unit 112 of the user terminal 101 receives the first and second server side evidence data Si, Ui via the communication unit 24 (SP88), the overall processing unit 112 provides the basic operation unit 33 with an instruction for generating evidence data on the user terminal 101 side (hereinafter called user terminal side evidence data) by using the random number R(j) for each divided data 40A of the verification target data 40 generated by the random number generation unit 31 in step SP82, the data identifier 42A (i(j)) for each divided data 40A of the verification target data 40 calculated in step SP81, and the public parameter 36 generated in step SP61 in the public parameter registration process (
In this manner, the basic operation unit 33 calculates the first user terminal side evidence data Ti satisfying the following formula in accordance with the instruction.
[Mathematical Formula 15]
Ti=Uig
−(R1i(1)+R2i(2)+ . . . +Rni(n))d mod N (15)
In the formula (15), an exponent part represented by the following formula (16) includes multiplication and addition, and therefore, by previously calculating the exponent part, the formula (15) can be operated by one-time modular exponentiation and around n-times multiplication/addition:
[Mathematical Formula 16] (R1i(1) R2i(2)+ . . . +Rni(n))d . . . (16) In this case, a calculation amount of addition and multiplication is low, and therefore an actual operation amount of the formula (15) is almost equal to an operation amount of one-time modular exponentiation.
(R1i(1)+R2i(2)+ . . . +Rni(n))d (16)
Also from the relationship between the formula (13) and the formula (15), the first user terminal side evidence data Ti satisfies the following formula:
[Mathematical Formula 17]
Ti=g
(R1mi(1)+R2mi(2)+ . . . +Rnmi(n))
d mod N (17)
Subsequently, the basic operation unit 33 reads out, from the storage unit 21, a random number t generated by the random number generation unit 31 in step SP81 and a secret key e (inverse element of the secret key d) generated in step SP62 in the public parameter registration process (
[Mathematical Formula 18]
Vi=Func(Tite) (18)
Next, the basic operation unit 33 compares the second user terminal side evidence data Vi calculated in this manner and the first server side evidence data Si received in step SP88. In the case where the second user terminal side evidence data Vi and the first server side evidence data Si are equal, the basic operation unit 33 determines that the service providing server 102 possesses the verification target data 40 targeted at the time. In the case where the first server side evidence data Si and the second user terminal side evidence data Vi are not equal (different), the basic operation unit 33 determines that the service providing server 102 does not possess the verification target data 40 (SP90).
The overall processing unit 112 displays a determination result of the basic operation unit 33 on the output unit 23, and then finishes the verification target data possession verification process.
In the above-described process procedure, although a case has been described where the first and second user terminal side evidence data Ti, Vi have been generated by using multiplication in which the public parameter 36 has been a modulus, the first and second user terminal side evidence data Ti, Vi may be generated by using addition (or subtraction) in which a public parameter is a modulus.
In the existing technique disclosed in the above-described NPL 1, a process procedure for verifying whether the service providing server 102 possesses the verification target data 40 is similar to the verification target data possession verification process according to the embodiment. However, a part of the process contents for generating trace data based on the formula (8), not the formula (9), in step SP72 in the verification target data registration process (
Specifically, in the case of the existing technique disclosed in NPL 1, the server side evidence data Ui is calculated based on the following formula in step SP86 in the verification target data possession verification process (
[Mathematical Formula 19]
Ui=(gR1Mi(1)+R2Mi(2)+ . . . +RnMi(n)×i(1)R1×i(2)R2× . . . ×i(n)Rn)d mod N (18)
In this case, (n+1) modular exponentiations, of which bottoms are different such as gR1Mi(1)+ . . . +RnMi(n), i(1)R1, i(2)R2, . . . , are combined in the formula (18). Therefore, a calculation amount is around 100 times larger than that of the formula (14) capable of calculating by one-time modular exponentiation.
Also, a processing load of the user terminal 101 is high in the existing technique disclosed in NPL 1. Specifically, in step SP89 in the verification target data possession verification process (
[Mathematical Formula 20]
Ti=Ui(i(1)R1×i(2)R2× . . . ×i(n)Rn)−d mod N (19)
In this case, as with the formula (18), (n+1) modular exponentiations, of which bottoms are different, are combined in the formula (19). Therefore, a calculation amount thereof is around 100 times larger than that of the formula (15) capable of calculating by one-time modular exponentiation.
As is obvious from the above, a registration process of the verification target data 40 and the verification target data possession verification process for verifying whether the service providing server 102 possesses the verification target data 40, the data possession verification method according to the embodiment can verify that the service providing server 102 possesses the verification target data 40 by a much less number of modular exponentiations in comparison with the existing technique disclosed in NPL 1.
As with the first embodiment, the data possession verification method according to the embodiment can verify on a user terminal 101 side whether the service providing server 102 possesses the verification target data 40 without transmitting the verification target data 40 from the service providing server 102.
In this manner, the data possession verification method according to the embodiment can verify with a small communication amount or a small calculation amount whether the service providing server 102 possesses the verification target data 40 deposited to the service providing server 102 by the user terminal 101.
In the above-described first to third embodiments, a case has been described where the present invention is applied to a cloud system configured as illustrated in
Also, the case has been described in the above-described first embodiment, in which the public parameter registration process, the verification target data registration process, and the data possession verification process have been performed in accordance with a process procedure illustrated in
Furthermore, in the above described first to third embodiments, as verification information to be used in the data possession verification process for verifying whether the service providing servers 3, 72, 102 possess data deposited from the user terminals 2, 71, 101, the case has been described in the first embodiment in which a random number has been used, the case has been described in the second embodiment in which the secret key 83 has been used, and the case has been described in the third embodiment in which a random number and the parameter h have been used. However, the present invention is not limited to the above, and other type information can be used as the verification information.
Furthermore, in the above-described first embodiment, the case has been described in which the service providing server 3 has calculated the server side evidence data Si by a modular operation in which the public parameter 36 has been a modulus and the random number R has been an exponential value of the verification target data 40 as described regarding the formula (2), and the user terminal 2 has calculated the user terminal side evidence data Ti by a modular operation in which the public parameter 36 has been a modulus and the random number R has been an exponential value of the first trace data 41 as described regarding the formula (3). However, the present invention is not limited to the above case, and for example, the server side evidence data Si and the user terminal side evidence data Ti may be calculated by using addition or subtraction by setting the public parameter 36 a modulus.
Furthermore, in the above-described second embodiment, the case has been described in which the user terminal 71, as described above regarding the formula (5), has generated the trace data 41 (the user terminal side evidence data Ti) as an output value of a unidirectional function inputting a value coupling the verification target data 40 and the secret key 83 in which the verification target data 40 is as an upper value and the secret key 83 is as a lower value, and the service providing server 72, as described regarding the formula (6), has generated the server side evidence data Si as an output value of a unidirectional function inputting a value coupling the verification target data 40 and the secret key 83 in which the verification target data 40 is as an upper value and the secret key 83 is as a lower value. However, the present invention is not limited to the above case, and output values of other operation (addition or multiplication) and other function may be input to a unidirectional function, and may be add an arbitrary operation to an output value of the unidirectional function.
For example, the present invention can be widely applied to various configuration systems including a user terminal and a server device storing verification target data from the user terminal in addition to a cloud system performing a cloud service.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2012/078249 | 10/31/2012 | WO | 00 |