The present application claims priority under 35 U.S.C. § 119 to Japanese Patent Application No. 2017-117775, filed on Jun. 15, 2017, the contents of which are incorporated herein by reference in their entirety.
The present invention relates to a data distribution apparatus and a data distribution system.
In the related art, there is known a distribution technique in which moving imaging data is divided into predetermined sections, and the moving imaging data is distributed by streaming. In addition, there is known a falsification prevention technique of adding a signature to each of the time series data groups (imaging data and voice data) included in the moving imaging data at the time of distribution, in order to assure the authenticity of the moving imaging data at the distribution destination to which the moving imaging data is distributed by streaming.
Patent Application Publication No. 2011-075867
An aspect of the present invention provides a data distribution apparatus and a data distribution system, in which one or more of the disadvantages of the related art are reduced.
According to one aspect of the present invention, there is provided a data distribution apparatus comprising a first processor, in communication with a first memory, executing a first process including generating fusion data by incorporating, in a metadata area in first time series data in a predetermined section, first hash data obtained by hashing second time series data in a corresponding section; calculating a signature value according to a plurality of pieces of the fusion data; and outputting the fusion data, the second time series data in the corresponding section, and the signature value.
The falsification prevention technique of the related art has the following problem. Specifically, when a part of the moving imaging data in a predetermined section becomes lost due to a failure in the network, etc., the signature verification cannot be performed at the distribution destination. For this reason, even when the moving imaging data has not actually been falsified, if a data loss occurs during the distribution, the authenticity cannot be assured at the delivery destination.
Furthermore, the falsification prevention technique of the related art also has the following problem. Specifically, when falsification is performed with respect to information indicating the association between imaging data and voice data in a predetermined section, this falsification cannot be detected. For this reason, at the distribution destination, it has not been possible to assure the authenticity of information indicating the association between imaging data and voice data in a predetermined section.
A problem to be solved by an embodiment of the present invention is to assure the authenticity of time series data groups that are distributed by streaming.
Embodiments of the present invention will be described by referring to the accompanying drawings. In the specification and drawings of the embodiments, the elements having substantially the same functions are denoted by the same reference numerals, and overlapping descriptions are omitted.
First, the system configuration of a data distribution system will be described.
As illustrated in
The imaging device 110 is a device that generates imaging data that is first time series data. The imaging device 110 sequentially transmits the generated imaging data to the data distribution apparatus 130.
The voice input device 120 is a device that generates voice data that is second time series data. The voice input device 120 sequentially transmits the generated voice data to the data distribution apparatus 130.
A data distribution program is installed in the data distribution apparatus 130, and by executing the program, the data distribution apparatus 130 functions as a data distributing unit 131.
The data distributing unit 131 acquires the imaging data (the first time series data) and the voice data (the second time series data), generates distribution data that can assure the authenticity of each time series data item in a predetermined section and the authenticity of information indicating the association between the time series data items in the predetermined section, and distributes the generated distribution data.
Specifically, the data distributing unit 131 generates secret distributed data and a signature value based on a secret distributed protocol by using a plurality of items of imaging data in a predetermined section and voice data in the corresponding section (details will be described later). Furthermore, the data distributing unit 131 distributes the generated secret distributed data and the signature value, and the voice data used for generating the secret distributed data, as distribution data, to the data verification apparatus 140 via the network 150. Note that among the distribution data, the data distributing unit 131 distributes the secret distributed data and the voice data to the data verification apparatus 140 by streaming.
A data verification program is installed in the data verification apparatus 140, and by executing this program, the data verification apparatus 140 functions as a data verifying unit 141.
The data verifying unit 141 receives the secret distributed data, the voice data, and the signature value, as distribution data, from the data distribution apparatus 130, and stores the distribution data in a data storage unit 142. Furthermore, the data verifying unit 141 performs signature verification with respect to the secret distributed data, by using secret information calculated based on the secret distributed data stored in the data storage unit 142 and secret information calculated based on the signature value. Furthermore, the data verifying unit 141 compares the secret distributed data that has undergone the signature verification, with the voice data.
Accordingly, the data verifying unit 141 can assure the authenticity of the imaging data in a predetermined section, the authenticity of voice data in a predetermined section, and the authenticity of information indicating the association between the imaging data and the voice data in the predetermined section.
Note that in the case of secret distributed data, signature verification can be performed by the data verifying unit 141 even if a data loss occurs while the secret distributed data is distribution by streaming from the data distribution apparatus 130. This is because secret distributed data, which has been generated by using a secret distributed protocol, has high resistance with respect to data loss in signature verification.
Next, a secret distributed protocol used for generating secret distributed data having high resistance to data loss in signature verification, will be briefly described with reference to
In general, a (k−1)th degree polynomial can be uniquely defined if there are a k number of independent solutions. With a (k−1) number of solutions or less, the (k−1)th degree polynomial cannot be uniquely defined.
Furthermore,
The secret distributed protocol uses such a relationship between a polynomial and the solution of the polynomial. As illustrated in
In addition, as illustrated in
In the first embodiment, the secret distributed protocol is applied to the time series data, by focusing on the characteristic that the resistance to data loss is high, among the above characteristics.
The data distribution apparatus 130 according to the first embodiment generates fusion data based on the time series data in a predetermined section and the corresponding time series data, and applies the secret distributed protocol to the generated fusion data, thereby achieving an improvement in the resistance to data loss in signature verification. This will be specifically described with reference to
In the data distribution apparatus 130, first, an n number (n is an integer that is greater than or equal to 2) of fusion data items are generated, based on imaging data that is time series data in a predetermined section and voice data that is time series data in a corresponding section. Note that in the following description, among the n number of fusion data items, the i-th fusion data is expressed as “Xi”. Furthermore, “Zi” is the summed value (fusion data summed value) of the respective data items included in the fusion data (Xi).
Subsequently, the data distribution apparatus 130 generates an n number of solutions of the (k−1)th degree polynomial based on the n number of fusion data summed values (Zi). At this time, a random value is used for the k number (k is an integer that is greater than or equal to 1 but less than n) of parameters (αk-1, αk-2, . . . α0) of the (k−1)th degree polynomial. Note that in the present embodiment, the i-th value among an n number of variables y calculated by assigning an n number of fusion data summed values (Zi) to a variable x, is expressed as parameter information “Yi”. Yi can be calculated based on the following formula.
Y
i=Σ(t=0˜k−1)αt×Zi [Formula 1]
As a result, the data distribution apparatus 130 can calculate an n number of solutions (Zi, Yi) of the (k−1)th degree polynomial (y=αk-1xk-1+αk-2xk-2+ . . . α1x+α0), from the n number of fusion data summed values (Zi). The data distribution apparatus 130 distributes, to the data verification apparatus 140 as secret distributed data, sets of an n number of fusion data items (Xi) and parameter information items (Yi) corresponding to the calculated n number of solutions (Zi, Yi).
Even when some of the n number of secret distributed data items (Xi, Yi) are lost, if a k number of secret distributed data items (Xi, Yi) are accumulated, the data verification apparatus 140 can derive a k number of solutions (Zi, Yi). Accordingly, the data verification apparatus 140 can calculate the parameters (αk-1, αk-2 . . . α0) based on a k number of solutions (Zi, Yi).
Here, it is assumed that a k number of secret distributed data items (Xi, Yi) have not been falsified. In this case, the following two parameters should match.
On the other hand, when a k number of secret distributed data items have been falsified, these parameters will not match. That is, by determining whether these parameters match, signature verification can be performed, and when these parameters match (when the signature verification is successful), it is possible to assure the authenticity of the secret distributed data (that the secret distributed data is not falsified).
Note that in the present embodiment, the data verification apparatus 140 determines that the signature verification of the secret distributed data (Xi, Yi) is successful, when one of the parameters (α0) matches. That is, in the present embodiment, the parameter (α0) becomes the secret information (the secret information can be defined as information that can be calculated by accumulating a k number of secret distributed data items). Note that in order to determine whether the signature verification is successful by the data verification apparatus 140, the data distribution apparatus 130 calculates a signature value (S) by adding a signature to the secret information (α0) by using a Sign algorithm as indicated in the following formula, and distributes the signature value (S) to the data verification apparatus 140.
S=Sign(α0,skmov) [Formula 2]
Note that in formula 2, skmov indicates a signature key generated by the data distribution apparatus 130.
Upon receiving the signature value (S), the data verification apparatus 140 calculates the secret information (α0) based on the verification key, by using a Vrfy algorithm corresponding to the Sign algorithm. Furthermore, the data verification apparatus 140 determines whether the secret information (α0) calculated from the k number of secret distributed data items (Xi, Yi) and the secret information (α0) calculated from the signature value (S) match each other. When these secret information items match each other, the data verification apparatus 140 determines that the signature verification is successful. Conversely, when these secret information items do not match each other, the data verification apparatus 140 determines that the signature verification is unsuccessful.
Note that in the following description, it is assumed that the signature value (S) distributed from the data distribution apparatus 130 is associated with the n number of secret distributed data items (Xi,Yi).
Described next are the hardware configurations of the data distribution apparatus 130 and the data verification apparatus 140 included in the data distribution system 100. Note that the hardware configuration of the data distribution apparatus 130 and the hardware configuration of the data verification apparatus 140 are basically the same, and therefore the hardware configuration of the data distribution apparatus 130 will be described here.
As illustrated in
The CPU 501 executes various programs (for example, a data distribution program, etc.) installed in the secondary storage device 504.
The ROM 502 is a nonvolatile memory, and the ROM 502 functions as a main storage device for storing various programs and data, etc., necessary for the CPU 501 to execute various programs installed in the secondary storage device 504. Specifically, the ROM 502 stores a boot program such as Basic Input/Output System (BIOS) and Extensible Firmware Interface (EFI).
The RAM 503 is a volatile memory such as a Dynamic Random Access Memory (DRAM), and a Static Random Access Memory (SRAM), etc. The RAM 503 functions as a main storage device that provides a work area that is expanded when various programs installed in the secondary storage device 504 are executed by the CPU 501.
The secondary storage device 504 stores various installed programs and data used when executing various programs, etc.
The I/F device 505 is a connection device for the data distribution apparatus 130 to connect to the imaging device 110 and the voice input device 120 and to connect to the network 150. The drive device 506 is a device for setting a recording medium 510. The recording medium 510 referred to herein includes a medium that optically, electrically, or magnetically records information, such as a Compact Disk Read-Only Memory (CD-ROM), a flexible disk, and a magneto-optical disk, etc. Alternatively, the recording medium 510 may include a semiconductor memory, etc., for electrically recording information, such as a ROM or a flash memory, etc.
Note that various programs stored in the secondary storage device 504 are installed, for example, by setting the distributed recording medium 510 in the drive device 506, and by reading various programs recorded in the recording medium 510 by the drive device 506. Alternatively, various programs stored in the secondary storage device 504 may be installed by being downloaded from the network via the I/F device 505.
Next, a detailed functional configuration of the data distributing unit 131 implemented in the data distribution apparatus 130 will be described.
As illustrated in
The imaging data input unit 601 acquires the imaging data transmitted from the imaging device 110. The imaging data creating unit 602 converts the acquired imaging data into a predetermined format (for example, H.264/MPEG 4 (Moving Picture Experts Group phase 4), etc.).
The voice data input unit 603 acquires voice data transmitted from the voice input device 120. The voice data creating unit 604 converts the acquired voice data into a predetermined format (for example, AAC (Advanced Audio Coding), etc.).
The distribution data generating unit 605 generates the fusion data (Xi) based on imaging data in a predetermined section and the voice data in a corresponding section, and calculates the parameter information (Yi) based on the generated fusion data (Xi). Furthermore, the distribution data generating unit 605 generates secret distributed data (Xi, Yi) that is a set of fusion data (Xi) and parameter information (Yi), and transmits the secret distributed data (Xi, Yi) together with the voice data of the corresponding section, to the distributing unit 606. Furthermore, the distribution data generating unit 605 calculates the signature value (S) by using the secret information (α0) that can be calculated by accumulating a k number of secret distributed data items (Xi, Yi), and reports the signature value (S) to the distributing unit 606.
The distributing unit 606 is an example of an outputter. The distributing unit 606 packetizes the secret distributed data and the voice data reported from the distribution data generating unit 605, and distributes the packets by streaming to the data verification apparatus 140 via the network 150. Furthermore, the distributing unit 606 distributes the signature value reported from the distribution data generating unit 605, to the data verification apparatus 140 via the network 150.
Note that the packet format used when packetizing secret distributed data and voice data is determined by the transmission format, and when the transmission format is the network interface format, the packet format is the Real Time Streaming Protocol (RTSP) format or the User Datagram Protocol (UDP) format. Furthermore, when the transmission format is a Universal Serial Bus (USB) interface format, the packet format is the isochronous format.
Next, the detailed functional configuration of the distribution data generating unit 605 will be described by using
As illustrated in
The data buffer unit 701 stores imaging data reported from the imaging data creating unit 602 and voice data reported from the voice data creating unit 604 in association with each other.
The hash generating unit 702 reads an m number of voice data items in a section corresponding to imaging data (i-th imaging data) in a predetermined section, from the voice data stored in the data buffer unit 701. Note that among the m number of voice data items, the j-th voice data is set as (Aj).
The hash generating unit 702 generates voice hash data (H (Aj)) by hashing the j-th voice data (Aj). Furthermore, the hash generating unit 702 reports, to the fusion data generating unit 703, the generated m number of voice hash data (H(Aj)).
The fusion data generating unit 703 is an example of a generator. The fusion data generating unit 703 reads the i-th imaging data (Vi) stored in the data buffer unit 701, and acquires an m number of voice hash data items (H(Aj)) from the hash generating unit 702. Furthermore, the fusion data generating unit 703 generates fusion data (Xi) by incorporating the m number of voice hash data items (H(Aj)) into a predetermined area (for example, a metadata area) in the imaging data (Vi). Furthermore, the fusion data generating unit 703 reports the generated fusion data (Xi) to the parameter information generating unit 706.
Here, the flow of the above process until generating the fusion data (Xi) will be described in more detail with reference to
Similarly, voice data 820 stored in the data buffer unit 701 is time series data, and the hash generating unit 702 reads the voice data 820 in each of the predetermined sections as voice data A1 to A10 . . . . Note that in
In the example of
Voice hash data 830 (H(A1) to H(A10)) is calculated by hashing each voice data 820 (A1 to A10) by the hash generating unit 702. Among the calculated voice hash data 830 (H (A1) to H(A10)), the voice hash data items H(A1) and H(A2) are associated with the imaging data V1 in a predetermined section. Furthermore, the voice hash data items H(A3) to H(A5) are associated with the imaging data V2 in a predetermined section. Furthermore, the voice hash data items H(A6) and H(A7) are associated with the imaging data V3 in a predetermined section. The fusion data generating unit 703 generates fusion data 840 by incorporating the voice hash data 830 (H(A1) to H(A7)) into the imaging data V1 to V3 in predetermined sections.
In the example of
Note that in
Referring back to
The signature parameter generating unit 705 includes a random value generator, and upon receiving a report from the data counter unit 704 that the count value has reached the signature unit (n), the signature parameter generating unit 705 acquires a k number of random values generated by the random value generator, as parameters (αk-1, αk-2, . . . α0). Furthermore, the signature parameter generating unit 705 reports the acquired parameters (αk-1, αx-2 . . . α0) to the parameter information generating unit 706. Furthermore, the signature parameter generating unit 705 reports the parameter (α0) as secret information to the signature unit 708.
The parameter information generating unit 706 is an example of a calculator. The parameter information generating unit 706 acquires the fusion data (Xi) corresponding to the signature unit (n) generated by the fusion data generating unit 703, and the parameters (αk-1, αk-2, . . . α0) acquired by the signature parameter generating unit 705. Furthermore, the parameter information generating unit 706 calculates the fusion data summed value (Zi) corresponding to the signature unit (n), from the acquired fusion data (Xi) corresponding to the signature unit (n). Furthermore, the parameter information generating unit 706 calculates, by using formula 1, the parameter information (Yi) corresponding to the signature unit (n), based on the fusion data summed value (Zi) corresponding to the signature unit (n) and the parameters (αk-1, αk-2, . . . α0).
The secret distributed data generating unit 707 generates secret distributed data (Xi, Yi) corresponding to the signature unit (n) by associating the fusion data (Xi) with the parameter information (Yi), and outputs the secret distributed data (Xi, Yi).
The voice data output unit 709 reads and outputs an m number of voice data items (Aj) in a section corresponding to the imaging data (Vi) in a predetermined section, from the data buffer unit 701.
The signature unit 708 is an example of a signature means. The signature unit 708 receives a report from the data counter unit 704 that the count value has reached the signature unit (n), and then the signature unit 708 uses the secret information (α0) output from the signature parameter generating unit 705 to calculate a signature value (S). Note that in the present embodiment, the signature value (S) is calculated by using the Sign algorithm; however, the signature algorithm used for calculating the signature value (S) is not limited to the Sign algorithm. For example, the RSA algorithm, the RSASSA-PSS algorithm, or the ElGamal algorithm may be used.
Here, the flow of the above process until the secret distributed data (Xi, Yi), the voice data (Aj), and the signature value (S) are output (that is, the flow of the process until distribution data is output) will be described in more detail with reference to
As illustrated in
Similarly, it is assumed that the fusion data (X2) is generated by the fusion data generating unit 703. In this case, the parameter information generating unit 706 calculates a summed value (fusion data summed value (Z2)) obtained by adding the imaging data (V2) in a predetermined section included in the fusion data (X2) and the voice hash data (H(A3), H(A4), H(A5)) in a corresponding section. Furthermore, parameter information generating unit 706 generates parameter information (Y2), based on the calculated summed value (fusion data summed value (Z2)) and the parameters (α0, α1).
Similarly, it is assumed that the fusion data (X3) is generated by the fusion data generating unit 703. In this case, the parameter information generating unit 706 calculates a summed value (fusion data summed value (Z3)) obtained by adding the imaging data (V3) in a predetermined section included in the fusion data (X3) and the voice hash data (H(A6). H(A7)) in a corresponding section. Furthermore, parameter information generating unit 706 generates parameter information (Y3), based on the calculated summed value (fusion data summed value (Z3)) and the parameters (α0, α1).
Accordingly, the secret distributed data generating unit 707 can output (X1, Y1) (X2, Y2) (X3, Y3) as secret distributed data.
On the other hand, the voice data output unit 709 outputs voice data (A1, A2, A3, . . . A7) in predetermined sections stored in the data buffer unit 701. Furthermore, the signature unit 708 calculates the signature value (S) by using the secret information (α0), and outputs the signature value (S).
As a result, secret distributed data (X1, Y1) (X2, Y2), (X3, Y3), voice data (A1, A2, A3, . . . A7), and the signature value (S) are output as distribution data corresponding to the signature unit (n), from the distribution data generating unit 605.
Furthermore, the voice data (A1, A2, A3, . . . A7) in predetermined sections in the voice data 820 is output in association with the respective imaging data items (V1, V2, V3) in predetermined sections included in the secret distributed data 1010.
Furthermore, a signature value 1020 is output in association with the secret distributed data 1010 corresponding to the signature unit (n).
Next, the flow of each process (imaging data acquisition process, voice data acquisition process, and distribution process) executed by the data distributing unit 131 will be described.
First, a description is given of the flows of an imaging data acquisition process and a voice data acquisition process.
The imaging data acquisition process illustrated in
In step S1002, the imaging data creating unit 602 converts the acquired imaging data into a predetermined format. In step S1003, the imaging data creating unit 602 stores the imaging data converted into the predetermined format, in the data buffer unit 701.
In step S1004, the imaging data input unit 601 determines whether to continue the acquisition of imaging data. When the acquisition of imaging data is to be continued (NO in step S1004), the process returns to step S1001. Conversely, when the acquisition of imaging data is to be terminated (YES in step S1004), the imaging data acquisition process is terminated.
Similarly, the voice data acquisition process illustrated in
In step S1012, the voice data creating unit 604 converts the acquired voice data into a predetermined format. In step S1013, the voice data creating unit 604 stores the voice data converted into a predetermined format in the data buffer unit 701, in association with the imaging data.
In step S1014, the voice data input unit 603 determines whether to continue the acquisition of the voice data. When the acquisition of the voice data is to be continued (NO in step S1014), the process returns to step S1011. Conversely, when the acquisition of the voice data is to be terminated (YES in step S1014), the voice data acquisition process is terminated.
Next, the flow of the distribution process is described.
In step S1201, the fusion data generating unit 703 reads the imaging data (Vi) in a predetermined section from the data buffer unit 701. Furthermore, the hash generating unit 702 reads an m number of voice data items (Aj) in a section corresponding to the imaging data (Vi) in the predetermined section, from the data buffer unit 701.
In step S1202, the hash generating unit 702 hashes the m number of voice data items (Aj) that have been read, to generate an m number of voice hash data items (H(Aj)).
In step S1203, the fusion data generating unit 703 incorporates the m number of voice hash data items (H(Aj)) into the imaging data (Vi) in the predetermined section read out from the data buffer unit 701, to generate the fusion data (Xi).
In step S1204, the data counter unit 704 determines whether the fusion data generating unit 703 has generated a number of fusion data items corresponding to the signature unit (n). In step S1204, when it is determined that fusion data corresponding to the signature unit (n) has not been generated (NO in step S1204), the process returns to step S1201.
Conversely, in step S1204, when it is determined that fusion data corresponding to the signature unit (n) has been generated (NO in step S1204), the process proceeds to step S1205. In step S1205, the signature parameter generating unit 705 acquires a k number of random values generated by the random value generator, as parameters (αk-1, αk-2 . . . α0).
In step S1206, the parameter information generating unit 706 acquires the fusion data (Xi) corresponding to the signature unit (n) and the k number of parameters (αk-1, αk-2 . . . α0). Furthermore, the parameter information generating unit 706 calculates a fusion data summed value (Zi) corresponding to the signature unit (n) from the acquired fusion data (Xi) corresponding to the signature unit (n). Furthermore, the parameter information generating unit 706 calculates parameter information (Yi) corresponding to the signature unit (n), by using the calculated fusion data summed value (Zi) corresponding to the signature unit (n) and the k number of parameters.
In step S1207, the secret distributed data generating unit 707 generates secret distributed data (Xi, Yi) that is a set of the fusion data (Xi) and the parameter information (Yi).
In step S1208, the signature unit 708 acquires the parameter (α0) acquired by the signature parameter generating unit 705, as secret information, and adds a signature to the acquired secret information (α0). Accordingly, the signature unit 708 calculates a signature value (S) based on the acquired secret information (α0).
In step S1209, the distributing unit 606 packetizes the secret distributed data (Xi, Yi) generated by the secret distributed data generating unit 707 and the voice data (Aj), and distributes the packets by streaming.
In step S1210, the distributing unit 606 distributes the signature value (S) calculated by the signature unit 708.
In step S1211, the distribution data generating unit 605 determines whether to continue the distribution process. In step S1211, when it is determined that the distribution process is to be continued (NO in step S1211), the process returns to step S1201. Conversely, in step S1211, when it is determined that the distribution process is to be terminated (YES in step S1211), the distribution process is terminated.
Next, a detailed functional configuration of the data verifying unit 141 implemented in the data verification apparatus 140 will be described.
As illustrated in
The secret distributed data receiving unit 1301 receives secret distributed data (a set of fusion data (Xi) and parameter information (Yi)) corresponding to the signature unit (n) that has been distributed by streaming from the data distribution apparatus 130.
The voice data receiving unit 1302 receives the voice data (Aj) corresponding to the secret distributed data distributed by streaming from the data distribution apparatus 130.
The signature value receiving unit 1303 receives the signature value (S) corresponding to the secret distributed data distributed from the data distribution apparatus 130.
The storage processing unit 1304 stores, in association with each other in the data storage unit 142, the secret distributed data received by the secret distributed data receiving unit 1301, the voice data received by the voice data receiving unit 1302, and the signature value received by the signature value receiving unit 1303.
The signature value calculating unit 1306 determines whether the number of secret distributed data items that have been stored in the data storage unit 142 is k or more, to determine whether the signature verification is successful, and when the signature value calculating unit 1306 determines that the number is less than k, the signature value calculating unit 1306 determines that the signature verification is unsuccessful.
Furthermore, when it is determined that the number of stored secret distributed data items is k or more, the signature value calculating unit 1306 reads the k number of secret distributed data items from the data storage unit 142. The signature value calculating unit 1306 functions as a secret information calculator, and calculates secret information (α0) by using the following formula, based on the k number of secret distributed data items (Xi, Yi) that have been read.
α0=Σ(p=1˜k)YipΠ(0≤q≤k,q≠p)(Ziq)/((Ziq)−(Zip)) [Formula 3]
Note that in the above formula, Zi is the summed value (fusion data summed value) of the imaging data (V1) in the predetermined section included in the fusion data (X1) and the m number of voice hash data items (H(Aj)) in the corresponding section.
The signature value verifying unit 1307 is an example of a first determining unit. The signature value verifying unit 1307 reads the signature value (S) stored in the data storage unit 142 and calculates secret information (α0) based on a verification key vkmov by using the vrfy algorithm indicated in the following formula.
Vrfy(S,νkmov)=α0 [Formula 4]
Note that the signature value verifying unit 1307 determines whether the signature verification is successful, by comparing the secret information (α0) calculated by the signature value calculating unit 1306 with the secret information (α0) calculated by using the vrfy algorithm based on the signature value (S). As a result of the comparison, when the two match, the signature value verifying unit 1307 determines that the signature verification is successful (the secret distributed data (Xi, Yi) has not been falsified). Conversely, when the two do not match, the signature value verifying unit 1307 determines that the signature verification is unsuccessful (the secret distributed data (Xi, Yi) has been falsified).
The hash value calculating unit 1308 is an example of a hash generating unit. The hash value calculating unit 1308 reads the voice data (Aj) associated with the secret distributed data (Xi, Yi) stored in the data storage unit 142, and hashes the voice data (Aj) to generate an m number of voice hash data items (H(Aj)). The hash value calculating unit 1308 reports the generated m number of voice hash data items (H(Aj)) to the voice data verifying unit 1309.
The voice data verifying unit 1309 is an example of a second determining unit. The voice data verifying unit 1309 reads the m number of voice hash data items (H(Aj)) incorporated in the secret distributed data (Xi, Yi) stored in the data storage unit 142. The voice data verifying unit 1309 compares the m number of voice hash data items (H(Aj)) that have been read with the m number of voice hash data items (H(Aj)) reported from the hash value calculating unit 1308.
Here, it is assumed that the signature value verifying unit 1307 has already determined that the secret distributed data (Xi, Yi) has not been falsified. In this case, when the voice hash data items match, the voice data verifying unit 1309 determines that the m number of voice data items (Aj) stored in the data storage unit 142 have not been falsified. Furthermore, the voice data verifying unit 1309 determines that information, which indicates the association between the imaging data (Vi) in a predetermined section and the m number of voice data items (Aj) in a corresponding section, has not been falsified.
Conversely, when the voice hash data items do not match, the voice data verifying unit 1309 determines that one of the m number of voice data items (Aj) stored in the data storage unit 142 has been falsified. Alternatively, the voice data verifying unit 1309 determines that the information, which indicates the association between the imaging data (Vi) in a predetermine section and an m number of voice data items (Aj) in a corresponding section, has been falsified.
Next, the flows of processes (secret distributed data verification process and voice data verification process) executed by the data verifying unit 141 will be described.
First, a description is given of the flow of a secret distributed data verification process.
In step S1401, the secret distributed data receiving unit 1301 receives the secret distributed data (Xi, Yi), and the voice data receiving unit 1302 receives the voice data (Aj). Furthermore, the signature value receiving unit 1303 receives the signature value (S). Furthermore, the storage processing unit 1304 stores the received secret distributed data (Xi, Yi), the voice data (Aj), and the signature value (S) in the data storage unit 142 in association with each other.
In step S1402, the storage processing unit 1304 determines whether a predetermined time has elapsed. When it is determined in step S1402 that the predetermined time has not elapsed, the storage processing unit 1304 waits until the predetermined time elapses.
Conversely, when it is determined in step S1402 that the predetermined time has elapsed, the process proceeds to step S1403. In step S1403, the signature value calculating unit 1306 determines whether k or more secret distributed data items (Xi, Yi) have been stored in the data storage unit 142. When it is determined in step S1403 that k or more secret distributed data items (Xi, Yi) have not been stored (NO in step S1403), the process proceeds to step S1407, and the signature value calculating unit 1306 determines that the signature verification is unsuccessful.
Conversely, when it is determined in step S1403 that k or more secret distributed data items (Xi, Yi) have been stored (YES in step S1403), the process proceeds to step S1404. In step S1404, the signature value calculating unit 1306 reads the k number of secret distributed data items (Xi, Yi) from the data storage unit 142, calculates the fusion data summed value (Zi), and calculates the secret information (α0) by using formula 3.
In step S1405, the signature value verifying unit 1307 reads the signature value (S) stored in the data storage unit 142 and calculates secret information (α0) based on the verification key (vkmov) by using the vrfy algorithm.
In step S1406, the signature value verifying unit 1307 compares the secret information (α0) calculated by the signature value calculating unit 1306 with the secret information (α0) calculated by using the vrfy algorithm based on the signature value (S). As a result of the comparison, if the secret information items do not match, the process proceeds to step S1407, and it is determined that the signature verification is unsuccessful (the secret distributed data (Xi, Yi) has been falsified).
Conversely, as a result of the comparison in step S1406, when the secret information items match, the process proceeds to step S1408, and it is determined that the signature verification is successful (the secret distributed data (Xi, Yi) has not been falsified).
In step S1409, the storage processing unit 1304 determines whether communication with the data distribution apparatus 130 is continuing. When it is determined that the communication is continuing (YES in step S1409), the process returns to step S1401. Conversely, when it is determined that the communication is disconnected (NO in step S1409), the secret distributed data verification process is terminated.
Next, a description is given of the flow of a voice data verification process.
In step S1501, the hash value calculating unit 1308 determines whether signature verification by the signature value verifying unit 1307 has been successful for the secret distributed data (Xi, Yi) corresponding to the voice data (Aj) in a predetermined section. When it is determined in step S1501 that the signature verification is not successful (NO in step S1501), the voice data in the next predetermined section is processed.
Conversely, when it is determined in step S1501 that the signature verification is successful (YES in step S1501), the process proceeds to step S1502. In step S1502, the voice data verifying unit 1309 reads the secret distributed data (Xi, Yi) for which the signature verification has been determined to be successful, from the data storage unit 142.
In step S1503, the hash value calculating unit 1308 reads, from the data storage unit 142, voice data items (Aj) in an m number of predetermined sections corresponding to the secret distributed data (Xi, Yi) that has been read.
In step S1504, the hash value calculating unit 1308 hashes the voice data items (Aj) in the m number of predetermined sections that have been read, to generate an m number of voice hash data items (H(Aj)).
In step S1505, the voice data verifying unit 1309 compares the m number of voice hash data items (H(Aj)) incorporated in the secret distributed data (Xi, Yi) that has been read with the m number of voice hash data items (H(Aj)) generated in step S1504.
When it is determined in step S1506 that the voice hash data items do not match (NO in step S1506), the process proceeds to step S1508. In step S1508, the voice data verifying unit 1309 determines that the voice data (Aj) in the predetermined section that has been read in step S1503, has been falsified. Alternatively, the voice data verifying unit 1309 determines that the information indicating the association between the voice data (Aj) in the predetermined section that has been read in step S1503 and the imaging data (Vi) in the corresponding section, has been falsified.
Conversely, when it is determined in step S1506 that both voice hash data items match (YES in step S1506), the process proceeds to step S1507. In step S1507, the voice data verifying unit 1309 determines that the voice data items (Aj) in the m number of predetermined sections that have been read in step S1503, have not been falsified. Furthermore, the voice data verifying unit 1309 determines that the information, which indicates the association between the voice data items (Aj) in the m number of predetermined sections that have been read in step S1503 and the imaging data (Vi), has not been falsified.
In step S1509, the storage processing unit 1304 determines whether communication with the data distribution apparatus 130 is continuing. When it is determined that the communication is continuing (YES in step S1509), the process returns to step S1501. Conversely, when it is determined that the communication is disconnected (NO in step S1509), the voice data verification process is terminated.
Next, as an application example of the data distribution system 100, an example of a case where the secret distributed data or the voice data is lost and an example of a case where the secret distributed data or the voice data is falsified will, be described.
First, examples of the loss of the secret distributed data or voice data will be described.
As illustrated in
Even in such a case, the data verification apparatus 140 can receive a k number (here, k=2) of sets of fusion data and parameter information as secret distributed data, and therefore the data verification apparatus 140 can calculate the secret information (α0). That is, even when data loss occurs in the secret distributed data 1601, signature verification can be performed on the secret distributed data 1601.
Note that when data loss occurs in the secret distributed data 1601, even if data loss has not occurred in voice data 1602, there is no secret distributed data to be compared with the voice data (A3, A4, A5) in the corresponding section.
However, when the following conditions are satisfied, the voice data verifying unit 1309 determines that falsification has not been performed on the voice data (A3, A4, A5) in the corresponding section.
Note that when it is determined that falsification has not been performed on the voice data (A3, A4, A5) in the corresponding section, the voice data verifying unit 1309 can recognize that there is imaging data in a predetermined section that has been lost, between the imaging data (V1) and the imaging data (V3) in predetermined sections. In this case, the voice data verifying unit 1309 can recognize that the loss in the imaging data in the predetermined section has not occurred due to falsification.
Conversely, as illustrated in
Note that in such a case, the voice data verifying unit 1309 can recognize that a loss has occurred in the voice data in a section corresponding to the imaging data (V2) in a predetermined section. Furthermore, the voice data verifying unit 1309 can recognize that the loss in the voice data in the section has not occurred due to falsification.
Next, examples will be described in which the secret distributed data or the voice data has been falsified.
As illustrated in
Accordingly, the voice data verifying unit 1309 can determine that the voice data (A2) in the predetermined section in the voice data 1702 has been falsified.
On the other hand, as illustrated in
Accordingly, the voice data verifying unit 1309 can determine that the secret distributed data 1711 has been falsified.
On the other hand, as illustrated in
Furthermore, as illustrated in
As is apparent from the above description, the data distribution system according to the present embodiment has the following features.
Accordingly, in the data verification apparatus, when a k number of secret distributed data items can be received, among the secret distributed data corresponding to the signature unit (n) distributed by streaming by the data distribution apparatus, it is possible to calculate secret information based on the k number of secret distributed data items. That is, according to the data distribution system according to the present embodiment, a (n−k) number of data losses are allowable.
Furthermore, in the data verification apparatus, by comparing the secret information with secret information calculated from the signature value distributed by the data distribution apparatus, it is possible to perform signature verification and assure the authenticity of the secret distributed data. That is, in the data verification apparatus, it is possible to perform signature verification and assure the authenticity of the secret distributed data, even when a part of the secret distributed data distributed by the data distribution apparatus is lost. As a result, it is possible to assure the authenticity of the imaging data that has been distributed by streaming.
Furthermore, in the data verification apparatus, by comparing the secret distributed data whose authenticity is assured with voice data, it is possible to determine whether the voice data itself that has been distributed by streaming has been falsified, and assure the authenticity of the voice data. Furthermore, in the data verification apparatus, it is possible to determine whether the information, which indicates the association between imaging data in a predetermined section and voice data in a corresponding section, has been falsified, and assure authenticity of the information indicating the association between imaging data in a predetermined section and voice data in a corresponding section.
As described above, according to the present embodiment, it is possible to assure the authenticity of the time series data groups to be distributed by streaming.
In the first embodiment, the data distribution apparatus 130 and the data verification apparatus 140 execute predetermined processes. However, the method of executing the processes by the data distribution apparatus 130 and the data verification apparatus 140 is not limited to the above; the processes may be executed upon appropriately changing settings based on instructions from the administrator of the data distribution system 100. Hereinafter, a second embodiment will be described, mainly with respect to the differences from the first embodiment.
In the “name”, the setting target to be changed in the data distribution apparatus 130 is stored. The example in
Note that according to the example in
On the other hand,
In the “name”, the setting target to be changed in the data verification apparatus 140 is stored. The example in
Note that according to the example of
As is apparent from the above description, according to the data distribution system according to the present embodiment, the setting information for the data distribution apparatus and the setting information for the data verification apparatus can be changed based on the instructions of the administrator.
In the first and second embodiments, the data distribution apparatus 130 acquires the imaging data and the voice data as time series data, and incorporates voice hash data obtained by hashing the voice data into the imaging data, to generate fusion data. However, the combination of the time series data is not limited to the imaging data and the voice data. For example, it is possible to acquire imaging data and temperature data, and incorporate temperature hash data, which is obtained by hashing the temperature data, in the imaging data, to generate fusion data. In this case, the data distribution apparatus 130 distributes secret distributed data based on the generated fusion data, the temperature data, and a signature value, as distribution data.
As described above, even when time series data other voice data is combined with imaging data, by performing the same process, it is possible to attain the same effects as those of the first embodiment.
Furthermore, in the first and second embodiments, the fusion data is generated by acquiring two time series data items, hashing one of the time series data items, and incorporating the hashed time series data item into the other time series data item. However, the number of time series data items to be combined is not limited to two; three or more time series data items may be combined.
For example, it is possible to generate fusion data by acquiring imaging data, voice data, and temperature data, and incorporating voice hash data, which is obtained by hashing the voice data, and temperature hash data, which is obtained by hashing the temperature data, into the imaging data. In this case, the data distribution apparatus 130 distributes the secret distributed data based on the generated fusion data, the voice data, the temperature data, and a signature value, as distribution data.
As described above, even when two time series data items are combined with imaging data, by performing the same process, it is possible to attain the same effects as those of the first embodiment.
Furthermore, in the first and second embodiments, the fusion data is generated by acquiring different types of time series data items, hashing one type of time series data, and incorporating the hashed time series data into the other type of time series data. However, the time series data items are not limited being different types, and the time series data items may of the same type.
For example, fusion data may be generated by acquiring two imaging data items, hashing one of the imaging data items, and incorporating the hashed imaging data item into the other imaging data item. In this case, the data distribution apparatus 130 distributes the secret distributed data based on the generated fusion data, one of the imaging data items, and a signature value, as distribution data.
As described above, even when two time series data items of the same type are combined, by performing the same process, it is possible to attain the same effects as those of the first embodiment.
In the first to third embodiments, the data counter unit 704 is provided to calculate a signature value (S) for imaging data items (Vi) in an n number of predetermined sections. However, the timing of calculating a signature value may not be for imaging data items (Vi) in an n number of predetermined sections. For example, the signature value may be calculated for imaging data items (Vi) within a predetermined time.
Furthermore, in the first to third embodiments, the fusion data is generated by hashing and incorporating time series data; however, a process other than hashing may be performed as long as the process is for converting data into data indicating time series data.
Furthermore, in the first to third embodiments, a case of applying a secret distributed protocol has been described; however, it is also possible to calculate a signature value according to the fusion data without using the secret distributed protocol. In this case, the distribution data generating unit 605 outputs the fusion data, the voice data of the corresponding section, and the signature value as distribution data.
According to one embodiment of the present invention, it is possible to assure the authenticity of time series data groups that are distributed by streaming.
The data distribution apparatus and the data distribution system are not limited to the specific embodiments described in the detailed description, and variations and modifications may be made without departing from the spirit and scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2017-117775 | Jun 2017 | JP | national |