KR102219476B1 - 데이터를 암호화하는 방법 및 그를 위한 장치 - Google Patents
데이터를 암호화하는 방법 및 그를 위한 장치 Download PDFInfo
- Publication number
- KR102219476B1 KR102219476B1 KR1020140057838A KR20140057838A KR102219476B1 KR 102219476 B1 KR102219476 B1 KR 102219476B1 KR 1020140057838 A KR1020140057838 A KR 1020140057838A KR 20140057838 A KR20140057838 A KR 20140057838A KR 102219476 B1 KR102219476 B1 KR 102219476B1
- Authority
- KR
- South Korea
- Prior art keywords
- secret key
- parameter
- database
- plaintext
- encryption
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 일 실시예에 따른 암호화 장치의 암호화 방법은, 평문을 암호화하기 위한 비밀키 또는 파라미터를 생성하는 과정과, 상기 비밀키 또는 상기 파라미터를 이용하여 상기 평문을 암호문으로 변환하는 과정과, 상기 암호문을 데이터베이스에 전송하는 과정을 포함할 수 있다. 또한 다른 실시예도 가능하다.
Description
본 발명은 원본 데이터를 암호화하는 암호화 방법 및 그를 위한 암호화 장치에 관한 것이다.
데이터베이스에 데이터를 암호화하여 저장하는 경우, 암호화된 데이터는 원본 데이터들과 전혀 다른 순서로 정렬된다. 이는 암호화가 원본 데이터를 예측할 수 없는 임의의 값으로 변환하는 과정이기 때문이다. 상기와 같은 이유로 데이터베이스에 저장되는 데이터를 암호화할 경우 별도의 복호화 과정 없이는 범위 질의(range query)와 같은 검색이 불가능하다.
범위 질의와 같은 검색을 가능하게 하는 방법으로서 순서 보존 암호 기법이 있다. 상기 순서 보존 암호 기법은 암호화된 데이터 각각에 대하여 원본 데이터 상의 순서 정보를 제공하는 방식이다. 예를 들어, 원본 데이터 A, B, C가 있고, A<B<C의 순서로 각기 다른 크기의 값이라고 가정한다. 또한 순서 보존 암호 기범을 이용하여 암호화한 A의 암호문이 A’, B의 암호문이 B’, C의 암호문의 C’라고 가정하면, 상기 A’, B’, C’의 크기는 A’<B’<C’로서 원본 데이터의 크기에 따른 순서와 동일하다.
그러나 상기와 같은 순서 보존 암호 기법은, 원본 데이터의 길이를 m 비트(bit), 암호문의 길이를 n 비트이고, m<n이라고 가정하면, 최대 n번의 연산을 반복적으로 수행해야 암호문을 복호화할 수 있어서 연산이 매우 복잡하다는 단점이 있다.
본 발명의 목적은 원본 데이터의 크기에 따른 순서를 유지하는 동시에 용이하게 암호화 또는 복호화를 할 수 있는 암호화 방법 및 그를 위한 암호화 장치를 제공함에 있다.
본 발명의 일 실시예에 따른 암호화 장치의 암호화 방법은, 평문을 암호화하기 위한 비밀키 또는 파라미터를 생성하는 과정과, 상기 비밀키 또는 상기 파라미터를 이용하여 상기 평문을 암호문으로 변환하는 과정과, 상기 암호문을 데이터베이스에 전송하는 과정을 포함할 수 있다.
본 발명의 일 실시예에 따른 암호화 장치는, 평문을 암호화하기 위한 비밀키 또는 파라미터를 생성하는 키 생성부와, 상기 비밀키 또는 상기 파라미터를 이용하여 상기 평문을 암호문으로 변환하고, 상기 암호문을 데이터베이스에 전달하는 암호화부를 포함할 수 있다.
본 발명에 따르면, 원본 데이터의 크기에 따른 순서를 유지하는 동시에 용이하게 암호화 또는 복호화를 할 수 있는 암호화 방법 및 그를 위한 암호화 장치를 제공할 수 있다.
도 1은 다양한 실시예에 따른 암호화 장치를 나타낸 도면이다.
도 2는 본 발명의 다양한 실시예에 따른 암호화 장치의 암호화 방법을 나타낸 순서도이다.
도 3은 본 발명의 다양한 실시예에 따른 암호화 장치의 암호화 방법을 나타낸 순서도이다.
도 4a 및 도 4b는 본 발명의 다양한 실시예에 따른 암호화 장치의 복호화 방법을 나타낸 순서도이다.
도 5는 본 발명의 다양한 실시예에 따른 암호화 장치의 동작 방법을 나타낸 순서도이다.
도 2는 본 발명의 다양한 실시예에 따른 암호화 장치의 암호화 방법을 나타낸 순서도이다.
도 3은 본 발명의 다양한 실시예에 따른 암호화 장치의 암호화 방법을 나타낸 순서도이다.
도 4a 및 도 4b는 본 발명의 다양한 실시예에 따른 암호화 장치의 복호화 방법을 나타낸 순서도이다.
도 5는 본 발명의 다양한 실시예에 따른 암호화 장치의 동작 방법을 나타낸 순서도이다.
이하, 본 발명의 다양한 실시예가 첨부된 도면과 연관되어 기재된다. 본 발명의 다양한 실시예는 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들이 도면에 예시되고 관련된 상세한 설명이 기재되어 있다. 그러나, 이는 본 발명의 다양한 실시예를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 다양한 실시예의 사상 및 기술 범위에 포함되는 모든 변경 및/또는 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용되었다.
본 발명의 다양한 실시예에서 사용될 수 있는“포함한다” 또는 “포함할 수 있다” 등의 표현은 개시(disclosure)된 해당 기능, 동작 또는 구성요소 등의 존재를 가리키며, 추가적인 하나 이상의 기능, 동작 또는 구성요소 등을 제한하지 않는다. 또한 본 발명의 다양한 실시예에서, “포함하다” 또는 “가지다” 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명의 다양한 실시예에서 “또는” 등의 표현은 함께 나열된 단어들의 어떠한, 그리고 모든 조합을 포함한다. 예를 들어, “A 또는 B”는, A를 포함할 수도, B를 포함할 수도, 또는 A 와 B 모두를 포함할 수도 있다.
본 발명의 다양한 실시예에서 사용된 “제 1”, “제2”, “첫째” 또는 “둘째” 등의 표현들은 다양한 실시예들의 다양한 구성요소들을 수식할 수 있지만, 해당 구성요소들을 한정하지 않는다. 예를 들어, 상기 표현들은 해당 구성요소들의 순서 및/또는 중요도 등을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들어, 제1 사용자 기기와 제2 사용자 기기는 모두 사용자 기기이며, 서로 다른 사용자 기기를 나타낸다. 예를 들어, 본 발명의 다양한 실시예의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 “직접 연결되어” 있다거나 “직접 접속되어” 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 새로운 다른 구성요소가 존재하지 않는 것으로 이해될 수 있어야 할 것이다.
본 발명의 다양한 실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명의 다양한 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명의 다양한 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 발명의 다양한 실시예에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 다양한 실시예에 따른 암호화 장치에 대해서 살펴본다.
도 1은 다양한 실시예에 따른 암호화 장치를 나타낸 도면이다.
도 1을 참조하면, 암호화 장치(100)는 키 생성부(110), 암호화부(120), 복호화부(130)를 포함할 수 있고, 제어부(140) 또는 데이터베이스(200)를 더 포함할 수 있다.
키 생성부(110)는 암호화부(120) 또는 복호화부(130)에서 사용될 파라미터 또는 비밀키를 생성할 수 있다.
암호화부(120)는 암호화 장치(100)로 입력된 데이터, 예를 들어 원본 데이터 즉 평문(plaintext)을 암호화함으로써 암호문(ciphertext)을 생성할 수 있다. 상기 암호화부(120)는 키 생성부(110)에 의하여 생성된 비밀키 또는 파라미터를 이용하여 평문을 변환함으로써 상기 암호문을 생성할 수 있다. 암호화부(120)에 의하여 생성된 상기 암호문들의 크기에 따른 순서는 평문들의 크기에 따른 순서와 동일할 수 있다. 예를 들어, 평문들이 A, B, C이고 상기 평문들의 크기가 A<B<C라고 가정하면, 암호화부(120)에 의하여 생성된 암호문들 A’, B’, C’의 크기는 A’<B’<C’일 수 있다.
복호화부(130)는 키 생성부(110)에 의하여 생성된 파라미터, 비밀키를 이용하여 암호문을 복호화하여 평문을 복원할 수 있다.
제어부(140)는 암호화 장치(100)의 전반적인 동작을 제어할 수 있다. 제어부(140)는 파라미터 또는 비밀키를 생성하도록 키 생성부(110)를 제어할 수 있다. 제어부(140)는 암호화 장치(100)로 입력되는 평문 또는 데이터베이스(200)에 저장된 평문을 암호화하도록 암호화부(120)를 제어할 수 있다. 제어부(140)는 암호화 장치(100)로 입력되는 암호문 또는 데이터베이스(200)에 저장된 암호문을 복호화하여 평문으로 변환시키도록 복호화부(130)를 제어할 수 있다.
데이터베이스(200)에는 암호화부(120)에 의하여 생성된 암호문을 저장될 수 있고, 암호화 장치(100)로 입력된 평문 또는 복호화부(130)에 의하여 암호문이 복호화된 평문이 저장될 수 있다. 상기 데이터베이스(200)는 암호화 장치(100)로부터의 범위 질의(range query)에 해당하는 암호문들을 추출할 수 있다. 이를 위하여 데이터베이스(200)에는 암호문들이 크기 순으로 정렬되어 저장될 수 있다. 예를 들어, 암호문이 1~100의 자연수들이라고 가정하면 데이터베이스(200)에는 상기 1~100의 자연수들을 크기 순서대로 정렬된 상태로 저장되어 있을 수 있다.
다른 실시예에 따라 데이터베이스(200)는 암호화 장치(100)와 별개의 장치로 구현될 수도 있다. 데이터베이스(200)가 암호화 장치(100)와 별개의 장치로서 구현되는 경우, 상기 데이터베이스(200)에는 키 생성부(110)에 의하여 생성된 파라미터 및 비밀키를 저장하지 않을 수 있다. 그에 따라 데이터베이스(200)는 암호문들의 복호화를 수행하지 않을 수 있다.
도 2는 본 발명의 다양한 실시예에 따른 암호화 장치의 암호화 방법을 나타낸 순서도이다. 도 2에서 암호화 장치(100)에 입력되는 원본 데이터, 즉 평문들은 ‘x∈{0, 1, …, M-1}’이고, 상기 평문들이 암호화된 암호문은 ‘C∈{0, 1, …, N=1}’로 가정한다. 또한 M<N인 것으로 가정한다.
도 2를 참조하면, 먼저 암호화 장치(200)에는 평문 x가 입력될 수 있다(S202). 원문 x가 입력되면, 키 생성부(110)는 상기 평문 x를 암호화하기 위한 파라미터 또는 비밀키를 생성할 수 있다(S204). 일 실시예에 따라 단계 S204에서 키 생성부(110)는 평문 x의 비트(bit) 사이즈 d를 이용하여 파라미터와 비밀키를 생성할 수 있다. 예를 들어 원본 데이터 x∈{0, 1, …, M-1}이면, 키 생성부(110)는 파라미터인 p ‘param =N’과, 비밀키인 ‘key={α, β, γ, K}’를 출력할 수 있다. 이때 param(=N)은 암호문 중 가장 큰 수보다 1이 더 큰 수로서 암호문의 출력 범위를 나타낼 수 있다.
단계 S204에서 키 생성부(110)는 평문 x의 비트 사이즈 d를 이용하여 비밀키들 α, β, γ, K 각각을 결정할 수 있다. 일 실시예에 따라 평문들 각각의 크기별 순서를 유지하기 위하여 키 생성부(110)는 상기 비밀키들 중 γ은 0과 α 사이의 수 중 랜덤한 어떤 수(0<γ<α)이고, β는 과 1 사이의 랜덤한 어떤 수(<β<1)일 수 있다. 비밀키들 중 β와 γ가 결정되면, 키 생성부(110)는 아래와 같이 파라미터 N 및 비밀키 벡터 α를 계산할 수 있다. 상기와 같이 비밀키들을 설정함으로써, 암호화 장치(100)는 평문(x) 각각의 크기 순서 정보를 포함하는 형태로 암호문을 생성할 수 있다.
예를 들어, 평문 x가 1, 2, 3, 4로서, 크기순 순서는 ‘4>3>2>1’라고 가정한다. 암호화 장치(100)는 1에 대응하는 암호문 12, 2에 대응하는 암호문 34, 3에 대응하는 암호문 56 및 4에 대응하는 암호문 78을 생성할 수 있다. 그에 따라 암호문들의 크기순 순서는 평문과 마찬가지로 ‘78>56>34>12’가 될 수 있으며, 데이터베이스(200)는 78, 56, 34, 12의 내림차순으로 암호문을 저장하거나 또는 12 34, 56, 78의 오름차순으로 암호문을 저장할 수 있다.
이때, τ는 암호화 장치(100)의 두 출력값들(암호문들) 사이의 간격이 최소가 되는 값으로서, 기본값으로서 ‘τ=2’가 설정될 수 있다. 또한 암호키 K는 의사 난수 함수(pseudo random function)에 따른 의사 난수(pseudo random number)로서 결정될 수 있다.
상기와 같이 단계 204에서 파라미터(param=N)와 비밀키(key={α, β, γ, K})가 결정되면, 암호화부(120)는 원문을 암호화할 수 있다(S206). 단계 S206에서 암호화부(120)는 파라미터(param=N) 및 비밀키(key={α, β, γ, K})를 이용하여 원문 x({0, 1, …, M-1})를 암호문 C({0, 1, …, N-1})로 변환할 수 있다.
일 실시예에 따라 평문 x, 비밀키 벡터 a i 는 아래와 같다고 가정한다.
x := (x d -1 , x d -2 , …, x 0 )
ai := ( a 0 , a 1 , …, a d )………………(0≤i≤d)
이때, i=0이면, 비밀키 벡터 a 0 는 아래와 같다.
a 0 = F 0 (K, 0)………………(αN≤F 0 (K, 0)≤βN)
또한 i의 범위가 1≤i≤d-1이면, a i 는 다음과 같다.
a
i
=
F
i
(K,
x
i
’)……(α
Nr
i
≤
Fi
(K,
x
i
’)≤β
Nr
i
,
x
i
’ = (
x
d
-1
, …,
x
d
-i
,0))
또한 i = d이면, a d 는 아래와 같다.
a
d
=
F
d
(K, x)………………(0≤
F
d
(K, x)≤β
Nr
d
)
상기와 같은 수식들을 기초로 아래와 같이 암호문 C를 계산할 수 있다.
[수학식 1]
상기 수학식 1에서 x는 d 비트 2진수이고, xd-i(1≤i≤d)은 비트들 각각의 위치에서의 비트 값일 수 있다. xd-1 은 최상위 비트(leftmost significant bit)의 값일 수 있다. 또한 Fi (0≤i≤d)는 랜덤 함수(random function)로서, 암호 해쉬 함수(cryptographic hash function)(예를 들어, SHA-128) 또는 의사 난수 함수(pseudo random function)(예를 들어, HMAC-SHA-128)의 형태로 구현될 수 있다. 아래 도 3은 암호화 과정을 나타낸 순서도이다.
상기와 같이 암호문 C가 계산되면, 암호화 장치(100)는 상기 암호문 C를 출력하여 데이터베이스(200)에 저장할 수 있다(S208). 다른 실시예에 따라 데이터베이스(200)가 암호화 장치(100)와 별개의 장치로 구현된 경우 암호화 장치(100)는 상기 데이터베이스(200)로 암호문 C를 전송할 수 있다.
도 3은 본 발명의 다양한 실시예에 따른 암호화 장치의 암호화 방법을 나타낸 순서도이다.
도 3을 참조하면, 먼저 암호화 장치(100)의 암호화부(120)는 0≤i≤d일 때의 a i 를 계산할 수 있다(S302). 이후 암호화부(120)는 상기 수학식 1에 따라 암호문(C)를 계산할 수 있다(S304). 암호문(C)이 계산되면, 암호화부(120)는 상기 암호문(C)을 출력할 수 있다(S306).
도 4a 및 도 4b는 본 발명의 다양한 실시예에 따른 암호화 장치의 복호화 방법을 나타낸 순서도이다.
암호화 장치(100)는 파라미터(param) 또는 비밀키인 ‘key={α, β, γ, K}’를 이용하여 암호문을 복호화함으로써 평문을 복원할 수 있다. 이하에서는 암호문 C를 평문 x로 복원하는 일 예에 대하여 설명하기로 한다. 도 4a 및 도 4b에서 암호화 장치(100)는 복잡도 ‘d+1’를 이용하여 암호문 C를 평문 x로 복원하는 것으로 가정한다.
도 4a를 참조하면, 암호문 C가 입력되면(S402), 암호화 장치(100)의 복호화부(130)는 비밀키 벡터 a 0 를 계산할 수 있다(S404). 단계 S404에서 계산되는 비밀키 벡터 a 0 는 아래와 같다.
복호화부(130)는 상기 비밀키 벡터 a 0 를 암호문 C와 비교할 수 있다(S406). 단계 S406에서 복호화부(130)는 비밀키 벡터 a 0 와 암호문 C의 비교 결과로서 평문 x d -1 의 값을 설정할 수 있다. C<a 0 이면, 평문 xd -1을 0으로 설정할 수 있다. 또한 C≥ a 0 이면 평문 x d -1 을 1로 설정할 수 있다.
이후 복호화부(130)는 비밀키 벡터의 합 a를 a 0 로 초기화하고(a=a 0), i=2에서 i=d까지 i를 1씩 증가시키면서 아래의 수학식 2에 따라 비밀키 벡터값들 a i - 1 를 계산하고(S408), 상기 비밀키 벡터들의 합 a에 a i - 1 를 하기 수학식 2에 따라 더하여 a를 계산할 수 있다. (S410).
[수학식 2]
a
i
-1
=
Fi
(K, x’)………………(
x'
= (
x
d
-1
, …,
x
d
-i+1
, …, 0))
a = a + (2
x
d
-i+1
- 1)
a
i
-1
도 4a에서는 평문 x의 최상위 비트 x d -1 의 값만을 구하는 방법에 대하여 설명하였다. 상기 최상위 비트 x d -1 이외의 다른 비트들 ( x d -2 , …, x 0 )의 복구는 도 4b를 참조하여 설명하기로 한다.
도 4b를 참조하면, 제어부(140)는 i를 2부터 1씩 증가시키면서 i가 d 이하인지 여부를 판단할 수 있다(S412). 단계 S412의 판단 결과, i가 d 이하인 경우(S412: 예), 복호화부(130)는 단계 S408 또는 단계 S410에서와 마찬가지로 a i -1 또는 a를 계산할 수 있다(S414). 이어서 복호화부(130)는 비밀키 a를 암호문 C와 비교하여, 평문 x d -i 의 값을 복구할 수 있다(S416). 단계 S416에서 복호화부(130)는 C<a이면, 평문 x d -1 을 0으로 설정하고, C≥a이면 평문 x d -1 을 1로서 설정할 수 있다. 복호화부(130)는 i를 1 증가시키고(S418), 제어부(140)는 다시 상기 i가 d 이하인지 여부를 판단할 수 있다(S412)
상기 i가 d를 초과하면(S412: 예), 복호화부(130)는 아래 수학식 3을 이용하여 a d 또는 a를 계산할 수 있다(S420).
[수학식 3]
a = a + (2x
0
- 1)
a
d
………………(
a
d
=
F
d
(K, x))
이후 제어부(140)는 비밀키 a가 암호문 C와 같은지 여부를 판단할 수 있다(S422). 단계 S422의 판단 결과 비밀키 a가 암호문 C와 같으면(S422: 예), 복호화부(130)는 상기의 수학식 3에서의 x를 평문 x로서 출력할 수 있다(S424).
반면에 단계 S422의 판단 결과 비밀키 a가 암호문 C와 다르면(S422: 아니오), 제어부(140)는 에러 메시지를 출력할 수 있다(S426). 상기와 같이 에러 메시지를 출력함으로써 본 발명에 따른 암호화 장치는 평문을 복구되지 않았음을 사용자에게 알릴 수 있다.
도 5는 본 발명의 다양한 실시예에 따른 암호화 장치의 동작 방법을 나타낸 순서도이다. 도 5에서 데이터베이스(200)는 암호화 장치(100)와는 별개의 장치인 것으로 가정한다.
도 5를 참조하면, 데이터베이스(200)는 암호화 장치(100)로부터 범위 질의(range query)를 수신할 수 있다(S502). 이때 암호화 장치(100)는 평문에 해당하는 범위 질의를 데이터베이스(200)에 전송할 수 있다. 예를 들어, 데이터베이스(200)에 1~100의 자연수들 각각에 대응하는 암호문들이 저장되어 있는 것으로 가정한다. 즉 데이터베이스(200)에는 평문 1~100 각각에 대응하는 암호문들이 저장되어 있을 수 있다. 또한 단계 S502에서 암호화 장치(100)는 평문 1~10에 대응하는 암호문들을 데이터베이스(200)에 요청할 수 있다.
데이터베이스(200)는 해당 범위의 암호문을 추출하고(S504), 상기 추출된 암호문을 암호화 장치(100)로 전송할 수 있다(S506). 암호화 장치(100)는 데이터베이스(200)로부터 수신한 암호문을 복호화하여 평문으로 복원할 수 있다(S508). 예를 들어, 단계 S504에서 데이터베이스(200)는 평문 1~10에 대응하는 암호문으로서 12, 22, 34, 42, 57, 63, 73, 84, 99, 104을 추출할 수 있다.
암호화 장치(100)는 1 및 10에 대응하는 암호문들을 데이터베이스(200)에 전달함으로써 1~10 각각에 대응하는 암호문들을 데이터베이스(200)에 요청하는 범위 질의(range query)를 전송할 수 있다. 상기 데이터베이스(200)는 상기 1에 대응하는 암호문 및 10에 대응하는 암호문을 포함하여 그 사이의 암호문을 암호화 장치(100)로 반환할 수 있다. 이로써 데이터베이스(200)는 암호화 장치(100)의 범위 질의에 대한 응답을 암호화 장치(100)에 전송할 수 있다. 또한 상기와 같이 범위 질의에 대한 응답을 암호화 장치(100)로 전송할 수 있는 것은, 평문 1~100 각각에 대응하는 암호문들이 데이터베이스(200)에 크기순으로 정렬될 수 있기 때문이다. 즉 데이터베이스(200)에 저장된 암호문들의 크기는, ‘1에 대응하는 암호문 < 2에 대응하는 암호문 < 3에 대응하는 암호문 < 4에 대응하는 암호문 < … < 100에 대응하는 암호문’의 순으로 각기 다른 값일 수 있다. 따라서 데이터베이스(200)는 평문 1~100에 대응하는 암호문들 각각을 복호화하지 않고도 1~10에 대응하는 암호문들을 추출할 수 있게 된다.
또한 일 실시예에 따라 평문 1~100에 대응하는 암호문들은 모두 암호화 장치(100)에 의하여 암호화되어 데이터베이스(200)에 저장된 것일 수 있다. 이때 데이터베이스(200)는 상기 평문 1~100을 암호화하기 위하여 사용된 파라미터 및 비밀키를 알지 못할 수도 있다.
상기와 같은 본원 명세서에서 기술된 발명은 순서를 가진 데이터들을 암호화하여 데이터베이스에 저장할 때 사용이 가능하며, 본 발명을 통해 암호화되어 저장된 데이터들은 복호화 과정 없이 범위 검색(range query)이 가능하다. 본 발명은 데이터를 암호화하여 저장하고, 범위 질의가 요구되는 상황에서 암호화된 데이터의 복호화 과정 없이 사용이 가능하다. 예를 들어, 본 발명은 공개형 데이터베이스인 MySQL과 같은 관계형 데이터베이스(relational database)에 적용될 수 있다. 본 발명을 적용하는 경우, 데이터베이스는, 암호화된 데이터의 범위 검색을 수행하기 위하여 복호화 과정을 수행하지 않아도 된다. 상기와 같이 복호화 과정을 수행하지 않아도 되므로 상기 데이터베이스의 검색 속도는 평문을 저장하고 있는 데이터이베이스 시스템과 동일할 수 있다. 또한 복호화 과정을 생략해도 되므로, 데이터베이스에서 검색을 수행하는 시스템 관리자(미도시)(예를 들어, DBMS, Database Management System)는 상기 암호화 또는 복호화에 사용되는 비밀키를 알 수 없다. 그에 따라 시스템 관리자는 암호화된 데이터에 대한 정보(예를 들어, 평문)를 알 수 없게 되어 보안성을 향상시킬 수 있다.
예를 들어 일반 사용자가 데이터베이스에 개인정보(예를 들어, 연봉, 일정, 나이, 수치화된 신체 정보 등)를 저장하는 경우를 가정하기로 한다. 상기 데이터베이스에는 실질적으로 상기 개인정보가 암호화된 암호문만이 저장될 수 있으며, 상기 암호문을 복호화하기 위한 비밀키 또는 파라미터는 상기 사용자만 가질 수 있다. 그에 따라 상기 데이터베이스가 해킹되거나 시스템 관리자에 의하여 상기 데이터베이스에 저장된 데이터가 노출된다고 하더라도 암호문만이 노출되는 것이므로 상기 사용자의 개인정보가 노출되는 것은 아니다. 상기와 같이 본 발명에 따르면 개인 정보가 노출되는 것을 막을 수 있고, 데이터베이스가 데이터의 기밀성을 제공하는 동시에 범위 검색을 가능하도록 한다.
본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 실시예에 따른 기술 내용을 쉽게 설명하고 본 발명의 실시예의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 실시예의 범위를 한정하고자 하는 것은 아니다. 따라서 본 발명의 다양한 실시예의 범위는 여기에 개시된 실시예들 이외에도 본 발명의 다양한 실시예의 기술적 사상을 바탕으로 도출되는 모든 변경 또는 변형된 형태가 본 발명의 다양한 실시예의 범위에 포함되는 것으로 해석되어야 한다.
100: 암호화 장치 110: 키 생성부
120: 암호화부 130: 복호화부
140: 제어부 200: 데이터베이스
120: 암호화부 130: 복호화부
140: 제어부 200: 데이터베이스
Claims (14)
- 암호화 장치의 암호화 방법에 있어서,
평문 x를 암호화하기 위한 비밀키 {α, βγK} 또는 파라미터 N을 생성하는 과정과,
상기 비밀키 {α, βγK} 또는 상기 파라미터 N을 이용하여 상기 평문을 암호문으로 변환하는 과정과,
상기 암호문을 데이터베이스에 전송하는 과정을 포함하며,
상기 비밀키 {α, βγK} 중 상기 γ은 0과 α사이의 랜덤한 수(0<γ<α)이고, β는 1/2 과 1 사이의 랜덤한 수(1/2<β<1)이고, 상기 K는 의사 난수 함수(pseudo random function)에 따른 의사 난수(pseudo random number)이며, 상기 α 및 상기 파라미터 N은 아래의 수학식 4를 이용하여 계산할 수 있음을 특징으로 하는 암호화 방법.
[수학식 4]
이때 τ는 상기 암호화 장치로부터 출력되는 두 출력값들 사이의 간격이 최소가 되는 값이다. - 제1항에 있어서, 상기 평문을 암호화하기 위한 비밀키 또는 파라미터를 생성하는 과정은,
상기 평문의 비트 사이즈 d를 이용하여 상기 파라미터 N과 상기 비밀키 {α, β, γ, K}를 결정하는 과정을 포함함을 특징으로 하는 암호화 방법. - 삭제
- 제1항에 있어서, 상기 비밀키 또는 상기 파라미터를 이용하여 상기 평문을 암호문으로 변환하는 과정은,
상기 파라미터 N, 상기 비밀키 {α, β, γ, K}, 아래와 같은 평문 x를 기초로 아래와 같은 비밀키 벡터 ai 를 결정하는 과정과,
상기 비밀키 벡터 ai 를 이용하여 상기 평문 x를 아래와 같은 암호문 C로 변환하는 과정을 포함함을 특징으로 하는 암호화 방법.
x := (xd-1, xd-2, …, x0)
ai := (a0, a1, …, ad)………………(0≤i≤d)
이때, x는 d 비트 2진수이고, xd-i (0≤i≤d)은 상기 d 비트 2진수에서의 비트들 각각의 값이다. - 제4항에 있어서,
i가 0이면 비밀키 벡터 a 0 는 아래와 같고,
a 0 = F 0 (K, 0)………………(αN≤F 0 (K, 0)≤βN)
1≤i≤d-1이면 비밀키 벡터 a i 는 아래와 같으며,
a i = F i (K, x i ’)……(α Nr i ≤ F i (K, x i ’)≤β Nr i , x i ’ = ( x d -1 , …, x d -i ,0))
상기 i가 d이면, 비밀키 벡터 a d 는 아래와 같음을 특징으로 하는 암호화 방법.
a d = F d (K, x)………………(0≤ F d (K, x)≤β Nr d ) - 암호화 장치에 있어서,
평문을 암호화하기 위한 비밀키 또는 파라미터를 생성하는 키 생성부와,
상기 비밀키 또는 상기 파라미터를 이용하여 상기 평문을 암호문으로 변환하고, 상기 암호문을 데이터베이스에 전달하는 암호화부를 포함하며,
상기 비밀키 {α, βγK} 중 상기 γ은 0과 α사이의 랜덤한 수(0<γ<α)이고, β는 1/2 과 1 사이의 랜덤한 수(1/2<β<1)이고, 상기 K는 의사 난수 함수(pseudo random function)에 따른 의사 난수(pseudo random number)이며, 상기 α 및 상기 파라미터 N은 아래의 수학식 4를 이용하여 계산할 수 있음을 특징으로 하는 암호화 장치.
[수학식 4]
- 제6항에 있어서, 상기 키 생성부는,
상기 평문의 비트 사이즈 d를 이용하여 상기 파라미터 N과 상기 비밀키 {α, β, γ, K}를 결정함을 특징으로 하는 암호화 장치. - 제9항에 있어서,
i가 0이면 비밀키 벡터 a 0 는 아래와 같고,
a 0 = F 0 (K, 0)………………(αN≤F 0 (K, 0)≤βN)
1≤i≤d-1이면 비밀키 벡터 a i 는 아래와 같으며,
a i = F i (K, x i ’)……(α Nr i ≤ F i (K, x i ’)≤β Nr i , x i ’ = ( x d -1 , …, x d -i ,0))
상기 i가 d이면, 비밀키 벡터 a d 는 아래와 같음을 특징으로 하는 암호화 장치.
a d = F d (K, x)………………(0≤ F d (K, x)≤β Nr d ) - 제1항에 있어서,
상기 데이터베이스에 범위 질의(range query)를 전달하는 과정과,
상기 데이터베이스로부터, 상기 범위 질의에 해당하는 암호문을 수신하는 과정을 더 포함함을 특징으로 하는 암호화 방법. - 제11항에 있어서,
상기 암호문을 상기 파라미터 또는 비밀키를 이용하여 평문으로 복구하는 과정을 더 포함함을 특징으로 하는 암호화 방법. - 제6항에 있어서, 상기 암호화 장치는,
상기 데이터베이스에 범위 질의(range query)를 전달하고, 상기 데이터베이스로부터, 상기 범위 질의에 해당하는 암호문을 수신함을 특징으로 하는 암호화 장치. - 제13항에 있어서,
상기 암호문을 상기 파라미터 또는 비밀키를 이용하여 평문으로 복구하는 복호화부를 더 포함함을 특징으로 하는 암호화 장치.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140057838A KR102219476B1 (ko) | 2014-05-14 | 2014-05-14 | 데이터를 암호화하는 방법 및 그를 위한 장치 |
US14/687,465 US10177906B2 (en) | 2014-05-14 | 2015-04-15 | Method and apparatus for encrypting data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140057838A KR102219476B1 (ko) | 2014-05-14 | 2014-05-14 | 데이터를 암호화하는 방법 및 그를 위한 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150130788A KR20150130788A (ko) | 2015-11-24 |
KR102219476B1 true KR102219476B1 (ko) | 2021-02-24 |
Family
ID=54845026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140057838A KR102219476B1 (ko) | 2014-05-14 | 2014-05-14 | 데이터를 암호화하는 방법 및 그를 위한 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10177906B2 (ko) |
KR (1) | KR102219476B1 (ko) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11030618B1 (en) | 2016-09-30 | 2021-06-08 | Winkk, Inc. | Authentication and personal data sharing for partner services using out-of-band optical mark recognition |
US10411891B2 (en) * | 2017-06-28 | 2019-09-10 | Nxp B.V. | Distance-revealing encryption |
US11146397B2 (en) * | 2017-10-31 | 2021-10-12 | Micro Focus Llc | Encoding abelian variety-based ciphertext with metadata |
WO2020018454A1 (en) | 2018-07-16 | 2020-01-23 | Islamov Rustam | Cryptography operations for secure post-quantum communications |
US11936787B2 (en) | 2019-12-10 | 2024-03-19 | Winkk, Inc. | User identification proofing using a combination of user responses to system turing tests using biometric methods |
US11574045B2 (en) | 2019-12-10 | 2023-02-07 | Winkk, Inc. | Automated ID proofing using a random multitude of real-time behavioral biometric samplings |
US11588794B2 (en) | 2019-12-10 | 2023-02-21 | Winkk, Inc. | Method and apparatus for secure application framework and platform |
US11928193B2 (en) | 2019-12-10 | 2024-03-12 | Winkk, Inc. | Multi-factor authentication using behavior and machine learning |
US11652815B2 (en) | 2019-12-10 | 2023-05-16 | Winkk, Inc. | Security platform architecture |
US11553337B2 (en) | 2019-12-10 | 2023-01-10 | Winkk, Inc. | Method and apparatus for encryption key exchange with enhanced security through opti-encryption channel |
US11328042B2 (en) | 2019-12-10 | 2022-05-10 | Winkk, Inc. | Automated transparent login without saved credentials or passwords |
US11657140B2 (en) | 2019-12-10 | 2023-05-23 | Winkk, Inc. | Device handoff identification proofing using behavioral analytics |
US11563582B2 (en) | 2019-12-10 | 2023-01-24 | Winkk, Inc. | Method and apparatus for optical encryption communication using a multitude of hardware configurations |
US11843943B2 (en) | 2021-06-04 | 2023-12-12 | Winkk, Inc. | Dynamic key exchange for moving target |
US20220394464A1 (en) * | 2021-06-04 | 2022-12-08 | Winkk, Inc | Key exchange with small encrypted payload |
US11824999B2 (en) | 2021-08-13 | 2023-11-21 | Winkk, Inc. | Chosen-plaintext secure cryptosystem and authentication |
CN116701493B (zh) * | 2023-08-07 | 2023-10-31 | 中电信量子科技有限公司 | 支持模糊查询的数据库操作方法及用户端 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140089678A1 (en) * | 2011-05-18 | 2014-03-27 | Nec Corporation | Order-preserving encryption system, device, method, and program |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7426752B2 (en) | 2004-01-05 | 2008-09-16 | International Business Machines Corporation | System and method for order-preserving encryption for numeric data |
KR20070064121A (ko) * | 2005-12-16 | 2007-06-20 | 고려대학교 산학협력단 | 효율적으로 이중 복호화 기능을 제공하면서 사용자의프라이버시를 보호할 수 있는 공개키 암호화 방법 |
KR100995123B1 (ko) * | 2008-01-16 | 2010-11-18 | 재단법인서울대학교산학협력재단 | 암호화 방법, 클라이언트의 데이터 처리 방법 |
US20120121080A1 (en) | 2010-11-11 | 2012-05-17 | Sap Ag | Commutative order-preserving encryption |
KR101727312B1 (ko) | 2010-12-22 | 2017-04-14 | 한국전자통신연구원 | 순서 보존 암호화 및 복호화 장치와 그 방법 |
KR101115490B1 (ko) | 2011-11-07 | 2012-05-08 | 펜타시큐리티시스템 주식회사 | 평문의 확률적 분포특성을 고려한 순위 보존 암호화 방법 |
US9037860B1 (en) * | 2013-11-22 | 2015-05-19 | Sap Se | Average-complexity ideal-security order-preserving encryption |
US9213764B2 (en) * | 2013-11-22 | 2015-12-15 | Sap Se | Encrypted in-memory column-store |
-
2014
- 2014-05-14 KR KR1020140057838A patent/KR102219476B1/ko active IP Right Grant
-
2015
- 2015-04-15 US US14/687,465 patent/US10177906B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140089678A1 (en) * | 2011-05-18 | 2014-03-27 | Nec Corporation | Order-preserving encryption system, device, method, and program |
Non-Patent Citations (1)
Title |
---|
Key-Controlled Order-Preserving Encryption(2010. 6. 6. 최종수정). 1부.* |
Also Published As
Publication number | Publication date |
---|---|
US20170063528A1 (en) | 2017-03-02 |
US10177906B2 (en) | 2019-01-08 |
KR20150130788A (ko) | 2015-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102219476B1 (ko) | 데이터를 암호화하는 방법 및 그를 위한 장치 | |
US9237014B2 (en) | Partial CipherText updates using variable-length segments delineated by pattern matching and encrypted by fixed-length blocks | |
US8694467B2 (en) | Random number based data integrity verification method and system for distributed cloud storage | |
JP6144992B2 (ja) | 検索可能暗号処理システム及び方法 | |
KR101600016B1 (ko) | 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치 | |
JP6732141B2 (ja) | 変換鍵生成装置、暗号文変換装置、秘匿情報処理システム、変換鍵生成方法、変換鍵生成プログラム、暗号文変換方法及び暗号文変換プログラム | |
KR101829267B1 (ko) | 암호문의 크기가 감소되는 동형 암호화 방법 | |
JP5835326B2 (ja) | 暗号化装置、暗号文比較システム、暗号文比較方法、および暗号文比較プログラム | |
JP6035459B2 (ja) | 暗号化装置、復号化装置、及びプログラム | |
JP5593458B2 (ja) | 文字列がオートマトンに受理されるか否かを認証するシステム | |
EP3167569B1 (en) | Method and system for providing a secure update of code on a memory-constrained device | |
JP6575532B2 (ja) | 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム | |
Purnama | An analysis of encryption and decryption application by using one time pad algorithm | |
KR101727312B1 (ko) | 순서 보존 암호화 및 복호화 장치와 그 방법 | |
Ganeshkumar et al. | Generating a digital signature based on new cryptographic scheme for user authentication and security | |
JP7226829B2 (ja) | データ処理装置、方法及びコンピュータプログラム | |
CN103942500A (zh) | 基于噪声的哈希密文再加密方法及再加密后的解密方法 | |
KR20150122494A (ko) | 암호화 장치, 암호화 방법, 복호화 방법 및 컴퓨터 판독가능 기록매체 | |
CN111052108A (zh) | 数据处理装置、数据处理方法和数据处理程序 | |
JP5411034B2 (ja) | データベース暗号化システム及び方法 | |
US11343071B2 (en) | Extended ciphertexts | |
KR20170103321A (ko) | 보안성이 강화된 순서보존 암호화 방법 및 장치 | |
WO2020044485A1 (ja) | メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム | |
KR101315683B1 (ko) | 데이터 사이즈 및 형태 변경이 없는 암호화 인코딩 및 복호화 인코딩 방법 | |
JP6202969B2 (ja) | 情報処理装置、暗号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |