WO2016162941A1 - 暗号システム及び鍵生成装置 - Google Patents

暗号システム及び鍵生成装置 Download PDF

Info

Publication number
WO2016162941A1
WO2016162941A1 PCT/JP2015/060825 JP2015060825W WO2016162941A1 WO 2016162941 A1 WO2016162941 A1 WO 2016162941A1 JP 2015060825 W JP2015060825 W JP 2015060825W WO 2016162941 A1 WO2016162941 A1 WO 2016162941A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
unit
key
encryption
parameter
Prior art date
Application number
PCT/JP2015/060825
Other languages
English (en)
French (fr)
Inventor
克幸 高島
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to CN201580078523.0A priority Critical patent/CN107454975B/zh
Priority to PCT/JP2015/060825 priority patent/WO2016162941A1/ja
Priority to US15/562,344 priority patent/US10516534B2/en
Priority to JP2017510826A priority patent/JP6305638B2/ja
Priority to EP15888435.3A priority patent/EP3282437B1/en
Publication of WO2016162941A1 publication Critical patent/WO2016162941A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3093Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Definitions

  • This invention relates to a functional cryptosystem based on lattice theory.
  • Non-Patent Documents 1 to 3 describe functional cryptosystems based on lattice theory.
  • the functional cryptosystems described in Non-Patent Documents 1 to 3 have resistance to quantum computers based on the lattice theory.
  • the functional encryption methods described in Non-Patent Documents 1 to 3 are weak attribute concealment. In other words, the functional encryption methods described in Non-Patent Documents 1 to 3 may leak extra information from ciphertexts having attributes that satisfy the conditions of the secret key. It is an object of the present invention to prevent extra information from leaking from ciphertext having an attribute that satisfies the condition of a secret key.
  • An encryption system includes: The product of the matrix A Y determined by the input parameter Y and the matrix e is a matrix u j among a plurality of matrices u obtained from the public parameter PP, and a value in a set [N] including a plurality of values a key generation device that generates, as a secret key for the input parameter Y, a secret key that includes the matrix e as a key element for the matrix u j for j ; An encryption device that generates a ciphertext including a cryptographic element for each value included in the set [N]; A decryption device that decrypts the ciphertext using the cipher element for the value j of the ciphertext included in the ciphertext and the secret key.
  • a secret key is generated that includes, as a key element, a matrix e in which the product of the matrix A Y and the matrix e becomes the matrix u j for the value j included in the set N.
  • FIG. 1 is a configuration diagram of a cryptographic system 10 according to a first embodiment.
  • 1 is a configuration diagram of a key generation device 100 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of an encryption device 200 according to Embodiment 1.
  • FIG. 1 is a configuration diagram of a decoding device 300 according to Embodiment 1.
  • FIG. 5 is a flowchart showing processing of a Setup algorithm according to the first embodiment. 5 is a flowchart showing processing of a KeyGen algorithm according to the first embodiment. 5 is a flowchart showing processing of an Enc algorithm according to the first embodiment. 4 is a flowchart showing processing of a Dec algorithm according to the first embodiment.
  • FIG. 3 is a diagram illustrating a hardware configuration example of a key generation device 100, an encryption device 200, and a decryption device 300 according to the first embodiment.
  • Embodiment 1 FIG.
  • a key technique for making strong attribute concealment in which unnecessary information is not leaked from a ciphertext having an attribute that satisfies the condition of the secret key will be described.
  • an encryption method using key techniques will be described.
  • a method in which a key technique is applied to the functional encryption method described in Non-Patent Document 1 will be described.
  • the key technique can be applied to the functional encryption methods described in Non-Patent Documents 2 and 3 and the like.
  • a secret key having a matrix e satisfying j ′′ as a key element is generated.
  • a ciphertext including a cryptographic element is generated for each value included in the set N.
  • the ciphertext is decrypted using the encryption element for the value j and the secret key.
  • the encryption system 10 includes a key generation device 100, an encryption device 200, and a decryption device 300.
  • the key generation device 100 receives the parameters 1 n , 1 L, and 1 N and executes the Setup algorithm to generate a public parameter PP and a master key MK. Further, the key generation device 100 receives the public parameter PP, the master key MK, and the predicate vector v that is the input parameter Y, and executes the KeyGen algorithm to generate a secret key sk v for the predicate vector v. .
  • the Setup algorithm is executed once at the time of system setup or the like, and the KeyGen algorithm is executed every time the secret key sk v is generated. Also, the device that executes the Setup algorithm and the device that executes the KeyGen algorithm may be different devices.
  • the encryption device 200 receives the public parameter PP generated by the key generation device 100, the attribute vector w, and the 1-bit message M indicating 0 or 1, and executes the Enc algorithm to obtain the ciphertext CT. Generate.
  • the decryption device 300 receives the public parameter PP and the secret key sk v generated by the key generation device 100 and the ciphertext CT generated by the encryption device 200, executes the Dec algorithm, and sets 0 or 1 Output.
  • the key generation device 100 includes a parameter acquisition unit 110, a master key generation unit 120, a secret key generation unit 130, a parameter disclosure unit 140, and a secret key output unit 150.
  • the parameter acquisition unit 110 acquires 1 n , 1 L, and 1 N , which are parameters input by the administrator of the cryptographic system 10.
  • the parameter acquisition unit 110 acquires the predicate vector v input by the administrator of the cryptographic system 10.
  • the predicate vector v indicates a user attribute of the secret key sk v .
  • the master key generation unit 120 receives the 1 n , 1 L, and 1 N acquired by the parameter acquisition unit 110, executes the Setup algorithm, and generates a public parameter PP and a master key MK.
  • the master key generation unit 120 includes a basic matrix selection unit 121, a random matrix selection unit 122, and a random vector selection unit 123.
  • the secret key generation unit 130 receives the public parameter PP and master key MK generated by the master key generation unit 120 and the predicate vector v acquired by the parameter acquisition unit 110 as input, and executes the KeyGen algorithm to obtain a predicate vector.
  • a secret key sk v is generated for v .
  • the secret key generation unit 130 includes a vector decomposition unit 131, a predicate matrix generation unit 132, and a key element generation unit 133.
  • the parameter disclosure unit 140 discloses the public parameter PP generated by the master key generation unit 120.
  • the parameter disclosing unit 140 publishes the public parameter PP by transmitting the public parameter PP to a public server and making it accessible on the Internet or an intranet.
  • the public parameter PP may be disclosed by other methods such as being transmitted to the encryption device 200 and the decryption device 300.
  • the secret key output unit 150 secretly outputs the secret key sk v generated by the secret key generation unit 130 to the decryption device 300.
  • the secret key output unit 150 by transmitting over the network on encrypted in some cryptosystem private key sk v, and outputs the secret key sk v secretly.
  • the secret key sk v may be secretly output to the decryption apparatus 300 by another method such as storing the storage key in the storage medium and delivering the storage medium to the decryption apparatus 300.
  • the encryption device 200 includes a parameter acquisition unit 210, a ciphertext generation unit 220, and a ciphertext output unit 230.
  • the parameter acquisition unit 210 acquires the public parameter PP generated by the key generation device 100.
  • the parameter acquisition unit 210 acquires the attribute vector w and the message M input by the user of the encryption device 200.
  • the attribute vector w indicates an attribute of a user who can decrypt the ciphertext CT.
  • the message M is a 1-bit value indicating 0 or 1.
  • the ciphertext generation unit 220 receives the public parameter PP, the attribute vector w, and the message M acquired by the parameter acquisition unit 210, and executes the Enc algorithm to generate a ciphertext CT.
  • the ciphertext generation unit 220 includes a random matrix selection unit 221, a random number selection unit 222, a noise selection unit 223, and a cipher element generation unit 224.
  • the ciphertext output unit 230 outputs the ciphertext CT generated by the ciphertext generation unit 220 to the decryption device 300.
  • the ciphertext output unit 230 outputs the ciphertext CT to the decryption device 300 by transmitting the ciphertext CT to the decryption device 300 via the network.
  • the ciphertext CT may be output to the decryption apparatus 300 by another method such as storing the storage medium in the storage medium and delivering the storage medium to the decryption apparatus 300.
  • the configuration of decoding apparatus 300 according to Embodiment 1 will be described based on FIG.
  • the decoding device 300 includes a parameter acquisition unit 310 and a decoding unit 320.
  • the parameter acquisition unit 310 acquires the public parameter PP and the secret key sk v generated by the key generation device 100.
  • the parameter acquisition unit 310 acquires the ciphertext CT generated by the encryption device 200.
  • the decryption unit 320 receives the public parameter PP, the secret key sk v, and the ciphertext CT acquired by the parameter acquisition unit 310, executes the Dec algorithm, and outputs 0 or 1. That is, the decryption unit 320 outputs the result of decrypting the ciphertext CT with the secret key sk v .
  • the decoding unit 320 includes a matrix calculation unit 321, a value calculation unit 322, and a result output unit 323.
  • the operation of the cryptographic system 10 according to the first embodiment will be described with reference to FIGS.
  • the operation of the cryptographic system 10 according to the first embodiment corresponds to the cryptographic method according to the first embodiment.
  • the operation of the cryptographic system 10 according to the first embodiment corresponds to the processing of the cryptographic program according to the first embodiment.
  • the process of the Setup algorithm according to the first embodiment will be described. As described above, the Setup algorithm is executed by the key generation device 100.
  • the parameter acquisition unit 110 acquires parameters 1 n , 1 L, and 1 N that are input to the Setup algorithm.
  • n is a security parameter and is an integer of 1 or more.
  • L is an integer of 1 or more indicating the lengths of the predicate vector v and the attribute vector w.
  • N is an integer of 2 or more.
  • q is an integer greater than 2
  • m is an integer greater than n.
  • ⁇ and ⁇ are positive real Gaussian parameters.
  • the base matrix selection unit 121 In base matrix selection processing in S102, the base matrix selection unit 121, a matrix A ⁇ Z q n ⁇ m, it selects with full rank set T A vector as shown in Formula 11.
  • Base matrix selection unit 121 by using a TrapGen algorithm described in Non-Patent Document 1, it is possible to select a full rank set T A of the matrix A and vector.
  • T 1 to A are obtained by orthogonalizing T A with Gram Schmidt.
  • is a symbol indicating an asymptotic lower bound
  • ⁇ ( ⁇ logm) means that it is the same as or slightly larger than ⁇ logm.
  • Z q means an integer space modulo q.
  • a in Z q a represents the number of elements. Therefore, the matrix A i, ⁇ ⁇ Z q n ⁇ m means an n-by-m matrix in an integer space modulo q.
  • the master key generation unit 120 uses the public parameter PP to generate the matrix A generated in S102 to S104, L ⁇ (k + 1) matrices A i, ⁇ and j vectors u j. And also, the master key generation unit 120, the set T A of vectors generated at S102 with the master key MK.
  • the parameter disclosure unit 140 discloses the disclosure parameter PP generated in S105.
  • the processing of the KeyGen algorithm according to the first embodiment will be described.
  • the KeyGen algorithm is executed by the key generation device 100.
  • v i, ⁇ is 0 or 1.
  • the predicate matrix generation unit 132 uses the values v i, ⁇ decomposed and generated in S202 and the matrices A i, ⁇ included in the public parameter PP acquired in S201, As shown in Equation 13, a matrix C v and a matrix A v are generated.
  • the matrix A v corresponds to the matrix A Y described in the key technique.
  • the sample Left algorithm is executed with the vector u j and the Gaussian parameter ⁇ as inputs, and the vector e is calculated at random.
  • the SampleLeft algorithm is described in Non-Patent Document 1. As long as the vector e can be calculated, a method other than the SampleLeft algorithm may be used.
  • the secret key output unit 150 uses the predicate vector v acquired in S201, the value j selected in S204, and the vector e calculated in S205 as the secret key sk. Output v .
  • the processing of the Enc algorithm according to the first embodiment will be described.
  • the Enc algorithm is executed by the encryption device 200.
  • the random matrix selection unit 221 selects a uniformly random matrix B ⁇ Z q n ⁇ m .
  • the random number selection unit 222 randomly selects the vector s ⁇ Z q n .
  • the noise selection unit 223, a noise vector X having m elements from the probability distribution phi alpha with randomly selecting, randomly select noise term x from the probability distribution phi alpha.
  • This is a probability distribution on Z q : Z / qZ obtained by generating x and outputting an integer closest to qx.
  • the cryptographic element generation unit 224 selects a random matrix R i, ⁇ ⁇ ⁇ 0, 1 ⁇ m ⁇ m .
  • the cryptographic element generation unit 224 selects the matrix A i, ⁇ included in the public parameter PP acquired in S301, the attribute vector w acquired in S301, the matrix B selected in S302, and the selection in S303.
  • “2 / q” means an integer closest to 2 / q.
  • ciphertext output processing S308 is ciphertext output unit 230, the calculated matrix c 0 in S305, the cryptographic elements computed matrix c i, and gamma, the computed matrix c 'j at S307 in S306
  • the ciphertext CT is output.
  • the processing of the Dec algorithm according to the first embodiment will be described.
  • the Dec algorithm is executed by the decoding device 300.
  • the parameter acquisition unit 310 acquires the public parameter PP disclosed by the parameter disclosure unit 140.
  • the parameter acquisition unit 310 acquires the secret key sk v output by the secret key output unit 150.
  • the parameter acquisition unit 310 acquires the ciphertext CT output by the ciphertext output unit 230.
  • the matrix calculation unit 321 uses the predicate vector v included in the secret key sk v acquired in S401 and the matrices c i, ⁇ included in the ciphertext CT acquired in S401. ,
  • the matrix cv is calculated as shown in equation (14).
  • c v ]. Then, the value calculation unit 322 uses the matrix c ′ j included in the ciphertext CT, the vector e included in the secret key sk v , and the matrix c, and z: c ′ j ⁇ e T c mod q The value z is calculated as follows.
  • the result output unit 323 outputs 0 if the absolute value
  • c v ] [A
  • z M ⁇ “q / 2” + noise.
  • “2 / q” is an integer closest to 2 / q.
  • Message M is 0 or 1
  • noise has been selected from phi alpha, a smaller value. Therefore, if the absolute value
  • the cryptographic system 10 according to the first embodiment implements a functional cryptographic scheme based on lattice theory.
  • a secret key sk v having the vector e as a key element is generated. Thereby, it is possible to prevent extra information from being leaked from the ciphertext having an attribute that satisfies the condition of the secret key.
  • e and u j are vectors. However, depending on the algorithm to which the key technique is applied, e and u j are matrices.
  • the matrix A Y , the matrix e, and the matrix u j may be read as elements of the function space. Further, the matrix A Y , the matrix e, and the matrix u j may be read as infinite dimensional vectors.
  • the matrix e has a shorter norm than the matrix AY .
  • the matrix e is calculated by the SampleLeft algorithm. In the SampleLeft algorithm, the matrix e is selected by sampling from the Gaussian distribution D ⁇ , ⁇ . Therefore, the matrix e is distributed according to a Gaussian distribution D ⁇ , ⁇ .
  • the standard deviation value ⁇ defines a substantial distribution width of 2 ⁇ (m + m 1 ).
  • the standard deviation value ⁇ is approximately the same as O ( ⁇ (n ⁇ (m + m1)) ⁇ logq ⁇ log (m + m 1 )). Therefore, the length of the matrix e is also approximately c ⁇ (n ⁇ (m + m 1 )) ⁇ logq ⁇ log (m + m 1 ) using an appropriate constant c.
  • M 1 is a positive integer.
  • FIG. 9 is a diagram illustrating a hardware configuration example of the key generation device 100, the encryption device 200, and the decryption device 300 according to the first embodiment.
  • the key generation device 100, the encryption device 200, and the decryption device 300 are computers.
  • the key generation device 100, the encryption device 200, and the decryption device 300 include hardware such as a processor 901, an auxiliary storage device 902, a memory 903, a communication device 904, an input interface 905, and a display interface 906.
  • the processor 901 is connected to other hardware via the signal line 910, and controls these other hardware.
  • the input interface 905 is connected to the input device 907 by a cable 911.
  • the display interface 906 is connected to the display 908 by a cable 912.
  • the processor 901 is an IC (Integrated Circuit) that performs processing.
  • the processor 901 is, for example, a CPU (Central Processing Unit), a DSP (Digital Signal Processor), or a GPU (Graphics Processing Unit).
  • the auxiliary storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or an HDD (Hard Disk Drive).
  • the memory 903 is, for example, a RAM (Random Access Memory).
  • the communication device 904 includes a receiver 9041 that receives data and a transmitter 9042 that transmits data.
  • the communication device 904 is, for example, a communication chip or a NIC (Network Interface Card).
  • the input interface 905 is a port to which the cable 911 of the input device 907 is connected.
  • the input interface 905 is, for example, a USB (Universal Serial Bus) terminal.
  • the display interface 906 is a port to which the cable 912 of the display 908 is connected.
  • the display interface 906 is, for example, a USB terminal or an HDMI (registered trademark) (High Definition Multimedia Interface) terminal.
  • the input device 907 is, for example, a mouse, a keyboard, or a touch panel.
  • the display 908 is, for example, an LCD (Liquid Crystal Display).
  • the parameter acquisition unit 110, the parameter disclosure unit 140, the secret key output unit 150, the parameter acquisition unit 210, the ciphertext output unit 230, and the parameter acquisition unit 310 are realized by the communication device 904.
  • the parameter acquisition unit 110, the parameter acquisition unit 210, and the parameter acquisition unit 310 may be realized by the input interface 905.
  • the result output unit 323 is realized by the display interface 906.
  • the auxiliary storage device 902 includes the master key generation unit 120, the basic matrix selection unit 121, the random matrix selection unit 122, the random vector selection unit 123, the secret key generation unit 130, the vector decomposition unit 131, and the like.
  • Matrix calculation unit 321, value calculation unit 322 hereinafter, master key generation unit 120, basic matrix selection unit 121, random matrix selection unit 122, random vector selection unit 123, secret key generation unit 130, , Vector decomposition unit 131, predicate matrix generation unit 132, key element generation unit 133, ciphertext generation unit 220, random matrix selection unit 221, random number A program for realizing the functions of the selection unit 222, the noise selection unit 223, the encryption element generation unit 224, the decryption unit 320, the matrix calculation unit 3
  • This program is loaded into the memory 903, read into the processor 901, and executed by the processor 901. Further, the auxiliary storage device 902 also stores an OS (Operating System). Then, at least a part of the OS is loaded into the memory 903, and the processor 901 executes a program that realizes the function of “unit” while executing the OS.
  • the key generation device 100, the encryption device 200, and the decryption device 300 may include a plurality of processors 901. A plurality of processors 901 may execute a program for realizing the function of “unit” in cooperation with each other.
  • information, data, signal values, and variable values indicating the results of the processing of “unit” are stored as files in the memory 903, the auxiliary storage device 902, or a register or cache memory in the processor 901.
  • Parts may be provided by “Circuitry”. Further, “part” may be read as “circuit”, “process”, “procedure”, or “processing”. “Circuit” and “Circuitry” include not only the processor 901 but also other types of processing circuits such as logic IC, GA (Gate Array), ASIC (Application Specific Integrated Circuit), or FPGA (Field-Programmable Gate Array). It is a concept to include.
  • 10 cryptographic system 100 key generation device, 110 parameter acquisition unit, 120 master key generation unit, 121 basic matrix selection unit, 122 random matrix selection unit, 123 random vector selection unit, 130 secret key generation unit, 131 vector decomposition unit, 132 Predicate matrix generation unit, 133 key element generation unit, 140 parameter disclosure unit, 150 secret key output unit, 200 encryption device, 210 parameter acquisition unit, 220 ciphertext generation unit, 221 random matrix selection unit, 222 random number selection unit, 223 Noise selection unit, 224 encryption element generation unit, 230 ciphertext output unit, 300 decryption device, 310 parameter acquisition unit, 320 decryption unit, 321 matrix calculation unit, 322 value calculation unit, 323 result output unit.

Landscapes

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

Abstract

 暗号システム(10)は、格子理論に基づく関数型暗号方式を実現する。暗号システム(10)において、鍵生成装置(100)は、入力パラメータYである述語ベクトルvによって定まる行列AYと、行列eとの積が、公開パラメータPPから得られる複数の行列uのうちの行列ujであって、複数の値を含む集合[N]のうちの値jについての行列ujになる行列eを鍵要素として含む秘密鍵skvを、述語ベクトルvについての秘密鍵skvとして生成する。

Description

暗号システム及び鍵生成装置
 この発明は、格子理論に基づく関数型暗号方式に関する。
 非特許文献1~3には、格子理論に基づく関数型暗号方式について記載されている。非特許文献1~3に記載された関数型暗号方式は、格子理論に基づくことにより、量子計算機にも耐性を有している。
Shweta Agrawal, David Mandell Freeman, and Vinod Vaikuntanathan. Functional encryption for inner product predicates from learning with errors. In Advances in Cryptology - ASIACRYPT 2011 - 17th International Conference on the Theory and Application of Cryptology and Information Security, Seoul, South Korea, December 4-8,2011. Proceedings, pages 21-40, 2011. Michel Abdalla, Angelo De Caro, and Karina Mochetti. Lattice-based hierarchical inner product encryption.In Progress in Cryptology - LATINCRYPT 2012 - 2nd International Conference on Cryptology and Information Security in Latin America, Santiago, Chile, October 7-10, 2012. Proceedings, pages 121-138, 2012. Keita Xagawa. Improved (hierarchical) inner-product encryption from lattices. In Public-Key Cryptography - PKC 2013 - 16th International Conference on Practice and Theory in Public-Key Cryptography, Nara, Japan, February 26 - March 1, 2013. Proceedings, pages 235-252, 2013.
 非特許文献1~3に記載された関数型暗号方式は、弱属性秘匿である。つまり、非特許文献1~3に記載された関数型暗号方式は、秘密鍵の条件が満たされるような属性をもつ暗号文からは余計な情報が漏れる恐れがある。
 この発明は、秘密鍵の条件が満たされるような属性をもつ暗号文から余計な情報が漏れないようにすることを目的とする。
 この発明に係る暗号システムは、
 入力パラメータYによって定まる行列Aと、行列eとの積が、公開パラメータPPから得られる複数の行列uのうちの行列uであって、複数の値を含む集合[N]のうちの値jについての行列uになる前記行列eを鍵要素として含む秘密鍵を、前記入力パラメータYについての秘密鍵として生成する鍵生成装置と、
 前記集合[N]に含まれる各値についての暗号要素を含む暗号文を生成する暗号化装置と、
 前記暗号文に含まれる暗号要素のうちの前記値jについての暗号要素と、前記秘密鍵とを用いて、前記暗号文を復号する復号装置と
を備える。
 この発明では、行列Aと行列eとの積が、集合Nに含まれる値jについての行列uになる行列eを鍵要素として含む秘密鍵を生成する。これにより、秘密鍵の条件が満たされるような属性をもつ暗号文から余計な情報が漏れないようにすることが可能である。
実施の形態1に係る暗号システム10の構成図。 実施の形態1に係る鍵生成装置100の構成図。 実施の形態1に係る暗号化装置200の構成図。 実施の形態1に係る復号装置300の構成図。 実施の形態1に係るSetupアルゴリズムの処理を示すフローチャート。 実施の形態1に係るKeyGenアルゴリズムの処理を示すフローチャート。 実施の形態1に係るEncアルゴリズムの処理を示すフローチャート。 実施の形態1に係るDecアルゴリズムの処理を示すフローチャート。 実施の形態1に係る鍵生成装置100と暗号化装置200と復号装置300とのハードウェア構成例を示す図。
 実施の形態1.
 実施の形態1では、まず、秘密鍵の条件が満たされるような属性をもつ暗号文から余計な情報が漏れない強属性秘匿にするためのキーテクニックを説明する。その上で、キーテクニックを適用した暗号方式を説明する。
 実施の形態1では、非特許文献1に記載された関数型暗号方式に対して、キーテクニックを適用した方式について説明する。しかし、非特許文献2,3等に記載された関数型暗号方式にもキーテクニックを適用することができる。
 ***キーテクニック***
 格子理論に基づく関数型暗号では、入力パラメータYに関する秘密鍵生成において、入力パラメータYによって定まる行列Aと、公開パラメータPPから得られる行列uと、行列A及び行列uよりもノルムが短い行列eとについて、行列ターゲット等式“A・e=u”を満たす行列eを鍵要素とする秘密鍵が生成される。
 実施の形態1では、公開パラメータPPから得られる行列uのうち、複数の値を含む集合Nから選択された値jについての行列uを用いて、行列ターゲット等式“A・e=u”を満たす行列eを鍵要素とする秘密鍵が生成される。
 暗号化する場合には、集合Nのうちのどの値が値jとして選択されたか特定できないため、集合Nに含まれる各値について暗号要素を含む暗号文が生成される。そして、復号する場合には、値jについての暗号要素と、秘密鍵とを用いて、暗号文が復号される。
 ***構成の説明***
 図1に基づき、実施の形態1に係る暗号システム10の構成を説明する。
 暗号システム10は、鍵生成装置100と、暗号化装置200と、復号装置300とを備える。
 鍵生成装置100は、パラメータである1と1と1とを入力として、Setupアルゴリズムを実行して、公開パラメータPPと、マスター鍵MKとを生成する。また、鍵生成装置100は、公開パラメータPPと、マスター鍵MKと、入力パラメータYである述語ベクトルvとを入力として、KeyGenアルゴリズムを実行して、述語ベクトルvについての秘密鍵skを生成する。
 なお、Setupアルゴリズムは、システムセットアップ時等に1度実行され、KeyGenアルゴリズムは、秘密鍵skを生成する度に実行される。また、Setupアルゴリズムを実行する装置と、KeyGenアルゴリズムを実行する装置とを別の装置としてもよい。
 暗号化装置200は、鍵生成装置100によって生成された公開パラメータPPと、属性ベクトルwと、0又は1を示す1ビットのメッセージMとを入力として、Encアルゴリズムを実行して、暗号文CTを生成する。
 復号装置300は、鍵生成装置100によって生成された公開パラメータPP及び秘密鍵skと、暗号化装置200によって生成された暗号文CTとを入力として、Decアルゴリズムを実行して、0又は1を出力する。
 図2に基づき、実施の形態1に係る鍵生成装置100の構成を説明する。
 鍵生成装置100は、パラメータ取得部110と、マスター鍵生成部120と、秘密鍵生成部130と、パラメータ公開部140と、秘密鍵出力部150とを備える。
 パラメータ取得部110は、暗号システム10の管理者によって入力された、パラメータである1と1と1とを取得する。
 パラメータ取得部110は、暗号システム10の管理者によって入力された、述語ベクトルvを取得する。ここでは、述語ベクトルvは、秘密鍵skのユーザの属性を示す。
 マスター鍵生成部120は、パラメータ取得部110によって取得された1と1と1とを入力として、Setupアルゴリズムを実行して、公開パラメータPPと、マスター鍵MKとを生成する。
 マスター鍵生成部120は、基本行列選択部121と、ランダム行列選択部122と、ランダムベクトル選択部123とを備える。
 秘密鍵生成部130は、マスター鍵生成部120によって生成された公開パラメータPP及びマスター鍵MKと、パラメータ取得部110によって取得された述語ベクトルvとを入力として、KeyGenアルゴリズムを実行して、述語ベクトルvについての秘密鍵skを生成する。
 秘密鍵生成部130は、ベクトル分解部131と、述語行列生成部132と、鍵要素生成部133とを備える。
 パラメータ公開部140は、マスター鍵生成部120によって生成された公開パラメータPPを公開する。
 ここでは、パラメータ公開部140は、公開パラメータPPを公開用のサーバに送信し、インターネット又はイントラネットでアクセス可能にすることにより、公開パラメータPPを公開する。公開パラメータPPは、暗号化装置200及び復号装置300に送信されるといった他の方法により公開されてもよい。
 秘密鍵出力部150は、秘密鍵生成部130によって生成された秘密鍵skを秘密裡に復号装置300に出力する。
 ここでは、秘密鍵出力部150は、秘密鍵skを何らかの暗号方式で暗号化した上でネットワークを介して送信することにより、秘密鍵skを秘密裡に出力する。秘密鍵skは、記憶媒体に記憶した上で記憶媒体を復号装置300に配送するといった他の方法により、秘密裡に復号装置300に出力されてもよい。
 図3に基づき、実施の形態1に係る暗号化装置200の構成を説明する。
 暗号化装置200は、パラメータ取得部210と、暗号文生成部220と、暗号文出力部230とを備える。
 パラメータ取得部210は、鍵生成装置100によって生成された公開パラメータPPを取得する。
 パラメータ取得部210は、暗号化装置200のユーザによって入力された、属性ベクトルwと、メッセージMとを取得する。ここでは、属性ベクトルwは、暗号文CTを復号可能なユーザの属性を示す。また、ここでは、メッセージMは、0又は1を示す1ビットの値である。
 暗号文生成部220は、パラメータ取得部210によって取得された公開パラメータPP及び属性ベクトルw及びメッセージMを入力として、Encアルゴリズムを実行して、暗号文CTを生成する。
 暗号文生成部220は、ランダム行列選択部221と、乱数選択部222と、ノイズ選択部223と、暗号要素生成部224とを備える。
 暗号文出力部230は、暗号文生成部220によって生成された暗号文CTを復号装置300に出力する。
 ここでは、暗号文出力部230は、暗号文CTをネットワークを介して復号装置300に送信することにより、暗号文CTを復号装置300に出力する。暗号文CTは、記憶媒体に記憶した上で記憶媒体を復号装置300に配送するといった他の方法により、復号装置300に出力されてもよい。
 図4に基づき、実施の形態1に係る復号装置300の構成を説明する。
 復号装置300は、パラメータ取得部310と、復号部320とを備える。
 パラメータ取得部310は、鍵生成装置100によって生成された公開パラメータPP及び秘密鍵skを取得する。
 パラメータ取得部310は、暗号化装置200によって生成された暗号文CTを取得する。
 復号部320は、パラメータ取得部310によって取得された公開パラメータPP及び秘密鍵sk及び暗号文CTを入力として、Decアルゴリズムを実行して、0又は1を出力する。つまり、復号部320は、暗号文CTを秘密鍵skによって復号した結果を出力する。
 復号部320は、行列計算部321と、値計算部322と、結果出力部323とを備える。
 ***動作の説明***
 図5から図8に基づき、実施の形態1に係る暗号システム10の動作を説明する。
 実施の形態1に係る暗号システム10の動作は、実施の形態1に係る暗号方法に相当する。また、実施の形態1に係る暗号システム10の動作は、実施の形態1に係る暗号プログラムの処理に相当する。
 図5に基づき、実施の形態1に係るSetupアルゴリズムの処理を説明する。
 上述した通り、Setupアルゴリズムは鍵生成装置100によって実行される。
 S101のパラメータ取得処理では、パラメータ取得部110は、Setupアルゴリズムの入力となるパラメータ1と1と1とを取得する。
 ここで、nはセキュリティパラメータであり、1以上の整数である。Lは、述語ベクトルvと属性ベクトルwとの長さを示す1以上の整数である。Nは、2以上の整数である。
 以下の説明では、qは2より大きい整数であり、mはnより大きい整数であるとする。また、σ及びαは、正の実数ガウスパラメータであるとする。
 S102の基本行列選択処理では、基本行列選択部121は、行列A∈Z n×mを、数11に示すようなベクトルの最大階数集合Tとともに選択する。基本行列選択部121は、非特許文献1に記載されているTrapGenアルゴリズムを用いることにより、行列Aとベクトルの最大階数集合Tとを選択することが可能である。
Figure JPOXMLDOC01-appb-M000006
 ここで、T は、Tをグラムシュミット直交化したものである。ωは、漸近的な下界を示す記号であり、ω(√logm)は、√logmと同じか少し大きいという意味である。
 S103のランダム行列選択処理では、ランダム行列選択部122は、i=1,...,Lの各整数iと、γ=0,...,kの各整数γとについてのL・(k+1)個の一様にランダムな行列Ai,γ∈Z n×mを選択する。
 なお、Zとは、qを法とする整数空間を意味する。また、Z におけるaは要素数を表している。そのため、行列Ai,γ∈Z n×mは、qを法とする整数空間におけるn行m列の行列を意味する。
 S104のランダムベクトル選択処理では、ランダムベクトル選択部123は、j=1,...,Nの各整数jについてのj個の一様にランダムなベクトルu∈Z を選択する。
 S105の鍵生成処理では、マスター鍵生成部120は、S102からS104で生成された行列Aと、L・(k+1)個の行列Ai,γと、j個のベクトルuとを公開パラメータPPとする。また、マスター鍵生成部120は、S102で生成されたベクトルの集合Tをマスター鍵MKとする。
 S106のパラメータ公開処理では、パラメータ公開部140は、S105で生成された公開パラメータPPを公開する。
 図6に基づき、実施の形態1に係るKeyGenアルゴリズムの処理を説明する。
 上述した通り、KeyGenアルゴリズムは鍵生成装置100によって実行される。
 S201のパラメータ取得処理では、パラメータ取得部110は、述語ベクトルv:=(v,...,v)∈Z を取得する。また、秘密鍵生成部130は、マスター鍵生成部120によって生成された公開パラメータPP及びマスター鍵MKを取得する。
 S202のベクトル分解処理では、ベクトル分解部131は、i=1,...,Lの各整数iについての述語ベクトルvの要素vを数12に示すように2進分解する。
Figure JPOXMLDOC01-appb-M000007
 ここで、vi,γは、0又は1である。
 S203の述語行列生成処理では、述語行列生成部132は、S202で分解され生成された値vi,γと、S201で取得された公開パラメータPPに含まれる行列Ai,γとを用いて、数13に示すように行列Cと、行列Aとを生成する。
Figure JPOXMLDOC01-appb-M000008
 ここでは、入力パラメータYが述語ベクトルvであるため、行列Aはキーテクニックで説明した行列Aに相当する。
 S204のインデックス選択処理では、鍵要素生成部133は、集合[N]:=1,...,Nに含まれる値からランダムに値jを選択する。
 S205の鍵要素生成処理では、鍵要素生成部133は、S204で選択された値jについて、行列Aとベクトルeとの積がベクトルuとなる、つまりA・e=u mod qとなるベクトルeを計算する。
 ここでは、鍵要素生成部133は、S201で取得された公開パラメータPPに含まれる行列Aと、S203で生成された行列Cと、マスター鍵MKである集合Tと、公開パラメータPPに含まれるベクトルuと、ガウスパラメータσとを入力として、SampleLeftアルゴリズムを実行して、ランダムにベクトルeを計算する。なお、SampleLeftアルゴリズムについては、非特許文献1に記載されている。ベクトルeが計算できるのであれば、SampleLeftアルゴリズム以外の方法であってもよい。
 S206の秘密鍵出力処理では、秘密鍵出力部150は、S201で取得された述語ベクトルvと、S204で選択された値jと、S205で計算されたベクトルeとを鍵要素とする秘密鍵skを出力する。
 図7に基づき、実施の形態1に係るEncアルゴリズムの処理を説明する。
 上述した通り、Encアルゴリズムは暗号化装置200によって実行される。
 S301のパラメータ取得処理では、パラメータ取得部210は、パラメータ公開部140によって公開された公開パラメータPPを取得する。また、パラメータ取得部210は、属性ベクトルw:=(w,...,w)と、メッセージM∈{0,1}とを取得する。
 S302のランダム行列選択処理では、ランダム行列選択部221は、一様にランダムな行列B∈Z n×mを選択する。
 S303の乱数選択処理では、乱数選択部222は、ベクトルs∈Z をランダムに選択する。
 S304のノイズ選択処理では、ノイズ選択部223は、確率分布φαからm個の要素を有するノイズベクトルXをランダムに選択するとともに、確率分布φαからノイズ項xをランダムに選択する。
 ここで、確率分布φαは、α∈(0,1)と,2より大きい整数qとに対して、平均0であり、標準偏差α/√(2π)の正規分布(ガウス分布)から実数xを生成し、qxに最も近い整数を出力することにより得られたZ:=Z/qZ上の確率分布である。
 S305のc生成処理では、暗号要素生成部224は、S301で取得された公開パラメータPPに含まれる行列Aと、S303で選択されたベクトルsと、S304で生成されたノイズベクトルXとを用いて、c:=As+Xのように、行列cを計算する。
 S306のci,γ生成処理では、暗号要素生成部224は、i=1,...,Lの各整数iと、γ=0,...,kの各整数γとについて、以下の(a)(b)を実行する。
 (a)暗号要素生成部224は、ランダムな行列Ri,γ∈{0,1}m×mを選択する。(b)暗号要素生成部224は、S301で取得された公開パラメータPPに含まれる行列Ai,γと、S301で取得された属性ベクトルwと、S302で選択された行列Bと、S303で選択されたベクトルsと、S304で生成されたノイズベクトルXとを用いて、ci,γ:=(Ai,γ+2γB)s+Ri,γ Xのように、行列ci,γを計算する。
 S307のc’生成処理では、暗号要素生成部224は、j=1,...,Nの各整数jについて、S301で取得された公開パラメータPPに含まれるベクトルuと、S303で選択されたベクトルsと、S304で選択されたノイズ項xと、S301で取得されたメッセージMとを用いて、c’:=u s+x+M・“2/q”∈Zのように、行列c’を計算する。つまり、暗号要素生成部224は、集合[N]に含まれる各値について、行列c’を計算する。
 ここで、“2/q”は、2/qに最も近い整数を意味する。
 S308の暗号文出力処理では、暗号文出力部230は、S305で計算された行列cと、S306で計算された行列ci,γと、S307で計算された行列c’とを暗号要素とする暗号文CTを出力する。
 図8に基づき、実施の形態1に係るDecアルゴリズムの処理を説明する。
 上述した通り、Decアルゴリズムは復号装置300によって実行される。
 S401のパラメータ取得処理では、パラメータ取得部310は、パラメータ公開部140によって公開された公開パラメータPPを取得する。また、パラメータ取得部310は、秘密鍵出力部150によって出力された秘密鍵skを取得する。また、パラメータ取得部310は、暗号文出力部230によって出力された暗号文CTを取得する。
 S402の行列計算処理では、行列計算部321は、S401で取得された秘密鍵skに含まれる述語ベクトルvと、S401で取得された暗号文CTに含まれる行列ci,γとを用いて、数14に示すように、行列cを計算する。
Figure JPOXMLDOC01-appb-M000009
 S403の値計算処理では、値計算部322は、暗号文CTに含まれる行列cと、S402で計算された行列cとを連接して行列cを計算する。つまり、値計算部322は、c:=[c||c]とする。
 そして、値計算部322は、暗号文CTに含まれる行列c’と、秘密鍵skに含まれるベクトルeと、行列cとを用いて、z:=c’-ec mod qのように、値zを計算する。
 S404の結果出力処理では、結果出力部323は、S403で計算された値zの絶対値|z|が、q/4よりも小さいなら0を出力し、そうでないなら、1を出力する。
 ノイズベクトルXとノイズ項xとを“noise”と表記する。すると、述語ベクトルvと属性ベクトルwとの内積が0(v・w=0)なら、c:=Σi=1 Σγ=0 i,γi,γ=C s+noiseである。そのため、c:=[c||c]=[A||Cs+noise=A s+noiseである。A・e=uなので、ec=e s+noise=us+noiseである。したがって、z=M・“q/2”+noiseである。ここで、“2/q”は、2/qに最も近い整数である。
 メッセージMは0又は1であり、noiseはφαから選択されたものであり、小さい値である。そのため、絶対値|z|が、q/4よりも小さいなら、メッセージMは0であり、そうでないなら、メッセージMは1であるということができる。
 ***効果の説明***
 以上のように、実施の形態1に係る暗号システム10は、格子理論に基づく関数型暗号方式を実現する。特に、実施の形態1に係る暗号システム10は、複数の値を含む集合Nから選択された値jについての行列uを用いて、行列ターゲット等式“A・e=u”を満たすベクトルeを鍵要素とする秘密鍵sk生成する。
 これにより、秘密鍵の条件が満たされるような属性をもつ暗号文から余計な情報が漏れないようにすることが可能である。
 なお、上記関数型暗号方式では、e及びuがベクトルであった。しかし、キーテクニックを適用するアルゴリズムによっては、e及びuは行列になる。
 また、上記説明では、行列Aと行列eと行列uとについて、行列ターゲット等式A・e=uを満たす行列eを鍵要素とする秘密鍵を生成するとした。しかし、行列Aと行列eと行列uとは、関数空間の要素と読み替えてもよい。また、行列Aと行列eと行列uとは、無限次元ベクトルと読み替えてもよい。
 また、上記説明では、行列eは、行列Aに比べてノルムが短いとした。
 行列eは、SampleLeftアルゴリズムによって計算される。SampleLeftアルゴリズムでは、行列eは、ガウス分布DΛ,σからサンプリングして選択される。そのため、行列eは、ほぼガウス分布DΛ,σに従って分布している。
 この場合、標準偏差値σが実質的な分布の幅を2σ√(m+m)に定めている。標準偏差値σは、大体、O(√(n・(m+m1))・logq・log(m+m))と同じくらいである。そのため、行列eの長さも、適当な定数cを使って、ほぼc√(n・(m+m))・logq・log(m+m)である。なお、mは、正の整数である。
 図9は、実施の形態1に係る鍵生成装置100と暗号化装置200と復号装置300とのハードウェア構成例を示す図である。
 鍵生成装置100と暗号化装置200と復号装置300とはコンピュータである。
 鍵生成装置100と暗号化装置200と復号装置300とは、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。
 プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
 入力インタフェース905は、ケーブル911により入力装置907に接続されている。
 ディスプレイインタフェース906は、ケーブル912によりディスプレイ908に接続されている。
 プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
 補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
 メモリ903は、例えば、RAM(Random Access Memory)である。
 通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
 入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。
 ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
 入力装置907は、例えば、マウス、キーボード又はタッチパネルである。
 ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
 パラメータ取得部110と、パラメータ公開部140と、秘密鍵出力部150と、パラメータ取得部210と、暗号文出力部230と、パラメータ取得部310とは、通信装置904によって実現される。パラメータ取得部110と、パラメータ取得部210と、パラメータ取得部310とは、入力インタフェース905によって実現されてもよい。
 結果出力部323は、ディスプレイインタフェース906によって実現される。
 補助記憶装置902には、上述したマスター鍵生成部120と、基本行列選択部121と、ランダム行列選択部122と、ランダムベクトル選択部123と、秘密鍵生成部130と、ベクトル分解部131と、述語行列生成部132と、鍵要素生成部133と、暗号文生成部220と、ランダム行列選択部221と、乱数選択部222と、ノイズ選択部223と、暗号要素生成部224と、復号部320と、行列計算部321と、値計算部322と(以下、マスター鍵生成部120と、基本行列選択部121と、ランダム行列選択部122と、ランダムベクトル選択部123と、秘密鍵生成部130と、ベクトル分解部131と、述語行列生成部132と、鍵要素生成部133と、暗号文生成部220と、ランダム行列選択部221と、乱数選択部222と、ノイズ選択部223と、暗号要素生成部224と、復号部320と、行列計算部321と、値計算部322とをまとめて「部」と表記する)の機能を実現するプログラムが記憶されている。
 このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
 更に、補助記憶装置902には、OS(Operating System)も記憶されている。
 そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
 図9では、1つのプロセッサ901が図示されているが、鍵生成装置100と暗号化装置200と復号装置300とが複数のプロセッサ901を備えていてもよい。そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
 また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリにファイルとして記憶される。
 「部」を「サーキットリー」で提供してもよい。また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field-Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
 10 暗号システム、100 鍵生成装置、110 パラメータ取得部、120 マスター鍵生成部、121 基本行列選択部、122 ランダム行列選択部、123 ランダムベクトル選択部、130 秘密鍵生成部、131 ベクトル分解部、132 述語行列生成部、133 鍵要素生成部、140 パラメータ公開部、150 秘密鍵出力部、200 暗号化装置、210 パラメータ取得部、220 暗号文生成部、221 ランダム行列選択部、222 乱数選択部、223 ノイズ選択部、224 暗号要素生成部、230 暗号文出力部、300 復号装置、310 パラメータ取得部、320 復号部、321 行列計算部、322 値計算部、323 結果出力部。

Claims (6)

  1.  入力パラメータYによって定まる行列Aと、行列eとの積が、公開パラメータPPから得られる複数の行列uのうちの行列uであって、複数の値を含む集合[N]のうちの値jについての行列uになる前記行列eを鍵要素として含む秘密鍵を、前記入力パラメータYについての秘密鍵として生成する鍵生成装置と、
     前記集合[N]に含まれる各値についての暗号要素を含む暗号文を生成する暗号化装置と、
     前記暗号文に含まれる暗号要素のうちの前記値jについての暗号要素と、前記秘密鍵とを用いて、前記暗号文を復号する復号装置と
    を備える暗号システム。
  2.  前記行列eは、前記行列A及び行列uよりもノルムが短い
    請求項1に記載の暗号システム。
  3.  前記各値についての暗号要素は、その値についての行列uを用いて生成された
    請求項1又は2に記載の暗号システム。
  4.  前記行列Aは、前記入力パラメータYである述語ベクトルvが設定された行列Aであり、
     前記暗号化装置は、前記各値についての暗号要素に加えて、属性ベクトルwを設定した暗号要素を含む暗号文を生成する
    請求項1から3までのいずれか1項に記載の暗号システム。
  5.  前記鍵生成装置は、数1に示す行列eを前記鍵要素として生成し、
     前記暗号化装置は、数2に示すcと、数3に示すci,γと、数4に示すc’とを前記暗号要素として生成し、
     前記復号装置は、数5に示す計算をして、前記暗号文を復号する
    請求項4に記載の暗号システム。
    Figure JPOXMLDOC01-appb-M000001
    Figure JPOXMLDOC01-appb-M000002
    Figure JPOXMLDOC01-appb-M000003
    Figure JPOXMLDOC01-appb-M000004
    Figure JPOXMLDOC01-appb-M000005
  6.  入力パラメータYと公開パラメータPPとを取得するパラメータ取得部と、
     前記パラメータ取得部が取得した入力パラメータYによって定まる行列Aと、行列eとの積が、公開パラメータPPから得られる複数の行列uのうちの行列uであって、複数の値を含む集合[N]のうちの値jについての行列uになる前記行列eを秘密鍵の鍵要素として生成する秘密鍵生成部と
    を備える鍵生成装置。
PCT/JP2015/060825 2015-04-07 2015-04-07 暗号システム及び鍵生成装置 WO2016162941A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201580078523.0A CN107454975B (zh) 2015-04-07 2015-04-07 加密系统和密钥生成装置
PCT/JP2015/060825 WO2016162941A1 (ja) 2015-04-07 2015-04-07 暗号システム及び鍵生成装置
US15/562,344 US10516534B2 (en) 2015-04-07 2015-04-07 Cryptographic system and key generation apparatus
JP2017510826A JP6305638B2 (ja) 2015-04-07 2015-04-07 暗号システム及び鍵生成装置
EP15888435.3A EP3282437B1 (en) 2015-04-07 2015-04-07 Functional encryption system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/060825 WO2016162941A1 (ja) 2015-04-07 2015-04-07 暗号システム及び鍵生成装置

Publications (1)

Publication Number Publication Date
WO2016162941A1 true WO2016162941A1 (ja) 2016-10-13

Family

ID=57072424

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/060825 WO2016162941A1 (ja) 2015-04-07 2015-04-07 暗号システム及び鍵生成装置

Country Status (5)

Country Link
US (1) US10516534B2 (ja)
EP (1) EP3282437B1 (ja)
JP (1) JP6305638B2 (ja)
CN (1) CN107454975B (ja)
WO (1) WO2016162941A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2752697C1 (ru) * 2017-10-17 2021-07-30 Конинклейке Филипс Н.В. Криптографическое устройство с изменяемой конфигурацией

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6006842B1 (ja) * 2015-07-22 2016-10-12 日本電信電話株式会社 秘密計算装置、その方法、およびプログラム
WO2019157503A1 (en) 2018-02-12 2019-08-15 Massachusetts Institute Of Technology Systems and methods for providing secure communications using a protocol engine
KR20210130196A (ko) * 2019-02-19 2021-10-29 메사추세츠 인스티튜트 오브 테크놀로지 양자-보안 사물 인터넷을 위한 설정가능한 래티스 암호 프로세서 및 관련된 기법들
JP2023544198A (ja) * 2020-10-05 2023-10-20 エヌティーティー リサーチ インコーポレイテッド 分散型マルチ権限属性ベース暗号
CN114095170B (zh) * 2022-01-20 2022-05-27 北京信安世纪科技股份有限公司 数据处理方法、装置、系统及计算机可读存储介质

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142579A (en) 1991-01-29 1992-08-25 Anderson Walter M Public key cryptographic system and method
JP4346929B2 (ja) * 2003-03-10 2009-10-21 三菱電機株式会社 量子鍵配送方法および通信装置
US7634085B1 (en) 2005-03-25 2009-12-15 Voltage Security, Inc. Identity-based-encryption system with partial attribute matching
US20090080658A1 (en) 2007-07-13 2009-03-26 Brent Waters Method and apparatus for encrypting data for fine-grained access control
JP5349261B2 (ja) 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
CN102598576B (zh) * 2009-10-29 2014-09-17 三菱电机株式会社 数据处理装置
EP2503533B1 (en) 2009-11-20 2016-10-05 Mitsubishi Electric Corporation Cipher processing system, key generating device, key delegating device, encrypting device, decrypting device, cipher processing method and cipher processing program
JP5325755B2 (ja) 2009-12-11 2013-10-23 株式会社エヌ・ティ・ティ・データ 暗号文復号権限委譲システム、暗号文復号権限委譲方法、暗号文変換装置、復号権限所持者用装置および暗号文変換プログラム
JP5424974B2 (ja) 2010-04-27 2014-02-26 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、署名処理システム、署名装置及び検証装置
US8634563B2 (en) * 2010-12-17 2014-01-21 Microsoft Corporation Attribute based encryption using lattices
JP5693206B2 (ja) 2010-12-22 2015-04-01 三菱電機株式会社 暗号処理システム、鍵生成装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム
JP5513444B2 (ja) 2011-05-31 2014-06-04 日本電信電話株式会社 ベクトル構成システム、方法、装置及びプログラム並びに暗号システム
JP5651609B2 (ja) 2012-01-23 2015-01-14 日本電信電話株式会社 検索可能暗号システム、検索装置、計算装置、及びプログラム
JP5670366B2 (ja) * 2012-01-27 2015-02-18 日本電信電話株式会社 匿名データ提供システム、匿名データ装置、それらが実行する方法、およびプログラム
US9281941B2 (en) * 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
JP5730805B2 (ja) * 2012-04-04 2015-06-10 日本電信電話株式会社 格子問題に基づく階層型内積暗号システム,格子問題に基づく階層型内積暗号方法,装置
US8566601B1 (en) * 2012-09-12 2013-10-22 Zeutro Llc Systems and methods for functional encryption using a string of arbitrary length
JP5852551B2 (ja) * 2012-11-12 2016-02-03 日本電信電話株式会社 関数型暗号システム、鍵生成装置、暗号化装置、復号装置、関数型暗号方法、およびプログラム
JP6115573B2 (ja) 2012-11-30 2017-04-19 日本電気株式会社 暗号システム、データ保存システム、それに用いる装置および方法
JP2014186097A (ja) * 2013-03-22 2014-10-02 Kddi Corp 公開鍵暗号化方式における並列GaussSieveアルゴリズムを用いた最短ベクトル問題の求解装置、求解方法およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AGRAWAL, SHWETA ET AL.: "Functional Encryption for Inner Product Predicates from Learning with Errors", ADVANCES IN CRYPTOLOGY -- ASIACRYPT, vol. 2011, 2011, pages 21 - 40, XP047309673 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2752697C1 (ru) * 2017-10-17 2021-07-30 Конинклейке Филипс Н.В. Криптографическое устройство с изменяемой конфигурацией

Also Published As

Publication number Publication date
US20180357933A1 (en) 2018-12-13
CN107454975A (zh) 2017-12-08
EP3282437A4 (en) 2018-04-04
CN107454975B (zh) 2020-11-27
JPWO2016162941A1 (ja) 2017-06-01
EP3282437B1 (en) 2021-10-27
JP6305638B2 (ja) 2018-04-04
US10516534B2 (en) 2019-12-24
EP3282437A1 (en) 2018-02-14

Similar Documents

Publication Publication Date Title
JP6305638B2 (ja) 暗号システム及び鍵生成装置
JP6732141B2 (ja) 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム
US20140233727A1 (en) Method for secure substring search
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
CN110169010B (zh) 同态运算装置、加密系统和计算机能读取的存储介质
US11658806B2 (en) Identity-based hash proof system configuration apparatus, identity-based encryption apparatus, identity-based hash proof system configuration method and program
JP6270683B2 (ja) 暗号システム、暗号方法、普遍再暗号化鍵生成装置及び再暗号化鍵生成装置
JP2018036418A (ja) 暗号システム、暗号方法及び暗号プログラム
CN116170142B (zh) 分布式协同解密方法、设备和存储介质
WO2019239776A1 (ja) 復号装置、暗号化装置及び暗号システム
JP6081036B2 (ja) 復号条件追加装置及び暗号システム
JP6625283B2 (ja) 暗号化装置、復号装置、暗号化方法、暗号化プログラム、復号方法及び復号プログラム
Hussein et al. Proposed Parallel Algorithms to Encryption Image Based on Hybrid Enhancement RC5 and RSA
WO2019142260A1 (ja) 秘匿分析装置、秘匿分析システム、秘匿分析方法及び秘匿分析プログラム
JP6949276B2 (ja) 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム
US11811741B2 (en) Information processing system and information processing method
EP4024755B1 (en) Secured performance of an elliptic curve cryptographic process
WO2021130935A1 (ja) 電子透かし埋め込み装置、電子透かし抽出装置、電子透かし埋め込み方法、電子透かし抽出方法及びプログラム
Aruljothi et al. A Survey on Different Encryption Techniques in Network Security

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2017510826

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2015888435

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE