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 PDF

Info

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
Application number
KR1020190100941A
Other languages
Korean (ko)
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 KR1020190100941A priority Critical patent/KR102123435B1/en
Application granted granted Critical
Publication of KR102123435B1 publication Critical patent/KR102123435B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/3006Public 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/3033Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic 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/3213Cryptographic 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

Disclosed are an encryption method and apparatus for supporting an equivalent query for ciphertexts in a multi-client environment. According to one embodiment of the present invention, the method comprises the steps of: obtaining a user encryption key from a key generating device; and generating a ciphertext for an attribute vector based on a label for the attribute vector and the user encryption key.

Description

멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치{ENCRYPTION METHOD FOR SUPPORTING EQUALITY QUERY IN MULTI-CLIENT ENVIRONMENT AND APPARATUS USING THE SAME}ENCRYPTION METHOD FOR SUPPORTING EQUALITY QUERY IN MULTI-CLIENT ENVIRONMENT AND APPARATUS USING THE SAME}

본 발명의 실시예들은 암호화 기술과 관련된다.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.

대한민국 등록특허공보 제10-1695361호 (2017. 01. 11. 공고)Republic of Korea Patent Registration No. 10-1695361 (January 2017. 11. Announcement)

본 발명의 실시예들은 멀티 클라이언트 환경에서 동치 질의를 지원하는 암호화 방법 및 이를 이용한 장치를 제공하기 위한 것이다.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 equation 1

[수학식 1][Equation 1]

Figure 112019084610755-pat00001
Figure 112019084610755-pat00001

(이때,

Figure 112019084610755-pat00002
는 사용자 인덱스,
Figure 112019084610755-pat00003
는 사용자 i에 대한 사용자 암호키,
Figure 112019084610755-pat00004
Figure 112019084610755-pat00005
의 원소,
Figure 112019084610755-pat00006
Figure 112019084610755-pat00007
는 각각 임의의 정수, p는 소수(prime number)을 만족하고, 상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3(At this time,
Figure 112019084610755-pat00002
User index,
Figure 112019084610755-pat00003
Is the user encryption key for user i,
Figure 112019084610755-pat00004
The
Figure 112019084610755-pat00005
Element of,
Figure 112019084610755-pat00006
And
Figure 112019084610755-pat00007
Is an arbitrary integer, p satisfies a prime number, and the step of generating the pseudo-random number includes Equations 2 and 3 below.

[수학식 2][Equation 2]

Figure 112019084610755-pat00008
Figure 112019084610755-pat00008

[수학식 3][Equation 3]

Figure 112019084610755-pat00009
Figure 112019084610755-pat00009

(이때,

Figure 112019084610755-pat00010
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112019084610755-pat00011
는 상기 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값,
Figure 112019084610755-pat00012
는 상기 속성 값
Figure 112019084610755-pat00013
에 대한 의사 난수)을 이용하여 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 생성할 수 있다.(At this time,
Figure 112019084610755-pat00010
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112019084610755-pat00011
Is an attribute value for attribute category j among the one or more attribute values,
Figure 112019084610755-pat00012
Is the attribute value
Figure 112019084610755-pat00013
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]

Figure 112019084610755-pat00014
Figure 112019084610755-pat00014

(이때,

Figure 112019084610755-pat00015
는 상기 암호문,
Figure 112019084610755-pat00016
은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨,
Figure 112019084610755-pat00017
는 상기 해시 값)을 이용하여 상기 암호문을 생성할 수 있다.(At this time,
Figure 112019084610755-pat00015
Is the ciphertext,
Figure 112019084610755-pat00016
Is the total number of attribute categories included in the attribute vector, T is the label,
Figure 112019084610755-pat00017
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 equation 1

[수학식 1][Equation 1]

Figure 112019084610755-pat00018
Figure 112019084610755-pat00018

(이때,

Figure 112019084610755-pat00019
는 사용자 인덱스,
Figure 112019084610755-pat00020
는 사용자 i에 대한 사용자 암호키,
Figure 112019084610755-pat00021
Figure 112019084610755-pat00022
의 원소,
Figure 112019084610755-pat00023
Figure 112019084610755-pat00024
는 각각 임의의 정수, p는 소수(prime number))을 만족하고, 상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3(At this time,
Figure 112019084610755-pat00019
User index,
Figure 112019084610755-pat00020
Is the user encryption key for user i,
Figure 112019084610755-pat00021
The
Figure 112019084610755-pat00022
Element of,
Figure 112019084610755-pat00023
And
Figure 112019084610755-pat00024
Is an arbitrary integer, p satisfies a prime number, and the step of generating the pseudo-random number includes Equations 2 and 3 below.

[수학식 2][Equation 2]

Figure 112019084610755-pat00025
Figure 112019084610755-pat00025

[수학식 3][Equation 3]

Figure 112019084610755-pat00026
Figure 112019084610755-pat00026

(이때,

Figure 112019084610755-pat00027
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112019084610755-pat00028
는 상기 질의 벡터 집합에 대한 토큰,
Figure 112019084610755-pat00029
는 질의 벡터 i에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 i에 포함된 하나 이상의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 상기 의사 난수를 생성할 수 있다.(At this time,
Figure 112019084610755-pat00027
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112019084610755-pat00028
Is the token for the vector set of queries,
Figure 112019084610755-pat00029
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]

Figure 112019084610755-pat00030
Figure 112019084610755-pat00030

(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 총수,

Figure 112019084610755-pat00031
는 위수가 p인 순환군(cyclic group)
Figure 112019084610755-pat00032
의 원소)를 이용하여 상기 마스터 비밀키를 생성하고, 상기 토큰을 생성하는 단계는, 아래의 수학식 5(At this time, MK is the master secret key, n is the total number of the plurality of users,
Figure 112019084610755-pat00031
Is a cyclic group with p
Figure 112019084610755-pat00032
Step of generating the master secret key using the elements of, and generating the token, Equation 5 below

[수학식 5][Equation 5]

Figure 112019084610755-pat00033
Figure 112019084610755-pat00033

(이때,

Figure 112019084610755-pat00034
는 상기 질의 벡터 집합에 대한 토큰,
Figure 112019084610755-pat00035
,
Figure 112019084610755-pat00036
Figure 112019084610755-pat00037
는 각각
Figure 112019084610755-pat00038
의 원소)를 이용하여 상기 토큰을 생성할 수 있다.(At this time,
Figure 112019084610755-pat00034
Is the token for the vector set of queries,
Figure 112019084610755-pat00035
,
Figure 112019084610755-pat00036
And
Figure 112019084610755-pat00037
Each
Figure 112019084610755-pat00038
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 equation 1

[수학식 1][Equation 1]

Figure 112019084610755-pat00039
Figure 112019084610755-pat00039

(

Figure 112019084610755-pat00040
는 사용자 인덱스,
Figure 112019084610755-pat00041
는 사용자 i에 대한 사용자 암호키,
Figure 112019084610755-pat00042
Figure 112019084610755-pat00043
의 원소,
Figure 112019084610755-pat00044
Figure 112019084610755-pat00045
는 각각 임의의 정수, p는 소수(prime number))을 만족하고, 상기 제1 의사 난수는, 아래의 수학식 2(
Figure 112019084610755-pat00040
User index,
Figure 112019084610755-pat00041
Is the user encryption key for user i,
Figure 112019084610755-pat00042
The
Figure 112019084610755-pat00043
Element of,
Figure 112019084610755-pat00044
And
Figure 112019084610755-pat00045
Is an arbitrary integer, p satisfies a prime number, and the first pseudo-random number is Equation 2 below.

[수학식 2][Equation 2]

Figure 112019084610755-pat00046
Figure 112019084610755-pat00046

(이때,

Figure 112019084610755-pat00047
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112019084610755-pat00048
는 사용자 i의 사용자 암호키를 이용하여 암호화된 속성 벡터
Figure 112019084610755-pat00049
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값,
Figure 112019084610755-pat00050
는 상기 속성 값
Figure 112019084610755-pat00051
에 대한 제1 의사 난수)을 이용하여 생성되고, 상기 제2 의사 난수는, 아래의 수학식 3(At this time,
Figure 112019084610755-pat00047
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112019084610755-pat00048
Is an attribute vector encrypted using the user's user encryption key.
Figure 112019084610755-pat00049
The attribute value for attribute category j among one or more attribute values included in
Figure 112019084610755-pat00050
Is the attribute value
Figure 112019084610755-pat00051
Is generated using the first pseudo-random number for, the second pseudo-random number, Equation 3 below

[수학식 3][Equation 3]

Figure 112019084610755-pat00052
Figure 112019084610755-pat00052

(이때,

Figure 112019084610755-pat00053
는 상기 질의 벡터 집합에 대한 토큰,
Figure 112019084610755-pat00054
는 상기 속성 벡터
Figure 112019084610755-pat00055
에 대한 질의 벡터
Figure 112019084610755-pat00056
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 i에 포함된 하나 이상의 속성 값 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 생성되며, 상기
Figure 112019084610755-pat00057
는 아래의 수학식 4(At this time,
Figure 112019084610755-pat00053
Is the token for the vector set of queries,
Figure 112019084610755-pat00054
Is the above attribute vector
Figure 112019084610755-pat00055
Query for vector
Figure 112019084610755-pat00056
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
Figure 112019084610755-pat00057
Equation 4 below

[수학식 4][Equation 4]

Figure 112019084610755-pat00058
Figure 112019084610755-pat00058

를 이용하여 생성될 수 있다.It can be generated using.

상기 마스터 비밀키는 아래의 수학식 5The master secret key is Equation 5 below

[수학식 5][Equation 5]

Figure 112019084610755-pat00059
Figure 112019084610755-pat00059

(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 수,

Figure 112019084610755-pat00060
는 위수가 p인 순환군(cyclic group)
Figure 112019084610755-pat00061
의 원소)를 만족하고,(At this time, MK is the master secret key, n is the number of the plurality of users,
Figure 112019084610755-pat00060
Is a cyclic group with p
Figure 112019084610755-pat00061
Element of)

상기 암호문은, 아래의 수학식 6The ciphertext is the following Equation 6

[수학식 6][Equation 6]

Figure 112019084610755-pat00062
Figure 112019084610755-pat00062

(이때,

Figure 112019084610755-pat00063
는 상기 암호문,
Figure 112019084610755-pat00064
은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨,
Figure 112019084610755-pat00065
는 상기 해시 값)을 만족하고,(At this time,
Figure 112019084610755-pat00063
Is the ciphertext,
Figure 112019084610755-pat00064
Is the total number of attribute categories included in the attribute vector, T is the label,
Figure 112019084610755-pat00065
Satisfies the above hash value),

상기 토큰은, 아래의 수학식 7The token, Equation 7 below

[수학식 7][Equation 7]

Figure 112019084610755-pat00066
Figure 112019084610755-pat00066

(이때,

Figure 112019084610755-pat00067
는 상기 토큰,
Figure 112019084610755-pat00068
,
Figure 112019084610755-pat00069
Figure 112019084610755-pat00070
는 각각
Figure 112019084610755-pat00071
의 원소)을 만족할 수 있다.(At this time,
Figure 112019084610755-pat00067
Is the token,
Figure 112019084610755-pat00068
,
Figure 112019084610755-pat00069
And
Figure 112019084610755-pat00070
Each
Figure 112019084610755-pat00071
Element of).

상기 판단하는 단계는, 아래의 수학식 8The determining step, Equation 8 below

[수학식 8][Equation 8]

Figure 112019084610755-pat00072
Figure 112019084610755-pat00072

(이때, e는

Figure 112019084610755-pat00073
를 만족하는 겹선형 함수(bilinear map),
Figure 112019084610755-pat00074
,
Figure 112019084610755-pat00075
Figure 112019084610755-pat00076
는 위수(order)가 소수 p인 순환군(cyclic group))이 만족되는 경우, 상기 동치 관계가 성립하는 것으로 판단할 수 있다.(At this time, e is
Figure 112019084610755-pat00073
Bilinear map, which satisfies
Figure 112019084610755-pat00074
,
Figure 112019084610755-pat00075
And
Figure 112019084610755-pat00076
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 equation 1

[수학식 1][Equation 1]

Figure 112019084610755-pat00077
Figure 112019084610755-pat00077

(이때,

Figure 112019084610755-pat00078
는 사용자 인덱스,
Figure 112019084610755-pat00079
는 사용자 i에 대한 사용자 암호키,
Figure 112019084610755-pat00080
Figure 112019084610755-pat00081
의 원소,
Figure 112019084610755-pat00082
Figure 112019084610755-pat00083
는 각각 임의의 정수, p는 소수(prime number)을 만족하고, 상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3(At this time,
Figure 112019084610755-pat00078
User index,
Figure 112019084610755-pat00079
Is the user encryption key for user i,
Figure 112019084610755-pat00080
The
Figure 112019084610755-pat00081
Element of,
Figure 112019084610755-pat00082
And
Figure 112019084610755-pat00083
Is an arbitrary integer, p satisfies a prime number, and the step of generating the pseudo-random number includes Equations 2 and 3 below.

[수학식 2][Equation 2]

Figure 112019084610755-pat00084
Figure 112019084610755-pat00084

[수학식 3][Equation 3]

Figure 112019084610755-pat00085
Figure 112019084610755-pat00085

(이때,

Figure 112019084610755-pat00086
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112019084610755-pat00087
는 상기 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값,
Figure 112019084610755-pat00088
는 상기 속성 값
Figure 112019084610755-pat00089
에 대한 의사 난수)을 이용하여 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 생성할 수 있다.(At this time,
Figure 112019084610755-pat00086
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112019084610755-pat00087
Is an attribute value for attribute category j among the one or more attribute values,
Figure 112019084610755-pat00088
Is the attribute value
Figure 112019084610755-pat00089
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]

Figure 112019084610755-pat00090
Figure 112019084610755-pat00090

(이때,

Figure 112019084610755-pat00091
는 상기 암호문,
Figure 112019084610755-pat00092
은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨,
Figure 112019084610755-pat00093
는 상기 해시 값)을 이용하여 상기 암호문을 생성할 수 있다.(At this time,
Figure 112019084610755-pat00091
Is the ciphertext,
Figure 112019084610755-pat00092
Is the total number of attribute categories included in the attribute vector, T is the label,
Figure 112019084610755-pat00093
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 following equation 1

[수학식 1][Equation 1]

Figure 112019084610755-pat00094
Figure 112019084610755-pat00094

(이때,

Figure 112019084610755-pat00095
는 사용자 인덱스,
Figure 112019084610755-pat00096
는 사용자 i에 대한 사용자 암호키,
Figure 112019084610755-pat00097
Figure 112019084610755-pat00098
의 원소,
Figure 112019084610755-pat00099
Figure 112019084610755-pat00100
는 각각 임의의 정수, p는 소수(prime number))을 만족하고, 상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3(At this time,
Figure 112019084610755-pat00095
User index,
Figure 112019084610755-pat00096
Is the user encryption key for user i,
Figure 112019084610755-pat00097
The
Figure 112019084610755-pat00098
Element of,
Figure 112019084610755-pat00099
And
Figure 112019084610755-pat00100
Is an arbitrary integer, p satisfies a prime number, and the step of generating the pseudo-random number includes Equations 2 and 3 below.

[수학식 2][Equation 2]

Figure 112019084610755-pat00101
Figure 112019084610755-pat00101

[수학식 3][Equation 3]

Figure 112019084610755-pat00102
Figure 112019084610755-pat00102

(이때,

Figure 112019084610755-pat00103
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112019084610755-pat00104
는 상기 질의 벡터 집합에 대한 토큰,
Figure 112019084610755-pat00105
는 질의 벡터 i에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 i에 포함된 하나 이상의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 상기 의사 난수를 생성할 수 있다.(At this time,
Figure 112019084610755-pat00103
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112019084610755-pat00104
Is the token for the vector set of queries,
Figure 112019084610755-pat00105
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]

Figure 112019084610755-pat00106
Figure 112019084610755-pat00106

(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 총수,

Figure 112019084610755-pat00107
는 위수가 p인 순환군(cyclic group)
Figure 112019084610755-pat00108
의 원소)를 이용하여 상기 마스터 비밀키를 생성하고, 상기 토큰을 생성하는 단계는, 아래의 수학식 5(At this time, MK is the master secret key, n is the total number of the plurality of users,
Figure 112019084610755-pat00107
Is a cyclic group with p
Figure 112019084610755-pat00108
Step of generating the master secret key using the elements of, and generating the token, Equation 5 below

[수학식 5][Equation 5]

Figure 112019084610755-pat00109
Figure 112019084610755-pat00109

(이때,

Figure 112019084610755-pat00110
는 상기 질의 벡터 집합에 대한 토큰,
Figure 112019084610755-pat00111
,
Figure 112019084610755-pat00112
Figure 112019084610755-pat00113
는 각각
Figure 112019084610755-pat00114
의 원소)를 이용하여 상기 토큰을 생성할 수 있다.(At this time,
Figure 112019084610755-pat00110
Is the token for the vector set of queries,
Figure 112019084610755-pat00111
,
Figure 112019084610755-pat00112
And
Figure 112019084610755-pat00113
Each
Figure 112019084610755-pat00114
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 following equation 1

[수학식 1][Equation 1]

Figure 112019084610755-pat00115
Figure 112019084610755-pat00115

(

Figure 112019084610755-pat00116
는 사용자 인덱스,
Figure 112019084610755-pat00117
는 사용자 i에 대한 사용자 암호키,
Figure 112019084610755-pat00118
Figure 112019084610755-pat00119
의 원소,
Figure 112019084610755-pat00120
Figure 112019084610755-pat00121
는 각각 임의의 정수, p는 소수(prime number))을 만족하고, 상기 제1 의사 난수는, 아래의 수학식 2(
Figure 112019084610755-pat00116
User index,
Figure 112019084610755-pat00117
Is the user encryption key for user i,
Figure 112019084610755-pat00118
The
Figure 112019084610755-pat00119
Element of,
Figure 112019084610755-pat00120
And
Figure 112019084610755-pat00121
Is an arbitrary integer, p satisfies a prime number, and the first pseudo-random number is Equation 2 below.

[수학식 2][Equation 2]

Figure 112019084610755-pat00122
Figure 112019084610755-pat00122

(이때,

Figure 112019084610755-pat00123
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112019084610755-pat00124
는 사용자 i의 사용자 암호키를 이용하여 암호화된 속성 벡터
Figure 112019084610755-pat00125
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값,
Figure 112019084610755-pat00126
는 상기 속성 값
Figure 112019084610755-pat00127
에 대한 제1 의사 난수)을 이용하여 생성되고, 상기 제2 의사 난수는, 아래의 수학식 3(At this time,
Figure 112019084610755-pat00123
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112019084610755-pat00124
Is an attribute vector encrypted using the user's user encryption key.
Figure 112019084610755-pat00125
The attribute value for attribute category j among one or more attribute values included in
Figure 112019084610755-pat00126
Is the attribute value
Figure 112019084610755-pat00127
Is generated using the first pseudo-random number for, the second pseudo-random number, Equation 3 below

[수학식 3][Equation 3]

Figure 112019084610755-pat00128
Figure 112019084610755-pat00128

(이때,

Figure 112019084610755-pat00129
는 상기 질의 벡터 집합에 대한 토큰,
Figure 112019084610755-pat00130
는 상기 속성 벡터
Figure 112019084610755-pat00131
에 대한 질의 벡터
Figure 112019084610755-pat00132
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터 i에 포함된 하나 이상의 속성 값 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 생성되며, 상기
Figure 112019084610755-pat00133
는 아래의 수학식 4(At this time,
Figure 112019084610755-pat00129
Is the token for the vector set of queries,
Figure 112019084610755-pat00130
Is the above attribute vector
Figure 112019084610755-pat00131
Query for vector
Figure 112019084610755-pat00132
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
Figure 112019084610755-pat00133
Equation 4 below

[수학식 4][Equation 4]

Figure 112019084610755-pat00134
Figure 112019084610755-pat00134

를 이용하여 생성될 수 있다.It can be generated using.

상기 마스터 비밀키는 아래의 수학식 5The master secret key is Equation 5 below

[수학식 5][Equation 5]

Figure 112019084610755-pat00135
Figure 112019084610755-pat00135

(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 수,

Figure 112019084610755-pat00136
는 위수가 p인 순환군(cyclic group)
Figure 112019084610755-pat00137
의 원소)를 만족하고, 상기 암호문은, 아래의 수학식 6(At this time, MK is the master secret key, n is the number of the plurality of users,
Figure 112019084610755-pat00136
Is a cyclic group with p
Figure 112019084610755-pat00137
Element), and the ciphertext is Equation 6 below.

[수학식 6][Equation 6]

Figure 112019084610755-pat00138
Figure 112019084610755-pat00138

(이때,

Figure 112019084610755-pat00139
는 상기 암호문,
Figure 112019084610755-pat00140
은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨,
Figure 112019084610755-pat00141
는 상기 해시 값)을 만족하고, 상기 토큰은, 아래의 수학식 7(At this time,
Figure 112019084610755-pat00139
Is the ciphertext,
Figure 112019084610755-pat00140
Is the total number of attribute categories included in the attribute vector, T is the label,
Figure 112019084610755-pat00141
Is the hash value), and the token is represented by Equation 7 below.

[수학식 7][Equation 7]

Figure 112019084610755-pat00142
Figure 112019084610755-pat00142

(이때,

Figure 112019084610755-pat00143
는 상기 토큰,
Figure 112019084610755-pat00144
,
Figure 112019084610755-pat00145
Figure 112019084610755-pat00146
는 각각
Figure 112019084610755-pat00147
의 원소)을 만족할 수 있다.(At this time,
Figure 112019084610755-pat00143
Is the token,
Figure 112019084610755-pat00144
,
Figure 112019084610755-pat00145
And
Figure 112019084610755-pat00146
Each
Figure 112019084610755-pat00147
Element of).

상기 판단하는 단계는, 아래의 수학식 8The determining step, Equation 8 below

[수학식 8][Equation 8]

Figure 112019084610755-pat00148
Figure 112019084610755-pat00148

(이때, e는

Figure 112019084610755-pat00149
를 만족하는 겹선형 함수(bilinear map),
Figure 112019084610755-pat00150
,
Figure 112019084610755-pat00151
Figure 112019084610755-pat00152
는 위수(order)가 소수 p인 순환군(cyclic group))이 만족되는 경우, 상기 동치 관계가 성립하는 것으로 판단할 수 있다.(At this time, e is
Figure 112019084610755-pat00149
Bilinear map, which satisfies
Figure 112019084610755-pat00150
,
Figure 112019084610755-pat00151
And
Figure 112019084610755-pat00152
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 encryption system 100 according to an embodiment of the present invention includes a key generating device 110, a plurality of client devices 120-1, 120-2, 120-n, a database 130, and Query device 140.

키 생성 장치(110)는 암호화 시스템(100)에서 사용할 마스터 비밀키, 사용자 암호키 및 공개 파라미터를 생성하기 위한 장치로서 예를 들어, 신뢰 기관(Trusted Third Party)와 같이 신뢰할 수 있는 개체에 의해 운영될 수 있다.The key generating device 110 is a device for generating a master secret key, a user encryption key, and public parameters to be used in the encryption system 100, and is operated by a trusted entity, such as a trusted third party, for example. Can be.

구체적으로, 키 생성 장치(110)는 암호화 시스템(100)에 참여한 복수의 사용자 각각에 대한 사용자 암호키를 생성하고, 생성된 각 사용자에 대한 사용자 암호키를 암호화를 위해 각 사용자에 의해 이용되는 클라이언트 장치(120-1, 120-2, 120-n)로 제공할 수 있다.Specifically, the key generating device 110 generates a user encryption key for each of a plurality of users participating in the encryption system 100, and a client used by each user to encrypt the user encryption key for each generated user Devices 120-1, 120-2, and 120-n.

또한, 키 생성 장치(110)는 마스터 비밀키 및 공개 파라미터를 생성하여 마스터 비밀키는 안전하게 저장하고, 공개 파라미터는 암호화 시스템(100) 내에 공개할 수 있다.In addition, the key generating device 110 generates a master secret key and a public parameter to safely store the master secret key, and the public parameter can be disclosed in the encryption system 100.

한편, 키 생성 장치(110)는 질의 장치(140)의 요청에 따라 질의 벡터 집합에 대한 토큰을 생성하여 질의 장치(140)로 제공할 수 있다.Meanwhile, the key generating device 110 may generate a token for a set of query vectors at the request of the query device 140 and provide it to the query device 140.

클라이언트 장치(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 key generation device 110 for generating a ciphertext, and the client devices 120-1, 120 The number of -2, 120-n) may be changed according to embodiments.

데이터베이스(130)는 각 클라이언트 장치(120-1, 120-2, 120-n)에 의해 생성된 암호문을 저장하기 위한 것으로, 각 클라이언트 장치(120-1, 120-2, 120-n) 및 질의 장치(140)에 의해 접근 가능한 하나 이상의 서버 또는 클라우드(cloud) 환경 내에 구현될 수 있다.Database 130 is for storing the ciphertext generated by each client device (120-1, 120-2, 120-n), each client device (120-1, 120-2, 120-n) and query It may be implemented in one or more servers or cloud environments accessible by the device 140.

질의 장치(140)는 키 생성 장치(110)로부터 제공받은 질의 벡터 집합에 대한 토큰과 각 클라이언트 장치(120-1, 120-2, 120-n)에 의해 생성되어 데이터베이스(130)에 저장된 복수의 속성 벡터 각각에 대한 암호문을 이용하여, 복수의 속성 벡터를 포함하는 속성 벡터 집합과 질의 벡터 집합 사이의 동치 관계 성립 여부를 판단한다. The querying device 140 generates tokens for a set of query vectors provided from the key generating device 110 and a plurality of queries generated by the client devices 120-1, 120-2, and 120-n and stored in the database 130. Using the ciphertext for each attribute vector, it is determined whether an equivalence relationship between the attribute vector set including a plurality of attribute vectors and the query vector set is established.

한편, 도 1에 도시된 암호화 시스템(100)에서 수행되는 암호화 기법은 다음과 같은 4개의 알고리즘으로 구성될 수 있다.Meanwhile, the encryption technique performed in the encryption system 100 illustrated in FIG. 1 may be composed of the following four algorithms.

셋업(setup) 알고리즘Setup algorithm

셋업 알고리즘은 보안 상수(Security Parameter) 1λ 및 암호화 시스템(100)에 참여할 사용자의 총수(n)을 입력받아 각각 위수(order)가 소수(prime number) p인 순환군(cyclic group)

Figure 112019084610755-pat00153
,
Figure 112019084610755-pat00154
Figure 112019084610755-pat00155
를 생성할 수 있다.The setup algorithm receives security parameters 1 λ and the total number (n) of users to participate in the encryption system 100, and a cyclic group having a prime number p, respectively.
Figure 112019084610755-pat00153
,
Figure 112019084610755-pat00154
And
Figure 112019084610755-pat00155
Can generate

또한, 셋업 알고리즘은

Figure 112019084610755-pat00156
를 만족하는 겹선형 함수(bilinear map)
Figure 112019084610755-pat00157
,
Figure 112019084610755-pat00158
를 만족하는
Figure 112019084610755-pat00159
의 생성원(generator)
Figure 112019084610755-pat00160
Figure 112019084610755-pat00161
를 만족하는
Figure 112019084610755-pat00162
의 생성원
Figure 112019084610755-pat00163
를 생성할 수 있다. Also, the setup algorithm
Figure 112019084610755-pat00156
Bilinear map that satisfies
Figure 112019084610755-pat00157
,
Figure 112019084610755-pat00158
Satisfying
Figure 112019084610755-pat00159
Generator
Figure 112019084610755-pat00160
And
Figure 112019084610755-pat00161
Satisfying
Figure 112019084610755-pat00162
Origin of
Figure 112019084610755-pat00163
Can generate

이후, 셋업 알고리즘은 모든 i(이때, i는 사용자 인덱스로서

Figure 112019084610755-pat00164
인 정수)에 대해
Figure 112019084610755-pat00165
를 만족하는
Figure 112019084610755-pat00166
, 임의의 정수
Figure 112019084610755-pat00167
Figure 112019084610755-pat00168
를 선택하여 각 사용자에 대한 사용자 암호키
Figure 112019084610755-pat00169
를 생성할 수 있다.After that, the setup algorithm is set to all i (where i is the user index
Figure 112019084610755-pat00164
Phosphorus constants)
Figure 112019084610755-pat00165
Satisfying
Figure 112019084610755-pat00166
, Any integer
Figure 112019084610755-pat00167
And
Figure 112019084610755-pat00168
Select the user encryption key for each user
Figure 112019084610755-pat00169
Can generate

또한, 셋업 알고리즘은

Figure 112019084610755-pat00170
를 만족하는
Figure 112019084610755-pat00171
를 선택하고, 마스터 비밀키
Figure 112019084610755-pat00172
를 생성할 수 있다.Also, the setup algorithm
Figure 112019084610755-pat00170
Satisfying
Figure 112019084610755-pat00171
Select and Master Secret Key
Figure 112019084610755-pat00172
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 key generation device 110. In this case, the key generating device 110 may provide the user encryption key EK i of each user generated by performing the setup algorithm to the client devices 120-1, 120-2, and 120-n of each user.

또한, 키 생성 장치(110)는 마스터 비밀키 MK는 안전하게 저장하고, 공개 파라미터

Figure 112019084610755-pat00173
는 공개할 수 있다. 이때,
Figure 112019084610755-pat00174
는 임의의 문자 열을
Figure 112019084610755-pat00175
로 맵핑시키는 해시 함수(hash function)(즉,
Figure 112019084610755-pat00176
)를 나타낸다.In addition, the key generating device 110 securely stores the master secret key MK, and public parameters
Figure 112019084610755-pat00173
Can be released. At this time,
Figure 112019084610755-pat00174
Is a random string
Figure 112019084610755-pat00175
Hash function to map to (i.e.
Figure 112019084610755-pat00176
).

암호화 알고리즘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 encryption system 100, and may be, for example, classification information about the attribute vector, information about a viewpoint related to the attribute vector, and the like. It is not necessarily limited to specific information.

구체적인 예로, 속성 벡터가 특정인의 홍체 데이터, 지문 데이터 및 유전자 데이터 중 유전자 데이터에 대한 속성 벡터인 경우, 해당 속성 벡터에 대한 라벨은 유전자 데이터에 대한 속성 벡터임을 나타내는 정보일 수 있다. 다른 예로, 속성 벡터가 특정 학급의 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.

한편, 암호화 알고리즘은 암호화할 속성 벡터

Figure 112019084610755-pat00177
(이때,
Figure 112019084610755-pat00178
은 속성 벡터에 포함될 속성 카테고리의 총 개수)에 포함된 각 속성 값
Figure 112019084610755-pat00179
(이때, j는 속성 카테고리의 인덱스로서
Figure 112019084610755-pat00180
인 정수)에 대한 의사 난수(pseudo-random number)를 생성할 수 있다.Meanwhile, the encryption algorithm is an attribute vector to be encrypted.
Figure 112019084610755-pat00177
(At this time,
Figure 112019084610755-pat00178
Is the total number of attribute categories to be included in the attribute vector)
Figure 112019084610755-pat00179
(In this case, j is the index of the attribute category
Figure 112019084610755-pat00180
Can generate a pseudo-random number.

구체적으로, 암호화 알고리즘은 아래의 수학식 1을 이용하여 속성 벡터

Figure 112019084610755-pat00181
에 포함된 각 속성 값
Figure 112019084610755-pat00182
에 대한 의사 난수
Figure 112019084610755-pat00183
를 생성할 수 있다.Specifically, the encryption algorithm is a property vector using Equation 1 below.
Figure 112019084610755-pat00181
Value of each attribute included in
Figure 112019084610755-pat00182
Pseudo random number for
Figure 112019084610755-pat00183
Can generate

[수학식 1][Equation 1]

Figure 112019084610755-pat00184
Figure 112019084610755-pat00184

수학식 1에서, PRF()는 의사 랜덤 함수(pseudo-random function)를 나타내며,

Figure 112019084610755-pat00185
는 아래의 수학식 2를 이용하여 산출될 수 있다.In Equation 1, PRF() represents a pseudo-random function,
Figure 112019084610755-pat00185
Can be calculated using Equation 2 below.

[수학식 2][Equation 2]

Figure 112019084610755-pat00186
Figure 112019084610755-pat00186

이후, 암호화 알고리즘은 속성 벡터

Figure 112019084610755-pat00187
의 라벨 T에 대한 해시 값 H(T), 의사 난수
Figure 112019084610755-pat00188
및 사용자 암호키 EKi에 기초하여 속성 벡터
Figure 112019084610755-pat00189
에 대한 암호문을 생성할 수 있다.Then, the encryption algorithm is a property vector
Figure 112019084610755-pat00187
Hash value for label T of H(T), pseudo-random number
Figure 112019084610755-pat00188
And attribute vector based on user encryption key EK i
Figure 112019084610755-pat00189
You can generate a cipher text for.

구체적으로, 암호화 알고리즘은 아래의 수학식 3을 이용하여 속성 벡터

Figure 112019084610755-pat00190
에 대한 암호문
Figure 112019084610755-pat00191
를 생성할 수 있다.Specifically, the encryption algorithm is a property vector using Equation 3 below.
Figure 112019084610755-pat00190
Ciphertext for
Figure 112019084610755-pat00191
Can generate

[수학식 3][Equation 3]

Figure 112019084610755-pat00192
Figure 112019084610755-pat00192

한편, 본 발명의 일 실시예에서, 암호화 알고리즘은 키 생성 장치(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 key generating device 110.

이 경우, 각 클라이언트 장치(120-1, 120-2, 120-n)는 암호화 알고리즘을 수행하여 생성한 암호문

Figure 112019084610755-pat00193
를 데이터베이스(130)에 저장할 수 있다. 이때, 각 클라이언트 장치(120-1, 120-2, 120-n)는 속성 벡터의 라벨 T 및 사용자의 인덱스 정보 i를 해당 속성 벡터에 대한 암호문
Figure 112019084610755-pat00194
와 함께 데이터베이스(130)에 저장할 수 있다.In this case, each client device (120-1, 120-2, 120-n) is a ciphertext generated by performing an encryption algorithm
Figure 112019084610755-pat00193
Can be stored in the database 130. At this time, each client device (120-1, 120-2, 120-n) the label T of the attribute vector and the index information i of the user is the ciphertext for the attribute vector
Figure 112019084610755-pat00194
With it can be stored in the database 130.

토큰(Token) 생성 알고리즘Token generation algorithm

토큰 생성 알고리즘은 질의 벡터 집합

Figure 112019084610755-pat00195
에 대한 토큰을 생성할 수 있다. 이때, 질의 벡터 집합은 암호화 알고리즘을 이용하여 각 클라이언트 장치(120-1, 120-2, 120-n)에 의해 암호화된 속성 벡터들 각각에 대한 질의 벡터
Figure 112019084610755-pat00196
를 포함할 수 있다.Token generation algorithm is a set of query vectors
Figure 112019084610755-pat00195
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.
Figure 112019084610755-pat00196
It may include.

이때, 질의 벡터

Figure 112019084610755-pat00197
에 포함된 각 속성 카테고리의 속성 값
Figure 112019084610755-pat00198
는 속성 벡터
Figure 112019084610755-pat00199
에 포함된 속성 값들 중
Figure 112019084610755-pat00200
와 동일한 인덱스 튜플(tuple) (i, j)를 가지는 속성 값
Figure 112019084610755-pat00201
가 만족하여야 할 값을 의미할 수 있다. At this time, the query vector
Figure 112019084610755-pat00197
Attribute values for each attribute category included in
Figure 112019084610755-pat00198
The property vector
Figure 112019084610755-pat00199
Among the attribute values included in
Figure 112019084610755-pat00200
Property value with the same index tuple (i, j) as
Figure 112019084610755-pat00201
Can mean the value to be satisfied.

한편, 실시예에 따라, 각 질의 벡터

Figure 112019084610755-pat00202
에 포함된 속성 값 중 하나 이상은 와일드 카드(wild card) 속성 값을 가질 수 있다. 이때, 와일드 카드 속성 값은 속성 벡터
Figure 112019084610755-pat00203
포함된 속성 값들 중 와일드 카드 속성 값과 동일한 인덱스 튜플을 가지는 속성 값이 어떠한 값을 가지더라도 무관함을 의미할 수 있다.Meanwhile, according to an embodiment, each query vector
Figure 112019084610755-pat00202
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
Figure 112019084610755-pat00203
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에 대한 의사 난수

Figure 112019084610755-pat00204
를 생성할 수 있다. 이때, 토큰 생성 알고리즘은 아래의 수학식 4를 이용하여 의사 난수
Figure 112019084610755-pat00205
를 생성할 수 있다.Specifically, the token generation algorithm is a pseudo-random number for the query vector set Y.
Figure 112019084610755-pat00204
Can generate At this time, the token generation algorithm uses the following equation (4) to generate a pseudo-random number.
Figure 112019084610755-pat00205
Can generate

[수학식 4][Equation 4]

Figure 112019084610755-pat00206
Figure 112019084610755-pat00206

수학식 4에서, Si는 질의 벡터 집합 Y에 포함된 각 질의 벡터

Figure 112019084610755-pat00207
의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들을 포함하는 집합을 나타내며,
Figure 112019084610755-pat00208
는 상술한 수학식 2를 이용하여 산출될 수 있다.In Equation 4, S i is each query vector included in the query vector set Y
Figure 112019084610755-pat00207
A set of attribute category indices for each of the attribute values other than the wild card attribute value among the attribute values of
Figure 112019084610755-pat00208
Can be calculated using Equation 2 above.

이후, 토큰 생성 알고리즘은 생성된 의사 난수

Figure 112019084610755-pat00209
및 마스터 비밀키 MK를 이용하여 질의 벡터 집합 Y에 대한 토큰 TKY을 생성할 수 있다.After that, the token generation algorithm generates the generated pseudo-random number.
Figure 112019084610755-pat00209
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]

Figure 112019084610755-pat00210
Figure 112019084610755-pat00210

한편, 본 발명의 일 실시예에서, 토큰 생성 알고리즘은 키 생성 장치(110)에 의해 수행될 수 있다.Meanwhile, in one embodiment of the present invention, the token generation algorithm may be performed by the key generation device 110.

이 경우, 키 생성 장치(110)는 질의 장치(140)로부터 질의 벡터 집합 Y에 대한 토큰 생성 요청이 있는 경우, 토큰 생성 알고리즘을 수행하여 질의 벡터 집합 Y에 대한 토큰 TKY를 생성할 수 있다. 또한, 키 생성 장치(110)는 생성된 토큰 TKY를 질의 장치(140)로 제공할 수 있다.In this case, the key generation device 110 may generate a token TK Y for the query vector set Y by performing a token generation algorithm when a request is generated for the query vector set Y from the query device 140. In addition, the key generation device 110 may provide the generated token TK Y to the query device 140.

쿼리(query) 알고리즘Query algorithm

쿼리 알고리즘은 각 클라이언트 장치(120-1, 120-2, 120-n)에 의해 생성된 속성 벡터

Figure 112019084610755-pat00211
에 대한 암호문
Figure 112019084610755-pat00212
, 라벨 T 및 질의 벡터 집합
Figure 112019084610755-pat00213
에 대한 토큰 TKY를 이용하여 질의 벡터 집합 Y와 속성 벡터 집합
Figure 112019084610755-pat00214
사이의 동치 관계 성립 여부를 판단할 수 있다.The query algorithm is an attribute vector generated by each client device (120-1, 120-2, 120-n).
Figure 112019084610755-pat00211
Ciphertext for
Figure 112019084610755-pat00212
Set of labels, labels T and quality
Figure 112019084610755-pat00213
Query vector set Y and attribute vector set using token TK Y for
Figure 112019084610755-pat00214
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]

Figure 112019084610755-pat00215
Figure 112019084610755-pat00215

한편, 본 발명의 일 실시예에서, 쿼리 알고리즘은 질의 장치(140)에 의해 수행될 수 있다.Meanwhile, in one embodiment of the present invention, the query algorithm may be performed by the querying device 140.

이 경우, 질의 장치(110)는 쿼리 알고리즘을 수행하여 질의 벡터 집합 Y와 속성 벡터 집합 X 사이의 동치 관계가 성립하는 것으로 판단된 경우, 1을 출력하고, 성립하지 않는 것으로 판단된 경우, 0을 출력할 수 있다.In this case, the querying device 110 performs a query algorithm to output 1 when it is determined that an equivalence relationship between the query vector set Y and the attribute vector set X is established, and 0 when it is determined that it is not established. Can print

도 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 encryption system 100 for convenience of explanation, but the user and The number of client devices is not necessarily limited to the illustrated example.

도 2를 참조하면, 우선, 키 생성 장치(110)는 셋업 알고리즘을 수행하여, 각 사용자의 사용자 암호키

Figure 112019084610755-pat00216
, 마스터 비밀키
Figure 112019084610755-pat00217
및 공개 파라미터
Figure 112019084610755-pat00218
를 생성한다(201).Referring to FIG. 2, first, the key generating device 110 performs a setup algorithm, so that each user's user encryption key
Figure 112019084610755-pat00216
, Master secret key
Figure 112019084610755-pat00217
And public parameters
Figure 112019084610755-pat00218
Create (201).

이후, 키 생성 장치(110)는 사용자 1의 사용자 암호키 EK1을 사용자 1에 의해 이용되는 클라이언트 장치 1(120-1)로 제공한다(202). Thereafter, the key generating device 110 provides the user encryption key EK 1 of the user 1 to the client device 1 120-1 used by the user 1 (202 ).

또한, 키 생성 장치(110)는 사용자 2의 사용자 암호키 EK2을 사용자 2에 의해 이용되는 클라이언트 장치 2(120-2)로 제공한다(203).In addition, the key generating device 110 provides the user encryption key EK 2 of the user 2 to the client device 2 120-2 used by the user 2 (203).

또한, 키 생성 장치(110)는 사용자 3의 사용자 암호키 EK3을 사용자 3에 의해 이용되는 클라이언트 장치 3(120-3)로 제공한다(204).In addition, the key generating device 110 provides the user encryption key EK 3 of the user 3 to the client device 3 (120-3) used by the user 3 (204).

한편, 키 생성 장치(110)로부터 사용자 암호키 EK1를 획득한 클라이언트 장치 1(120-1)은 암호화 알고리즘을 수행하여 라벨이 T인 속성 벡터

Figure 112019084610755-pat00219
에 대한 암호문
Figure 112019084610755-pat00220
을 생성한다(205).On the other hand, the client device 1 (120-1) obtained the user encryption key EK 1 from the key generation device 110 performs an encryption algorithm to label the attribute vector T
Figure 112019084610755-pat00219
Ciphertext for
Figure 112019084610755-pat00220
Create (205).

이후, 클라이언트 장치 1(120-1)은 생성한 암호문

Figure 112019084610755-pat00221
을 데이터베이스(130)에 저장한다(206).Thereafter, the client device 1 (120-1) generates the encrypted text
Figure 112019084610755-pat00221
Is stored in the database 130 (206).

또한, 키 생성 장치(110)로부터 사용자 암호키 EK2를 획득한 클라이언트 장치 2(120-2)는 암호화 알고리즘을 수행하여 라벨이 T인 속성 벡터

Figure 112019084610755-pat00222
에 대한 암호문
Figure 112019084610755-pat00223
을 생성한다(207).In addition, the client device 2 (120-2), which has obtained the user encryption key EK 2 from the key generation device 110, performs an encryption algorithm to obtain an attribute vector labeled T.
Figure 112019084610755-pat00222
Ciphertext for
Figure 112019084610755-pat00223
Create (207).

이후, 클라이언트 장치 2(120-2)는 생성한 암호문

Figure 112019084610755-pat00224
을 데이터베이스(130)에 저장한다(208).Thereafter, the client device 2 (120-2) generates the encrypted text
Figure 112019084610755-pat00224
Is stored in the database 130 (208).

또한, 키 생성 장치(110)로부터 사용자 암호키 EK3를 획득한 클라이언트 장치 3(120-3)은 암호화 알고리즘을 수행하여 라벨이 T인 속성 벡터

Figure 112019084610755-pat00225
에 대한 암호문
Figure 112019084610755-pat00226
을 생성한다(209).In addition, the client device 3 (120-3), which has obtained the user encryption key EK 3 from the key generation device 110, performs an encryption algorithm to obtain an attribute vector labeled T.
Figure 112019084610755-pat00225
Ciphertext for
Figure 112019084610755-pat00226
Creates (209).

이후, 클라이언트 장치 3(120-3)는 생성한 암호문

Figure 112019084610755-pat00227
을 데이터베이스(130)에 저장한다(210).Thereafter, the client device 3 (120-3) generates the encrypted text
Figure 112019084610755-pat00227
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)는 속성 벡터 집합

Figure 112019084610755-pat00228
에 대한 질의 벡터 집합
Figure 112019084610755-pat00229
를 생성한다(301).Referring to FIG. 3, first, the query device 140 sets a set of attribute vectors
Figure 112019084610755-pat00228
Vector set of queries for
Figure 112019084610755-pat00229
Create (301).

이후, 질의 장치(140)는 키 생성 장치(110)로 질의 벡터 집합 Y에 대한 토큰 생성을 요청한다(302).Thereafter, the query device 140 requests the key generation device 110 to generate a token for the query vector set Y (302).

이후, 키 생성 장치(110)는 토큰 생성 알고리즘을 수행하여 질의 벡터 집합 Y에 대한 토큰

Figure 112019084610755-pat00230
를 생성한다(303).Thereafter, the key generation device 110 performs a token generation algorithm to generate a token for the query vector set Y.
Figure 112019084610755-pat00230
Create (303).

이후, 키 생성 장치(110)는 생성한 토큰 TKY를 질의 장치(140)로 제공한다(304).Thereafter, the key generating device 110 provides the generated token TK Y to the query device 140 (304).

이후, 질의 장치(140)는 데이터베이스(130)에 저장된 암호문들 중 속성 벡터 집합 X에 포함된 속성 벡터

Figure 112019084610755-pat00231
,
Figure 112019084610755-pat00232
Figure 112019084610755-pat00233
각각에 대한 암호문
Figure 112019084610755-pat00234
,
Figure 112019084610755-pat00235
Figure 112019084610755-pat00236
와 토큰 TKY를 이용하여 질의 벡터 집합 Y와 속성 벡터 집합 X 사이의 동치 관계 성립 여부를 판단한다(305).Thereafter, the querying device 140 may include an attribute vector included in the attribute vector set X among ciphertexts stored in the database 130.
Figure 112019084610755-pat00231
,
Figure 112019084610755-pat00232
And
Figure 112019084610755-pat00233
Cryptogram for each
Figure 112019084610755-pat00234
,
Figure 112019084610755-pat00235
And
Figure 112019084610755-pat00236
It is determined whether an equivalence relationship between the query vector set Y and the attribute vector set X is established using and TK Y (305).

이때, 질의 장치(140)는

Figure 112019084610755-pat00237
이 만족된 경우, 질의 벡터 집합 Y와 속성 벡터 집합 X 사이의 동치 관계가 성립하는 것으로 판단하고, 만족되지 않은 경우, 동치 관계가 성립하지 않는 것으로 판단할 수 있다.At this time, the query device 140
Figure 112019084610755-pat00237
If this is satisfied, it can be determined that an equivalence relationship between the query vector set Y and the attribute vector set X is established, and if not satisfied, it can be determined that the equivalence relationship is not established.

한편, 도 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 computing environment 10 includes a computing device 12. In one embodiment, computing device 12 may be one or more components included in encryption system 100.

컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.The computing device 12 includes at least one processor 14, a computer readable storage medium 16 and a communication bus 18. The processor 14 can cause the computing device 12 to operate in accordance with the exemplary embodiment mentioned above. For example, processor 14 may execute one or more programs stored on computer readable storage medium 16. The one or more programs may include one or more computer-executable instructions, which, when executed by the processor 14, configure the computing device 12 to perform operations according to an exemplary embodiment. Can be.

컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.Computer readable storage medium 16 is configured to store computer executable instructions or program code, program data and/or other suitable types of information. The program 20 stored on the computer readable storage medium 16 includes a set of instructions executable by the processor 14. In one embodiment, the computer readable storage medium 16 is a memory (volatile memory such as random access memory, non-volatile memory, or a suitable combination thereof), one or more magnetic disk storage devices, optical disk storage devices, flash Memory devices, other types of storage media that can be accessed by the computing device 12 and store desired information, or suitable combinations thereof.

통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.The communication bus 18 interconnects various other components of the computing device 12, including a processor 14 and a computer readable storage medium 16.

컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.Computing device 12 may also include one or more I/O interfaces 22 and one or more network communication interfaces 26 that provide an interface for one or more I/O devices 24. The input/output interface 22 and the network communication interface 26 are connected to the communication bus 18. The input/output device 24 may be connected to other components of the computing device 12 through the input/output interface 22. Exemplary input/output devices 24 include pointing devices (such as a mouse or trackpad), keyboards, touch input devices (such as touch pads or touch screens), voice or sound input devices, various types of sensor devices, and/or imaging devices. Input devices and/or output devices such as display devices, printers, speakers, and/or network cards. The exemplary input/output device 24 is a component constituting the computing device 12 and may be included inside the computing device 12 or may be connected to the computing device 12 as a separate device distinct from the computing device 12. It might be.

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.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.
삭제delete 삭제delete 청구항 1에 있어서,
상기 사용자 암호키는, 아래의 수학식 1
[수학식 1]
Figure 112020051722711-pat00238

(이때,
Figure 112020051722711-pat00239
는 사용자 인덱스,
Figure 112020051722711-pat00240
는 사용자 i에 대한 사용자 암호키,
Figure 112020051722711-pat00241
Figure 112020051722711-pat00242
의 원소,
Figure 112020051722711-pat00243
Figure 112020051722711-pat00244
는 각각 임의의 정수, p는 소수(prime number))
을 만족하고,
상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3
[수학식 2]
Figure 112020051722711-pat00245

[수학식 3]
Figure 112020051722711-pat00246

(이때,
Figure 112020051722711-pat00247
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112020051722711-pat00248
는 상기 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값,
Figure 112020051722711-pat00249
는 상기 속성 값
Figure 112020051722711-pat00250
에 대한 의사 난수)
을 이용하여 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 생성하는, 방법.
The method according to claim 1,
The user encryption key, the following equation 1
[Equation 1]
Figure 112020051722711-pat00238

(At this time,
Figure 112020051722711-pat00239
User index,
Figure 112020051722711-pat00240
Is the user encryption key for user i,
Figure 112020051722711-pat00241
The
Figure 112020051722711-pat00242
Element of,
Figure 112020051722711-pat00243
And
Figure 112020051722711-pat00244
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]
Figure 112020051722711-pat00245

[Equation 3]
Figure 112020051722711-pat00246

(At this time,
Figure 112020051722711-pat00247
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112020051722711-pat00248
Is an attribute value for attribute category j among the one or more attribute values,
Figure 112020051722711-pat00249
Is the attribute value
Figure 112020051722711-pat00250
Pseudo-random number for)
A method for generating a pseudo-random number for each of the one or more attribute values.
청구항 4에 있어서,
상기 암호문을 생성하는 단계는, 아래의 수학식 4
[수학식 4]
Figure 112019084610755-pat00251

(이때,
Figure 112019084610755-pat00252
는 상기 암호문,
Figure 112019084610755-pat00253
은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨,
Figure 112019084610755-pat00254
는 상기 해시 값)
을 이용하여 상기 암호문을 생성하는, 방법.
The method according to claim 4,
The step of generating the ciphertext is Equation 4 below.
[Equation 4]
Figure 112019084610755-pat00251

(At this time,
Figure 112019084610755-pat00252
Is the ciphertext,
Figure 112019084610755-pat00253
Is the total number of attribute categories included in the attribute vector, T is the label,
Figure 112019084610755-pat00254
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.
청구항 6에 있어서,
상기 토큰을 생성하는 단계는,
상기 질의 벡터 집합에 대한 의사 난수(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.
청구항 7에 있어서,
상기 사용자 암호키는 아래의 수학식 1
[수학식 1]
Figure 112020013927536-pat00255

(이때,
Figure 112020013927536-pat00256
는 사용자 인덱스,
Figure 112020013927536-pat00257
는 사용자 i에 대한 사용자 암호키,
Figure 112020013927536-pat00258
Figure 112020013927536-pat00259
의 원소,
Figure 112020013927536-pat00260
Figure 112020013927536-pat00261
는 각각 임의의 정수, p는 소수(prime number))을 만족하고,
상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3
[수학식 2]
Figure 112020013927536-pat00262

[수학식 3]
Figure 112020013927536-pat00263

(이때,
Figure 112020013927536-pat00264
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112020013927536-pat00265
는 상기 질의 벡터 집합에 대한 의사 난수,
Figure 112020013927536-pat00266
는 질의 벡터
Figure 112020013927536-pat00394
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터
Figure 112020013927536-pat00395
에 포함된 하나 이상의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)
을 이용하여 상기 의사 난수를 생성하는, 방법.
The method according to claim 7,
The user encryption key is the following equation 1
[Equation 1]
Figure 112020013927536-pat00255

(At this time,
Figure 112020013927536-pat00256
User index,
Figure 112020013927536-pat00257
Is the user encryption key for user i,
Figure 112020013927536-pat00258
The
Figure 112020013927536-pat00259
Element of,
Figure 112020013927536-pat00260
And
Figure 112020013927536-pat00261
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]
Figure 112020013927536-pat00262

[Equation 3]
Figure 112020013927536-pat00263

(At this time,
Figure 112020013927536-pat00264
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112020013927536-pat00265
Is a pseudo-random number for the vector set of queries,
Figure 112020013927536-pat00266
The vector of the query
Figure 112020013927536-pat00394
Of one or more attribute values included in the attribute value for attribute category j, S i is the query vector
Figure 112020013927536-pat00395
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.
청구항 8에 있어서,
상기 마스터 비밀키를 생성하는 단계는 아래의 수학식 4
[수학식 4]
Figure 112019084610755-pat00267

(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 총수,
Figure 112019084610755-pat00268
는 위수가 p인 순환군(cyclic group)
Figure 112019084610755-pat00269
의 원소)
를 이용하여 상기 마스터 비밀키를 생성하고,
상기 토큰을 생성하는 단계는, 아래의 수학식 5
[수학식 5]
Figure 112019084610755-pat00270

(이때,
Figure 112019084610755-pat00271
는 상기 질의 벡터 집합에 대한 토큰,
Figure 112019084610755-pat00272
,
Figure 112019084610755-pat00273
Figure 112019084610755-pat00274
는 각각
Figure 112019084610755-pat00275
의 원소)
를 이용하여 상기 토큰을 생성하는, 방법.
The method according to claim 8,
The step of generating the master secret key is Equation 4 below.
[Equation 4]
Figure 112019084610755-pat00267

(At this time, MK is the master secret key, n is the total number of the plurality of users,
Figure 112019084610755-pat00268
Is a cyclic group with p
Figure 112019084610755-pat00269
Element of)
To generate the master secret key,
The step of generating the token, Equation 5 below
[Equation 5]
Figure 112019084610755-pat00270

(At this time,
Figure 112019084610755-pat00271
Is the token for the vector set of queries,
Figure 112019084610755-pat00272
,
Figure 112019084610755-pat00273
And
Figure 112019084610755-pat00274
Each
Figure 112019084610755-pat00275
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.
청구항 10에 있어서,
상기 복수의 속성 벡터 각각에 대한 암호문은, 상기 라벨에 대한 해시 값, 상기 복수의 속성 벡터 각각에 포함된 하나 이상의 속성 값 각각에 대한 제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.
청구항 11에 있어서,
상기 사용자 암호키는 아래의 수학식 1
[수학식 1]
Figure 112020013927536-pat00276

(
Figure 112020013927536-pat00277
는 사용자 인덱스,
Figure 112020013927536-pat00278
는 사용자 i에 대한 사용자 암호키,
Figure 112020013927536-pat00279
Figure 112020013927536-pat00280
의 원소,
Figure 112020013927536-pat00281
Figure 112020013927536-pat00282
는 각각 임의의 정수, p는 소수(prime number))
을 만족하고,
상기 제1 의사 난수는, 아래의 수학식 2
[수학식 2]
Figure 112020013927536-pat00283

(이때,
Figure 112020013927536-pat00284
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112020013927536-pat00285
는 사용자 i의 사용자 암호키를 이용하여 암호화된 속성 벡터
Figure 112020013927536-pat00286
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값,
Figure 112020013927536-pat00287
는 상기 속성 값
Figure 112020013927536-pat00288
에 대한 제1 의사 난수)
을 이용하여 생성되고,
상기 제2 의사 난수는, 아래의 수학식 3
[수학식 3]
Figure 112020013927536-pat00289

(이때,
Figure 112020013927536-pat00290
는 상기 질의 벡터 집합에 대한 제2 의사 난수,
Figure 112020013927536-pat00291
는 상기 속성 벡터
Figure 112020013927536-pat00292
에 대한 질의 벡터
Figure 112020013927536-pat00293
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터
Figure 112020013927536-pat00396
에 포함된 하나 이상의 속성 값 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 생성되며,
상기
Figure 112020013927536-pat00294
는 아래의 수학식 4
[수학식 4]
Figure 112020013927536-pat00295

를 이용하여 생성되는 방법.
The method according to claim 11,
The user encryption key is the following equation 1
[Equation 1]
Figure 112020013927536-pat00276

(
Figure 112020013927536-pat00277
User index,
Figure 112020013927536-pat00278
Is the user encryption key for user i,
Figure 112020013927536-pat00279
The
Figure 112020013927536-pat00280
Element of,
Figure 112020013927536-pat00281
And
Figure 112020013927536-pat00282
Is an arbitrary integer, p is a prime number
Satisfied,
The first pseudo-random number is Equation 2 below.
[Equation 2]
Figure 112020013927536-pat00283

(At this time,
Figure 112020013927536-pat00284
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112020013927536-pat00285
Is an attribute vector encrypted using the user's user encryption key.
Figure 112020013927536-pat00286
The attribute value for attribute category j among one or more attribute values included in
Figure 112020013927536-pat00287
Is the attribute value
Figure 112020013927536-pat00288
First pseudo-random number for)
Is created using,
The second pseudo-random number is Equation 3 below.
[Equation 3]
Figure 112020013927536-pat00289

(At this time,
Figure 112020013927536-pat00290
Is a second pseudo-random number for the vector set of queries,
Figure 112020013927536-pat00291
Is the above attribute vector
Figure 112020013927536-pat00292
Query for vector
Figure 112020013927536-pat00293
Of one or more attribute values included in the attribute value for attribute category j, S i is the query vector
Figure 112020013927536-pat00396
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
Figure 112020013927536-pat00294
Equation 4 below
[Equation 4]
Figure 112020013927536-pat00295

Method created using.
청구항 12에 있어서,
상기 마스터 비밀키는 아래의 수학식 5
[수학식 5]
Figure 112019084610755-pat00296

(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 수,
Figure 112019084610755-pat00297
는 위수가 p인 순환군(cyclic group)
Figure 112019084610755-pat00298
의 원소)
를 만족하고,
상기 암호문은, 아래의 수학식 6
[수학식 6]
Figure 112019084610755-pat00299

(이때,
Figure 112019084610755-pat00300
는 상기 암호문,
Figure 112019084610755-pat00301
은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨,
Figure 112019084610755-pat00302
는 상기 해시 값)
을 만족하고,
상기 토큰은, 아래의 수학식 7
[수학식 7]
Figure 112019084610755-pat00303

(이때,
Figure 112019084610755-pat00304
는 상기 토큰,
Figure 112019084610755-pat00305
,
Figure 112019084610755-pat00306
Figure 112019084610755-pat00307
는 각각
Figure 112019084610755-pat00308
의 원소)
을 만족하는, 방법.
The method according to claim 12,
The master secret key is Equation 5 below
[Equation 5]
Figure 112019084610755-pat00296

(At this time, MK is the master secret key, n is the number of the plurality of users,
Figure 112019084610755-pat00297
Is a cyclic group with p
Figure 112019084610755-pat00298
Element of)
Satisfied,
The ciphertext is the following Equation 6
[Equation 6]
Figure 112019084610755-pat00299

(At this time,
Figure 112019084610755-pat00300
Is the ciphertext,
Figure 112019084610755-pat00301
Is the total number of attribute categories included in the attribute vector, T is the label,
Figure 112019084610755-pat00302
Is the hash value above)
Satisfied,
The token, Equation 7 below
[Equation 7]
Figure 112019084610755-pat00303

(At this time,
Figure 112019084610755-pat00304
Is the token,
Figure 112019084610755-pat00305
,
Figure 112019084610755-pat00306
And
Figure 112019084610755-pat00307
Each
Figure 112019084610755-pat00308
Element of)
How to satisfy, how.
청구항 13에 있어서,
상기 판단하는 단계는, 아래의 수학식 8
[수학식 8]
Figure 112019084610755-pat00309

(이때, e는
Figure 112019084610755-pat00310
를 만족하는 겹선형 함수(bilinear map),
Figure 112019084610755-pat00311
,
Figure 112019084610755-pat00312
Figure 112019084610755-pat00313
는 위수(order)가 소수 p인 순환군(cyclic group))
이 만족되는 경우, 상기 동치 관계가 성립하는 것으로 판단하는, 방법.
The method according to claim 13,
The determining step, Equation 8 below
[Equation 8]
Figure 112019084610755-pat00309

(At this time, e is
Figure 112019084610755-pat00310
Bilinear map, which satisfies
Figure 112019084610755-pat00311
,
Figure 112019084610755-pat00312
And
Figure 112019084610755-pat00313
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.
삭제delete 삭제delete 청구항 15에 있어서,
상기 사용자 암호키는, 아래의 수학식 1
[수학식 1]
Figure 112020051722711-pat00314

(이때,
Figure 112020051722711-pat00315
는 사용자 인덱스,
Figure 112020051722711-pat00316
는 사용자 i에 대한 사용자 암호키,
Figure 112020051722711-pat00317
Figure 112020051722711-pat00318
의 원소,
Figure 112020051722711-pat00319
Figure 112020051722711-pat00320
는 각각 임의의 정수, p는 소수(prime number)을 만족하고,
상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3
[수학식 2]
Figure 112020051722711-pat00321

[수학식 3]
Figure 112020051722711-pat00322

(이때,
Figure 112020051722711-pat00323
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112020051722711-pat00324
는 상기 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값,
Figure 112020051722711-pat00325
는 상기 속성 값
Figure 112020051722711-pat00326
에 대한 의사 난수)
을 이용하여 상기 하나 이상의 속성 값 각각에 대한 의사 난수를 생성하는, 장치.
The method according to claim 15,
The user encryption key, the following equation 1
[Equation 1]
Figure 112020051722711-pat00314

(At this time,
Figure 112020051722711-pat00315
User index,
Figure 112020051722711-pat00316
Is the user encryption key for user i,
Figure 112020051722711-pat00317
The
Figure 112020051722711-pat00318
Element of,
Figure 112020051722711-pat00319
And
Figure 112020051722711-pat00320
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]
Figure 112020051722711-pat00321

[Equation 3]
Figure 112020051722711-pat00322

(At this time,
Figure 112020051722711-pat00323
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112020051722711-pat00324
Is an attribute value for attribute category j among the one or more attribute values,
Figure 112020051722711-pat00325
Is the attribute value
Figure 112020051722711-pat00326
Pseudo-random number for)
And generating a pseudo-random number for each of the one or more attribute values.
청구항 18에 있어서,
상기 암호문을 생성하는 단계는, 아래의 수학식 4
[수학식 4]
Figure 112019084610755-pat00327

(이때,
Figure 112019084610755-pat00328
는 상기 암호문,
Figure 112019084610755-pat00329
은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨,
Figure 112019084610755-pat00330
는 상기 해시 값)
을 이용하여 상기 암호문을 생성하는, 장치.
The method according to claim 18,
The step of generating the ciphertext is Equation 4 below.
[Equation 4]
Figure 112019084610755-pat00327

(At this time,
Figure 112019084610755-pat00328
Is the ciphertext,
Figure 112019084610755-pat00329
Is the total number of attribute categories included in the attribute vector, T is the label,
Figure 112019084610755-pat00330
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.
청구항 20에 있어서,
상기 토큰을 생성하는 단계는,
상기 질의 벡터 집합에 대한 의사 난수(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.
청구항 21에 있어서,
상기 사용자 암호키는 아래의 수학식 1
[수학식 1]
Figure 112020013927536-pat00331

(이때,
Figure 112020013927536-pat00332
는 사용자 인덱스,
Figure 112020013927536-pat00333
는 사용자 i에 대한 사용자 암호키,
Figure 112020013927536-pat00334
Figure 112020013927536-pat00335
의 원소,
Figure 112020013927536-pat00336
Figure 112020013927536-pat00337
는 각각 임의의 정수, p는 소수(prime number))을 만족하고,
상기 의사 난수를 생성하는 단계는, 아래의 수학식 2 및 3
[수학식 2]
Figure 112020013927536-pat00338

[수학식 3]
Figure 112020013927536-pat00339

(이때,
Figure 112020013927536-pat00340
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112020013927536-pat00341
는 상기 질의 벡터 집합에 대한 의사 난수,
Figure 112020013927536-pat00342
는 질의 벡터
Figure 112020013927536-pat00397
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터
Figure 112020013927536-pat00398
에 포함된 하나 이상의 속성 값들 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)
을 이용하여 상기 의사 난수를 생성하는, 장치.
The method of claim 21,
The user encryption key is the following equation 1
[Equation 1]
Figure 112020013927536-pat00331

(At this time,
Figure 112020013927536-pat00332
User index,
Figure 112020013927536-pat00333
Is the user encryption key for user i,
Figure 112020013927536-pat00334
The
Figure 112020013927536-pat00335
Element of,
Figure 112020013927536-pat00336
And
Figure 112020013927536-pat00337
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]
Figure 112020013927536-pat00338

[Equation 3]
Figure 112020013927536-pat00339

(At this time,
Figure 112020013927536-pat00340
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112020013927536-pat00341
Is a pseudo-random number for the vector set of queries,
Figure 112020013927536-pat00342
The vector of the query
Figure 112020013927536-pat00397
Of one or more attribute values included in the attribute value for attribute category j, S i is the query vector
Figure 112020013927536-pat00398
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.
청구항 22에 있어서,
상기 마스터 비밀키를 생성하는 단계는 아래의 수학식 4
[수학식 4]
Figure 112019084610755-pat00343

(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 총수,
Figure 112019084610755-pat00344
는 위수가 p인 순환군(cyclic group)
Figure 112019084610755-pat00345
의 원소)
를 이용하여 상기 마스터 비밀키를 생성하고,
상기 토큰을 생성하는 단계는, 아래의 수학식 5
[수학식 5]
Figure 112019084610755-pat00346

(이때,
Figure 112019084610755-pat00347
는 상기 질의 벡터 집합에 대한 토큰,
Figure 112019084610755-pat00348
,
Figure 112019084610755-pat00349
Figure 112019084610755-pat00350
는 각각
Figure 112019084610755-pat00351
의 원소)
를 이용하여 상기 토큰을 생성하는, 장치.
The method according to claim 22,
The step of generating the master secret key is Equation 4 below.
[Equation 4]
Figure 112019084610755-pat00343

(At this time, MK is the master secret key, n is the total number of the plurality of users,
Figure 112019084610755-pat00344
Is a cyclic group with p
Figure 112019084610755-pat00345
Element of)
To generate the master secret key,
The step of generating the token, Equation 5 below
[Equation 5]
Figure 112019084610755-pat00346

(At this time,
Figure 112019084610755-pat00347
Is the token for the vector set of queries,
Figure 112019084610755-pat00348
,
Figure 112019084610755-pat00349
And
Figure 112019084610755-pat00350
Each
Figure 112019084610755-pat00351
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.
청구항 24에 있어서,
상기 복수의 속성 벡터 각각에 대한 암호문은, 상기 라벨에 대한 해시 값, 상기 복수의 속성 벡터 각각에 포함된 하나 이상의 속성 값 각각에 대한 제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.
청구항 25에 있어서,
상기 사용자 암호키는 아래의 수학식 1
[수학식 1]
Figure 112020013927536-pat00352

(
Figure 112020013927536-pat00353
는 사용자 인덱스,
Figure 112020013927536-pat00354
는 사용자 i에 대한 사용자 암호키,
Figure 112020013927536-pat00355
Figure 112020013927536-pat00356
의 원소,
Figure 112020013927536-pat00357
Figure 112020013927536-pat00358
는 각각 임의의 정수, p는 소수(prime number))을 만족하고,
상기 제1 의사 난수는, 아래의 수학식 2
[수학식 2]
Figure 112020013927536-pat00359

(이때,
Figure 112020013927536-pat00360
는 속성 카테고리 인덱스, PRF()는 의사 랜덤 함수,
Figure 112020013927536-pat00361
는 사용자 i의 사용자 암호키를 이용하여 암호화된 속성 벡터
Figure 112020013927536-pat00362
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값,
Figure 112020013927536-pat00363
는 상기 속성 값
Figure 112020013927536-pat00364
에 대한 제1 의사 난수)
을 이용하여 생성되고,
상기 제2 의사 난수는, 아래의 수학식 3
[수학식 3]
Figure 112020013927536-pat00365

(이때,
Figure 112020013927536-pat00366
는 상기 질의 벡터 집합에 대한 제2 의사 난수,
Figure 112020013927536-pat00367
는 상기 속성 벡터
Figure 112020013927536-pat00368
에 대한 질의 벡터
Figure 112020013927536-pat00369
에 포함된 하나 이상의 속성 값 중 속성 카테고리 j에 대한 속성 값, Si는 상기 질의 벡터
Figure 112020013927536-pat00399
에 포함된 하나 이상의 속성 값 중 와일드 카드(wild card) 속성 값을 제외한 나머지 속성 값들 각각에 대한 속성 카테고리 인덱스들의 집합)을 이용하여 생성되며,
상기
Figure 112020013927536-pat00370
는 아래의 수학식 4
[수학식 4]
Figure 112020013927536-pat00371

를 이용하여 생성되는 장치.
The method according to claim 25,
The user encryption key is the following equation 1
[Equation 1]
Figure 112020013927536-pat00352

(
Figure 112020013927536-pat00353
User index,
Figure 112020013927536-pat00354
Is the user encryption key for user i,
Figure 112020013927536-pat00355
The
Figure 112020013927536-pat00356
Element of,
Figure 112020013927536-pat00357
And
Figure 112020013927536-pat00358
Each satisfy an arbitrary integer, p is a prime number,
The first pseudo-random number is Equation 2 below.
[Equation 2]
Figure 112020013927536-pat00359

(At this time,
Figure 112020013927536-pat00360
Is the attribute category index, PRF() is a pseudo-random function,
Figure 112020013927536-pat00361
Is an attribute vector encrypted using the user's user encryption key.
Figure 112020013927536-pat00362
The attribute value for attribute category j among one or more attribute values included in
Figure 112020013927536-pat00363
Is the attribute value
Figure 112020013927536-pat00364
First pseudo-random number for)
Is created using,
The second pseudo-random number is Equation 3 below.
[Equation 3]
Figure 112020013927536-pat00365

(At this time,
Figure 112020013927536-pat00366
Is a second pseudo-random number for the vector set of queries,
Figure 112020013927536-pat00367
Is the above attribute vector
Figure 112020013927536-pat00368
Query for vector
Figure 112020013927536-pat00369
Of one or more attribute values included in the attribute value for attribute category j, S i is the query vector
Figure 112020013927536-pat00399
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
Figure 112020013927536-pat00370
Equation 4 below
[Equation 4]
Figure 112020013927536-pat00371

Device created using.
청구항 26에 있어서,
상기 마스터 비밀키는 아래의 수학식 5
[수학식 5]
Figure 112019084610755-pat00372

(이때, MK는 상기 마스터 비밀키, n은 상기 복수의 사용자의 수,
Figure 112019084610755-pat00373
는 위수가 p인 순환군(cyclic group)
Figure 112019084610755-pat00374
의 원소)
를 만족하고,
상기 암호문은, 아래의 수학식 6
[수학식 6]
Figure 112019084610755-pat00375

(이때,
Figure 112019084610755-pat00376
는 상기 암호문,
Figure 112019084610755-pat00377
은 상기 속성 벡터에 포함된 속성 카테고리의 총 개수, T는 상기 라벨,
Figure 112019084610755-pat00378
는 상기 해시 값)
을 만족하고,
상기 토큰은, 아래의 수학식 7
[수학식 7]
Figure 112019084610755-pat00379

(이때,
Figure 112019084610755-pat00380
는 상기 토큰,
Figure 112019084610755-pat00381
,
Figure 112019084610755-pat00382
Figure 112019084610755-pat00383
는 각각
Figure 112019084610755-pat00384
의 원소)
을 만족하는, 장치.
The method according to claim 26,
The master secret key is Equation 5 below
[Equation 5]
Figure 112019084610755-pat00372

(At this time, MK is the master secret key, n is the number of the plurality of users,
Figure 112019084610755-pat00373
Is a cyclic group with p
Figure 112019084610755-pat00374
Element of)
Satisfied,
The ciphertext is the following Equation 6
[Equation 6]
Figure 112019084610755-pat00375

(At this time,
Figure 112019084610755-pat00376
Is the ciphertext,
Figure 112019084610755-pat00377
Is the total number of attribute categories included in the attribute vector, T is the label,
Figure 112019084610755-pat00378
Is the hash value above)
Satisfied,
The token, Equation 7 below
[Equation 7]
Figure 112019084610755-pat00379

(At this time,
Figure 112019084610755-pat00380
Is the token,
Figure 112019084610755-pat00381
,
Figure 112019084610755-pat00382
And
Figure 112019084610755-pat00383
Each
Figure 112019084610755-pat00384
Element of)
Device that satisfies.
청구항 27에 있어서,
상기 판단하는 단계는, 아래의 수학식 8
[수학식 8]
Figure 112019084610755-pat00385

(이때, e는
Figure 112019084610755-pat00386
를 만족하는 겹선형 함수(bilinear map),
Figure 112019084610755-pat00387
,
Figure 112019084610755-pat00388
Figure 112019084610755-pat00389
는 위수(order)가 소수 p인 순환군(cyclic group))
이 만족되는 경우, 상기 동치 관계가 성립하는 것으로 판단하는, 장치.
The method according to claim 27,
The determining step, Equation 8 below
[Equation 8]
Figure 112019084610755-pat00385

(At this time, e is
Figure 112019084610755-pat00386
Bilinear map, which satisfies
Figure 112019084610755-pat00387
,
Figure 112019084610755-pat00388
And
Figure 112019084610755-pat00389
Is a cyclic group with a prime p
If it is satisfied, the device determines that the same relationship is established.
KR1020190100941A 2019-08-19 2019-08-19 Encryption method for supporting equality query in multi-client environment and apparatus using the same KR102123435B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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