냅스터(Napster)나 그누텔라(Gnutella)와 같은 파일 공유 시스템들은 크게 중앙 집중식과 분산식으로 나뉘어진다.
중앙 집중식은 중앙 서버가 존재하며, 사용자 단말기들이 중앙 서버로 파일을 저장하고, 중앙 서버로부터 파일을 내려받는 방식이다.
분산식은 중앙 서버가 존재하지 않으며, 파일들이 분산된 사용자 단말기들에 저장되고, 이런 사용자 단말기들로부터 P2P 방식으로 파일들을 내려받는 방식이다.
파일 공유 시스템(file sharing system)에 대하여 사용자들의 익명성(anonymity)과 무결성(integrity)을 제공하려는 연구들이 주로 이루어져왔다.
익명성을 보장하는 파일 공유 시스템은 사용자 자신의 파일을 다른 사용자들과 공유하기를 원하지만, 자신의 신분(ID)이 들어나기를 원치 않는 경우에 사용할 수 있는 파일 공유 시스템이다. 익명성(anonymity)을 보장하는 파일 공유 시스템들은 Freenet 시스템과 Tarzan 시스템이 있다.
무결성(integrity)을 보장하는 파일 공유 시스템은 공유된 파일이 최초로 올린 사람의 동의 없이 변경되는 것을 막을 수 있는 파일 공유 시스템이다. Freenet시스템은 일회용 공개키(public key)를 사용하여 무결성을 보장한다.
암호화된 키워드 서치(Search) 기법은 개인 스토리지 시스템(private storage system)과 메시지 전송 시스템(message transfer system)에 사용되고 있는 기술이다.
개인 스토리지 시스템은 사용자가 자신이 저장한 파일을 검색하는 것이므로, 다른 사람이 검색할 수 있는 파일 공유 시스템으로 사용할 필요가 없다.
메시지 전송 시스템은 메시지 송신자가 메시지 수신자를 사전에 알아야 하므로, 다운로드할 사람을 사전에 알 수 없는 파일 공유 시스템으로 사용할 수 없다. 이와 같이, 개인 스토리지 시스템과 메시지 전송 시스템은 파일 공유 시스템과 다르기 때문에 파일 공유 시스템을 위한 암호화된 키워드 서치 기법이 필요하게 된다.
또한, 파일 공유를 위해 사용자는 파일과 키워드를 함께 파일 공유 시스템에 올리게 된다. 사용자 단말기는 파일 공유 시스템으로부터 자신이 원하는 파일을 내려받기 위해 특정한 키워드를 파일 공유 시스템에 쿼리(query)하게 된다. 그러면, 파일 공유 시스템은 사용자 단말기로부터의 쿼리에 따라 그 검색 결과를 제공하고, 사용자 단말기로부터 요청된 그 키워드와 관련된 파일들을 사용자 단말기로 전송한다.
그러나, 현재의 파일 공유 시스템들은 사용자 단말기의 올리거나 내려받는 파일들의 내용을 알 수가 있어 기밀성이 보장되지 않으므로, 사용자들의 프라이버시가 전혀 보장되지 않는 문제점이 있었다.
본 발명은 종래 기술의 문제점을 해결하기 위해 제안된 것으로, 클라이언트로부터 대칭키 알고리즘을 사용하여 키워드를 해싱(hashing)하여 암호화하고 해싱된 키워드로 파일을 암호화하며, 파일과 키워드를 암호화한 암호문을 파일 공유 서버로 업로드하고, 원하는 파일 검색시 클라이언트로부터 키워드 서치 기법을 이용하여 해싱된 키워드로 파일 공유 서버로 질의하여(query) 원하는 파일을 다운로드 받아 그 키워드를 복호화하고, 복호화된 키워드로 암호화된 파일을 복호화하여, 사용자의 파일과 키워드의 기밀성을 보장하고 사용자들의 프라이버시를 향상시키는, 프라이버시를 보장하는 암호화와 복호화를 이용한 파일 공유 방법 및 시스템을 제공하는데 그 목적이 있다.
본 발명의 목적을 달성하기 위하여, 본 발명은 프라이버시를 보장하는 암호화와 복호화를 이용한 파일 공유 클라이언트 시스템으로서, 업로드 또는 다운로드하기 위한 파일과 관련된 키워드들을 해싱하는 키워드 해싱부; 업로드하기 위한 파일과 관련되어 상기 키워드 해싱부에서 해싱된 키워드를 대칭키 알고리즘을 사용하여 암호화하는 키워드 암호화부; 대칭키 알고리즘을 사용하여 상기 키워드 해싱부로부터 수신된 해싱된 키워드에 의해 업로드하기 위한 파일을 암호화하는 파일 암호화부; 다운로드하기 위한 파일과 관련되어 상기 키워드 해싱부에서 해싱된 키워드로부터 유도되는 쿼리(Q)를 출력하는 쿼리 요청부; 상기 키워드 암호화부에서 암호화된 키워드와 상기 파일 암호화부에서 암호화된 파일을 포함하는 암호문(D)을 파일 공유 서버로 업로드하고, 상기 쿼리 요청부로부터 수신한 쿼리(Q)를 상기 파일 공유 서버로 전송하여, 상기 파일 공유 서버로부터 쿼리된 키워드 및 그에 대응하는 암호화된 파일을 포함하는 암호문들의 집합(SD)을 다운로드 받는 제1 데이터 송수신부; 상기 암호문들의 집합(SD)에 포함된 키워드를 대칭키 알고리즘을 사용하여 복호화하는 키워드 복호화부; 및 상기 키워드 복호화부에서 복호화된 키워드에 의해 대칭키 알고리즘을 사용하여 상기 암호문들의 집합(SD)에 포함된 암호화된 파일을 복호화하는 파일 복호화부를 포함한다.
상기 키워드 해싱부는, 키워드를 2차 해싱하여, 상기 키워드 암호화부, 상기 파일 암호화부 및 상기 쿼리 요청부로 전송하는 것을 특징으로 한다.
본 발명의 다른 목적을 달성하기 위하여, 본 발명은 프라이버시를 보장하는 암호화와 복호화를 이용한 파일 공유 서버 시스템으로서, 클라이언트로부터 암호화된 파일과 암호화된 키워드를 포함하는 암호문(D)을 수신하고, 클라이언트로부터 다운로드하기 위한 파일과 관련된 키워드로부터 유도되는 쿼리(Q)를 수신하며, 암호문들의 집합(SD)을 클라이언트로 전송하는 제2 데이터 송수신부; 상기 제2 데이터 송수신부에서 수신한 상기 암호문(D)을 테이블에 저장하는 저장부; 상기 제2 데이터 송수신부에서 수신한 쿼리(Q)에 관련된 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(SD)을 상기 저장부로부터 추출하여 상기 제2 데이터 송수신부로 전 송하는 쿼리 응답 처리부; 및 상기 제2 데이터 송수신부, 상기 저장부, 및 상기 쿼리 응답 처리부를 제어하는 제어부를 포함한다.
본 발명의 또 다른 목적을 달성하기 위하여, 본 발명은 프라이버시를 보장하는 암호화와 복호화를 이용한 파일 공유 방법으로서, (a) 파일 공유 서버가, 클라이언트로부터 파일과 키워드를 암호화한 암호문(D)을 수신받는 단계; (b) 상기 암호문(D)을 저장부의 테이블에 저장하는 단계; 및 (c) 클라이언트로부터 다운로드하기 위한 파일과 관련된 키워드로부터 유도되는 쿼리(Q)를 수신하고, 수신한 쿼리(Q)에 관련된 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(SD)을 상기 저장부로부터 추출하여 클라이언트로 전송하는 단계를 포함한다.
본 발명의 또 다른 목적을 달성하기 위하여, 본 발명은 프라이버시를 보장하는 암호화와 복호화를 이용한 파일 공유 방법으로서, (a) 클라이언트가, 업로드하기 위한 파일과 관련된 키워드를 해싱하여 대칭키 알고리즘을 사용하여 암호화하고, 상기 해싱된 키워드로 업로드하기 위한 파일을 암호화하며, 암호화된 키워드와 암호화된 파일을 포함하는 암호문(D)을 파일 공유 서버로 업로드하는 단계; (b) 다운로드하기 위한 파일과 관련된 키워드로부터 유도되는 쿼리(Q)를 파일 공유 서버로 전송하는 단계; 및 (c) 파일 공유 서버로부터 쿼리된 키워드 및 그에 대응하는 암호화된 파일을 포함하는 암호문들의 집합(SD)을 다운로드 받아, 상기 암호문들의 집합(SD)에 포함된 키워드를 대칭키 알고리즘을 사용하여 복호화하고, 복호화된 키워드에 의해 대칭키 알고리즘을 사용하여 상기 암호문들의 집합(SD)에 포함된 암호화된 파일을 복호화하는 단계를 포함한다.
상기 단계 (a)는, (a1) 랜덤 넘버(R), 파일을 암호화하기 위한 대칭키로 사용하는 해싱된 키워드(km)를 선택하는 단계; (a2) 키워드(KW)를 해싱한 값과 랜덤 넘버(R)를 이용하여 해싱된 키워드(km)를 암호화하기 위한 대칭키(ki)를 생성하는 단계; (a3) 상기 해싱된 키워드(km)를 상기 대칭키(ki)를 이용하여 암호화하여 암호화된 키워드(ci)를 생성하는 단계; (a4) 상기 해싱된 키워드(km)를 이용하여 상기 업로드하기 위한 파일을 암호화하여 암호화된 파일(c)을 생성하는 단계; 및 (a5) 상기 단계 (a3)에서 생성된 암호화된 키워드(ci)와 상기 단계 (a4)에서 생성된 암호화된 파일(c)을 포함하는 암호문(D)을 파일 공유 서버로 업로드하는 단계를 포함한다.
상기 단계 (b)는, 다운로드하기 위한 파일과 관련된 키워드를 2차 해싱하여 상기 쿼리(Q)를 유도하는 것을 특징으로 한다.
이상에서 설명한 바와 같이, 본 발명은 사용자 단말기의 클라이언트로부터 대칭키 알고리즘을 사용하여 키워드를 해싱하여 암호화하고, 해싱된 키워드로 파일을 암호화하여 파일과 키워드를 암호화한 암호문을 파일 공유 서버로 업로드하고, 원하는 파일 검색시 클라이언트로부터 키워드 서치 기법을 이용하여 해싱된 키워드로 파일 공유 서버로 질의하여(query) 원하는 파일을 검색하여 다운로드 받아 그 키워드를 복호화하고, 복호화된 키워드로 암호화된 파일을 복호화하여, 사용자의 파일과 키워드의 기밀성을 보장하고 사용자들의 프라이버시를 향상시킨다.
또한, 본 발명은 파일 공유 서버로 파일 업로드와 다운로드시 대칭키 암호화/복호화 알고리즘만을 사용하므로 기존 파일 공유 기법들과 비교하여 연산량의 큰 차이가 없다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명에 따른 대칭키 알고리즘(symmetric key algorithm)을 이용한 파일 공유 시스템 구성도이다.
본 발명에 따른 대칭키 암호화/복호화 알고리즘을 이용한 파일 공유 시스템은 다수의 클라이언트(20,21)와 파일 공유 서버(10)를 포함한다.
클라이언트(20,21)는 대칭키 알고리즘을 사용하여 파일과 관련된 키워드들을 해싱(hashing)하여 암호화하고, 해싱된 키워드로 파일 m을 암호화하며, 파일 m과 키워드들(KW1,..,KWn)을 암호화한 암호문(D)을 파일 공유 서버(10)로 업로드하여 저장한다.
또한, 클라이언트(20,21)는 다운로드 받기 위한 파일과 관련된 해싱된 키워드(KW)로부터 유도되는 쿼리(Q)를 파일 공유 서버(10)로 전송하여, 파일 공유 서 버(10)로부터 쿼리된 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(
)을 다운로드받아 대칭키 알고리즘을 사용하여 키워드를 복호화한 후, 복호화된 키워드로 다운로드 받은 암호화된 파일을 복호화한다.
파일 공유 서버(10)는 여러 클라이언트(20, 21)로부터 수신받은 파일 m과 키워드들(KW1,..,KWn)을 암호화한 암호문(D)을 데이터 테이블(T)에 저장하고, 클라이언트로부터 다운로드 받기 위한 파일과 관련된 해싱된 키워드로부터 유도되는 쿼리(Q)를 수신받아, 질의된 키워드와 관련된 암호문의 키워드를 조회하고, 쿼리에 관련된 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(SD)을 클라이언트(20,21)로 전송한다.
대칭키 알고리즘은 암호화 키와 복호화 키가 동일한 하나의 key로 파일 m(평문, plaintext)의 암호화 및 복호화를 수행하며, DES(Data Encryption Standard, 64bit), 3DES(Triple DES), AES(Advanced Encryption Standard, 128bit, 256bit 가변적인 키 길이), SEED 중 어느 하나의 방식을 사용한다.
사용자 단말기의 클라이언트(20,21)에서 사용되는 대칭키 알고리즘은 파일과 관련된 키워드(keyword)를 2차 해싱하여 업로드할 파일의 암호화키 및 다운로드 받은 파일의 복호화키로 사용한다.
도 2는 본 발명에 따른 대칭키 알고리즘을 이용하는 클라이언트와 파일 공유 서버의 내부 구성도이다.
클라이언트(20,21)는 키워드 해싱부(23), 키워드 암호화부(24), 파일 암호화 부(25), 제1 데이터 송수신부(26), 쿼리 요청부(27), 키워드 복호화부(28), 및 파일 복호화부(29)로 구성된다.
클라이언트(20,21)에서 사용되는 대칭키 알고리즘은 파일과 관련된 해싱된 키워드를 업로드할 파일의 암호화키 및 다운로드 받은 파일의 복호화키로 사용한다.
키워드 해싱부(23)는 업로드하기 위한 파일과 관련된 키워드들을
에 의해 2차 해싱(hashing)한다.
키워드 암호화부(24)는 업로드하기 위한 파일과 관련되어 키워드 해싱부에서 해싱된 키워드를 대칭키 알고리즘을 사용하여 암호화한다.
파일 암호화부(25)는 대칭키 알고리즘을 사용하여 키워드 해싱부(23)로부터 수신된 해싱된 키워드에 의해 업로드하기 위한 파일 m을 암호화한다.
제1 데이터 송수신부(26)는 상기 키워드 암호화부(24)에서 암호화된 키워드와 상기 파일 암호화부(25)에서 암호화된 파일을 포함하는 암호문(D)을 파일 공유 서버로 업로드하고, 상기 쿼리 요청부로부터 수신한 쿼리(Q)를 상기 파일 공유 서버로 전송하고, 상기 파일 공유 서버로부터 암호문들의 집합(SD)을 다운로드 받는다.
쿼리 요청부(27)는 원하는 파일을 다운로드 받기 위해 키워드 해싱부(23)에 의해 해싱된 키워드를 제1 데이터 송수신부(26)를 통해 파일 공유 서버(10)로 쿼리(Q)를 요청한다.
키워드 복호화부(28)는 쿼리한 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(
)을 파일 공유 서버(10)로부터 다운로드받아 대칭키 알고리즘을 사용하여 암호문들의 집합(
)에 포함된 키워드를 복호화한다.
파일 복호화부(29)는 대칭키 알고리즘을 사용하여 복호화된 키워드로 다운로드 받은 암호문들의 집합(
)에 포함된 암호화된 파일을 복호화하여 원래 파일을 복구한다.
파일 공유 서버(10)는 제2 데이터 송수신부(11), 제어부(12), 저장부(13) 및 쿼리 응답 처리부(14)로 구성된다.
제2 데이터 송수신부(11)는 여러 클라이언트(20, 21)로부터 암호화된 파일과 암호화된 키워드를 포함하는 암호문(D)을 수신하고, 클라이언트(21)로부터 다운로드하기 위한 파일과 관련된 키워드로부터 유도되는 쿼리(Q)를 수신하며, 암호문들의 집합(SD)을 클라이언트(21)로 전송한다.
제어부(12)는 제2 데이터 송수신부(11), 저장부(13), 및 쿼리 응답 처리부(14)와 연결되어, 암호화된 파일의 업로드, 질의 응답 및 다운로드 기능을 제어한다.
저장부(13)는 수신된 암호화된 파일과 암호화된 키워드를 포함하는 암호화한 암호문(D)을 데이터 테이블(T)에 저장한다.
쿼리 응답 처리부(14)는 상기 제2 데이터 송수신부(11)에서 수신한 쿼리(Q)에 관련된 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(SD)을 상기 저 장부(13)로부터 추출하여 상기 제2 데이터 송수신부(11)를 통해 클라이언트(21)로 전송한다.
도 3은 본 발명에 따른 프라이버시를 보장하는 대칭키 알고리즘의 암호화와 복호화를 이용한 파일 공유 방법을 설명한 흐름도이다.
클라이언트(20,21)는 업로드하기 위한 파일과 관련된 키워드들을 해싱(hashing)하여 대칭키 알고리즘을 사용하여 해싱된 키워드를 암호화하고, 해싱된 키워드로 업로드하기 위한 파일들을 암호화하며, 파일 공유 서버(10)로 파일 m과 키워드
를 암호화한 암호문(D)을 업로드한다(S10).
파일 공유 서버(10)는 여러 클라이언트(20,21)로부터 수신받은 파일 m과 키워드
를 암호화한 암호문(D)들을 데이터 테이블(T)에 저장한다(S11).
클라이언트(21)는 파일 공유 서버(10)로 다운로드하기 위한 파일과 관련된 해싱된 키워드로 쿼리(Q)하여 테이블에 저장된 암호문의 키워드를 조회한다(S12).
파일 공유 서버(10)는 질의된 다운로드하기 위한 파일과 관련된 해싱된 키워드와 테이블(T)에 저장된 암호문의 키워드과 동일한 키워드를 검색하여, 쿼리된 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(
)을 만들어 클라이언트(21)로 전송한다(S13).
클라이언트(21)는 파일 공유 서버(10)로부터 쿼리된 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(
)를 수신받아 대칭키 알고리즘에 의해 키워드(KW)를 복호화하고, 복호화된 키워드로 암호화된 파일을 복호화하여 파일 m을 복 구한다(S14).
도 4는 본 발명의 실시예에 따른 클라이언트와 파일 공유 서버 사이의 대칭키 알고리즘을 사용한 파일 업로드 및 다운로드 프로토콜을 설명한 도면이다.
본 발명이 제안하는 파일 공유 기법은 클라이언트(20)로부터 키워드를 해싱(hashing)하여 암호화하고, 대칭키 알고리즘(symmetric key algorithm)을 사용하여 업로드하기 위한 파일을 해싱된 키워드로 암호화하고, 파일과 키워드를 암호화한 암호문을 파일 공유 서버(10)로 올리는 업로드(upload) 프로토콜과, 다운로드 받기 위한 파일과 관련된 해싱된 키워드로 파일 공유 서버(10)로 쿼리(Query)하여 파일 공유 서버(10)로부터 원하는 파일을 다운로드받아 파일 공유 서버(10)로부터 쿼리된 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(
)를 수신받아 키워드를 복호화하고, 복호화된 키워드에 의해 파일을 복호화하는 다운로드(download) 프로토콜로 이루어진다.
H는 해쉬 함수이고, E=(SE,SD)는 대칭 암호 스킴이라고 정의한다.
파일 공유 시스템의 업로드 프로토콜은 다음 (1)~(4)의 과정을 거친다.
클라이언트(20,21)는 업로드하기 위한 파일과 관련된 키워드들을 해싱(hashing)하여 대칭키 알고리즘에 의해 해싱된 키워드를 암호화하고, 동시에 대칭키 알고리즘에 의해 해싱된 키워드로 업로드하기 위한 파일을 암호화하며, 파일 공유 서버(10)로 암호화한 키워드
와 암호화한 파일 m을 포함하는 암호문(D)을 파일 공유 서버(10)로 업로드하여 저장한다.
(1) 클라이언트(20,21)가 랜덤 넘버(R), 업로드하기 위한 파일을 암호화하기 위한 대칭키로 사용되는 해싱된 키워드(
)를 선택하고,
을 계산하여, 클라이언트(20,21)가 키워드(KW)를 해싱한 값과 랜덤 넘버(R)를 이용하여 2차 해싱된 키워드(km)를 암호화하기 위한 대칭키(ki)를 생성하며, 상기 해싱된 키워드(km)를 상기 대칭키(ki)를 이용하여 암호화하여 암호화된 키워드(ci)를 생성한다.
(3) 클라이언트(20,21)가 대칭키 암호화 알고리즘 SE에 의해 업로드하기 위한 파일 m을 해싱된 키워드(
)로 암호화하여 암호화된 파일(c)
을 생성한다.
(4) 상기 단계 (2)에서 생성된 암호화된 키워드(c
i)와 상기 단계 (3)에서 생성된 암호화된 파일(c)을 포함하는 암호문
을 파일 공유 서버(10)로 업로드한다.
파일 공유 서버(10)는 클라이언트(20,21)로부터 전송된 암호화한 파일과 암호화한 키워드를 포함하는 암호문(D)을 데이터 테이블(T)에 저장한다.
파일 공유 시스템의 다운로드 프로토콜은 (5)~(8)의 과정을 거친다.
파일 공유 서버(10)로부터 키워드(KW)와 관련된 파일들을 다운로드받기 위해, 클라이언트(20,21)는
를 계산하여 키워드(KW)와 관련된 쿼리
를 파일 공유 서버(10)로 전송한다.
파일 공유 서버(10)는 클라이언트(20, 21)로부터 다운로드하기 위한 파일과 관련된 해싱된 키워드(KW)로부터 유도되는 쿼리(Q)를 수신받아, 테이블에 저장된 암호문들
로부터 다음 알고리즘을 통하여
(키워드로부터 만들어진 암호문들의 집합)를 생성한다.
파일 공유 서버(10)는 쿼리된 키워드와 동일한 키워드로부터 만들어진 암호문들의 집합(
)를 클라이언트(21)로 전송한다.
사용자 단말기의 클라이언트(21)는 암호문들의 집합(
)에 있는 각각의
로부터 파일 m을 추출하기 위해, (5)~(8)의 과정을 수행한다.
(5) 클라이언트(21)가
(
: 키워드 KW의 해쉬함수값)를 계산하고,
(6)
(랜덤변수 R과
를 함께 해쉬한 해쉬함수값)를 계산하고,
(7) 대칭키 복호화 알고리즘 SD에 의해 대칭키(k)를 이용하여
에 의해 키워드의 암호문(c
j)을 복호화하여, 복호화된 키워드(
)를 생성하고
(8) 대칭키 복호화 알고리즘 SD에 의해 복호화된 키워드(
)을 이용하여
에 의해 파일 m의 암호문(c)를 복호화하여 파일(평문 m)을 복구한다.
따라서, 파일 공유 서버(10)는 보통의 파일 공유 시스템과 똑같은 역할을 수행할 뿐만 아니라 대칭키 알고리즘에 의해 파일과 키워드의 암호화/복호화를 수행한다. 사용자들은 업로드하거나 다운로드되는 파일들의 내용을 알 수가 없으므로 기밀성을 보장하고, 사용자들의 프라이버시를 보장하게 된다. 또한, 본 발명은 대칭키 암호 알고리즘만을 사용하므로 기존 파일 공유 기법들과 비교하여 연산량의 큰 차이가 없다.
이상에서 설명한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진자가 하기의 특허청구범위에 기재된 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 또는 변형하여 실시할 수 있다.