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

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

Info

Publication number
WO2020065928A1
WO2020065928A1 PCT/JP2018/036338 JP2018036338W WO2020065928A1 WO 2020065928 A1 WO2020065928 A1 WO 2020065928A1 JP 2018036338 W JP2018036338 W JP 2018036338W WO 2020065928 A1 WO2020065928 A1 WO 2020065928A1
Authority
WO
WIPO (PCT)
Prior art keywords
signature
verification
unit
product
hash value
Prior art date
Application number
PCT/JP2018/036338
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/JP2018/036338 priority Critical patent/WO2020065928A1/ja
Priority to JP2020540506A priority patent/JP6818949B2/ja
Priority to CN201880097803.XA priority patent/CN112740618A/zh
Publication of WO2020065928A1 publication Critical patent/WO2020065928A1/ja
Priority to US17/209,966 priority patent/US20210211303A1/en

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/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/3236Cryptographic 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 using cryptographic hash functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N10/00Quantum computing, i.e. information processing based on quantum-mechanical phenomena
    • G06N10/60Quantum algorithms, e.g. based on quantum optimisation, quantum Fourier or Hadamard transforms

Definitions

  • the present invention relates to a digital signature in consideration of a quantum computer.
  • Digital signature is a cryptographic technique that can verify the validity of data.
  • When communicating over a network ensure that the data received is really the data sent by the sender and that the data received is unmodified data. There is a need. By attaching a signature to the data on the transmitting side and verifying the signature attached to the data on the receiving side, the validity of the data can be verified.
  • Lattice cryptography is a cryptographic technique realized using a lattice, which is a set of vectors expressed by linear transformation of linearly independent integer vectors.
  • the shortest vector problem for a grid is to find the shortest vector contained in the grid.
  • Lattice cryptography is based on the fact that it is difficult for quantum computers to solve the shortest vector problem.
  • Lattice cryptography is an encryption method that is considered to be secure even if quantum computers are realized. It is one of.
  • Efficient lattice cryptography uses the shortest vector problem on a special lattice called the ideal lattice as the basis for security. It is known that the shortest vector problem can be efficiently deciphered by a quantum computer for a specific parameter from the property of a circular polynomial which is a polynomial that defines an ideal lattice.
  • Non-Patent Document 1 discloses an efficient digital signature scheme using the shortest vector problem on an ideal lattice as a basis for security.
  • the method disclosed in Non-Patent Document 1 is not secure because the shortest vector problem on the grid defined by a specific circular polynomial is used as a basis for security.
  • Non-Patent Document 2 discloses an efficient digital signature scheme that uses the shortest vector problem on a lattice that does not depend on a specific circular polynomial as a basis for security.
  • Non-Patent Document 2 The digital signature scheme disclosed in Non-Patent Document 2 is not shown to be secure in a security model in which a quantum computer calculates a hash function.
  • a digital signature scheme that uses the shortest vector problem on a grid as a basis for security calculates a hash function to generate a digital signature. Therefore, in order to consider the security of the quantum computer in a strict sense, it is desirable that the security is shown even in a model in which the quantum computer calculates the hash function.
  • An object of the present invention is to make it possible to configure a digital signature scheme that can guarantee security even for a quantum computer.
  • the signature device includes: A signature generation unit that calculates a Middle-Product of a hash value c of the message ⁇ and a secret key to generate a signature element z; An output unit that outputs a signature ⁇ including the signature element z generated by the signature generation unit.
  • the signature element z is generated by calculating the Middle-Product of the hash value c of the message ⁇ and the secret key. This makes it possible to configure a digital signature scheme that can indicate security in a security model in which a quantum computer calculates a hash function.
  • FIG. 1 is a configuration diagram of a signature system 1 according to the first embodiment.
  • FIG. 1 is a configuration diagram of a key generation device 10 according to a first embodiment.
  • FIG. 2 is a configuration diagram of a signature device 20 according to the first embodiment.
  • FIG. 2 is a configuration diagram of a verification device 30 according to the first embodiment.
  • 5 is a flowchart of the operation of the key generation device 10 according to the first embodiment. 5 is a flowchart of a key generation process according to the first embodiment. 5 is a flowchart of the operation of the signature device 20 according to the first embodiment. 5 is a flowchart of a signature generation process according to the first embodiment. 5 is a flowchart of the operation of the verification device 30 according to the first embodiment.
  • FIG. 9 is a configuration diagram of a key generation device 10 according to a first modification.
  • FIG. 9 is a configuration diagram of a signature device 20 according to a first modification.
  • the block diagram of the verification apparatus 30 which concerns on the modification
  • the signature system 1 includes a key generation device 10, a signature device 20, and a verification device 30.
  • the key generation device 10, the signature device 20, and the verification device 30 are connected via a communication path 40 such as the Internet.
  • the communication path 40 is not limited to the Internet, and may be another type of communication path such as a LAN (Local Area Network).
  • the key generation device 10 is a computer such as a PC (Personal Computer).
  • the key generation device 10 generates a public key and a secret key used for encryption, transmits the secret key to the signature device 20 via the communication path 40, and transmits the public key to the verification device 30.
  • the signature device 20 is a computer such as a PC (Personal Computer).
  • the signature device 20 generates signature data for plaintext data such as document data stored inside the computer by generating a signature using the stored private key, and verifies the signature data and the plaintext data with the verification device. 30.
  • the verification device 30 is a computer such as a PC (Personal Computer).
  • the verification device 30 uses the plaintext data and the signature data received from the signature device 20 and the public key received from the key generation device 10 to generate signature data verification result data for the plaintext data.
  • any two or more of the key generation device 10, the signature device 20, and the verification device 30 may be included in the same computer at the same time.
  • the key generation device 10 includes hardware of a processor 11, a memory 12, a storage 13, and a communication interface 14.
  • the processor 11 is connected to other hardware via a signal line, and controls the other hardware.
  • the key generation device 10 includes a reception unit 111, a key generation unit 112, and a transmission unit 113 as functional components.
  • the function of each functional component of the key generation device 10 is realized by software.
  • the storage 13 stores a program for realizing the function of each functional component of the key generation device 10. This program is read into the memory 12 by the processor 11 and executed by the processor 11. Thereby, the function of each functional component of the key generation device 10 is realized.
  • the storage 13 implements the function of the key storage unit 131.
  • the configuration of the signature device 20 according to the first embodiment will be described with reference to FIG.
  • the signature device 20 includes hardware of a processor 21, a memory 22, a storage 23, and a communication interface 24.
  • the processor 21 is connected to other hardware via a signal line, and controls the other hardware.
  • the signature device 20 includes a reception unit 211, a signature generation unit 212, and an output unit 213 as functional components.
  • the function of each functional component of the signature device 20 is realized by software.
  • the storage 23 stores a program for realizing the function of each functional component of the signature device 20. This program is read into the memory 22 by the processor 21 and executed by the processor 21. Thereby, the function of each functional component of the signature device 20 is realized.
  • the storage 23 implements the function of the key storage unit 231.
  • the configuration of the verification device 30 according to the first embodiment will be described with reference to FIG.
  • the verification device 30 includes hardware of a processor 31, a memory 32, a storage 33, and a communication interface.
  • the processor 31 is connected to other hardware via a signal line, and controls the other hardware.
  • the verification device 30 includes a reception unit 311 and a verification unit 312 as functional components.
  • the function of each functional component of the verification device 30 is realized by software.
  • the storage 33 stores a program that implements the function of each functional component of the verification device 30. This program is read into the memory 32 by the processor 31 and executed by the processor 31. Thereby, the function of each functional component of the verification device 30 is realized.
  • the storage 33 implements the functions of a key storage unit 331 and a result storage unit 332.
  • the processors 11, 21, and 31 are ICs (Integrated Circuits) that perform arithmetic processing.
  • the processors 11, 21 and 31 are, as specific examples, a CPU (Central Processing Unit), a DSP (Digital Signal Processor), and a GPU (Graphics Processing Unit).
  • the memories 12, 22, and 32 are storage devices for temporarily storing data. Specific examples of the memories 12, 22, 32 are an SRAM (Static Random Access Memory) and a DRAM (Dynamic Random Access Memory).
  • SRAM Static Random Access Memory
  • DRAM Dynamic Random Access Memory
  • the storages 13, 23, and 33 are storage devices for storing data.
  • the storages 13, 23, and 33 are, as a specific example, HDDs (Hard ⁇ Disk ⁇ Drive).
  • the storages 13, 23, and 33 are SD (registered trademark, Secure Digital) memory card, CF (CompactFlash, registered trademark), NAND flash, flexible disk, optical disk, compact disk, Blu-ray (registered trademark) disk, DVD (Digital)
  • a portable storage medium such as Versatile @ Disk may be used.
  • the communication interfaces 14, 24, and 34 are interfaces for communicating with external devices.
  • the communication interfaces 14, 24, and 34 are ports of Ethernet (registered trademark), USB (Universal Serial Bus), and HDMI (registered trademark, High-Definition Multimedia Interface).
  • the key generation device 10 may include a plurality of processors instead of the processor 11.
  • the signature device 20 may include a plurality of processors replacing the processor 21.
  • the verification device 30 may include a plurality of processors replacing the processor 31.
  • the plurality of processors share execution of a program that realizes the function of each functional component.
  • Each processor is an IC that performs arithmetic processing, like the processors 11, 21, and 31.
  • the operation of the signature system 1 according to the first embodiment will be described with reference to FIGS.
  • the operation of the signature system 1 according to the first embodiment corresponds to the signature method according to the first embodiment.
  • the operation of the signature system 1 according to the first embodiment corresponds to the processing of the signature program according to the first embodiment.
  • Equation 13 For arbitrary integers a and b, (a, b) represents the set shown in Equation 13, and [a, b] represents the set shown in Equation 14. For any positive integer d> 0, [d] is the set ⁇ 1, 2,. . . , D ⁇ .
  • Expression 15 indicates that a ⁇ S is uniformly randomly selected from the set S.
  • Expression 16 indicates that b ⁇ S is selected along the probability distribution P.
  • Negl ( ⁇ ) represents a set of functions that can be ignored for the natural number ⁇ .
  • the digital signature is composed of three algorithms: a KeyGen algorithm, a Sign algorithm, and a Verify algorithm.
  • the KeyGen algorithm receives a security parameter ⁇ as an input and outputs a pair (sk, pk) of a secret key sk and a public key pk.
  • the Sign algorithm receives a secret key sk and a message ⁇ as inputs and outputs a signature ⁇ .
  • the Verify algorithm receives the public key pk, the message ⁇ , and the signature ⁇ as inputs, and outputs 1 if the signature ⁇ is a valid signature of the message ⁇ ; otherwise, outputs 0.
  • MPLWE Middle-Product Learning With Errors
  • coefficient represents the set of polynomials Z R ⁇ by k, the coefficient representing the set of polynomials Z q in R q ⁇ k.
  • the L ⁇ norm and the L 2 norm of the polynomial r are expressed as shown in Expression 17.
  • a set of elements w that satisfies Equation 18 is represented by S ⁇ ⁇ k .
  • r [i: j] (0 ⁇ i ⁇ j ⁇ k) represents a vector of the i-th to j-th coefficient of r.
  • M Middle-Product can be represented using a Toeplitz matrix as follows: The product of the Toeplitz matrix and the vector can be calculated by O (nlogn).
  • Equation 24 can be transformed as Equation 25.
  • Equation 26 holds for all r ⁇ R ⁇ k + 1 , a ⁇ R ⁇ n , and s ⁇ R ⁇ n + d + k ⁇ 1 .
  • the definition of the deterministic MPLWE problem will be explained.
  • the MPLWE problem is a problem to identify which of the probability distributions, the MPLWE distribution and the uniform distribution, is an element sampled from.
  • the deterministic MPLWE assumption is an assumption that the MPLWE problem is difficult to solve with any efficient algorithm.
  • the MPLWE n, d, q, ⁇ problem consists of combining any number of samples from MPLWE n, d, q, ⁇ (s) and the same number of samples from Z q ⁇ n [x] ⁇ R q ⁇ d. It is a matter of identification.
  • the superiority of attacker A for the MPLWE n, d, q, ⁇ problem is defined as:
  • the probability is calculated based on Expression 31 and the random number of the attacker.
  • Equation 32 A bit that is 1 if B is true and 0 otherwise is represented by Equation 32.
  • the UseHint q (h, r, ⁇ ) algorithm restores the upper bits of r + z according to the information of the MakeHint q (z, r, ⁇ ) algorithm described later.
  • C is a set of polynomials.
  • the L ⁇ norm of the elements is 1, and the L 2 norm is restricted such that the polynomial has ⁇ -bit min-entropy.
  • ⁇ , ⁇ ′, ⁇ , ⁇ ′, and ⁇ in the following description are values determined in consideration of security, and the higher the security is set, the larger the value is set.
  • the operation of the key generation device 10 according to the first embodiment will be described with reference to FIG.
  • the operation of the key generation device 10 according to the first embodiment corresponds to the key generation method according to the first embodiment.
  • the operation of the key generation device 10 according to the first embodiment corresponds to the processing of the key generation program according to the first embodiment.
  • the key generation device 10 implements the KeyGen algorithm among the three algorithms of the digital signature.
  • Step S11 reception processing
  • the receiving unit 111 receives an input of the security parameter ⁇ . Specifically, the receiving unit 111 receives the security parameter ⁇ input by the user of the key generation device 10 operating the input device. The receiving unit 111 writes the security parameter ⁇ into the memory 12.
  • Step S12 key generation processing
  • the key generation unit 112 reads the security parameter ⁇ from the memory 12.
  • the key generation unit 112 receives the security parameter ⁇ as an input and generates a pair of a secret key sk and a public key pk.
  • Step S121 Parameter setting processing
  • the key generation unit 112 reads the security parameter ⁇ from the memory 12.
  • Step S122 random number generation processing
  • the key generation unit 112 generates a ⁇ R q ⁇ n uniformly and randomly. Specifically, the key generation unit 112 randomly selects the seed ⁇ as shown in Expression 40. Then, the key generation unit 112 receives the seed ⁇ as input and generates a ⁇ R q ⁇ n by a pseudo random number generation algorithm.
  • Step S123 Private Key Element Generation Processing
  • the key generation unit 112 as shown in Expression 41, to generate a uniform random element s 1 and element s 2 secret key sk.
  • Step S124 Public Key Element Generation Processing
  • the key generation unit 112 as shown in Expression 42, to produce an element t 0 and elements t 1 of the public key pk.
  • Step S125 key setting process
  • Step S13 Transmission processing
  • the transmission unit 113 reads the secret key sk and the public key pk from the memory 12.
  • the transmitting unit 113 transmits the secret key sk to the signature device 20 via the communication interface 14 and the communication path 40 in secret.
  • the receiving unit 211 of the signature device 20 receives the secret key sk and writes it into the key storage unit 231.
  • the transmission unit 113 transmits the public key pk to the verification device 30 via the communication interface 14 and the communication path 40.
  • the receiving unit 311 of the verification device 30 receives the public key pk and writes it into the key storage unit 331.
  • to transmit densely means, for example, to transmit after encrypting by an existing encryption method.
  • the secret key sk and the public key pk may be stored in a portable storage medium and transmitted directly by mail or the like.
  • the public key and the secret key may be generated by an external device.
  • the operation of the signature device 20 according to the first embodiment will be described with reference to FIG.
  • the operation of the signature device 20 according to the first embodiment corresponds to the signature generation method according to the first embodiment. Further, the operation of the signature device 20 according to the first embodiment corresponds to the processing of the signature generation program according to the first embodiment.
  • the signature device 20 implements a Sign algorithm among three algorithms of a digital signature.
  • Step S21 reception processing
  • Receiving unit 211 receives an input of message ⁇ . Specifically, the receiving unit 211 receives the message ⁇ input by the user of the signature device 20 operating the input device. Receiving unit 211 writes message ⁇ into memory 22.
  • Step S22 Signature generation processing
  • the signature generation unit 212 reads the secret key sk from the key storage unit 231 and reads the message ⁇ from the memory 22.
  • the signature generation unit 212 receives the secret key sk and the message ⁇ as inputs and generates a signature ⁇ for the message ⁇ .
  • Step S221 random number generation processing
  • the signature generation unit 212 generates a random number y as shown in Expression 43.
  • Step S222 Hash value c generation processing
  • the signature generation unit 212 generates an element w as shown in Expression 44.
  • the signature generation unit 212 generates an element w 1 as shown in Formula 45.
  • Step S223 Element z generation processing
  • the signature generation unit 212 the hash value c, an element s 1 secret key sk, as inputs the random number y, as shown in Formula 46, to produce an element z signature sigma.
  • the signature generation unit 212 generates the calculated and signature elements z of Middle-Product of the elements s 1 hash value c and the secret key sk messages mu. More specifically, the signature generation unit 212 generates a signature element z by adding a random value y having a small coefficient to a value obtained by calculating Middle-Product of the hash value c and the secret key.
  • Step S224 Element h generation processing
  • Step S225 signature setting process
  • the signature generation unit 212 writes the signature ⁇ into the memory 22.
  • Step S23 output processing
  • the output unit 213 outputs the signature ⁇ and the message ⁇ including the signature element h, the signature element z, and the hash value c generated by the signature generation unit 212. Specifically, the output unit 213 transmits the signature ⁇ and the message ⁇ to the verification device 30 via the communication interface 24 and the communication path 40. Then, the accepting unit 311 of the verification device 30 accepts the signature ⁇ and the message ⁇ and writes them into the memory 32.
  • the operation of the verification device 30 according to the first embodiment will be described with reference to FIG.
  • the operation of the verification device 30 according to the first embodiment corresponds to the verification method according to the first embodiment.
  • the operation of the verification device 30 according to the first embodiment corresponds to the processing of the verification program according to the first embodiment.
  • the verification device 30 realizes the Verify algorithm among the three algorithms of the digital signature.
  • Step S31 read processing
  • the verification unit 312 reads the public key pk from the key storage unit 331 and reads the signature ⁇ and the message ⁇ from the memory 32.
  • Step S32 element w '1 generation process
  • the verification unit 312 generates the element w ′ 1 as shown in Expression 50. That is, the verification unit 312 calculates the Middle-Product of the signature element z included in the signature ⁇ and the element a of the public key pk, and calculates the hash value c included in the signature ⁇ and the element t 1 of the public key pk. Calculate Middle-Product to generate element w ′ 1 .
  • Step S33 norm determination processing
  • the verification unit 312 determines whether Expression 51 is satisfied. If the formula 51 is satisfied, the verification unit 312 advances the processing to step S34. On the other hand, if the formula 51 does not hold, the verification unit 312 advances the process to step S36.
  • Step S34 hash value determination processing
  • the verification unit 312 determines whether the hash value c included in the signature ⁇ is equal to the calculated hash value c ′. If the hash value c is equal to the hash value c ′, the verification unit 312 advances the processing to step S35. On the other hand, when the hash value c is not equal to the hash value c ′, the verification unit 312 advances the processing to step S36.
  • Step S35 validity determination processing
  • the verification unit 312 determines that the message ⁇ is valid.
  • the validity of the message ⁇ means that the message ⁇ has not been tampered with and the message ⁇ has been transmitted by the holder of the secret key sk. Then, the verification unit 312 outputs a value 1 indicating that the message ⁇ is valid.
  • Step S36 improper determination processing
  • the verification unit 312 determines that the message ⁇ is invalid. Unauthorized message ⁇ means that the message ⁇ has been tampered with and / or the message ⁇ has been transmitted by a person other than the holder of the secret key sk. Then, the verification unit 312 outputs a value 0 indicating that the message ⁇ is invalid.
  • Equation 50 becomes as shown in Equation 58.
  • Equation 64 in the third row of Equation 58 is a small value. Therefore, in the HighBits q (r, ⁇ ) algorithm that outputs the high-order bit, it can be ignored. Therefore, it is transformed from the third line to the fourth line in Expression 58.
  • the signature device 20 calculates a Middle-Product of the elements s 1 hash value c and the secret key sk message ⁇ is the element of the signature ⁇ Generate a signature element z.
  • the verification device 30 calculates the Middle-Product of the signature element z that is the element of the signature ⁇ and the element a of the public key pk, and also calculates the hash value c that is the element of the signature ⁇ and the element t 1 of the public key pk. Is calculated, and the signature ⁇ is verified.
  • the MPLWE assumption can be used as the basis of security, and a digital signature scheme that can guarantee security even for a quantum computer can be configured.
  • each functional component is realized by software.
  • each functional component may be realized by hardware.
  • points different from the first embodiment will be described.
  • the key generation device 10 includes an electronic circuit 15 instead of the processor 11, the memory 12, and the storage 13.
  • the electronic circuit 15 is a dedicated circuit for realizing the functions of the functional components, the memory 12, and the storage 13.
  • the signature device 20 includes an electronic circuit 25 instead of the processor 21, the memory 22, and the storage 23.
  • the electronic circuit 25 is a dedicated circuit for realizing the functions of the functional components, the memory 22, and the storage 23.
  • the verification device 30 includes an electronic circuit 35 instead of the processor 31, the memory 32, and the storage 33.
  • the electronic circuit 35 is a dedicated circuit that realizes the functions of the respective functional components, the memory 32, and the storage 33.
  • the electronic circuits 15, 25, and 35 include a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, a logic IC, a GA (Gate Array), an ASIC (Application Specific Integrated Circuit), and an FPGA (Field-Programmable). Gate Array) is assumed. Each functional component may be realized by one electronic circuit 15, 25, or 35, or each functional component may be realized by being distributed to a plurality of electronic circuits 15, 25, and 35.
  • ⁇ Modification 2> As a second modification, some of the functional components may be implemented by hardware, and other functional components may be implemented by software.
  • the processors 11, 21, 31, the memories 12, 22, 32, the storages 13, 23, 33, and the electronic circuits 15, 25, 35 are referred to as processing circuits. That is, the function of each functional component is realized by the processing circuit.
  • 1 signature system 10 key generation device, 11 processor, 12 memory, 13 storage, 14 communication interface, 15 electronic circuit, 111 reception unit, 112 key generation unit, 113 transmission unit, 131 key storage unit, 20 signature device, 21 processor , 22 memory, 23 storage, 24 communication interface, 25 electronic circuit, 211 reception unit, 212 signature generation unit, 213 output unit, 231 key storage unit, 30 verification device, 31 processor, 32 memory, 33 storage, 34 communication interface, 35 electronic circuit, 311 reception unit, 312 verification unit, 331 key storage unit, 40 communication path.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Algebra (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Computational Mathematics (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Storage Device Security (AREA)

Abstract

鍵生成装置(10)は、要素sを含む秘密鍵skと、要素aと要素tとを含む公開鍵pkとのペアを生成する。署名装置(20)は、メッセージμのハッシュ値cと秘密鍵skの要素sとのミドルプロダクトを計算して署名σの要素である署名要素zを生成する。また、検証装置(30)は、署名σの要素である署名要素zと公開鍵pkの要素aとのMiddle-Productを計算するとともに、署名σの要素であるハッシュ値cと公開鍵pkの要素tとのMiddle-Productを計算して、署名σを検証する。

Description

署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム
 この発明は、量子コンピュータを考慮したディジタル署名に関する。
 ディジタル署名は、データの正当性を検証することができる暗号技術である。
 ネットワークを介して通信を行う際には、受け取ったデータが本当に送信者から送られたデータであり、かつ、受け取ったデータが改ざんされていないデータであるというデータの正当性を確かめられるようにする必要がある。送信側でデータに署名を付随させ、受信側でデータに付随する署名を検証することにより、データの正当性を検証することができる。
 格子暗号とは,線形独立な整数ベクトルの線形変換で表されるベクトルの集合である格子を用いて実現される暗号技術である。
 ある格子についての最短ベクトル問題は、その格子に含まれる最も短いベクトルを見つける問題である。格子暗号は、最短ベクトル問題を解くことが量子コンピュータにとっても困難であることを安全性の根拠としているため、格子暗号は、量子コンピュータが実現されたとしても安全であると考えられている暗号方式の1つである。
 効率的な格子暗号は、イデアル格子と呼ばれる特殊な格子の上での最短ベクトル問題を安全性の根拠としている。イデアル格子を定義する多項式である円分多項式の性質より、特定のパラメータにおいては最短ベクトル問題が量子コンピュータによって効率的に解読されることが知られている。
 非特許文献1には、イデアル格子上の最短ベクトル問題を安全性の根拠とした、効率的なディジタル署名方式が示されている。しかし、非特許文献1に示された方法は、特定の円分多項式によって定義される格子上の最短ベクトル問題を安全性の根拠としているため、安全ではない可能性がある。
 非特許文献2には、特定の円分多項式に依存しない格子上の最短ベクトル問題を安全性の根拠とした、効率的なディジタル署名方式が示されている。
Leo Ducas, Eike Kiltz, Tancrede Lepoint, Vadim Lyubashevsky, Peter Schwabe, Gregor Seiler, and Damien Stehle. CRYSTALS-Dilithium: A Lattice-Based Digital Signature Scheme. In CHES, pages 238-268, 2018. Vadim Lyubashevsky. Digital Signatures Based on the Hardness of Ideal Lattice Problems in all Rings. In ASIACRYPT, pages 196-214, 2016.
 非特許文献2で示されているディジタル署名方式は、量子コンピュータがハッシュ関数を計算するような安全性モデルにおいては安全であることが示されていない。格子の上での最短ベクトル問題を安全性の根拠とするディジタル署名方式は、ディジタル署名を生成するためにハッシュ関数を計算している。そのため、厳密な意味での量子コンピュータに対する安全性を考慮するためには、量子コンピュータがハッシュ関数を計算するようなモデルにおいても安全性が示されていることが望ましい。
 この発明は、量子コンピュータに対しても安全性が保証可能なディジタル署名方式を構成可能にすることを目的とする。
 この発明に係る署名装置は、
 メッセージμのハッシュ値cと秘密鍵とのMiddle-Productを計算して署名要素zを生成する署名生成部と、
 前記署名生成部によって生成された前記署名要素zを含む署名σを出力する出力部と
を備える。
 この発明では、メッセージμのハッシュ値cと秘密鍵とのMiddle-Productを計算して署名要素zを生成する。これにより、量子コンピュータがハッシュ関数を計算するような安全性モデルにおいて安全であることを示すことが可能なディジタル署名方式を構成可能になる。
実施の形態1に係る署名システム1の構成図。 実施の形態1に係る鍵生成装置10の構成図。 実施の形態1に係る署名装置20の構成図。 実施の形態1に係る検証装置30の構成図。 実施の形態1に係る鍵生成装置10の動作のフローチャート。 実施の形態1に係る鍵生成処理のフローチャート。 実施の形態1に係る署名装置20の動作のフローチャート。 実施の形態1に係る署名生成処理のフローチャート。 実施の形態1に係る検証装置30の動作のフローチャート。 変形例1に係る鍵生成装置10の構成図。 変形例1に係る署名装置20の構成図。 変形例1に係る検証装置30の構成図。
 実施の形態1.
 ***構成の説明***
 図1を参照して、実施の形態1に係る署名システム1の構成を説明する。
 署名システム1は、鍵生成装置10と、署名装置20と、検証装置30とを備える。鍵生成装置10と、署名装置20と、検証装置30とは、インターネットといった通信路40を介して接続されている。通信路40は、インターネットに限らず、LAN(Local Area Network)といった他の種別の通信路であってもよい。
 鍵生成装置10は、PC(Personal Computer)といったコンピュータである。鍵生成装置10は、暗号化に利用する公開鍵及び秘密鍵を生成し、通信路40を介して、秘密鍵を署名装置20に送信するとともに、公開鍵を検証装置30に送信する。
 署名装置20は、PC(Personal Computer)といったコンピュータである。署名装置20は、コンピュータ内部に保存されている文書データ等の平文データに対して、保管している秘密鍵で署名を生成することで署名データを生成し、署名データと平文データとを検証装置30に送信する。
 検証装置30は、PC(Personal Computer)といったコンピュータである。検証装置30は、署名装置20から受け取った平文データ及び署名データと、鍵生成装置10から受け取った公開鍵とを用いて、平文データについての署名データの検証結果データを生成する。
 なお、同じコンピュータ内に、鍵生成装置10と署名装置20と検証装置30とのいずれか2つ以上が同時に含まれていてもよい。
 図2を参照して、実施の形態1に係る鍵生成装置10の構成を説明する。
 鍵生成装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 鍵生成装置10は、機能構成要素として、受付部111と、鍵生成部112と、送信部113とを備える。鍵生成装置10の各機能構成要素の機能はソフトウェアにより実現される。
 ストレージ13には、鍵生成装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、鍵生成装置10の各機能構成要素の機能が実現される。
 ストレージ13は、鍵記憶部131の機能を実現する。
 図3を参照して、実施の形態1に係る署名装置20の構成を説明する。
 署名装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 署名装置20は、機能構成要素として、受付部211と、署名生成部212と、出力部213とを備える。署名装置20の各機能構成要素の機能はソフトウェアにより実現される。
 ストレージ23には、署名装置20の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、署名装置20の各機能構成要素の機能が実現される。
 ストレージ23は、鍵記憶部231の機能を実現する。
 図4を参照して、実施の形態1に係る検証装置30の構成を説明する。
 検証装置30は、プロセッサ31と、メモリ32と、ストレージ33と、通信インタフェース34とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 検証装置30は、機能構成要素として、受付部311と、検証部312とを備える。検証装置30の各機能構成要素の機能はソフトウェアにより実現される。
 ストレージ33には、検証装置30の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ31によりメモリ32に読み込まれ、プロセッサ31によって実行される。これにより、検証装置30の各機能構成要素の機能が実現される。
 ストレージ33は、鍵記憶部331と、結果記憶部332との機能を実現する。
 プロセッサ11,21,31は、演算処理を行うIC(Integrated Circuit)である。プロセッサ11,21,31は、具体例としては、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 メモリ12,22,32は、データを一時的に記憶する記憶装置である。メモリ12,22,32は、具体例としては、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。
 ストレージ13,23,33は、データを保管する記憶装置である。ストレージ13,23,33は、具体例としては、HDD(Hard Disk Drive)である。また、ストレージ13,23,33は、SD(登録商標,Secure Digital)メモリカード、CF(CompactFlash,登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital Versatile Disk)といった可搬記憶媒体であってもよい。
 通信インタフェース14,24,34は、外部の装置と通信するためのインタフェースである。通信インタフェース14,24,34は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High-Definition Multimedia Interface)のポートである。
 図2では、プロセッサ11は、1つだけ示されている。しかし、鍵生成装置10は、プロセッサ11を代替する複数のプロセッサを備えていてもよい。同様に、署名装置20は、プロセッサ21を代替する複数のプロセッサを備えていてもよい。検証装置30は、プロセッサ31を代替する複数のプロセッサを備えていてもよい。
 これら複数のプロセッサは、各機能構成要素の機能を実現するプログラムの実行を分担する。それぞれのプロセッサは、プロセッサ11,21,31と同じように、演算処理を行うICである。
 ***動作の説明***
 図5から図9を参照して、実施の形態1に係る署名システム1の動作を説明する。
 実施の形態1に係る署名システム1の動作は、実施の形態1に係る署名方法に相当する。また、実施の形態1に係る署名システム1の動作は、実施の形態1に係る署名プログラムの処理に相当する。
 **準備**
 実施の形態1に係る署名システム1の動作の説明に必要な情報を説明する。
 <記法>
 以下の説明で用いる記法を説明する。
 自然数の集合を数11で表し、整数の集合を数12で表す。以下、文章中では、自然数の集合をNと表し、整数の集合をZと表す。
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
 任意の整数a,bに対して、(a,b)は、数13に示す集合を表し、[a,b]は、数14に示す集合を表す。
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000007
 任意の正の整数d>0に対して、[d]は、集合{1,2,...,d}を表す。
 Sをある集合とし、Pを集合S上の確率分布とする。このとき、数15は、a∈Sが集合Sから一様ランダムに選ばれていることを表す。また、数16は、b∈Sが確率分布Pに沿って選ばれていることを表す。
Figure JPOXMLDOC01-appb-M000008
Figure JPOXMLDOC01-appb-M000009
 negl(λ)は、自然数λについて無視できる関数の集合を表す。
 <ディジタル署名>
 ディジタル署名は、KeyGenアルゴリズムと、Signアルゴリズムと、Verifyアルゴリズムとの3つのアルゴリズムからなる。
 KeyGenアルゴリズムは、セキュリティパラメータλを入力として、秘密鍵skと公開鍵pkとのペア(sk,pk)を出力する。
 Signアルゴリズムは、秘密鍵skと、メッセージμとを入力として、署名σを出力する。
 Verifyアルゴリズムは、公開鍵pkと、メッセージμと、署名σとを入力として、署名σがメッセージμの有効な署名であれば1を出力し、そうでなければ0を出力する。
 <Middle-Product Learning With Errors(MPLWE)>
 MPLWEは、文献(Miruma Rosca, Amin Sakzad, Damien Stehle, and Ron Steinfeld. Middle-Product Learning with Errors. In CRYPTO, pages 283-297, 2017.)に記載されている。
 次数が高々k-1>0で、係数がZの多項式の集合をR<kで表し、係数がZの多項式の集合をR <kで表す。多項式rのLノルムとLノルムとをそれぞれ数17に示すように表す。
Figure JPOXMLDOC01-appb-M000010
 自然数αに対して、数18を満たす要素wの集合をSα <kで表す。
Figure JPOXMLDOC01-appb-M000011
 ある多項式r+rx+...+rk-1k-1∈R<k(または、r∈S<k)に対して、数19と書く。
Figure JPOXMLDOC01-appb-M000012
 ベクトルr∈Zに対して、r[i:j](0<i<j<k)は、rのi番目からj番目の係数のベクトルを表す。
 (Toeplitz行列の定義)
 任意のd,k>0と、a∈R<kとに対して、i行目(i=1,...,d)がxi-1・aの係数ベクトルであるようなRd×(k+d-1)の行列をToepd,k(a)で表し、Toeplitz行列と呼ぶ。
 (Middle-Productの定義)
 d,d,d,kをd+d-1=d+2kを満たす整数とする。数20に示すMiddle-Productの写像は、数21に示す写像である。
Figure JPOXMLDOC01-appb-M000013
Figure JPOXMLDOC01-appb-M000014
 ここで、d+d-1-dが負でなく、かつ偶数であるような全てのd,dに対して、数22に示す記法が用いられる。
Figure JPOXMLDOC01-appb-M000015
 以下のように、Middle-ProductをToeplitz行列を用いて表すことができる。Toeplitz行列とベクトルとの積はO(nlogn)で計算することができる。
 (補題1)
 d,k>0とする。数23であるとする。
Figure JPOXMLDOC01-appb-M000016
 このとき、数24が成立する。
Figure JPOXMLDOC01-appb-M000017
 (系1)
 数24は、数25のように変換することができる。
Figure JPOXMLDOC01-appb-M000018
 対応する次元をもつ多項式に対して、Middle-Productと多項式との積は、結合法則のような以下の性質を満たす。
 (補題2)
 d,k,n>0とする。全てのr∈R<k+1,a∈R<n,s∈R<n+d+k-1に対して、数26が成立する。
Figure JPOXMLDOC01-appb-M000019
 補題2と同じ次数を持つ多項式について、Middle-Productが部分的に可換性を持つことを多項式の積の可換性から示すことができる。
 (系2)
 補題2と同じr∈R<k+1,a∈R<n,s∈R<n+d+k-1に対して、数27が成立する。
Figure JPOXMLDOC01-appb-M000020
 (MPLWE分布の定義)
 n,d>0、q≧2、χをR<d上の分布とする。s∈Zに対して、Z <n[x]×R <d上の分布MPLWEq,n,d,χ(s)は、数28に示すように、a,eをサンプルし、数29を返す分布である。
Figure JPOXMLDOC01-appb-M000021
Figure JPOXMLDOC01-appb-M000022
 決定性のMPLWE問題の定義を説明する。MPLWE問題は、MPLWE分布と一様分布とのどちらの確率分布からサンプルされた要素かを識別する問題である。決定性のMPLWE仮定とは、MPLWE問題が任意の効率的なアルゴリズムによって解くことが困難であるという仮定である。
 (MPLWE問題の定義)
 n,d>0、q≧2、χをR<d上の分布とする。MPLWEn,d,q,χ問題は、MPLWEn,d,q,χ(s)からの任意個のサンプルと、Z <n[x]×R <dからの同じ個数のサンプルとを識別する問題である。
 任意の攻撃者Aに対して、MPLWEn,d,q,χ問題についての攻撃者Aの優位性は、数30のように定義される。
Figure JPOXMLDOC01-appb-M000023
 ここで、確率は、数31と攻撃者の乱数上で取られる。
Figure JPOXMLDOC01-appb-M000024
 任意の確率的多項式時間アルゴリズムAに対して、MPLWEn,d,q,χ問題を解くことが困難であるとき、つまり、Adv MPLWE(λ)=negl(λ)であるとき、MPLWE仮定が成立しているという。
 <付随アルゴリズム>
 実施の形態1に係る署名システム1によって実現されるディジタル署名で用いられるアルゴリズムを説明する。
 (記法)
 アルゴリズムで用いられる記法を説明する。
 任意の整数rと、任意の偶数(または奇数)である整数α>0とについて、r’=r mod± αをr’=r mod αを満たす一意の要素r’∈(-α/2,α/2](整数αが奇数の場合には、r’∈[-(α-1)/2,(α-1)/2))とする。また、r’=r mod αをr’=r mod αを満たす一意な整数r’∈[0,α)とする。
 Bが真であれば1、そうでなければ0となるビットを数32で表す。
Figure JPOXMLDOC01-appb-M000025
 (アルゴリズム)
 このアルゴリズムは、文献(Leo Ducas, Eike Kiltz, Tancrede Lepoint, Vadim Lyubashevsky, Peter Schwabe, Gregor Seiler,and Damien Stehle. CRYSTALS - Dilithium: A Lattice-based Digital Signature Scheme. In CHES, pages 238-268, 2018.)に記載されている。
 アルゴリズムは整数上で定義されている。しかし、係数毎にアルゴリズムを適用することで多項式に対しても簡単に一般化することができる。
 (Prower2Round(r,d)アルゴリズム)
 Prower2Round(r,d)アルゴリズムは、rを2で区切った上位ビットを出力するアルゴリズムである。
 具体的には、Prower2Round(r,d)アルゴリズムでは、r:=r mod qが計算され、さらにr:=r mod± 2が計算される。そして、(r-r)/2が出力される。
 (Decompose(r,α)アルゴリズム)
 Decompose(r,α)アルゴリズムは、rをαで区切った上位ビットrと下位ビットrとを出力するアルゴリズムである。
 具体的には、Decompose(r,α)アルゴリズムでは、r:=r mod qが計算され、さらにr:=r mod± αが計算される。もし、r-r=q-1なら、r:=0が設定され、r:=r-1が設定される。そうでなければ、r:=(r-r)/αが設定される。そして、r及びrが出力される。
 (HighBits(r,α)アルゴリズム)
 HighBits(r,α)アルゴリズムは、rをαで区切った上位ビットrを出力するアルゴリズムである。
 具体的には、HighBits(r,α)アルゴリズムでは、(r,r):=Decompose(r,α)が計算され、rが出力される。
 (LowBits(r,α)アルゴリズム)
 LowBits(r,α)アルゴリズムは、rをαで区切った下位ビットrを出力するアルゴリズムである。
 具体的には、LowBits(r,α)アルゴリズムでは、(r,r):=Decompose(r,α)が計算され、rが出力される。
 (UseHint(h,r,α)アルゴリズム)
 UseHint(h,r,α)アルゴリズムは、後述するMakeHint(z,r,α)アルゴリズムの情報に応じて、r+zの上位ビットを復元する。
 具体的には、UseHint(h,r,α)アルゴリズムでは、m:=(q-1)/αが設定され、(r,r):=Decompose(r,α)が計算される。h=1かつr>0であれば、(r+1) mod mが出力される。h=1かつr≦0であれば、(r-1) mod mが出力される。
 (MakeHint(z,r,α)アルゴリズム)
 MakeHint(z,r,α)アルゴリズムは、rに小さい値zを足した場合に、rの上位ビットが変化するか否かを示す情報を出力する。
 具体的には、MakeHint(z,r,α)アルゴリズムでは、r:=HighBits(r,α)と、v:=HighBits(r+z,α)とが計算される。そして、数33が出力される。
Figure JPOXMLDOC01-appb-M000026
 (補題3)
 qとαとは、q>2αと、数34とを満たし、αは偶数である正の整数とする。rとzとはR <nの要素であり、数35であり、h,h’は二進ベクトルであるとする。
Figure JPOXMLDOC01-appb-M000027
Figure JPOXMLDOC01-appb-M000028
 このとき、HighBits(r,α)アルゴリズムと、UseHint(h,r,α)アルゴリズムと、MakeHint(z,r,α)アルゴリズムとは、以下の性質を満たす。
 性質1:UseHint(MakeHint(z,r,α),r,α)=HighBits(r+z,α)である。
 性質2:v:=UseHint(h,r,α)とすると、数36となる。
Figure JPOXMLDOC01-appb-M000029
 性質3:任意のh,h’に対して、UseHint(h,r,α)=UseHint(h’,r,α)であれば、h=h’である。
 (補題4)
 数37かつ数38であれば、数39となる。
Figure JPOXMLDOC01-appb-M000030
Figure JPOXMLDOC01-appb-M000031
Figure JPOXMLDOC01-appb-M000032
 **署名システム1の動作**
 以下では、Cは多項式の集合である。要素のLノルムは、1であり、Lノルムは多項式がλビットのmin-エントロピーを持つように制限される。また、以下の説明におけるβ、β’、γ、γ’、δは、安全性を考慮して決定される値であり、高い安全性を設定するほど、大きい値が設定される。
 <鍵生成装置10の動作>
 図5を参照して、実施の形態1に係る鍵生成装置10の動作を説明する。
 実施の形態1に係る鍵生成装置10の動作は、実施の形態1に係る鍵生成方法に相当する。また、実施の形態1に係る鍵生成装置10の動作は、実施の形態1に係る鍵生成プログラムの処理に相当する。
 鍵生成装置10は、ディジタル署名の3つのアルゴリズムのうち、KeyGenアルゴリズムを実現する。
 (ステップS11:受付処理)
 受付部111は、セキュリティパラメータλの入力を受け付ける。
 具体的には、受付部111は、鍵生成装置10の利用者によって入力装置が操作され入力されたセキュリティパラメータλを受け付ける。受付部111は、セキュリティパラメータλをメモリ12に書き込む。
 (ステップS12:鍵生成処理)
 鍵生成部112は、セキュリティパラメータλをメモリ12から読み出す。鍵生成部112は、セキュリティパラメータλを入力として、秘密鍵skと、公開鍵pkとのペアを生成する。
 図6を参照して、実施の形態1に係る鍵生成処理を説明する。
 (ステップS121:パラメータ設定処理)
 鍵生成部112は、セキュリティパラメータλをメモリ12から読み出す。鍵生成部112は、n=n(λ)、d=d(λ)、k=k(λ)、q=q(λ)を設定する。つまり、n,d,k,qはセキュリティパラメータλによって決まる値である。
 (ステップS122:乱数生成処理)
 鍵生成部112は、一様ランダムにa∈R <nを生成する。
 具体的には、鍵生成部112は、数40に示すようにランダムにシードρを選択する。
Figure JPOXMLDOC01-appb-M000033
 そして、鍵生成部112は、シードρを入力として疑似乱数生成アルゴリズムによりa∈R <nを生成する。
 (ステップS123:秘密鍵要素生成処理)
 鍵生成部112は、数41に示すように、秘密鍵skの要素s及び要素sを一様ランダムに生成する。
Figure JPOXMLDOC01-appb-M000034
 (ステップS124:公開鍵要素生成処理)
 鍵生成部112は、数42に示すように、公開鍵pkの要素t及び要素tを生成する。
Figure JPOXMLDOC01-appb-M000035
 (ステップS125:鍵設定処理)
 鍵生成部112は、秘密鍵sk:=(a,s,s,t)を設定する。また、鍵生成部112は、公開鍵pk:=(a,t,t)を設定する。鍵生成部112は、秘密鍵sk及び公開鍵pkをメモリ12に書き込むとともに、鍵記憶部131に書き込む。
 (ステップS13:送信処理)
 送信部113は、秘密鍵sk及び公開鍵pkをメモリ12から読み出す。送信部113は、秘密鍵skを通信インタフェース14及び通信路40を介して署名装置20に秘密裡に送信する。すると、署名装置20の受付部211は、秘密鍵skを受け付け、鍵記憶部231に書き込む。また、送信部113は、公開鍵pkを通信インタフェース14及び通信路40を介して検証装置30に送信する。すると、検証装置30の受付部311は、公開鍵pkを受け付け、鍵記憶部331に書き込む。
 ここで、密裡に送信するとは、例えば、既存の暗号化方式により暗号化した上で送信することである。なお、秘密鍵sk及び公開鍵pkは、可搬記憶媒体に記憶した上で郵送などにより直接的に送信してもよい。公開鍵と秘密鍵は外部の装置で生成されてもよい。
 <署名装置20の動作>
 図7を参照して、実施の形態1に係る署名装置20の動作を説明する。
 実施の形態1に係る署名装置20の動作は、実施の形態1に係る署名生成方法に相当する。また、実施の形態1に係る署名装置20の動作は、実施の形態1に係る署名生成プログラムの処理に相当する。
 署名装置20は、ディジタル署名の3つのアルゴリズムのうち、Signアルゴリズムを実現する。
 (ステップS21:受付処理)
 受付部211は、メッセージμの入力を受け付ける。
 具体的には、受付部211は、署名装置20の利用者によって入力装置が操作され入力されたメッセージμを受け付ける。受付部211は、メッセージμをメモリ22に書き込む。
 (ステップS22:署名生成処理)
 署名生成部212は、秘密鍵skを鍵記憶部231から読み出すとともに、メッセージμをメモリ22から読み出す。署名生成部212は、秘密鍵sk及びメッセージμを入力として、メッセージμに対する署名σを生成する。
 図8を参照して、実施の形態1に係る署名生成処理を説明する。
 (ステップS221:乱数生成処理)
 署名生成部212は、数43に示すように、乱数yを生成する。
Figure JPOXMLDOC01-appb-M000036
 (ステップS222:ハッシュ値c生成処理)
 署名生成部212は、数44に示すように、要素wを生成する。
Figure JPOXMLDOC01-appb-M000037
 署名生成部212は、数45に示すように要素wを生成する。
Figure JPOXMLDOC01-appb-M000038
 署名生成部212は、要素w及びメッセージμ入力として、ハッシュ関数Hによりハッシュ値cを計算する。つまりc:=H(w,μ)∈Cである。
 (ステップS223:要素z生成処理)
 署名生成部212は、ハッシュ値cと、秘密鍵skの要素sと、乱数yとを入力として、数46に示すように、署名σの要素zを生成する。
Figure JPOXMLDOC01-appb-M000039
 つまり、署名生成部212は、メッセージμのハッシュ値cと秘密鍵skの要素sとのMiddle-Productを計算して署名要素zを生成する。より詳しくは、署名生成部212は、ハッシュ値cと秘密鍵とのMiddle-Productを計算して得られた値に小さな係数を持つランダムな値yを加えて署名要素zを生成する。
 (ステップS224:要素h生成処理)
 署名生成部212は、数47と数48とのいずれかであるか否かを判定する。
Figure JPOXMLDOC01-appb-M000040
Figure JPOXMLDOC01-appb-M000041
 署名生成部212は、数47と数48とのいずれかである場合には、署名要素z及び署名要素hに署名生成不可を示す⊥を設定する。つまり、(z,h):=(⊥,⊥)である。
 一方、署名生成部212は、数47と数48とのいずれでもない場合には、数49に示すように署名要素hを生成する。
Figure JPOXMLDOC01-appb-M000042
 (ステップS225:署名設定処理)
 署名生成部212は、署名σ:=(h,z,c)を設定する。署名生成部212は、署名σをメモリ22に書き込む。
 (ステップS23:出力処理)
 出力部213は、署名生成部212によって生成された署名要素hと署名要素zとハッシュ値cとを含む署名σ及びメッセージμを出力する。
 具体的には、出力部213は、通信インタフェース24及び通信路40を介して、署名σ及びメッセージμを検証装置30に送信する。すると、検証装置30の受付部311は、署名σ及びメッセージμを受け付け、メモリ32に書き込む。
 <検証装置30の動作>
 図9を参照して、実施の形態1に係る検証装置30の動作を説明する。
 実施の形態1に係る検証装置30の動作は、実施の形態1に係る検証方法に相当する。また、実施の形態1に係る検証装置30の動作は、実施の形態1に係る検証プログラムの処理に相当する。
 検証装置30は、ディジタル署名の3つのアルゴリズムのうち、Verifyアルゴリズムを実現する。
 (ステップS31:読出処理)
 検証部312は、公開鍵pkを鍵記憶部331から読み出すとともに、署名σ及びメッセージμをメモリ32から読み出す。
 (ステップS32:要素w’生成処理)
 検証部312は、数50に示すように要素w’を生成する。
Figure JPOXMLDOC01-appb-M000043
 つまり、検証部312は、署名σに含まれる署名要素zと公開鍵pkの要素aとのMiddle-Productを計算するとともに、署名σに含まれるハッシュ値cと公開鍵pkの要素tとのMiddle-Productを計算して、要素w’を生成する。
 (ステップS33:ノルム判定処理)
 検証部312は、数51が成立するか否かを判定する。
Figure JPOXMLDOC01-appb-M000044
 検証部312は、数51が成立するなら処理をステップS34に進める。一方、検証部312は、数51が成立しないなら処理をステップS36に進める。
 (ステップS34:ハッシュ値判定処理)
 検証部312は、要素w’及びメッセージμ入力として、ハッシュ関数Hによりハッシュ値c’を計算する。つまりc:=H(w’,μ)である。検証部312は、署名σに含まれるハッシュ値cと、計算されたハッシュ値c’とが等しいか否かを判定する。
 検証部312は、ハッシュ値cとハッシュ値c’とが等しい場合には、処理をステップS35に進める。一方、検証部312は、ハッシュ値cとハッシュ値c’とが等しくない場合には、処理をステップS36に進める。
 (ステップS35:正当判定処理)
 検証部312は、メッセージμが正当であると判定する。メッセージμが正当であるとは、メッセージμが改ざんされておらず、かつ、メッセージμが秘密鍵skの保有者によって送信されたという意味である。
 そして、検証部312は、メッセージμが正当であることを示す値1を出力する。
 (ステップS36:不当判定処理)
 検証部312は、メッセージμが不当であると判定する。メッセージμが不当であるとは、メッセージμが改ざんされている場合と、メッセージμが秘密鍵skの保有者以外によって送信された場合との少なくともいずれかの場合であるという意味である。
 そして、検証部312は、メッセージμが不当であることを示す値0を出力する。
 検証装置30の動作の正当性を説明する。
 図8のステップS222で生成された要素wと、図9のステップS32で生成された要素w’とが等しければ、ハッシュ値cとハッシュ値c’とが等しくなる。そこで、ここでは、要素wと要素w’とが等しくなることを説明する。
 数50のUseHint(h,r,α)アルゴリズムにおけるrに相当する部分は、数52に示すようになる。
Figure JPOXMLDOC01-appb-M000045
 ここで、数53に示すz及びtに基づき、数52の1行目から2行目に変形される。
Figure JPOXMLDOC01-appb-M000046
 括弧を展開することにより、数52の2行目から3行目に変形される。
 数54に示すtを代入することにより、数52の3行目から4行目に変形される。
Figure JPOXMLDOC01-appb-M000047
 括弧を展開することにより、数52の4行目から5行目に変形される。
 数52における数55及び数56をキャンセルすることにより、数52の5行目から6行目に変形される。ここで、補題2に基づき、数55及び数56はキャンセル可能である。
Figure JPOXMLDOC01-appb-M000048
Figure JPOXMLDOC01-appb-M000049
 数57に基づき、数52の6行目から7行目に変形される。
Figure JPOXMLDOC01-appb-M000050
 次に、数50は、数58に示すようになる。
Figure JPOXMLDOC01-appb-M000051
 ここで、補題3の性質1に示すUseHint(MakeHint(z,r,α),r,α)=HighBits(r+z,α)におけるz,r,aは数59に示す通りである。
Figure JPOXMLDOC01-appb-M000052
 なぜなら、数52に示すように、UseHint(h,r,α)アルゴリズムにおけるrに相当する部分は、数60であり、図8のステップS224では、署名要素hを数61に示すように生成しているためである。
Figure JPOXMLDOC01-appb-M000053
Figure JPOXMLDOC01-appb-M000054
 これにより、数58の1行目から2行目に変形される。
 数62と数63とをキャンセルすることにより、数58の2行目から3行目に変形される。
Figure JPOXMLDOC01-appb-M000055
Figure JPOXMLDOC01-appb-M000056
 数58の3行目における数64は小さい値である。そのため、上位ビットを出力するHighBits(r,α)アルゴリズムでは、無視し得る。したがって、数58の3行目から4行目に変形される。
 ***実施の形態1の効果***
 以上のように、実施の形態1に係る署名システム1では、署名装置20は、メッセージμのハッシュ値cと秘密鍵skの要素sとのMiddle-Productを計算して署名σの要素である署名要素zを生成する。また、検証装置30は、署名σの要素である署名要素zと公開鍵pkの要素aとのMiddle-Productを計算するとともに、署名σの要素であるハッシュ値cと公開鍵pkの要素tとのMiddle-Productを計算して、署名σを検証する。
 これにより、MPLWE仮定を安全性の根拠とすることが可能となり、量子コンピュータに対しても安全性が保証可能なディジタル署名方式を構成可能にすることができる。
 ***他の構成***
 <変形例1>
 実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例1として、各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
 図10を参照して、変形例1に係る鍵生成装置10の構成を説明する。
 各機能構成要素がハードウェアで実現される場合には、鍵生成装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路15を備える。電子回路15は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
 図11を参照して、変形例1に係る署名装置20の構成を説明する。
 各機能構成要素がハードウェアで実現される場合には、署名装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路25を備える。電子回路25は、各機能構成要素と、メモリ22と、ストレージ23との機能とを実現する専用の回路である。
 図12を参照して、変形例1に係る検証装置30の構成を説明する。
 各機能構成要素がハードウェアで実現される場合には、検証装置30は、プロセッサ31とメモリ32とストレージ33とに代えて、電子回路35を備える。電子回路35は、各機能構成要素と、メモリ32と、ストレージ33との機能とを実現する専用の回路である。
 電子回路15,25,35としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)が想定される。
 各機能構成要素を1つの電子回路15,25,35で実現してもよいし、各機能構成要素を複数の電子回路15,25,35に分散させて実現してもよい。
 <変形例2>
 変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
 プロセッサ11,21,31とメモリ12,22,32とストレージ13,23,33と電子回路15,25,35とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
 1 署名システム、10 鍵生成装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、15 電子回路、111 受付部、112 鍵生成部、113 送信部、131 鍵記憶部、20 署名装置、21 プロセッサ、22 メモリ、23 ストレージ、24 通信インタフェース、25 電子回路、211 受付部、212 署名生成部、213 出力部、231 鍵記憶部、30 検証装置、31 プロセッサ、32 メモリ、33 ストレージ、34 通信インタフェース、35 電子回路、311 受付部、312 検証部、331 鍵記憶部、40 通信路。

Claims (12)

  1.  メッセージμのハッシュ値cと秘密鍵とのMiddle-Productを計算して署名要素zを生成する署名生成部と、
     前記署名生成部によって生成された前記署名要素zを含む署名σを出力する出力部と
    を備える署名装置。
  2.  前記署名生成部は、ハッシュ値cと秘密鍵とのMiddle-Productを計算して得られた値に小さな係数を持つランダムな値yを加えて前記署名要素zを生成する
    請求項1に記載の署名装置。
  3.  前記署名生成部は、数1に示す署名要素hと前記署名要素zと前記ハッシュ値cとを含む署名σを生成する
    請求項2に記載の署名装置。
    Figure JPOXMLDOC01-appb-M000001
  4.  署名要素zを含む署名σを受け付ける受付部と、
     前記受付部によって受け付けられた前記署名要素zと公開鍵とのMiddle-Productを計算して、前記署名σを検証する検証部と
    を備える検証装置。
  5.  前記受付部は、メッセージμのハッシュ値cと秘密鍵とのMiddle-Productを計算して生成された前記署名要素zと、前記ハッシュ値cとを含む署名σを受け付け、
     前記検証部は、前記署名要素zと公開鍵とのMiddle-Productを計算して得られた値w’と、前記メッセージμとを入力として、ハッシュ値c’を計算し、計算されたハッシュ値c’と、前記署名データに含まれるハッシュ値cとが一致するか否かを判定することにより、前記署名σを検証する
    請求項4に記載の検証装置。
  6.  前記公開鍵は、ランダムな多項式aと秘密鍵とのMiddle-Productを計算して生成された
    請求項4又は5に記載の検証装置。
  7.  前記受付部は、数2に示す署名要素hと前記署名要素zと前記ハッシュ値cとを含む前記署名σを受け付け、
     前記検証部は、数3に示すように、前記値w’を計算する
    請求項5に記載の検証装置。
    Figure JPOXMLDOC01-appb-M000002
    Figure JPOXMLDOC01-appb-M000003
  8.  メッセージμのハッシュ値cと秘密鍵とのMiddle-Productを計算して署名要素zを生成し、前記署名要素zを含む署名σを出力する署名装置と、
     前記署名装置によって生成された前記署名要素zと公開鍵とのMiddle-Productを計算して、前記署名σを検証する検証装置と
    を備える署名システム。
  9.  署名装置における署名生成部が、メッセージμのハッシュ値cと秘密鍵とのMiddle-Productを計算して署名要素zを生成し、
     前記署名装置における出力部が、前記署名要素zを含む署名σを出力する署名方法。
  10.  署名生成部が、メッセージμのハッシュ値cと秘密鍵とのMiddle-Productを計算して署名要素zを生成する署名生成処理と、
     出力部が、前記署名生成処理によって生成された前記署名要素zを含む署名σを出力する出力処理と
    を行う署名装置としてコンピュータを機能させる署名プログラム。
  11.  検証装置における受付部が、署名要素zを含む署名σを受け付け、
     前記検証装置における検証部が、前記署名要素zと公開鍵とのMiddle-Productを計算して、前記署名σを検証する検証方法。
  12.  受付部が、署名要素zを含む署名σを受け付ける受付処理と、
     検証部が、前記受付処理によって受け付けられた前記署名要素zと公開鍵とのMiddle-Productを計算して、前記署名σを検証する検証処理と
    を行う検証装置としてコンピュータを機能させる検証プログラム。
PCT/JP2018/036338 2018-09-28 2018-09-28 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム WO2020065928A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2018/036338 WO2020065928A1 (ja) 2018-09-28 2018-09-28 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム
JP2020540506A JP6818949B2 (ja) 2018-09-28 2018-09-28 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム
CN201880097803.XA CN112740618A (zh) 2018-09-28 2018-09-28 签名装置、验证装置、签名系统、签名方法、签名程序、验证方法以及验证程序
US17/209,966 US20210211303A1 (en) 2018-09-28 2021-03-23 Signature device, verification device, signature system, signature method, verification method, and computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/036338 WO2020065928A1 (ja) 2018-09-28 2018-09-28 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/209,966 Continuation US20210211303A1 (en) 2018-09-28 2021-03-23 Signature device, verification device, signature system, signature method, verification method, and computer readable medium

Publications (1)

Publication Number Publication Date
WO2020065928A1 true WO2020065928A1 (ja) 2020-04-02

Family

ID=69952943

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/036338 WO2020065928A1 (ja) 2018-09-28 2018-09-28 署名装置、検証装置、署名システム、署名方法、署名プログラム、検証方法及び検証プログラム

Country Status (4)

Country Link
US (1) US20210211303A1 (ja)
JP (1) JP6818949B2 (ja)
CN (1) CN112740618A (ja)
WO (1) WO2020065928A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112087294A (zh) * 2020-08-13 2020-12-15 中国电子科技集团公司第三十研究所 一种基于密态哈希标签防护的便携式安全计算机架构
CN112468292A (zh) * 2020-11-16 2021-03-09 南京大学 一种高效率的量子数字签名方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102444193B1 (ko) * 2020-04-29 2022-09-19 국방과학연구소 Ring-LWR기반 양자내성 서명 방법 및 그 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016001248A (ja) * 2014-06-12 2016-01-07 日本電信電話株式会社 署名生成装置、署名検証装置、検証システム、およびプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL156606A (en) * 2003-06-23 2011-07-31 Aviad Kipnis Digital certificates
WO2006114948A1 (ja) * 2005-04-18 2006-11-02 Matsushita Electric Industrial Co., Ltd. 署名生成装置および署名検証装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016001248A (ja) * 2014-06-12 2016-01-07 日本電信電話株式会社 署名生成装置、署名検証装置、検証システム、およびプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HOEVEN, VAN DER JORIS: "Relaxed Multiplication Using the Middle Product", PROCEEDINGS OF THE 2003 INTERNATIONAL SYMPOSIUM ON SYMBOLIC AND ALGEBRAIC COMPUTATION, 2003, pages 143 - 147, XP058247090, Retrieved from the Internet <URL:http://www.texmacs.org/joris/issac03/issac03.pdf> [retrieved on 20181114], DOI: 10.1145/860854.860890 *
KILTZ, EIKE ET AL.: "A Concrete Treatment of Fiat-Shamir Signatures in the Quantum Random-Oracle Model", A CONCRETE TREATMENT OF FIAT- SHAMIR SIGNATURES IN THE QUANTUM RANDOM-ORACLE MODEL, 20 February 2018 (2018-02-20), pages 1 - 38, XP047471981, Retrieved from the Internet <URL:https://eprint.iacr.org/2017/916.pdf> [retrieved on 20181114] *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112087294A (zh) * 2020-08-13 2020-12-15 中国电子科技集团公司第三十研究所 一种基于密态哈希标签防护的便携式安全计算机架构
CN112087294B (zh) * 2020-08-13 2022-03-18 中国电子科技集团公司第三十研究所 一种基于密态哈希标签防护的便携式安全计算机系统
CN112468292A (zh) * 2020-11-16 2021-03-09 南京大学 一种高效率的量子数字签名方法及系统

Also Published As

Publication number Publication date
US20210211303A1 (en) 2021-07-08
CN112740618A (zh) 2021-04-30
JPWO2020065928A1 (ja) 2021-01-07
JP6818949B2 (ja) 2021-01-27

Similar Documents

Publication Publication Date Title
JP7107670B2 (ja) ビットミキサにより暗号ラウンド鍵を生成するためのシステム及び方法
EP3577642B1 (en) Methods and devices for protecting data
JP5419056B2 (ja) Cartier対形成の暗号化適用
JP6391900B1 (ja) 準同型推論装置、準同型推論方法、準同型推論プログラム及び秘匿情報処理システム
US20130051552A1 (en) Device and method for obtaining a cryptographic key
US20080084996A1 (en) Authenticated encryption method and apparatus
US20210211303A1 (en) Signature device, verification device, signature system, signature method, verification method, and computer readable medium
WO2014109828A2 (en) Method for secure substring search
JP6386198B1 (ja) 暗号化装置及び復号装置
US20160062920A1 (en) Address-dependent key generation with a substitution-permutation network
EP3661115B1 (en) Encryption device, decryption device, encryption method, decryption method, encryption program, and decryption program
TW201545524A (zh) 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術
CN114154174A (zh) 后量子签名设施的状态同步
US9602281B2 (en) Parallelizable cipher construction
US20150172045A1 (en) Method of cryption
WO2020188906A1 (ja) 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム
WO2019239776A1 (ja) 復号装置、暗号化装置及び暗号システム
WO2019016916A1 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
WO2021157003A1 (ja) 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
Suresh et al. VLSI implementation of text to image encryption algorithm based on private key encryption
CN115699670A (zh) 重加密装置、加密系统、重加密方法和重加密程序
JP7158635B2 (ja) 暗号システム、暗号化装置、復号装置及び鍵生成装置
TW201543862A (zh) 密碼裝置、記憶系統、解碼裝置、密碼方法、解碼方法、密碼程式產品及解碼程式產品
KR20190052605A (ko) 적어도 두 개의 알고리즘을 이용하여 랜덤 넘버를 생성하는 랜덤 넘버 생성기 및 이를 포함하는 보안 장치
CN114422130B (zh) 一种基于量子幂函数混淆的量子加密方法

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020540506

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18935722

Country of ref document: EP

Kind code of ref document: A1