WO2022254578A1 - Cryptographic system, ciphertext updating device, and program - Google Patents

Cryptographic system, ciphertext updating device, and program Download PDF

Info

Publication number
WO2022254578A1
WO2022254578A1 PCT/JP2021/020849 JP2021020849W WO2022254578A1 WO 2022254578 A1 WO2022254578 A1 WO 2022254578A1 JP 2021020849 W JP2021020849 W JP 2021020849W WO 2022254578 A1 WO2022254578 A1 WO 2022254578A1
Authority
WO
WIPO (PCT)
Prior art keywords
period
ciphertext
key
generates
plaintext
Prior art date
Application number
PCT/JP2021/020849
Other languages
French (fr)
Japanese (ja)
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/JP2021/020849 priority Critical patent/WO2022254578A1/en
Publication of WO2022254578A1 publication Critical patent/WO2022254578A1/en

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system

Definitions

  • the present invention relates to updatable encryption.
  • Updatable ciphers are ciphers that can be prepared against loss of security due to key leaks by periodically updating the keys.
  • an updatable cipher for example, a bidirectional key update cipher described in Non-Patent Document 1 is known.
  • Non-Patent Document 1 The updatable cipher described in Non-Patent Document 1 is a cipher that is safe even for quantum computers, but since it is a two-way key update, the amount of information leaked, that is, information about other keys obtained from the leaked key There is a problem of large quantity. Since the amount of information to be leaked is smaller than that of bidirectional key update encryption, backward leaking one-way key update encryption and non-directional key update encryption are more preferable from a security point of view. do not have.
  • is a security parameter
  • Z q is a ring defining addition and multiplication modulo q (q is an integer of 2 or more)
  • PKE (Setup, Reg.KeyGen, Reg.Enc, Reg.Dec) is a variant of the Regev public-key cryptosystem
  • ceiling(lg(q))
  • a key generation device an encryption device that generates ciphertext ct e of plaintext ⁇ in period e from plaintext ⁇ using a subspecies PKE of Regev public key cryptography, public parameter pp, and key k e of period e; a decryption device that generates plaintext ⁇ ′ from ciphertext ct e of plaintext ⁇ in period e using a variant PKE of Regev public key cryptography, public parameter pp, and key k e in period e;
  • a token generation device that generates a token ⁇ e+1 of period e+1 from key k e of period e and key k e+1 of period e+1, and using a binary decomposition algorithm BD a ciphertext updater for generating a ciphertext ct e+1 of period e +1 from a token ⁇ e+1 of period e+1 and a ciphertext ct e of period e
  • is a security parameter
  • iO is an unidentifiable obfuscator
  • PPRF (PRF.Gen, PRF, Punc)
  • PRF.Gen ⁇ 0, 1 ⁇ ⁇ ⁇ ⁇ 0, 1 ⁇ ⁇
  • PRF ⁇ 0, 1 ⁇ ⁇ ⁇ ⁇ 0, 1 ⁇ n ⁇ ⁇ 0, 1 ⁇ m
  • PRG is a puncturable pseudo-random function
  • PRG ⁇ 0, 1 ⁇ ⁇ ⁇ ⁇ 0, 1 ⁇ n
  • C re io [k e , k e+1 ] be a pseudo-random number generator
  • C re io [k e , k e+1 ] be a ciphertext ct e of period e, vector r e+1 ⁇ 0, 1 ⁇ ⁇ as input, key k e of period e
  • a circuit that calculates and outputs a ciphertext ct e
  • FIG. 1 is a block diagram showing the configuration of a cryptographic system 10;
  • FIG. 1 is a block diagram showing the configuration of a public parameter generation device 100;
  • FIG. 4 is a flow chart showing the operation of the public parameter generation device 100.
  • FIG. 2 is a block diagram showing the configuration of a key generation device 200;
  • FIG. 4 is a flowchart showing the operation of the key generation device 200;
  • 3 is a block diagram showing the configuration of an encryption device 300;
  • FIG. 4 is a flowchart showing the operation of the encryption device 300;
  • 4 is a block diagram showing the configuration of a decoding device 400;
  • FIG. 4 is a flow chart showing the operation of the decoding device 400.
  • FIG. 3 is a block diagram showing the configuration of a token generation device 500;
  • FIG. 3 is a block diagram showing the configuration of a token generation device 500;
  • FIG. 1 is a block diagram showing the configuration of a public parameter generation device 100;
  • FIG. 4 is a flow chart
  • FIG. 5 is a flow chart showing the operation of the token generation device 500; 3 is a block diagram showing the configuration of a ciphertext update device 600; FIG. 6 is a flow chart showing the operation of the ciphertext update device 600.
  • FIG. 2 is a block diagram showing the configuration of a cryptographic system 20; FIG. 2 is a block diagram showing the configuration of a key generation device 1200; FIG. 4 is a flowchart showing the operation of the key generation device 1200; 3 is a block diagram showing the configuration of an encryption device 1300; FIG. 4 is a flow chart showing the operation of the encryption device 1300; 3 is a block diagram showing the configuration of decoding device 1400.
  • FIG. 14 is a flow chart showing the operation of the decoding device 1400.
  • FIG. 3 is a block diagram showing the configuration of a token generation device 1500;
  • FIG. 4 is a flow chart showing the operation of the token generation device 1500;
  • 3 is a block diagram showing the configuration of a ciphertext update device 1600;
  • FIG. 4 is a flow chart showing the operation of the ciphertext update device 1600.
  • FIG. It is a figure which shows an example of the functional structure of the computer which implement
  • ⁇ (caret) represents a superscript.
  • x y ⁇ z means that y z is a superscript to x
  • x y ⁇ z means that y z is a subscript to x
  • _ (underscore) represents a subscript.
  • x y_z means that y z is a superscript to x
  • x y_z means that y z is a subscript to x.
  • the uniform random selection of an element x from a finite set X is expressed as x ⁇ X.
  • the set ⁇ 1,...,k ⁇ and set ⁇ k,...,r ⁇ are represented as [k] and [k,r], respectively.
  • Z q ⁇ ceiling(-q/2), ..., -1, 0, 1, ..., floor(q/2 ) ⁇ represents a ring with addition and multiplication modulo q.
  • Y] ⁇ R m ⁇ (n_1+n_2) represents a matrix that concatenates the columns of matrix X and matrix Y.
  • [X;Y] ⁇ R (m_1+m_2) ⁇ n represents a matrix in which rows of matrix X and matrix Y are connected.
  • f ⁇ negl means that f is a negligible function
  • f ⁇ negl means that f is a non-negligible function
  • the updatable cipher UE for the plaintext space M is a set of 6 probabilistic polynomial-time algorithms (UE.Setup, UE.KeyGen, UE.Enc, UE.Dec, UE.TokGen, UE.Upd).
  • UE.Setup(1 ⁇ ) ⁇ pp The setup algorithm UE.Setup takes the security parameter ⁇ as input and outputs the public parameter pp. This algorithm is not necessarily required.
  • UE.KeyGen(pp) ⁇ k e The key generation algorithm UE.KeyGen takes as input the public parameter pp and outputs a key k e of period e.
  • UE.Enc(k e , ⁇ ) ⁇ ct e The encryption algorithm UE.Enc takes as input a key k e in period e and plaintext ⁇ M, and outputs ciphertext ct e of plaintext ⁇ in period e.
  • UE.Dec(k e , ct) ⁇ ′ Decryption algorithm
  • UE.Dec takes as input a key k e of period e and a ciphertext ct, and outputs a plaintext ⁇ ′ ⁇ M or ⁇ . However, ⁇ represents an error.
  • UE.TokGen (k e , k e+1 ) ⁇ e+1 :
  • the token generation algorithm UE.TokGen takes as input keys k e , k e+1 of two consecutive periods e, e +1 , and the period Output the token ⁇ e+1 in e+1 .
  • the update algorithm UE.Upd takes as input the token ⁇ e+1 in period e+1 and the ciphertext ct e in plaintext ⁇ in period e, Output ciphertext ct e+1 of plaintext ⁇ in period e+1.
  • updatable encryption is based on ciphertext independent tokens.
  • a ciphertext-independent token is a token that does not require the use of a part of the ciphertext to be updated to generate the token.
  • Other definitions of updatable cryptography are based on ciphertext-dependent tokens, where part of the ciphertext you want to update is required to generate the token.
  • ciphertext-independent token-based updatable ciphers are superior, and all updatable ciphers used in embodiments of the present invention are based on ciphertext-independent tokens.
  • updatable cryptography In updatable cryptography, there is information that cannot be avoided from being leaked from the token used to update the ciphertext. Based on the differences in how information is leaked by updatable ciphers, we classify updatable ciphers into four types.
  • Two-way key update key k e+1 can be easily derived given token ⁇ e+1 and key k e and key k e+1 given token ⁇ e+1 and key k e+1 Updatable ciphers such that k e can be easily derived are said to be bidirectional key updates.
  • Forward-leaky one-way key update is said to be an updatable cipher from which the key k e+1 can be easily derived given a token ⁇ e+1 and a key k e . In this case, it is not always possible to derive the key k e given the token ⁇ e+1 and the key k e+1 .
  • Backward leaking one-way key update Updatable ciphers from which the key k e can be easily derived given a token ⁇ e+1 and a key k e+1 are said to be backward leaking one-way key update. In this case, it is not always possible to derive the key k e+1 given the token ⁇ e+1 and the key k e .
  • Undirectional key update Given a token ⁇ e+1 and a key k e , it is not always possible to derive the key k e+1 , and given a token ⁇ e+1 and a key k e+1 Updatable ciphers for which the key k e cannot always be derived are said to be undirectional key updates.
  • Non-Patent Document 1 shows that updatable encryption for two-way key update and updatable encryption for forward leaking one-way key update are equivalent.
  • the most desirable one is updatable encryption for non-directional key update from the viewpoint of minimizing information leakage. So far, however, no updatable ciphers for undirectional key updates have been constructed. It is also clear that updatable cipher with one-way key update is preferable to updatable cipher with two-way key update. Forward leaking one-way key updates do not provide a security advantage since they have been shown to be only secure.
  • backward-leaky one-way key update updatable encryption is not implied by forward-leaky one-way key update or two-way key update updatable encryption, so there is a security advantage.
  • updatable ciphers for backward leaking one-way key updates have also not been constructed so far.
  • the updatable encryption used in the embodiment of the present invention is based on the lattice problem and obfuscated indistinguishability.
  • Updatable cryptography based on the lattice problem is a backward leaky one-way key update cryptography that is also secure against quantum computers.
  • updatable cryptography based on indistinguishability obfuscation is a potentially quantum-computer-secure cryptography for undirectional key updates.
  • N(0, ⁇ 2 ) be a Gaussian distribution with mean 0 and variance ⁇ 2 .
  • a Gaussian distribution is a distribution defined by the density function (1/ ⁇ (2 ⁇ ) 1/2 )exp(-x 2 /2 ⁇ 2 ) on R.
  • Discretized Gaussian - ⁇ ⁇ function that samples x from N(0, ⁇ 2 /2 ⁇ ) for ⁇ (0, 1), positive integer q and outputs q-ceiling(qx) mod q defined as
  • the LWE problem and LWE assumption are defined as follows.
  • the LWE(n, q, ⁇ ) problem on the distribution ⁇ is the oracle A(s, ⁇ ) and oracle A(s, U(Z q )) (where s ⁇ ).
  • the puncturable pseudorandom function PPRF is a set of two algorithms (F, Punc) that satisfy the following properties.
  • K ⁇ 0,1 ⁇ ⁇ as PRF.Gen: ⁇ 0, 1 ⁇ ⁇ ⁇ ⁇ 0, 1 ⁇ ⁇ , and let the puncturable pseudorandom function PPRF be a set of three algorithms (PRF.Gen, F, Punc).
  • Regev public-key cryptography variants in multi-user situations A variant of Regev public-key cryptography under multi-user situations is a set of four algorithms (Setup, Reg.KeyGen, Reg.Enc, Reg.Dec).
  • Reg.Enc(pk, ⁇ ): Encryption algorithm Reg.Enc takes public key pk and plaintext ⁇ as input, selects vector r ⁇ -1, +1 ⁇ m , e' ⁇ ns k , plaintext ⁇ ciphertext (u, c): (rA, rB+e'+floor(q/2) ⁇ ).
  • the setup algorithm Setup takes the security parameter ⁇ as input and executes the following steps.
  • setup algorithm Setup is the same as the setup algorithm Setup of the Regev public key cryptography variant.
  • Gen(pp) The key generation algorithm Gen takes the public parameter pp as input and performs the following steps.
  • Enc(k e , ⁇ ) The encryption algorithm Enc takes as input a key k e of period e and a plaintext ⁇ 0, 1 ⁇ k and performs the following steps.
  • decomposition means parsing.
  • Dec(k e ,ct) The decryption algorithm Dec takes the key k e of period e and the ciphertext ct as input and executes the following procedure.
  • TokGen(k e , k e+1 ) The token generation algorithm TokGen takes as input keys k e , k e+1 of two consecutive periods e, e+1 and performs the following steps.
  • the update algorithm Upd takes as input the token ⁇ e+1 in period e+1 and the ciphertext ct e of the plaintext ⁇ in period e, and performs the following procedure.
  • the updatable cipher based on the lattice problem is a secure updatable cipher that satisfies the backward leaking one-way key update.
  • KeyGen(1 ⁇ ) The key generation algorithm KeyGen takes the security parameter ⁇ as input and performs the following steps.
  • Enc(k e , ⁇ ) The encryption algorithm Enc takes as input a key k e of period e and a plaintext ⁇ 0, 1 ⁇ m and performs the following steps.
  • Dec(k e , ct) The decryption algorithm Dec takes the key k e of period e and the ciphertext ct as input and performs the following procedure.
  • TokGen(k e , k e+1 ) The token generation algorithm TokGen takes as input keys k e , k e+1 of two consecutive periods e, e+1 and performs the following steps.
  • the circuit C re io [k e , k e+1 ] receives the ciphertext ct e of the period e and the vector r e+1 ⁇ 0, 1 ⁇ ⁇ of the period e, the key k e of the period e, the period e Using +1 key k e+1 , compute and output ciphertext ct e+ 1 of period e+1.
  • the function C re io [k e , k e+1 ](ct e , r e+1 ) is also called an update function.
  • the operation of the circuit C re io [k e , k e+1 ] is as follows.
  • the update algorithm Upd takes as input the token ⁇ e+1 in period e+1 and the ciphertext ct e of the plaintext ⁇ in period e, and performs the following procedure.
  • Reference Non-Patent Document 3 can be used as an obfuscation technology that makes it unidentifiable.
  • the techniques described in Reference Non-Patent Document 4 and Reference Non-Patent Document 5 can be used for secure indistinguishability obfuscation for quantum computers.
  • Reference Non-Patent Document 6 Oded Goldreich, Shafi Goldwasser, and Silvio Micali, “How to construct random functions,” Journal of the ACM, 33(4):792-807, 1986.
  • Reference Non-Patent Document 7 Moni Naor and Omer Reingold, "Number-theoretic constructions of efficient pseudo-random functions,” Journal of the ACM, 51(2):231-262, 2004.
  • Reference non-patent document 8 Abhishek Banerjee, Chris Peikert, and Alon Rosen, “Pseudorandom functions and lattices,” In David Pointcheval and Thomas Johansson, editors, EUROCRYPT 2012, volume 7237 of LNCS, pp.719-737. Springer, Heidelberg , April 2012.
  • a pseudo-random number generator for example, the techniques described in Reference Non-Patent Document 8 and Reference Non-Patent Document 9 can be used.
  • FIG. 1 is a block diagram showing an example of the configuration of a cryptographic system 10.
  • the cryptographic system 10 includes a public parameter generator 100 , a key generator 200 , an encryptor 300 , a decryptor 400 , a token generator 500 and a ciphertext updater 600 .
  • the public parameter generation device 100, key generation device 200, encryption device 300, decryption device 400, token generation device 500, and ciphertext update device 600 are connected to a network 800 such as the Internet and can communicate with each other.
  • FIG. 2 is a block diagram showing an example of the configuration of the public parameter generation device 100.
  • Public parameter generation device 100 includes public parameter generation unit 110 , transmission/reception unit 180 , and recording unit 190 .
  • the transmitting/receiving unit 180 is a component for appropriately transmitting/receiving information that the public parameter generation device 100 needs to exchange with other devices.
  • the recording unit 190 is a component that appropriately records information necessary for the processing of the public parameter generation device 100 .
  • the recording unit 190 records, for example, the security parameter ⁇ .
  • the public parameter generation device 100 records the public parameter pp in the recording unit 190.
  • Public parameter generation device 100 also uses transmission/reception unit 180 to transmit public parameter pp to key generation device 200 , encryption device 300 , decryption device 400 , and token generation device 500 .
  • the key generation device 200, the encryption device 300, the decryption device 400, and the token generation device 500 record the received public parameter pp in the recording units 290, 390, 490, and 590, respectively.
  • FIG. 4 is a block diagram showing an example of the configuration of the key generation device 200.
  • the key generation device 200 includes a key generation section 210 , a transmission/reception section 280 and a recording section 290 .
  • the transmission/reception unit 280 is a component for appropriately transmitting/receiving information that the key generation device 200 needs to exchange with other devices.
  • the recording unit 290 is a component that appropriately records information necessary for processing of the key generation device 200 .
  • the operation of the key generation device 200 will be described according to FIG.
  • the key generation device 200 generates a key k e of period e from the public parameter pp using the Regev public key cryptography subspecies PKE. A specific description will be given below.
  • the key generation device 200 records the key k e for the period e in the recording unit 290 .
  • the key generation device 200 also uses the transmission/reception unit 280 to transmit the key k e for the period e to the encryption device 300 , the decryption device 400 , and the token generation device 500 .
  • the encryption device 300, the decryption device 400, and the token generation device 500 record the received key k e for the period e in the recording units 390, 490, and 590, respectively.
  • FIG. 6 is a block diagram showing an example of the configuration of the encryption device 300.
  • the encryption device 300 includes a ciphertext generator 310 , a transmitter/receiver 380 and a recorder 390 .
  • the transmitting/receiving unit 380 is a component for appropriately transmitting/receiving information that the encryption device 300 needs to exchange with other devices.
  • the recording unit 390 is a component that appropriately records information necessary for the processing of the encryption device 300 .
  • the operation of the encryption device 300 will be described with reference to FIG.
  • the encryption device 300 generates a ciphertext ct e of the plaintext ⁇ in the period e from the plaintext ⁇ using the Regev public key cryptographic subspecies PKE, the public parameter pp, and the key k e in the period e.
  • PKE Regev public key cryptographic subspecies
  • the encryption device 300 records the ciphertext ct e of the plaintext ⁇ in the period e in the recording unit 390 .
  • the encryption device 300 also uses the transmission/reception unit 380 to transmit the ciphertext ct e of the plaintext ⁇ in the period e to the decryption device 400 and the ciphertext updating device 600 .
  • the decryption device 400 and the ciphertext updating device 600 record the received ciphertext ct e of the plaintext ⁇ in the period e in the recording unit 490 and the recording unit 690, respectively.
  • FIG. 8 is a block diagram showing an example of the configuration of the decoding device 400.
  • the decryption device 400 includes a plaintext generation unit 410 , a transmission/reception unit 480 and a recording unit 490 .
  • the transmitting/receiving unit 480 is a component for appropriately transmitting/receiving information that the decoding device 400 needs to exchange with other devices.
  • the recording unit 490 is a component that appropriately records information necessary for processing of the decoding device 400 .
  • Decryption device 400 generates plaintext ⁇ ′ from ciphertext ct e of plaintext ⁇ in period e using a subspecies PKE of Regev public key encryption, public parameter pp, and key k e in period e. A specific description will be given below.
  • the decryption device 400 records the plaintext ⁇ ' in the recording unit 490 .
  • FIG. 10 is a block diagram showing an example of the configuration of the token generation device 500.
  • Token generator 500 includes first matrix generator 510 , second matrix generator 520 , token generator 530 , transmitter/receiver 580 , and recorder 590 .
  • the transmission/reception unit 580 is a component for appropriately transmitting/receiving information that the token generation device 500 needs to exchange with other devices.
  • the recording unit 590 is a component that appropriately records information necessary for the processing of the token generation device 500 .
  • the operation of the token generating device 500 will be described according to FIG.
  • the token generation device 500 generates a token ⁇ e+1 of period e+1 from key k e of period e and key k e +1 of period e +1 using 2 power algorithm P2 and public parameter pp. . A specific description will be given below.
  • k e+1 (S e+1 , B e+1 ).
  • Token generation device 500 records the token ⁇ e+1 for the period e+1 in the recording unit 590 .
  • Token generation device 500 also uses transmission/reception unit 580 to transmit token ⁇ e+ 1 for period e+1 to ciphertext update device 600 .
  • the ciphertext updating device 600 records the received token ⁇ e+1 for the period e+1 in the recording unit 690 .
  • FIG. 12 is a block diagram showing an example of the configuration of the ciphertext updating device 600.
  • the ciphertext update device 600 includes a first pair generator 610 , a second pair generator 620 , a ciphertext generator 630 , a transmitter/receiver 680 and a recorder 690 .
  • the transmitting/receiving unit 680 is a component for appropriately transmitting/receiving information that the ciphertext update device 600 needs to exchange with other devices.
  • the recording unit 690 is a component that appropriately records information necessary for the processing of the ciphertext update device 600 .
  • the operation of the ciphertext update device 600 will be described with reference to FIG.
  • the ciphertext updating device 1600 uses the binary decomposition algorithm BD to generate the ciphertext ct e+1 of the period e+1 from the token ⁇ e+1 of the period e+1 and the ciphertext ct e of the period e. A specific description will be given below.
  • the second pair generation unit 620 selects the vector ⁇ r ⁇ -1, +1 ⁇ m and generates the second pair ( ⁇ u , ⁇ v ).
  • the ciphertext update device 600 records the ciphertext ct e+1 of period e+1 in the recording unit 690 .
  • a cryptosystem 20 that performs updatable cryptography based on the indistinguishability obfuscation described in the Technical Background is described here.
  • the encryption system 20 will be described with reference to FIG. FIG. 14 is a block diagram showing an example of the configuration of the encryption system 20.
  • the cryptosystem 20 includes a key generation device 1200 , an encryption device 1300 , a decryption device 1400 , a token generation device 1500 and a ciphertext update device 1600 .
  • the key generation device 1200, encryption device 1300, decryption device 1400, token generation device 1500, and ciphertext update device 1600 are connected to a network 800 such as the Internet and can communicate with each other.
  • FIG. 15 is a block diagram showing an example of the configuration of the key generation device 1200.
  • Key generation device 1200 includes key generation unit 1210 , transmission/reception unit 280 , and recording unit 290 .
  • the transmission/reception unit 280 is a component for appropriately transmitting/receiving information that the key generation device 1200 needs to exchange with other devices.
  • the recording unit 290 is a component that appropriately records information necessary for processing of the key generation device 1200 .
  • the recording unit 290 records, for example, the security parameter ⁇ .
  • the operation of the key generation device 1200 will be described according to FIG.
  • the key generator 1200 uses the puncturable pseudo-random function PPRF to generate a key k e of duration e from the security parameter ⁇ . A specific description will be given below.
  • the key generation device 1200 records the key k e for the period e in the recording unit 290 .
  • the key generation device 1200 also uses the transmission/reception unit 280 to transmit the key k e for the period e to the encryption device 1300 , the decryption device 1400 and the token generation device 1500 .
  • the encryption device 1300, the decryption device 1400, and the token generation device 1500 record the received key k e for the period e in the recording units 390, 490, and 590, respectively.
  • FIG. 17 is a block diagram showing an example of the configuration of the encryption device 1300.
  • the encryption device 1300 includes a first component generator 1310 , a second component generator 1320 , a ciphertext generator 1330 , a transmitter/receiver 380 and a recorder 390 .
  • the transmitting/receiving unit 380 is a component for appropriately transmitting/receiving information that the encryption device 1300 needs to exchange with other devices.
  • the recording unit 390 is a component that appropriately records information necessary for the processing of the encryption device 1300 .
  • the operation of the encryption device 1300 will be described with reference to FIG.
  • the encryption device 1300 uses a pseudorandom number generator PRG, a puncturable pseudorandom function PPRF, and a key k e of period e to generate ciphertext ct e of plaintext ⁇ in period e from plaintext ⁇ .
  • PRG pseudorandom number generator
  • PPRF puncturable pseudorandom function
  • the encryption device 1300 records the ciphertext ct e of the plaintext ⁇ in the period e in the recording unit 390 .
  • the encryption device 1300 also uses the transmission/reception unit 380 to transmit the ciphertext ct e of the plaintext ⁇ in the period e to the decryption device 1400 and the ciphertext updating device 1600 .
  • the decryption device 1400 and the ciphertext updating device 1600 record the ciphertext ct e of the plaintext ⁇ in the received period e in the recording unit 490 and the recording unit 690, respectively.
  • FIG. 19 is a block diagram showing an example of the configuration of the decoding device 1400.
  • Decryption device 1400 includes plaintext generation section 1410 , transmission/reception section 480 , and recording section 490 .
  • the transmitting/receiving unit 480 is a component for appropriately transmitting/receiving information that the decoding device 1400 needs to exchange with other devices.
  • the recording unit 490 is a component that appropriately records information necessary for processing of the decoding device 1400 .
  • Decryption device 1400 generates plaintext ⁇ ′ from ciphertext ct e of plaintext ⁇ in period e using a puncturable pseudo-random function PPRF and key k e in period e. A specific description will be given below.
  • the decryption device 1400 records the plaintext ⁇ ' in the recording unit 490 .
  • FIG. 21 is a block diagram showing an example of the configuration of the token generation device 1500.
  • Token generator 1500 includes token generator 1510 , transmitter/receiver 580 , and recorder 590 .
  • the transmitting/receiving unit 580 is a component for appropriately transmitting/receiving information that the token generation device 1500 needs to exchange with other devices.
  • the recording unit 590 is a component that appropriately records information necessary for the processing of the token generation device 1500 .
  • Token generator 1500 generates token ⁇ e+1 of period e+1 from circuit C re io [k e , k e+1 ] using obfuscation circuit iO. A specific description will be given below.
  • the token generation device 1500 records the token ⁇ e+1 for the period e+1 in the recording unit 590 .
  • Token generation device 1500 also uses transmission/reception unit 580 to transmit token ⁇ e +1 for period e+1 to ciphertext update device 1600 .
  • the ciphertext updating device 1600 records the received token ⁇ e+1 for the period e+1 in the recording unit 690 .
  • FIG. 23 is a block diagram showing an example of the configuration of the ciphertext update device 1600.
  • Ciphertext update device 1600 includes ciphertext generator 1610 , transmitter/receiver 680 , and recorder 690 .
  • Transmitting/receiving unit 680 is a component for appropriately transmitting/receiving information that ciphertext update device 1600 needs to exchange with other devices.
  • the recording unit 690 is a component that appropriately records information necessary for the processing of the ciphertext update device 1600 .
  • the operation of the ciphertext update device 1600 will be described with reference to FIG.
  • the ciphertext updating device 1600 generates ciphertext ct e+1 of period e+1 from ciphertext ct e of period e using token ⁇ e+ 1 of period e+ 1 . A specific description will be given below.
  • the ciphertext generation unit 1610 selects the vector r e + 1 ⁇ 0, 1 ⁇ ⁇ , and generates Generate the ciphertext ct e+1 .
  • the ciphertext update device 1600 records the ciphertext ct e+1 of period e+1 in the recording unit 690 .
  • FIG. 25 is a diagram showing an example of a functional configuration of a computer that implements each of the devices (that is, each node) described above.
  • the processing in each device described above can be performed by causing the recording unit 2020 to read a program for causing the computer to function as each device described above, and causing the control unit 2010, the input unit 2030, the output unit 2040, and the like to operate.
  • the apparatus of the present invention includes, for example, a single hardware entity, which includes an input unit to which a keyboard can be connected, an output unit to which a liquid crystal display can be connected, and a communication device (for example, a communication cable) capable of communicating with the outside of the hardware entity.
  • a communication device for example, a communication cable
  • CPU Central Processing Unit
  • memory RAM and ROM hard disk external storage device
  • input unit, output unit, communication unit a CPU, a RAM, a ROM, and a bus for connecting data to and from an external storage device.
  • the hardware entity may be provided with a device (drive) capable of reading and writing a recording medium such as a CD-ROM.
  • a physical entity with such hardware resources includes a general purpose computer.
  • the external storage device of the hardware entity stores a program necessary for realizing the functions described above and data required for the processing of this program (not limited to the external storage device; It may be stored in a ROM, which is a dedicated storage device). Data obtained by processing these programs are appropriately stored in a RAM, an external storage device, or the like.
  • each program stored in an external storage device or ROM, etc.
  • the data necessary for processing each program are read into the memory as needed, and interpreted, executed and processed by the CPU as appropriate.
  • the CPU realizes a predetermined function (each structural unit represented by the above, . . . unit, . . . means, etc.).
  • a program that describes this process can be recorded on a computer-readable recording medium.
  • Any computer-readable recording medium may be used, for example, a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, or the like.
  • magnetic recording devices hard disk devices, flexible disks, magnetic tapes, etc., as optical discs, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc.
  • magneto-optical recording media such as MO (Magneto-Optical disc), etc. as semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. can be used.
  • this program is carried out, for example, by selling, assigning, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded.
  • the program may be distributed by storing the program in the storage device of the server computer and transferring the program from the server computer to other computers via the network.
  • a computer that executes such a program for example, first stores the program recorded on a portable recording medium or the program transferred from the server computer once in its own storage device. When executing the process, this computer reads the program stored in its own storage device and executes the process according to the read program. Also, as another execution form of this program, the computer may read the program directly from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to this computer. Each time, the processing according to the received program may be executed sequentially. In addition, the above-mentioned processing is executed by a so-called ASP (Application Service Provider) type service, which does not transfer the program from the server computer to this computer, and realizes the processing function only by its execution instruction and result acquisition. may be It should be noted that the program in this embodiment includes information that is used for processing by a computer and that conforms to the program (data that is not a direct instruction to the computer but has the property of prescribing the processing of the computer, etc.).
  • ASP Application Service Provide
  • a hardware entity is configured by executing a predetermined program on a computer, but at least part of these processing contents may be implemented by hardware.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

Provided is updatable cryptographic technology with a minimal amount of information leakage. The present invention comprises: a key generation device that uses a Regev public key encryption variant PKE to generate a key ke for a period e from a public parameter pp; an encryption device that uses the Regev public key encryption variant PKE, the public parameter pp, and the key ke for the period e to generate, from plaintext μ, a ciphertext cte of the plaintext μ in the period e; a decryption device that uses the Regev public key encryption variant PKE, the public parameter pp, and the key ke for the period e to generate a plaintext μ' from the ciphertext cte of the plaintext μ in the period e; a token generation device that uses a power-of-two algorithm P2 and the public parameter pp to generate a token Δe+1 for the period e+1 from the key ke for the period e and a key ke+1 for the period e+1; and a ciphertext updating device that uses a binary decomposition algorithm BD to generate a ciphertext cte+1 for the period e+1 from the token Δe+1 for the period e+1 and the ciphertext cte for the period e.

Description

暗号システム、暗号文更新装置、プログラムCipher system, ciphertext updating device, program
 本発明は、更新可能暗号に関する。 The present invention relates to updatable encryption.
 更新可能暗号は、鍵を定期的に更新することにより、鍵の漏洩による安全性の喪失に備えることができる暗号である。更新可能暗号として、例えば、非特許文献1に記載の双方向鍵更新の暗号が知られている。 Updatable ciphers are ciphers that can be prepared against loss of security due to key leaks by periodically updating the keys. As an updatable cipher, for example, a bidirectional key update cipher described in Non-Patent Document 1 is known.
 非特許文献1に記載の更新可能暗号は量子コンピュータに対しても安全な暗号であるが、双方向鍵更新であるため、漏洩する情報量、つまり、漏洩した鍵から得られる他の鍵に関する情報量が多いという問題がある。漏洩する情報量が双方向鍵更新の暗号よりも少ないという点において、後方漏洩片方向鍵更新の暗号や無方向鍵更新の暗号の方が安全上好ましいが、現時点においていずれの暗号も実現されていない。 The updatable cipher described in Non-Patent Document 1 is a cipher that is safe even for quantum computers, but since it is a two-way key update, the amount of information leaked, that is, information about other keys obtained from the leaked key There is a problem of large quantity. Since the amount of information to be leaked is smaller than that of bidirectional key update encryption, backward leaking one-way key update encryption and non-directional key update encryption are more preferable from a security point of view. do not have.
 そこで本発明では、漏洩する情報量が少ない更新可能暗号技術を提供することを目的とする。 Therefore, it is an object of the present invention to provide updatable encryption technology that leaks a small amount of information.
 本発明の一態様は、λをセキュリティパラメータ、Zqをq(qは2以上の整数)を法とする加法と乗法が定義された環、PKE=(Setup, Reg.KeyGen, Reg.Enc, Reg.Dec)をRegev公開鍵暗号の亜種、η=ceiling(lg(q))、BDをx∈Zq nを入力とし、(u1, u2, …, uη)∈{0, 1}(ただし、x=Σk=1 η2k-1uk, uk∈{0, 1}nを満たす)を出力するバイナリ分解アルゴリズム、P2を[s1 … sk]∈Zq n×kを入力とし、[[1, 2, …, 2η-1]T*s1 … [1, 2, …, 2η-1]T*sk]∈Zq nη×k(ただし、*は標準的なテンソル積を表す)を出力する2冪アルゴリズムとし、pp=(A, 1λ, 1n, 1m, 1k, q, χ, χns)(ただし、AはZq m×nの行列、χ, χnsはそれぞれZq上の分布)を公開パラメータとし、Regev公開鍵暗号の亜種PKEを用いて、公開パラメータppから、期間eの鍵keを生成する鍵生成装置と、Regev公開鍵暗号の亜種PKEと公開パラメータppと期間eの鍵keを用いて、平文μから、期間eにおける平文μの暗号文cteを生成する暗号化装置と、Regev公開鍵暗号の亜種PKEと公開パラメータppと期間eの鍵keを用いて、期間eにおける平文μの暗号文cteから、平文μ’を生成する復号装置と、2冪アルゴリズムP2と公開パラメータppを用いて、期間eの鍵keと期間e+1の鍵ke+1から、期間e+1のトークンΔe+1を生成するトークン生成装置と、バイナリ分解アルゴリズムBDを用いて、期間e+1のトークンΔe+1、期間eの暗号文cteから、期間e+1の暗号文cte+1を生成する暗号文更新装置と、を含む。 In one aspect of the present invention, λ is a security parameter, Z q is a ring defining addition and multiplication modulo q (q is an integer of 2 or more), PKE=(Setup, Reg.KeyGen, Reg.Enc, Reg.Dec) is a variant of the Regev public-key cryptosystem, η=ceiling(lg(q)), BD is x∈Z q n , and (u 1 , u 2 , …, u η )∈{0, 1} where x=Σ k=1 η 2 k-1 u k , u k ∈{0, 1} n , and let P2 be [s 1 … s k ]∈Z Given q n×k as input, [[1, 2, …, 2 η-1 ] T *s 1 … [1, 2, …, 2 η-1 ] T *s k ]∈Z q nη×k ( where * represents the standard tensor product) and let pp=(A, 1 λ , 1 n , 1 m , 1 k , q, χ, χ ns ) (where A is Z q m × n matrix, χ and χ ns are distributions on Z q ) are public parameters, and a key k e of period e is generated from the public parameter pp using PKE, a variant of Regev public key cryptography. A key generation device, an encryption device that generates ciphertext ct e of plaintext μ in period e from plaintext μ using a subspecies PKE of Regev public key cryptography, public parameter pp, and key k e of period e; a decryption device that generates plaintext μ′ from ciphertext ct e of plaintext μ in period e using a variant PKE of Regev public key cryptography, public parameter pp, and key k e in period e; Using a public parameter pp, a token generation device that generates a token Δ e+1 of period e+1 from key k e of period e and key k e+1 of period e+1, and using a binary decomposition algorithm BD a ciphertext updater for generating a ciphertext ct e+1 of period e +1 from a token Δ e+1 of period e+1 and a ciphertext ct e of period e.
 本発明の一態様は、λをセキュリティパラメータ、iOを識別不可能性難読化器、PPRF=(PRF.Gen, PRF, Punc)(ただし、PRF.Gen: {0, 1}λ→{0, 1}λ, PRF: {0, 1}λ×{0, 1}n→{0, 1}m)を穴あけ可能擬似ランダム関数、PRG: {0, 1}τ→{0, 1}nを擬似乱数生成器とし、Cre io[ke, ke+1]を期間eの暗号文cte, ベクトルre+1∈{0, 1}τを入力とし、期間eの鍵ke、期間e+1の鍵ke+1を用いて、期間e+1の暗号文cte+1を計算し出力する回路とし、穴あけ可能擬似ランダム関数PPRFを用いて、セキュリティパラメータλから、期間eの鍵keを生成する鍵生成装置と、擬似乱数生成器PRGと穴あけ可能擬似ランダム関数PPRFと期間eの鍵keを用いて、平文μから、期間eにおける平文μの暗号文cteを生成する暗号化装置と、穴あけ可能擬似ランダム関数PPRFと期間eの鍵keを用いて、期間eにおける平文μの暗号文cteから、平文μ’を生成する復号装置と、識別不可能性難読化回路iOを用いて、回路Cre io[ke, ke+1]から、期間e+1のトークンΔe+1を生成するトークン生成装置と、期間e+1のトークンΔe+1、期間eの暗号文cteから、期間e+1の暗号文cte+1を生成する暗号文更新装置と、を含む。 One aspect of the present invention is that λ is a security parameter, iO is an unidentifiable obfuscator, PPRF=(PRF.Gen, PRF, Punc) where PRF.Gen: {0, 1} λ → {0, 1} λ , PRF: {0, 1} λ × {0, 1} n → {0, 1} m ) is a puncturable pseudo-random function, PRG: {0, 1} τ → {0, 1} n Let C re io [k e , k e+1 ] be a pseudo-random number generator, let C re io [k e , k e+1 ] be a ciphertext ct e of period e, vector r e+1 ∈{0, 1} τ as input, key k e of period e, A circuit that calculates and outputs a ciphertext ct e+1 of period e+1 using key k e +1 of period e+1, and uses a puncturable pseudo-random function PPRF to obtain, from security parameter λ, period e ciphertext ct e of plaintext μ in period e from plaintext μ using a key generation device that generates a key k e of, a pseudorandom number generator PRG, a puncturable pseudorandom function PPRF, and a key k e of period e a decryption device that generates plaintext μ′ from ciphertext ct e of plaintext μ in period e using a puncturable pseudo-random function PPRF and key k e in period e; A token generator that generates a token Δ e+1 of period e+1 from the circuit C re io [k e , k e+1 ] using an obfuscation circuit iO, and a token Δ e+ of period e+1 1 , a ciphertext updating device for generating a ciphertext ct e +1 of period e+ 1 from a ciphertext ct e of period e.
 本発明によれば、漏洩する情報量を少なくすることが可能となる。 According to the present invention, it is possible to reduce the amount of leaked information.
暗号システム10の構成を示すブロック図である。1 is a block diagram showing the configuration of a cryptographic system 10; FIG. 公開パラメータ生成装置100の構成を示すブロック図である。1 is a block diagram showing the configuration of a public parameter generation device 100; FIG. 公開パラメータ生成装置100の動作を示すフローチャートである。4 is a flow chart showing the operation of the public parameter generation device 100. FIG. 鍵生成装置200の構成を示すブロック図である。2 is a block diagram showing the configuration of a key generation device 200; FIG. 鍵生成装置200の動作を示すフローチャートである。4 is a flowchart showing the operation of the key generation device 200; 暗号化装置300の構成を示すブロック図である。3 is a block diagram showing the configuration of an encryption device 300; FIG. 暗号化装置300の動作を示すフローチャートである。4 is a flowchart showing the operation of the encryption device 300; 復号装置400の構成を示すブロック図である。4 is a block diagram showing the configuration of a decoding device 400; FIG. 復号装置400の動作を示すフローチャートである。4 is a flow chart showing the operation of the decoding device 400. FIG. トークン生成装置500の構成を示すブロック図である。3 is a block diagram showing the configuration of a token generation device 500; FIG. トークン生成装置500の動作を示すフローチャートである。5 is a flow chart showing the operation of the token generation device 500; 暗号文更新装置600の構成を示すブロック図である。3 is a block diagram showing the configuration of a ciphertext update device 600; FIG. 暗号文更新装置600の動作を示すフローチャートである。6 is a flow chart showing the operation of the ciphertext update device 600. FIG. 暗号システム20の構成を示すブロック図である。2 is a block diagram showing the configuration of a cryptographic system 20; FIG. 鍵生成装置1200の構成を示すブロック図である。2 is a block diagram showing the configuration of a key generation device 1200; FIG. 鍵生成装置1200の動作を示すフローチャートである。4 is a flowchart showing the operation of the key generation device 1200; 暗号化装置1300の構成を示すブロック図である。3 is a block diagram showing the configuration of an encryption device 1300; FIG. 暗号化装置1300の動作を示すフローチャートである。4 is a flow chart showing the operation of the encryption device 1300; 復号装置1400の構成を示すブロック図である。3 is a block diagram showing the configuration of decoding device 1400. FIG. 復号装置1400の動作を示すフローチャートである。14 is a flow chart showing the operation of the decoding device 1400. FIG. トークン生成装置1500の構成を示すブロック図である。3 is a block diagram showing the configuration of a token generation device 1500; FIG. トークン生成装置1500の動作を示すフローチャートである。4 is a flow chart showing the operation of the token generation device 1500; 暗号文更新装置1600の構成を示すブロック図である。3 is a block diagram showing the configuration of a ciphertext update device 1600; FIG. 暗号文更新装置1600の動作を示すフローチャートである。4 is a flow chart showing the operation of the ciphertext update device 1600. FIG. 本発明の実施形態における各装置を実現するコンピュータの機能構成の一例を示す図である。It is a figure which shows an example of the functional structure of the computer which implement|achieves each apparatus in embodiment of this invention.
 以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。 Hereinafter, embodiments of the present invention will be described in detail. Components having the same function are given the same number, and redundant description is omitted.
 各実施形態の説明に先立って、この明細書における表記方法について説明する。 Before describing each embodiment, the notation method used in this specification will be described.
 ^(キャレット)は上付き添字を表す。例えば、xy^zはyzがxに対する上付き添字であり、xy^zはyzがxに対する下付き添字であることを表す。また、_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。 ^ (caret) represents a superscript. For example, x y^z means that y z is a superscript to x, and x y^z means that y z is a subscript to x. Also, _ (underscore) represents a subscript. For example, x y_z means that y z is a superscript to x and x y_z means that y z is a subscript to x.
 また、ある文字xに対する^xや~xのような上付き添え字の”^”や”~”は、本来”x”の真上に記載されるべきであるが、明細書の記載表記の制約上、^xや~xと記載しているものである。 Also, the superscripts "^" and "~" such as ^x and ~x for a certain character x should be written directly above "x", but Due to restrictions, it is written as ^x or ~x.
<技術的背景>
 まず、記法について説明する。
<Technical background>
First, the notation will be explained.
 有限集合Xから要素xを一様ランダムに選ぶことを、x←Xと表す。  The uniform random selection of an element x from a finite set X is expressed as x←X.
 Aを確率的アルゴリズムまたは確定的アルゴリズムとし、入力xに対してアルゴリズムAがyを出力することを、y←A(x)と表す。 Let A be a stochastic or deterministic algorithm, and let y←A(x) denote that algorithm A outputs y for input x.
 有限集合Sに対して、S上の一様分布を、U(S)と表す。 For a finite set S, the uniform distribution on S is represented as U(S).
 整数k, rに対して、集合{1, …, k}、集合{k, …, r}をそれぞれ[k], [k, r]と表す。 For integers k and r, the set {1,...,k} and set {k,...,r} are represented as [k] and [k,r], respectively.
 λをセキュリティパラメータとする。 Let λ be the security parameter.
 y:=zは、yにzが設定または代入されること、あるいはyがzにより定義されることを表す。  y:=z means that z is set or assigned to y, or that y is defined by z.
 Rを実数の集合とし、実数x∈Rに対して、q-ceiling(x):= ceiling(x-1/2)と定義する。また、ベクトルx=(x1, …, xk)∈Rkに対して、q-ceiling(x):=(q-ceiling(x1), …, q-ceiling(xk))と定義する。 Let R be the set of real numbers, and define q-ceiling(x):= ceiling(x-1/2) for real numbers x∈R. Also, for a vector x=(x 1 , …, x k )∈R k , define q-ceiling(x):=(q-ceiling(x 1 ), …, q-ceiling(x k )) do.
 2以上の任意の整数q∈Z(Zは整数の集合を表す)に対して、Zq={ceiling(-q/2), …, -1, 0, 1, …, floor(q/2)}はqを法とする加法と乗法が定義された環を表す。 Z q ={ceiling(-q/2), …, -1, 0, 1, …, floor(q/2 )} represents a ring with addition and multiplication modulo q.
 行列X∈Rm×n_1,Y∈Rm×n_2に対して、[X|Y]∈Rm×(n_1+n_2)は行列Xと行列Yの列を連結した行列を表す。また、行列X∈Rm_1×n,Y∈Rm_2×nに対して、[X;Y]∈R(m_1+m_2)×nは行列Xと行列Yの行を連結した行列を表す。 For matrices X∈R m×n_1 and Y∈R m×n_2 , [X|Y]∈R m×(n_1+n_2) represents a matrix that concatenates the columns of matrix X and matrix Y. For matrices X∈R m_1×n and Y∈R m_2×n , [X;Y]∈R (m_1+m_2)×n represents a matrix in which rows of matrix X and matrix Y are connected.
 関数fに対して、f≦neglはfが無視できる関数であることを表し、f≧neglはfが無視できない関数であることを表す。 For a function f, f≦negl means that f is a negligible function, and f≧negl means that f is a non-negligible function.
 次に、更新可能暗号の定義について説明する。 Next, the definition of updatable encryption will be explained.
[更新可能暗号]
 平文空間Mに対する更新可能暗号UEは、6つの確率的多項式時間アルゴリズムの組(UE.Setup, UE.KeyGen, UE.Enc, UE.Dec, UE.TokGen, UE.Upd)である。
[Updatable cipher]
The updatable cipher UE for the plaintext space M is a set of 6 probabilistic polynomial-time algorithms (UE.Setup, UE.KeyGen, UE.Enc, UE.Dec, UE.TokGen, UE.Upd).
UE.Setup(1λ)→pp:セットアップアルゴリズムUE.Setupは、セキュリティパラメータλを入力とし、公開パラメータppを出力する。このアルゴリズムは必ずしもなくてもよい。 UE.Setup(1 λ )→pp: The setup algorithm UE.Setup takes the security parameter λ as input and outputs the public parameter pp. This algorithm is not necessarily required.
UE.KeyGen(pp)→ke:鍵生成アルゴリズムUE.KeyGenは、公開パラメータppを入力とし、期間eの鍵keを出力する。 UE.KeyGen(pp)→k e : The key generation algorithm UE.KeyGen takes as input the public parameter pp and outputs a key k e of period e.
UE.Enc(ke, μ)→cte:暗号化アルゴリズムUE.Encは、期間eの鍵keと平文μ∈Mを入力とし、期間eにおける平文μの暗号文cteを出力する。 UE.Enc(k e , μ)→ct e : The encryption algorithm UE.Enc takes as input a key k e in period e and plaintext μ∈M, and outputs ciphertext ct e of plaintext μ in period e.
UE.Dec(ke, ct)→μ’:復号アルゴリズムUE.Decは、期間eの鍵keと暗号文ctを入力とし、平文μ’∈Mあるいは⊥を出力する。ただし、⊥はエラーを表す。 UE.Dec(k e , ct)→μ′: Decryption algorithm UE.Dec takes as input a key k e of period e and a ciphertext ct, and outputs a plaintext μ′∈M or ⊥. However, ⊥ represents an error.
UE.TokGen(ke, ke+1)→Δe+1:トークン生成アルゴリズムUE.TokGenは、2つの連続する期間e, e+1の鍵ke, ke+1を入力とし、期間e+1のトークンΔe+1を出力する。 UE.TokGen(k e , k e+1 )→Δ e+1 : The token generation algorithm UE.TokGen takes as input keys k e , k e+1 of two consecutive periods e, e +1 , and the period Output the token Δ e+1 in e+1 .
UE.Upd(Δe+1,cte)→cte+1:更新アルゴリズムUE.Updは、期間e+1のトークンΔe+1と期間eにおける平文μの暗号文cteを入力とし、期間e+1における平文μの暗号文cte+1を出力する。 UE.Upd(Δ e+1 , ct e )→ct e+1 : The update algorithm UE.Upd takes as input the token Δ e+1 in period e+1 and the ciphertext ct e in plaintext μ in period e, Output ciphertext ct e+1 of plaintext μ in period e+1.
 また、更新可能暗号UEに対して更新可能回数の上限が存在する場合、Tと表すことにする。 Also, if there is an upper limit on the number of updates possible for an updatable cipher UE, it will be represented as T.
 なお、この更新可能暗号の定義は暗号文独立トークンに基づく定義である。ここで、暗号文独立トークンとはトークンの生成に更新したい暗号文の一部を利用する必要がないトークンのことをいう。一方、更新可能暗号の定義には、トークンの生成に更新したい暗号文の一部が必要な暗号文依存トークンに基づくものもある。明らかに暗号文独立トークンに基づく更新可能暗号の方が優れており、本発明の実施形態で用いる更新可能暗号はいずれも暗号文独立トークンに基づくものである。  This definition of updatable encryption is based on ciphertext independent tokens. Here, a ciphertext-independent token is a token that does not require the use of a part of the ciphertext to be updated to generate the token. Other definitions of updatable cryptography, on the other hand, are based on ciphertext-dependent tokens, where part of the ciphertext you want to update is required to generate the token. Clearly, ciphertext-independent token-based updatable ciphers are superior, and all updatable ciphers used in embodiments of the present invention are based on ciphertext-independent tokens.
 続いて、鍵更新における方向の概念について説明する。 Next, we will explain the concept of direction in key update.
[鍵更新における方向]
 更新可能暗号において、暗号文更新に用いるトークンから漏れることが避けられない情報が存在する。更新可能暗号によってどのように情報が漏れるかが異なるため、その相違に基づいて、更新可能暗号を4つのタイプに分類する。
[Direction in key update]
In updatable cryptography, there is information that cannot be avoided from being leaked from the token used to update the ciphertext. Based on the differences in how information is leaked by updatable ciphers, we classify updatable ciphers into four types.
双方向鍵更新:トークンΔe+1と鍵keが与えられたときに鍵ke+1が容易に導出でき、かつトークンΔe+1と鍵ke+1が与えられたときに鍵keが容易に導出できるような更新可能暗号を双方向鍵更新であるという。 Two-way key update: key k e+1 can be easily derived given token Δ e+1 and key k e and key k e+1 given token Δ e+1 and key k e+1 Updatable ciphers such that k e can be easily derived are said to be bidirectional key updates.
前方漏洩片方向鍵更新:トークンΔe+1と鍵keが与えられたときに鍵ke+1が容易に導出できる更新可能暗号を前方漏洩片方向鍵更新であるという。この場合、トークンΔe+1と鍵ke+1が与えられたときに鍵keが導出できるとは限らない。 Forward-leaky one-way key update: Forward-leaky one-way key update is said to be an updatable cipher from which the key k e+1 can be easily derived given a token Δ e+1 and a key k e . In this case, it is not always possible to derive the key k e given the token Δ e+1 and the key k e+1 .
後方漏洩片方向鍵更新:トークンΔe+1と鍵ke+1が与えられたときに鍵keが容易に導出できる更新可能暗号を後方漏洩片方向鍵更新であるという。この場合、トークンΔe+1と鍵keが与えられたときに鍵ke+1が導出できるとは限らない。 Backward leaking one-way key update: Updatable ciphers from which the key k e can be easily derived given a token Δ e+1 and a key k e+1 are said to be backward leaking one-way key update. In this case, it is not always possible to derive the key k e+1 given the token Δ e+1 and the key k e .
無方向鍵更新:トークンΔe+1と鍵keが与えられたときに鍵ke+1が導出できるとは限らず、かつトークンΔe+1と鍵ke+1が与えられたときに鍵keが導出できるとは限らない更新可能暗号を無方向鍵更新であるという。 Undirectional key update: Given a token Δ e+1 and a key k e , it is not always possible to derive the key k e+1 , and given a token Δ e+1 and a key k e+1 Updatable ciphers for which the key k e cannot always be derived are said to be undirectional key updates.
 非特許文献1には、双方向鍵更新の更新可能暗号と前方漏洩片方向鍵更新の更新可能暗号が等価であることが示されている。鍵更新における方向の定義から明らかなように、情報漏洩を最小限に抑えるという観点から最も望ましいのは無方向鍵更新の更新可能暗号である。しかし、これまでのところ無方向鍵更新の更新可能暗号は構成されていない。また、双方向鍵更新の更新可能暗号よりも片方向鍵更新の更新可能暗号が望ましいことも明らかであるが、前方漏洩片方向鍵更新の更新可能暗号は双方向鍵更新の暗号と同程度の安全性しか有していないことが示されているため、前方漏洩片方向鍵更新は安全性上有利にはならない。その一方で、後方漏洩片方向鍵更新の更新可能暗号は前方漏洩片方向鍵更新や双方向鍵更新の更新可能暗号によって含意されるものではないため、安全性上利点がある。しかし、これまでのところ後方漏洩片方向鍵更新の更新可能暗号も構成されていない。 Non-Patent Document 1 shows that updatable encryption for two-way key update and updatable encryption for forward leaking one-way key update are equivalent. As is clear from the definition of direction in key update, the most desirable one is updatable encryption for non-directional key update from the viewpoint of minimizing information leakage. So far, however, no updatable ciphers for undirectional key updates have been constructed. It is also clear that updatable cipher with one-way key update is preferable to updatable cipher with two-way key update. Forward leaking one-way key updates do not provide a security advantage since they have been shown to be only secure. On the other hand, backward-leaky one-way key update updatable encryption is not implied by forward-leaky one-way key update or two-way key update updatable encryption, so there is a security advantage. However, updatable ciphers for backward leaking one-way key updates have also not been constructed so far.
 本発明の実施形態で用いる更新可能暗号は、格子問題に基づくものと、識別不可能性難読化に基づくものである。格子問題に基づく更新可能暗号は、後方漏洩片方向鍵更新の、量子コンピュータに対しても安全性を持つ暗号である。また、識別不可能性難読化に基づく更新可能暗号は、無方向鍵更新の、量子コンピュータに対する安全性を持つ可能性がある暗号である。これらの更新可能暗号について説明する前に、それぞれで用いる要素技術に関して説明する。まずは、格子問題に基づく更新可能暗号に必要な要素技術について説明する。 The updatable encryption used in the embodiment of the present invention is based on the lattice problem and obfuscated indistinguishability. Updatable cryptography based on the lattice problem is a backward leaky one-way key update cryptography that is also secure against quantum computers. Also, updatable cryptography based on indistinguishability obfuscation is a potentially quantum-computer-secure cryptography for undirectional key updates. Before describing these updatable ciphers, elemental technologies used in each will be described. First, we explain the elemental technologies required for updatable cryptography based on the lattice problem.
[各種ガウス分布]
 N(0, σ2)を平均0、分散σ2のガウス分布とする。ガウス分布はR上の密度関数(1/σ(2π)1/2)exp(-x2/2σ2)によって定義される分布である。
[Various Gaussian distributions]
Let N(0, σ 2 ) be a Gaussian distribution with mean 0 and variance σ 2 . A Gaussian distribution is a distribution defined by the density function (1/σ(2π) 1/2 )exp(-x 2 /2σ 2 ) on R.
 また、以下を定義する。 Also, define the following.
 離散化ガウシアン-Ψα:α∈(0, 1), 正の整数qに対して、xをN(0, α2/2π)からサンプルし、q-ceiling(qx) mod q を出力する関数と定義する。 Discretized Gaussian - Ψ α : function that samples x from N(0, α 2 /2π) for α∈(0, 1), positive integer q and outputs q-ceiling(qx) mod q defined as
 離散ガウシアン:正の実数sに対して、n次元ガウス関数ρs(x)=exp(-π||x||2/s2)と定義する。 Discrete Gaussian: Define the n-dimensional Gaussian function ρ s (x)=exp(-π||x|| 2 /s 2 ) for positive real s.
 離散ガウス分布DA,s(x):正の実数s、可算集合Aに対して、DA,s(x):=ρs(x)/Σy∈Aρs(y)と定義する。 Discrete Gaussian distribution D A,s (x): for positive real s and countable set A, define D A,s (x):=ρ s (x)/Σ y∈A ρ s (y) .
[LWE問題(Learning With Errors Problem)]
 参考非特許文献1に従い、LWE問題について説明する。
[LWE Problem (Learning With Errors Problem)]
The LWE problem will be described according to Reference Non-Patent Document 1.
(参考非特許文献1:Oded Regev, “On lattices, learning with errors, random linear codes, and cryptography,” Journal of the ACM, 56(6):34:1-34:40, 2009.)
 Zq n×Zq上の分布A(s, χ)を、ベクトルs∈Zq nとZq上の分布χに対して、a←Zq n, x←χをサンプルし、(a, <a, s>+x)を出力する分布と定義する。
(Reference non-patent document 1: Oded Regev, “On lattices, learning with errors, random linear codes, and cryptography,” Journal of the ACM, 56(6):34:1-34:40, 2009.)
For the distribution A(s, χ) on Z q n ×Z q , for the vector s∈Z q n and the distribution χ on Z q , sample a←Z q n , x←χ, and (a, Define a distribution that outputs <a, s>+x).
 LWE問題、LWE仮定はそれぞれ次のように定義される。 The LWE problem and LWE assumption are defined as follows.
 整数q=q(n)、Zq上の分布χ、およびZq n上の分布ψに対して、分布ψ上のLWE(n, q, χ)問題とは、オラクルA(s, χ)とオラクルA(s, U(Zq))を識別する問題である(ただし、s←ψ)。 For an integer q=q(n), a distribution χ on Z q , and a distribution ψ on Z q n , the LWE(n, q, χ) problem on the distribution ψ is the oracle A(s, χ) and oracle A(s, U(Z q )) (where s←ψ).
 また、LWE(n, q, χ)仮定が分布ψに対して成立するとは、任意の確率的多項式時間攻撃者Attに対して、次式で定義される優位性AdvAtt(n,q,χ,ψ) lwe(n)がnに関して無視できることをいう。
Figure JPOXMLDOC01-appb-M000001

 ただし、s←ψである。
In addition, the LWE(n, q, χ) assumption holds for the distribution ψ if the superiority Adv Att(n, q, χ ,ψ) means that lwe (n) is negligible with respect to n.
Figure JPOXMLDOC01-appb-M000001

However, s←ψ.
 なお、任意のs∈Zq nに対して、A(s, U(Zq))=U(Zq n×Zq)となる。また、元の仮定が成立していることを前提とし、ベクトルa, sの代わりに行列A←Zq m×n, S∈Zq n×kを用いた場合も仮定は成立する。 Note that A(s, U(Z q ))=U(Z q n ×Z q ) for any s∈Z q n . Moreover, assuming that the original assumption holds, the assumption also holds when the matrix A←Z q m×n and S∈Z q n×k are used instead of the vectors a and s.
 参考非特許文献2によると、ベクトルsに関する分布として、一様分布U(Zq n)の代わりに分布χnを用いてもよい。具体的には、q=peを素数べきとし、LWE(n, q, χ)仮定が一様分布U(Zq n)に対して成立するならば、LWE(n, q, χ)仮定が分布χnに対しても成立する。 According to Reference Non-Patent Document 2, the distribution χ n may be used instead of the uniform distribution U(Z q n ) as the distribution for the vector s. Specifically, if q=p e is a prime power and the LWE(n, q, χ) assumption holds for the uniform distribution U(Z q n ), then the LWE(n, q, χ) assumption also holds for the distribution χ n .
(参考非特許文献2:Benny Applebaum, David Cash, Chris Peikert, and Amit Sahai, “Fast cryptographic primitives and circular-secure encryption based on hard learning problems,” In Shai Halevi, editor, CRYPTO 2009, volume 5677 of LNCS, pp.595-618. Springer, Heidelberg, August 2009.)
 LWE問題をχ=-Ψαまたはχ=DZ,sに対して平均的に解くことは、γを近似パラメータとする最短独立ベクトル問題SIVPγを最悪時に解くこと、γを近似パラメータとする最短ベクトル問題GapSVPγを最悪時に解くことと同程度に難しいことが示されている。
(Reference Non-Patent Document 2: Benny Applebaum, David Cash, Chris Peikert, and Amit Sahai, “Fast cryptographic primitives and circular-secure encryption based on hard learning problems,” In Shai Halevi, editor, CRYPTO 2009, volume 5677 of LNCS, pp.595-618. Springer, Heidelberg, August 2009.)
Solving the LWE problem for χ= - Ψ α or χ=D Z,s on average solves the shortest independent vector problem SIVP γ with γ as an approximation parameter. It has been shown to be as difficult as solving the vector problem GapSVP γ in the worst case.
 SIVPγ、GapSVPγのような格子問題は量子コンピュータを用いて多項式時間で解けるかどうかわかっていないため、LWE問題も量子コンピュータを用いて多項式時間で解けるかどうかわかっていない。つまり、格子問題に基づく更新可能暗号は量子コンピュータに対しても安全であると期待される。 It is not known whether lattice problems such as SIVP γ and GapSVP γ can be solved in polynomial time using a quantum computer, so it is not known whether LWE problems can be solved in polynomial time using a quantum computer. In other words, updatable cryptography based on the lattice problem is expected to be secure even for quantum computers.
 次に、識別不可能性難読化に基づく更新可能暗号に必要な要素技術について説明する。 Next, we will explain the elemental technologies required for updatable encryption based on obfuscation of indistinguishability.
[穴あけ可能擬似ランダム関数]
 集合D,~Rに対して、穴あけ可能擬似ランダム関数PPRFは以下の性質を満たす2つのアルゴリズムの組(F, Punc)である。
[punchable pseudorandom function]
For sets D,~R, the puncturable pseudorandom function PPRF is a set of two algorithms (F, Punc) that satisfy the following properties.
 穴あきの下での機能保持:任意の多項式サイズの部分集合{xi}i∈[k]⊂D、任意のx∈D-{xi}i∈[k]に対して、Pr[F(K, x)=F(K*, x):K←{0,1}λ, K*←Punc(K, {xi}i∈[k])]=1が成立する。 Feature preservation under puncture: for any polynomial-sized subset {x i } i∈[k] ⊂D, for any x∈D-{x i } i∈[k] , Pr[F( K, x)=F(K * , x):K←{0,1} λ , K * ←Punc(K, {x i } i∈[k] )]=1 holds.
 穴あき点での擬似ランダム性:すべての多項式サイズの部分集合{xi}i∈[k]⊂D、すべての多項式時間攻撃者Attに対し、次式が成立する。
Figure JPOXMLDOC01-appb-M000002

 ただし、K←{0,1}λ, K*←Punc(K, {xi}i∈[k])であり、~Uは~R上の一様分布を表す。
Pseudo-randomness at punctured points: For all polynomial-sized subsets {x i } i∈[k] ⊂D, for all polynomial-time attackers Att, we have
Figure JPOXMLDOC01-appb-M000002

However, K←{0,1} λ , K * ←Punc(K, {x i } i∈[k] ), and ~U represents a uniform distribution on ~R.
 なお、K←{0,1}λをPRF.Gen: {0, 1}λ→{0, 1}λと表し、穴あけ可能擬似ランダム関数PPRFを3つのアルゴリズムの組(PRF.Gen, F, Punc)として扱うこともある。 Note that we denote K←{0,1} λ as PRF.Gen: {0, 1} λ → {0, 1} λ , and let the puncturable pseudorandom function PPRF be a set of three algorithms (PRF.Gen, F, Punc).
 また、穴あけ可能擬似ランダム関数に関して、“一方向性関数が存在するならば、任意の効率的に計算可能な関数n(λ), m(λ)に対してn(λ)ビット文字列をm(λ)ビット文字列に写す穴あけ可能擬似ランダム関数が存在する”ことが示されている。 Also, for a puncturable pseudorandom function, ``if there exists a one-way function, for any efficiently computable function n(λ), m(λ), m It has been shown that there exists a puncturable pseudo-random function that maps to (λ)-bit strings.
[識別不可能性難読化]
 Nを自然数の集合とし、確率的多項式時間アルゴリズムiOが回路クラス{Cλ}λ∈Nに対して識別不可能性難読化であるとは、以下の2つの条件を満たすことである。
[Unidentifiable Obfuscation]
Let N be a set of natural numbers, and the probabilistic polynomial-time algorithm iO is an indistinguishability obfuscation for the circuit class {C λ } λ∈N if it satisfies the following two conditions.
 機能性:λ∈Nを任意のセキュリティパラメータとし、回路C∈Cλ、入力xに対して、次式が成り立つ。
Figure JPOXMLDOC01-appb-M000003

 ここで、C’は回路Cを難読化した回路である。
Functionality: Let λ∈N be any security parameter, and for a circuit C∈C λ , input x, the following holds.
Figure JPOXMLDOC01-appb-M000003

Here, C' is an obfuscated version of circuit C.
 識別不可能性:λ∈Nを任意のセキュリティパラメータとし、確率的多項式時間攻撃者D、入力xに対してC0(x)=C1(x)かつ|C0|=|C1|であるような回路C0, C1∈Cλに対して、次式が成り立つ。
Figure JPOXMLDOC01-appb-M000004

[格子問題に基づく更新可能暗号]
 ここでは、格子問題に基づく更新可能暗号について説明する。まず、参考非特許文献1に従い、本更新可能暗号の構成に必要なRegev公開鍵暗号の亜種について説明する。
Indistinguishability: Let λ∈N be any security parameter, a probabilistic polynomial-time attacker D, for input x with C 0 (x)=C 1 (x) and |C 0 |=|C 1 | For some circuit C 0 , C 1 ∈C λ , the following holds.
Figure JPOXMLDOC01-appb-M000004

[Updatable cryptography based on the lattice problem]
Here, we describe updatable cryptography based on the lattice problem. First, according to Reference Non-Patent Document 1, a subspecies of the Regev public key cryptosystem necessary for configuring this updatable cryptosystem will be described.
[[複数ユーザ状況下におけるRegev公開鍵暗号の亜種]]
 複数ユーザ状況下におけるRegev公開鍵暗号の亜種は、4つのアルゴリズムの組(Setup, Reg.KeyGen, Reg.Enc, Reg.Dec)である。
[[Regev public-key cryptography variants in multi-user situations]]
A variant of Regev public-key cryptography under multi-user situations is a set of four algorithms (Setup, Reg.KeyGen, Reg.Enc, Reg.Dec).
Setup(1λ):セットアップアルゴリズムSetupは、セキュリティパラメータλを入力とし、行列A←Zq m×nを選び、公開パラメータpp:=(A, 1λ, 1n, 1m, 1k, q, χ, χns)(ただし、χ, χnsはそれぞれZq上の分布である)を出力する。 Setup(1 λ ): The setup algorithm Setup takes the security parameter λ as input, chooses the matrix A←Z q m×n , and sets the public parameters pp:=(A, 1 λ , 1 n , 1 m , 1 k , q , χ, χ ns ) (where χ and χ ns are distributions on Z q ).
Reg.Gen(pp):鍵生成アルゴリズムReg.Genは、公開パラメータppを入力とし、行列S←Zq n×k, X←χm×kを選び、B:=AS+X∈Zq m×kを生成して、pk=B, sk=Sとし、公開鍵と秘密鍵の組(pk, sk)を出力する。 Reg.Gen(pp): The key generation algorithm Reg.Gen takes the public parameter pp as input, chooses the matrix S←Z q n×k , X←χ m×k , and B:=AS+X∈Z q m Generate ×k , set pk=B, sk=S, and output a pair of public and private keys (pk, sk).
Reg.Enc(pk, μ):暗号化アルゴリズムReg.Encは、公開鍵pkと平文μを入力とし、ベクトルr←{-1, +1}m, e’←χns kを選び、平文μの暗号文(u, c):=(rA, rB+e’+floor(q/2)μ)を出力する。 Reg.Enc(pk, μ): Encryption algorithm Reg.Enc takes public key pk and plaintext μ as input, selects vector r←{-1, +1} m , e'←χ ns k , plaintext μ ciphertext (u, c):=(rA, rB+e'+floor(q/2)μ).
Reg.Dec(sk, (u, c)):復号アルゴリズムReg.Decは、秘密鍵skと暗号文(u, c)を入力とし、d:=c-uSを生成し、μ:=q-ceiling((2/q)d) mod 2を平文として出力する。 Reg.Dec(sk, (u, c)): The decryption algorithm Reg.Dec takes the private key sk and the ciphertext (u, c) as input, generates d:=c-uS, μ:=q- Output ceiling((2/q)d) mod 2 as plaintext.
 続いて、本更新可能暗号の構成に必要なバイナリ分解アルゴリズムBDと2冪アルゴリズムP2について説明する。η=ceiling(lg(q))とする。 Next, we will explain the binary decomposition algorithm BD and the 2nd power algorithm P2 that are necessary for configuring this updateable cipher. Let η=ceiling(lg(q)).
BD(x):バイナリ分解アルゴリズムBDは、ベクトルx∈Zq nを入力とし、x=Σk=1 η2k-1uk(ただし、uk∈{0, 1}n)と分解し、ベクトル(u1, u2, …, uη)∈{0, 1}を出力する。 BD(x): The binary decomposition algorithm BD takes a vector x∈Z q n as input and decomposes it into x=Σ k=1 η 2 k-1 uk (where uk ∈{0, 1} n ). , output the vector (u 1 , u 2 , …, u η )∈{0, 1} .
P2(s):2冪アルゴリズムP2は、行列s∈Zq n×1を入力とし、行列[1, 2, …, 2η-1]T*s=[s; 2s; …; 2η-1s]∈Zq nη×1を生成し出力する。ただし、*は標準的なテンソル積を表す。なお、P2の定義域はP2([s1 … sk]∈Zq n×k)=[P2(s1) … P2(sk)]∈Zq nη×kとすることで拡張することができる。 2s ; _ _ _ 1 s]∈Z q nη×1 and output. where * denotes the standard tensor product. Note that the domain of P2 is extended by setting P2([s 1sk ]∈Z q n×k )=[P2(s 1 ) … P2( sk )]∈Z q nη×k can be done.
 ここで、上記2つのアルゴリズムの定義より、任意のx∈Zq n, S∈Zq n×kに対してBD(x)P2(S)=xS∈Zq kが成立する。 Here, from the definitions of the above two algorithms, BD(x)P2(S)=xS∈Z q k holds for any x∈Z q n , S∈Z q n×k .
 格子問題に基づく更新可能暗号は、Regev公開鍵暗号の亜種PKE=(Setup, Reg.KeyGen, Reg.Enc, Reg.Dec)、バイナリ分解アルゴリズムBD、2冪アルゴリズムP2を用いて定義される、以下の6つのアルゴリズムの組(Setup, Gen, Enc, Dec, TokGen, Upd)である。 An updatable cipher based on the lattice problem is defined with the Regev public-key cipher variant PKE=(Setup, Reg.KeyGen, Reg.Enc, Reg.Dec), the binary decomposition algorithm BD, and the power-of-two algorithm P2, A set of six algorithms (Setup, Gen, Enc, Dec, TokGen, Upd):
Setup(1λ):セットアップアルゴリズムSetupは、セキュリティパラメータλを入力とし、以下の手順を実行する。 Setup(1 λ ): The setup algorithm Setup takes the security parameter λ as input and executes the following steps.
(1) 行列A←Zq m×nを選ぶ。 (1) Choose matrix A←Z q m×n .
(2) 公開パラメータpp:=(A, 1λ, 1n, 1m, 1k, q, χ, χns)を出力する。 (2) Output public parameters pp:=(A, 1 λ , 1 n , 1 m , 1 k , q, χ, χ ns ).
 つまり、セットアップアルゴリズムSetupは、Regev公開鍵暗号の亜種のセットアップアルゴリズムSetupと同一である。  In other words, the setup algorithm Setup is the same as the setup algorithm Setup of the Regev public key cryptography variant.
Gen(pp):鍵生成アルゴリズムGenは、公開パラメータppを入力とし、以下の手順を実行する。 Gen(pp): The key generation algorithm Gen takes the public parameter pp as input and performs the following steps.
(1) (Be, Se)←Reg.Gen(pp)を生成する。 (1) Generate (B e , S e )←Reg.Gen(pp).
(2) 期間eの鍵ke:=(ske, pke):=(Se, Be)∈Zq n×k×Zq m×kを出力する。 (2) Output key k e :=(sk e , pk e ):=(S e , B e )∈Z q n×k ×Z q m×k for period e.
Enc(ke, μ):暗号化アルゴリズムEncは、期間eの鍵keと平文μ∈{0, 1}kを入力とし、以下の手順を実行する。 Enc(k e , μ): The encryption algorithm Enc takes as input a key k e of period e and a plaintext μ∈{0, 1} k and performs the following steps.
(1) 鍵ke=(Se, Be)と分解する。ここで、分解とは、パースすることである。 (1) Decompose as key k e =(S e , B e ). Here, decomposition means parsing.
(2) (u, c)←Reg.Enc(Be, μ)を生成する。 (2) Generate (u, c)←Reg.Enc(B e , μ).
(3) 期間eにおける平文μの暗号文ct:=(u, c)∈Zq n×Zq kを出力する。 (3) Output ciphertext ct:=(u, c)∈Z q n ×Z q k of plaintext μ in period e.
Dec(ke,ct):復号アルゴリズムDecは、期間eの鍵keと暗号文ctを入力とし、以下の手順を実行する。 Dec(k e ,ct): The decryption algorithm Dec takes the key k e of period e and the ciphertext ct as input and executes the following procedure.
(1) 鍵ke=(Se, Be), 暗号文ct=(u, c)と分解する。 (1) Decompose as key k e =(S e , B e ) and ciphertext ct=(u, c).
(2) μ’←Reg.Dec(Se, ct)を生成する。 (2) Generate μ'←Reg.Dec(S e , ct).
(3) 平文μ’∈{0, 1}kを出力する。 (3) Output plaintext μ'∈{0, 1} k .
TokGen(ke, ke+1):トークン生成アルゴリズムTokGenは、2つの連続する期間e, e+1の鍵ke, ke+1を入力とし、以下の手順を実行する。 TokGen(k e , k e+1 ): The token generation algorithm TokGen takes as input keys k e , k e+1 of two consecutive periods e, e+1 and performs the following steps.
(1) 鍵ke=(Se, Be), ke+1=(Se+1, Be+1)と分解する。 (1) Decompose as key k e =(S e , B e ), k e+1 =(S e+1 , B e+1 ).
(2) 行列Re+1←{-1, +1}nη×mを選び、行列Me+1:=Re+1[A|Be+1]+[O|-P2(Se)]∈Zq nη×(n+k)を生成する。 (2) Choose the matrix R e+1 ←{-1, +1} nη×m and compute the matrix M e+1 :=R e+1 [A|B e+1 ]+[O|-P2(S e )]∈Z q nη×(n+k) .
(3) 行列Re+1’←{-1, +1}m×mを選び、行列Ne+1:= Re+1’[A|Be+1]∈Zq m×(n+k)を生成する。 (3) Choose the matrix R e+1 '←{-1, +1} m×m and compute the matrix N e+1 := R e+1 '[A|B e+1 ]∈Z q m×(n +k) .
(4) 期間e+1のトークンΔe+1:=(Me+1, Ne+1)∈Zq nη×(n+k)×Zq m×(n+k)を出力する。 (4) Output token Δ e+1 :=(M e+1 , N e+1 )∈Z q nη×(n+k) ×Z q m×(n+k) for period e+1.
Upd(Δe+1, cte):更新アルゴリズムUpdは、期間e+1におけるトークンΔe+1と期間eにおける平文μの暗号文cteを入力とし、以下の手順を実行する。 Upd(Δ e+1 , ct e ): The update algorithm Upd takes as input the token Δ e+1 in period e+1 and the ciphertext ct e of the plaintext μ in period e, and performs the following procedure.
(1) トークンΔe+1=(Me+1, Ne+1), 暗号文cte=(u, c)と分解する。 (1) Token Δ e+1 =(M e+1 , N e+1 ) and ciphertext ct e =(u, c).
(2) ベクトルの組(u’, c’):=BD(u)Me+1∈Zq n×Zq kを生成する。 (2) Generate the set of vectors (u', c'):=BD(u)M e+1 ∈Z q n ×Z q k .
(3) ベクトル~r←{-1, +1}mを選び、ベクトルの組(~u, ~v):=~rNe+1∈Zq n×Zq kを生成する。 (3) Choose a vector ~r←{-1, +1} m and generate the vector pair (~u, ~v):=~rN e+1 ∈Z q n ×Z q k .
(4) 期間e+1の暗号文cte+1:=(-u, -v):=(u’+~u, c+c’+~v)∈Zq n×Zq kを出力する。 (4) Output ciphertext ct e+1 :=( - u, - v):=(u'+~u, c+c'+~v)∈Z q n ×Z q k for period e+1 do.
 この格子問題に基づく更新可能暗号は以下の性質を満たす。 Updatable cryptography based on this lattice problem satisfies the following properties.
(性質)所定の条件のもとLWE仮定が成り立つならば、格子問題に基づく更新可能暗号は後方漏洩片方向鍵更新を満たす安全な更新可能暗号である。 (Properties) If the LWE assumption holds under certain conditions, the updatable cipher based on the lattice problem is a secure updatable cipher that satisfies the backward leaking one-way key update.
 したがって、格子問題に基づく更新可能暗号では、トークンΔe+1と鍵keから鍵ke+1を得ることはできない。 Therefore, in updatable cryptography based on the lattice problem, it is not possible to derive key k e+ 1 from token Δ e+1 and key k e .
[識別不可能性難読化に基づく更新可能暗号]
 ここでは、識別不可能性難読化に基づく更新可能暗号について説明する。
[Renewable Cryptography Based on Indistinguishability Obfuscation]
Here we describe updatable cryptography based on indistinguishability obfuscation.
 識別不可能性難読化に基づく更新可能暗号は、識別不可能性難読化器iO、穴あけ可能擬似ランダム関数PPRF=(PRF.Gen, PRF, Punc)(ただし、PRF.Gen: {0, 1}λ→{0, 1}λ, PRF: {0, 1}λ×{0, 1}n→{0, 1}m)、擬似乱数生成器PRG: {0, 1}τ→{0, 1}nを用いて定義される、以下の5つのアルゴリズムの組(Gen, Enc, Dec, TokGen, Upd)である。つまり、本更新可能暗号には、セットアップアルゴリズムSetupは必要ない。 An updatable cipher based on unidentifiable obfuscation is an unidentifiable obfuscator iO, a puncturable pseudo-random function PPRF=(PRF.Gen, PRF, Punc) where PRF.Gen: {0, 1} λ → {0, 1} λ , PRF: {0, 1} λ × {0, 1} n → {0, 1} m ), pseudo-random number generator PRG: {0, 1} τ → {0, 1 } A set of five algorithms (Gen, Enc, Dec, TokGen, Upd) defined with n . In other words, this updatable cipher does not require a setup algorithm Setup.
KeyGen(1λ):鍵生成アルゴリズムKeyGenは、セキュリティパラメータλを入力とし、以下の手順を実行する。 KeyGen(1 λ ): The key generation algorithm KeyGen takes the security parameter λ as input and performs the following steps.
(1) K←PRF.Gen(1λ)を生成する。 (1) Generate K←PRF.Gen(1 λ ).
(2) 期間eの鍵ke:=K∈{0, 1}λを出力する。 (2) Output the key k e :=K∈{0, 1} λ for period e.
Enc(ke, μ):暗号化アルゴリズムEncは、期間eの鍵keと平文μ∈{0, 1}mを入力とし、以下の手順を実行する。 Enc(k e , μ): The encryption algorithm Enc takes as input a key k e of period e and a plaintext μ∈{0, 1} m and performs the following steps.
(1) r←{0, 1}τを選び、t:=PRG(r)∈{0, 1}nを生成する。 (1) Choose r←{0, 1} τ and generate t:=PRG(r)∈{0, 1} n .
(2) y:=PRF(K, t)∈{0, 1}mを生成する。 (2) Generate y:=PRF(K, t)∈{0, 1} m .
(3) 平文μの暗号文ct:=(t, y<+>μ)∈{0, 1}n×{0, 1}mを生成し、出力する。 (3) Generate and output ciphertext ct:=(t, y<+>μ)∈{0, 1} n × {0, 1} m of plaintext μ.
 ただし、<+>は排他的論理和を表す。 However, <+> represents exclusive OR.
Dec(ke, ct):復号アルゴリズムDecは、期間eの鍵keと暗号文ctを入力とし、以下の手順を実行する。 Dec(k e , ct): The decryption algorithm Dec takes the key k e of period e and the ciphertext ct as input and performs the following procedure.
(1) 鍵ke=K, 暗号文ct=(t, c)と分解する。 (1) Decompose as key k e =K and ciphertext ct=(t, c).
(2) 平文μ’:=c<+>PRF(K, t)∈{0, 1}mを生成し、出力する。 (2) Generate and output plaintext μ':=c<+>PRF(K, t)∈{0, 1} m .
TokGen(ke, ke+1):トークン生成アルゴリズムTokGenは、2つの連続する期間e, e+1の鍵ke, ke+1を入力とし、以下の手順を実行する。 TokGen(k e , k e+1 ): The token generation algorithm TokGen takes as input keys k e , k e+1 of two consecutive periods e, e+1 and performs the following steps.
(1) 期間e+1のトークンΔe+1←iO(Cre io[ke, ke+1])を生成し、出力する。 (1) Generate and output token Δ e+1 ←iO(C re io [k e , k e+1 ]) for period e+1.
 ただし、回路Cre io[ke, ke+1]は、期間eの暗号文cte, ベクトルre+1∈{0, 1}τを入力とし、期間eの鍵ke、期間e+1の鍵ke+1を用いて、期間e+1の暗号文cte+1を計算し出力する。このことから関数Cre io[ke, ke+1](cte, re+1)を更新関数ともいう。回路Cre io[ke, ke+1]の動作は、次の通りである。 However, the circuit C re io [k e , k e+1 ] receives the ciphertext ct e of the period e and the vector r e+1 ∈{0, 1} τ of the period e, the key k e of the period e, the period e Using +1 key k e+1 , compute and output ciphertext ct e+ 1 of period e+1. For this reason, the function C re io [k e , k e+1 ](ct e , r e+1 ) is also called an update function. The operation of the circuit C re io [k e , k e+1 ] is as follows.
(1) cte=(te, ce)と分解する。 (1) Decompose as ct e =(t e , c e ).
(2) μ’:=ce<+>PRF(ke, te) を生成する。 (2) Generate μ':=c e <+>PRF(k e , t e ).
(3) t’:=PRG(re+1), y’:=PRF(ke+1, t’)を生成する。 (3) Generate t':=PRG(r e+1 ), y':=PRF(k e+1 , t').
(4) cte+1:=(t’, y’<+>μ’)を出力する。 (4) Output ct e+1 :=(t', y'<+>μ').
Upd(Δe+1, cte):更新アルゴリズムUpdは、期間e+1におけるトークンΔe+1と期間eにおける平文μの暗号文cteを入力とし、以下の手順を実行する。 Upd(Δ e+1 , ct e ): The update algorithm Upd takes as input the token Δ e+1 in period e+1 and the ciphertext ct e of the plaintext μ in period e, and performs the following procedure.
(1) トークンΔe+1=iO(Cre io[ke, ke+1])と分解する。 (1) Token Δ e+1 =iO(C re io [k e , k e+1 ]).
(2) ベクトルre+1←{0, 1}τを選び、期間e+1の暗号文cte+1:= (t, c):=iO(Cre io[ke, ke+1])(cte, re+1)を生成し、出力する。 (2) Choose the vector r e+1 ←{0, 1} τ , and the ciphertext ct e+1 := (t, c):=iO(C re io [k e , k e+ 1 ])(ct e , r e+1 ) and output it.
 この識別不可能性難読化に基づく更新可能暗号は以下の性質を満たす。  Updatable encryption based on this obfuscation of indistinguishability satisfies the following properties.
(性質)識別不可能性難読化に基づく更新可能暗号の構成に用いる識別不可能性難読化器、穴あけ可能擬似ランダム関数、擬似乱数生成器がいずれも安全ならば、識別不可能性難読化に基づく更新可能暗号は無方向鍵更新を満たす安全な更新可能暗号である。 (Nature) If the anonymity obfuscator, the puncturable pseudorandom function, and the pseudorandom number generator used in constructing updatable encryption based on anonymity obfuscation are all secure, then anonymity obfuscation is possible. Based updateable cipher is a secure updateable cipher that satisfies undirectional key update.
 したがって、識別不可能性難読化に基づく更新可能暗号では、トークンΔe+1と鍵keから鍵ke+1を得ることはできないし、トークンΔe+1と鍵ke+1から鍵keを得ることもできない。 Therefore, in updatable encryption based on indistinguishability obfuscation, it is not possible to derive key k e+1 from token Δ e+1 and key k e , nor can key k e+1 be derived from token Δ e+1 and key k e+1. You can't even get k e .
 識別不可能性難読化技術として、例えば、参考非特許文献3に記載の技術を用いることができる。また、量子コンピュータに対しても安全な識別不可能性難読化として参考非特許文献4や参考非特許文献5に記載の技術を用いることができる。 For example, the technology described in Reference Non-Patent Document 3 can be used as an obfuscation technology that makes it unidentifiable. In addition, the techniques described in Reference Non-Patent Document 4 and Reference Non-Patent Document 5 can be used for secure indistinguishability obfuscation for quantum computers.
(参考非特許文献3:Aayush Jain, Huijia Lin, and Amit Sahai, “Indistinguishability obfuscation from well-founded assumptions,” Cryptology ePrint Archive, Report 2020/1003, 2020.)
(参考非特許文献4:Romain Gay and Rafael Pass, “Indistinguishability obfuscation from circular security,” Cryptology ePrint Archive, Report 2020/1010, 2020.)
(参考非特許文献5:Hoeteck Wee and Daniel Wichs, “Candidate obfuscation via oblivious LWE sampling,” Cryptology ePrint Archive, Report 2020/1042, 2020.)
 擬似ランダム関数として、例えば、参考非特許文献6、参考非特許文献7、参考非特許文献8に記載の技術を用いることができる。
(Reference non-patent document 3: Aayush Jain, Huijia Lin, and Amit Sahai, “Indistinguishability obfuscation from well-founded assumptions,” Cryptology ePrint Archive, Report 2020/1003, 2020.)
(Reference non-patent document 4: Romain Gay and Rafael Pass, “Indistinguishability obfuscation from circular security,” Cryptology ePrint Archive, Report 2020/1010, 2020.)
(Reference non-patent document 5: Hoeteck Wee and Daniel Wichs, “Candidate obfuscation via oblivious LWE sampling,” Cryptology ePrint Archive, Report 2020/1042, 2020.)
As the pseudo-random function, for example, the techniques described in Reference Non-Patent Document 6, Reference Non-Patent Document 7, and Reference Non-Patent Document 8 can be used.
(参考非特許文献6:Oded Goldreich, Shafi Goldwasser, and Silvio Micali, “How to construct random functions,” Journal of the ACM, 33(4):792-807, 1986.)
(参考非特許文献7:Moni Naor and Omer Reingold, “Number-theoretic constructions of efficient pseudo-random functions,” Journal of the ACM, 51(2):231-262, 2004.)
(参考非特許文献8:Abhishek Banerjee, Chris Peikert, and Alon Rosen, “Pseudorandom functions and lattices,” In David Pointcheval and Thomas Johansson, editors, EUROCRYPT 2012, volume 7237 of LNCS, pp.719-737. Springer, Heidelberg, April 2012.)
 擬似乱数生成器として、例えば、参考非特許文献8や参考非特許文献9に記載の技術を用いることができる。
(Reference Non-Patent Document 6: Oded Goldreich, Shafi Goldwasser, and Silvio Micali, “How to construct random functions,” Journal of the ACM, 33(4):792-807, 1986.)
(Reference Non-Patent Document 7: Moni Naor and Omer Reingold, "Number-theoretic constructions of efficient pseudo-random functions," Journal of the ACM, 51(2):231-262, 2004.)
(Reference non-patent document 8: Abhishek Banerjee, Chris Peikert, and Alon Rosen, “Pseudorandom functions and lattices,” In David Pointcheval and Thomas Johansson, editors, EUROCRYPT 2012, volume 7237 of LNCS, pp.719-737. Springer, Heidelberg , April 2012.)
As a pseudo-random number generator, for example, the techniques described in Reference Non-Patent Document 8 and Reference Non-Patent Document 9 can be used.
(参考非特許文献9:Moni Naor and Omer Reingold, “Synthesizers and their application to the parallel construction of pseudo-random functions,” J. Comput. Syst. Sci., 58(2):336-375, 1999.)
<第1実施形態>
 ここでは、<技術的背景>で説明した格子問題に基づく更新可能暗号を実行する暗号システム10について説明する。暗号システム10は、セキュリティパラメータλ、q(qは2以上の整数)を法とする加法と乗法が定義された環Zq、Regev公開鍵暗号の亜種PKE=(Setup, Reg.KeyGen, Reg.Enc, Reg.Dec)、η=ceiling(lg(q))、バイナリ分解アルゴリズムBD(つまり、x∈Zq nを入力とし、(u1, u2, …, uη)∈{0, 1}(ただし、x=Σk=1 η2k-1uk, uk∈{0, 1}nを満たす)を出力するアルゴリズム)、2冪アルゴリズムP2(つまり、[s1 … sk]∈Zq n×kを入力とし、[[1, 2, …, 2η-1]T*s1 … [1, 2, …, 2η-1]T*sk]∈Zq nη×k(ただし、*は標準的なテンソル積を表す)を出力するアルゴリズム)を用いる。
(Reference Non-Patent Document 9: Moni Naor and Omer Reingold, “Synthesizers and their application to the parallel construction of pseudo-random functions,” J. Comput. Syst. Sci., 58(2):336-375, 1999.)
<First embodiment>
Here, a cryptosystem 10 that performs updatable cryptography based on the lattice problem described in <Technical Background> will be described. The cryptographic system 10 has a security parameter λ, a ring Z q in which addition and multiplication modulo q (where q is an integer of 2 or more) is defined, a subspecies of Regev public key cryptography PKE=(Setup, Reg.KeyGen, Reg .Enc, Reg.Dec), η=ceiling(lg(q)), binary decomposition algorithm BD (that is, with x∈Z q n as input, (u 1 , u 2 , …, u η )∈{0, 1} (where x=Σ k=1 η 2 k-1 uk , uk ∈{0, 1} n is satisfied), 2-power algorithm P2 (that is, [s 1 … s k ]∈Z q n×k , and [[1, 2, …, 2 η-1 ] T *s 1 … [1, 2, …, 2 η-1 ] T *s k ]∈Z q algorithm that outputs nη×k (where * represents the standard tensor product).
 図1を参照して、暗号システム10について説明する。図1は、暗号システム10の構成の一例を示すブロック図である。暗号システム10は、公開パラメータ生成装置100、鍵生成装置200、暗号化装置300、復号装置400、トークン生成装置500、暗号文更新装置600を含む。公開パラメータ生成装置100、鍵生成装置200、暗号化装置300、復号装置400、トークン生成装置500、暗号文更新装置600は、インターネットなどのネットワーク800に接続し、相互に通信可能である。 The encryption system 10 will be described with reference to FIG. FIG. 1 is a block diagram showing an example of the configuration of a cryptographic system 10. As shown in FIG. The cryptographic system 10 includes a public parameter generator 100 , a key generator 200 , an encryptor 300 , a decryptor 400 , a token generator 500 and a ciphertext updater 600 . The public parameter generation device 100, key generation device 200, encryption device 300, decryption device 400, token generation device 500, and ciphertext update device 600 are connected to a network 800 such as the Internet and can communicate with each other.
 次に、図2~図13を参照して、公開パラメータ生成装置100、鍵生成装置200、暗号化装置300、復号装置400、トークン生成装置500、暗号文更新装置600の各装置について説明する。図2は、公開パラメータ生成装置100の構成の一例を示すブロック図である。公開パラメータ生成装置100は、公開パラメータ生成部110、送受信部180、記録部190を含む。送受信部180は、公開パラメータ生成装置100がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部190は、公開パラメータ生成装置100の処理に必要な情報を適宜記録する構成部である。記録部190は、例えば、セキュリティパラメータλを記録する。 Next, the public parameter generation device 100, the key generation device 200, the encryption device 300, the decryption device 400, the token generation device 500, and the ciphertext update device 600 will be described with reference to FIGS. FIG. 2 is a block diagram showing an example of the configuration of the public parameter generation device 100. As shown in FIG. Public parameter generation device 100 includes public parameter generation unit 110 , transmission/reception unit 180 , and recording unit 190 . The transmitting/receiving unit 180 is a component for appropriately transmitting/receiving information that the public parameter generation device 100 needs to exchange with other devices. The recording unit 190 is a component that appropriately records information necessary for the processing of the public parameter generation device 100 . The recording unit 190 records, for example, the security parameter λ.
 図3に従い公開パラメータ生成装置100の動作について説明する。公開パラメータ生成装置100は、Regev公開鍵暗号の亜種PKEを用いて、セキュリティパラメータλから、公開パラメータpp=(A, 1λ, 1n, 1m, 1k, q, χ, χns)(ただし、AはZq m×nの行列、χ, χnsはそれぞれZq上の分布)を生成する。以下、具体的に説明する。 The operation of the public parameter generation device 100 will be described with reference to FIG. The public parameter generation device 100 generates public parameters pp=(A, 1 λ , 1 n , 1 m , 1 k , q, χ, χ ns ) from security parameters λ using PKE, a variant of Regev public key cryptography. (where A is a Z q m×n matrix, and χ and χ ns are distributions on Z q ). A specific description will be given below.
 S110において、公開パラメータ生成部110は、pp=Setup(1λ)により、公開パラメータppを生成する。 In S110, the public parameter generation unit 110 generates the public parameter pp by pp=Setup(1 λ ).
 なお、公開パラメータ生成装置100は、公開パラメータppを記録部190に記録する。また、公開パラメータ生成装置100は、送受信部180を用いて、公開パラメータppを鍵生成装置200、暗号化装置300、復号装置400、トークン生成装置500に送信する。鍵生成装置200、暗号化装置300、復号装置400、トークン生成装置500は、受信した公開パラメータppをそれぞれ記録部290、記録部390、記録部490、記録部590に記録する。 The public parameter generation device 100 records the public parameter pp in the recording unit 190. Public parameter generation device 100 also uses transmission/reception unit 180 to transmit public parameter pp to key generation device 200 , encryption device 300 , decryption device 400 , and token generation device 500 . The key generation device 200, the encryption device 300, the decryption device 400, and the token generation device 500 record the received public parameter pp in the recording units 290, 390, 490, and 590, respectively.
 図4は、鍵生成装置200の構成の一例を示すブロック図である。鍵生成装置200は、鍵生成部210、送受信部280、記録部290を含む。送受信部280は、鍵生成装置200がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部290は、鍵生成装置200の処理に必要な情報を適宜記録する構成部である。 FIG. 4 is a block diagram showing an example of the configuration of the key generation device 200. As shown in FIG. The key generation device 200 includes a key generation section 210 , a transmission/reception section 280 and a recording section 290 . The transmission/reception unit 280 is a component for appropriately transmitting/receiving information that the key generation device 200 needs to exchange with other devices. The recording unit 290 is a component that appropriately records information necessary for processing of the key generation device 200 .
 図5に従い鍵生成装置200の動作について説明する。鍵生成装置200は、Regev公開鍵暗号の亜種PKEを用いて、公開パラメータppから、期間eの鍵keを生成する。以下、具体的に説明する。 The operation of the key generation device 200 will be described according to FIG. The key generation device 200 generates a key k e of period e from the public parameter pp using the Regev public key cryptography subspecies PKE. A specific description will be given below.
 S210において、鍵生成部210は、(Be, Se)=Reg.Gen(pp)を生成し、ke=(Se, Be)により、期間eの鍵keを生成する。つまり、鍵生成部210は、行列Se∈Zq n×k, X∈χm×kを選び、Be=ASe+X∈Zq m×kを生成し、ke=(Se, Be)により、期間eの鍵keを生成する。 In S210, the key generation unit 210 generates (B e , S e )=Reg.Gen(pp), and generates a key k e of period e by k e =(S e , B e ). That is, the key generation unit 210 selects the matrix S e ∈Z q n×k , X∈χ m×k , generates B e =AS e +X∈Z q m×k , k e =(S e , B e ) generates a key k e of period e.
 なお、鍵生成装置200は、期間eの鍵keを記録部290に記録する。また、鍵生成装置200は、送受信部280を用いて、期間eの鍵keを暗号化装置300、復号装置400、トークン生成装置500に送信する。暗号化装置300、復号装置400、トークン生成装置500は、受信した期間eの鍵keをそれぞれ記録部390、記録部490、記録部590に記録する。 Note that the key generation device 200 records the key k e for the period e in the recording unit 290 . The key generation device 200 also uses the transmission/reception unit 280 to transmit the key k e for the period e to the encryption device 300 , the decryption device 400 , and the token generation device 500 . The encryption device 300, the decryption device 400, and the token generation device 500 record the received key k e for the period e in the recording units 390, 490, and 590, respectively.
 図6は、暗号化装置300の構成の一例を示すブロック図である。暗号化装置300は、暗号文生成部310、送受信部380、記録部390を含む。送受信部380は、暗号化装置300がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部390は、暗号化装置300の処理に必要な情報を適宜記録する構成部である。 FIG. 6 is a block diagram showing an example of the configuration of the encryption device 300. As shown in FIG. The encryption device 300 includes a ciphertext generator 310 , a transmitter/receiver 380 and a recorder 390 . The transmitting/receiving unit 380 is a component for appropriately transmitting/receiving information that the encryption device 300 needs to exchange with other devices. The recording unit 390 is a component that appropriately records information necessary for the processing of the encryption device 300 .
 図7に従い暗号化装置300の動作について説明する。暗号化装置300は、Regev公開鍵暗号の亜種PKEと公開パラメータppと期間eの鍵keを用いて、平文μから、期間eにおける平文μの暗号文cteを生成する。以下、具体的に説明する。 The operation of the encryption device 300 will be described with reference to FIG. The encryption device 300 generates a ciphertext ct e of the plaintext μ in the period e from the plaintext μ using the Regev public key cryptographic subspecies PKE, the public parameter pp, and the key k e in the period e. A specific description will be given below.
 S310において、暗号文生成部330は、cte=Reg.Enc(Be, μ)により、期間eにおける平文μの暗号文cteを生成する。つまり、暗号文生成部330は、ベクトルr∈{-1, +1}m, e’ ∈χns kを選び、(u, c)=(rA, rB+e’+floor(q/2)μ)を生成し、cte=(u, c)により、期間eにおける平文μの暗号文cteを生成する。 In S310, the ciphertext generator 330 generates ciphertext ct e of plaintext μ in period e by ct e =Reg.Enc(B e , μ). That is, the ciphertext generation unit 330 selects the vector r∈{-1, +1} m , e′ ∈χ ns k , and (u, c)=(rA, rB+e′+floor(q/2) μ) and generate ciphertext ct e of plaintext μ in period e by ct e =(u, c).
 なお、暗号化装置300は、期間eにおける平文μの暗号文cteを記録部390に記録する。また、暗号化装置300は、送受信部380を用いて、期間eにおける平文μの暗号文cteを復号装置400、暗号文更新装置600に送信する。復号装置400、暗号文更新装置600は、受信した期間eにおける平文μの暗号文cteをそれぞれ記録部490、記録部690に記録する。 The encryption device 300 records the ciphertext ct e of the plaintext μ in the period e in the recording unit 390 . The encryption device 300 also uses the transmission/reception unit 380 to transmit the ciphertext ct e of the plaintext μ in the period e to the decryption device 400 and the ciphertext updating device 600 . The decryption device 400 and the ciphertext updating device 600 record the received ciphertext ct e of the plaintext μ in the period e in the recording unit 490 and the recording unit 690, respectively.
 図8は、復号装置400の構成の一例を示すブロック図である。復号装置400は、平文生成部410、送受信部480、記録部490を含む。送受信部480は、復号装置400がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部490は、復号装置400の処理に必要な情報を適宜記録する構成部である。 FIG. 8 is a block diagram showing an example of the configuration of the decoding device 400. As shown in FIG. The decryption device 400 includes a plaintext generation unit 410 , a transmission/reception unit 480 and a recording unit 490 . The transmitting/receiving unit 480 is a component for appropriately transmitting/receiving information that the decoding device 400 needs to exchange with other devices. The recording unit 490 is a component that appropriately records information necessary for processing of the decoding device 400 .
 図9に従い復号装置400の動作について説明する。復号装置400は、Regev公開鍵暗号の亜種PKEと公開パラメータppと期間eの鍵keを用いて、期間eにおける平文μの暗号文cteから、平文μ’を生成する。以下、具体的に説明する。 The operation of the decoding device 400 will be described with reference to FIG. Decryption device 400 generates plaintext μ′ from ciphertext ct e of plaintext μ in period e using a subspecies PKE of Regev public key encryption, public parameter pp, and key k e in period e. A specific description will be given below.
 S410において、平文生成部410は、μ’=Reg.Dec(Se, cte)により、平文μ’を生成する。つまり、平文生成部410は、d=c-uSeを生成し、μ’=q-ceiling((2/q)d) mod 2により、平文μ’を生成する。 In S410, the plaintext generation unit 410 generates plaintext μ' by μ'=Reg.Dec(S e , ct e ). That is, the plaintext generation unit 410 generates d=c-uS e and generates plaintext μ' by μ'=q-ceiling((2/q)d) mod 2.
 なお、復号装置400は、平文μ’を記録部490に記録する。 Note that the decryption device 400 records the plaintext μ' in the recording unit 490 .
 図10は、トークン生成装置500の構成の一例を示すブロック図である。トークン生成装置500は、第1行列生成部510、第2行列生成部520、トークン生成部530、送受信部580、記録部590を含む。送受信部580は、トークン生成装置500がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部590は、トークン生成装置500の処理に必要な情報を適宜記録する構成部である。 FIG. 10 is a block diagram showing an example of the configuration of the token generation device 500. As shown in FIG. Token generator 500 includes first matrix generator 510 , second matrix generator 520 , token generator 530 , transmitter/receiver 580 , and recorder 590 . The transmission/reception unit 580 is a component for appropriately transmitting/receiving information that the token generation device 500 needs to exchange with other devices. The recording unit 590 is a component that appropriately records information necessary for the processing of the token generation device 500 .
 図11に従いトークン生成装置500の動作について説明する。トークン生成装置500は、2冪アルゴリズムP2と公開パラメータppを用いて、期間eの鍵keと期間e+1の鍵ke+1から、期間e+1のトークンΔe+1を生成する。以下、具体的に説明する。 The operation of the token generating device 500 will be described according to FIG. The token generation device 500 generates a token Δ e+1 of period e+1 from key k e of period e and key k e +1 of period e +1 using 2 power algorithm P2 and public parameter pp. . A specific description will be given below.
 S510において、第1行列生成部510は、行列Re+1∈{-1, +1}nη×mを選び、Me+1=Re+1[A|Be+1]+[O|-P2(Se)]により、第1行列Me+1を生成する。ただし、ke+1=(Se+1, Be+1)である。 In S510, the first matrix generation unit 510 selects the matrix R e+1 ∈{-1, +1} nη×m , M e+1 =R e+1 [A|B e+1 ]+[O |-P2(S e )] generates the first matrix M e+1 . However, k e+1 =(S e+1 , B e+1 ).
 S520において、第2行列生成部520は、行列Re+1’∈{-1, +1}m×mを選び、Ne+1= Re+1’[A|Be+1]により、第2行列Ne+1を生成する。 In S520, the second matrix generator 520 selects the matrix R e+1 '∈{-1, +1} m×m , and by N e+1 =R e+1 '[A|B e+1 ] , to generate a second matrix N e+1 .
 S530において、トークン生成部530は、Δe+1=(Me+1, Ne+1)により、期間e+1のトークンΔe+1を生成する。 In S530, the token generation unit 530 generates a token Δ e+1 for period e+1 by Δ e+1 =(M e+1 , N e+1 ) .
 なお、トークン生成装置500は、期間e+1のトークンΔe+1を記録部590に記録する。また、トークン生成装置500は、送受信部580を用いて、期間e+1のトークンΔe+1を暗号文更新装置600に送信する。暗号文更新装置600は、受信した期間e+1のトークンΔe+1を記録部690に記録する。 Note that the token generation device 500 records the token Δ e+1 for the period e+1 in the recording unit 590 . Token generation device 500 also uses transmission/reception unit 580 to transmit token Δ e+ 1 for period e+1 to ciphertext update device 600 . The ciphertext updating device 600 records the received token Δ e+1 for the period e+1 in the recording unit 690 .
 図12は、暗号文更新装置600の構成の一例を示すブロック図である。暗号文更新装置600は、第1ペア生成部610、第2ペア生成部620、暗号文生成部630、送受信部680、記録部690を含む。送受信部680は、暗号文更新装置600がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部690は、暗号文更新装置600の処理に必要な情報を適宜記録する構成部である。 FIG. 12 is a block diagram showing an example of the configuration of the ciphertext updating device 600. As shown in FIG. The ciphertext update device 600 includes a first pair generator 610 , a second pair generator 620 , a ciphertext generator 630 , a transmitter/receiver 680 and a recorder 690 . The transmitting/receiving unit 680 is a component for appropriately transmitting/receiving information that the ciphertext update device 600 needs to exchange with other devices. The recording unit 690 is a component that appropriately records information necessary for the processing of the ciphertext update device 600 .
 図13に従い暗号文更新装置600の動作について説明する。暗号文更新装置1600は、バイナリ分解アルゴリズムBDを用いて、期間e+1のトークンΔe+1、期間eの暗号文cteから、期間e+1の暗号文cte+1を生成する。以下、具体的に説明する。 The operation of the ciphertext update device 600 will be described with reference to FIG. The ciphertext updating device 1600 uses the binary decomposition algorithm BD to generate the ciphertext ct e+1 of the period e+1 from the token Δ e+1 of the period e+1 and the ciphertext ct e of the period e. A specific description will be given below.
 S610において、第1ペア生成部610は、cte=(u, c)とし、(u’, c’)=BD(u)Me+1により、第1ペア(u’, c’)を生成する。 In S610, the first pair generation unit 610 sets ct e =(u, c), and (u′, c′)=BD(u)M e+1 to generate the first pair (u′, c′) as Generate.
 S620において、第2ペア生成部620は、ベクトル~r∈{-1, +1}mを選び、(~u, ~v)=~rNe+1により、第2ペア(~u, ~v)を生成する。 In S620, the second pair generation unit 620 selects the vector ~r∈{-1, +1} m and generates the second pair (~ u , ~v ).
 S630において、暗号文生成部630は、cte+1=(u’+~u, c+c’+~v)により、期間e+1の暗号文cte+1を生成する。 In S630, the ciphertext generation unit 630 generates ciphertext ct e+1 of period e+1 by ct e+1 = (u'+~u, c+c'+~v).
 なお、暗号文更新装置600は、期間e+1の暗号文cte+1を記録部690に記録する。 The ciphertext update device 600 records the ciphertext ct e+1 of period e+1 in the recording unit 690 .
 本発明の実施形態によれば、漏洩する情報量を少なくすることが可能となる。 According to the embodiment of the present invention, it is possible to reduce the amount of leaked information.
<第2実施形態>
 ここでは、<技術的背景>で説明した識別不可能性難読化に基づく更新可能暗号を実行する暗号システム20について説明する。暗号システム20は、セキュリティパラメータλ、識別不可能性難読化器iO、穴あけ可能擬似ランダム関数PPRF=(PRF.Gen, PRF, Punc)(ただし、PRF.Gen: {0, 1}λ→{0, 1}λ, PRF: {0, 1}λ×{0, 1}n→{0, 1}m)、擬似乱数生成器PRG: {0, 1}τ→{0, 1}nを用いる。また、期間eの暗号文cte, ベクトルre+1∈{0, 1}τを入力とし、期間eの鍵ke、期間e+1の鍵ke+1を用いて、期間e+1の暗号文cte+1を計算し出力する回路をCre io[ke, ke+1]と表すこととする。
<Second embodiment>
A cryptosystem 20 that performs updatable cryptography based on the indistinguishability obfuscation described in the Technical Background is described here. The cryptosystem 20 uses a security parameter λ, an indiscernibility obfuscator iO, a puncturable pseudo-random function PPRF=(PRF.Gen, PRF, Punc) where PRF.Gen: {0, 1} λ → {0 , 1} λ , PRF: {0, 1} λ × {0, 1} n → {0, 1} m ), using pseudo-random number generator PRG: {0, 1} τ → {0, 1} n . Also, with the ciphertext ct e of period e and the vector r e+1 ∈{0, 1} τ as input, using the key k e of period e and the key k e+ 1 of period e+1, period e+ Let C re io [k e , k e+1 ] be a circuit that calculates and outputs the ciphertext ct e +1 of 1.
 図14を参照して、暗号システム20について説明する。図14は、暗号システム20の構成の一例を示すブロック図である。暗号システム20は、鍵生成装置1200、暗号化装置1300、復号装置1400、トークン生成装置1500、暗号文更新装置1600を含む。鍵生成装置1200、暗号化装置1300、復号装置1400、トークン生成装置1500、暗号文更新装置1600は、インターネットなどのネットワーク800に接続し、相互に通信可能である。 The encryption system 20 will be described with reference to FIG. FIG. 14 is a block diagram showing an example of the configuration of the encryption system 20. As shown in FIG. The cryptosystem 20 includes a key generation device 1200 , an encryption device 1300 , a decryption device 1400 , a token generation device 1500 and a ciphertext update device 1600 . The key generation device 1200, encryption device 1300, decryption device 1400, token generation device 1500, and ciphertext update device 1600 are connected to a network 800 such as the Internet and can communicate with each other.
 次に、図15~図24を参照して、鍵生成装置1200、暗号化装置1300、復号装置1400、トークン生成装置1500、暗号文更新装置1600の各装置について説明する。図15は、鍵生成装置1200の構成の一例を示すブロック図である。鍵生成装置1200は、鍵生成部1210、送受信部280、記録部290を含む。送受信部280は、鍵生成装置1200がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部290は、鍵生成装置1200の処理に必要な情報を適宜記録する構成部である。記録部290は、例えば、セキュリティパラメータλを記録する。 Next, the key generation device 1200, encryption device 1300, decryption device 1400, token generation device 1500, and ciphertext update device 1600 will be described with reference to FIGS. FIG. 15 is a block diagram showing an example of the configuration of the key generation device 1200. As shown in FIG. Key generation device 1200 includes key generation unit 1210 , transmission/reception unit 280 , and recording unit 290 . The transmission/reception unit 280 is a component for appropriately transmitting/receiving information that the key generation device 1200 needs to exchange with other devices. The recording unit 290 is a component that appropriately records information necessary for processing of the key generation device 1200 . The recording unit 290 records, for example, the security parameter λ.
 図16に従い鍵生成装置1200の動作について説明する。鍵生成装置1200は、穴あけ可能擬似ランダム関数PPRFを用いて、セキュリティパラメータλから、期間eの鍵keを生成する。以下、具体的に説明する。 The operation of the key generation device 1200 will be described according to FIG. The key generator 1200 uses the puncturable pseudo-random function PPRF to generate a key k e of duration e from the security parameter λ. A specific description will be given below.
 S1210において、鍵生成部1210は、ke=PRF.Gen(1λ)により、期間eの鍵keを生成する。 In S1210, the key generation unit 1210 generates a key k e of period e by k e =PRF.Gen(1 λ ).
 なお、鍵生成装置1200は、期間eの鍵keを記録部290に記録する。また、鍵生成装置1200は、送受信部280を用いて、期間eの鍵keを暗号化装置1300、復号装置1400、トークン生成装置1500に送信する。暗号化装置1300、復号装置1400、トークン生成装置1500は、受信した期間eの鍵keをそれぞれ記録部390、記録部490、記録部590に記録する。 Note that the key generation device 1200 records the key k e for the period e in the recording unit 290 . The key generation device 1200 also uses the transmission/reception unit 280 to transmit the key k e for the period e to the encryption device 1300 , the decryption device 1400 and the token generation device 1500 . The encryption device 1300, the decryption device 1400, and the token generation device 1500 record the received key k e for the period e in the recording units 390, 490, and 590, respectively.
 図17は、暗号化装置1300の構成の一例を示すブロック図である。暗号化装置1300は、第1成分生成部1310、第2成分生成部1320、暗号文生成部1330、送受信部380、記録部390を含む。送受信部380は、暗号化装置1300がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部390は、暗号化装置1300の処理に必要な情報を適宜記録する構成部である。 FIG. 17 is a block diagram showing an example of the configuration of the encryption device 1300. As shown in FIG. The encryption device 1300 includes a first component generator 1310 , a second component generator 1320 , a ciphertext generator 1330 , a transmitter/receiver 380 and a recorder 390 . The transmitting/receiving unit 380 is a component for appropriately transmitting/receiving information that the encryption device 1300 needs to exchange with other devices. The recording unit 390 is a component that appropriately records information necessary for the processing of the encryption device 1300 .
 図18に従い暗号化装置1300の動作について説明する。暗号化装置1300は、擬似乱数生成器PRGと穴あけ可能擬似ランダム関数PPRFと期間eの鍵keを用いて、平文μから、期間eにおける平文μの暗号文cteを生成する。以下、具体的に説明する。 The operation of the encryption device 1300 will be described with reference to FIG. The encryption device 1300 uses a pseudorandom number generator PRG, a puncturable pseudorandom function PPRF, and a key k e of period e to generate ciphertext ct e of plaintext μ in period e from plaintext μ. A specific description will be given below.
 S1310において、第1成分生成部1310は、ベクトルr∈{0, 1}τを選び、t=PRG(r)により、第1成分tを生成する。 In S1310, first component generator 1310 selects vector r∈{0, 1} τ and generates first component t by t=PRG(r).
 S1320において、第2成分生成部1320は、y=PRF(ke, t)により、第2成分yを生成する。 In S1320, the second component generator 1320 generates the second component y by y=PRF(k e , t).
 S1330において、暗号文生成部1330は、cte=(t, y<+>μ)により、期間eにおける平文μの暗号文cteを生成する。 In S1330, the ciphertext generator 1330 generates the ciphertext ct e of the plaintext μ in the period e by ct e =(t, y<+>μ).
 なお、暗号化装置1300は、期間eにおける平文μの暗号文cteを記録部390に記録する。また、暗号化装置1300は、送受信部380を用いて、期間eにおける平文μの暗号文cteを復号装置1400、暗号文更新装置1600に送信する。復号装置1400、暗号文更新装置1600は、受信した期間eにおける平文μの暗号文cteをそれぞれ記録部490、記録部690に記録する。 The encryption device 1300 records the ciphertext ct e of the plaintext μ in the period e in the recording unit 390 . The encryption device 1300 also uses the transmission/reception unit 380 to transmit the ciphertext ct e of the plaintext μ in the period e to the decryption device 1400 and the ciphertext updating device 1600 . The decryption device 1400 and the ciphertext updating device 1600 record the ciphertext ct e of the plaintext μ in the received period e in the recording unit 490 and the recording unit 690, respectively.
 図19は、復号装置1400の構成の一例を示すブロック図である。復号装置1400は、平文生成部1410、送受信部480、記録部490を含む。送受信部480は、復号装置1400がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部490は、復号装置1400の処理に必要な情報を適宜記録する構成部である。 FIG. 19 is a block diagram showing an example of the configuration of the decoding device 1400. As shown in FIG. Decryption device 1400 includes plaintext generation section 1410 , transmission/reception section 480 , and recording section 490 . The transmitting/receiving unit 480 is a component for appropriately transmitting/receiving information that the decoding device 1400 needs to exchange with other devices. The recording unit 490 is a component that appropriately records information necessary for processing of the decoding device 1400 .
 図20に従い復号装置1400の動作について説明する。復号装置1400は、穴あけ可能擬似ランダム関数PPRFと期間eの鍵keを用いて、期間eにおける平文μの暗号文cteから、平文μ’を生成する。以下、具体的に説明する。 The operation of decoding device 1400 will be described with reference to FIG. Decryption device 1400 generates plaintext μ′ from ciphertext ct e of plaintext μ in period e using a puncturable pseudo-random function PPRF and key k e in period e. A specific description will be given below.
 S1410において、平文生成部1410は、cte=(t, c)とし、μ’=c<+>PRF(ke, t)により、平文μ’を生成する。 In S1410, the plaintext generation unit 1410 sets ct e =(t, c) and generates plain text μ' by μ'=c<+>PRF(k e , t).
 なお、復号装置1400は、平文μ’を記録部490に記録する。 Note that the decryption device 1400 records the plaintext μ' in the recording unit 490 .
 図21は、トークン生成装置1500の構成の一例を示すブロック図である。トークン生成装置1500は、トークン生成部1510、送受信部580、記録部590を含む。送受信部580は、トークン生成装置1500がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部590は、トークン生成装置1500の処理に必要な情報を適宜記録する構成部である。 FIG. 21 is a block diagram showing an example of the configuration of the token generation device 1500. As shown in FIG. Token generator 1500 includes token generator 1510 , transmitter/receiver 580 , and recorder 590 . The transmitting/receiving unit 580 is a component for appropriately transmitting/receiving information that the token generation device 1500 needs to exchange with other devices. The recording unit 590 is a component that appropriately records information necessary for the processing of the token generation device 1500 .
 図22に従いトークン生成装置1500の動作について説明する。トークン生成装置1500は、難読化回路iOを用いて、回路Cre io[ke, ke+1]から、期間e+1のトークンΔe+1を生成する。以下、具体的に説明する。 The operation of the token generation device 1500 will be described according to FIG. Token generator 1500 generates token Δ e+1 of period e+1 from circuit C re io [k e , k e+1 ] using obfuscation circuit iO. A specific description will be given below.
 S1510において、トークン生成部1510は、Δe+1=iO(Cre io[ke, ke+1])により、期間e+1のトークンΔe+1を生成する。 In S1510, the token generating unit 1510 generates a token Δe +1 for period e+1 by Δe+1 = iO ( Creio [k e , k e+1 ]).
 なお、トークン生成装置1500は、期間e+1のトークンΔe+1を記録部590に記録する。また、トークン生成装置1500は、送受信部580を用いて、期間e+1のトークンΔe+1を暗号文更新装置1600に送信する。暗号文更新装置1600は、受信した期間e+1のトークンΔe+1を記録部690に記録する。 Note that the token generation device 1500 records the token Δ e+1 for the period e+1 in the recording unit 590 . Token generation device 1500 also uses transmission/reception unit 580 to transmit token Δ e +1 for period e+1 to ciphertext update device 1600 . The ciphertext updating device 1600 records the received token Δ e+1 for the period e+1 in the recording unit 690 .
 図23は、暗号文更新装置1600の構成の一例を示すブロック図である。暗号文更新装置1600は、暗号文生成部1610、送受信部680、記録部690を含む。送受信部680は、暗号文更新装置1600がその他の装置と交換する必要がある情報を適宜送受信するための構成部である。記録部690は、暗号文更新装置1600の処理に必要な情報を適宜記録する構成部である。 FIG. 23 is a block diagram showing an example of the configuration of the ciphertext update device 1600. As shown in FIG. Ciphertext update device 1600 includes ciphertext generator 1610 , transmitter/receiver 680 , and recorder 690 . Transmitting/receiving unit 680 is a component for appropriately transmitting/receiving information that ciphertext update device 1600 needs to exchange with other devices. The recording unit 690 is a component that appropriately records information necessary for the processing of the ciphertext update device 1600 .
 図24に従い暗号文更新装置1600の動作について説明する。暗号文更新装置1600は、期間e+1のトークンΔe+1を用いて、期間eの暗号文cteから、期間e+1の暗号文cte+1を生成する。以下、具体的に説明する。 The operation of the ciphertext update device 1600 will be described with reference to FIG. The ciphertext updating device 1600 generates ciphertext ct e+1 of period e+1 from ciphertext ct e of period e using token Δ e+ 1 of period e+ 1 . A specific description will be given below.
 S1610において、暗号文生成部1610は、ベクトルre+1∈{0, 1}τを選び、cte+1e+1(cte, re+1)により、期間e+1の暗号文cte+1を生成する。 In S1610 , the ciphertext generation unit 1610 selects the vector r e + 1 ∈{0, 1 } τ , and generates Generate the ciphertext ct e+1 .
 なお、暗号文更新装置1600は、期間e+1の暗号文cte+1を記録部690に記録する。 The ciphertext update device 1600 records the ciphertext ct e+1 of period e+1 in the recording unit 690 .
 本発明の実施形態によれば、漏洩する情報量を少なくすることが可能となる。 According to the embodiment of the present invention, it is possible to reduce the amount of leaked information.
<補記>
 図25は、上述の各装置(つまり、各ノード)を実現するコンピュータの機能構成の一例を示す図である。上述の各装置における処理は、記録部2020に、コンピュータを上述の各装置として機能させるためのプログラムを読み込ませ、制御部2010、入力部2030、出力部2040などに動作させることで実施できる。
<Addendum>
FIG. 25 is a diagram showing an example of a functional configuration of a computer that implements each of the devices (that is, each node) described above. The processing in each device described above can be performed by causing the recording unit 2020 to read a program for causing the computer to function as each device described above, and causing the control unit 2010, the input unit 2030, the output unit 2040, and the like to operate.
 本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。 The apparatus of the present invention includes, for example, a single hardware entity, which includes an input unit to which a keyboard can be connected, an output unit to which a liquid crystal display can be connected, and a communication device (for example, a communication cable) capable of communicating with the outside of the hardware entity. can be connected to the communication unit, CPU (Central Processing Unit, may be equipped with cache memory, registers, etc.), memory RAM and ROM, hard disk external storage device, input unit, output unit, communication unit , a CPU, a RAM, a ROM, and a bus for connecting data to and from an external storage device. Also, if necessary, the hardware entity may be provided with a device (drive) capable of reading and writing a recording medium such as a CD-ROM. A physical entity with such hardware resources includes a general purpose computer.
 ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。 The external storage device of the hardware entity stores a program necessary for realizing the functions described above and data required for the processing of this program (not limited to the external storage device; It may be stored in a ROM, which is a dedicated storage device). Data obtained by processing these programs are appropriately stored in a RAM, an external storage device, or the like.
 ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成部)を実現する。 In the hardware entity, each program stored in an external storage device (or ROM, etc.) and the data necessary for processing each program are read into the memory as needed, and interpreted, executed and processed by the CPU as appropriate. . As a result, the CPU realizes a predetermined function (each structural unit represented by the above, . . . unit, . . . means, etc.).
 本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。 The present invention is not limited to the above-described embodiments, and modifications can be made as appropriate without departing from the scope of the present invention. Further, the processes described in the above embodiments are not only executed in chronological order according to the described order, but may also be executed in parallel or individually according to the processing capacity of the device that executes the processes or as necessary. .
 既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。 As described above, when the processing functions of the hardware entity (apparatus of the present invention) described in the above embodiments are implemented by a computer, the processing contents of the functions that the hardware entity should have are described by a program. By executing this program on a computer, the processing functions of the hardware entity are realized on the computer.
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。 A program that describes this process can be recorded on a computer-readable recording medium. Any computer-readable recording medium may be used, for example, a magnetic recording device, an optical disk, a magneto-optical recording medium, a semiconductor memory, or the like. Specifically, for example, as magnetic recording devices, hard disk devices, flexible disks, magnetic tapes, etc., as optical discs, DVD (Digital Versatile Disc), DVD-RAM (Random Access Memory), CD-ROM (Compact Disc Read Only Memory), CD-R (Recordable) / RW (ReWritable), etc. as magneto-optical recording media, such as MO (Magneto-Optical disc), etc. as semiconductor memory, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. can be used.
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 In addition, the distribution of this program is carried out, for example, by selling, assigning, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded. Further, the program may be distributed by storing the program in the storage device of the server computer and transferring the program from the server computer to other computers via the network.
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。 A computer that executes such a program, for example, first stores the program recorded on a portable recording medium or the program transferred from the server computer once in its own storage device. When executing the process, this computer reads the program stored in its own storage device and executes the process according to the read program. Also, as another execution form of this program, the computer may read the program directly from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to this computer. Each time, the processing according to the received program may be executed sequentially. In addition, the above-mentioned processing is executed by a so-called ASP (Application Service Provider) type service, which does not transfer the program from the server computer to this computer, and realizes the processing function only by its execution instruction and result acquisition. may be It should be noted that the program in this embodiment includes information that is used for processing by a computer and that conforms to the program (data that is not a direct instruction to the computer but has the property of prescribing the processing of the computer, etc.).
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 Also, in this embodiment, a hardware entity is configured by executing a predetermined program on a computer, but at least part of these processing contents may be implemented by hardware.
 上述の本発明の実施形態の記載は、例証と記載の目的で提示されたものである。網羅的であるという意思はなく、開示された厳密な形式に発明を限定する意思もない。変形やバリエーションは上述の教示から可能である。実施形態は、本発明の原理の最も良い例証を提供するために、そして、この分野の当業者が、熟考された実際の使用に適するように本発明を色々な実施形態で、また、色々な変形を付加して利用できるようにするために、選ばれて表現されたものである。すべてのそのような変形やバリエーションは、公正に合法的に公平に与えられる幅にしたがって解釈された添付の請求項によって定められた本発明のスコープ内である。 The foregoing description of the embodiments of the present invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Modifications and variations are possible in light of the above teachings. The embodiments are intended to provide the best illustration of the principles of the invention and to allow those skilled in the art to adapt the invention in various embodiments and in various ways to suit the practical use contemplated. It has been chosen and represented in order to make it available with additional transformations. All such modifications and variations are within the scope of the present invention as defined by the appended claims, construed in accordance with their breadth which is fairly and legally afforded.

Claims (7)

  1.  λをセキュリティパラメータ、Zqをq(qは2以上の整数)を法とする加法と乗法が定義された環、PKE=(Setup, Reg.KeyGen, Reg.Enc, Reg.Dec)をRegev公開鍵暗号の亜種、η=ceiling(lg(q))、BDをx∈Zq nを入力とし、(u1, u2, …, uη)∈{0, 1}(ただし、x=Σk=1 η2k-1uk, uk∈{0, 1}nを満たす)を出力するバイナリ分解アルゴリズム、P2を[s1 … sk]∈Zq n×kを入力とし、[[1, 2, …, 2η-1]T*s1 … [1, 2, …, 2η-1]T*sk]∈Zq nη×k(ただし、*は標準的なテンソル積を表す)を出力する2冪アルゴリズムとし、
     pp=(A, 1λ, 1n, 1m, 1k, q, χ, χns)(ただし、AはZq m×nの行列、χ, χnsはそれぞれZq上の分布)を公開パラメータとし、
     Regev公開鍵暗号の亜種PKEを用いて、公開パラメータppから、期間eの鍵keを生成する鍵生成装置と、
     Regev公開鍵暗号の亜種PKEと公開パラメータppと期間eの鍵keを用いて、平文μから、期間eにおける平文μの暗号文cteを生成する暗号化装置と、
     Regev公開鍵暗号の亜種PKEと公開パラメータppと期間eの鍵keを用いて、期間eにおける平文μの暗号文cteから、平文μ’を生成する復号装置と、
     2冪アルゴリズムP2と公開パラメータppを用いて、期間eの鍵keと期間e+1の鍵ke+1から、期間e+1のトークンΔe+1を生成するトークン生成装置と、
     バイナリ分解アルゴリズムBDを用いて、期間e+1のトークンΔe+1、期間eの暗号文cteから、期間e+1の暗号文cte+1を生成する暗号文更新装置と、
     を含む暗号システム。
    λ is a security parameter, Z q is a ring defining addition and multiplication modulo q (q is an integer greater than or equal to 2), and PKE=(Setup, Reg.KeyGen, Reg.Enc, Reg.Dec) is released to Regev. Key cipher variant, η=ceiling(lg(q)), BD with x∈Z q n as input, (u 1 , u 2 , …, u η )∈{0, 1} (where x =Σ k=1 η 2 k-1 uk , uk ∈{0, 1} n ), and let P2 be [s 1 … sk ]∈Z q n ×k , [[1, 2, …, 2 η-1 ] T *s 1 … [1, 2, …, 2 η-1 ] T *s k ]∈Z q nη×k , where * is the standard be a power-of-two algorithm that outputs the tensor product ),
    pp=(A, 1 λ , 1 n , 1 m , 1 k , q, χ, χ ns ) (where A is a Z q m×n matrix, and χ, χ ns are distributions on Z q ) as a public parameter,
    a key generation device for generating a key k e of duration e from a public parameter pp using the Regev public key cryptography variant PKE;
    an encryption device that generates ciphertext ct e of plaintext μ in period e from plaintext μ using a variant PKE of Regev public key cryptography, public parameter pp, and key k e of period e;
    a decryption device that generates plaintext μ′ from ciphertext ct e of plaintext μ in period e using a variant PKE of Regev public key cryptography, public parameter pp, and key k e in period e;
    a token generation device that generates a token Δ e+1 of period e+1 from key k e of period e and key k e +1 of period e+ 1 using 2 power algorithm P2 and public parameter pp;
    a ciphertext updating device that generates ciphertext ct e+1 of period e +1 from token Δ e+1 of period e+1 and ciphertext ct e of period e using binary decomposition algorithm BD;
    A cryptosystem that includes
  2.  請求項1に記載の暗号システムであって、
     前記鍵生成装置は、
     (Be, Se)=Reg.Gen(pp)を生成し、ke=(Se, Be)により、期間eの鍵keを生成する鍵生成部を含み、
     前記暗号化装置は、
     cte=Reg.Enc(Be, μ)により、期間eにおける平文μの暗号文cteを生成する暗号文生成部を含み、
     前記復号装置は、
     μ’=Reg.Dec(Se, cte)により、平文μ’を生成する平文生成部を含み、
     前記トークン生成装置は、
     ke+1=(Se+1, Be+1)とし、
     行列Re+1∈{-1, +1}nη×mを選び、Me+1=Re+1[A|Be+1]+[O|-P2(Se)]により、第1行列Me+1を生成する第1行列生成部と、
     行列Re+1’∈{-1, +1}m×mを選び、Ne+1= Re+1’[A|Be+1]により、第2行列Ne+1を生成する第2行列生成部と、
     Δe+1=(Me+1, Ne+1)により、期間e+1のトークンΔe+1を生成するトークン生成部を含み、
     前記暗号文更新装置は、
     cte=(u, c)とし、
     (u’, c’)=BD(u)Me+1により、第1ペア(u’, c’)を生成する第1ペア生成部と、
     ベクトル~r∈{-1, +1}mを選び、(~u, ~v)=~rNe+1により、第2ペア(~u, ~v)を生成する第2ペア生成部と、
     cte+1=(u’+~u, c+c’+~v)により、期間e+1の暗号文cte+1を生成する暗号文生成部を含む
     ことを特徴とする暗号システム。
    The cryptographic system of claim 1, wherein
    The key generation device
    a key generator generating (B e , S e )=Reg.Gen(pp) and generating a key k e of period e, with k e =(S e , B e );
    The encryption device
    including a ciphertext generator that generates ciphertext ct e of plaintext μ in period e by ct e =Reg.Enc(B e , μ);
    The decoding device is
    Includes a plaintext generation unit that generates plaintext μ' by μ'=Reg.Dec(S e , ct e ),
    The token generator,
    Let k e+1 =(S e+1 , B e+1 ) and
    Choose a matrix R e+1 ∈{-1, +1} nη×m and by M e+1 =R e+1 [A|B e+1 ]+[O|-P2(S e )] a first matrix generator that generates one matrix M e+1 ;
    Choose a matrix R e+1 '∈{-1, +1} m×m and generate a second matrix N e+1 by N e+1 =R e+1 '[A|B e+1 ] a second matrix generator;
    including a token generator that generates a token Δ e +1 of period e+1 by Δ e+1 =(M e+1 , N e +1 );
    The ciphertext update device,
    Let ct e =(u, c) and
    a first pair generation unit that generates a first pair (u', c') by (u', c')=BD(u)M e+1 ;
    a second pair generation unit that selects a vector ~r∈{-1, +1} m and generates a second pair (~u, ~v) according to (~u, ~v)=~rN e+1 ;
    A cryptographic system, comprising: a ciphertext generator that generates a ciphertext ct e+ 1 of period e+1 by ct e+1 =(u'+~u, c+c'+~v).
  3.  請求項1に記載の暗号システムに含まれる暗号文更新装置であって、
     cte=(u, c)とし、
     (u’, c’)=BD(u)Me+1により、第1ペア(u’, c’)を生成する第1ペア生成部と、
     ベクトル~r∈{-1, +1}mを選び、(~u, ~v)=~rNe+1により、第2ペア(~u, ~v)を生成する第2ペア生成部と、
     cte+1=(u’+~u, c+c’+~v)により、期間e+1の暗号文cte+1を生成する暗号文生成部
     を含む暗号文更新装置。
    A ciphertext update device included in the cryptographic system of claim 1,
    Let ct e =(u, c) and
    a first pair generation unit that generates a first pair (u', c') by (u', c')=BD(u)M e+1 ;
    a second pair generation unit that selects a vector ~r∈{-1, +1} m and generates a second pair (~u, ~v) according to (~u, ~v)=~rN e+1 ;
    A ciphertext updating device including a ciphertext generator for generating ciphertext ct e+1 of period e+1 by ct e+1 =(u'+~u, c+c'+~v).
  4.  λをセキュリティパラメータ、iOを識別不可能性難読化器、PPRF=(PRF.Gen, PRF, Punc)(ただし、PRF.Gen: {0, 1}λ→{0, 1}λ, PRF: {0, 1}λ×{0, 1}n→{0, 1}m)を穴あけ可能擬似ランダム関数、PRG: {0, 1}τ→{0, 1}nを擬似乱数生成器とし、
     Cre io[ke, ke+1]を期間eの暗号文cte, ベクトルre+1∈{0, 1}τを入力とし、期間eの鍵ke、期間e+1の鍵ke+1を用いて、期間e+1の暗号文cte+1を計算し出力する回路とし、
     穴あけ可能擬似ランダム関数PPRFを用いて、セキュリティパラメータλから、期間eの鍵keを生成する鍵生成装置と、
     擬似乱数生成器PRGと穴あけ可能擬似ランダム関数PPRFと期間eの鍵keを用いて、平文μから、期間eにおける平文μの暗号文cteを生成する暗号化装置と、
     穴あけ可能擬似ランダム関数PPRFと期間eの鍵keを用いて、期間eにおける平文μの暗号文cteから、平文μ’を生成する復号装置と、
     識別不可能性難読化回路iOを用いて、回路Cre io[ke, ke+1]から、期間e+1のトークンΔe+1を生成するトークン生成装置と、
     期間e+1のトークンΔe+1、期間eの暗号文cteから、期間e+1の暗号文cte+1を生成する暗号文更新装置と、
     を含む暗号システム。
    λ is a security parameter, iO is an unidentifiable obfuscator, PPRF = (PRF.Gen, PRF, Punc) (where PRF.Gen: {0, 1} λ → {0, 1} λ , PRF: { 0, 1} λ × {0, 1} n → {0, 1} m ) is a puncturable pseudo-random function, PRG: {0, 1} τ → {0, 1} n is a pseudo-random number generator,
    Let C re io [k e , k e+1 ] be ciphertext ct e of period e, vector r e+1 ∈{0, 1} τ of period e, key k e of period e, key of period e+1 A circuit that calculates and outputs ciphertext ct e +1 of period e+1 using k e+1 ,
    a key generation device for generating a key k e of duration e from a security parameter λ using a puncturable pseudo-random function PPRF;
    an encryption device that generates ciphertext ct e of plaintext μ in period e from plaintext μ using a pseudorandom number generator PRG, a puncturable pseudorandom function PPRF, and a key k e of period e;
    a decryption device that generates plaintext μ′ from ciphertext ct e of plaintext μ in period e using a puncturable pseudorandom function PPRF and key k e in period e;
    a token generator for generating a token Δ e +1 of duration e+1 from the circuit C re io [k e , k e+1 ] using an indistinguishability obfuscation circuit iO;
    a ciphertext updating device that generates ciphertext ct e+1 of period e +1 from token Δ e+1 of period e+1 and ciphertext ct e of period e;
    A cryptosystem that includes
  5.  請求項4に記載の暗号システムであって、
     前記鍵生成装置は、
     ke=PRF.Gen(1λ)により、期間eの鍵keを生成する鍵生成部を含み、
     前記暗号化装置は、
     ベクトルr∈{0, 1}τを選び、t=PRG(r)により、第1成分tを生成する第1成分生成部と、
     y=PRF(ke, t)により、第2成分yを生成する第2成分生成部と、
     cte=(t, y<+>μ)により、期間eにおける平文μの暗号文cteを生成する暗号文生成部を含み、
     前記復号装置は、
     cte=(t, c)とし、
     μ’=c<+>PRF(ke, t)により、平文μ’を生成する平文生成部を含み、
     前記トークン生成装置は、
     Δe+1=iO(Cre io[ke, ke+1])により、期間e+1のトークンΔe+1を生成するトークン生成部を含み、
     前記暗号文更新装置は、
     ベクトルre+1∈{0, 1}τを選び、cte+1e+1(cte, re+1)により、期間e+1の暗号文cte+1を生成する暗号文生成部を含む
     ことを特徴とする暗号システム。
    A cryptographic system according to claim 4, wherein
    The key generation device
    including a key generator that generates a key k e of period e by k e =PRF.Gen(1 λ );
    The encryption device
    a first component generation unit that selects a vector r∈{0, 1} τ and generates a first component t by t=PRG(r);
    a second component generator that generates a second component y by y=PRF(k e , t);
    including a ciphertext generator that generates ciphertext ct e of plaintext μ in period e by ct e =(t, y< + >μ);
    The decoding device is
    Let ct e =(t, c) and
    including a plaintext generator that generates plaintext μ' by μ'=c<+>PRF(k e , t),
    The token generator,
    a token generator generating a token Δ e+1 of period e+1 according to Δ e+ 1 =iO(C re io [k e , k e+1 ]);
    The ciphertext update device,
    A cipher that chooses a vector r e+1 ∈{0, 1} τ and generates a ciphertext ct e+1 of period e+1 by ct e+1e+1 (ct e , r e+1 ) A cryptographic system comprising a sentence generator.
  6.  請求項4に記載の暗号システムに含まれる暗号文更新装置であって、
     ベクトルre+1∈{0, 1}τを選び、cte+1e+1(cte, re+1)により、期間e+1の暗号文cte+1を生成する暗号文生成部
     を含む暗号文更新装置。
    A ciphertext update device included in the cryptosystem according to claim 4,
    A cipher that chooses a vector r e+1 ∈{0, 1} τ and generates a ciphertext ct e+1 of period e+1 by ct e+1e+1 (ct e , r e+1 ) A ciphertext update device including a text generator.
  7.  請求項3または6に記載の暗号文更新装置としてコンピュータを機能させるためのプログラム。 A program for causing a computer to function as the ciphertext update device according to claim 3 or 6.
PCT/JP2021/020849 2021-06-01 2021-06-01 Cryptographic system, ciphertext updating device, and program WO2022254578A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/020849 WO2022254578A1 (en) 2021-06-01 2021-06-01 Cryptographic system, ciphertext updating device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/020849 WO2022254578A1 (en) 2021-06-01 2021-06-01 Cryptographic system, ciphertext updating device, and program

Publications (1)

Publication Number Publication Date
WO2022254578A1 true WO2022254578A1 (en) 2022-12-08

Family

ID=84322842

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/020849 WO2022254578A1 (en) 2021-06-01 2021-06-01 Cryptographic system, ciphertext updating device, and program

Country Status (1)

Country Link
WO (1) WO2022254578A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150399A (en) * 2011-01-21 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> Proxy re-encryption system, transfer information generation device, transferred information generation device, conversion key generation device, ciphertext conversion device, proxy re-encryption method, and program thereof
JP2015177506A (en) * 2014-03-18 2015-10-05 国立研究開発法人情報通信研究機構 Cipher data updating system and cipher data updating method
JP2019211735A (en) * 2018-06-08 2019-12-12 日本電信電話株式会社 Conversion key generation device, ciphertext converter, decryption device, ciphertext conversion system, conversion key generation method, ciphertext conversion method, decryption method, and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012150399A (en) * 2011-01-21 2012-08-09 Nippon Telegr & Teleph Corp <Ntt> Proxy re-encryption system, transfer information generation device, transferred information generation device, conversion key generation device, ciphertext conversion device, proxy re-encryption method, and program thereof
JP2015177506A (en) * 2014-03-18 2015-10-05 国立研究開発法人情報通信研究機構 Cipher data updating system and cipher data updating method
JP2019211735A (en) * 2018-06-08 2019-12-12 日本電信電話株式会社 Conversion key generation device, ciphertext converter, decryption device, ciphertext conversion system, conversion key generation method, ciphertext conversion method, decryption method, and program

Similar Documents

Publication Publication Date Title
US10361841B2 (en) Proxy computing system, computing apparatus, capability providing apparatus, proxy computing method, capability providing method, program, and recording medium
JP6363032B2 (en) Key change direction control system and key change direction control method
JP5338668B2 (en) Secret information distribution system, method and program, and transmission system
US20130051552A1 (en) Device and method for obtaining a cryptographic key
US20060126836A1 (en) System and method for dynamic generation of encryption keys
CN110635909A (en) Attribute-based collusion attack resistant proxy re-encryption method
JP2013156675A (en) Ciphertext retrieval system, retrieval information generation device, retrieval execution device, retrieval request device, ciphertext retrieval method, retrieval information generation method, retrieval execution method, retrieval request method and program
Aloufi et al. Computing blindfolded on data homomorphically encrypted under multiple keys: An extended survey
JP7024666B2 (en) ID-based hash certification system configuration device, ID-based cryptographic device and program
Li et al. Efficient and adaptively secure attribute-based proxy reencryption scheme
JP2018036418A (en) Encryption system, encryption method, and encryption program
JP5730805B2 (en) Hierarchical inner product encryption system based on lattice problem, hierarchical inner product encryption method and apparatus based on lattice problem
WO2022254578A1 (en) Cryptographic system, ciphertext updating device, and program
JP6840685B2 (en) Data sharing method, data sharing system, communication terminal, data sharing server, program
WO2019235102A1 (en) Conversion key generation device, ciphertextconversion device, decryption device, ciphertextconversion system, conversion key generation method, ciphertextconversion method, decryption method, and program
JP5513444B2 (en) Vector configuration system, method, apparatus, program, and encryption system
JP4685621B2 (en) Key generation apparatus, encryption apparatus, decryption apparatus, multiplicative knapsack cryptosystem, multiplicative knapsack cipher decryption method and program
JP2011040932A (en) Authenticated encryption device, authenticated encryption method, verified decryption device, verified decryption method, encryption system, program, recording medium
JP2019200382A (en) Encryption system, encryption device, decryption device, encryption method, decryption method, and program
KR20100003093A (en) Method of producing searchable keyword encryption based on public key for minimizing data size of searchable keyword encryption and method of searching data based on public key through that
JP5038866B2 (en) Encryption communication method, encryption device, decryption device, and program thereof
JP6189788B2 (en) Key generation device, re-encryption device, and program
JP6759168B2 (en) Obfuscation circuit generator, obfuscation circuit calculator, obfuscation circuit generation method, obfuscation circuit calculation method, program
WO2022219785A1 (en) Cryptographic system, encryption device, decryption device, method, and program
WO2023238230A1 (en) Encryption system

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21944084

Country of ref document: EP

Kind code of ref document: A1