KR20100050846A - 키 교환 시스템 및 방법 - Google Patents

키 교환 시스템 및 방법 Download PDF

Info

Publication number
KR20100050846A
KR20100050846A KR1020080109944A KR20080109944A KR20100050846A KR 20100050846 A KR20100050846 A KR 20100050846A KR 1020080109944 A KR1020080109944 A KR 1020080109944A KR 20080109944 A KR20080109944 A KR 20080109944A KR 20100050846 A KR20100050846 A KR 20100050846A
Authority
KR
South Korea
Prior art keywords
key
client
public
public information
server
Prior art date
Application number
KR1020080109944A
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 KR1020080109944A priority Critical patent/KR20100050846A/ko
Priority to PCT/KR2009/006532 priority patent/WO2010053319A2/ko
Priority to US13/128,106 priority patent/US8380992B2/en
Publication of KR20100050846A publication Critical patent/KR20100050846A/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • 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]
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Lock And Its Accessories (AREA)

Abstract

본 발명은 키 교환 시스템 및 방법에 관한 것이다.
이를 위해 본 발명은 제1 클라이언트가 자신의 제1 공개 키를 제1 키와 제2 키로 분할하여 통신 서버를 통해서 제1 키를 전송하고, 자신의 개인 키로 서명한 제1 공개 정보와 제2 키를 상기 제2 클라이언트로 직접 전송하고, 제2 클라이언트가 통신 서버를 통해서 제1 키를 수신하고, 제1 클라이언트로부터 제2 키와 제1 공개 정보를 수신하면 제1 키와 제2 키를 이용하여 제1 공개 키와 동일한 제2 공개 키를 생성하고, 제1 공개 정보와 제2 공개 키를 인증하여 인증이 완료되면 제1 보안 마스터 키를 생성함으로써 제 3자의 개입 없이 키를 교환할 수 있게 된다.
인터넷 전화, RSA, Diffie-Hellman, 공개키 분할

Description

키 교환 시스템 및 방법{SYSTEM AND METHOD FOR INTERCHANGING KEY}
본 발명은 키 교환 시스템 및 방법에 관한 것으로, 특히 보다 상세하게는 SIP(Session Initiation Protocol) 기반의 VoIP(Voice over Internet Protocol) 환경에서 데이터의 기밀성 및 무결성을 위해 사용되는 SRTP(Secure Real-time Transport Protocol)의 암호화 키 및 무결성 키를 생성하기 위해 제 3자의 개입 없이 키를 교환 하는 시스템 및 방법에 관한 것이다.
일반적으로 SRTP(Secure Real-time Transport Protocol) 키 교환 기술은 전송 경로에 따라서 시그널링 경로만을 이용하는 방법, 미디어 경로만을 이용하는 방법, 시그널링 경로와 미디어 경로 모두를 이용하는 방법으로 분류된다.
시그널링 경로만을 이용하는 방법으로는 홉간 TLS(Transport Layer Security)로 암호화되거나 양단간 S/MIME(Secure Multi-Purpose Internet Mail Extensions)으로 암호화 채널이 설정된 환경에서 SRTP 키를 SDP(Session Description Protocol)를 통해 전송하는 MIKEY-NULL 기술(IETF RFC3830), 양단간 사전에 공유된 비밀키로 SRTP 키를 암호화하여 시그널링 경로를 통해 전송하는 MIKEY-PSK(Multimedia Internet KEYing - Pre-Shared Secret) 기술(RFC3830, Request For Comments 3830), 수신자의 공개키로 SRTP 키를 암호화하여 시그널링 경로로 전송하는 MIKEY-RSA(MIKEY - Rivest Shamir Adleman) 기술(IETF RFC3830), 송신자가 수신자의 공개키를 이용하여 SRTP 키를 암호화하여 시그널링 경로로 전송하는 MIKEY-RSA-R(MIKEY-RSA-Reverse) 기술(IETF RFC4738), DH(Diffie-Hellman) 키 교환 기법에 인증서를 적용하여 SRTP 키를 교환하는 MIKEY-DHSIGN(MIKEY-DH SIGNature) 기술(IETF RFC3830), 양단간 사전에 공유된 비밀키로 Diffie-Hellman 공개정보를 암호화하여 SRTP 키를 전송하는 MIKEY-DHHMAC(MIKEY-DH Hash Message Authentication Code) 기술(IETF RFC4650), TLS로 홉간 암호화되거나 S/MIME을 이용하여 양단간 암호화된 시그널링의 SDP에 SRTP 키를 담아 전송하는 Security Descriptions 기술 (IETF RFC4568) 등이 있다. 이러한 키 교환 방법은 시그널링에 보안이 적용이 되어 있거나 사전에 공유된 비밀정보 혹은 인증서를 필요로 하고 있기 때문에 실시간 미디어 전송을 위한 VoIP 서비스에서는 현실적으로 적용하기 어려운 문제점이 있다.
미디어 경로만을 이용하는 방법으로는 Diffie-Hellman 키 교환 기법으로 SRTP를 위한 키를 양단 간에 공유하고, 사용자의 목소리로 Diffie-Hellman 결과값과 관련된 짧은 단어를 직접 읽어서 인증하는 ZRTP 기술 (draft-zimmermann-avt-zrtp)이 있다. 이러한 키 교환 방법은 SRTP 키가 안전한지 사용자가 통화중에 직접 개입하여 인증을 시도해야 하는 불편함이 있고, 사용자의 목소리를 모방할 수 있는 공격자의 공격에 취약하다는 문제점이 있다.
시그널링 경로와 미디어 경로 모두를 이용한 방법으로는 현재 IETF에서 표준 화 작업중인 DTLS-SRTP(Datagram - SRTP) 기술(draft-ietf-avt-dtls-srtp)이 있다. 이 기술은 일반적으로 인증서를 사용한 DTLS 과정을 수행하여 SRTP 키를 교환한다. 만약 인증서를 사용하는 PKI(Public Key Infrastructure) 기반이 아닌 경우에는 시그널링 경로와 미디어 경로 모두를 이용한 Self-Signed 인증서 방식으로 SRTP 키 교환을 시도한다. 이러한 방식은 시그널링 경로의 SDP에 공개키의 핑거프린트(fingerprint)를 전송하고, 미디어 경로에서 DTLS를 수행하면서 Self-Signed 인증서를 전송한다. 그리고 사용자는 시그널링 경로를 통해 수신한 핑거프린트를 이용하여 Self-Signed 인증서를 인증한다. 이러한 전송 방식에서는 보안을 위해 SIP Identity(IETF RFC4474)를 사용한다. 이러한 방법은 실시간 미디어 전송에서 제 3의 기관이 요구되는 인증서를 사용하거나 사용자의 직접적인 개입이 필요하다는 불편함이 존재한다.
이와 같은 키 교환 방법들은 제 3의 기관을 통해 신뢰할 수 있는 인증서를 사용하는 방법들이지만 VoIP 환경에서 뿐만 아니라 현재 인터넷의 다양한 환경에서 구축하기 어렵다는 문제점이 있어서 제 3자의 개입 없이 두 사용자 간의 키를 교환하는 방법이 이용되었다. 이러한 키 교환 방법은 두 사용자가 직접 서로 간의 보안 마스터 키를 교환 및 인증하여 데이터를 송수신한다.
일반적으로 제 3자의 개입 없이 두 사용자 간의 키를 교환하는 종래 방법들은 중간자(MITM, Man In The Middle Attack)의 공격에 의해 보안 마스터 키가 노출될 수 있다는 문제점이 있다. 이에 대해서 구체적으로 살펴보면, 송신자와 수신자 간의 공개 키를 교환할 시 중간자가 개입하여 각각의 공개 키를 확인하고, 중간자와 두 사용자 간의 공개 키를 교환한다. 즉, 송신자는 중간자와 공개 키를 교환하여 새로운 보안 마스터 키를 생성하고, 수신자도 중간자와 공개 키를 교환하여 새로운 보안 마스터 키를 생성한 것이다. 이에 따라 두 사용자들은 자신들이 동일한 보안 마스터 키를 통해 보안 통신을 하고 있는 것으로 믿지만, 실제로는 중간자가 두 사용자 중간에서 각각의 사용자와 보안 마스터 키를 교환한 것이다. 이러한 중간자 공격에 대응하기 위해 종래의 ZRTP 기술에서는 SAS(Short Authentication String) 인증 방식을 이용하여 사용자가 직접 인증을 위한 동작을 수행하도록 하였지만 이러한 방식은 사용자가 인증을 위해서 어떠한 동작을 수행해야 한다는 불편함이 있었다.
따라서, 본 발명은 두 단말기 간의 키 교환 시 중간자의 개입 없이 키를 교환하기 위한 전송 시스템 및 방법을 제공한다.
상술한 바를 달성하기 위한 본 발명은 키 교환 시스템에 있어서, 제1 클라이 언트와 제2 클라이언트와의 통신 경로를 설정하는 통신 서버와, 상기 제2 클라이언트와 통신 경로를 설정하고, 자신의 제1 공개 키를 제1 키와 제2 키로 분할하여 상기 통신 서버를 통해서 상기 제1 키를 전송하고, 자신의 개인 키로 서명한 제1 공개 정보와 상기 제2 키를 상기 제2 클라이언트로 직접 전송하는 상기 제1 클라이언트와, 상기 통신 서버를 통해서 상기 제1 키를 수신하고, 상기 제1 클라이언트로부터 상기 제2 키와 상기 제1 공개 정보를 수신하면 상기 제1 키와 상기 제2 키를 이용하여 상기 제1 공개 키와 동일한 제2 공개 키를 생성하고, 상기 제1 공개 정보와 상기 제2 공개 키를 인증하여 상기 인증이 완료되면 제1 보안 마스터 키를 생성하는 상기 제2 클라이언트를 포함하는 것을 특징으로 한다.
또한, 본 발명은 제1 클라이언트, 상기 제1 클라이언트와 통신 경로가 설정된 제2 클라이언트, 상기 제1 클라이언트와 상기 제2 클라이언트와의 통신 경로가 설정된 통신 서버를 포함하는 키 교환 시스템에서 상기 제2 클라이언트가 상기 제1 클라이언트와 키를 교환하기 위한 방법에 있어서, 상기 통신 서버를 통해서 상기 제1 클라이언트에 의해 제1 키와 제 2키로 분할된 제1 공개 키 중 상기 제1 키를 수신하고, 상기 제1 클라이언트의 개인 키로 서명된 제1 공개 정보와 상기 제2 키를 상기 제1 클라이언트로부터 수신하는 과정과, 상기 제1 키와 상기 제2 키를 이용하여 상기 제1 공개 키와 동일한 제2 공개 키를 생성하는 과정과, 상기 제1 공개 정보와 상기 제2 공개 키를 인증하는 과정과, 상기 인증 과정이 완료되면 제1 보안 마스터 키를 생성하는 과정을 포함함을 특징으로 한다.
본 발명은 두 단말기 간의 공개 키를 분할하여 서로 다른 경로를 통해서 전송함으로써 중간자가 각각의 경로를 통해서 공격하기 어렵기 때문에 중간자의 공격을 피할 수 있다는 이점이 있다.
또한 본 발명은 두 단말기 간에 직접 생성된 개인키 및 공개키를 이용하여 키 교환을 수행함으로써 현재 VoIP 환경에 적용하는 것이 용이하다는 이점이 있다.
뿐만 아니라 본 발명은 사용자가 직접 공개키를 인증할 필요 없이 두 단말기 간에 직접 키 인증을 수행할 수 있다는 이점이 있다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 하기 설명 및 첨부 도면에서 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
이하 본 발명의 실시 예에 따른 키 교환 시스템의 구성 및 키 교환을 위한 전체 흐름에 대해서 도 1을 참조하여 상세하게 살펴보도록 한다.
도 1은 본 발명의 실시 예에 따른 키 교환 시스템에서 키 교환을 위한 전체 흐름도를 나타내는 도면이다.
본 발명의 실시 예에 따른 키 교환 시스템은 클라이언트(101), 서버(102), 클라이언트(101)와 서버(102)와의 시그널링 경로를 설정하는 통신 서버로써 프록시 서버(103)로 구성된다. 이때, 본 발명의 실시 예에서는 사용자 에이전트 클라이언 트로 동작하는 장치를 클라이언트(101)로 사용자 에이전트 서버로 동작하는 클라이언트를 서버(102)로 축약하여 기재하도록 한다. 또한, 본 발명에서 프록시 서버(103)는 통신 서버 종류의 하나이다.
클라이언트(101)는 자체적으로 RSA(Rivest Shamir Adleman) 개인키 및 RSA 공개키를 생성하고, 서버(102)도 자체적으로 RSA 개인키 및 RSA 공개키를 생성한다. 이후 클라이언트(101)와 서버(102)는 각각의 RSA 공개키를 분할하기 위해 임의의 Diffie-Hellman 비밀 값을 설정하고, 설정된 Diffie-Hellman 비밀 값을 이용하여 Diffie-Hellman 공개 정보를 산출한다. 그리고 클라이언트(101)와 서버(102)는 산출된 각각의 Diffie-Hellman 공개 정보를 이용하여 각각의 공개키를 제1 키 및 제2 키로 분할한다.
110단계에서 클라이언트(101)는 자신의 제1 키를 시그널링 경로를 통해서 프록시 서버(103)로 전달하고, 111단계에서 프록시 서버(103)는 수신된 클라이언트(101)의 제1 키를 시그널링 경로를 통해서 서버(102)로 전달한다.
112단계에서 서버(102)는 자신의 제1 키를 시그널링 경로를 통해서 프록시 서버(103)로 전달하고, 113단계에서 프록시 서버(103)는 수신된 서버(102)의 제1 키를 시그널링 경로를 통해서 클라이언트(101)로 전달한다.
114단계에서 클라이언트(101)는 산출된 Diffie-Hellman 공개 정보를 서명하고, 자신의 제2 키와 서명된 Diffie-Hellman 공개 정보를 미디어 경로를 통해서 서버(102)로 전달한다. 이때, 클라이언트(101)는 서명되지 않은 Diffie-Hellman 공개 정보도 함께 전달한다.
115단계에서 서버(102)는 수신된 클라이언트(101)의 제1 키 및 제2 키를 이용하여 클라이언트(101)의 RSA 공개키를 생성한다.
116단계에서 서버(102)는 생성된 클라이언트(101)의 RSA 공개키를 인증하고, 인증된 클라이언트(101)의 RSA 공개키가 클라이언트(101)에서 생성된 RSA 공개키인지 여부를 클라이언트(101)의 서명된 Diffie-Hellman 공개 정보를 이용하여 인증한다.
117단계에서 서버(102)는 보안 키를 생성하고, 생성된 보안키와 서버(102)와 클라이언트(101)의 Diffie-Hellman 공개 정보를 이용하여 보안키 확인 정보 값을 생성한다.
118단계에서 서버(102)도 산출된 Diffie-Hellman 공개 정보를 서명하고, 자신의 제2 키와 서명된 Diffie-Hellman 공개 정보를 미디어 경로를 통해서 클라이언트(101)로 전달한다. 이때, 서버(102)도 서명되지 않은 Diffie-Hellman 공개 정보도 함께 전달한다. 또한 생성된 보안키를 검증하기 위한 확인 정보 값을 함께 전달한다.
119단계에서 클라이언트(101)는 수신된 서버(102)의 제1 키 및 제2 키를 이용하여 서버(102)의 RSA 공개키를 생성한다.
120단계에서 클라이언트(101)는 생성된 서버(102)의 RSA 공개키를 인증하고, 인증된 서버(102)의 RSA 공개키가 서버(102)에서 생성된 RSA 공개키인지 여부를 서버(102)의 서명된 Diffie-Hellman 공개 정보를 이용하여 인증한다.
121단계에서 클라이언트(101)는 보안 키를 생성하고, 생성된 보안키와 클라 이언트(101)와 서버(102)의 Diffie-Hellman 공개 정보를 이용하여 보안키 확인 정보 값을 생성한다.
122단계에서 클라이언트(101)는 수신된 서버(102)의 보안키 확인 정보 값과 121단계에서 생성한 보안키를 이용하여 서버(102)가 생성한 보안키가 정상적인 값인지 여부를 검증한다.
123단계에서 클라이언트(101)는 생성된 보안키를 검증하기 위한 확인 정보 값을 서버 (102)에게 전달한다.
124단계에서 서버(102)는 수신된 클라이언트(101)의 보안키 확인 정보 값과 117단계에서 생성한 보안키를 이용하여 클라이언트(101)가 생성한 보안키가 정상적인 값인지 여부를 검증하여 클라이언트(101)와 서버(102)간에 동일한 보안키가 생성되었음을 확인한다.
이와 같이 본 발명에서는 클라이언트와 서버 간의 공개키를 서로 분할하여 두 가지 경로를 통해 교환함으로써 중간자가 공격하더라도 공개키가 노출되지 않는다는 이점이 있다.
125단계에서 클라이언트(101)와 서버(102)는 생성된 보안 키를 이용하여 데이터 송수신을 수행한다.
이를 통해서 본 발명에서는 사용자의 개입 없이 클라이언트(101)와 서버(102) 간의 키 교환 및 인증 동작을 수행할 수 있다는 이점이 있다.
그러면 이제 본 발명의 실시 예에 따라 도 1과 같이 구성되는 키 교환 시스템에서 클라이언트(101)와 서버(102) 간의 키를 교환하기 위한 과정에 대해서 도 2 와 도 3을 참조하여 하기에서 구체적으로 설명하도록 한다.
먼저, 도 2를 참조하여 클라이언트(101)가 서버와 키를 교환하기 위한 동작에 대해서 구체적으로 살펴보도록 한다.
도 2a는 본 발명의 실시 예에 따라 클라이언트(101)가 공개키를 분할하여 프록시 서버(103) 및 서버(102)로 전송하기 위한 과정을 나타내는 제어 흐름도이다.
200단계에서 클라이언트(101)는 자신의 개인키 및 공개키를 생성한다. 예를 들어, 클라이언트(101)가 생성한 개인키를
Figure 112008077028231-PAT00001
라고 하고, 공개키를
Figure 112008077028231-PAT00002
라고 가정한다. 또한 서버(102)가 생성한 개인키를
Figure 112008077028231-PAT00003
라고 하고, 공개키를
Figure 112008077028231-PAT00004
라고 가정한다.
201단계에서 클라이언트(101)는 생성된 자신의 공개키 를 분할하기 위해 임의의 Diffie-Hellman 비밀값을 생성하고, 생성된 Diffie-Hellman 비밀값을 이용하여 Diffie-Hellman 공개 정보를 산출한다. 만약 생성된 임의의 Diffie-Hellman 비밀값이 x라고 하면 클라이언트(101)는 Diffie-Hellman 비밀값 x를 이용하여 Diffie-Hellman 공개 정보 DHPartAlice를 산출한다. 이때, 산출된 Diffie-Hellman 공개 정보를
Figure 112008077028231-PAT00006
라고 가정한다. 여기서, g는 생성자이고,
Figure 112008077028231-PAT00007
는 생성자 g에 비밀값 x를 제곱한 값이고,
Figure 112008077028231-PAT00008
를 p로 나머지 연산한(모듈러 p) 값인
Figure 112008077028231-PAT00009
는 클라이언트(101)의 Diffie-Hellman 공개 정보가 된다.
202단계에서 클라이언트(101)는 생성된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00010
를 이용하여 공개키
Figure 112008077028231-PAT00011
를 제1 키
Figure 112008077028231-PAT00012
와 제2 키
Figure 112008077028231-PAT00013
로 분할한다. 이때, 분할된 제1 키
Figure 112008077028231-PAT00014
와 제2 키
Figure 112008077028231-PAT00015
는 <수학식1>과 같이 분할된다.
Figure 112008077028231-PAT00016
Figure 112008077028231-PAT00017
클라이언트(101)는 생성된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00018
에 SHA1 해쉬함수(H)를 적용하고, RSA 공개키
Figure 112008077028231-PAT00019
의 크기와 일치되도록 하기 위해
Figure 112008077028231-PAT00020
크기만큼
Figure 112008077028231-PAT00021
에 0으로 패딩한 결과 값을
Figure 112008077028231-PAT00022
로 설정한다. 그리고 클라이언트(101)는 RSA 공개키
Figure 112008077028231-PAT00023
와 제2 키
Figure 112008077028231-PAT00024
를 XOR(Exclusive OR)로 연산한 결과 값
Figure 112008077028231-PAT00025
Figure 112008077028231-PAT00026
로 설정한다.
203단계에서 클라이언트(101)는 분할된 제1 키
Figure 112008077028231-PAT00027
를 시그널링 경로인 SIP 메시지 INVITE의 SDP 안에 세션 속성 필드(Session attribute Field)를 이용하여 프록시 서버(103)로 전달한다.
204단계에서 클라이언트(101)는 프록시 서버(103)로부터 서버(102)의 제1 키
Figure 112008077028231-PAT00028
가 수신되는지 검사하여 수신되면 205단계로 진행하고, 그렇지 않으면 204단계에서 계속적으로 프록시 서버(103)로부터 서버(102)의 제1 키
Figure 112008077028231-PAT00029
가 수신되는지 검사한다.
205단계에서 클라이언트(101)는 자신의 개인키
Figure 112008077028231-PAT00030
를 이용하여 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00031
를 서명하고, 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00032
와 제2 키
Figure 112008077028231-PAT00033
, Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00034
를 INVITE와 200 OK 메시지에 포함된 RTP 주소 및 포트 번호를 이용하여 미디어 경로인 RTP 세션을 통해서 서버(102)로 전송한다.
206단계에서 클라이언트(101)는 서버(102)로부터 서버(102)의 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00035
와 제2 키
Figure 112008077028231-PAT00036
, Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00037
, 보안키 확인 정보값
Figure 112008077028231-PAT00038
이 수신되는지 검사하여 수신되면 207단계로 진행하고, 그렇지 않으면 206단계에서 계속적으로 서버(102)로부터 서버(102)의 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00039
와 제2 키
Figure 112008077028231-PAT00040
, Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00041
, 보안키 확인 정보값
Figure 112008077028231-PAT00042
이 수신되는지 검사한다. 이후 클라이언트(101)는 ⓐ 단계를 진행한다.
ⓐ 단계 이후 과정에 대해서는 도 2b를 이용하여 하기에서 구체적으로 살펴보도록 한다. 여기서 도 2b의 ⓐ는 도 2a의 ⓐ와 연결된다.
도 2b는 본 발명의 실시 예에 따라 클라이언트(101)가 서버(102)로부터 수신된 서버(102)의 제1 키 및 제2 키를 이용하여 공개키 생성 및 인증을 위한 과정을 나타내는 제어 흐름도이다.
207단계에서 클라이언트(101)는 수신된 서버(102)의 제1 키
Figure 112008077028231-PAT00043
와 제2 키
Figure 112008077028231-PAT00044
를 이용하여 서버의 공개키
Figure 112008077028231-PAT00045
를 생성한다. 이때, 생성된 공개키
Figure 112008077028231-PAT00046
는 다음의 <수학식 2>와 같이 산출된다.
Figure 112008077028231-PAT00047
클라이언트(101)는 수신된 서버(102)의 제1 키
Figure 112008077028231-PAT00048
와 제2 키
Figure 112008077028231-PAT00049
를 XOR로 연산하여
Figure 112008077028231-PAT00050
를 산출한다.
208단계에서 클라이언트(101)는 해쉬함수를 이용하여 수신된 서버(102)의 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00051
의 해쉬 결과값을 산출한다.
209단계에서 클라이언트(101)는 산출된 해쉬 결과값이 서버(102)의 제2 키
Figure 112008077028231-PAT00052
와 일치하는지 여부를 확인하여 일치하면 210단계를 진행하고, 그렇지 않으면 중간자의 공격에 의해 공개키가 수정되었다고 판단하여 키 교환 과정을 종료 한다. 이때, 클라이언트(101)는 다음의 <수학식 3>를 이용하여 산출된 해쉬 결과값과 제2 키
Figure 112008077028231-PAT00053
와 일치하는지 여부를 판단한다.
Figure 112008077028231-PAT00054
클라이언트(101)는 서버(102)의 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00055
에 해쉬함수(H)를 적용하여 서버의 제2 키
Figure 112008077028231-PAT00056
가 산출되는지 여부를 판단하는 것이다. 이를 통해서 클라이언트(101)는 생성된 서버(102)의 공개키
Figure 112008077028231-PAT00057
를 인증할 수 있다.
210단계에서 클라이언트(101)는 상기의 <수학식 2>와 같이 산출된 서버의 공개키
Figure 112008077028231-PAT00058
를 이용하여 서명된 서버(102)의 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00059
를 검증하는데, 만약 검증에 실패하면 중간자의 공격에 의해 Diffie-Hellman 공개 정보가 수정되었다고 판단하여 키 교환 과정을 종료한다. 이때, 서버(102)의 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00060
는 <수학식 4>를 이용하여 인증된다.
Figure 112008077028231-PAT00061
클라이언트(101)는 서버(102)의 개인키
Figure 112008077028231-PAT00062
로 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00063
를 서버(102)의 공개키
Figure 112008077028231-PAT00064
를 이용하여 서버(102)에 의해서 생성된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00065
인지 여부를 확인한다. 이를 통해서 클라이언트(101)는 서버(102)의 공개키
Figure 112008077028231-PAT00066
와 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00067
를 인증할 수 있다.
이후 211단계에서 클라이언트(101)는 하기의 <수학식 5>를 이용하여 보안 마스터 키를 생성한다.
Figure 112008077028231-PAT00068
여기서,
Figure 112008077028231-PAT00069
는 g에 서버(102)의 비밀값 y를 제곱한 값이고, 서버(102)의 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00070
를 x 제곱승한 값에 모듈러 p한 값인
Figure 112008077028231-PAT00071
가 보안 마스터 키가 된다.
그리고 클라이언트(101)는 생성된 보안 마스터 키를 서버(102)와 상호 확인 하기 위해 보안 마스터 키
Figure 112008077028231-PAT00072
와 보안 마스터 키를 생성하기 위해 필요한 공개 파라미터 값
Figure 112008077028231-PAT00073
Figure 112008077028231-PAT00074
에 해쉬함수를 적용한 보안 마스터 키 확인 정보 값
Figure 112008077028231-PAT00075
를 산출한다.
212단계에서 클라이언트(101)는 하기의 <수학식 6>를 이용하여 수신된 서버(102)의 보안 마스터 키 확인 정보 값
Figure 112008077028231-PAT00076
과 클라이언트가 생성한 보안 마스터 키 확인 정보 값을 비교하여 서버(102)가 생성한 보안 마스터 키
Figure 112008077028231-PAT00077
를 검증한다.
Figure 112008077028231-PAT00078
클라이언트(101)는 보안 마스터 키를 생성하기 위해 필요한 공개 파라미터 값
Figure 112008077028231-PAT00079
Figure 112008077028231-PAT00080
를 이용하여 상기의 <수학식 6>과 같이 해쉬함수를 적용한 값이 서버(102)로부터 수신된
Figure 112008077028231-PAT00081
와 동일한 값이 산출되는지 확인한다. 만약 동일한 값이 산출되면 클라이언트(102)는 서버(102)와 동일한 보안 마스터 키가 생성되었음을 인지한다.
이후 클라이언트(101)는 213단계에서 자신의 보안 마스터 키 확인 정보 값
Figure 112008077028231-PAT00082
을 생성한 후 서버(102)로 전송한다.
검증 과정이 수행된 이후 214단계에서 클라이언트(101)는 검증된 보안 마스터 키를 이용하여 서버(102)와의 데이터 송수신을 수행한다.
이와 같이 클라이언트(101)는 자신의 공개키를 분할하여 서로 다른 두 가지 경로로 전송함으로써 중간자의 공격이 이루어지더라도 중간자에게 공개키가 노출되지 않는다는 이점이 있다.
다음으로, 도 3을 참조하여 서버(102)가 클라이언트(101)와 키를 교환하기 위한 동작에 대해서 구체적으로 살펴보도록 한다.
도 3a는 본 발명의 실시 예에 따라 서버(102)가 공개키를 분할하여 프록시 서버(103) 및 클라이언트(101)로 전송하기 위한 과정을 나타내는 제어 흐름도이다.
300단계에서 서버(102)는 자신의 개인키
Figure 112008077028231-PAT00083
및 공개키
Figure 112008077028231-PAT00084
를 생성한다.
301단계에서 서버(102)는 생성된 자신의 공개키
Figure 112008077028231-PAT00085
를 분할하기 위해 임의의 Diffie-Hellman 비밀값 y를 생성하고, 생성된 Diffie-Hellman 비밀값 y를 이용하여 Diffie-Hellman 공개 정보 DHPartBob를 산출한다. 이때, 산출된 Diffie-Hellman 공개 정보 DHPartBob를
Figure 112008077028231-PAT00086
라고 가정한다. 여기서, g는 생성자이고,
Figure 112008077028231-PAT00087
는 생성자 g에 비밀값 y를 제곱한 값이고,
Figure 112008077028231-PAT00088
를 p로 나머지 연산한(모듈러 p) 값인
Figure 112008077028231-PAT00089
는 서버(102)의 Diffie-Hellman 공개 정보가 된다.
302단계에서 서버(102)는 생성된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00090
를 이용하여 공개키
Figure 112008077028231-PAT00091
를 제1 키
Figure 112008077028231-PAT00092
와 제2 키
Figure 112008077028231-PAT00093
로 분할한다. 이때, 분할된 제1 키
Figure 112008077028231-PAT00094
와 제2 키
Figure 112008077028231-PAT00095
는 <수학식7>과 같이 분할된다.
Figure 112008077028231-PAT00096
Figure 112008077028231-PAT00097
서버(102)는 생성된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00098
에 SHA1 해쉬함수(H)를 적용하고, RSA 공개키
Figure 112008077028231-PAT00099
의 크기와 일치되도록 하기 위해
Figure 112008077028231-PAT00100
크기만큼
Figure 112008077028231-PAT00101
에 0으로 패딩한 결과 값을
Figure 112008077028231-PAT00102
로 설정한다. 그리고 서버(102)는 RSA 공개키
Figure 112008077028231-PAT00103
와 제2 키
Figure 112008077028231-PAT00104
를 XOR(Exclusive OR)로 연산한 결과 값
Figure 112008077028231-PAT00105
Figure 112008077028231-PAT00106
로 설정한다.
303단계에서 서버(102)는 프록시 서버(103)로부터 클라이언트(101)의 제1 키
Figure 112008077028231-PAT00107
가 수신되는지 검사하여 수신되면 304단계로 진행하고, 그렇지 않으면 303단계에서 계속적으로 프록시 서버(103)로부터 클라이언트(101)의 제1 키
Figure 112008077028231-PAT00108
가 수신되는지 검사한다.
304단계에서 서버(102)는 분할된 제1 키
Figure 112008077028231-PAT00109
를 시그널링 경로인 SIP 메시지 200 OK의 SDP 안에 세션 속성 필드(Session attribute Field)를 이용하여 프록시 서버(103)로 전달한다.
305단계에서 서버(102)는 클라이언트(101)로부터 클라이언트(101)의 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00110
와 제2 키
Figure 112008077028231-PAT00111
, Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00112
가 수신되는지 검사하여 수신되면 306단계로 진행하고, 그렇지 않으면 305단계에서 계속적으로 클라이언트(101)로부터 클라이언트(101)의 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00113
와 제2 키
Figure 112008077028231-PAT00114
, Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00115
가 수신되는지 검사한다. 이후 서버(102)는 ⓑ 단계를 진행한다.
ⓑ 단계 이후 과정에 대해서는 도 3b를 이용하여 하기에서 구체적으로 살펴보도록 한다. 여기서 도 3b의 ⓑ는 도 3a의 ⓑ와 연결된다.
도 3b는 본 발명의 실시 예에 따라 서버(102)가 클라이언트(101)로부터 수신된 클라이언트(101)의 제1 키 및 제2 키를 이용하여 공개키 생성 및 인증을 위한 과정을 나타내는 제어 흐름도이다.
306단계에서 서버(102)는 수신된 클라이언트(101)의 제1 키
Figure 112008077028231-PAT00116
와 제2 키
Figure 112008077028231-PAT00117
를 이용하여 클라이언트의 공개키
Figure 112008077028231-PAT00118
를 생성한다. 이때, 생성된 공개키
Figure 112008077028231-PAT00119
는 다음의 <수학식 8>와 같이 산출된다.
Figure 112008077028231-PAT00120
서버(102)는 수신된 클라이언트(101)의 제1 키
Figure 112008077028231-PAT00121
와 제2 키
Figure 112008077028231-PAT00122
를 XOR로 연산하여
Figure 112008077028231-PAT00123
를 산출한다.
307단계에서 서버(102)는 해쉬함수를 이용하여 수신된 클라이언트(101)의 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00124
의 해쉬 결과값을 산출한다.
308단계에서 서버(102)는 산출된 해쉬 결과값이 클라이언트(101)의 제2 키
Figure 112008077028231-PAT00125
와 일치하는지 여부를 확인하여 일치하면 309단계를 진행하고, 그렇지 않으면 중간자에 의해 공개키가 수정되었다고 판단하여 키 교환 과정을 종료한다. 이때, 서버(102)는 다음의 <수학식 9>를 이용하여 산출된 해쉬 결과값과 제2 키
Figure 112008077028231-PAT00126
와 일치하는지 여부를 판단한다.
Figure 112008077028231-PAT00127
서버(102)는 클라이언트(101)의 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00128
에 해쉬함수를 적용하여 서버의 제2 키
Figure 112008077028231-PAT00129
가 산출되는지 여부를 판단하는 것이다. 이를 통해서 서버(102)는 생성된 클라이언트(101)의 공개키
Figure 112008077028231-PAT00130
를 인증할 수 있다.
309단계에서 서버(102)는 상기의 <수학식 8>와 같이 산출된 클라이언트(101) 의 공개키 를 이용하여 클라이언트(101)의 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00132
를 검증하는데, 만약 검증에 실패하면 중간자의 공격에 의해 Diffie-Hellman 공개 정보가 수정되었다고 판단하여 키 교환 과정을 종료한다. 이때, 클라이언트(101)의 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00133
는 <수학식 10>를 이용하여 인증된다.
Figure 112008077028231-PAT00134
서버(102)는 클라이언트(101)의 개인키
Figure 112008077028231-PAT00135
로 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00136
를 클라이언트(101)의 공개키
Figure 112008077028231-PAT00137
를 이용하여 클라이언트(101)에 의해서 생성된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00138
인지 여부를 확인한다. 이를 통해서 서버(102)는 클라이언트(101)의 공개키
Figure 112008077028231-PAT00139
와 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00140
를 인증할 수 있다.
이후 310단계에서 서버(102)는 하기의 <수학식 11>를 이용하여 보안 마스터 키를 생성한다.
Figure 112008077028231-PAT00141
여기서,
Figure 112008077028231-PAT00142
는 클라이언트(101)의 비밀값 x를 제곱한 값이고, 클라이언트(101)의 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00143
를 y 제곱승한 값에 모듈러 p한 값인
Figure 112008077028231-PAT00144
가 보안 마스터 키가 된다.
그리고 서버(102)는 생성된 보안 마스터 키를 클라이언트(101)와 상호 확인을 하기 위해 보안 마스터 키
Figure 112008077028231-PAT00145
와 보안 마스터 키를 생성하기 위해 필요한 공개 파라미터 값
Figure 112008077028231-PAT00146
Figure 112008077028231-PAT00147
에 해쉬함수를 적용한 보안 마스터 키 확인 정보 값
Figure 112008077028231-PAT00148
를 산출한다.
311단계에서 서버(102)는 자신의 개인키
Figure 112008077028231-PAT00149
를 이용하여 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00150
를 서명하고, 서명된 Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00151
와 제2 키
Figure 112008077028231-PAT00152
, Diffie-Hellman 공개 정보
Figure 112008077028231-PAT00153
, 자신의 보안 마스터 키 확인 정보 값
Figure 112008077028231-PAT00154
를 INVITE와 200 OK 메시지에 포함된 RTP 주소 및 포트 번호를 이용하여 미디어 경로인 RTP 세션을 통해서 클라이언트(101) 로 전송한다.
312단계에서 서버(102)는 클라이언트(101)로부터 클라이언트(101)의 보안 마스터 키 확인 정보 값
Figure 112008077028231-PAT00155
가 수신되었는지 확인하여 수신되었으면 313단계로 진행하고, 그렇지 않으면 312단계에서 클라이언트(101)의 보안 마스터 키 확인 정보 값
Figure 112008077028231-PAT00156
이 수신되었는지 계속적으로 확인한다.
313단계에서 서버(102)는 하기의 <수학식 12>를 이용하여 클라이언트(101)의 보안 마스터 키 확인 정보 값
Figure 112008077028231-PAT00157
를 이용하여 클라이언트(101)가 생성한 보안 마스터 키
Figure 112008077028231-PAT00158
를 검증한다.
Figure 112008077028231-PAT00159
서버(102)는 보안 마스터 키를 생성하기 위해 필요한 공개 파라미터 값
Figure 112008077028231-PAT00160
Figure 112008077028231-PAT00161
를 이용하여 상기의 <수학식 12>과 같이 해쉬함수를 적용한 값이 클라이언트(101)로부터 수신된
Figure 112008077028231-PAT00162
와 동일한 값이 산출되는지 확인한다. 만약 동일한 값이 산출되면 서버(102)는 클라이언트(101)와 동일한 보안 마스터 키가 생성되었음을 인지한다.
검증 과정이 수행된 이후 서버(102)는 314단계에서 검증된 보안 마스터 키를 이용하여 클라이언트(101)와의 데이터 송수신을 수행한다.
이와 같이 서버(102)는 자신의 공개키를 분할하여 서로 다른 두 가지 경로로 전송함으로써 중간자의 공격이 이루어지더라도 중간자에게 공개키가 노출되지 않는다는 이점이 있다.
이처럼 본 발명은 사용자 단말 간의 공개 키 각각을 분할하여 교환함으로써 분할된 어느 하나의 공개 키가 중간자의 공격에 의해 교환되더라도 중간자가 다른 하나의 공개 키를 확인할 수 없기 때문에 단말 간의 키 교환이 가능하다는 이점이 있다.
도 1은 본 발명의 실시 예에 따른 키 교환 시스템에서 키 교환을 위한 전체 흐름도를 나타내는 도면,
도 2a는 본 발명의 실시 예에 따라 클라이언트가 공개 키를 분할하여 프록시 서버 및 서버로 전송하기 위한 과정을 나타내는 제어 흐름도,
도 2b는 본 발명의 실시 예에 따라 클라이언트가 서버로부터 수신된 서버의 제1 키 및 제2 키를 이용하여 공개키 생성 및 인증을 위한 과정을 나타내는 제어 흐름도,
도 3a는 본 발명의 실시 예에 따라 서버가 공개 키를 분할하여 프록시 서버 및 클라이언트로 전송하기 위한 과정을 나타내는 제어 흐름도,
도 3b는 본 발명의 실시 예에 따라 서버가 클라이언트로부터 수신된 클라이언트의 제1 키 및 제2 키를 이용하여 공개키 생성 및 인증을 위한 과정을 나타내는 제어 흐름도.

Claims (12)

  1. 키 교환 시스템에 있어서,
    제1 클라이언트와 제2 클라이언트와의 통신 경로를 설정하는 통신 서버와,
    상기 제2 클라이언트와 통신 경로를 설정하고, 자신의 제1 공개 키를 제1 키와 제2 키로 분할하여 상기 통신 서버를 통해서 상기 제1 키를 전송하고, 자신의 개인 키로 서명한 제1 공개 정보와 상기 제2 키를 상기 제2 클라이언트로 직접 전송하는 상기 제1 클라이언트와,
    상기 통신 서버를 통해서 상기 제1 키를 수신하고, 상기 제1 클라이언트로부터 상기 제2 키와 상기 제1 공개 정보를 수신하면 상기 제1 키와 상기 제2 키를 이용하여 상기 제1 공개 키와 동일한 제2 공개 키를 생성하고, 상기 제1 공개 정보와 상기 제2 공개 키를 인증하여 상기 인증이 완료되면 제1 보안 마스터 키를 생성하는 상기 제2 클라이언트를 포함하는 것을 특징으로 하는 키 교환 시스템.
  2. 제1항에 있어서,
    상기 제2 클라이언트는 자신의 제3 공개 키를 제3 키와 제4 키로 분할하고, 상기 통신 서버를 통해서 상기 제3 키를 전송하고, 자신의 개인 키로 서명한 제2 공개 정보와 상기 제4 키를 상기 제1 클라이언트로 직접 전송하고,
    상기 제1 클라이언트는 상기 서버를 통해서 상기 제3 키를 수신하고, 상기 제2 클라이언트로부터 상기 제4 키와 상기 제2 공개 정보가 수신되면 상기 제3 키 와 상기 제4 키를 이용하여 상기 제3 공개 키와 동일한 제4 공개 키를 생성하고, 상기 제2 공개 정보와 상기 제4 공개 키를 인증하여 상기 인증이 완료되면 제2 보안 마스터 키를 생성하는 것을 특징으로 하는 키 교환 시스템.
  3. 제2항에 있어서, 상기 제2 클라이언트는,
    상기 생성된 제1 보안 마스터 키와 상기 제2 공개 정보 및 상기 제1 공개 정보에 해쉬함수를 적용한 보안키 검증 값을 상기 제1 클라이언트로 전송하고, 상기 제1 클라이언트로부터 상기 제2 보안 마스터 키와 제1 공개 정보 및 상기 제2 공개 정보에 해쉬함수를 적용한 보안키 검증 값을 수신하여 상기 제2 보안 마스터 키를 검증하고, 상기 검증이 완료되면 상기 제1 클라이언트와 데이터를 송수신하는 것을 특징으로 하는 키 교환 시스템.
  4. 제1항에 있어서, 상기 제2 공개 키는,
    상기 제1 키와 상기 제2 키에 XOR 함수를 적용하여 생성되는 것을 특징으로 하는 키 교환 시스템.
  5. 제1항에 있어서, 상기 제1 클라이언트는,
    상기 제1 공개 키를 분할할 시 디피-헬만(Diffie-Hellman) 비밀 값을 생성하고, 상기 생성된 디피-헬만 비밀 값을 이용하여 디피-헬만 공개 정보를 산출한 후 상기 산출된 디피-헬만 공개 정보에 해쉬함수를 적용한 값을 상기 제2 키로 설정하 고, 상기 제1 공개 키와 상기 설정된 제2 키에 XOR(Exclusive OR) 함수를 적용한 값을 상기 제1 키로 설정하는 것을 특징으로 하는 키 교환 시스템.
  6. 제1항에 있어서, 상기 제2 클라이언트는,
    상기 제1 공개 정보와 상기 제2 공개 키를 인증할 시 상기 제1 공개 정보에 해쉬함수를 적용한 결과값이 상기 제2 키와 동일한지 여부를 판단하고, 상기 제2 공개 키가 상기 제1 공개 키 인지 여부를 판단하기 위해 상기 제2 공개 키를 이용하여 상기 제1 공개 정보를 인증하는 것을 특징으로 하는 키 교환 시스템.
  7. 제1 클라이언트, 상기 제1 클라이언트와 통신 경로가 설정된 제2 클라이언트, 상기 제1 클라이언트와 상기 제2 클라이언트와의 통신 경로가 설정된 통신 서버를 포함하는 키 교환 시스템에서 상기 제2 클라이언트가 상기 제1 클라이언트와 키를 교환하기 위한 방법에 있어서,
    상기 통신 서버를 통해서 상기 제1 클라이언트에 의해 제1 키와 제 2키로 분할된 제1 공개 키 중 상기 제1 키를 수신하고, 상기 제1 클라이언트의 개인 키로 서명된 제1 공개 정보와 상기 제2 키를 상기 제1 클라이언트로부터 수신하는 과정과,
    상기 제1 키와 상기 제2 키를 이용하여 상기 제1 공개 키와 동일한 제2 공개 키를 생성하는 과정과,
    상기 제1 공개 정보와 상기 제2 공개 키를 인증하는 과정과,
    상기 인증 과정이 완료되면 제1 보안 마스터 키를 생성하는 과정을 포함함을 특징으로 하는 키 교환 방법.
  8. 제7항에 있어서,
    상기 수신 과정 이전에 자신의 제3 공개 키를 제3 키와 제4 키로 분할하는 과정과,
    상기 통신 서버를 통해서 상기 제3 키를 전송하고, 자신의 개인 키로 서명한 제2 공개 정보와 상기 제4 키를 상기 제1 클라이언트로 직접 전송하는 과정을 더 포함함을 특징으로 하는 특징으로 하는 키 교환 방법.
  9. 제8항에 있어서, 상기 분할 과정은,
    디피-헬만(Diffie-Hellman) 비밀 값을 생성하는 과정과,
    상기 생성된 디피-헬만 비밀 값을 이용하여 디피-헬만 공개 정보를 산출하는 과정과,
    상기 산출된 디피-헬만 공개 정보에 해쉬함수를 적용한 값을 상기 제4 키로 설정하는 과정과,
    상기 제3 공개 키와 상기 설정된 제4 키에 XOR(Exclusive OR) 함수를 적용한 값을 상기 제3 키로 설정하는 과정을 포함함을 특징으로 하는 키 교환 방법.
  10. 제7항에 있어서, 상기 제2 공개 키는,
    상기 제1 키와 상기 제2 키에 XOR 함수를 적용하여 생성되는 것을 특징으로 하는 키 교환 방법.
  11. 제7항에 있어서, 상기 인증 과정은,
    상기 제1 공개 정보에 해쉬함수를 적용한 결과값이 상기 제2 키와 동일한지 여부를 판단하는 과정과,
    상기 제2 공개 키가 상기 제1 공개 키 인지 여부를 판단하기 위해 상기 제2 공개 키를 이용하여 상기 제1 공개 정보를 인증하는 과정을 포함함을 특징으로 하는 키 교환 방법.
  12. 제7항에 있어서,
    상기 생성 과정 이후에 상기 생성된 제1 보안 마스터 키와 상기 제2 공개 정보 및 상기 제1 공개 정보에 해쉬함수를 적용한 보안키 검증 값을 상기 제1 클라이언트로 전송하는 과정과,
    상기 제1 클라이언트로부터 상기 제1 클라이언트가 생성한 제2 보안 마스터 키와 상기 제1 공개 정보 및 상기 제2 공개 정보에 해쉬함수를 적용한 보안키 검증 값을 수신하는 과정과,
    상기 수신된 제2 보안 마스터 키를 검증하는 과정과,
    상기 검증 과정이 완료되면 상기 제1 클라이언트와 데이터를 송수신하는 과정을 더 포함함을 특징으로 하는 키 교환 방법.
KR1020080109944A 2008-11-06 2008-11-06 키 교환 시스템 및 방법 KR20100050846A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080109944A KR20100050846A (ko) 2008-11-06 2008-11-06 키 교환 시스템 및 방법
PCT/KR2009/006532 WO2010053319A2 (ko) 2008-11-06 2009-11-06 보안 키 교환 장치 및 방법과 이에 관한 시스템
US13/128,106 US8380992B2 (en) 2008-11-06 2009-11-06 Device and method for security key exchange and system pertaining to same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080109944A KR20100050846A (ko) 2008-11-06 2008-11-06 키 교환 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR20100050846A true KR20100050846A (ko) 2010-05-14

Family

ID=42153406

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080109944A KR20100050846A (ko) 2008-11-06 2008-11-06 키 교환 시스템 및 방법

Country Status (3)

Country Link
US (1) US8380992B2 (ko)
KR (1) KR20100050846A (ko)
WO (1) WO2010053319A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170035665A (ko) 2015-09-23 2017-03-31 삼성에스디에스 주식회사 키 교환 장치 및 방법
KR20220127587A (ko) * 2021-03-11 2022-09-20 한국전자통신연구원 기계 학습 기반 키 생성 장치 및 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012084484A1 (en) * 2010-12-21 2012-06-28 Koninklijke Kpn N.V. Operator-assisted key establishment
US10374799B2 (en) * 2011-04-13 2019-08-06 Nokia Technologies Oy Method and apparatus for identity based ticketing
US8601144B1 (en) * 2012-11-27 2013-12-03 Sansay, Inc. Systems and methods for automatic ICE relay candidate creation
EP3063970B1 (en) * 2013-10-30 2020-10-21 Nec Corporation Apparatus, system and method for secure direct communcation in proximity based services
US9240982B2 (en) 2013-12-27 2016-01-19 Canon Information And Imaging Solutions, Inc. Method for associating an image-forming device, a mobile device, and a user
KR102125562B1 (ko) * 2014-06-18 2020-06-22 삼성전자주식회사 키 공유 방법 및 장치
CN104102714A (zh) * 2014-07-16 2014-10-15 上海交通大学 基于累加器和布隆过滤器的外包数据查询验证方法及系统
WO2016116890A1 (en) * 2015-01-22 2016-07-28 Visa International Service Association Method and system for establishing a secure communication tunnel
KR102399665B1 (ko) * 2015-09-11 2022-05-19 삼성전자주식회사 전자 장치의 근접 인증 방법 및 그 장치
DE102016220734A1 (de) * 2016-10-21 2018-04-26 Robert Bosch Gmbh Verfahren und Vorrichtung zum Erzeugen eines kryptographischen Schlüssels
CN106941487B (zh) 2017-02-24 2021-01-05 创新先进技术有限公司 一种数据发送方法及装置
CN111342955B (zh) * 2018-12-19 2023-04-18 北京沃东天骏信息技术有限公司 一种通信方法及其设备、计算机存储介质
US11683380B2 (en) * 2021-02-09 2023-06-20 Cisco Technology, Inc. Methods for seamless session transfer without re-keying

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2369304A1 (en) * 2002-01-30 2003-07-30 Cloakware Corporation A protocol to hide cryptographic private keys
KR100720726B1 (ko) * 2003-10-09 2007-05-22 삼성전자주식회사 Rsa 알고리즘을 이용한 보안유지시스템 및 그 방법
US7660419B1 (en) * 2004-08-13 2010-02-09 Texas Instruments Incorporated System and method for security association between communication devices within a wireless personal and local area network
US7596697B2 (en) * 2005-02-14 2009-09-29 Tricipher, Inc. Technique for providing multiple levels of security
KR100872817B1 (ko) 2006-12-07 2008-12-09 인하대학교 산학협력단 변형 디피 헬만 기반 키교환 방법
KR20080084480A (ko) * 2007-03-16 2008-09-19 삼성전자주식회사 매개 모듈을 이용한 디바이스간의 상호 인증 방법 및 그시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170035665A (ko) 2015-09-23 2017-03-31 삼성에스디에스 주식회사 키 교환 장치 및 방법
KR20220127587A (ko) * 2021-03-11 2022-09-20 한국전자통신연구원 기계 학습 기반 키 생성 장치 및 방법

Also Published As

Publication number Publication date
US8380992B2 (en) 2013-02-19
WO2010053319A2 (ko) 2010-05-14
WO2010053319A3 (ko) 2010-07-29
US20110211700A1 (en) 2011-09-01

Similar Documents

Publication Publication Date Title
CN107948189B (zh) 非对称密码身份鉴别方法、装置、计算机设备及存储介质
US11108565B2 (en) Secure communications providing forward secrecy
KR20100050846A (ko) 키 교환 시스템 및 방법
CN106506470B (zh) 网络数据安全传输方法
CN110268676B (zh) 基于身份的自认证签名方案的私有密钥计算系统和方法
KR101394730B1 (ko) Id 기반 인증 키 동의 프로토콜을 수행하기 위한 방법 및 장치
US7366905B2 (en) Method and system for user generated keys and certificates
US20130191632A1 (en) System and method for securing private keys issued from distributed private key generator (d-pkg) nodes
US11870891B2 (en) Certificateless public key encryption using pairings
WO2009065356A1 (fr) Procédé, système et dispositif de réseau pour une authentification mutuelle
US20190356496A1 (en) Public Key Infrastructure &amp; Method of Distribution
CN104901935A (zh) 一种基于cpk的双向认证及数据交互安全保护方法
US7971234B1 (en) Method and apparatus for offline cryptographic key establishment
WO2019093963A1 (zh) 基于异构身份的交互系统及方法
CN115499250A (zh) 一种数据加密方法及装置
WO2022135391A1 (zh) 身份鉴别方法、装置、存储介质、程序、及程序产品
GB2543359A (en) Methods and apparatus for secure communication
Singh et al. Analysis of cryptographically replay attacks and its mitigation mechanism
Dugardin et al. A New Fair Identity Based Encryption Scheme
Jiang et al. An identity-based security mechanism for P2P VoIP
TWI761243B (zh) 群組即時通訊的加密系統和加密方法
WO2022135386A1 (zh) 一种身份鉴别方法和装置
KR20100082184A (ko) 암호화 인증 방법
CN115412252A (zh) 一种数据传输方法、传输发起端及传输接收端
CN114760034A (zh) 一种身份鉴别方法和装置

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid