KR100919824B1 - 데이터 암호화 장치와 이를 이용한 암호화 방법 - Google Patents

데이터 암호화 장치와 이를 이용한 암호화 방법

Info

Publication number
KR100919824B1
KR100919824B1 KR1020070134055A KR20070134055A KR100919824B1 KR 100919824 B1 KR100919824 B1 KR 100919824B1 KR 1020070134055 A KR1020070134055 A KR 1020070134055A KR 20070134055 A KR20070134055 A KR 20070134055A KR 100919824 B1 KR100919824 B1 KR 100919824B1
Authority
KR
South Korea
Prior art keywords
data
encryption
plain text
order
disturbance
Prior art date
Application number
KR1020070134055A
Other languages
English (en)
Other versions
KR20090066497A (ko
Inventor
이동혁
이승민
남택용
전용성
이상우
장종수
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020070134055A priority Critical patent/KR100919824B1/ko
Publication of KR20090066497A publication Critical patent/KR20090066497A/ko
Application granted granted Critical
Publication of KR100919824B1 publication Critical patent/KR100919824B1/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F16/1794Details of file format conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • G06F16/43Querying
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터 암호화 장치와 이를 포함하는 데이터 검색 시스템에 관한 것으로, 이를 위하여 본 발명은, DES(Data Encryption Standard), AES(Advanced Encryption Standard), RSA(Rivest Shamir Adleman) 등과 같은 기법을 이용하여 데이터 암호화한 후에, 평문 인덱스 기법, 버킷 기반 인덱스 기법, 순서 유지 암호화 기법을 통해 데이터를 검색하는 종래 방법과는 달리, 특정 검색 조건에 대응하는 암호화 데이터의 검색을 통신망을 통해 요청하는 클라이언트와, 평문 데이터에 대한 순서 교란 기법과 순서 유지 암호화 기법을 통해 암호화하여 저장한 후, 클라이언트로부터의 검색 요청에 따라 검색 범위에 대응하는 암호화 데이터를 추출하고, 순서 유지 암호화 기법에 대응하여 복호화한 후에, 순서 교란 기법에 대응하여 복원된 평문 데이터를 클라이언트에 통신망을 통해 전송하는 데이터 암호화 서버를 포함하는 데이터 검색 시스템을 구현함으로써, 평문 데이터에 대한 효과적인 암호화를 수행할 수 있으며, 이에 대한 검색도 효율적으로 수행할 수 있는 것이다.

Description

데이터 암호화 장치와 이를 이용한 암호화 방법{DATA ENCRYPTION APPARATUS AND ENCRYPTION METHOD USING BY IT}
본 발명은 데이터 암호화 기법에 관한 것으로, 더욱 상세하게는 순서 유지 암호화 기법과 순서 교란 기법을 이용하여 데이터를 암호화하고 이를 통해 데이터 검색을 제공하는데 적합한 데이터 암호화 장치와 이를 이용한 암호화 방법에 관한 것이다.
본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-021-01, 과제명: 개인 정보 DB를 위한 통합형 보안 기술 개발].
잘 알려진 바와 같이, 일반적으로 데이터를 암호화하기 위해 DES(Data Encryption Standard), AES(Advanced Encryption Standard), RSA(Rivest Shamir Adleman) 등과 같은 기법을 이용하여 데이터를 보호한다.
여기에서, DES는 관용 암호 방식의 일종으로 64비트의 키를 이용하여 64비트의 평문을 전자와 환자를 조합하여 암호화하는 방식으로 암호화와 복호화를 하나의 대규모 집적 회로(LSI)로 고속 처리할 수 있도록 고안되어 있으며, 다양한 DES용 LSI가 개발되어 있어 인터넷의 보안 대책 등의 폭넓은 분야에서 이용되고 있다.
그리고, AES는 순서 공개형의 대칭키 암호 방식으로, 블록 길이는 128비트, 키의 길이는 128/192/256 비트 중에서 선택 가능하며, 안정성과 암호화 처리 속도를 주요 평가 항목으로 설정하고 있고, 서로 다른 다양한 컴퓨터 환경에서 스마트 카드 등의 메모리 용량이 적은 장치에 용이하게 적용할 수 있다.
또한, RSA는 론 리베스트(Ron Rivest), 아디 셰미르(Adi Ahamir), 레오나르드 아델만(Leonard Adleman) 등 3명의 수학자에 의해 개발된 알고리즘을 사용하는 인터넷 암호화 및 인증 시스템으로, 두 개의 큰 소수를 이용하여 그 수들의 곱과 추가 연산을 통해 하나는 공개키를 구성하고 다른 하나는 개인키를 구성함으로써, 구성된 공개키와 개인키로 인터넷에서 사용하는 정보(예를 들면, 전자 우편 등)를 암호화하고 복호화할 수 있다.
한편, 종래에 인덱스를 활용하여 데이터베이스에 대한 범위 검색을 수행하는 기법에 대해 설명하면, 첫째, 평문에 대한 인덱스를 그대로 구성한 후, 데이터베이스를 암호화하여 평문 인덱스를 그대로 활용함으로써, 범위 검색을 수행하는 방식이 사용되고 있고, 둘째, 암호화된 데이터를 일정 범위를 갖는 버킷 단위로 분할한 후, 해당 버킷에 대한 검색만 수행하는 버킷 기반 인덱스 기법을 이용하여 대량의 정보를 일정 구역으로 분할하여 이를 인덱스와 같이 검색 시 활용하는 방식이 사용되고 있으며, 셋째, 효율성을 강조하여 평문의 순서를 유지할 수 있는 암호화 기법을 통해 암호화된 상태에서도 그대로 범위 검색이 가능한 순서 유지 암호화 방식이 사용되고 있다.
하지만, 종래의 암호화 기법을 이용하여 데이터베이스를 검색하는 방법에서는 첫째 방식의 경우 평문 인덱스를 그대로 사용하여 범위 검색을 수행할 수 있으나, 인덱스 정보가 암호화되어 있지 않기 때문에 실제 시스템 관리자나 악의를 가진 제3자 등에 의해 평문 정보가 노출된 가능성이 매우 크며, 이러한 문제를 해결하기 위해 평문에 대한 인덱스를 암호화하는 방법을 이용할 경우 인덱스의 암호화 키에 대한 별도의 관리가 필요하며, 한번에 범위 검색을 수행하기 어려운 문제점이 있었다.
그리고, 둘째 방식의 경우 전체 영역을 일정 크기를 갖는 구역으로 분할하는 것으로 각 영역에 대한 재필터링이 필요하게 되며, 이 과정에서 해당 구역 이내의 전체값을 복호화하여야 하기 때문에 엄밀한 의미에서의 범위 검색을 수행한다고 보기 어려우며, 각 구역의 정보가 버킷 아이디를 통해 데이터베이스상에 그대로 나타나게 되므로, 악의를 가진 제3자 등은 동일한 구역에 있는 데이터들을 별도의 복호화 과정을 통하지 않고도 공통점이 있는 정보라는 유추가 가능하다는 문제점이 있었다.
또한, 셋째 방식의 경우 데이터베이스의 효율성 측면에서는 가장 이상적인 방법이나, 안전성 측면에서 보면, 평문에 대한 순서 자체가 암호문에 그대로 드러나기 때문에, 예를 들어 학급의 등수와 같은 서열 정보는 이 방식대로 암호화하더라도 순서가 그대로 노출되기 때문에 암호화의 의미가 없게 되는 문제점이 있었다. 다시 말해 일반적인 숫자 데이터는 순서 정보를 포함하고 있는 것이 대부분이기 때문에 암호화된 상태에서 평문의 순서가 드러나는 것을 엄밀히 말하여 암호문 상태에서도 일정 정보를 노출하고 있는 상황이므로 안전한 암호화 방식이라고 하기 어렵다.
이에 따라, 본 발명은 순서 유지 암호화 기법과 순서 교란 기법을 통해 평문에 대한 순서를 노출시키지 않고 데이터베이스에 대한 범위 검색에 최적화된 상태로 데이터를 암호화할 수 있는 데이터 암호화 장치와 이를 이용한 암호화 방법을 제공하고자 한다.
일 관점에서 본 발명은, 평문 데이터를 암호화하여 저장하는 데이터 암호화 장치로서, 상기 평문 데이터의 순서를 교란시켜 교란 데이터를 생성하는 교란부와, 상기 생성된 교란 데이터의 순서를 유지하는 암호화를 통해 생성된 암호화 데이터를 저장하는 암호화부를 포함하는 데이터 암호화 장치를 제공한다.
다른 관점에서 본 발명은, 평문 데이터를 암호화하는 데이터 암호화 장치를 이용하여 암호화하는 방법으로서, 상기 평문 데이터가 입력되면, 상기 입력된 평문 데이터의 순서를 교란시켜 교란 데이터를 생성하는 단계와, 상기 생성된 교란 데이터에 대한 순서를 유지하는 암호화를 통해 생성된 암호화 데이터를 저장하는 단계를 포함하는 데이터 암호화 장치를 이용한 암호화 방법을 제공한다.
본 발명은, DES, AES, RSA 등과 같은 기법을 이용하여 데이터 암호화한 후에, 평문 인덱스 기법, 버킷 기반 인덱스 기법, 순서 유지 암호화 기법을 통해 데이터를 검색하는 종래 방법과는 달리, 순서 교란 기법과 순서 유지 암호화 기법을 통해 평문 데이터를 암호화하여 그 암호화 데이터를 저장한 후 검색 요청 시 해당 검색 범위에 대응하는 암호화 데이터를 추출한 후, 순서 유지 암호화 기법에 대응하여 복호화한 후에 순서 교란 기법에 대응하여 복원함으로써, 데이터베이스 시스템에 적용되어 중요한 데이터를 데이터베이스에 저장하고 검색할 때, 저장된 데이터에 대한 안전성은 물론, 데이터 검색(일치검색, 범위검색, MIN, MAX, COUNT 등) 시에도 효율적으로 검색결과를 제공할 수 있도록 한다. 이 때, 적용되는 데이터는 숫자 데이터로서 정수는 물론 실수도 정수로 변환하여 사용가능 하며, 주민번호, 계좌번호 등 숫자형 문자데이터에 대해서도 숫자로 변환하여 본 발명을 적용할 수 있다.
따라서, 기존의 데이터베이스 암호화 및 검색 방법과 비교하여 안전성과 검색의 효율성을 동시에 만족시킴으로써, 데이터베이스를 사용하는 국가기관, ISP, 포털, 금융권 등이 개인정보보호를 실현하는 데 기여할 수 있다.
도 1은 본 발명에 따라 순서 교란과 순서 유지 암호화를 이용하여 데이터를 암호화하고, 이를 검색하는데 적합한 데이터 검색 시스템의 블록구성도,
도 2는 본 발명에 따라 데이터 암호화 서버에 입력되는 평문 데이터를 예시한 도면,
도 3a 내지 도 3f는 본 발명에 따라 평문 데이터의 순서 교란을 나타낸 도면들,
도 4a 및 도 4b는 본 발명에 따라 순서 교란된 데이터의 순서 유지 암호화를 나타낸 도면들,
도 5a 내지 5c는 본 발명에 따라 범위 검색을 위한 SQL 쿼리를 변환하는 것을 나타낸 도면들,
도 6a 및 도 6b는 본 발명에 따라 교란 데이터를 복원하는 것을 나타낸 도면들,
도 7은 본 발명에 따라 순서 교란과 순서 유지 암호화를 이용하여 데이터를 암호화하고, 이를 검색하는 과정을 도시한 플로우차트.
<도면의 주요부분에 대한 부호의 설명>
100 : 데이터 암호화 서버 102 : 입력부
104 : 교란부 106 : 암호화부
108 : 암호화 정보 데이터베이스 110 : 쿼리 변환부
112 : 복호화부 114 : 복원부
200 : 통신망 300 : 클라이언트
본 발명의 기술요지는, 데이터 암호화 시스템을 이용하여 평문 데이터를 반전 과정 및 치환 과정을 포함하는 순서 교란 기법을 통해 교란시키고, 이를 순서 유지 암호화 기법을 통해 특정 조건에 따라 암호화하여 그 암호화 데이터를 저장할 수 있으며, 이에 대한 검색 요청 시 SQL 쿼리를 변환하여 해당 범위의 암호화 데이터를 추출하고, 이를 순서 유지 암호화 기법에 대응하여 복호화한 후에, 순서 교란 기법에 대응하여 역치환 과정 및 역반전 과정을 통해 복원하여 검색 요청에 따른 평문 데이터를 제공한다는 것이며, 이러한 기술적 수단을 통해 종래 기술에서의 문제점을 해결할 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 상세하게 설명한다.
도 1은 본 발명에 따라 순서 교란과 순서 유지 암호화를 이용하여 데이터를 암호화하고, 이를 검색하는데 적합한 데이터 검색 시스템의 블록구성도로서, 데이터 암호화 서버(100), 통신망(200) 및 클라이언트(300)를 포함한다. 여기에서, 데이터 암호화 서버(100)는 입력부(102), 교란부(104), 암호화부(106), 암호화 정보 데이터베이스(108), 쿼리 변환부(110), 복호화부(112) 및 복원부(114)를 포함한다.
도 1을 참조하면, 데이터 암호화 서버(100)는 숫자 데이터인 평문 데이터(P)에 대한 순서 교란 기법 및 순서 암호화 기법을 수행하여 그 암호화 데이터를 저장하고, 검색 요청 시 암호화 데이터에 대한 쿼리 변환, 복호화 및 복원을 거쳐 검색 요청된 평문 데이터를 제공하는 서버로서, 임의의 범위가 지정된 평문 데이터가 입력되면, 입력된 평문 데이터에 대해 반전 과정과 치환 과정의 순서 교란 기법을 수행하여 그 평문 데이터를 교란하고, 교란 기법을 통해 획득된 교란 데이터는 순서 유지 암호화 기법을 이용하여 특정 조건(예를 들면, 구역 순서, 평문 순서 등)에 따라 암호화한 후에, 그 암호화 데이터(즉, 암호화 정보)를 암호화 정보 데이터베이스에 저장한다.
또한, 데이터 암호화 서버(100)는 클라이언트(300)로부터 통신망(200)을 통해 전송되는 특정 조건(예를 들면, 최대값, 최소값, 일치값, 범위값, 카운트값 등)에 따른 데이터 검색 요청에 따라 저장된 암호화 데이터에 대한 SQL(Structured Query Language) 쿼리를 부분적인 범위로 변환, 검색하여 해당 조건의 암호화 데이터를 검색 추출하고, 추출된 암호화 데이터를 교란 데이터로 복호화한 후에, 복호화된 교란 데이터를 평문 데이터로 다시 복원하여 통신망(200)을 통해 클라이언트(300)로 전송한다.
여기에서, 도1을 참조하여 데이터 암호화 서버(100)에 대해 상세히 설명하면, 입력부(102)는 임의의 범위의 평문 데이터를 입력하는 것으로, 평문 도메인 상에서 임의로 범위가 지정된 평문 데이터를 교란부(104)에 입력시킨다.
일 예로서, 도 2는 본 발명에 따라 데이터 암호화 서버에 입력되는 평문 데이터를 예시한 도면으로, 범위를 지정하기 위해 전체 평문 범위 내에서 0을 포함하며, K를 시드(seed)로 하는 j 개의 의사 난수 "R={R1, R2, R3, ... , Rj}"를 생성한 후에, 각 의사 난수 Ri에서 시작하여 다음 포인트에서 끝나는 범위를 Ai로 하는 j 개의 범위값 "A = {A1, A2, ... , Aj}"를 생성하고, 각 구역의 순서값 g를 결정한다. 여기에서, 범위값 Ai는 그에 대한 최대값 정보와 최소값 정보만 저장할 수 있으며, 해당 구역의 최대값과 최소값을 각각 MAX(Ai), MIN(Ai)라고 칭한다.
이 때, 의사 난수에 사용되는 시드는 암호문의 키와 유사한 역할을 하며, 이 값은 비밀로 한다. 즉, 시드를 모르는 상태에서는 동일한 의사 난수를 생성할 수 없으므로, 범위값이나 순서값 g를 결정할 수 없다. 또한, 도 2에 도시한 바와 같은 0, 23, 42, 55, 78은 각각 랜덤(random)하게 발생된 임의의 난수이며, i는 난수의 순서를 의미한다. 여기에, Ai는 i번째 구역을 의미하며, g는 i와 유사하게 구역에 대한 순서를 의미한다.
다음에, 교란부(104)는 평문 데이터를 반전 과정과 치환 과정을 포함하는 순서 교란 기법을 통해 교란 데이터를 생성하는 것으로, 입력부(102)로부터 입력되는 평문 데이터를 반전된 값으로 변환(예를 들면, 특정 부부에 대한 값을 좌우 방향으로 뒤집음)하고, 반전된 값을 특정 위치에 재배치(치환)하여 전체 순서를 뒤섞는 과정을 포함하는 순서 교란 기법을 수행하여 교란 데이터를 생성하여 암호화부(106)로 전달한다.
일 예로서, 도 3a 내지 도 3f는 본 발명에 따라 평문 데이터의 순서 교란을 나타낸 도면들로서, 순서 교란 기법의 반전 과정의 경우 도 3a에 도시한 바와 같이 평문 데이터를 도 3b에 도시한 바와 같은 오름차순과 내림차순에 따라 도 3c에 도시한 바와 같이 선택적으로 반전시켜 도 3d에 도시한 바와 같이 반전된 값(P-1)을 출력하는데, 평문 데이터(P)를 반전된 값(P-1)으로 변환하여 특정 부분에 대한 값을 좌우방향으로 뒤집는데, 도 2에 도시한 바와 같은 A5내의 "39"를 반전하게 될 경우, 도 3e에 도시한 수식을 이용하여 "MAX(A5)-39+MIN(A5) = 41-39+23 = 25"로 간단히 계산할 수 있으며, 이는 외부에서 보았을 때 구역 내의 순서가 오름차순인지 내림차순인지 판별할 수 없도록 하는 역할을 한다.
또한, 순서 교란 기법의 치환 과정의 경우 반전된 값(P-1)을 특정 위치에 재배치함으로써 전체 순서를 뒤섞는데, 도 2를 참조하여 상술한 바와 같이 평문 데이터가 "39"이고, 반전된 값이 "25"인 데이터의 경우, 도 3f에 도시한 수식을 이용하여"25-MIN(A5)+((MAX(A1)-MIN(A1)+1+MAX(A2)-MIN(A2)+1+MAX(A3)-MIN(A3)+1+MAX(A4)-MIN(A4)+1) = 25-23+(77-55+1)+(54-42+1)+(22-0+1)+(99-78+1) = 83"의 과정을 통해 치환된 값(PD)을 산출할 수 있으며, 이러한 반전 과정 및 치환 과정을 통해 평문 데이터를 특정한 다른 값(교란 데이터)으로 변경할 수 있으며, 이 과정에서 순서는 뒤섞이게 된다.
또한, 암호화부(106)는 순서 유지 기법을 통해 데이터를 암호화하여 그 암호화 데이터를 생성하는 것으로, 교란부(104)를 통해 반전 및 치환된 교란 데이터를 전달받아 특정 조건(예를 들면, 구역 순서, 평문 순서 등)에 따라 정렬시키는 순서 유지 기법을 통해 암호화 데이터를 생성하고, 이를 암호화 정보 데이터베이스(108)에 저장한다. 일 예로서, 도 4a 및 도 4b는 본 발명에 따라 순서 교란된 데이터의 순서 유지 암호화를 나타낸 도면들로서, 도 4a는 반전 및 치환된 교란 데이터를 구역 순서에 따라 정렬시킨 것을 나타내며, 도 4b는 반전 및 치환된 교란 데이터를 평문 순서에 따라 정렬시킨 것을 나타낸다.
한편, 암호화 정보 데이터베이스(108)는 순서 교란 기법과 순서 유지 암호화 기법을 이용하여 암호화된 암호화 데이터를 저장하고 있는 것으로, 이들은 필요에 따라 쿼리 변환부(110)로 추출되어 제공된다.
그리고, 쿼리 변환부(110)는 데이터 검색 요청에 따라 범위 검색을 위한 SQL 쿼리를 변환하는 것으로, 클라이언트(300)로부터 통신망(200)을 통해 검색 조건에 따른 검색 요청이 수신되면, SQL 쿼리를 부분적인 범위로 변환 검색하여 정확한 범위 내의 암호화 데이터를 검색 추출하여 복호화부(112)로 전달한다.
일 예로서, 도 5a 내지 5c는 본 발명에 따라 범위 검색을 위한 SQL 쿼리를 변환하는 것을 나타낸 도면들로서, 변환된 범위를 생성하는 과정에 대해 설명하면, 범위의 시작점과 끝점에 대하여 순서 교란 기법을 수행한 교란 데이터를 sD, eD로 하고, 이 값들에 해당하는 두개의 g값을 찾아 f, l이라고 할 경우 그 범위 값을 도 5a, 도 5b, 도 5c를 통해 획득할 수 있으며, 하나의 시작범위와 다수의 가운데 범위, 하나의 끝 범위를 취하여 SQL의 "WHERE 절"에 취한다.
예를 들면, 도 2에 도시한 바와 같은 평문 데이터에서 "39-57"사이의 값을 검색할 경우, "SELECT COL FROM TABLE WHERE COL>39 AND COL<57"이 된다. 여기에서, 시작 범위인 "39"는 A5 구역에 속하고, 끝 범위인 "57"은 A1구역에 속하며, 시작과 끝 이내의 가운데 범위로서 A2가 존재한다.
이에 따라, 도 5a에 따른 시작 범위(범위 1)는 "EK(D(MIN(A5))) <= x > EK(D(39-1)) 즉, EK(81D)) <= x > EK(83D)"와 같으며, 도 5c에 따른 끝 범위(범위 n)는 "EK(D(MIN(A1))) <= x > EK(D(57)) 즉, EK(0D) <= x > EK(2D)"와 같으며, 도 5b에 따른 가운데 범위(범위 2-(n-1))는 A2구역 하나가 존재하므로 해당 구역에 대해 "EK(D(MIN(A2))) <= x >= EK(D(MAX(A2))) 즉, EK(23D) <= x >= EK(35D)"와 같이 가져온다. 여기에서, 도 5b에 기술된 "MERGEa to b"는 블록내의 범위를 a부터 b까지 각각 조건으로 더하는 것이다. 즉, 가운데 범위가 여러 개일 경우 각각의 범위를 조건에 더한다.
따라서, 최초 쿼리로부터 변환된 쿼리는 "SELECT COL FROM TABLE WHERE (COL>EK(81) AND COL<=EK(83)) OR (COL>= EK(23) AND COL<=EK(35)) OR (COL>=EK(0) AND COL<EK(2))"와 같다.
그리고, 복호화부(112)는 변환된 SQL 쿼리에 따른 암호화 데이터를 복호화하는 것으로, 변환된 SQL 쿼리에 따라 검색 추출된 암호화 데이터를 쿼리 변환부(110)로부터 전달받아 순서 유지 암호화 기법에 대응되는 복호화를 수행하여 복호화된 교란 데이터를 복원부(114)로 전달한다.
다음에, 복원부(114)는 복호화된 교란 데이터를 원래의 평문 데이터로 복원하는 것으로, 복호화(112)로부터 전달되는 복호화된 교란 데이터를 순서 교란 기법에 대응하여 역치환 과정과 역반전 과정을 수행함으로써, 교란 데이터를 평문 데이터로 복원한 후에 이를 통신망(200)을 통해 클라이언트(300)로 전송한다.
일 예로서, 도 6a 및 도 6b는 본 발명에 따라 교란 데이터를 복원하는 것을 나타낸 도면들로서, 역치환 과정의 경우 교란된 값(PD)을 역치환하여 반전된 평문 데이터(P-1)를 계산하는 것으로, 교란된 값(PD)이 "83"일 경우, 도 6a에 도시한 바와 같은 수식을 이용하여 "P-1 = 83+MIN(A5)+((MAX(A1)-MIN(A1)+1)+(MAX(A2)-MIN(A2)+1)+(MAX(A3)-MIN(A3)+1)+(MAX(A4)-MIN(A4)+1)) = 83+23-((77-55+1)+(54-42+1)+(22-0+1)+(99-78+1)) = 25"와 같이 반전된 평문 데이터(P-1)를 산출할 수 있다.
또한, 역반전 과정의 경우 역치환된 값(즉, 반전된 평문 데이터, P-1)을 구역당 평문과 같은 오름차순/내림차순을 복원하여 평문 데이터(P)를 획득하는 것으로, 역치환된 값(P-1)이 "25"일 경우, 도 6b에 도시한 바와 같은 수식을 이용하여 "P = MAX(A5)-25+MIN(A5) = 41-25+23 = 39"와 같이 평문 데이터를 복원할 수 있다.
여기에서, 숫자 데이터인 평문 데이터(P)는 정수이지만, 실수인 경우에도 적용 가능한데, P=37.54 이면, 100을 곱하여, P’=P×100=3754 는 정수이므로 P’ 을 교란 과정에서 입력값으로 사용하는 방식으로 암호화 과정을 수행할 수 있다. 즉, 숫자 데이터(P)가 실수이면, 소수점 아래만큼을 정수로 변환하여 처리하면 된다. 이와 같이 정수뿐만 아니라 특히, 실수 데이터에 대해서도, 교란화를 통하여 순서유지 암호화를 수행하여 데이터베이스에 안전하게 저장할 수 있으며, 일치검색, 범위검색, MIN, MAX, COUNT 검색 시에는 효율적인 검색 속도를 보장할 수 있다.
그리고, 통신망(200)은 각종 유무선 통신망을 포함하는 것으로, 데이터 암호화 서버(100)와 클라이언트(300)간의 유무선 데이터 통신(예를 들면, 데이터 검색 요청, 검색 조건 데이터 전송, 검색된 평문 데이터 전송 등)을 수행한다.
한편, 클라이언트(300)는 데이터 송수신이 가능한 통신 단말기를 포함하는 것으로, 특정 조건에 따른 데이터 검색을 통신망(200)을 통해 데이터 암호화 서버(100)에 요청하고, 이에 대응하여 데이터 암호화 서버(100)로부터 전송되는 검색된 평문 데이터를 수신 및 제공한다.
따라서, 상술한 바와 같은 데이터 검색 시스템을 이용하여 평문 데이터를 순서 교란 기법을 통해 교란시키고, 이를 순서 유지 암호화 기법을 통해 암호화하여 그 암호화 데이터를 저장할 수 있으며, 이에 대한 검색 요청 시 SQL 쿼리를 변환하여 해당 범위의 암호화 데이터를 추출하고, 이를 순서 유지 암호화 기법에 대응하여 복호화한 후에, 순서 교란 기법에 대응하여 복원하여 검색 요청에 따른 평문 데이터를 제공할 수 있다.
다음에, 상술한 바와 같은 구성을 갖는 데이터 검색 시스템을 이용하여 평문 데이터를 순서 교란 기법 및 순서 유지 암호화 기법을 통해 암호화하여 그 암호화 데이터를 저장한 후에, 이에 대한 검색 요청 시 SQL 쿼리를 변환하여 암호화 데이터를 추출하고, 이를 복호화 및 복원하여 검색 요청에 따른 평문 데이터를 전송하는 과정에 대해 설명한다.
도 7은 본 발명에 따라 순서 교란과 순서 유지 암호화를 이용하여 데이터를 암호화하고, 이를 검색하는 과정을 도시한 플로우차트이다.
도 7을 참조하면, 데이터 암호화 서버(100)의 입력부(102)에서는 도 2에 도시한 바와 같이 범위를 지정하기 위해 전체 평문 범위 내에서 0을 포함하며, K를 시드(seed)로 하는 j 개의 의사 난수 "R={R1, R2, R3, ... , Rj}"를 생성한 후에, 각 의사 난수 Ri에서 시작하여 다음 포인트에서 끝나는 범위를 Ai로 하는 j 개의 범위값 "A = {A1, A2, ... , Aj}"를 생성하고, 각 구역의 순서값 g를 결정하는 방식으로 평문 도메인 상에서 임의로 범위가 지정된 평문 데이터를 교란부(104)에 입력시킨다(단계702).
그리고, 교란부(104)에서는 입력부(102)로부터 입력되는 평문 데이터를 반전된 값으로 변환(예를 들면, 특정 부부에 대한 값을 좌우 방향으로 뒤집음)하고, 반전된 값을 특정 위치에 재배치(치환)하여 전체 순서를 뒤섞는 과정을 포함하는 순서 교란 기법을 수행하여 교란 데이터를 생성한다(단계704).
여기에서, 반전 과정의 경우 도 3a 내지 도 3d에 도시한 바와 같은 과정을 통해 값(P-1)을 출력하는데, 평문 데이터(P)를 반전된 값(P-1)으로 변환하여 특정 부분에 대한 값을 좌우방향으로 뒤집는데, 이는 외부에서 보았을 때 구역 내의 순서가 오름차순인지 내림차순인지 판별할 수 없도록 하는 역할을 하며, 치환 과정의 경우 반전된 값(P-1)을 특정 위치에 재배치함으로써 전체 순서를 뒤섞는데, 이러한 반전 과정 및 치환 과정을 통해 평문 데이터를 특정한 다른 값(교란 데이터)으로 변경할 수 있으며, 이 과정에서 순서는 뒤섞이게 된다.
다음에, 암호화부(106)에서는 교란부(104)를 통해 반전 및 치환된 교란 데이터를 전달받아 특정 조건(예를 들면, 구역 순서, 평문 순서 등)에 따라 정렬시키는 순서 유지 기법을 통해 암호화 데이터를 생성하고(단계706), 이를 암호화 정보 데이터베이스(108)에 저장한다(단계708). 일 예로서, 도 4a는 반전 및 치환된 교란 데이터를 구역 순서에 따라 정렬시킨 것을 나타내며, 도 4b는 반전 및 치환된 교란 데이터를 평문 순서에 따라 정렬시킨 것을 나타낸다.
한편, 데이터 암호화 서버(100)에서는 클라이언트(300)로부터 통신망(200)을 통해 특정 데이터에 대한 검색 조건(예를 들면, 최대값, 최소값, 일치값, 범위값, 카운트값 등)에 따른 검색 요청이 있는지를 체크한다(단계710).
상기 단계(710)에서의 체크 결과, 특정 데이터에 대한 검색 요청이 있을 경우 데이터 암호화 서버(100)의 쿼리 변환부(110)에서는 SQL 쿼리를 부분적인 범위로 변환 검색하여 정확한 범위 내의 암호화 데이터를 검색 추출한다(단계712). 예를 들어, 도 5a 내지 5c를 참조하여 상술한 바와 같이 시작 범위, 끝 범위, 가운데 범위를 포함하는 검색 범위를 획득하여 변환된 SQL 쿼리를 통해 검색 범위에 대응하는 암호화 데이터를 검색 추출할 수 있다.
그리고, 복호화부(112)는 쿼리 변환부(110)를 통해 변환된 SQL 쿼리에 따라 검색 추출된 암호화 데이터를 쿼리 변환부(110)로부터 전달받아 순서 유지 암호화 기법에 대응되는 복호화를 수행한다(단계714).
다음에, 복원부(114)는 복호화(112)로부터 전달되는 복호화된 교란 데이터를 순서 교란 기법에 대응하여 역치환 과정과 역반전 과정을 수행함으로써, 교란 데이터를 평문 데이터로 복원하며(단계716), 검색 조건에 따른 이러한 평문 데이터를 통신망(200)을 통해 클라이언트(300)로 전송한다(단계718). 일 예로서, 도 6a 및 도 6b에 도시한 바와 같이 역치환 과정의 경우 교란된 값(PD)을 역치환하여 반전된 평문 데이터(P-1)를 계산하며, 역반전 과정의 경우 역치환된 값(즉, 반전된 평문 데이터, P-1)을 구역당 평문과 같은 오름차순/내림차순을 복원하여 평문 데이터(P)를 획득하여 평문 데이터를 복원할 수 있다.
따라서, 상술한 바와 같이 평문 데이터를 순서 교란 기법을 통해 교란시키고, 이를 순서 유지 암호화 기법을 통해 암호화하여 그 암호화 데이터를 저장할 수 있으며, 이에 대한 검색 요청 시 SQL 쿼리를 변환하여 해당 범위의 암호화 데이터를 추출하고, 이를 순서 유지 암호화 기법에 대응하여 복호화한 후에, 순서 교란 기법에 대응하여 복원하여 검색 요청에 따른 평문 데이터를 효과적으로 제공할 수 있다.
이상의 설명에서는 본 발명의 바람직한 실시 예들을 제시하여 설명하였으나 본 발명이 반드시 이에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능함을 쉽게 알 수 있을 것이다.

Claims (10)

  1. 평문 데이터를 암호화하여 저장하는 데이터 암호화 장치로서,
    상기 평문 데이터의 순서를 교란시켜 그 교란 데이터를 생성하는 교란부와,
    상기 생성된 교란 데이터의 순서를 유지하는 암호화를 통해 생성된 암호화 데이터를 저장하는 암호화부
    를 포함하는 데이터 암호화 장치.
  2. 제 1 항에 있어서,
    상기 데이터 암호화 장치는,
    검색 요청 시 SQL 쿼리를 변환하여 검색 범위에 대응하는 상기 암호화 데이터를 추출하는 쿼리 변환부와,
    상기 추출된 암호화 데이터를 복호화하여 상기 교란 데이터를 전달하는 복호화부와,
    상기 전달되는 교란 데이터를 교란되기 전의 상기 평문 데이터로 복원하는 복원부
    를 더 포함하는 데이터 암호화 장치.
  3. 제 2 항에 있어서,
    상기 교란부는, 상기 평문 데이터를 반전시키고, 치환시켜 순서를 교란하는 데이터 암호화 장치.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 쿼리 변환부는, 범위 1과, 범위 (2~(n-1))과, 범위 n을 포함하는 상기 검색 범위를 획득하고, 상기 검색 범위를 통해 상기 SQL 쿼리를 변환하는 데이터 암호화 장치.
  5. 제 4 항에 있어서,
    상기 복원부는, 상기 교란 데이터를 역치환시키고, 역반전시켜 상기 평문 데이터로 복원하는 데이터 암호화 장치.
  6. 평문 데이터를 암호화하는 데이터 암호화 장치를 이용하여 암호화하는 방법으로서,
    상기 평문 데이터가 입력되면, 상기 입력된 평문 데이터의 순서를 교란시켜 교란 데이터를 생성하는 단계와,
    상기 생성된 교란 데이터에 대한 순서를 유지하는 암호화를 통해 생성된 암호화 데이터를 저장하는 단계
    를 포함하는 데이터 암호화 장치를 이용한 암호화 방법.
  7. 제 6 항에 있어서,
    상기 암호화 방법은,
    상기 암호화 데이터에 대한 검색 요청 시 검색 범위에 따른 SQL 쿼리를 변환하여 해당 범위의 상기 암호화 데이터를 추출하는 단계와,
    상기 추출된 암호화 데이터를 복호화하는 단계와,
    상기 복호화를 통해 획득된 상기 교란 데이터를 교란되기 전의 상기 평문 데이터로 복원하는 단계
    를 더 포함하는 데이터 암호화 장치를 이용한 암호화 방법.
  8. 제 7 항에 있어서,
    상기 교란 데이터를 생성하는 단계는, 상기 평문 데이터를 반전시키고, 치환시켜 상기 평문 데이터를 교란시키는 데이터 암호화 장치를 이용한 암호화 방법.
  9. 제 7 항 또는 제 8 항에 있어서,
    상기 암호화 데이터를 추출하는 단계는, 범위 1과, 범위 (2~(n-1))과, 범위 n을 포함하는 상기 검색 범위를 획득하는 방식으로 수행되는 데이터 암호화 장치를 이용한 암호화 방법.
  10. 제 9 항에 있어서,
    상기 평문 데이터로 복원하는 단계는, 상기 교란 데이터를 역치환시키고, 역반전시키는 방식으로 수행되는 데이터 암호화 장치를 이용한 암호화 방법.
KR1020070134055A 2007-12-20 2007-12-20 데이터 암호화 장치와 이를 이용한 암호화 방법 KR100919824B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070134055A KR100919824B1 (ko) 2007-12-20 2007-12-20 데이터 암호화 장치와 이를 이용한 암호화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070134055A KR100919824B1 (ko) 2007-12-20 2007-12-20 데이터 암호화 장치와 이를 이용한 암호화 방법

Publications (2)

Publication Number Publication Date
KR20090066497A KR20090066497A (ko) 2009-06-24
KR100919824B1 true KR100919824B1 (ko) 2009-10-01

Family

ID=40994477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070134055A KR100919824B1 (ko) 2007-12-20 2007-12-20 데이터 암호화 장치와 이를 이용한 암호화 방법

Country Status (1)

Country Link
KR (1) KR100919824B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180126853A (ko) * 2017-05-18 2018-11-28 뱅크웨어글로벌 주식회사 메타정보 및 엔터프라이즈 프레임웍을 이용한 암호화 sql문 자동 생성 시스템 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102108542B1 (ko) * 2018-01-31 2020-05-07 제주대학교 산학협력단 영상 메타정보 보안 방법 및 이를 이용한 암호화된 영상 데이터 검색 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10173646A (ja) * 1996-12-13 1998-06-26 Mitsubishi Electric Corp 暗号化補助方法、復号化補助方法、およびそれらの方法を用いた装置
KR0150038B1 (ko) * 1994-12-16 1998-10-15 정선종 알고리즘 동기를 이용한 정보 보호 시스템 및 그 방법
KR20020005438A (ko) * 2001-07-03 2002-01-17 남궁석 암호화 처리장치 그 방법
KR20060121772A (ko) * 2006-10-04 2006-11-29 (주)이글로벌시스템 암호화된 컬럼에 대한 색인 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0150038B1 (ko) * 1994-12-16 1998-10-15 정선종 알고리즘 동기를 이용한 정보 보호 시스템 및 그 방법
JPH10173646A (ja) * 1996-12-13 1998-06-26 Mitsubishi Electric Corp 暗号化補助方法、復号化補助方法、およびそれらの方法を用いた装置
KR20020005438A (ko) * 2001-07-03 2002-01-17 남궁석 암호화 처리장치 그 방법
KR20060121772A (ko) * 2006-10-04 2006-11-29 (주)이글로벌시스템 암호화된 컬럼에 대한 색인 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180126853A (ko) * 2017-05-18 2018-11-28 뱅크웨어글로벌 주식회사 메타정보 및 엔터프라이즈 프레임웍을 이용한 암호화 sql문 자동 생성 시스템 및 방법
KR101979320B1 (ko) 2017-05-18 2019-05-16 뱅크웨어글로벌 주식회사 메타정보 및 엔터프라이즈 프레임웍을 이용한 암호화 sql문 자동 생성 시스템 및 방법

Also Published As

Publication number Publication date
KR20090066497A (ko) 2009-06-24

Similar Documents

Publication Publication Date Title
Alloghani et al. A systematic review on the status and progress of homomorphic encryption technologies
WO2018205549A1 (zh) 一种全同态加密的密文查询方法和系统
US9355271B2 (en) System and method for dynamic, non-interactive, and parallelizable searchable symmetric encryption
US10341086B2 (en) Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data
JP6599066B1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
US10038562B2 (en) Method and system for providing encrypted data for searching of information therein and a method and system for searching of information on encrypted data
JP2014002365A (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
US20090138698A1 (en) Method of searching encrypted data using inner product operation and terminal and server therefor
US9037846B2 (en) Encoded database management system, client and server, natural joining method and program
EP3511845B1 (en) Encrypted message search method, message transmission/reception system, server, terminal and programme
EP3356954A1 (en) Method and system for range search on encrypted data
KR20170122458A (ko) 암호문의 크기가 감소되는 동형 암호화 방법
JP6961324B2 (ja) 検索可能暗号処理システム
JP2013127665A (ja) クライアントの状態が予め定められた状態に一致するかを検出するシステム
KR101553986B1 (ko) 분산 데이터 저장, 복원 시스템 및 방법
KR100919824B1 (ko) 데이터 암호화 장치와 이를 이용한 암호화 방법
Tosun et al. FSDS: A practical and fully secure document similarity search over encrypted data with lightweight client
KR20100003093A (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
Devi et al. A comparative study on homomorphic encryption algorithms for data security in cloud environment
Vora et al. Keyword-based private searching on cloud data along with keyword association and dissociation using cuckoo filter
Youn et al. Trapdoor digital shredder: A new technique for improved data security without cryptographic encryption
Rahman et al. A novel privacy preserving search technique for stego data in untrusted cloud
Jiang et al. Secure cloud storage service with an efficient doks protocol
KR100924796B1 (ko) 베타 전개를 이용한 순서 보존 수치 데이타 암호화 시스템및 방법
Hanash Homomorphic encryption of text documents

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
FPAY Annual fee payment

Payment date: 20120910

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130730

Year of fee payment: 19