WO2012176408A1 - 署名検証方法、署名検証システム及び署名検証プログラム - Google Patents

署名検証方法、署名検証システム及び署名検証プログラム Download PDF

Info

Publication number
WO2012176408A1
WO2012176408A1 PCT/JP2012/003896 JP2012003896W WO2012176408A1 WO 2012176408 A1 WO2012176408 A1 WO 2012176408A1 JP 2012003896 W JP2012003896 W JP 2012003896W WO 2012176408 A1 WO2012176408 A1 WO 2012176408A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
signature
key
multiplying
secret key
Prior art date
Application number
PCT/JP2012/003896
Other languages
English (en)
French (fr)
Inventor
勇 寺西
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2012176408A1 publication Critical patent/WO2012176408A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Definitions

  • the present invention relates to a signature verification method, a signature verification system, and a signature verification program for safely signing and verifying even if partial information of a secret key is leaked.
  • the signature method is an essential technique for assuring the authenticity of electronic documents.
  • the authenticity of a document is guaranteed by adding data called a signature sentence to the document.
  • the signature text is calculated using data called a secret key known only to the creator. Therefore, it is expected that the signature text is not forged by another user who does not know the secret key.
  • Non-Patent Document 1 to Non-Patent Document 6.
  • Non-Patent Document 5 and Non-Patent Document 6 describe an example of a method for creating a signature text.
  • the methods described in Non-Patent Document 5 and Non-Patent Document 6 create a signature sentence using a method called “knowledge signature”.
  • the “signature of knowledge” is a method of creating a signature sentence by proving that the secret key sk corresponding to the public key pk is known without revealing the secret key sk (zero knowledge proof).
  • a side-channel attack is a guess of a secret key by observing physical information such as electromagnetic waves emitted from the CPU of a device that calculates a signature sentence (hereinafter referred to as a signature device) and CPU power consumption. Attack. It is also known that when an existing signature scheme is used, its security against side channel attacks may not be guaranteed. In order to prevent such a risk, a technique for updating the secret key at a constant frequency and replacing it with a new secret key is known (see, for example, Non-Patent Documents 1, 2, 3, and 4).
  • Patent Document 1 describes a signature generation device that prevents Transcript attack on signature data.
  • the signature generation apparatus described in Patent Document 1 uses a signature-type key generation method in which a plurality of secret keys correspond to one public key.
  • the signature generation apparatus described in Patent Literature 1 generates signature data using a secret key that is different from the secret key used for the previous signature among a plurality of secret keys generated using the key generation method.
  • Patent Document 2 describes a method of verifying an electronic signature using a public key.
  • the NTRU method is used as the public key encryption method.
  • Non-Patent Document 5 and Non-Patent Document 6 do not describe performing key update.
  • Non-Patent Document 1 and the first method described in Patent Document 2 are methods that assume that data is not leaked during signature sentence calculation. Therefore, in the methods described in Non-Patent Document 1 and Non-Patent Document 2, it is difficult to say that safety is ensured.
  • the second method described in Non-Patent Document 2 also has a problem that the signature text itself leaks information on the secret key. That is, in the second method described in Non-Patent Document 2, it is difficult to say that the security is ensured, and that the secret key has to be updated every time a signature sentence is created, so the efficiency is poor. There's a problem.
  • Non-Patent Document 3 and Non-Patent Document 4 since the secret key can be updated without updating the public key, the confidentiality of the secret key can be recovered. Therefore, even if the partial information of the secret key is leaked, it is possible to ensure safety. Also, in the methods described in Non-Patent Document 3 and Non-Patent Document 4, unlike the methods of Non-Patent Document 1 and Non-Patent Document 2, the secret key information is not leaked from the created signature text itself. Absent. Furthermore, with the methods described in Non-Patent Document 3 and Non-Patent Document 4, it is possible to ensure safety even if data leaks during signature sentence calculation.
  • Non-Patent Document 3 and Non-Patent Document 4 have a problem that signature verification cannot be performed efficiently.
  • signature verification is performed by performing an operation (scalar multiplication) for calculating g x at a point on an elliptic curve a plurality of times.
  • an operation scaling multiplication
  • the present invention provides a signature that can efficiently create a signature sentence and verify a signature sentence while ensuring safety even when a situation where partial information of a private key is leaked is assumed.
  • An object is to provide a verification method, a signature verification system, and a signature verification program.
  • the elements included in the first set and the second set are included.
  • the data indicated by the pair and a part of the public key data are used as public keys
  • the data indicated by the second set is stored in the key information storage means as update data used when updating the secret key.
  • the fourth set with the number element selected is extracted and included in the first set in the public key stored in the key information storage means
  • Key element storage and the first hash value is calculated based on the data including that value and plaintext.
  • This is a set of values obtained by raising each element included in the third set indicating the secret key stored in the means to the power of the first hash value and multiplying the power raised by the corresponding element included in the fourth set
  • Calculate the fifth set output the hash value and the data including the fifth set as a signature sentence, the element included in the first set in the public key stored in the key information storage means, and the fifth set
  • a value obtained by multiplying all bilinear mappings of corresponding values included in the set is calculated as an intermediate value, and a value obtained by multiplying a part of the public key data by a value obtained by multiplying the hash value by -1 and the intermediate value
  • the second hash value calculated based on the data including the multiplied value and plaintext matches the first hash value.
  • the signature sentence is rejected and each element included in the second set indicating the update data stored in the key information storage means is received.
  • the secret key stored in the key information storage means is updated with the data indicated by the value set obtained by exponentiation with an arbitrary value and the corresponding value included in the third set multiplied by the raised value. It is characterized by that.
  • the signature verification system uses a public key, a secret key, key generation means for generating update data that is data used for updating the secret key, plaintext, a public key, and a secret key.
  • Signing means for creating the plaintext signature text
  • verification means for verifying the validity between the public key and the plaintext and the signature text
  • a secret key updating means for updating the secret key using the update data;
  • the key generation means extracts two sets in which a predetermined number of elements are selected from the group, and selects the two sets of elements, the key generation means includes the elements included in the first set and the second set.
  • the key information is calculated by using the data indicated by the third set as the secret key, the data indicated by the first set and a part of the public key as the public key, and the data indicated by the second set as the update data.
  • the signing means extracts the fourth set in which the number of elements is selected from the group, and the elements included in the first set in the public key stored in the key information storage means; A value obtained by multiplying all the corresponding original bilinear maps included in the fourth set is calculated, a first hash value is calculated based on the data including the value and plaintext, and stored in the key information storage means.
  • a fifth set that is a set of values obtained by raising each element included in the third set indicating the secret key to the power of the first hash value and multiplying the power raised by the corresponding element included in the fourth set And the data including the hash value and the fifth set is created as a plain text signature sentence.
  • a value obtained by multiplying all elements of the first set in the public key stored in the key information storage means and the bilinear mapping of the corresponding values in the fifth set is calculated as an intermediate value, and is made public.
  • a second hash value calculated based on data including a plaintext and a value obtained by multiplying a part of the data of the key by a value obtained by multiplying the hash value by -1 and the intermediate value is the first hash value.
  • the signature text is accepted if they match, the signature text is rejected if the second hash value does not match the first hash value, and the secret key update means indicates the update data stored in the key information storage means.
  • Each element included in the set is raised to a power with an arbitrary value, and the data indicated by the set of values obtained by multiplying the raised value by the corresponding element included in the third set is stored in the key information storage means as a new secret key.
  • the stored secret key is updated.
  • a signature verification program includes a key generation process for generating, in a computer, a public key, a secret key, and update data that is data used for updating the secret key, plaintext, a public key, and a secret key.
  • Signature processing to create a signature text of the plaintext verification processing to verify the validity between the public key and the plaintext and the signature text, and private key update to update the private key using the update data
  • the process is executed, and in the key generation process, two sets are selected from which a predetermined number of elements are selected from the group, and when the two sets of elements are selected, the elements included in the first set and the second Select the original set whose value is 0 when all the corresponding original bilinear mappings included in the set are multiplied, extract the third set with the number of elements selected from the group, and make the first set Multiply all included elements by the corresponding bilinear mapping in the third set Data that is calculated as a part of data of the public key, the data indicated by the third set is a secret key, the data indicated
  • All of the bilinear mappings of the elements included in the first set and the corresponding values included in the fifth set in the public key stored in the key information storage means are created as plain text signature texts Calculated based on data including plaintext and a value obtained by multiplying a value obtained by multiplying the hash value by a value obtained by multiplying the hash value by -1 and the intermediate value. If the second hash value matches the first hash value, the signature text is accepted, and if the second hash value does not match the first hash value, the signature text is rejected.
  • a set of values obtained by exponentiating each element included in the second set indicating the update data stored in the storage means with an arbitrary value and multiplying the raised value by the corresponding element included in the third set Update the secret key stored in the key information storage means with the data as a new secret key It is characterized by making it.
  • FIG. 1 is a block diagram showing an embodiment of a signature verification system according to the present invention.
  • the signature verification system according to this embodiment includes a signature device 11 and a verification device 12.
  • the signature device 11 includes a calculation unit 111 and a storage unit 112.
  • the verification device 12 includes a calculation unit 121 and a storage unit 122.
  • the signature verification system can calculate data or store data in accordance with a user instruction.
  • the signature device 11 and the verification device 12 each include communication means (not shown).
  • the signature device 11 and the verification device 12 transmit / receive data to / from other devices using this communication unit.
  • the calculation units 111 and 121 are realized by using, for example, a CPU of a computer.
  • the storage units 112 and 122 are realized using, for example, a computer memory or a hard disk.
  • the communication means communicates with each other via the Internet, for example.
  • a system parameter data called a system parameter is known in advance to the signature device 11 and the verification device 12 and stored in the storage units 112 and 122 of each device.
  • the system parameters include a prime number q, a group G, H, T of order q, and a bilinear map e: G ⁇ H ⁇ T.
  • the system parameter includes sufficient information for performing group operations in the groups G, H, and T.
  • the system parameters include sufficient information for calculating the bilinear map e: G ⁇ H ⁇ T.
  • elliptic curve groups and their prime order subgroups.
  • the generation source of the subgroup is also required.
  • the bilinear map e for example, Weil pairing or Tate pairing can be used.
  • the signature device 11 and the verification device 12 read system parameters from the storage units 112 and 122 as necessary, and use them for various calculations.
  • the calculation unit 111 of the signature device 11 includes a key generation unit 113, a secret key update unit 114, and a signature unit 115.
  • the key generation unit 113 creates a public key, a secret key, and update data, and stores them in the storage unit 112.
  • the update data is data used when a secret key update unit 114 (to be described later) updates a secret key.
  • the signature device 11 includes the key generation unit 113
  • a device different from the signature device 11 may include the key generation unit 113. That is, the key generation unit 113 provided in a device different from the signature device 11 creates a public key, a secret key, and update data, and stores the output result in the storage unit 112 of the signature device 11. Good.
  • the secret key update unit 114 reads the secret key and update data from the storage unit 112. Then, the secret key update unit 114 updates the secret key and causes the storage unit 112 to store the updated new secret key.
  • the signing unit 115 reads the public key, the secret key, and the message from the storage unit 112. Then, the signature unit 115 creates a signature text and outputs a message with the signature text added to another device.
  • the message means information to which a signature sentence is added.
  • the message may be written as a document or plain text. In the present embodiment, it is assumed that the output message and signature text are stored in the storage unit 122 of the verification device 12.
  • the operations of the key generation unit 113, the secret key update unit 114, and the signature unit 115 will be described later.
  • the key generation unit 113, the secret key update unit 114, and the signature unit 115 are realized by a CPU of a computer that operates according to a program (signature verification program).
  • the program may be stored in the storage unit 112 of the signature device 11, and the CPU may read the program and operate as the key generation unit 113, the secret key update unit 114, and the signature unit 115 according to the program.
  • the key generation unit 113, the secret key update unit 114, and the signature unit 115 may each be realized by dedicated hardware.
  • the calculation unit 121 of the verification device 12 includes verification means 123.
  • the verification unit 123 reads the public key, the message, and the signature sentence from the storage unit 122. Then, the verification unit 123 verifies the read signature text and outputs information indicating whether the signature text is accepted or rejected. The operation of the verification unit 123 will be described later.
  • the verification unit 123 is realized by a CPU of a computer that operates according to a program (verification verification program).
  • FIG. 2 is a block diagram showing an embodiment of a signature device according to the present invention.
  • the signature device illustrated in FIG. 2 includes a calculation unit 21, an input / output unit 22, a storage unit 23, and a communication unit 24.
  • the calculation unit 21 corresponds to the calculation unit 111 and the calculation unit 121 illustrated in FIG.
  • the storage unit 23 corresponds to the storage unit 112 and the storage unit 122 illustrated in FIG.
  • the communication unit 24 corresponds to a communication unit not shown in the signature verification system illustrated in FIG.
  • the input / output unit 23 inputs a message for creating a signature sentence, outputs a verification result, and the like.
  • the key generation unit 113 of the signature device 11 creates a public key pk, a secret key sk, and update data up, and stores these data in the storage unit 112. Thereafter, the signature device 11 publishes the public key pk.
  • the verification device 12 receives the public key pk that has been released and stores it in the storage unit 122.
  • the secret key update unit 114 of the signature device 11 reads the secret key sk and the update data up from the storage unit 112 at an appropriate frequency. Then, the secret key update unit 114 updates the secret key based on the secret key sk, and stores the new secret key sk in the storage unit 112.
  • the frequency with which the secret key update unit 114 of the signature device 11 updates the secret key is arbitrary. The higher the frequency of updating, the higher the security is guaranteed.
  • the message M to be signed is stored in the storage unit 112 of the signature device 11 at an arbitrary timing.
  • the signature unit 115 of the signature device 11 reads the message M, the public key pk, and the secret key sk from the storage unit 122. Then, the signature unit 115 creates a signature sentence ⁇ based on the message M, the public key pk, and the secret key sk.
  • the signature unit 115 transmits the message M and the created signature sentence ⁇ to the verification device 12.
  • the verification device 12 receives the message M and the signature sentence ⁇ and stores them in the storage unit 122.
  • the verification unit 123 of the verification device 12 reads the public key pk, the message M, and the signature sentence ⁇ from the storage unit 122. Then, the verification unit 123 determines whether to accept or reject the signature sentence ⁇ based on the public key pk, the message M, and the signature sentence ⁇ .
  • the signature device 11 may disclose the public key pk by any method.
  • the signature device 11 may publish the public key pk using a PKI (Public Key Infrastructure) mechanism.
  • PKI Public Key Infrastructure
  • the signature device 11 needs to store the secret key in a manner that is as secret and not tampered as possible.
  • the signature device 11 does not necessarily need to keep the update data up secretly.
  • the signature device 11 needs to store the update data up in a manner that does not falsify.
  • FIG. 3 is a flowchart illustrating an example of processing in which the key generation unit 113 creates a public key, a secret key, and update data.
  • n is an integer of 2 or more.
  • the key generation unit 113 randomly selects C from the group G and randomly selects W from the group H.
  • the groups G, H, and T are groups of prime number q and order q.
  • the key can be generated even if the order is not the prime number q.
  • the order is a prime number or that the prime factor is small.
  • the key generation means 113 has two sets (B [1],..., B [n]) and (V [1],. .., V [n]) are extracted.
  • the key generation unit 113 outputs (V [1],..., V [n]) as update data.
  • FIG. 4 is a flowchart showing an example of processing in which the secret key update unit 114 updates the secret key.
  • the secret key update means 114 randomly selects s ⁇ Z / qZ and calculates (Y [1] V [1] ⁇ s,..., Y [n] V [n] ⁇ s) (step S42).
  • the secret key update unit 114 powers each element of (V [1],..., V [n]) by an arbitrary value s, and adds (Y [1]) to the power value. ,..., Y [n]), the data indicated by the set of values multiplied by the corresponding elements is updated as a new secret key.
  • FIG. 5 is a flowchart showing an example of processing in which the signature unit 115 creates a signature sentence.
  • the signature unit 115 reads the plaintext M and (B [1],..., B [n]) from the storage unit 112 (step S51).
  • Hash is a hash function whose domain is T ⁇ ⁇ 0, 1 ⁇ * and whose range is Z / qZ.
  • the signature unit 115 extracts (R [1],..., R [n]) from the group H.
  • the signature unit 115 powers the element included in (Y [1],..., Y [n]) with the hash value c, and adds (R [1],..., R [ n]) is multiplied by the corresponding element (Z [1],..., Z [n]). Then, the signature unit 115 outputs the hash value c and (Z [1],..., Z [n]) as a signature sentence.
  • FIG. 6 is a flowchart illustrating an example of processing in which the verification unit 123 verifies the signature text.
  • the verification unit 123 calculates the value obtained by multiplying e (B [1], Z [1])... E (B [n], Z [n]) by ⁇ ⁇ c and the plaintext M. Hash value is calculated based on data including The verification unit 123 accepts the signature sentence ⁇ when the value matches the hash value c, and rejects the signature sentence ⁇ when the value does not match the hash value c.
  • signature text creation and signature text verification can be performed efficiently while ensuring security even if partial information of the private key is assumed to be leaked. be able to.
  • Non-Patent Document 5 and Non-Patent Document 6 are almost the same methods proposed at the same time.
  • the methods described in Non-Patent Document 5 and Non-Patent Document 6 do not include a function for updating a key.
  • Non-Patent Document 1 and Non-Patent Document 2 proposed thereafter are completely different from the methods described in Non-Patent Document 5 and Non-Patent Document 6, and have the function of updating the key. Is included.
  • the methods described in Non-Patent Document 1 and Non-Patent Document 2 are methods that assume that data does not leak during signature text calculation. However, this assumption is a part assumption related to signature and verification, not a part assumption related to key update.
  • the signature verification method according to the present embodiment has the effect of being more efficient than these methods while satisfying the same properties as the methods described in Non-Patent Document 3 and Non-Patent Document 4.
  • the signature verification method according to the present exemplary embodiment appropriately performs assumptions (random oracle) necessary for showing safety, as compared with the methods described in Non-Patent Document 3 and Non-Patent Document 4. In order to improve efficiency. That is, in practice, signature processing is performed after appropriately setting assumptions, and thus the signature verification method in the present embodiment can be said to be a signature verification method that is more practical.
  • the secret key sk (y [1],..., Y [n])
  • the public key pk (U, B [1], ..., B [n]).
  • U B [1] ⁇ y [1]... B [1] ⁇ y [n] is satisfied.
  • Each y [i] is an element of Z / pZ
  • g [i] is an element of a group.
  • Non-Patent Document 5 and Non-Patent Document 6 create a signature sentence using a method called “knowledge signature”, but do not include a function of updating a key. Therefore, in the methods described in Non-Patent Document 3 and Non-Patent Document 4, the forms of the public key and the secret key are changed in order to adopt the key update method according to the method described in Non-Patent Document 1. Since the method described in Non-Patent Document 4 is similar to the method described in Non-Patent Document 3, hereinafter, the signature method according to the present invention and the method described in Non-Patent Document 3 will be compared and described. .
  • the secret key is a set of elements y [i] of Z / pZ.
  • Non-Patent Document 3 ( ⁇ , B [1],..., B [n]).
  • E (•, •) is a bilinear map.
  • the secret key has been changed from the group y [i] of Z / pZ to the group Y [i] of the group.
  • an efficient “knowledge signing” method is known.
  • such an efficient method is not known when the secret key is the original set of groups. That is, in the method described in Non-Patent Document 3, the signature methods described in Non-Patent Document 5 and Non-Patent Document 6 cannot be used.
  • Non-Patent Document 3 the signature is performed by using a technique called Groth-Sahai proof and a technique called Waters function.
  • a technique called Groth-Sahai proof a technique called Groth-Sahai proof
  • Waters function a technique called Waters function
  • “Knowledge signature” includes three phases. In the first phase, a random number r is selected, and data “commitment” is calculated using the random number r and the public key pk. In the second phase, the hash value of the commitment is calculated. This hash value is called a “challenge”. In the third phase, data called “response” is calculated from the random number r and the secret key sk selected in the first phase.
  • the element of Z / pZ is selected as the random number r. If the secret key sk is also an element of Z / pZ, the “response” can be calculated by performing an operation of adding or multiplying the random number r and the secret key sk in the third phase. However, it is assumed that the secret key sk is not an element of Z / pZ but an original group of groups. In this case, the above-described addition or multiplication cannot be performed between the original group of the group and the random number r. For this reason, the “response” cannot be calculated.
  • the random number r is also an original set of groups. By doing in this way, the problem mentioned above can be avoided.
  • the process of calculating the r-th power of the public key pk is performed. In this case, if the random number r is a group element, the calculation “r-th power” is performed. Loses its meaning. Therefore, pairing is used in the signature verification method according to the present invention.
  • the public key pk is a set including group elements B [1],..., B [n], and r is a group element R [1],. ].
  • e (B [1], R [1])... E (B [n] , R [n]).
  • This ⁇ is used as “commitment”.
  • the meaningless calculation of “public key raised to the r-th power” is replaced with a meaningful calculation of “pairing calculation”. Therefore, the problem mentioned above can be avoided.
  • the efficiency of the signature verification method according to the present invention is compared with the methods described in Non-Patent Document 3 and Non-Patent Document 4.
  • the number of scalar multiplications performed at the time of signature and verification is the number of scalar multiplications performed at the time of signature and verification by the signature verification method according to the present invention.
  • O (k) times O (k) times.
  • k is a security parameter.
  • k is set to about 160. In this case, it can be said that the signature verification method according to the present invention is about 160 times more efficient than the methods described in Non-Patent Document 3 and Non-Patent Document 4.
  • the signature generation apparatus described in Patent Document 1 uses NTRU.
  • discrete logarithm-based encryption is performed.
  • homomorphism g ⁇ xg ⁇ y g ⁇ ⁇ x + y ⁇ holds.
  • NTRU does not satisfy this property.
  • FIG. 7 is a block diagram showing an example of the minimum configuration of the signature verification system according to the present invention.
  • a signature verification system according to the present invention generates a public key (for example, pk), a secret key (for example, sk), and update data (for example, up) that is data used for updating the secret key.
  • a public key for example, pk
  • a secret key for example, sk
  • update data for example, up
  • the means 81 for example, key generation means 113
  • the plaintext for example, plaintext M
  • the public key for example, the private key
  • the signature means 82 for example, ⁇
  • signature means 115 for example, verification means 123
  • secret key update means for updating the secret key using the update data 84 (for example, secret key updating means 114).
  • the key generation unit 81 selects two groups (for example, (B [1],..., B []) that select a predetermined number (for example, n) elements from a group (for example, groups G and H). n]), (V [1],..., V [n])).
  • the key generation means 81 selects the two sets of elements, the bilinear mapping of the elements included in the first set and the corresponding elements included in the second set (for example, e: G ⁇ H ⁇ T) Select the original set whose value obtained by multiplying all of is 0.
  • the key generation unit 81 extracts a third set (for example, (Y [1],..., Y [n])) that selects the number (n) of elements from the group (for example, H n ).
  • the key generation means 81 uses a value (for example, ⁇ ) obtained by multiplying all of the elements included in the first set and the corresponding original bilinear mapping included in the third set as partial data of the public key. calculate.
  • the key generation means 81 uses the data indicated by the third set as a secret key, the data indicated by the first set and a part of the public key as a public key, and the data indicated by the second set as update data.
  • Each is stored in the key information storage means 90 (for example, the storage unit 112).
  • the signing means 82 extracts a fourth set (for example, (R [1],..., R [n])) that selects the number (n) of elements from the group (for example, H).
  • the signature unit 82 multiplies the elements included in the first set in the public key stored in the key information storage unit 90 and all the corresponding original bilinear maps included in the fourth set (for example, , ⁇ ).
  • the signature unit 82 calculates a first hash value (for example, a hash value c) based on the data including the value and plain text.
  • the signature unit 82 raises each element included in the third set indicating the secret key stored in the key information storage unit 90 to the power of the first hash value.
  • the signing means 82 is a fifth set (for example, (Z [1],..., Z [n]) that is a set of values obtained by multiplying the raised value by the corresponding element included in the fourth set. ).
  • the signature unit 82 creates data including the hash value and the fifth set as a plain text signature sentence (for example, a signature sentence ⁇ ).
  • the verification unit 83 intermediates a value obtained by multiplying all of the elements included in the first set in the public key stored in the key information storage unit 90 and the bilinear mapping of the corresponding values included in the fifth set. Calculate as a value.
  • the verification means 83 is based on data including a value obtained by multiplying a partial value of the public key by a value obtained by multiplying the hash value by ⁇ 1 (for example, ⁇ ⁇ c ), an intermediate value, and plaintext.
  • the signature sentence is accepted when the calculated second hash value matches the first hash value.
  • the verification unit 83 rejects the signature sentence when the second hash value does not match the first hash value.
  • the secret key update unit 84 raises each element included in the second set indicating the update data stored in the key information storage unit 90 to an exponential value (for example, s).
  • the secret key updating means 84 sets a value set (for example, (Y [1] V [1] ⁇ s,..., Y [n]) obtained by multiplying the raised value by the corresponding element included in the third set. ]
  • the secret key stored in the key information storage means 90 is updated with the data indicated by V [n] ⁇ s)) as a new secret key.
  • the present invention is preferably applied to a signature verification system that securely signs and verifies even if partial information of a private key leaks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)

