문맥 (context)
현대 사회는 모든 정보를 디지털화하여 저장하고, 저장된 정보를 네트워크를 통해 공유하여 사용하는 사회로 변화하고 있다. 또한, 처리하는 자료의 양이 증가하고 다양한 서비스에 대한 요구가 늘어나면서 특화된 외부 저장수단의 활용이 늘고 있다. 이와 더불어 이러한 외부 저장수단에 저장된 정보에 대한 보안 문제가 이슈가 되고 있다.
외부 저장수단의 보안 문제는, 과거 개인이 독립된 저장 공간을 이용하여 스스로 정보를 관리하던 때와는 차이를 보인다. 이는, 근본적으로 정보의 소유자와 외부 저장수단을 관리하는 주체가 서로 다르기 때문이다. 데이터베이스 등에서 정보를 보호하기 위해 주로 사용되는 접근 제어나 키 관리 기법들은 외부 침입자를 막는데 유효한 방법이지만, 외부 저장수단의 관리자가 해당 저장수단에 저장되어 있는 자료를 열람하는 것을 근본적으로 차단하지는 못한다.
이에, 정보를 안전하게 저장하기 위한 방법으로 자료의 암호화를 들 수 있다. 즉, 외부 저장수단에 저장할 정보를 안전성이 증명된 암호 시스템을 이용하여 암호화하는 것이다. 안전성이 증명된 암호 시스템은 복호화 키를 소유하지 못한 공격자가 암호화된 데이터로부터 저장된 정보를 얻을 수 없음을 보장한다. 따라서, 외부 침입자 또는 외부 저장수단의 관리자가 암호화된 데이터에 접근한다 하더라도, 해당 데이터로부터 구체적인 정보를 얻지는 못하게 된다.
한편, 정보의 암호화는 저장된 정보의 기밀성을 완벽하게 보장하는 방법이지만, 기존의 데이터베이스가 제공하는 많은 부가 기능 또한 적용할 수 없도록 만든다. 즉, 저장된 정보의 양이 많을수록 이를 효율적으로 활용하고 관리하기 위해서는 다양한 데이터 베이스 기능이 요구되기 때문에, 정보를 단순히 암호화하여 저장하는 방법은 적당한 해법이라 보기 힘들다.
검색 가능 암호 기술은 기존의 암호 기술과 같이 암호화된 정보에 대한 기밀성을 보장하면서 동시에 특정 키워드를 포함하는 자료를 검색할 수 있도록 고안된 암호 기술이다. 데이터베이스에서 제공되는 다양한 기능 중 많은 경우가 특정 키워드를 포함하는 정보에 대한 검색을 바탕으로 이루어지기 때문에 검색 가능 암호 시스템은 앞에서 제기된 문제에 대한 해결 방안 중 하나로 여겨지고 있다.
검색 가능 암호 시스템에서 자료의 검색은 키워드 단위로 이루어진다. 즉, 특정 키워드와 사용자의 비밀키를 바탕으로 하여 트랩도어(trapdoor)를 생성하고, 이 트랩도어를 이용하여 특정 키워드를 포함하고 있는 자료를 검색하는 방식이다. 검색은 서버에 의해서 이루어지며, 서버가 저장하고 있는 암호화된 인덱스와 트랩도어를 이용한 계산을 통해 주어진 자료가 해당 키워드를 포함하고 있는지의 여부를 확인한다.
대표적인 예로, 결합 키워드 검색을 들 수 있다. 종래의 결합 키워드 검색은 여러 개의 키워드를 동시에 포함하고 있는 자료를 검색하는 것이다. 키워드 A와 B를 동시에 포함하는 자료를 검색하는 것을 예로 살펴보면 다음과 같다. 각각의 단일 키워드 A와 B에 의한 검색을 각각 수행한다고 하면, 서버는 키워드 A를 포함하는 모든 자료의 집합 S(A)와, 키워드 B를 포함하는 모든 자료의 집합 S(B)를 얻게 되고, 최종적으로 S(A)∩S(B)를 계산하여 A와 B를 동시에 포함하는 자료를 찾게 된다.
하지만, 사용자는 위의 계산을 통해서 원하는 결과를 얻을 수는 있으나, 검색 과정에서 많은 정보가 서버에게 유출된다. 즉, 서버는 사용자가 두 개의 키워드에 대한 검색을 수행하였다는 것과 S(A)와 S(B)가 각각 그 결과라는 것을 알게 된다. 따라서, 이 역시 사용자의 정보가 서버에 공개되는 것을 근본적으로 해결하지는 못한다.
또한, 현재 까지 결합 키워드 검색에 대한 연구는 공개키 방식의 검색 가능 암호 시스템에서만 이루어졌다. 그러나, 이러한 공개키 방식의 특징 때문에 암호화와 트랩도어 생성 및 검색에 많은 계산이 필요하므로, 효율성이 저하되는 문제가 있었다.
지시문 (instruction)
주어진 원문을 읽고 필요한 정보를 파악하여, 원문에 근거해 질문에 답하라.
질문 (question)
검색 가능 암호 시스템에서 서버가 주어진 자료가 특정 키워드를 포함하고 있는지 여부를 확인하기 위해 수행하는 기능적 방식은 무엇인가?
추론 과정 (compact_reasoning)
-
1과제 해석
task_interpretation검색 가능 암호 시스템 내에서 서버가 키워드 포함 여부를 확인하는 구체적인 작동 방식을 묻는 질문이다.
-
2정보 추출
information_extraction검색 과정에서 사용되는 요소인 트랩도어와 서버의 역할을 추출한다.
- 특정 키워드와 사용자의 비밀키를 바탕으로 하여 트랩도어(trapdoor)를 생성하고, 이 트랩도어를 이용하여 특정 키워드를 포함하고 있는 자료를 검색하는 방식이다.
- 검색은 서버에 의해서 이루어지며, 서버가 저장하고 있는 암호화된 인덱스와 트랩도어를 이용한 계산을 통해 주어진 자료가 해당 키워드를 포함하고 있는지의 여부를 확인한다.
-
3근거 선택
evidence_selection서버의 계산 방식에 대한 직접적인 근거를 선별한다.
- 서버가 저장하고 있는 암호화된 인덱스와 트랩도어를 이용한 계산을 통해 주어진 자료가 해당 키워드를 포함하고 있는지의 여부를 확인한다.
-
4논리 통합
logical_integration사용자가 생성한 트랩도어가 서버로 전달되고, 서버가 보유한 인덱스와 이를 결합하여 계산한다는 관계를 통합한다.
-
5결론 도출
conclusion_formulation서버는 암호화된 인덱스와 트랩도어를 이용한 계산을 통해 키워드 포함 여부를 확인한다는 결론을 도출한다.
- 서버가 저장하고 있는 암호화된 인덱스와 트랩도어를 이용한 계산을 통해 주어진 자료가 해당 키워드를 포함하고 있는지의 여부를 확인한다.
-
6답변 생성
answer_generation질문에 대해 서버의 작동 방식을 기술하는 형태로 답변을 작성한다.
- 서버가 저장하고 있는 암호화된 인덱스와 트랩도어를 이용한 계산을 통해 주어진 자료가 해당 키워드를 포함하고 있는지의 여부를 확인한다.
최종 답변 (final_answer)
서버가 저장하고 있는 암호화된 인덱스와 트랩도어를 이용한 계산을 통해 주어진 자료가 해당 키워드를 포함하고 있는지의 여부를 확인한다.
핵심 해석 (core_interpretation)
검색 가능 암호 시스템에서 서버는 저장하고 있는 암호화된 인덱스와 트랩도어를 이용한 계산을 통해 주어진 자료가 특정 키워드를 포함하고 있는지 여부를 확인한다.