KR20200039979A - Apparatus and method for order-revealing encryption - Google Patents

Apparatus and method for order-revealing encryption Download PDF

Info

Publication number
KR20200039979A
KR20200039979A KR1020180119632A KR20180119632A KR20200039979A KR 20200039979 A KR20200039979 A KR 20200039979A KR 1020180119632 A KR1020180119632 A KR 1020180119632A KR 20180119632 A KR20180119632 A KR 20180119632A KR 20200039979 A KR20200039979 A KR 20200039979A
Authority
KR
South Korea
Prior art keywords
ciphertext
equation
plaintext data
secret key
bit
Prior art date
Application number
KR1020180119632A
Other languages
Korean (ko)
Other versions
KR102132685B1 (en
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 KR1020180119632A priority Critical patent/KR102132685B1/en
Publication of KR20200039979A publication Critical patent/KR20200039979A/en
Application granted granted Critical
Publication of KR102132685B1 publication Critical patent/KR102132685B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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

Abstract

Disclosed are an apparatus and a method for sequence exposure encryption. According to one embodiment of the present invention, the method comprises the steps of: obtaining a user secret key for a user; generating first ciphertext by encrypting plaintext data in bit units using the user secret key; and generating second ciphertext by encrypting the first ciphertext based on public key encryption using an arbitrary integer.

Description

순서 노출 암호화를 위한 장치 및 방법{APPARATUS AND METHOD FOR ORDER-REVEALING ENCRYPTION}Apparatus and method for sequence exposure encryption {APPARATUS AND METHOD FOR ORDER-REVEALING ENCRYPTION}

본 발명의 실시예들은 암호화 기술과 관련된다.Embodiments of the invention relate to encryption technology.

순서 노출 암호화(Order-Revealing Encryption; ORE) 기술은 암호화된 상태에서 평문의 대소 비교를 가능하게 하는 기술이다. 기존의 ORE 기법은 모두 하나의 사용자로부터 생성된 즉, 하나의 비밀키로 암호화된 암호문 간의 비교만을 지원하였으나, 본 출원인의 한국특허출원 제10-2018-0058145호는 다중 클라이언트 환경에서 다수의 사용자로부터 생성된 즉, 서로 다른 비밀키로 암호화된 암호문 간의 비교를 통해 평문의 대소를 수행하기 위한 기법(이하, MC-ORE)을 제시하였다.Order-Revealing Encryption (ORE) technology is a technology that enables large and small comparisons of plain text in an encrypted state. The existing ORE technique only supports comparison between ciphertexts generated from one user, that is, encrypted with one secret key, but Korean Patent Application No. 10-2018-0058145 of the present applicant is generated from multiple users in a multi-client environment. In other words, a technique (hereinafter referred to as MC-ORE) for performing the case of plain text through comparison between ciphertexts encrypted with different secret keys was proposed.

MC-ORE 기법은 메시지를 비트 단위로 암호화하고, 최상위 비트부터 순차적으로 비트 단위의 비교를 수행한다. 따라서, 암호문 비교를 통해 대소 결과 이외에 처음으로 차이가 발생하는 비트 위치(most significant differing bit, MSDB)에 대한 정보가 추가적으로 노출되며, 하나의 암호문으로 동일 사용자의 다른 암호문과의 비교와 서로 다른 사용자의 암호문과의 비교를 모두 수행하므로, 두 비교 결과 모두 MSDB 정보를 노출시킨다는 문제점이 있다.The MC-ORE technique encrypts the message bit by bit and performs bitwise comparison from the most significant bit sequentially. Therefore, through ciphertext comparison, information on the location of the most significant differing bit (MSDB) for the first time in addition to the case result is additionally exposed, and one ciphertext compares with other ciphertexts of the same user and different users Since all comparisons with ciphertexts are performed, there is a problem that both comparison results expose MSDB information.

대한민국 공개특허공보 제10-2017-0103321호 (2017.09.13. 공개)Republic of Korea Patent Publication No. 10-2017-0103321 (2017.09.13. Public)

본 발명의 실시예들은 다중 클라이언트 환경에서 복호화 과정 없이 서로 다른 비밀키로 암호화된 암호문 간의 비교를 가능하게 하는 순서 노출 암호화를 위한 장치 및 방법을 제공하기 위한 것이다.Embodiments of the present invention are to provide an apparatus and method for ordered exposure encryption that enables comparison between encrypted texts encrypted with different secret keys without a decryption process in a multi-client environment.

본 발명의 일 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되며, 사용자에 대한 사용자 비밀키를 획득하는 단계; 상기 사용자 비밀키를 이용하여 평문 데이터를 비트 단위로 암호화하여 제1 암호문을 생성하는 단계; 및 임의의 정수를 이용하여 상기 제1 암호문을 공개키 암호화 기반으로 암호화하여 제2 암호문을 생성하는 단계를 포함한다.The method according to an embodiment of the present invention is performed in a computing device having one or more processors and memory storing one or more programs executed by the one or more processors, and obtaining a user secret key for the user To do; Generating a first ciphertext by encrypting the plaintext data in bit units using the user secret key; And generating the second ciphertext by encrypting the first ciphertext based on public key encryption using an arbitrary integer.

상기 제1 암호문을 생성하는 단계는, 상기 평문 데이터의 각 비트 값에 대한 프리픽스(prefix) 비트 열 및 상기 사용자 비밀키를 이용하여 상기 평문 데이터를 비트 단위로 암호화할 수 있다.In the generating of the first ciphertext, the plaintext data may be encrypted bit by bit using a prefix bit string for each bit value of the plaintext data and the user secret key.

상기 제1 암호문은, 아래의 수학식 1 내지 3The first ciphertext, the equations 1 to 3 below

[수학식 1] [Equation 1]

Figure pat00001
Figure pat00001

[수학식 2][Equation 2]

Figure pat00002
Figure pat00002

[수학식 3][Equation 3]

Figure pat00003
Figure pat00003

(이때,

Figure pat00004
는 상기 1 암호문, m은
Figure pat00005
인 상기 제1 평문 데이터,
Figure pat00006
는 상기 제1 평문 데이터의 i 번째 비트 값,
Figure pat00007
는 상기 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00008
는 상기 사용자 비밀키, H는
Figure pat00009
를 만족하는 해시 함수,
Figure pat00010
는 위수가 소수 p인 덧셈 군)을 이용하여 생성될 수 있다.(At this time,
Figure pat00004
Is 1 ciphertext, m is
Figure pat00005
The first plaintext data,
Figure pat00006
I is the i-th bit value of the first plain text data,
Figure pat00007
Is a prefix bit column for the i-th bit value,
Figure pat00008
Is the user secret key, H is
Figure pat00009
Hash function that satisfies,
Figure pat00010
Can be generated using the addition group with prime p).

상기 제2 암호문은, 아래의 수학식 4 내지 6The second ciphertext, the equations 4 to 6 below

[수학식 4][Equation 4]

Figure pat00011
Figure pat00011

[수학식 5][Equation 5]

Figure pat00012
Figure pat00012

[수학식 6][Equation 6]

Figure pat00013
Figure pat00013

(이때,

Figure pat00014
는 상기 제2 암호문, g는 상기 덧셈 군 G의 생성원(generator), t는
Figure pat00015
를 만족하는 상기 임의의 정수,
Figure pat00016
Figure pat00017
를 만족하는 공개 파라미터,
Figure pat00018
Figure pat00019
를 만족하는 임의의 정수)을 이용하여 생성될 수 있다.(At this time,
Figure pat00014
Is the second ciphertext, g is the generator of the addition group G, t is
Figure pat00015
Any of the above integers,
Figure pat00016
The
Figure pat00017
Public parameter that satisfies,
Figure pat00018
The
Figure pat00019
It can be generated using any integer).

본 발명의 일 실시예에 따른 장치는, 하나 이상의 프로세서; 메모리; 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 사용자에 대한 사용자 비밀키를 획득하는 단계; 상기 사용자 비밀키를 이용하여 평문 데이터를 비트 단위로 암호화하여 제1 암호문을 생성하는 단계; 및 임의의 정수를 이용하여 상기 제1 암호문을 공개키 암호화 기반으로 암호화하여 제2 암호문을 생성하는 단계를 실행하기 위한 명령어들을 포함한다.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: obtaining a user secret key for the user; Generating a first ciphertext by encrypting the plaintext data in bit units using the user secret key; And instructions for executing the step of generating a second ciphertext by encrypting the first ciphertext based on public key encryption using an arbitrary integer.

상기 제1 암호문을 생성하는 단계는, 상기 평문 데이터의 각 비트 값에 대한 프리픽스(prefix) 비트 열 및 상기 사용자 비밀키를 이용하여 상기 평문 데이터를 비트 단위로 암호화할 수 있다.In the generating of the first ciphertext, the plaintext data may be encrypted bit by bit using a prefix bit string for each bit value of the plaintext data and the user secret key.

상기 제1 암호문은, 아래의 수학식 1 내지 3The first ciphertext, the equations 1 to 3 below

[수학식 1] [Equation 1]

Figure pat00020
Figure pat00020

[수학식 2][Equation 2]

Figure pat00021
Figure pat00021

[수학식 3][Equation 3]

Figure pat00022
Figure pat00022

(이때,

Figure pat00023
는 상기 1 암호문, m은
Figure pat00024
인 상기 제1 평문 데이터,
Figure pat00025
는 상기 제1 평문 데이터의 i 번째 비트 값,
Figure pat00026
는 상기 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00027
는 상기 사용자 비밀키, H는
Figure pat00028
를 만족하는 해시 함수,
Figure pat00029
는 위수가 소수 p인 덧셈 군)을 이용하여 생성될 수 있다.(At this time,
Figure pat00023
Is 1 ciphertext, m is
Figure pat00024
The first plaintext data,
Figure pat00025
I is the i-th bit value of the first plain text data,
Figure pat00026
Is a prefix bit column for the i-th bit value,
Figure pat00027
Is the user secret key, H is
Figure pat00028
Hash function that satisfies,
Figure pat00029
Can be generated using the addition group with prime p).

상기 제2 암호문은, 아래의 수학식 4 내지 6 The second ciphertext, the equations 4 to 6 below

[수학식 4][Equation 4]

Figure pat00030
Figure pat00030

[수학식 5][Equation 5]

Figure pat00031
Figure pat00031

[수학식 6][Equation 6]

Figure pat00032
Figure pat00032

(이때,

Figure pat00033
는 상기 제2 암호문, g는 상기 덧셈 군 G의 생성원(generator), t는
Figure pat00034
를 만족하는 상기 임의의 정수,
Figure pat00035
Figure pat00036
를 만족하는 공개 파라미터,
Figure pat00037
Figure pat00038
를 만족하는 임의의 정수)을 이용하여 생성될 수 있다.(At this time,
Figure pat00033
Is the second ciphertext, g is the generator of the addition group G, t is
Figure pat00034
Any of the above integers,
Figure pat00035
The
Figure pat00036
Public parameter that satisfies,
Figure pat00037
The
Figure pat00038
It can be generated using any integer).

본 발명의 일 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 제1 사용자 비밀키를 이용하여 제1 평문 데이터를 비트 단위로 암호화한 제1 암호문을 제1 임의의 정수를 이용하여 공개키 암호화 기반으로 암호화한 제2 암호문, 및 제2 사용자 비밀키를 이용하여 제2 평문 데이터를 비트 단위로 암호화한 제3 암호문을 제2 임의의 정수를 이용하여 상기 공개키 암호화 기반으로 암호화한 제4 암호문을 획득하는 단계; 상기 제1 사용자 비밀키 및 상기 제2 사용자 비밀키를 이용하여 생성된 비교키를 획득하는 단계; 및 상기 비교키를 이용하여 제2 암호문 및 상기 제4 암호문을 암호화된 상태에서 비교하여, 상기 제1 평문 데이터와 상기 제2 평문 데이터 사이의 대소를 판단하는 단계를 포함한다.A method according to an embodiment of the present invention is a method performed in a computing device having one or more processors and memory storing one or more programs executed by the one or more processors, wherein the first user secret key is Bits of the second ciphertext using the first user's secret key, and second ciphertext of the first ciphertext using the first random integer to encrypt the first ciphertext using the first random integer. Obtaining a fourth ciphertext encrypted based on the public key encryption using a second arbitrary integer as a third ciphertext encrypted in units; Obtaining a comparison key generated using the first user secret key and the second user secret key; And comparing the second ciphertext and the fourth ciphertext in an encrypted state using the comparison key, and determining a size between the first plaintext data and the second plaintext data.

상기 제1 암호문은, 상기 제1 평문 데이터의 각 비트 값에 대한 프리픽스(prefix) 비트 열 및 상기 제1 사용자 비밀키를 이용하여 상기 제1 평문 데이터를 비트 단위로 암호화하여 생성되고, 상기 제3 암호문은, 상기 제2 평문 데이터의 각 비트 값에 대한 프리픽스 비트 열 및 상기 제2 사용자 비밀키를 이용하여 상기 제2 평문 데이터를 비트 단위로 암호화하여 생성될 수 있다.The first ciphertext is generated by encrypting the first plaintext data in bit units using a prefix bit string and a first user secret key for each bit value of the first plaintext data, and the third The ciphertext may be generated by encrypting the second plaintext data in bit units using a prefix bit string for each bit value of the second plaintext data and the second user secret key.

상기 제1 암호문은, 아래의 수학식 1 내지 3The first ciphertext, the equations 1 to 3 below

[수학식 1][Equation 1]

Figure pat00039
Figure pat00039

[수학식 2][Equation 2]

Figure pat00040
Figure pat00040

[수학식 3][Equation 3]

Figure pat00041
Figure pat00041

(이때,

Figure pat00042
는 상기 1 암호문, m은
Figure pat00043
인 상기 제1 평문 데이터,
Figure pat00044
는 상기 제1 평문 데이터의 i 번째 비트 값,
Figure pat00045
는 상기 제1 평문 데이터의 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00046
는 상기 제1 사용자 비밀키, H는
Figure pat00047
를 만족하는 해시 함수,
Figure pat00048
는 위수가 소수 p인 덧셈 군)을 이용하여 생성되고, 상기 제3 암호문은, 아래의 수학식 4 내지 6(At this time,
Figure pat00042
Is 1 ciphertext, m is
Figure pat00043
The first plaintext data,
Figure pat00044
I is the i-th bit value of the first plain text data,
Figure pat00045
Is a prefix bit column for the i-th bit value of the first plain text data,
Figure pat00046
Is the first user secret key, H is
Figure pat00047
Hash function that satisfies,
Figure pat00048
Is generated using the addition group having the prime number p), and the third ciphertext is the following equations 4 to 6

[수학식 4][Equation 4]

Figure pat00049
Figure pat00049

[수학식 5][Equation 5]

Figure pat00050
Figure pat00050

[수학식 6][Equation 6]

Figure pat00051
Figure pat00051

(이때,

Figure pat00052
는 상기 제3 암호문, m'은
Figure pat00053
인 상기 제2 평문 데이터,
Figure pat00054
는 상기 제2 평문 데이터의 i 번째 비트 값,
Figure pat00055
는 상기 제2 평문 데이터의 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00056
는 상기 제2 사용자 비밀키)을 이용하여 생성될 수 있다.(At this time,
Figure pat00052
Is the third ciphertext, m 'is
Figure pat00053
The second plaintext data,
Figure pat00054
Is the i-th bit value of the second plain text data,
Figure pat00055
Is a prefix bit column for the i-th bit value of the second plain text data,
Figure pat00056
May be generated using the second user secret key).

상기 제2 암호문은, 아래의 수학식 7 내지 9The second ciphertext, the equations 7 to 9 below

[수학식 7][Equation 7]

Figure pat00057
Figure pat00057

[수학식 8][Equation 8]

Figure pat00058
Figure pat00058

[수학식 9][Equation 9]

Figure pat00059
Figure pat00059

(이때,

Figure pat00060
는 상기 제2 암호문, g는 상기 덧셈 군
Figure pat00061
의 생성원(generator), t는
Figure pat00062
를 만족하는 상기 제1 임의의 정수,
Figure pat00063
Figure pat00064
를 만족하는 공개 파라미터,
Figure pat00065
Figure pat00066
를 만족하는 임의의 정수)를 이용하여 생성되고, 상기 제4 암호문은, 아래의 수학식 10 내지 12(At this time,
Figure pat00060
Is the second ciphertext, g is the addition group
Figure pat00061
The generator of, t is
Figure pat00062
The first arbitrary integer satisfying,
Figure pat00063
The
Figure pat00064
Public parameter that satisfies,
Figure pat00065
The
Figure pat00066
Is generated by using an arbitrary integer that satisfies, and the fourth ciphertext is Equations 10 to 12 below.

[수학식 10][Equation 10]

Figure pat00067
Figure pat00067

[수학식 11][Equation 11]

Figure pat00068
Figure pat00068

[수학식 12][Equation 12]

Figure pat00069
Figure pat00069

(이때,

Figure pat00070
는 상기 제4 암호문, t'는
Figure pat00071
를 만족하는 상기 제2 임의의 정수,
Figure pat00072
Figure pat00073
를 만족하는 공개 파라미터,
Figure pat00074
Figure pat00075
를 만족하는 임의의 정수)를 이용하여 생성될 수 있다.(At this time,
Figure pat00070
Is the fourth ciphertext, t 'is
Figure pat00071
The second arbitrary integer satisfying,
Figure pat00072
The
Figure pat00073
Public parameter that satisfies,
Figure pat00074
The
Figure pat00075
It can be generated using any integer).

상기 비교키는, 아래의 수학식 13 내지 17The comparison key, the equations 13 to 17 below

[수학식 13][Equation 13]

Figure pat00076
Figure pat00076

[수학식 14][Equation 14]

Figure pat00077
Figure pat00077

[수학식 15][Equation 15]

Figure pat00078
Figure pat00078

[수학식 16][Equation 16]

Figure pat00079
Figure pat00079

[수학식 17][Equation 17]

Figure pat00080
Figure pat00080

(이때,

Figure pat00081
는 상기 비교키,
Figure pat00082
는 위수가 소수 p인 덧셈 군
Figure pat00083
의 생성원, r은
Figure pat00084
를 만족하는 임의의 정수)을 이용하여 생성될 수 있다.(At this time,
Figure pat00081
Is the comparison key,
Figure pat00082
Is an addition group with prime p
Figure pat00083
The origin of, r is
Figure pat00084
It can be generated using any integer).

상기 판단하는 단계는,

Figure pat00085
Figure pat00086
(이때, e는
Figure pat00087
를 만족하는 겹선형(bilinear) 함수,
Figure pat00088
는 위수가 소수 p인 곱셈 군)가 일치하지 않는 i의 최소 값 i*가 존재하는지 여부를 판단하는 단계; 및 상기 최소 값 i*이 존재하고,
Figure pat00089
Figure pat00090
가 일치하는 경우, 상기 제1 평문 데이터가 상기 제2 평문 데이터보다 작은 것으로 판단하고,
Figure pat00091
Figure pat00092
가 일치하지 않거나 상기 최소 값 i*이 존재하지 않는 경우, 상기 제1 평문 데이터가 상기 제2 평문 데이터보다 같거나 큰 것으로 판단하고 단계를 포함할 수 있다. The determining step,
Figure pat00085
Wow
Figure pat00086
(At this time, e is
Figure pat00087
Bilinear function that satisfies,
Figure pat00088
Determining whether there is a minimum value i * of i in which the odds p does not match; And the minimum value i * is present,
Figure pat00089
Wow
Figure pat00090
When is matched, it is determined that the first plaintext data is smaller than the second plaintext data,
Figure pat00091
Wow
Figure pat00092
If does not match or the minimum value i * does not exist, it may include determining that the first plaintext data is equal to or greater than the second plaintext data.

본 발명의 일 실시예에 따른 장치는, 하나 이상의 프로세서; 메모리; 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 제1 사용자 비밀키를 이용하여 제1 평문 데이터를 비트 단위로 암호화한 제1 암호문을 제1 임의의 정수를 이용하여 공개키 암호화 기반으로 암호화한 제2 암호문, 및 제2 사용자 비밀키를 이용하여 제2 평문 데이터를 비트 단위로 암호화한 제3 암호문을 제2 임의의 정수를 이용하여 상기 공개키 암호화 기반으로 암호화한 제4 암호문을 획득하는 단계; 상기 제1 사용자 비밀키 및 상기 제2 사용자 비밀키를 이용하여 생성된 비교키를 획득하는 단계; 및 상기 비교키를 이용하여 제2 암호문 및 상기 제4 암호문을 암호화된 상태에서 비교하여, 상기 제1 평문 데이터와 상기 제2 평문 데이터 사이의 대소를 판단하는 단계를 실행하기 위한 명령어들을 포함한다.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, using the first user secret key, bit-wise the first plaintext data. The second ciphertext, which is encrypted based on public key encryption using the first arbitrary integer, and the third ciphertext, which encrypts the second plaintext data in bit units using the second user secret key, are provided. 2 obtaining a fourth ciphertext encrypted based on the public key encryption using an arbitrary integer; Obtaining a comparison key generated using the first user secret key and the second user secret key; And comparing the second ciphertext and the fourth ciphertext in an encrypted state using the comparison key, and determining a size between the first plaintext data and the second plaintext data.

상기 제1 암호문은, 상기 제1 평문 데이터의 각 비트 값에 대한 프리픽스(prefix) 비트 열 및 상기 제1 사용자 비밀키를 이용하여 상기 제1 평문 데이터를 비트 단위로 암호화하여 생성되고, 상기 제3 암호문은, 상기 제2 평문 데이터의 각 비트 값에 대한 프리픽스 비트 열 및 상기 제2 사용자 비밀키를 이용하여 상기 제2 평문 데이터를 비트 단위로 암호화하여 생성될 수 있다.The first ciphertext is generated by encrypting the first plaintext data in bit units using a prefix bit string and a first user secret key for each bit value of the first plaintext data, and the third The ciphertext may be generated by encrypting the second plaintext data in bit units using a prefix bit string for each bit value of the second plaintext data and the second user secret key.

상기 제1 암호문은, 아래의 수학식 1 내지 3The first ciphertext, the equations 1 to 3 below

[수학식 1][Equation 1]

Figure pat00093
Figure pat00093

[수학식 2][Equation 2]

Figure pat00094
Figure pat00094

[수학식 3][Equation 3]

Figure pat00095
Figure pat00095

(이때,

Figure pat00096
는 상기 1 암호문, m은
Figure pat00097
인 상기 제1 평문 데이터,
Figure pat00098
는 상기 제1 평문 데이터의 i 번째 비트 값,
Figure pat00099
는 상기 제1 평문 데이터의 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00100
는 상기 제1 사용자 비밀키, H는
Figure pat00101
를 만족하는 해시 함수,
Figure pat00102
는 위수가 소수 p인 덧셈 군)을 이용하여 생성되고, 상기 제3 암호문은, 아래의 수학식 4 내지 6(At this time,
Figure pat00096
Is 1 ciphertext, m is
Figure pat00097
The first plaintext data,
Figure pat00098
I is the i-th bit value of the first plain text data,
Figure pat00099
Is a prefix bit column for the i-th bit value of the first plain text data,
Figure pat00100
Is the first user secret key, H is
Figure pat00101
Hash function that satisfies,
Figure pat00102
Is generated using the addition group having the prime number p), and the third ciphertext is the following equations 4 to 6

[수학식 4][Equation 4]

Figure pat00103
Figure pat00103

[수학식 5][Equation 5]

Figure pat00104
Figure pat00104

[수학식 6][Equation 6]

Figure pat00105
Figure pat00105

(이때,

Figure pat00106
는 상기 제3 암호문, m'은
Figure pat00107
인 상기 제2 평문 데이터,
Figure pat00108
는 상기 제2 평문 데이터의 i 번째 비트 값,
Figure pat00109
는 상기 제2 평문 데이터의 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00110
는 상기 제2 사용자 비밀키)을 이용하여 생성될 수 있다.(At this time,
Figure pat00106
Is the third ciphertext, m 'is
Figure pat00107
The second plaintext data,
Figure pat00108
Is the i-th bit value of the second plain text data,
Figure pat00109
Is a prefix bit column for the i-th bit value of the second plain text data,
Figure pat00110
May be generated using the second user secret key).

상기 제2 암호문은, 아래의 수학식 7 내지 9The second ciphertext, the equations 7 to 9 below

[수학식 7][Equation 7]

Figure pat00111
Figure pat00111

[수학식 8][Equation 8]

Figure pat00112
Figure pat00112

[수학식 9][Equation 9]

Figure pat00113
Figure pat00113

(이때,

Figure pat00114
는 상기 제2 암호문, g는 상기 덧셈 군
Figure pat00115
의 생성원(generator), t는
Figure pat00116
를 만족하는 상기 제1 임의의 정수,
Figure pat00117
Figure pat00118
를 만족하는 공개 파라미터,
Figure pat00119
Figure pat00120
를 만족하는 임의의 정수)를 이용하여 생성되고, 상기 제4 암호문은, 아래의 수학식 10 내지 12(At this time,
Figure pat00114
Is the second ciphertext, g is the addition group
Figure pat00115
The generator of, t is
Figure pat00116
The first arbitrary integer satisfying,
Figure pat00117
The
Figure pat00118
Public parameter that satisfies,
Figure pat00119
The
Figure pat00120
Is generated by using an arbitrary integer that satisfies, and the fourth ciphertext is Equations 10 to 12 below.

[수학식 10][Equation 10]

Figure pat00121
Figure pat00121

[수학식 11][Equation 11]

Figure pat00122
Figure pat00122

[수학식 12][Equation 12]

Figure pat00123
Figure pat00123

(이때,

Figure pat00124
는 상기 제4 암호문, t'는
Figure pat00125
를 만족하는 상기 제2 임의의 정수,
Figure pat00126
Figure pat00127
를 만족하는 공개 파라미터,
Figure pat00128
Figure pat00129
를 만족하는 임의의 정수)를 이용하여 생성될 수 있다.(At this time,
Figure pat00124
Is the fourth ciphertext, t 'is
Figure pat00125
The second arbitrary integer satisfying,
Figure pat00126
The
Figure pat00127
Public parameter that satisfies,
Figure pat00128
The
Figure pat00129
It can be generated using any integer).

상기 비교키는, 아래의 수학식 13 내지 17The comparison key, the equations 13 to 17 below

[수학식 13][Equation 13]

Figure pat00130
Figure pat00130

[수학식 14][Equation 14]

Figure pat00131
Figure pat00131

[수학식 15][Equation 15]

Figure pat00132
Figure pat00132

[수학식 16][Equation 16]

Figure pat00133
Figure pat00133

[수학식 17][Equation 17]

Figure pat00134
Figure pat00134

(이때,

Figure pat00135
는 상기 비교키,
Figure pat00136
는 위수가 소수 p인 덧셈 군
Figure pat00137
의 생성원, r은
Figure pat00138
를 만족하는 임의의 정수)을 이용하여 생성될 수 있다.(At this time,
Figure pat00135
Is the comparison key,
Figure pat00136
Is an addition group with prime p
Figure pat00137
The origin of, r is
Figure pat00138
It can be generated using any integer).

상기 판단하는 단계는,

Figure pat00139
Figure pat00140
(이때, e는
Figure pat00141
를 만족하는 겹선형(bilinear) 함수,
Figure pat00142
는 위수가 소수 p인 곱셈 군)가 일치하지 않는 i의 최소 값 i*가 존재하는지 여부를 판단하는 단계; 및 상기 최소 값 i*이 존재하고,
Figure pat00143
Figure pat00144
가 일치하는 경우, 상기 제1 평문 데이터가 상기 제2 평문 데이터보다 작은 것으로 판단하고,
Figure pat00145
Figure pat00146
가 일치하지 않거나 상기 최소 값 i*이 존재하지 않는 경우, 상기 제1 평문 데이터가 상기 제2 평문 데이터보다 같거나 큰 것으로 판단하고 단계를 포함할 수 있다.The determining step,
Figure pat00139
Wow
Figure pat00140
(At this time, e is
Figure pat00141
Bilinear function that satisfies,
Figure pat00142
Determining whether there is a minimum value i * of i in which the odds p does not match; And the minimum value i * is present,
Figure pat00143
Wow
Figure pat00144
When is matched, it is determined that the first plaintext data is smaller than the second plaintext data,
Figure pat00145
Wow
Figure pat00146
If does not match or the minimum value i * does not exist, it may include determining that the first plaintext data is equal to or greater than the second plaintext data.

본 발명의 실시예들에 따르면, 사용자 비밀키를 이용하여 평문 데이터를 암호화한 암호문을 공개키 암호 기술을 이용하여 추가적으로 암호화함으로써, 동일 사용자에 의해 생성된 암호문 사이의 비교가 불가능하도록 함과 동시에 비교키가 제공되기 전까지 다른 사용자에 의해 생성된 암호문 사이의 비교가 불가능하도록 할 수 있으며, 이에 따라 비교키가 제공되기 전까지 암호문에서 어떠한 정보도 노출되지 않는다. According to embodiments of the present invention, by simultaneously encrypting a ciphertext that encrypts plaintext data using a user secret key using a public key cryptography technique, it is impossible to compare between ciphertexts generated by the same user and simultaneously compares the ciphertext. It is possible to prevent comparison between ciphertexts generated by other users until the key is provided, and accordingly, no information is exposed in the ciphertext until the comparison key is provided.

또한, 본 발명의 실시예들에 따르면, 동일한 사용자의 암호문 사이의 비교를 위해 기존의 ORE 기법들 중에서 추가 노출 정보량이 MSDB보다 적은 기법을 사용하고, 다른 사용자의 암호문 사이의 비교를 위해 본 발명의 실시예에 따라 생성된 암호문을 이용하는 경우, 비교키가 제공되기 전까지는 추가 노출 정보량이 기존 ORE 기법의 추가 노출 정보량과 동일하기 때문에 MSDB 보다 적은 양의 정보가 노출되고, 비교키가 제공되더라도 최대 기존의 MC-ORE 기법만큼 추가 정보가 노출되도록 할 수 있다.In addition, according to embodiments of the present invention, for comparison between ciphertexts of the same user, a technique in which additional exposure information is less than MSDB among existing ORE techniques is used, and the present invention is used for comparison between ciphertexts of different users. In the case of using the generated ciphertext according to the embodiment, less information is exposed than the MSDB because the additional exposure information amount is the same as the additional exposure information of the existing ORE technique until the comparison key is provided, and even if the comparison key is provided, the maximum existing Additional information can be exposed as much as the MC-ORE technique.

도 1은 본 발명의 일 실시예에 따른 순서 노출 암호화 시스템의 구성도
도 2는 본 발명의 일 실시예에 따른 순서 노출 암호화 방법을 설명하기 위한 순서도
도 3은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
1 is a block diagram of a sequence exposure encryption system according to an embodiment of the present invention
2 is a flow chart for explaining a sequence exposure encryption method according to an embodiment of the present invention
3 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 “comprising” 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 possibility of other characteristics, numbers, steps, actions, elements, or parts or combinations thereof.

도 1은 본 발명의 일 실시예에 따른 순서 노출 암호화 시스템의 구성도이다. 1 is a configuration diagram of a sequence exposure encryption system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 순서 노출 암호화 시스템(100)은 키 정보 제공 장치(110) 및 복수의 클라이언트 장치(120, 130, 140)를 포함한다. Referring to FIG. 1, the sequence exposure encryption system 100 according to an embodiment of the present invention includes a key information providing device 110 and a plurality of client devices 120, 130, and 140.

도 1에서는 설명의 편의를 위해 클라이언트 장치(110, 120, 130)가 3개인 것으로 예시하고 있으나, 실시예에 따라 클라이언트 장치의 개수는 변경될 수 있다. In FIG. 1, for convenience of description, three client devices 110, 120, and 130 are illustrated, but the number of client devices may be changed according to embodiments.

키 정보 제공 장치(110)는 신뢰할 수 있는 기관에 의해 운영되는 장치로서 복수의 사용자에게 평문 데이터 암호화를 위한 사용자 비밀키 및 복수의 사용자 중 서로 다른 사용자에 의해 생성된 암호문 사이의 비교를 위한 비교키를 발급한다.The key information providing device 110 is a device operated by a trusted agency, and a comparison key for comparison between a user secret key for encrypting plain text data to a plurality of users and a cipher text generated by different users among the plurality of users To issue.

클라이언트 장치(120, 130, 140)는 암호문 생성 및 암호문 비교를 위해 각 사용자에 의해 이용되는 장치이다. 이하에서는 설명의 편의를 위해 각 클라이언트 장치(120, 130, 140)가 상이한 사용자에 의해 이용되는 것으로 가정하여 설명하나, 실시예에 따라, 하나의 클라이언트 장치(120, 130, 140)가 2 이상의 사용자에 의해 이용될 수도 있다. The client devices 120, 130, and 140 are devices used by each user for cipher text generation and cipher text comparison. Hereinafter, for convenience of description, it is assumed that each client device 120, 130, 140 is used by a different user, but according to an embodiment, one client device 120, 130, 140 has two or more users It can also be used by.

한편, 각 클라이언트 장치(120, 130, 140)는 키 정보 제공 장치(110)로부터 각 클라이언트 장치(120, 130, 140)를 이용하는 사용자에 대한 사용자 비밀키를 발급받을 수 있다. 사용자 비밀키를 발급받은 각 클라이언트 장치(120, 130, 140)는 발급받은 사용자 비밀키를 이용하여 사용자의 평문 데이터를 비트 단위로 암호화한 후, 각 클라이언트 장치(120, 130, 140)에 의해 선택된 임의의 정수를 이용하여 추가 암호화함으로써 암호문을 생성할 수 있다.On the other hand, each client device (120, 130, 140) may be issued a user secret key for the user using each client device (120, 130, 140) from the key information providing device (110). Each client device (120, 130, 140) that has been issued a user secret key encrypts the user's plaintext data in bits using the issued user secret key, and is then selected by each client device (120, 130, 140). The ciphertext can be generated by additional encryption using an arbitrary integer.

구체적으로, 각 클라이언트 장치(120, 130, 140)는 평문 데이터의 비트 열 중 각 비트 값에 대한 프리픽스(prefix) 비트 열 및 사용자 비밀키를 이용하여 평문 데이터를 비트 단위로 암호화할 수 있다. 이후, 각 클라이언트 장치(120, 130, 140)는 사용자 비밀키를 이용하여 암호화된 암호문을 임의의 정수를 이용하여 공개키 암호화 기반으로 추가 암호화할 수 있다.Specifically, each client device (120, 130, 140) may encrypt the plain text data in bit units by using a prefix bit string and a user secret key for each bit value among bit streams of the plain text data. Thereafter, each of the client devices 120, 130, and 140 may further encrypt the encrypted text encrypted using the user secret key based on public key encryption using an arbitrary integer.

한편, 상이한 사용자에 의해 생성된 암호문 사이의 비교를 위해 각 클라이언트 장치(120, 130, 140)는 키 정보 제공 장치(110)로부터 비교키를 발급받을 수 있다. 이후, 각 클라이언트 장치(120, 130, 140)는 상이한 사용자에 의해 생성된 암호문을 발급받은 비교키를 이용하여 암호화된 상태로 비교함으로써 각 암호문에 대한 평문 데이터 사이의 대소를 판단할 수 있다.Meanwhile, for comparison between ciphertexts generated by different users, each client device 120, 130, 140 may be issued a comparison key from the key information providing device 110. Thereafter, each of the client devices 120, 130, and 140 may compare the encrypted text generated by different users in an encrypted state using the issued comparison key to determine the size of the plaintext data for each encrypted text.

데이터베이스(150)는 각 클라이언트 장치(120, 130, 140)에 의해 생성된 암호문을 저장하고, 각 클라이언트 장치(120, 130, 140)의 요청에 따라 기 저장된 암호문을 각 클라이언트 장치(120, 130, 140)로 제공할 수 있다.The database 150 stores the ciphertext generated by each of the client devices 120, 130, and 140, and the pre-stored ciphertext according to the request of each client device 120, 130, 140. 140).

한편, 도 1에 도시된 순서 노출 암호화 시스템(100)에서 수행되는 순서 노출 암호화 기법의 구체적인 과정은 아래와 같이 구성될 수 있다.Meanwhile, a specific process of the sequence exposure encryption method performed in the sequence exposure encryption system 100 illustrated in FIG. 1 may be configured as follows.

셋업(setup)Setup

키 정보 제공 장치(110)는 보안 상수(Security Parameter) 1λ 및 시스템에 참여할 수 있는 사용자 수(N)을 입력받고, 공개 파라미터 및 각 사용자에 대한 마스터 비밀키를 생성할 수 있다. The key information providing device 110 may receive the security parameter 1 λ and the number of users N that can participate in the system, and generate a public parameter and a master secret key for each user.

구체적으로, 키 정보 제공 장치(110)는 각각 위수가 소수 p인 덧셈 군

Figure pat00147
Figure pat00148
, 위수가 소수 p인 곱셈 군
Figure pat00149
,
Figure pat00150
를 만족하는 겹선형(bilinear) 함수 e,
Figure pat00151
를 만족하는
Figure pat00152
의 생성원(generator)
Figure pat00153
,
Figure pat00154
를 만족하는
Figure pat00155
의 생성원
Figure pat00156
를 생성할 수 있다.Specifically, the key information providing device 110 is an addition group having a prime number p, respectively.
Figure pat00147
And
Figure pat00148
, Multiplication group with prime p
Figure pat00149
,
Figure pat00150
Bilinear function e,
Figure pat00151
Satisfying
Figure pat00152
Generator
Figure pat00153
,
Figure pat00154
Satisfying
Figure pat00155
Origin of
Figure pat00156
Can generate

이후, 키 정보 제공 장치(110)는 모든 사용자에 대해

Figure pat00157
(이때, j는 j∈[N]를 만족하는 사용자 인덱스,
Figure pat00158
)를 만족하는 임의의 정수
Figure pat00159
Figure pat00160
를 만족하는 임의의 정수
Figure pat00161
를 선택하여,
Figure pat00162
Figure pat00163
를 생성할 수 있다. Then, the key information providing device 110 is for all users
Figure pat00157
(In this case, j is a user index that satisfies j∈ [N],
Figure pat00158
Any integer that satisfies)
Figure pat00159
And
Figure pat00160
Any integer that satisfies
Figure pat00161
By selecting,
Figure pat00162
And
Figure pat00163
Can generate

이후, 키 정보 제공 장치(110)는 각 사용자에 대한 마스터 비밀키

Figure pat00164
와 공개 파라미터
Figure pat00165
를 출력할 수 있다. 이때, H는 임의의 비트 열을 덧셈 군 G로 맵핑시키는 해시 함수(hash function)로서
Figure pat00166
를 만족한다. Then, the key information providing device 110 is a master secret key for each user
Figure pat00164
And public parameters
Figure pat00165
Can output At this time, H is a hash function that maps an arbitrary bit sequence to the addition group G.
Figure pat00166
Is satisfied.

한편, 키 정보 제공 장치(110)는 공개 파라미터 PP는 공개하고, 마스터 비밀키 MK는 안전하게 저장할 수 있다.On the other hand, the key information providing device 110 may disclose the public parameter PP, and safely store the master secret key MK.

비밀키 발급Secret key issuance

키 정보 제공 장치(110)는 각 사용자에 의해 이용되는 클라이언트 장치(120, 130, 140)로 각 사용자의 사용자 비밀키

Figure pat00167
를 안전하게 발급한다.The key information providing device 110 is a client device 120, 130, 140 used by each user, and each user's user secret key
Figure pat00167
Issuing safely.

암호화encryption

키 정보 제공 장치(110)로부터 사용자 비밀키

Figure pat00168
를 발급받은 각 클라이언트 장치(120, 130, 140)는 사용자 비밀키
Figure pat00169
및 각 클라이언트 장치(120, 130, 140)에 의해 선택된 임의의 정수를 이용하여 평문 데이터를 암호화할 수 있다.User secret key from key information providing device 110
Figure pat00168
Each client device (120, 130, 140) issuing a user secret key
Figure pat00169
And random integers selected by each of the client devices 120, 130, 140.

구체적으로, 각 클라이언트 장치(120, 130, 140)는 평문 데이터의 비트 열 중 각 비트 값에 대한 프리픽스 비트 열 및 사용자 비밀키

Figure pat00170
를 이용하여 평문 데이터를 비트 단위로 암호화할 수 있다. 보다 구체적으로, 각 클라이언트 장치(120, 130, 140)는 평문 데이터
Figure pat00171
에 대해 i(이때, i∈[n])번째 비트마다
Figure pat00172
Figure pat00173
를 계산하여, 암호문
Figure pat00174
을 생성할 수 있다. 이때, prefix(m, i-1)은 m의 i번째 비트 값(xi)에 대한 프리픽스 비트 열(즉, prefix(m, i-1) = x1x2…xi-1)을 나타낸다. 또한,
Figure pat00175
는 두 비트 열 사이의 연결(concatenation)을 의미한다.Specifically, each client device (120, 130, 140) is a prefix bit string and a user secret key for each bit value among bit streams of plain text data
Figure pat00170
The plaintext data can be encrypted in bits by using. More specifically, each client device (120, 130, 140) is plain text data
Figure pat00171
For every i (where i, [n]) bits
Figure pat00172
And
Figure pat00173
Calculate the ciphertext
Figure pat00174
You can create At this time, prefix (m, i-1) represents a prefix bit string (i.e., prefix (m, i-1) = x 1 x 2 ... x i-1 ) for the i- th bit value (x i ) of m. . In addition,
Figure pat00175
Means a concatenation between two bit strings.

이후, 각 클라이언트 장치(120, 130, 140)는

Figure pat00176
를 만족하는 임의의 정수 t를 선택한 후, 선택된 임의의 정수 t를 이용하여 암호문
Figure pat00177
를 공개키 암호화 기반으로 암호화할 수 있다. 구체적으로, 각 클라이언트 장치(120, 130, 140)는
Figure pat00178
(이때,
Figure pat00179
)에 대해
Figure pat00180
Figure pat00181
를 계산하여 암호문
Figure pat00182
를 생성할 수 있다. Then, each client device (120, 130, 140)
Figure pat00176
After selecting an arbitrary integer t that satisfies the
Figure pat00177
Can be encrypted based on public key encryption. Specifically, each client device (120, 130, 140)
Figure pat00178
(At this time,
Figure pat00179
)About
Figure pat00180
Wow
Figure pat00181
Calculate the ciphertext
Figure pat00182
Can generate

비교키 생성Comparison key generation

키 정보 제공 장치(110)는

Figure pat00183
를 만족하는 임의의 정수 r을 선택한 후, 사용자 인덱스가 l (즉, j=l )인 제1 사용자의 사용자 비밀키
Figure pat00184
및 사용자 인덱스가 k (즉, j=k)인 제2 사용자의 사용자 비밀키
Figure pat00185
를 이용하여 비교키
Figure pat00186
를 생성할 수 있다.Key information providing device 110 is
Figure pat00183
After selecting an arbitrary integer r satisfying, the user secret key of the first user whose user index is l (that is, j = l)
Figure pat00184
And a user secret key of the second user whose user index is k (ie, j = k)
Figure pat00185
Use comparison key
Figure pat00186
Can generate

이때,

Figure pat00187
는 아래의 수학식 1 및 2에 의해 생성될 수 있다.At this time,
Figure pat00187
Can be generated by Equations 1 and 2 below.

[수학식 1][Equation 1]

Figure pat00188
Figure pat00188

[수학식 2][Equation 2]

Figure pat00189
Figure pat00189

또한,

Figure pat00190
는 아래의 수학식 3 및 4에 의해 생성될 수 있다.In addition,
Figure pat00190
Can be generated by Equations 3 and 4 below.

[수학식 3][Equation 3]

Figure pat00191
Figure pat00191

[수학식 4][Equation 4]

Figure pat00192
Figure pat00192

한편, 비교키가 생성된 경우, 키 정보 제공 장치(110)는 생성된 비교키

Figure pat00193
를 허가된 사용자에 의해 이용되는 클라이언트 장치(120, 130, 140)로 안전하게 발급할 수 있다. On the other hand, when the comparison key is generated, the key information providing device 110 generates the comparison key
Figure pat00193
Can be safely issued to client devices 120, 130, and 140 used by authorized users.

암호문 비교Ciphertext comparison

비교키

Figure pat00194
를 발급받은 클라이언트 장치(120, 130, 140)는 비교키
Figure pat00195
를 이용하여 제1 사용자의 암호문
Figure pat00196
과 제2 사용자의 암호문
Figure pat00197
을 암호화된 상태로 비교함으로써, 각 암호문에 대한 평문 데이터의 대소를 판단할 수 있다.Comparison key
Figure pat00194
The client device (120, 130, 140) issuing the comparison key
Figure pat00195
Using the first user's ciphertext
Figure pat00196
And second user's ciphertext
Figure pat00197
By comparing in an encrypted state, it is possible to determine the size of plaintext data for each ciphertext.

구체적으로, 클라이언트 장치(120, 130, 140)는 각 암호문의 최상위 비트(즉, i=1)부터

Figure pat00198
Figure pat00199
를 비교하여,
Figure pat00200
인 i의 최소 값 i*가 존재하는지 여부를 판단할 수 있다.Specifically, the client device (120, 130, 140) from the most significant bit of each ciphertext (i.e., i = 1)
Figure pat00198
Wow
Figure pat00199
By comparing,
Figure pat00200
It may be determined whether or not the minimum value i * of phosphorus i exists.

만약, i*가 존재하는 경우, 클라이언트 장치(120, 130, 140)는

Figure pat00201
Figure pat00202
가 일치하는지 여부를 판단할 수 있다. If i * is present, the client devices 120, 130, 140
Figure pat00201
Wow
Figure pat00202
It can be determined whether the match.

이때,

Figure pat00203
Figure pat00204
가 일치하는 경우, 클라이언트 장치(120, 130, 140)는 암호문
Figure pat00205
에 대한 평문 데이터 m이 암호문
Figure pat00206
에 대한 평문 데이터 m'보다 작은 것으로 판단할 수 있다.At this time,
Figure pat00203
Wow
Figure pat00204
If is matched, the client device (120, 130, 140) is the ciphertext
Figure pat00205
The plaintext data for m is the ciphertext
Figure pat00206
It can be judged to be smaller than the plain text data m 'for.

반면,

Figure pat00207
Figure pat00208
가 일치하지 않거나 i*가 존재하지 않는 경우, 클라이언트 장치(120, 130, 140)는 m이 m'보다 크거나 같은 것으로 판단할 수 있다.On the other hand,
Figure pat00207
Wow
Figure pat00208
When does not match or i * does not exist, the client devices 120, 130, and 140 may determine that m is greater than or equal to m '.

도 2는 본 발명의 일 실시예에 따른 순서 노출 암호화 방법을 설명하기 위한 순서도이다. 2 is a flowchart illustrating a sequence exposure encryption method according to an embodiment of the present invention.

도 2에 도시된 방법은 예를 들어, 도 1에 도시된 순서 노출 암호화 시스템(100)에 의하여 수행될 수 있다. The method illustrated in FIG. 2 may be performed, for example, by the sequence exposure encryption system 100 illustrated in FIG. 1.

도 2를 참조하면, 우선 키 정보 생성 장치(110)는 상술한 셋업(set up) 과정을 통해 순서 노출 암호화를 위한 공개 파라미터 및 각 사용자에 대한 마스터 비밀키를 생성한다(201).Referring to FIG. 2, first, the key information generating device 110 generates public parameters for sequence exposure encryption and a master secret key for each user through the above-described set up process (201).

이후, 키 정보 제공 장치(110)는 제1 클라이언트 장치(120)로 사용자 인덱스가 l인 제1 사용자의 사용자 비밀키

Figure pat00209
를 발급한다(202).Thereafter, the key information providing device 110 is the first client device 120, the user secret key of the first user whose user index is l
Figure pat00209
Issue (202).

비밀키

Figure pat00210
를 발급받은 제1 클라이언트 장치(120)는 제1 사용자에 의해 생성된 제1 평문 데이터에 대한 암호문
Figure pat00211
을 생성한 후(203), 생성된 암호문
Figure pat00212
을 데이터베이스(150)에 저장한다(204). 이때, 암호문
Figure pat00213
은 상술한 암호화 과정을 통해 생성될 수 있다.Secret key
Figure pat00210
The first client device 120 issuing the ciphertext for the first plaintext data generated by the first user
Figure pat00211
After generating (203), the generated ciphertext
Figure pat00212
Is stored in the database 150 (204). At this time, the ciphertext
Figure pat00213
Can be generated through the encryption process described above.

이후, 키 정보 제공 장치(110)는 제2 클라이언트 장치(130)로 사용자 인덱스가 k인 제2 사용자의 사용자 비밀키

Figure pat00214
를 발급한다(205).Thereafter, the key information providing device 110 is the second client device 130, the user secret key of the second user whose user index is k
Figure pat00214
Issuance (205).

비밀키

Figure pat00215
를 발급받은 제2 클라이언트 장치(130)는 제2 사용자에 의해 생성된 제2 평문 데이터에 대한 암호문
Figure pat00216
을 생성한 후(206), 생성된 암호문
Figure pat00217
을 데이터베이스(150)에 저장한다(207). 이때, 암호문
Figure pat00218
은 상술한 암호화 과정을 통해 생성될 수 있다.Secret key
Figure pat00215
The second client device 130 issuing the ciphertext for the second plaintext data generated by the second user
Figure pat00216
After generating (206), the generated ciphertext
Figure pat00217
Is stored in the database 150 (207). At this time, the ciphertext
Figure pat00218
Can be generated through the encryption process described above.

이후, 제3 클라이언트 장치(140)는 데이터베이스(150)에 저장된 암호문

Figure pat00219
Figure pat00220
를 획득하고(208), 키 정보 제공 장치(110)로 암호문
Figure pat00221
Figure pat00222
의 비교를 위한 비교키
Figure pat00223
의 발급을 요청한다(209).Thereafter, the third client device 140 stores the ciphertext stored in the database 150
Figure pat00219
And
Figure pat00220
Acquiring (208), the key information providing device 110 to the ciphertext
Figure pat00221
And
Figure pat00222
Comparison key for comparison
Figure pat00223
Request issuance of (209).

이후, 키 정보 제공 장치(110)는 비교키

Figure pat00224
를 생성한 후(210), 생성된 비교키
Figure pat00225
를 제3 클라이언트 장치(140)로 발급한다(211). 이때, 비교키
Figure pat00226
는 상술한 비교키 생성 과정을 통해 생성될 수 있다.Then, the key information providing device 110 is a comparison key
Figure pat00224
After generating (210), the generated comparison key
Figure pat00225
To the third client device 140 (211). At this time, the comparison key
Figure pat00226
Can be generated through the comparison key generation process described above.

이후, 제3 클라이언트 장치(140)는 비교키

Figure pat00227
를 이용하여 암호문
Figure pat00228
Figure pat00229
를 암호화된 상태로 비교함으로써, 제1 평문 데이터와 제2 평문 데이터 사이의 대소를 판단한다(212). 이때, 대소 판단은 상술한 암호문 비교 과정을 통해 수행될 수 있다.Then, the third client device 140 is a comparison key
Figure pat00227
Use ciphertext
Figure pat00228
And
Figure pat00229
Is compared in an encrypted state to determine the magnitude between the first plaintext data and the second plaintext data (212). At this time, the size determination may be performed through the cipher text comparison process described above.

한편, 도 2에 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.Meanwhile, in the flowchart illustrated in FIG. 2, the method is described by dividing the method into a plurality of steps, but at least some of the steps are performed by changing the order, combined with other steps, omitted, or divided into detailed steps. Alternatively, one or more steps not shown may be performed.

도 3은 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.3 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)에 포함되는 하나 이상의 컴포넌트(예를 들어, 키 정보 제공 장치(110), 제1 클라이언트 장치(120), 제2 클라이언트 장치(130), 제3 클라이언트 장치(140))일 수 있다.The illustrated computing environment 10 includes a computing device 12. In one embodiment, computing device 12 may include one or more components (eg, key information providing device 110, first client device 120, and second client device) included in sequence exposure encryption system 100 130), the third client device 140.

컴퓨팅 장치(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 can 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 any suitable combination 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 in the computing device 12 or connected to the computing device 12 as a separate device distinct from the computing device 12. It might be.

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.The present invention has been described in detail through exemplary embodiments above, but 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 rights of the present invention should not be limited to the described embodiments, and 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 클라이언트 장치
130: 제2 클라이언트 장치
140: 제3 클라이언트 장치
150: 데이터베이스
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: sequence exposure encryption system
110: key information providing device
120: first client device
130: second client device
140: third client device
150: database

Claims (20)

하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
사용자에 대한 사용자 비밀키를 획득하는 단계;
상기 사용자 비밀키를 이용하여 평문 데이터를 비트 단위로 암호화하여 제1 암호문을 생성하는 단계; 및
임의의 정수를 이용하여 상기 제1 암호문을 공개키 암호화 기반으로 암호화하여 제2 암호문을 생성하는 단계를 포함하는, 방법.
One or more processors, and
A method performed in a computing device having a memory for storing one or more programs executed by the one or more processors,
Obtaining a user secret key for the user;
Generating a first ciphertext by encrypting the plaintext data in bit units using the user secret key; And
And generating a second ciphertext by encrypting the first ciphertext based on public key encryption using an arbitrary integer.
청구항 1에 있어서,
상기 제1 암호문을 생성하는 단계는, 상기 평문 데이터의 각 비트 값에 대한 프리픽스(prefix) 비트 열 및 상기 사용자 비밀키를 이용하여 상기 평문 데이터를 비트 단위로 암호화하는, 방법.
The method according to claim 1,
The generating of the first ciphertext may include encrypting the plaintext data in bit units using a prefix bit string for each bit value of the plaintext data and the user secret key.
청구항 2에 있어서,
상기 제1 암호문은, 아래의 수학식 1 내지 3
[수학식 1]
Figure pat00230

[수학식 2]
Figure pat00231

[수학식 3]
Figure pat00232

(이때,
Figure pat00233
는 상기 1 암호문, m은
Figure pat00234
인 상기 제1 평문 데이터,
Figure pat00235
는 상기 제1 평문 데이터의 i 번째 비트 값,
Figure pat00236
는 상기 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00237
는 상기 사용자 비밀키, H는
Figure pat00238
를 만족하는 해시 함수,
Figure pat00239
는 위수가 소수 p인 덧셈 군)
을 이용하여 생성되는, 방법.
The method according to claim 2,
The first ciphertext, the equations 1 to 3 below
[Equation 1]
Figure pat00230

[Equation 2]
Figure pat00231

[Equation 3]
Figure pat00232

(At this time,
Figure pat00233
Is 1 ciphertext, m is
Figure pat00234
The first plaintext data,
Figure pat00235
I is the i-th bit value of the first plain text data,
Figure pat00236
Is a prefix bit column for the i-th bit value,
Figure pat00237
Is the user secret key, H is
Figure pat00238
Hash function that satisfies,
Figure pat00239
Is an addition group with prime p)
Method, which is generated using.
청구항 3에 있어서,
상기 제2 암호문은, 아래의 수학식 4 내지 6
[수학식 4]
Figure pat00240

[수학식 5]
Figure pat00241

[수학식 6]
Figure pat00242

(이때,
Figure pat00243
는 상기 제2 암호문, g는 상기 덧셈 군 G의 생성원(generator), t는
Figure pat00244
를 만족하는 상기 임의의 정수,
Figure pat00245
Figure pat00246
를 만족하는 공개 파라미터,
Figure pat00247
Figure pat00248
를 만족하는 임의의 정수)
을 이용하여 생성되는, 방법.
The method according to claim 3,
The second ciphertext, the equations 4 to 6 below
[Equation 4]
Figure pat00240

[Equation 5]
Figure pat00241

[Equation 6]
Figure pat00242

(At this time,
Figure pat00243
Is the second ciphertext, g is the generator of the addition group G, t is
Figure pat00244
Any of the above integers,
Figure pat00245
The
Figure pat00246
Public parameter that satisfies,
Figure pat00247
The
Figure pat00248
Any integer satisfying)
Method, which is generated using.
하나 이상의 프로세서;
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
사용자에 대한 사용자 비밀키를 획득하는 단계;
상기 사용자 비밀키를 이용하여 평문 데이터를 비트 단위로 암호화하여 제1 암호문을 생성하는 단계; 및
임의의 정수를 이용하여 상기 제1 암호문을 공개키 암호화 기반으로 암호화하여 제2 암호문을 생성하는 단계를 실행하기 위한 명령어들을 포함하는, 장치.
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 program,
Obtaining a user secret key for the user;
Generating a first ciphertext by encrypting the plaintext data in bit units using the user secret key; And
And instructions for executing a step of generating a second ciphertext by encrypting the first ciphertext based on public key encryption using an arbitrary integer.
청구항 5에 있어서,
상기 제1 암호문을 생성하는 단계는, 상기 평문 데이터의 각 비트 값에 대한 프리픽스(prefix) 비트 열 및 상기 사용자 비밀키를 이용하여 상기 평문 데이터를 비트 단위로 암호화하는, 장치.
The method according to claim 5,
The generating of the first ciphertext comprises encrypting the plaintext data in bit units using a prefix bit string for each bit value of the plaintext data and the user secret key.
청구항 6에 있어서,
상기 제1 암호문은, 아래의 수학식 1 내지 3
[수학식 1]
Figure pat00249

[수학식 2]
Figure pat00250

[수학식 3]
Figure pat00251

(이때,
Figure pat00252
는 상기 1 암호문, m은
Figure pat00253
인 상기 제1 평문 데이터,
Figure pat00254
는 상기 제1 평문 데이터의 i 번째 비트 값,
Figure pat00255
는 상기 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00256
는 상기 사용자 비밀키, H는
Figure pat00257
를 만족하는 해시 함수,
Figure pat00258
는 위수가 소수 p인 덧셈 군)
을 이용하여 생성되는, 장치.
The method according to claim 6,
The first ciphertext, the equations 1 to 3 below
[Equation 1]
Figure pat00249

[Equation 2]
Figure pat00250

[Equation 3]
Figure pat00251

(At this time,
Figure pat00252
Is 1 ciphertext, m is
Figure pat00253
The first plaintext data,
Figure pat00254
I is the i-th bit value of the first plain text data,
Figure pat00255
Is a prefix bit column for the i-th bit value,
Figure pat00256
Is the user secret key, H is
Figure pat00257
Hash function that satisfies,
Figure pat00258
Is an addition group with prime p)
Generated using the device.
청구항 7에 있어서,
상기 제2 암호문은, 아래의 수학식 4 내지 6
[수학식 4]
Figure pat00259

[수학식 5]
Figure pat00260

[수학식 6]
Figure pat00261

(이때,
Figure pat00262
는 상기 제2 암호문, g는 상기 덧셈 군 G의 생성원(generator), t는
Figure pat00263
를 만족하는 상기 임의의 정수,
Figure pat00264
Figure pat00265
를 만족하는 공개 파라미터,
Figure pat00266
Figure pat00267
를 만족하는 임의의 정수)
을 이용하여 생성되는, 장치.
The method according to claim 7,
The second ciphertext, the equations 4 to 6 below
[Equation 4]
Figure pat00259

[Equation 5]
Figure pat00260

[Equation 6]
Figure pat00261

(At this time,
Figure pat00262
Is the second ciphertext, g is the generator of the addition group G, t is
Figure pat00263
Any of the above integers,
Figure pat00264
The
Figure pat00265
Public parameter that satisfies,
Figure pat00266
The
Figure pat00267
Any integer satisfying)
Generated using the device.
하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
제1 사용자 비밀키를 이용하여 제1 평문 데이터를 비트 단위로 암호화한 제1 암호문을 제1 임의의 정수를 이용하여 공개키 암호화 기반으로 암호화한 제2 암호문, 및 제2 사용자 비밀키를 이용하여 제2 평문 데이터를 비트 단위로 암호화한 제3 암호문을 제2 임의의 정수를 이용하여 상기 공개키 암호화 기반으로 암호화한 제4 암호문을 획득하는 단계;
상기 제1 사용자 비밀키 및 상기 제2 사용자 비밀키를 이용하여 생성된 비교키를 획득하는 단계; 및
상기 비교키를 이용하여 제2 암호문 및 상기 제4 암호문을 암호화된 상태에서 비교하여, 상기 제1 평문 데이터와 상기 제2 평문 데이터 사이의 대소를 판단하는 단계를 포함하는, 방법.
One or more processors, and
A method performed in a computing device having a memory for storing one or more programs executed by the one or more processors,
The first ciphertext that encrypts the first plaintext data in bit units using the first user secret key, uses the second ciphertext that is encrypted based on public key encryption using the first arbitrary integer, and uses the second user secret key. Acquiring a fourth ciphertext that is encrypted based on the public key encryption using a second arbitrary integer as a third ciphertext that encrypts second plaintext data in bit units;
Obtaining a comparison key generated using the first user secret key and the second user secret key; And
And comparing the second ciphertext and the fourth ciphertext in an encrypted state using the comparison key, and determining a size between the first plaintext data and the second plaintext data.
청구항 9에 있어서,
상기 제1 암호문은, 상기 제1 평문 데이터의 각 비트 값에 대한 프리픽스(prefix) 비트 열 및 상기 제1 사용자 비밀키를 이용하여 상기 제1 평문 데이터를 비트 단위로 암호화하여 생성되고,
상기 제3 암호문은, 상기 제2 평문 데이터의 각 비트 값에 대한 프리픽스 비트 열 및 상기 제2 사용자 비밀키를 이용하여 상기 제2 평문 데이터를 비트 단위로 암호화하여 생성되는, 방법.
The method according to claim 9,
The first ciphertext is generated by encrypting the first plaintext data in bit units using a prefix bit string for each bit value of the first plaintext data and the first user secret key,
The third ciphertext is generated by encrypting the second plaintext data in bit units using a prefix bit string for each bit value of the second plaintext data and the second user secret key.
청구항 10에 있어서,
상기 제1 암호문은, 아래의 수학식 1 내지 3
[수학식 1]
Figure pat00268

[수학식 2]
Figure pat00269

[수학식 3]
Figure pat00270

(이때,
Figure pat00271
는 상기 1 암호문, m은
Figure pat00272
인 상기 제1 평문 데이터,
Figure pat00273
는 상기 제1 평문 데이터의 i 번째 비트 값,
Figure pat00274
는 상기 제1 평문 데이터의 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00275
는 상기 제1 사용자 비밀키, H는
Figure pat00276
를 만족하는 해시 함수,
Figure pat00277
는 위수가 소수 p인 덧셈 군)
을 이용하여 생성되고,
상기 제3 암호문은, 아래의 수학식 4 내지 6
[수학식 4]
Figure pat00278

[수학식 5]
Figure pat00279

[수학식 6]
Figure pat00280

(이때,
Figure pat00281
는 상기 제3 암호문, m'은
Figure pat00282
인 상기 제2 평문 데이터,
Figure pat00283
는 상기 제2 평문 데이터의 i 번째 비트 값,
Figure pat00284
는 상기 제2 평문 데이터의 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00285
는 상기 제2 사용자 비밀키)
을 이용하여 생성되는, 방법.
The method according to claim 10,
The first ciphertext, the equations 1 to 3 below
[Equation 1]
Figure pat00268

[Equation 2]
Figure pat00269

[Equation 3]
Figure pat00270

(At this time,
Figure pat00271
Is 1 ciphertext, m is
Figure pat00272
The first plaintext data,
Figure pat00273
I is the i-th bit value of the first plain text data,
Figure pat00274
Is a prefix bit column for the i-th bit value of the first plain text data,
Figure pat00275
Is the first user secret key, H is
Figure pat00276
Hash function that satisfies,
Figure pat00277
Is an addition group with prime p)
Is created using
The third ciphertext, the equations 4 to 6 below
[Equation 4]
Figure pat00278

[Equation 5]
Figure pat00279

[Equation 6]
Figure pat00280

(At this time,
Figure pat00281
Is the third ciphertext, m 'is
Figure pat00282
The second plaintext data,
Figure pat00283
Is the i-th bit value of the second plain text data,
Figure pat00284
Is a prefix bit column for the i-th bit value of the second plain text data,
Figure pat00285
Is the second user secret key)
Method, which is generated using.
청구항 11에 있어서,
상기 제2 암호문은, 아래의 수학식 7 내지 9
[수학식 7]
Figure pat00286

[수학식 8]
Figure pat00287

[수학식 9]
Figure pat00288

(이때,
Figure pat00289
는 상기 제2 암호문, g는 상기 덧셈 군
Figure pat00290
의 생성원(generator), t는
Figure pat00291
를 만족하는 상기 제1 임의의 정수,
Figure pat00292
Figure pat00293
를 만족하는 공개 파라미터,
Figure pat00294
Figure pat00295
를 만족하는 임의의 정수)
를 이용하여 생성되고,
상기 제4 암호문은, 아래의 수학식 10 내지 12
[수학식 10]
Figure pat00296

[수학식 11]
Figure pat00297

[수학식 12]
Figure pat00298

(이때,
Figure pat00299
는 상기 제4 암호문, t'는
Figure pat00300
를 만족하는 상기 제2 임의의 정수,
Figure pat00301
Figure pat00302
를 만족하는 공개 파라미터,
Figure pat00303
Figure pat00304
를 만족하는 임의의 정수)
를 이용하여 생성되는, 방법.
The method according to claim 11,
The second ciphertext, the equations 7 to 9 below
[Equation 7]
Figure pat00286

[Equation 8]
Figure pat00287

[Equation 9]
Figure pat00288

(At this time,
Figure pat00289
Is the second ciphertext, g is the addition group
Figure pat00290
The generator of, t is
Figure pat00291
The first arbitrary integer satisfying,
Figure pat00292
The
Figure pat00293
Public parameter that satisfies,
Figure pat00294
The
Figure pat00295
Any integer satisfying)
Is created using
The fourth ciphertext, the equations 10 to 12 below
[Equation 10]
Figure pat00296

[Equation 11]
Figure pat00297

[Equation 12]
Figure pat00298

(At this time,
Figure pat00299
Is the fourth ciphertext, t 'is
Figure pat00300
The second arbitrary integer satisfying,
Figure pat00301
The
Figure pat00302
Public parameter that satisfies,
Figure pat00303
The
Figure pat00304
Any integer satisfying)
Generated using the method.
청구항 12에 있어서,
상기 비교키는, 아래의 수학식 13 내지 17
[수학식 13]
Figure pat00305

[수학식 14]
Figure pat00306

[수학식 15]
Figure pat00307

[수학식 16]
Figure pat00308

[수학식 17]
Figure pat00309

(이때,
Figure pat00310
는 상기 비교키,
Figure pat00311
는 위수가 소수 p인 덧셈 군
Figure pat00312
의 생성원, r은
Figure pat00313
를 만족하는 임의의 정수)
을 이용하여 생성되는, 방법.
The method according to claim 12,
The comparison key, the equations 13 to 17 below
[Equation 13]
Figure pat00305

[Equation 14]
Figure pat00306

[Equation 15]
Figure pat00307

[Equation 16]
Figure pat00308

[Equation 17]
Figure pat00309

(At this time,
Figure pat00310
Is the comparison key,
Figure pat00311
Is an addition group with prime p
Figure pat00312
The origin of, r is
Figure pat00313
Any integer satisfying)
Method, which is generated using.
청구항 13에 있어서,
상기 판단하는 단계는,
Figure pat00314
Figure pat00315
(이때, e는
Figure pat00316
를 만족하는 겹선형(bilinear) 함수,
Figure pat00317
는 위수가 소수 p인 곱셈 군)가 일치하지 않는 i의 최소 값 i*가 존재하는지 여부를 판단하는 단계; 및
상기 최소 값 i*이 존재하고,
Figure pat00318
Figure pat00319
가 일치하는 경우, 상기 제1 평문 데이터가 상기 제2 평문 데이터보다 작은 것으로 판단하고,
Figure pat00320
Figure pat00321
가 일치하지 않거나 상기 최소 값 i*이 존재하지 않는 경우, 상기 제1 평문 데이터가 상기 제2 평문 데이터보다 같거나 큰 것으로 판단하고 단계를 포함하는, 방법.
The method according to claim 13,
The determining step,
Figure pat00314
Wow
Figure pat00315
(At this time, e is
Figure pat00316
Bilinear function that satisfies,
Figure pat00317
Determining whether there is a minimum value i * of i in which the odds p does not match; And
The minimum value i * is present,
Figure pat00318
Wow
Figure pat00319
When is matched, it is determined that the first plaintext data is smaller than the second plaintext data,
Figure pat00320
Wow
Figure pat00321
And determining that the first plaintext data is equal to or greater than the second plaintext data if is not matched or the minimum value i * does not exist.
하나 이상의 프로세서;
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
제1 사용자 비밀키를 이용하여 제1 평문 데이터를 비트 단위로 암호화한 제1 암호문을 제1 임의의 정수를 이용하여 공개키 암호화 기반으로 암호화한 제2 암호문, 및 제2 사용자 비밀키를 이용하여 제2 평문 데이터를 비트 단위로 암호화한 제3 암호문을 제2 임의의 정수를 이용하여 상기 공개키 암호화 기반으로 암호화한 제4 암호문을 획득하는 단계;
상기 제1 사용자 비밀키 및 상기 제2 사용자 비밀키를 이용하여 생성된 비교키를 획득하는 단계; 및
상기 비교키를 이용하여 제2 암호문 및 상기 제4 암호문을 암호화된 상태에서 비교하여, 상기 제1 평문 데이터와 상기 제2 평문 데이터 사이의 대소를 판단하는 단계를 실행하기 위한 명령어들을 포함하는, 장치.
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 program,
The first ciphertext that encrypts the first plaintext data in bit units using the first user secret key, uses the second ciphertext that is encrypted based on public key encryption using the first arbitrary integer, and uses the second user secret key. Acquiring a fourth ciphertext that is encrypted based on the public key encryption using a second arbitrary integer as a third ciphertext that encrypts second plaintext data in bit units;
Obtaining a comparison key generated using the first user secret key and the second user secret key; And
And comparing the second ciphertext and the fourth ciphertext in an encrypted state using the comparison key, and comprising instructions for executing a step of determining a case between the first plaintext data and the second plaintext data. .
청구항 15에 있어서,
상기 제1 암호문은, 상기 제1 평문 데이터의 각 비트 값에 대한 프리픽스(prefix) 비트 열 및 상기 제1 사용자 비밀키를 이용하여 상기 제1 평문 데이터를 비트 단위로 암호화하여 생성되고,
상기 제3 암호문은, 상기 제2 평문 데이터의 각 비트 값에 대한 프리픽스 비트 열 및 상기 제2 사용자 비밀키를 이용하여 상기 제2 평문 데이터를 비트 단위로 암호화하여 생성되는, 장치.
The method according to claim 15,
The first ciphertext is generated by encrypting the first plaintext data in bit units using a prefix bit string for each bit value of the first plaintext data and the first user secret key,
The third ciphertext is generated by encrypting the second plaintext data in bit units using a prefix bit string for each bit value of the second plaintext data and the second user secret key.
청구항 16에 있어서,
상기 제1 암호문은, 아래의 수학식 1 내지 3
[수학식 1]
Figure pat00322

[수학식 2]
Figure pat00323

[수학식 3]
Figure pat00324

(이때,
Figure pat00325
는 상기 1 암호문, m은
Figure pat00326
인 상기 제1 평문 데이터,
Figure pat00327
는 상기 제1 평문 데이터의 i 번째 비트 값,
Figure pat00328
는 상기 제1 평문 데이터의 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00329
는 상기 제1 사용자 비밀키, H는
Figure pat00330
를 만족하는 해시 함수,
Figure pat00331
는 위수가 소수 p인 덧셈 군)
을 이용하여 생성되고,
상기 제3 암호문은, 아래의 수학식 4 내지 6
[수학식 4]
Figure pat00332

[수학식 5]
Figure pat00333

[수학식 6]
Figure pat00334

(이때,
Figure pat00335
는 상기 제3 암호문, m'은
Figure pat00336
인 상기 제2 평문 데이터,
Figure pat00337
는 상기 제2 평문 데이터의 i 번째 비트 값,
Figure pat00338
는 상기 제2 평문 데이터의 i 번째 비트 값에 대한 프리픽스 비트 열,
Figure pat00339
는 상기 제2 사용자 비밀키)
을 이용하여 생성되는, 장치.
The method according to claim 16,
The first ciphertext, the equations 1 to 3 below
[Equation 1]
Figure pat00322

[Equation 2]
Figure pat00323

[Equation 3]
Figure pat00324

(At this time,
Figure pat00325
Is 1 ciphertext, m is
Figure pat00326
The first plaintext data,
Figure pat00327
I is the i-th bit value of the first plain text data,
Figure pat00328
Is a prefix bit column for the i-th bit value of the first plain text data,
Figure pat00329
Is the first user secret key, H is
Figure pat00330
Hash function that satisfies,
Figure pat00331
Is an addition group with prime p)
Is created using
The third ciphertext, the equations 4 to 6 below
[Equation 4]
Figure pat00332

[Equation 5]
Figure pat00333

[Equation 6]
Figure pat00334

(At this time,
Figure pat00335
Is the third ciphertext, m 'is
Figure pat00336
The second plaintext data,
Figure pat00337
Is the i-th bit value of the second plain text data,
Figure pat00338
Is a prefix bit column for the i-th bit value of the second plain text data,
Figure pat00339
Is the second user secret key)
Generated using the device.
청구항 17에 있어서,
상기 제2 암호문은, 아래의 수학식 7 내지 9
[수학식 7]
Figure pat00340

[수학식 8]
Figure pat00341

[수학식 9]
Figure pat00342

(이때,
Figure pat00343
는 상기 제2 암호문, g는 상기 덧셈 군
Figure pat00344
의 생성원(generator), t는
Figure pat00345
를 만족하는 상기 제1 임의의 정수,
Figure pat00346
Figure pat00347
를 만족하는 공개 파라미터,
Figure pat00348
Figure pat00349
를 만족하는 임의의 정수)
를 이용하여 생성되고,
상기 제4 암호문은, 아래의 수학식 10 내지 12
[수학식 10]
Figure pat00350

[수학식 11]
Figure pat00351

[수학식 12]
Figure pat00352

(이때,
Figure pat00353
는 상기 제4 암호문, t'는
Figure pat00354
를 만족하는 상기 제2 임의의 정수,
Figure pat00355
Figure pat00356
를 만족하는 공개 파라미터,
Figure pat00357
Figure pat00358
를 만족하는 임의의 정수)
를 이용하여 생성되는, 장치.
The method according to claim 17,
The second ciphertext, the equations 7 to 9 below
[Equation 7]
Figure pat00340

[Equation 8]
Figure pat00341

[Equation 9]
Figure pat00342

(At this time,
Figure pat00343
Is the second ciphertext, g is the addition group
Figure pat00344
The generator of, t is
Figure pat00345
The first arbitrary integer satisfying,
Figure pat00346
The
Figure pat00347
Public parameter that satisfies,
Figure pat00348
The
Figure pat00349
Any integer satisfying)
Is created using
The fourth ciphertext, the equations 10 to 12 below
[Equation 10]
Figure pat00350

[Equation 11]
Figure pat00351

[Equation 12]
Figure pat00352

(At this time,
Figure pat00353
Is the fourth ciphertext, t 'is
Figure pat00354
The second arbitrary integer satisfying,
Figure pat00355
The
Figure pat00356
Public parameter that satisfies,
Figure pat00357
The
Figure pat00358
Any integer satisfying)
Generated using a device.
청구항 18에 있어서,
상기 비교키는, 아래의 수학식 13 내지 17
[수학식 13]
Figure pat00359

[수학식 14]
Figure pat00360

[수학식 15]
Figure pat00361

[수학식 16]
Figure pat00362

[수학식 17]
Figure pat00363

(이때,
Figure pat00364
는 상기 비교키,
Figure pat00365
는 위수가 소수 p인 덧셈 군
Figure pat00366
의 생성원, r은
Figure pat00367
를 만족하는 임의의 정수)
을 이용하여 생성되는, 장치.
The method according to claim 18,
The comparison key, the equations 13 to 17 below
[Equation 13]
Figure pat00359

[Equation 14]
Figure pat00360

[Equation 15]
Figure pat00361

[Equation 16]
Figure pat00362

[Equation 17]
Figure pat00363

(At this time,
Figure pat00364
Is the comparison key,
Figure pat00365
Is an addition group with prime p
Figure pat00366
The origin of, r is
Figure pat00367
Any integer satisfying)
Generated using the device.
청구항 19에 있어서,
상기 판단하는 단계는,
Figure pat00368
Figure pat00369
(이때, e는
Figure pat00370
를 만족하는 겹선형(bilinear) 함수,
Figure pat00371
는 위수가 소수 p인 곱셈 군)가 일치하지 않는 i의 최소 값 i*가 존재하는지 여부를 판단하는 단계; 및
상기 최소 값 i*이 존재하고,
Figure pat00372
Figure pat00373
가 일치하는 경우, 상기 제1 평문 데이터가 상기 제2 평문 데이터보다 작은 것으로 판단하고,
Figure pat00374
Figure pat00375
가 일치하지 않거나 상기 최소 값 i*이 존재하지 않는 경우, 상기 제1 평문 데이터가 상기 제2 평문 데이터보다 같거나 큰 것으로 판단하고 단계를 포함하는, 장치.
The method according to claim 19,
The determining step,
Figure pat00368
Wow
Figure pat00369
(At this time, e is
Figure pat00370
Bilinear function that satisfies,
Figure pat00371
Determining whether there is a minimum value i * of i in which the odds p does not match; And
The minimum value i * is present,
Figure pat00372
Wow
Figure pat00373
When is matched, it is determined that the first plaintext data is smaller than the second plaintext data,
Figure pat00374
Wow
Figure pat00375
And determining that the first plaintext data is equal to or greater than the second plaintext data if is not matched or the minimum value i * does not exist.
KR1020180119632A 2018-10-08 2018-10-08 Apparatus and method for order-revealing encryption KR102132685B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180119632A KR102132685B1 (en) 2018-10-08 2018-10-08 Apparatus and method for order-revealing encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180119632A KR102132685B1 (en) 2018-10-08 2018-10-08 Apparatus and method for order-revealing encryption

Publications (2)

Publication Number Publication Date
KR20200039979A true KR20200039979A (en) 2020-04-17
KR102132685B1 KR102132685B1 (en) 2020-07-10

Family

ID=70460726

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180119632A KR102132685B1 (en) 2018-10-08 2018-10-08 Apparatus and method for order-revealing encryption

Country Status (1)

Country Link
KR (1) KR102132685B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112152799A (en) * 2020-08-31 2020-12-29 中国人民解放军战略支援部队信息工程大学 Secret source normalization mechanism for multimode executive encryption application
CN114221766A (en) * 2022-02-18 2022-03-22 阿里云计算有限公司 Data encryption method, data decryption method and data encryption device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176193A (en) * 2007-01-22 2008-07-31 Nippon Telegr & Teleph Corp <Ntt> Calculation method and device for secrecy function, and program
JP2012141554A (en) * 2011-01-06 2012-07-26 Nec Corp Prefix match storage type encryption device and decryption device, and methods thereof
US20140133651A1 (en) * 2011-07-05 2014-05-15 Nec Corporation Encryption device, cipher-text comparison system, cipher-text comparison method, and cipher-text comparison program
KR20170103321A (en) 2016-03-03 2017-09-13 한국전자통신연구원 Order preserving encryption method and apparatus with enhanced security

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008176193A (en) * 2007-01-22 2008-07-31 Nippon Telegr & Teleph Corp <Ntt> Calculation method and device for secrecy function, and program
JP2012141554A (en) * 2011-01-06 2012-07-26 Nec Corp Prefix match storage type encryption device and decryption device, and methods thereof
US20140133651A1 (en) * 2011-07-05 2014-05-15 Nec Corporation Encryption device, cipher-text comparison system, cipher-text comparison method, and cipher-text comparison program
KR20170103321A (en) 2016-03-03 2017-09-13 한국전자통신연구원 Order preserving encryption method and apparatus with enhanced security

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112152799A (en) * 2020-08-31 2020-12-29 中国人民解放军战略支援部队信息工程大学 Secret source normalization mechanism for multimode executive encryption application
CN112152799B (en) * 2020-08-31 2022-11-18 中国人民解放军战略支援部队信息工程大学 Secret source normalization mechanism for multimode executive encryption application
CN114221766A (en) * 2022-02-18 2022-03-22 阿里云计算有限公司 Data encryption method, data decryption method and data encryption device

Also Published As

Publication number Publication date
KR102132685B1 (en) 2020-07-10

Similar Documents

Publication Publication Date Title
JP5957095B2 (en) Tamper detection device, tamper detection method, and program
KR102143525B1 (en) Method for function encryption supporting set intersection operation and apparatus using the same
KR102550812B1 (en) Method for comparing ciphertext using homomorphic encryption and apparatus for executing thereof
WO2019114122A1 (en) Encryption method for login information, device, electronic device, and medium
JPWO2019130528A1 (en) Conversion key generation device, ciphertext conversion device, secret information processing system, conversion key generation method, conversion key generation program, ciphertext conversion method, and ciphertext conversion program
US8817978B2 (en) Order-preserving encryption and decryption apparatus and method thereof
KR102132685B1 (en) Apparatus and method for order-revealing encryption
JP5972181B2 (en) Tamper detection device, tamper detection method, and program
JP6401875B2 (en) Data processing system
KR102284877B1 (en) Efficient functional encryption for set intersection
KR102281265B1 (en) Functional encryption for set intersection with time-constrained function keys
KR102192594B1 (en) Apparatus and method for order-revealing encryption in multi-client environment without trusted authority
KR20180039922A (en) Function encryption system and method for outputting inner product values
Anwarbasha et al. An efficient and secure protocol for checking remote data integrity in multi-cloud environment
KR102126295B1 (en) Method for comparing chiphertext based and apparatus for executing the method
KR102526114B1 (en) Apparatus and method for encryption and decryption
KR102593179B1 (en) Efficient decentralized functional encryption for set intersection
KR20200131688A (en) Apparatus and method for generating secret key, apparatus and method for genrating evaluation key
KR102123440B1 (en) Encryption method for supporting range query in multi-client environment and apparatus using the same
KR20200041134A (en) System and method for providng redactable signature with recovery functionality
JP2019198052A (en) Key generation system
KR102123435B1 (en) Encryption method for supporting equality query in multi-client environment and apparatus using the same
KR102625088B1 (en) Apparatus and method for sharing data
KR102629617B1 (en) Real-time iot data sharing system to support attribute-based access control and method of operation thereof
KR102005946B1 (en) System and method for providng anonymous identity-based signature using homomorphic encryption

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant