WO2023218559A1 - Pseudorandom function generation device, watermark extraction device, and program - Google Patents

Pseudorandom function generation device, watermark extraction device, and program Download PDF

Info

Publication number
WO2023218559A1
WO2023218559A1 PCT/JP2022/019937 JP2022019937W WO2023218559A1 WO 2023218559 A1 WO2023218559 A1 WO 2023218559A1 JP 2022019937 W JP2022019937 W JP 2022019937W WO 2023218559 A1 WO2023218559 A1 WO 2023218559A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
outputs
key
function
takes
Prior art date
Application number
PCT/JP2022/019937
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/JP2022/019937 priority Critical patent/WO2023218559A1/en
Publication of WO2023218559A1 publication Critical patent/WO2023218559A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • 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 a technology of pseudo-random number functions embedded with digital watermarks, and particularly relates to a technology that is resistant to attacks using quantum computing devices.
  • watermarks Pseudo-random number generation functions with embedded digital watermarks (hereinafter sometimes simply referred to as “watermarks”) have been proposed (for example, see Non-Patent Documents 1 to 5).
  • a conventional pseudo-random number generation function with an embedded watermark does not have any resistance to attacks such as providing a quantum computing device that imitates the operation of the pseudo-random number generation function but has the watermark removed.
  • the present invention has been made in view of these points, and provides a quantum computing device that imitates the operation of a pseudo-random number generation function with an embedded watermark, but has the watermark removed.
  • the purpose is to provide the technology that we have.
  • the pseudo-random number function generation device generates a pseudo-random number generation function C ⁇ in which a watermark m ⁇ 0,1 ⁇ Lm is embedded in a pseudo-random number generation function that outputs an output value y ⁇ Ran in response to an input value x ⁇ Dom.
  • Dom is the input space
  • Ran is the output space
  • Lm is a positive integer
  • x 2 represents the connection of x 1 and x 2 .
  • the setup unit outputs the public parameter pp and the watermark extraction key xk.
  • the key generation unit takes the public parameter pp as input and outputs the PRF key prfk and the public tag ⁇ .
  • the watermark embedding unit takes the public parameter pp, PRF key prfk, and watermark m as input, and generates a pseudorandom number generation function C ⁇ in which a message m
  • the watermark extraction device detects a quantum computing device that imitates the operation of such a pseudo-random number generation function C ⁇ , but whose watermark has been removed, as follows.
  • a ⁇ , ⁇ P,D (q) is an approximate projection device that takes a quantum state q as an input and outputs a measured value p of the quantum state q
  • P b,x,y U x,y +
  • U x,y , Q b,x,y IP b,x,y , b is a variable vector representing the quantum state to be measured, and
  • U x,y + represents the Hermitian transposed matrix of U x,y
  • I represents the identity matrix
  • [L] is a set of integers. 1,...,L, and for all i ⁇ [Lm+1], D ⁇ ,i is defined by D ⁇ ,i :( ⁇ ,x,y) ⁇ ELWMPRF.Sim(xk, ⁇ ,i)
  • ELWMPRF.Sim(xk, ⁇ ,i) is a simulation function that takes as input the watermark extraction key xk, public tag ⁇ , and i ⁇ [Lm] and outputs ( ⁇ ,x,y).
  • the first extraction unit determines whether the measured value p ⁇ Lm+1 satisfies p ⁇ Lm+1 ⁇ (1/2)+ ⁇ -4 ⁇ ', and determines whether or not the measured value p ⁇ Lm+ 1 ⁇ (1/2)+ ⁇ -4 ⁇ ', /2)+ ⁇ -4 ⁇ ' is determined to be satisfied, outputs information unmarked indicating that no watermark is embedded in the classical input/output quantum device C.
  • FIG. 1 is a block diagram illustrating the configuration of a security system according to an embodiment.
  • FIG. 2 is a block diagram illustrating the configuration of a pseudorandom number function generation device according to an embodiment.
  • FIG. 3 is a block diagram illustrating the configuration of a watermark extraction device according to an embodiment.
  • FIG. 4 is a flow diagram illustrating watermark extraction processing according to the embodiment.
  • FIG. 5 is a block diagram illustrating the hardware configuration of the pseudorandom number function generation device according to the embodiment.
  • x 1 ⁇ X 1 x 1 ⁇ X 1 represents uniformly and randomly selecting elements from the finite set X.
  • y 1 ⁇ A(x 1 ;r 1 ): y 1 ⁇ A(x 1 ;r 1 ) represents that device A outputs y 1 in response to input x 1 and random number r 1 .
  • Input x 1 and random number r 1 are real numbers. However, if there is no need to specify the random number used by A, y 1 ⁇ A(x 1 ; r 1 ) is simply expressed as y 1 ⁇ A(x 1 ).
  • x 2 x 1
  • [L]: [L] represents the set of integers 1,...,L. However, L is a positive integer.
  • a function is something that takes as input an element of a certain set or a set of elements of several sets, and outputs an element (function value) of a specific set according to the element.
  • a function can be referred to as a mapping, and may be realized by an arithmetic expression, a set of arithmetic expressions, a program, a classical operation, or a quantum operation.
  • taking ⁇ as an input means taking as an input some information specifying ⁇ .
  • outputting ⁇ means outputting some information that specifies ⁇ .
  • a quantum computing device that simulates the operation of a desired pseudorandom number generation function is assumed, and this is referred to as a classical input/output quantum device C.
  • Approximate projection device p ⁇ A ⁇ , ⁇ P,D (q) is a device that takes a quantum state q as an input and outputs a measured value p of this quantum state q.
  • Approximate projection device A ⁇ , ⁇ P, D is determined by real parameters ⁇ , ⁇ satisfying 0 ⁇ , ⁇ 1, projective measurement device P that performs projective measurement of the quantum state, and probability distribution D (for example, refer to (See 2nd prize).
  • the pseudorandom number generation function PRF is a function that takes x ⁇ 0,1 ⁇ ⁇ as an input and outputs y ⁇ 0,1 ⁇ ⁇ +L( ⁇ ) .
  • is a security parameter that is a positive integer
  • L( ⁇ ) is an integer that is a function value of ⁇ . If L( ⁇ ) is positive, the output y will be L( ⁇ ) bits more expanded than the input x; if L( ⁇ ) is negative, the output y will be L( ⁇ ) bits compressed than the input x. Therefore, when L( ⁇ ) is 0, the length of the output y and the input x are the same.
  • Drilling pseudorandom number generation function PRF PPRF is a function composed of the following three functions PRF.Gen(1 ⁇ ), PRF.Eval prfk (K,x), and PRF.Eval prfk ⁇ x ⁇ (S). Note that the input space to which x belongs is ⁇ 0,1 ⁇ L1 , the output space to which y belongs is ⁇ 0,1 ⁇ L2 , and L1 and L2 are positive integers.
  • y ⁇ PRF.Eval prfk (K,x):PRF.Eval prfk (K,x) takes the operation key (or the following drilling key K ⁇ S ⁇ ) K and x ⁇ 0,1 ⁇ L1 as inputs.
  • y ⁇ 0,1 ⁇ is an arithmetic function that outputs L2 .
  • K ⁇ S ⁇ ⁇ PRF.Eval prfk ⁇ x ⁇ (S): PRF.Eval prfk ⁇ x ⁇ (S) takes as input the calculation key K and the set S ⁇ 0,1 ⁇ L1 of input x, and calculates the set
  • This is a drilling key generation function that outputs a drilling key K ⁇ S ⁇ that can only be used for inputs that do not belong to S.
  • the secret key cryptosystem SKE is composed of the following three functions SKE.Gen(1 ⁇ ), SKE.Enc(k,m), and SKE.Dec(k,ct). Note that the plaintext space to which the plaintext belongs is ⁇ P ⁇ ⁇ ⁇ N , where N represents a set of all positive integers (natural numbers). k ⁇ SKE.Gen(1 ⁇ ): SKE.Gen(1 ⁇ ) is a secret key generation function that takes the security parameter ⁇ as an input and outputs the secret key k. k is a real number.
  • the limitable pseudorandom number generation function PRF CPRF consists of the following four functions CPRF.Setup(1 ⁇ ), CPRF.Constrain(m sk ,f), CPRF.Eval(msk,x), CPRF.CEval(sk f ,x ). Note that the input space to which x belongs is Dom, and the output space to which y belongs is Ran. msk ⁇ CPRF.Setup(1 ⁇ ): CPRF.Setup(1 ⁇ ) is a setup function that takes security parameter ⁇ as input and outputs master key msk.
  • CPRF.Constrain(msk,f) is a restricted key generation function that takes the master key msk and an arbitrary function f as input and outputs the restricted key sk f .
  • y ⁇ CPRF.Eval(msk,x): CPRF.Eval(msk,x) is an arithmetic function that takes the master key msk and x ⁇ Dom as input and outputs y ⁇ Ran.
  • CPRF.CEval(sk f ,x) is a restriction operation function that takes the restriction key sk f and x ⁇ Dom as inputs and outputs y ⁇ Ran.
  • Public key cryptography PKE The public key cryptosystem PKE is composed of the following three functions PKE.Gen(1 ⁇ ), PKE.Enc(pk,m), and PKE.Dec(sk,ct). Note that the plaintext space to which the plaintext belongs is ⁇ P ⁇ ⁇ ⁇ N . (pk,sk) ⁇ PKE.Gen(1 ⁇ ): PKE.Gen(1 ⁇ ) is a key generation function that takes a security parameter ⁇ as an input and outputs a public key pk and a private key sk.
  • Indiscernibility obfuscation function iO is a function that receives as input a circuit (function) ⁇ C ⁇ ⁇ ⁇ N defined under the security parameter ⁇ and outputs an obfuscated circuit (for example, refer to (See Reference 3, etc.).
  • Reference 3 Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil P. Vadhan, and Ke Yang, "On the (im)possibility of obfuscating programs," Journal of the ACM, 59(2): 6:1-6:48, 2012.
  • Punctureable encryption method PE is composed of the following four functions PE.Gen(1 ⁇ ), PE.Puncture(dk, ⁇ c* ⁇ ), PE.Enc(ek,m), PE.Dec(dk',c' ). Note that the plaintext space to which the plaintext belongs is ⁇ 0,1 ⁇ Lp , where Lp is a positive integer. (ek,dk) ⁇ PE.Gen(1 ⁇ ): PE.Gen(1 ⁇ ) is a key generation function that takes security parameter ⁇ as input and outputs encryption key ek and decryption key dk.
  • PE.Puncture(dk, ⁇ c* ⁇ ) takes the decryption key dk and the ciphertext c* as input, and extracts only the ciphertext other than the ciphertext c*. This is a drilling decryption key generation function that outputs a usable drilling decryption key dk ⁇ c* .
  • c ⁇ PE.Enc(ek,m): PE.Enc(ek,m) is an encryption function that takes encryption key ek and plaintext m ⁇ 0,1 ⁇ Lp as input and outputs ciphertext c. .
  • Reference 4 Aloni Cohen, Justin Holmgren, Ryo Nishimaki, Vinod Vaikuntanathan, and Daniel Wichs, "Watermarking cryptographic capabilities," SIAM Journal on Computing, 47(6): 2157-2202, 2018.
  • a pseudorandom number generation function that can embed a digital watermark and is resistant to such attacks can be defined as follows.
  • the pseudorandom number generation function WMPRF that can embed digital watermarks is composed of the following five functions: WMPRF.Setup(1 ⁇ ), WMPRF.Gen(pp), WMPRF.Eval(prfk,x), WMPRF.Mark(pp,prfk,m ), WMPRF.Extract(xk, ⁇ ,C', ⁇ ).
  • WMPRF.Setup(1 ⁇ ) WMPRF.Gen(pp), WMPRF.Eval(prfk,x), WMPRF.Mark(pp,prfk,m ), WMPRF.Extract(xk, ⁇ ,C', ⁇ ).
  • the watermark space to which the digital watermark belongs is ⁇ 0,1 ⁇ Lm , where Lm is a positive integer
  • the input space to which x belongs is Dom
  • the output space to which y belongs is Ran.
  • WMPRF.Setup(1 ⁇ ) is a setup function that takes the security parameter ⁇ as input and outputs the public parameter pp and the watermark extraction key xk.
  • (prfk, ⁇ ) ⁇ WMPRF.Gen(pp): WMPRF.Gen(pp) is a key generation function that takes public parameter pp as input and outputs PRF key prfk and public tag ⁇ .
  • y ⁇ WMPRF.Eval(prfk,x): WMPRF.Eval(prfk,x) is an arithmetic function that takes the PRF key prfk and x ⁇ Dom as input and outputs y ⁇ Ran.
  • the pseudorandom number generation function C ⁇ is a function that outputs an output value y ⁇ Ran for an input value x ⁇ Dom, and has a watermark m embedded therein. Note that the upper right subscript " ⁇ " of "C ⁇ " should originally be written directly above “C”, but due to writing restrictions, " ⁇ " is written at the upper right corner of "C". There is.
  • WMPRF.Extract(xk, ⁇ ,C, ⁇ ) uses the watermark extraction key xk, public tag ⁇ , extraction parameter ⁇ , and classical input/output quantum device C
  • the input/output of the pseudorandom number generation function C ⁇ and the classical values of the input/output of the classical input/output quantum device C are the same or indistinguishable.
  • the operation of the classical input/output quantum device C is indistinguishable from the operation of the pseudorandom number generation function C ⁇ .
  • the information representing the quantum state q of the quantum bit may be, for example, the quantum bit itself or some state in which the quantum state q appears.
  • the information representing the unitary transformation U may be, for example, information such as a matrix representing the unitary transformation U itself, or information for controlling the operation represented by the unitary transformation U.
  • the pseudo-random number generation function ELWMPRF that can embed an Extraction-Less digital watermark consists of five functions: ELWMPRF.Setup(1 ⁇ ), ELWMPRF.Gen(pp), ELWMPRF.Eval(prfk,x), ELWMPRF.Mark(pp,prfk ,m), and ELWMPRF.Sim(xk, ⁇ ,i). Note that the watermark space to which the watermark belongs is ⁇ 0,1 ⁇ Lm , the input space to which x belongs is Dom, and the output space to which y belongs is Ran.
  • ELWMPRF.Setup(1 ⁇ ), ELWMPRF.Gen(pp), ELWMPRF.Eval(prfk,x), and ELWMPRF.Mark(pp,prfk,m) are pseudo-random number generation functions WMPRF that can embed digital watermarks. Same as WMPRF.Setup(1 ⁇ ), WMPRF.Gen(pp), WMPRF.Eval(prfk,x), and WMPRF.Mark(pp,prfk,m), respectively.
  • ELWMPRF.Sim(xk, ⁇ ,i) is as follows.
  • ELWMPRF.Sim(xk, ⁇ ,i) is a simulation function that takes watermark extraction key xk, public tag ⁇ , and i ⁇ [Lm] as input and outputs ( ⁇ ,x,y).
  • is 1-bit information of 0 or 1.
  • ⁇ Pseudo-random number generation function WMPRF that can embed a digital watermark based on the pseudo-random number generation function ELWMPRF that can embed an Extraction-Less digital watermark>
  • a pseudorandom number generation function WMPRF that can embed the digital watermark of this embodiment is defined.
  • the pseudorandom number generation function WMPRF that can embed a digital watermark in this embodiment is composed of five functions WM.Setup(1 ⁇ ), WM.Gen(pp), WM.Eval(prfk,x), WM.Mark(pp, prfk,m) and WM.Extract(xk, ⁇ ,C, ⁇ ).
  • the watermark space of the pseudorandom number generation function WMPRF that can embed a digital watermark is ⁇ 0,1 ⁇ Lm
  • the message space including the watermark space is ⁇ 0,1 ⁇ Lm+1
  • the input space to which x belongs is Dom
  • the output space to which y belongs is Ran.
  • WM.Mark(pp,prfk,m) and WM.Extract(xk, ⁇ ,C, ⁇ ) are as follows. Note that in WM.Extract(xk, ⁇ ,C, ⁇ ), ELWMPRF.Sim(xk, ⁇ ,i), which is a pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark, is used.
  • the information representing U is taken as input, and the following measured value p ⁇ Lm+1 is obtained and output by measurement using the following equation (1).
  • U x,y and Q b, x,y IP b,x,y is a set of binary projection measurement devices.
  • b is a variable vector representing the quantum state of the measurement target,
  • U x,y represents a unitary transformation U that gives (x,y) as input to a quantum state representing a quantum program.
  • , U x,y , and U x,y + have the same size, and I is an identity matrix with the same size.
  • D ⁇ ,i is a probability distribution defined by D ⁇ ,i :( ⁇ ,x,y) ⁇ ELWMPRF.Sim(xk, ⁇ ,i). Note that as shown in formula (1), the upper right subscript " ⁇ " of "p ⁇ Lm+1 " should originally be written directly above "p”, but due to the constraints of writing notation, " ⁇ ” may be written in the upper right corner of “p”.
  • Step WM.Extract-2 Next, WM.Extract(xk, ⁇ ,C, ⁇ ) determines whether the measured value p ⁇ Lm+1 satisfies p ⁇ Lm+1 ⁇ (1/2)+ ⁇ -4 ⁇ '. If it is determined that p ⁇ Lm+1 ⁇ (1/2)+ ⁇ -4 ⁇ ' is satisfied, WM.Extract(xk, ⁇ ,C, ⁇ ) outputs unmarked information indicating that no watermark is embedded. do. Otherwise, set the quantum state of the qubit after the measurement of the classical input/output quantum device C to q 0 and proceed to the next step WM.Extract-3.
  • Step WM.Extract-31 WM.Extract(xk, ⁇ ,C, ⁇ ) is the information representing the watermark extraction key xk, the public tag ⁇ , the parameter ⁇ , and the quantum state q i-1 of the qubit and the unitary transformation U is taken as an input, and a measured value p ⁇ i is obtained and output by measurement using the following equation (2).
  • WM.Extract(xk, ⁇ ,C, ⁇ ) sets the quantum state of the quantum bit after measurement to q i .
  • WM.Extract(xk, ⁇ ,C, ⁇ ) returns m 1 ', ...,m Lm ' is output and step WM.Extract-3 ends.
  • This example uses a limitable pseudorandom number generation function PRF CPRF , a secret key cryptosystem SKE, and a public key cryptosystem PKE based on the difficulty of the LWE problem defined on a mathematical structure called a lattice. That is, the limitable pseudorandom number generation function PRF CPRF , the secret key cryptosystem SKE, and the public key cryptosystem PKE are based on, for example, lattice cryptography.
  • the limitable pseudorandom number generation function PRF CPRF consists of four functions CPRF.Setup(1 ⁇ ), CPRF.Constrain(m sk ,f), CPRF.Eval(msk,x), CPRF.CEval(sk f ,x).
  • CPRF.Eval(msk,x) with fixed master key msk (hardwired) is expressed as G(x): ⁇ 0,1 ⁇ n1 ⁇ 0,1 ⁇ m1
  • CPRF with fixed limit key sk f .CEval(sk f ,x) is expressed as G ⁇ (x): ⁇ 0,1 ⁇ n1 ⁇ 0,1 ⁇ m2 .
  • G ⁇ (x) can only be used for input x that does not belong to the set ⁇ .
  • the secret key cryptosystem SKE is composed of three functions SKE.Gen(1 ⁇ ), SKE.Enc(k,m), and SKE.Dec(k,ct).
  • the secret key cryptosystem SKE is, for example, a lattice cryptosystem.
  • the plaintext space to which the plaintext belongs is ⁇ 0,1 ⁇ Lske
  • the ciphertext space to which the ciphertext belongs is ⁇ 0,1 ⁇ n1 .
  • Lske ceil(Log 2 Lm)+1
  • ceil represents a ceiling function
  • ceil( ⁇ ) means the smallest natural number greater than or equal to ⁇
  • Lm and n1 are the above-mentioned positive integers.
  • the public key cryptosystem PKE is composed of three functions PKE.Gen(1 ⁇ ), PKE.Enc(pk,m), and PKE.Dec(sk,ct).
  • the public key cryptosystem PKE is, for example, a lattice cryptosystem. However, let the plaintext space to which the plaintext belongs be ⁇ 0,1 ⁇ 2 ⁇ .
  • the pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on the LWE problem is created using the following five functions ELWMPRF.Setup(1 ⁇ ), ELWMPRF.Gen(pp), ELWMPRF.Eval( prfk,x), ELWMPRF.Mark(pp,prfk,m), and ELWMPRF.Sim(xk, ⁇ ,i).
  • represents the size of a circuit (function) D[k,m,x], which will be described later. Note that the size of D[k,m,x] represents the number of gates configuring the logic circuit required to calculate D[k,m,x].
  • ELWMPRF.Gen(pp) obtains and outputs G(x) with the obtained msk fixed (hardwired) to y ⁇ CPRF.Eval(msk,x) (G(x) ⁇ CPRF.Setup(1 ⁇ , 1 ⁇ )).
  • Step ELWMPRF.Gen(pp) LWE -5 ELWMPRF.Gen(pp) uses G(x) and D auth [k,x] and constraint key sk f ⁇ CPRF.Constrain(G(x),D auth [k,x]).
  • ELWMPRF.Gen(pp) generates G ⁇ auth (x) where this restriction key sk f is fixed and is CPRF.CEval(sk f ,x).
  • G(x),D[k,m,x] Generate Constrain(G(x),D[k,m,x]).
  • ELWMPRF.Mark(pp,prfk,m) generates G ⁇ (x) where this restriction key sk f is fixed and is CPRF.CEval(sk f ,x).
  • ELWMPRF.Mark(pp,prfk,m) outputs this G ⁇ (x) as C ⁇ .
  • Step ELWMPRF.Sim(xk, ⁇ ,i) LWE -1: ELWMPRF.Sim(xk, ⁇ ,i) sets sk to xk (sk: xk). Step ELWMPRF.Sim(xk, ⁇ ,i) LWE -2: ELWMPRF.Sim(xk, ⁇ ,i) obtains (G ⁇ auth (x),k) ⁇ PKE.Dec(sk, ⁇ ) ( calculate).
  • D auth [k,x] and D[k,m,x] are shown.
  • ⁇ D auth [k,x]> D auth [k,x] is a circuit where k is fixed and performs the following processing.
  • D[k,m,x] is a circuit where k and m are fixed and performs the following processing.
  • a pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on indiscernibility obfuscation is illustrated.
  • the watermark space of this pseudo-random number generation function ELWMPRF is ⁇ 0,1 ⁇ Lm
  • the input space Dom is ⁇ 0,1 ⁇ Lin
  • the output space Ran is ⁇ 0,1 ⁇ Lout . Note that Lin and Lout are each positive integers.
  • the drilling pseudo-random number generation function PRF PPRF is composed of three functions PRF.Gen(1 ⁇ ), PRF.Eval prfk (K,x), and PRF.Eval prfk ⁇ x ⁇ (S).
  • the calculation function PRF.Eval prfk (K,x) is expressed as F(x): ⁇ 0,1 ⁇ Lin ⁇ 0,1 ⁇ Lout .
  • the punching key generation function PRF.Eval prfk ⁇ x ⁇ (S) is expressed as F ⁇ x ⁇ (S).
  • the punctureable encryption scheme PE consists of four functions PE.Gen(1 ⁇ ), PE.Puncture(dk, ⁇ c* ⁇ ), PE.Enc(ek,m), PE.Dec(dk',c').
  • the plaintext space and ciphertext space of the punctureable cryptosystem PE are respectively ⁇ 0,1 ⁇ Lpt and ⁇ 0,1 ⁇ Lct .
  • poly( ⁇ , log 2 Lm) represents the coefficients of a polynomial whose roots are elements of ( ⁇ , log 2 Lm).
  • the indiscernibility obfuscation function iO is a function that takes the circuit ⁇ C ⁇ ⁇ ⁇ N as input and outputs the obfuscated circuit.
  • the pseudorandom number generation function PRF is a function that takes x ⁇ 0,1 ⁇ ⁇ as an input and outputs y ⁇ 0,1 ⁇ ⁇ +L( ⁇ ) .
  • Lout ⁇ +L( ⁇ ) and PRF: ⁇ 0,1 ⁇ ⁇ ⁇ ⁇ 0,1 ⁇ Lout .
  • the pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on indiscernibility obfuscation is composed of the following five functions ELWMPRF.Setup(1 ⁇ ), ELWMPRF.Gen(pp), Consists of ELWMPRF.Eval(prfk,x), ELWMPRF.Mark(pp,prfk,m), and ELWMPRF.Sim(xk, ⁇ ,i).
  • Step ELWMPRF.Gen(pp) iO -2 ELWMPRF.Gen(pp) obtains the calculation key K ⁇ PRF.Gen(1 ⁇ ) and uses PRF.Eval prfk (K,x) with this calculation key K fixed. Calculate some F(x).
  • ELWMPRF.Sim(xk, ⁇ ,i) iO -4 ELWMPRF.Sim(xk, ⁇ ,i) calculates x ⁇ PE.Enc(pe.ek, s
  • ELWMPRF.Sim(xk, ⁇ ,i) iO -5 ELWMPRF.Sim(xk, ⁇ ,i) outputs ( ⁇ ,x,y).
  • D[F(x), pe.dk, m] is a circuit in which prfk, pe.dk, and m are fixed and performs the following processing.
  • the security system 1 of this embodiment includes a pseudorandom number function generation device 110, a watermark extraction device 120, and a pseudorandom number function utilization device 130, which are configured to be able to communicate through a network. There is.
  • the pseudorandom number function generation device 110 includes a setup section 111, a key generation section 112, a watermark embedding section 113, an output section 114, a memory 115, and a control section 116. and execute each process.
  • the information input to the pseudo-random number function generation device 110 and the information obtained from each section are stored one by one in the memory 115, and read and used as necessary.
  • the watermark extraction device 120 includes measurement units 121 and 123 (first measurement unit, second measurement unit), extraction units 122 and 124 (first measurement unit, second measurement unit), and memory 125. , and a control unit 126, and executes each process based on the control unit 126.
  • the pseudorandom number function generation device 110 generates a pseudorandom number generation function C ⁇ in which a watermark m ⁇ 0,1 ⁇ Lm is embedded in a pseudorandom number generation function that outputs an output value y ⁇ Ran in response to an input value x ⁇ Dom. generate. Dom is the input space, Ran is the output space, and Lm is a positive integer. As illustrated in FIG. 2, 1 ⁇ representing the security parameter ⁇ is input to the setup unit 111 of the pseudo-random number function generation device 110.
  • the setup unit 111 takes the security parameter ⁇ as an input, obtains the public parameter pp and the watermark extraction key xk by (pp, xk) ⁇ WM.Setup(1 ⁇ ), and outputs the obtained public parameter pp and the watermark extraction key xk. Note that the details of (pp,xk) ⁇ WM.Setup(1 ⁇ ) are disclosed in, for example, Non-Patent Documents 1 to 5 (step S111).
  • the key generation unit 112 takes the public parameter pp as input, obtains the PRF key prfk and the public tag ⁇ by (prfk, ⁇ ) ⁇ WM.Gen(pp), and outputs the obtained PRF key prfk and public tag ⁇ . Note that the details of (prfk, ⁇ ) ⁇ WM.Gen(pp) are disclosed in, for example, Non-Patent Documents 1 to 5 (step S112).
  • the watermark embedding unit 113 takes the public parameter pp, the PRF key prfk, and the watermark m ⁇ 0,1 ⁇ Lm as input, and embeds the watermark m and 0 using C ⁇ WM.Mark(pp,prfk,m
  • 0) is not disclosed, details of WM.Mark(pp,prfk,m) are disclosed in, for example, Non-Patent Documents 1 to 5. (Step S113).
  • the pseudorandom number generation function C ⁇ , the watermark extraction key xk, and the public tag ⁇ are sent to the output unit 114 and output from there.
  • the pseudorandom number generation function C ⁇ is sent to the pseudorandom number function utilization device 130 via the network, and is used for processing in the pseudorandom number function utilization device 130.
  • the watermark extraction key xk and the public tag ⁇ are sent to the watermark extraction device 120 via the network.
  • public parameters such as the security parameter ⁇ are made public via the network (step S114).
  • D ⁇ ,Lm+1 in equation (1) is the probability defined by D ⁇ ,Lm+1 :( ⁇ ,x,y) ⁇ ELWMPRF.Sim(xk, ⁇ ,Lm+1)
  • the distribution is represented (step S121).
  • the extraction unit 122 takes as input the measured value p ⁇ Lm+1 and the quantum state q of the quantum bit after the measurement of the classical input/output quantum device C, and the measured value p ⁇ Lm+1 is p ⁇ Lm+1 ⁇ (1 /2)+ ⁇ -4 ⁇ ' is determined (step S122a).
  • the extraction unit 122 determines that p ⁇ Lm+1 ⁇ (1/2)+ ⁇ -4 ⁇ ' is satisfied, the extraction unit 122 determines that no watermark is embedded in the classical input/output quantum device C.
  • the information representing "unmarked” is output (step S122b), and the process ends.
  • the details are omitted, it is mathematically provable that a watermark is not embedded in the classical input/output quantum device C when p ⁇ Lm+1 ⁇ (1/2)+ ⁇ -4 ⁇ ' is satisfied. be.
  • the measured value p ⁇ Lm+1 is the measurement of the classical input/output quantum device C.
  • the quantum state q of the next quantum bit is output as q 0 (step S122c).
  • the measurement unit 123 receives as input the watermark extraction key xk, the public tag ⁇ , the parameters ⁇ , ⁇ , the security parameter ⁇ , and the information representing the quantum state q i-1 of the quantum bit and the unitary transformation U, and calculates the equation (2). Obtain the measured value p ⁇ i by measuring .
  • D ⁇ ,i in equation (2) represents the probability distribution defined by D ⁇ ,i :( ⁇ ,x,y) ⁇ ELWMPRF.Sim(xk, ⁇ ,i) (step S123b ).
  • the measuring unit 123 sets the quantum state of the quantum bit of the classical input/output quantum device C after measurement to q i , and determines whether p ⁇ i >(1/2)+ ⁇ -4 ⁇ ' (step S123c ).
  • the measuring unit 123 determines that p ⁇ i >(1/2)+ ⁇ -4 ⁇ '
  • the measuring unit 123 determines whether p ⁇ i ⁇ (1/2)+ ⁇ -4 ⁇ '. is determined (step S123d).
  • the measurement unit 123 sets i+1 to a new i (i ⁇ i+1) (step S123h), and returns the process to step S123b.
  • the measurement unit 123 measures all i ⁇ [Lm].
  • m i ' is sent to the extraction unit 124.
  • this embodiment is the first digital watermark embeddable pseudorandom number function method that is resistant to attackers using quantum computing devices. Even if an attacker who attempts to remove a digital watermark embedded in a pseudorandom number generation function converts the pseudorandom number generation function into a quantum device, the digital watermark can be correctly extracted from the quantum device.
  • the second embodiment is a specific example of the first embodiment, and is an example using a pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on the LWE problem described above.
  • ELWMPRF pseudorandom number generation function
  • CPRF.CEval(sk f ,x) with G ⁇ auth (x), prfk ( G (x),k) and ⁇ PKE.Enc(pp,(G ),k)) and output it.
  • D ⁇ ,Lm+1 :( ⁇ ,x,y) ⁇ ELWMPRF.Sim(xk, ⁇ ,Lm+1) in equation (1) uses xk, ⁇ , and Lm+1 as inputs.
  • sk: xk, (G ⁇ auth (x),k) ⁇ PKE.Dec(sk, ⁇ ), ⁇ 0,1 ⁇ , x ⁇ SKE.Enc(k, Lm+1
  • the third embodiment is a specific example of the first embodiment, and is an example using a pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on indiscernibility obfuscation.
  • the input space Dom is ⁇ 0,1 ⁇ Lin
  • the output space Ran is ⁇ 0,1 ⁇ Lout . Note that Lin and Lout are each positive integers.
  • D ⁇ ,Lm+1 :( ⁇ ,x,y) ⁇ ELWMPRF.Sim(xk, ⁇ ,Lm+1) in equation (1) is (pe.ek, pe.dk) ⁇ PE
  • the pseudo-random number function generation device 110 in each embodiment includes, for example, a processor (hardware processor) such as a CPU (central processing unit), a memory such as a RAM (random-access memory), a ROM (read-only memory), etc. It is a device configured by a general-purpose or dedicated computer running a predetermined program. That is, the pseudorandom number function generation device 110 in each embodiment has, for example, a processing circuitry configured to implement each unit included therein.
  • This computer may include one processor and memory, or may include multiple processors and memories.
  • This program may be installed on the computer or may be pre-recorded in a ROM or the like.
  • processing units may be configured using an electronic circuit that independently realizes a processing function, rather than an electronic circuit that realizes a functional configuration by reading a program like a CPU.
  • an electronic circuit constituting one device may include a plurality of CPUs.
  • FIG. 5 is a block diagram illustrating the hardware configuration of the pseudorandom number function generation device 110 in each embodiment.
  • the pseudorandom number function generation device 110 in this example includes a CPU (Central Processing Unit) 10a, an input section 10b, an output section 10c, a RAM (Random Access Memory) 10d, and a ROM (Read Only Memory) 10e. , an auxiliary storage device 10f, a communication section 10h, and a bus 10g.
  • the CPU 10a in this example has a control section 10aa, a calculation section 10ab, and a register 10ac, and executes various calculation processes according to various programs read into the register 10ac.
  • the input unit 10b is an input terminal into which data is input, a keyboard, a mouse, a touch panel, etc.
  • the output unit 10c is an output terminal, a display, etc. to which data is output.
  • the communication unit 10h is a LAN card or the like that is controlled by the CPU 10a loaded with a predetermined program.
  • the RAM 10d is an SRAM (Static Random Access Memory), a DRAM (Dynamic Random Access Memory), etc., and has a program area 10da in which a predetermined program is stored and a data area 10db in which various data are stored.
  • the auxiliary storage device 10f is, for example, a hard disk, an MO (Magneto-Optical disc), a semiconductor memory, etc., and has a program area 10fa in which a predetermined program is stored and a data area 10fb in which various data are stored.
  • the bus 10g connects the CPU 10a, the input section 10b, the output section 10c, the RAM 10d, the ROM 10e, the communication section 10h, and the auxiliary storage device 10f so that information can be exchanged.
  • the CPU 10a writes the program stored in the program area 10fa of the auxiliary storage device 10f to the program area 10da of the RAM 10d according to the read OS (Operating System) program.
  • the CPU 10a writes various data stored in the data area 10fb of the auxiliary storage device 10f to the data area 10db of the RAM 10d. Then, the address on the RAM 10d where this program and data are written is stored in the register 10ac of the CPU 10a.
  • the control unit 10aa of the CPU 10a sequentially reads these addresses stored in the register 10ac, reads programs and data from the area on the RAM 10d indicated by the read addresses, and causes the calculation unit 10ab to sequentially execute the calculations indicated by the programs.
  • the calculation results are stored in the register 10ac.
  • the above program can be recorded on a computer readable recording medium.
  • a computer readable storage medium is a non-transitory storage medium. Examples of such recording media are magnetic recording devices, optical disks, magneto-optical recording media, semiconductor memories, and the like.
  • This program is distributed, for example, by selling, transferring, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded. Furthermore, this 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 another computer via a network.
  • a computer that executes such a program for example, first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing a process, this computer reads a program stored in its own storage device and executes a process according to the read program.
  • the computer may directly read the program from a portable recording medium and execute processing according to the program, and furthermore, the program may be transferred to this computer from the server computer.
  • the process may be executed in accordance with the received program each time.
  • the above-mentioned processing is executed by a so-called ASP (Application Service Provider) service, which does not transfer programs from the server computer to this computer, but only realizes processing functions by issuing execution instructions and obtaining results. You can also use it as Note that the program in this embodiment includes information that is used for processing by an electronic computer and that is similar to a program (data that is not a direct command to the computer but has a property that defines the processing of the computer, etc.).
  • the present apparatus is configured by executing a predetermined program on a computer, but at least a part of these processing contents may be implemented in hardware.
  • the watermark extraction device 120 in each embodiment may be configured with a quantum computing device, or a hybrid of a quantum computing device and a device configured by a general-purpose or dedicated classical computer running a predetermined program. It's okay.
  • the present invention can be used in the field of cryptography, secret sharing technology, secure calculation technology, etc. that use pseudo-random number functions.
  • Security system 110 Pseudo-random number function generation device 111 Setup section 112 Key generation section 113 Watermark embedding section 120 Watermark extraction device 121, 123 Measurement section 122, 124 Extraction section

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

This pseudorandom function generation device generates a pseudorandom function C~ in the manner below, in which a watermark m∈{0,1}Lm is embedded in a pseudorandom function that outputs an output value y∈Ran for the input of an input value x∈Dom. Here, Dom denotes an input space, Ran denotes an output space, Lm denotes a positive integer, and x1||x2 represents a connection between x1 and x2. (1) A setup unit outputs a public parameter pp and a watermark extraction key xk. (2) A key generation unit takes the public parameter pp for input and outputs a PRF key prfk and a public tag τ. (3) A watermark embedding unit takes the public key pp, the PRF key prfk and a watermark m for input and outputs a pseudorandom function C~ in which a message m||0 that is a bit connection of the watermark m and 0 is embedded.

Description

擬似乱数関数生成装置、透かし抽出装置、およびプログラムPseudo-random number function generator, watermark extraction device, and program
 本発明は、電子透かしを埋め込んだ擬似乱数関数の技術に関し、特に量子計算装置を使用した攻撃に対する耐性を持つ技術に関する。 The present invention relates to a technology of pseudo-random number functions embedded with digital watermarks, and particularly relates to a technology that is resistant to attacks using quantum computing devices.
 電子透かし(以下、単に「透かし」という場合もある)を埋め込んだ擬似乱数生成関数が提案されている(例えば、非特許文献1から5等参照)。 Pseudo-random number generation functions with embedded digital watermarks (hereinafter sometimes simply referred to as "watermarks") have been proposed (for example, see Non-Patent Documents 1 to 5).
 しかし、従来の透かしを埋め込んだ擬似乱数生成関数は、この擬似乱数生成関数の動作を模しているが当該透かしが除去されている量子計算装置を提供するといった攻撃に対する耐性を持たない。 However, a conventional pseudo-random number generation function with an embedded watermark does not have any resistance to attacks such as providing a quantum computing device that imitates the operation of the pseudo-random number generation function but has the watermark removed.
 本発明はこのような点に鑑みてなされたものであり、透かしを埋め込んだ擬似乱数生成関数の動作を模しているが当該透かしが除去されている量子計算装置を提供するといった攻撃に対する耐性を持つ技術を提供することを目的とする。 The present invention has been made in view of these points, and provides a quantum computing device that imitates the operation of a pseudo-random number generation function with an embedded watermark, but has the watermark removed. The purpose is to provide the technology that we have.
 擬似乱数関数生成装置は、入力値x∈Domの入力に対して出力値y∈Ranを出力する擬似乱数生成関数に透かしm∈{0,1}Lmを埋め込んだ擬似乱数生成関数C~を以下のように生成する。ここで、Domが入力空間であり、Ranが出力空間であり、Lmが正整数であり、x1||x2がx1とx2の連結を表す。
 (1)セットアップ部が、公開パラメータppおよび透かし抽出鍵xkを出力する。
 (2)鍵生成部が、公開パラメータppを入力に取り、PRF鍵prfkおよび公開タグτを出力する。
 (3)透かし埋め込み部が、公開パラメータpp、PRF鍵prfk、および透かしmを入力に取り、透かしmと0とのビット連結であるメッセージm||0が埋め込まれた擬似乱数生成関数C~を出力する。
The pseudo-random number function generation device generates a pseudo-random number generation function C~ in which a watermark m∈{0,1} Lm is embedded in a pseudo-random number generation function that outputs an output value y∈Ran in response to an input value x∈Dom. Generate like this. Here, Dom is the input space, Ran is the output space, Lm is a positive integer, and x 1 ||x 2 represents the connection of x 1 and x 2 .
(1) The setup unit outputs the public parameter pp and the watermark extraction key xk.
(2) The key generation unit takes the public parameter pp as input and outputs the PRF key prfk and the public tag τ.
(3) The watermark embedding unit takes the public parameter pp, PRF key prfk, and watermark m as input, and generates a pseudorandom number generation function C~ in which a message m||0, which is a bit concatenation of watermark m and 0, is embedded. Output.
 透かし抽出装置は、このような擬似乱数生成関数C~の動作を模しているが透かしが除去されている量子計算装置を以下のように検出する。
 ここで、擬似乱数生成関数C~の動作を模した古典入出力量子装置C=(q,U)が、量子状態qの量子ビット列と、量子状態qに対してユニタリ変換Uを施すユニタリ装置と、を含む量子計算装置であり、Aε,δ P,D(q)は、量子状態qを入力に取り、量子状態qの測定値pを出力する近似射影装置であり、近似射影装置Aε,δ P,D(q)は、0≦ε,δ<1を満たすパラメータε,δ、二値射影測定装置の集合P=(Pb,x,y,Qb,x,y)b,x,y、および測定値の確率分布Dによって定まり、ε’=ε/(Lm+1)であり、λがセキュリティパラメータであり、δ’=2であり、Pb,x,y=Ux,y +|b><b|Ux,yであり、Qb,x,y=I-Pb,x,yであり、bは測定対象の量子状態を表す変数ベクトルであり、|b>はbのケットベクトルを表し、<b|はbのブラベクトルを表し、|b><b|は射影演算子を表し、Ux,yは入力値xの入力に対して出力値yを出力する擬似乱数生成関数C~の動作を模したユニタリ変換Uを表し、Ux,y +はUx,yのエルミート転置行列を表し、Iは単位行列を表し、[L]は整数の集合1,…,Lを表し、すべてのi∈[Lm+1]について、Dτ,iはDτ,i:(γ,x,y)←ELWMPRF.Sim(xk,τ,i)によって定義される確率分布を表し、ELWMPRF.Sim(xk,τ,i)は、透かし抽出鍵xk、公開タグτ、およびi∈[Lm]を入力に取り、(γ,x,y)を出力するシミュレーション関数であり、γはxに対してyが出力される確率を表す実数である。
 (1)第1測定部が、透かし抽出鍵xk、公開タグτ、パラメータε,δ、ならびに、古典入出力量子装置C=(q,U)の量子ビットの量子状態qおよびユニタリ変換Uを表す情報を入力に取り、
Figure JPOXMLDOC01-appb-M000003

の測定によって測定値p~Lm+1を得て出力する。
 (2)第1抽出部が、測定値p~Lm+1がp~Lm+1<(1/2)+ε-4ε’を満たすか否かを判定し、p~Lm+1<(1/2)+ε-4ε’を満たすと判定した場合、古典入出力量子装置Cに透かしが埋め込まれていないことを表す情報unmarkedを出力する。
The watermark extraction device detects a quantum computing device that imitates the operation of such a pseudo-random number generation function C~, but whose watermark has been removed, as follows.
Here, the classical input/output quantum device C=(q,U), which imitates the operation of the pseudorandom number generation function C~, is a unitary device that performs a unitary transformation U on the quantum bit string of quantum state q and the quantum state q. , A ε,δ P,D (q) is an approximate projection device that takes a quantum state q as an input and outputs a measured value p of the quantum state q, and the approximate projection device A ε ,δ P,D (q) is the parameter ε, δ satisfying 0≦ε, δ<1, and the set of binary projection measurement devices P=(P b,x,y ,Q b,x,y ) b, x,y , and the probability distribution D of the measured values, ε'=ε/(Lm+1), λ is the security parameter, δ'=2 , and P b,x,y = U x,y + |b><b|U x,y , Q b,x,y =IP b,x,y , b is a variable vector representing the quantum state to be measured, and |b > represents the ket vector of b, <b| represents the bra vector of b, |b><b| represents the projection operator, and U x,y represents the output value y for the input value x. Represents a unitary transformation U that simulates the behavior of the output pseudorandom number generation function C~, U x,y + represents the Hermitian transposed matrix of U x,y , I represents the identity matrix, and [L] is a set of integers. 1,…,L, and for all i∈[Lm+1], D τ,i is defined by D τ,i :(γ,x,y)←ELWMPRF.Sim(xk,τ,i) ELWMPRF.Sim(xk,τ,i) is a simulation function that takes as input the watermark extraction key xk, public tag τ, and i∈[Lm] and outputs (γ,x,y). , and γ is a real number representing the probability that y is output for x.
(1) The first measurement unit represents the watermark extraction key xk, the public tag τ, the parameters ε, δ, and the quantum state q and unitary transformation U of the quantum bit of the classical input/output quantum device C=(q,U). Take the information as input,
Figure JPOXMLDOC01-appb-M000003

By measuring , a measured value p~ Lm+1 is obtained and output.
(2) The first extraction unit determines whether the measured value p~ Lm+1 satisfies p~ Lm+1 <(1/2)+ε-4ε', and determines whether or not the measured value p~ Lm+ 1 <(1/2)+ε-4ε', /2)+ε-4ε' is determined to be satisfied, outputs information unmarked indicating that no watermark is embedded in the classical input/output quantum device C.
 これにより、透かしを埋め込んだ擬似乱数生成関数の動作を模しているが当該透かしが除去されている量子計算装置を提供するといった攻撃に対する耐性を持たせることができる。 This makes it possible to provide resistance to attacks such as providing a quantum computing device that imitates the operation of a pseudo-random number generation function with an embedded watermark, but from which the watermark has been removed.
図1は、実施形態のセキュリティシステムの構成を例示したブロック図である。FIG. 1 is a block diagram illustrating the configuration of a security system according to an embodiment. 図2は、実施形態の擬似乱数関数生成装置の構成を例示したブロック図である。FIG. 2 is a block diagram illustrating the configuration of a pseudorandom number function generation device according to an embodiment. 図3は、実施形態の透かし抽出装置の構成を例示したブロック図である。FIG. 3 is a block diagram illustrating the configuration of a watermark extraction device according to an embodiment. 図4は、実施形態の透かし抽出処理を例示するためのフロー図である。FIG. 4 is a flow diagram illustrating watermark extraction processing according to the embodiment. 図5は、実施形態の擬似乱数関数生成装置のハードウェア構成を例示するためのブロック図である。FIG. 5 is a block diagram illustrating the hardware configuration of the pseudorandom number function generation device according to the embodiment.
 以下、図面を参照して本発明の実施の形態を説明する。
 [定義]
 まず、本明細書で用いる記法および用語を定義する。
 <記法>
 x1←X1:x1←X1は、有限集合Xから要素を一様ランダムに選ぶことを表す。
 y1←A(x1;r1):y1←A(x1;r1)は、装置Aが入力x1及び乱数r1に対し、y1を出力することを表す。入力x1及び乱数r1は実数である。ただし、Aが用いた乱数を明示する必要が無い場合は、y1←A(x1;r1)を単にy1←A(x1)と表す。
 x1||x2:x1||x2は、二つのビット列x1とx2の連結を表す。
 [L]:[L]は整数の集合1,…,Lを表す。ただし、Lは正整数である。
Embodiments of the present invention will be described below with reference to the drawings.
[Definition]
First, the notation and terms used in this specification will be defined.
<Notation>
x 1 ←X 1 : x 1 ←X 1 represents uniformly and randomly selecting elements from the finite set X.
y 1 ←A(x 1 ;r 1 ): y 1 ←A(x 1 ;r 1 ) represents that device A outputs y 1 in response to input x 1 and random number r 1 . Input x 1 and random number r 1 are real numbers. However, if there is no need to specify the random number used by A, y 1 ←A(x 1 ; r 1 ) is simply expressed as y 1 ←A(x 1 ).
x 1 ||x 2 : x 1 ||x 2 represents the concatenation of two bit strings x 1 and x 2 .
[L]: [L] represents the set of integers 1,…,L. However, L is a positive integer.
 <関数>
 関数とは、ある集合の元または幾つかの集合の元の組を入力に取り、当該元に応じた特定の集合の元(関数値)を出力するものを表す。関数は写像と言い換えることができ、演算式、演算式の集合、プログラム、古典演算、量子演算のいずれで実現されるものであってもよい。また、αを入力に取るとは、αを特定する何らか情報を入力に取ることを意味する。また、αを出力するとは、αを特定する何らか情報を出力することを意味する。
<Function>
A function is something that takes as input an element of a certain set or a set of elements of several sets, and outputs an element (function value) of a specific set according to the element. A function can be referred to as a mapping, and may be realized by an arithmetic expression, a set of arithmetic expressions, a program, a classical operation, or a quantum operation. Moreover, taking α as an input means taking as an input some information specifying α. Furthermore, outputting α means outputting some information that specifies α.
 <量子計算>
 古典入出力量子装置C:
 古典入出力量子装置C=(q,U)は、量子状態qの量子ビット列と、この量子状態qに対してユニタリ変換Uを施すユニタリ装置と、を含む装置である(例えば、参考文献1等参照)。以下では、所望の擬似乱数生成関数の動作を模した量子計算装置を想定し、これを古典入出力量子装置Cとしている。
 参考文献1:Scott Aaronson, Jiahui Liu, Qipeng Liu, Mark Zhandry, andRuizhe Zhang, "Newapproaches for quantum copy-protection," In Tal Malkin and Chris Peikert, editors, CRYPTO 2021, Part I, volume 12825 of LNCS, pages 526-555, Virtual Event, August 2021. Springer, Heidelberg.
<Quantum calculation>
Classical input/output quantum device C:
A classical input/output quantum device C=(q,U) is a device that includes a quantum bit string in a quantum state q and a unitary device that performs a unitary transformation U on this quantum state q (for example, reference document 1, etc. reference). In the following, a quantum computing device that simulates the operation of a desired pseudorandom number generation function is assumed, and this is referred to as a classical input/output quantum device C.
Reference 1: Scott Aaronson, Jiahui Liu, Qipeng Liu, Mark Zhandry, andRuizhe Zhang, "New approaches for quantum copy-protection," In Tal Malkin and Chris Peikert, editors, CRYPTO 2021, Part I, volume 12825 of LNCS, pages 526 -555, Virtual Event, August 2021. Springer, Heidelberg.
 近似射影装置p←Aε,δ P,D(q):
 近似射影装置Aε,δ P,D(q)は、量子状態qを入力に取り、この量子状態qの測定値pを出力する装置である。近似射影装置Aε,δ P,Dは、0≦ε,δ<1を満たす実数のパラメータε,δ、量子状態の射影測定を行う射影測定装置P、確率分布Dによって定まる(例えば、参考文献2等参照)。
 参考文献2:Mark Zhandry, "Schrodinger’s pirate: How to trace a quantum decoder," In Rafael Pass and Krzysztof Pietrzak, editors, TCC 2020, Part III, volume 12552 of LNCS, pages 61-91. Springer, Heidelberg, November 2020.
Approximate projection device p←A ε,δ P,D (q):
The approximate projection device A ε,δ P,D (q) is a device that takes a quantum state q as an input and outputs a measured value p of this quantum state q. Approximate projection device A ε, δ P, D is determined by real parameters ε, δ satisfying 0≦ε, δ<1, projective measurement device P that performs projective measurement of the quantum state, and probability distribution D (for example, refer to (See 2nd prize).
Reference 2: Mark Zhandry, "Schrodinger's pirate: How to trace a quantum decoder," In Rafael Pass and Krzysztof Pietrzak, editors, TCC 2020, Part III, volume 12552 of LNCS, pages 61-91. Springer, Heidelberg, November 2020 .
 <暗号学的計算>
 擬似乱数生成関数PRF:
 擬似乱数生成関数PRFは、x∈{0,1}λを入力にとり、y∈{0,1}λ+L(λ)を出力する関数である。なお、λは正整数であるセキュリティパラメータであり、L(λ)はλの関数値である整数である。L(λ)が正の場合、出力yは入力xよりもL(λ)ビット伸長したものとなり、L(λ)が負の場合、出力yは入力xよりもL(λ)ビット圧縮したものとなり、L(λ)が0の場合、出力yと入力xの長さは同一となる。
<Cryptographic calculation>
Pseudo-random number generation function PRF:
The pseudorandom number generation function PRF is a function that takes x∈{0,1} λ as an input and outputs y∈{0,1} λ+L(λ) . Note that λ is a security parameter that is a positive integer, and L(λ) is an integer that is a function value of λ. If L(λ) is positive, the output y will be L(λ) bits more expanded than the input x; if L(λ) is negative, the output y will be L(λ) bits compressed than the input x. Therefore, when L(λ) is 0, the length of the output y and the input x are the same.
 穴あけ擬似乱数生成関数PRFPPRF
 穴あけ擬似乱数生成関数PRFPPRFは、以下の3つの関数PRF.Gen(1λ),PRF.Evalprfk(K,x),PRF.Evalprfk¬x⊆(S)によって構成される関数である。なお、xが属する入力空間は{0,1}L1であり、yが属する出力空間は{0,1}L2であり、L1およびL2は正整数である。
 K←PRF.Gen(1λ):PRF.Gen(1λ)は、正整数であるセキュリティパラメータλを入力に取り、実数の演算鍵Kを出力する鍵生成関数である。
 y←PRF.Evalprfk(K,x):PRF.Evalprfk(K,x)は、演算鍵(または以下の穴あけ鍵K¬S⊆)Kとx∈{0,1}L1を入力に取り、y∈{0,1}L2を出力する演算関数である。
 K¬S⊆←PRF.Evalprfk¬x⊆(S):PRF.Evalprfk¬x⊆(S)は、演算鍵Kと入力xの集合S⊆{0,1}L1を入力に取り、集合Sに属さない入力についてのみ使用可能な穴あけ鍵K¬S⊆を出力する穴あけ鍵生成関数である。
Drilling pseudorandom number generation function PRF PPRF :
The drilling pseudo-random number generation function PRF PPRF is a function composed of the following three functions PRF.Gen(1 λ ), PRF.Eval prfk (K,x), and PRF.Eval prfk¬x⊆ (S). Note that the input space to which x belongs is {0,1} L1 , the output space to which y belongs is {0,1} L2 , and L1 and L2 are positive integers.
K←PRF.Gen(1 λ ): PRF.Gen(1 λ ) is a key generation function that takes as input the security parameter λ, which is a positive integer, and outputs a real number calculation key K.
y←PRF.Eval prfk (K,x):PRF.Eval prfk (K,x) takes the operation key (or the following drilling key K ¬S⊆ ) K and x∈{0,1} L1 as inputs. , y∈{0,1} is an arithmetic function that outputs L2 .
K ¬S⊆ ←PRF.Eval prfk¬x⊆ (S): PRF.Eval prfk¬x⊆ (S) takes as input the calculation key K and the set S⊆{0,1} L1 of input x, and calculates the set This is a drilling key generation function that outputs a drilling key K ¬S⊆ that can only be used for inputs that do not belong to S.
 秘密鍵暗号方式SKE:
 秘密鍵暗号方式SKEは、以下の3つの関数SKE.Gen(1λ),SKE.Enc(k,m),SKE.Dec(k,ct)によって構成される。なお、平文が属する平文空間は{Pλ}λ∈Nであり、Nは正整数(自然数)全体の集合を表す。
 k←SKE.Gen(1λ):SKE.Gen(1λ)は、セキュリティパラメータλを入力に取り、秘密鍵kを出力する秘密鍵生成関数である。kは実数である。
 ct←SKE.Enc(k,m):SKE.Enc(k,m)は、秘密鍵kおよび平文m∈{Pλ}λ∈Nを入力に取り、暗号文ctを出力する暗号化関数である。
 m’ or ⊥←SKE.Dec(k,ct):SKE.Dec(k,ct)は、秘密鍵kおよび暗号文ctを入力に取り、平文m’または復号できないことを表すエラー情報⊥を出力する復号関数である。秘密鍵kおよび暗号文ctが正しければm’=mとなる。
Secret key cryptography SKE:
The secret key cryptosystem SKE is composed of the following three functions SKE.Gen(1 λ ), SKE.Enc(k,m), and SKE.Dec(k,ct). Note that the plaintext space to which the plaintext belongs is {P λ } λ∈N , where N represents a set of all positive integers (natural numbers).
k←SKE.Gen(1 λ ): SKE.Gen(1 λ ) is a secret key generation function that takes the security parameter λ as an input and outputs the secret key k. k is a real number.
ct←SKE.Enc(k,m): SKE.Enc(k,m) is an encryption function that takes private key k and plaintext m∈{P λ } λ∈N as input and outputs ciphertext ct. be.
m' or ⊥←SKE.Dec(k,ct): SKE.Dec(k,ct) takes private key k and ciphertext ct as input, and outputs plaintext m' or error information ⊥ indicating that decryption is not possible. This is the decryption function. If the secret key k and ciphertext ct are correct, m'=m.
 制限可能擬似乱数生成関数PRFCPRF
 制限可能擬似乱数生成関数PRFCPRFは、以下の4つの関数CPRF.Setup(1λ),CPRF.Constrain(msk,f),CPRF.Eval(msk,x),CPRF.CEval(skf,x)によって構成される。なお、xが属する入力空間はDomであり、yが属する出力空間はRanである。
 msk←CPRF.Setup(1λ):CPRF.Setup(1λ)は、セキュリティパラメータλを入力に取り、マスター鍵mskを出力するセットアップ関数である。
 skf←CPRF.Constrain(msk,f):CPRF.Constrain(msk,f)は、マスター鍵mskおよび任意の関数fを入力に取り、制限鍵skfを出力する制限鍵生成関数である。
 y←CPRF.Eval(msk,x):CPRF.Eval(msk,x)は、マスター鍵msk及びx∈Domを入力に取り、y∈Ranを出力する演算関数である。
 y←CPRF.CEval(skf,x):CPRF.CEval(skf,x)は、制限鍵skf及びx∈Domを入力に取り、y∈Ranを出力する制限演算関数である。
Limitable pseudorandom number generation function PRF CPRF :
The limitable pseudorandom number generation function PRF CPRF consists of the following four functions CPRF.Setup(1 λ ), CPRF.Constrain(m sk ,f), CPRF.Eval(msk,x), CPRF.CEval(sk f ,x ). Note that the input space to which x belongs is Dom, and the output space to which y belongs is Ran.
msk←CPRF.Setup(1 λ ): CPRF.Setup(1 λ ) is a setup function that takes security parameter λ as input and outputs master key msk.
sk f ←CPRF.Constrain(msk,f): CPRF.Constrain(msk,f) is a restricted key generation function that takes the master key msk and an arbitrary function f as input and outputs the restricted key sk f .
y←CPRF.Eval(msk,x): CPRF.Eval(msk,x) is an arithmetic function that takes the master key msk and x∈Dom as input and outputs y∈Ran.
y←CPRF.CEval(sk f ,x): CPRF.CEval(sk f ,x) is a restriction operation function that takes the restriction key sk f and x∈Dom as inputs and outputs y∈Ran.
 公開鍵暗号方式PKE:
 公開鍵鍵暗号方式PKEは、以下の3つの関数PKE.Gen(1λ),PKE.Enc(pk,m),PKE.Dec(sk,ct)によって構成される。なお、平文が属する平文空間は{Pλ}λ∈Nである。
 (pk,sk)←PKE.Gen(1λ):PKE.Gen(1λ)は、セキュリティパラメータλを入力に取り、公開鍵pkおよび秘密鍵skを出力する鍵生成関数である。
 ct←PKE.Enc(pk,m):PKE.Enc(pk,m)は、公開鍵pk及び平文m∈{Pλ}λ∈Nを入力に取り、暗号文ctを出力する暗号化関数である。
 m’ or ⊥←PKE.Dec(sk,ct):PKE.Dec(sk,ct)は、秘密鍵sk及び暗号文ctを入力に取り、平文m’または復号できないことを表すエラー情報⊥を出力する復号関数である。秘密鍵sk及び暗号文ctが正しければm’=mとなる。
Public key cryptography PKE:
The public key cryptosystem PKE is composed of the following three functions PKE.Gen(1 λ ), PKE.Enc(pk,m), and PKE.Dec(sk,ct). Note that the plaintext space to which the plaintext belongs is {P λ } λ∈N .
(pk,sk)←PKE.Gen(1 λ ): PKE.Gen(1 λ ) is a key generation function that takes a security parameter λ as an input and outputs a public key pk and a private key sk.
ct←PKE.Enc(pk,m): PKE.Enc(pk,m) is an encryption function that takes public key pk and plaintext m∈{P λ } λ∈N as input and outputs ciphertext ct. be.
m' or ⊥←PKE.Dec(sk,ct): PKE.Dec(sk,ct) takes the private key sk and ciphertext ct as input, and outputs plaintext m' or error information ⊥ indicating that it cannot be decrypted. This is the decryption function. If the secret key sk and ciphertext ct are correct, m'=m.
 識別不可能性難読化関数iO:
 識別不可能性難読化関数iOは、セキュリティパラメータλの下で定義された回路(関数){Cλ}λ∈Nを入力として受け取り、難読化された回路を出力する関数である(例えば、参考文献3等参照)。
 参考文献3:Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil P. Vadhan, and Ke Yang, "On the (im)possibility of obfuscating programs," Journal of the ACM, 59(2):6:1-6:48, 2012. 
Indiscernibility obfuscation function iO:
The indiscernibility obfuscation function iO is a function that receives as input a circuit (function) {C λ } λ∈N defined under the security parameter λ and outputs an obfuscated circuit (for example, refer to (See Reference 3, etc.).
Reference 3: Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil P. Vadhan, and Ke Yang, "On the (im)possibility of obfuscating programs," Journal of the ACM, 59(2): 6:1-6:48, 2012.
 穴あけ可能暗号方式PE:
 穴あけ可能暗号方式PEは、以下の4つの関数PE.Gen(1λ), PE.Puncture(dk,{c*}),PE.Enc(ek,m),PE.Dec(dk’,c’)によって構成される。なお、平文が属する平文空間は{0,1}Lpであり、Lpは正整数である。
 (ek,dk)←PE.Gen(1λ):PE.Gen(1λ)はセキュリティパラメータλを入力に取り、暗号化鍵ek及び復号鍵dkを出力する鍵生成関数である。
 dk≠c*←PE.Puncture(dk,{c*}):PE.Puncture(dk,{c*})は、復号鍵dkおよび暗号文c*を入力に取り、暗号文c*以外にのみ使用可能な穴あけ復号鍵dk≠c*を出力する穴あけ復号鍵生成関数である。
 c←PE.Enc(ek,m):PE.Enc(ek,m)は、暗号化鍵ekおよび平文m∈{0,1}Lpを入力にとり、暗号文cを出力する暗号化関数である。
 m’ or ⊥←PE.Dec(dk’,c’):PE.Dec(dk’,c’)は、復号鍵(または穴あけ復号鍵)dk’および暗号文c’を入力に取り、平文m’または復号できないことを表すエラー情報⊥を出力する復号関数である。dk’=dkかつc’=cならばm’=mとなる(例えば、参考文献4等参照)。
 参考文献4:Aloni Cohen, Justin Holmgren, Ryo Nishimaki, Vinod Vaikuntanathan, and Daniel Wichs, "Watermarking cryptographic capabilities," SIAM Journal on Computing, 47(6): 2157-2202, 2018.
Punchable encryption method PE:
Punctureable encryption method PE is composed of the following four functions PE.Gen(1 λ ), PE.Puncture(dk,{c*}), PE.Enc(ek,m), PE.Dec(dk',c' ). Note that the plaintext space to which the plaintext belongs is {0,1} Lp , where Lp is a positive integer.
(ek,dk)←PE.Gen(1 λ ): PE.Gen(1 λ ) is a key generation function that takes security parameter λ as input and outputs encryption key ek and decryption key dk.
dk ≠c* ←PE.Puncture(dk,{c*}): PE.Puncture(dk,{c*}) takes the decryption key dk and the ciphertext c* as input, and extracts only the ciphertext other than the ciphertext c*. This is a drilling decryption key generation function that outputs a usable drilling decryption key dk ≠c* .
c←PE.Enc(ek,m): PE.Enc(ek,m) is an encryption function that takes encryption key ek and plaintext m∈{0,1} Lp as input and outputs ciphertext c. .
m' or ⊥←PE.Dec(dk',c'): PE.Dec(dk',c') takes the decryption key (or punching decryption key) dk' and ciphertext c' as input, and extracts the plaintext m ' or error information ⊥ indicating that decoding is not possible. If dk'=dk and c'=c, then m'=m (for example, see Reference 4).
Reference 4: Aloni Cohen, Justin Holmgren, Ryo Nishimaki, Vinod Vaikuntanathan, and Daniel Wichs, "Watermarking cryptographic capabilities," SIAM Journal on Computing, 47(6): 2157-2202, 2018.
 [原理]
 次に、本実施形態の原理を説明する。
 攻撃者が、量子計算装置を用い、透かしを埋め込み可能な擬似乱数生成関数に対する攻撃を行うことを想定する。この攻撃では、攻撃者は、攻撃対象の擬似乱数生成関数の動作を模した量子計算装置の偽造を試みる。偽造された量子計算装置の入出力の古典値は、攻撃対象の擬似乱数生成関数の入出力と同じまたは区別できないが、偽造された量子計算装置には透かしが埋め込まれていない。すなわち、攻撃者は、対象となる擬似乱数生成関数と同じまたは区別できない動作(擬似乱数生成関数を模した動作)を行うが、透かしが除去されている量子計算装置を提供する攻撃を試みる。本実施形態では、このように透かしを除去するような攻撃ができない擬似乱数生成関数を提供する。このような攻撃に対する耐性を持った電子透かしを埋め込み可能な擬似乱数生成関数は、以下のように定義できる。
[principle]
Next, the principle of this embodiment will be explained.
It is assumed that an attacker uses a quantum computing device to attack a pseudo-random number generation function in which a watermark can be embedded. In this attack, an attacker attempts to forge a quantum computing device that imitates the operation of the pseudorandom number generation function that is the target of the attack. The classical values of the input and output of the counterfeit quantum computing device are the same or indistinguishable from the input and output of the pseudorandom number generation function being attacked, but the counterfeit quantum computing device does not have a watermark embedded in it. That is, an attacker attempts an attack that provides a quantum computing device that performs the same or indistinguishable operation as the target pseudorandom number generation function (an operation that imitates the pseudorandom number generation function), but from which the watermark has been removed. The present embodiment provides a pseudorandom number generation function that cannot be subjected to attacks such as watermark removal. A pseudorandom number generation function that can embed a digital watermark and is resistant to such attacks can be defined as follows.
 <電子透かしを埋め込み可能な擬似乱数生成関数WMPRF>
 電子透かし埋め込み可能な擬似乱数生成関数WMPRFは、以下の5つの関数WMPRF.Setup(1λ),WMPRF.Gen(pp),WMPRF.Eval(prfk,x),WMPRF.Mark(pp,prfk,m),WMPRF.Extract(xk,τ,C’,ε)により構成される。なお、電子透かしが属する透かし空間は{0,1}Lmであり、Lmは正整数であり、xが属する入力空間はDomであり、yが属する出力空間はRanである。
 (pp,xk)←WMPRF.Setup(1λ):WMPRF.Setup(1λ)は、セキュリティパラメータλを入力に取り、公開パラメータppおよび透かし抽出鍵xkを出力するセットアップ関数である。
 (prfk,τ)←WMPRF.Gen(pp):WMPRF.Gen(pp)は、公開パラメータppを入力に取り、PRF鍵prfkおよび公開タグτを出力する鍵生成関数である。
 y←WMPRF.Eval(prfk,x):WMPRF.Eval(prfk,x)は、PRF鍵prfkおよびx∈Domを入力に取り、y∈Ranを出力する演算関数である。
 C~←WMPRF.Mark(pp,prfk,m):WMPRF.Mark(pp,prfk,m)は、公開パラメータpp、PRF鍵prfk、および透かしm∈{0,1}Lmを入力に取り、透かしmの埋め込まれた擬似乱数生成関数C~を出力する透かし埋め込み関数である。擬似乱数生成関数C~は、入力値x∈Domに対して出力値y∈Ranを出力する関数であり、透かしmが埋め込まれている。なお、「C~」の右上添え字の「~」は、本来「C」の真上に記載すべきであるが、記載表記の制約上、「~」を「C」の右上に記載する場合がある。
 m’←WMPRF.Extract(xk,τ,C,ε):WMPRF.Extract(xk,τ,C,ε)は、透かし抽出鍵xk、公開タグτ、抽出パラメータε、および古典入出力量子装置C=(q,U)を特定する情報を入力に取り、透かしm’∈{0,1}Lm∪{unmarked}を出力する透かし抽出関数である。なお、古典入出力量子装置C=(q,U)は、透かしmの埋め込まれた擬似乱数生成関数C~の動作を模した量子計算装置である。すなわち、擬似乱数生成関数C~の入出力と古典入出力量子装置Cの入出力の古典値は同一であるか、または、区別がつかない。言い換えると、古典入出力量子装置Cの動作は、擬似乱数生成関数C~の動作と区別がつかない。ただし、古典入出力量子装置Cに正しく透かしmが埋め込まれている場合もあれば、古典入出力量子装置Cに透かしmが埋め込まれていない場合もある。古典入出力量子装置Cに正しく透かしmが埋め込まれていた場合にはm’=mである。またunmarkedは、古典入出力量子装置Cに透かしが埋め込まれていないことを表す情報である。古典入出力量子装置C=(q,U)を特定する情報は、量子ビットの量子状態qおよびユニタリ変換Uを表す情報である。量子ビットの量子状態qを表す情報は、例えば、量子ビットそのものであってもよいし、量子状態qが表れた何らかの状態であってもよい。ユニタリ変換Uを表す情報は、例えば、ユニタリ変換Uそのものを表す行列等の情報であってもよいし、ユニタリ変換Uが表す操作を制御する情報であってもよい。
<Pseudo-random number generation function WMPRF that can embed digital watermarks>
The pseudorandom number generation function WMPRF that can embed digital watermarks is composed of the following five functions: WMPRF.Setup(1 λ ), WMPRF.Gen(pp), WMPRF.Eval(prfk,x), WMPRF.Mark(pp,prfk,m ), WMPRF.Extract(xk,τ,C',ε). Note that the watermark space to which the digital watermark belongs is {0,1} Lm , where Lm is a positive integer, the input space to which x belongs is Dom, and the output space to which y belongs is Ran.
(pp,xk)←WMPRF.Setup(1 λ ): WMPRF.Setup(1 λ ) is a setup function that takes the security parameter λ as input and outputs the public parameter pp and the watermark extraction key xk.
(prfk,τ)←WMPRF.Gen(pp): WMPRF.Gen(pp) is a key generation function that takes public parameter pp as input and outputs PRF key prfk and public tag τ.
y←WMPRF.Eval(prfk,x): WMPRF.Eval(prfk,x) is an arithmetic function that takes the PRF key prfk and x∈Dom as input and outputs y∈Ran.
C~←WMPRF.Mark(pp,prfk,m): WMPRF.Mark(pp,prfk,m) takes public parameter pp, PRF key prfk, and watermark m∈{0,1} Lm as input, and This is a watermark embedding function that outputs a pseudorandom number generation function C~ in which m is embedded. The pseudorandom number generation function C~ is a function that outputs an output value y∈Ran for an input value x∈Dom, and has a watermark m embedded therein. Note that the upper right subscript "~" of "C~" should originally be written directly above "C", but due to writing restrictions, "~" is written at the upper right corner of "C". There is.
m'←WMPRF.Extract(xk,τ,C,ε): WMPRF.Extract(xk,τ,C,ε) uses the watermark extraction key xk, public tag τ, extraction parameter ε, and classical input/output quantum device C This is a watermark extraction function that takes as input information specifying =(q,U) and outputs a watermark m'∈{0,1} Lm ∪{unmarked}. Note that the classical input/output quantum device C=(q,U) is a quantum computing device that imitates the operation of a pseudorandom number generation function C~ in which a watermark m is embedded. That is, the input/output of the pseudorandom number generation function C~ and the classical values of the input/output of the classical input/output quantum device C are the same or indistinguishable. In other words, the operation of the classical input/output quantum device C is indistinguishable from the operation of the pseudorandom number generation function C~. However, there are cases in which the watermark m is correctly embedded in the classical input/output quantum device C, and cases in which the watermark m is not embedded in the classical input/output quantum device C. If the watermark m is correctly embedded in the classical input/output quantum device C, m'=m. Further, unmarked is information indicating that no watermark is embedded in the classical input/output quantum device C. The information specifying the classical input/output quantum device C=(q,U) is information representing the quantum state q of the quantum bit and the unitary transformation U. The information representing the quantum state q of the quantum bit may be, for example, the quantum bit itself or some state in which the quantum state q appears. The information representing the unitary transformation U may be, for example, information such as a matrix representing the unitary transformation U itself, or information for controlling the operation represented by the unitary transformation U.
 <Extraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRF>
 上述の電子透かし埋め込み可能な擬似乱数生成関数WMPRFを定義するために、Extraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFを用いる。Extraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFは、5つの関数ELWMPRF.Setup(1λ),ELWMPRF.Gen(pp),ELWMPRF.Eval(prfk,x),ELWMPRF.Mark(pp,prfk,m),ELWMPRF.Sim(xk,τ,i)により構成される。なお、透かしが属する透かし空間は{0,1}Lmであり、xが属する入力空間はDomであり、yが属する出力空間はRanである。また、ELWMPRF.Setup(1λ),ELWMPRF.Gen(pp),ELWMPRF.Eval(prfk,x),ELWMPRF.Mark(pp,prfk,m)は、電子透かしを埋め込み可能な擬似乱数生成関数WMPRFのWMPRF.Setup(1λ),WMPRF.Gen(pp),WMPRF.Eval(prfk,x),WMPRF.Mark(pp,prfk,m)とそれぞれ同一である。すなわち、ELWMPRF.Setup(1λ)=WMPRF.Setup(1λ),ELWMPRF.Gen(pp)=WMPRF.Gen(pp),ELWMPRF.Eval(prfk,x)=WMPRF.Eval(prfk,x),ELWMPRF.Mark(pp,prfk,m)= WMPRF.Mark(pp,prfk,m)である。ELWMPRF.Sim(xk,τ,i)は以下の通りである。
 (γ,x,y)←ELWMPRF.Sim(xk,τ,i):
 ELWMPRF.Sim(xk,τ,i)は、透かし抽出鍵xk、公開タグτ、およびi∈[Lm]を入力に取り、(γ,x,y)を出力するシミュレーション関数である。γは0または1の1ビットの情報である。
<Pseudo-random number generation function ELWMPRF that can embed Extraction-Less digital watermark>
In order to define the pseudo-random number generation function WMPRF that can embed an Extraction-Less digital watermark, the pseudo-random number generation function ELWMPRF that can embed an Extraction-Less digital watermark is used. The pseudo-random number generation function ELWMPRF that can embed an Extraction-Less digital watermark consists of five functions: ELWMPRF.Setup(1 λ ), ELWMPRF.Gen(pp), ELWMPRF.Eval(prfk,x), ELWMPRF.Mark(pp,prfk ,m), and ELWMPRF.Sim(xk,τ,i). Note that the watermark space to which the watermark belongs is {0,1} Lm , the input space to which x belongs is Dom, and the output space to which y belongs is Ran. In addition, ELWMPRF.Setup(1 λ ), ELWMPRF.Gen(pp), ELWMPRF.Eval(prfk,x), and ELWMPRF.Mark(pp,prfk,m) are pseudo-random number generation functions WMPRF that can embed digital watermarks. Same as WMPRF.Setup(1 λ ), WMPRF.Gen(pp), WMPRF.Eval(prfk,x), and WMPRF.Mark(pp,prfk,m), respectively. That is, ELWMPRF.Setup(1 λ )=WMPRF.Setup(1 λ ), ELWMPRF.Gen(pp)=WMPRF.Gen(pp), ELWMPRF.Eval(prfk,x)=WMPRF.Eval(prfk,x), ELWMPRF.Mark(pp,prfk,m)= WMPRF.Mark(pp,prfk,m). ELWMPRF.Sim(xk,τ,i) is as follows.
(γ,x,y)←ELWMPRF.Sim(xk,τ,i):
ELWMPRF.Sim(xk,τ,i) is a simulation function that takes watermark extraction key xk, public tag τ, and i∈[Lm] as input and outputs (γ,x,y). γ is 1-bit information of 0 or 1.
 <Extraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFに基づく、電子透かし埋め込み可能な擬似乱数生成関数WMPRF>
 Extraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFに基づき、本実施形態の電子透かしを埋め込み可能な擬似乱数生成関数WMPRFを定義する。本実施形態の電子透かしを埋め込み可能な擬似乱数生成関数WMPRFは、5つの関数WM.Setup(1λ),WM.Gen(pp),WM.Eval(prfk,x),WM.Mark(pp,prfk,m),WM.Extract(xk,τ,C,ε)により構成される。なお、電子透かしを埋め込み可能な擬似乱数生成関数WMPRFの透かし空間は{0,1}Lmであり、透かし空間を含むメッセージ空間は{0,1}Lm+1であり、xが属する入力空間はDomであり、yが属する出力空間はRanである。
<Pseudo-random number generation function WMPRF that can embed a digital watermark, based on the pseudo-random number generation function ELWMPRF that can embed an Extraction-Less digital watermark>
Based on the pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark, a pseudorandom number generation function WMPRF that can embed the digital watermark of this embodiment is defined. The pseudorandom number generation function WMPRF that can embed a digital watermark in this embodiment is composed of five functions WM.Setup(1 λ ), WM.Gen(pp), WM.Eval(prfk,x), WM.Mark(pp, prfk,m) and WM.Extract(xk,τ,C,ε). The watermark space of the pseudorandom number generation function WMPRF that can embed a digital watermark is {0,1} Lm , the message space including the watermark space is {0,1} Lm+1 , and the input space to which x belongs is Dom, and the output space to which y belongs is Ran.
 WM.Setup(1λ),WM.Gen(pp),WM.Eval(prfk,x)は、Extraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFのELWMPRF.Setup(1λ),ELWMPRF.Gen(pp),ELWMPRF.Eval(prfk,x)とそれぞれ同一である。すなわち、WM.Setup(1λ)=ELWMPRF.Setup(1λ),WM.Gen(pp)=ELWMPRF.Gen(pp),WM.Eval(prfk,x)=ELWMPRF.Eval(prfk,x)である。 WM.Setup(1 λ ), WM.Gen(pp), WM.Eval(prfk,x) are pseudo-random number generation functions ELWMPRF that can embed Extraction-Less digital watermarks . Same as Gen(pp) and ELWMPRF.Eval(prfk,x), respectively. That is, WM.Setup(1 λ )=ELWMPRF.Setup(1 λ ), WM.Gen(pp)=ELWMPRF.Gen(pp), WM.Eval(prfk,x)=ELWMPRF.Eval(prfk,x) be.
 WM.Mark(pp,prfk,m)およびWM.Extract(xk,τ,C,ε)は以下の通りである。なお、WM.Extract(xk,τ,C,ε)において、Extraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFのELWMPRF.Sim(xk,τ,i)が用いられる。 WM.Mark(pp,prfk,m) and WM.Extract(xk,τ,C,ε) are as follows. Note that in WM.Extract(xk,τ,C,ε), ELWMPRF.Sim(xk,τ,i), which is a pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark, is used.
 <C~←WM.Mark(pp,prfk,m||0)>
 WM.Mark(pp,prfk,m)は、公開パラメータpp、PRF鍵prfk、および透かしm∈{0,1}Lmを入力に取り、透かしmと0とのビット連結であるメッセージm||0が埋め込まれた擬似乱数生成関数C~を出力するメッセージ埋め込み関数である。
<C~←WM.Mark(pp,prfk,m||0)>
WM.Mark(pp,prfk,m) takes as input a public parameter pp, a PRF key prfk, and a watermark m∈{0,1} Lm , and returns a message m||0 which is a bit concatenation of watermark m and 0. This is a message embedding function that outputs a pseudorandom number generation function C~ in which C~ is embedded.
 <WM.Extract(xk,τ,C,ε)>
 ステップWM.Extract-1:
 まずWM.Extract(xk,τ,C,ε)は、透かし抽出鍵xk、公開タグτ、パラメータε、ならびに古典入出力量子装置C=(q,U)の量子ビットの量子状態qおよびユニタリ変換Uを表す情報を入力に取り、以下の式(1)の測定によって以下の測定値p~Lm+1を得て出力する。
Figure JPOXMLDOC01-appb-M000004

ここで、ε’=ε/(Lm+1),δ’=2である。P=(Pb,x,y,Qb,x,y)b,x,yは、Pb,x,y=Ux,y +|b><b|Ux,yおよびQb,x,y=I-Pb,x,yにより構成される二値射影測定装置の集合である。bは測定対象の量子状態を表す変数ベクトルであり、|b>はbのケットベクトル(縦ベクトル)を表し、<b|はbのブラベクトル(横ベクトル)を表し、|b><b|は射影演算子を表す。Ux,yは量子プログラムを表す量子状態に(x,y)を入力として与えるユニタリ変換Uを表す。この量子プログラムは、(x,y)を入力に取り、y=WMPRF.Eval(prfk,x)であるかどうかを判定するためのものである。また、Ux,y +はUx,yのエルミート転置行列(随伴行列)を表す。|b><b|,Ux,y,Ux,y +を表す行列のサイズは等しく、Iはそれらと等しいサイズの単位行列である。すべてのi∈[Lm+1]について、Dτ,iはDτ,i:(γ,x,y)←ELWMPRF.Sim(xk,τ,i)によって定義される確率分布である。なお、式(1)に示すように、「p~Lm+1」の右上添え字の「~」は、本来「p」の真上に記載すべきであるが、記載表記の制約上、「~」を「p」の右上に記載する場合がある。
<WM.Extract(xk,τ,C,ε)>
Step WM.Extract-1:
First, WM.Extract(xk,τ,C,ε) calculates the watermark extraction key xk, the public tag τ, the parameter ε, the quantum state q of the qubit of the classical input/output quantum device C=(q,U), and the unitary transformation The information representing U is taken as input, and the following measured value p ~ Lm+1 is obtained and output by measurement using the following equation (1).
Figure JPOXMLDOC01-appb-M000004

Here, ε'=ε/(Lm+1), δ'=2 . P=(P b,x,y ,Q b,x,y ) b,x,y is P b,x,y =U x,y + |b><b|U x,y and Q b, x,y =IP b,x,y is a set of binary projection measurement devices. b is a variable vector representing the quantum state of the measurement target, |b> represents the ket vector (vertical vector) of b, <b| represents the bra vector (horizontal vector) of b, |b><b| represents a projection operator. U x,y represents a unitary transformation U that gives (x,y) as input to a quantum state representing a quantum program. This quantum program takes (x,y) as input and determines whether y=WMPRF.Eval(prfk,x). Moreover, U x,y + represents the Hermitian transposed matrix (adjoint matrix) of U x,y . The matrices representing |b><b|, U x,y , and U x,y + have the same size, and I is an identity matrix with the same size. For all i∈[Lm+1], D τ,i is a probability distribution defined by D τ,i :(γ,x,y)←ELWMPRF.Sim(xk,τ,i). Note that as shown in formula (1), the upper right subscript "~" of "p~ Lm+1 " should originally be written directly above "p", but due to the constraints of writing notation, " ~” may be written in the upper right corner of “p”.
 ステップWM.Extract-2:
 次にWM.Extract(xk,τ,C,ε)は、測定値p~Lm+1がp~Lm+1<(1/2)+ε-4ε’を満たすか否かを判定する。p~Lm+1<(1/2)+ε-4ε’を満たすと判定した場合、WM.Extract(xk,τ,C,ε)は、透かしが埋め込まれていないことを表す情報unmarkedを出力する。そうでない場合、古典入出力量子装置Cの測定後の量子ビットの量子状態をq0とし、次のステップWM.Extract-3に進む。
Step WM.Extract-2:
Next, WM.Extract(xk,τ,C,ε) determines whether the measured value p~ Lm+1 satisfies p~ Lm+1 <(1/2)+ε-4ε'. If it is determined that p~ Lm+1 <(1/2)+ε-4ε' is satisfied, WM.Extract(xk,τ,C,ε) outputs unmarked information indicating that no watermark is embedded. do. Otherwise, set the quantum state of the qubit after the measurement of the classical input/output quantum device C to q 0 and proceed to the next step WM.Extract-3.
 ステップWM.Extract-3:
 WM.Extract(xk,τ,C,ε)は、i=1からLmまで順番に、以下のステップWM.Extract-31およびWM.Extract-32を実行する。
 ステップWM.Extract-31:WM.Extract(xk,τ,C,ε)は、透かし抽出鍵xk、公開タグτ、パラメータε、ならびに量子ビットの量子状態qi-1およびユニタリ変換Uを表す情報を入力に取り、以下の式(2)の測定によって測定値p~iを得て出力する。
Figure JPOXMLDOC01-appb-M000005

WM.Extract(xk,τ,C,ε)は、測定後の量子ビットの量子状態をqiとする。
 ステップWM.Extract-32:WM.Extract(xk,τ,C,ε)は、測定値p~iと(1/2)+ε-4ε’とを比較する。ここでp~i>(1/2)+ε-4ε’を満たす場合、WM.Extract(xk,τ,C,ε)は、mi’=0と設定する。またp~i<1/2)+ε-4ε’を満たす場合、WM.Extract(xk,τ,C,ε)は、mi’=1と設定する。すべてのi∈[Lm]についてp~i=(1/2)+ε-4ε’でなかった場合、WM.Extract(xk,τ,C,ε)は、このように設定したm1’,…,mLm’を出力し、ステップWM.Extract-3を終了する。一方、何れかのiでp~i=(1/2)+ε-4ε’の場合、WM.Extract(xk,τ,C,ε)は、m’=0Lmに設定してステップWM.Extract-3を終了する。なお、0LmはLm桁の0からなる値を表す。
Step WM.Extract-3:
WM.Extract(xk,τ,C,ε) executes the following steps WM.Extract-31 and WM.Extract-32 in order from i=1 to Lm.
Step WM.Extract-31: WM.Extract(xk,τ,C,ε) is the information representing the watermark extraction key xk, the public tag τ, the parameter ε, and the quantum state q i-1 of the qubit and the unitary transformation U is taken as an input, and a measured value p~ i is obtained and output by measurement using the following equation (2).
Figure JPOXMLDOC01-appb-M000005

WM.Extract(xk,τ,C,ε) sets the quantum state of the quantum bit after measurement to q i .
Step WM.Extract-32: WM.Extract(xk,τ,C,ε) compares the measured value p~ i with (1/2)+ε-4ε'. If p~ i >(1/2)+ε-4ε' is satisfied here, WM.Extract(xk,τ,C,ε) is set to m i '=0. Furthermore, when p~ i <1/2)+ε-4ε' is satisfied, WM.Extract(xk,τ,C,ε) is set to m i '=1. If p~ i =(1/2)+ε-4ε' is not satisfied for all i∈[Lm], WM.Extract(xk,τ,C,ε) returns m 1 ', …,m Lm ' is output and step WM.Extract-3 ends. On the other hand, if p~ i =(1/2)+ε-4ε' for any i, WM.Extract(xk,τ,C,ε) sets m'=0 Lm and performs step WM. Exit Extract-3. Note that 0 Lm represents a value consisting of Lm digits of 0.
 ステップWM.Extract-4:
 ステップWM.Extract-3ですべてのi∈[Lm]についてp~i=(1/2)+ε-4ε’でなかった場合、WM.Extract(xk,τ,C,ε)はm’=m1’||…||mLm’を出力する。いずれかのiについてp~i=(1/2)+ε-4ε’であった場合、WM.Extract(xk,τ,C,ε)はm’=0Lmを出力する。
Step WM.Extract-4:
If p~ i =(1/2)+ε-4ε' for all i∈[Lm] in step WM.Extract-3, then WM.Extract(xk,τ,C,ε) is m'= Output m 1 '||…||m Lm '. If p~ i =(1/2)+ε-4ε' for any i, WM.Extract(xk,τ,C,ε) outputs m'=0 Lm .
 <LWE(Learning with errors)問題に基づくExtraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRF>
 次に、LWE問題に基づくExtraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFを例示する。この擬似乱数生成関数ELWMPRFの透かし空間は{0,1}Lmであり、入力空間Domは{0,1}n1であり、出力空間Ranは{0,1}m1である。なお、n1およびm1はそれぞれ正整数である。この例では、格子という数学的構造上で定義されるLWE問題の困難性に基づく、制限可能擬似乱数生成関数PRFCPRF、秘密鍵暗号方式SKE、および公開鍵暗号方式PKEを用いる。すなわち、制限可能擬似乱数生成関数PRFCPRF、秘密鍵暗号方式SKE、および公開鍵暗号方式PKEは、例えば格子暗号に基づく。
 前述のように制限可能擬似乱数生成関数PRFCPRFは、4つの関数CPRF.Setup(1λ),CPRF.Constrain(msk,f),CPRF.Eval(msk,x),CPRF.CEval(skf,x)によって構成される。マスター鍵mskが固定(ハードワイヤ)されたCPRF.Eval(msk,x)をG(x):{0,1}n1→{0,1}m1と表し、制限鍵skfが固定されたCPRF.CEval(skf,x)をG¬∈ν(x):{0,1}n1→{0,1}m2と表す。また、G¬∈ν(x)は集合νに属さない入力xについてのみ使用可能である。νは関数f(・)についてf(x)=1を満たすxの集合を表す。
<Pseudo-random number generation function ELWMPRF that can embed Extraction-Less digital watermark based on LWE (Learning with errors) problem>
Next, we will exemplify a pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on the LWE problem. The watermark space of this pseudo-random number generation function ELWMPRF is {0,1} Lm , the input space Dom is {0,1} n1 , and the output space Ran is {0,1} m1 . Note that n1 and m1 are each positive integers. This example uses a limitable pseudorandom number generation function PRF CPRF , a secret key cryptosystem SKE, and a public key cryptosystem PKE based on the difficulty of the LWE problem defined on a mathematical structure called a lattice. That is, the limitable pseudorandom number generation function PRF CPRF , the secret key cryptosystem SKE, and the public key cryptosystem PKE are based on, for example, lattice cryptography.
As mentioned above, the limitable pseudorandom number generation function PRF CPRF consists of four functions CPRF.Setup(1 λ ), CPRF.Constrain(m sk ,f), CPRF.Eval(msk,x), CPRF.CEval(sk f ,x). CPRF.Eval(msk,x) with fixed master key msk (hardwired) is expressed as G(x):{0,1} n1 →{0,1} m1 , and CPRF with fixed limit key sk f .CEval(sk f ,x) is expressed as G ¬∈ν (x):{0,1} n1 →{0,1} m2 . Also, G ¬∈ν (x) can only be used for input x that does not belong to the set ν. ν represents the set of x that satisfies f(x)=1 for the function f(·).
 前述のように秘密鍵暗号方式SKEは、3つの関数SKE.Gen(1λ),SKE.Enc(k,m),SKE.Dec(k,ct)によって構成される。秘密鍵暗号方式SKEは、例えば格子暗号方式である。ただし、平文が属する平文空間を{0,1}Lskeとし、暗号文が属する暗号文空間を{0,1}n1とする。ここで、Lske=ceil(Log2Lm)+1であり、ceilは天井関数を表し、ceil(α)はα以上の最小の自然数を意味し、Lmおよびn1は上述の正整数である。 As mentioned above, the secret key cryptosystem SKE is composed of three functions SKE.Gen(1 λ ), SKE.Enc(k,m), and SKE.Dec(k,ct). The secret key cryptosystem SKE is, for example, a lattice cryptosystem. However, the plaintext space to which the plaintext belongs is {0,1} Lske , and the ciphertext space to which the ciphertext belongs is {0,1} n1 . Here, Lske=ceil(Log 2 Lm)+1, ceil represents a ceiling function, ceil(α) means the smallest natural number greater than or equal to α, and Lm and n1 are the above-mentioned positive integers.
 前述のように公開鍵鍵暗号方式PKEは、3つの関数PKE.Gen(1λ),PKE.Enc(pk,m),PKE.Dec(sk,ct)によって構成される。公開鍵鍵暗号方式PKEは、例えば格子暗号方式である。ただし、平文が属する平文空間を{0,1}とする。 As mentioned above, the public key cryptosystem PKE is composed of three functions PKE.Gen(1 λ ), PKE.Enc(pk,m), and PKE.Dec(sk,ct). The public key cryptosystem PKE is, for example, a lattice cryptosystem. However, let the plaintext space to which the plaintext belongs be {0,1} .
 以上の前提の下、LWE問題に基づくExtraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFは、以下の5つの関数ELWMPRF.Setup(1λ),ELWMPRF.Gen(pp),ELWMPRF.Eval(prfk,x),ELWMPRF.Mark(pp,prfk,m),ELWMPRF.Sim(xk,τ,i)により構成される。 Under the above assumptions, the pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on the LWE problem is created using the following five functions ELWMPRF.Setup(1 λ ), ELWMPRF.Gen(pp), ELWMPRF.Eval( prfk,x), ELWMPRF.Mark(pp,prfk,m), and ELWMPRF.Sim(xk,τ,i).
 <(pp,xk)←ELWMPRF.Setup(1λ)>
 ELWMPRF.Setup(1λ)は、セキュリティパラメータλを入力に取り、(pk,sk)←PKE.Gen(1λ)を得、(pk,sk)を(pp,xk)として出力する((pp,xk):=(pk,sk))。
<(pp,xk)←ELWMPRF.Setup(1 λ )>
ELWMPRF.Setup(1 λ ) takes the security parameter λ as input, obtains (pk,sk)←PKE.Gen(1 λ ), and outputs (pk,sk) as (pp,xk) ((pp ,xk):=(pk,sk)).
 <(prfk,τ)←ELWMPRF.Gen(pp)>
 ステップELWMPRF.Gen(pp)LWE-1:ELWMPRF.Gen(pp)はpp:=pkを入力に取る。
 ステップELWMPRF.Gen(pp)LWE-2:ELWMPRF.Gen(pp)は、セキュリティパラメータλおよびパラメータκを入力に取り、msk←CPRF.Setup(1λ,1κ)を得る。ここでκは後述する回路(関数)D[k,m,x]のサイズを表す。なお、D[k,m,x]のサイズとは、D[k,m,x]を計算するために必要な論理回路を構成するゲートの数を表す。ELWMPRF.Gen(pp)は、得たmskをy←CPRF.Eval(msk,x)に固定(ハードワイヤ)したG(x)を得て出力する(G(x)←CPRF.Setup(1λ,1κ))。
 ステップELWMPRF.Gen(pp)LWE-3:ELWMPRF.Gen(pp)は、セキュリティパラメータλを用い、k←SKE.Gen(1λ)を生成する。
 ステップELWMPRF.Gen(pp)LWE-4:ELWMPRF.Gen(pp)は、このkを固定した後述する回路(関数)Dauth[k,x]を設定する。
 ステップELWMPRF.Gen(pp)LWE-5:ELWMPRF.Gen(pp)は、G(x)およびDauth[k,x]を用い、制限鍵skf←CPRF.Constrain(G(x),Dauth[k,x])を生成する。次に、ELWMPRF.Gen(pp)は、この制限鍵skfが固定されたCPRF.CEval(skf,x)であるG¬∈νauth(x)を生成する。ここで、νauth⊂{0,1}n1は、Dauth[k,x]=1を満たすxの集合である。なお、「G¬∈νauth」の下付け添え字の「νauth」は本来「νauth」と記載すべきであるが、記載表記の制約上「νauth」と表記している。
 ステップELWMPRF.Gen(pp)LWE-6:ELWMPRF.Gen(pp)は、prfk=(G(x),k)およびτ←PKE.Enc(pp,(G¬∈νauth(x),k))を得て出力する。なお(G¬∈νauth(x),k)は、G¬∈νauth(x)とkの関数値であり、例えば、(G¬∈νauth(x),k)=G¬∈νauth(x)||kである。
<(prfk,τ)←ELWMPRF.Gen(pp)>
Step ELWMPRF.Gen(pp) LWE -1: ELWMPRF.Gen(pp) takes pp:=pk as input.
Step ELWMPRF.Gen(pp) LWE -2: ELWMPRF.Gen(pp) takes security parameter λ and parameter κ as input and obtains msk←CPRF.Setup(1 λ , 1 κ ). Here, κ represents the size of a circuit (function) D[k,m,x], which will be described later. Note that the size of D[k,m,x] represents the number of gates configuring the logic circuit required to calculate D[k,m,x]. ELWMPRF.Gen(pp) obtains and outputs G(x) with the obtained msk fixed (hardwired) to y←CPRF.Eval(msk,x) (G(x)←CPRF.Setup(1 λ , 1 κ )).
Step ELWMPRF.Gen(pp) LWE -3: ELWMPRF.Gen(pp) uses the security parameter λ to generate k←SKE.Gen(1 λ ).
Step ELWMPRF.Gen(pp) LWE -4: ELWMPRF.Gen(pp) sets a circuit (function) D auth [k,x] to be described later in which k is fixed.
Step ELWMPRF.Gen(pp) LWE -5: ELWMPRF.Gen(pp) uses G(x) and D auth [k,x] and constraint key sk f ←CPRF.Constrain(G(x),D auth [k,x]). Next, ELWMPRF.Gen(pp) generates G ⿢∈νauth (x) where this restriction key sk f is fixed and is CPRF.CEval(sk f ,x). Here, ν auth ⊂{0,1} n1 is a set of x that satisfies D auth [k,x]=1. Note that the subscript "νauth" in "G ¬∈νauth " should originally be written as "ν auth ", but due to writing restrictions, it is written as "νauth".
Step ELWMPRF.Gen(pp) LWE -6: ELWMPRF.Gen(pp) is prfk=(G(x),k) and τ←PKE.Enc(pp,(G ¬∈νauth (x),k)) Obtain and output. Note that (G ¬∈νauth (x),k) is the function value of G ¬∈νauth (x) and k, for example, (G ¬∈νauth (x),k)=G ¬∈νauth (x) ||k.
 <y←ELWMPRF.Eval(prfk,x)>
 ELWMPRF.Eval(prfk,x)は、prfk=(G(x),k)およびxを入力に取り、y←ELWMPRF.Eval(prfk,x)(=WMPRF.Eval(prfk,x))を出力する。
<y←ELWMPRF.Eval(prfk,x)>
ELWMPRF.Eval(prfk,x) takes prfk=(G(x),k) and x as input and outputs y←ELWMPRF.Eval(prfk,x)(=WMPRF.Eval(prfk,x)) do.
 <C~←ELWMPRF.Mark(pp,prfk,m)>
 ステップELWMPRF.Mark(pp,prfk,m)LWE-1:ELWMPRF.Mark(pp,prfk,m)は、pp=pkおよびprfk=(G(x),k)として、kおよびmを固定した後述する回路(関数)D[k,m,x]を設定する。
 ステップELWMPRF.Mark(pp,prfk,m)LWE-2:ELWMPRF.Mark(pp,prfk,m)は、G(x)およびD[k,m,x]を用い、制限鍵skf←CPRF.Constrain(G(x),D[k,m,x])を生成する。次に、ELWMPRF.Mark(pp,prfk,m)は、この制限鍵skfが固定されたCPRF.CEval(skf,x)であるG¬∈ν(x)を生成する。ここで、ν⊂{0,1}nは、D[k,m,x]=1を満たすxの集合である。ELWMPRF.Mark(pp,prfk,m)は、このG¬∈ν(x)をC~として出力する。
<C~←ELWMPRF.Mark(pp,prfk,m)>
Step ELWMPRF.Mark(pp,prfk,m) LWE -1: ELWMPRF.Mark(pp,prfk,m) is described later with pp=pk and prfk=(G(x),k), and k and m are fixed. Set the circuit (function) D[k,m,x] to
Step ELWMPRF.Mark(pp,prfk,m) LWE -2: ELWMPRF.Mark(pp,prfk,m) uses G(x) and D[k,m,x] and sets the restriction key sk f ←CPRF. Generate Constrain(G(x),D[k,m,x]). Next, ELWMPRF.Mark(pp,prfk,m) generates G ⿢∈ν (x) where this restriction key sk f is fixed and is CPRF.CEval(sk f ,x). Here, ν⊂{0,1} n is a set of x that satisfies D[k,m,x]=1. ELWMPRF.Mark(pp,prfk,m) outputs this G ¬∈ν (x) as C~.
 <(γ,x,y)←ELWMPRF.Sim(xk,τ,i)>
 ステップELWMPRF.Sim(xk,τ,i)LWE-1:ELWMPRF.Sim(xk,τ,i)は、skをxkとする(sk:=xk)。
 ステップELWMPRF.Sim(xk,τ,i)LWE-2:ELWMPRF.Sim(xk,τ,i)は、(G¬∈νauth(x),k)←PKE.Dec(sk,τ)を得る(計算する)。
 ステップELWMPRF.Sim(xk,τ,i)LWE-3:ELWMPRF.Sim(xk,τ,i)は、γ←{0,1}を生成する。例えば、ELWMPRF.Sim(xk,τ,i)は、ランダムにγ←{0,1}を生成する。
 ステップELWMPRF.Sim(xk,τ,i)LWE-4:ELWMPRF.Sim(xk,τ,i)は、x←SKE.Enc(k,i||γ)およびy←G¬∈νauth(x)を得る(計算する)。
 ステップELWMPRF.Sim(xk,τ,i)LWE-5:ELWMPRF.Sim(xk,τ,i)は、(γ,x,y)を出力する。
<(γ,x,y)←ELWMPRF.Sim(xk,τ,i)>
Step ELWMPRF.Sim(xk,τ,i) LWE -1: ELWMPRF.Sim(xk,τ,i) sets sk to xk (sk:=xk).
Step ELWMPRF.Sim(xk,τ,i) LWE -2: ELWMPRF.Sim(xk,τ,i) obtains (G ¬∈νauth (x),k)←PKE.Dec(sk,τ) ( calculate).
Step ELWMPRF.Sim(xk,τ,i) LWE -3: ELWMPRF.Sim(xk,τ,i) generates γ←{0,1}. For example, ELWMPRF.Sim(xk,τ,i) randomly generates γ←{0,1}.
Step ELWMPRF.Sim(xk,τ,i) LWE -4: ELWMPRF.Sim(xk,τ,i) has x←SKE.Enc(k,i||γ) and y←G ¬∈νauth (x) Obtain (calculate).
Step ELWMPRF.Sim(xk,τ,i) LWE -5: ELWMPRF.Sim(xk,τ,i) outputs (γ,x,y).
 回路Dauth[k,x]およびD[k,m,x]の詳細を示す。
 <Dauth[k,x]>
 Dauth[k,x]はkが固定され、以下の処理を行う回路である。
 入力:x∈{0,1}n1
 ステップDauth[k,x]-1:Dauth[k,x]はd←SKE.Dec(k,x)を計算する。
 ステップDauth[k,x]-2:Dauth[k,x]は、d≠⊥ならば0を出力し、そうでなければ1を出力する。
Details of circuits D auth [k,x] and D[k,m,x] are shown.
<D auth [k,x]>
D auth [k,x] is a circuit where k is fixed and performs the following processing.
Input: x∈{0,1} n1
Step D auth [k,x]-1: D auth [k,x] calculates d←SKE.Dec(k,x).
Step D auth [k,x]-2: D auth [k,x] outputs 0 if d≠⊥, otherwise outputs 1.
 <D[k,m,x]>
 D[k,m,x]は、kおよびmが固定され、以下の処理を行う回路である。
 入力:x∈{0,1}n1
 ステップD[k,m,x]-1:D[k,m,x]はd←SKE.Dec(k,x)を計算する。
 ステップD[k,m,x]-2: d≠⊥ならばD[k,m,x]は以下の(a)(b)を行う。
 (a)d=i||η∈{0,1}Lskeとする。ただし、i∈[Lm]およびη∈{0,1}である。すなわち、dをi∈[Lm]と1ビットのη∈{0,1}とをビット連結したものと解釈する。
 (b)ここでη=miならば、D[k,m,x]は1を出力し、そうでなければD[k,m,x]は0を出力する。ただし、m=m1||…||mLm∈{0,1}Lmである。
 ステップD[k,m,x]-3:d=⊥ならばD[k,m,x]は0を出力する。
<D[k,m,x]>
D[k,m,x] is a circuit where k and m are fixed and performs the following processing.
Input: x∈{0,1} n1
Step D[k,m,x]-1: D[k,m,x] calculates d←SKE.Dec(k,x).
Step D[k,m,x]-2: If d≠⊥, D[k,m,x] performs the following (a) and (b).
(a) Let d=i||η∈{0,1} Lske . However, i∈[Lm] and η∈{0,1}. That is, d is interpreted as a bit concatenation of i∈[Lm] and 1-bit η∈{0,1}.
(b) Here, if η=m i , D[k,m,x] outputs 1, otherwise D[k,m,x] outputs 0. However, m=m 1 ||…||m Lm ∈{0,1} Lm .
Step D[k,m,x]-3: If d=⊥, D[k,m,x] outputs 0.
 <識別不可能性難読化に基づくExtraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRF>
 識別不可能性難読化に基づくExtraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFを例示する。この擬似乱数生成関数ELWMPRFの透かし空間は{0,1}Lmであり、入力空間Domは{0,1}Linであり、出力空間Ranは{0,1}Loutである。なお、LinおよびLoutはそれぞれ正整数である。この例では、識別不可能性難読化および一方向性関数を用いて実現可能な、穴あけ擬似乱数生成関数PRFPPRF、穴あけ可能暗号方式PE、識別不可能性難読化関数iO、および擬似乱数生成関数PRFを用いる。
<Pseudo-random number generation function ELWMPRF that can embed Extraction-Less digital watermark based on indiscernibility obfuscation>
A pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on indiscernibility obfuscation is illustrated. The watermark space of this pseudo-random number generation function ELWMPRF is {0,1} Lm , the input space Dom is {0,1} Lin , and the output space Ran is {0,1} Lout . Note that Lin and Lout are each positive integers. In this example, we will introduce the puncturing pseudo-random number generation function PRF PPRF , the puncturing cryptography PE, the indistinguishability obfuscation function iO, and the pseudo-random number generation function that can be realized using indiscernibility obfuscation and one-way functions. Use PRF.
 前述のように、穴あけ擬似乱数生成関数PRFPPRFは、3つの関数PRF.Gen(1λ),PRF.Evalprfk(K,x),PRF.Evalprfk¬x⊆(S)によって構成される。ここでは、演算関数PRF.Evalprfk(K,x)をF(x):{0,1}Lin→{0,1}Loutと表す。また、穴あけ鍵生成関数PRF.Evalprfk¬x⊆(S)をF¬x⊆(S)と表す。 As mentioned above, the drilling pseudo-random number generation function PRF PPRF is composed of three functions PRF.Gen(1 λ ), PRF.Eval prfk (K,x), and PRF.Eval prfk¬x⊆ (S). Here, the calculation function PRF.Eval prfk (K,x) is expressed as F(x): {0,1} Lin →{0,1} Lout . Also, the punching key generation function PRF.Eval prfk¬x⊆ (S) is expressed as F ¬x⊆ (S).
 前述のように、穴あけ可能暗号方式PEは、4つの関数PE.Gen(1λ), PE.Puncture(dk,{c*}),PE.Enc(ek,m),PE.Dec(dk’,c’)によって構成される。ここでは、穴あけ可能暗号方式PEの平文空間および暗号文空間をそれぞれ{0,1}Lptおよび{0,1}Lctとする。ただし、LptおよびLctはそれぞれ正整数であり、Lpt=λ+ceil(log2Lm)+1、Lin=Lct、およびLct=poly(λ, log2 Lm)を満たす。poly(λ, log2 Lm)はその根が(λ, log2Lm)の要素である多項式の係数を表す。 As mentioned above, the punctureable encryption scheme PE consists of four functions PE.Gen(1 λ ), PE.Puncture(dk,{c*}), PE.Enc(ek,m), PE.Dec(dk',c'). Here, the plaintext space and ciphertext space of the punctureable cryptosystem PE are respectively {0,1} Lpt and {0,1} Lct . However, Lpt and Lct are each positive integers and satisfy Lpt=λ+ceil(log 2 Lm)+1, Lin=Lct, and Lct=poly(λ, log 2 Lm). poly(λ, log 2 Lm) represents the coefficients of a polynomial whose roots are elements of (λ, log 2 Lm).
 前述のように、識別不可能性難読化関数iOは、回路{Cλ}λ∈Nを入力として受け取り、難読化された回路を出力する関数である。 As mentioned above, the indiscernibility obfuscation function iO is a function that takes the circuit {C λ } λ∈N as input and outputs the obfuscated circuit.
 前述のように、擬似乱数生成関数PRFは、x∈{0,1}λを入力にとり、y∈{0,1}λ+L(λ)を出力する関数である。ここでは、Lout=λ+L(λ)とし、PRF:{0,1}λ→{0,1}Loutとする。 As described above, the pseudorandom number generation function PRF is a function that takes x∈{0,1} λ as an input and outputs y∈{0,1} λ+L(λ) . Here, Lout=λ+L(λ) and PRF: {0,1} λ → {0,1} Lout .
 以上の前提の下、識別不可能性難読化に基づくExtraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFは、以下の5つの関数ELWMPRF.Setup(1λ),ELWMPRF.Gen(pp),ELWMPRF.Eval(prfk,x),ELWMPRF.Mark(pp,prfk,m),ELWMPRF.Sim(xk,τ,i)により構成される。 Under the above assumptions, the pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on indiscernibility obfuscation is composed of the following five functions ELWMPRF.Setup(1 λ ), ELWMPRF.Gen(pp), Consists of ELWMPRF.Eval(prfk,x), ELWMPRF.Mark(pp,prfk,m), and ELWMPRF.Sim(xk,τ,i).
 <(pp,xk)←ELWMPRF.Setup(1λ)>
 ELWMPRF.Setup(1λ)は、(pp,xk):=(⊥,⊥)に設定する。
<(pp,xk)←ELWMPRF.Setup(1 λ )>
ELWMPRF.Setup(1 λ ) is set to (pp,xk):=(⊥,⊥).
 <(prfk,τ)←ELWMPRF.Gen(pp)>
 ステップELWMPRF.Gen(pp)iO-1:ELWMPRF.Gen(pp)はpp:=⊥を入力に取る。
 ステップELWMPRF.Gen(pp)iO-2:ELWMPRF.Gen(pp)は、演算鍵K←PRF.Gen(1λ)を得、この演算鍵Kを固定したPRF.Evalprfk(K,x)であるF(x)を計算する。
 ステップELWMPRF.Gen(pp)iO-3:ELWMPRF.Gen(pp)は(pe.ek, pe.dk)←PE.Gen(1λ)を生成する。
 ステップELWMPRF.Gen(pp)iO-4:ELWMPRF.Gen(pp)は、prfk:=(F(x), pe.dk)およびτ:=pe.ekを出力する。
<(prfk,τ)←ELWMPRF.Gen(pp)>
Step ELWMPRF.Gen(pp) iO -1: ELWMPRF.Gen(pp) takes pp:=⊥ as input.
Step ELWMPRF.Gen(pp) iO -2: ELWMPRF.Gen(pp) obtains the calculation key K←PRF.Gen(1 λ ) and uses PRF.Eval prfk (K,x) with this calculation key K fixed. Calculate some F(x).
Step ELWMPRF.Gen(pp) iO -3: ELWMPRF.Gen(pp) generates (pe.ek, pe.dk)←PE.Gen(1 λ ).
Step ELWMPRF.Gen(pp) iO -4: ELWMPRF.Gen(pp) outputs prfk:=(F(x), pe.dk) and τ:=pe.ek.
 <ELWMPRF.Eval(prfk,x)>
 ELWMPRF.Eval(prfk,x)は、prfk:=(F(x), pe.dk)およびxを入力に取り、y←F(x)を出力する。
<ELWMPRF.Eval(prfk,x)>
ELWMPRF.Eval(prfk,x) takes prfk:=(F(x), pe.dk) and x as input and outputs y←F(x).
 <ELWMPRF.Mark(pp,prfk,m)>
 ELWMPRF.Mark(pp,prfk,m)iO-1:ELWMPRF.Mark(pp,prfk,m)は、pp:=⊥およびprfk:=(F(x), pe.dk)を入力に取る。
 ELWMPRF.Mark(pp,prfk,m)iO-2:ELWMPRF.Mark(pp,prfk,m)は、prfk、pe.dkおよびmを固定した後述する回路D[F(x), pe.dk, m]を設定する。
 ELWMPRF.Mark(pp,prfk,m)iO-3:ELWMPRF.Mark(pp,prfk,m)は、D[F(x), pe.dk, m]を難読化したiO(D[F(x), pe.dk, m])を得、これをC~として出力する。
<ELWMPRF.Mark(pp,prfk,m)>
ELWMPRF.Mark(pp,prfk,m) iO -1: ELWMPRF.Mark(pp,prfk,m) takes as input pp:=⊥ and prfk:=(F(x), pe.dk).
ELWMPRF.Mark(pp,prfk,m) iO -2: ELWMPRF.Mark(pp,prfk,m) is a circuit D[F(x), pe.dk, m].
ELWMPRF.Mark(pp,prfk,m) iO -3: ELWMPRF.Mark(pp,prfk,m) is iO(D[F(x ), pe.dk, m]) and output it as C~.
 <ELWMPRF.Sim(xk,τ,i)>
 ELWMPRF.Sim(xk,τ,i)iO-1:ELWMPRF.Sim(xk,τ,i)はxk:=⊥およびτ:=pe.ekに設定する。
 ELWMPRF.Sim(xk,τ,i)iO-2:ELWMPRF.Sim(xk,τ,i)はγ←{0,1}およびs←{0,1}λを生成する。
 ELWMPRF.Sim(xk,τ,i)iO-3:ELWMPRF.Sim(xk,τ,i)はy←PRF(s)を計算する。
 ELWMPRF.Sim(xk,τ,i)iO-4:ELWMPRF.Sim(xk,τ,i)はx←PE.Enc(pe.ek, s||i||γ)を計算する。
 ELWMPRF.Sim(xk,τ,i)iO-5:ELWMPRF.Sim(xk,τ,i)は(γ,x,y)を出力する。
<ELWMPRF.Sim(xk,τ,i)>
ELWMPRF.Sim(xk,τ,i) iO -1: ELWMPRF.Sim(xk,τ,i) is set to xk:=⊥ and τ:=pe.ek.
ELWMPRF.Sim(xk,τ,i) iO -2: ELWMPRF.Sim(xk,τ,i) generates γ←{0,1} and s←{0,1} λ .
ELWMPRF.Sim(xk,τ,i) iO -3: ELWMPRF.Sim(xk,τ,i) calculates y←PRF(s).
ELWMPRF.Sim(xk,τ,i) iO -4: ELWMPRF.Sim(xk,τ,i) calculates x←PE.Enc(pe.ek, s||i||γ).
ELWMPRF.Sim(xk,τ,i) iO -5: ELWMPRF.Sim(xk,τ,i) outputs (γ,x,y).
 <D[F(x), pe.dk, m]>
 D[F(x), pe.dk, m]の詳細を示す。D[F(x), pe.dk, m]は、prfk、pe.dkおよびmが固定され、以下の処理を行う回路である。
 入力:x∈{0,1}Lm
 ステップD[F(x), pe.dk, m]-1:D[F(x), pe.dk, m]はd←PE.Dec(pe.dk, x)を計算する。
 ステップD[F(x), pe.dk, m]-2:d≠⊥ならば、D[F(x), pe.dk, m]は以下の(c)(d)を行う。
 (c)d=s||i||ηとする。ただし、s∈{0,1}λ、i∈[Lm]、およびη∈{0,1}である。
 (d)ここでη=miならば、D[F(x), pe.dk, m]はPRF(s)を出力し、そうでなければ、F(x)を出力する。
 ステップD[F(x), pe.dk, m]-3:d=⊥ならば、D[F(x), pe.dk, m]はF(x)を出力する。
<D[F(x), pe.dk, m]>
The details of D[F(x), pe.dk, m] are shown. D[F(x), pe.dk, m] is a circuit in which prfk, pe.dk, and m are fixed and performs the following processing.
Input: x∈{0,1} Lm
Step D[F(x), pe.dk, m]-1: D[F(x), pe.dk, m] calculates d←PE.Dec(pe.dk, x).
Step D[F(x), pe.dk, m]-2: If d≠⊥, D[F(x), pe.dk, m] performs the following (c) and (d).
(c) Let d=s||i||η. where s∈{0,1} λ , i∈[Lm], and η∈{0,1}.
(d) Here, if η=m i , D[F(x), pe.dk, m] outputs PRF(s), otherwise outputs F(x).
Step D[F(x), pe.dk, m]-3: If d=⊥, D[F(x), pe.dk, m] outputs F(x).
 [第1実施形態]
 <構成>
 図1に例示するように、本実施形態のセキュリティシステム1は、擬似乱数関数生成装置110、透かし抽出装置120、および擬似乱数関数利用装置130を有し、これらはネットワークを通じて通信可能に構成されている。
[First embodiment]
<Configuration>
As illustrated in FIG. 1, the security system 1 of this embodiment includes a pseudorandom number function generation device 110, a watermark extraction device 120, and a pseudorandom number function utilization device 130, which are configured to be able to communicate through a network. There is.
 <擬似乱数関数生成装置110>
 図2に例示するように、擬似乱数関数生成装置110は、セットアップ部111、鍵生成部112、透かし埋め込み部113、出力部114、メモリ115、および制御部116を有し、制御部116に基づいて各処理を実行する。擬似乱数関数生成装置110に入力された情報、および各部で得られた情報は、逐一、メモリ115に格納され、必要に応じて読み込まれて使用される。
<Pseudo-random number function generation device 110>
As illustrated in FIG. 2, the pseudorandom number function generation device 110 includes a setup section 111, a key generation section 112, a watermark embedding section 113, an output section 114, a memory 115, and a control section 116. and execute each process. The information input to the pseudo-random number function generation device 110 and the information obtained from each section are stored one by one in the memory 115, and read and used as necessary.
 <透かし抽出装置120>
 図3に例示するように、透かし抽出装置120は、測定部121,123(第1測定部、第2測定部)、抽出部122,124(第1測定部、第2測定部)、メモリ125、および制御部126を有し、制御部126に基づいて各処理を実行する。
<Watermark extraction device 120>
As illustrated in FIG. 3, the watermark extraction device 120 includes measurement units 121 and 123 (first measurement unit, second measurement unit), extraction units 122 and 124 (first measurement unit, second measurement unit), and memory 125. , and a control unit 126, and executes each process based on the control unit 126.
 <擬似乱数関数生成処理>
 次に、擬似乱数関数生成装置110による擬似乱数生成処理を説明する。擬似乱数関数生成装置110は、入力値x∈Domの入力に対して出力値y∈Ranを出力する擬似乱数生成関数に透かしm∈{0,1}Lmを埋め込んだ擬似乱数生成関数C~を生成する。Domは入力空間であり、Ranは出力空間であり、Lmは正整数である。
 図2に例示するように、擬似乱数関数生成装置110のセットアップ部111には、セキュリティパラメータλを表す1λが入力される。セットアップ部111は、セキュリティパラメータλを入力に取り、(pp,xk)←WM.Setup(1λ)によって公開パラメータppおよび透かし抽出鍵xkを得て出力する。なお(pp,xk)←WM.Setup(1λ)の詳細は、例えば、非特許文献1から5等に開示されている(ステップS111)。
<Pseudo-random number function generation process>
Next, pseudorandom number generation processing by the pseudorandom number function generation device 110 will be explained. The pseudorandom number function generation device 110 generates a pseudorandom number generation function C~ in which a watermark m∈{0,1} Lm is embedded in a pseudorandom number generation function that outputs an output value y∈Ran in response to an input value x∈Dom. generate. Dom is the input space, Ran is the output space, and Lm is a positive integer.
As illustrated in FIG. 2, 1 λ representing the security parameter λ is input to the setup unit 111 of the pseudo-random number function generation device 110. The setup unit 111 takes the security parameter λ as an input, obtains the public parameter pp and the watermark extraction key xk by (pp, xk)←WM.Setup(1 λ ), and outputs the obtained public parameter pp and the watermark extraction key xk. Note that the details of (pp,xk)←WM.Setup(1 λ ) are disclosed in, for example, Non-Patent Documents 1 to 5 (step S111).
 鍵生成部112は、公開パラメータppを入力に取り、(prfk,τ)←WM.Gen(pp)によってPRF鍵prfkおよび公開タグτを得て出力する。なお(prfk,τ)←WM.Gen(pp)の詳細は、例えば、非特許文献1から5等に開示されている(ステップS112)。 The key generation unit 112 takes the public parameter pp as input, obtains the PRF key prfk and the public tag τ by (prfk,τ)←WM.Gen(pp), and outputs the obtained PRF key prfk and public tag τ. Note that the details of (prfk,τ)←WM.Gen(pp) are disclosed in, for example, Non-Patent Documents 1 to 5 (step S112).
 透かし埋め込み部113は、公開パラメータpp、PRF鍵prfk、および透かしm∈{0,1}Lmを入力に取り、C~←WM.Mark(pp,prfk,m||0)によって透かしmと0とのビット連結であるメッセージm||0が埋め込まれた擬似乱数生成関数C~を得て出力する。なお、WM.Mark(pp,prfk,m||0)は開示されていないが、WM.Mark(pp,prfk,m)の詳細は、例えば、非特許文献1から5等に開示されている(ステップS113)。 The watermark embedding unit 113 takes the public parameter pp, the PRF key prfk, and the watermark m∈{0,1} Lm as input, and embeds the watermark m and 0 using C~←WM.Mark(pp,prfk,m||0). Obtain and output a pseudo-random number generation function C~ in which a message m||0, which is a bit concatenation of , is embedded. Although WM.Mark(pp,prfk,m||0) is not disclosed, details of WM.Mark(pp,prfk,m) are disclosed in, for example, Non-Patent Documents 1 to 5. (Step S113).
 擬似乱数生成関数C~、透かし抽出鍵xk、および公開タグτは出力部114に送られ、そこから出力される。擬似乱数生成関数C~は、ネットワーク経由で擬似乱数関数利用装置130に送られ、擬似乱数関数利用装置130での処理に利用される。透かし抽出鍵xkおよび公開タグτは、ネットワーク経由で透かし抽出装置120に送られる。その他、セキュリティパラメータλ等の公開パラメータはネットワーク経由で公開される(ステップS114)。 The pseudorandom number generation function C~, the watermark extraction key xk, and the public tag τ are sent to the output unit 114 and output from there. The pseudorandom number generation function C~ is sent to the pseudorandom number function utilization device 130 via the network, and is used for processing in the pseudorandom number function utilization device 130. The watermark extraction key xk and the public tag τ are sent to the watermark extraction device 120 via the network. In addition, public parameters such as the security parameter λ are made public via the network (step S114).
 <透かし抽出処理>
 次に、図3および図4を用い、透かし抽出装置120による透かし抽出処理を説明する。
 透かし抽出装置120の測定部121は、透かし抽出鍵xk、公開タグτ、実数のパラメータε,δ(0≦ε,δ<1)、セキュリティパラメータλ、ならびに、擬似乱数生成関数C~の動作を模した古典入出力量子装置C=(q,U)の量子ビットの量子状態qおよびユニタリ変換Uを表す情報を入力に取り、式(1)の測定によって測定値p~Lm+1を得て出力する。前述のように、式(1)におけるDτ,Lm+1は、Dτ,Lm+1:(γ,x,y)←ELWMPRF.Sim(xk,τ,Lm+1)によって定義される確率分布を表す(ステップS121)。
<Watermark extraction process>
Next, watermark extraction processing by the watermark extraction device 120 will be explained using FIGS. 3 and 4.
The measurement unit 121 of the watermark extraction device 120 measures the operation of the watermark extraction key xk, public tag τ, real parameters ε, δ (0≦ε, δ<1), security parameter λ, and pseudorandom number generation function C~. Taking as input the information representing the quantum state q of the qubit and the unitary transformation U of a modeled classical input/output quantum device C=(q,U), we obtain the measured value p~ Lm+1 by measuring Equation (1). Output. As mentioned above, D τ,Lm+1 in equation (1) is the probability defined by D τ,Lm+1 :(γ,x,y)←ELWMPRF.Sim(xk,τ,Lm+1) The distribution is represented (step S121).
 抽出部122は、測定値p~Lm+1および古典入出力量子装置Cの測定後の量子ビットの量子状態qを入力に取り、測定値p~Lm+1がp~Lm+1<(1/2)+ε-4ε’を満たすか否かを判定する(ステップS122a)。ここで、抽出部122がp~Lm+1<(1/2)+ε-4ε’を満たすと判定した場合、抽出部122は、古典入出力量子装置Cに透かしが埋め込まれていないことを表す情報unmarkedを出力し(ステップS122b)、処理を終了する。なお、詳細は省略するが、p~Lm+1<(1/2)+ε-4ε’を満たす場合に、古典入出力量子装置Cに透かしが埋め込まれていないことは数学的に証明可能である。 The extraction unit 122 takes as input the measured value p~ Lm+1 and the quantum state q of the quantum bit after the measurement of the classical input/output quantum device C, and the measured value p~ Lm+1 is p~ Lm+1 <(1 /2)+ε-4ε' is determined (step S122a). Here, if the extraction unit 122 determines that p~ Lm+1 <(1/2)+ε-4ε' is satisfied, the extraction unit 122 determines that no watermark is embedded in the classical input/output quantum device C. The information representing "unmarked" is output (step S122b), and the process ends. Although the details are omitted, it is mathematically provable that a watermark is not embedded in the classical input/output quantum device C when p~ Lm+1 <(1/2)+ε-4ε' is satisfied. be.
 一方、測定値p~Lm+1がp~Lm+1<(1/2)+ε-4ε’を満たさないと判定した場合、測定値p~Lm+1は古典入出力量子装置Cの測定後の量子ビットの量子状態qをq0として出力する(ステップS122c)。 On the other hand, if it is determined that the measured value p~ Lm+1 does not satisfy p~ Lm+1 <(1/2)+ε-4ε', the measured value p~ Lm+1 is the measurement of the classical input/output quantum device C. The quantum state q of the next quantum bit is output as q 0 (step S122c).
 測定部123は、i=1に設定する(ステップS123a)。 The measurement unit 123 sets i=1 (step S123a).
 測定部123は、透かし抽出鍵xk、公開タグτ、パラメータε,δ、セキュリティパラメータλ、ならびに、量子ビットの量子状態qi-1およびユニタリ変換Uを表す情報を入力に取り、式(2)の測定によって測定値p~iを得る。前述のように、式(2)におけるDτ,iは、Dτ,i:(γ,x,y)←ELWMPRF.Sim(xk,τ,i)によって定義される確率分布を表す(ステップS123b)。 The measurement unit 123 receives as input the watermark extraction key xk, the public tag τ, the parameters ε, δ, the security parameter λ, and the information representing the quantum state q i-1 of the quantum bit and the unitary transformation U, and calculates the equation (2). Obtain the measured value p~ i by measuring . As mentioned above, D τ,i in equation (2) represents the probability distribution defined by D τ,i :(γ,x,y)←ELWMPRF.Sim(xk,τ,i) (step S123b ).
 測定部123は、古典入出力量子装置Cの測定後の量子ビットの量子状態をqiとし、p~i>(1/2)+ε-4ε’であるか否かを判定する(ステップS123c)。ここで、測定部123がp~i>(1/2)+ε-4ε’であると判定した場合、測定部123はmi’=0と設定して(ステップS123e)、ステップS123gに進む。一方、測定部123がp~i>(1/2)+ε-4ε’でないと判定した場合、測定部123は、p~i<(1/2)+ε-4ε’であるか否かを判定する(ステップS123d)。ここで、測定部123がp~i<(1/2)+ε-4ε’であると判定した場合、測定部123はmi’=1と設定して(ステップS123f)、ステップS123gに進む。一方、測定部123がp~i<(1/2)+ε-4ε’でないと判定した場合(すなわち、何れかのiでp~i=(1/2)+ε-4ε’の場合)、測定部123はm’=0Lmに設定し、それを抽出部124に送る。この場合、抽出部124は、この透かしm’=0Lmを出力し(ステップS124a)、処理を終了する。なお、詳細は省略するが、何れかのiでp~i=(1/2)+ε-4ε’の場合に、古典入出力量子装置Cに透かしm’=0Lmが埋め込まれていたことは数学的に証明可能である。 The measuring unit 123 sets the quantum state of the quantum bit of the classical input/output quantum device C after measurement to q i , and determines whether p~ i >(1/2)+ε-4ε' (step S123c ). Here, if the measuring unit 123 determines that p~ i >(1/2)+ε-4ε', the measuring unit 123 sets m i '=0 (step S123e), and proceeds to step S123g. . On the other hand, if the measuring unit 123 determines that p~ i >(1/2)+ε-4ε' is not satisfied, the measuring unit 123 determines whether p~ i <(1/2)+ε-4ε'. is determined (step S123d). Here, if the measuring unit 123 determines that p~ i <(1/2)+ε-4ε', the measuring unit 123 sets m i '=1 (step S123f), and proceeds to step S123g. . On the other hand, when the measurement unit 123 determines that p~ i <(1/2)+ε-4ε' is not the case (that is, when p~ i =(1/2)+ε-4ε' for any i) , the measurement unit 123 sets m'=0 Lm and sends it to the extraction unit 124. In this case, the extraction unit 124 outputs this watermark m'=0 Lm (step S124a), and ends the process. Although the details are omitted, if p~ i = (1/2)+ε-4ε' for any i, the watermark m'=0 Lm is embedded in the classical input/output quantum device C. is mathematically provable.
 ステップS123gでは、測定部123がi=Lmであるか否かを判定する(ステップS123g)。ここで、i=Lmでない場合、測定部123はi+1を新たなiとし(i←i+1)(ステップS123h)、処理をステップS123bに戻す。一方、i=Lmである場合(すべてのi∈[Lm]についてp~i=(1/2)+ε-4ε’でなかった場合)、測定部123は、すべてのi∈[Lm]のmi’を抽出部124に送る。抽出部124は、透かしm’=m1’||…||mLm’を出力し(ステップS124b)、処理を終了する。なお、詳細は省略するが、すべてのi∈[Lm]についてp~i=(1/2)+ε-4ε’でなかった場合に、古典入出力量子装置Cに透かしm’=m1’||…||mLm’が埋め込まれていたことは数学的に証明可能である。 In step S123g, the measuring unit 123 determines whether or not i=Lm (step S123g). Here, if i=Lm, the measurement unit 123 sets i+1 to a new i (i←i+1) (step S123h), and returns the process to step S123b. On the other hand, if i=Lm (if p~ i =(1/2)+ε-4ε' is not satisfied for all i∈[Lm]), the measurement unit 123 measures all i∈[Lm]. m i ' is sent to the extraction unit 124. The extraction unit 124 outputs the watermark m'=m 1 '||...||m Lm ' (step S124b), and ends the process. Although the details are omitted, if p~ i =(1/2)+ε-4ε' is not satisfied for all i∈[Lm], a watermark m'=m 1 ' is added to the classical input/output quantum device C. ||…||m It is mathematically provable that Lm ' was embedded.
 <本実施形態の特徴>
 上述のように、本実施形態では、透かしmを埋め込んだ擬似乱数生成関数C~の動作を模した古典入出力量子装置Cから透かしmが除去されていた場合、ステップS122bで古典入出力量子装置Cに透かしが埋め込まれていないことを表す情報unmarkedが出力される。これにより、透かしmを埋め込んだ擬似乱数生成関数C~の動作を模しているが当該透かしmが除去されている量子計算装置Cを検出できる。また、古典入出力量子装置Cにも透かしmが埋め込まれていた場合には、ステップS124aまたはS124bで正しい透かしm’を得ることができる。すなわち、本実施形態は、量子計算装置を用いる攻撃者に対しても耐性を持つ初めての電子透かし埋め込み可能擬似乱数関数方式である。擬似乱数生成関数に埋め込まれた電子透かしを除去しようとする攻撃者が、その擬似乱数生成関数を量子装置化したとしても、その量子装置から正しく電子透かし抽出することができる。
<Features of this embodiment>
As described above, in this embodiment, if the watermark m has been removed from the classical input/output quantum device C that simulates the operation of the pseudorandom number generation function C~ in which the watermark m is embedded, the classical input/output quantum device The information unmarked indicating that no watermark is embedded in C is output. Thereby, it is possible to detect a quantum computing device C that imitates the operation of a pseudorandom number generation function C~ in which a watermark m is embedded, but in which the watermark m has been removed. Furthermore, if the watermark m is also embedded in the classical input/output quantum device C, a correct watermark m' can be obtained in step S124a or S124b. That is, this embodiment is the first digital watermark embeddable pseudorandom number function method that is resistant to attackers using quantum computing devices. Even if an attacker who attempts to remove a digital watermark embedded in a pseudorandom number generation function converts the pseudorandom number generation function into a quantum device, the digital watermark can be correctly extracted from the quantum device.
 [第2実施形態]
 第2実施形態は、第1実施形態の具体例であり、前述したLWE問題に基づくExtraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFを用いた例である。以降、既に説明した事項については説明を簡略化する。第2実施形態では、入力空間Domが{0,1}n1であり、出力空間Ranが{0,1}m1であり、n1およびm1がそれぞれ正整数である。
[Second embodiment]
The second embodiment is a specific example of the first embodiment, and is an example using a pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on the LWE problem described above. Hereinafter, the explanation of matters that have already been explained will be simplified. In the second embodiment, the input space Dom is {0,1} n1 , the output space Ran is {0,1} m1 , and n1 and m1 are each positive integers.
 <擬似乱数関数生成処理>
 セットアップ部111は、セキュリティパラメータλを入力に取り、(pk,sk)←PKE.Gen(1λ)を得、(pk,sk)を(pp,xk):=(pk,sk)として出力する(ステップS111)。
<Pseudo-random number function generation process>
The setup unit 111 takes the security parameter λ as input, obtains (pk,sk)←PKE.Gen(1 λ ), and outputs (pk,sk) as (pp,xk):=(pk,sk). (Step S111).
 鍵生成部112は、pp=pkを入力に取り、セキュリティパラメータλおよびD[k,m,x]のサイズを表すパラメータκを入力に取り、msk←CPRF.Setup(1λ,1κ)を得、mskをy←CPRF.Eval(msk,x)に固定したG(x)を得、セキュリティパラメータλを用い、k←SKE.Gen(1λ)を生成し、kを固定したDauth[k,x]を設定する。さらに鍵生成部112は、G(x)およびDauth[k,x]を用い、skf←CPRF.Constrain(G(x),Dauth[k,x])を生成し、skfが固定されたCPRF.CEval(skf,x)であるG¬∈νauth(x)を生成し、prfk=(G(x),k)およびτ←PKE.Enc(pp,(G¬∈νauth(x),k))を得て出力する。ただし、νauth⊂{0,1}n1は、Dauth[k,x]=1を満たすxの集合である(ステップS112)。 The key generation unit 112 takes pp=pk as input, takes security parameter λ and parameter κ representing the size of D[k,m,x] as input, and calculates msk←CPRF.Setup(1 λ , 1 κ ). Then, obtain G(x) with msk fixed to y←CPRF.Eval(msk,x), use the security parameter λ, generate k←SKE.Gen(1 λ ), and fix k with D auth [ k,x]. Furthermore, the key generation unit 112 uses G(x) and D auth [k,x] to generate sk f ←CPRF.Constrain(G(x),D auth [k,x]), and sk f is fixed. CPRF.CEval(sk f ,x) with G ¬∈νauth (x), prfk=( G (x),k) and τ←PKE.Enc(pp,(G ),k)) and output it. However, ν auth ⊂{0,1} n1 is a set of x that satisfies D auth [k,x]=1 (step S112).
 透かし埋め込み部113は、公開パラメータpp、PRF鍵prfk、および透かしm∈{0,1}Lmを入力に取り、pp=pkおよびprfk=(G(x),k)として、kおよびmを固定したD[k,m,x]を設定する。さらに透かし埋め込み部113は、G(x)およびD[k,m,x]を用い、skf←CPRF.Constrain(G(x),D[k,m,x])を生成し、skfが固定されたCPRF.CEval(skf,x)であるG¬∈ν(x)を生成し、G¬∈ν(x)を擬似乱数生成関数C~として出力する。ただし、ν⊂{0,1}nは、D[k,m,x]=1を満たす入力値xの集合である(ステップS113)。 The watermark embedding unit 113 takes as input the public parameter pp, the PRF key prfk, and the watermark m∈{0,1} Lm , and fixes k and m as pp=pk and prfk=(G(x),k). Set D[k,m,x]. Further, the watermark embedding unit 113 uses G(x) and D[k,m,x] to generate sk f ←CPRF.Constrain(G(x),D[k,m,x]), and sk f Generates G ¬∈ν (x) where CPRF.CEval(sk f ,x) is fixed, and outputs G ¬∈ν (x) as a pseudorandom number generation function C~. However, ν⊂{0,1} n is a set of input values x that satisfy D[k,m,x]=1 (step S113).
 その他は、第1実施形態の擬似乱数関数生成処理で説明した通りである。 Other details are as described in the pseudo-random number function generation process of the first embodiment.
 <透かし抽出処理>
 本実施形態では、式(1)におけるDτ,Lm+1:(γ,x,y)←ELWMPRF.Sim(xk,τ,Lm+1)は、xk、τ、およびLm+1を入力に取り、sk:=xkとし、(G¬∈νauth(x),k)←PKE.Dec(sk,τ)とし、γ←{0,1}とし、x←SKE.Enc(k, Lm+1||γ)およびy←G¬∈νauth(x)を得、(γ,x,y)を出力する関数である。式(2)におけるDτ,i:(γ,x,y)←ELWMPRF.Sim(xk,τ,i)は、xk、τ、およびi∈[Lm]を入力に取り、sk:=xkとし、(G¬∈νauth(x),k)←PKE.Dec(sk,τ)とし、γ←{0,1}とし、x←SKE.Enc(k,i||γ)およびy←G¬∈νauth(x)を得、(γ,x,y)を出力する関数である。その他は、第1実施形態の透かし抽出処理で説明した通りである。
<Watermark extraction process>
In this embodiment, D τ,Lm+1 :(γ,x,y)←ELWMPRF.Sim(xk,τ,Lm+1) in equation (1) uses xk, τ, and Lm+1 as inputs. , sk:=xk, (G ¬∈νauth (x),k)←PKE.Dec(sk,τ), γ←{0,1}, x←SKE.Enc(k, Lm+1 ||γ) and y←G ¬∈νauth (x), which is a function that outputs (γ,x,y). D τ,i :(γ,x,y)←ELWMPRF.Sim(xk,τ,i) in equation (2) takes xk, τ, and i∈[Lm] as input, and sets sk:=xk. , (G ¬∈νauth (x),k)←PKE.Dec(sk,τ), γ←{0,1}, x←SKE.Enc(k,i||γ) and y←G This is a function that obtains ∈νauth (x) and outputs (γ,x,y). The rest is as described in the watermark extraction process of the first embodiment.
 [第3実施形態]
 第3実施形態は、第1実施形態の具体例であり、識別不可能性難読化に基づくExtraction-Less電子透かしを埋め込み可能な擬似乱数生成関数ELWMPRFを用いた例である。第3実施形態では、入力空間Domは{0,1}Linであり、出力空間Ranは{0,1}Loutである。なお、LinおよびLoutはそれぞれ正整数である。
[Third embodiment]
The third embodiment is a specific example of the first embodiment, and is an example using a pseudorandom number generation function ELWMPRF that can embed an Extraction-Less digital watermark based on indiscernibility obfuscation. In the third embodiment, the input space Dom is {0,1} Lin and the output space Ran is {0,1} Lout . Note that Lin and Lout are each positive integers.
 <擬似乱数関数生成処理>
 セットアップ部111は、セキュリティパラメータλを入力に取り、(pp,xk):=(⊥,⊥)に設定して(pp,xk)を出力する(ステップS111)。
<Pseudo-random number function generation process>
The setup unit 111 receives the security parameter λ, sets (pp, xk):=(⊥,⊥), and outputs (pp, xk) (step S111).
 鍵生成部112は、pp:=⊥を入力に取り、演算鍵K←PRF.Gen(1λ)を得、演算鍵Kを固定したPRF.Evalprfk(K,x)であるF(x)を計算し、(pe.ek, pe.dk)←PE.Gen(1λ)を生成し、prfk:=(F(x), pe.dk)およびτ:=pe.ekを出力する(ステップS112)。 The key generation unit 112 takes pp:=⊥ as input, obtains the calculation key K←PRF.Gen(1 λ ), and generates F(x) which is PRF.Eval prfk (K,x) with the calculation key K fixed. , generate (pe.ek, pe.dk)←PE.Gen(1 λ ), and output prfk:=(F(x), pe.dk) and τ:=pe.ek (step S112).
 透かし埋め込み部113は、pp:=⊥およびprfk:=(F(x), pe.dk)を入力に取り、prfk、pe.dkおよびmを固定したD[F(x), pe.dk, m]を設定し、D[F(x), pe.dk, m]を難読化したiO(D[F(x), pe.dk, m])を得、iO(D[F(x), pe.dk, m])を擬似乱数生成関数C~として出力する(ステップS113)。 The watermark embedding unit 113 takes pp:=⊥ and prfk:=(F(x), pe.dk) as input, and generates D[F(x), pe.dk, with prfk, pe.dk and m fixed. m], obtain iO(D[F(x), pe.dk, m]) which obfuscates D[F(x), pe.dk, m], and obtain iO(D[F(x) , pe.dk, m]) as a pseudorandom number generation function C~ (step S113).
 その他は、第1実施形態の擬似乱数関数生成処理で説明した通りである。 Other details are as described in the pseudo-random number function generation process of the first embodiment.
 <透かし抽出処理>
 本実施形態では、式(1)におけるDτ,Lm+1:(γ,x,y)←ELWMPRF.Sim(xk,τ,Lm+1)は、 (pe.ek, pe.dk)←PE.Gen(1λ)で得られたpe.ekをτ:=pe.ekとし、xk:=⊥とし、γ←{0,1}およびs←{0,1}λとし、y←PRF(s)とし、Lm+1についてx←PE.Enc(pe.ek, s||Lm+1||γ)を計算し、(γ,x,y)を出力する関数である。式(2)におけるDτ,i:(γ,x,y)←ELWMPRF.Sim(xk,τ,i)は、(pe.ek, pe.dk)←PE.Gen(1λ)で得られたpe.ekをτ:=pe.ekとし、xk:=⊥とし、γ←{0,1}およびs←{0,1}λとし、y←PRF(s)とし、i∈[Lm]についてx←PE.Enc(pe.ek, s||i||γ)を計算し、(γ,x,y)を出力する関数である。その他は、第1実施形態の透かし抽出処理で説明した通りである。
<Watermark extraction process>
In this embodiment, D τ,Lm+1 :(γ,x,y)←ELWMPRF.Sim(xk,τ,Lm+1) in equation (1) is (pe.ek, pe.dk)←PE Let pe.ek obtained by .Gen(1 λ ) be τ:=pe.ek, xk:=⊥, let γ←{0,1} and s←{0,1} λ , and y←PRF( s), calculates x←PE.Enc(pe.ek, s||Lm+1||γ) for Lm+1, and outputs (γ,x,y). D τ,i in equation (2): (γ,x,y)←ELWMPRF.Sim(xk,τ,i) is obtained by (pe.ek, pe.dk)←PE.Gen(1 λ ). pe.ek is τ:=pe.ek, xk:=⊥, γ←{0,1} and s←{0,1} λ , y←PRF(s), i∈[Lm] This is a function that calculates x←PE.Enc(pe.ek, s||i||γ) and outputs (γ,x,y). The rest is as described in the watermark extraction process of the first embodiment.
 [ハードウェア構成]
 各実施形態における擬似乱数関数生成装置110は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)やRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される装置である。すなわち、各実施形態における擬似乱数関数生成装置110は、例えば、それぞれが有する各部を実装するように構成された処理回路(processing circuitry)を有する。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、単独で処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。また、1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
[Hardware configuration]
The pseudo-random number function generation device 110 in each embodiment includes, for example, a processor (hardware processor) such as a CPU (central processing unit), a memory such as a RAM (random-access memory), a ROM (read-only memory), etc. It is a device configured by a general-purpose or dedicated computer running a predetermined program. That is, the pseudorandom number function generation device 110 in each embodiment has, for example, a processing circuitry configured to implement each unit included therein. This computer may include one processor and memory, or may include multiple processors and memories. This program may be installed on the computer or may be pre-recorded in a ROM or the like. In addition, some or all of the processing units may be configured using an electronic circuit that independently realizes a processing function, rather than an electronic circuit that realizes a functional configuration by reading a program like a CPU. . Further, an electronic circuit constituting one device may include a plurality of CPUs.
 図5は、各実施形態における擬似乱数関数生成装置110のハードウェア構成を例示したブロック図である。図5に例示するように、この例の擬似乱数関数生成装置110は、CPU(Central Processing Unit)10a、入力部10b、出力部10c、RAM(Random Access Memory)10d、ROM(Read Only Memory)10e、補助記憶装置10f、通信部10h及びバス10gを有している。この例のCPU10aは、制御部10aa、演算部10ab及びレジスタ10acを有し、レジスタ10acに読み込まれた各種プログラムに従って様々な演算処理を実行する。また、入力部10bは、データが入力される入力端子、キーボード、マウス、タッチパネル等である。また、出力部10cは、データが出力される出力端子、ディスプレイ等である。通信部10hは、所定のプログラムを読み込んだCPU10aによって制御されるLANカード等である。また、RAM10dは、SRAM (Static Random Access Memory)、DRAM (Dynamic Random Access Memory)等であり、所定のプログラムが格納されるプログラム領域10da及び各種データが格納されるデータ領域10dbを有している。また、補助記憶装置10fは、例えば、ハードディスク、MO(Magneto-Optical disc)、半導体メモリ等であり、所定のプログラムが格納されるプログラム領域10fa及び各種データが格納されるデータ領域10fbを有している。また、バス10gは、CPU10a、入力部10b、出力部10c、RAM10d、ROM10e、通信部10h及び補助記憶装置10fを、情報のやり取りが可能なように接続する。CPU10aは、読み込まれたOS(Operating System)プログラムに従い、補助記憶装置10fのプログラム領域10faに格納されているプログラムをRAM10dのプログラム領域10daに書き込む。同様にCPU10aは、補助記憶装置10fのデータ領域10fbに格納されている各種データを、RAM10dのデータ領域10dbに書き込む。そして、このプログラムやデータが書き込まれたRAM10d上のアドレスがCPU10aのレジスタ10acに格納される。CPU10aの制御部10aaは、レジスタ10acに格納されたこれらのアドレスを順次読み出し、読み出したアドレスが示すRAM10d上の領域からプログラムやデータを読み出し、そのプログラムが示す演算を演算部10abに順次実行させ、その演算結果をレジスタ10acに格納していく。このような構成により、擬似乱数関数生成装置110の機能構成が実現される。 FIG. 5 is a block diagram illustrating the hardware configuration of the pseudorandom number function generation device 110 in each embodiment. As illustrated in FIG. 5, the pseudorandom number function generation device 110 in this example includes a CPU (Central Processing Unit) 10a, an input section 10b, an output section 10c, a RAM (Random Access Memory) 10d, and a ROM (Read Only Memory) 10e. , an auxiliary storage device 10f, a communication section 10h, and a bus 10g. The CPU 10a in this example has a control section 10aa, a calculation section 10ab, and a register 10ac, and executes various calculation processes according to various programs read into the register 10ac. The input unit 10b is an input terminal into which data is input, a keyboard, a mouse, a touch panel, etc. Further, the output unit 10c is an output terminal, a display, etc. to which data is output. The communication unit 10h is a LAN card or the like that is controlled by the CPU 10a loaded with a predetermined program. Further, the RAM 10d is an SRAM (Static Random Access Memory), a DRAM (Dynamic Random Access Memory), etc., and has a program area 10da in which a predetermined program is stored and a data area 10db in which various data are stored. The auxiliary storage device 10f is, for example, a hard disk, an MO (Magneto-Optical disc), a semiconductor memory, etc., and has a program area 10fa in which a predetermined program is stored and a data area 10fb in which various data are stored. There is. Further, the bus 10g connects the CPU 10a, the input section 10b, the output section 10c, the RAM 10d, the ROM 10e, the communication section 10h, and the auxiliary storage device 10f so that information can be exchanged. The CPU 10a writes the program stored in the program area 10fa of the auxiliary storage device 10f to the program area 10da of the RAM 10d according to the read OS (Operating System) program. Similarly, the CPU 10a writes various data stored in the data area 10fb of the auxiliary storage device 10f to the data area 10db of the RAM 10d. Then, the address on the RAM 10d where this program and data are written is stored in the register 10ac of the CPU 10a. The control unit 10aa of the CPU 10a sequentially reads these addresses stored in the register 10ac, reads programs and data from the area on the RAM 10d indicated by the read addresses, and causes the calculation unit 10ab to sequentially execute the calculations indicated by the programs. The calculation results are stored in the register 10ac. With such a configuration, the functional configuration of the pseudorandom number function generation device 110 is realized.
 上述のプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。 The above program can be recorded on a computer readable recording medium. An example of a computer readable storage medium is a non-transitory storage medium. Examples of such recording media are magnetic recording devices, optical disks, magneto-optical recording media, semiconductor memories, and the like.
 このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。上述のように、このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。 This program is distributed, for example, by selling, transferring, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded. Furthermore, this 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 another computer via a network. As described above, a computer that executes such a program, for example, first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. When executing a process, this computer reads a program stored in its own storage device and executes a process according to the read program. In addition, as another form of execution of this program, the computer may directly read the program from a portable recording medium and execute processing according to the program, and furthermore, the program may be transferred to this computer from the server computer. The process may be executed in accordance with the received program each time. In addition, the above-mentioned processing is executed by a so-called ASP (Application Service Provider) service, which does not transfer programs from the server computer to this computer, but only realizes processing functions by issuing execution instructions and obtaining results. You can also use it as Note that the program in this embodiment includes information that is used for processing by an electronic computer and that is similar to a program (data that is not a direct command to the computer but has a property that defines the processing of the computer, etc.).
 各実施形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 In each of the embodiments, the present apparatus is configured by executing a predetermined program on a computer, but at least a part of these processing contents may be implemented in hardware.
 各実施形態における透かし抽出装置120は、量子計算装置で構成されてもよいし、量子計算装置と汎用または専用の古典コンピュータが所定のプログラムを実行することで構成される装置とのハイブリッドで構成されてもよい。 The watermark extraction device 120 in each embodiment may be configured with a quantum computing device, or a hybrid of a quantum computing device and a device configured by a general-purpose or dedicated classical computer running a predetermined program. It's okay.
 [その他の変形例等]
 なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
[Other variations, etc.]
Note that the present invention is not limited to the above-described embodiments. For example, the various processes described above may not only be executed in chronological order as described, but may also be executed in parallel or individually depending on the processing capacity of the device executing the process or as necessary. It goes without saying that other changes can be made as appropriate without departing from the spirit of the present invention.
 本発明は、擬似乱数関数を用いる暗号技術分野、秘密分散技術分野、秘密計算技術分野などに利用できる。 The present invention can be used in the field of cryptography, secret sharing technology, secure calculation technology, etc. that use pseudo-random number functions.
1 セキュリティシステム
110 擬似乱数関数生成装置
111 セットアップ部
112 鍵生成部
113 透かし埋め込み部
120 透かし抽出装置
121,123 測定部
122,124 抽出部
1 Security system 110 Pseudo-random number function generation device 111 Setup section 112 Key generation section 113 Watermark embedding section 120 Watermark extraction device 121, 123 Measurement section 122, 124 Extraction section

Claims (8)

  1.  入力値x∈Domの入力に対して出力値y∈Ranを出力する擬似乱数生成関数に透かしm∈{0,1}Lmを埋め込んだ擬似乱数生成関数C~を生成する擬似乱数関数生成装置であって、
     Domが入力空間であり、Ranが出力空間であり、Lmが正整数であり、x1||x2がx1とx2の連結を表し、
     公開パラメータppおよび透かし抽出鍵xkを出力するセットアップ部と、
     前記公開パラメータppを入力に取り、PRF鍵prfkおよび公開タグτを出力する鍵生成部と、
     前記公開パラメータpp、前記PRF鍵prfk、および透かしmを入力に取り、前記透かしmと0とのビット連結であるメッセージm||0が埋め込まれた擬似乱数生成関数C~を出力する透かし埋め込み部と、
    を有する擬似乱数関数生成装置。
    A pseudo-random number generation device that generates a pseudo-random number generation function C~ with a watermark m∈{0,1} Lm embedded in the pseudo-random number generation function that outputs an output value y∈Ran for an input value x∈Dom. There it is,
    Dom is the input space, Ran is the output space, Lm is a positive integer, x 1 ||x 2 represents the concatenation of x 1 and x 2 ,
    a setup section that outputs public parameters pp and watermark extraction key xk;
    a key generation unit that takes the public parameter pp as input and outputs a PRF key prfk and a public tag τ;
    a watermark embedding unit that takes the public parameter pp, the PRF key prfk, and the watermark m as input, and outputs a pseudorandom number generation function C~ in which a message m||0 that is a bit concatenation of the watermark m and 0 is embedded; and,
    A pseudo-random number function generation device having:
  2.  請求項1の擬似乱数関数生成装置であって、
     前記入力空間Domが{0,1}n1であり、前記出力空間Ranが{0,1}m1であり、n1およびm1がそれぞれ正整数であり、[L]が整数の集合1,…,Lを表し、
     LWE問題の困難性に基づく制限可能擬似乱数生成関数PRFCPRFが、msk←CPRF.Setup(1λ),skf←CPRF.Constrain(msk,f),y←CPRF.Eval(msk,x),y←CPRF.CEval(skf,x)で表される関数を含み、
     CPRF.Setup(1λ)は、セキュリティパラメータλを入力に取り、マスター鍵mskを出力するセットアップ関数であり、
     CPRF.Constrain(msk,f)は、前記マスター鍵mskおよび任意の関数fを入力に取り、制限鍵skfを出力する制限鍵生成関数であり、
     CPRF.Eval(msk,x)は、前記マスター鍵msk及び前記入力値x∈Domを入力に取り、y∈Ranを出力する演算関数であり、
     CPRF.CEval(skf,x)は、前記制限鍵skf及び前記入力値x∈Domを入力に取り、前記出力値y∈Ranを出力する制限演算関数であり、
     前記マスター鍵mskが固定されたCPRF.Eval(msk,x)をG(x):{0,1}n1→{0,1}m1と表し、
     前記制限鍵skfが固定されたCPRF.CEval(skf,x)をG¬∈ν(x):{0,1}n1→{0,1}m2と表し、
     νは関数f(・)についてf(x)=1を満たすxの集合を表し、G¬∈ν(x)は前記集合νに属さないxについてのみ使用可能であり、
     LWE問題の困難性に基づく秘密鍵暗号方式SKEが、k←SKE.Gen(1λ),ct←SKE.Enc(k,m),m’ or ⊥←SKE.Dec(k,ct)で表される関数を含み、
     KE.Gen(1λ)は、前記セキュリティパラメータλを入力に取り、秘密鍵kを出力する秘密鍵生成関数であり、
     SKE.Enc(k,m)は、前記秘密鍵kおよびm∈{0,1}Lskeを入力に取り、暗号文ct∈{0,1}n1を出力する暗号化関数であり、Lske=ceil(Log2 Lm)+1であり、ceil(α)はα以上の最小の自然数を意味し、
     SKE.Dec(k,ct)は、前記秘密鍵kおよび前記暗号文ctを入力に取り、m’または復号できないことを表すエラー情報⊥を出力する復号関数であり、
     LWE問題の困難性に基づく公開鍵鍵暗号方式PKEが(pk,sk)←PKE.Gen(1λ),ct←PKE.Enc(pk,m),m’ or ⊥←PKE.Dec(sk,ct)によって表される関数を含み、
     PKE.Gen(1λ)は、前記セキュリティパラメータλを入力に取り、公開鍵pkおよび秘密鍵skを出力する鍵生成関数であり、
     PKE.Enc(pk,m)は、前記公開鍵pk及びm∈{0,1}を入力に取り、暗号文ctを出力する暗号化関数であり、
     PKE.Dec(sk,ct)は、前記秘密鍵sk及び前記暗号文ctを入力に取り、m’または復号できないことを表すエラー情報⊥を出力する復号関数であり、
     Dauth[k,x]は、kが固定されており、x∈{0,1}n1を入力にとり、d←SKE.Dec(k,x)を計算し、d≠⊥ならば0を出力し、そうでなければ1を出力する関数であり、
     D[k,m,x]は、kおよびmが固定されており、x∈{0,1}n1を入力にとり、d←SKE.Dec(k,x)を計算し、d≠⊥ならばd=i||η∈{0,1}Lskeとし、η=miならば1を出力し、そうでなければ0を出力し、d=⊥ならば0を出力する関数であり、i∈[Lm]およびη∈{0,1}であり、m=m1||…||mLm∈{0,1}Lmであり、
     前記セットアップ部は、前記セキュリティパラメータλを入力に取り、(pk,sk)←PKE.Gen(1λ)を得、(pk,sk)を(pp,xk):=(pk,sk)として出力し、
     前記鍵生成部は、
    pp=pkを入力に取り、
    前記セキュリティパラメータλおよびD[k,m,x]のサイズを表すパラメータκを入力に取り、msk←CPRF.Setup(1λ,1κ)を得、mskをy←CPRF.Eval(msk,x)に固定したG(x)を得、
    前記セキュリティパラメータλを用い、k←SKE.Gen(1λ)を生成し、
    kを固定したDauth[k,x]を設定し、
    G(x)およびDauth[k,x]を用い、skf←CPRF.Constrain(G(x),Dauth[k,x])を生成し、skfが固定されたCPRF.CEval(skf,x)であるG¬∈νauth(x)を生成し、
    prfk=(G(x),k)およびτ←PKE.Enc(pp,(G¬∈νauth(x),k))を得て出力し、
     νauth⊂{0,1}n1は、Dauth[k,x]=1を満たすxの集合であり、
     前記透かし埋め込み部は、
    pp=pkおよびprfk=(G(x),k)として、kおよびmを固定したD[k,m,x]を設定し、
    G(x)およびD[k,m,x]を用い、skf←CPRF.Constrain(G(x),D[k,m,x])を生成し、skfが固定されたCPRF.CEval(skf,x)であるG¬∈ν(x)を生成し、G¬∈ν(x)を前記擬似乱数生成関数C~として出力し、ν⊂{0,1}nは、D[k,m,x]=1を満たす前記入力値xの集合である、擬似乱数関数生成装置。
    The pseudorandom number function generation device according to claim 1,
    The input space Dom is {0,1} n1 , the output space Ran is {0,1} m1 , n1 and m1 are each positive integers, and [L] is a set of integers 1,...,L represents,
    The limitable pseudorandom number generation function PRF CPRF based on the difficulty of the LWE problem is msk←CPRF.Setup(1 λ ), sk f ←CPRF.Constrain(m sk ,f), y←CPRF.Eval(msk,x) ,y←CPRF.CEval(sk f ,x),
    CPRF.Setup(1 λ ) is a setup function that takes security parameter λ as input and outputs master key msk,
    CPRF.Constrain(msk,f) is a restricted key generation function that takes the master key msk and any function f as input and outputs a restricted key sk f ,
    CPRF.Eval(msk,x) is an arithmetic function that takes the master key msk and the input value x∈Dom as input and outputs y∈Ran,
    CPRF.CEval(sk f ,x) is a restriction operation function that takes the restriction key sk f and the input value x∈Dom as input and outputs the output value y∈Ran,
    CPRF.Eval(msk,x) with the fixed master key msk is expressed as G(x):{0,1} n1 →{0,1} m1 ,
    CPRF.CEval(sk f ,x) in which the restriction key sk f is fixed is expressed as G ¬∈ν (x):{0,1} n1 →{0,1} m2 ,
    ν represents a set of x that satisfies f(x)=1 for the function f(・), and G ¬∈ν (x) can only be used for x that does not belong to the set ν,
    The secret key cryptosystem SKE based on the difficulty of the LWE problem is expressed as k←SKE.Gen(1 λ ), ct←SKE.Enc(k,m), m' or ⊥←SKE.Dec(k,ct). contains the functions to be
    KE.Gen(1 λ ) is a secret key generation function that takes the security parameter λ as input and outputs the secret key k,
    SKE.Enc(k,m) is an encryption function that takes the secret key k and m∈{0,1} Lske as input and outputs the ciphertext ct∈{0,1} n1 , where Lske=ceil (Log 2 Lm)+1, and ceil(α) means the smallest natural number greater than or equal to α,
    SKE.Dec(k,ct) is a decryption function that takes the private key k and the ciphertext ct as input and outputs m' or error information ⊥ indicating that decryption is not possible,
    The public key cryptosystem PKE based on the difficulty of the LWE problem is (pk,sk)←PKE.Gen(1 λ ), ct←PKE.Enc(pk,m), m' or ⊥←PKE.Dec(sk, ct),
    PKE.Gen(1 λ ) is a key generation function that takes the security parameter λ as input and outputs a public key pk and a private key sk,
    PKE.Enc(pk,m) is an encryption function that takes the public key pk and m∈{0,1} as input and outputs ciphertext ct,
    PKE.Dec(sk,ct) is a decryption function that takes the private key sk and the ciphertext ct as input, and outputs m' or error information ⊥ indicating that it cannot be decrypted,
    D auth [k,x] has k fixed, takes x∈{0,1} n1 as input, calculates d←SKE.Dec(k,x), and outputs 0 if d≠⊥ and otherwise outputs 1,
    D[k,m,x] has k and m fixed, takes x∈{0,1} n1 as input, calculates d←SKE.Dec(k,x), and if d≠⊥ Let d=i||η∈{0,1} Lske , it is a function that outputs 1 if η=m i , otherwise outputs 0, and outputs 0 if d=⊥, and i∈ [Lm] and η∈{0,1}, and m=m 1 ||…||m Lm ∈{0,1} Lm ,
    The setup section takes the security parameter λ as input, obtains (pk,sk)←PKE.Gen(1 λ ), and outputs (pk,sk) as (pp,xk):=(pk,sk). death,
    The key generation unit is
    Take pp=pk as input,
    Taking the security parameter λ and the parameter κ representing the size of D[k,m,x] as input, obtain msk←CPRF.Setup(1 λ , 1 κ ), and set msk as y←CPRF.Eval(msk,x ), we get G(x) fixed at
    Using the security parameter λ, generate k←SKE.Gen(1 λ ),
    Set D auth [k,x] with k fixed,
    Using G(x) and D auth [k,x], generate sk f ←CPRF.Constrain(G(x),D auth [k,x]), and generate CPRF.CEval (sk generate G ¬∈νauth (x) where f ,x),
    Obtain and output prfk=(G(x),k) and τ←PKE.Enc(pp,(G ¬∈νauth (x),k)),
    ν auth ⊂{0,1} n1 is a set of x that satisfies D auth [k,x]=1,
    The watermark embedding section is
    Set D[k,m,x] with fixed k and m as pp=pk and prfk=(G(x),k),
    Using G(x) and D[k,m,x], generate sk f ←CPRF.Constrain(G(x),D[k,m,x]), and CPRF.CEval with fixed sk f (sk f ,x), G ¬∈ν (x) is output as the pseudorandom number generation function C~, and ν⊂{0,1} n is D[ k,m,x]=1 is a set of the input values x that satisfies 1.
  3.  請求項1の擬似乱数関数生成装置であって、
     前記入力空間Domが{0,1}Linであり、前記出力空間Ranが{0,1}Loutであり、LinおよびLoutはそれぞれ正整数であり、
     穴あけ擬似乱数生成関数PRFPPRFが、K←PRF.Gen(1λ),y←PRF.Evalprfk(K,x),K¬S⊆←PRF.Evalprfk¬x⊆(S)で表される関数を含み、
     PRF.Gen(1λ)は、セキュリティパラメータλを入力に取り、演算鍵Kを出力する鍵生成関数であり、
     PRF.Evalprfk(K,x)は、前記演算鍵Kと前記入力値x∈{0,1}Linを入力に取り、前記出力値y∈{0,1}Loutを出力する演算関数F(x):{0,1}Lin→{0,1}Loutであり、
     PRF.Evalprfk¬x⊆(S)は、前記演算鍵Kと前記入力値xの集合S⊆{0,1}L1を入力に取り、前記集合Sに属さない入力についてのみ使用可能な穴あけ鍵K¬S⊆を出力する穴あけ鍵生成関数F¬x⊆(S)であり、
     穴あけ可能暗号方式PEが、(ek,dk)←PE.Gen(1λ),dk≠c*←PE.Puncture(dk,{c*}),c←PE.Enc(ek,m),m’ or ⊥←PE.Dec(dk’,c’)で表される関数を含み、
     PE.Gen(1λ)は前記セキュリティパラメータλを入力に取り、暗号化鍵ek及び復号鍵dkを出力する鍵生成関数であり、
     PE.Puncture(dk,{c*})は、前記復号鍵dkおよび暗号文c*を入力に取り、前記暗号文c*以外にのみ使用可能な穴あけ復号鍵dk≠c*を出力する穴あけ復号鍵生成関数であり、
     PE.Enc(ek,m)は、前記暗号化鍵ekおよびm∈{0,1}Lptを入力にとり、暗号文c∈{0,1}Lctを出力する暗号化関数であり、
     PE.Dec(dk’,c’)は、前記復号鍵dk’および暗号文c’∈{0,1}Lctを入力に取り、m’∈{0,1}Lptまたは復号できないことを表すエラー情報⊥を出力する復号関数であり、
     LptおよびLctはそれぞれ正整数であり、Lpt=λ+ceil(log2 Lm)+1、Lin=Lct、およびLct=poly(λ, log2 Lm)を満たし、ceilは天井関数を表し、
     識別不可能性難読化関数iOは、回路{Cλ}λ∈Nを入力として受け取り、難読化された回路を出力する関数であり、
     擬似乱数生成関数PRFは、x∈{0,1}λを入力にとり、y∈{0,1}Loutを出力する関数であり、
     D[F(x), pe.dk, m]は、prfk、pe.dkおよびmが固定されており、前記入力値x∈{0,1}Lmを入力にとり、d←PE.Dec(pe.dk, x)を計算し、d≠⊥ならば、d=s||i||ηとし、η=miならば、D[F(x), pe.dk, m]はPRF(s)を出力し、そうでなければ、F(x)を出力し、d=⊥ならばF(x)を出力する関数であり、
     前記セットアップ部は、(pp,xk):=(⊥,⊥)に設定し、
     前記鍵生成部は、
    pp:=⊥を入力に取り、
    演算鍵K←PRF.Gen(1λ)を得、前記演算鍵Kを固定したPRF.Evalprfk(K,x)であるF(x)を計算し、
    (pe.ek, pe.dk)←PE.Gen(1λ)を生成し、
    prfk:=(F(x), pe.dk)およびτ:=pe.ekを出力し、
     前記透かし埋め込み部は、
    pp:=⊥およびprfk:=(F(x), pe.dk)を入力に取り、
    prfk、pe.dkおよびmを固定したD[F(x), pe.dk, m]を設定し、
    D[F(x), pe.dk, m]を難読化したiO(D[F(x), pe.dk, m])を得、iO(D[F(x), pe.dk, m])を前記擬似乱数生成関数C~として出力する、擬似乱数関数生成装置。
    The pseudorandom number function generation device according to claim 1,
    The input space Dom is {0,1} Lin , the output space Ran is {0,1} Lout , and Lin and Lout are each positive integers,
    The drilling pseudo-random number generation function PRF PPRF is expressed as K←PRF.Gen(1 λ ), y←PRF.Eval prfk (K,x), K ¬S⊆ ←PRF.Eval prfk¬x⊆ (S) contains functions,
    PRF.Gen(1 λ ) is a key generation function that takes the security parameter λ as input and outputs the calculation key K,
    PRF.Eval prfk (K , x) is a calculation function F ( x): {0,1} Lin →{0,1} Lout ,
    PRF.Eval prfk¬x⊆ (S) takes as input the set S⊆{0,1} L1 of the calculation key K and the input value x, and is a drilling key that can only be used for inputs that do not belong to the set S. A hole punching key generation function F ¬x⊆ (S) that outputs K ¬S⊆ ,
    Punctureable encryption method PE is (ek,dk)←PE.Gen(1 λ ),dk ≠c* ←PE.Puncture(dk,{c*}),c←PE.Enc(ek,m),m ' or ⊥←PE.Dec(dk',c'),
    PE.Gen(1 λ ) is a key generation function that takes the security parameter λ as input and outputs an encryption key ek and a decryption key dk,
    PE.Puncture(dk,{c*}) takes the decryption key dk and ciphertext c* as input, and performs puncture decryption that outputs a puncture decryption key dk ≠ c* that can only be used for ciphertexts other than the ciphertext c*. is a key generation function,
    PE.Enc(ek,m) is an encryption function that takes the encryption key ek and m∈{0,1} Lpt as input and outputs a ciphertext c∈{0,1} Lct ,
    PE.Dec(dk',c') takes the decryption key dk' and the ciphertext c'∈{0,1} Lct as input, and calculates m'∈{0,1} Lpt or an error indicating that it cannot be decrypted. It is a decoding function that outputs information ⊥,
    Lpt and Lct are positive integers, respectively, and satisfy Lpt=λ+ceil(log 2 Lm)+1, Lin=Lct, and Lct=poly(λ, log 2 Lm), and ceil represents the ceiling function,
    The indiscernibility obfuscation function iO is a function that receives a circuit {C λ } λ∈N as input and outputs an obfuscated circuit,
    The pseudorandom number generation function PRF is a function that takes x∈{0,1} λ as input and outputs y∈{0,1} Lout ,
    D[F(x), pe.dk, m] has prfk, pe.dk and m fixed, takes the input value x∈{0,1} Lm as input, and d←PE.Dec(pe .dk, x), and if d≠⊥, then d=s||i||η, and if η=m i , then D[F(x), pe.dk, m] is PRF(s ), otherwise outputs F(x), and if d=⊥ then outputs F(x),
    The setup section sets (pp,xk):=(⊥,⊥),
    The key generation unit is
    Take pp:=⊥ as input,
    Obtain the calculation key K←PRF.Gen(1 λ ), calculate F(x) which is PRF.Eval prfk (K,x) with the calculation key K fixed,
    Generate (pe.ek, pe.dk)←PE.Gen(1 λ ),
    output prfk:=(F(x), pe.dk) and τ:=pe.ek,
    The watermark embedding section is
    Take pp:=⊥ and prfk:=(F(x), pe.dk) as input,
    Set D[F(x), pe.dk, m] with prfk, pe.dk and m fixed,
    Obtain iO(D[F(x), pe.dk, m]) which obfuscates D[F(x), pe.dk, m], and obtain iO(D[F(x), pe.dk, m ]) as the pseudorandom number generation function C~.
  4.  入力値x∈Domの入力に対して出力値y∈Ranを出力する擬似乱数生成関数に透かしm∈{0,1}Lmを埋め込んだ擬似乱数生成関数C~の動作を模した古典入出力量子装置C=(q,U)が、量子状態qの量子ビット列と、前記量子状態qに対してユニタリ変換Uを施すユニタリ装置と、を含む量子計算装置であり、
     Domが入力空間であり、Ranが出力空間であり、Lmが正整数であり、x1||x2がx1とx2の連結を表し、
     Aε,δ P,D(q)は、前記量子状態qを入力に取り、前記量子状態qの測定値pを出力する近似射影装置であり、
     前記近似射影装置Aε,δ P,D(q)は、0≦ε,δ<1を満たすパラメータε,δ、二値射影測定装置の集合P=(Pb,x,y,Qb,x,y)b,x,y、および測定値の確率分布Dによって定まり、
     ε’=ε/(Lm+1)であり、λがセキュリティパラメータであり、δ’=2であり、Pb,x,y=Ux,y +|b><b|Ux,yであり、Qb,x,y=I-Pb,x,yであり、bは測定対象の量子状態を表す変数ベクトルであり、|b>はbのケットベクトルを表し、<b|はbのブラベクトルを表し、|b><b|は射影演算子を表し、Ux,yは前記入力値xの入力に対して前記出力値yを出力する前記擬似乱数生成関数C~の動作を模したユニタリ変換Uを表し、Ux,y +はUx,yのエルミート転置行列を表し、Iは単位行列を表し、[L]は整数の集合1,…,Lを表し、すべてのi∈[Lm+1]について、Dτ,iはDτ,i:(γ,x,y)←ELWMPRF.Sim(xk,τ,i)によって定義される確率分布を表し、ELWMPRF.Sim(xk,τ,i)は、透かし抽出鍵xk、公開タグτ、およびi∈[Lm]を入力に取り、(γ,x,y)を出力するシミュレーション関数であり、γはxに対してyが出力される確率を表す実数であり、
     前記透かし抽出鍵xk、前記公開タグτ、前記パラメータε,δ、ならびに、前記古典入出力量子装置C=(q,U)の量子ビットの前記量子状態qおよび前記ユニタリ変換Uを表す情報を入力に取り、
    Figure JPOXMLDOC01-appb-M000001

    の測定によって測定値p~Lm+1を得て出力する第1測定部と、
     前記測定値p~Lm+1がp~Lm+1<(1/2)+ε-4ε’を満たすか否かを判定し、p~Lm+1<(1/2)+ε-4ε’を満たすと判定した場合、前記古典入出力量子装置Cに透かしが埋め込まれていないことを表す情報unmarkedを出力する第1抽出部と、を有する透かし抽出装置。
    A classical input/output quantum model that imitates the behavior of a pseudorandom number generation function C~ that has a watermark m∈{0,1} Lm embedded in the pseudorandom number generation function that outputs an output value y∈Ran for an input value x∈Dom. The device C=(q,U) is a quantum computing device including a quantum bit string in a quantum state q and a unitary device that performs a unitary transformation U on the quantum state q,
    Dom is the input space, Ran is the output space, Lm is a positive integer, x 1 ||x 2 represents the concatenation of x 1 and x 2 ,
    A ε,δ P,D (q) is an approximate projection device that takes the quantum state q as input and outputs the measured value p of the quantum state q,
    The approximate projection device A ε,δ P,D (q) has parameters ε, δ satisfying 0≦ε, δ<1, and a set of binary projection measurement devices P=(P b,x,y ,Q b, x,y ) b,x,y and is determined by the probability distribution D of the measured values,
    ε'=ε/(Lm+1), λ is the security parameter, δ'=2 , and P b,x,y =U x,y + |b><b|U x, y , Q b,x,y =IP b,x,y , where b is a variable vector representing the quantum state to be measured, |b> represents the ket vector of b, and <b| represents the bra vector of represents a modeled unitary transformation U, U x,y + represents the Hermitian transpose of U x,y , I represents the identity matrix, [L] represents the set of integers 1,…,L, and all i For ∈[Lm+1], D τ,i represents the probability distribution defined by D τ,i : (γ,x,y)←ELWMPRF.Sim(xk,τ,i), and ELWMPRF.Sim(xk ,τ,i) is a simulation function that takes as input the watermark extraction key xk, the public tag τ, and i∈[Lm] and outputs (γ,x,y), where γ is is a real number representing the probability of being output,
    Input the watermark extraction key xk, the public tag τ, the parameters ε, δ, and information representing the quantum state q of the quantum bit of the classical input/output quantum device C=(q,U) and the unitary transformation U. Take it,
    Figure JPOXMLDOC01-appb-M000001

    a first measuring section that obtains and outputs a measured value p~ Lm+1 by measuring;
    Determine whether the measured value p~ Lm+1 satisfies p~ Lm+1 <(1/2)+ε-4ε', and determine whether p~ Lm+1 <(1/2)+ε-4ε' a first extraction unit that outputs information "unmarked" indicating that a watermark is not embedded in the classical input/output quantum device C when it is determined that the following is satisfied.
  5.  請求項4の透かし抽出装置であって、
     前記第1抽出部は、p~Lm+1<(1/2)+ε-4ε’を満たさないと判定した場合、前記古典入出力量子装置Cの測定後の量子ビットの量子状態をq0として出力し、
     当該透かし抽出装置は、さらに
     i=1からLmまで順番に、前記透かし抽出鍵xk、前記公開タグτ、前記パラメータε,δ、ならびに、量子ビットの量子状態qi-1および前記ユニタリ変換Uを表す情報を入力に取り、
    Figure JPOXMLDOC01-appb-M000002

    の測定によって測定値p~iを得、前記古典入出力量子装置Cの測定後の量子ビットの量子状態をqiとし、p~i>(1/2)+ε-4ε’の場合にmi’=0と設定し、p~i<1/2)+ε-4ε’の場合にmi’=1と設定し、何れかのiでp~i=(1/2)+ε-4ε’の場合にm’=0Lmに設定する第2測定部と、
     すべてのi∈[Lm]についてp~i=(1/2)+ε-4ε’でなかった場合に透かしm’=m1’||…||mLm’を出力し、いずれかのiについてp~i=(1/2)+ε-4ε’であった場合に透かしm’=0Lmを出力する第2抽出部と、
    を有する透かし抽出装置。
    The watermark extraction device according to claim 4,
    When the first extraction unit determines that p~ Lm+1 <(1/2)+ε-4ε' is not satisfied, the first extraction unit extracts the quantum state of the quantum bit of the classical input/output quantum device C after the measurement by q 0 output as,
    The watermark extraction device further sequentially extracts the watermark extraction key xk, the public tag τ, the parameters ε, δ, the quantum state q i-1 of the quantum bit, and the unitary transformation U from i=1 to Lm. Take the information represented as input,
    Figure JPOXMLDOC01-appb-M000002

    The measured value p~ i is obtained by the measurement of Set i '=0, set m i '=1 if p~ i <1/2)+ε-4ε', and set p~ i =(1/2)+ε- a second measuring section that sets m'=0 Lm in the case of 4ε';
    If p~ i =(1/2)+ε-4ε' is not satisfied for all i∈[Lm], output watermark m'=m 1 '||…||m Lm ', and any i a second extraction unit that outputs a watermark m'=0 Lm when p~ i =(1/2)+ε-4ε' for
    A watermark extraction device having
  6.  請求項4または5の透かし抽出装置であって、
     LWE問題の困難性に基づく秘密鍵暗号方式SKEが、k←SKE.Gen(1λ),ct←SKE.Enc(k,m),m’ or ⊥←SKE.Dec(k,ct)で表される関数を含み、
     KE.Gen(1λ)は、前記セキュリティパラメータλを入力に取り、秘密鍵kを出力する秘密鍵生成関数であり、
     SKE.Enc(k,m)は、前記秘密鍵kおよびm∈{0,1}Lskeを入力に取り、暗号文ct∈{0,1}n1を出力する暗号化関数であり、Lske=ceil(Log2 Lm)+1であり、ceil(α)はα以上の最小の自然数を意味し、
     SKE.Dec(k,ct)は、前記秘密鍵kおよび前記暗号文ctを入力に取り、m’または復号できないことを表すエラー情報⊥を出力する復号関数であり、
     LWE問題の困難性に基づく公開鍵鍵暗号方式PKEが(pk,sk)←PKE.Gen(1λ),ct←PKE.Enc(pk,m),m’ or ⊥←PKE.Dec(sk,ct)によって表される関数を含み、
     PKE.Gen(1λ)は、前記セキュリティパラメータλを入力に取り、公開鍵pkおよび秘密鍵skを出力する鍵生成関数であり、
     PKE.Enc(pk,m)は、前記公開鍵pk及びm∈{0,1}を入力に取り、暗号文ctを出力する暗号化関数であり、
     PKE.Dec(sk,ct)は、前記秘密鍵sk及び前記暗号文ctを入力に取り、m’または復号できないことを表すエラー情報⊥を出力する復号関数であり、
     ELWMPRF.Sim(xk,τ,Lm+1)は、xk、τ、およびLm+1を入力に取り、sk:=xkとし、(G¬∈νauth(x),k)←PKE.Dec(sk,τ)とし、γ←{0,1}とし、x←SKE.Enc(k, Lm+1||γ)およびy←G¬∈νauth(x)を得、(γ,x,y)を出力する関数であり、
     ELWMPRF.Sim(xk,τ,i)は、xk、τ、およびi∈[Lm]を入力に取り、sk:=xkとし、(G¬∈νauth(x),k)←PKE.Dec(sk,τ)とし、γ←{0,1}とし、x←SKE.Enc(k,i||γ)およびy←G¬∈νauth(x)を得、(γ,x,y)を出力する関数である、透かし抽出装置。
    The watermark extraction device according to claim 4 or 5,
    The secret key cryptosystem SKE based on the difficulty of the LWE problem is expressed as k←SKE.Gen(1 λ ), ct←SKE.Enc(k,m), m' or ⊥←SKE.Dec(k,ct). contains the functions to be
    KE.Gen(1 λ ) is a secret key generation function that takes the security parameter λ as input and outputs the secret key k,
    SKE.Enc(k,m) is an encryption function that takes the secret key k and m∈{0,1} Lske as input and outputs the ciphertext ct∈{0,1} n1 , where Lske=ceil (Log 2 Lm)+1, and ceil(α) means the smallest natural number greater than or equal to α,
    SKE.Dec(k,ct) is a decryption function that takes the private key k and the ciphertext ct as input and outputs m' or error information ⊥ indicating that decryption is not possible,
    The public key cryptosystem PKE based on the difficulty of the LWE problem is (pk,sk)←PKE.Gen(1 λ ), ct←PKE.Enc(pk,m), m' or ⊥←PKE.Dec(sk, ct),
    PKE.Gen(1 λ ) is a key generation function that takes the security parameter λ as input and outputs a public key pk and a private key sk,
    PKE.Enc(pk,m) is an encryption function that takes the public key pk and m∈{0,1} as input and outputs ciphertext ct,
    PKE.Dec(sk,ct) is a decryption function that takes the private key sk and the ciphertext ct as input, and outputs m' or error information ⊥ indicating that decryption is not possible,
    ELWMPRF.Sim(xk,τ,Lm+1) takes xk, τ, and Lm+1 as input, sets sk:=xk, and (G ¬∈νauth (x),k)←PKE.Dec(sk ,τ), γ←{0,1}, get x←SKE.Enc(k, Lm+1||γ) and y←G ¬∈νauth (x), and (γ,x,y) It is a function that outputs
    ELWMPRF.Sim(xk,τ,i) takes xk, τ, and i∈[Lm] as input, sets sk:=xk, and (G ¬∈νauth (x),k)←PKE.Dec(sk ,τ), γ←{0,1}, obtain x←SKE.Enc(k,i||γ) and y←G ¬∈νauth (x), and output (γ,x,y). A watermark extractor that is a function.
  7.  請求項4または5の透かし抽出装置であって、
     λがセキュリティパラメータであり、Loutは正整数であり、
     擬似乱数生成関数PRFが、x∈{0,1}λを入力にとり、y∈{0,1}Loutを出力する関数であり、
     穴あけ可能暗号方式PEが、(ek,dk)←PE.Gen(1λ),dk≠c*←PE.Puncture(dk,{c*}),c←PE.Enc(ek,m),m’ or ⊥←PE.Dec(dk’,c’)で表される関数を含み、
     PE.Gen(1λ)は前記セキュリティパラメータλを入力に取り、暗号化鍵ek及び復号鍵dkを出力する鍵生成関数であり、
     PE.Puncture(dk,{c*})は、前記復号鍵dkおよび暗号文c*を入力に取り、穴あけ復号鍵dk≠c*を出力する穴あけ復号鍵生成関数であり、
     PE.Enc(ek,m)は、前記暗号化鍵ekおよびm∈{0,1}Lptを入力にとり、暗号文c∈{0,1}Lctを出力する暗号化関数であり、
     PE.Dec(dk’,c’)は、前記復号鍵dk’および暗号文c’∈{0,1}Lctを入力に取り、m’∈{0,1}Lptまたは復号できないことを表すエラー情報⊥を出力する復号関数であり、
     LptおよびLctはそれぞれ正整数であり、Lpt=λ+ceil(log2 Lm)+1、Lin=Lct、およびLct=poly(λ, log2 Lm)を満たし、
     ELWMPRF.Sim(xk,τ,Lm+1)は、(pe.ek, pe.dk)←PE.Gen(1λ)で得られたpe.ekをτ:=pe.ekとし、xk:=⊥とし、γ←{0,1}およびs←{0,1}λとし、y←PRF(s)とし、Lm+1についてx←PE.Enc(pe.ek, s||Lm+1||γ)を計算し、(γ,x,y)を出力する関数であり、
     ELWMPRF.Sim(xk,τ,i)は、(pe.ek, pe.dk)←PE.Gen(1λ)で得られたpe.ekをτ:=pe.ekとし、xk:=⊥とし、γ←{0,1}およびs←{0,1}λとし、y←PRF(s)とし、i∈[Lm]についてx←PE.Enc(pe.ek, s||i||γ)を計算し、(γ,x,y)を出力する関数である、透かし抽出装置。
    The watermark extraction device according to claim 4 or 5,
    λ is a security parameter, Lout is a positive integer,
    The pseudorandom number generation function PRF is a function that takes x∈{0,1} λ as input and outputs y∈{0,1} Lout ,
    Punctureable encryption method PE is (ek,dk)←PE.Gen(1 λ ),dk ≠c* ←PE.Puncture(dk,{c*}),c←PE.Enc(ek,m),m ' or ⊥←PE.Dec(dk',c'),
    PE.Gen(1 λ ) is a key generation function that takes the security parameter λ as input and outputs an encryption key ek and a decryption key dk,
    PE.Puncture(dk,{c*}) is a puncturing decryption key generation function that takes the decryption key dk and ciphertext c* as input and outputs the puncturing decryption key dk ≠c* ,
    PE.Enc(ek,m) is an encryption function that takes the encryption key ek and m∈{0,1} Lpt as input and outputs a ciphertext c∈{0,1} Lct ,
    PE.Dec(dk',c') takes the decryption key dk' and the ciphertext c'∈{0,1} Lct as input, and calculates m'∈{0,1} Lpt or an error indicating that it cannot be decrypted. It is a decoding function that outputs information ⊥,
    Lpt and Lct are positive integers, respectively, and satisfy Lpt=λ+ceil(log 2 Lm)+1, Lin=Lct, and Lct=poly(λ, log 2 Lm),
    ELWMPRF.Sim(xk,τ,Lm+1) sets pe.ek obtained by (pe.ek, pe.dk)←PE.Gen(1 λ ) to τ:=pe.ek, and xk:= Let ⊥, γ←{0,1} and s←{0,1} λ , y←PRF(s), and x←PE.Enc(pe.ek, s||Lm+1| |γ) and outputs (γ,x,y),
    ELWMPRF.Sim(xk,τ,i) sets pe.ek obtained by (pe.ek, pe.dk)←PE.Gen(1 λ ) to τ:=pe.ek and xk:=⊥. , γ←{0,1} and s←{0,1} λ , y←PRF(s), and x←PE.Enc(pe.ek, s||i||γ ) and outputs (γ,x,y).
  8.  請求項1から3の何れかの擬似乱数関数生成装置としてコンピュータを機能させるためのプログラム。 A program for causing a computer to function as the pseudorandom number function generation device according to any one of claims 1 to 3.
PCT/JP2022/019937 2022-05-11 2022-05-11 Pseudorandom function generation device, watermark extraction device, and program WO2023218559A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/019937 WO2023218559A1 (en) 2022-05-11 2022-05-11 Pseudorandom function generation device, watermark extraction device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/019937 WO2023218559A1 (en) 2022-05-11 2022-05-11 Pseudorandom function generation device, watermark extraction device, and program

Publications (1)

Publication Number Publication Date
WO2023218559A1 true WO2023218559A1 (en) 2023-11-16

Family

ID=88730019

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/019937 WO2023218559A1 (en) 2022-05-11 2022-05-11 Pseudorandom function generation device, watermark extraction device, and program

Country Status (1)

Country Link
WO (1) WO2023218559A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013213962A (en) * 2012-04-03 2013-10-17 Nippon Telegr & Teleph Corp <Ntt> Electronic watermark processing system, function execution device, electronic watermark key generation device, electronic watermark embedded device, electronic watermark detection device, electronic watermark removal device, electronic watermark processing method, function execution method and program
JP2015068871A (en) * 2013-09-27 2015-04-13 日本電信電話株式会社 Digital watermark system, digital watermark key generation device, digital watermark embedding device, digital watermark detection device, digital watermark removal device, function execution device, digital watermark method and program
WO2021095103A1 (en) * 2019-11-11 2021-05-20 日本電信電話株式会社 Electronic watermarking system, electronic watermarking method and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013213962A (en) * 2012-04-03 2013-10-17 Nippon Telegr & Teleph Corp <Ntt> Electronic watermark processing system, function execution device, electronic watermark key generation device, electronic watermark embedded device, electronic watermark detection device, electronic watermark removal device, electronic watermark processing method, function execution method and program
JP2015068871A (en) * 2013-09-27 2015-04-13 日本電信電話株式会社 Digital watermark system, digital watermark key generation device, digital watermark embedding device, digital watermark detection device, digital watermark removal device, function execution device, digital watermark method and program
WO2021095103A1 (en) * 2019-11-11 2021-05-20 日本電信電話株式会社 Electronic watermarking system, electronic watermarking method and program

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SUN XIAOYAN; ZHANG MAOSHENG; MAO SHAOWU; REN ZHENGWEI; ZHANG HUANGUO: "Software watermarking scheme based on multivariate public key cryptosystem", WUHAN UNIVERSITY JOURNAL OF NATURAL SCIENCES, WUHAN : WUHAN DAXUE, CN, vol. 21, no. 3, 17 August 2017 (2017-08-17), CN , pages 257 - 261, XP036299461, ISSN: 1007-1202, DOI: 10.1007/s11859-016-1168-3 *
WANG YUKUN, WANG MINGQIANG: "Watermarking PRFs from Lattices: Public Extract and Collusion Resistant", CRYPTOLOGY EPRINT ARCHIVE, 6 April 2021 (2021-04-06), XP093107254, Retrieved from the Internet <URL:https://eprint.iacr.org/2021/441> [retrieved on 20231130] *

Similar Documents

Publication Publication Date Title
Norouzi et al. An image encryption algorithm based on DNA sequence operations and cellular neural network
Gupta et al. Secure data storage and sharing techniques for data protection in cloud environments: A systematic review, analysis, and future directions
Koushanfar et al. Behavioral synthesis techniques for intellectual property protection
CN106888081B (en) Wide coding of intermediate values within white-box implementations
CN103166751A (en) Method and device for protecting block cipher from being attacked by template
US11368282B2 (en) Cryptographic device and method
Rahman et al. Chaos-cryptography based privacy preservation technique for video surveillance
JP2014207717A (en) Exponent obfuscation
CN107273724A (en) Input and output watermarking for whitepack embodiment
Chen et al. Error-free separable reversible data hiding in encrypted images using linear regression and prediction error map
Gao et al. Double verifiable image encryption based on chaos and reversible watermarking algorithm
CN112395636B (en) Power grid data encryption model training method, system, storage medium and equipment
Cambou et al. Statistical analysis to optimize the generation of cryptographic keys from physical unclonable functions
Su et al. Quantum color image encryption based on controlled two-particle quantum walks
WO2001061905A2 (en) System and methods for encrypted execution of computer programs
WO2023218559A1 (en) Pseudorandom function generation device, watermark extraction device, and program
Ansari et al. PSO optimized multipurpose image watermarking using SVD and chaotic sequence
CN107667368B (en) System, method and storage medium for obfuscating a computer program
JP7384216B2 (en) Digital watermarking system, digital watermarking method and program
JP5975961B2 (en) Digital watermark system, digital watermark key generation apparatus, digital watermark method and program
Tang et al. Fragile watermarking based proofs of retrievability for archival cloud data
Gao et al. New image encryption algorithm based on hyperchaotic 3D-IHAL and a hybrid cryptosystem
JP6649288B2 (en) Encryption system, setup device, key generation device, encryption device, decryption device, and program
Lu et al. White-box implementation of the KMAC message authentication code
JP7315030B2 (en) Electronic watermark embedding device, electronic watermark extraction device, electronic watermark embedding method, electronic watermark extraction method, and program

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

Country of ref document: EP

Kind code of ref document: A1