[go: up one dir, main page]

KR101190059B1 - 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법 - Google Patents

데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법 Download PDF

Info

Publication number
KR101190059B1
KR101190059B1 KR1020080126702A KR20080126702A KR101190059B1 KR 101190059 B1 KR101190059 B1 KR 101190059B1 KR 1020080126702 A KR1020080126702 A KR 1020080126702A KR 20080126702 A KR20080126702 A KR 20080126702A KR 101190059 B1 KR101190059 B1 KR 101190059B1
Authority
KR
South Korea
Prior art keywords
keyword
data
index
search
encrypted data
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020080126702A
Other languages
English (en)
Other versions
KR20100068042A (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 KR1020080126702A priority Critical patent/KR101190059B1/ko
Priority to US12/614,923 priority patent/US8380720B2/en
Publication of KR20100068042A publication Critical patent/KR20100068042A/ko
Application granted granted Critical
Publication of KR101190059B1 publication Critical patent/KR101190059B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

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

Abstract

본 발명은 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법에 관한 것으로서, 사용자의 중요 데이터를 암호화하여 데이터 저장용 서버에 저장한 후, 결합 키워드를 이용하여 데이터 저장용 서버에 저장된 암호화된 데이터를 검색하는 방법에 관한 것이다. 본 발명에 따르면, 암호화된 데이터를 복호화하지 않고도 원하는 데이터를 검색하는 방법으로, 서버는 데이터의 내용이나 키워드를 모른 채로 사용자가 원하는 데이터를 제공함으로써, 사용자의 중요한 데이터에 대한 프라이버시를 보장할 수 있는 이점이 있다. 또한, 암호화된 데이터 검색 시 연산 시간을 단축시킴으로써, 기존의 pairing 연산에 기반한 방법이 가지는 과도한 연산량으로 인해 효율성이 저하되는 것을 방지할 수 있는 이점이 있다.
암호화 데이터, 결합 키워드 검색, 인덱스, 트랩도어, 키워드 필드

Description

데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법{Method for data encryption and method for conjunctive keyword search of encrypted data}
본 발명은 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법에 관한 것으로, 특히 사용자의 중요한 데이터를 외부 서버에 저장하는 경우, 외부 서버로부터 사용자의 데이터가 유출되는 것을 방지하고자 하는 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 유비쿼터스원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2005-Y-001-04, 과제명: 차세대 시큐리티 기술개발].
최근 기업 데이터베이스에서의 고객 정보 유출 사례 등에서 알 수 있듯이, 이러한 외부 저장 공간에 저장된 정보에 대한 보안 문제가 이슈가 되고 있다. 데이터베이스 등에서 정보를 보호하기 위해 주로 사용되는 접근 제어나 키 관리 기술들은 외부 침입자를 막는데 유효한 방법이지만, 외부 저장 공간의 소유자가 저장되어 있는 데이터를 열람, 유출 및 악의적으로 사용하는 것을 근본적으로 방지하지 못한다. 우선 정보를 안전하게 저장하기 위해 데이터를 암호화하여 저장하는 방법을 생 각할 수 있다. 그러나 일반적인 데이터 검색 방법으로는 암호화된 데이터에 대한 검색 자체가 불가능하기 때문에 이를 고려한 검색 기법이 필요하다.
암호화된 데이터 검색은 암호화된 자료를 복호화하지 않고도 원하는 자료를 검색하는 기술로, Song 등(IEEE Security and Privacy Symposium 2000)에 의해 처음 시작되었으며, 대부분의 방법은 특정한 하나의 키워드에 대한 암호 데이터 검색 방법이 주를 이루고 있다.
이러한 기본적인 검색 이외에 여러 개의 키워드에 대한 결합 키워드 검색을 고려할 때, 가장 쉬운 방법은 하나의 키워드 검색을 여러 번 수행하여 검색 결과를 도출할 수 있다. 그러나 결합 키워드 검색의 중요한 프라이버시 이슈는 여러 개의 키워드에 대한 결합 키워드 검색을 수행하면서 각각의 키워드에 대한 정보를 드러내지 않는 것이다.
예를 들어 키워드 A, B가 동시에 포함되는(A∩B) 문서를 검색하는 경우, 사용자는 검색 결과로 나온 암호 데이터 이외에 단지 A만 포함되어 있는 다른 암호 데이터에 대한 정보뿐만 아니라 A라는 키워드로 문서를 검색한다는 사실 조차도 드러내지 않아야 한다. 여기에서 B도 마찬가지이다. 이러한 경우에 적용할 수 있는 방법으로 모든 키워드에 대한 결합(conjunction) 결과를 문서에 대한 인덱스로 저장하는 것이다. 그러나 이러한 방법은 데이터 각각에 대한 키워드의 개수가 m이고, r개 이하의 키워드에 대한 결합을 저장하는 경우 mC1 + mC2 + … + mCr개의 인덱스를 저장해야 한다. 최악의 경우 r = m 이라면, 거의 2m 개의 인덱스를 저장해야 하기 때문에 저장 공간이 기하급수적으로 늘어나는 문제점이 발생한다.
이러한 문제를 해결하기 위한 결합 키워드 검색(conjunctive keyword search) 방법은 Golle 등(ACNS 2004)에 의해 제안된 이후 몇몇 연구가 진행되고 있다. 대부분의 결합 키워드 검색은 많은 연산량이 필요한 pairing 연산(한번의 pairing 연산은 6번에서 20번 정도의 지수승 연산을 수행하는 속도와 유사하다고 알려져 있음)에 기반한 방법이 주를 이루고 있으나, 이러한 방법은 효율성 측면에서 문제가 있기 때문에 실용화에는 한계가 존재한다.
본 발명의 목적은, 외부의 데이터 저장용 서버에 저장된 사용자의 데이터를 안전하고 빠르게 검색하도록 하는 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법을 제공함에 있다.
또한, 본 발명의 다른 목적은, 특정한 하나의 키워드에 대한 암호 데이터 검색뿐만 아니라, 복수의 키워드에 대한 결합 키워드 검색이 가능한 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법을 제공함에 있다.
또한, 본 발명의 다른 목적은, 데이터 검색 시 검색 키워드를 암호화함으로써 사용자 데이터에 대한 프라이버시를 강화하고, 연산 시간을 단축시켜 효율적인 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법을 제공함에 있다.
상기한 목적을 달성하기 위한 본 발명에 따른 데이터 암호화 방법은, 데이터 암호화용 비밀키 및 암호화된 데이터의 인덱스 생성용 비밀키를 생성하는 단계, 상기 데이터 암호화용 비밀키를 이용하여 데이터 저장용 서버에 저장하기 위한 데이터를 암호화하는 단계, 복수의 키워드 필드를 구비하고, 상기 데이터로부터 복수의 키워드를 추출하여 해당 속성의 키워드 필드에 각각 입력하는 단계, 및 상기 추출된 각 키워드를 인덱스 생성용 비밀키로 암호화하고, 상기 복수의 키워드 필드의 주소 및 상기 암호화된 키워드를 이용하여 상기 암호화된 데이터의 인덱스를 생성하는 단계를 포함한다.
상기 데이터를 암호화하는 단계는, 대칭키 암호화 알고리즘을 이용하여 상기 데이터를 암호화하도록 한다.
상기 비밀키를 생성하는 단계는, n=pㆍq, p=2p'+1 및 q=2q'+1(p' 및 q'는 소수)을 만족하는 p, q, n을 산출하는 단계를 포함한다. 상기 인덱스를 생성하는 단계는, 각 키워드에 대해, 상기 산출하는 단계에서 산출된 상기 n의 값을 이용하여 인덱스를 생성하도록 한다. 또한, 상기 인덱스를 생성하는 단계는, 각 키워드 필드에 대응하는 키워드를 상기 인덱스 생성용 비밀키를 이용하여 해쉬한 값을, 0 부터 n-1까지의 값 중 선택된 값에 지수승하여 산출된 값으로부터 인덱스를 생성하도록 한다.
한편, 상기 인덱스를 생성하는 단계는, 상기 0 부터 n-1까지의 값 중 선택된 값을 해쉬하여 인덱스 식별자를 산출하는 단계를 포함하며, 상기 인덱스 식별자는 상기 인덱스에 포함된 것을 특징으로 한다.
상기 키워드 필드는 각 키워드 필드별로 다른 속성값을 가지며, 상기 키워드는 상기 키워드에 해당되는 속성값을 갖는 키워드 필드에 입력되는 것을 특징으로 한다.
또한, 본 발명에 따른 데이터 암호화 방법은, 상기 암호화된 데이터 및 상기 암호화된 데이터의 인덱스를 데이터 저장용 서버에 전송하는 단계를 더 포함한다.
한편, 상기한 목적을 달성하기 위한 본 발명에 따른 암호화된 데이터의 결합 키워드 검색방법은, 사용자 단말기에서 데이터 저장용 서버에 저장된 암호화된 데이터의 결합 키워드 검색방법으로서, 암호화된 데이터의 검색을 위한 검색 키워드 를 선정하는 단계, 암호화된 데이터의 키워드 필드 중 상기 선정된 검색 키워드에 대응하는 키워드 필드 주소를 확인하는 단계, 상기 암호화된 데이터의 인덱스를 생성하는데 이용된 인덱스 생성용 비밀키를 이용하여, 상기 검색 키워드에 대한 트랩도어(trapdoor)를 생성하는 단계, 및 상기 생성된 트랩도어 및 상기 확인하는 단계에서 확인된 키워드 필드 주소를 상기 데이터 저장용 서버로 전송하는 단계를 포함한다.
상기 검색 키워드를 선정하는 단계는, 복수개의 키워드를 선정하도록 한다.
상기 트랩도어를 생성하는 단계는, 복수개의 키워드를 결합하여 상기 트랩도어를 생성하도록 한다. 또한, 상기 트랩도어를 생성하는 단계는, 암호화된 데이터의 인덱스 생성 시 이용된 비밀값인 p, q로부터, ø(n)=(p-1)ㆍ(q-1)을 만족하는 비밀값 ø(n)의 역원을 산출하여 트랩도어를 생성하도록 한다. 또한, 상기 트랩도어를 생성하는 단계는, 하나 이상의 검색 키워드를 인덱스 생성용 비밀키를 이용하여 해쉬한 값의 합을 이용하여 트랩도어를 생성하도록 한다.
한편, 상기한 목적을 달성하기 위한 본 발명에 따른 암호화된 데이터의 결합 키워드 검색방법은, 데이터 저장용 서버에서 암호화된 데이터의 결합 키워드 검색방법으로서, 사용자 단말기로부터 검색 키워드에 대한 트랩도어 및 해당 검색 키워드에 대응하는 키워드 필드 주소를 수신하는 단계, 상기 데이터 저장용 서버에 저장된 암호화된 데이터에 대해, 상기 수신된 키워드 필드 주소에 해당하는 인덱스 값을 추출하는 단계, 상기 추출된 인덱스 값과 상기 트랩도어를 이용하여 해당 데이터가 검색 키워드를 포함하는지 확인하는 단계, 및 상기 확인하는 단계의 확인 결과에 따라 해당 데이터를 해당 사용자 단말기로 전송하는 단계를 포함한다.
상기 사용자 단말기로부터 수신된 트랩도어는, 복수개의 키워드를 결합하여 생성된 것을 특징으로 한다.
상기 확인하는 단계는, 상기 수신된 키워드 필드 주소에 해당되는 각 키워드 필드로부터 추출된 인덱스 값의 곱에 상기 트랩도어를 지수승하여, 상기 인덱스에 포함된 인덱스 식별자와 비교하는 단계를 포함한다. 이때, 상기 비교하는 단계는, 해당 암호화된 데이터의 각 키워드 필드에 대응하는 인덱스 값의 곱에 트랩도어를 지수승하여 해쉬한 값이, 상기 인덱스 식별자의 값과 일치하는 지를 판단하도록 한다.
상기 비교하는 단계의 비교 결과, 상기 인덱스 식별자와 일치하는 경우, 해당 암호화된 데이터가 검색 키워드를 포함하는 것으로 판단하도록 한다.
한편, 본 발명에 따른 암호화된 데이터의 결합 키워드 검색방법은, 상기 수신하는 단계 이전에, 사용자 단말기로부터 암호화된 데이터 및 상기 암호화된 데이터의 인덱스를 수신하는 단계, 및 상기 수신된 암호화된 데이터 및 상기 암호화된 데이터의 인덱스를 저장하는 단계를 더 포함한다.
본 발명에 따르면, 암호화된 데이터를 복호화하지 않고도 원하는 데이터를 검색하는 방법으로, 서버는 데이터의 내용이나 키워드를 모른 채로 사용자가 원하는 데이터를 제공함으로써, 사용자의 중요한 데이터에 대한 프라이버시를 보장할 수 있는 이점이 있다. 또한, 복수의 키워드에 대한 결합 키워드 검색을 통해 얻는 암호 데이터들을 제외하고는, 각각의 키워드에 대한 정보를 서버가 알기 어렵게 함으로써 사용자 데이터에 대한 프라이버시를 강화하게 된다.
또한, 암호화된 데이터 검색 시 연산 시간을 단축시킴으로써, 기존의 pairing 연산에 기반한 방법이 가지는 과도한 연산량으로 인해 효율성이 저하되는 것을 방지할 수 있는 이점이 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명하면 다음과 같다.
도 1은 본 발명에 따른 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법을 구현하기 위한 시스템 구성을 나타낸 도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법은 사용자 단말기와 데이터 저장용 서버(20) 사이에서 이루어진다.
사용자 단말기(10)는 데이터를 데이터 저장용 서버(20)에 저장하기 위해, 해당 데이터를 암호화하여 데이터 저장용 서버(20)로 전송한다. 또한, 사용자 단말기(10)는 해당 데이터로부터 하나 이상의 키워드를 추출하고, 추출된 키워드를 이용하여 인덱스를 생성한다. 또한, 사용자 단말기(10)는 인덱스 생성 시, 키워드 검색을 위한 인덱스 식별자를 산출하여 인덱스에 포함되도록 한다. 이때, 사용자 단말기(10)는 암호화된 데이터를 데이터 저장용 서버(20)에 전송 시, 인덱스도 함께 전송하도록 한다.
이후, 데이터 저장용 서버(20)에 저장된 인덱스는 사용자로부터 암호화된 데 이터를 검색하고자 하는 경우 이용된다. 또한, 인덱스에 포함된 인덱스 식별자는 검색 키워드를 이용하여 암호화된 데이터의 인덱스를 검색하는 동안, 각 데이터의 인덱스가 검색 키워드를 포함하는지 확인하는 비교키 값으로 이용된다.
한편, 사용자 단말기(10)는 데이터를 암호화하기 전에 데이터 암호화용 비밀키(K1)와, 인덱스 생성용 비밀키(K2)를 생성하도록 한다. 여기서, 데이터 암호화용 비밀키(K1) 및 인덱스 생성용 비밀키(K2)는 서로 다른 값을 가지도록 랜덤하게 생성되며, 사용자만 알고 있는 비공개키이다. 사용자 단말기(10)는 데이터 암호화용 비밀키(K1)를 이용하여 데이터를 암호화하고, 인덱스 생성용 비밀키(K2)를 이용하여 키워드를 암호화함으로써 인덱스를 생성하도록 한다.
따라서, 암호화된 데이터 및 인덱스가 데이터 저장용 서버(20)에 저장된다 하더라도, 데이터 저장용 서버(20)는 데이터 암호화용 비밀키(K1)와, 인덱스 생성용 비밀키(K2)를 알지 못하므로, 저장된 데이터의 내용 및 인덱스에 포함된 키워드 정보를 알지 못한다.
사용자 단말기(10)에는 데이터 저장용 서버(20)에 저장된 데이터의 키워드 필드 정보가 저장된다. 여기서, 키워드 필드 정보는 필드 주소 및 필드 속성 정보이다.
한편, 사용자 단말기(10)는 데이터 저장용 서버(20)에 저장된 데이터를 검색하고자 하는 경우, 데이터 검색을 위한 하나 이상의 검색 키워드를 이용하여 트랩 도어(trapdoor) x를 생성한다. 사용자 단말기(10)는 트랩도어(x)와, 검색 키워드에 해당되는 키워드 필드 정보를 데이터 저장용 서버(20)에 전송하도록 한다. 여기서, 키워드 필드 정보는 입력된 검색 키워드의 속성에 해당되는 키워드 필드의 주소 정보이다. 사용자 단말기(10)는 데이터의 인덱스를 생성하는데 이용된 인덱스 생성용 비밀키(K2)를 이용하여 검색 키워드를 암호화함으로써 트랩도어(x)를 생성하도록 한다. 마찬가지로, 데이터 저장용 서버(20)는 인덱스 생성용 비밀키(K2)를 알지 못하므로 트랩도어(x)에 포함된 검색 키워드 정보를 알지 못한다.
데이터 저장용 서버(20)는 사용자 단말기(10)에 의해 암호화된 데이터 및 암호화된 데이터에 대한 인덱스를 저장한다. 데이터 저장용 서버(20)는 사용자로부터 트랩도어(x) 및 해당 키워드 필드의 주소 정보가 수신되면, 수신된 트랩도어(x)와 해당 키워드 필드 주소를 이용하여 저장된 인덱스를 탐색한다.
이때, 데이터 저장용 서버(20)는 사용자 단말기(10)로부터 수신된 키워드 필드 주소를 이용하여 키워드 필드 주소에 해당되는 인덱스 값을 추출한다. 또한, 데이터 저장용 서버(20)는 해당 데이터의 인덱스에 포함된 인덱스 식별자를 추출한다. 데이터 저장용 서버(20)는 추출된 인덱스 값에 사용자 단말기(10)로부터 수신된 트랩도어(x)를 적용한 값에 대한 해쉬값을 산출하고, 산출된 해쉬값과 인덱스 식별자를 비교한다.
만일, 산출된 해쉬값과 일치하는 인덱스 식별자를 갖는 인덱스가 검출되면, 데이터 저장용 서버(20)는 트랩도어(x)에 포함된 검색 키워드와 해당 인덱스 내의 키워드가 일치하는 것으로 판단한다. 따라서, 데이터 저장용 서버(20)는 해당 데이터를 추출하여 사용자 단말기(10)로 전송하도록 한다. 따라서, 데이터 저장용 서버(20)는 데이터 및 인덱스의 내용을 알지 못한채, 사용자로부터 입력된 검색 키워드에 해당되는 데이터를 제공하는 것이 가능하게 된다.
이후, 사용자 단말기(10)는 데이터 저장용 서버(20)로부터 수신된 데이터를 초기 생성된 데이터 암호화용 비밀키(K1)를 이용하여 복호화한 후, 출력하도록 한다.
이에, 도 2 내지 도 4를 참조하여, 사용자 단말기와 데이터 저장용 서버 사이의 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법을 좀 더 상세히 살펴 보고자 한다.
먼저, 도 2는 본 발명에 따른 데이터 암호화 방법에 대한 동작 흐름을 나타낸 순서도로서, 사용자 단말기에서 데이터를 암호화하여 데이터 저장용 서버에 저장하는 동작 흐름을 나타낸 것이다.
도 2를 참조하면, 사용자 단말기(10)에는 소정의 데이터가 저장된다(S100). 이때, 사용자 단말기(10)는 각 데이터마다 복수의 키워드를 저장할 수 있는 키워드 필드를 구비한다. 사용자 단말기(10)는 해당 데이터로부터 복수의 키워드를 추출하도록 한다(S110). 추출된 각 키워드는 해당 필드 속성을 갖는 키워드 필드에 각각 대응된다. 이때, 사용자는 다른 키워드 필드에 동일 키워드가 입력되는 것을 차단한다.
한편, 사용자 단말기(10)는 저장된 데이터를 데이터 저장용 서버(20)에 보관하기 위해 데이터를 암호화한다. 이때, 데이터를 암호화하기 위한 데이터 암호화용 비밀키(K1) 및 데이터에 대한 인덱스를 생성하기 위한 인덱스 생성용 비밀키(K2)를 생성하도록 한다(S120). 따라서, 사용자 단말기(10)는 데이터 암호화용 비밀키(K1)를 이용하여 저장된 데이터를 암호화한다(S130). 또한, 사용자 단말기(10)는 인덱스 생성용 비밀키(K2)를 이용하여 암호화된 데이터의 인덱스를 생성하도록 한다(S140).
사용자 단말기(10)는 암호화된 데이터 및 인덱스를 데이터 저장용 서버(20)로 전송하여, 해당 데이터가 데이터 저장용 서버(20)에 저장되도록 한다(S150). 이후, 사용자 단말기(10)에 저장된 데이터는 삭제된다. 즉, 사용자 단말기(10)에는 데이터 저장용 서버(20)에 저장된 데이터의 키워드 검색을 위한 키워드 필드만 저장된다.
이 과정에서, 사용자 단말기(10)는 데이터를 암호화한 상태에서 데이터 저장용 서버(20)에 전송하기 때문에, 데이터 저장용 서버(20)는 비밀키를 알지 못하므로 해당 데이터의 내용을 확인할 수 없다. 물론, 데이터 저장용 서버(20)에 접속한 다른 사용자도 비밀키를 알지 못하므로 해당 데이터의 내용을 확인할 수가 없게 된다. 따라서, 개인용 데이터를 보안등급이 낮은 데이터 저장용 서버(20)에 저장하더라도, 해당 데이터의 내용이 외부로 유출되는 것을 방지할 수 있다.
또한, 사용자 단말기(10)는 데이터 검색용 인덱스를 생성함에 있어서도, 비 밀키를 이용하여 해당 데이터의 각 키워드를 암호화함으로써, 해당 인덱스가 저장된 데이터 저장용 서버(20) 또는 다른 사용자에게 인덱스의 내용이 유출되는 것을 방지할 수 있다.
도 3은 본 발명에 따른 암호화된 데이터의 결합 키워드 검색방법으로서, 사용자 단말기에서 데이터 저장용 서버에 저장된 데이터를 검색하는 동작 흐름을 나타낸 것이다.
도 3을 참조하면, 사용자 단말기(10)는 하나 이상의 검색 키워드가 입력되면, 입력된 검색 키워드의 속성에 해당되는 키워드 필드의 주소를 탐색한다(S200). 예를 들어, '홍길동'과 같은 <이름> 속성의 검색 키워드가 입력되면, 사용자 단말기(10)는 각 데이터의 이름 속성에 해당되는 키워드 필드 주소를 탐색하도록 한다. 물론, 검색 키워드가 둘 이상인 경우에는 각 검색 키워드에 해당되는 키워드 필드 주소를 모두 탐색하도록 한다.
또한, 사용자 단말기(10)는 도 2의 'S120' 과정에서 생성된 인덱스 생성용 비밀키(K2)를 이용하여, 입력된 하나 이상의 검색 키워드에 대한 트랩도어(x)를 생성한다(S210). 이때, 사용자 단말기(10)는 'S200'과정에서 탐색된 키워드 필드의 주소 및 'S210' 과정에서 생성된 트랩도어(x)를 데이터 저장용 서버(20)로 전송함으로써, 검색 키워드를 포함하는 데이터를 요청한다(S220).
만일, 사용자 단말기(10)는 데이터 저장용 서버(20)로부터 검색 키워드에 대응하는 데이터가 수신되면(S230), 도 2의 'S120' 과정에서 생성된 데이터 암호화용 비밀키(K1)를 이용하여 수신된 데이터를 복호화한다(S240). 다시 말해, 데이터 저장용 서버(20)로부터 수신된 데이터는 사용자 단말기(10)에 의해 암호화된 데이터이므로, 해당 데이터를 암호화하는데 이용된 비밀키(K1)를 이용하여 판독 가능한 상태로 복호화하도록 한다. 따라서, 사용자 단말기(10)는 해당 데이터를 복호화한 후, 복호화된 데이터를 출력하도록 한다(S250).
한편, 사용자 단말기(10)는 데이터 저장용 서버(20)로부터 검색에 실패하였음을 알리는 알림 메시지가 수신되면(S260), 수신된 검색 실패 알림 메시지를 출력한다(S270). 이후, 해당 데이터 저장용 서버(20)로 해당 데이터의 검색을 재요청할 수 있다. 또한, 다른 검색 키워드를 이용하여 데이터 저장용 서버(20)로 해당 데이터의 검색을 요청하고자 하는 경우(S280), 사용자 단말기(10)는 'S200' 내지 'S270' 과정을 반복하여 수행하도록 한다.
도 4는 본 발명에 따른 암호화된 데이터의 결합 키워드 검색방법에 대한 동작 흐름을 나타낸 순서도로서, 데이터 저장용 서버에서 암호화된 데이터를 검색하는 동작 흐름을 나타낸 것이다.
도 4를 참조하면, 데이터 저장용 서버(20)는 사용자 단말기(10)로부터 암호화된 데이터 및 그에 대응하는 인덱스 수신 시(S300), 수신된 데이터 및 그에 대응하는 인덱스를 저장한다(S310).
이후, 사용자 단말기(10)로부터 하나 이상의 검색 키워드에 대한 트랩도어(x) 및 키워드 필드 주소를 수신하면, 데이터 저장용 서버(20)는 해당 검색 키워 드를 포함하는 데이터를 검색하도록 한다. 이때, 데이터 저장용 서버(20)는 암호화된 데이터 및 트랩도어(x)의 비밀키를 알지 못하므로, 데이터의 내용 및 트랩도어(x)에 포함된 검색 키워드를 알지 못한채 해당 데이터의 검색을 수행하게 된다.
다시 말해, 데이터 저장용 서버(20)는 사용자 단말기(10)로부터 수신된 키워드 필드 주소를 이용하여, 저장된 인덱스로부터 해당 키워드 필드 위치를 확인한다. 해당 키워드 필드 위치가 확인되면, 데이터 저장용 서버(20)는 해당 키워드 필드의 인덱스 값과 트랩도어(x)를 이용하여 해쉬값을 산출한다(S340). 한편, 데이터 저장용 서버(20)는 해당 데이터의 인덱스로부터 인덱스 식별자를 추출한다(S350). 이때, 데이터 저장용 서버(20)는 'S340'과정에서 산출된 해쉬값과, 'S350'과정에서 추출된 인덱스 식별자를 비교한다(S360).
여기서, 인덱스 값과 트랩도어(x)로부터 해쉬값을 산출하는 과정 및 인덱스 식별자를 비교하는 과정에 대한 구체적인 설명은 [수학식 4]를 참조하도록 한다. 이때, 해당 인덱스가 트랩도어(x)의 검색 키워드를 포함하는 경우, 두 값은 서로 일치하게 된다.
따라서, 'S360' 과정에서의 비교 결과가 서로 일치하는 경우, 데이터 저장용 서버(20)는 인덱스 값에 해당하는 데이터를 추출하고(S380), 추출된 데이터를 사용자 단말기(10)로 전송하도록 한다(S390). 반면, 'S360' 과정에서의 비교 결과가 서로 일치하지 않는 경우, 데이터 저장용 서버(20)는 검색에 실패하였음을 알리는 알림 메시지를 생성하여 사용자 단말기(10)로 전송하도록 한다(S400).
도 5 내지 도 7은 본 발명에 따른 데이터 암호화 검색방법을 설명하는데 참 조되는 예시도이다.
먼저, 도 5 및 도 6은 사용자 단말기에 저장된 데이터 구조를 나타낸 예시도이다. 사용자 단말기(10)에는 도 5에 도시된 바와 같이, Data1, Data2, ... , DataI로 총 I개의 데이터가 저장되어 있다. 이때, 사용자 단말기(10)는 데이터 저장 시, 각 데이터의 키워드를 함께 저장하도록 한다. 키워드는 각 데이터마다 복수의 키워드 필드를 구비하고, 각 키워드 필드 내에 해당 키워드를 각각 저장하도록 한다. 이때, 각 키워드 필드는 서로 다른 속성을 가지며, 해당 속성에 해당되는 키워드가 각 키워드 필드에 저장된다. 여기서, 각 키워드 필드에는 동일한 키워드가 저장될 수 없다.
도 6을 참조하면, 하나의 데이터에 대해, 복수의 키워드 필드가 존재한다. 즉, 키워드 필드1, 키워드 필드2, ... , 키워드 필드J로 총 J개의 키워드 필드가 존재한다. 이때, 키워드 필드1은 "이름" 속성을 가지며, 키워드 필드2는 "생일" 속성을 갖는다. 또한, 키워드 필드J는 "주소" 속성을 갖는다. 이때, 제안된 기법의 안전성을 위해 서로 다른 키워드 필드에 같은 키워드가 나타날 수 없다고 가정한다. 도 6의 예에서 보듯이, 해당 데이터의 키워드가 "이름:홍길동", "생일:1960-01-01"인 경우, "이름:홍길동"은 이름 속성을 갖는 키워드 필드1에 저장되며, "생일:1960-01-01"은 생일 속성을 갖는 키워드 필드2에 저장된다. 한편, 주소 속성에 해당되는 키워드는 존재하지 않으므로, 주소 속성을 갖는 키워드 필드J는 "주소:Null" 상태가 되도록 한다. 이 경우 서로 다른 두 개의 키워드 필드에 같은 키워드가 나타나지 않게 된다.
도 6은 하나의 데이터에 대한 키워드 필드 구조를 나타낸 것으로, 도 5의 Data1, Data2, ... , DataI는 각각 도 6의 키워드 필드 구조를 갖는다.
한편, 사용자 단말기(10)는 도 5 및 도 6의 구조를 갖는 데이터를 암호화하는 경우, 아래 [수학식1]의 함수를 이용하도록 한다.
Figure 112008085769018-pat00001
여기서, EK1(Di)는 데이터 암호화용 비밀키 K1을 이용하여 데이터를 암호화하는 대칭키 암호 알고리즘으로써, Data1, Data2, ... , DataI 중 i번째(1≤i≤I, i는 정수) 데이터를 암호화하도록 한다. 물론, 사용자 단말기(10)는 Data1, Data2, ..., DataI 각각에 대해 대칭키 암호 알고리즘을 적용함으로써, 암호화된 데이터 EK1(D1), EK1(D2), ... , EK1(DI)를 생성하도록 한다.
한편, hK2(Wij)는 인덱스 생성용 비밀키 K2를 이용하여 암호화된 데이터의 인덱스를 생성하기 위한 해쉬(hash) 함수로, i번째 데이터의 키워드 필드 중 j번째(1≤j≤J, j는 정수) 키워드 필드에 해당되는 키워드 Wij를 암호화하여 인덱스를 생성하도록 한다. 여기서, h는 일반적인 keyed 해쉬함수로써, 공개된 함수이다. 또한, 키워드 hK2(Wij)는 편의상 hij로 하여 설명하도록 한다.
이때, 사용자 단말기(10)는 키워드 필드에 저장된 각각의 키워드에 대해 해쉬함수를 적용하도록 한다. 즉, 사용자 단말기(10)는 Data1, Data2, ... , DataI 까지 모든 데이터에 대해 hK2(Wi1), hK2(Wi2), ... , hK2(WiJ)를 각각 산출하도록 한다. 또한, 사용자 단말기(10)는 산출된 hK2(Wi1), hK2(Wi2), ... , hK2(WiJ)를 이용하여 인덱스를 생성하도록 한다. [수학식 2]는 i 번째 데이터인 Data i에 대한 인덱스를 I(i)라 가정하였을 때, I(i)를 나타낸 것이다.
Figure 112008085769018-pat00002
사용자 단말기(10)는 해당 데이터의 키워드 검색 시 이용되는 인덱스 식별자인 h(ai)를 산출하도록 한다. 따라서, Data i의 인덱스는 인덱스 식별자인 h(ai)와, 각각의 키워드 필드에 해당하는 인덱스 값 (ai)hi1 mod n, (ai)hi2 mod n, ... , (ai)hiJ mod n을 포함한다.
여기서, ai는 임의의 상수값으로서, 0부터 n-1 까지의 수 중 랜덤하게 선택된다. 또한, n은 임의의 수인 p와 q의 곱에 의해 산출된 값이다. 이때, p, q는 p=2p'+1, q=2q'+1(p', q'는 소수)를 만족하는 수이다. 여기서, n은 외부에 공개되는 값으로, RSA의 안정성에 기반하여 1024비트 이상의 크기를 갖는 수로 결정한다. 한편, p, q는 비공개 값이다.
상기와 같이, 암호화된 데이터 및 그에 대응하는 인덱스는 도 7과 같다. 도 7에서 (A)는 암호화된 각 데이터 목록을 나타낸 것이며, (B)는 암호화된 데이터에 대응되는 인덱스를 나타낸 것이다. (B)의 인덱스에서 h(a1), h(a2), ... , h(aI)는 각 데이터의 인덱스 식별자를 나타낸 것이다. 이때, 인덱스는 대응하는 암호화된 데이터에 포함된 형태로 구현될 수 있으나, 별도의 인덱스 파일 형태로 구현될 수 있다.
따라서, 데이터 저장용 서버(20)는 사용자 단말기(10)로부터 수신된 암호화된 데이터(A)와, 그에 대응하는 인덱스(B)를 DB에 저장하도록 한다.
다음은, 도 2의 사용자 단말기(10)에서 트랩도어(x)를 생성하는 방법에 대한 구체적인 실시예를 설명하고자 한다.
먼저, 데이터 저장용 서버(20)에서 검색하고자 하는 데이터의 검색 키워드가 Wj1, Wj2, ... . Wjt라고 가정한다. 즉, 검색 키워드는 총 t개이다. 이때, 검색 키워드는 각 키워드 필드의 속성별로 하나의 검색 키워드가 입력되며, 검색 키워드의 수는 전체 키워드 필드의 수를 넘지 않도록 한다.
사용자 단말기(10)는 각 검색 키워드의 속성을 감지하고, 감지된 속성에 해당되는 키워드 필드 주소를 추출한다. 각 검색 키워드에 해당되는 키워드 필드 주소는 j1, j2, ... , jt 이다. 여기서, 아래 [수학식 3]을 참조하여 검색 키워드 Wj1, Wj2, ... . Wjt에 대한 트랩도어 x를 산출하도록 한다.
Figure 112008085769018-pat00003
다시 말해, 사용자 단말기(10)는 인덱스 생성용 비밀키인 K2를 이용하여 각각의 검색 키워드 Wj1, Wj2, ... . Wjt의 해쉬값인 hK2(Wj1), hK2(Wj2), ... , hK2(Wjt)를 산출하고, 각 검색 키워드의 해쉬값의 합인 H를 산출한다. 또한, 사용자 단말기(10)는 초기 인덱스 생성 시 이용된 비밀값인 p, q를 이용하여 ø(n)을 산출한다.
이때, 사용자 단말기(10)는 H와 ø(n)을 xH=1 mod ø(n)에 적용함으로써, 트랩도어 x를 생성하도록 한다. 여기서, p, q는 사용자만 알고 있는 비공개 값이므로, 검색 키워드 Wj1, Wj2, ... . Wjt에 대한 트랩도어 x는 사용자에 의해서만 생성될 수 있다. 따라서, 사용자 단말기(10)는 상기와 같이 생성된 트랩도어 x와 검색 키워드의 속성에 해당되는 키워드 필드 주소(j1, j2, ... , jt)를 데이터 저장용 서버(20)로 전송함으로써, 검색 키워드를 포함하는 데이터를 요청한다.
한편, 데이터 저장용 서버(20)는 사용자 단말기(10)로부터 수신된 트랩도어 x와 키워드 필드 주소(j1, j2, ... , jt)를 이용하여 암호화된 데이터에 대한 검색을 수행한다. 이때, 데이터 저장용 서버(20)는 저장된 데이터 EK1(D1), EK1(D2), ..., EK1(DI) 중 검색 키워드를 포함하는 데이터를 검색하기 위해, 먼저 인덱스를 탐색한다. 이때, 데이터 저장용 서버(20)는 수신된 키워드 필드 주소(j1, j2, ... , jt)에 해당되는 인덱스 값을 추출하도록 한다. 즉, 데이터 저장용 서버(20)는 저장된 모든 인덱스 값에 대해 키워드 필드 검색을 수행하는 것이 아니라, 검색 키워드의 속성에 해당되는 키워드 필드의 인덱스 값만을 추출하여, 키워드 필드 검색을 수행하도록 한다. 따라서, 키워드 필드 검색에 따른 연산량을 감소시켜, 보다 빠른 검색 작업을 수행할 수 있게 된다.
즉, 데이터 저장용 서버(20)는 수신된 키워드 필드 주소(j1, j2, ... , jt)를 이용하여 아래 [수학식 4]의 R1, R2를 산출하도록 한다.
Figure 112008085769018-pat00004
즉, 데이터 저장용 서버(20)는 수신된 키워드 필드 주소(j1, j2, ... , jt)에 해당되는 인덱스 값을 추출하고, 추출된 각 인덱스 값을 곱하여 R1을 산출한다. 또한, R1과 트랩도어 x 값을 이용하여 R2를 산출한다. 이 때 R2 ≡ (R1)x mod n이 된다.
한편, 데이터 저장용 서버(20)는 해당 데이터의 인덱스에 포함된 인덱스 식 별자를 추출한다. 이때, 추출된 식별자는 키워드 검색을 위한 비교키 값으로, 데이터 저장용 서버(20)는 인덱스 식별자와 [수학식 4]의 R2를 해쉬한 값을 비교하도록 한다. 예를 들어, Data i에 대한 인덱스로부터 검색 키워드에 해당되는 키워드 필드의 인덱스 값을 추출하여 산출한 값이 h(R2)이면, 해당 데이터의 인덱스 식별자인 h(ai)와 h(R2)를 비교하도록 한다.
이때, 키워드가 일치하면 [수학식 3]으로부터
Figure 112008085769018-pat00005
가 되므로, R1≡ai H mod n이 된다. 여기서, [수학식 3]의 xH≡1 modø(n)으로부터 x≡1/H modø(n)이므로, R2≡(ai H)1/H ≡ai mod n이 된다. 즉, 검색 키워드와 인덱스의 키워드가 일치하는 경우, h(R2)=h(ai)가 성립하게 된다. 따라서, 데이터 저장용 서버(20)는 키워드가 일치하는 데이터 EK1(Di)를 추출하고, 추출된 EK1(Di)를 해당 사용자 단말기(10)로 전송하도록 한다.
반면, [수학식 4]에 의해 산출된 결과값으로부터 h(R2)≠h(ai)인 경우, 데이터 저장용 서버(20)는 검색 키워드와 인덱스의 키워드가 일치하지 않는 것으로 판단하여 해당 검색 키워드를 이용한 검색에 실패하였음을 알리는 알림 메시지를 생성하여, 해당 사용자 단말기(10)로 전송하도록 한다.
본 발명은 기존의 방법에서 주로 사용되는 여러 번의 pairing 연산을 전혀 사용하지 않으며, 기존의 방법에서 사용되는 지수승 연산 수와 비교해 유사한 지수승 연산 수를 사용하며, 그 외에는 단순 대수 연산, 해쉬 함수 연산만을 사용하고 있어 기존 방법에 비해 효율성이 증대된다.
이상에서와 같이 본 발명에 따른 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
도 1 은 본 발명에 따른 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법을 구현하기 위한 시스템 구성을 나타낸 도,
도 2 는 본 발명에 따른 데이터 암호화 방법에 대한 동작 흐름을 도시한 순서도,
도 3 및 도 4 는 본 발명에 따른 암호화된 데이터의 결합 키워드 검색방법에 대한 동작 흐름을 도시한 순서도,
도 5 는 본 발명에 적용되는 데이터 구성을 도시한 예시도,
도 6 은 본 발명에 따른 키워드 필드의 구성을 설명하는데 참조되는 예시도, 그리고
도 7 은 본 발명에 따른 암호화된 데이터 및 암호화된 데이터의 인덱스의 실시예를 나타낸 예시도이다.

Claims (16)

  1. 데이터 저장용 서버에서 수행되는 데이터 암호화 방법으로서,
    데이터 암호화용 비밀키 및 암호화된 데이터의 인덱스 생성용 비밀키를 생성하는 단계;
    상기 데이터 암호화용 비밀키를 이용하여 데이터 저장 서버에 저장하기 위한 데이터를 암호화하는 단계;
    복수의 키워드 필드를 구비하고, 상기 데이터로부터 복수의 키워드를 추출하여 상기 복수의 키워드 필드에 각각 저장하는 단계; 및
    상기 데이터로부터 추출된 키워드가 저장된 키워드 필드의 주소 정보 및 상기 인덱스 생성용 비밀키로 암호화된 키워드를 이용하여 상기 암호화된 데이터의 인덱스를 생성하는 단계를 포함하고,
    상기 키워드 필드는,
    각 키워드 필드별로 다른 속성값을 가지며,
    상기 키워드는,
    상기 키워드에 해당되는 속성값을 갖는 키워드 필드에 저장되는 것을 특징으로 하는 데이터 암호화 방법.
  2. 청구항 1에 있어서,
    상기 비밀키를 생성하는 단계는,
    n=pㆍq, p=2p'+1 및 q=2q'+1(p' 및 q'는 소수)을 만족하는 p, q, n을 산출하는 단계를 포함하고,
    상기 p, 및 상기 q는 랜덤하게 생성된 임의의 수이고, 상기 n은 상기 p와 상기 q의 곱에 의해 산출된 값인 것을 특징으로 하는 데이터 암호화 방법.
  3. 청구항 2에 있어서,
    상기 인덱스를 생성하는 단계는,
    각 키워드에 대해 상기 산출하는 단계에서 산출된 상기 n의 값을 이용하여 인덱스를 생성하는 것을 특징으로 하는 데이터 암호화 방법.
  4. 청구항 2에 있어서,
    상기 인덱스를 생성하는 단계는,
    0 부터 n-1까지의 값 중 선택된 값에, 각 키워드 필드에 저장된 키워드를 상기 인덱스 생성용 비밀키를 이용하여 해쉬한 값을 지수승하여 산출된 값으로부터 인덱스를 생성하는 것을 특징으로 하는 데이터 암호화 방법.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 암호화된 데이터 및 상기 암호화된 데이터의 인덱스를 데이터 저장용 서버에 전송하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 암호화 방법.
  7. 사용자 단말기에서 수행되는 데이터 저장용 서버에 암호화되어 저장된 데이터에 대한 결합 키워드 검색방법으로서,
    암호화된 데이터의 검색을 위한 검색 키워드를 선정하는 단계;
    암호화된 데이터의 각 키워드가 저장된 키워드 필드 중 상기 선정된 검색 키워드가 저장된 키워드 필드의 주소를 확인하는 단계;
    상기 암호화된 데이터의 인덱스를 생성하는데 이용된 인덱스 생성용 비밀키를 이용하여, 상기 검색 키워드에 대한 트랩도어(trapdoor)를 생성하는 단계; 및
    상기 생성된 트랩도어 및 상기 확인하는 단계에서 확인된 키워드 필드의 주소를 상기 데이터 저장용 서버로 전송하는 단계를 포함하고,
    상기 트랩도어를 생성하는 단계는,
    복수의 검색 키워드를 인덱스 생성용 비밀키를 이용하여 해쉬한 값의 합을 이용하여 트랩도어를 생성하는 것을 특징으로 하는 암호화된 데이터의 결합 키워드 검색방법.
  8. 청구항 7에 있어서,
    상기 트랩도어를 생성하는 단계는,
    복수개의 키워드를 결합하여 상기 트랩도어를 생성하는 것을 특징으로 하는 암호화된 데이터의 결합 키워드 검색방법.
  9. 청구항 7에 있어서,
    상기 트랩도어를 생성하는 단계는,
    암호화된 데이터의 인덱스 생성 시 이용된 비밀값인 p, q로부터, ø(n)=(p-1)ㆍ(q-1)을 만족하는 비밀값 ø(n)의 역원을 산출하여 트랩도어를 생성하고,
    상기 p, 및 상기 q는 랜덤하게 생성된 임의의 수이고, 상기 n은 상기 p와 상기 q의 곱에 의해 산출된 값인 것을 특징으로 하는 암호화된 데이터의 결합 키워드 검색방법.
  10. 삭제
  11. 데이터 저장용 서버에서 수행되는 암호화된 데이터의 결합 키워드 검색방법으로서,
    사용자 단말기로부터 검색 키워드에 대한 트랩도어 및 해당 검색 키워드에 대한 키워드 필드의 주소 정보를 수신하는 단계;
    상기 데이터 저장용 서버에 저장된 암호화된 데이터에 대해, 상기 수신된 키워드 필드 주소에 해당하는 인덱스 값을 추출하는 단계;
    상기 추출된 인덱스 값과 상기 트랩도어를 이용하여 해당 데이터가 검색 키워드를 포함하는지 확인하는 단계; 및
    상기 확인하는 단계의 확인 결과에 따라 해당 데이터를 해당 사용자 단말기로 전송하는 단계를 포함하고,
    상기 확인하는 단계는,
    해당 암호화된 데이터의 각 키워드 필드에 대응하는 인덱스 값의 곱에 상기 트랩도어를 지수승하여, 상기 추출된 인덱스 값 중 하나와 비교하는 단계를 포함하는 것을 특징으로 하는 암호화된 데이터의 결합 키워드 검색방법.
  12. 청구항 11에 있어서,
    상기 사용자 단말기로부터 수신된 트랩도어는,
    복수개의 키워드를 결합하여 생성된 것을 특징으로 하는 암호화된 데이터의 결합 키워드 검색방법.
  13. 삭제
  14. 청구항 11에 있어서,
    상기 비교하는 단계는,
    해당 암호화된 데이터의 각 키워드 필드에 대응하는 인덱스 값의 곱에 트랩도어를 지수승하여 해쉬한 값이, 상기 추출된 인덱스 값을 해쉬한 값과 일치하는 지를 판단하는 것을 특징으로 하는 암호화 데이터의 결합 키워드 검색 방법.
  15. 청구항 11에 있어서,
    상기 비교하는 단계의 비교 결과, 일치하는 인덱스 값이 존재하는 경우, 해당 암호화된 데이터가 검색 키워드를 포함하는 것으로 판단하는 것을 특징으로 하는 암호화된 데이터의 결합 키워드 검색방법.
  16. 청구항 11에 있어서,
    상기 수신하는 단계 이전에,
    사용자 단말기로부터 암호화된 데이터 및 상기 암호화된 데이터의 인덱스를 수신하는 단계; 및
    상기 수신된 암호화된 데이터 및 상기 암호화된 데이터의 인덱스를 저장하는 단계;를 더 포함하는 것을 특징으로 하는 암호화된 데이터의 결합 키워드 검색방법.
KR1020080126702A 2008-12-12 2008-12-12 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법 Active KR101190059B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080126702A KR101190059B1 (ko) 2008-12-12 2008-12-12 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법
US12/614,923 US8380720B2 (en) 2008-12-12 2009-11-09 Method for data encryption and method for conjunctive keyword search of encrypted data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080126702A KR101190059B1 (ko) 2008-12-12 2008-12-12 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법

Publications (2)

Publication Number Publication Date
KR20100068042A KR20100068042A (ko) 2010-06-22
KR101190059B1 true KR101190059B1 (ko) 2012-10-16

Family

ID=42241776

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080126702A Active KR101190059B1 (ko) 2008-12-12 2008-12-12 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법

Country Status (2)

Country Link
US (1) US8380720B2 (ko)
KR (1) KR101190059B1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101302137B1 (ko) * 2009-12-16 2013-09-16 한국전자통신연구원 대칭 키 기반 검색 가능 암호 방법
US8762384B2 (en) * 2010-08-19 2014-06-24 Sap Aktiengesellschaft Method and system for search structured data from a natural language search request
KR20120068524A (ko) * 2010-12-17 2012-06-27 한국전자통신연구원 데이터 관리 장치 및 데이터 관리 방법
GB201111554D0 (en) 2011-07-06 2011-08-24 Business Partners Ltd Search index
KR20130040065A (ko) * 2011-10-13 2013-04-23 삼성전자주식회사 전자 장치 및 그 암호화 방법
GB201120314D0 (en) * 2011-11-24 2012-01-04 Business Partners Ltd Secure database searching
WO2013084957A1 (ja) * 2011-12-09 2013-06-13 日本電気株式会社 暗号化検索データベース装置、暗号化検索用データの追加削除方法および追加削除プログラム
CA2877082C (en) * 2012-06-18 2021-06-08 Ologn Technologies Ag Secure password management systems, methods and apparatuses
WO2014028524A1 (en) 2012-08-15 2014-02-20 Visa International Service Association Searchable encrypted data
US9363288B2 (en) 2012-10-25 2016-06-07 Verisign, Inc. Privacy preserving registry browsing
US10565394B2 (en) 2012-10-25 2020-02-18 Verisign, Inc. Privacy—preserving data querying with authenticated denial of existence
US9202079B2 (en) 2012-10-25 2015-12-01 Verisign, Inc. Privacy preserving data querying
US10007803B2 (en) 2012-10-26 2018-06-26 Infosys Limited Searching over encrypted keywords in a database
WO2014114987A1 (en) * 2013-01-25 2014-07-31 Nokia Corporation Personal device encryption
KR102131306B1 (ko) * 2013-05-09 2020-07-07 삼성전자주식회사 데이터관리장치, 데이터관리방법 및 데이터관리시스템
US9552492B2 (en) * 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US10122714B2 (en) 2013-08-01 2018-11-06 Bitglass, Inc. Secure user credential access system
US9553867B2 (en) 2013-08-01 2017-01-24 Bitglass, Inc. Secure application access system
US9646166B2 (en) 2013-08-05 2017-05-09 International Business Machines Corporation Masking query data access pattern in encrypted data
US9852306B2 (en) * 2013-08-05 2017-12-26 International Business Machines Corporation Conjunctive search in encrypted data
IN2014CH00681A (ko) 2014-02-13 2015-08-14 Infosys Ltd
DE112014007083T5 (de) * 2014-10-21 2017-07-13 Mitsubishi Electric Corporation Servervorrichtung, Suchsystem, Endgerätevorrichtung, Suchverfahren, Serverprogramm und Endgeräteprogramm
US10282448B2 (en) * 2014-11-18 2019-05-07 Huawei International Pte. Ltd. System and method for searching a symmetrically encrypted database for conjunctive keywords
CN106874401B (zh) * 2016-12-30 2020-06-23 中安威士(北京)科技有限公司 一种面向数据库加密字段模糊检索的密文索引方法
US10956519B2 (en) * 2017-06-29 2021-03-23 Cisco Technology, Inc. Fine-grained encrypted access to encrypted information
US11170123B2 (en) * 2017-09-12 2021-11-09 Mitsubishi Electric Corporation Registration terminal, key server, search system, and computer readable medium
CN108959503B (zh) * 2018-06-26 2020-12-04 北京阿尔山金融科技有限公司 信息存储方法及装置
CN110727951B (zh) * 2019-10-14 2021-08-27 桂林电子科技大学 具有隐私保护的轻量级外包文件多关键词检索方法及系统
US11573929B2 (en) * 2020-04-09 2023-02-07 Kyndryl, Inc. Deduplication of encrypted data using multiple keys
CN113904823B (zh) * 2021-09-28 2024-02-27 长沙学院 常数级授权计算复杂度的属性基可搜索加密方法及系统
CN115037556B (zh) * 2022-08-09 2022-11-11 晨越建设项目管理集团股份有限公司 一种智慧城市系统中加密数据可授权共享方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100839220B1 (ko) * 2006-10-19 2008-06-19 고려대학교 산학협력단 암호화된 데이터베이스 검색 방법 및 그 시스템

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7362868B2 (en) * 2000-10-20 2008-04-22 Eruces, Inc. Hidden link dynamic key manager for use in computer systems with database structure for storage of encrypted data and method for storage and retrieval of encrypted data
US7519835B2 (en) * 2004-05-20 2009-04-14 Safenet, Inc. Encrypted table indexes and searching encrypted tables
US7783899B2 (en) * 2004-12-09 2010-08-24 Palo Alto Research Center Incorporated System and method for performing a conjunctive keyword search over encrypted data
KR101402904B1 (ko) * 2007-06-13 2014-06-03 삼성전자주식회사 A/v 프로파일을 관리하는 방법, 장치 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100839220B1 (ko) * 2006-10-19 2008-06-19 고려대학교 산학협력단 암호화된 데이터베이스 검색 방법 및 그 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US A1*

Also Published As

Publication number Publication date
US8380720B2 (en) 2013-02-19
KR20100068042A (ko) 2010-06-22
US20100153403A1 (en) 2010-06-17

Similar Documents

Publication Publication Date Title
KR101190059B1 (ko) 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법
Ge et al. Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification
Pasupuleti et al. An efficient and secure privacy-preserving approach for outsourced data of resource constrained mobile devices in cloud computing
EP3356988B1 (en) Method and system for verifiable searchable symmetric encryption
Sun et al. Catch you if you lie to me: Efficient verifiable conjunctive keyword search over large dynamic encrypted cloud data
CN108494768B (zh) 一种支持访问控制的密文搜索方法及系统
KR100903599B1 (ko) 내적을 이용한 암호화된 데이터 검색 방법 및 이를 위한단말 장치와 서버
CN106776904B (zh) 一种不可信云计算环境中支持动态验证的模糊查询加密方法
KR20100062013A (ko) 결합 키워드를 이용한 데이터 암호화 방법 및 데이터 검색방법
CN112800445A (zh) 一种用于密文数据的前后向安全和可验证的布尔查询方法
Liu et al. Verifiable ranked search over dynamic encrypted data in cloud computing
CN104636462B (zh) 一种能抵抗统计分析攻击的快速密文检索方法和系统
CN105282167A (zh) 一种可搜索的无证书公钥加密方法
Wen et al. BDO-SD: An efficient scheme for big data outsourcing with secure deduplication
CN104052740A (zh) 云存储中可验证的基于词典的可搜索加密方法
KR101232385B1 (ko) 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템
KR101217491B1 (ko) 공개키 기반의 키워드 검색 방법
KR101140576B1 (ko) 암호화 문서에 대한 다자간 검색 시스템 및 그 방법
CN114884700B (zh) 抗关键字猜测攻击的可搜索公钥加密批处理方法及系统
JP6732887B2 (ja) データベースクエリのための方法及びシステム
KR100951034B1 (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
Dayıoğlu Secure database in cloud computing-cryptdb revisited
Elkhiyaoui et al. Privacy preserving delegated word search in the cloud
Lee et al. A study of practical proxy reencryption with a keyword search scheme considering cloud storage structure
KR100959064B1 (ko) 복수의 사용자를 위한 검색 가능 암호문 생성 방법 및 그에따른 데이터 검색 방법

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20081212

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20120312

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20120924

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20121005

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20121008

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
G170 Re-publication after modification of scope of protection [patent]
PG1701 Publication of correction
FPAY Annual fee payment

Payment date: 20150817

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20150817

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20160801

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20160801

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20170728

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20170728

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20180710

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20180710

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20190813

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20190813

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20200925

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20210802

Start annual number: 10

End annual number: 10

PR1001 Payment of annual fee

Payment date: 20240328

Start annual number: 12

End annual number: 12

PR1001 Payment of annual fee

Payment date: 20240903

Start annual number: 13

End annual number: 13