KR102123435B1 - Encryption method for supporting equality query in multi-client environment and apparatus using the same - Google Patents
Encryption method for supporting equality query in multi-client environment and apparatus using the same Download PDFInfo
- Publication number
- KR102123435B1 KR102123435B1 KR1020190100941A KR20190100941A KR102123435B1 KR 102123435 B1 KR102123435 B1 KR 102123435B1 KR 1020190100941 A KR1020190100941 A KR 1020190100941A KR 20190100941 A KR20190100941 A KR 20190100941A KR 102123435 B1 KR102123435 B1 KR 102123435B1
- Authority
- KR
- South Korea
- Prior art keywords
- attribute
- equation
- pseudo
- generating
- random number
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/321—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
- H04L9/3213—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
Abstract
Description
본 발명의 실시예들은 암호화 기술과 관련된다.Embodiments of the invention relate to encryption technology.
술어-기반 암호(Predicate Encryption)는 암호화된 메시지의 속성과 속성 벡터 간의 동치 연산을 가능하게 하는 비밀키 암호 기술이다. 기존 술어-기반 암호 기법들은 다수의 클라이언트가 생성한 다수의 암호문들을 모두 한 번에 비교하기가 어려웠다. 일부 다수 술어-기반 암호 기법은 다수의 클라이언트가 생성한 다수의 암호문에 대한 비교를 지원했으나 다수 암호문에 대한 질의(또는 복호화) 연산을 수행하는 과정이 처리하는 암호문의 개수에 선형적으로 늘어나는 단점을 가져서 비효율적이었다.Predicate Encryption (Predicate Encryption) is a secret key encryption technology that enables the equivalent operation between the attribute vector and the attribute of the encrypted message. Conventional predicate-based cryptography has been difficult to compare multiple ciphertexts generated by multiple clients at once. Some multiple predicate-based cryptography supports comparison of multiple ciphertexts generated by multiple clients, but the disadvantage of linear increase in the number of ciphertexts processed by the process of performing a query (or decryption) operation on multiple ciphertexts It was inefficient.
본 발명의 실시예들은 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치를 제공하기 위한 것이다.Embodiments of the present invention are to provide an encryption method supporting an equivalent query in a multi-client environment and an apparatus using the same.
본 발명의 일 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 키 생성 장치로부터 사용자 암호키를 획득하는 단계; 및 속성 벡터에 대한 라벨(label) 및 상기 사용자 암호키에 기초하여 상기 속성 벡터에 대한 암호문을 생성하는 단계를 포함한다.A method according to an embodiment of the present invention is a method performed in a computing device having one or more processors, and a memory storing one or more programs executed by the one or more processors, the user password from the key generating device Obtaining a key; And generating a ciphertext for the attribute vector based on the label for the attribute vector and the user encryption key.
상기 암호문을 생성하는 단계는, 상기 라벨에 대한 해시 값을 생성하는 단계; The generating of the ciphertext may include generating a hash value for the label;
상기 속성 벡터에 포함된 하나 이상의 속성 값 각각에 대한 의사 난수(pseudo-random number)를 생성하는 단계; 및 상기 해시 값, 상기 의사 난수 및 상기 사용자 암호키에 기초하여 상기 암호문을 생성하는 단계를 포함할 수 있다.Generating a pseudo-random number for each of the one or more attribute values included in the attribute vector; And generating the ciphertext based on the hash value, the pseudo-random number, and the user encryption key.
상기 암호문은, 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 상기 해시 값의 지수로 이용하여 산출된 복수의 암호문 원소를 포함할 수 있다.The ciphertext may include a plurality of ciphertext elements calculated by using a pseudo-random number for each of the one or more attribute values as an index of the hash value.
상기 사용자 암호키는, 아래의 수학식 1The user encryption key, the following
[수학식 1][Equation 1]
(이때, 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number)을 만족하고, 상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3(At this time, User index, Is the user encryption key for user i, The Element of, And Is an arbitrary integer, p satisfies a prime number, and the step of generating the pseudo-random number includes
[수학식 2][Equation 2]
[수학식 3][Equation 3]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 상기 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, 는 상기 속성 값 에 대한 의사 난수)을 이용하여 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 생성할 수 있다.(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is an attribute value for attribute category j among the one or more attribute values, Is the attribute value Pseudo-random number for) to generate a pseudo-random number for each of the one or more attribute values.
상기 암호문을 생성하는 단계는, 아래의 수학식 4The step of generating the ciphertext is Equation 4 below.
[수학식 4][Equation 4]
(이때, 는 상기 암호문, 은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨, 는 상기 해시 값)을 이용하여 상기 암호문을 생성할 수 있다.(At this time, Is the ciphertext, Is the total number of attribute categories included in the attribute vector, T is the label, May generate the ciphertext using the hash value).
본 발명의 일 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 복수의 사용자 각각에 대한 사용자 암호키 및 마스터 비밀키를 생성하는 단계; 상기 생성된 사용자 암호키를 상기 복수의 사용자 각각의 클라이언트 장치로 제공하는 단계; 질의 장치로부터 복수의 질의 벡터를 포함하는 질의 벡터 집합을 수신하는 단계; 상기 질의 벡터 집합 및 상기 마스터 비밀키를 이용하여 상기 질의 벡터 집합에 대한 토큰을 생성하는 단계; 및 상기 생성된 토큰을 상기 질의 장치로 제공하는 단계를 포함한다.A method according to an embodiment of the present invention is a method performed in a computing device having one or more processors, and a memory storing one or more programs executed by the one or more processors, for each of a plurality of users Generating a user encryption key and a master secret key; Providing the generated user encryption key to the client devices of each of the plurality of users; Receiving a query vector set including a plurality of query vectors from the query device; Generating a token for the query vector set using the query vector set and the master secret key; And providing the generated token to the query device.
상기 토큰을 생성하는 단계는, 상기 질의 벡터 집합에 대한 의사 난수(pseudo-random number)를 생성하는 단계; 및 상기 의사 난수 및 상기 마스터 비밀키를 이용하여 상기 토큰을 생성하는 단계를 포함할 수 있다.Generating the token may include generating a pseudo-random number for the query vector set; And generating the token using the pseudo-random number and the master secret key.
상기 사용자 암호키는 아래의 수학식 1The user encryption key is the following
[수학식 1][Equation 1]
(이때, 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number))을 만족하고, 상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3(At this time, User index, Is the user encryption key for user i, The Element of, And Is an arbitrary integer, p satisfies a prime number, and the step of generating the pseudo-random number includes
[수학식 2][Equation 2]
[수학식 3][Equation 3]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 상기 질의 벡터 집합에 대한 토큰, 는 질의 벡터 i에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 i에 포함된 하나 이상의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 상기 의사 난수를 생성할 수 있다.(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is the token for the vector set of queries, Is an attribute value for an attribute category j among one or more attribute values included in the query vector i, and S i is an attribute value for each of the attribute values excluding wild card attribute values among one or more attribute values included in the query vector i. The set of attribute category indices for) may be used to generate the pseudo-random number.
상기 마스터 비밀키를 생성하는 단계는 아래의 수학식 4The step of generating the master secret key is Equation 4 below.
[수학식 4][Equation 4]
(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 총수, 는 위수가 p인 순환군(cyclic group) 의 원소)를 이용하여 상기 마스터 비밀키를 생성하고, 상기 토큰을 생성하는 단계는, 아래의 수학식 5(At this time, MK is the master secret key, n is the total number of the plurality of users, Is a cyclic group with p Step of generating the master secret key using the elements of, and generating the token, Equation 5 below
[수학식 5][Equation 5]
(이때, 는 상기 질의 벡터 집합에 대한 토큰, , 및 는 각각 의 원소)를 이용하여 상기 토큰을 생성할 수 있다.(At this time, Is the token for the vector set of queries, , And Each The element can be generated using the () element.
본 발명의 일 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 복수의 질의 벡터를 포함하는 질의 벡터 집합을 생성하는 단계; 키 생성 장치로부터 상기 질의 벡터 집합에 대한 토큰을 획득하는 단계; 및 상이한 사용자 암호키를 이용하여 암호화된 복수의 속성 벡터 각각에 대한 암호문, 상기 복수의 속성 벡터에 대한 라벨(label) 및 상기 토큰을 이용하여, 상기 복수의 속성 벡터를 포함하는 속성 벡터 집합과 상기 질의 벡터 집합 사이의 동치 관계 성립 여부를 판단하는 단계를 포함한다.A method according to an embodiment of the present invention is a method performed in a computing device having one or more processors, and a memory storing one or more programs executed by the one or more processors, including a plurality of query vectors Generating a vector set of queries to be performed; Obtaining a token for the set of query vectors from a key generator; And an attribute vector set including the plurality of attribute vectors and the query using a ciphertext for each of the plurality of attribute vectors encrypted using different user encryption keys, a label for the plurality of attribute vectors, and the token. And determining whether to establish an equivalent relationship between vector sets.
상기 복수의 속성 벡터 각각에 대한 암호문은, 상기 라벨에 대한 해시 값, 상기 복수의 속성 벡터 각각에 포함된 하나 이상의 속성 값 각각에 대한 제1 의사 난수(pseudo-random number) 및 상기 사용자 암호키를 이용하여 생성되고, 상기 토큰은, 상기 질의 벡터 집합에 대한 제2 의사 난수 및 상기 마스터 비밀키를 이용하여 생성될 수 있다.The ciphertext for each of the plurality of attribute vectors includes a hash value for the label, a first pseudo-random number for each of one or more attribute values included in each of the plurality of attribute vectors, and the user encryption key. The token may be generated using the second pseudo-random number for the query vector set and the master secret key.
상기 사용자 암호키는 아래의 수학식 1The user encryption key is the following
[수학식 1][Equation 1]
( 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number))을 만족하고, 상기 제1 의사 난수는, 아래의 수학식 2( User index, Is the user encryption key for user i, The Element of, And Is an arbitrary integer, p satisfies a prime number, and the first pseudo-random number is Equation 2 below.
[수학식 2][Equation 2]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 사용자 i의 사용자 암호키를 이용하여 암호화된 속성 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, 는 상기 속성 값 에 대한 제1 의사 난수)을 이용하여 생성되고, 상기 제2 의사 난수는, 아래의 수학식 3(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is an attribute vector encrypted using the user's user encryption key. The attribute value for attribute category j among one or more attribute values included in Is the attribute value Is generated using the first pseudo-random number for, the second pseudo-random number,
[수학식 3][Equation 3]
(이때, 는 상기 질의 벡터 집합에 대한 토큰, 는 상기 속성 벡터 에 대한 질의 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 i에 포함된 하나 이상의 속성 값 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 생성되며, 상기 는 아래의 수학식 4(At this time, Is the token for the vector set of queries, Is the above attribute vector Query for vector Attribute value for attribute category j among one or more attribute values included in, S i is an attribute category index for each of the other attribute values excluding wild card attribute values among one or more attribute values included in the query vector i Is generated using a set of Equation 4 below
[수학식 4][Equation 4]
를 이용하여 생성될 수 있다.It can be generated using.
상기 마스터 비밀키는 아래의 수학식 5The master secret key is Equation 5 below
[수학식 5][Equation 5]
(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 수, 는 위수가 p인 순환군(cyclic group) 의 원소)를 만족하고,(At this time, MK is the master secret key, n is the number of the plurality of users, Is a cyclic group with p Element of)
상기 암호문은, 아래의 수학식 6The ciphertext is the following Equation 6
[수학식 6][Equation 6]
(이때, 는 상기 암호문, 은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨, 는 상기 해시 값)을 만족하고,(At this time, Is the ciphertext, Is the total number of attribute categories included in the attribute vector, T is the label, Satisfies the above hash value),
상기 토큰은, 아래의 수학식 7The token, Equation 7 below
[수학식 7][Equation 7]
(이때, 는 상기 토큰, , 및 는 각각 의 원소)을 만족할 수 있다.(At this time, Is the token, , And Each Element of).
상기 판단하는 단계는, 아래의 수학식 8The determining step, Equation 8 below
[수학식 8][Equation 8]
(이때, e는 를 만족하는 겹선형 함수(bilinear map), , 및 는 위수(order)가 소수 p인 순환군(cyclic group))이 만족되는 경우, 상기 동치 관계가 성립하는 것으로 판단할 수 있다.(At this time, e is Bilinear map, which satisfies , And When the cyclic group having a small number of p is satisfied, it may be determined that the same relationship is established.
본 발명의 일 실시예에 따른 장치는, 메모리; 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 키 생성 장치로부터 사용자 암호키를 획득하는 단계; 및 속성 벡터에 대한 라벨(label) 및 상기 사용자 암호키에 기초하여 상기 속성 벡터에 대한 암호문을 생성하는 단계를 실행하기 위한 명령어들을 포함한다.An apparatus according to an embodiment of the present invention, a memory; And one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the program comprising: obtaining a user encryption key from a key generating device; And instructions for executing the step of generating a ciphertext for the attribute vector based on the label for the attribute vector and the user encryption key.
상기 암호문을 생성하는 단계는, 상기 라벨에 대한 해시 값을 생성하는 단계; 상기 속성 벡터에 포함된 하나 이상의 속성 값 각각에 대한 의사 난수(pseudo-random number)를 생성하는 단계; 및 상기 해시 값, 상기 의사 난수 및 상기 사용자 암호키에 기초하여 상기 암호문을 생성할 수 있다.The generating of the ciphertext may include generating a hash value for the label; Generating a pseudo-random number for each of the one or more attribute values included in the attribute vector; And the ciphertext based on the hash value, the pseudo-random number, and the user encryption key.
상기 암호문은, 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 상기 해시 값의 지수로 이용하여 산출된 복수의 암호문 원소를 포함할 수 있다.The ciphertext may include a plurality of ciphertext elements calculated by using a pseudo-random number for each of the one or more attribute values as an index of the hash value.
상기 사용자 암호키는, 아래의 수학식 1The user encryption key, the following
[수학식 1][Equation 1]
(이때, 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number)을 만족하고, 상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3(At this time, User index, Is the user encryption key for user i, The Element of, And Is an arbitrary integer, p satisfies a prime number, and the step of generating the pseudo-random number includes
[수학식 2][Equation 2]
[수학식 3][Equation 3]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 상기 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, 는 상기 속성 값 에 대한 의사 난수)을 이용하여 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 생성할 수 있다.(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is an attribute value for attribute category j among the one or more attribute values, Is the attribute value Pseudo-random number for) to generate a pseudo-random number for each of the one or more attribute values.
상기 암호문을 생성하는 단계는, 아래의 수학식 4The step of generating the ciphertext is Equation 4 below.
[수학식 4][Equation 4]
(이때, 는 상기 암호문, 은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨, 는 상기 해시 값)을 이용하여 상기 암호문을 생성할 수 있다.(At this time, Is the ciphertext, Is the total number of attribute categories included in the attribute vector, T is the label, May generate the ciphertext using the hash value).
본 발명의 일 실시예에 따른 장치는, 하나 이상의 프로세서; 메모리; 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 복수의 사용자 각각에 대한 사용자 암호키 및 마스터 비밀키를 생성하는 단계; 상기 생성된 사용자 암호키를 상기 복수의 사용자 각각의 클라이언트 장치로 제공하는 단계; 질의 장치로부터 복수의 질의 벡터를 포함하는 질의 벡터 집합을 수신하는 단계; 상기 질의 벡터 집합 및 상기 마스터 비밀키를 이용하여 상기 질의 벡터 집합에 대한 토큰을 생성하는 단계; 및 상기 생성된 토큰을 상기 질의 장치로 제공하는 단계를 실행하기 위한 명령어들을 포함한다.An apparatus according to an embodiment of the present invention, one or more processors; Memory; And one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, wherein the programs generate a user encryption key and a master secret key for each of the plurality of users. To do; Providing the generated user encryption key to the client devices of each of the plurality of users; Receiving a query vector set including a plurality of query vectors from the query device; Generating a token for the query vector set using the query vector set and the master secret key; And instructions for executing the step of providing the generated token to the query device.
상기 토큰을 생성하는 단계는, 상기 질의 벡터 집합에 대한 의사 난수(Pseudo-random number)를 생성하는 단계; 및 상기 의사 난수 및 상기 마스터 비밀키를 이용하여 상기 토큰을 생성하는 단계를 포함할 수 있다.Generating the token may include generating a pseudo-random number for the query vector set; And generating the token using the pseudo-random number and the master secret key.
상기 사용자 암호키는 아래의 수학식 1The user encryption key is the
[수학식 1][Equation 1]
(이때, 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number))을 만족하고, 상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3(At this time, User index, Is the user encryption key for user i, The Element of, And Is an arbitrary integer, p satisfies a prime number, and the step of generating the pseudo-random number includes
[수학식 2][Equation 2]
[수학식 3][Equation 3]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 상기 질의 벡터 집합에 대한 토큰, 는 질의 벡터 i에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 i에 포함된 하나 이상의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 상기 의사 난수를 생성할 수 있다.(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is the token for the vector set of queries, Is an attribute value for an attribute category j among one or more attribute values included in the query vector i, and S i is an attribute value for each of the attribute values excluding wild card attribute values among one or more attribute values included in the query vector i. The set of attribute category indices for) may be used to generate the pseudo-random number.
상기 마스터 비밀키를 생성하는 단계는 아래의 수학식 4The step of generating the master secret key is Equation 4 below.
[수학식 4][Equation 4]
(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 총수, 는 위수가 p인 순환군(cyclic group) 의 원소)를 이용하여 상기 마스터 비밀키를 생성하고, 상기 토큰을 생성하는 단계는, 아래의 수학식 5(At this time, MK is the master secret key, n is the total number of the plurality of users, Is a cyclic group with p Step of generating the master secret key using the elements of, and generating the token, Equation 5 below
[수학식 5][Equation 5]
(이때, 는 상기 질의 벡터 집합에 대한 토큰, , 및 는 각각 의 원소)를 이용하여 상기 토큰을 생성할 수 있다.(At this time, Is the token for the vector set of queries, , And Each The element can be generated using the () element.
본 발명의 일 실시예에 따른 장치는, 하나 이상의 프로세서; 메모리; 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 복수의 질의 벡터를 포함하는 질의 벡터 집합을 생성하는 단계; 키 생성 장치로부터 상기 질의 벡터 집합에 대한 토큰을 획득하는 단계; 및 상이한 사용자 암호키를 이용하여 암호화된 복수의 속성 벡터 각각에 대한 암호문, 상기 복수의 속성 벡터에 대한 라벨(label) 및 상기 토큰을 이용하여, 상기 복수의 속성 벡터를 포함하는 속성 벡터 집합과 상기 질의 벡터 집합 사이의 동치 관계 성립 여부를 판단하는 단계를 실행하기 위한 명령어들을 포함한다.An apparatus according to an embodiment of the present invention, one or more processors; Memory; And one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the program comprising: generating a set of query vectors comprising a plurality of query vectors; Obtaining a token for the set of query vectors from a key generator; And an attribute vector set including the plurality of attribute vectors and the query using a ciphertext for each of the plurality of attribute vectors encrypted using different user encryption keys, a label for the plurality of attribute vectors, and the token. It includes instructions for executing a step of determining whether an equivalent relationship between vector sets is established.
상기 복수의 속성 벡터 각각에 대한 암호문은, 상기 라벨에 대한 해시 값, 상기 복수의 속성 벡터 각각에 포함된 하나 이상의 속성 값 각각에 대한 제1 의사 난수(pseudo-random number) 및 상기 사용자 암호키를 이용하여 생성되고, 상기 토큰은, 상기 질의 벡터 집합에 대한 제2 의사 난수 및 상기 마스터 비밀키를 이용하여 생성될 수 있다.The ciphertext for each of the plurality of attribute vectors includes a hash value for the label, a first pseudo-random number for each of the one or more attribute values included in each of the plurality of attribute vectors, and the user encryption key. The token may be generated using the second pseudo-random number for the query vector set and the master secret key.
상기 사용자 암호키는 아래의 수학식 1The user encryption key is the
[수학식 1][Equation 1]
( 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number))을 만족하고, 상기 제1 의사 난수는, 아래의 수학식 2( User index, Is the user encryption key for user i, The Element of, And Is an arbitrary integer, p satisfies a prime number, and the first pseudo-random number is Equation 2 below.
[수학식 2][Equation 2]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 사용자 i의 사용자 암호키를 이용하여 암호화된 속성 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, 는 상기 속성 값 에 대한 제1 의사 난수)을 이용하여 생성되고, 상기 제2 의사 난수는, 아래의 수학식 3(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is an attribute vector encrypted using the user's user encryption key. The attribute value for attribute category j among one or more attribute values included in Is the attribute value Is generated using the first pseudo-random number for, the second pseudo-random number,
[수학식 3][Equation 3]
(이때, 는 상기 질의 벡터 집합에 대한 토큰, 는 상기 속성 벡터 에 대한 질의 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 i에 포함된 하나 이상의 속성 값 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 생성되며, 상기 는 아래의 수학식 4(At this time, Is the token for the vector set of queries, Is the above attribute vector Query for vector Attribute value for attribute category j among one or more attribute values included in, S i is an attribute category index for each of the other attribute values excluding wild card attribute values among one or more attribute values included in the query vector i Is generated using a set of Equation 4 below
[수학식 4][Equation 4]
를 이용하여 생성될 수 있다.It can be generated using.
상기 마스터 비밀키는 아래의 수학식 5The master secret key is Equation 5 below
[수학식 5][Equation 5]
(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 수, 는 위수가 p인 순환군(cyclic group) 의 원소)를 만족하고, 상기 암호문은, 아래의 수학식 6(At this time, MK is the master secret key, n is the number of the plurality of users, Is a cyclic group with p Element), and the ciphertext is Equation 6 below.
[수학식 6][Equation 6]
(이때, 는 상기 암호문, 은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨, 는 상기 해시 값)을 만족하고, 상기 토큰은, 아래의 수학식 7(At this time, Is the ciphertext, Is the total number of attribute categories included in the attribute vector, T is the label, Is the hash value), and the token is represented by Equation 7 below.
[수학식 7][Equation 7]
(이때, 는 상기 토큰, , 및 는 각각 의 원소)을 만족할 수 있다.(At this time, Is the token, , And Each Element of).
상기 판단하는 단계는, 아래의 수학식 8The determining step, Equation 8 below
[수학식 8][Equation 8]
(이때, e는 를 만족하는 겹선형 함수(bilinear map), , 및 는 위수(order)가 소수 p인 순환군(cyclic group))이 만족되는 경우, 상기 동치 관계가 성립하는 것으로 판단할 수 있다.(At this time, e is Bilinear map, which satisfies , And When the cyclic group having a small number of p is satisfied, it may be determined that the same relationship is established.
본 발명의 실시예들에 따르면, 멀티 클라이언트 환경에서 상이한 클라이언트에 의해 생성된 다수의 암호문에 대한 효율적인 동치 연산이 가능하게 된다..According to embodiments of the present invention, it is possible to perform efficient equivalent operation for multiple ciphertexts generated by different clients in a multi-client environment.
도 1은 도 1은 본 발명의 일 실시예에 따른 암호화 시스템의 구성도
도 2는 본 발명의 일 실시예에 따른 암호화 과정을 설명하기 위한 순서도
도 3은 본 발명의 일 실시예에 따른 질의 벡터 집합과 속성 벡터 집합 사이의 동치 관계 성립 여부를 판단하는 과정을 설명하기 위한 순서도
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도1 is a block diagram of an encryption system according to an embodiment of the present invention
Figure 2 is a flow chart for explaining the encryption process according to an embodiment of the present invention
3 is a flowchart for explaining a process of determining whether an equivalent relationship is established between a query vector set and an attribute vector set according to an embodiment of the present invention.
4 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in example embodiments.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to aid in a comprehensive understanding of the methods, devices and/or systems described herein. However, this is only an example and the present invention is not limited thereto.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.In describing the embodiments of the present invention, when it is determined that a detailed description of known technology related to the present invention may unnecessarily obscure the subject matter of the present invention, the detailed description will be omitted. In addition, terms to be described later are terms defined in consideration of functions in the present invention, which may vary according to a user's or operator's intention or practice. Therefore, the definition should be made based on the contents throughout this specification. The terminology used in the detailed description is only for describing embodiments of the present invention and should not be limiting. Unless expressly used otherwise, a singular form includes a plural form. In this description, expressions such as “including” or “equipment” are intended to indicate certain characteristics, numbers, steps, actions, elements, parts or combinations thereof, and one or more other than described. It should not be interpreted to exclude the presence or likelihood of other characteristics, numbers, steps, actions, elements, parts or combinations thereof.
도 1은 본 발명의 일 실시예에 따른 암호화 시스템의 구성도이다. 1 is a block diagram of an encryption system according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일 실시예에 따른 암호화 시스템(100)은 키 생성 장치(110), 복수의 클라이언트 장치(120-1, 120-2, 120-n), 데이터베이스(130) 및 질의 장치(140)를 포함한다. Referring to FIG. 1, the
키 생성 장치(110)는 암호화 시스템(100)에서 사용할 마스터 비밀키, 사용자 암호키 및 공개 파라미터를 생성하기 위한 장치로서 예를 들어, 신뢰 기관(Trusted Third Party)와 같이 신뢰할 수 있는 개체에 의해 운영될 수 있다.The
구체적으로, 키 생성 장치(110)는 암호화 시스템(100)에 참여한 복수의 사용자 각각에 대한 사용자 암호키를 생성하고, 생성된 각 사용자에 대한 사용자 암호키를 암호화를 위해 각 사용자에 의해 이용되는 클라이언트 장치(120-1, 120-2, 120-n)로 제공할 수 있다.Specifically, the
또한, 키 생성 장치(110)는 마스터 비밀키 및 공개 파라미터를 생성하여 마스터 비밀키는 안전하게 저장하고, 공개 파라미터는 암호화 시스템(100) 내에 공개할 수 있다.In addition, the
한편, 키 생성 장치(110)는 질의 장치(140)의 요청에 따라 질의 벡터 집합에 대한 토큰을 생성하여 질의 장치(140)로 제공할 수 있다.Meanwhile, the
클라이언트 장치(120-1, 120-2, 120-n)는 암호문 생성을 위해 키 생성 장치(110)로부터 사용자 암호키를 발급받은 각 사용자에 의해 이용되는 장치로서, 클라이언트 장치(120-1, 120-2, 120-n)의 개수는 실시예에 따라 변경될 수 있다.The client devices 120-1, 120-2, and 120-n are devices used by each user who has issued a user encryption key from the
데이터베이스(130)는 각 클라이언트 장치(120-1, 120-2, 120-n)에 의해 생성된 암호문을 저장하기 위한 것으로, 각 클라이언트 장치(120-1, 120-2, 120-n) 및 질의 장치(140)에 의해 접근 가능한 하나 이상의 서버 또는 클라우드(cloud) 환경 내에 구현될 수 있다.
질의 장치(140)는 키 생성 장치(110)로부터 제공받은 질의 벡터 집합에 대한 토큰과 각 클라이언트 장치(120-1, 120-2, 120-n)에 의해 생성되어 데이터베이스(130)에 저장된 복수의 속성 벡터 각각에 대한 암호문을 이용하여, 복수의 속성 벡터를 포함하는 속성 벡터 집합과 질의 벡터 집합 사이의 동치 관계 성립 여부를 판단한다. The
한편, 도 1에 도시된 암호화 시스템(100)에서 수행되는 암호화 기법은 다음과 같은 4개의 알고리즘으로 구성될 수 있다.Meanwhile, the encryption technique performed in the
셋업(setup) 알고리즘Setup algorithm
셋업 알고리즘은 보안 상수(Security Parameter) 1λ 및 암호화 시스템(100)에 참여할 사용자의 총수(n)을 입력받아 각각 위수(order)가 소수(prime number) p인 순환군(cyclic group) , 및 를 생성할 수 있다.The setup algorithm receives
또한, 셋업 알고리즘은 를 만족하는 겹선형 함수(bilinear map) , 를 만족하는 의 생성원(generator) 및 를 만족하는 의 생성원 를 생성할 수 있다. Also, the setup algorithm Bilinear map that satisfies , Satisfying Generator And Satisfying Origin of Can generate
이후, 셋업 알고리즘은 모든 i(이때, i는 사용자 인덱스로서 인 정수)에 대해 를 만족하는 , 임의의 정수 및 를 선택하여 각 사용자에 대한 사용자 암호키 를 생성할 수 있다.After that, the setup algorithm is set to all i (where i is the user index Phosphorus constants) Satisfying , Any integer And Select the user encryption key for each user Can generate
또한, 셋업 알고리즘은 를 만족하는 를 선택하고, 마스터 비밀키 를 생성할 수 있다.Also, the setup algorithm Satisfying Select and Master Secret Key Can generate
한편, 본 발명의 일 실시예에서, 셋업 알고리즘은 키 생성 장치(110)에 의해 수행될 수 있다. 이 경우, 키 생성 장치(110)는 셋업 알고리즘을 수행하여 생성한 각 사용자의 사용자 암호키 EKi를 각 사용자의 클라이언트 장치(120-1, 120-2, 120-n)로 제공할 수 있다. Meanwhile, in one embodiment of the present invention, the setup algorithm may be performed by the
또한, 키 생성 장치(110)는 마스터 비밀키 MK는 안전하게 저장하고, 공개 파라미터 는 공개할 수 있다. 이때, 는 임의의 문자 열을 로 맵핑시키는 해시 함수(hash function)(즉, )를 나타낸다.In addition, the
암호화 알고리즘Encryption algorithm
암호화 알고리즘은 사용자 암호키, 공개 파라미터 및 속성 벡터에 대한 라벨(label)에 기초하여 속성 벡터에 대한 암호문을 생성할 수 있다.The encryption algorithm can generate a ciphertext for the attribute vector based on the user encryption key, public parameters, and a label for the attribute vector.
이때, 속성 벡터는 예를 들어, 특정 학생 또는 학급의 성적 데이터에 대한 속성, 특정인의 생체 데이터에 대한 속성 등과 같이 특정한 속성을 나타내기 위한 벡터로서 하나 이상의 속성 카테고리 각각에 대한 속성 값을 포함할 수 있다. 예를 들어, 속성 벡터가 특정 학급의 성적 데이터인 경우, 속성 카테고리는 예를 들어, 성적 평균, 최고 점수, 최저 점수 등일 수 있다.In this case, the attribute vector may include attribute values for each of one or more attribute categories as a vector for representing a specific attribute, such as an attribute for grade data of a specific student or class, an attribute for biometric data of a specific person, for example. have. For example, when the attribute vector is grade class performance data, the attribute category may be, for example, a grade average, a high score, a low score, or the like.
한편, 속성 벡터에 대한 라벨은 암호화 시스템(100) 내에서 기 설정된 방식에 따라 속성 벡터에 부여되는 정보로서 예를 들어, 속성 벡터에 대한 분류 정보, 속성 벡터와 관련된 시점에 관한 정보 등일 수 있으나, 반드시 특정한 정보로 한정되는 것은 아니다. On the other hand, the label for the attribute vector is information that is assigned to the attribute vector according to a preset method in the
구체적인 예로, 속성 벡터가 특정인의 홍체 데이터, 지문 데이터 및 유전자 데이터 중 유전자 데이터에 대한 속성 벡터인 경우, 해당 속성 벡터에 대한 라벨은 유전자 데이터에 대한 속성 벡터임을 나타내는 정보일 수 있다. 다른 예로, 속성 벡터가 특정 학급의 1학기 성적 데이터 및 2학기 성적 데이터 중 1학기 성적 데이터에 대한 속성 벡터인 경우, 해당 속성 벡터에 대한 라벨은 1학기 성적 데이터임을 나타내는 정보일 수 있다.As a specific example, when the attribute vector is an attribute vector for genetic data among iris data, fingerprint data, and genetic data of a specific person, a label for the attribute vector may be information indicating that the attribute vector is an attribute vector for genetic data. As another example, when the attribute vector is an attribute vector for the first semester grade data of the first semester grade data and the second semester grade data of a specific class, the label for the attribute vector may be information indicating that the first semester grade data.
한편, 암호화 알고리즘은 암호화할 속성 벡터 (이때, 은 속성 벡터에 포함될 속성 카테고리의 총 개수)에 포함된 각 속성 값 (이때, j는 속성 카테고리의 인덱스로서 인 정수)에 대한 의사 난수(pseudo-random number)를 생성할 수 있다.Meanwhile, the encryption algorithm is an attribute vector to be encrypted. (At this time, Is the total number of attribute categories to be included in the attribute vector) (In this case, j is the index of the attribute category Can generate a pseudo-random number.
구체적으로, 암호화 알고리즘은 아래의 수학식 1을 이용하여 속성 벡터 에 포함된 각 속성 값 에 대한 의사 난수 를 생성할 수 있다.Specifically, the encryption algorithm is a property
[수학식 1][Equation 1]
수학식 1에서, PRF()는 의사 랜덤 함수(pseudo-random function)를 나타내며, 는 아래의 수학식 2를 이용하여 산출될 수 있다.In
[수학식 2][Equation 2]
이후, 암호화 알고리즘은 속성 벡터 의 라벨 T에 대한 해시 값 H(T), 의사 난수 및 사용자 암호키 EKi에 기초하여 속성 벡터 에 대한 암호문을 생성할 수 있다.Then, the encryption algorithm is a property vector Hash value for label T of H(T), pseudo-random number And attribute vector based on user encryption key EK i You can generate a cipher text for.
구체적으로, 암호화 알고리즘은 아래의 수학식 3을 이용하여 속성 벡터 에 대한 암호문 를 생성할 수 있다.Specifically, the encryption algorithm is a property
[수학식 3][Equation 3]
한편, 본 발명의 일 실시예에서, 암호화 알고리즘은 키 생성 장치(110)로부터 사용자 암호키를 발급받은 각 클라이언트 장치(120-1, 120-2, 120-n)에 의해 수행될 수 있다.Meanwhile, in one embodiment of the present invention, the encryption algorithm may be performed by each of the client devices 120-1, 120-2, and 120-n, which are issued a user encryption key from the
이 경우, 각 클라이언트 장치(120-1, 120-2, 120-n)는 암호화 알고리즘을 수행하여 생성한 암호문 를 데이터베이스(130)에 저장할 수 있다. 이때, 각 클라이언트 장치(120-1, 120-2, 120-n)는 속성 벡터의 라벨 T 및 사용자의 인덱스 정보 i를 해당 속성 벡터에 대한 암호문 와 함께 데이터베이스(130)에 저장할 수 있다.In this case, each client device (120-1, 120-2, 120-n) is a ciphertext generated by performing an encryption algorithm Can be stored in the
토큰(Token) 생성 알고리즘Token generation algorithm
토큰 생성 알고리즘은 질의 벡터 집합 에 대한 토큰을 생성할 수 있다. 이때, 질의 벡터 집합은 암호화 알고리즘을 이용하여 각 클라이언트 장치(120-1, 120-2, 120-n)에 의해 암호화된 속성 벡터들 각각에 대한 질의 벡터 를 포함할 수 있다.Token generation algorithm is a set of query vectors Can generate tokens for At this time, the query vector set is a query vector for each of the attribute vectors encrypted by each client device 120-1, 120-2, 120-n using an encryption algorithm. It may include.
이때, 질의 벡터 에 포함된 각 속성 카테고리의 속성 값 는 속성 벡터 에 포함된 속성 값들 중 와 동일한 인덱스 튜플(tuple) (i, j)를 가지는 속성 값 가 만족하여야 할 값을 의미할 수 있다. At this time, the query vector Attribute values for each attribute category included in The property vector Among the attribute values included in Property value with the same index tuple (i, j) as Can mean the value to be satisfied.
한편, 실시예에 따라, 각 질의 벡터 에 포함된 속성 값 중 하나 이상은 와일드 카드(wild card) 속성 값을 가질 수 있다. 이때, 와일드 카드 속성 값은 속성 벡터 포함된 속성 값들 중 와일드 카드 속성 값과 동일한 인덱스 튜플을 가지는 속성 값이 어떠한 값을 가지더라도 무관함을 의미할 수 있다.Meanwhile, according to an embodiment, each query vector At least one of the attribute values included in may have a wild card attribute value. At this time, the wildcard attribute value is the attribute vector Among attribute values included, it may mean that any attribute value having the same index tuple as the wildcard attribute value has any value.
한편, 토큰 생성 알고리즘은 질의 벡터 집합 Y 및 마스터 비밀 키 MK를 이용하여 질의 벡터 집합 Y에 대한 토큰 TKY를 생성할 수 있다.Meanwhile, the token generation algorithm may generate a token TK Y for the query vector set Y using the query vector set Y and the master secret key MK.
구체적으로, 토큰 생성 알고리즘은 질의 벡터 집합 Y에 대한 의사 난수 를 생성할 수 있다. 이때, 토큰 생성 알고리즘은 아래의 수학식 4를 이용하여 의사 난수 를 생성할 수 있다.Specifically, the token generation algorithm is a pseudo-random number for the query vector set Y. Can generate At this time, the token generation algorithm uses the following equation (4) to generate a pseudo-random number. Can generate
[수학식 4][Equation 4]
수학식 4에서, Si는 질의 벡터 집합 Y에 포함된 각 질의 벡터 의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들을 포함하는 집합을 나타내며, 는 상술한 수학식 2를 이용하여 산출될 수 있다.In Equation 4, S i is each query vector included in the query vector set Y A set of attribute category indices for each of the attribute values other than the wild card attribute value among the attribute values of Can be calculated using Equation 2 above.
이후, 토큰 생성 알고리즘은 생성된 의사 난수 및 마스터 비밀키 MK를 이용하여 질의 벡터 집합 Y에 대한 토큰 TKY을 생성할 수 있다.After that, the token generation algorithm generates the generated pseudo-random number. And a token TK Y for the query vector set Y using the master secret key MK.
구체적으로, 토큰 생성 알고리즘은 아래의 수학식 5를 이용하여 토큰 TKY를 생성할 수 있다.Specifically, the token generation algorithm may generate the token TK Y using Equation 5 below.
[수학식 5][Equation 5]
한편, 본 발명의 일 실시예에서, 토큰 생성 알고리즘은 키 생성 장치(110)에 의해 수행될 수 있다.Meanwhile, in one embodiment of the present invention, the token generation algorithm may be performed by the
이 경우, 키 생성 장치(110)는 질의 장치(140)로부터 질의 벡터 집합 Y에 대한 토큰 생성 요청이 있는 경우, 토큰 생성 알고리즘을 수행하여 질의 벡터 집합 Y에 대한 토큰 TKY를 생성할 수 있다. 또한, 키 생성 장치(110)는 생성된 토큰 TKY를 질의 장치(140)로 제공할 수 있다.In this case, the
쿼리(query) 알고리즘Query algorithm
쿼리 알고리즘은 각 클라이언트 장치(120-1, 120-2, 120-n)에 의해 생성된 속성 벡터 에 대한 암호문 , 라벨 T 및 질의 벡터 집합 에 대한 토큰 TKY를 이용하여 질의 벡터 집합 Y와 속성 벡터 집합 사이의 동치 관계 성립 여부를 판단할 수 있다.The query algorithm is an attribute vector generated by each client device (120-1, 120-2, 120-n). Ciphertext for Set of labels, labels T and quality Query vector set Y and attribute vector set using token TK Y for It is possible to determine whether or not the same relationship is established.
구체적으로, 쿼리 알고리즘은 아래의 수학식 6이 만족되는 경우, 질의 벡터 집합 Y와 속성 벡터 집합 X 사이의 동치 관계가 성립하는 것으로 판단할 수 있다. Specifically, when the following equation (6) is satisfied, the query algorithm may determine that an equivalence relationship between the query vector set Y and the attribute vector set X is established.
[수학식 6][Equation 6]
한편, 본 발명의 일 실시예에서, 쿼리 알고리즘은 질의 장치(140)에 의해 수행될 수 있다.Meanwhile, in one embodiment of the present invention, the query algorithm may be performed by the
이 경우, 질의 장치(110)는 쿼리 알고리즘을 수행하여 질의 벡터 집합 Y와 속성 벡터 집합 X 사이의 동치 관계가 성립하는 것으로 판단된 경우, 1을 출력하고, 성립하지 않는 것으로 판단된 경우, 0을 출력할 수 있다.In this case, the
도 2는 본 발명의 일 실시예에 따른 암호화 과정을 설명하기 위한 순서도이다. 2 is a flowchart illustrating an encryption process according to an embodiment of the present invention.
도 2에 도시된 순서도에서는 설명의 편의를 위해 암호화 시스템(100) 내에 각각 상이한 사용자에 의해 이용되는 3개의 클라이언트 장치(120-1, 120-2, 120-3)가 있는 것으로 가정하나, 사용자 및 클라이언트 장치의 개수가 반드시 도시된 예에 한정되는 것은 아니다.In the flowchart shown in FIG. 2, it is assumed that there are three client devices 120-1, 120-2, and 120-3 used by different users in the
도 2를 참조하면, 우선, 키 생성 장치(110)는 셋업 알고리즘을 수행하여, 각 사용자의 사용자 암호키 , 마스터 비밀키 및 공개 파라미터 를 생성한다(201).Referring to FIG. 2, first, the
이후, 키 생성 장치(110)는 사용자 1의 사용자 암호키 EK1을 사용자 1에 의해 이용되는 클라이언트 장치 1(120-1)로 제공한다(202). Thereafter, the
또한, 키 생성 장치(110)는 사용자 2의 사용자 암호키 EK2을 사용자 2에 의해 이용되는 클라이언트 장치 2(120-2)로 제공한다(203).In addition, the
또한, 키 생성 장치(110)는 사용자 3의 사용자 암호키 EK3을 사용자 3에 의해 이용되는 클라이언트 장치 3(120-3)로 제공한다(204).In addition, the
한편, 키 생성 장치(110)로부터 사용자 암호키 EK1를 획득한 클라이언트 장치 1(120-1)은 암호화 알고리즘을 수행하여 라벨이 T인 속성 벡터 에 대한 암호문 을 생성한다(205).On the other hand, the client device 1 (120-1) obtained the user encryption key EK 1 from the
이후, 클라이언트 장치 1(120-1)은 생성한 암호문 을 데이터베이스(130)에 저장한다(206).Thereafter, the client device 1 (120-1) generates the encrypted text Is stored in the database 130 (206).
또한, 키 생성 장치(110)로부터 사용자 암호키 EK2를 획득한 클라이언트 장치 2(120-2)는 암호화 알고리즘을 수행하여 라벨이 T인 속성 벡터 에 대한 암호문 을 생성한다(207).In addition, the client device 2 (120-2), which has obtained the user encryption key EK 2 from the
이후, 클라이언트 장치 2(120-2)는 생성한 암호문 을 데이터베이스(130)에 저장한다(208).Thereafter, the client device 2 (120-2) generates the encrypted text Is stored in the database 130 (208).
또한, 키 생성 장치(110)로부터 사용자 암호키 EK3를 획득한 클라이언트 장치 3(120-3)은 암호화 알고리즘을 수행하여 라벨이 T인 속성 벡터 에 대한 암호문 을 생성한다(209).In addition, the client device 3 (120-3), which has obtained the user encryption key EK 3 from the
이후, 클라이언트 장치 3(120-3)는 생성한 암호문 을 데이터베이스(130)에 저장한다(210).Thereafter, the client device 3 (120-3) generates the encrypted text Is stored in the database 130 (210).
도 3은 본 발명의 일 실시예에 따른 질의 벡터 집합과 속성 벡터 집합 사이의 동치 관계 성립 여부를 판단하는 과정을 설명하기 위한 순서도이다.FIG. 3 is a flowchart illustrating a process of determining whether an equality relationship is established between a query vector set and an attribute vector set according to an embodiment of the present invention.
도 3에 도시된 과정은 도 2에 도시된 암호화 과정 이후에 수행될 수 있다.The process illustrated in FIG. 3 may be performed after the encryption process illustrated in FIG. 2.
도 3을 참조하면, 우선, 질의 장치(140)는 속성 벡터 집합 에 대한 질의 벡터 집합 를 생성한다(301).Referring to FIG. 3, first, the
이후, 질의 장치(140)는 키 생성 장치(110)로 질의 벡터 집합 Y에 대한 토큰 생성을 요청한다(302).Thereafter, the
이후, 키 생성 장치(110)는 토큰 생성 알고리즘을 수행하여 질의 벡터 집합 Y에 대한 토큰 를 생성한다(303).Thereafter, the
이후, 키 생성 장치(110)는 생성한 토큰 TKY를 질의 장치(140)로 제공한다(304).Thereafter, the
이후, 질의 장치(140)는 데이터베이스(130)에 저장된 암호문들 중 속성 벡터 집합 X에 포함된 속성 벡터 , 및 각각에 대한 암호문 , 및 와 토큰 TKY를 이용하여 질의 벡터 집합 Y와 속성 벡터 집합 X 사이의 동치 관계 성립 여부를 판단한다(305).Thereafter, the
이때, 질의 장치(140)는 이 만족된 경우, 질의 벡터 집합 Y와 속성 벡터 집합 X 사이의 동치 관계가 성립하는 것으로 판단하고, 만족되지 않은 경우, 동치 관계가 성립하지 않는 것으로 판단할 수 있다.At this time, the
한편, 도 2 및 도 3에 도시된 순서도에서는 상기 과정을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.Meanwhile, in the flowcharts illustrated in FIGS. 2 and 3, the process is divided into a plurality of steps, but at least some of the steps are performed by changing the order, combined with other steps, or omitted, or as detailed steps. It may be performed separately, or may be performed by adding one or more steps not shown.
도 4는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.4 is a block diagram illustrating and illustrating a computing environment including a computing device suitable for use in example embodiments. In the illustrated embodiment, each component may have different functions and capabilities in addition to those described below, and may include additional components in addition to those described below.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 암호화 시스템(100)에 포함되는 하나 이상의 컴포넌트일 수 있다.The illustrated
컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.The
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Although the present invention has been described in detail through exemplary embodiments above, those skilled in the art to which the present invention pertains are capable of various modifications within the limits of the embodiments described above without departing from the scope of the present invention. Will understand. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the claims to be described later, but also by the claims and equivalents.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 암호화 시스템
110: 키 생성 장치
120-1, 120-2, 120-3, 120-n: 클라이언트 장치
130: 데이터베이스
140: 질의 장치10: computing environment
12: computing device
14: processor
16: computer readable storage media
18: Communication bus
20: Program
22: I/O interface
24: I/O device
26: network communication interface
100: encryption system
110: key generation device
120-1, 120-2, 120-3, 120-n: client device
130: database
140: query device
Claims (28)
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
키 생성 장치로부터 사용자 암호키를 획득하는 단계; 및
속성 벡터에 대한 라벨(label) 및 상기 사용자 암호키에 기초하여 상기 속성 벡터에 대한 암호문을 생성하는 단계를 포함하고,
상기 암호문을 생성하는 단계는,
상기 라벨에 대한 해시 값을 생성하는 단계;
상기 속성 벡터에 포함된 하나 이상의 속성 값 각각에 대한 의사 난수(pseudo-random number)를 생성하는 단계; 및
상기 해시 값, 상기 의사 난수 및 상기 사용자 암호키에 기초하여 상기 암호문을 생성하는 단계를 포함하고,
상기 암호문은, 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 상기 해시 값의 지수로 이용하여 산출된 복수의 암호문 원소를 포함하는, 방법.
One or more processors, and
A method performed in a computing device having a memory that stores one or more programs executed by the one or more processors,
Obtaining a user encryption key from the key generating device; And
Generating a ciphertext for the attribute vector based on the label for the attribute vector and the user encryption key,
The step of generating the ciphertext,
Generating a hash value for the label;
Generating a pseudo-random number for each of the one or more attribute values included in the attribute vector; And
Generating the ciphertext based on the hash value, the pseudo-random number, and the user encryption key,
The ciphertext includes a plurality of ciphertext elements calculated by using a pseudo-random number for each of the one or more attribute values as an index of the hash value.
상기 사용자 암호키는, 아래의 수학식 1
[수학식 1]
(이때, 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number))
을 만족하고,
상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3
[수학식 2]
[수학식 3]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 상기 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, 는 상기 속성 값 에 대한 의사 난수)
을 이용하여 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 생성하는, 방법.
The method according to claim 1,
The user encryption key, the following equation 1
[Equation 1]
(At this time, User index, Is the user encryption key for user i, The Element of, And Is an arbitrary integer, p is a prime number
Satisfied,
The step of generating the pseudo-random number may include Equations 2 and 3 below.
[Equation 2]
[Equation 3]
(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is an attribute value for attribute category j among the one or more attribute values, Is the attribute value Pseudo-random number for)
A method for generating a pseudo-random number for each of the one or more attribute values.
상기 암호문을 생성하는 단계는, 아래의 수학식 4
[수학식 4]
(이때, 는 상기 암호문, 은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨, 는 상기 해시 값)
을 이용하여 상기 암호문을 생성하는, 방법.
The method according to claim 4,
The step of generating the ciphertext is Equation 4 below.
[Equation 4]
(At this time, Is the ciphertext, Is the total number of attribute categories included in the attribute vector, T is the label, Is the hash value above)
Method for generating the ciphertext using.
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
복수의 사용자 각각에 대한 사용자 암호키 및 마스터 비밀키를 생성하는 단계;
상기 생성된 사용자 암호키를 상기 복수의 사용자 각각의 클라이언트 장치로 제공하는 단계;
질의 장치로부터 복수의 질의 벡터를 포함하는 질의 벡터 집합을 수신하는 단계;
상기 질의 벡터 집합 및 상기 마스터 비밀키를 이용하여 상기 질의 벡터 집합에 대한 토큰을 생성하는 단계; 및
상기 생성된 토큰을 상기 질의 장치로 제공하는 단계를 포함하는, 방법.
One or more processors, and
A method performed in a computing device having a memory that stores one or more programs executed by the one or more processors,
Generating a user encryption key and a master secret key for each of the plurality of users;
Providing the generated user encryption key to the client devices of each of the plurality of users;
Receiving a query vector set including a plurality of query vectors from the query device;
Generating a token for the query vector set using the query vector set and the master secret key; And
And providing the generated token to the querying device.
상기 토큰을 생성하는 단계는,
상기 질의 벡터 집합에 대한 의사 난수(pseudo-random number)를 생성하는 단계; 및
상기 의사 난수 및 상기 마스터 비밀키를 이용하여 상기 토큰을 생성하는 단계를 포함하는, 방법.
The method according to claim 6,
The step of generating the token,
Generating a pseudo-random number for the query vector set; And
And generating the token using the pseudo-random number and the master secret key.
상기 사용자 암호키는 아래의 수학식 1
[수학식 1]
(이때, 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number))을 만족하고,
상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3
[수학식 2]
[수학식 3]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 상기 질의 벡터 집합에 대한 의사 난수, 는 질의 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 에 포함된 하나 이상의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)
을 이용하여 상기 의사 난수를 생성하는, 방법.
The method according to claim 7,
The user encryption key is the following equation 1
[Equation 1]
(At this time, User index, Is the user encryption key for user i, The Element of, And Each satisfy an arbitrary integer, p is a prime number,
The step of generating the pseudo-random number may include Equations 2 and 3 below.
[Equation 2]
[Equation 3]
(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is a pseudo-random number for the vector set of queries, The vector of the query Of one or more attribute values included in the attribute value for attribute category j, S i is the query vector A set of attribute category indices for each of the attribute values other than the wild card attribute value among one or more attribute values included in)
Method for generating the pseudo-random number using the method.
상기 마스터 비밀키를 생성하는 단계는 아래의 수학식 4
[수학식 4]
(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 총수, 는 위수가 p인 순환군(cyclic group) 의 원소)
를 이용하여 상기 마스터 비밀키를 생성하고,
상기 토큰을 생성하는 단계는, 아래의 수학식 5
[수학식 5]
(이때, 는 상기 질의 벡터 집합에 대한 토큰, , 및 는 각각 의 원소)
를 이용하여 상기 토큰을 생성하는, 방법.
The method according to claim 8,
The step of generating the master secret key is Equation 4 below.
[Equation 4]
(At this time, MK is the master secret key, n is the total number of the plurality of users, Is a cyclic group with p Element of)
To generate the master secret key,
The step of generating the token, Equation 5 below
[Equation 5]
(At this time, Is the token for the vector set of queries, , And Each Element of)
How to generate the token using the method.
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
복수의 질의 벡터를 포함하는 질의 벡터 집합을 생성하는 단계;
키 생성 장치로부터 상기 질의 벡터 집합에 대한 토큰을 획득하는 단계; 및
상이한 사용자 암호키를 이용하여 암호화된 복수의 속성 벡터 각각에 대한 암호문, 상기 복수의 속성 벡터에 대한 라벨(label) 및 상기 토큰을 이용하여, 상기 복수의 속성 벡터를 포함하는 속성 벡터 집합과 상기 질의 벡터 집합 사이의 동치 관계 성립 여부를 판단하는 단계를 포함하는 방법.
One or more processors, and
A method performed in a computing device having a memory that stores one or more programs executed by the one or more processors,
Generating a query vector set including a plurality of query vectors;
Obtaining a token for the set of query vectors from a key generator; And
A ciphertext for each of the plurality of attribute vectors encrypted using different user encryption keys, a label for the plurality of attribute vectors, and the token, and the attribute vector set and the query vector including the plurality of attribute vectors And determining whether an equality relationship between the sets is established.
상기 복수의 속성 벡터 각각에 대한 암호문은, 상기 라벨에 대한 해시 값, 상기 복수의 속성 벡터 각각에 포함된 하나 이상의 속성 값 각각에 대한 제1 의사 난수(pseudo-random number) 및 상기 사용자 암호키를 이용하여 생성되고,
상기 토큰은, 상기 질의 벡터 집합에 대한 제2 의사 난수 및 마스터 비밀키를 이용하여 생성되는 방법.
The method according to claim 10,
The ciphertext for each of the plurality of attribute vectors includes a hash value for the label, a first pseudo-random number for each of one or more attribute values included in each of the plurality of attribute vectors, and the user encryption key. Is created using
The token is generated using a second pseudo-random number and a master secret key for the query vector set.
상기 사용자 암호키는 아래의 수학식 1
[수학식 1]
( 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number))
을 만족하고,
상기 제1 의사 난수는, 아래의 수학식 2
[수학식 2]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 사용자 i의 사용자 암호키를 이용하여 암호화된 속성 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, 는 상기 속성 값 에 대한 제1 의사 난수)
을 이용하여 생성되고,
상기 제2 의사 난수는, 아래의 수학식 3
[수학식 3]
(이때, 는 상기 질의 벡터 집합에 대한 제2 의사 난수, 는 상기 속성 벡터 에 대한 질의 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 에 포함된 하나 이상의 속성 값 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 생성되며,
상기 는 아래의 수학식 4
[수학식 4]
를 이용하여 생성되는 방법.
The method according to claim 11,
The user encryption key is the following equation 1
[Equation 1]
( User index, Is the user encryption key for user i, The Element of, And Is an arbitrary integer, p is a prime number
Satisfied,
The first pseudo-random number is Equation 2 below.
[Equation 2]
(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is an attribute vector encrypted using the user's user encryption key. The attribute value for attribute category j among one or more attribute values included in Is the attribute value First pseudo-random number for)
Is created using,
The second pseudo-random number is Equation 3 below.
[Equation 3]
(At this time, Is a second pseudo-random number for the vector set of queries, Is the above attribute vector Query for vector Of one or more attribute values included in the attribute value for attribute category j, S i is the query vector It is generated using a set of attribute category indices for each of the attribute values other than the wild card attribute value among the one or more attribute values included in,
remind Equation 4 below
[Equation 4]
Method created using.
상기 마스터 비밀키는 아래의 수학식 5
[수학식 5]
(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 수, 는 위수가 p인 순환군(cyclic group) 의 원소)
를 만족하고,
상기 암호문은, 아래의 수학식 6
[수학식 6]
(이때, 는 상기 암호문, 은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨, 는 상기 해시 값)
을 만족하고,
상기 토큰은, 아래의 수학식 7
[수학식 7]
(이때, 는 상기 토큰, , 및 는 각각 의 원소)
을 만족하는, 방법.
The method according to claim 12,
The master secret key is Equation 5 below
[Equation 5]
(At this time, MK is the master secret key, n is the number of the plurality of users, Is a cyclic group with p Element of)
Satisfied,
The ciphertext is the following Equation 6
[Equation 6]
(At this time, Is the ciphertext, Is the total number of attribute categories included in the attribute vector, T is the label, Is the hash value above)
Satisfied,
The token, Equation 7 below
[Equation 7]
(At this time, Is the token, , And Each Element of)
How to satisfy, how.
상기 판단하는 단계는, 아래의 수학식 8
[수학식 8]
(이때, e는 를 만족하는 겹선형 함수(bilinear map), , 및 는 위수(order)가 소수 p인 순환군(cyclic group))
이 만족되는 경우, 상기 동치 관계가 성립하는 것으로 판단하는, 방법.
The method according to claim 13,
The determining step, Equation 8 below
[Equation 8]
(At this time, e is Bilinear map, which satisfies , And Is a cyclic group with a prime p
If it is satisfied, it is determined that the same relationship is established.
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
키 생성 장치로부터 사용자 암호키를 획득하는 단계; 및
속성 벡터에 대한 라벨(label) 및 상기 사용자 암호키에 기초하여 상기 속성 벡터에 대한 암호문을 생성하는 단계를 실행하기 위한 명령어들을 포함하고,
상기 암호문을 생성하는 단계는,
상기 라벨에 대한 해시 값을 생성하는 단계;
상기 속성 벡터에 포함된 하나 이상의 속성 값 각각에 대한 의사 난수(pseudo-random number)를 생성하는 단계; 및
상기 해시 값, 상기 의사 난수 및 상기 사용자 암호키에 기초하여 상기 암호문을 생성하는 단계를 포함하고,
상기 암호문은, 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 상기 해시 값의 지수로 이용하여 산출된 복수의 암호문 원소를 포함하는, 장치.
One or more processors;
Memory; And
A device comprising one or more programs,
The one or more programs are stored in the memory and configured to be executed by the one or more processors,
The above program,
Obtaining a user encryption key from the key generating device; And
And instructions for executing a step of generating a ciphertext for the attribute vector based on the label for the attribute vector and the user encryption key,
The step of generating the ciphertext,
Generating a hash value for the label;
Generating a pseudo-random number for each of the one or more attribute values included in the attribute vector; And
Generating the ciphertext based on the hash value, the pseudo-random number, and the user encryption key,
And the ciphertext includes a plurality of ciphertext elements calculated by using a pseudo-random number for each of the one or more attribute values as an index of the hash value.
상기 사용자 암호키는, 아래의 수학식 1
[수학식 1]
(이때, 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number)을 만족하고,
상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3
[수학식 2]
[수학식 3]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 상기 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, 는 상기 속성 값 에 대한 의사 난수)
을 이용하여 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 생성하는, 장치.
The method according to claim 15,
The user encryption key, the following equation 1
[Equation 1]
(At this time, User index, Is the user encryption key for user i, The Element of, And Is an arbitrary integer, p satisfies a prime number,
The step of generating the pseudo-random number may include Equations 2 and 3 below.
[Equation 2]
[Equation 3]
(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is an attribute value for attribute category j among the one or more attribute values, Is the attribute value Pseudo-random number for)
And generating a pseudo-random number for each of the one or more attribute values.
상기 암호문을 생성하는 단계는, 아래의 수학식 4
[수학식 4]
(이때, 는 상기 암호문, 은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨, 는 상기 해시 값)
을 이용하여 상기 암호문을 생성하는, 장치.
The method according to claim 18,
The step of generating the ciphertext is Equation 4 below.
[Equation 4]
(At this time, Is the ciphertext, Is the total number of attribute categories included in the attribute vector, T is the label, Is the hash value above)
Device for generating the ciphertext using.
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
복수의 사용자 각각에 대한 사용자 암호키 및 마스터 비밀키를 생성하는 단계;
상기 생성된 사용자 암호키를 상기 복수의 사용자 각각의 클라이언트 장치로 제공하는 단계;
질의 장치로부터 복수의 질의 벡터를 포함하는 질의 벡터 집합을 수신하는 단계;
상기 질의 벡터 집합 및 상기 마스터 비밀키를 이용하여 상기 질의 벡터 집합에 대한 토큰을 생성하는 단계; 및
상기 생성된 토큰을 상기 질의 장치로 제공하는 단계를 실행하기 위한 명령어들을 포함하는, 장치.
One or more processors;
Memory; And
A device comprising one or more programs,
The one or more programs are stored in the memory and configured to be executed by the one or more processors,
The above program,
Generating a user encryption key and a master secret key for each of the plurality of users;
Providing the generated user encryption key to the client devices of each of the plurality of users;
Receiving a query vector set including a plurality of query vectors from the query device;
Generating a token for the query vector set using the query vector set and the master secret key; And
And instructions for executing the step of providing the generated token to the querying device.
상기 토큰을 생성하는 단계는,
상기 질의 벡터 집합에 대한 의사 난수(pseudo-random number)를 생성하는 단계; 및
상기 의사 난수 및 상기 마스터 비밀키를 이용하여 상기 토큰을 생성하는 단계를 포함하는, 장치.
The method according to claim 20,
The step of generating the token,
Generating a pseudo-random number for the query vector set; And
And generating the token using the pseudo-random number and the master secret key.
상기 사용자 암호키는 아래의 수학식 1
[수학식 1]
(이때, 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number))을 만족하고,
상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3
[수학식 2]
[수학식 3]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 상기 질의 벡터 집합에 대한 의사 난수, 는 질의 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 에 포함된 하나 이상의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)
을 이용하여 상기 의사 난수를 생성하는, 장치.
The method of claim 21,
The user encryption key is the following equation 1
[Equation 1]
(At this time, User index, Is the user encryption key for user i, The Element of, And Each satisfy an arbitrary integer, p is a prime number,
The step of generating the pseudo-random number may include Equations 2 and 3 below.
[Equation 2]
[Equation 3]
(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is a pseudo-random number for the vector set of queries, The vector of the query Of one or more attribute values included in the attribute value for attribute category j, S i is the query vector A set of attribute category indices for each of the attribute values other than the wild card attribute value among one or more attribute values included in)
Using the device, to generate the pseudo-random number.
상기 마스터 비밀키를 생성하는 단계는 아래의 수학식 4
[수학식 4]
(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 총수, 는 위수가 p인 순환군(cyclic group) 의 원소)
를 이용하여 상기 마스터 비밀키를 생성하고,
상기 토큰을 생성하는 단계는, 아래의 수학식 5
[수학식 5]
(이때, 는 상기 질의 벡터 집합에 대한 토큰, , 및 는 각각 의 원소)
를 이용하여 상기 토큰을 생성하는, 장치.
The method according to claim 22,
The step of generating the master secret key is Equation 4 below.
[Equation 4]
(At this time, MK is the master secret key, n is the total number of the plurality of users, Is a cyclic group with p Element of)
To generate the master secret key,
The step of generating the token, Equation 5 below
[Equation 5]
(At this time, Is the token for the vector set of queries, , And Each Element of)
Using the device to generate the token.
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
복수의 질의 벡터를 포함하는 질의 벡터 집합을 생성하는 단계;
키 생성 장치로부터 상기 질의 벡터 집합에 대한 토큰을 획득하는 단계; 및
상이한 사용자 암호키를 이용하여 암호화된 복수의 속성 벡터 각각에 대한 암호문, 상기 복수의 속성 벡터에 대한 라벨(label) 및 상기 토큰을 이용하여, 상기 복수의 속성 벡터를 포함하는 속성 벡터 집합과 상기 질의 벡터 집합 사이의 동치 관계 성립 여부를 판단하는 단계를 실행하기 위한 명령어들을 포함하는, 장치.
One or more processors;
Memory; And
A device comprising one or more programs,
The one or more programs are stored in the memory and configured to be executed by the one or more processors,
The above program,
Generating a query vector set including a plurality of query vectors;
Obtaining a token for the set of query vectors from a key generator; And
A ciphertext for each of the plurality of attribute vectors encrypted using different user encryption keys, a label for the plurality of attribute vectors, and the token, and the attribute vector set and the query vector including the plurality of attribute vectors And instructions for executing a step of determining whether an equivalent relationship between sets is established.
상기 복수의 속성 벡터 각각에 대한 암호문은, 상기 라벨에 대한 해시 값, 상기 복수의 속성 벡터 각각에 포함된 하나 이상의 속성 값 각각에 대한 제1 의사 난수(pseudo-random number) 및 상기 사용자 암호키를 이용하여 생성되고,
상기 토큰은, 상기 질의 벡터 집합에 대한 제2 의사 난수 및 마스터 비밀키를 이용하여 생성되는 장치.
The method according to claim 24,
The ciphertext for each of the plurality of attribute vectors includes a hash value for the label, a first pseudo-random number for each of one or more attribute values included in each of the plurality of attribute vectors, and the user encryption key. Is created using
The token is generated using a second pseudo-random number and a master secret key for the query vector set.
상기 사용자 암호키는 아래의 수학식 1
[수학식 1]
( 는 사용자 인덱스, 는 사용자 i에 대한 사용자 암호키, 는 의 원소, 및 는 각각 임의의 정수, p는 소수(prime number))을 만족하고,
상기 제1 의사 난수는, 아래의 수학식 2
[수학식 2]
(이때, 는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수, 는 사용자 i의 사용자 암호키를 이용하여 암호화된 속성 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, 는 상기 속성 값 에 대한 제1 의사 난수)
을 이용하여 생성되고,
상기 제2 의사 난수는, 아래의 수학식 3
[수학식 3]
(이때, 는 상기 질의 벡터 집합에 대한 제2 의사 난수, 는 상기 속성 벡터 에 대한 질의 벡터 에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 에 포함된 하나 이상의 속성 값 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 생성되며,
상기 는 아래의 수학식 4
[수학식 4]
를 이용하여 생성되는 장치.
The method according to claim 25,
The user encryption key is the following equation 1
[Equation 1]
( User index, Is the user encryption key for user i, The Element of, And Each satisfy an arbitrary integer, p is a prime number,
The first pseudo-random number is Equation 2 below.
[Equation 2]
(At this time, Is the attribute category index, PRF() is a pseudo-random function, Is an attribute vector encrypted using the user's user encryption key. The attribute value for attribute category j among one or more attribute values included in Is the attribute value First pseudo-random number for)
Is created using,
The second pseudo-random number is Equation 3 below.
[Equation 3]
(At this time, Is a second pseudo-random number for the vector set of queries, Is the above attribute vector Query for vector Of one or more attribute values included in the attribute value for attribute category j, S i is the query vector It is generated using a set of attribute category indices for each of the attribute values other than the wild card attribute value among the one or more attribute values included in,
remind Equation 4 below
[Equation 4]
Device created using.
상기 마스터 비밀키는 아래의 수학식 5
[수학식 5]
(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 수, 는 위수가 p인 순환군(cyclic group) 의 원소)
를 만족하고,
상기 암호문은, 아래의 수학식 6
[수학식 6]
(이때, 는 상기 암호문, 은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨, 는 상기 해시 값)
을 만족하고,
상기 토큰은, 아래의 수학식 7
[수학식 7]
(이때, 는 상기 토큰, , 및 는 각각 의 원소)
을 만족하는, 장치.
The method according to claim 26,
The master secret key is Equation 5 below
[Equation 5]
(At this time, MK is the master secret key, n is the number of the plurality of users, Is a cyclic group with p Element of)
Satisfied,
The ciphertext is the following Equation 6
[Equation 6]
(At this time, Is the ciphertext, Is the total number of attribute categories included in the attribute vector, T is the label, Is the hash value above)
Satisfied,
The token, Equation 7 below
[Equation 7]
(At this time, Is the token, , And Each Element of)
Device that satisfies.
상기 판단하는 단계는, 아래의 수학식 8
[수학식 8]
(이때, e는 를 만족하는 겹선형 함수(bilinear map), , 및 는 위수(order)가 소수 p인 순환군(cyclic group))
이 만족되는 경우, 상기 동치 관계가 성립하는 것으로 판단하는, 장치.The method according to claim 27,
The determining step, Equation 8 below
[Equation 8]
(At this time, e is Bilinear map, which satisfies , And Is a cyclic group with a prime p
If it is satisfied, the device determines that the same relationship is established.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190100941A KR102123435B1 (en) | 2019-08-19 | 2019-08-19 | Encryption method for supporting equality query in multi-client environment and apparatus using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190100941A KR102123435B1 (en) | 2019-08-19 | 2019-08-19 | Encryption method for supporting equality query in multi-client environment and apparatus using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102123435B1 true KR102123435B1 (en) | 2020-06-16 |
Family
ID=71141699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190100941A KR102123435B1 (en) | 2019-08-19 | 2019-08-19 | Encryption method for supporting equality query in multi-client environment and apparatus using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102123435B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116074090A (en) * | 2023-01-31 | 2023-05-05 | 武汉大学 | Multi-user sequential revealing encryption method and system based on OPRF |
CN116074090B (en) * | 2023-01-31 | 2024-05-03 | 武汉大学 | Multi-user sequential revealing encryption method and system based on OPRF |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130136555A (en) * | 2011-03-25 | 2013-12-12 | 미쓰비시덴키 가부시키가이샤 | Code processing system, key generation device, encoder, decoder, code processing method and code processing program |
JP2014095847A (en) * | 2012-11-12 | 2014-05-22 | Nippon Telegr & Teleph Corp <Ntt> | Functional encryption system, key generation device, encryption device, decryption device, functional encryption method, and program |
KR20150070383A (en) * | 2012-10-19 | 2015-06-24 | 미쓰비시덴키 가부시키가이샤 | Encryption system |
JP2016517243A (en) * | 2013-04-18 | 2016-06-09 | リソフトデブ,インコーポレイテッド | System and method for encrypting data |
KR101695361B1 (en) | 2015-09-21 | 2017-01-11 | 국방과학연구소 | Terminology encryption method using paring calculation and secret key |
-
2019
- 2019-08-19 KR KR1020190100941A patent/KR102123435B1/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130136555A (en) * | 2011-03-25 | 2013-12-12 | 미쓰비시덴키 가부시키가이샤 | Code processing system, key generation device, encoder, decoder, code processing method and code processing program |
KR20150070383A (en) * | 2012-10-19 | 2015-06-24 | 미쓰비시덴키 가부시키가이샤 | Encryption system |
JP2014095847A (en) * | 2012-11-12 | 2014-05-22 | Nippon Telegr & Teleph Corp <Ntt> | Functional encryption system, key generation device, encryption device, decryption device, functional encryption method, and program |
JP2016517243A (en) * | 2013-04-18 | 2016-06-09 | リソフトデブ,インコーポレイテッド | System and method for encrypting data |
KR101695361B1 (en) | 2015-09-21 | 2017-01-11 | 국방과학연구소 | Terminology encryption method using paring calculation and secret key |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116074090A (en) * | 2023-01-31 | 2023-05-05 | 武汉大学 | Multi-user sequential revealing encryption method and system based on OPRF |
CN116074090B (en) * | 2023-01-31 | 2024-05-03 | 武汉大学 | Multi-user sequential revealing encryption method and system based on OPRF |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8898478B2 (en) | Method for querying data in privacy preserving manner using attributes | |
Tahir et al. | A new secure and lightweight searchable encryption scheme over encrypted cloud data | |
EP3168771A1 (en) | Poly-logarythmic range queries on encrypted data | |
CN109361644B (en) | Fuzzy attribute based encryption method supporting rapid search and decryption | |
US20170262546A1 (en) | Key search token for encrypted data | |
Feng et al. | Privacy-preserving computation in cyber-physical-social systems: A survey of the state-of-the-art and perspectives | |
Ali et al. | Attribute-based fine-grained access control for outscored private set intersection computation | |
Sumathi et al. | A group-key-based sensitive attribute protection in cloud storage using modified random Fibonacci cryptography | |
CN108170753A (en) | A kind of method of Key-Value data base encryptions and Safety query in shared cloud | |
JP5972181B2 (en) | Tamper detection device, tamper detection method, and program | |
Varri et al. | Practical verifiable multi-keyword attribute-based searchable signcryption in cloud storage | |
Verma | Secure client-side deduplication scheme for cloud with dual trusted execution environment | |
JP2006189925A (en) | Private information management system, private information management program, and private information protection method | |
KR102132685B1 (en) | Apparatus and method for order-revealing encryption | |
US11133926B2 (en) | Attribute-based key management system | |
KR102123435B1 (en) | Encryption method for supporting equality query in multi-client environment and apparatus using the same | |
KR102284877B1 (en) | Efficient functional encryption for set intersection | |
WO2022213577A1 (en) | Method and apparatus for querying spatial text | |
KR102281265B1 (en) | Functional encryption for set intersection with time-constrained function keys | |
KR102123440B1 (en) | Encryption method for supporting range query in multi-client environment and apparatus using the same | |
Zhang et al. | Token-leakage tolerant and vector obfuscated IPE and application in privacy-preserving two-party point/polynomial evaluations | |
Salvakkam et al. | An improved lattice based certificateless data integrity verification techniques for cloud computing | |
KR102126295B1 (en) | Method for comparing chiphertext based and apparatus for executing the method | |
Handa et al. | Keyword binning-based efficient search on encrypted cloud data | |
CN112836078A (en) | Method, device, system and storage medium for safely inquiring shortest path on graph |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |