KR102463640B1 - 공개키 기반의 암호 시스템 및 이를 이용한 데이터 보안 방법 - Google Patents

공개키 기반의 암호 시스템 및 이를 이용한 데이터 보안 방법 Download PDF

Info

Publication number
KR102463640B1
KR102463640B1 KR1020200176547A KR20200176547A KR102463640B1 KR 102463640 B1 KR102463640 B1 KR 102463640B1 KR 1020200176547 A KR1020200176547 A KR 1020200176547A KR 20200176547 A KR20200176547 A KR 20200176547A KR 102463640 B1 KR102463640 B1 KR 102463640B1
Authority
KR
South Korea
Prior art keywords
data
server
search query
public key
search
Prior art date
Application number
KR1020200176547A
Other languages
English (en)
Other versions
KR20220051774A (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 국방과학연구소
Publication of KR20220051774A publication Critical patent/KR20220051774A/ko
Application granted granted Critical
Publication of KR102463640B1 publication Critical patent/KR102463640B1/ko

Links

Images

Classifications

    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따르면, 데이터 송신 장치가, 데이터를 암호화하고, 상기 암호화된 데이터를 상기 서버에 업로드하고, 상기 데이터 수신 장치가, 상기 암호화된 데이터를 탐색하기 위한 탐색 쿼리문을 생성하여 암호화하고, 생성한 상기 암호화된 탐색 쿼리문을 상기 서버로 전송하며, 상기 서버가 상기 전송된 탐색 쿼리문을 복호화하고, 상기 암호화된 데이터와 상기 복호화된 탐색 쿼리문의 일치 여부를 확인하는 탐색 과정을 진행하는 과정을 포함하는 공개키 기반의 암호 시스템 및 이를 이용한 데이터 보안 방법이 개시된다.

Description

공개키 기반의 암호 시스템 및 이를 이용한 데이터 보안 방법 {PUBLIC KEY-BASED ENCRYPTION SYSTEM AND DATA SECURITY METHOD USING THE SAME}
본 발명은 암호 시스템 및 이를 이용한 데이터 보안 방법에 관한 것이다.
Intel SGX는 신뢰 실행 환경(Trusted Execution Environment)으로 6세대 인텔 코어 프로세서 이후 모델에서 지원하는 x86 명령어 집합 기계(ISA) 확장 기능이다. SGX를 지원하는 플랫폼에서는 비신뢰 구간과 고립된 신뢰된 구간으로 나눌 수 있다. 여기서 고립된 신뢰 구간을 엔클레이브(Enclave)라고 한다. Enclave는 physical RAM의 일부 메모리를 할당 받는다. Enclave는 일반적인 프로세스의 가상 메모리 등에 접근이 가능하다. 하지만 일반 호스트 프로세스는 Enclave 메모리에 접근을 할 수 없다. 그리고 Enclave 내부의 코드와 데이터는 암호화된 상태로만 비신뢰 메모리 구간에 저장이 가능하다.
생성된 Enclave들 간의 인증 과정은 local attestation과 remote attestation 과정을 통해 진행된다. Local attestation은 같은 장치 내의 Enclave간 인증 과정에 사용이 되고, remote attestation은 클라우드 서버와 같이 서로 다른 장치에 존재하는 enclave간 인증을 위해 사용이 된다. Attestation 과정을 통해 Enclave 안전한 통신 채널을 생성하고, 중요한 정보들을 전달할 수 있다.
PEKS는 공개키 기반의 검색 가능한 암호 기법이다. 기존에 제안된 PEKS 기법은 Query leakage attack에 취약한 것으로 알려져 있다. 이러한 취약점을 해결하기 위해 순방향 안정성(Forward Privacy)을 만족하는 기법들이 제안 되었지만, 기존 기법들의 Leakage 문제들은 여전히 존재하고, 효율성이 아직 미흡하다.
본 발명의 일 실시예에 따른 해결하고자 하는 과제는, 신뢰 실행 환경을 사용하여 데이터 전송을 위해 높은 안전성과 효율성을 갖는 보안 시스템을 제공하는 것을 포함한다.
본 명세서에 명시되지 않은 또 다른 목적들은 하기의 상세한 설명 및 그 효과로부터 용이하게 추론할 수 있는 범위 내에서 추가적으로 고려될 수 있다.
상기 과제를 해결하기 위해, 본 발명의 일 실시예에 따른 데이터 수신 장치, 데이터 송신 장치 및 서버를 포함하는 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법은, 상기 데이터 송신 장치가, 데이터를 암호화하고, 상기 암호화된 데이터를 상기 서버에 업로드하는 단계, 상기 데이터 수신 장치가, 상기 암호화된 데이터를 탐색하기 위한 탐색 쿼리문을 생성하여 암호화하고, 생성한 상기 암호화된 탐색 쿼리문을 상기 서버로 전송하는 단계, 상기 서버가 상기 전송된 탐색 쿼리문을 복호화하고, 상기 암호화된 데이터와 상기 복호화된 탐색 쿼리문의 일치 여부를 확인하는 탐색 과정을 진행하는 단계 및 상기 서버가 상기 탐색 쿼리문에 일치하는 상기 암호화된 데이터가 있는 경우, 복호화 결과와 상기 데이터를 상기 데이터 수신 장치에게 전달하는 단계를 포함한다.
또한, 상기 데이터 수신 장치가, 상기 탐색 쿼리문을 생성하여 암호화하는 단계 이전에, 상기 데이터 수신 장치가 개인키, 공개키 및 대칭키를 생성하고, 상기 서버로 상기 개인키 및 대칭키를 전송하는 단계를 더 포함할 수 있다.
여기서, 상기 데이터 수신 장치가 개인키, 공개키 및 대칭키를 생성하고, 서버로 상기 개인키 및 대칭키를 전송하는 단계는, 상기 데이터 수신 장치가 키 생성 알고리즘을 이용하여 개인키, 공개키 및 대칭키를 생성하는 단계 및 상기 데이터 수신 장치가 서버 내에 보안 채널을 생성하고, 상기 보안 채널을 통해 상기 개인키 및 대칭키를 전송하는 단계를 포함할 수 있다.
여기서, 상기 서버 내에 보안 채널을 생성하는 것은, 상기 서버 내부의 신뢰 구간에 SGX 증명 기능을 사용하여 보안 채널을 생성하는 것이다.
여기서, 상기 데이터 송신 장치가 데이터를 암호화하는 것은, 상기 데이터 송신 장치가 상기 공개키를 이용하여 상기 데이터에 포함된 제1 키워드와 상기 서버의 탐색 카운터를 이용하여 상기 데이터를 암호화하는 것이다.
여기서, 상기 데이터 수신 장치가 상기 탐색 쿼리문을 생성하여 암호화하는 것은, 상기 데이터와의 일치 여부 판단을 위한 제2 키워드와 상기 탐색 카운터를 활용하여 상기 탐색 쿼리문을 생성하고, 상기 대칭키로 암호화하는 것이다.
여기서, 상기 암호화된 데이터와 상기 탐색 쿼리문의 일치 여부를 확인하는 탐색 과정은, 상기 암호화된 데이터에 포함된 제1 키워드와 상기 탐색 쿼리문에 포함된 제2 키워드의 일치 여부를 확인하는 것이다.
본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템은, 서버, 데이터를 암호화하고, 상기 암호화된 데이터를 상기 서버에 업로드하는 데이터 송신 장치 및 상기 암호화된 데이터를 탐색하기 위한 탐색 쿼리문을 생성하여 암호화하고, 생성한 상기 암호화된 탐색 쿼리문을 상기 서버로 전송하는 데이터 수신 장치를 포함하며, 상기 서버는, 상기 전송된 탐색 쿼리문을 복호화하고, 상기 암호화된 데이터와 상기 복호화된 탐색 쿼리문의 일치 여부를 확인하는 탐색 과정을 진행하고, 상기 탐색 쿼리문에 일치하는 상기 암호화된 데이터가 있는 경우, 복호화 결과와 상기 데이터를 상기 데이터 수신 장치에게 전달한다.
여기서, 상기 데이터 수신 장치는, 키 생성 알고리즘을 이용하여 개인키, 공개키 및 대칭키를 생성하며, 상기 서버 내에 보안 채널을 생성하고, 상기 보안 채널을 통해 상기 개인키 및 대칭키를 전송할 수 있다.
또한, 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능한 기록매체로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 데이터 보안 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체를 제공할 수 있다.
또한, 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 데이터 보안 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램을 제공할 수 있다.
이상에서 설명한 바와 같이 본 발명의 실시예들에 의하면, 서버가 내부의 Enclave에서 작동하는 코드 및 결과 값을 알 수 없도록 하여, 기존 기법들에서 발생하는 Leakage 문제를 최소화할 수 있다.
또한, 기존 PEKS 기법들에서 안전성 보장을 위해 활용된 복잡한 암호 기술들을 보다 단순한 암호 기술로 대체 가능하여 효율성을 높일 수 있다.
여기에서 명시적으로 언급되지 않은 효과라 하더라도, 본 발명의 기술적 특징에 의해 기대되는 이하의 명세서에서 기재된 효과 및 그 잠정적인 효과는 본 발명의 명세서에 기재된 것과 같이 취급된다.
도 1은 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법을 나타낸 흐름도이다.
도 3 내지 도 6은 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법의 알고리즘을 설명하기 위한 도면이다.
도 7 내지 도 9는 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법을 다른 보안 방법과 비교하여 설명한 도면이다.
이하, 본 발명에 관련된 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법에 대하여 도면을 참조하여 보다 상세하게 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 설명하는 실시예에 한정되는 것이 아니다. 그리고, 본 발명을 명확하게 설명하기 위하여 설명과 관계없는 부분은 생략되며, 도면의 동일한 참조부호는 동일한 부재임을 나타낸다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
본 발명의 일 실시예는 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법에 관한 것이다.
도 1은 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 나타낸 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템(1)은 서버(10), 데이터 수신 장치(20) 및 데이터 송신 장치(30)를 포함한다.
본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템(1)은 키워드 검색 (Public Key encryption with keyword search, PEKS)을 통한 공개키 암호화를 통해 사용자가 신뢰할 수 없는 서버로 아웃소싱 된 암호화 된 데이터를 검색할 수 있도록 하는 시스템이다.
클라우드 서비스 제공 업체에 데이터를 아웃소싱하는 것은 데이터 관리 측면에서 유익하지만 데이터 보안 및 개인 정보 보호 문제를 제기한다. 아웃소싱 전에 데이터를 암호화하면 데이터 프라이버시 문제를 해결할 수 있다. 그러나 이는 불가피하게 복잡하거나 때로는 아웃소싱 된 데이터 검색과 같은 중요한 데이터 관리 작업을 방해한다. 키워드 검색을 통한 공개 키 암호화(PEKS)는 데이터 발신자가 공개 키를 사용하여 데이터를 암호화 할 수 있도록 허용하여 개인키가 공개키와 연결된 데이터 수신자만 암호 텍스트를 검색 할 수 있도록 한다.
하지만, 종래의 PEKS 체계는 쿼리 유출 공격에 취약하다. 예를 들어, 파일 투입 공격(le injection attacks)에서 적대적인 데이터 발신자는 자신이 선택한 악의적으로 제작 된 파일을 생성하고 데이터 수신자의 공개 키로 암호화 한 다음 클라우드 스토리지로 아웃소싱하게 된다. 그런 다음 공격자는 특정 수신자가 제출 한 쿼리에 대한 응답으로 어떤 파일이 반환되는지 모니터링하여 파일 액세스 패턴을 관찰하여 수신자의 쿼리를 유출한다.
이에 대한 대책으로, 새로 삽입 된 파일에 과거 검색 쿼리를 사용할 수 없도록 보장 할 수 있는 포워드 프라이빗 PEKS 기법이 제안되었으나, 이전 체계는 클라우드 기반 응용 프로그램에서 널리 사용되는 다중 사용자 환경에 적합하지 않다. 따라서 확장 가능한 방식으로 다중 사용자 설정을 안전하게 지원하는 포워드 프라이빗 PEKS를 설계하는 것이 필요하다.
본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템(1)은 총 4단계 (Setup, PEKS, Trapdoor, Search)로 구성된다.
먼저, 데이터 수신 장치(20)는 키 생성 알고리즘을 통해 개인키(SK)와 공개키(PK), 및 대칭키(K)를 생성하고, 데이터 수신 장치(20)는 서버(10) 내부의 엔클레이브(Enclave)(11)에 증명(attestation) 과정을 통해 안전한 채널을 생성한다.
이후, 데이터 송신 장치(30)는 공개키(PK)를 이용해 해당 문서(D)의 키워드와 탐색 카운터를 활용하여 암호문을 생성한다.
이후, 데이터 수신 장치(20)는 키워드와 탐색 카운터를 활용하여 탐색 쿼리문(Q)을 생성하고, 대칭키(K)로 암호화하여 서버 내부의 Enclave(11)로 전송한다.
이후, 전송된 탐색 쿼리문(Q)은 Enclave 내부에 저장된 대칭키(K)를 활용하여 복호화하고, Enclave 외부에 저장되어 있는 데이터 암호문을 부분적으로 불러 탐색 과정을 진행한다. 만일, 탐색 쿼리문에 해당되는 데이터 암호문이 있다면 탐색 성공 여부를 데이터 수신 장치(20)에게 보내고, 데이터 수신 장치(20)는 해당 문서 데이터를 받는다.
구체적으로 설명하면, 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템(1)에서 서버(10)는 클라우드 서버로서, 신뢰할 수 없는(untrusted) 서버이다. 이에 따라, 서버(10)는 내부에 신뢰 구간인 엔클레이브(Enclave)(11)를 형성한다. 서버의 신뢰할 수 없는(untrusted) 구간에는 메모리(12)와 탐색 카운터(13)를 포함할 수 있다.
이에 따라, 탐색 쿼리문의 복호화 과정을 신뢰 구간인 엔클레이브(Enclave)(11)에서만 진행하게 되고, 데이터 전송을 위해 높은 안전성과 효율성을 갖는 보안 시스템을 구축할 수 있다.
데이터 수신 장치(20)는, 키 생성 알고리즘을 이용하여 개인키(SK), 공개키(PK) 및 대칭키(K)를 생성하며, 서버(10) 내에 보안 채널을 생성하고, 보안 채널을 통해 개인키(SK) 및 대칭키(K)를 전송한다. 여기서, 서버(10) 내의 신뢰 구간인 엔클레이브(Enclave)(11)에 보안 채널을 생성한다.
데이터 송신 장치(30)는 데이터(D)를 암호화하고, 암호화된 데이터를 서버(10)에 업로드한다. 여기서, 암호화된 데이터는 서버(10)에서 엔클레이브(Enclave)(11)의 외부에 위치하는 메모리(12)에 업로드된다.
본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템(1)에서 서버(10)로 구현되는 SGX 플랫폼은 신뢰할 수 없는 부분과 신뢰할 수 있는 부분으로 나눌 수 있다. 엔클레이브(Enclave)(11)는 내용이 보호되는 물리적 메모리의 신뢰할 수 있는 부분 또는 개인 영역이다. Enclave의 메모리 공간은 더욱 기밀이 요구되는 수준에서 실행되는 프로세스를 포함하여 Enclave 자체 외부의 모든 프로세스와 격리되도록 구현된다.
데이터 송신 장치(30)는 공개키(PK)를 이용하여 데이터(D)에 포함된 제1 키워드와 서버의 탐색 카운터(13)를 이용하여 데이터를 암호화한다.
이후, 데이터 수신 장치(20)는, 암호화된 데이터를 탐색하기 위한 탐색 쿼리문(Q)을 생성하여 암호화하고, 생성한 암호화된 탐색 쿼리문을 서버로 전송한다. 여기서, 서버(10) 내의 신뢰 구간인 엔클레이브(Enclave)(11)에 암호화된 탐색 쿼리문을 전송한다.
데이터 수신 장치(20)는, 데이터(D)와의 일치 여부 판단을 위한 제2 키워드와 탐색 카운터를 활용하여 탐색 쿼리문(Q)을 생성하고, 대칭키(K)로 암호화한 후 엔클레이브(Enclave)(11)로 전송한다.
서버(10)의 엔클레이브(Enclave)(11)는 전송된 탐색 쿼리문(Q)을 복호화하고, 암호화된 데이터와 복호화된 탐색 쿼리문의 일치 여부를 확인하는 탐색 과정을 진행하고, 탐색 쿼리문에 일치하는 암호화된 데이터가 있는 경우, 복호화 결과와 데이터를 데이터 수신 장치(20)에게 전달한다.
구체적으로, 서버(10)의 엔클레이브(Enclave)(11)는 대칭키(K)를 이용하여 탐색 쿼리문(Q)을 복호화하고, 암호화된 데이터를 외부의 메모리(12)로부터 로딩하여 개인키(SK)를 이용하여 탐색을 진행하며, 여기서, 암호화된 데이터에 포함된 제1 키워드와 탐색 쿼리문에 포함된 제2 키워드의 일치 여부를 확인한다.
본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템(1)은 키워드 검색 방식을 이용한 순방향 프라이빗 SGX 기반 공개 키 암호화 기법인 SPEKS로서, 데이터 수신 장치와 클라우드 서버 모두 동일한 탐색 카운터를 공유하며 이는 각 데이터 업데이트마다 업데이트된다.
현재 데이터는 최신 탐색 카운터를 사용하여 암호화되므로 이전 쿼리는 이후에 업데이트되는 데이터와 연결할 수 없지만, 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템(1)에서는 포워드 프라이버시(forward privacy)를 보장할 수 있다.
도 2는 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법을 나타낸 흐름도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법은 데이터 수신 장치(20)가 개인키, 공개키 및 대칭키를 생성하고, 서버로 개인키 및 대칭키를 전송하는 단계에서 시작한다.
구체적으로, 단계 S110에서 데이터 수신 장치(20)가 키 생성 알고리즘을 이용하여 개인키, 공개키 및 대칭키를 생성한다.
이후, 단계 S120에서 데이터 수신 장치(20)가 서버 내에 보안 채널을 생성하고, 보안 채널을 통해 개인키 및 대칭키를 전송한다.
구체적으로, 서버 내부의 신뢰 구간에 SGX 증명 기능을 사용하여 보안 채널을 생성하게 된다.
SGX는 엔클레이브(Enclave)의 유효성 또는 올바른 생성을 확인하는 소프트웨어 증명 기능을 지원하며, 로컬 및 원격 증명이 있다. 엔클레이브 계측값(enclave measurement)은 엔클레이브가 생성 될 때 로드 되는 초기 코드 및 데이터이며, Enclave의 정확성을 확인하는 데 사용된다. SGX의 증명 기능이 제공하는 서명은 계측값의 신뢰성을 보장할 수 있다.
로컬 증명의 경우 EREPORT 및 EGETKEY 명령어는 서명 된 보고서를 생성하고 대상 영역에서 보고서를 확인하는 데 사용된다. 원격 증명의 경우 사용되는 서명은 SGX의 구성 요소인 QE(Quoting Enclave)에서 제공된다. 서명을 만들기 전에 QE는 하드웨어 자체의 계측값만 허용한다.
단계 S120에서 보안 연결을 설정한 후 개인키 및 대칭키를 엔클레이브에 프로비저닝한다, 엔클레이브는 향후 프로세스를 위해 프로비저닝 된 키 2개를 저장한다. 만일, 엔클레이브가 언로드되거나 재부팅되면 프로비저닝 된 키를 로컬 메모리에 저장할 수 있다.
이후, 단계 S210에서 데이터 송신 장치(30)가, 데이터를 암호화하고, 단계 S220에서 암호화된 데이터를 서버에 업로드한다.
구체적으로, 데이터 송신 장치(30)가 공개키를 이용하여 데이터에 포함된 제1 키워드와 서버의 탐색 카운터를 이용하여 데이터를 암호화한다.
이후, 단계 S310에서 데이터 수신 장치(20)가, 암호화된 데이터를 탐색하기 위한 탐색 쿼리문을 생성하고, 단계 S320에서 생성한 탐색 쿼리문을 암호화하고, 단계 S330에서 생성한 암호화된 탐색 쿼리문을 서버로 전송한다.
구체적으로, 데이터와의 일치 여부 판단을 위한 제2 키워드와 탐색 카운터를 활용하여 탐색 쿼리문을 생성하고, 대칭키로 암호화한다.
이후, 단계 S410에서 서버(10)가 전송된 탐색 쿼리문을 복호화하고, 단계 S420에서 암호화된 데이터와 복호화된 탐색 쿼리문의 일치 여부를 확인하는 탐색 과정을 진행한다.
구체적으로, 암호화된 데이터에 포함된 제1 키워드와 탐색 쿼리문에 포함된 제2 키워드의 일치 여부를 확인한다.
만일, 서버(10)가 탐색 쿼리문에 일치하는 암호화된 데이터가 있는 경우, 단계 S430에서 복호화 결과와 데이터를 데이터 수신 장치(20)에게 전달한다.
도 3 내지 도 6은 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법의 알고리즘을 설명하기 위한 도면이다.
본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법의 알고리즘은 4가지 알고리즘 (Setup, PEKS, Trapdoor, Search)으로 구성된다.
도 3은 제1 알고리즘을 나타낸 것이다. 제1 알고리즘은 SPEKS 알고리즘의 Setup을 설명한 것이다.
제1 알고리즘을 통해 데이터 수신 장치가 개인키, 공개키 및 대칭키를 생성한다. 이후, 보안 채널을 통해 클라우드 서버 내의 엔클레이브에 개인키 및 대칭키를 프로비저닝한다.
구체적으로, 단계 S31에서 데이터 수신 장치가 개인키, 공개키를 생성한다. 단계 S32에서 대칭키를 생성한다. 이후, 단계 S33에서 개인키 및 대칭키를 서버 엔클레이브(Enclave)에 프로비저닝한다.
도 4는 제2 알고리즘을 나타낸 것이다. 제2 알고리즘은 SPEKS 알고리즘의 PEKS를 설명한 것이다.
제2 알고리즘을 통해 데이터 송신 장치는 먼저 클라우드 서버에 탐색 카운터를 요청하고, 공개키를 이용하여 데이터에 포함된 제1 키워드와 서버의 탐색 카운터를 이용하여 데이터를 암호화한다.
구체적으로, 단계 S41에서 클라우드 서버에 탐색 카운터를 요청한다. 단계 S42에서 클라우드 서버가 데이터 송신 장치로 탐색 카운터를 전송한다. 단계 S43에서 공개키(PK)를 이용해 해당 문서(D)의 키워드와 탐색 카운터를 활용하여 암호문을 생성한다. 이후, 단계 S44에서 암호문을 클라우드 서버로 전송한다.
도 5는 제3 알고리즘을 나타낸 것이다. 제3 알고리즘은 SPEKS 알고리즘의 Trapdoor를 설명한 것이다.
암호화된 데이터는 클라우드 서버로 전송된다. 여기서, 데이터 수신 장치는 제2 키워드로 탐색 쿼리문을 생성한다. 구체적으로, 탐색 카운터와 데이터와의 일치 여부 판단을 위한 제2 키워드를 사용하여 탐색 쿼리문을 생성한다.
이후, 그런 다음 SKE(대칭 키 암호화)를 사용하여 대칭키(K)로 탐색 쿼리문을 암호화한다.
암호화 된 탐색 쿼리문을 Enclave로 전송하고, 데이터 수신 장치는 자신의 탐색 카운터를 1씩 증가시키게 된다.
구체적으로, 단계 S51에서 키워드와 탐색 카운터를 활용하여 탐색 쿼리문(Q)을 생성한다. 단계 S52에서 대칭키(K)로 탐색 쿼리문(Q)을 암호화한다. 단계 S53에서 암호화한 탐색 쿼리문(Q)을 서버 엔클레이브(Enclave)로 전송한다. 이후, 단계 S54에서 단계 S53에서 탐색 카운터를 1 증가시킨다.
도 6은 제4 알고리즘을 나타낸 것이다. 제4 알고리즘은 SPEKS 알고리즘의 Search를 설명한 것이다.
Enclave는 암호화된 데이터에 포함된 제1 키워드와 탐색 쿼리문에 포함된 제2 키워드의 일치 여부를 확인한다.
구체적으로, 개인키(SK)를 사용하여 탐색 가능한 암호문에서 제1 키워드와 탐색 카운터를 검색한다.
구체적으로, 단계 S61에서 탐색 쿼리문(Q)을 대칭키(K)를 이용하여 복호화한다. 단계 S62에서 데이터 암호문을 부분적으로 불러 탐색 과정을 진행한다. 단계 S63에서 탐색 쿼리문에 해당되는 데이터 암호문이 있다면 해당 문서 데이터를 전송한다. 이후, 단계 S64에서 탐색 카운터를 1 증가시킨다.
도 7 내지 도 9는 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법을 다른 보안 방법과 비교하여 설명한 도면이다.
도 7은 PEKS 체계를 비교한 것이다.
S1 체계, S2 체계는 종래의 PEKS 체계이고, S3 체계는 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법에 따른 체계이다.
S3 체계에 따른 SPEKS 체계에서는 각 탐색 후 업데이트되는 탐색 카운터 방법을 사용한다. 탐색 쿼리문은 개인키와 탐색 카운터로만 생성 할 수 있다. 암호문은 현재 새로 업데이트 된 검색 카운터로 생성되기 때문에 과거 검색 카운터 값으로 생성 된 과거 쿼리는 새로 업데이트 된 파일과 일치 할 수 없다. 따라서 포워드 프라이버시를 보장할 수 있다.
또한, 도 7을 참조하면, 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법 쿼리 처리 비용을 O(n)에서 O(1)로 줄일 수 있다. 여기서 n은 암호화 된 데이터의 수를 나타낸다. 성능 분석에 따르면 전체 계산 시간을 평균 80% 단축시킬 수 있다.
도 8은 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법을 포함한 각 알고리즘의 계산 비용을 나타낸 것이다.
S1 체계, S2 체계는 종래의 PEKS 체계이고, S3 체계는 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법에 따른 체계이다.
도 8을 통해, S3이 계산 오버 헤드가 S1, S2에 비해 낮은 것을 확인할 수 있다.
도 9는 생성 된 검색 토큰 수를 비교한 것이다.
S2 체계는 종래의 PEKS 체계이고, S3 체계는 본 발명의 일 실시예에 따른 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법에 따른 체계이다.
이전 방식과 달리 S3 체계는 탐색 카운터에 관계없이 단일 탐색 쿼리문만 생성하므로 여러 검색 토큰을 생성하지 않을 수 있다.
또한, 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능한 기록매체로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 데이터 보안 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체를 제공할 수 있다.
또한, 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면, 데이터 보안 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램을 제공할 수 있다.
이러한 컴퓨터 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록매체의 예에는 하드디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(Floptical disk)와 같은 자기-광매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허 청구 범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
1: 공개키 기반의 암호 시스템
10: 서버
20: 데이터 수신 장치
30: 데이터 송신 장치

Claims (11)

  1. 데이터 수신 장치, 데이터 송신 장치 및 서버를 포함하는 공개키 기반의 암호 시스템을 이용한 데이터 보안 방법에 있어서,
    상기 데이터 송신 장치가, 데이터를 암호화하고, 상기 암호화된 데이터를 상기 서버에 업로드하는 단계;
    상기 데이터 수신 장치가, 개인키, 공개키 및 대칭키를 생성하며, 상기 서버 내의 엔클레이브(Enclave)에 보안 채널을 생성하고, 상기 보안 채널을 통해 상기 서버로 상기 개인키 및 상기 대칭키를 전송하며, 상기 암호화된 데이터를 탐색하기 위한 탐색 쿼리문을 생성하여 암호화하고, 생성한 상기 암호화된 탐색 쿼리문을 상기 서버로 전송하는 단계;
    상기 서버 내의 엔클레이브가 상기 전송된 탐색 쿼리문을 상기 대칭키를 이용해 복호화하고, 상기 암호화된 데이터와 상기 복호화된 탐색 쿼리문의 일치 여부를 확인하는 탐색 과정을 진행하는 단계; 및
    상기 서버 내의 엔클레이브가 상기 탐색 쿼리문에 일치하는 상기 암호화된 데이터가 있는 경우, 상기 복호화의 결과와 상기 데이터를 상기 데이터 수신 장치에게 전달하는 단계;를 포함하는 데이터 보안 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 서버 내에 보안 채널을 생성하는 것은,
    상기 서버 내부의 신뢰 구간으로서 상기 엔클레이브에 SGX 증명 기능을 사용하여 보안 채널을 생성하는 것인 데이터 보안 방법.
  5. 제1항에 있어서,
    상기 데이터 송신 장치가 데이터를 암호화하는 것은,
    상기 데이터 송신 장치가 상기 공개키를 이용하여 상기 데이터에 포함된 제1 키워드와 상기 서버의 탐색 카운터를 이용하여 상기 데이터를 암호화하는 것인 데이터 보안 방법.
  6. 제5항에 있어서,
    상기 데이터 수신 장치가 상기 탐색 쿼리문을 생성하여 암호화하는 것은,
    상기 데이터와의 일치 여부 판단을 위한 제2 키워드와 상기 탐색 카운터를 활용하여 상기 탐색 쿼리문을 생성하고, 상기 대칭키로 암호화하는 것인 데이터 보안 방법.
  7. 제6항에 있어서,
    상기 암호화된 데이터와 상기 탐색 쿼리문의 일치 여부를 확인하는 탐색 과정은,
    상기 암호화된 데이터에 포함된 제1 키워드와 상기 탐색 쿼리문에 포함된 제2 키워드의 일치 여부를 확인하는 것인 데이터 보안 방법.
  8. 공개키 기반의 암호 시스템에 있어서,
    서버;
    데이터를 암호화하고, 상기 암호화된 데이터를 상기 서버에 업로드하는 데이터 송신 장치; 및
    개인키, 공개키 및 대칭키를 생성하며, 상기 서버 내의 엔클레이브에 보안 채널을 생성하고, 상기 보안 채널을 통해 상기 서버로 상기 개인키 및 상기 대칭키를 전송하며, 상기 암호화된 데이터를 탐색하기 위한 탐색 쿼리문을 생성하여 암호화하고, 생성한 상기 암호화된 탐색 쿼리문을 상기 서버로 전송하는 데이터 수신 장치;를 포함하며,
    상기 서버 내의 엔클레이브는, 상기 전송된 탐색 쿼리문을 상기 대칭키를 이용해 복호화하고, 상기 암호화된 데이터와 상기 복호화된 탐색 쿼리문의 일치 여부를 확인하는 탐색 과정을 진행하고, 상기 탐색 쿼리문에 일치하는 상기 암호화된 데이터가 있는 경우, 상기 복호화의 결과와 상기 데이터를 상기 데이터 수신 장치에게 전달하는 공개키 기반의 암호 시스템.
  9. 삭제
  10. 컴퓨터 프로그램을 저장하고 있는 컴퓨터 판독 가능한 기록매체로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
    제1항, 제4항 내지 제7항 중 어느 한 항에 기재된 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체.
  11. 컴퓨터 판독 가능한 기록매체에 저장되어 있는 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은, 프로세서에 의해 실행되면,
    제1항, 제4항 내지 제7항 중 어느 한 항에 기재된 방법을 상기 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 프로그램.
KR1020200176547A 2020-10-19 2020-12-16 공개키 기반의 암호 시스템 및 이를 이용한 데이터 보안 방법 KR102463640B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200135283 2020-10-19
KR1020200135283 2020-10-19

Publications (2)

Publication Number Publication Date
KR20220051774A KR20220051774A (ko) 2022-04-26
KR102463640B1 true KR102463640B1 (ko) 2022-11-09

Family

ID=81391402

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200176547A KR102463640B1 (ko) 2020-10-19 2020-12-16 공개키 기반의 암호 시스템 및 이를 이용한 데이터 보안 방법

Country Status (1)

Country Link
KR (1) KR102463640B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102515721B1 (ko) 2022-12-28 2023-03-30 주식회사 시그마체인 블록체인 기반의 본인인증을 위한 일회성 패스워드를 이용하는 nfp 본인인증 지원 방법 및 장치

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Benny Fuhry 외 5명, "HardIDX: Practical and secure index with SGX" IFIP Annual Conference on Data and Applications Security and Privacy (2017.)*
Panagiotis Rizomiliotis 외 1명. "Simple forward and backward private searchable symmetric encryption schemes with constant number of roundtrips" Proceedings of the 2019 ACM SIGSAC Conference on Cloud Computing Security Workshop (2019.)*
Yu-Chi Chen, "SPEKS: secure server-designation public key encryption with keyword search against keyword guessing attacks", The Computer Journal 58.4 (2014.)*

Also Published As

Publication number Publication date
KR20220051774A (ko) 2022-04-26

Similar Documents

Publication Publication Date Title
US10462135B2 (en) Systems and methods for providing confidentiality and privacy of user data for web browsers
Hoang et al. Hardware-supported ORAM in effect: Practical oblivious search and update on very large dataset
US8639928B2 (en) System and method for mounting encrypted data based on availability of a key on a network
KR101190059B1 (ko) 데이터 암호화 방법 및 암호화된 데이터의 결합 키워드 검색방법
KR102219277B1 (ko) 인증된 컨텐츠 전달 제어를 위한 시스템 및 방법
WO2018024056A1 (zh) 用户口令管理的方法和服务器
CN109344631B (zh) 区块链的数据修改及区块验证方法、装置、设备和介质
US20140096213A1 (en) Method and system for distributed credential usage for android based and other restricted environment devices
KR101729960B1 (ko) 신뢰 보안 플랫폼 모듈을 이용한 보안 애플리케이션 인증 및 관리 방법 및 장치
US20220114249A1 (en) Systems and methods for secure and fast machine learning inference in a trusted execution environment
KR20150141362A (ko) 네트워크 노드 및 네트워크 노드의 동작 방법
CN113626484A (zh) 一种可灵活替换密文可搜索加密方法、系统及计算机设备
JP2017112592A (ja) ウェブページの暗号化送信のためのシステム及び方法
US8181028B1 (en) Method for secure system shutdown
US11329835B2 (en) Apparatus and method for authenticating IoT device based on PUF using white-box cryptography
US10700865B1 (en) System and method for granting secure access to computing services hidden in trusted computing environments to an unsecure requestor
Selvamani et al. A review on cloud data security and its mitigation techniques
Bhandari et al. A framework for data security and storage in Cloud Computing
KR102463640B1 (ko) 공개키 기반의 암호 시스템 및 이를 이용한 데이터 보안 방법
Liu et al. Ensuring data confidentiality in cloud computing: an encryption and trust-based solution
CN110875903B (zh) 一种安全防御方法及设备
CN113824713B (zh) 一种密钥生成方法、系统及存储介质
Blömer et al. Cloud architectures for searchable encryption
CN114329596A (zh) 一种物联网设备的固件更新方法、装置及系统
Al‐Tariq et al. A scalable framework for protecting user identity and access pattern in untrusted Web server using forward secrecy, public key encryption and bloom filter

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant