KR101489876B1 - 암호화 문서 검색 시스템 및 방법 - Google Patents

암호화 문서 검색 시스템 및 방법 Download PDF

Info

Publication number
KR101489876B1
KR101489876B1 KR20130104110A KR20130104110A KR101489876B1 KR 101489876 B1 KR101489876 B1 KR 101489876B1 KR 20130104110 A KR20130104110 A KR 20130104110A KR 20130104110 A KR20130104110 A KR 20130104110A KR 101489876 B1 KR101489876 B1 KR 101489876B1
Authority
KR
South Korea
Prior art keywords
search
keyword
encrypted
index
user
Prior art date
Application number
KR20130104110A
Other languages
English (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 KR20130104110A priority Critical patent/KR101489876B1/ko
Application granted granted Critical
Publication of KR101489876B1 publication Critical patent/KR101489876B1/ko

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
    • 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/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3334Selection or weighting of terms from queries, including natural language queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명에 따른 암호화 문서 검색 시스템은 전체 암호화 문서 각각에 포함된 키워드에 대한 점수 및 상기 전체 암호화 문서 각각에 대한 인덱스를 저장하는 저장부, 검색 요청을 한 사용자로부터 중요도에 따라 가중치가 부여된 하나 이상의 검색 키워드 정보에 기초하여 검색 토큰을 생성하는 검색 토큰 생성부 및 상기 검색 토큰과 상기 인덱스와의 유사도에 기초하여 하나 이상의 암호화 문서를 검색하는 검색부를 포함하되, 상기 키워드에 대한 점수는 랭크 함수에 기초하여 산출되고, 상기 인덱스는 상기 산출된 점수에 기초하여 생성되며, 상기 검색 토큰 생성부는 상기 키워드가 대치, 추가 및 삭제되었을 때 유사 집합 내에 포함될 경우 상기 검색 토큰을 생성한다.

Description

암호화 문서 검색 시스템 및 방법{SYSTEM AND METHOD FOR SEARCHING ENCRYPTION DOCUMENT}
본 발명은 암호화 문서 검색 시스템 및 방법에 관한 것으로서, 보다 상세하게는 다중 키워드 검색, 유사 검색, 랭크 검색 및 가중치 검색을 제공하는 암호화 문서 검색 시스템 및 방법에 관한 것이다.
암호화 문서에 대한 프라이버시 보장을 위한 키워드 검색 기술은 지속적으로 연구가 진행되어 오고 있는 분야 중의 하나이다. 단일 키워드에 대한 일치 검색만을 지원하는 기술로 시작하여 현재는 다중 키워드에 대한 검색, 유사 검색, 랭크 검색 등 다양한 검색 기능을 제공하는 기술들이 개발되었다. 이하에서는 랭크 검색, 유사 검색 및 다중 키워드 랭크 검색 기법에 대하여 각각 설명하도록 한다.
도 1은 랭크 검색 기법에 사용되는 알고리즘을 도시한 도면이다.
랭크 검색은 도 1에 도시된 바와 같이 KeyGen, BuildIndex, TrapdoorGen 및 SearchIndex의 4개의 알고리즘을 통해 수행된다. 각각의 알고리즘은 키 생성, 인덱스 생성, 트랩도어 생성 및 인덱스를 통한 검색을 수행한다. 인덱스 생성 단계에서 문서를 저장할 때 문서에 포함되는 키워드가 그 문서에 얼마나 많이 포함되는 지를 점수로 환산해서 문서와 함께 저장한다. 키워드에 대한 점수를 구하는 함수(Ranking Function)는 다양한 함수가 있지만 본 기술에서는 TF×IDF에 기반한 다음과 같은 함수를 사용한다. 이때, TF(Term Frequency)는 키워드가 파일 안에 나타나는 횟수를 의미하며, IDF(Inverse Document Frequency)는 전체 파일 수에서 그 키워드가 포함된 파일 수를 나눈 값을 의미한다.
Figure 112013079536323-pat00001
이때, Q는 키워드 집합, Fd ,t는 파일 Fd에 나타나는 키워드 t의 횟수, ft는 키워드 t를 포함하는 파일의 수, N은 파일의 전체수, |Fd|는 파일 Fd의 길이를 의미한다.
문서와 함께 저장된 점수들은 검색 결과의 정확성을 높이기 위해서 활용된다. 키워드 검색을 수행할 때 사용자가 검색한 키워드가 포함된 문서들을 점수에 따라 정렬한 후 점수가 높은 k개의 결과만 검색 결과로서 사용자에게 전송된다.
도 2는 유사 검색 기법에서 사용되는 알고리즘을 도시한 도면이다.
유사 검색은 도 2에 도시된 바와 같이 KeyGen, BuildIndex, TrapdoorGen 및 SearchIndex의 4개의 알고리즘으로 구성된다. 수행하는 기능은 랭크 검색과 유사하며 가장 큰 차이점은 인덱스를 생성하는 알고리즘이다. 인덱스를 생성할 때, 먼저 저장하고자 하는 문서에 포함되는 키워드들에 대한 유사 집합을 생성한다. 유사 집합을 생성할 때는 유사도를 설정할 수 있으며, 이때 유사도는 각 문자가 대치, 추가 및 삭제되는 횟수를 나타낸다.
예를 들어, 저장하고자 하는 문서에 포함된 키워드가 cat이라 하고 유사도를 1로 설정한다면 cat에 해당하는 유사 집합은 {*cat, *at, c*at, c*t, ca*t, ca*, cat*}이 된다. *는 임의의 문자가 대치되는 경우를 말하며 공백문자도 허용한다. 이와 같은 검색 기술은 일치 검색뿐만 아니라 유사 검색도 제공할 수 있다는 장점이 있지만 유사 집합에 포함되는 키워드의 수만큼 문서가 중복해서 저장된다는 단점도 있다.
다중 키워드 랭크 검색 기술은 동시에 여러 개의 키워드 검색이 가능하고, 많은 키워드가 포함될수록 문서는 높은 점수를 가지게 되며, 점수가 높은 순에서 낮은 순으로 사용자에게 검색 결과로서 전달된다.
키워드 전체 개수를 d라고 하면 차원이
Figure 112013079536323-pat00002
인 벡터를 하나 생성한다. 이 벡터
Figure 112013079536323-pat00003
를 이용하여 인덱스를 생성하고, 인덱스와 함께 암호화된 문서를 저장한다. 이렇게 생성된 벡터
Figure 112013079536323-pat00004
가 인덱스로 사용되며 사용자가 수행하는 질의 벡터
Figure 112013079536323-pat00005
와 내적 연산을 통해 얼마나 많은 키워드가 일치하는지 여부를 판단한다.
예를 들어, d=5라 가정하고 문서 1은 첫 번째, 세 번째 키워드를 포함하고, 문서 2는 첫 번째, 두 번째, 네 번째 키워드를 포함한다고 하면, 각 문서에 해당하는 인덱스 벡터는 각각
Figure 112013079536323-pat00006
으로 생성된다. 사용자가 검색하고자 하는 키워드가 첫 번째 키워드, 네 번째 키워드라고 한다면 질의 벡터
Figure 112013079536323-pat00007
Figure 112013079536323-pat00008
으로 생성한다. 사용자가 검색을 요청하면 서버는 각각의 인덱스 벡터와 질의 벡터를 내적해서
Figure 112013079536323-pat00009
값을 계산한다. 사용자가 점수가 높은 1개의 문서만을 요청했다면 검색 결과로서 문서 2가 전송된다.
한편, 다중 키워드 랭크 검색 기법 사용시
Figure 112013079536323-pat00010
벡터를 평문 형태로 사용할 경우에는 서버에 많은 정보가 노출되기 때문에 KNN 계산 기술을 이용해서 인덱스 벡터
Figure 112013079536323-pat00011
와 질의 벡터
Figure 112013079536323-pat00012
를 난수화한 후 연산을 수행할 수 있다.
이와 관련하여 한국공개특허 제20132-0024144호(발명의 명칭: 프라이버시를 보장하는 가중치 기반의 키워드 검색을 위한 방법 및 장치)에는 키워드별로 가중치를 부여하며, 복호화 과정 없이 지정된 키워드와 연관성이 높은 문서를 암호화 문서로 검색하는 기술이 개시되어 있다.
또한, 한국공개특허 제2010-0068042호(발명의 명칭: 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 겁색 방법)에는 검색 키워드를 선정하고, 선정된 검색 키워드가 저장된 필드 주소를 확인한 후, 트랩도어를 생성하여 데이터 저장용 서버로 전송함으로써 검색을 수행할 수 있는 기술이 개시되어 있다.
다만, 위 선행기술들과 더불어 종래의 검색 기술들은 랭크 검색, 유사 검색, 다중 키워드 검색 및 가중치 검색 기능을 모두 제공하고 있지 않고 있다. 이와 관련하여 H. Shuai와 W. T. Zhu에 의해 발표된 논문 “F5P5: Keyword search over encrypted data with five functions and five privacy assurances"에는 랭크 검색, 유사 검색 및 다중 키워드 검색을 제공하는 기술이 제안되었으나, 가중치 검색은 지원하고 있지 않으며, 인덱스의 길이가 2d로 길기 때문에 저장량 측면에서 비효율적이라는 문제점이 있다.
따라서, 인덱스의 길이를 줄이면서 동시에 가중치 검색 기능을 추가함으로써 사용자의 의도에 맞도록 검색 결과의 정확성을 높이는 기술 개발이 필요하다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 일부 실시예는 다중 키워드 검색, 유사 검색, 랭크 검색 및 가중치 검색을 제공하며, 암호화된 문서별로 특정 길이의 인덱스를 가지며 정당한 사용자만이 해당 인덱스를 통하여 암호화 문서를 검색할 수 있는 암호화 문서 검색 시스템 및 방법을 제공하는 것을 그 목적으로 한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 암호화 문서 검색 시스템은 전체 암호화 문서 각각에 포함된 키워드에 대한 점수 및 상기 전체 암호화 문서 각각에 대한 인덱스를 저장하는 저장부, 검색 요청을 한 사용자로부터 중요도에 따라 가중치가 부여된 하나 이상의 검색 키워드 정보에 기초하여 검색 토큰을 생성하는 검색 토큰 생성부 및 상기 검색 토큰과 상기 인덱스와의 유사도에 기초하여 하나 이상의 암호화 문서를 검색하는 검색부를 포함하되, 상기 키워드에 대한 점수는 랭크 함수에 기초하여 산출되고, 상기 인덱스는 상기 산출된 점수에 기초하여 생성되며, 상기 검색 토큰 생성부는 상기 키워드가 대치, 추가 및 삭제되었을 때 유사 집합 내에 포함될 경우 상기 검색 토큰을 생성한다.
또한, 본 발명의 제 2 측면에 따른 암호화 문서 검색 시스템을 이용한 암호화 문서 검색 방법은 전체 암호화 문서로부터 키워드 집합을 생성하는 단계, 상기 키워드 집합 내에 포함된 각각의 키워드에 대한 유사 집합을 생성하는 단계, 랭크 함수에 기초하여 상기 전체 암호화 문서 각각에 포함된 키워드에 대한 점수를 산출하는 단계, 상기 산출된 점수에 기초하여 상기 전체 암호화 문서 각각에 대한 인덱스를 생성하는 단계, 검색 요청을 한 사용자로부터 중요도에 따라 가중치가 부여된 하나 이상의 검색 키워드에 기초하여 검색 토큰을 생성하는 단계 및 상기 검색 토큰과 상기 인덱스와의 유사도에 기초하여 하나 이상의 암호화 문서를 검색하는 단계를 포함하되, 상기 검색 토큰은 상기 키워드가 대치, 추가 및 삭제되었을 때 상기 유사 집합 내에 포함될 경우 생성된다.
전술한 본 발명의 과제 해결 수단의 어느 실시예에 의하면, 암호화 문서 검색시 랭크 검색, 유사 검색, 다중 키워드 검색 및 가중치 검색을 모두 제공할 수 있다.
또한, 다양한 검색을 제공하면서 저장된 인덱스만으로 노출되는 정보를 줄일 수 있고, 저장량을 줄일 수 있다.
도 1은 랭크 검색 기법에서 사용되는 알고리즘을 도시한 도면이다.
도 2는 유사 검색 기법에서 사용되는 알고리즘을 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 암호화 문서 검색 시스템의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 암호화 문서 검색 방법의 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 3은 본 발명의 일 실시예에 따른 암호화 문서 검색 시스템(100)의 블록도이다.
본 발명에 따른 암호화 문서 검색 시스템(100)은 저장부(110), 검색 토큰 생성부(120) 및 검색부(130)를 포함한다.
참고로, 본 발명의 실시예에 따른 도 3에 도시된 구성 요소들은 소프트웨어 또는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)와 같은 하드웨어 구성 요소를 의미하며, 소정의 역할들을 수행한다.
그렇지만 '구성 요소들'은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 각 구성 요소는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.
따라서, 일 예로서 구성 요소는 소프트웨어 구성 요소들, 객체지향 소프트웨어 구성 요소들, 클래스 구성 요소들 및 태스크 구성 요소들과 같은 구성 요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다.
구성 요소들과 해당 구성 요소들 안에서 제공되는 기능은 더 작은 수의 구성 요소들로 결합되거나 추가적인 구성 요소들로 더 분리될 수 있다.
저장부(110)는 전체 암호화 문서 각각에 포함된 키워드에 대한 점수 및 전체 암호화 문서 각각에 대한 인덱스를 저장하고 있다. 저장된 키워드에 대한 점수는 랭크 함수에 기초하여 산출되고, 인덱스는 랭크 함수에 기초하여 산출된 키워드에 대한 점수에 기초하여 생성된다.
이때, 랭크 함수는 키워드가 암호화 문서에 나타나는 횟수 및 전체 암호화 문서 개수에서 키워드가 포함된 암호화 문서의 개수를 나눈 값에 기초하여 점수를 산출할 수 있다.
한편, 본 발명에 따른 암호화 문서 검색 시스템(100)은 검색 허가부(140)를 더 포함할 수 있다.
검색 허가부(140)는 인덱스에 대응되는 비밀값을 생성하고, 생성된 비밀값에 기초하여 사용자로 하여금 암호화 문서 검색을 허가할 수 있다. 즉, 데이터 소유주는 정당한 사용자에게만 암호화 문서 검색을 허가하기 위하여 비밀값을 생성할 수 있고, 사용자는 비밀값에 기초하여 암호화 문서를 검색할 수 있다.
이하에서는 키워드 집합 및 유사 집합의 생성과, 인덱스의 생성 및 검색에 필요한 비밀값 및 난수값을 생성하기 위한 KeyGen 알고리즘과, 키워드에 대한 점수 산출, 인덱스 생성 및 암호화 문서 검색 허가를 위한 검색 허가부(140)와 관련된 GenIndex 알고리즘을 설명하도록 한다.
KeyGen 알고리즘은 먼저 전체 문서 파일인 Fj(1<j<l)로부터 키워드 집합인 W=(wi,1<i<d)를 생성한다. 이때, l은 전체 파일 개수를 의미하며, d는 키워드 전체 개수를 의미한다. 각각의 키워드인 wi에 대한 유사 집합 Fuzi(1<i<d)를 생성하고, 큰 소수 p를 선택하여 g∈[2,p-1], g-1
Figure 112013079536323-pat00013
g
Figure 112013079536323-pat00014
1modp를 만족하도록 임의로 g를 선택한다. 다음으로 μ,σ∈Z+, μ-3σ>0, ∥μ∥<∥p∥/5를 만족하면서, 평균이 μ이고 분산이 σ2인 [μ-3σ,μ+3σ]의 범위에 속하는 정규분포 N(μ,σ2)을 생성한다. 이때, ∥p∥는 p의 비트 수를 의미한다.
그 다음, 임의로 d+3개의 비밀값 si∈Z+, 1≤i≤d+3을 생성하고 인덱스 생성 및 질의 생성시 사용할 난수값
Figure 112013079536323-pat00015
을 생성하고 각각의 역인 Ri -1도 생성한다. 마지막으로 난수 ri∈Z+, 1≤i≤d를 생성한다.
GenIndex 알고리즘은 먼저, 암호화 문서 파일 Fj와 문서에 포함된 키워드 wi에 대하여 TF×IDF기반의 랭크 함수를 이용하여 키워드에 대한 점수 Sj,i=Score(Fj,wi)를 계산한다. 그리고 암호화 문서 파일 Fj에 대한 d차원의 벡터 θj,i=a×Sj ,i를 생성하는데, 이때 a는 Sj ,i가 0이 아닐 경우 ∥a∥<∥p∥/5를 만족하는 큰 정수로 선택하고, 0일 경우에는 작은 정수로 선택한다. 모든 1≤i≤d에 대하여 ai를 aij,i+ri로 설정하고 정규분포 N(μ,σ2)에서 d+3개의 난수 [mi]를 선택한 후, 문서 파일 Fj에 대한 인덱스 Ij는 다음과 같이 생성한다. 이때, [a]는 a를 넘지 않는 최대 정수를 의미한다.
Figure 112013079536323-pat00016
한편, 암호화 문서 검색을 허가하기 위하여, 데이터 소유주는 임의로 v∈Z+를 선택하고, (p,vμ2)를 공개한다. 데이터 소유주는 문서 파일 Fj에 대한 인덱스 Ij를 생성하고 1≤j≤l에 대하여 (Ij,(E(Fj))를 저장한다. 이때, E(
Figure 112013079536323-pat00017
)는 안전한 암호화 기술을 의미한다.
즉, 데이터 소유주만이 알고 있으며 안전하게 관리되어야 할 비밀값은 (g,W,R,a,v,ri,Sj,1≤i≤d,1≤j≤l)이 된다. 데이터 소유주가 자신의 데이터를 검색해볼 수 있도록 허용해주는 정당한 사용자들에게는 비밀값 (Fuz,μ,σ2,R-1,ri,1≤i≤d)을 전송한다.
한편, 상술된 저장부(110)는 캐쉬, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 및 플래쉬 메모리(Flash memory)와 같은 비휘발성 메모리 소자 또는 RAM(Random Access Memory)과 같은 휘발성 메모리 소자 또는 하드디스크 드라이브(HDD, Hard Disk Drive), CD-ROM과 같은 저장 매체 중 적어도 하나로 구현될 수 있으나 이에 한정되지는 않는다.
검색 토큰 생성부(120)는 검색 요청을 한 사용자로부터 중요도에 따라 가중치가 부여된 하나 이상의 검색 키워드 정보에 기초하여 검색 토큰을 생성한다. 이때, 검색 토큰 생성부(120)는 키워드가 대치, 추가 및 삭제되었을 때 유사 집합 내에 포함될 경우 검색 토큰을 생성한다. 한편, 유사 집합은 위 keyGen 알고리즘에서 설명한 바와 같이 전체 암호화 문서로부터 생성된 키워드 집합 내에 포함된 각각의 키워드에 기초하여 생성될 수 있다. 검색 토큰을 생성하기 위한 GenToken 알고리즘에 대하여 설명하면 다음과 같다.
GenToken 알고리즘은 정당한 사용자들이 원하는 데이터를 검색할 수 있도록 토큰을 생성한다.
먼저, 키워드의 위치를 저장하는 집합 L을 생성한다. 다음으로, 검색하고자 하는 키워드 w에 대해서 삭제, 추가 및 대체를 수행하였을 때, 키워드 w가 w∈Fuzi 를 만족하면 그때의 i를 L에 추가한다. 키워드 집합 L에 대한 토큰을 생성하기 위해서는 우선 ηi=b로 생성하는데, i∈L을 만족할 경우에는 b를 ∥b∥<∥p∥/5를 만족하는 큰 정수로 선택하고, 만족하지 않을 경우에는 작은 정수로 선택한다. 이때, 검색하고자 하는 키워드의 가중치에 따라 ∥c∥<∥p∥/5를 만족하는 큰 정수 c를 ηi에 곱하여 생성한다. 모든 1≤i≤d에 대하여 βii-ri로 설정하고, 정규분포 N(μ,σ2)에서 d+3개의 난수 [ni]를 선택한 후, 키워드 집합 L에 대한 검색 토큰 TL은 다음 수식과 같이 생성할 수 있다.
Figure 112013079536323-pat00018
이와 같이, GenToken 알고리즘을 이용하여 가중치 검색을 수행할 수 있으며, 가중치 검색을 수행하기 위하여 해당 키워드에 가중치를 두는 검색 토큰을 생성할 수 있다.
한편, 가중치 검색 기능이 없는 경우, 핵심 키워드가 포함되어 있지 않더라도 나머지 다른 키워드들이 많이 포함되어 있을 때 높은 등급으로 분류되기 때문에 사용자는 핵심 키워드가 포함되지 않는 결과를 얻게 된다. 이와 같은 문제를 해결하기 위해 가중치 검색을 사용하며, 가중치 검색을 사용하면 실제 데이터에 단순히 많이 포함되어 있는 키워드에 높은 점수를 주기보다는 사용자가 검색하고자 하는 키워드에 높은 점수를 줄 수 있어 사용자의 의도에 부합하는 검색 결과를 획득할 수 있다.
검색부(130)는 검색 토큰 생성부(120)에서 생성된 검색 토큰과 인덱스와의 유사도에 기초하여 하나 이상의 암호화 문서를 검색한다. 이때, 유사도는 키워드가 대치, 추가 및 삭제되는 횟수에 기초하여 설정될 수 있다. 유사도에 기초하여 암호화 문서를 검색하기 위한 Search 알고리즘을 설명하면 다음과 같다.
아래와 같은 내적 연산, 즉 검색 토큰 생성부(120)에서 생성된 검색 토큰과 저장되어 있는 인덱스의 내적 연산을 통해서 검색한 키워드들을 얼마나 많이 포함되고 있는지를 판단한 후 사용자에게 검색 결과를 전달할 수 있다.
Figure 112013079536323-pat00019
이때, 인덱스와 검색 토큰과의 유사도를 산출하기 위해서는 난수값을 제거해주어야 한다. 따라서, 이전에 공개된 vμ2을 나누어주면 Ij
Figure 112013079536323-pat00020
TL값에서 mini값들이 근사하여 제거된다. 이에 따라, 최종적으로 얻게 되는 유사도는 다음과 같다.
Figure 112013079536323-pat00021
Figure 112013079536323-pat00022
Figure 112013079536323-pat00023
이때, θi는 데이터 소유자가 문서를 저장할 때, i번째 키워드가 포함되었을 경우 i번째 키워드에 해당하는 점수에 큰 정수, 그렇지 않을 경우에는 작은 정수를 곱하여 생성한 값이다. 그리고 ηi는 암호화 문서를 검색하고자 하는 사용자가 데이터를 검색할 때 검색하는 키워드가 포함된 경우 큰 정수, 그렇지 않은 경우에는 작은 정수를 곱하여 생성한 값이다.
이와 더불어, 키워드에 가중치를 주고 싶은 경우에는 큰 정수를 곱하여 ηi를 생성할 수 있다. 따라서 ∑θiηi는 저장된 문서에 포함되는 키워드와 사용자가 검색하고자 하는 키워드가 어느 정도 유사한지를 보여준다.
한편, 본 발명에 따른 암호화 문서 검색 시스템은 전송부(150)를 더 포함할 수 있다.
전송부(150)는 키워드 검색 결과 검색된 암호화 문서를 사용자에게 전송할 수 있으며, 이때 암호화 문서는 사용자에게 점수가 높은 순서에서 낮은 순서로 전송될 수 있다.
이와 같이, 본 발명에 따른 암호화 문서 검색 시스템(100)은 랭크 검색, 유사 검색 및 다중 키워드 검색 기능을 모두 제공할 수 있으면서 동시에 가중치 검색 기능을 추가로 제공할 수 있다. 또한, 키워드 전체 개수인 d를 기준으로, 종래기술에서 2d 였던 인덱스의 길이를 d+3으로 줄일 수 있다.
또한, 가중치 검색과 랭크 함수를 TF×IDF기반의 함수로 사용하여, 사용자의 의도에 부합하면서 동시에 검색의 정확도를 향상시킬 수 있다.
도 4는 본 발명의 일 실시예에 따른 암호화 문서 검색 방법의 순서도이다.
암호화 문서 검색 시스템(100)을 이용한 암호화 문서 검색 방법은 먼저, 전체 암호화 문서로부터 키워드 집합을 생성한 후(S210), 키워드 집합 내에 포함된 각각의 키워드에 대한 유사 집합을 생성한다(S220).
다음으로, 랭크 함수에 기초하여 전체 암호화 문서 각각에 포함된 키워드에 대한 점수를 산출한다(S230). 이때, 랭크 함수는 키워드가 암호화 문서에 나타나는 횟수 및 전체 암호화 문서 개수에서 키워드가 포함된 암호화 문서의 개수를 나눈 값에 기초하여 점수를 산출할 수 있다.
다음으로, 산출된 점수에 기초하여 전체 암호화 문서 각각에 대한 인덱스를 생성한다(S240).
다음으로, 검색 요청을 한 사용자로부터 중요도에 따라 가중치가 부여된 하나 이상의 검색 키워드에 기초하여 검색 토큰을 생성한다(S250). 이때, 검색 토큰은 키워드가 대치, 추가 및 삭제되었을 때 유사 집합 내에 포함될 경우 생성될 수 있다.
다음으로, 검색 토큰과 인덱스와의 유사도에 기초하여 하나 이상의 암호화 문서를 검색한다(S260). 이때, 유사도는 키워드가 대치, 추가 및 삭제되는 횟수에 기초하여 설정될 수 있다.
한편, 본 발명에 따른 암호화 문서 검색 방법은 인덱스에 대응되는 비밀값을 생성하는 단계 및 생성된 비밀값을 사용자에게 전달하는 단계를 더 포함할 수 있다. 즉, 데이터 소유주는 정당한 사용자에게만 암호화 문서 검색을 허가하기 위하여 비밀값을 생성할 수 있고, 사용자는 비밀값에 기초하여 암호화 문서를 검색할 수 있다.
또한, 본 발명에 따른 암호화 문서 검색 방법은 검색된 암호화 문서를 사용자에게 전송하는 단계를 더 포함할 수 있다. 이때, 검색된 암호화 문서는 점수가 높은 순서에서 낮은 순서로 사용자에게 전송될 수 있다. 예를 들어, 사용자는 검색된 복수의 암호화 문서 중 점수가 높은 순서에서 낮은 순서 별로 k개만을 수신할 수 있다.
위에서 설명한 암호화 문서 검색 방법을 이용할 경우 랭크 검색, 유사 검색 및 다중 키워드 검색 기능을 모두 제공할 수 있으면서 동시에 가중치 검색 기능을 추가로 제공할 수 있다. 이때, 각 검색 기법에 적용되는 구체적인 알고리즘은 도 3에서 설명하였으므로 생략하도록 한다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 암호화 문서 검색 시스템 110: 저장부
120: 검색 토큰 생성부 130: 검색부
140: 검색 허가부 150: 전송부

Claims (11)

  1. 암호화 문서 검색 시스템에 있어서,
    전체 암호화 문서 각각에 포함된 키워드에 대한 점수 및 상기 전체 암호화 문서 각각에 대한 인덱스를 저장하는 저장부,
    검색 요청을 한 사용자로부터 중요도에 따라 가중치가 부여된 하나 이상의 검색 키워드 정보에 기초하여 검색 토큰을 생성하는 검색 토큰 생성부 및
    상기 검색 토큰과 상기 인덱스와의 유사도에 기초하여 하나 이상의 암호화 문서를 검색하는 검색부를 포함하되,
    상기 키워드에 대한 점수는 랭크 함수에 기초하여 산출되고,
    상기 인덱스는 상기 산출된 점수에 기초하여 생성되며,
    상기 검색 토큰 생성부는 상기 키워드와 유사한 키워드가 포함된 집합인 유사 집합을 생성하기 위해, 상기 키워드에 포함된 각 문자에 대하여 대치, 추가 및 삭제 중 어느 하나가 수행되어, 상기 키워드가 상기 유사 집합에 포함되는 경우, 상기 검색 토큰을 생성하는 것인 암호화 문서 검색 시스템.
  2. 제 1 항에 있어서,
    상기 유사 집합은 상기 전체 암호화 문서로부터 생성된 키워드 집합 내에 포함된 각각의 키워드에 기초하여 생성된 것인 암호화 문서 검색 시스템.
  3. 제 1 항에 있어서,
    상기 랭크 함수는 키워드가 암호화 문서에 나타나는 횟수 및 전체 암호화문서 개수에서 키워드가 포함된 암호화 문서의 개수를 나눈 값에 기초하여 점수를 산출하는 것인 암호화 문서 검색 시스템.
  4. 제 1 항에 있어서,
    상기 유사도는 상기 키워드에 포함된 각 문자가 대치, 추가 및 삭제 중 어느 하나가 수행되는 횟수에 기초하여 설정되는 것인 암호화 문서 검색 시스템.
  5. 제 1 항에 있어서,
    상기 인덱스에 대응되는 비밀값을 생성하고,
    상기 생성된 비밀값에 기초하여 사용자로 하여금 암호화 문서 검색을 허가하는 검색 허가부를 더 포함하는 암호화 문서 검색 시스템.
  6. 제 1 항에 있어서,
    상기 검색된 암호화 문서를 사용자에게 전송하는 전송부를 더 포함하되,
    상기 전송부는 상기 검색된 암호화 문서를 점수가 높은 순서에서 낮은 순서로 사용자에게 전송하는 것인 암호화 문서 검색 시스템.
  7. 암호화 문서 검색 시스템을 이용한 암호화 문서 검색 방법에 있어서,
    전체 암호화 문서로부터 키워드 집합을 생성하는 단계,
    상기 키워드 집합 내에 포함된 각각의 키워드에 대하여 상기 키워드와 유사한 키워드가 포함된 집합인 유사 집합을 생성하는 단계,
    랭크 함수에 기초하여 상기 전체 암호화 문서 각각에 포함된 키워드에 대한 점수를 산출하는 단계,
    상기 산출된 점수에 기초하여 상기 전체 암호화 문서 각각에 대한 인덱스를 생성하는 단계,
    검색 요청을 한 사용자로부터 중요도에 따라 가중치가 부여된 하나 이상의 검색 키워드에 기초하여 검색 토큰을 생성하는 단계 및
    상기 검색 토큰과 상기 인덱스와의 유사도에 기초하여 하나 이상의 암호화 문서를 검색하는 단계를 포함하되,
    상기 검색 토큰은 상기 유사 집합을 생성하기 위해, 상기 키워드에 포함된 각 문자에 대하여 대치, 추가 및 삭제 중 어느 하나가 수행되어, 상기 키워드가 상기 유사 집합에 포함되는 경우 생성되는 것인 암호화 문서 검색 방법.
  8. 제 7 항에 있어서,
    상기 랭크 함수는 키워드가 암호화 문서에 나타나는 횟수 및 전체 암호화 문서 개수에서 키워드가 포함된 암호화 문서의 개수를 나눈 값에 기초하여 점수를 산출하는 것인 암호화 문서 검색 방법.
  9. 제 7 항에 있어서,
    상기 유사도는 상기 키워드에 포함된 각 문자가 대치, 추가 및 삭제 중 어느 하나가 수행되는 횟수에 기초하여 설정되는 것인 암호화 문서 검색 방법.
  10. 제 7 항에 있어서,
    상기 인덱스에 대응되는 비밀값을 생성하는 단계 및
    상기 생성된 비밀값을 사용자에게 전송하는 단계를 더 포함하되,
    상기 사용자는 상기 비밀값에 기초하여 상기 암호화 문서를 검색할 수 있는 것인 암호화 문서 검색 방법.
  11. 제 7 항에 있어서,
    상기 검색된 암호화 문서를 사용자에게 전달하는 단계를 더 포함하되,
    상기 검색된 암호화 문서는 점수가 높은 순서에서 낮은 순서로 사용자에게 전송되는 것인 암호화 문서 검색 방법.
KR20130104110A 2013-08-30 2013-08-30 암호화 문서 검색 시스템 및 방법 KR101489876B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130104110A KR101489876B1 (ko) 2013-08-30 2013-08-30 암호화 문서 검색 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130104110A KR101489876B1 (ko) 2013-08-30 2013-08-30 암호화 문서 검색 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101489876B1 true KR101489876B1 (ko) 2015-02-06

Family

ID=52591344

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130104110A KR101489876B1 (ko) 2013-08-30 2013-08-30 암호화 문서 검색 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101489876B1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190063204A (ko) 2017-11-29 2019-06-07 고려대학교 산학협력단 클라우드 컴퓨팅 환경에서 암호화된 데이터에 대한 유사도 검색 방법 및 시스템
CN110945506A (zh) * 2017-07-26 2020-03-31 华为国际有限公司 支持混合索引的可搜索加密
CN112015853A (zh) * 2020-05-22 2020-12-01 同济大学 图书搜索方法、图书搜索系统、电子装置及介质
US11257482B2 (en) * 2017-03-20 2022-02-22 Samsung Electronics Co., Ltd. Electronic device and control method
KR102613986B1 (ko) * 2023-03-31 2023-12-14 고려대학교산학협력단 신뢰 실행 환경 기반의 동적 탐색 가능한 암호화에서 정보 유출을 최소화하는 방법, 장치 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090053037A (ko) * 2007-11-22 2009-05-27 한국전자통신연구원 내적을 이용한 암호화된 데이터 검색 방법 및 이를 위한단말 장치와 서버
KR20120070713A (ko) * 2010-12-22 2012-07-02 에스케이 텔레콤주식회사 자연어 및 수식 색인화 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체
KR20130024144A (ko) * 2011-08-30 2013-03-08 고려대학교 산학협력단 프라이버시를 보장하는 가중치 기반의 키워드 검색을 위한 방법 및 장치
JP2013125445A (ja) 2011-12-15 2013-06-24 Toshiba Corp 暗号化された文書の転置インデックス作成方法及び転置インデックスを使用する検索方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090053037A (ko) * 2007-11-22 2009-05-27 한국전자통신연구원 내적을 이용한 암호화된 데이터 검색 방법 및 이를 위한단말 장치와 서버
KR20120070713A (ko) * 2010-12-22 2012-07-02 에스케이 텔레콤주식회사 자연어 및 수식 색인화 방법과 그를 위한 장치 및 컴퓨터로 읽을 수 있는 기록매체
KR20130024144A (ko) * 2011-08-30 2013-03-08 고려대학교 산학협력단 프라이버시를 보장하는 가중치 기반의 키워드 검색을 위한 방법 및 장치
JP2013125445A (ja) 2011-12-15 2013-06-24 Toshiba Corp 暗号化された文書の転置インデックス作成方法及び転置インデックスを使用する検索方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11257482B2 (en) * 2017-03-20 2022-02-22 Samsung Electronics Co., Ltd. Electronic device and control method
US11881209B2 (en) 2017-03-20 2024-01-23 Samsung Electronics Co., Ltd. Electronic device and control method
CN110945506A (zh) * 2017-07-26 2020-03-31 华为国际有限公司 支持混合索引的可搜索加密
CN110945506B (zh) * 2017-07-26 2023-11-17 华为国际有限公司 支持混合索引的可搜索加密
KR20190063204A (ko) 2017-11-29 2019-06-07 고려대학교 산학협력단 클라우드 컴퓨팅 환경에서 암호화된 데이터에 대한 유사도 검색 방법 및 시스템
CN112015853A (zh) * 2020-05-22 2020-12-01 同济大学 图书搜索方法、图书搜索系统、电子装置及介质
CN112015853B (zh) * 2020-05-22 2024-04-09 同济大学 图书搜索方法、图书搜索系统、电子装置及介质
KR102613986B1 (ko) * 2023-03-31 2023-12-14 고려대학교산학협력단 신뢰 실행 환경 기반의 동적 탐색 가능한 암호화에서 정보 유출을 최소화하는 방법, 장치 및 시스템

Similar Documents

Publication Publication Date Title
Ge et al. Towards achieving keyword search over dynamic encrypted cloud data with symmetric-key based verification
KR101302137B1 (ko) 대칭 키 기반 검색 가능 암호 방법
KR101489876B1 (ko) 암호화 문서 검색 시스템 및 방법
Sun et al. Privacy-preserving keyword search over encrypted data in cloud computing
CN106980796B (zh) 云环境下基于mdb+树的多域连接关键词的搜索方法
CN111026788A (zh) 一种混合云中基于同态加密的多关键词密文排序检索方法
Wang et al. Towards efficient privacy-preserving encrypted image search in cloud computing
Gakhov Probabilistic data structures and algorithms for big data applications
CN111177787B (zh) 多数据拥有者环境中基于属性的连接关键字搜索方法
Handa et al. A cluster based multi-keyword search on outsourced encrypted cloud data
KR20220126767A (ko) 보안 mpc 및 벡터 계산을 이용한 컨텐츠 배포 정보에 대한 액세스 보호
Wang et al. Enabling efficient approximate nearest neighbor search for outsourced database in cloud computing
Zhang et al. A verifiable and dynamic multi-keyword ranked search scheme over encrypted cloud data with accuracy improvement
CN116644146A (zh) 一种文档搜索方法、装置、系统、电子设备及存储介质
Wang et al. An efficient multiple-user location-based query authentication approach for social networking
Li et al. Secure and verifiable multi-owner ranked-keyword search in cloud computing
US20200142933A1 (en) Search device, search system, search method, and computer readable medium
CN108319670A (zh) 基于云计算的可验证的动态排名搜索方法
Guo et al. Privacy preserving weighted similarity search scheme for encrypted data
Manasrah et al. A privacy-preserving multi-keyword search approach in cloud computing
YueJuan et al. A searchable ciphertext retrieval method based on counting bloom filter over cloud encrypted data
Li et al. An efficient multi-keyword ranked retrieval scheme with johnson-lindenstrauss transform over encrypted cloud data
Li et al. Multi-keyword ranked fuzzy search over encrypted data in cloud supporting dynamic update
Raghavendra et al. FRORSS: Fast result object retrieval using similarity search on cloud
Rajendran et al. An Efficient Ranked Multi-Keyword Search for Multiple Data Owners Over Encrypted Cloud Data: Survey

Legal Events

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

Payment date: 20180108

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190114

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200120

Year of fee payment: 6