This application claims priority based on Japanese patent application, No. 2020-074817 filed on Apr. 20, 2020, the entire contents of which are incorporated herein by reference.
The present invention relates to a digital signature management method and a digital signature management system.
A digital signature is widely used as a technique for guaranteeing authenticity of electronic data. Long-term storage of electronic data has a known problem in that the expiration time of the digital signature comes in three to five years. A technique illustrated in
Then, a hash value of this signature record data is calculated, and a signature is added to data made up of a combination of the hash value of the immediately previous item of signature record data and a hash value of a current item of signature target data. According to this technique, each item of signature record data necessarily includes the hash value of the immediately previous item of signature record data, and this makes a hash chain of the signature record data. This hash chain enables a hash value of signature target data guaranteed by past signature record data to be guaranteed by the latest signature record data as well by tracing the hash chain. That is, authenticity of past data even with an expired signature can be guaranteed by an unexpired signature.
PCT Patent Publication No. WO 2008/026238 discloses a data processing system that uses a first storage device and a second storage device, in which hash values are added to data outputted sequentially, and the data with the hash values added thereto is stored in the second storage device, the data processing system including: a hash value duplicate storage section that, every time data is stored in the second storage device, duplicates a first hash value generated from the stored data and a second hash value generated from a hash value of data stored before the stored data, the first and second hash values being added to the stored data stored in the second storage device, and stores duplicates of the first hash value and the second hash value in the first storage device; a hash value comparison section that, when new data has been outputted, compares the last first hash value and second hash value added to the last data stored last in the second storage device with duplicates of the last first hash value and second hash value stored in the first storage device; a hash value generation section that generates a new first hash value from the new data, and generates a new second hash value from the last first hash value and second hash value, when the hash value comparison section has determined that the last first hash value and second hash value coincide with the duplicates of the last first hash value and second hash value; and a data storage section that adds the new first hash value and the new second hash value generated by the hash value generation section to the new data, and stores the new data with the new first hash value and the new second hash value added thereto in the second storage device.
There is a need to delete signature target data for which the retention term has expired and which no longer needs to be retained, in order to save the storage space of a storage device when there are a large number of items of signature target data. However, related-art techniques have a problem in that deletion of at least one item of signature target data and signature record data may make tracing of the chain of hash values impossible, making it impossible to verify authenticity of data that is previous to the deleted data and for which the expiration time of a signature has passed. This problem will now be described specifically below with reference to a figure.
In the example illustrated in
The present invention has been conceived in view of the above circumstances to make it possible to verify authenticity of undeleted signature target data when some items of signature target data have been deleted, in a digital signature technology for guaranteeing authenticity of a large number of items of signature target data for a long time.
A digital signature management method according to an embodiment of the present invention is a digital signature management method implemented by one or a plurality of computers, the method including: generating items of signature record data for items of signature target data inputted in chronological order; and generating an item of milestone data as a new item of signature target data every time the number of items of signature target data inputted reaches a predetermined value. Each item of signature record data includes a hash value of a corresponding item of signature target data, a hash value of an item of signature target data inputted immediately previously, and a signature for the hash value of the corresponding item of signature target data and the hash value of the item of signature target data inputted immediately previously. Each item of milestone data includes a hash value of at least one item of milestone data generated earlier, and hash values of items of signature record data corresponding to all items of signature target data inputted after generation of an immediately previous item of milestone data.
A digital signature management system according to a second embodiment of the present invention is a digital signature management system implemented by one or a plurality of computers, the system including a signature record generation section generating items of signature record data for items of signature target data inputted in chronological order. The signature record generation section generates an item of milestone data as a new item of signature target data every time the number of items of signature target data inputted reaches a predetermined value. Each item of signature record data includes a hash value of a corresponding item of signature target data, a hash value of an item of signature target data inputted immediately previously, and a signature for the hash value of the corresponding item of signature target data and the hash value of the item of signature target data inputted immediately previously. Each item of milestone data includes a hash value of at least one item of milestone data generated earlier, and hash values of items of signature record data corresponding to all items of signature target data inputted after generation of an immediately previous item of milestone data.
According to embodiments of the present invention, even when any signature target data for which the retention term has expired and which no longer needs to be retained and the corresponding signature record data have been deleted, authenticity verification is possible for remaining data that has not been deleted.
The details of one or more implementations of the subject matter described in the specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
Hereinafter, a digital signature management method and a digital signature management system according to embodiments of the present invention will be described with reference to
System Configuration
An outline of the operation of each component is as follows. The management server 10 generates and manages digital signatures. The application server 20 generates signature target data, and requests the management server 10 to generate and manage digitally signed data. The management terminal 30 manages retention limitation of the signature target data, and transmits, to the management server 10, a request to delete signature target data that has become deletable because of an expiration of a retention term thereof. The auditing terminal 40 transmits, to the management server 10, a request to check the authenticity of the signature target data managed by the management server 10. The foregoing is the outlines of the operations of the respective components.
The management server 10 has a secret key sk 101 for applying a digital signature, and a public key pk 102 associated with the secret key sk 101. Note that the public key pk 102 is stored in the form of a public key certificate, and therefore, the public key pk 102 may sometimes be referred to as a public key certificate 102 in the present embodiment. The management server 10 further includes a data transmission/reception section 103, a signature record generation section 104, a signature target database 105, a signature record database 106, and a signature record verification section 107.
The data transmission/reception section 103 transmits and receives the signature target data, messages for instructions of various processes, and so on. The signature record generation section 104 generates signature record data, which is digital signatures for the received signature target data and other data described below. The structure of the signature record data and a method for generating the signature record data will be described in detail below. The signature target data received by the data transmission/reception section 103 is stored in the signature target database 105. The signature record data generated by the signature record generation section 104 is stored in the signature record database 106. The signature record verification section 107 performs a process of verifying the authenticity of the signature target data using the signature record data. Note that the management server 10 may include a display section (not shown), such as a liquid crystal display, that displays a computation result.
The application server 20 includes a signature target data generation section 201 that generates the signature target data, and a signature addition request section 202 that requests the management server 10 to add the signature record data to the signature target data. The management terminal 30 includes an unnecessary data deletion instruction section 301 that makes a request to delete data that does not need to be retained in the management server 10 because of an expiration of the retention term of the data to which a signature is added. The auditing terminal 40 includes a data authenticity check section 401 that requests the management server 10 to subject the signature target data managed by the management server 10 to authenticity verification, and checks the result thereof. Note that the auditing terminal 40 may be provided with a signature record verification section 402 equivalent to the signature record verification section 107 included in the management server 10, and that an authenticity verification process for the signature target data performed in the management server 10 may be performed on the auditing terminal 40.
The information processing device 60 includes a communication device 601, an input device 602, a memory 603, a storage device 604, a computing device 605, and an output device 606. The communication device 601 is a communication module that supports at least one of cable communication and wireless communication. The input device 602 includes a keyboard, a mouse, or the like used to accept an input. The memory 603 is a volatile storage device, and allows faster reading and writing than the storage device 604. The storage device 604 is a nonvolatile storage device, e.g., a hard disk drive. The computing device 605 is a central computing device. The output device 606 is a liquid crystal display device, an organic electro luminescence (EL) display, or the like.
Each of the data transmission/reception section 103, the signature record generation section 104, the signature record verification section 107, the signature target data generation section 201, the signature addition request section 202, the unnecessary data deletion instruction section 301, the data authenticity check section 401, and the signature record verification section 402 can be implemented by a computer program executed by the computing device 605. Such a computer program may be stored in advance in the storage device 604, or may be delivered from a nontemporary storage device of another device via the network 50, or from a nontemporary storage medium, and be loaded on the memory 603 for use.
Each of the secret key sk 101 and the public key pk 102 retained in the management server 10 may be stored in the storage device 604 and be loaded on the memory 603 for use. Each of the signature target database 105 and the signature record database 106 of the management server 10 is stored in the storage device 604. An instruction from a user of the present system is entered via the input device 602, e.g., the keyboard, the mouse, or the like, which is used to accept the input, and a result of a process initiated by the instruction is displayed by the output device 606, such as the liquid crystal display device, the organic electro luminescence (EL) display, or the like. Each of the management server 10, the application server 20, the management terminal 30, and the auditing terminal 40 is provided with the communication device 601 to communicate with another device via the network 50, and may be implemented on the information processing device 60, which has sections connected via internal communication lines 607.
Data Structures
The data structures will be described below with reference to
In the present embodiment, data used to guarantee the authenticity of the signature target data 70 is referred to as signature record data 80, and data used to guarantee the authenticity of the signature target data Mni in particular is denoted as signature record data Sni. Specifically, “n” at the upper right and the subscript “i” of the signature record data Sni correspond to “n” and “i,” respectively, of the signature target data Mni.
The signature record data 80 is made up of target hash data 81 and signature data 82. The target hash data 81 of the signature record data Sni is a value representing a combination of a hash value 811 of immediately previous signature record data Sni−1 and a hash value 812 of the signature target data Mni, and is denoted as Tni. The signature data 82 of the signature record data Sni is signature data obtained by attaching a digital signature, typified by an RSA signature or the like, to the target hash data Tni using the secret key sk 101, and is denoted as Sign(Tni)=Sign (h(Sni−1)∥h(Mni)). Here, “h( )” means a hash function, and “∥” means a combination of data items. The combination of data items may be implemented in any predetermined fashion, not limited to specific means. For example, a predetermined delimiter may be used to implement the combination, or alternatively, bit strings as they are may be combined together without using a delimiter if the data field length of each is fixed.
The milestone data 90 is made up of a combination of hash values of items of signature record data 80 for the immediately previous milestone data 90 and subsequent items of signature record data 80. The nth item of milestone data MSn is made up of a combination of a hash value of signature record data Sn−10 corresponding to the immediately previous milestone data MSn−1, a hash value of signature record data Sn−11 for next signature target data, . . . , and a hash value of signature record data Sn−1m. When expressed in mathematical notation, MSn=h(Sn−10)∥h(Sn−11)∥ . . . ∥h(Sn−1m).
In the present embodiment, the trust point data and items of data subsequent to the trust point data are referred to as “trust data.” In other words, the trust data refers to items of signature record data and signature target data for which the expiration time of the signature has not been reached. Note that all data previous to the trust point data is expired data.
Sequence Diagrams
An outline of an operation of the signature management system will now be described below with reference to sequence diagrams of
Note that the application server 20 has not been informed of the numbers of the milestone data 90, and the like, and that “n−1” and “i” of the signature target data Mn−1i are subsequently determined by the management server 10. Specifically, the management server 10 determines that the received signature target data 70 is an ith item of signature target data 70 after generation of an (n−1)th item of milestone data 90, taking into account the numbers of the signature target data 70 stored in the signature target database 105. In
Upon receipt of the request to add a signature, the management server 10 fetches the latest signature record data Sn−1i−1 retained in the signature record database 106 (step S12). Next, the management server 10 acquires the public key certificate pk 102 and the secret key sk 101 stored in the management server 10 (step S13). Note that, if the public key certificate pk 102 and the secret key sk 101 have already expired at the time of the acquisition, or if only a time shorter than a predetermined period is left before the expiration thereof, the management server 10 performs the following process. Specifically, the management server 10 discards the public key certificate pk 102 and the secret key sk 101, generates new ones, and stores the newly generated public key certificate pk 102 and secret key sk 101 in the management server 10 to be used at the next step S14 and so on.
Next, the management server 10 generates signature record data Sn−1i for the signature target data Mn−1i received from the application server 20 (step S14). This signature record data 80 is Sn−1i=Tn−1i∥Sign(Tn−1i)=(h(Sn−1i−1)∥h)(Mn−1i))∥Sign(h(Sn−1i−1)∥h(Mn−1i)). A process of generating the signature record data 80 at step S14 will be described in detail below with reference to flowcharts.
Next, the management server 10 retains the signature target data Mn−1i in the signature target database 105, and retains the signature record data Sn−1i generated at step S14 in the signature record database 106 (step S15). At this time, the management server 10 retains the signature target data Mn−1i and the signature record data Sn−1i so as to be associated with each other using the same identifier or the like. Note that identifiers are numbered such that an order is clearly known, and are retained so that the normal signature target data and the milestone data are both identifiable. Further, the management server 10 retains the public key certificate 102 acquired at step S13 as well so as to be associated with the signature record data Sn−1i in the signature record database 106.
In accordance with the instruction at step S22, the management server 10 fetches the relevant signature target data 70 and signature record data 80, and the public key certificate 102, and checks the authenticity of the signature target data 70 (step S23). A specific method of this verification at step S23 will be described below with reference to a flowchart. Then, the management server 10 transmits a verification result to the auditing terminal 40 (step S24). Although, in
The second deletion-prohibiting condition will now be specifically described below with reference to
Then, on the basis of the determination at step S31, the management server 10 transmits, to the management terminal 30, a search result(s), such as caption information or the like of relevant signature target data 70 together with a deletable/undeletable flag (step S32). The management terminal 30 specifies deletable signature target data 70 from among a list of the search results, and issues a data deletion instruction to the management server 10 (step S33). The management server 10 deletes the signature target data 70 from the signature target database 105 according to the instruction at step S33. Further, the management server 10 additionally deletes the signature record data 80 and the public key certificate stored in the signature record database 106 on the basis of the identifier of the signature target data 70 (step S34). Note that the deletion of the signature record data 80 and the public key certificate is not essential. Then, the management server 10 notifies the management terminal 30 that the deletion process has been completed (step S35).
Flowcharts
The management server 10 first waits for an input of a request to add a signature from the application server 20 at step S100, once the process of generating the signature record data is started. At the next step S101A, upon receipt of the signature target data 70 from the application server 20, provisional numbers of the received signature target data 70 are determined on the basis of information stored in the signature target database 105. Here, for the sake of convenience, the signature target data 70 received from the application server 20 is referred to as the signature target data Mn−1i using “n−1” and “i.” Note that these numbers are provisional numbers, and may be changed by a process described below.
At the next step S101B, the management server 10 sets “i−1” to a variable p indicating an assessment target for the sake of convenience, and proceeds to step S102. At step S102, the management server 10 acquires signature target data Mn−1p and signature record data Sn−1p, which are indicated using the variable p, and the corresponding public key certificate from the signature record database 106. At the next step S103, the management server 10 determines whether the signature record data Sn−1p acquired at step S102 has expired or not. Specifically, the management server 10 performs the determination at step S103 by comparing an expiration time of the corresponding public key certificate with the current date and time. The management server 10 proceeds to step S105A if it is determined that the expiration time has not been reached, but proceeds to step S104 if it is determined that the expiration time has passed.
At step S105A, the management server 10 inputs the signature record data Sn−1p, which is signature record data to be assessed, to a function F001. A process of the function F001 will be described below. At the next step S105B, the management server 10 determines whether a computation result of the function F001 to which the input has been made at step S105A indicates a success or a failure. The management server 10 proceeds to step S107 in
At step S106A, the management server 10 decrements the variable i, i.e., decreases the value of i by one, to invalidate the signature target data Mn−1p to be assessed. Since the decrementing of i at this step will cause the signature target data which has been determined to be invalid by the function F001 to be overwritten by the received signature target data in a subsequent process, the value of i is decremented at this step.
At the next step S106B, the management server 10 updates the assessment target by making the update of the value of i at step S106A be reflected in the variable p as well. Note that step S106B has been explicitly presented only for the sake of preventing a misunderstanding of the process, and that the process of step S106B does not need to be performed independently if the value of the variable i is assessed as necessary during steps A102 to S105B. After the process of step S106B is completed, the management server 10 returns to step S102. That is, in the loop of steps A102 to S106A, excluding step S104, the management server 10 continues to trace the signature record data from the latest to older signature record data until valid signature record data is found.
At step S104, which is performed if a negative determination is made at step S103, the management server 10 invalidates all previous signature target data, changing the value of the variable i to “1,” and further substitutes the initial value “IV” for the signature record data S00. This initial value “IV” may be any fixed value determined in advance, and the value itself does not have a special meaning. After the process of step S104 is completed, the management server 10 proceeds to step S107 in
At a first process in
At the next step S110, the signature record generation section 104 of the management server 10 determines whether the value of the variable i is equal to m, which is a fixed value determined in advance and indicating the interval at which items of milestone data are generated. The signature record generation section 104 proceeds to step S112 if it is determined that the variable i is equal to m, but proceeds to step S111 if it is determined that the variable i is not equal to m.
At step S111, the management server 10 retains the signature target data Mn−1i in the signature target database 105, retains the signature record data Sn−1i generated at step S109 in the signature record database 106, and finishes the process of generating the signature record data. After the process of generating the signature record data is finished, the management server 10 waits for a receipt of next signature target data. Note that, at step S111, the signature target data Mn−1i and the signature record data Sn−1i are retained so as to be associated with each other using the same identifier or the like, and the current public key certificate 102 is retained in the signature record database 106 so as to be associated with the signature record data Sn−1i.
At step S112, which is performed if a positive determination is made at step S110, the management server 10 acquires the immediately previous milestone data MSn−1 and all items of signature target data Mn−11 to Mn−1m that are subsequent to the immediately previous milestone data MSn−1 from the signature target database 105, in order to generate the milestone data MSn. Further, the management server 10 acquires the signature record data Sn−10 corresponding to the immediately previous milestone data MSn−1, and signature record data Sn−11 to Sn−1m corresponding to all items of signature target data Mn−11 to Mn−1m that are subsequent to the immediately previous milestone data MSn−1, from the signature record database 106. At the next step S113, the management server 10 checks the authenticity of the immediately previous milestone data MSn−1=Mn−10 using the function F001, which will be described below.
If a computation result of the function F001 indicates a success at step S113, the management server 10 proceeds to step S115, while if the computation result of the function F001 indicates a failure at step S113, the management server 10 proceeds to step S114. At step S114, the management server 10 regards all data previous to the milestone data MSn−1=Mn−10 as invalid, substitutes “IV” (initial value) for Sn−10, and proceeds to step S115 with the initial value.
At step S115, the management server 10 checks the authenticity of all the remaining items of signature target data Mn−11 to Mn−1m sequentially using the function F001, which will be described below. Then, at step S116, any signature target data Mn−1j for which a failure determination has been made at step S115 is regarded as having been altered, making h(Sn−1j)=Null. More specifically, although a detailed illustration is omitted in
At the next step S117, the management server 10 calculates the hash values of Sn−10 to Sn−1m. Note that any signature target data that has passed through step S116 has a hash value of Null. Thereafter, the management server 10 proceeds to step S118 in
At step S118 in
At the next step S121, the management server 10 generates signature record data Sn0=Tn0∥Sign(Tn0) for the milestone data MSn=Mn0. Finally, at step S122, the management server 10 retains the milestone data MSn=Mn0 in the signature target database 105, retains the signature record data Sn0 generated at step S121 in the signature record database 106, and finishes the process of generating the signature record data. Note that, at step S122, the milestone data MSn=Mn0 and the signature record data Sn0 are retained so as to be associated with each other using the same identifier or the like, and the current public key certificate 102 is retained in the signature record database 106 so as to be associated with the signature record data Sn0. The process of generating the signature record data has been described above.
First at step S200, the signature record verification section 107 of the management server 10 acquires the relevant signature target data Mn−2i from the signature target database 105, and further, using the identifier, acquires signature record data Sn−2i for the signature target data Mn−2i and the corresponding public key certificate from the signature record database 106. Note that the signature target data is acquired from the signature target database 105, and the signature record data and the corresponding public key certificate are acquired from the signature record database 106, although this may not be explicitly mentioned hereinafter to simplify the description. The expiration time of the signature target data and the signature record data is determined from the expiration time of the public key certificate associated with the signature record data stored in the signature record database 106.
At the next step S201, the signature record verification section 107 checks the expiration times of the public key certificates stored in the signature record database 106 from the latest to older expiration times, and determines whether there is trust point data (step S201). Note that, when all data is trust data, a first item of the data, in other words, the oldest item of the data stored, is regarded as the trust point data. The signature record verification section 107 proceeds to step S203 if it is determined that there is the trust point data, but proceeds to step S202 if it is determined that there is no trust point data.
At step S202, since all the data retained in the signature target database 105 and the signature record database 106 has already expired, and the authenticity cannot be verified for any of the data, the management server 10 issues a notification of a verification failure, and regards all the data as invalid. Meanwhile, at step S203, the management server 10 checks whether the signature target data Mn−2i to be verified is trust data. The management server 10 proceeds to step S204 if it is determined that the signature target data Mn−2i is trust data, but proceeds to step S205 if it is determined that the signature target data Mn−2i is not trust data.
At step S204, the management server 10 checks the authenticity of the signature target data Mn−2i using the function F001, which will be described below, displays a result thereof on the display section, and finishes the authenticity verification process. Meanwhile, at step S205, the management server 10 determines whether there is the milestone data MSn−1 including a hash value h(Sn−2i) of the signature record data for the signature target data Mn−2i to be verified. The management server 10 proceeds to step S206 in
At step S207, since there is trust point data Mn−2t (i<t<m) generated at a time later than the specified signature target data 70, the management server 10 acquires the trust point data Mn−2t, and a group of signature record data (Sn−2i, . . . , Sn−2t) for Mn−2i to Mn−2t.
At the next step S208, the management server 10 subjects the signature record data Sn−2i to authenticity verification using a function F002, which will be described below, to verify whether the signature record data Sn−2i is authentic. If it is determined that a result of the function F002 is successful, the management server 10 proceeds to step S210, checks the authenticity of the signature target data Mn−2i to be verified using a function F005, which will be described below, displays a result thereof, and finishes the authenticity verification process. If it is determined that the result of the function F002 is a failure, the management server 10 proceeds to step S209, and indicates on the display section that the authenticity of the signature target data Mn−2i to be verified cannot be verified, and finishes the authenticity verification process. A process to be performed when a positive determination has been made at step S205 will now be described below with reference to
Step S206 at the top in
At step S211, the management server 10 acquires the latest milestone data MSnew and the latest trust point data Mnewt (0<t<m). At the next step S212, the management server 10 acquires pairs ((MSn−1, Sn−10). (MSnew, Snew0)) of all items of signature target data between the milestone data MSn−1, including the hash value h(Sn−2i) of the signature record data to be verified, and the latest milestone data MSnew and corresponding items of signature record data.
At the next step S213, the management server 10 determines whether a chain of records from MSn−1 to MSnew is valid using a function F004, which will be described below. The management server 10 proceeds to step S215 if it is determined that the record chain is valid, i.e., a computation result of the function F004 is successful, but proceeds to step S217 if it is determined that the record chain is not valid, i.e., the computation result of the function F004 is a failure.
At step S215, since there is the trust point data Mnewt (0<t<m), which is signature target data generated later than the latest milestone data MSnew, the management server 10 acquires a group of signature record data (Snew0, . . . , Snewt) for the latest milestone data MSnew to the trust point data Mnewt. Then, at the next step S216, the management server 10 checks the authenticity of the signature record data Snew0 using the function F002, which will be described below, and assesses a computation result thereof. The management server 10 proceeds to step S221 in
At step S217, which is performed if a negative determination is made at either step S213 or step S216, the inability to verify the authenticity of the signature target data Mn−2i to be verified is indicated on the display section, and the authenticity verification process is finished. A process to be performed when a positive determination has been made at step S206 in
Step S218 at the top in
At the next step S220, the management server 10 inputs the data acquired at step S219 to a function F003, which will be described below, and checks a computation result thereof. The management server 10 proceeds to step S221 in
Step S221 at the top in
At step S223, the management server 10 checks the authenticity of the signature target data Mn−2i to be verified using a function F006, which will be described below. The management server 10 proceeds to step S224 if it is determined that the authenticity of the signature target data Mn−2i has been verified, i.e., a calculation result of the function F006 is successful. The management server 10 proceeds to step S225 if it is determined that the authenticity of the signature target data Mn−2i cannot be verified, i.e., the calculation result of the function F006 is a failure. At step S224, the management server 10 indicates on the display section that the signature target data Mn−2i to be verified is authentic, having been successfully verified, and finishes the authenticity verification process.
At step S225, which is performed if a negative determination is made at either step S222 or step S223, the management server 10 indicates, on the display section, the inability to verify the authenticity of the signature target data Mn−2i to be verified, and finishes the authenticity verification process.
Details of Functions
The processes of the functions F001 to F006 will now be described below with reference to
The computing device 605 proceeds to step S304 if it is determined at step S302 that the hash value h(Mni) does not coincide with the second term of Sni, but proceeds to step S303 if it is determined at step S302 that the hash value h(Mni) coincides with the second term of Sni. At step S303, the computing device 605 verifies whether Sign(Tni), which is a third term of Sni, is the right digital signature for the target hash data Tni, which is made up of the first and second terms of Sni, using the corresponding public key. The computing device 605 proceeds to step S304 if it is determined that Sign(Tni) is not the right digital signature for Tni, but proceeds to step S305 if it is determined that Sign(Tni) is the right digital signature.
At step S304, the computing device 605 outputs “failure” to a caller of the function F001, and finishes the process of the function F001. At step S305, the computing device 605 outputs “success” to the caller of the function F001, and finishes the process of the function F001.
At step S403, the computing device 605 checks whether h(Snj) coincides with a first term of Snj+1 repeatedly for i≤j<t, using a loop counter j. The computing device 605 proceeds to step S405 if it is determined that h(Snj) coincides with the first term of Snj+1 for all j, but proceeds to step S404 if it is determined that h(Snj) does not coincide with the first term of Snj+1 for at least one j. At step S404, the computing device 605 outputs “failure” to a caller of the function F002, and finishes the process of the function F002. At step S405, the computing device 605 outputs “success” to the caller of the function F002, and finishes the process of the function F002.
In the process of the function F003, first at step S501, the computing device 605 checks the following two points repeatedly for n−1≤j<end, using the loop counter j. A first point is whether h(Sj0) coincides with a first term of MSj+1, and a second point is whether h(MSj+1) coincides with a second term of Sj+10. The computing device 605 proceeds to step S502 if it is determined that coincidences are found in both the first and second points for all j, but proceeds to step S503 if it is determined that a coincidence is not found in at least one of the first and second points for at least one j.
At step S502, the computing device 605 calls the function F001, calculates F001 (MSend, Send0), and assesses a calculation result thereof (step S502). The computing device 605 proceeds to step S504 if it is determined that the calculation result of the function F001 is successful, but proceeds to step S503 if it is determined that the calculation result of the function F001 is a failure. At step S503, the computing device 605 outputs “failure” to a caller of the function F003, and finishes the process of the function F003. At step S504, the computing device 605 outputs “success” to the caller of the function F003, and finishes the process of the function F003.
In the process of the function F004, first at step S601, the computing device 605 checks the following two points repeatedly for n−1≤j<new, using the loop counter j. A first point is whether h(Sj0) coincides with the first term of MSj+1, and a second point is whether h(MSj+1) coincides with the second term of Sj+10. The computing device 605 proceeds to step S603 if it is determined that coincidences are found in both the first and second points for all j, but proceeds to step S602 if it is determined that a coincidence is not found in at least one of the first and second points for at least one j. At step S602, the computing device 605 outputs “failure” to a caller of the function F004, and finishes the process of the function F004. At step S603, the computing device 605 outputs “success” to the caller of the function F004, and finishes the process of the function F004.
At step S803, the computing device 605 determines whether h(Sni) coincides with an (i+1)th term of MSn+1. The computing device 605 proceeds to step S805 if it is determined at step S803 that h(Sni) coincides with the (i+1)th term of MSn+1, but proceeds to step S804 if it is determined at step S803 that h(Sni) does not coincide with the (i+1)th term of MSn+1. At step S804, the computing device 605 outputs “failure” to a caller of the function F006, and finishes the process of the function F006. At step S805, the computing device 605 outputs “success” to the caller of the function F006, and finishes the process of the function F006.
Effects
Effects of the present embodiment will be described below with reference to
Thus, the milestone data MSn+2i includes a hash value of the signature target data Mn−2i to be verified, the hash value involving repetitive use of hash functions. Therefore, the authenticity of the signature target data Mn−2i to be verified can be verified by verifying the authenticity of the milestone data MSn+1, which is trust data.
Thus, target hash data Tnt of the signature record data Snt for the trust point data Mnt includes a hash value of the signature target data Mn−2i to be verified, the hash value involving repetitive use of hash functions. Therefore, the authenticity of the signature target data Mn−2i to be verified can be verified by verifying that the target hash data Tnt has not been altered.
In
Thus, the milestone data MSn+2i includes the hash value of the signature target data Mn−2i to be verified, the hash value involving repetitive use of hash functions, even when any signature target data Mn−1d between items of milestone data and corresponding signature record data Sn−1d have been deleted as illustrated in
According to the above-described embodiment, the following advantageous effects can be achieved.
(1) A signature management system S, which is a digital signature management system implemented by one or a plurality of computers, includes a signature record generation section 104 configured to generate items of signature record data 80 for items of signature target data 70 inputted in chronological order. The signature record generation section 104 generates an item of milestone data MS as a new item of signature target data 70 every time the number of items of signature target data 70 inputted reaches a predetermined value “m.” As illustrated in
(2) The signature management system S includes a signature record verification section 107 configured to, with respect to to-be-verified signature target data, which is an item of signature target data to be subjected to authenticity verification, check the authenticity of an item of milestone data including a hash value of the to-be-verified signature target data to check the authenticity of the to-be-verified signature target data.
(3) When checking the authenticity of first milestone data, the signature record verification section 107 checks the authenticity of second milestone data, which is another item of milestone data including a hash value of an item of signature record data corresponding to the first milestone data, to check the authenticity of the first milestone data. Accordingly, even when the signature record data corresponding to the first milestone data has expired, the validity of the first milestone data can be checked by checking the authenticity of the second milestone data having an unexpired certificate.
First Modification
In the above-described embodiment, the milestone data is stored in the signature target database 105 of the management server 10. However, the milestone data is a combination of hash values, and therefore does not involve a high risk of confidentiality violation if the hash functions are secure. Therefore, the milestone data may be separately managed in an external server, or may be open to the public.
Second Modification
Components of the signature management system S as described above may be divided or integrated. For example, the signature record generation section 104 and the signature record verification section 107 may be implemented by separate hardware devices. Also, the generation of the milestone data may be performed by a device different from the management server 10.
Third Modification
In the above-described embodiment, the value of “m,” which determines the interval at which items of milestone data are generated, is fixed. However, the value of “m” may not be fixed if the value of “m” can be checked afterward.
The configuration of the functional blocks in each of the embodiment and the modifications thereof described above is merely an example configuration. Some functional sections depicted as separate functional blocks may be integrated, or a function described as being implemented by a single functional block may be divided into two or more functions. Also, a part of the function of each functional block may be implemented by another functional block.
Although the program executed in each of the embodiment and the modifications thereof described above has been described as being stored in the nonvolatile storage device 604, the program may alternatively be stored in a rewritable storage device. Alternatively, the program may be loaded as necessary from a nontemporary storage device of another device via the communication device 601 or an input/output interface (not shown) and a usable medium. Here, examples of the medium include a nontemporary storage medium detachably attached to the input/output interface, communication media, e.g., wired, wireless, optical, and other networks, and a carrier wave and a digital signal propagating over such a network. Some or all of the functions implemented by the program may be implemented by a hardware circuit or a field programmable gate array (FPGA).
The embodiment and the modifications thereof described above may be combined as appropriate. While various embodiments and modifications have been described above, it should be understood that the present invention is not limited thereto. The scope of the present invention includes other embodiments within the scope of the technical idea of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2020-074817 | Apr 2020 | JP | national |