Abstract

鍵生成手段81は、公開鍵と、秘密鍵と、秘密鍵の更新に用いられるデータである更新用データとを生成する。署名手段82は、平文と、公開鍵と、秘密鍵とを用いて、その平文の署名文を作成する。検証手段83は、公開鍵と平文と署名文との間の妥当性を検証する。秘密鍵更新手段84は、更新用データを用いて秘密鍵を更新する。署名手段82は、群から予め定めた個数の元を選択した第四の組を抽出する。署名手段115は、第一の組に含まれる元と、第四の組に含まれる対応する元の双線形写像の全てを乗じた値を計算する。

Description

署名検証方法、署名検証システム及び署名検証プログラム
 本発明は、秘密鍵の部分情報が漏洩しても安全に署名および検証を行う署名検証方法、署名検証システム及び署名検証プログラムに関する。
 署名方式は、電子的な文書の真正性を保証するために必須の技術である。署名方式では、文書に署名文というデータを付加する事で、その文書の真正性を保証する。署名文は、作成者のみが知る秘密鍵というデータを用いて計算される。したがって、秘密鍵を知らない他のユーザによって署名文が偽造されないことが期待される。
 なお、署名及び検証を行う方法(以下、署名検証方法と記す。)に関する技術は、例えば、非特許文献1~非特許文献6に記載されている。例えば、署名文を作成する方法の一例は、非特許文献5および非特許文献6に記載されている。非特許文献5および非特許文献6に記載された方法は、「知識の署名」という方法を用いて署名文を作成する。「知識の署名」とは、公開鍵pkに対応する秘密鍵skを知っていることを、秘密鍵skを明かさずに証明すること(ゼロ知識証明)により署名文を作成する方法である。
 また、署名文を計算する装置がサイドチャネル攻撃に長時間曝されると、秘密鍵が完全に漏洩してしまう恐れがある。サイドチャネル攻撃とは、署名文を計算する装置(以下、署名装置と記す)のCPUから放たれる電磁波や、CPUの消費電力量のような物理的な情報を観測する事で秘密鍵を推測する攻撃である。既存の署名方式を用いた場合、サイドチャネル攻撃に対して、その安全性が保証されない可能性があることも知られている。そこで、このような危険性を防ぐため、一定頻度で秘密鍵を更新し、新しい秘密鍵に取り替える技術が知られている(例えば、非特許文献1,2,3,4参照)。
 なお、特許文献1には、署名データに対するTranscript attack を防止する署名生成装置が記載されている。特許文献1に記載された署名生成装置では、一つの公開鍵に複数の秘密鍵が対応している署名方式の鍵生成方法を用いている。特許文献1に記載された署名生成装置は、その鍵生成方法を用いて生成される複数の秘密鍵のうち、前回署名に利用した秘密鍵とは異なる秘密鍵を用いて署名データを生成する。
 また、特許文献2には、公開鍵を用いて電子署名を検証する方法が記載されている。特許文献2に記載された方法では、公開鍵暗号方式としてNTRU方式を用いている。
再表WO2006/077820号 特開2009-104575号公報
Yevgeniy Dodis, Kristiyan Haralambiev, Adriana Lopez-Alt, Daniel Wichs. "Cryptography Against Continuous Memory Attacks." FOCS 2010. Zvika Brakerski, Yael Tauman Kalai, Jonathan Katz, Vinod Vaikuntanathan. Overcoming the Hole in the Bucket: Public-Key "Cryptography Resilient to Continual Memory Leakage." FOKS 2010. Tal Malkin, Isamu Teranishi, Yevgeniy Vahlis, Moti Yung. "Signatures Resilient to Continual Leakage on Memory and Computation." eprint 522. Yevgeniy Dodis, Kristiyan Haralambiev, Adriana Lopez-Alt, and Daniel Wichs. "Cryptography Against Continuous Memory Attacks." eprint 196. Joel Alwen, Yevgeniy Dodis, and Daniel Wichs: "Leakage-Resilient Public-Key Cryptography in the Bounded-Retrieval Model." CRYPTO 2009: pp.36-54. Jonathan Katz, and Vinod Vaikuntanathan: "Signature Schemes with Bounded Leakage Resilience." ASIACRYPT 2009: pp.703-720
 上述の通り、サイドチャネル攻撃によって秘密鍵の部分情報が漏洩する可能性がある。そのため、秘密鍵の部分情報が漏洩しても、安全性が担保される署名検証方法が望まれる。そのためには、一定頻度で秘密鍵を更新する方法が有効である。しかし、秘密鍵と公開鍵は通常はセットで生成されるため、単純な方法で秘密鍵を更新しようとすると、公開鍵も更新する必要が生じてしまう。公開鍵は、世界中に公開されるデータなので、一度公開された公開鍵を更新するのは容易でない。したがって、公開鍵を更新せずに秘密鍵だけを更新する方法が望まれる。なお、非特許文献5および非特許文献6に記載された方法では、鍵更新を行うことは記載されていない。
 非特許文献1に記載された方法や、特許文献2に記載された第1の方法は、署名文計算時にデータが漏洩しないことを仮定した方法である。そのため、非特許文献1および非特許文献2に記載された方法では、安全性が担保されているとは言い難い。また、非特許文献2に記載された第2の方法も、署名文それ自身が秘密鍵の情報を漏洩してしまうという問題がある。すなわち、非特許文献2に記載された第2の方法では、安全性が担保されているとは言い難く、また、署名文を作成するたびに秘密鍵を更新しなければならないため効率が悪いという問題がある。
 一方、非特許文献3および非特許文献4に記載された方法では、公開鍵を更新することなく秘密鍵を更新することができるため、秘密鍵の秘匿性を回復することができる。そのため、秘密鍵の部分情報が漏洩しても、安全性を担保することが可能である。また、非特許文献3および非特許文献4に記載された方法では、非特許文献1や非特許文献2の方法とは異なり、作成した署名文それ自身からは秘密鍵の情報は漏洩することはない。さらに、非特許文献3および非特許文献4に記載された方法では、署名文計算時にデータが漏洩しても安全性を担保することが可能である。
 しかし、非特許文献3および非特許文献4に記載された方法では、署名の検証が効率よく行うことができないという問題がある。一般に、多くの署名検証方法では、楕円曲線上の点においてgを計算する演算(スカラー倍算)を複数回行うことで署名の検証が行われる。非特許文献3および非特許文献4に記載された方法でも、演算処理が複数回行われるため、この計算により計算コストが増大してしまうという問題がある。そのため、秘密鍵の部分情報が漏洩する状況が想定される場合であっても、安全性を担保しつつ、署名文の作成および署名文の検証が効率的に行えることが望ましい。
 そこで、本発明は、秘密鍵の部分情報が漏洩する状況が想定される場合であっても、安全性を担保しつつ、署名文の作成および署名文の検証を効率的に行うことができる署名検証方法、署名検証システムおよび署名検証プログラムを提供することを目的とする。
 本発明による署名検証方法は、群から予め定めた個数の元を選択した組を2組抽出し、2組の元を選択する際、第一の組に含まれる元と第二の組に含まれる対応する元の双線形写像の全てを乗じた値が0になる元の組を選択し、群から上記個数の元を選択した第三の組を抽出し、第一の組に含まれる元と、第三の組に含まれる対応する元の双線形写像の全てを乗じた値を、公開鍵の一部のデータとして計算し、第三の組が示すデータを秘密鍵とし、第一の組が示すデータ及び公開鍵の一部のデータを公開鍵とし、第二の組が示すデータを秘密鍵の更新時に用いるデータである更新データとして、鍵情報記憶手段にそれぞれ記憶させ、群から上記個数の元を選択した第四の組を抽出し、鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、第四の組に含まれる対応する元の双線形写像の全てを乗じた値を計算し、その値と平文とを含むデータに基づいて第一ハッシュ値を計算し、鍵情報記憶手段に記憶された秘密鍵を示す第三の組に含まれる各元を第一ハッシュ値でべき乗し、そのべき乗した値に第四の組に含まれる対応する元を乗じた値の組である第五の組を計算し、ハッシュ値および第五の組を含むデータを署名文として出力し、鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、第五の組に含まれる対応する値の双線形写像の全てを乗じた値を中間値として計算し、公開鍵の一部のデータをハッシュ値に-1を乗じた値でべき乗した値と中間値とを乗じた値と平文とを含むデータに基づいて計算される第二ハッシュ値が第一ハッシュ値と一致する場合に署名文を受理し、第二ハッシュ値が第一ハッシュ値と一致しない場合に署名文を拒否し、鍵情報記憶手段に記憶された更新データを示す第二の組に含まれる各元を任意の値でべき乗し、そのべき乗した値に第三の組に含まれる対応する元を乗じた値の組が示すデータを新たな秘密鍵として鍵情報記憶手段に記憶された秘密鍵を更新することを特徴とする。
 本発明による署名検証システムは、公開鍵と、秘密鍵と、秘密鍵の更新に用いられるデータである更新用データとを生成する鍵生成手段と、平文と、公開鍵と、秘密鍵とを用いて、その平文の署名文を作成する署名手段と、公開鍵と平文と署名文との間の妥当性を検証する検証手段と、更新用データを用いて秘密鍵を更新する秘密鍵更新手段とを備え、鍵生成手段が、群から予め定めた個数の元を選択した組を2組抽出し、その2組の元を選択する際、第一の組に含まれる元と第二の組に含まれる対応する元の双線形写像の全てを乗じた値が0になる元の組を選択し、群から上記個数の元を選択した第三の組を抽出し、第一の組に含まれる元と、第三の組に含まれる対応する元の双線形写像の全てを乗じた値を公開鍵の一部のデータとして計算し、第三の組が示すデータを秘密鍵とし、第一の組が示すデータ及び公開鍵の一部のデータを公開鍵とし、第二の組が示すデータを更新用データとして、鍵情報記憶手段にそれぞれ記憶させ、署名手段が、群から上記個数の元を選択した第四の組を抽出し、鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、第四の組に含まれる対応する元の双線形写像の全てを乗じた値を計算し、その値と平文とを含むデータに基づいて第一ハッシュ値を計算し、鍵情報記憶手段に記憶された秘密鍵を示す第三の組に含まれる各元を第一ハッシュ値でべき乗し、そのべき乗した値に第四の組に含まれる対応する元を乗じた値の組である第五の組を計算し、ハッシュ値および第五の組を含むデータを平文の署名文として作成し、検証手段が、鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、第五の組に含まれる対応する値の双線形写像の全てを乗じた値を中間値として計算し、公開鍵の一部のデータをハッシュ値に-1を乗じた値でべき乗した値と中間値とを乗じた値と平文とを含むデータに基づいて計算される第二ハッシュ値が第一ハッシュ値と一致する場合に署名文を受理し、第二ハッシュ値が第一ハッシュ値と一致しない場合に署名文を拒否し、秘密鍵更新手段が、鍵情報記憶手段に記憶された更新データを示す第二の組に含まれる各元を任意の値でべき乗し、そのべき乗した値に第三の組に含まれる対応する元を乗じた値の組が示すデータを新たな秘密鍵として鍵情報記憶手段に記憶された秘密鍵を更新することを特徴とする。
 本発明による署名検証プログラムは、コンピュータに、公開鍵と、秘密鍵と、秘密鍵の更新に用いられるデータである更新用データとを生成する鍵生成処理、平文と、公開鍵と、秘密鍵とを用いて、その平文の署名文を作成する署名処理、公開鍵と平文と署名文との間の妥当性を検証する検証処理、および、更新用データを用いて秘密鍵を更新する秘密鍵更新処理を実行させ、鍵生成処理で、群から予め定めた個数の元を選択した組を2組抽出させ、その2組の元を選択する際、第一の組に含まれる元と第二の組に含まれる対応する元の双線形写像の全てを乗じた値が0になる元の組を選択させ、群から上記個数の元を選択した第三の組を抽出させ、第一の組に含まれる元と、第三の組に含まれる対応する元の双線形写像の全てを乗じた値を公開鍵の一部のデータとして計算させ、第三の組が示すデータを秘密鍵とし、第一の組が示すデータ及び公開鍵の一部のデータを公開鍵とし、第二の組が示すデータを更新用データとして、鍵情報記憶手段にそれぞれ記憶させ、署名処理で、群から上記個数の元を選択した第四の組を抽出させ、鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、第四の組に含まれる対応する元の双線形写像の全てを乗じた値を計算させ、その値と平文とを含むデータに基づいて第一ハッシュ値を計算させ、鍵情報記憶手段に記憶された秘密鍵を示す第三の組に含まれる各元を第一ハッシュ値でべき乗し、そのべき乗した値に第四の組に含まれる対応する元を乗じた値の組である第五の組を計算させ、ハッシュ値および第五の組を含むデータを平文の署名文として作成させ、検証処理で、鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、第五の組に含まれる対応する値の双線形写像の全てを乗じた値を中間値として計算させ、公開鍵の一部のデータをハッシュ値に-1を乗じた値でべき乗した値と中間値とを乗じた値と平文とを含むデータに基づいて計算される第二ハッシュ値が第一ハッシュ値と一致する場合に署名文を受理させ、第二ハッシュ値が第一ハッシュ値と一致しない場合に署名文を拒否させ、秘密鍵更新処理で、鍵情報記憶手段に記憶された更新データを示す第二の組に含まれる各元を任意の値でべき乗し、そのべき乗した値に第三の組に含まれる対応する元を乗じた値の組が示すデータを新たな秘密鍵として鍵情報記憶手段に記憶された秘密鍵を更新させることを特徴とする。
 本発明によれば、秘密鍵の部分情報が漏洩する状況が想定される場合であっても、安全性を担保しつつ、署名文の作成および署名文の検証を効率的に行うことができる。
本発明による署名検証システムの一実施形態を示すブロック図である。 本発明による署名装置の一実施形態を示すブロック図である。 公開鍵、秘密鍵、および更新用データを作成する処理の例を示すフローチャートである。 秘密鍵を更新する処理の例を示すフローチャートである。 署名文を作成する処理の例を示すフローチャートである。 署名文を検証する処理の例を示すフローチャートである。 本発明による署名検証システムの最小構成の例を示すブロック図である。
 以下、本発明の実施形態を図面を参照して説明する。
 図1は、本発明による署名検証システムの一実施形態を示すブロック図である。本実施形態における署名検証システムは、署名装置11と、検証装置12とを備えている。
 署名装置11は、演算部111と、記憶部112とを含む。検証装置12は、演算部121と、記憶部122とを含む。これらの演算部および記憶部を用いることで、本発明における署名検証システムが、利用者の指示に応じて、データの演算を行ったり、データの記憶をしたりすることができる。
 また、署名装置11および検証装置12は、それぞれ通信手段(図示せず)を含む。署名装置11および検証装置12は、この通信手段を用いて、他の装置とデータの送受信を行う。
 演算部111,121は、例えば、コンピュータのCPUを用いて実現される。また、記憶部112、122は、例えば、コンピュータのメモリやハードディスクを用いて実現される。また、通信手段は、例えば、インターネットを介して相互に通信を行う。
 また、本発明では、システムパラメータと呼ばれるデータが署名装置11および検証装置12に事前に周知され、各装置の記憶部112,122に記憶されているものとする。システムパラメータは、素数q、位数qの群G,H,T、および、双線形写像e:G×H→Tを含む。また、システムパラメータには、群G,H,Tにおける群演算を行うために十分な情報が含まれているものとする。さらに、システムパラメータには、双線形写像e:G×H→Tを計算するために十分な情報も含まれているものとする。
 なお、安全性上の観点から、群G,H,T上の離散対数問題が困難であることが望ましい。このような群の例として、楕円曲線群や、その素数位数部分群が挙げられる。楕円曲線群は、必ず、Y=X+aX+b mod pで示される代数方程式により特徴づけられる。そのため、例えば、(a、b、p)が存在すれば、楕円曲線群上の群演算を行うことができる。
 楕円曲線群の素数位数部分群を使う場合、その部分群の生成元も必要である。また、双線形写像eとして、例えば、WeilペアリングやTateペアリングを用いることができる。署名装置11および検証装置12は、必要に応じてシステムパラメータを記憶部112,122から読み込み、各種の計算に利用する。
 署名装置11の演算部111は、鍵生成手段113と、秘密鍵更新手段114と、署名手段115とを有する。
 鍵生成手段113は、公開鍵、秘密鍵、および更新用データを作成し、記憶部112に記憶させる。更新用データとは、後述する秘密鍵更新手段114が秘密鍵を更新する際に使用するデータである。
 以下の説明では、署名装置11が鍵生成手段113を備える場合について説明する。ただし、署名装置11とは別の装置が鍵生成手段113を備える構成であってもよい。すなわち、署名装置11とは別の装置が備える鍵生成手段113が、公開鍵、秘密鍵、および更新用データを作成し、その出力結果を署名装置11の記憶部112に記憶させるようにしてもよい。
 秘密鍵更新手段114は、秘密鍵および更新用データを記憶部112から読み込む。そして、秘密鍵更新手段114は、秘密鍵を更新し、更新した新しい秘密鍵を記憶部112に記憶させる。
 署名手段115は、公開鍵、秘密鍵、およびメッセージを記憶部112から読み込む。そして、署名手段115は、署名文を作成し、署名文を付加したメッセージを他の装置に出力する。ここで、メッセージとは、署名文を付加する対象の情報を意味する。以下の説明では、メッセージを文書、または平文と記すこともある。本実施形態では、出力されたメッセージおよび署名文は、検証装置12の記憶部122に記憶されるものとする。
 なお、鍵生成手段113、秘密鍵更新手段114および署名手段115の動作については、後述する。また、鍵生成手段113と、秘密鍵更新手段114と、署名手段115とは、プログラム(署名検証プログラム)に従って動作するコンピュータのCPUによって実現される。例えば、プログラムは、署名装置11の記憶部112に記憶され、CPUは、そのプログラムを読み込み、プログラムに従って、鍵生成手段113、秘密鍵更新手段114および署名手段115として動作してもよい。また、鍵生成手段113と、秘密鍵更新手段114と、署名手段115とは、それぞれが専用のハードウェアで実現されていてもよい。
 検証装置12の演算部121は、検証手段123を有する。
 検証手段123は、公開鍵、メッセージおよび署名文を記憶部122から読み込む。そして、検証手段123は、読み込んだ署名文を検証し、その署名文を受理するか拒否するかを表す情報を出力する。なお、検証手段123の動作については、後述する。また、検証手段123は、プログラム(検証検証プログラム)に従って動作するコンピュータのCPUによって実現される。
 なお、本実施形態では、署名装置11と、検証装置12とが、別の装置で実現されている場合を例に説明する。ただし、署名装置11と、検証装置12とが、同一の装置で実現されていてもよい。図2は、本発明による署名装置の一実施形態を示すブロック図である。図2に例示する署名装置は、演算部21と、入出力手段22と、記憶部23と、通信手段24とを備えている。演算部21は、図1に例示する演算部111および演算部121に相当する。記憶部23は、図1に例示する記憶部112および記憶部122に相当する。通信手段24は、図1に例示する署名検証システムにおいて図示していない通信手段に相当する。入出力手段23は、署名文を作成するためのメッセージの入力や、検証結果の出力などを行う。
 次に、本実施形態における署名検証システムの動作の概要を説明する。まず、署名装置11の鍵生成手段113は、公開鍵pk、秘密鍵skおよび更新用データupを作成し、これらのデータを記憶部112に記憶させる。その後、署名装置11は、公開鍵pkを公開する。検証装置12は、公開された公開鍵pkを受信し、記憶部122に記憶させる。
 次に、署名装置11の秘密鍵更新手段114は、適切な頻度で、秘密鍵skおよび更新用データupを記憶部112から読み込む。そして、秘密鍵更新手段114は、その秘密鍵skをもとに秘密鍵を更新し、新しい秘密鍵skを記憶部112に記憶させる。なお、署名装置11の秘密鍵更新手段114が、秘密鍵を更新する頻度は任意である。更新する頻度が高ければ高いほど、高い安全性が保証される。
 任意のタイミングで、署名すべきメッセージMが署名装置11の記憶部112に記憶させる。署名装置11の署名手段115は、そのメッセージM、公開鍵pkおよび秘密鍵skを記憶部122から読み込む。そして、署名手段115は、メッセージM、公開鍵pkおよび秘密鍵skをもとに署名文σを作成する。署名手段115は、メッセージMと作成した署名文σを検証装置12に送信する。検証装置12は、メッセージMおよび署名文σを受信し、記憶部122に記憶させる。
 次に、検証装置12の検証手段123は、公開鍵pk、メッセージMおよび署名文σを記憶部122から読み込む。そして、検証手段123は、公開鍵pk、メッセージMおよび署名文σをもとに、その署名文σを受理するか拒否するかを決定する。
 上記処理において、署名装置11は、どのような方法で公開鍵pkを公開してもよい。署名装置11は、例えば、PKI(Public Key Infrastructure )の仕組みを用いて、公開鍵pkを公開してもよい。
 また、安全性の観点から、署名装置11は、可能な限り秘密裡かつ改竄されない方法で秘密鍵を保管する必要がある。一方、署名装置11は、更新用データupを必ずしも秘密裡に保管する必要はない。ただし、署名装置11は、更新用データupを改竄されない方法で保管する必要がある。
 次に、本実施形態における署名検証システムの動作を詳細に説明する。図3は、鍵生成手段113が公開鍵、秘密鍵、および更新用データを作成する処理の例を示すフローチャートである。
 以下の説明では、鍵生成手段113が、公開鍵pk=(B[1],・・・,B[n],Δ),秘密鍵sk=(Y[1],・・・,Y[n]),更新用データup=(V[1],・・・,V[n])を作成するものとする。ここで、nは、2以上の整数である。
 まず、鍵生成手段113は、Cを群Gからランダムに選択し、Wを群Hからランダムに選択する。次に、鍵生成手段113は、素数qの既約剰余類群からn個の元(b[1],・・・,b[n])および(v[1],・・・,v[n])を、内積b[1]v[1]+・・・+b[n]v[n]=0を満たすようにランダムに選択する。すなわち、鍵生成手段113は、(b[1],・・・,b[n]),(v[1],・・・,v[n])∈(Z/qZ)、かつ、b[1]v[1]+・・・+b[n]v[n]=0を満たす元をランダムに選択する。
 そして、鍵生成手段113は、(B[1],・・・,B[n])=(Cb[1],・・・,Cb[n]),更新用データup=(V[1],・・・,V[n])=(Wv[1],・・・,Wv[n])を計算する(ステップS31)。
 次に、鍵生成手段113は、秘密鍵sk=(Y[1],・・・,Y[n])の各データをHからランダムに選択する。そして、鍵生成手段113は、Δ=e(B[1],Y[1])・・・e(B[n],Y[n])を計算する(ステップS32)。
 鍵生成手段113は、以上のように計算した公開鍵pk=(B[1],・・・,B[n],Δ)、秘密鍵skおよび更新用データupを出力する(ステップS33)。具体的には、鍵生成手段113は、公開鍵pk、秘密鍵skおよび更新用データupを記憶部112に記憶させる。
 以上の方法で生成した(B[1],・・・,B[n])および(V[1],・・・,V[n])は、e(B[1],V[1])・・・e(B[n],V[n])=0を満たす。なお、鍵生成手段113は、e(B[1],V[1])・・・e(B[n],V[n])=0を満たす(B[1],・・・,B[n])および(V[1],・・・,V[n])のランダムな組を、上記の方法とは別の方法で生成してもよい。
 なお、本実施形態では、群G,H,Tが、素数q、位数qの群である場合について説明した。ただし、位数が素数qでなくても、鍵を生成することは可能である。ただし、安全性の観点から、位数が素数であること、または、素因数が少ないことが望ましい。
 以上のように、鍵生成手段113は、群G,Hからそれぞれn個の元を選択した2つの組(B[1],・・・,B[n])および(V[1],・・・,V[n])を抽出する。なお、鍵生成手段113は、この2組の元を、e(B[1],V[1])・・・e(B[n],V[n])=0を満たすように選択する。また、鍵生成手段113は、Hからn個の元を選択し、この組が示すデータを秘密鍵sk=(Y[1],・・・,Y[n])として出力する。また、鍵生成手段113は、Δ=e(B[1],Y[1])・・・e(B[n],Y[n])を計算し、(B[1],・・・,B[n])およびΔを含むデータを公開鍵pk=(B[1],・・・,B[n],Δ)として出力する。また、鍵生成手段113は、(V[1],・・・,V[n])を更新用データとして出力する。
 図4は、秘密鍵更新手段114が秘密鍵を更新する処理の例を示すフローチャートである。まず、秘密鍵更新手段114は、秘密鍵sk=(Y[1],・・・,Y[n])および更新用データup=(V[1],・・・,V[n])を記憶部112から読み込む(ステップS41)。秘密鍵更新手段114は、ランダムにs∈Z/qZを選択し、(Y[1]V[1]^s,・・・,Y[n]V[n]^s)を計算する(ステップS42)。秘密鍵更新手段114は、秘密鍵sk=(Y[1],・・・,Y[n])を算出した(Y[1]V[1]^s,・・・,Y[n]V[n]^s)で上書きする。そして、秘密鍵更新手段114は、上書きされた秘密鍵sk=(Y[1],・・・,Y[n])を記憶部112に記憶させる(ステップS43)。
 上記説明では、sを素数qの巡回群(Z/qZ)から選択する場合について説明した。なお、sを素数qの巡回群から選択しなくてもよい。しかし、素数qの巡回群からsを選択する方が、安全性の観点からより好ましい。
 以上のように、秘密鍵更新手段114は、(V[1],・・・,V[n])の各元を任意の値sでべき乗し、そのべき乗した値に、(Y[1],・・・,Y[n])の対応する元をそれぞれ乗じた値の組が示すデータを新たな秘密鍵として更新する。
 図5は、署名手段115が署名文を作成する処理の例を示すフローチャートである。署名手段115は、平文Mおよび(B[1],・・・,B[n])を、記憶部112から読み込む(ステップS51)。署名手段115は、ランダムにR[1],・・・,R[n]∈Hを選択し、Θ=e(B[1],R[1])・・・e(B[n],R[n])を計算する(ステップS52)。さらに、署名手段115は、c=Hash(Θ,M)を計算する(ステップS53)。ここで、Hashは、定義域がT×{0,1}、値域がZ/qZのハッシュ関数である。
 次に、署名手段115は、(Z[1],・・・,Z[n])=(Y[1]R[1],・・・,Y[n]R[n])を計算する(ステップS54)。そして、署名手段115は、署名文σ=(c,Z[1],・・・,Z[n])を出力する(ステップS55)。本実施形態では、署名手段115は、署名文σおよび平文Mを記憶部122に記憶させる。
 以上のように、署名手段115は、群Hから(R[1],・・・,R[n])を抽出する。署名手段115は、Θ=e(B[1],R[1])・・・e(B[n],R[n])を計算し、Θと平文Mとを含むデータに基づいてハッシュ値cを計算する。署名手段115は、(Y[1],・・・,Y[n])に含まれる元をハッシュ値cでべき乗し、そのべき乗した値に、(R[1],・・・,R[n])の対応する元を乗じた値の組(Z[1],・・・,Z[n])を計算する。そして、署名手段115は、ハッシュ値cと(Z[1],・・・,Z[n])とを署名文として出力する。
 図6は、検証手段123が署名文を検証する処理の例を示すフローチャートである。検証手段123は、平文M、署名文σ=(c,Z[1],・・・,Z[n])および、(B[1],・・・,B[n])を記憶部122から読み込む(ステップS61)。検証手段123は、c=Hash(Δ-ce(B[1],Z[1])・・・e(B[n],Z[n]),M)を満たすか否か検証する。上記式を満たす場合、検証手段123は、その署名文を受理する情報を出力する。一方、上記式を満たさない場合、検証手段123は、署名文を拒否することを表す情報を出力する(ステップS52)。
 以上のように、検証手段123は、e(B[1],Z[1])・・・e(B[n],Z[n])とΔ-cとを乗じた値と、平文Mとを含むデータに基づいてハッシュ値を計算する。検証手段123は、その値が、ハッシュ値cと一致する場合に、署名文σを受理し、ハッシュ値cと位置しない場合に、署名文σを拒否する。
 以上のような処理を行うことで、秘密鍵の部分情報が漏洩する状況が想定される場合であっても、安全性を担保しつつ、署名文の作成および署名文の検証を効率的に行うことができる。
 次に、本発明における署名方法と、一般的な署名方法との違いについて説明する。例えば、非特許文献5および非特許文献6に記載された方法は、同時期に提案されたほぼ同一の方法である。非特許文献5および非特許文献6に記載された方法は、鍵を更新する機能を含まない。
 一方、その後に提案された非特許文献1および非特許文献2に記載された方法は、非特許文献5および非特許文献6に記載された方法と全く異なる方法であり、鍵を更新する機能を含むものである。しかし、上述するように、非特許文献1および非特許文献2に記載された方法は、署名文計算時にデータが漏洩しないことを仮定した方法である。ただし、この仮定は、署名および検証に関する部分の仮定であり、鍵更新に関する部分の仮定ではない。
 なお、非特許文献1に記載された方法で用いられている鍵と、非特許文献5および非特許文献6に記載された方法で用いられている鍵とは形が大きく異なるため、両方法を組み合わせることは困難である。
 また、上述するように、非特許文献3および非特許文献4に記載された方法を用いることで安全性を担保することが可能であるが、非特許文献3および非特許文献4に記載された方法では、署名の検証が効率よく行うことができないという問題がある。なお、非特許文献3に記載された方法と、非特許文献4に記載された方法は、同時期に独立に提案されているが、両方法は酷似している。
 本実施形態による署名検証方法は、非特許文献3および非特許文献4に記載された方法と同等の性質を満たしつつ、かつ、これらの方法よりも効率的であるという効果が得られる。
 具体的には、本実施形態における署名検証方法は、非特許文献3および非特許文献4に記載された方法よりも、安全性を示す上で必要になる仮定(ランダムオラクル)を適切に行うことで、効率化を図っている。すなわち、実用上は、適切に仮定を設定したうえで署名処理が行われるため、本実施形態における署名検証方法は、より実用に則した署名検証方法であるといえる。
 例えば、非特許文献5及び非特許文献6に記載された方法では、秘密鍵sk=(y[1],・・・,y[n])、公開鍵pk=(U,B[1],・・・,B[n])と定義される。ここで、U=B[1]^y[1]・・・B[1]^y[n]という関係を満たす。また、各y[i]は、Z/pZの元であり、g[i]は、群の元である。
 非特許文献5及び非特許文献6に記載された方法は、上述した通り、「知識の署名」という方法を用いて署名文を作成するが、鍵を更新する機能を含んでいない。そのため、非特許文献3及び非特許文献4に記載された方法では、非特許文献1に記載された方法による鍵更新方法を取り入れるため、公開鍵および秘密鍵の形が変更されている。非特許文献4に記載された方法は、非特許文献3に記載された方法と類似するため、以下、本発明による署名方法と、非特許文献3に記載された方法とを比較して説明する。
 非特許文献5及び非特許文献6に記載された方法では、秘密鍵は、Z/pZの元y[i]からなる組であった。一方、非特許文献3に記載された方法では、秘密鍵は、sk=(Y[1],・・・,Y[n])である。すなわち、秘密鍵skが群の元Y[i]の組である。
 また、非特許文献3に記載された方法における公開鍵は、pk=(Δ、B[1],・・・,B[n])で定義される。ここで、Δ=e(B[1],Y[1])・・・e(B[n],Y[n])という関係を満たす。また、e(・,・)は、双線型写像である。
 上記記載からも明らかないように、秘密鍵が、Z/pZの元y[i]の組から群の元Y[i]の組に換わっている。秘密鍵がZ/pZの元の組の場合、効率的な「知識の署名」を行う方法は知られている。しかし、秘密鍵が群の元の組の場合には、そのような効率的な方法は知られていない。すなわち、非特許文献3に記載された方法では、非特許文献5および非特許文献6に記載された署名方法を流用できなくなる。
 そこで、非特許文献3に記載された方法では、Groth-Sahai証明という技術と、Waters関数という技術を用いて署名を行っている。しかし、これらの技術を用いた処理は、効率的とは言い難い。その結果、非特許文献3に記載された署名方法、および、その署名方法に対応する検証方法も、効率的とは言い難い。
 ここで、一般的に使用されている効率的な「知識の証明」の内容を説明し、併せて、秘密鍵が群の元の組である場合に「知識の証明」が使用できない理由を説明する。「知識の署名」は、3つのフェーズを含む。第1のフェーズでは、乱数rが選択され、乱数rと公開鍵pkとを使って「コミットメント」というデータが計算される。第2のフェーズでは、コミットメントのハッシュ値が計算される。このハッシュ値は、「チャレンジ」と呼ばれる。第3のフェーズでは、第1のフェーズで選択された乱数rと秘密鍵skとから、「レスポンス」というデータが計算される。
 通常の「知識の証明」では、乱数rとしてZ/pZの元が選択される。秘密鍵skもZ/pZの元であれば、第3のフェーズにおいて、乱数rと秘密鍵skとを加算したり、乗算したりする操作を行うことで、「レスポンス」を計算できる。しかし、秘密鍵skがZ/pZの元ではなく、群の元の組であるとする。この場合、群の元の組と乱数rとの間で、上述する加算や乗算を行うことができない。このため、「レスポンス」を計算できない。
 しかし、本発明による署名検証方法では、乱数rも群の元の組としている。このようにすることで、上述する問題を回避できる。ただし、通常の「知識の署名」の第1のフェーズでは、公開鍵pkのr乗を計算する処理が行われるが、この場合、乱数rが群の元であれば、「r乗」という計算は意味を持たなくなってしまう。そこで、本発明による署名検証方法では、ペアリングを用いる。本発明による署名検証方法では、公開鍵pkが群の元B[1],・・・,B[n]含む組であり、rが群の元R[1],・・・,R[n]を含む組である。
 具体的には、本発明による署名検証方法では、第1のフェーズにおいて、公開鍵pkをr乗する代わりに、Θ=e(B[1],R[1])…e(B[n],R[n])を計算する。このΘは、「コミットメント」として用いられる。すなわち、本発明による署名検証方法では、「公開鍵のr乗」という意味の無い計算が、「ペアリングの計算」という意味のある計算に置き換わっている。そのため、上述する問題を回避できる。
 また、本発明による署名検証方法と、非特許文献3および非特許文献4に記載された方法との効率性を比較する。非特許文献3および非特許文献4に記載された方法を用いた場合、署名および検証時に行われるスカラー倍算の回数は、本発明による署名検証方法で署名および検証時に行われるスカラー倍算の回数のO(k)倍になる。ここで、kは、セキュリティパラメータである。一般的に、kは160程度に設定される。この場合、本発明による署名検証方法は、非特許文献3および非特許文献4に記載された方法よりも160倍程度効率的であるといえる。
 なお、特許文献1に記載された署名生成装置では、NTRUを用いている。一方、本発明による署名検証方法では、離散対数ベースの暗号化を行っている。離散対数ベースの暗号化の場合、準同型性g^xg^y=g^{x+y}が成立する。一方、NTRUでは、この性質を満たさない。
 次に、本発明の最小構成の例を説明する。図7は、本発明による署名検証システムの最小構成の例を示すブロック図である。本発明による署名検証システムは、公開鍵(例えば、pk)と、秘密鍵(例えば、sk)と、秘密鍵の更新に用いられるデータである更新用データ(例えば、up)とを生成する鍵生成手段81(例えば、鍵生成手段113)と、平文(例えば、平文M)と、公開鍵と、秘密鍵とを用いて、その平文の署名文(例えば、σ)を作成する署名手段82(例えば、署名手段115)と、公開鍵と平文と署名文との間の妥当性を検証する検証手段83(例えば、検証手段123)と、更新用データを用いて秘密鍵を更新する秘密鍵更新手段84(例えば、秘密鍵更新手段114)とを備えている。
 鍵生成手段81は、群(例えば、群G,H)から予め定めた個数(例えば、n個)の元を選択した組を2組(例えば、(B[1],・・・,B[n]),(V[1],・・・,V[n]))抽出する。鍵生成手段81は、その2組の元を選択する際、第一の組に含まれる元と第二の組に含まれる対応する元の双線形写像(例えば、e:G×H→T)の全てを乗じた値が0になる元の組を選択する。鍵生成手段81は、群(例えば、H)から上記個数(n個)の元を選択した第三の組(例えば、(Y[1],・・・,Y[n]))を抽出する。鍵生成手段81は、第一の組に含まれる元と、第三の組に含まれる対応する元の双線形写像の全てを乗じた値(例えば、Δ)を公開鍵の一部のデータとして計算する。鍵生成手段81は、第三の組が示すデータを秘密鍵とし、第一の組が示すデータ及び公開鍵の一部のデータを公開鍵とし、第二の組が示すデータを更新用データとしてそれぞれ、鍵情報記憶手段90(例えば、記憶部112)にそれぞれ記憶させる。
 署名手段82は、群(例えば、H)から上記個数(n個)の元を選択した第四の組(例えば、(R[1],・・・,R[n]))を抽出する。署名手段82は、鍵情報記憶手段90に記憶された公開鍵中の第一の組に含まれる元と、第四の組に含まれる対応する元の双線形写像の全てを乗じた値(例えば、Θ)を計算する。署名手段82は、その値と平文とを含むデータに基づいて第一ハッシュ値(例えば、ハッシュ値c)を計算する。署名手段82は、鍵情報記憶手段90に記憶された秘密鍵を示す第三の組に含まれる各元を第一ハッシュ値でべき乗する。署名手段82は、そのべき乗した値に第四の組に含まれる対応する元を乗じた値の組である第五の組(例えば、(Z[1],・・・,Z[n]))を計算する。署名手段82は、ハッシュ値および第五の組を含むデータを平文の署名文(例えば、署名文σ)として作成する。
 検証手段83は、鍵情報記憶手段90に記憶された公開鍵中の第一の組に含まれる元と、第五の組に含まれる対応する値の双線形写像の全てを乗じた値を中間値として計算する。検証手段83は、公開鍵の一部のデータをハッシュ値に-1を乗じた値でべき乗した値(例えば、Δ-c)と中間値とを乗じた値と平文とを含むデータに基づいて計算される第二ハッシュ値が第一ハッシュ値と一致する場合に署名文を受理する。検証手段83は、第二ハッシュ値が第一ハッシュ値と一致しない場合に署名文を拒否する。
 秘密鍵更新手段84は、鍵情報記憶手段90に記憶された更新データを示す第二の組に含まれる各元を任意の値(例えば、s)でべき乗する。秘密鍵更新手段84は、そのべき乗した値に第三の組に含まれる対応する元を乗じた値の組(例えば、(Y[1]V[1]^s,・・・,Y[n]V[n]^s))が示すデータを新たな秘密鍵として鍵情報記憶手段90に記憶された秘密鍵を更新する。
 そのような構成により、秘密鍵の部分情報が漏洩する状況が想定される場合であっても、安全性を担保しつつ、署名文の作成および署名文の検証を効率的に行うことができる。
 以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
 この出願は、2011年6月24日に出願された日本特許出願2011-140447を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、秘密鍵の部分情報が漏洩しても安全に署名および検証を行う署名検証システムに好適に適用される。
 11 署名装置
 12 検証装置
 111,121 演算部
 112,122 記憶部
 113 鍵生成手段
 114 秘密鍵更新手段
115 署名手段

Claims (6)

  1.  群から予め定めた個数の元を選択した組を2組抽出し、
     前記2組の元を選択する際、第一の組に含まれる元と第二の組に含まれる対応する元の双線形写像の全てを乗じた値が0になる元の組を選択し、
     群から前記個数の元を選択した第三の組を抽出し、
     前記第一の組に含まれる元と、前記第三の組に含まれる対応する元の双線形写像の全てを乗じた値を、公開鍵の一部のデータとして計算し、
     前記第三の組が示すデータを秘密鍵とし、前記第一の組が示すデータ及び前記公開鍵の一部のデータを公開鍵とし、前記第二の組が示すデータを秘密鍵の更新時に用いるデータである更新データとして、鍵情報記憶手段にそれぞれ記憶させ、
     群から前記個数の元を選択した第四の組を抽出し、
     前記鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、前記第四の組に含まれる対応する元の双線形写像の全てを乗じた値を計算し、当該値と平文とを含むデータに基づいて第一ハッシュ値を計算し、
     前記鍵情報記憶手段に記憶された秘密鍵を示す第三の組に含まれる各元を前記第一ハッシュ値でべき乗し、当該べき乗した値に前記第四の組に含まれる対応する元を乗じた値の組である第五の組を計算し、
     前記ハッシュ値および前記第五の組を含むデータを署名文として出力し、
     前記鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、前記第五の組に含まれる対応する値の双線形写像の全てを乗じた値を中間値として計算し、
     前記公開鍵の一部のデータを前記ハッシュ値に-1を乗じた値でべき乗した値と前記中間値とを乗じた値と前記平文とを含むデータに基づいて計算される第二ハッシュ値が前記第一ハッシュ値と一致する場合に前記署名文を受理し、前記第二ハッシュ値が前記第一ハッシュ値と一致しない場合に前記署名文を拒否し、
     前記鍵情報記憶手段に記憶された更新データを示す第二の組に含まれる各元を任意の値でべき乗し、当該べき乗した値に前記第三の組に含まれる対応する元を乗じた値の組が示すデータを新たな秘密鍵として前記鍵情報記憶手段に記憶された秘密鍵を更新する
     ことを特徴とする署名検証方法。
  2.  群からn個の元の組として第一の組である(B[1],・・・,B[n])および第二の組である(V[1],・・・,V[n])を抽出し、
     1以上n以下の各iに対して、前記第一の組に含まれるB[i]と前記第二の組に含まれるV[i]それぞれの双線形写像の全てを乗じた値が0になるである元の組を生成し、
     群からランダムに選択したn個の元の組として、第三の組である(Y[1],・・・,Y[n])を抽出し、
     1以上n以下の各iに対して、前記第一の組に含まれるB[i]と前記第三の組に含まれるY[i]のそれぞれの双線形写像の全てを乗じた値Δを計算し、
     前記(Y[1],・・・,Y[n])を含むデータを秘密鍵として出力し、
     前記(B[1],・・・,B[n])および前記Δを含むデータを公開鍵として出力し、
     前記(V[1],・・・,V[n]を更新用データとして出力し、
     群からランダムに選択したn個の元の組として、第四の組である(R[1],・・・,R[n])を抽出し、
     1以上n以下の各iに対して、前記第一の組に含まれるB[i]と前記第四の組に含まれるR[i]のそれぞれの双線形写像の全てを乗じた値Θを計算し、
     前記Θと平文を含むデータのハッシュ値cを計算し、
     前記第三の組に含まれるY[i]をiごとに前記ハッシュ値cでべき乗した値に、前記第四の組に含まれるR[i]を乗じた値の組として、第五の組である(Z[1],・・・,Z[n])を計算し、
     前記ハッシュ値cおよび前記(Z[1],・・・,Z[n])を含むデータを署名文として出力し、
     1以上n以下の各iに対して前記第一の組に含まれるB[i]と前記第五の組に含まれるZ[i]のそれぞれの双線形写像の全てを乗じた値と、前記ハッシュ値cに-1を乗じた値で前記Δをべき乗した値とを乗じた値と、前記平文Mを含むデータのハッシュ値cと一致するか否かを検証し、
     一致する場合に前記署名文を受理し、一致しない場合に前記署名文を拒否し、
     1以上n以下の各iに対し、前記第二の組に含まれるV[i]をランダムに選択した値sでべき乗し、当該べき乗した値に前記第三の組に含まれるY[i]を乗じた値の組が示すデータを新たな秘密鍵として更新する
     請求項1記載の署名検証方法。
  3.  第一の組、第二の組、第三の組、第四の組のうちの、少なくともいずれかの組を元を選択する群は、素数位数の群である
     請求項1または請求項2記載の署名検証方法。
  4.  秘密鍵を更新する際に選択される値は、素数の巡回群から選択される
     請求項1から請求項3のうちのいずれか1項に記載の署名検証方法。
  5.  公開鍵と、秘密鍵と、前記秘密鍵の更新に用いられるデータである更新用データとを生成する鍵生成手段と、
     平文と、前記公開鍵と、前記秘密鍵とを用いて、当該平文の署名文を作成する署名手段と、
     前記公開鍵と前記平文と前記署名文との間の妥当性を検証する検証手段と、
     前記更新用データを用いて前記秘密鍵を更新する秘密鍵更新手段とを備え、
     前記鍵生成手段は、群から予め定めた個数の元を選択した組を2組抽出し、当該2組の元を選択する際、第一の組に含まれる元と第二の組に含まれる対応する元の双線形写像の全てを乗じた値が0になる元の組を選択し、群から前記個数の元を選択した第三の組を抽出し、前記第一の組に含まれる元と、前記第三の組に含まれる対応する元の双線形写像の全てを乗じた値を公開鍵の一部のデータとして計算し、前記第三の組が示すデータを秘密鍵とし、前記第一の組が示すデータ及び前記公開鍵の一部のデータを公開鍵とし、前記第二の組が示すデータを前記更新用データとして、鍵情報記憶手段にそれぞれ記憶させ、
     署名手段は、群から前記個数の元を選択した第四の組を抽出し、前記鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、前記第四の組に含まれる対応する元の双線形写像の全てを乗じた値を計算し、当該値と平文とを含むデータに基づいて第一ハッシュ値を計算し、前記鍵情報記憶手段に記憶された秘密鍵を示す第三の組に含まれる各元を前記第一ハッシュ値でべき乗し、当該べき乗した値に前記第四の組に含まれる対応する元を乗じた値の組である第五の組を計算し、前記ハッシュ値および前記第五の組を含むデータを前記平文の署名文として作成し、
     検証手段は、前記鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、前記第五の組に含まれる対応する値の双線形写像の全てを乗じた値を中間値として計算し、前記公開鍵の一部のデータを前記ハッシュ値に-1を乗じた値でべき乗した値と前記中間値とを乗じた値と前記平文とを含むデータに基づいて計算される第二ハッシュ値が前記第一ハッシュ値と一致する場合に前記署名文を受理し、前記第二ハッシュ値が前記第一ハッシュ値と一致しない場合に前記署名文を拒否し、
     秘密鍵更新手段は、前記鍵情報記憶手段に記憶された更新データを示す第二の組に含まれる各元を任意の値でべき乗し、当該べき乗した値に前記第三の組に含まれる対応する元を乗じた値の組が示すデータを新たな秘密鍵として前記鍵情報記憶手段に記憶された秘密鍵を更新する
     ことを特徴とする署名検証システム。
  6.  コンピュータに、
     公開鍵と、秘密鍵と、前記秘密鍵の更新に用いられるデータである更新用データとを生成する鍵生成処理、
     平文と、前記公開鍵と、前記秘密鍵とを用いて、当該平文の署名文を作成する署名処理、
     前記公開鍵と前記平文と前記署名文との間の妥当性を検証する検証処理、および、
     前記更新用データを用いて前記秘密鍵を更新する秘密鍵更新処理を実行させ、
     前記鍵生成処理で、群から予め定めた個数の元を選択した組を2組抽出させ、当該2組の元を選択する際、第一の組に含まれる元と第二の組に含まれる対応する元の双線形写像の全てを乗じた値が0になる元の組を選択させ、群から前記個数の元を選択した第三の組を抽出させ、前記第一の組に含まれる元と、前記第三の組に含まれる対応する元の双線形写像の全てを乗じた値を公開鍵の一部のデータとして計算させ、前記第三の組が示すデータを秘密鍵とし、前記第一の組が示すデータ及び前記公開鍵の一部のデータを公開鍵とし、前記第二の組が示すデータを前記更新用データとして、鍵情報記憶手段にそれぞれ記憶させ、
     前記署名処理で、群から前記個数の元を選択した第四の組を抽出させ、前記鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、前記第四の組に含まれる対応する元の双線形写像の全てを乗じた値を計算させ、当該値と平文とを含むデータに基づいて第一ハッシュ値を計算させ、前記鍵情報記憶手段に記憶された秘密鍵を示す第三の組に含まれる各元を前記第一ハッシュ値でべき乗し、当該べき乗した値に前記第四の組に含まれる対応する元を乗じた値の組である第五の組を計算させ、前記ハッシュ値および前記第五の組を含むデータを前記平文の署名文として作成させ、
     前記検証処理で、前記鍵情報記憶手段に記憶された公開鍵中の第一の組に含まれる元と、前記第五の組に含まれる対応する値の双線形写像の全てを乗じた値を中間値として計算させ、前記公開鍵の一部のデータを前記ハッシュ値に-1を乗じた値でべき乗した値と前記中間値とを乗じた値と前記平文とを含むデータに基づいて計算される第二ハッシュ値が前記第一ハッシュ値と一致する場合に前記署名文を受理させ、前記第二ハッシュ値が前記第一ハッシュ値と一致しない場合に前記署名文を拒否させ、
     前記秘密鍵更新処理で、前記鍵情報記憶手段に記憶された更新データを示す第二の組に含まれる各元を任意の値でべき乗し、当該べき乗した値に前記第三の組に含まれる対応する元を乗じた値の組が示すデータを新たな秘密鍵として前記鍵情報記憶手段に記憶された秘密鍵を更新させる
     ための署名検証プログラム。
PCT/JP2012/003896 2011-06-24 2012-06-14 署名検証方法、署名検証システム及び署名検証プログラム WO2012176408A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011140447 2011-06-24
JP2011-140447 2011-06-24

Publications (1)

Publication Number Publication Date
WO2012176408A1 true WO2012176408A1 (ja) 2012-12-27

Family

ID=47422266

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/003896 WO2012176408A1 (ja) 2011-06-24 2012-06-14 署名検証方法、署名検証システム及び署名検証プログラム

Country Status (1)

Country Link
WO (1) WO2012176408A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019512958A (ja) * 2016-03-15 2019-05-16 フラウンホーファー−ゲゼルシャフト ツール フエルデルング デア アンゲヴァンテン フォルシュング エー.ファオ. 認証通知を生成する方法、認証方法、認証機器及び認証ベース機器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ALLISON LEWKO ET AL.: "How to Leak on Key Updates", CRYPTOLOGY EPRINT ARCHIVE, 28 June 2012 (2012-06-28), pages 1 - 35, Retrieved from the Internet <URL:http://eprint.iacr.org/2010/562> [retrieved on 20120628] *
ELETTE BOYLE ET AL.: "Fully Leakage-Resilient Signatures", CRYPTOLOGY EPRINT ARCHIVE, 28 June 2012 (2012-06-28), pages 1 - 42, Retrieved from the Internet <URL:http://eprint.iacr.org/2010/488> [retrieved on 20120628] *
TAL MALKIN ET AL.: "Signatures Resilient to Continual Leakage on Memory and Computation", CRYPTOLOGY EPRINT ARCHIVE, 28 June 2012 (2012-06-28), pages 1 - 30, Retrieved from the Internet <URL:http://eprint.iacr.org/2010/522> [retrieved on 20120628] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019512958A (ja) * 2016-03-15 2019-05-16 フラウンホーファー−ゲゼルシャフト ツール フエルデルング デア アンゲヴァンテン フォルシュング エー.ファオ. 認証通知を生成する方法、認証方法、認証機器及び認証ベース機器

Similar Documents

Publication Publication Date Title
Ti Fault attack on supersingular isogeny cryptosystems
CA2792787C (en) System and method for protecting cryptographic assets from a white-box attack
US8429408B2 (en) Masking the output of random number generators in key generation protocols
US9571274B2 (en) Key agreement protocol
US9037623B2 (en) Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor
CA2984390A1 (en) Elliptic curve isogeny-based cryptographic scheme
Yuan et al. Certificateless signature scheme with security enhanced in the standard model
EP2846492A1 (en) Cryptographic group signature methods and devices
JP7155173B2 (ja) 外部監視攻撃からモジュラーインバージョン演算を保護すること
WO2007105749A1 (ja) グループ署名システムおよび情報処理方法
Canard et al. On the implementation of a pairing-based cryptographic protocol in a constrained device
JP5029358B2 (ja) 鍵発行方法、グループ署名システム
US20160352689A1 (en) Key agreement protocol
US20050135610A1 (en) Identifier-based signcryption
Chande et al. An improvement of a elliptic curve digital signature algorithm
EP2395698A1 (en) Implicit certificate generation in the case of weak pseudo-random number generators
JP5679344B2 (ja) 署名鍵難読化システム、署名鍵難読化方法、難読化された署名鍵を用いた暗号化署名システム、難読化された署名鍵を用いた暗号化署名方法とプログラム
WO2012176408A1 (ja) 署名検証方法、署名検証システム及び署名検証プログラム
Canard et al. Group signatures are suitable for constrained devices
US20220385954A1 (en) Embedding information in elliptic curve base point
US12003636B2 (en) Device and method for certifying reliability of public key, and program therefor
Chen et al. Blockchain as a CA: A provably secure signcryption scheme leveraging blockchains
Ashraf et al. Message transmission for GH-public key cryptosystem
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography
KR102510077B1 (ko) 부채널 공격에 안전한 연산 장치 및 방법

Legal Events

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

Ref document number: 12802089

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12802089

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP