WO2017061017A1 - 暗号システム、準同型署名方法及び準同型署名プログラム - Google Patents

暗号システム、準同型署名方法及び準同型署名プログラム Download PDF

Info

Publication number
WO2017061017A1
WO2017061017A1 PCT/JP2015/078678 JP2015078678W WO2017061017A1 WO 2017061017 A1 WO2017061017 A1 WO 2017061017A1 JP 2015078678 W JP2015078678 W JP 2015078678W WO 2017061017 A1 WO2017061017 A1 WO 2017061017A1
Authority
WO
WIPO (PCT)
Prior art keywords
signature
key
homomorphic
verification
message
Prior art date
Application number
PCT/JP2015/078678
Other languages
English (en)
French (fr)
Inventor
義博 小関
豊 川合
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2015/078678 priority Critical patent/WO2017061017A1/ja
Priority to JP2017544141A priority patent/JP6266186B2/ja
Priority to US15/761,568 priority patent/US20180343109A1/en
Priority to CN201580083446.8A priority patent/CN108141362A/zh
Priority to EP15905836.1A priority patent/EP3343830B1/en
Publication of WO2017061017A1 publication Critical patent/WO2017061017A1/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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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
    • 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

Definitions

  • the present invention relates to a cryptographic system, a homomorphic signature method, and a homomorphic signature program.
  • An electronic signature ensures that the message has not been tampered with by the signer creating a signature for the message using the private key and the verifier verifying the signature / message pair using the verification key.
  • Technology In order to detect all tampering with a message, in a normal electronic signature, when a signature is generated for a message, it is not verified that the message is correct if any modification is made to the message. Thus, no edits can be made to the message that created the signature.
  • a homomorphic signature is a method in which a message for which a signature is created can be modified within a certain range, that is, a signature for a modified message can be generated from the signature of the original message.
  • Various homomorphic signature schemes have been proposed depending on the types of modifications that can be made to the message.
  • Patent Document 1 and Non-Patent Document 1 describe a system that can change a signature of a plurality of vectors into a linear sum of vectors when the message is regarded as a vector.
  • Non-Patent Document 2 when a message is considered as a set, it can be changed to a subset, or when a message is considered as a character string, it is changed to the partial character string. It is written about the possible methods.
  • homomorphic signatures it is necessary to create a wide variety of applications to increase the number of possible modifications to a message.
  • any of the conventional homomorphic signatures there is no method that realizes exchanging character positions of character strings as a type of modification. This is because with the mathematical structure and the modification method used in the existing method, it has been difficult to realize the character position exchange of the character string while maintaining the safety as the signature. That is, with the conventional homomorphic signature, there is a problem that the character position of the character string cannot be exchanged as the type of modification.
  • the present invention realizes a homomorphic signature method that can safely exchange character positions of character strings while maintaining the safety of the signature by using a mathematical structure different from the conventional methods. With the goal.
  • An encryption system includes: A signature generation device that generates a first signature for a message including N characters (N is an integer of 2 or more) using a signature key; A homomorphic computing device that generates a second signature of a modified message in which two characters having different positions in the message are interchanged using the first signature and a homomorphic key different from the signature key.
  • the second signature of the modified message in which two characters having different positions in the message are interchanged can be generated using the signature and the homomorphic key. It is possible to provide a homomorphic signature scheme that realizes the exchange of character positions while maintaining the above.
  • FIG. 1 is a system configuration diagram of a cryptographic system 100 according to Embodiment 1.
  • FIG. FIG. 3 shows a configuration of a key generation apparatus 101 according to the first embodiment.
  • 2 is a diagram showing a configuration of a signature generation apparatus 102 according to Embodiment 1.
  • FIG. FIG. 3 shows a configuration of a homomorphic arithmetic device 103 according to the first embodiment.
  • FIG. 3 shows a configuration of a signature verification apparatus 104 according to the first embodiment.
  • FIG. 3 is a flowchart showing a flow of a homomorphic signature process S100 and a homomorphic signature method 500 of the cryptographic system 100 according to the first embodiment.
  • FIG. 5 is a flowchart showing a process flow of a key generation process S101 according to the first embodiment.
  • FIG. 5 is a flowchart of key generation algorithm execution processing (step S112) that is execution processing of a key generation algorithm according to the first embodiment.
  • FIG. 5 is a flowchart of key generation algorithm execution processing (step S112) that is execution processing of a key generation algorithm according to the first embodiment.
  • FIG. 4 is a flowchart showing a process flow of signature generation process S102 according to the first embodiment.
  • FIG. 4 is a flowchart of signature generation algorithm execution processing (step S122) that is execution processing of a signature generation algorithm according to the first embodiment.
  • FIG. 4 is a flowchart showing a process flow of a homomorphic operation process S103 according to the first embodiment.
  • FIG. 6 is a flowchart showing a flow of processing of signature verification processing S104 according to the first embodiment.
  • FIG. 6 is a flowchart of a signature verification algorithm execution process (step S142) that is a signature verification algorithm execution process according to the first embodiment.
  • FIG. 6 shows a configuration of a key generation apparatus 101 according to a modification of the first embodiment.
  • FIG. 6 shows a configuration of a signature generation apparatus 102 according to a modification of the first embodiment.
  • FIG. 6 shows a configuration of a homomorphic arithmetic device 103 according to a modification of the first embodiment.
  • FIG. 6 is a diagram showing a configuration of a signature verification apparatus 104 according to a modification of the first embodiment.
  • y ⁇ A indicates that when A is a random variable or distribution, y is uniformly selected from A according to the distribution of A, that is, y is a uniform random number on A.
  • y: z represents that y is a set defined by z, or that z is assigned to the variable y.
  • F q represents a finite field of order q.
  • Equation 1 below represents a vector representation in the finite field Fq .
  • X T represents a transpose matrix of the matrix X.
  • Equation 2 represents the notation by the original coefficient vector on the bases B and B * .
  • Equation 3 shows the N-dimensional vector space V on the finite field Fq .
  • Equation 5 shows the definition of pairing in the space V.
  • Symmetric bilinear pairing groups (q, G, G T, g, e) is a prime number q, and additive cyclic group G which was of order q of prime q, and the multiplicative cyclic group G T of order q, g and ⁇ 0 ⁇ G, non-degenerate bilinear pairing can be computed in polynomial time e: is the combination of the G ⁇ G ⁇ G T.
  • the dual pairing vector space (q, V, G T , A, e) can be formed by a direct product of symmetric bilinear pairing groups (q, G, G T , g, e).
  • a dual pairing vector space is configured by the above-described symmetrical twin pairing group.
  • a dual pairing vector space can also be configured by an asymmetric twin pairing group.
  • the following description can be applied to a case where a dual pairing vector space is configured by an asymmetric twin-type pairing group.
  • FIG. *** Explanation of configuration *** FIG. 1 is a system configuration diagram of an encryption system 100 according to the present embodiment.
  • the cryptographic system 100 includes a key generation device 101, a signature generation device 102, a homomorphic operation device 103, and a signature verification device 104.
  • the outline of the function of each device of the cryptographic system 100 will be described with reference to FIG.
  • the key generation device 101 acquires a key generation parameter (1 k , N), executes a key generation algorithm, and generates a verification key vk, a signature key sk, and a homomorphic key hk.
  • the signature key sk is passed only to a user or a device permitted to execute signature generation.
  • the homomorphic key hk is passed only to a user or a device that is permitted to execute the homomorphic operation.
  • the signature key sk and the homomorphic key hk are secret keys that are concealed from unauthorized users or devices other than those described above.
  • the verification key vk is a public key.
  • the signature generation device 102 acquires the signature key sk from the key generation device 101 and acquires the message m from the input device.
  • the signature generation device 102 executes a signature generation algorithm based on the acquired signature key sk and message m, and outputs a first signature ⁇ .
  • the homomorphic operation device 103 acquires the homomorphic key hk from the key generation device 101, acquires the first signature ⁇ from the signature generation device 102, and acquires the parameter j from the input device.
  • the homomorphic operation device 103 executes a homomorphic operation algorithm based on the acquired homomorphic key hk, the first signature ⁇ , and the parameter j, and outputs a second signature ⁇ ′.
  • the second signature ⁇ ′ is a signature after executing the homomorphic operation algorithm, and is also referred to as a post-operation signature.
  • the signature verification device 104 acquires the verification key vk from the key generation device 101, acquires the verification signature v ⁇ , executes the signature verification algorithm, and outputs the verification result r of the verification signature v ⁇ .
  • the verification signature v ⁇ is the first signature ⁇ or the second signature ⁇ ′.
  • FIG. 2 is a diagram showing a configuration of the key generation apparatus 101 according to the present embodiment.
  • the key generation apparatus 101 includes a key generation parameter reception unit 301, a key generation unit 302, and a key transmission unit 303.
  • the key generation device 101 is a computer.
  • the functions of the key generation parameter reception unit 301, the key generation unit 302, and the key transmission unit 303 in the key generation device 101 are also referred to as “units” of the key generation device 101.
  • the function of “part” of the key generation device 101 is realized by software.
  • the key generation device 101 includes hardware such as a processor 901a, a storage device 902a, an input device 903a, and an output device 904a.
  • FIG. 3 is a diagram illustrating a configuration of the signature generation apparatus 102 according to the present embodiment.
  • the signature generation apparatus 102 includes a signature key reception unit 304, a message reception unit 305, a signature generation unit 306, and a signature transmission unit 307.
  • the signature generation device 102 is a computer.
  • the functions of the signature key receiving unit 304, the message receiving unit 305, the signature generating unit 306, and the signature transmitting unit 307 in the signature generating apparatus 102 are also referred to as “part” functions of the signature generating apparatus 102.
  • the function of “part” of the signature generation apparatus 102 is realized by software.
  • the signature generation device 102 includes hardware such as a processor 901b, a storage device 902b, an input device 903b, and an output device 904b.
  • FIG. 4 is a diagram showing a configuration of the homomorphic arithmetic apparatus 103 according to the present embodiment.
  • the homomorphic operation device 103 includes a homomorphic key reception unit 308, a parameter reception unit 309, a signature reception unit 310, a homomorphic operation unit 311, and a second signature transmission unit 312.
  • the homomorphic arithmetic device 103 is a computer.
  • the functions of the homomorphic key receiving unit 308, the parameter receiving unit 309, the signature receiving unit 310, the homomorphic computing unit 311 and the second signature transmitting unit 312 in the homomorphic computing device 103 are the same as those of the homomorphic computing device 103.
  • the function of “unit” of the homomorphic arithmetic device 103 is realized by software.
  • the homomorphic arithmetic device 103 includes hardware such as a processor 901c, a storage device 902c, an input device 903c, and an output device 904c.
  • FIG. 5 is a diagram showing a configuration of the signature verification apparatus 104 according to the present embodiment.
  • the signature verification apparatus 104 includes a verification key reception unit 313, a signature reception unit 314, a signature verification unit 315, and a verification result transmission unit 316.
  • the signature verification device 104 is a computer.
  • the functions of the verification key reception unit 313, the signature reception unit 314, the signature verification unit 315, and the verification result transmission unit 316 in the signature verification device 104 are also referred to as “units” of the signature verification device 104.
  • the function of “part” of the signature verification apparatus 104 is realized by software.
  • the signature verification device 104 includes hardware such as a processor 901d, a storage device 902d, an input device 903d, and an output device 904d.
  • each device included in the cryptographic system 100 includes hardware such as a processor 901, a storage device 902, an input device 903, and an output device 904.
  • the processor 901 is connected to other hardware via a signal line, and controls these other hardware.
  • the processor 901 is an IC (Integrated Circuit) that performs processing. Specifically, the processor 901 is a CPU (Central Processing Unit).
  • the storage device 902 includes an auxiliary storage device and a memory.
  • the auxiliary storage device is a ROM (Read / Only / Memory), a flash memory, or an HDD (Hard / Disk / Drive).
  • the memory is a RAM (Random Access Memory).
  • the input device 903 includes a mouse, a keyboard, and a touch panel.
  • a specific example of the output device 904 is a display.
  • the display is an LCD (Liquid / Crystal / Display).
  • Each device of the cryptographic system 100 may include a communication device.
  • the communication device includes a receiver that receives data and a transmitter that transmits data.
  • the communication device is specifically a communication chip or a NIC (Network, Interface, Card).
  • a communication device may be used as the input device 903 and the output device 904.
  • the auxiliary storage device stores a program that realizes the function of “unit”. This program is loaded into the memory, read into the processor 901, and executed by the processor 901.
  • the auxiliary storage device also stores an OS (Operating System). At least a part of the OS is loaded into the memory, and the processor 901 executes a program that realizes the function of “unit” while executing the OS.
  • OS Operating System
  • Each device of the cryptographic system 100 may include only one processor 901, or may include a plurality of processors 901.
  • a plurality of processors 901 may execute a program for realizing the function of “unit” in cooperation with each other.
  • Information, data, signal values, and variable values indicating the processing results of “unit” are stored in an auxiliary storage device, memory, or a register or cache memory in the processor 901.
  • a program for realizing the function of “part” may be stored in a portable recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, a DVD (Digital Versatile Disc), or the like.
  • the homomorphic signature program 510 is a program that implements the functions described as “units” of the respective devices of the cryptographic system 100.
  • what is called a homomorphic signature program product is a storage medium and a storage device on which a program that realizes the function described as “part” is recorded, and can be read by a computer regardless of its appearance. The program is being loaded.
  • FIG. 6 is a flowchart showing the flow of the homomorphic signature processing S100 and the homomorphic signature method 500 of the cryptographic system 100 according to the present embodiment.
  • the key generation device 101 obtains the key generation parameter (1 k, N) by the input device 903a, to generate an a verification key vk and the signature key sk and homomorphic key hk.
  • the signature generation apparatus 102 acquires the signature key sk and the message m including N characters by using the input apparatus 903b, and generates the first signature ⁇ of the message m.
  • the homomorphic operation processing S103 the homomorphic operation device 103 acquires a parameter j, a first signature ⁇ , and a homomorphic key hk different from the signature key sk by the input device 903c.
  • the homomorphic operation device 103 generates the second signature ⁇ ′ of the modified message in which the j-th character and the j + 1-th character of the message m are exchanged using the parameter j, the first signature ⁇ , and the homomorphic key hk. .
  • the signature verification apparatus 104 acquires the verification key vk and the verification signature v ⁇ that is the first signature ⁇ or the second signature ⁇ ′ by using the input device 903d, verifies the verification signature v ⁇ , and verifies the verification result r. Is output.
  • FIG. 7 is a flowchart showing a process flow of the key generation process S101 according to the present embodiment.
  • the key generation parameter receiving unit 301 receives the key generation parameter (1 k , N) using the input device 903a such as a keyboard or a communication device.
  • k is a security parameter indicating the strength of the generated key.
  • the key generation parameter receiving unit 301 writes the received key generation parameter (1 k , N) in the storage device 902a.
  • Step S111 is a key generation parameter reception process.
  • the key generation unit 302 executes a key generation algorithm based on the key generation parameter (1 k , N) written in the storage device 902a.
  • the key generation unit 302 executes a key generation algorithm, and generates a verification key vk, a signature key sk, and a homomorphic key hk.
  • the key generation unit 302 writes the generated verification key vk, signature key sk, and homomorphic key hk in the storage device 902a.
  • Step S112 is a key generation algorithm execution process.
  • the key transmission unit 303 publishes the verification key vk using the output device 904a such as a communication device, transmits the signature key sk to the signature generation device 102, and transmits the homomorphic key hk to the homomorphic arithmetic device 103. Send to.
  • the key generation apparatus 101 transmits the signature key sk to the signature generation apparatus 102 using a secure communication path, and transmits the homomorphic key hk to the homomorphic operation apparatus 103 using a secure communication path.
  • Step S113 is also called key transmission processing.
  • step S112 is the key generation algorithm execution process according to the present embodiment.
  • the key generation parameters (1 k, N) to the key generation parameter receiving unit 301 has received a security parameter k indicating the strength of the keys generated, a natural number N that represents the character string length of the message to generate a signature Consists of.
  • step S401 the key generation unit 302, based on the security parameter k, as a parameter P 0 of the symmetric bilinear pairing groups, and of order q, and additive cyclic group G and multiplicative cyclic group G T of order q, additive
  • the generation source g of the cyclic group G and the pairing e are determined.
  • the group G, the generator g and the group G T is generated by existing algorithms to generate an elliptic curve such as BN curve suitable for pairing.
  • the pairing e is determined by selecting an existing pairing calculation algorithm such as optimal ate pairing.
  • step S402 the key generation unit 302, based on the parameter P 0 of the symmetric bilinear pairing groups, determining the parameters P 1 of dual pairing vector spaces.
  • Parameter P 1 is of order q, 5-dimensional vector space V 0, 7-dimensional vector space V 1, the multiplicative cyclic group G T of order q, standard basis A 1 of the standard basis A 0, V 1 of V 0, pairs A set of rings e.
  • the key generation unit 302 determines the parameter P 1 as a direct product of a symmetric bilinear pairing group and a pairing thereon.
  • step S403 the key generation unit 302 generates a random number ⁇ .
  • step S404 the key generation unit 302 generates X 0 and X 1 which are random matrices on F q whose determinant is not 0 .
  • the size of X 0, the size of 5 ⁇ 5, X 1 is 7 ⁇ 7.
  • step S406 the key generation unit 302 generates a base B 0 from the standard base A 0 and generates a base B 1 from the standard base A 1 .
  • step S407 the key generation unit 302 generates a base B 0 * from the standard base A 0 based on ( ⁇ 0 i, j ), and from the standard base A 1 to the base B 1 * based on ( ⁇ 1 i, j ) . Is generated.
  • step S404 step S407 from, in the equation for X 0 and the base B 0 and the base B 0 * i is an integer from 1 to 5, in the equation for X 1 and the base B 1 and the base B 1 * i Is an integer from 1 to 7.
  • step S409 the key generation unit 302 generates a random matrix on F q whose determinant is not 0 as N ⁇ 1 transformation matrices W 1 ,..., W N ⁇ 1 .
  • the size of the generated transformation matrix W 1 ,..., W N ⁇ 1 is 7 ⁇ 7.
  • i of Wi is an integer from 1 to N-1.
  • step S410 the key generation unit 302, the base B 1 and the base B 1 * and the transformation matrix W 1, ⁇ ⁇ ⁇ , based on the W N-1, the base B 2, B 3, ⁇ ⁇ ⁇ , and B N Bases B 2 * , B 3 * ,..., B N * are generated.
  • the key generation unit 302 generates bases B 0 ,..., B N and bases B 0 * ,..., B N * of the dual pairing vector space.
  • bases after B 2 are generated using N ⁇ 1 transformation matrices W 1 ,.
  • step S410 i is an integer from 1 to N-1, and j is an integer from 1 to 7.
  • step S411 the key generation unit 302, the base B 0, ⁇ ⁇ ⁇ , partial base B 0 ⁇ from B N, ⁇ ⁇ ⁇ , to set the B N ⁇ .
  • step S412 the key generation unit 302, the base B 0 *, ⁇ , 0 ⁇ * partial base B from B N *, ⁇ ⁇ ⁇ , to set the B N ⁇ *.
  • steps S411 and S412, i is an integer from 1 to N.
  • the key generation unit 302 generates a verification key vk including a subset of the bases B 0 ,..., B N of the dual pairing vector space.
  • the key generation unit 302 the parameter P 0 of the symmetric bilinear pairing groups, parameters P 1 of dual pairing vector space basis B 0, ⁇ ⁇ ⁇ , for each basis of B N subset B ⁇ , base B 0 *, ⁇ , to generate a B N * verification key vk, including a subset B ⁇ * of each underlying.
  • the key generation unit 302 generates a signature key sk including a subset of each base of the bases B 0 * ,..., B N * .
  • the key generation unit 302 receives a key generation parameter composed of a set of a security parameter k and a natural number N representing a character string length of a message for generating a signature.
  • the key generation unit 302 generates parameters of a symmetric bilinear pairing group, generates parameters of a dual pairing vector space, generates a set of random matrices, and generates a basis of the dual pairing vector space from the set of random matrices. Create a tuple.
  • the key generation unit 302 includes a verification key vk including a random matrix set, a subset of a base pair of the dual pairing space, a parameter of the twin pairing group, and a parameter of the dual pairing vector space, A signature key sk consisting of a space base element and a verification key vk, and a homomorphic key hk consisting of a set of random matrices and a verification key vk are constructed.
  • FIG. 10 is a flowchart showing a process flow of the signature generation process S102 according to the present embodiment.
  • the signature key receiving unit 304 receives the signature key sk using the input device 903b such as a communication device.
  • the message receiving unit 305 receives the message m using the input device 903b such as a keyboard or a communication device.
  • the signature key sk and the message m are written in the storage device 902b.
  • Step S121 is a signature key reception process and a message reception process.
  • the signature generation unit 306 generates a first signature ⁇ by executing a signature generation algorithm based on the signature key sk and the message m written in the storage device 902b.
  • the signature generation unit 306 writes the generated first signature ⁇ in the storage device 902b.
  • Step S122 is a signature generation algorithm execution process.
  • the signature transmission unit 307 transmits the first signature ⁇ written in the storage device 902b to the homomorphic arithmetic device 103 or the signature verification device 104 using the output device 904b such as a communication device.
  • the signature transmission unit 307 transmits the first signature ⁇ to the signature verification device 104 as a verification signature v ⁇ to be verified.
  • Step S123 is a signature transmission process.
  • FIG. 11 is a flowchart of a signature generation algorithm execution process (step S122) that is a signature generation algorithm execution process according to the present embodiment.
  • the signature generation unit 306 inputs the signature key sk received by the signature key reception unit 304 and the message m received by the message reception unit 305 to the signature generation algorithm execution process.
  • Message m consists vector of length N on F q.
  • step S414 the signature generation unit 306 determines the random numbers ⁇ 0 ,..., ⁇ N , the random numbers ⁇ 0 , the random numbers ⁇ 1,1 ,..., ⁇ 1, N, and the random numbers ⁇ 2,1,. .., ⁇ 2, N and random numbers ⁇ 1 ,..., ⁇ N are generated.
  • step S415 the signature generation unit 306, the original sigma 0 on dual pairing vector spaces, ..., a sigma N, the random number and the base B 0 * generated in step S414, ..., and B N * Use to generate.
  • the signature generation unit 306 uses the subsets of the bases of the bases B 0 * ,..., B N * included in the signature key sk and the message m (m 1 ,..., M N ). the original set sigma 0 containing each character m i of an original pairing vector space included in the message m, ⁇ 1, ⁇ , to produce a sigma N.
  • step S416 the signature generation unit 306 generates the original set sigma 0, sigma 1, ⁇ ⁇ ⁇ , to generate a first signature sigma including sigma N.
  • the signature generation unit 306, a message m 1, ⁇ ⁇ ⁇ , m N and generated original set sigma 0, sigma 1, ⁇ ⁇ ⁇ , generates and outputs the first signature sigma comprising a sigma N .
  • FIG. 12 is a flowchart showing a process flow of the homomorphic operation process S103 according to the present embodiment.
  • the homomorphic operation processing S103 of the homomorphic operation device 103 uses the first signature ⁇ and the homomorphic key hk different from the signature key sk to change the second of the modified message in which two characters having different positions in the message m are switched.
  • a signature ⁇ ′ is generated.
  • the homomorphic key receiving unit 308 receives the homomorphic key hk using the input device 903c such as a communication device.
  • the parameter receiving unit 309 receives the parameter j using the input device 903c such as a keyboard or a communication device.
  • the signature receiving unit 310 receives the first signature ⁇ using the input device 903c such as a communication device.
  • the homomorphic key hk received by the homomorphic key receiving unit 308, the parameter j received by the parameter receiving unit 309, and the first signature ⁇ received by the signature receiving unit 310 are written in the storage device 902c.
  • Step S131 is a homomorphic key reception process, a parameter reception process, and a signature reception process.
  • the homomorphic operation unit 311 executes a homomorphic operation algorithm based on the homomorphic key hk, the parameter j, and the first signature ⁇ written in the storage device 902c.
  • the homomorphic operation unit 311 executes a homomorphic operation algorithm and generates a second signature ⁇ ′.
  • the homomorphic operation unit 311 writes the generated second signature ⁇ ′ in the storage device 902c.
  • Step S132 is a homomorphic operation algorithm execution process.
  • the second signature transmission unit 312 transmits the second signature ⁇ ′ written in the storage device 902c to the signature verification device 104 using the output device 904c such as a communication device. At this time, the second signature transmission unit 312 transmits the second signature ⁇ ′ to the signature verification apparatus 104 as the verification signature v ⁇ to be verified. Alternatively, when the character position of the message m is further replaced, the second signature transmission unit 312 transmits the second signature ⁇ ′ again to the homomorphic arithmetic device 103 including the second signature transmission unit 312.
  • Step S133 is a second signature transmission process.
  • FIG. 13 is a flowchart of the homomorphic operation algorithm execution process (step S132), which is the execution process of the homomorphic operation algorithm according to the present embodiment.
  • the homomorphic operation unit 311 performs a homomorphic operation algorithm on the homomorphic key hk received by the homomorphic key receiving unit 308, the parameter j received by the parameter receiving unit 309, and the first signature ⁇ received by the signature receiving unit 310. Input to the execution process.
  • the parameter j is an integer not less than 1 and not more than N-1.
  • the parameter j means that the J-th m j and the J + 1-th m j + 1 are exchanged in the message m (m 1 ,..., M N ). That is, the parameter j is an integer representing the position of the character whose character position is exchanged with the character on the right.
  • step S417 the homomorphic operation unit 311 generates ⁇ j ⁇ and ⁇ j + 1 ⁇ using the elements ⁇ j and ⁇ j + 1 of the first signature ⁇ and W j included in the homomorphic key hk.
  • the homomorphic operation unit 311 uses the j-th transformation matrix W j that is the value of the parameter j among the transformation matrices W 1 ,..., W N ⁇ 1 included in the homomorphic key hk to generate the first signature ⁇ .
  • the j-th ⁇ j and the j + 1-th ⁇ j + 1 are switched.
  • the homomorphic operation unit 311 generates ⁇ j ⁇ and ⁇ j + 1 ⁇ , so that the element of the first signature ⁇ attached to the jth character of the message m and the j + 1th of the message m
  • the replacement of the character position is realized by replacing the element of the first signature ⁇ attached to the character.
  • the first signature ⁇ in which ⁇ j and ⁇ j + 1 are interchanged is also referred to as a replacement signature c ⁇ .
  • step S419 the homomorphic operation unit 311 uses the subsets of the bases B 0 * ,..., B N * included in the homomorphic key hk to generate elements ⁇ 0 , ..., to generate the ⁇ N.
  • the homomorphic operation unit 311 uses each base subset of the bases B 0 * ,..., B N * and the message m (m 1 ,..., M N ), and character m i each element from ⁇ 0, ⁇ , to generate a tau N.
  • step S420 the homomorphic operation unit 311 performs the replacement signature c ⁇ ( ⁇ 0 ,..., ⁇ j ⁇ 1 , ⁇ j ⁇ , ⁇ j + 1 ⁇ , ⁇ j + 2 ,..., ⁇ N ) and dual pairing.
  • original tau vector space ( ⁇ 0, ⁇ , ⁇ N ) with a product of the original sigma 0 of dual pairing vector spaces ', ⁇ ⁇ N' to generate.
  • the homomorphic operation unit 311 includes a replacement signature c ⁇ ( ⁇ 0 ,..., ⁇ j ⁇ 1 , ⁇ j ⁇ , ⁇ j + 1 ⁇ , ⁇ j + 2 ,..., ⁇ N ), the j th element, and the j + 1 th element.
  • a replacement signature c ⁇ ( ⁇ 0 ,..., ⁇ j ⁇ 1 , ⁇ j ⁇ , ⁇ j + 1 ⁇ , ⁇ j + 2 ,..., ⁇ N ) replaced with the element ⁇ 0 ′,.
  • step S42 homomorphic computation unit 311, generated based ⁇ 0 ', ⁇ ⁇ N' to generate a second signature sigma 'containing.
  • homomorphic computation unit 311 the modified message m 1 that interchanging the j-th character and j + 1-th character, ⁇ , m j-1, m j + 1, m j, m j + 2, ⁇ ,
  • a second signature ⁇ ′ including m N and the generated elements ⁇ 0 ′,... ⁇ N ′ is generated and output. That is, the homomorphic operation unit 311 generates the second signature ⁇ ′ using the replacement signature c ⁇ and the element ⁇ .
  • FIG. 14 is a flowchart showing a process flow of the signature verification process S104 according to the present embodiment.
  • the signature verification apparatus 104 acquires the second signature ⁇ ′ as the verification signature v ⁇ , and verifies the verification signature v ⁇ using the verification key vk.
  • the signature verification apparatus 104 acquires the first signature ⁇ as the verification signature v ⁇ , and verifies the verification signature v ⁇ using the verification key vk.
  • the verification key receiving unit 313 receives the verification key vk using the input device 903d such as a communication device.
  • the signature receiving unit 314 receives the verification signature v ⁇ using the input device 903d such as a communication device.
  • the verification key vk and the verification signature v ⁇ are written in the storage device 902d.
  • the verification signature v ⁇ is the first signature ⁇ or the second signature ⁇ ′, but either signature can be verified by the same signature verification processing S104.
  • the verification signature v ⁇ is assumed to be the first signature ⁇ .
  • Step S141 is a verification key reception process and a signature reception process.
  • the signature verification unit 315 executes the signature verification algorithm based on the verification key vk and the verification signature v ⁇ written in the storage device 902d, and outputs 0 or 1 as the verification result r.
  • Step S142 is a signature verification algorithm execution process.
  • the verification result transmission unit 316 outputs the verification result r written in the storage device 902d using the output device 904d such as a communication device or a display device.
  • Step S143 is a verification result transmission process.
  • FIG. 15 is a flowchart of the signature verification algorithm execution process (step S142), which is the signature verification algorithm execution process according to the present embodiment.
  • the signature verification unit 315 inputs the verification key vk received by the verification key receiving unit 313 and the verification signature v ⁇ received by the signature receiving unit 314 to the signature verification algorithm.
  • step S422 the signature verification unit 315 generates a random number lambda, and the random number omega, random phi 0, ⁇ ⁇ ⁇ , and a phi N.
  • step S423 the signature verification unit 315 generates elements c 0 ,..., C N of the dual pairing vector space using the bases B 0 ,..., B N included in the verification key vk.
  • step S423, i is an integer from 1 to N.
  • step S424 the signature verification unit 315, elements sigma 0 verification signature v ⁇ , ⁇ , ⁇ N the original c 0, ⁇ ⁇ ⁇ , to generate from the c N zeta.
  • the signature verification unit 315 performs a pairing operation between the elements c 0 ,..., C N and the verification signature v ⁇ , and generates a calculation result ⁇ of the pairing operation.
  • step S425 the signature verification unit 315 generates a zeta 'from the random number ⁇ and a generator g T.
  • step S426 the signature verification unit 315, based on the calculation result zeta the pairing operation, generated from the random number ⁇ and the original g T zeta 'and verifies the verification signature Buishiguma.
  • the signature verification unit 315 compares ⁇ and ⁇ ′, outputs 1 as the verification result r if they are equal, and outputs 0 as the verification result r otherwise.
  • each device of the cryptographic system 100 is realized by software, but as a modification, the function of each device of the cryptographic system 100 may be realized by hardware. Variations of this embodiment will be described with reference to FIGS.
  • FIG. 16 is a diagram showing a configuration of the key generation apparatus 101 according to a modification of the present embodiment.
  • FIG. 17 is a diagram illustrating a configuration of the signature generation apparatus 102 according to a modification of the present embodiment.
  • FIG. 18 is a diagram illustrating a configuration of a homomorphic arithmetic device 103 according to a modification of the present embodiment.
  • FIG. 19 is a diagram illustrating a configuration of the signature verification apparatus 104 according to a modification of the present embodiment.
  • the key generation device 101 includes hardware such as a processing circuit 909a, an input device 903a, and an output device 904a.
  • the signature generation apparatus 102 includes hardware such as a processing circuit 909b, an input apparatus 903b, and an output apparatus 904b.
  • the homomorphic arithmetic device 103 includes hardware such as a processing circuit 909 c, an input device 903 c, and an output device 904 c.
  • the signature verification apparatus 104 includes hardware such as a processing circuit 909d, an input apparatus 903d, and an output apparatus 904d.
  • the processing circuits 909a, 909b, 909c, and 909d are collectively referred to as the processing circuit 909. The same applies to the input device 903 and the output device 904.
  • the processing circuit 909 is a dedicated electronic circuit that realizes the function of the “unit” described above. Specifically, the processing circuit 909 includes a single circuit, a composite circuit, a programmed processor, a processor programmed in parallel, a logic IC, a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), or FPGA (Field-Programmable / Gate / Array).
  • unit may be realized by one processing circuit 909 or may be realized by being distributed to a plurality of processing circuits 909.
  • each device of the cryptographic system 100 may be realized by a combination of software and hardware. That is, some functions of each device of the cryptographic system 100 may be realized by dedicated hardware, and the remaining functions may be realized by software.
  • the processor 901, the storage device 902, and the processing circuit 909 are collectively referred to as a “processing circuit”. That is, regardless of the configuration of each device of the cryptographic system 100 shown in FIG. 2 to FIG. 5 and FIG. 16 to FIG. 19, the function of “unit” is realized by the processing circuitry.
  • Part may be read as “Process”, “Procedure” or “Process”. Further, the function of “unit” may be realized by firmware.
  • the cryptographic system 100 includes the key generation device 101, the signature generation device 102, the homomorphic arithmetic device 103, and the signature verification device 104, and each device is a single computer.
  • the key generation apparatus 101 and the signature generation apparatus 102 may be one computer.
  • the signature generation apparatus 102 and the homomorphic calculation apparatus 103 may be one computer.
  • all the apparatuses may be realized by one computer.
  • the first signature ⁇ and the second signature ⁇ ′ include a message, but the first signature ⁇ or the second signature ⁇ ′ may be attached to the message.
  • this embodiment partially. Specifically, only one of those described as “parts” in the description of this embodiment may be employed, or some arbitrary combinations may be employed. In addition, this invention is not limited to this embodiment, A various change is possible as needed.
  • 100 cryptographic system 101 key generation device, 102 signature generation device, 103 homomorphic operation device, 104 signature verification device, 301 key generation parameter reception unit, 302 key generation unit, 303 key transmission unit, 304 signature key reception unit, 305 message Receiving unit, 306 signature generating unit, 307 signature transmitting unit, 308 homomorphic key receiving unit, 309 parameter receiving unit, 310 signature receiving unit, 311 homomorphic computing unit, 312 second signature transmitting unit, 313 verification key receiving unit, 314 Signature receiving unit, 315 signature verification unit, 316 verification result transmission unit, 500 homomorphic signature method, 510 homomorphic signature program, 901, 901a, 901b, 901c, 901d processor, 902, 902a, 902b, 902c, 902d storage device, 903, 903a, 903 , 903c, 903d input device, 904, 904a, 904b, 904c, 904d output device, 909, 909a, 909b, 909c, 909d processing circuit

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Collating Specific Patterns (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

署名としての安全性を保ったまま文字列の文字位置の交換を安全に実現することを目的とする。署名鍵skを用いて、N個(Nは2以上の整数)の文字を含むメッセージmについて第1署名σを生成する署名生成装置(102)と、1以上N-1以下の整数であるパラメータjを取得し、パラメータjと第1署名σと署名鍵skとは異なる準同型鍵hkとを用いて、メッセージmにおけるパラメータj番目の文字とj+1番目の文字とが入れ替わった改変メッセージの第2署名σ'を生成する準同型演算装置(103)とを備える。

Description

暗号システム、準同型署名方法及び準同型署名プログラム
 この発明は、暗号システム、準同型署名方法及び準同型署名プログラムに関する。
 電子署名は、署名者が秘密鍵を用いてメッセージの署名を作成し、検証者が検証鍵を用いて署名とメッセージの組を検証することによって、メッセージに対する改ざんが行われていないことを保証する技術である。メッセージに対する全ての改ざんを検知するために、通常の電子署名では、メッセージに対して署名が生成されると、少しでもメッセージに改変が加えられた場合正しいメッセージであると検証されることは無い。よって署名を作成したメッセージにはいかなる編集も行うことができない。
 一方、準同型署名とは、署名が作成されたメッセージに対して、一定の範囲で改変することが可能な、すなわち改変されたメッセージに対する署名を元のメッセージの署名から生成可能な方式のことを指す。メッセージに対して可能な改変の種類によってさまざまな準同型署名方式が提案されている。例えば、メッセージをベクトルとみなした場合に、複数のベクトルの署名から、それらのベクトルの線型和へと改変することが可能な方式について特許文献1および非特許文献1において記されている。また非特許文献2においては、メッセージを集合とみなした場合に、その部分集合へと改変することが可能な方式や、メッセージを文字列とみなした場合に、その部分文字列へと改変することが可能な方式について記されている。
特開2014-158265号公報
B.LIBERT , M.JOYE, M.YUNG 「Linearly homomorphic structure-preserving signatures and their applications」 Advances in Cryptology-CRYPTO 2013、LNCS 8043、289-307ページ、2013年 N. ATTRAPADUNG, B. LIBERT, T.PETERS 「Computing on Authenticated Data : New Privacy Definitions and Constructions」Advances in Cryptology-ASIACRYPT 2012、LNCS 7658、367-385ページ、2012年
 準同型署名においては、メッセージに対する可能な改変の種類が多くなることが、多彩な応用を生み出すうえで必要となる。従来の準同型署名のいずれにおいても、改変の種類として文字列の文字位置の交換を実現する方式は存在しない。これは、既存の方式において用いられている数学的な構造と改変方法では、文字列の文字位置交換を署名としての安全性を保ったまま実現する事が困難であったためである。すなわち、従来の準同型署名では、改変の種類として文字列の文字位置の交換を実現することはできないという課題があった。
 この発明は、これまでの方式とは異なる数学的構造を用いることによって、署名としての安全性を保ったまま文字列の文字位置の交換を安全に実現することが可能な準同型署名方式の実現を目的とする。
 この発明に係る暗号システムは、
 署名鍵を用いて、N個(Nは2以上の整数)の文字を含むメッセージについて第1署名を生成する署名生成装置と、
 前記第1署名と前記署名鍵とは異なる準同型鍵とを用いて、前記メッセージにおいて位置が異なる2つの文字が入れ替わった改変メッセージの第2署名を生成する準同型演算装置とを備える。
 この発明に係る暗号システムによれば、署名と準同型鍵とを用いて、メッセージにおいて位置が異なる2つの文字が入れ替わった改変メッセージの第2署名を生成することができるので、署名としての安全性を保ったまま文字の文字位置の交換を実現する準同型署名方式を提供することができるという効果を奏する。
実施の形態1に係る暗号システム100のシステム構成図。 実施の形態1に係る鍵生成装置101の構成を示す図。 実施の形態1に係る署名生成装置102の構成を示す図。 実施の形態1に係る準同型演算装置103の構成を示す図。 実施の形態1に係る署名検証装置104の構成を示す図。 実施の形態1に係る暗号システム100の準同型署名処理S100及び準同型署名方法500の流れを示すフロー図。 実施の形態1に係る鍵生成処理S101の処理の流れを示すフロー図。 実施の形態1に係る鍵生成アルゴリズムの実行処理である鍵生成アルゴリズム実行処理(ステップS112)のフロー図。 実施の形態1に係る鍵生成アルゴリズムの実行処理である鍵生成アルゴリズム実行処理(ステップS112)のフロー図。 実施の形態1に係る署名生成処理S102の処理の流れを示すフロー図。 実施の形態1に係る署名生成アルゴリズムの実行処理である署名生成アルゴリズム実行処理(ステップS122)のフロー図。 実施の形態1に係る準同型演算処理S103の処理の流れを示すフロー図。 実施の形態1に係る準同型演算アルゴリズムの実行処理である準同型演算アルゴリズム実行処理(ステップS132)のフロー図。 実施の形態1に係る署名検証処理S104の処理の流れを示すフロー図。 実施の形態1に係る署名検証アルゴリズムの実行処理である署名検証アルゴリズム実行処理(ステップS142)のフロー図。 実施の形態1の変形例に係る鍵生成装置101の構成を示す図。 実施の形態1の変形例に係る署名生成装置102の構成を示す図。 実施の形態1の変形例に係る準同型演算装置103の構成を示す図。 実施の形態1の変形例に係る署名検証装置104の構成を示す図。
 まず、実施の形態の説明における記法について、以下に説明する。
(1)y←Aは、Aがランダムな変数または分布であるとき、Aの分布に従いAからyを一様ランダムに選択したこと、すなわちyがA上の一様乱数であることを表す。
(2)y:=zは、yがzにより定義された集合であること、またはzが変数yに代入されたことを表す。
(3)Fは、位数qの有限体を示す。
(4)下記の数1は、有限体Fにおけるベクトル表示を表す。
Figure JPOXMLDOC01-appb-M000001
(5)Xは、行列Xの転置行列を表す。
(6)B:=(b,・・・,b),B:=(b ,・・・,b )は、ベクトルb,・・・,bおよびb ,・・・,b からなる基底B、Bをあらわす。
(7)下記の数2は、基底BおよびB上の元の係数ベクトルによる表記を表す。
Figure JPOXMLDOC01-appb-M000002
(8)下記の数3は、有限体F上のN次元ベクトル空間Vを示す。
Figure JPOXMLDOC01-appb-M000003
 (9)下記の数4は、空間Vの標準基底A:=(a,・・・,a)のaを表す。
Figure JPOXMLDOC01-appb-M000004
 (10)下記の数5は、空間Vにおけるペアリングの定義を示す。
Figure JPOXMLDOC01-appb-M000005
 次に、実施の形態の説明における数学的概念について、以下に説明する。
 まず、対称双線型ペアリング群について説明する。
 対称双線型ペアリング群(q,G,G,g、e)は、素数qと、素数qを位数qとした加法巡回群Gと、位数qの乗法巡回群Gと、g≠0∈Gと、多項式時間で計算可能な非退化双線型ペアリングe:G×G→Gとの組である。非退化双線型ペアリングは、e(sg、tg)=e(g,g)stであり、e(g,g)≠1である。
 次に、双対ペアリングベクトル空間について説明する。
 双対ペアリングベクトル空間(q,V,G,A,e)は対称双線型ペアリング群(q,G,G,g,e)の直積によって構成することができる。双対ペアリングベクトル空間(q,V,G,A,e)は、素数q、数3に示すF上のN次元ベクトル空間V、位数qの乗法巡回群G、空間Vの標準基底A:=(a,・・・,a)、ペアリングeの組である。aは、数4に示すとおりである。
 空間Vにおけるペアリングは、数5によって定義される。これは、非退化双線型である。つまり、e(sx,ty)=e(x,y)stであり、全てのy∈Vに対してe(x,y)=1の場合、x=0である。また、全てのiとjに対して、e(a,a)=e(g,g)δi,jである。ここでi=jであれば、δi,jであり、i≠jであれば、δi,j=0である。また、e(g,g)≠1∈Gである。
 なお、本実施の形態では、上述した対称双線型ペアリング群により、双対ペアリングベクトル空間を構成した場合について説明する。なお、非対称双線型ペアリング群により双対ペアリングベクトル空間を構成することも可能である。以下の説明を非対称双線型ペアリング群により双対ペアリングベクトル空間を構成した場合に応用することができる。
 実施の形態1.
 ***構成の説明***
 図1は、本実施の形態に係る暗号システム100のシステム構成図である。
 図1に示すように、暗号システム100は、鍵生成装置101、署名生成装置102、準同型演算装置103、署名検証装置104を備える。
 まず、図1を用いて、暗号システム100の各装置の機能の概要について説明する。
 鍵生成装置101は、鍵生成パラメータ(1,N)を取得し、鍵生成アルゴリズムを実行し、検証鍵vkと署名鍵skと準同型鍵hkとを生成する。
 ここで、暗号システム100における方式の安全性を保つために、署名鍵skは署名の生成の実行を許可されたユーザあるいは装置にのみに渡される。また、準同型鍵hkは準同型演算の実行を許可されたユーザあるいは装置にのみに渡される。署名鍵skと準同型鍵hkとは、上記以外の許可されていないユーザあるいは装置に対しては秘匿される秘密鍵である。検証鍵vkは公開鍵である。
 署名生成装置102は、鍵生成装置101から署名鍵skを取得し、入力装置からメッセージmを取得する。署名生成装置102は、取得した署名鍵sk及びメッセージmとに基づいて、署名生成アルゴリズムを実行して、第1署名σを出力する。
 準同型演算装置103は、鍵生成装置101から準同型鍵hkを取得し、署名生成装置102から第1署名σを取得し、入力装置からパラメータjを取得する。準同型演算装置103は、取得した準同型鍵hkと、第1署名σと、パラメータjとに基づいて、準同型演算アルゴリズムを実行して第2署名σ’を出力する。第2署名σ’は、準同型演算アルゴリズムを実行した後の署名であり、演算後署名ともいう。
 署名検証装置104は、鍵生成装置101から検証鍵vkを取得すると共に検証署名vσを取得し、署名検証アルゴリズムを実行して検証署名vσの検証結果rを出力する。ここで、検証署名vσは、第1署名σあるいは第2署名σ’である。
<鍵生成装置101の構成>
 図2は、本実施の形態に係る鍵生成装置101の構成を示す図である。
 鍵生成装置101は、鍵生成パラメータ受信部301と、鍵生成部302と、鍵送信部303とを有する。
 鍵生成装置101は、コンピュータである。鍵生成装置101における鍵生成パラメータ受信部301と、鍵生成部302と、鍵送信部303との機能を、鍵生成装置101の「部」の機能ともいう。鍵生成装置101の「部」の機能は、ソフトウェアで実現される。鍵生成装置101は、プロセッサ901a、記憶装置902a、入力装置903a、出力装置904aといったハードウェアを備える。
<署名生成装置102の構成>
 図3は、本実施の形態に係る署名生成装置102の構成を示す図である。
 署名生成装置102は、署名鍵受信部304と、メッセージ受信部305と、署名生成部306と、署名送信部307とを有する。
 署名生成装置102は、コンピュータである。署名生成装置102における署名鍵受信部304と、メッセージ受信部305と、署名生成部306と、署名送信部307との機能を、署名生成装置102の「部」の機能ともいう。署名生成装置102の「部」の機能は、ソフトウェアで実現される。署名生成装置102は、プロセッサ901b、記憶装置902b、入力装置903b、出力装置904bといったハードウェアを備える。
<準同型演算装置103の構成>
 図4は、本実施の形態に係る準同型演算装置103の構成を示す図である。
 準同型演算装置103は、準同型鍵受信部308と、パラメータ受信部309と、署名受信部310と、準同型演算部311と、第2署名送信部312とを有する。
 準同型演算装置103は、コンピュータである。準同型演算装置103における準同型鍵受信部308と、パラメータ受信部309と、署名受信部310と、準同型演算部311と、第2署名送信部312との機能を、準同型演算装置103の「部」の機能ともいう。準同型演算装置103の「部」の機能は、ソフトウェアで実現される。準同型演算装置103は、プロセッサ901c、記憶装置902c、入力装置903c、出力装置904cといったハードウェアを備える。
<署名検証装置104の構成>
 図5は、本実施の形態に係る署名検証装置104の構成を示す図である。
 署名検証装置104は、検証鍵受信部313と、署名受信部314と、署名検証部315と、検証結果送信部316とを有する。
 署名検証装置104は、コンピュータである。署名検証装置104における検証鍵受信部313と、署名受信部314と、署名検証部315と、検証結果送信部316との機能を、署名検証装置104の「部」の機能ともいう。署名検証装置104の「部」の機能は、ソフトウェアで実現される。署名検証装置104は、プロセッサ901d、記憶装置902d、入力装置903d、出力装置904dといったハードウェアを備える。
 ここで、図2から図5を用いて、暗号システム100が備える各装置のハードウェアについて説明する。以下の説明では、プロセッサ901a,901b,901c,901dを総称してプロセッサ901として説明する。記憶装置902、入力装置903、出力装置904についても同様とする。また、鍵生成装置101と署名生成装置102と準同型演算装置103と署名検証装置104との各装置を、暗号システム100の各装置ともいう。
 暗号システム100の各装置は、プロセッサ901、記憶装置902、入力装置903、出力装置904といったハードウェアを備える。プロセッサ901は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 プロセッサ901は、プロセッシングを行うIC(Integrated・Circuit)である。プロセッサ901は、具体的には、CPU(Central・Processing・Unit)である。
 記憶装置902は、補助記憶装置及びメモリを含む。補助記憶装置は、具体的には、ROM(Read・Only・Memory)、フラッシュメモリ、又は、HDD(Hard・Disk・Drive)である。メモリは、具体的には、RAM(Random・Access・Memory)である。
 入力装置903の具体例としては、マウス、キーボード、又は、タッチパネルがある。
 出力装置904の具体例としては、ディスプレイがある。ディスプレイは、具体的には、LCD(Liquid・Crystal・Display)である。
 暗号システム100の各装置は、通信装置を備えていてもよい。通信装置は、データを受信するレシーバ及びデータを送信するトランスミッタを含む。通信装置は、具体的には、通信チップ又はNIC(Network・Interface・Card)である。入力装置903及び出力装置904として、通信装置を用いてもよい。
 補助記憶装置には、「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリにロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。補助記憶装置には、OS(Operating・System)も記憶されている。OSの少なくとも一部がメモリにロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
 暗号システム100の各装置は、1つのプロセッサ901のみを備えていてもよいし、複数のプロセッサ901を備えていてもよい。複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
 「部」の処理の結果を示す情報、データ、信号値、及び、変数値は、補助記憶装置、メモリ、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
 「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital・Versatile・Disc)等の可搬記録媒体に記憶されてもよい。
 なお、準同型署名プログラム510は、暗号システム100の各装置の「部」として説明している機能を実現するプログラムである。また、準同型署名プログラムプロダクトと称されるものは、「部」として説明している機能を実現するプログラムが記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
***動作の説明***
<暗号システム100の準同型署名処理S100及び準同型署名方法500>
 図6は、本実施の形態に係る暗号システム100の準同型署名処理S100及び準同型署名方法500の流れを示すフロー図である。
 鍵生成処理S101において、鍵生成装置101は、入力装置903aにより鍵生成パラメータ(1,N)を取得し、検証鍵vkと署名鍵skと準同型鍵hkとを生成する。
 署名生成処理S102において、署名生成装置102は、入力装置903bにより署名鍵skとN個の文字を含むメッセージmとを取得し、メッセージmの第1署名σを生成する。
 準同型演算処理S103において、準同型演算装置103は、入力装置903cによりパラメータjと第1署名σと署名鍵skとは異なる準同型鍵hkとを取得する。準同型演算装置103は、パラメータjと第1署名σと準同型鍵hkと用いて、メッセージmのj番目の文字とj+1番目の文字とが入れ替わった改変メッセージの第2署名σ’を生成する。
 署名検証処理S104において、署名検証装置104は、入力装置903dにより検証鍵vkと第1署名σあるいは第2署名σ’である検証署名vσとを取得し、検証署名vσを検証し、検証結果rを出力する。
<鍵生成装置101の動作>
 図7は、本実施の形態に係る鍵生成処理S101の処理の流れを示すフロー図である。
 ステップS111において、鍵生成パラメータ受信部301は、キーボードあるいは通信装置などの入力装置903aを用いて鍵生成パラメータ(1,N)を受信する。kは、生成される鍵の強度を示すセキュリティパラメータである。鍵生成パラメータ受信部301は、受信した鍵生成パラメータ(1,N)を記憶装置902aに書き込む。ステップS111は鍵生成パラメータ受信処理である。
 ステップS112において、鍵生成部302は、記憶装置902aに書き込まれた鍵生成パラメータ(1,N)に基づいて、鍵生成アルゴリズムを実行する。鍵生成部302は、鍵生成アルゴリズムを実行し、検証鍵vkと署名鍵skと準同型鍵hkとを生成する。鍵生成部302は、生成した検証鍵vkと署名鍵skと準同型鍵hkとを記憶装置902aに書き込む。ステップS112は鍵生成アルゴリズム実行処理である。
 ステップS113において、鍵送信部303は、通信装置などの出力装置904aを用いて、検証鍵vkを公開し、署名鍵skを署名生成装置102に送信し、準同型鍵hkを準同型演算装置103に送信する。鍵生成装置101は、署名鍵skを署名生成装置102に安全な通信路を用いて送信し、準同型鍵hkを準同型演算装置103に安全な通信路を用いて送信する。ステップS113は鍵送信処理ともいう。
 図8及び図9は、本実施の形態に係る鍵生成アルゴリズムの実行処理である鍵生成アルゴリズム実行処理(ステップS112)のフロー図である。
 ここで、鍵生成パラメータ受信部301が受信した鍵生成パラメータ(1、N)は、生成される鍵の強度を示すセキュリティパラメータkと、署名を生成するメッセージの文字列長を表す自然数Nとからなる。
 ステップS401において、鍵生成部302は、セキュリティパラメータkに基づき、対称双線型ペアリング群のパラメータPとして、位数qと、位数qの加法巡回群G及び乗法巡回群Gと、加法巡回群Gの生成元gと、ペアリングeとを決定する。ここで、位数q、群G、群Gと生成元gは、ペアリングに適したBN曲線などの楕円曲線を生成する既存のアルゴリズムよって生成される。ペアリングeは、optimal ateペアリングなどの既存のペアリング演算アルゴリズムを選択することで決定される。
 ステップS402において、鍵生成部302は、対称双線型ペアリング群のパラメータPに基づき、双対ペアリングベクトル空間のパラメータPを決定する。パラメータPは、位数q、5次元ベクトル空間V、7次元ベクトル空間V、位数qの乗法巡回群G、Vの標準基底A、Vの標準基底A、ペアリングeの組である。鍵生成部302は、パラメータPを対称双線型ペアリング群の直積とその上のペアリングとして決定する。
 ステップS403において、鍵生成部302は、乱数ψを生成する。
 ステップS404において、鍵生成部302は、行列式が0でないF上のランダム行列であるXとXを生成する。Xの大きさは、5×5、Xの大きさは7×7である。
 ステップS405において、鍵生成部302は、(γ i,j):=ψ・(X -1と(γ i,j):=ψ・(X -1とを生成する。
 ステップS406において、鍵生成部302は、標準基底Aから基底Bを生成し、標準基底Aから基底Bを生成する。
 ステップS407において、鍵生成部302は、(γ i,j)に基づき標準基底Aから基底B を生成し、(γ i,j)に基づき標準基底Aから基底B を生成する。
 ステップS404からステップS407において、Xと基底Bと基底B を求める式においてはiは1から5の整数であり、Xと基底Bと基底B を求める式においてはiは1から7の整数である。
 ステップS408において、鍵生成部302は、g:=e(g,g)ψを生成する。
 ステップS409において、鍵生成部302は、行列式が0でないF上のランダム行列をN-1個の変換行列W,・・・,WN-1として生成する。生成される変換行列W,・・・,WN-1の大きさは7×7である。ステップS409において、Wのiは1からN-1の整数である。
 ステップS410において、鍵生成部302は、基底Bと基底B と変換行列W,・・・,WN-1とに基づき、基底B,B,・・・,Bと基底B ,B ,・・・,B を生成する。
 以上のように、鍵生成部302は、双対ペアリングベクトル空間の基底B,・・・,Bと基底B ,・・・,B とを生成する。基底B,・・・,Bでは、B以降の基底がN-1個の変換行列W,・・・,WN-1を用いて生成される。また、基底B ,・・・,B では、B 以降の基底がN-1個の変換行列W,・・・,WN-1を用いて生成される。
 ステップS410において、iは1からN-1の整数であり、jは1から7の整数である。
 ステップS411において、鍵生成部302は、基底B,・・・,Bから部分基底B ,・・・,B を設定する。
 ステップS412において、鍵生成部302は、基底B ,・・・,B から部分基底B ^*,・・・,B ^*を設定する。
 ステップS411及びステップS412において、iは1からNの整数である。
 ステップS413において、鍵生成部302は、双対ペアリングベクトル空間の基底B,・・・,Bの部分集合を含む検証鍵vkを生成する。具体的には、鍵生成部302は、対称双線型ペアリング群のパラメータP、双対ペアリングベクトル空間のパラメータP、基底B,・・・,Bの各基底の部分集合B、基底B ,・・・,B の各基底の部分集合B^*を含む検証鍵vkを生成する。
 また、鍵生成部302は、基底B ,・・・,B の各基底の部分集合を含む署名鍵skを生成する。具体的には、鍵生成部302は、b 0*と検証鍵vkとを含む署名鍵skを生成する。
 また、鍵生成部302は、変換行列W,・・・,WN-1と基底B ,・・・,B の各基底の部分集合とを含む準同型鍵hk={hk,・・・,hkN-1}を設定する。具体的には、鍵生成部302は、変換行列W,・・・,WN-1と検証鍵vkとを含む準同型鍵hk={hk,・・・,hkN-1}を生成する。
 以上のように、鍵生成部302は、セキュリティパラメータkと署名を生成するメッセージの文字列長を表す自然数Nの組からなる鍵生成パラメータを入力とする。鍵生成部302は、対称双線型ペアリング群のパラメータを生成し、双対ペアリングベクトル空間のパラメータを生成し、ランダム行列の組を生成し、ランダム行列の組から双対ペアリングベクトル空間の基底の組を生成する。そして、鍵生成部302は、ランダム行列の組と双対ペアリング空間の基底の組の部分集合と双線型ペアリング群のパラメータと双対ペアリングベクトル空間のパラメータからなる検証鍵vkと、双対ペアリング空間の基底の要素と検証鍵vkからなる署名鍵skと、ランダム行列の組と検証鍵vkからなる準同型鍵hkを構成する。
<署名生成装置102の動作>
 図10は、本実施の形態に係る署名生成処理S102の処理の流れを示すフロー図である。
 ステップS121において、署名鍵受信部304は、通信装置などの入力装置903bを用いて署名鍵skを受信する。メッセージ受信部305は、キーボードあるいは通信装置などの入力装置903bを用いてメッセージmを受信する。署名鍵skとメッセージmとは、記憶装置902bに書き込まれる。ステップS121は署名鍵受信処理及びメッセージ受信処理である。
 ステップS122において、署名生成部306は、記憶装置902bに書き込まれた署名鍵skとメッセージmとに基づいて、署名生成アルゴリズムを実行し第1署名σを生成する。署名生成部306は、生成した第1署名σを記憶装置902bに書き込む。ステップS122は署名生成アルゴリズム実行処理である。
 ステップS123において、署名送信部307は、記憶装置902bに書き込まれた第1署名σを通信装置などの出力装置904bを用いて、準同型演算装置103あるいは署名検証装置104に送信する。署名検証装置104に送信する場合は、署名送信部307は、第1署名σを検証の対象となる検証署名vσとして署名検証装置104に送信する。ステップS123は署名送信処理である。
 図11は、本実施の形態に係る署名生成アルゴリズムの実行処理である署名生成アルゴリズム実行処理(ステップS122)のフロー図である。
 ここで、署名生成部306は、署名鍵受信部304が受信した署名鍵skと、メッセージ受信部305が受信したメッセージmとを署名生成アルゴリズム実行処理に入力する。メッセージmは、F上の長さNのベクトルからなる。
 ステップS414において、署名生成部306は、乱数δ,・・・,δと、乱数ηと、乱数η1,1,・・・,η1,Nと、乱数η2,1,・・・,η2,Nと、乱数θ,・・・,θとを生成する。
 ステップS415において、署名生成部306は、双対ペアリングベクトル空間上の元σ,・・・,σを、ステップS414において生成した乱数と基底B ・・・,B とを用いて生成する。署名生成部306は、署名鍵skに含まれる基底B ,・・・,B の各基底の部分集合とメッセージm(m,・・・,m)とを用いて、双対ペアリングベクトル空間の元であってメッセージmに含まれる各文字mを含む元の組σ,σ,・・・,σを生成する。
 ステップS416において、署名生成部306は、生成した元の組σ,σ,・・・,σを含む第1署名σを生成する。ここでは、署名生成部306は、メッセージm,・・・,mと生成した元の組σ,σ,・・・,σとを含む第1署名σを生成して出力する。
<準同型演算装置103の動作>
 図12は、本実施の形態に係る準同型演算処理S103の処理の流れを示すフロー図である。
 準同型演算装置103の準同型演算処理S103は、第1署名σと署名鍵skとは異なる準同型鍵hkとを用いて、メッセージmにおいて位置が異なる2つの文字が入れ替わった改変メッセージの第2署名σ’を生成する。
 ステップS131において、準同型鍵受信部308は、通信装置などの入力装置903cを用いて準同型鍵hkを受信する。パラメータ受信部309は、キーボードあるいは通信装置などの入力装置903cを用いてパラメータjを受信する。署名受信部310は、通信装置などの入力装置903cを用いて、第1署名σを受信する。準同型鍵受信部308が受信した準同型鍵hkとパラメータ受信部309が受信したパラメータjと署名受信部310が受信した第1署名σとは、記憶装置902cに書き込まれる。ステップS131は準同型鍵受信処理、パラメータ受信処理及び署名受信処理である。
 ステップS132において、準同型演算部311は、記憶装置902cに書き込まれた準同型鍵hkとパラメータjと第1署名σとに基づいて、準同型演算アルゴリズムを実行する。準同型演算部311は、準同型演算アルゴリズムを実行し、第2署名σ’を生成する。準同型演算部311は、生成した第2署名σ’を記憶装置902cに書き込む。ステップS132は準同型演算アルゴリズム実行処理である。
 ステップS133において、第2署名送信部312は、記憶装置902cに書き込まれた第2署名σ’を通信装置などの出力装置904cを用いて、署名検証装置104に送信する。このとき、第2署名送信部312は、第2署名σ’を検証の対象となる検証署名vσとして署名検証装置104に送信する。あるいは、さらにメッセージmの文字位置を入れ替える場合には、第2署名送信部312は、第2署名送信部312を含む準同型演算装置103に第2署名σ’を再度送信する。ステップS133は第2署名送信処理である。
 図13は、本実施の形態に係る準同型演算アルゴリズムの実行処理である準同型演算アルゴリズム実行処理(ステップS132)のフロー図である。
 ここで、準同型演算部311は、準同型鍵受信部308が受信した準同型鍵hkとパラメータ受信部309が受信したパラメータjと署名受信部310が受信した第1署名σを準同型演算アルゴリズム実行処理に入力する。パラメータjは1以上かつN-1以下の整数である。パラメータjは、メッセージm(m,・・・,m)において、J番目のmとJ+1番目のmj+1とを入れ替えることを意味する。すなわち、パラメータjは、一つ右の文字と文字位置を交換する文字の位置を表す整数である。
 ステップS417において、準同型演算部311は、第1署名σの要素σとσj+1、及び準同型鍵hkに含まれるWを用いて、σ とσj+1 とを生成する。準同型演算部311は、準同型鍵hkに含まれる変換行列W,・・・,WN-1のうちパラメータjの値であるj番目の変換行列Wを用いて第1署名σに含まれる元の組σ,・・・,σにおいてj番目のσとj+1番目のσj+1とを入れ替える。このように準同型演算部311がσ とσj+1 とを生成することにより、メッセージmのj番目の文字に対して付けられた第1署名σの要素と、メッセージmのj+1番目の文字に対して付けられた第1署名σの要素とを入れ替えることで文字の位置の入れ替えを実現している。ここで、第1署名σにおいてσとσj+1とが入れ替わったものを入替署名cσともいう。
 ステップS418において、準同型演算部311は、乱数δ’,・・・,δ’と、乱数η’と、乱数η’1,1,・・・,η’1,Nと、乱数η’2,1,・・・,η’2,Nと、乱数θ’,・・・,θ’とを生成する。
 ステップS419において、準同型演算部311は、準同型鍵hkに含まれる基底B ,・・・,B の各基底の部分集合を用いて、双対ペアリングベクトル空間から元τ,・・・,τを生成する。準同型演算部311は、基底B ,・・・,B の各基底の部分集合とメッセージm(m,・・・,m)とを用いて、メッセージmに含まれる各文字mから各元τ,・・・,τを生成する。
 ステップS420において、準同型演算部311は、入替署名cσ(σ,・・・,σj-1,σ ,σj+1 ,σj+2,・・・,σ)と、双対ペアリングベクトル空間の元τ(τ,・・・,τ)との積を用いて、双対ペアリングベクトル空間の元σ’,・・・σ’を生成する。準同型演算部311は、入替署名cσ(σ,・・・,σj-1,σ ,σj+1 ,σj+2,・・・,σ)と、j番目の元とj+1番目の元とを入れ替えた元(τ,・・・,τj-1,τj+1,τ,τj+2,・・・,τ)との積を用いて、元σ’,・・・σ’を生成する。
 ステップS421において、準同型演算部311は、生成した元σ’,・・・σ’を含む第2署名σ’を生成する。ここでは、準同型演算部311は、j番目の文字とj+1番目の文字とを入れ替えた改変メッセージm,・・・,mj-1,mj+1,m,mj+2,・・・,mと、生成した元σ’,・・・σ’とを含む第2署名σ’を生成して出力する。すなわち、準同型演算部311は、入替署名cσと元τとを用いて第2署名σ’を生成する。
<署名検証装置104の動作>
 図14は、本実施の形態に係る署名検証処理S104の処理の流れを示すフロー図である。
 署名検証処理S104では、署名検証装置104は、第2署名σ’を検証署名vσとして取得し、検証鍵vkを用いて、検証署名vσを検証する。あるいは、署名検証装置104は、第1署名σを検証署名vσとして取得し、検証鍵vkを用いて、検証署名vσを検証する。
 ステップS141において、検証鍵受信部313は、通信装置などの入力装置903dを用いて、検証鍵vkを受信する。署名受信部314は、通信装置などの入力装置903dを用いて検証署名vσを受信する。検証鍵vkと検証署名vσとは、記憶装置902dに書き込まれる。検証署名vσは、第1署名σあるいは第2署名σ’であるが、どちらの署名であっても同様の署名検証処理S104で検証することができる。ここでは、検証署名vσが第1署名σであるものとして説明する。ステップS141は検証鍵受信処理及び署名受信処理である。
 ステップS142において、署名検証部315は、記憶装置902dに書き込まれた検証鍵vkと検証署名vσとに基づいて、署名検証アルゴリズムを実行し検証結果rとして0または1を出力する。0または1の検証結果rは、記憶装置902dに書き込まれる。ステップS142は、署名検証アルゴリズム実行処理である。
 ステップS143において、検証結果送信部316は、記憶装置902dに書き込まれた検証結果rを通信装置あるいは表示装置などの出力装置904dを用いて出力する。ステップS143は、検証結果送信処理である。
 図15は、本実施の形態に係る署名検証アルゴリズムの実行処理である署名検証アルゴリズム実行処理(ステップS142)のフロー図である。
 ここで、署名検証部315は、検証鍵受信部313が受信した検証鍵vkと署名受信部314が受信した検証署名vσを署名検証アルゴリズムに入力する。
 ステップS422において、署名検証部315は、乱数λと、乱数ωと、乱数φ,・・・,φとを生成する。
 ステップS423において、署名検証部315は、検証鍵vkに含まれる基底B,・・・,Bを用いて双対ペアリングベクトル空間の元c,・・・,cを生成する。ステップS423において、iは1からNの整数である。
 ステップS424において、署名検証部315は、検証署名vσの要素σ,・・・,σと元c,・・・,cからζを生成する。署名検証部315は、元c,・・・,cと検証署名vσとのペアリング演算を実行し、ペアリング演算の演算結果ζを生成する。
 ステップS425において、署名検証部315は、乱数λと生成元gからζ’を生成する。
 ステップS426において、署名検証部315は、ペアリング演算の演算結果ζと、乱数λと元gから生成されたζ’とに基づいて、検証署名vσを検証する。署名検証部315は、ζとζ’を比較し、等しい場合は検証結果rとして1を出力し、それ以外の場合は検証結果rとして0を出力する。
 以上で、本実施の形態に係る暗号システム100の準同型署名処理S100及び準同型署名方法500についての説明を終わる。
***本実施の形態の効果の説明***
 以上のように、本実施の形態に係る暗号システムによれば、これまでの方式とは異なる数学的構造を用いることによって文字列の文字位置の交換を安全に実現することができる。
 また、本実施の形態に係る暗号システムによれば、改変を施すものと改変可能な範囲を専用の準同型鍵によって制御することができる。
***他の構成***
 本実施の形態では、暗号システム100の各装置の機能がソフトウェアで実現されるが、変形例として、暗号システム100の各装置の機能がハードウェアで実現されてもよい。
 この本実施の形態の変形例について、図16から図19を用いて説明する。
 図16は、本実施の形態の変形例に係る鍵生成装置101の構成を示す図である。
 図17は、本実施の形態の変形例に係る署名生成装置102の構成を示す図である。
 図18は、本実施の形態の変形例に係る準同型演算装置103の構成を示す図である。
 図19は、本実施の形態の変形例に係る署名検証装置104の構成を示す図である。
 図16に示すように、鍵生成装置101は、処理回路909a、入力装置903a、出力装置904aといったハードウェアを備える。
 図17に示すように、署名生成装置102は、処理回路909b、入力装置903b、出力装置904bといったハードウェアを備える。
 図18に示すように、準同型演算装置103は、処理回路909c、入力装置903c、出力装置904cといったハードウェアを備える。
 図19に示すように、署名検証装置104は、処理回路909d、入力装置903d、出力装置904dといったハードウェアを備える。
 以下の説明では、処理回路909a,909b,909c,909dを総称して処理回路909として説明する。入力装置903、出力装置904についても同様とする。
 処理回路909は、前述した「部」の機能を実現する専用の電子回路である。処理回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate・Array)、ASIC(Application・Specific・Integrated・Circuit)、又は、FPGA(Field-Programmable・Gate・Array)である。
 「部」の機能は、1つの処理回路909で実現されてもよいし、複数の処理回路909に分散して実現されてもよい。
 別の変形例として、暗号システム100の各装置の機能がソフトウェアとハードウェアとの組み合わせで実現されてもよい。即ち、暗号システム100の各装置の一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
 プロセッサ901、記憶装置902、及び、処理回路909を、総称して「プロセッシングサーキットリ」という。つまり、暗号システム100の各装置の構成が図2から図5及び図16から図19のいずれに示した構成であっても、「部」の機能は、プロセッシングサーキットリにより実現される。
 「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。また、「部」の機能をファームウェアで実現してもよい。
 また、本実施の形態では、暗号システム100は、鍵生成装置101、署名生成装置102、準同型演算装置103、署名検証装置104を備え、各装置が1つのコンピュータである場合について説明した。しかし、例えば、鍵生成装置101と署名生成装置102とが1つのコンピュータであってもよい。また、署名生成装置102と準同型演算装置103とが1つのコンピュータであってもよい。また、全ての装置が1つのコンピュータで実現されていても構わない。
 また、本実施の形態では、第1署名σ及び第2署名σ’は、メッセージを含む形態であったが、メッセージに対して第1署名σあるいは第2署名σ’を添付する構成でもよい。
 以上、本発明の実施の形態について説明したが、この実施の形態を部分的に実施しても構わない。具体的には、この実施の形態の説明において「部」として説明するもののうち、いずれか1つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、この実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
 100 暗号システム、101 鍵生成装置、102 署名生成装置、103 準同型演算装置、104 署名検証装置、301 鍵生成パラメータ受信部、302 鍵生成部、303 鍵送信部、304 署名鍵受信部、305 メッセージ受信部、306 署名生成部、307 署名送信部、308 準同型鍵受信部、309 パラメータ受信部、310 署名受信部、311 準同型演算部、312 第2署名送信部、313 検証鍵受信部、314 署名受信部、315 署名検証部、316 検証結果送信部、500 準同型署名方法、510 準同型署名プログラム、901,901a,901b,901c,901d プロセッサ、902,902a,902b,902c,902d 記憶装置、903,903a,903b,903c,903d 入力装置、904,904a,904b,904c,904d 出力装置、909,909a,909b,909c,909d 処理回路、S100 準同型署名処理、S101 鍵生成処理、S102 署名生成処理、S103 準同型演算処理、S104 署名検証処理、sk 署名鍵、hk 準同型鍵、vk 検証鍵、σ 第1署名、σ’ 第2署名、cσ 入替署名、r 検証結果、m メッセージ、vσ 検証署名。

Claims (10)

  1.  署名鍵を用いて、N個(Nは2以上の整数)の文字を含むメッセージについて第1署名を生成する署名生成装置と、
     前記第1署名と前記署名鍵とは異なる準同型鍵とを用いて、前記メッセージにおいて位置が異なる2つの文字が入れ替わった改変メッセージの第2署名を生成する準同型演算装置と
    を備える暗号システム。
  2.  前記暗号システムは、さらに、
     双対ペアリングベクトル空間の基底B ,・・・,B であって基底B ,・・・,B のうちB 以降の基底がN-1個の変換行列W,・・・,WN-1を用いて生成された基底B ,・・・,B を用いて、前記基底B ,・・・,B の各基底の部分集合を含む前記署名鍵を生成する鍵生成装置を備え、
     前記署名生成装置は、
     前記署名鍵に含まれる前記基底B ,・・・,B の各基底の部分集合と前記メッセージとを用いて、双対ペアリングベクトル空間の元であって前記メッセージに含まれる各文字を含む元の組σ,・・・,σを生成し、生成した前記元の組σ,・・・,σを含む前記第1署名を生成する請求項1に記載の暗号システム。
  3.  前記準同型演算装置は、
     パラメータを取得し、前記パラメータと前記第1署名と前記準同型鍵とを用いて、前記メッセージの前記パラメータの値であるj番目(jは1以上N-1以下の整数)の文字とj+1番目の文字とが入れ替わった前記改変メッセージの前記第2署名を生成する請求項2に記載の暗号システム。
  4.  前記鍵生成装置は、
     前記変換行列W,・・・,WN-1と前記基底B ,・・・,B の各基底の部分集合とを含む前記準同型鍵を生成し、
     前記準同型演算装置は、
     前記準同型鍵に含まれる前記変換行列W,・・・,WN-1のうち前記パラメータの値であるj番目の変換行列Wを用いて前記第1署名に含まれる前記元の組σ,・・・,σにおいて前記パラメータの値であるj番目のσとj+1番目のσj+1とを入れ替え、σとσj+1とが入れ替わった入替署名を生成し、前記入替署名を用いて前記第2署名を生成する請求項3に記載の暗号システム。
  5.  前記準同型演算装置は、
     前記準同型鍵に含まれる前記基底B ,・・・,B の各基底の部分集合を用いて、双対ペアリングベクトル空間から元τ,・・・,τを生成し、前記入替署名と前記元τ,・・・,τとの積を用いて、前記第2署名を生成する請求項4に記載の暗号システム。
  6.  前記鍵生成装置は、さらに、
     双対ペアリングベクトル空間の基底B,・・・,Bの部分集合を含む検証鍵を生成し、
     前記暗号システムは、さらに、
     前記第2署名を検証署名として取得し、前記検証鍵を用いて、前記検証署名を検証する署名検証装置を備える請求項2から5のいずれか1項に記載の暗号システム。
  7.  前記署名検証装置は、
     前記第1署名を前記検証署名として取得し、前記検証鍵を用いて、前記検証署名を検証する請求項6に記載の暗号システム。
  8.  前記署名検証装置は、
     前記検証鍵に含まれる前記基底B,・・・,Bを用いて双対ペアリングベクトル空間の元c,・・・,cを生成し、前記元c,・・・,cと前記検証署名とのペアリング演算を実行し、ペアリング演算の演算結果に基づいて前記検証署名を検証する請求項6または7に記載の暗号システム。
  9.  署名生成装置が、署名鍵を用いて、N個(Nは2以上の整数)の文字を含むメッセージについて第1署名を生成し、
     準同型演算装置が、前記第1署名と前記署名鍵とは異なる準同型鍵とを用いて、前記メッセージにおいて位置が異なる2つの文字が入れ替わった改変メッセージの第2署名を生成する準同型署名方法。
  10.  署名鍵を用いて、N個(Nは2以上の整数)の文字を含むメッセージについて第1署名を生成する署名生成処理と、
     前記第1署名と前記署名鍵とは異なる準同型鍵とを用いて、前記メッセージにおいて位置が異なる2つの文字が入れ替わった改変メッセージの第2署名を生成する準同型演算処理と
    をコンピュータに実行させる準同型署名プログラム。
PCT/JP2015/078678 2015-10-08 2015-10-08 暗号システム、準同型署名方法及び準同型署名プログラム WO2017061017A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2015/078678 WO2017061017A1 (ja) 2015-10-08 2015-10-08 暗号システム、準同型署名方法及び準同型署名プログラム
JP2017544141A JP6266186B2 (ja) 2015-10-08 2015-10-08 暗号システム、準同型署名方法及び準同型署名プログラム
US15/761,568 US20180343109A1 (en) 2015-10-08 2015-10-08 Cryptographic system, homomorphic signature method, and computer readable medium
CN201580083446.8A CN108141362A (zh) 2015-10-08 2015-10-08 加密系统、同态签名方法和同态签名程序
EP15905836.1A EP3343830B1 (en) 2015-10-08 2015-10-08 Encryption system, homomorphic signature method, and homomorphic signature program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/078678 WO2017061017A1 (ja) 2015-10-08 2015-10-08 暗号システム、準同型署名方法及び準同型署名プログラム

Publications (1)

Publication Number Publication Date
WO2017061017A1 true WO2017061017A1 (ja) 2017-04-13

Family

ID=58488259

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/078678 WO2017061017A1 (ja) 2015-10-08 2015-10-08 暗号システム、準同型署名方法及び準同型署名プログラム

Country Status (5)

Country Link
US (1) US20180343109A1 (ja)
EP (1) EP3343830B1 (ja)
JP (1) JP6266186B2 (ja)
CN (1) CN108141362A (ja)
WO (1) WO2017061017A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108900532A (zh) * 2018-01-05 2018-11-27 艾科立方(香港)公司 用于消息处理的电子设备、方法和存储介质
US11849019B2 (en) 2019-02-25 2023-12-19 Nec Corporation Encryption system, key generation apparatus, key generation method, key generation program, and homomorphic operation apparatus

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11290252B2 (en) 2017-01-20 2022-03-29 Enveil, Inc. Compression and homomorphic encryption in secure query and analytics
US11777729B2 (en) 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
US20180212753A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-To-End Secure Operations Using a Query Vector
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
WO2018136801A1 (en) 2017-01-20 2018-07-26 Enveil, Inc. End-to-end secure operations using a query matrix
US11507683B2 (en) 2017-01-20 2022-11-22 Enveil, Inc. Query processing with adaptive risk decisioning
US10902133B2 (en) 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
US10817262B2 (en) 2018-11-08 2020-10-27 Enveil, Inc. Reduced and pipelined hardware architecture for Montgomery Modular Multiplication
CN110740033B (zh) * 2019-08-19 2022-07-19 杭州云象网络技术有限公司 一种基于秘密共享技术的区块链多方数据共享方法
US11539517B2 (en) * 2019-09-09 2022-12-27 Cisco Technology, Inc. Private association of customer information across subscribers
US11601258B2 (en) 2020-10-08 2023-03-07 Enveil, Inc. Selector derived encryption systems and methods
CN114257366B (zh) * 2021-12-20 2024-04-12 成都卫士通信息产业股份有限公司 信息同态处理方法、装置、设备及计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465299A (en) * 1992-12-03 1995-11-07 Hitachi, Ltd. Electronic document processing system and method of forming digital signature

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3260524B2 (ja) * 1992-12-03 2002-02-25 株式会社日立製作所 ディジタル署名の生成方法
US7961876B2 (en) * 2005-01-11 2011-06-14 Jintai Ding Method to produce new multivariate public key cryptosystems
US7743253B2 (en) * 2005-11-04 2010-06-22 Microsoft Corporation Digital signature for network coding
WO2009090750A1 (ja) * 2008-01-18 2009-07-23 Mitsubishi Electric Corporation 暗号パラメータ設定装置及び鍵生成装置及び暗号システム及びプログラム及び暗号パラメータ設定方法及び鍵生成方法
CN101714910B (zh) * 2009-11-20 2012-10-24 西安电子科技大学 基于概率检测的抗污染网络编码方法
IL206139A0 (en) * 2010-06-02 2010-12-30 Yaron Sella Efficient multivariate signature generation
US8667288B2 (en) * 2012-05-29 2014-03-04 Robert Bosch Gmbh System and method for message verification in broadcast and multicast networks
EP2768179A1 (en) * 2013-02-15 2014-08-20 Thomson Licensing Cryptographic devices and methods for generating and verifying linearly homomorphic structure-preserving signatures
CN104796475B (zh) * 2015-04-24 2018-10-26 苏州大学 一种基于同态加密的社会化推荐方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465299A (en) * 1992-12-03 1995-11-07 Hitachi, Ltd. Electronic document processing system and method of forming digital signature

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JAE HYUN AHN ET AL.: "Computing on Authenticated Data", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2011/096, 26 December 2011 (2011-12-26), pages 1 - 35, XP035455273, Retrieved from the Internet <URL:https://eprint.iacr.org/2011/096.pdf> [retrieved on 20151202] *
NORIAKI FURUKAWA ET AL.: "Standard Model de Full Secure na Tsuikagata Shomei", 2010 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY SCIS2010, vol. 4A2-5, 22 January 2010 (2010-01-22), pages 1 - 6 *
YOSHIHIRO KOSEKI ET AL.: "Moji Ichi no Kokan o Kano to suru Kagitsuki Jundokei Shomei Hoshiki", COMPUTER SECURITY SYMPOSIUM 2015 (CSS2015, vol. 2C3-2, 14 October 2015 (2015-10-14), pages 592 - 599, XP009504826 *
YUTAKA KAWAI ET AL.: "Predicate- and Attribute-Hiding Inner Product Encryption in a Public Key Setting", CRYPTOLOGY EPRINT ARCHIVE: REPORT 2013/763, 21 November 2013 (2013-11-21), pages 1 - 47, XP047266266, Retrieved from the Internet <URL:https://eprint.iacr.org/2013/763.pdf> [retrieved on 20151202] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108900532A (zh) * 2018-01-05 2018-11-27 艾科立方(香港)公司 用于消息处理的电子设备、方法和存储介质
CN108900532B (zh) * 2018-01-05 2020-10-16 艾科立方(香港)公司 用于消息处理的电子设备、方法、存储介质和装置
US11849019B2 (en) 2019-02-25 2023-12-19 Nec Corporation Encryption system, key generation apparatus, key generation method, key generation program, and homomorphic operation apparatus

Also Published As

Publication number Publication date
EP3343830A1 (en) 2018-07-04
EP3343830B1 (en) 2019-07-17
JP6266186B2 (ja) 2018-01-24
EP3343830A4 (en) 2018-09-12
CN108141362A (zh) 2018-06-08
JPWO2017061017A1 (ja) 2017-11-24
US20180343109A1 (en) 2018-11-29

Similar Documents

Publication Publication Date Title
JP6266186B2 (ja) 暗号システム、準同型署名方法及び準同型署名プログラム
WO2019144612A1 (zh) 基于区块链的零知识多账本兑换转账方法、装置及存储介质
Kim et al. Ultrafast homomorphic encryption models enable secure outsourcing of genotype imputation
US20170019380A1 (en) Secure shared key sharing systems and methods
CN111539535B (zh) 基于隐私保护的联合特征分箱方法及装置
JP5593458B2 (ja) 文字列がオートマトンに受理されるか否かを認証するシステム
KR20120127607A (ko) 암호화 키를 획득하기 위한 디바이스 및 방법
JP2015031935A (ja) 情報処理方法及びプログラム
US11575501B2 (en) Preserving aggregation using homomorphic encryption and trusted execution environment, secure against malicious aggregator
JP2015212756A (ja) 情報処理方法及びプログラム
CN113424492B (zh) 用以验证数字签名的系统和方法
US11722322B2 (en) Method for providing information to be stored and method for providing a proof of retrievability
Preston Applying Grover's Algorithm to Hash Functions: A Software Perspective
Chatel et al. Verifiable encodings for secure homomorphic analytics
Ahmad et al. A secure network communication protocol based on text to barcode encryption algorithm
ALmarwani et al. An effective, secure and efficient tagging method for integrity protection of outsourced data in a public cloud storage
WO2020240654A1 (ja) 匿名署名システム、署名生成装置、匿名署名生成装置、検証装置、匿名署名方法及びプログラム
Bijwe et al. Implementing grover oracle for lightweight block ciphers under depth constraints
JP7233265B2 (ja) 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム
US20190163933A1 (en) Secure computation system, secure computation device, secure computation method, and program
EP3364397B1 (en) Secret authentication code adding device, secret authentification code adding method, and program
US20230132163A1 (en) Memory processing apparatus, memory verification apparatus, memory updating apparatus, memory protection system, method, and computer readable medium
Brand et al. Practical Privacy-Preserving Machine Learning using Fully Homomorphic Encryption
JP6980154B2 (ja) データ利用者鍵生成装置、鍵生成方法及び鍵生成プログラム
JP6087849B2 (ja) 代理署名装置、署名検証装置、鍵生成装置、代理署名システム、およびプログラム

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017544141

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 15761568

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE