KR20190111691A - 검색 인덱스 재구성 장치 및 방법 - Google Patents

검색 인덱스 재구성 장치 및 방법 Download PDF

Info

Publication number
KR20190111691A
KR20190111691A KR1020180034142A KR20180034142A KR20190111691A KR 20190111691 A KR20190111691 A KR 20190111691A KR 1020180034142 A KR1020180034142 A KR 1020180034142A KR 20180034142 A KR20180034142 A KR 20180034142A KR 20190111691 A KR20190111691 A KR 20190111691A
Authority
KR
South Korea
Prior art keywords
search
search index
data
linked list
index
Prior art date
Application number
KR1020180034142A
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 KR1020180034142A priority Critical patent/KR20190111691A/ko
Publication of KR20190111691A publication Critical patent/KR20190111691A/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/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof

Abstract

검색 인덱스 재구성 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법은 검색 인덱스 재구성 장치를 이용하는 검색 인덱스 재구성 방법에 있어서, 암호데이터의 범위 검색을 위한 검색 인덱스를 생성하는 단계; 검색 키워드의 일방향성에 기반한 상기 범위 검색에 대응하는 트랩도어를 생성하는 단계; 상기 검색 인덱스와 상기 트랩도어에 기반하여 상기 암호데이터를 검색하는 단계 및 상기 암호데이터의 검색 결과에 기반하여 상기 검색 인덱스를 재구성하는 단계를 포함한다.

Description

검색 인덱스 재구성 장치 및 방법 {APPARATUS AND METHOD FOR REARRANGING SEARCH INDEX}
본 발명은 클라우드 및 빅데이터 기술에 관한 것으로, 보다 상세하게는 암호데이터 관리 및 검색 인덱스 구성 기술에 관한 것이다.
데이터가 자원이 되는 지식정보사회로의 변화와 함께 클라우드/빅데이터 컴퓨팅 환경의 활용이 빈번해 지면서 프라이버시 데이터가 집중되는 데이터 서버에 대한 공격 또한 증가하고 있다. 이러한 공격으로 중요 프라이버시 데이터가 유출되는 사고 또한 빈번히 발생하고 있다. 중요 데이터를 처리하는 데이터 서버는 높은 수준의 권한 관리 기술 등을 적용하고 있으나, 데이터 서버 관리자를 통해 데이터가 유출 되는 등의 근본적인 이유로 데이터 암호화 기술 적용이 필수적으로 요구된다. 하지만, AES 등과 같은 일반적인 데이터 암호화 기술을 적용하는 경우에는 정당한 데이터 소유자 또한 데이터 검색 및 활용을 위해서 복호화를 우선 적용하여야 하는 비효율성이 발생한다. 특히, 특정 데이터를 정확하게 검색하는 것은 데이터 활용을 위한 가장 기본적이고 필수적인 작업이기 때문에 프라이버시 보호를 위한 암호화 이후에도 효율적인 검색이 가능한 기법이 요구된다.
또한, 최근에는 클라우드 및 빅데이터 환경을 통한 데이터 활용 서비스가 점차 늘어나고 있다. 이러한 서비스는 정적인 데이터 저장소의 기능을 넘어서 데이터 활용 서비스 플랫폼으로 기능이 확장되고 있어 동적으로 빠르게 변화하는 데이터에 대한 효율적인 검색 기술이 추가로 요구된다.
검색 가능 암호화 기술은 암호화된 데이터에 대한 검색 기능을 제공하기 위한 데이터 암호화 기술이다. 검색 가능 암호화 기술은 암호화에 따른 데이터에 대한 기밀성과 동시에 검색을 통한 데이터 활용성을 동시에 제공하는 것을 목적으로 한다. 검색 가능 암호화 기술은 2000년대 초반 처음 제안되었으며, 이 후 여러 연구를 거쳐 현재의 기술 체계를 갖추게 되었다. 검색 가능 암호화 기술에서 각 데이터는 키워드의 집합으로 표현되며, 데이터에 대한 암호화와 별도로 데이터에 포함된 키워드를 기반으로 데이터 검색을 위한 검색 인덱스를 구성하게 된다. 검색 인덱스는 데이터 암호화와 별도의 암호화 과정을 거쳐 암호화된 데이터와 함께 서버에 저장된다. 암호화된 데이터에 대한 검색을 위해서는 검색할 키워드와 비밀키로부터 'Trapdoor(트랩도어)'라는 특정 정보를 생성하여 서버에 전달한다. 서버는 검색 과정에서, 암호화된 데이터에 직접 접근하는 대신, 검색 인덱스와 트랩도어로부터 검색할 키워드가 포함된 데이터에 대한 정보를 확인한다. 즉, 검색 가능 암호화 기술은 검색 인덱스 생성 과정, 트랩도어 생성 과정, 그리고 서버에 의한 검색 과정으로 구체화 될 수 있다. 검색 가능 암호화 기법은 모두 유사한 체계를 바탕으로 설계되고 있기 때문에 검색 인덱스의 생성/관리 방법 및 이를 통해 검색을 수행하는 방식으로 각 기술의 차이가 결정된다.
초기의 검색 가능 암호 시스템은 외부 및 내부 공격자로부터 저장된 데이터에 대한 기밀성을 제공하기 위한 체계적인 안전성 제공이 목표였으며, 공개키 암호화 기술에 기반한 검색 인덱스 생성 방법을 주로 사용하였다. 하지만, 공개키 방식의 인덱스 생성 방법은 각각의 데이터에 대한 인덱스를 개별적으로 생성하는 방법으로, 검색 과정에서 전달된 트랩도어와 각각의 검색 인덱스를 대조하는 과정이 요구된다. 때문에, 검색 시간은 전체 저장된 데이터의 양에 비례하게 되고, 따라서 대량의 데이터를 관리하는 환경에 적합하지 않다. 2006년 Curtmola등은 linked chain 형태로 검색 인덱스를 구성하는 방법을 통해 전체 저장된 데이터의 양과 무관한 검색 시간을 제공하는 기법을 제안하였다. 이 기법은 효율적인 검색 시간 제공을 목표로 linked chain 구조를 이용한 기법 설계가 활발히 진행되었다. 하지만, linked chain 등과 같이 데이터 사이의 연관성을 바탕으로 검색 인덱스를 구성하는 방식은 기존 데이터가 삭제되거나 새로운 데이터가 추가되는 경우, 암호화되어 서버에 저장되어 있는 검색 인덱스에 수정 내용을 반영하는 것은 쉽지 않다. 이러한 이유로 동적으로 변화하는 데이터 활용 환경에서 효과적인 검색 성능을 제공하는 검색 가능 암호 시스템에 대한 요구가 커지고 있다.
또한, 하나의 키워드에 대한 단순 키워드 검색 이외에 추가적인 검색 기능이 요구된다. 검색 기능은 범위 검색, 결합 키워드 검색, 부분 키워들 만을 통한 검색 등의 다양한 검색 기법이 존재한다. 이 중에서 범위 검색 기능은 수치화된 데이터를 활용하기 위한 가장 기본적인 기능이기 때문에 특히 중요한 요구사항이라 할 수 있다. 하지만, 효율적인 범위 검색을 구현하는 것은 쉽지 않으며, 기존의 공개키 기반 방식의 경우 각 데이터 단위의 검색은 용이하지만 전체적인 검색 속도가 비효율적이다. 반대로 linked chain 등의 데이터 사이의 연관성에 기반한 기법의 경우에는 전체적인 검색 속도에는 이점이 존재하나 동적으로 변화하는 데이터를 추가/삭제하는 데에 많은 어려움이 발생한다.
한편, 한국공개특허 제 10-2015-0108516 호““범위 검색을 위한 복호화가능 인덱스 생성 방법, 검색 방법, 및 복호화 방법””는 암호화된 데이터베이스에서 효율적인 범위 검색을 위한 인덱스를 생성하는 방법 및 그 인덱스 생성 방법을 이용하여 원하는 데이터를 검색하고 검색 결과를 복호화할 수 있는 복호화 장치 및 방법에 관하여 개시하고 있다.
본 발명은 클라우드 및 빅데이터를 통한 데이터 활용 환경에서 빈번하게 추가/삭제되는 암호데이터를 효율적으로 관리하는 것을 목적으로 한다.
또한, 본 발명은 동적으로 변화하는 데이터의 효과적인 범위 검색, 암호데이터 삭제 및 검색 인덱스 재구성 기능을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법은 검색 인덱스 재구성 장치를 이용하는 검색 인덱스 재구성 방법에 있어서, 암호데이터의 범위 검색을 위한 검색 인덱스를 생성하는 단계; 검색 키워드의 일방향성에 기반한 상기 범위 검색에 대응하는 트랩도어를 생성하는 단계; 상기 검색 인덱스와 상기 트랩도어에 기반하여 상기 암호데이터를 검색하는 단계 및 상기 암호데이터의 검색 결과에 기반하여 상기 검색 인덱스를 재구성하는 단계를 포함한다.
이 때, 상기 검색하는 단계는 하나의 정렬된 링크드 리스트(linked list) 형태로 구성된 확장 인덱스를 추가로 이용하여 상기 암호 데이터를 검색할 수 있다.
이 때, 상기 재구성하는 단계는 상기 검색 결과에서 수집된 링크드 리스트에서 검색한 마지막 원소의 링크를 이용하여 하나의 링크드 리스트로 재구성할 수 있다.
이 때, 상기 재구성하는 단계는 재구성된 하나의 링크드 리스트를 키워드의 크기 순으로 정렬하여 확장 리스트에 추가할 수 있다.
이 때, 상기 재구성하는 단계는 사용자 단말 장치로부터 요청 받은 삭제 데이터의 ID를 제공 받아 상기 확장 리스트에서 데이터를 삭제하고 링크드 리스트를 수정할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 검색 인덱스 재구성 장치는 암호데이터의 범위 검색을 위한 검색 인덱스 및 검색 키워드의 일방향성에 기반한 상기 범위 검색에 대응하는 트랩도어에 기반하여 상기 암호데이터를 검색하는 검색 수행부 및 상기 암호데이터의 검색 결과에 기반하여 상기 검색 인덱스를 재구성하는 검색 인덱스 재구성부를 포함한다.
이 때, 상기 검색 수행부는 하나의 정렬된 링크드 리스트(linked list) 형태로 구성된 확장 인덱스를 추가로 이용하여 상기 암호 데이터를 검색할 수 있다.
이 때, 상기 검색 인덱스 재구성부는 상기 검색 결과에서 수집된 링크드 리스트에서 검색한 마지막 원소의 링크를 이용하여 하나의 링크드 리스트로 재구성할 수 있다.
이 때, 상기 검색 인덱스 재구성부는 재구성된 하나의 링크드 리스트를 키워드의 크기 순으로 정렬하여 확장 리스트에 추가할 수 있다.
이 때, 상기 검색 인덱스 재구성부는 사용자 단말 장치로부터 요청 받은 삭제 데이터의 ID를 제공 받아 상기 확장 리스트에서 데이터를 삭제하고 링크드 리스트를 수정할 수 있다.
본 발명은 클라우드 및 빅데이터를 통한 데이터 활용 환경에서 빈번하게 추가/삭제되는 암호데이터를 효율적으로 관리할 수 있다.
또한, 본 발명은 동적으로 변화하는 데이터의 효과적인 범위 검색, 암호데이터 삭제 및 검색 인덱스 재구성 기능을 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 검색 가능 암호 시스템을 나타낸 블록도이다.
도 2는 도 1에 도시된 사용자 단말 장치의 일 예를 세부적으로 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 검색 인덱스 재구성 장치를 나타낸 블록도이다.
도 4는 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법을 나타낸 동작흐름도이다.
도 5 및 도 6은 본 발명의 일실시예에 따른 검색 가능 암호 시스템의 검색 및 재구성 과정을 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 검색 가능 암호 시스템을 나타낸 블록도이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 검색 가능 암호 시스템은 사용자 단말 장치(100)와 검색 인덱스 재구성 장치(200)를 포함할 수 있다.
사용자 단말 장치(100)는 데이터를 암호화하고 검색 인덱스 및 트랩도어를 생성하는 사용자의 컴퓨터 장치에 상응할 수 있다.
검색 인덱스 재구성 장치(200)는 사용자 단말 장치(100)로부터 전달 받은 암호화된 데이터, 검색 인덱스 및 트랩도어를 저장/관리하고 검색 인덱스 및 트랩도어를 이용하여 검색을 수행하는 서버 장치에 상응할 수 있다.
검색 가능 암호화 기술에서는 외부 공격자 뿐만 아니라 데이터를 저장/관리하는 데이터 서버 또한 잠재적인 공격자로 보고 암호화된 데이터 및 검색 인덱스에서부터 저장된 데이터에 대한 정보를 유추하기 어렵도록 설계하는 것이 매우 중요한 안전성 요구 조건이다. 이러한 이유로, 검색 인덱스 또한 사용자의 비밀정보를 이용한 암호화(또는 유사한 과정)를 통해 기밀성을 보장할 수 있다. 하지만, 검색 인덱스에 대한 암호화 결과를 서버가 직접 검색 인덱스에 접근하여 수정하는 것은 불가능하게 된다. 특히 효율적인 검색 시간을 제공하는 링크드 리스트(linked list) 등의 검색 인덱스 구성 방법은 데이터 사이의 유기적인 관계로부터 검색 인덱스를 구성하기 때문에 동적으로 데이터 변화하는 데이터를 처리하기 위해서는 검색 인덱스를 전부 수정하는 등의 비효율적인 검색 인덱스 업데이트가 이루어진다.
본 발명은 검색 인덱스에 대한 안전성 요구 사항에 대한 면밀한 검토를 통해 검색 인덱스 재구성 장치(200)에 검색 인덱스에 대한 일부 수정 권한을 부여하는 것이 전체 검색 가능 암호 시스템의 안전성을 훼손하지 않는다는 것을 알 수 있다. 검색 가능 암호 시스템에서 검색 인덱스 재구성 장치(200)는 사용자가 전달한 트랩도어(trapdoor)에 대해서 검색을 수행하고 그에 대한 검색 결과물인 암호화된 데이터의 ID집합을 사용자 단말 장치(100)에게 전달할 수 있다. 때문에, 검색 인덱스 재구성 장치(200)는 검색을 수행한 트랩도어(trapdoor) 목록에 대해서는 각 트랩도어(trapdoor)에 대한 데이터 ID집합의 연결 관계를 얻을 수 있다. 즉, 사용자가 검색을 수행한 트랩도어(trapdoor)에 대해서는 'trapdoor - 검색 결과 데이터 ID집합' 정보가 검색 인덱스 재구성 장치(200)에 별도로 공개되더라도 전체 시스템의 안전성에는 영향을 주지 않는다고 할 수 있다. 본 발명에서는 링크드 리스트(linked list) 구조로 설계된 초기 검색 인덱스 중에서, 검색 인덱스 재구성 장치(200)가 주어진 트랩도어(trapdoor)를 통해 검색된 데이터를 자체적으로 관리할 수 있는 추가적인 인덱스 및 이러한 인덱스를 다시 링크드 리스트(linked list) 형태로 구성하는 방법을 제시하고, 이를 통해 동적으로 변화하는 데이터에 대한 효과적인 범위 검색 및 삭제가 가능한 새로운 검색 가능 암호화 기법을 제안한다.
도 2는 도 1에 도시된 사용자 단말 장치의 일 예를 세부적으로 나타낸 블록도이다.
도 2을 참조하면, 본 발명의 일실시예에 따른 사용자 단말 장치(100)는 검색 인덱스 생성부(110) 및 트랩도어 생성부(120)를 포함할 수 있다.
검색 인덱스 생성부(110)는 자신의 데이터를 암호화하고 암호데이터의 범위 검색을 위한 검색을 위한 인덱스를 생성할 수 있다.
이 때, 검색 인덱스 생성부(110)는 생성한 검색 인덱스를 검색 인덱스 재구성 장치(200)에 전달할 수 있다.
트랩도어 생성부(120)는 검색할 키워드와 비밀키에 기반하여 검색 키워드의 일방향성에 기반한 범위 검색에 대응하는 트랩도어(trapdoor)를 생성할 수 있다.
이 때, 검색 인덱스 생성부(110)는 생성한 트랩도어를 검색 인덱스 재구성 장치(200)에 전달할 수 있다.
도 3은 본 발명의 일실시예에 따른 검색 인덱스 재구성 장치를 나타낸 블록도이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 검색 인덱스 재구성 장치(200)는 검색 수행부(210) 및 검색 인덱스 재구성부(220)를 포함할 수 있다.
검색 수행부(210)는 사용자 단말 장치(100)로부터 전달 받은 검색 인덱스와 트랩도어에 기반하여 암호데이터를 검색할 수 있다.
이 때, 검색 수행부(210)는 하나의 정렬된 링크드 리스트(linked list) 형태로 구성된 확장 인덱스를 추가로 이용하여 상기 암호 데이터를 검색할 수 있다.
검색 인덱스 재구성부(220)는 암호데이터의 검색 결과에 기반하여 상기 검색 인덱스를 재구성할 수 있다.
이 때, 검색 인덱스 재구성부(220)는 검색 인덱스에서 검색 결과에 상응하는 값을 삭제하고 상기 검색인덱스를 재구성할 수 있다.
이 때, 검색 인덱스 재구성부(220)는 상기 검색 결과에서 수집된 링크드 리스트에서 검색한 마지막 원소의 링크를 이용하여 하나의 링크드 리스트로 재구성할 수 있다.
이 때, 검색 인덱스 재구성부(220)는 재구성된 하나의 링크드 리스트를 키워드의 크기 순으로 정렬하여 확장 리스트에 추가할 수 있다.
또한, 검색 인덱스 재구성부(220)는 데이터 및 검색 인덱스의 자료를 삭제할 수 있다.
이 때, 검색 인덱스 재구성부(220)는 사용자 단말 장치로부터 요청 받은 삭제 데이터의 ID를 제공 받아 상기 확장 리스트에서 데이터를 삭제하고 링크드 리스트를 수정할 수 있다.
도 4는 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법을 나타낸 동작흐름도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법은 먼저 시스템을 준비할 수 있다(S210).
즉, 단계(S210)는 사용자 단말 장치(100)가 검색 가능 암호화 시스템을 구축하기 위한 초기 설정 단계이다.
단계(S210)는 사용자 단말 장치(100)가 검색 키워드 범위 L과 저장할 도큐먼트(document)의 수를 고려하여 충분히 큰 어레이(array) A를 구성할 수 있다. A의 각 원소는 하나의 도큐먼트에 대한 암호화된 검색 키워드 정보와 링크드 리스트(linked list) 구성을 위한 링크(link) 정보로 구성될 수 있다. 초기 A의 원소는 모두 'empty'로 설정될 수 있다.
본 발명에서 각 도큐먼트는 다른 도큐먼트와 구별 가능한 고유한 ID와 정수 키워드 K를 포함하는 것으로 가정하며, 키워드 K는 기 정의된 정수 L에 대해서 키워드 범위 1= K ≤=L를 만족하는 것을 가정한다.
또한, 구체적인 설명을 위해 Range Encryption Function을 다음과 같이 정의될 수 있다. Range Encryption Function, RE = (RE.Keygen, RE.Enc, RE.Dec)로 정의되며, 다음 수학식 1을 만족할 수 있다.
[수학식 1]
RE.Keygen(SK, keyword) = DK[keyword]
RE.Enc(SK, [range condition], M) = C[range condition]
RE.Dec(DK[keyword], C[range condition]) = 만약 [keyword]가 [range condition]을 만족하면 M 을 출력할 수 있고, 다른 경우 ⊥ 출력.
수학식 1에서, [range condition]은 특정 정수 a에 대해서 '≤a', 'a≤' 등으로 정의되는 부등식이다. 이러한 성질을 만족하는 RE는 Hierarchical ID-based Encryption, Hierarchical Attribute-based Encryption 등을 활용하여 쉽게 구성할 수 있으므로 본 발명에서는 자세한 설명은 생략한다.
또한, 단계(S210)는 사용자가 단말 장치(100)가 임의의 키 SK0를 선택할 수 있고, range encryption function RE0 = (RE0.keygen, RE0.enc, RE0.dec)를 구성할 수 있다. 마지막으로 사용자는 변수 T를 0으로 정의할 수 있다.
또한, 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법은 검색 인덱스를 생성할 수 있다(S220).
즉, 단계(S220)는 자신의 데이터를 암호화하고 암호데이터의 범위 검색을 위한 검색을 위한 인덱스를 생성할 수 있다.
이 때, 단계(S220)는 생성한 검색 인덱스를 검색 인덱스 재구성 장치(200)에 전달할 수 있다.
이 때, 단계(S220)는 도큐먼트(document) 집합에 대한 검색 인덱스를 생성할 수 있다.
이 때, 단계(S220)는 사용자 단말 장치가(100) 추가되는 도큐먼트를 별도로 저장한 후, 주기적으로 암호데이터로 가공해서 검색 인덱스 재구성 장치(200)에 전달하여 저장할 수 있다.
단계(S220)에서 N개의 도큐먼트 {d1, d2, …, dN}에 대한 인덱스 생성을 예로 들어 설명한다. 또한, 각 도큐먼트 di는 IDi와 Ki를 가질 수 있다(1= Ki =L). 여기에서 도큐먼트는 키워드의 크기로 정렬될 수 있다. 즉, Ki = Ki+1 에 상응할 수 있다.
이 때, 단계(S220)는 사용자 단말 장치(100)가 T의 값을 1 증가하고, 임의의 비밀키 SKT와 RET = (RET.keygen, RET.enc, RET.dec)를 정의할 수 있다. 각 도큐먼트 Di에 대해서 수학식 2와 같이 암호화된 검색 인덱스를 생성할 수 있다.
[수학식 2]
Ci,1 = RE0.enc(SK, '≤Ki', 'correct'), Ci,2 = RE0.enc(SK, 'Ki≤', 'correct')
Ci = RET.enc(SKT, 'Ki≤', [IDi, Ci,1, Ci,2])
이 때, 단계(S220)는 사용자 단말 장치(100)가 배열 A에서 비어있는 N개의 원소 A1, A2, …, AN를 선택하여, Ai의 검색 키워드 정보에 Ci를 저장하고, 임의의 암호화 키 AKi를 선택하여 Ci를 암호화할 수 있다. Linki는 링크드 리스트(linked list)를 구성하기 위한 링크 정보이며, 원소 Ai+1의 주소와 비밀키 AKi+1로 구성될 수 있다. 링크드 리스트의 마지막 원소의 링크는 'empty'로 정의될 수 있다.
이 때, 단계(S220)는 사용자 단말 장치(100)가 RET.enc(SKT, 'Ki≤', linki)로 링크를 암호화하여 Ai의 링크 부분에 저장할 수 있다.
이 때, 단계(S220)는 모든 N 도큐먼트들에 대한 링크드 리스트의 생성이 종료되면, 사용자 단말 장치(100)가 각 Ki에 대해서 Ki를 포함하는 도큐먼트의 시작 위치에 대한 링크 값을 T-table에 테이블의 형태로 저장할 수 있다.
마지막으로, 단계(S220)는 사용자 단말 장치(100)가 각 도큐먼트를 자신의 비밀키로 암호화하고 IDi-[Encrypted Di]의 집합을 생성된 인덱스와 함께 검색 인덱스 재구성 장치(200)에 전달할 수 있다.
또한, 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법은 트랩도어를 생성할 수 있다(S230).
즉, 단계(S230)는 검색할 키워드와 비밀키에 기반하여 검색 키워드의 일방향성에 기반한 범위 검색에 대응하는 트랩도어(trapdoor)를 생성할 수 있다.
이 때, 단계(S230)는 생성한 트랩도어를 검색 인덱스 재구성 장치(200)에 전달할 수 있다.
이 때, 단계(S230)는 사용자 단말 장치(100)가 검색하고자 하는 범위 'a = K ≤= b'에 대해서 수학식 3과 같이 트랩도어를 생성할 수 있다.
이 때, 단계(S230)는 사용자 단말 장치(100)가 t=T에 대해 t-Table에서 키워드 'a'에 해당하는 링크 linkt(a)를 확인할 수 있다. 만약, linkt(a)가 'empty' 인 경우 생략한다.
[수학식 3]
linkt(a), REt.keygen(SKt, b) = DKt(b)
이 때, 단계(S230)는 RE0.keygen(SK, a), RE0.keygen(SK.b) = DK(a), DK(b)를 추가로 제공할 수 있다.
또한, 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법은 검색을 수행할 수 있다(S240).
즉, 단계(S240)는 사용자 단말 장치(100)로부터 전달 받은 검색 인덱스와 트랩도어에 기반하여 암호데이터를 검색할 수 있다.
이 때, 단계(S240)는 검색 인덱스 재구성 장치(100)가 사용자 단말 장치(100)로부터 전달 받은 트랩도어(trapdoor)에 대해 아래와 같이 검색을 수행할 수 있다.
예를 들어, 단계(S240)는 트랩도어가 (linkt(a), DKt(b), DK(a), DK(b))인 경우에 대해서 설명한다.
이 때, 단계(S240)는 검색 인덱스 재구성 장치(100)가 주어진 linkt(a)로부터 링크드 리스트의 시작점(A1)을 찾아내어 검색을 시작할 수 있다.
이 때, 단계(S240)는 링크에 포함된 비밀키로부터 A1의 도큐먼트 정보 [ID1, C1,1, C1,2]를 복호화 할 수 있으며 각 원소에서 ID정보를 검색 결과로 수집할 수 있다. 또한, 도큐먼트 정보는 인덱스 재구성을 위해 별도로 보관될 수 있다.
이후, 단계(S240)는 A1의 링크 정보를 복호화하기 위해서 수학식 4를 계산할 수 있다.
[수학식 4]
REt.Dec(DKt(b), RET.enc(SKT, 'K1≤', link1))
이 때, 단계(S240)는 수학식 4에서 'K1≤b'를 만족하는 경우에만 link1을 정확하게 복호화하여 다음 원소에 대한 검색을 수행할 수 있다. 그렇지 않은 경우 단계(S240)을 종료할 수 있다.
또한, 단계(S240)는 하나의 정렬된 링크드 리스트(linked list) 형태로 구성된 확장 인덱스(extended index)를 추가로 이용하여 상기 암호 데이터를 검색할 수 있다.
이 때, 단계(S240)는 검색 인덱스 재구성 장치(200)가 자신이 관리하는 확장 인덱스를 통한 추가적인 검색을 수행할 수 있다. 확장 인덱스는 하나의 정렬된 링크드 리스트(linked list)의 형태로 구성되어 있으며, 각 원소는 [IDi, Ci,1, Ci,2]의 정보를 포함할 수 있다.
이 때, 단계(S240)는 검색 인덱스 재구성 장치(200)가 링크드 리스트에서, 수학식 5를 계산하여 두 경우 모두에서 'correct' 값을 얻을 경우 IDi를 결과에 추가할 수 있다.
[수학식 5]
RE0.Dec(DK(a), Ci,1)
RE0.Dec(DK(b), Ci,2)
이 때, 단계(S240)는 확장 리스트가 생성되지 않은 경우에는 검색을 종료할 수 있다.
또한, 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법은 검색 인덱스를 재구성할 수 있다(S250).
즉, 단계(S250)는 암호데이터의 검색 결과에 기반하여 상기 검색 인덱스를 재구성할 수 있다.
이 때, 단계(S250)는 상기 검색 결과에서 수집된 링크드 리스트에서 검색한 마지막 원소의 링크를 이용하여 하나의 링크드 리스트로 재구성할 수 있다.
이 때, 단계(S250)는 검색 인덱스 재구성 장치(200)가 검색 결과에 포함된 IDi에 대해서 원소 Ai의 값을 삭제하고 링크드 리스트에서 검색한 마지막 원소의 링크를 이용하여 링크드 리스트의 중간 부분만을 삭제하고 하나의 링크드 리스트로 재구성할 수 있다.
이 때, 단계(S250)는 재구성된 하나의 링크드 리스트를 키워드의 크기 순으로 정렬하여 확장 리스트에 추가할 수 있다.
이 때, 단계(S250)는 검색 결과에서 수집한 [IDi, Ci,1, Ci,2]를 검색 인덱스 재구성 장치(200)가 관리하는 확장 리스트(extended list)에 포함된 키워드의 크기 순으로 정렬하여 추가할 수 있다. 이 때, 확장 리스트는 검색 인덱스 재구성 장치(200)의 비밀키로 암호화되는 데이터에 상응할 수 있다.
이 때, 단계(S250)는 검색 인덱스 재구성 장치(200)가 확장 리스트에 저장된 원소의 정보로부터 추가하는 데이터를 삽입할 부분을 쉽게 계산할 수 있다.
또한, 본 발명의 일실시예에 따른 검색 인덱스 재구성 방법은 데이터 및 검색 인덱스의 자료를 삭제할 수 있다(S260).
즉, 단계(S260)는 사용자 단말 장치(100)가 검색 인덱스 재구성 장치(200)에 삭제할 데이터의 ID를 제공할 수 있다.
이 때, 단계(S260)는 검색 인덱스 재구성 장치(200)가 확장 리스트(extended list)에서 주어진 ID에 해당하는 원소를 삭제하고 다시 링크드 리스트(linked list)를 수정할 수 있다.
도 5 및 도 6은 본 발명의 일실시예에 따른 검색 가능 암호 시스템의 검색 및 재구성 과정을 나타낸 도면이다.
도 5를 참조하면, 본 발명의 일실시예에 따른 검색 가능 암호 시스템의 사용자 단말 장치(100)는 ID, 암호화된 도큐먼트 정보(S. Cond, E.Cond)와 링크 정보(Link)를 포함하는 검색 인덱스와 범위 검색을 위한 트랩도어를 생성하고, 이를 검색 인덱스 재구성 장치(200)에 전달하는 것을 알 수 있다.
이 때, 검색 인덱스 재구성 장치(200)는 검색 인덱스와 트랩도어에 기반하여 시작 지점(Starting Point) 부터 링크에 포함된 비밀키를 이용하여 도큐먼트 정보를 복호화하고, 링크를 정확하게 복호화하여 다음 원소에 대한 검색을 수행할 수 있다(Decryption Link).
이 때, 검색 인덱스 재구성 장치(200)는 링크 정보가 복호화되지 않거나 다음 원소에 대한 검색이 실패한 경우 검색을 종료할 수 있다(Decryption Fails).
도 6을 참조하면, 본 발명의 일실시예에 따른 검색 가능 암호 시스템의 검색 인덱스 재구성 장치(200)는 복호화 과정에서 수집한 도큐먼트 정보를 이용하여 검색 인덱스를 재구성하는 것을 알 수 있다.
이 때, 검색 인덱스 재구성 장치(200)는 검색 결과에 포함된 원소 값을 삭제하여 링크드 리스트에서 검색한 마지막 원소의 링크를 이용하여 하나의 링크드 리스트로 재구성하는 것을 알 수 있다.
이 때, 검색 인덱스 재구성 장치(200)는 키워드의 크기 순으로 정렬하여 검색 인덱스에 재구성된 링크드 리스트를 추가하는 것을 알 수 있다.
도 7은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 사용자 단말 장치(100) 및 검색 인덱스 재구성 장치(200)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 7에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
본 발명의 실시예에 따른 검색 인덱스 재구성 장치 및 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서와 같이 본 발명에 따른 검색 인덱스 재구성 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 사용자 단말 장치 110: 검색 인덱스 생성부
120: 트랩도어 생성부 200: 검색 인덱스 재구성 장치
210: 검색 수행부 220: 검색 인덱스 재구성부
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크

Claims (10)

  1. 검색 인덱스 재구성 장치를 이용하는 검색 인덱스 재구성 방법에 있어서,
    암호데이터의 범위 검색을 위한 검색 인덱스를 생성하는 단계;
    검색 키워드의 일방향성에 기반한 상기 범위 검색에 대응하는 트랩도어를 생성하는 단계;
    상기 검색 인덱스와 상기 트랩도어에 기반하여 상기 암호데이터를 검색하는 단계; 및
    상기 암호데이터의 검색 결과에 기반하여 상기 검색 인덱스를 재구성하는 단계;
    를 포함하는 것을 특징으로 하는 검색 인덱스 재구성 방법.
  2. 청구항 1에 있어서,
    상기 검색하는 단계는
    하나의 정렬된 링크드 리스트(linked list) 형태로 구성된 확장 인덱스를 추가로 이용하여 상기 암호 데이터를 검색하는 것을 특징으로 하는 검색 인덱스 재구성 방법.
  3. 청구항 2에 있어서,
    상기 재구성하는 단계는
    상기 검색 결과에서 수집된 링크드 리스트에서 검색한 마지막 원소의 링크를 이용하여 하나의 링크드 리스트로 재구성하는 것을 특징으로 하는 검색 인덱스 재구성 방법.
  4. 청구항 3에 있어서,
    상기 재구성하는 단계는
    재구성된 하나의 링크드 리스트를 키워드의 크기 순으로 정렬하여 확장 리스트에 추가하는 것을 특징으로 하는 검색 인덱스 재구성 방법.
  5. 청구항 4에 있어서,
    상기 재구성하는 단계는
    사용자 단말 장치로부터 요청 받은 삭제 데이터의 ID를 제공 받아 상기 확장 리스트에서 데이터를 삭제하고 링크드 리스트를 수정하는 것을 특징으로 하는 검색 인덱스 재구성 방법.
  6. 암호데이터의 범위 검색을 위한 검색 인덱스 및 검색 키워드의 일방향성에 기반한 상기 범위 검색에 대응하는 트랩도어에 기반하여 상기 암호데이터를 검색하는 검색 수행부; 및
    상기 암호데이터의 검색 결과에 기반하여 상기 검색 인덱스를 재구성하는 검색 인덱스 재구성부;
    를 포함하는 것을 특징으로 하는 검색 인덱스 재구성 장치.
  7. 청구항 6에 있어서,
    상기 검색 수행부는
    하나의 정렬된 링크드 리스트(linked list) 형태로 구성된 확장 인덱스를 추가로 이용하여 상기 암호 데이터를 검색하는 것을 특징으로 하는 검색 인덱스 재구성 장치.
  8. 청구항 7에 있어서,
    상기 검색 인덱스 재구성부는
    상기 검색 결과에서 수집된 링크드 리스트에서 검색한 마지막 원소의 링크를 이용하여 하나의 링크드 리스트로 재구성하는 것을 특징으로 하는 검색 인덱스 재구성 장치.
  9. 청구항 8에 있어서,
    상기 검색 인덱스 재구성부는
    재구성된 하나의 링크드 리스트를 키워드의 크기 순으로 정렬하여 확장 리스트에 추가하는 것을 특징으로 하는 검색 인덱스 재구성 장치.
  10. 청구항 9에 있어서,
    상기 검색 인덱스 재구성부는
    사용자 단말 장치로부터 요청 받은 삭제 데이터의 ID를 제공 받아 상기 확장 리스트에서 데이터를 삭제하고 링크드 리스트를 수정하는 것을 특징으로 하는 검색 인덱스 재구성 장치.
KR1020180034142A 2018-03-23 2018-03-23 검색 인덱스 재구성 장치 및 방법 KR20190111691A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180034142A KR20190111691A (ko) 2018-03-23 2018-03-23 검색 인덱스 재구성 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180034142A KR20190111691A (ko) 2018-03-23 2018-03-23 검색 인덱스 재구성 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20190111691A true KR20190111691A (ko) 2019-10-02

Family

ID=68423226

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180034142A KR20190111691A (ko) 2018-03-23 2018-03-23 검색 인덱스 재구성 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20190111691A (ko)

Similar Documents

Publication Publication Date Title
CN110224986B (zh) 一种基于隐藏策略cp-abe的高效可搜索访问控制方法
Salam et al. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage
Vimercati et al. Encryption policies for regulating access to outsourced data
Yuan et al. Secure cloud data deduplication with efficient re-encryption
JP4958246B2 (ja) 高速検索可能な暗号化のための方法、装置およびシステム
JP5420085B2 (ja) データ処理装置及びデータ保管装置
KR101190061B1 (ko) 결합 키워드를 이용한 데이터 암호화 방법 및 데이터 검색방법
Li et al. Towards privacy-preserving storage and retrieval in multiple clouds
KR101282281B1 (ko) 프라이버시를 보장하는 가중치 기반의 키워드 검색을 위한 방법 및 장치
Dowsley et al. A survey on design and implementation of protected searchable data in the cloud
Rizomiliotis et al. ORAM based forward privacy preserving dynamic searchable symmetric encryption schemes
JP6632780B2 (ja) データ処理装置、データ処理方法及びデータ処理プログラム
Sun et al. A dynamic and non-interactive boolean searchable symmetric encryption in multi-client setting
Peng et al. LS-RQ: A lightweight and forward-secure range query on geographically encrypted data
Jho et al. Symmetric searchable encryption with efficient range query using multi-layered linked chains
Dowsley et al. A report on design and implementation of protected searchable data in iaas
Mani Enabling secure query processing in the cloud using fully homomorphic encryption
CN107294701B (zh) 具有高效密钥管理的多维密文区间查询装置及查询方法
Cui et al. P-McDb: Privacy-preserving search using multi-cloud encrypted databases
KR101232385B1 (ko) 대칭키 기반의 암호 생성 및 검색 방법과 그 시스템
Kaci et al. Access control aware search on the cloud computing
Yan et al. Secure and efficient big data deduplication in fog computing
KR101422759B1 (ko) 데이터 위탁 환경에서 결탁을 방지하는 데이터 저장 및 공유 방법
Ti et al. Benchmarking dynamic searchable symmetric encryption scheme for cloud-internet of things applications
ThandaiahPrabu et al. An efficient and secured multiple keyword cloud data searching scheme with dynamic encryption procedure