KR101605766B1 - 비밀키 생성 방법 및 중복 제거 방법 - Google Patents

비밀키 생성 방법 및 중복 제거 방법 Download PDF

Info

Publication number
KR101605766B1
KR101605766B1 KR1020150009454A KR20150009454A KR101605766B1 KR 101605766 B1 KR101605766 B1 KR 101605766B1 KR 1020150009454 A KR1020150009454 A KR 1020150009454A KR 20150009454 A KR20150009454 A KR 20150009454A KR 101605766 B1 KR101605766 B1 KR 101605766B1
Authority
KR
South Korea
Prior art keywords
server
secret key
terminal
value
data
Prior art date
Application number
KR1020150009454A
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 KR1020150009454A priority Critical patent/KR101605766B1/ko
Application granted granted Critical
Publication of KR101605766B1 publication Critical patent/KR101605766B1/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
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme

Abstract

중복 제거 방법이 개시된다. 상기 중복 제거 방법은, 서버가 단말기로부터 태그와 제1 질의값을 수신하는 단계, 상기 서버가 제1 응답값과 제2 질의값을 상기 단말기로 송신하는 단계, 상기 서버가 상기 단말기로부터 제2 응답값과 식별자를 수신하는 단계, 상기 서버가 상기 제2 응답값을 검증하는 단계, 및 상기 서버가 상기 식별자를 저장하는 단계를 포함한다.

Description

비밀키 생성 방법 및 중복 제거 방법{SECRET KEY GENERATION METHOD AND DEDUPLICATION METHOD}
본 발명의 개념에 따른 실시 예는 비밀키 생성 방법 및 중복 제거 방법에 관한 것으로, 특히 키 생성 서버와 클라이언트 단말기 간의 통신을 통하여 안전한 비밀키를 생성하고, 생성된 비밀키를 이용하여 데이터 중복 제거를 수행할 수 있는 비밀키 생성 방법 및 중복 제거 방법에 관한 것이다.
빅 데이터(Big data) 시대를 맞아 클라이언트들은 클라우드 스토리지 서비스(Cloud Storage Service)를 이용하여 대용량의 데이터를 효율적으로 관리한다. 중복 제거 기술(deduplication)은 효율성 측면에서 클라우드 스토리지 환경에 가장 큰 영향을 미치고 있는 기술로 동일한 데이터를 하나만 저장하여 중복 저장을 방지하는 기술이다. 데이터와 연관성을 가지는 작은 태그(Tag) 값을 이용하여 클라우드 서버는 원본 데이터 하나만을 스토리지에 저장하고, 동일한 데이터에 대해서는 태그 값과 함께 클라이언트의 포인터(Pointer)를 모아 저장한다. 이를 통해 클라우드 서버는 90% 이상의 저장 공간을 확보할 수 있으며, 통신 대역폭 효율성을 얻을 수 있다. 따라서, 중복 제거 기술은 현재 대부분의 클라우드 스토리지 기술에 사용되고 있다.
클라이언트 사이드 중복 제거 기술(client-side deduplication)은 데이터를 전송하기 전에 클라이언트가 작은 태그 값을 생성하고, 질의-응답(Challenge-Response) 메커니즘을 통해 데이터가 클라우드 서버에 저장되어 있는지 여부를 먼저 확인하는 기법이다. 만약, 클라우드 서버에 데이터가 이미 저장되어 있다면, 데이터 전송은 일어나지 않고 클라우드 서버는 기존에 저장되어 있는 데이터에 클라이언트의 포인터를 저장한다. 따라서, 클라이언트 사이드 중복 제거 기법은 클라우드 서버의 저장 공간 이용뿐만 아니라 통신 대역폭의 효율성도 얻을 수 있는 기법이다.
2013년에 Bellare 등은 엔트로피가 낮거나 작은 도메인을 가지는 데이터들에 대한 전수 조사 공격을 막기 위해 키 서버(key server)를 두고 RSA(Rivest Shamir Adleman) 블라인드 서명(Blind Signature) 기법을 이용해 안전하게 데이터의 비밀키를 생성하는 서버 사이드 중복 제거 기술을 제안하였다(M. Bellare, and S. Keelveedhi. : Server-aided encryption for deduplicated storage., USENIX Security Symposium 2013.).
2011년에 Halevi 등은 실제 데이터에 대한 접근 권한이 없는 공격자로부터 클라우드 서버에 저장된 데이터의 정보 유출을 막기 위한 데이터 소유권 증명(Proofs of Ownership) 기법을 제안하였다(S. Halevi, D. Harnik, B. Pinkas, A. Shulman-Peleg, of Ownership in Remote Storage Systems, Proc. 18th ACM. Conf. Computer and Communications Security (CCS ), ACM Press, 2011, pp. 491-500.)
클라이언트 사이드 중복 제거 기법에 요구되는 조건으로 다음과 같은 4 가지를 조건을 제시할 수 있다.
첫째, 데이터 프라이버시(Data privacy)가 보장되어야 한다. 클라이언트 사이드 중복 제거 기술은 클라이언트가 태그 값을 이용해 클라우드 서버로부터 다운로드 권한을 부여 받기 때문에 권한이 없는 클라이언트가 데이터를 다운로드하거나, 저장되어 있는 데이터가 암호화 되어 있지 않다면 데이터에 대한 정보가 노출되는 프라이버시 문제가 발생한다. 따라서, 공격자는 클라이언트와 클라우드 서버 간의 통신으로부터 받는 정보를 통해 저장된 데이터에 대한 어떠한 정보도 얻을 수 없어야 하고, 클라우드 서버 역시 저장된 데이터를 통해 데이터와 클라이언트의 어떠한 정보도 얻을 수 없어야 한다.
둘째, 전수 조사 공격(Brute-force Attack)에 대한 안전성을 제공해야 한다. 구체적으로, 대부분의 클라이언트 사이드 중복 제거 기술의 경우, 데이터를 해쉬한 값을 비밀키로 이용하여 데이터를 암호화하는데, 이는 공격자가 엔트로피가 낮거나 작은 도메인을 가지는 데이터들의 전수 조사 공격을 통해 데이터에 대한 비밀키를 생성할 수 있는 문제가 발생한다.
셋째, 온라인 추측 공격(Online-guessing Attack)에 대한 안전성을 제공해야 한다. 구체적으로, 클라이언트 사이드 중복 제거 기술은 클라우드 서버에 데이터의 저장 여부를 확인하는 태그가 크기가 작고 데이터로부터 결정적으로 생성되기 때문에 공격자가 클라이언트들이 저장한 데이터의 내용을 추측하여 알아낼 수 있는 문제점이 발생한다. 공격자가 엔트로피가 낮거나 작은 도메인을 가지는 목표 데이터에 대해, 데이터의 정보를 조금씩 변화시키면서 생성한 태그를 이용하여 클라우드 서버에 데이터가 저장되어 있는지의 여부를 알 수 있는데 이를 온라인 추측 공격이라 한다.
넷째, 포이즌 공격(Poison Attack)에 대한 안전성을 제공해야 한다. 구체적으로, 클라이언트 사이드 중복 제거 기술의 경우 클라이언트는 태그 값을 이용하여 데이터가 클라우드 서버에 저장되어 있는지 여부를 확인한다. 만약 클라이언트가 클라우드 서버에 저장되어 있는 데이터에 대해 무결성(Integrity)을 확인할 수 있는 방법이 없다면, 악의적인 클라이언트에 의해 변형된 데이터가 저장되어 있을 때 이후 데이터 다운로드 시 원본 데이터를 잃어버리게 되는 문제가 발생하는데 이를 포이즌 공격이라 한다.
그러나, 지금까지 제안된 클라이언트 사이드 중복 제거 기술에서는 상기 네 가지의 공격에 대해 모두 안전성을 제공하는 기법은 없다. 따라서, 본 발명은 상기 네 가지의 요구 조건을 만족시킬 수 있는 클라이언트 사이드 중복 제거 기법을 제안한다.
본 발명이 이루고자 하는 기술적인 과제는 키 생성 서버로부터 수신된 비밀값을 이용해 비밀키를 생성하고, 클라이언트 사이드 중복 제거 기술에서 발생할 수 있는 다양한 공격에 대해 안전성을 제공할 수 있는 비밀키 생성 방법 및 중복 제거 방법을 제공하는 것이다.
본 발명의 실시 예에 따른 비밀키 생성 방법은, 공개키와 비밀키가 설정된 RSA(Rivest Shamir Adleman) 블라인드 서명 기법을 이용한 비밀키 생성 방법으로서, 단말기가 데이터를 입력으로 하는 해쉬 함수의 결과값과 난수를 이용하여 생성된 질의값을 제1 서버로 송신하는 단계, 상기 단말기가 상기 제1 서버로부터 응답값을 수신하는 단계, 상기 단말기가 상기 응답값을 검증하는 단계, 및 상기 단말기가 상기 데이터에 대한 비밀키를 생성하는 단계를 포함한다.
또한, 본 발명의 실시 예에 따른 중복 제거 방법은, 서버가 단말기로부터 태그와 제1 질의값을 수신하는 단계, 상기 서버가 제1 응답값과 제2 질의값을 상기 단말기로 송신하는 단계, 상기 서버가 상기 단말기로부터 제2 응답값과 식별자를 수신하는 단계, 상기 서버가 상기 제2 응답값을 검증하는 단계, 및 상기 서버가 상기 식별자를 저장하는 단계를 포함한다.
본 발명의 실시 예에 따른 비밀키 생성 방법 및 중복 제거 방법에 의하면, 일정 기간 동안 데이터의 비밀키 질의를 할 수 있는 횟수를 제한하는 키 생성 서버를 둠으로써 전수조사 공격 및 온라인 추측 공격에 대한 안전성을 제공할 수 있다.
또한, 데이터 업로드시 클라이언트가 클라우드 서버에 저장된 암호문의 무결성을 검증함으로써 데이터 손실을 가져오는 포이즌 공격에 대한 안전성을 제공할 수 있다.
또한, 데이터 업로드 및 다운로드시 클라우드 서버가 클라이언트의 데이터 소유권을 검증함으로써 정당한 클라이언트에게만 접근 권한을 부여할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 의한 중복 제거 시스템을 도시한다.
도 2는 도 1에 도시된 제1 서버와 클라이언트 단말기 간의 비밀키 생성 과정을 설명하기 위한 흐름도이다.
도 3은 도 1에 도시된 클라이언트 단말기와 제2 서버 사이에 수행되는 중복 제거 방법을 설명하기 위한 흐름도이다.
도 4는 도 1에 도시된 제2 서버와 클라이언트 단말기 간의 데이터 다운로드 과정을 설명하기 위한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
우선, 본 발명의 배경이 되는 RSA(Rivest Shamir Adleman) 블라인드 서명에 대한 간략한 설명은 다음과 같다.
RSA 블라인드 서명 기법은 서명자가 검증자로부터 전송받은 메시지를 RSA 기법을 이용하여 자신의 서명키로 서명을 하여 전달하고, 검증자는 서명자로부터 받은 서명을 검증하는 개념이다. RSA 블라인드 서명 기법은 다음과 같은 단계로 구성된다.
1.
Figure 112015005976434-pat00001
알고리즘은 서명자가 보안상수
Figure 112015005976434-pat00002
를 입력받아 공개키(
Figure 112015005976434-pat00003
)와 서명키(
Figure 112015005976434-pat00004
)를 생성하는 알고리즘이다.
2. Signature 프로토콜은 다음과 같이 구성된다.
- 검증자는 서명자의 공개키(
Figure 112015005976434-pat00005
)와 메시지(
Figure 112015005976434-pat00006
)을 입력받아 난수(
Figure 112015005976434-pat00007
)를 생성하고,
Figure 112015005976434-pat00008
를 계산하여 서명자에게 전송한다.
- 서명자는 자신의 비밀키(
Figure 112015005976434-pat00009
)를 이용하여
Figure 112015005976434-pat00010
를 계산한 후 검증자에게 전송한다.
- 검증자는 난수(
Figure 112015005976434-pat00011
)의 역수를 계산하여
Figure 112015005976434-pat00012
얻는다.
3.
Figure 112015005976434-pat00013
알고리즘은 검증자가
Figure 112015005976434-pat00014
이 성립하는지 검증하는 알고리즘이다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 의한 중복 제거 시스템을 도시한다. 도 1을 참조하면, 중복 제거 시스템(10)은 클라이언트 단말기(300)와 제2 서버(500)를 포함한다. 중복 제거 시스템(10)은 제1 서버(100)을 더 포함할 수 있다. 중복 제거 시스템(10)에서 제1 서버(100)는 유무선 통신망을 통하여 클라이언트 단말기(300)와 통신할 수 있고, 클라이언트 단말기(300)는 유무선 통신망을 통하여 제2 서버(500)와 통신할 수 있다.
키 생성 기관(Key Generation Center), 키 생성 서버, 키 서버 등으로 불릴 수 있는 제1 서버(100)는 클라이언트 단말기(300)가 제2 서버(500), 예컨대 클라우드 서버에 저장할 데이터를 암호화하는 과정에서 필요한 비밀키에 대한 비밀값을 생성한다. 전수 조사 공격을 예방하기 위해 클라이언트마다 또는 클라이언트 단말기(300)마다 일정 기간 동안 데이터의 비밀키 질의를 할 수 있는 횟수를 제한하는 정책을 설정하여 제한된 횟수 이상 비밀키 질의를 했을 경우에는 응답을 멈추도록 설정된다. 추가적으로 제1 서버(100)는 클라이언트 단말기(300)와의 통신에서 필요한 연산을 정직하게 수행한다.
클라이언트 단말기(300)는 PC(personal computer), 태블릿 PC, 노트북(notebook), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현되거나, 모바일폰(mobile phone), 스마트폰(smart phone) 등과 같은 핸드헬드 장치(handheld device)로 구현될 수 있다.
제1 서버(100)와 클라이언트 단말기(300) 간의 통신을 통한 비밀키 생성 방법과 클라이언트 단말기(300)와 제2 서버(500) 간의 통신을 통한 중복 제거 방법은 이하 도 2 내지 도 4를 통하여 상세하게 설명하기로 한다.
도 2는 도 1에 도시된 제1 서버와 클라이언트 단말기 간의 비밀키 생성 과정을 설명하기 위한 흐름도이다.
우선, 두 개의 해쉬 함수(
Figure 112015005976434-pat00015
)와 데이터(
Figure 112015005976434-pat00016
)의 비밀키 공간(
Figure 112015005976434-pat00017
)이 주어져 있고, 제1 서버(100)의 공개키와 비밀키는 각각 RSA 블라인드 서명 기법의 공개키(
Figure 112015005976434-pat00018
와 비밀키(
Figure 112015005976434-pat00019
)로 설정한다.
클라이언트 단말기(300)는 제2 서버(500)에 업로드하려거나 제2 서버(500)로부터 다운로드하려는 데이터(
Figure 112015005976434-pat00020
)의 해쉬 값(
Figure 112015005976434-pat00021
)을 계산하고, 난수(
Figure 112015005976434-pat00022
)를 생성한다(S110).
또한, 클라이언트 단말기(300)는 질의값(
Figure 112015005976434-pat00023
)를 생성한다(S130). 질의값(
Figure 112015005976434-pat00024
)는 아래의 수학식 1을 이용하여 생성될 수 있다.
Figure 112015005976434-pat00025
생성된 질의값(
Figure 112015005976434-pat00026
)은 클라이언트 단말기(300)에 의해 제1 서버(100)로 송신될 수 있다(S150).
질의값(
Figure 112015005976434-pat00027
)을 수신한 제1 서버(100)는 제1 서버(100)의 비밀키(
Figure 112015005976434-pat00028
)를 이용하여 응답값(
Figure 112015005976434-pat00029
)을 생성하고(S160), 생성된 응답값(
Figure 112015005976434-pat00030
)을 클라이언트 단말기(300)로 송신한다(S170). 이때, 응답값(
Figure 112015005976434-pat00031
)은 아래의 수학식 2를 이용하여 생성될 수 있다.
Figure 112015005976434-pat00032
제1 서버(100)로부터 응답값(
Figure 112015005976434-pat00033
)을 수신한 클라이언트 단말기(300)는 응답값(
Figure 112015005976434-pat00034
)을 검증한다(S180). 구체적으로, 클라이언트 단말기(300)는 응답값(
Figure 112015005976434-pat00035
)을 이용하여 연산값(
Figure 112015005976434-pat00036
)을 계산한 후, 검증식을 이용하여 응답값(
Figure 112015005976434-pat00037
)을 검증할 수 있다. 이때, 연산값(
Figure 112015005976434-pat00038
)은 아래의 수학식 3을 이용하여 계산될 수 있고, 상기 검증식은 아래의 수학식 4일 수 있다.
Figure 112015005976434-pat00039
Figure 112015005976434-pat00040
상기 수학식 4가 성립하는 경우, 클라이언트 단말기(300)는 데이터(
Figure 112015005976434-pat00041
)의 비밀키(
Figure 112015005976434-pat00042
)를 생성한다(S190).
도 3은 도 1에 도시된 클라이언트 단말기와 제2 서버 사이에 수행되는 중복 제거 방법을 설명하기 위한 흐름도이다.
우선, 해쉬 함수(
Figure 112015005976434-pat00043
가 주어져 있고, 데이터 암호화 함수(
Figure 112015005976434-pat00044
)는 안전한 대칭키 암호 기법을 사용한다고 가정한다.
클라이언트 단말기(300)는 제1 서버(100)와의 통신을 통하여 생성한 데이터(
Figure 112015005976434-pat00045
)의 비밀키(
Figure 112015005976434-pat00046
)를 해쉬하여 태그(
Figure 112015005976434-pat00047
)를 생성하고, 난수(
Figure 112015005976434-pat00048
)를 생성한다(S210). 난수(
Figure 112015005976434-pat00049
)는 제2 서버(500)에 저장된 암호문의 무결성을 질의하는 제1 질의값으로 사용될 수 있다.
클라이언트 단말기(300)는 태그(
Figure 112015005976434-pat00050
)와 제1 질의값(
Figure 112015005976434-pat00051
)을 제2 서버(500)로 송신한다(S230). 이때, 클라이언트 단말기(300)는 태그(
Figure 112015005976434-pat00052
)와 제1 질의값(
Figure 112015005976434-pat00053
)을 데이터 업로드 요청 메시지와 함께 제2 서버(500)로 송신할 수 있다.
제2 서버(500)는 수신된 태그(
Figure 112015005976434-pat00054
)와 일치하는 태그가 제2 서버(500) 내에 저장되어 있는지 검색한다(S250). 태그(
Figure 112015005976434-pat00055
)와 일치하는 태그가 제2 서버(500) 내에 저장되어 있지 않은 경우, 제2 서버(500)는 데이터 업로드 요청을 클라이언트 단말기(300)로 송신할 수 있다(S310).
데이터 업로드 요청을 수신한 클라이언트 단말기(300)는 암호문(
Figure 112015005976434-pat00056
)과 암호화된 비밀키(
Figure 112015005976434-pat00057
)를 생성하고, 생성된 암호문(
Figure 112015005976434-pat00058
), 식별자(
Figure 112015005976434-pat00059
), 및 암호화된 비밀키(
Figure 112015005976434-pat00060
)를 제2 서버(500)로 송신한다(S330). 여기서, 비밀키(
Figure 112015005976434-pat00061
)를 암호화할 때 사용되는 키(
Figure 112015005976434-pat00062
)는 클라이언트 단말기(300)가 비밀로 보관한고 있는 개인키일 수 있다.
제2 서버(500)는 수신된 암호문(
Figure 112015005976434-pat00063
), 식별자(
Figure 112015005976434-pat00064
), 및 암호화된 비밀키(
Figure 112015005976434-pat00065
)를 태그(
Figure 112015005976434-pat00066
)와 함께 저장한다(S350).
태그(
Figure 112015005976434-pat00067
)와 일치하는 태그가 제2 서버(500) 내에 저장되어 있는 경우, 제2 서버(500)는 제1 응답값(
Figure 112015005976434-pat00068
)과 제2 질의값(
Figure 112015005976434-pat00069
)을 생성한다(S410). 즉, 태그(
Figure 112015005976434-pat00070
)와 일치하는 태그가 제2 서버(500)에 저장되어 있다는 것은 태그(
Figure 112015005976434-pat00071
)에 대응하는 암호문(
Figure 112015005976434-pat00072
)이 제2 서버(500)에 저장되어 있음을 의미한다. 따라서, 제2 서버(500)는 제2 서버(500) 내에 저장된 암호문(
Figure 112015005976434-pat00073
)의 무결성을 증명하기 위한 제1 응답값(
Figure 112015005976434-pat00074
)과 암호문(
Figure 112015005976434-pat00075
)과 동일한 암호문(
Figure 112015005976434-pat00076
)이 클라이언트 단말기(300)에 저장되어 있는지 유무(소유권 유무)를 질의하기 위한 제2 질의값(
Figure 112015005976434-pat00077
)을 생성한다. 제2 질의값(
Figure 112015005976434-pat00078
)은 제2 서버(500)에 의해 선택된 난수일 수 있다.
생성된 제1 응답값(
Figure 112015005976434-pat00079
)과 제2 질의값(
Figure 112015005976434-pat00080
)은 제2 서버(500)에 의해 클라이언트 단말기(300)로 송신된다(S420).
제1 응답값(
Figure 112015005976434-pat00081
)을 수신한 클라이언트 단말기(300)는 제1 응답값(
Figure 112015005976434-pat00082
)을 검증한다(S430). 제1 응답값(
Figure 112015005976434-pat00083
)을 검증함으로써 제2 서버(500)에 저장되어 있는 암호문(
Figure 112015005976434-pat00084
)의 무결성을 검증할 수 있다. 구체적으로, 클라이언트 단말기(300)는 데이터(
Figure 112015005976434-pat00085
)의 암호문(
Figure 112015005976434-pat00086
)을 생성하고, 생성된 암호문(
Figure 112015005976434-pat00087
)과 제1 질의값(
Figure 112015005976434-pat00088
)을 이용하여
Figure 112015005976434-pat00089
을 계산한 후
Figure 112015005976434-pat00090
가 성립하는지 확인함으로써, 포이즌 공격을 검증할 수 있다.
검증이 통과되면, 클라이언트 단말기(300)는 제2 응답값(
Figure 112015005976434-pat00091
)을 생성하고, 생성된 제2 응답값(
Figure 112015005976434-pat00092
), 암호화된 비밀키(
Figure 112015005976434-pat00093
), 및 식별자(
Figure 112015005976434-pat00094
)를 제2 서버(500)로 송신한다(S440). 식별자(
Figure 112015005976434-pat00095
)는 클라이언트 단말기(300)의 사용자를 식별할 수 있는 정보이거나 클라이언트 단말기(300)를 식별할 수 있는 정보일 수 있다. 이때, 클라이언트 단말기(300)는 승인 메시지와 함께 제2 응답값(
Figure 112015005976434-pat00096
), 암호화된 비밀키(
Figure 112015005976434-pat00097
), 및 식별자(
Figure 112015005976434-pat00098
)를 제2 서버(500)로 송신할 수도 있다.
이때, 검증이 통과되지 못하면, 클라이언트 단말기(300)는 오류 메시지를 제2 서버(500)로 송신할 수 있다.
제2 서버(500)는 수신된 제2 응답값을 검증함으로써, 소유권 검증을 수행할 수 있다(S450). 구체적으로, 제2 서버(500)는 제2 서버(500)에 저장되어 있는 암호문(
Figure 112015005976434-pat00099
)과 제2 질의값(
Figure 112015005976434-pat00100
)을 이용하여
Figure 112015005976434-pat00101
를 계산한 후
Figure 112015005976434-pat00102
이 성립하는지 여부를 확인하여 소유권 검증을 한다. 소유권 검증이 완료되면, 제2 서버(500)는 승인 메시지를 클라이언트 단말기(300)로 송신하고(S460), 클라이언트 단말기(300)로부터 수신받은 식별자(
Figure 112015005976434-pat00103
)와 암호화된 비밀키(
Figure 112015005976434-pat00104
)를 태그(
Figure 112015005976434-pat00105
)와 함께 저장한다(S470).
소유권 검증을 통과하지 못한 경우, 제2 서버(500)는 오류 메시지를 클라이언트 단말기(300)로 송신할 수 있다.
도 4는 도 1에 도시된 제2 서버와 클라이언트 단말기 간의 데이터 다운로드 과정을 설명하기 위한 흐름도이다.
클라이언트 단말기(300)는 태그(
Figure 112015005976434-pat00106
)와 식별자(
Figure 112015005976434-pat00107
)를 제2 서버(500)로 송신한다(S510). 클라이언트 단말기(300)는 태그(
Figure 112015005976434-pat00108
)와 식별자(
Figure 112015005976434-pat00109
)를 데이터 다운로드 요청 메시지와 함께 송신할 수도 있다.
제2 서버(500)는 클라이언트 단말기(300) 또는 클라이언트에 대한 데이터 소유권 검사를 수행한다(S530). 즉, 제2 서버(500)는 수신된 태그(
Figure 112015005976434-pat00110
)와 식별자(
Figure 112015005976434-pat00111
)가 제2 서버(500)에 저장되어 있는지 검색하고, 태그(
Figure 112015005976434-pat00112
)와 동일한 태그와 태그(
Figure 112015005976434-pat00113
)에 대응하는 식별자(
Figure 112015005976434-pat00114
)가 제2 서버(500)저장되어 있는 경우, 제2 서버(500)는 클라이언트 단말기(300) 또는 클라이언트가 데이터를 다운로드할 수 있는 권한이 있는 것으로 판단한다.
데이터 소유권 검사가 완료되며, 제2 서버(500)는 태그(
Figure 112015005976434-pat00115
)에 대응하는 암호문(
Figure 112015005976434-pat00116
)과 암호화된 비밀키(
Figure 112015005976434-pat00117
)를 클라이언트 단말기(300)로 송신한다(S550).
클라이언트 단말기(300)는 제2 서버(500)로부터 수신한 암호화된 비밀키(
Figure 112015005976434-pat00118
)를 복호화하여 데이터(
Figure 112015005976434-pat00119
)의 비밀키(
Figure 112015005976434-pat00120
)를 생성하고, 생성된 비밀키(
Figure 112015005976434-pat00121
)를 이용하여 암호문(
Figure 112015005976434-pat00122
)를 복호화하여 데이터(
Figure 112015005976434-pat00123
)를 생성한다(S570).
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 중복 제거 시스템
100 : 제1 서버
300 : 클라이언트 단말기
500 : 제2 서버

Claims (12)

  1. 공개키(
    Figure 112016003285368-pat00124
    )와 비밀키(
    Figure 112016003285368-pat00125
    )가 설정된 RSA(Rivest Shamir Adleman) 블라인드 서명 기법을 이용한 비밀키 생성 방법에 있어서,
    단말기가 데이터(
    Figure 112016003285368-pat00126
    )를 입력으로 하는 해쉬 함수의 결과값(
    Figure 112016003285368-pat00127
    )과 난수(
    Figure 112016003285368-pat00128
    )를 이용하여 생성된 질의값(
    Figure 112016003285368-pat00129
    )을 제1 서버로 송신하는 단계;
    상기 단말기가 상기 제1 서버로부터 응답값(
    Figure 112016003285368-pat00130
    )을 수신하는 단계;
    상기 단말기가 상기 응답값(
    Figure 112016003285368-pat00131
    )을 검증하는 단계; 및
    상기 단말기가 상기 데이터(
    Figure 112016003285368-pat00132
    )에 대한 비밀키(
    Figure 112016003285368-pat00133
    )를 생성하는 단계를 포함하고,
    상기 응답값(
    Figure 112016003285368-pat00177
    )을 검증하는 단계는,
    제2 수학식을 이용하여 연산값(
    Figure 112016003285368-pat00178
    )을 계산하는 단계; 및
    제3 수학식의 성립 여부를 판단하는 단계를 포함하고,
    상기 제2 수학식은
    Figure 112016003285368-pat00179
    이고,
    상기 제3 수학식은
    Figure 112016003285368-pat00180
    인,
    비밀키 생성 방법.
  2. 제1항에 있어서,
    상기 응답값(
    Figure 112015005976434-pat00134
    )은 제1 수학식을 이용하여 생성되고,
    상기 제1 수학식은
    Figure 112015005976434-pat00135
    인, 비밀키 생성 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 비밀키(
    Figure 112016003285368-pat00140
    )는 상기 연산값(
    Figure 112016003285368-pat00141
    )을 입력으로 하는 해쉬 함수의 결과값인, 비밀키 생성 방법.
  5. 서버가 단말기로부터 태그(
    Figure 112016003285368-pat00142
    )와 제1 질의값(
    Figure 112016003285368-pat00143
    )을 수신하는 단계;
    상기 서버가 제1 응답값(
    Figure 112016003285368-pat00144
    )과 제2 질의값(
    Figure 112016003285368-pat00145
    )을 상기 단말기로 송신하는 단계;
    상기 서버가 상기 단말기로부터 제2 응답값(
    Figure 112016003285368-pat00146
    )과 식별자(
    Figure 112016003285368-pat00147
    )를 수신하는 단계;
    상기 서버가 상기 제2 응답값(
    Figure 112016003285368-pat00148
    )을 검증하는 단계; 및
    상기 서버가 상기 식별자(
    Figure 112016003285368-pat00149
    )를 저장하는 단계를 포함하고,
    상기 태그(
    Figure 112016003285368-pat00181
    )는 데이터(
    Figure 112016003285368-pat00182
    )에 대한 비밀키(
    Figure 112016003285368-pat00183
    )를 입력으로 하는 해쉬 함수의 결과값이고,
    상기 비밀키(
    Figure 112016003285368-pat00184
    )는 제1항에 기재된 비밀키 생성 방법에 의해 생성된,
    중복 제거 방법.
  6. 삭제
  7. 제5항에 있어서,
    상기 제1 질의값(
    Figure 112015005976434-pat00153
    )은 상기 단말기에 의해 선택된 임의의 난수이고,
    상기 제1 응답값(
    Figure 112015005976434-pat00154
    )은 상기 서버에 저장되어 있는 암호문(
    Figure 112015005976434-pat00155
    )과 상기 제1 질의값(
    Figure 112015005976434-pat00156
    )을 입력으로 하는 해쉬 함수의 결과값이고,
    상기 제2 질의값(
    Figure 112015005976434-pat00157
    )은 상기 서버에 의해 선택된 임의의 난수인, 중복 제거 방법.
  8. 제5항에 있어서,
    상기 단말기에 의해 생성되는 상기 제2 응답값(
    Figure 112015005976434-pat00158
    )은 상기 단말기에 저장되어 있는 암호문(
    Figure 112015005976434-pat00159
    )과 상기 제2 질의값(
    Figure 112015005976434-pat00160
    )을 입력으로 하는 해쉬 함수의 결과값인, 중복 제거 방법.
  9. 제5항에 있어서,
    상기 제2 응답값(
    Figure 112015005976434-pat00161
    )을 검증하는 단계는,
    상기 서버에 저장되어 있는 암호문(
    Figure 112015005976434-pat00162
    )과 상기 제2 질의값(
    Figure 112015005976434-pat00163
    )을 입력으로 하는 해쉬 함수의 결과값과 상기 단말기로부터 수신된 제2 응답값(
    Figure 112015005976434-pat00164
    )을 비교하여 검증하는, 중복 제거 방법.
  10. 제5항에 있어서,
    상기 중복 제거 방법은,
    상기 서버가 상기 단말기로부터 데이터 다운로드 요청 메시지를 수신하는 단계;
    상기 서버가 상기 단말기의 데이터 소유권을 검사하는 단계; 및
    상기 서버가 상기 데이터 다운로드 요청 메시지에 대응하는 암호문과 암호화된 비밀키를 상기 단말기로 송신하는 단계를 더 포함하는, 중복 제거 방법.
  11. 삭제
  12. 제5항에 있어서,
    상기 제2 응답값(
    Figure 112016003285368-pat00166
    )과 상기 식별자(
    Figure 112016003285368-pat00167
    )를 수신하는 단계는 상기 단말기의 개인키(
    Figure 112016003285368-pat00168
    )를 이용하여 암호화된 비밀키(
    Figure 112016003285368-pat00169
    )를 더 수신하고,
    상기 식별자(
    Figure 112016003285368-pat00170
    )를 저장하는 단계는 상기 암호화된 비밀키(
    Figure 112016003285368-pat00171
    )를 상기 식별자(
    Figure 112016003285368-pat00172
    )와 함께 저장하는, 중복 제거 방법.
KR1020150009454A 2015-01-20 2015-01-20 비밀키 생성 방법 및 중복 제거 방법 KR101605766B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150009454A KR101605766B1 (ko) 2015-01-20 2015-01-20 비밀키 생성 방법 및 중복 제거 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150009454A KR101605766B1 (ko) 2015-01-20 2015-01-20 비밀키 생성 방법 및 중복 제거 방법

Publications (1)

Publication Number Publication Date
KR101605766B1 true KR101605766B1 (ko) 2016-04-04

Family

ID=55799833

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150009454A KR101605766B1 (ko) 2015-01-20 2015-01-20 비밀키 생성 방법 및 중복 제거 방법

Country Status (1)

Country Link
KR (1) KR101605766B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656508A (zh) * 2016-12-27 2017-05-10 深圳大学 一种基于身份的部分盲签名方法和装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100789354B1 (ko) 2001-04-12 2007-12-28 (주)크립토텔레콤 네트워크 카메라, 홈 게이트웨이 및 홈 오토메이션장치에서의 데이터 보안 유지 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100789354B1 (ko) 2001-04-12 2007-12-28 (주)크립토텔레콤 네트워크 카메라, 홈 게이트웨이 및 홈 오토메이션장치에서의 데이터 보안 유지 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106656508A (zh) * 2016-12-27 2017-05-10 深圳大学 一种基于身份的部分盲签名方法和装置

Similar Documents

Publication Publication Date Title
Chang et al. Untraceable dynamic‐identity‐based remote user authentication scheme with verifiable password update
CN112970236B (zh) 协作风险感知认证
Wu et al. Robust smart‐cards‐based user authentication scheme with user anonymity
Yang et al. Provable ownership of files in deduplication cloud storage
CN101815091A (zh) 密码提供设备、密码认证系统和密码认证方法
CN112989426B (zh) 授权认证方法及装置、资源访问令牌的获取方法
CN115333857B (zh) 基于智慧城市系统云平台数据防篡改的检测方法
Chen et al. Security analysis and improvement of user authentication framework for cloud computing
Wen et al. A robust smart card‒based anonymous user authentication protocol for wireless communications
Kang et al. Efficient and robust user authentication scheme that achieve user anonymity with a Markov chain
Kim et al. Client‐Side Deduplication to Enhance Security and Reduce Communication Costs
CN113626802A (zh) 一种设备密码的登录验证系统及方法
Chang et al. A practical secure and efficient enterprise digital rights management mechanism suitable for mobile environment
US20160359822A1 (en) Sovereign share encryption protocol
US8954728B1 (en) Generation of exfiltration-resilient cryptographic keys
Amintoosi et al. TAMA: three-factor authentication for multi-server architecture
Kumar et al. A conditional privacy-preserving and desynchronization-resistant authentication protocol for vehicular ad hoc network
CN115473655B (zh) 接入网络的终端认证方法、装置及存储介质
CN201717885U (zh) 密码提供设备和密码认证系统
KR101605766B1 (ko) 비밀키 생성 방법 및 중복 제거 방법
KR101435399B1 (ko) 무선 네트워크 환경에서 클라우드 데이터센터 내의 보안관제 시스템에 접근 가능한 안전한 익명 인증 방법
JP5799635B2 (ja) 暗号データ検索システム、装置、方法及びプログラム
Mata et al. Enhanced secure data storage in cloud computing using hybrid cryptographic techniques (AES and Blowfish)
Salem et al. An efficient privacy preserving public auditing mechanism for secure cloud storage
Zhou et al. Chaotic map‐based time‐aware multi‐keyword search scheme with designated server

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: 20190211

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200128

Year of fee payment: 5