KR101021708B1 - Group Key Distribution Method and Server and Client for Implementing the Same - Google Patents

Group Key Distribution Method and Server and Client for Implementing the Same Download PDF

Info

Publication number
KR101021708B1
KR101021708B1 KR1020090004700A KR20090004700A KR101021708B1 KR 101021708 B1 KR101021708 B1 KR 101021708B1 KR 1020090004700 A KR1020090004700 A KR 1020090004700A KR 20090004700 A KR20090004700 A KR 20090004700A KR 101021708 B1 KR101021708 B1 KR 101021708B1
Authority
KR
South Korea
Prior art keywords
random value
client
group key
group
server
Prior art date
Application number
KR1020090004700A
Other languages
Korean (ko)
Other versions
KR20100085424A (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 KR1020090004700A priority Critical patent/KR101021708B1/en
Publication of KR20100085424A publication Critical patent/KR20100085424A/en
Application granted granted Critical
Publication of KR101021708B1 publication Critical patent/KR101021708B1/en

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/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]
    • H04L9/0833Key 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] involving conference or group key
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 그룹키 분배 방법 및 이를 위한 서버 및 클라이언트에 관한 것으로, 제1 클라이언트는 제1 랜덤값 및 제2 랜덤값을 생성하고, 서버와 공유하는 비밀키를 암호화하여 서버로 전송하는 단계, 서버는 암호화된 값을 복호화하여 사용자 인증을 수행하는 단계, 서버는 서버 랜덤값을 생성하고 그룹에 속해있는 클라이언트들의 제1 랜덤값을 이용하여 그룹키를 생성하는 단계, 서버는 생성된 그룹키로부터 클라이언트들 별 그룹키 보안 메시지를 생성하여 각 클라이언트로 전송하는 단계 및 그룹에 속해 있는 각각의 클라이언트는 그룹키 보안 메시지를 이용하여 그룹키를 획득하는 단계를 포함하는 것을 특징으로 하는 그룹키 분배 방법 및 이를 위한 서버 및 클라이언트를 제공함으로써 안전하고 빠른 키 분배를 구현할 수 있다.

Figure R1020090004700

그룹키(Group Key), 해쉬 함수(Hash Funtion), PRF 함수(Pseudo Random Function)

The present invention relates to a group key distribution method, and a server and a client therefor, wherein the first client generates a first random value and a second random value, encrypts a secret key shared with the server, and transmits the secret key to the server. Decrypting the encrypted value to perform user authentication, the server generates a server random value and generates a group key using the first random value of the clients belonging to the group, the server from the generated group key Generating a group key security message for each group and transmitting the group key security message to each client; and each client belonging to the group obtains the group key using the group key security message. Secure and fast key distribution can be achieved by providing servers and clients.

Figure R1020090004700

Group Key, Hash Funtion, PRF Function (Pseudo Random Function)

Description

그룹키 분배 방법 및 이를 위한 서버 및 클라이언트{Group Key Distribution Method and Server and Client for Implementing the Same}Group Key Distribution Method and Server and Client for Implementing the Same}

본 발명은 그룹키 분배 방법 및 이를 위한 서버 및 클라이언트에 관한 것이다.The present invention relates to a group key distribution method and a server and a client therefor.

최근 네트워크 기술이 발전함에 따라 VoIP(Voice over Internet Protocol), IP-TV(Internet Protocol Television) 등 인터넷을 기반으로 하는 다양한 서비스들이 등장하였다. VoIP는 기존 인터넷 망을 활용함으로써 저렴한 비용의 전화 서비스가 가능하기 때문에 기존 PSTN(Public Switched Telephone Network) 기반의 전화를 대체할 새로운 서비스로 기재되고 있다. IP-TV는 기존의 방송 시스템과 달리 서비스 제공자와 사용자가 상호 작용함으로써 양방향 서비스를 제공할 수 있다. 이러한 양방향 통신은 사용자에 따라 차별화된 서비스를 제공한다.Recently, with the development of network technology, various services based on the Internet, such as Voice over Internet Protocol (VoIP) and Internet Protocol Television (IP-TV), have emerged. VoIP is being described as a new service to replace existing public switched telephone network (PSTN) based telephones because low-cost telephone service is available by utilizing the existing Internet network. Unlike conventional broadcasting systems, IP-TV can provide interactive services by interacting with service providers and users. This bidirectional communication provides a differentiated service according to the user.

한편 VoIP 및 IP-TV 서비스는 모두 오픈 네트워크인 인터넷을 기반으로 제공되기 때문에 각종 위협에 노출되어 있다. 예를 들어, VoIP의 경우 통화 주체들 외 의 다른 사용자들이 통화 내용을 도청할 수 없도록 통화 내용을 안전하게 보호해야 한다. 특히, 다자간 통화나 화상 회의의 경우 여러 사용자들이 통화에 참석할 수 있기 때문에 권한이 없는 사용자가 통화에 참여하거나 통화 내용을 도청할 수 없도록 접근 제어를 수행하여야 한다. Meanwhile, both VoIP and IP-TV services are exposed to various threats because they are provided based on the open network, the Internet. For example, VoIP requires that the content of a call be secured so that no one other than the call parties can eavesdrop on the call. In particular, in the case of a multi-party call or a video conference, the access control may be performed such that an unauthorized user cannot join the call or eavesdrop on the call because many users can attend the call.

IP-TV의 경우, 서비스 제공자는 과금 처리가 완료된 합법적인 사용자만이 서비스를 수신할 수 있도록 하는 접근 제어를 필요로 한다. 즉, 합법적인 사용자들만이 공통으로 알고 있는 그룹키를 이용하여 컨텐츠를 암호화 함으로써 컨텐츠를 보호할 수 있다. 이 경우, 그룹키의 효율적인 재분배 문제를 해결해야 한다. 예를 들어, 과금 기간이 만료되거나, 혹은 가입 해지를 함으로써 더 이상 컨텐츠의 수신 권한이 없는 사용자가 발생할 경우, 서비스 제공자는 해당 사용자가 더 이상 컨텐츠를 수신할 수 없도록 기존의 그룹키를 갱신해야 하며, 갱신된 그룹키를 합법적인 사용자들에게 다시 전송해야 한다. In the case of IP-TV, the service provider needs access control to ensure that only legitimate users who have completed the billing process can receive the service. That is, the content can be protected by encrypting the content using a group key that only legitimate users know in common. In this case, the problem of efficient redistribution of group keys must be solved. For example, if the billing period expires or a user who no longer has the right to receive the content by canceling the subscription, the service provider must renew the existing group key so that the user can no longer receive the content. In addition, the updated group key must be sent back to legitimate users.

단말에게 그룹키를 분배하기 위한 방식에는, 키 전달 프로토콜과 키 동의 프로토콜이 존재한다. 키 전달 프로토콜은, 키 관리 서버가 그룹키를 생성 및 전달하는 방식을 의미한다. 키 동의 프로토콜은, 키 관리 서버 없이 단말들이 메시지를 송수신하여 그룹키를 공유하게 되는 방식을 의미한다. 우리는 기존에 연구된 키 전달 프로토콜과 키 동의 프로토콜을 분석하였고, 그 설명은 다음과 같다.In a scheme for distributing group keys to a terminal, a key transfer protocol and a key agreement protocol exist. The key delivery protocol refers to a method in which a key management server generates and delivers a group key. The key agreement protocol refers to a method in which terminals share a group key by sending and receiving a message without a key management server. We analyzed the key transfer protocol and the key agreement protocol that have been studied previously. The explanation is as follows.

1. 키 동의 프로토콜1. Key agreement protocol

셔먼(Sherman) 등은 머클 트리(Merkle Tree)를 이용한 그룹키 분배 프로토콜인 One-way Function Trees(OFT)를 제안하였다. OFT의 뿌리 노드(Root Node)는 그 룹키를 의미하고, 종단 노드(Leaf Node)는 단말과 키 관리 서버가 공유하는 비밀 값을 의미한다. 단말은 그룹키를 획득하기 위해, 먼저 종단 노드에 해당하는 비밀 값을 해쉬 함수로 연산한 값과, 형제 노드(Sibling Node)에 해당하는 비밀 값을 해쉬 함수로 연산한 값을 XOR 함으로써, 부모 노드(Parent Node)를 갖게 된다. 그리고 이 부모 노드에 대해서도 위와 같은 과정을 거쳐, 궁극적으로 그룹키인 뿌리 노드가 계산된다. OFT는, 단말의 가입이나 탈퇴가 발생할 때마다, 대칭 키 기반 암호화 알고리즘과 해쉬 함수를 각각 log2(n+1) 씩 수행해야 한다.Sherman et al. Proposed One-way Function Trees (OFT), a group key distribution protocol using Merkle Tree. The root node of the OFT means a group key, and the end node means a secret value shared between the terminal and the key management server. In order to obtain a group key, the terminal first performs a XOR operation on a secret value corresponding to an end node using a hash function and a value computed on a secret value corresponding to a sibling node using a hash function. You have a Parent Node. The parent node, which is the group key, is ultimately calculated through the above process. The OFT should perform log2 (n + 1) for each symmetric key-based encryption algorithm and hash function each time subscription or withdrawal of the terminal occurs.

Jung은 연산 자원이 제한된 단말들이 효율적으로 그룹키를 공유하기 위한 키 동의 프로토콜을 제안하였다. Jung의 프로토콜은 디피-헬만 (Diffie-Hellman) 기반의 그룹키 동의 방식을 사용하고 있으며, XOR, 해쉬 등 가벼운 연산만으로 구현이 가능하다. 그러나 Lee 등은 Jung의 프로토콜에 보안 취약점이 존재한다는 사실을 증명하였다. Lee 등에 따르면, Jung의 프로토콜은 내부 공격자에 의한 서비스 거부 공격이 발생할 수 있다.Jung proposed a key agreement protocol for efficient sharing of group keys among terminals with limited computational resources. Jung's protocol uses Diffie-Hellman-based group key agreement, and can be implemented with only light calculations such as XOR and hash. However, Lee et al. Proved that a security vulnerability exists in Jung's protocol. According to Lee et al., Jung's protocol can cause denial of service attacks by internal attackers.

2. 키 전달 프로토콜2. Key Delivery Protocol

Dondeti 등은 그룹의 계층 구조에 기반하여 그룹키를 분배하는 Dual-Encryption Protocol(DEP)을 제안하였다. 이 연구에 의하면, 그룹키를 효율적으로 갱신하기 위해서는, 하나의 그룹을 다수 개의 서브 그룹으로 분할해야 하며, 각 서브 그룹의 그룹키를 관리하는 서브 그룹 매니저가 존재해야 한다. 또한, 서브 그룹 매니저가 메시지를 수신할 권한이 없는 경우, 서브 그룹 매니저의 접근을 제한하기 위해 키 서버는 그룹 가입자에게만 알려진 그룹키를 이용하여 메시지를 암호화 한다. DEP는 서브 그룹 매니저의 접근 제어가 필요한 상황에는 적합하지만, 그렇지 않은 경우에는 불필요한 암호화에 의한 오버헤드가 발생한다.Dondeti et al. Proposed the Dual-Encryption Protocol (DEP), which distributes group keys based on group hierarchy. According to this study, in order to efficiently update a group key, one group must be divided into a plurality of subgroups, and a subgroup manager for managing the group keys of each subgroup must exist. In addition, when the subgroup manager is not authorized to receive the message, the key server encrypts the message using a group key known only to the group subscribers in order to restrict access of the subgroup manager. DEP is suitable for situations where access control of the subgroup manager is required, but otherwise, unnecessary encryption overhead occurs.

Sun 등은 Pay-TV에 적합한 새로운 CAS를 제안하였다. 그들은 그룹키 전달에 사용되는 모든 값들을 사전에 오프라인으로 전달하는 방식을 사용하였다. 즉, 저자들은 단말마다 저장해야 하는 정보를 늘리는 대신, 전송 오버헤드를 감소시키는 그룹키 분배 프로토콜을 제안하였다. 시스템에 존재하는 모든 단말 Ci (1≤i≤n)에는 각 단말과 관련된 고유 정보 Ii (1≤i≤n)가 있으며, Ii는 Ci를 제외한 나머지 n-1개의 단말들이 모두 알고 있는 값이다. 만약 단말 Ci가 탈퇴하면, 나머지 n-1개의 단말들은 Ii를 기존 키에 XOR 함으로써 새로운 키를 획득하게 된다. 따라서, 탈퇴한 단말은 갱신된 키를 알 수 없고, 탈퇴한 단말을 제외한 모든 단말은 갱신된 키를 알 수 있다.Sun et al. Proposed a new CAS suitable for Pay-TV. They used a way to pass offline all the values used for group key propagation. That is, the authors proposed a group key distribution protocol that reduces the transmission overhead instead of increasing the information to be stored for each terminal. Every terminal Ci (1 ≦ i ≦ n) existing in the system has unique information Ii (1 ≦ i ≦ n) associated with each terminal, and Ii is a value known to all n-1 terminals except Ci. If the terminal Ci withdraws, the remaining n-1 terminals obtain a new key by XORing Ii to the existing key. Accordingly, the withdrawn terminal cannot know the updated key, and all terminals except the withdrawn terminal can know the updated key.

그러나 이상에서 설명한 프로토콜 또는 접근 제어에 따라 통화 내용에 대한 암호화를 수행하게 되면, 통화 내용의 송수신에 지연이 발생할 수 있으며, 이는 통화의 품질을 떨어뜨리는 원인이 된다. 다자간 통화나 화상 회의의 경우에는 통화 주체가 셋 이상이 될 수 있기 보안에 소요되는 오버헤드가 일반 통화에 비해 더욱 클 수밖에 없다. 따라서 다자간 통화 및 화상 회의의 경우는 1:1 통화에 비해 통화 품질의 저하를 최소화시키면서 통화 내용을 안전하게 보호할 수 있는 방법이 더욱 절실히 요구된다.However, if the encryption of the contents of the call is performed according to the protocol or the access control described above, a delay may occur in the transmission and reception of the contents of the call, which causes a decrease in the quality of the call. In the case of multi-party calls or video conferencing, there may be more than three call subjects, so security overhead is inevitably higher than that of general calls. Therefore, in the case of multi-party call and video conferencing, there is an urgent need for a method to safely protect the call content while minimizing the degradation of call quality compared to 1: 1 call.

따라서 본 발명은 상기한 종래 기술에 따른 문제점을 해결하기 위한 것으로, Pseudo Random Function과 XOR 연산과 같이 매우 빠른 연산만을 이용하고, Pseudo Random Function의 반복 사용에 의해 발생할 수 있는 전방향 안전성 문제를 XOR 연산을 통해 극복한 안전하고 효율적인 그룹키 분배 방법 및 이를 구현하기 위한 서버 및 클라이언트의 제공을 그 목적으로 한다.Therefore, the present invention is to solve the problems according to the prior art, using only very fast operation, such as Pseudo Random Function and XOR operation, XOR operation of the omnidirectional safety problem that can occur by repeated use of Pseudo Random Function The purpose of the present invention is to provide a secure and efficient method for distributing group keys and to provide a server and a client for implementing the same.

본 발명의 일 측면에 따른 그룹키 분배 방법은 제1 클라이언트는 제1 랜덤값 및 제2 랜덤값을 생성하고, 상기 제1 랜덤값, 제2 랜덤값 및 서버와 상기 제1 클라이언트가 공유하는 비밀키를 암호화하여 서버로 전송하는 단계; 상기 서버는 상기 암호화된 값을 복호화하여 상기 제1 랜덤값, 제2 랜덤값 및 비밀키 정보를 획득하는 단계; 상기 서버는 서버 랜덤값을 생성하고, 상기 서버 랜덤값과 상기 그룹에 속해있는 적어도 하나 이상의 클라이언트들의 제1 랜덤값을 이용하여 그룹키를 생성하는 단계; 상기 서버는 상기 생성된 그룹키로부터 상기 그룹에 속해있는 적어도 하나 클라이언트들 별 그룹키 보안 메시지를 생성하고 이를 그룹에 속해 있는 각각의 클라이언트로 전송하는 단계; 및 상기 그룹에 속해 있는 각각의 클라이언트는 자신의 제1 랜덤값, 제2 랜덤값 및 상기 그룹키 보안 메시지를 이용하여 그룹키를 획득하는 단계를 포함한다.In a group key distribution method according to an aspect of the present invention, a first client generates a first random value and a second random value, and the first random value, the second random value, and a secret shared by a server and the first client. Encrypting the key and transmitting it to the server; The server decrypting the encrypted value to obtain the first random value, the second random value, and the secret key information; Generating a server random value and generating a group key using the server random value and a first random value of at least one or more clients belonging to the group; Generating, by the server, a group key security message for at least one client belonging to the group from the generated group key and transmitting the group key security message to each client belonging to the group; And each client belonging to the group obtains a group key using its first random value, a second random value, and the group key security message.

이 경우 상기 제1 클라이언트가 상기 그룹에서 탈퇴한 경우, 상기 서버는 새로운 서버 랜덤값을 생성하고, 상기 서버 랜덤값과 상기 그룹에 남아있는 적어도 하나 이상의 클라이언트 별 제1 랜덤값을 이용하여 새로운 그룹키를 생성하는 단계; 상기 서버는 상기 새롭게 생성된 그룹키를 이용하여 상기 그룹에 남아있는 적어도 하나 이상의 클라이언트 별로 그룹키 보안 메시지를 생성하여, 각각의 클라이언트로 전송하는 단계; 및 상기 그룹에 남아있는 적어도 하나 이상의 클라이언트들은 상기 그룹키 보안 메시지로부터 새롭게 생성된 그룹키를 추출하는 단계를 더 포함할 수 있다.In this case, when the first client leaves the group, the server generates a new server random value and uses the server random value and at least one first random value for each client remaining in the group to generate a new group key. Generating a; Generating, by the server, a group key security message for each of at least one client remaining in the group by using the newly generated group key, and transmitting the generated group key security message to each client; And at least one client remaining in the group may further extract a newly generated group key from the group key security message.

상기 제1 클라이언트가 비밀키 정보를 암호화하는 단계는, 상기 제1 랜덤값, 제2 랜덤값 및 및 서버와 제1 클라이언트가 공유하는 비밀키를 상기 비밀키를 이용하여 암호화하는 것을 특징으로 할 수 있다.The encrypting the secret key information by the first client may encrypt the first random value, the second random value, and a secret key shared by the server and the first client using the secret key. have.

본 발명에 따른 그룹키 분배 방법에는 상기 복호화하여 획득한 상기 제1 랜덤값, 제2 랜덤값 및 비밀키 정보를 이용하여 상기 제1 클라이언트의 인증을 수행하는 단계가 더 포함될 수 있다.The group key distribution method according to the present invention may further include the step of performing authentication of the first client by using the first random value, the second random value, and the secret key information obtained by decoding.

상기 서버가 제1 클라이언트의 인증을 수행하는 단계는, 상기 복호화하여 획득한 비밀키와 상기 서버가 가지고 있던 제1 클라이언트의 비밀키 정보를 비교함으로써 상기 제1 클라이언트의 인증을 수행하는 것을 특징으로 할 수 있다.In the server performing the authentication of the first client, the first client may be authenticated by comparing the decrypted private key with the private key information of the first client. Can be.

상기 서버 랜덤값과 상기 그룹에 속해있는 적어도 하나 이상의 클라이언트들의 제1 랜덤값을 이용하여 그룹키를 생성하는 단계는, 상기 서버 랜덤값과 상기 그룹에 속해있는 적어도 하나 이상의 클라이언트들의 제1 랜덤값을 XOR 연산하여 그 룹키를 생성하는 것을 특징으로 할 수 있다.Generating a group key using the server random value and a first random value of at least one or more clients belonging to the group may include generating the server random value and a first random value of at least one or more clients belonging to the group. The group key may be generated by performing an XOR operation.

상기 서버가 그룹키 보안 메시지를 생성하는 단계는, 상기 생성된 그룹키, 클라이언트 별 제1 랜덤값 및 클라이언트별 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값을 XOR 연산하여 상기 그룹키 보안 메시지를 생성하는 것을 특징으로 할 수 있다.The generating of the group key security message by the server may include performing an XOR operation on the generated group key, a first random value for each client, and a second random value for each client by a predetermined number of times to perform an XOR operation on the group key security message. It may be characterized by generating a message.

상기 서버는 클라이언트별 제2 랜덤값을, 상기 클라이언트별 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값으로 업데이트하는 것을 특징으로 할 수 있다. 상기 클라이언트는 상기 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값, 상기 클라이언트의 제1 랜덤값 및 그룹키 보안 메시지를 XOR 연산함으로써 그룹키를 획득하는 것을 특징으로 할 수 있다. 상기 클라이언트는 자신이 가지고 있는 제2 랜덤값을, 상기 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값으로 업데이트하는 것을 특징으로 할 수 있다.The server may update the second random value for each client to a value applied to the one-way function by a predetermined number of times. The client may obtain a group key by XORing a value obtained by applying the second random value to a one-way function by a predetermined number of times, the first random value of the client, and a group key security message. The client may update the second random value of the client to a value applied to the one-way function by a predetermined number of times.

본 발명의 다른 측면에 따른 그룹키 분배를 위한 서버는 클라이언트로부터 전달되는 암호화 메시지를 복호화하여 제1 랜덤값, 제2 랜덤값 및 비밀키를 획득하는 복호화부; 서버의 제1 랜덤값을 생성하고, 상기 서버의 제1 랜덤값과 그룹에 속하는 적어도 하나 이상의 클라이언트 별 제1 랜덤값을 이용하여 그룹키를 생성하는 그룹키 생성부; 및 상기 생성된 그룹키로부터 상기 그룹에 속하는 클라이언트 별로 그룹키 보안 메시지를 생성하여 이를 각각의 클라이언트로 전송하도록 하는 그룹키 보안 메시지 생성부를 포함한다.According to another aspect of the present invention, a server for group key distribution includes a decryption unit for decrypting an encrypted message transmitted from a client to obtain a first random value, a second random value, and a secret key; A group key generation unit generating a first random value of a server and generating a group key by using the first random value of the server and a first random value of at least one client belonging to a group; And a group key security message generation unit for generating a group key security message for each client belonging to the group from the generated group key and transmitting the group key security message to each client.

이 경우 상기 복호화부는, 상기 암호화 메시지를 전달한 클라이언트와 공유하고 있던 비밀키를 이용하여 상기 암호화 메시지를 복호화하는 것을 특징으로 할 수 있다.In this case, the decryption unit may decrypt the encrypted message by using a secret key shared with the client that delivered the encrypted message.

본 발명에 따른 서버는 상기 복호화부가 획득한 비밀키를 이용하여 클라이언트의 인증을 수행하고, 인증이 수행한 경우 상기 그룹키 생성부로 하여금 그룹키를 생성토록 제어하는 사용자 인증부를 더 포함할 수 있다.The server according to the present invention may further include a user authentication unit which performs authentication of a client using the secret key obtained by the decryption unit, and controls the group key generation unit to generate a group key when authentication is performed.

상기 그룹키 생성부는, 상기 서버의 제1 랜덤값과 그룹에 속한 적어도 하나 이상의 클라이언트 별 제1 랜덤값을 XOR 연산하여 그룹키를 생성하는 것을 특징으로 할 수 있다.The group key generation unit may generate a group key by performing an XOR operation on a first random value of the server and a first random value of at least one client belonging to a group.

본 발명에 따른 서버는 그룹에 속한 적어도 하나 이상의 클라이언트 별 제1 랜덤값, 제2 랜덤값 및 비밀키를 저장하기 위한 암호 저장부를 더 포함할 수 있다.The server according to the present invention may further include a cryptographic storage for storing a first random value, a second random value, and a secret key for at least one or more clients belonging to the group.

이 경우 상기 그룹키 보안 메시지 생성부는, 상기 생성된 그룹키, 클라이언트별 제1 랜덤값 및 제2 랜덤값을 이용하여 클라이언트별 그룹키 보안 메시지를 생성하는 것이 바람직하다.In this case, the group key security message generation unit may generate a group key security message for each client by using the generated group key, a first random value for each client, and a second random value.

또한 그룹키 보안 메시지 생성부는, 클라이언트 별 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값, 클라이언트 별 제1 랜덤값 및 상기 생성된 그룹키를 XOR 연산하여 클라이언트 별 그룹키 보안 메시지를 생성하는 것을 특징으로 할 수 있다. 상기 일방향 함수는, 해쉬 함수(Hash Function) 또는 의사 난수 함수(Pseudo Random Function)일 수 있다.The group key security message generation unit may generate a group key security message for each client by performing an XOR operation on a value obtained by applying a second random value for each client to a one-way function a predetermined number of times, the first random value for each client, and the generated group key. It may be characterized by. The one-way function may be a hash function or a pseudo random function.

상기 그룹키 생성부는 클라이언트로부터 그룹 탈퇴 요청을 수신한 경우, 새 로운 서버의 제1 랜덤값을 생성하여, 상기 새로운 서버의 제1 랜덤값과 그룹에 남아있는 클라이언트 별 제1 랜덤값을 이용하여 새로운 그룹키를 생성하고, 상기 그룹키 보안 메시지 생성부는 상기 새롭게 생성된 그룹키로부터 상기 그룹에 남아있는 클라이언트 별 그룹키 보안 메시지를 생성하여 각각의 클라이언트로 전송하토록 하는 것을 특징으로 할 수 있다.When the group key generation unit receives a group leave request from a client, the group key generation unit generates a first random value of a new server, and generates a new random value using the first random value of the new server and the first random value of each client remaining in the group. A group key may be generated, and the group key security message generation unit may generate a group key security message for each client remaining in the group from the newly generated group key and transmit the generated group key security message to each client.

상기 그룹키 보안 메시지 생성부는, 상기 클라이언트 별 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값을 다시 기설정된 횟수만큼 일방향 함수에 적용한 값, 클라이언트별 제1 랜덤값 및 상기 새롭게 생성된 그룹키를 XOR 연산하여 클라이언트별 그룹키 보안 메시지를 생성할 수 있다.The group key security message generation unit may further include a value obtained by applying the second random value for each client to the one-way function by a predetermined number of times, the first random value for each client, and the newly generated group key. XOR operation can generate a client-specific group key security message.

본 발명의 또 다른 측면에 따른 클라이언트는 제1 랜덤값과 제2 랜덤값을 생성하는 랜덤값 생성부; 상기 제1 랜덤값과 제2 랜덤값 및 서버와 공유하고 있는 비밀키를 암호화하고 상기 암호화된 메시지를 서버로 전송케 하는 암호화부; 및 서버로부터 그룹키가 암호화된 그룹키 보안 메시지를 수신하고 이를 복호화하여 그룹키를 획득하는 그룹키 보안 메시지 복호화부를 포함한다.According to another aspect of the present invention, a client includes: a random value generator configured to generate a first random value and a second random value; An encryption unit for encrypting the first random value and the second random value and a secret key shared with the server, and transmitting the encrypted message to a server; And a group key security message decryption unit that receives a group key security message encrypted with a group key from a server and decrypts the group key security message to obtain a group key.

상기 암호화부는, 상기 제1 랜덤값과, 제2 랜덤값 및 서버와 공유하고 있는 비밀키를 상기 비밀키를 이용하여 암호화하는 것을 특징으로 할 수 있다.The encryption unit may encrypt the first random value, the second random value, and a secret key shared with the server using the secret key.

본 발명에 따른 클라이언트는 상기 제1 랜덤값, 제2 랜덤값 및 비밀키를 저장하기 위한 암호 저장부를 더 포함할 수 있다.The client according to the present invention may further include an encryption storage unit for storing the first random value, the second random value and the secret key.

상기 그룹키 보안 메시지 복호화부는, 상기 암호 저장부에 포함되어 있는 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값, 제1 랜덤값 및 그룹키 보안 메시지를 이용하여 그룹키를 획득하는 것을 특징으로 할 수 있다.The group key security message decryption unit obtains the group key using a value obtained by applying a second random value included in the cryptographic storage unit to the one-way function a predetermined number of times, the first random value, and the group key security message. You can do

상기 그룹키 보안 메시지 복호화부는, 상기 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값, 고정 랜덤 값 및 그룹키 보안 메시지를 XOR 연산함으로써 그룹키를 획득하는 것을 특징으로 할 수 있다.The group key security message decryption unit may obtain a group key by XORing a value obtained by applying the second random value to a one-way function a predetermined number of times, a fixed random value, and a group key security message.

상기 그룹키 보안 메시지 복호화부는, 상기 암호 저장부에 저장된 제2 랜덤값을, 상기 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값으로 업데이트하는 것을 특징으로 할 수 있다.The group key security message decryption unit may update a second random value stored in the cryptographic storage unit with a value applied to the one-way function by the predetermined number of times.

상기한 바와 같이 본 발명에 따른 그룹키 분배 방법 및 이를 위한 서버 및 클라이언트를 이용하는 경우 PRF(Pseudo Random Function) 및 XOR(eXclusive) 연산만을 이용하므로 매우 빠른 연산이 가능하다. 특히 단말 측에서는 그룹 내 가입자의 수와 관계없이 PRF 연산 1회와 XOR 연산 2회만으로 그룹키의 갱신이 가능케 된다. 뿐만 아니라, 이 연산들 중 PRF 1회와 XOR 1회는 그룹키 갱신 과정에서 이루어질 필요가 없으며 미리 연산이 가능하므로(Pre-Computable) 보다 빠른 그룹키 갱신이 가능하게 된다.As described above, when the group key distribution method according to the present invention and a server and a client therefor are used, only a PRF (Pseudo Random Function) and an XOR (eXclusive) operation are used, and thus a very fast operation is possible. In particular, the terminal side can update the group key with only one PRF operation and two XOR operations regardless of the number of subscribers in the group. In addition, one PRF and one XOR of these operations need not be performed in the group key update process and can be performed in advance (Pre-Computable), thereby enabling faster group key update.

본 발명은 PRF를 이용하여 내부 및 외부 공격자에 의한 키의 노출을 차단하였으며, 반복적인 PRF의 사용시 발생할 수 있는 전방향 안전성의 문제도 PRF와 함께 XOR을 사용함으로써 극복할 수 있다.The present invention blocks the exposure of keys by internal and external attackers using the PRF, and the problem of omnidirectional security that may occur when using the repeated PRF can be overcome by using the XOR together with the PRF.

또한, PRF 및 XOR과 같이 가벼운 연산만을 사용함으로써 단말의 배터리 소모량도 최소화하였고, 단말에서 저장해야 하는 정보의 크기도 매우 작기 때문에 단말의 실제 구현에 소요되는 비용도 매우 적다는 효과를 얻을 수 있다.In addition, by using only light calculations such as PRF and XOR, the battery consumption of the terminal is minimized, and since the size of information to be stored in the terminal is very small, the cost required for the actual implementation of the terminal can be obtained.

이하, 본 발명에 따른 그룹키 분배 방법 및 이를 위한 서버 및 클라이언트에 대하여 첨부된 도면을 참조하여 상세히 설명한다.Hereinafter, a method for distributing a group key according to the present invention, a server and a client therefor will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 단말이 그룹 가입 또는 그룹 탈퇴하는 상황을 나타낸 도면이다.1 is a diagram illustrating a situation in which a terminal joins or leaves a group according to an embodiment of the present invention.

도 1에 도시된 바와 그룹(1)은 IP TV 그룹, VoIP 통화 그룹, 화상 회의 그룹 등 다양한 그룹을 의미한다. 본 발명은 기재된 그룹에만 적용되는 것이 아니며, 그룹키를 이용하여 그룹에 속한 클라이언트를 인증하는 그룹에는 모두 적용이 가능하다.As shown in FIG. 1, group 1 refers to various groups such as an IP TV group, a VoIP call group, a video conference group, and the like. The present invention is not only applied to the described group, but can be applied to any group that authenticates clients belonging to the group using the group key.

도 1에 도시된 그룹(1)에는 현재 ID가 1 내지 n의 값을 가지는 클라이언트(20)와 상기 그룹(1)에 속한 클라이언트(20)를 관리하고 상기 클라이언트(20)에게 서비스를 제공하는 서버(10)가 존재한다. 여기서, n은 현재 그룹에 존재하는 클라이언트의 수를 나타낸다. n이 100이면 상기 그룹에는 100개의 단말이 존재하는 것이다.In the group 1 shown in FIG. 1, a server for managing a client 20 having a current ID of 1 to n and a client 20 belonging to the group 1 and providing a service to the client 20 is provided. (10) is present. Where n represents the number of clients currently in the group. If n is 100, there are 100 terminals in the group.

이와 같이 구성된 상태에서 클라이언트 Cp(30)가 가입을 하는 이벤트가 발생할 수 있다(① 과정). 또한, 그룹(1)에 가입되어 서비스를 제공받던 클라이언트 CP(40)가 그룹(1)으로부터 탈퇴하는 이벤트가 발생할 수도 있다(② 과정).In this configuration, the event that the client C p 30 joins may occur (① process). In addition, the client C P (40) batdeon joined to group (1) providing a service may be an event occurs to withdraw from group (1) (process ②).

이와 같이 새롭게 클라이언트(Cp)가 새롭게 가입을 하거나, 그룹에 속해있던 클라이언트(CP)가 탈퇴를 하게 되는 경우 서버(10)는 사용하고 있던 그룹키를 갱신하고 이를 그룹에 가입되어 있는 상태인 클라이언트에게 전달하게 된다. In this way, when a client C p newly joins or a client C P who has belonged to a group is withdrawn, the server 10 renews a group key that is in use and is in a state of being subscribed to the group. To the client.

이하, 본 발명에 따른 그룹키 분배 과정에 대하여 살펴보기로 한다.Hereinafter, a group key distribution process according to the present invention will be described.

도 2는 본 발명의 다른 실시예에 따른 클라이언트의 그룹 가입 시 그룹키 분배 방법을 나타낸 도면이다.2 is a diagram illustrating a group key distribution method when a client joins a group according to another embodiment of the present invention.

먼저 클라이언트 Cp(30)는 도 1에 도시된 그룹(1)에 가입을 시도하게 된다(S201). 사용자 인증과 그에 따른 그룹키 생성을 위하여 클라이언트 Cp(30)는 제1 랜덤값(Rp)과 제2 랜덤값(Kp)을 생성한다(S202). 이 때 제1 랜덤값(Rp)과 제2 랜덤값(Kp)은 아래 식과 같이 생성될 수 있다.First, the client C p 30 attempts to join the group 1 shown in FIG. 1 (S201). The client C p 30 generates a first random value R p and a second random value K p to authenticate the user and generate the group key accordingly (S202). In this case, the first random value R p and the second random value K p may be generated as follows.

Rp ← {0, 1}a, Kp ← {0, 1}a R p ← {0, 1} a , K p ← {0, 1} a

제1 랜덤값(Rp)과 제2 랜덤값(Kp)을 생성한 후 클라이언트 Cp(30)는 서버(10) 와 공유하고 있는 비밀키인 PKp을 이용하여 제1 랜덤값(Rp), 제2 랜덤값(Kp) 및 비밀키(PKp)를 암호화한다(S203). S203 단계에서 암호화되어 생성되는 메시지를 Xp이라고 정의하며, 이는 Xp ← EPKp(PKp∥Rp∥Kp)와 같이 정의될 수 있다.After generating the first random value R p and the second random value K p , the client C p 30 uses the PK p , the secret key shared with the server 10, to generate the first random value R p . p ), the second random value K p and the secret key PK p are encrypted (S203). The encrypted message is generated in step S203, and is defined as X p, which can be defined as X p ← E PKp (PK p ∥R p ∥K p).

이와 같이 PKp를 이용하여 PKp를 암호화하는 기법, 즉 Self-Encryption 기법은 비밀정보의 노출을 최소화하면서 동시에 사용자 인증을 가능하게 하는 기법으로, Challenge-Response 기법에서 사용되는 넌스(nonce), 타임스탬프(Timestamp)의 전송이 불필요하기 때문에 효율적인 인증을 가능하게 한다.As such techniques for encoding the PK p using the PK p, i.e. Self-Encryption techniques are a technique for enabling a user authenticated at the same time, minimizing the exposure of the secret information, nonce (nonce) used in the Challenge-Response Method, time Since the transmission of the timestamp is unnecessary, efficient authentication is possible.

그러나 Self-Encryption은 재전송 공격에 취약하다는 단점이 있다. 본 발명에서는 그룹키 분배에 사용되는 랜덤값을 Self-Encryption의 입력값에 포함시킴으로써 Self-Encryption에서 발생하게 되는 재전송 공격 문제를 해결한다. 또한, Self-Encryption을 사용함으로써 비밀정보의 노출을 최소화하는 동시에 불필요한 전송값을 최소화하고, 사용자 인증을 가능하게 한다.However, Self-Encryption has the disadvantage of being vulnerable to replay attacks. The present invention solves the problem of retransmission attack that occurs in Self-Encryption by including a random value used for group key distribution in the input value of Self-Encryption. In addition, Self-Encryption minimizes the exposure of confidential information, minimizes unnecessary transmission values, and enables user authentication.

S203 단계에서 사용되는 비밀키(PKp)는 서버(10)와 클라이언트 Cp(30)가 사전에 공유하고 있는 값이거나, 공개 키 기법을 이용하여 서버(10)가 클라이언트 Cp(30)에게 사전에 전달한 값이다.The secret key PK p used in step S203 is a value previously shared by the server 10 and the client C p 30, or by the server 10 to the client C p 30 using a public key technique. The value passed beforehand.

또한, 위 식에서 a는 보안 파라미터(Security Parameter)이며, 생성하는 랜덤값의 크기(Bit)를 나타낸다. 즉, a=127이라면 생성되는 Rp, Kp은 127의 비트를 가지게 되는 것이다. In the above formula, a is a security parameter and represents the size (Bit) of a random value to be generated. That is, if a = 127, the generated R p and K p have 127 bits.

클라이언트 Cp(30)는 S203 단계에서 생성한 Xp와 자신의 ID를 서버(10)로 전송하여 사용자 인증을 요청한다(S204).The client C p 30 transmits X p and its ID generated in step S203 to the server 10 to request user authentication (S204).

서버(10)는 클라이언트 Cp(30)의 ID에 상응하는 PKp를 가지고 있는 상태이다. 서버(10)는 자신이 소유하고 있던 PKp를 이용하여 수신한 Xp를 복호화한다(S205). Xp를 복호화하게 되면 서버(10)는 암호화되었던 Rp, Kp 및 클라이언트 Cp(30)의 비밀키 PKp를 획득할 수 있다.The server 10 has a PK p corresponding to the ID of the client C p 30. The server 10 decodes the received X p using the PK p owned by the server 10 (S205). When decrypting X p , the server 10 may obtain the encrypted R p , K p, and the secret key PK p of the client C p 30.

서버(10)는 Xp를 복호화하여 획득한 PKp와 자신이 미리 저장하고 있던 PKp를 비교함으로써 클라이언트 Cp(30)를 인증한다(S206). 만일 S206 단계에서 클라이언트 Cp(30)의 사용자 인증이 실패했다면 서버(10)는 그룹키를 갱신하지 않으며, 클라이언트 Cp(30)로 인증 실패를 알리고 동작을 종료한다.The server 10 authenticates the client C p 30 by comparing the PK p obtained by decrypting X p with the PK p stored in advance (S206). If the user authentication of the client C p 30 fails in step S206, the server 10 does not update the group key, notifies the client C p 30 of the authentication failure, and ends the operation.

만일 S206 단계에서 클라이언트 Cp(30)의 인증이 성공적으로 이루어진 경우 서버(10)는 그룹키(GK)를 생성한다(S207). If the client C p 30 is successfully authenticated in step S206, the server 10 generates a group key GK (S207).

그룹키를 생성하기 위하여 서버(10)는 먼저 서버 랜덤값(R0)을 생성한다. 그 후 서버(10)는 클라이언트 C1 내지 Cn, 및 Cp로부터 전달받았던 R1 내지 Rn와 Rp 및 서버 랜덤값(R0)을 XOR(eXlusive OR) 연산하여 그룹키를 생성한다. 즉, 서버(10)는 서버 랜덤값(R0)을 생성하여 아래의 식과 같이 그룹키를 생성한다. In order to generate the group key, the server 10 first generates a server random value R 0 . Thereafter, the server 10 generates a group key by performing an XOR (eXlusive OR) operation on the R 1 to R n and R p and the server random value R 0 received from the clients C 1 to C n , and C p . That is, the server 10 generates a server random value (R 0 ) to generate a group key as shown in the following equation.

Figure 112009003692317-pat00001
Figure 112009003692317-pat00001

즉, 서버(10)는 자신이 생성하여 비밀리에 보관하는 서버 랜덤값(R0)과 그룹(1)에 속하는 n+1개의 클라이언트들이 생성한 제1 랜덤값(R1, R2, ..., Rn, Rp)을 XOR 연산하는 것이다.That is, the server 10 generates a server random value (R 0 ) that is generated and kept in secret and a first random value (R 1 , R 2 ,... Generated by n + 1 clients belonging to the group 1). ., R n , R p ) is an XOR operation.

그 후 서버(10)는 생성한 그룹키(GK)를 그룹에 속한 클라이언트에게 전송한다. 그룹키의 전송은 보안을 위해 암호화를 수행하여야 한다. 이를 위하여 서버(10)는 각각의 클라이언트 별로 그룹키를 전송하기 위한 그룹키 보안 메시지를 생성한다. Thereafter, the server 10 transmits the generated group key GK to clients belonging to the group. The transmission of the group key should be encrypted for security. To this end, the server 10 generates a group key security message for transmitting a group key for each client.

서버(10)가 생성하는 그룹키 보안 메시지를 Ni라고 정의하기로 한다. 여기서 i는 1부터 n의 값 또는 p이다. 즉, Ni는 서버(10)가 클라이언트 Ci로 보내기 위한 메시지를 의미한다. 이 때 서버(10)는 아래 수학식을 이용하여 Ni를 생성한다.The group key security message generated by the server 10 will be defined as N i . Where i is a value from 1 to n or p. That is, N i means a message for the server 10 to send to the client C i . At this time, the server 10 generates N i using the following equation.

Figure 112009003692317-pat00002
Figure 112009003692317-pat00002

여기서

Figure 112009003692317-pat00003
는 XOR(eXclusive OR) 연산을 의미한다.here
Figure 112009003692317-pat00003
Means an XOR (eXclusive OR) operation.

또한, hi,j(Ki)값에서 i는 클라이언트 Ci를 의미한다. j는 클라이언트 Ci가 그 룹키를 갱신한 횟수를 나타낸다. 현재의 예에서 클라이언트 Cp(30)은 그룹에 가입하여 첫 번째로 그룹키를 분배받는 상황이므로 hp,1(Kp)를 연산하게 된다.Also, in the value h i, j (K i ), i means client C i . j represents the number of times the client C i updated the group key. In the present example, client C p (30) joins the group and receives the first group key, thus calculating h p, 1 (K p ).

hi,j(Ki)란 Ki의 값을 j번 해쉬 함수에 적용한 값을 의미한다. 여기서 해쉬 함수로서 PRF(Pseudo Random Function)를 이용하는 것이 바람직하다. 즉, hi,j(Ki) = h(hi,j-1(Ki) = h(h(hi,j-2(Ki) = ... 과 같이 정의되며, hi,1(Ki)는 Ki를 한 번 해쉬 함수(또는 PRF 함수)에 적용한 값을 의미한다.h i, j (K i ) means the value of K i applied to hash function j. Here, it is preferable to use PRF (Pseudo Random Function) as a hash function. That is, h i, j (K i ) = h (h i, j-1 (K i ) = h (h (h i, j-2 (K i ) = ...) is defined as, h i, 1 (K i ) means the value of applying K i to a hash function (or PRF function) once.

이와 같이 생성된 Ni 메시지는 상응하는 클라이언트 Ci에게 전송된다(S209, S212). 예를 들어, Np 메시지는 클라이언트 Cp(30)에게, N2 메시지는 클라이언트 C2(22)에게 전송되는 것이다.The generated N i message is transmitted to the corresponding client C i (S209 and S212). For example, an N p message is sent to client C p 30 and an N 2 message is sent to client C 2 22.

클라이언트 Cp(30)는 Np의 메시지를 복호화함으로써 그룹키를 획득하게 된다(S211). 이 때 클라이언트 Cp는 다음의 식을 이용하여 Np 메시지를 복호화할 수 있다.Client C p 30 obtains the group key by decrypting the message of N p (S211). At this time, the client C p can decode the N p message by using the following equation.

Figure 112009003692317-pat00004
Figure 112009003692317-pat00004

여기서 Np은 클라이언트 Cp(30)가 서버(10)로부터 수신한 그룹키 보안 메시 지이며, Rp는 S202 단계에서 생성하여 기억하고 있던 값이다. 또한, hp,j(Kp)에서 j=1의 값을 가지며 hp,j(Kp) 또는 hp,1(Kp)은 Kp를 한 번 해쉬 함수(또는 PRF)에 적용한 값을 의미한다. 클라이언트 Cp(30)는 수학식 3을 수행하기 위하여 S202 단계에서 생성한 Kp에 대하여 해쉬 함수(PRF 함수)에 적용함으로써 hp,1(Kp)의 값을 획득할 수 있다(S210). 이 때 S210 단계는 Np 메시지를 수신하기 전에 수행되는 경우 그룹키 획득을 위한 연산 시간을 더 줄일 수 있어 보다 효율적이다.N p is a group key security message received by the server C p 30 from the server 10, and R p is a value generated and stored in step S202. In addition, h p, j (K p ) has a value of j = 1 and h p, j (K p ) or h p, 1 (K p ) is the value of applying K p to a hash function (or PRF) once Means. The client C p 30 may obtain a value of h p, 1 (K p ) by applying the hash function (PRF function) to K p generated in step S202 to perform Equation 3 (S210). . At this time, if the step S210 is performed before receiving the N p message, the operation time for obtaining the group key can be further reduced, which is more efficient.

이와 같은 과정을 통하여 클라이언트 Cp(30)는 Np 메시지로부터 그룹키(GK)를 획득할 수 있는 것이다. 그 후 클라이언트 Cp(30)는 해쉬 함수(또는 PRF)를 적용한 값인 hp,1(Kp)의 값을 추후 발생가능한 그룹키 갱신에 대비하여 저장하여 둔다.Through this process, the client C p 30 can obtain the group key GK from the N p message. Thereafter, the client C p 30 stores the value of h p, 1 (K p ) , to which the hash function (or PRF) is applied , in preparation for a possible group key update.

한편, 기존부터 그룹에 속해있던 클라이언트들, 즉 클라이언트 C1 내지 Cn 도 각각 N1 내지 Nn의 그룹키 보안 메시지를 수신하게 된다(S212). N1 내지 Nn의 그룹키 보안 메시지를 수신한 클라이언트(20)는 아래의 식을 이용하여 그룹키를 획득하게 된다(S214).On the other hand, clients previously belonging to the group, that is, clients C 1 to C n also receive a group key security message of N 1 to N n , respectively (S212). The client 20 that receives the group key security message of N 1 to N n obtains the group key by using the following equation (S214).

Figure 112009003692317-pat00005
Figure 112009003692317-pat00005

여기서 Ni는 서버(10)가 클라이언트 Ci에게 전달한 그룹키 보안 메시지이며, Ri은 클라이언트 Ci가 그룹에 가입하기 위하여 생성했던 값을 의미한다. Here, N i is a group key security message delivered by the server 10 to the client C i , and R i means a value generated by the client C i to join the group.

hi,j(Ki)는 위에서 설명한 바와 같이 hi,j-1(Ki)를 한 번 해쉬 함수(또는 PRF)에 적용된 값이다. hi,j-1(Ki)는 클라이언트 Cp(30)가 가입하기 직전 그룹키가 갱신될 때 클라이언트 Ci가 생성하여 저장해둔 값이다. h i, j (K i ) is the value of h i, j-1 (K i ) applied to the hash function (or PRF) once. h i, j-1 (K i ) is a value generated and stored by the client C i when the group key is updated just before the client C p 30 joins.

클라이언트 Ci는 저장해둔 hi,j-1(Ki)의 값에다가 한 번 해쉬 함수(또는 PRF)를 적용함으로써 hi,j(Ki)의 값을 획득할 수 있다(S213). The client C i may obtain the value of h i, j (K i ) by applying the hash function (or PRF) to the value of h i, j-1 (K i ) once (S213).

이들 값들을 이용하여 그룹에 계속 존재하던 클라이언트 Ci들도 새로운 그룹키(GK)를 획득할 수 있게 된다. 또한, 다음 그룹키 갱신을 위하여 클라이언트 Ci는 hi,j-1(Ki)를 삭제하고, hi,j(Ki)를 저장하여 둔다.Using these values, clients C i that continue to exist in the group can obtain a new group key (GK). In addition, the following client C i to the group key renewal is removed to h i, j-1 (K i) and, h i, place to store j (K i).

도 3은 본 발명의 또 다른 실시예에 따른 클라이언트의 그룹 탈퇴 시 그룹키 분배 방법을 나타낸 도면이다.3 is a diagram illustrating a group key distribution method when a client leaves a group according to another embodiment of the present invention.

도 3의 실시예는 그룹에 존재하였던 클라이언트 Cp(40)가 그룹으로부터 탈퇴를 하는 경우이다. 가입과 탈퇴를 구분하기 위하여 클라이언트 Cp를 40으로 표현하 였다. 물론 클라이언트 Cp(40)가 아니라 다른 클라이언트가 탈퇴를 하여도 그룹키 분배 방법은 동일하다.3 illustrates a case in which the client C p 40, which was in the group, leaves the group. To distinguish between joining and leaving, the client C p is expressed as 40. Of course, the group key distribution method is the same even if a client other than the client C p 40 is withdrawn.

먼저 클라이언트 Cp(40)는 그룹의 탈퇴를 서버(10)로 통보한다(S301). 이 경우 서버(10)는 새로운 서버 랜덤값인 R0`을 생성한다. 이 때 생성된 R0`은 R0와 구분하기 위하여 "`"를 마킹하였다. R0`도 R0와 마찬가지로 서버(10)만이 비밀리에 보관하는 값에 해당한다.First, the client C p 40 notifies the server 10 of the withdrawal of the group (S301). In this case, the server 10 generates a new server random value R 0 `. The generated R 0 `is marked with"`" to distinguish it from R 0 . Like R 0 , R 0 `corresponds to a value that only server 10 keeps secret.

그 후 서버(10)는 새롭게 생성한 서버 랜덤값 R0`을 이용하여 새로운 그룹키(GK`)를 생성한다(S302). 이 때 서버(10)는 아래의 수학식 5의 (1) 또는 (2) 중 하나를 이용하여 새로운 그룹키(GK`)를 생성할 수 있다.Thereafter, the server 10 generates a new group key GK` using the newly generated server random value R 0 `(S302). At this time, the server 10 may generate a new group key GK` using one of Equations 5 and 1 below.

Figure 112009003692317-pat00006
Figure 112009003692317-pat00006

수학식 5의 (1) 식은 수학식 1과 크게 다르지 않으므로 그 설명을 생략한다. 즉, 서버(10)는 기존에 사용하던 그룹키에 새롭게 생성한 R0`, 기존에 생성한 R0 및 탈퇴를 요청한 클라이언트 Cp의 Rp값을 XOR 연산함으로써 새로운 그룹키를 생성하는 것이다.Equation (1) of Equation 5 is not significantly different from Equation 1, and thus description thereof is omitted. That is, the server 10 generates a new group key by XORing the newly generated R 0 `, the previously generated R 0, and the R p value of the client C p requesting the withdrawal.

이 때 수학식 5 의 (2) 식은 수학식 5의 (1) 식으로부터 GK` = GK

Figure 112009003692317-pat00007
R0`
Figure 112009003692317-pat00008
R0
Figure 112009003692317-pat00009
Rp = (R0
Figure 112009003692317-pat00010
R1
Figure 112009003692317-pat00011
...
Figure 112009003692317-pat00012
Rn
Figure 112009003692317-pat00013
Rp)
Figure 112009003692317-pat00014
R0`
Figure 112009003692317-pat00015
R0
Figure 112009003692317-pat00016
Rp = R0`
Figure 112009003692317-pat00017
R1
Figure 112009003692317-pat00018
R2
Figure 112009003692317-pat00019
...
Figure 112009003692317-pat00020
Rn의 과정을 통해 유도될 수 있다.In this case, Equation (2) of Equation 5 is obtained from Equation (1) of Equation 5, where GK` = GK
Figure 112009003692317-pat00007
R 0 `
Figure 112009003692317-pat00008
R 0
Figure 112009003692317-pat00009
R p = (R 0
Figure 112009003692317-pat00010
R 1
Figure 112009003692317-pat00011
...
Figure 112009003692317-pat00012
R n
Figure 112009003692317-pat00013
R p )
Figure 112009003692317-pat00014
R 0 `
Figure 112009003692317-pat00015
R 0
Figure 112009003692317-pat00016
R p = R 0 `
Figure 112009003692317-pat00017
R1
Figure 112009003692317-pat00018
R 2
Figure 112009003692317-pat00019
...
Figure 112009003692317-pat00020
It can be derived through the process of R n .

이 때 서버는 수학식 5의 (2) 식을 통하여 새로운 그룹키를 생성하는 것이 보다 바람직하다. 수학식 5의 (1) 식은

Figure 112009003692317-pat00021
연산(XOR 연산)을 n-1 번 해야하지만, 수학식 5의 (2) 식은
Figure 112009003692317-pat00022
연산(XOR 연산)을 3번만 하면 되기 때문이다.At this time, it is more preferable that the server generates a new group key through Equation (2). (1) in Equation 5 is
Figure 112009003692317-pat00021
Operation (XOR operation) n-1 times, but equation (2)
Figure 112009003692317-pat00022
This is because you only need to do three operations (XOR operations).

이와 같이 새로운 그룹키(GK`)를 생성한 후 서버(10)는 클라이언트 별 그룹키 보안 메시지를 생성한다. 물론 클라이언트 Cp(40)은 탈퇴를 요청하였으므로 서버(10)는 N1 내지 Nn의 그룹키 보안 메시지만을 생성한다(S303).As such, the server 10 that generates a new group key (GK`) generates a group key security message for each client. Of course, since the client C p 40 has requested to leave, the server 10 generates only a group key security message of N 1 to N n (S303).

이 때 서버(10)는 아래 식과 같이 그룹키 보안 메시지를 생성할 수 있다.At this time, the server 10 may generate a group key security message as shown below.

Figure 112009003692317-pat00023
Figure 112009003692317-pat00023

이 때 GK`는 새롭게 생성된 그룹키이다. 또한 수학식 2와 비교할 때 j가 j+1로 바뀌었음을 알 수 있다. 즉, 서버(10)는 이전 그룹키 갱신 단계에서 저장해두었던 hi,j(Ki)에 해쉬 함수(또는 PRF)를 한 번 적용한 결과값, 새롭게 생성된 그룹키(GK`) 및 클라이언트별 제1 랜덤값인 Ri를 XOR 연산하여 새로운 그룹키 전송 메시 지를 생성하는 것이다.GK` is the newly created group key. In addition, it can be seen that j is changed to j + 1 when compared with Equation 2. That is, the server 10 applies a hash function (or PRF) once to h i, j (K i ) stored in the previous group key update step, a newly generated group key (GK`), and a client-specific product. 1 Generates a new group key transmission message by performing XOR operation on R i , a random value.

서버(10)는 생성한 N1` 내지 Nn`의 그룹키 보안 메시지를 각각의 클라이언트C1 내지 Cn에게 전송한다(S306).The server 10 transmits the generated group key security messages of N 1 `to N n` to each client C 1 to C n (S306).

각각의 클라이언트는 서버(10)로부터 수신한 그룹키 보안 메시지를 복호화하여 갱신된 그룹키(GK`)를 획득한다(S307). 이를 위해 클라이언트 C1 내지 Cn는 아래 수학식 7과 같은 연산을 수행한다.Each client decrypts the group key security message received from the server 10 to obtain an updated group key GK` (S307). To this end, the clients C 1 to C n perform an operation as shown in Equation 7 below.

Figure 112009003692317-pat00024
Figure 112009003692317-pat00024

Ni`는 서버(10)로부터 수신한 그룹키 보안 메시지이며, hi,j+1(Ki)는 이전 단계에서 저장해둔 hi,j(Ki)를 한 번 해쉬 함수(또는 PRF)에 적용함으로써 획득할 수 있는 값이다. Ri는 클라이언트 Ci가 최초 그룹에 가입하는 단계에서 생성한 랜덤값이다.N i `is the group key security message received from the server 10, and h i, j + 1 (K i ) is a hash function (or PRF) once from h i, j (K i ) stored in the previous step. This value can be obtained by applying to. R i is a random value generated by the client C i joining the initial group.

도 4는 본 발명의 또 다른 실시예에 따른 서버의 블록 구성을 나타낸 도면이다.4 is a block diagram of a server according to another embodiment of the present invention.

도 4에 도시된 바와 같이 그룹키 분배를 위한 서버(100)는 그룹키 분배 기능 과 관련하여 메시지 처리부(110), 그룹 관리부(120), 복호화부(130), 사용자 인증부(140), 클라이언트 키 저장부(150), 그룹키 생성부(160), 그룹키 보안 메시지 생성부(170) 등을 포함하여 구성될 수 있다.As shown in FIG. 4, the server 100 for group key distribution includes a message processing unit 110, a group managing unit 120, a decryption unit 130, a user authentication unit 140, and a client in association with a group key distribution function. It may be configured to include a key storage unit 150, a group key generation unit 160, a group key security message generation unit 170 and the like.

메시지 처리부(110)는 클라이언트 Ci로부터 메시지를 받아 그에 상응하는 처리를 수행하는 구성 요소이다. The message processor 110 is a component that receives a message from the client C i and performs a corresponding process.

예를 들어 메시지 처리부(110)는 그룹 가입 요청 메시지 또는 그룹 탈퇴 요청 메시지를 수신한 경우, 이를 그룹 관리부(120)로 전달하여 그에 상응하는 처리를 하도록 제어한다.For example, when the message processor 110 receives a group join request message or a group leave request message, the message processor 110 transmits the message to the group manager 120 to perform a corresponding process.

그룹 관리부(120)는 클라이언트 Cp로부터 그룹 가입 요청을 받은 경우, 그룹 가입 요청 메시지에 포함되어 있는 Xp와 클라이언트의 ID를 복호화부(130)로 전달한다. 복호화부(130)는 클라이언트 키 저장부(150)에 저장되어 있는 해당 클라이언트Cp의 비밀키(PKp)를 로딩하여, 상기 Xp를 복호화한다.When the group manager 120 receives the group join request from the client C p, the group manager 120 transmits the X p and the ID of the client included in the group join request message to the decryption unit 130. The decryption unit 130 loads the secret key PK p of the client C p stored in the client key storage unit 150 to decrypt the X p .

Xp가 복호화되어 획득되는 제1 랜덤값(Rp), 제2 랜덤값(Kp) 및 비밀키(PKp)는 사용자 인증부(140)로 전달된다. 사용자 인증부(140)는 Xp를 복호화하여 획득한 PKp와 클라이언트 키 저장부(150)에 저장되어 있는 해당 클라이언트의 비밀키(PKp)를 비교함으로써 사용자 인증을 수행한다.The first random value R p , the second random value K p , and the secret key PK p obtained by decrypting X p are transmitted to the user authentication unit 140. The user authentication unit 140 performs user authentication by comparing the PK p obtained by decrypting X p with the secret key PK p of the corresponding client stored in the client key storage unit 150.

성공적으로 사용자 인증이 이루어진 경우 그룹 관리부(120)는 상기 클라이언트 Cp를 그룹에 가입시키는 일련의 동작을 수행한다. 그 후 그룹 관리부(120)는 새 로운 그룹키의 생성 및 분배를 제어한다.When the user authentication is successfully performed, the group manager 120 performs a series of operations of joining the client C p to the group. The group manager 120 then controls the generation and distribution of the new group key.

그룹키 생성부(160)는 새로운 그룹키를 생성한다. 임의의 클라이언트가 그룹에 가입한 경우 새로운 그룹키를 생성하는 방법은 수학식 1에서 설명한 바와 같다. 생성된 그룹키는 그룹키 보안 메시지 생성부(170)로 전달된다.The group key generation unit 160 generates a new group key. When a certain client joins a group, a method of generating a new group key is as described in Equation 1. The generated group key is transmitted to the group key security message generator 170.

그룹키 보안 메시지 생성부(170)는 그룹키를 암호화하여 그룹에 속한 클라이언트에게 전송하기 위하여 수학식 2에 따라 그룹키 보안 메시지를 생성한다. 이와 같이 생성된 그룹키 보안 메시지는 메시지 처리부(110)를 통하여 그룹에 속한 클라이언트들로 전달된다.The group key security message generation unit 170 generates a group key security message according to Equation 2 in order to encrypt the group key and transmit the encrypted group key to a client belonging to the group. The generated group key security message is transmitted to the clients belonging to the group through the message processing unit 110.

한편, 임의의 클라이언트(Cp)로부터 그룹 탈퇴 요청을 받은 경우, 그룹 관리부(120)는 클라이언트 Cp의 탈퇴를 처리하는 한편, 새로운 그룹키의 생성 및 분배를 제어한다.On the other hand, when a group withdrawal request is received from any client C p , the group manager 120 processes withdrawal of the client C p and controls the generation and distribution of a new group key.

그룹키 생성부(160)는 수학식 5를 이용하여 새로운 그룹키를 생성한다. 특히 그룹키 생성부(160)는 수학식 5의 (2) 식을 이용하여 그룹키를 생성하는 것이 바람직하다.The group key generation unit 160 generates a new group key using Equation 5. In particular, the group key generation unit 160 preferably generates a group key using Equation (2).

또한, 그룹키 보안 메시지 생성부(170)는 새롭게 생성된 그룹키를 수학식 6에 적용하여 그룹키 보안 메시지를 생성한다. 이와 같이 생성된 그룹키 보안 메시지는 메시지 처리부(110)를 통하여 그룹에 남아있는 클라이언트들로 전달된다.In addition, the group key security message generation unit 170 generates a group key security message by applying the newly generated group key to Equation 6. The generated group key security message is transmitted to the clients remaining in the group through the message processing unit 110.

도 5는 본 발명의 또 다른 실시예에 따른 클라이언트의 블록 구성을 나타낸 도면이다.5 is a block diagram of a client according to another embodiment of the present invention.

도 5에 도시된 바와 같이 클라이언트(200)는 메시지 처리부(210), 암호화 처리부(220), 랜덤값 생성부(230), 암호 저장부(240), 그룹키 보안 메시지 복호화부(250) 등을 포함하여 구성될 수 있다.As shown in FIG. 5, the client 200 uses a message processing unit 210, an encryption processing unit 220, a random value generating unit 230, a password storage unit 240, a group key security message decryption unit 250, and the like. It can be configured to include.

암호 저장부(220)에는 클라이언트(200)가 서버와 사전에 공유하고 알고 있는 비밀키(PKi)가 저장되어 있다. 클라이언트(200)의 그룹 가입을 위하여 랜덤값 생성부(230)는 두 개의 랜덤값, 즉 제1 랜덤값(Ri)와 제2 랜덤값(Ki)를 생성한다. 이와 같이 생성된 Ri와 Ki는 암호 저장부에(240)에 저장된다.The password storage unit 220 stores a secret key PK i that the client 200 shares with the server in advance. Generate a random value for the group subscription on the client 200, 230 generates the two random values, i.e., the first random value (R i) and a second random value (K i). The generated R i and K i are stored in the password storage unit 240.

암호화부(220)는 서버와 사전에 나누어 가진 비밀키인 PKi를 이용하여 Ri와 Ki 및 PKi를 암호화한다. 이와 같이 암호화한 메시지 Xi는 EPKi(Ri∥Ki∥PKi)와 같이 정의될 수 있다.The encryption unit 220 encrypts R i , K i, and PK i using PK i , which is a secret key previously divided with the server. Thus encrypted message X i can be defined as E PKi (R i ∥ K i ∥ PK i ).

메시지 처리부(210)는 서버로 클라이언트(200)의 ID 및 암호화된 메시지 Xi를 전송한다. 이제 서버는 클라이언트(200)의 ID 및 암호화된 메시지 Xi를 이용하여 사용자 인증, 그룹키 생성 및 분배를 수행한다. The message processor 210 transmits the ID of the client 200 and the encrypted message X i to the server. The server now performs user authentication, group key generation and distribution using the ID of the client 200 and the encrypted message X i .

클라이언트(200)의 메시지 처리부(210)는 서버로부터 그룹키 보안 메시지를 전송받아 그룹키 보안 메시지 복호화부(250)로 전달한다. The message processing unit 210 of the client 200 receives the group key security message from the server and delivers the group key security message to the group key security message decryption unit 250.

그룹키 보안 메시지 복호화부(250)는 암호화부에 저장하고 있던 hi,0(Ki) = Ki 를 1회 해쉬 함수(또는 PRF)에 적용하고, 수학식 7을 이용하여 그룹키 보안 메시지를 복호화한다. 이러한 과정을 통해 그룹키 보안 메시지 복호화부(250)는 그룹키를 획득할 수 있다.The group key security message decryption unit 250 applies h i, 0 (K i ) = K i stored in the encryption unit to a hash function (or PRF) once, and uses the equation (7) to calculate the group key security message. Decode Through this process, the group key security message decryption unit 250 may obtain a group key.

그룹키 보안 메시지 복호화부(250)는 다른 클라이언트의 가입 또는 탈퇴로 인한 그룹키 갱신이 되는 경우를 대비하여 hi,0(Ki) = Ki를 1회 해쉬 함수(또는 PRF)에 적용한 결과, 즉 hi,1(Ki)를 암호 저장부(240)에 저장해 둔다.The group key security message decryption unit 250 applies h i, 0 (K i ) = K i to a one-time hash function (or PRF) in case a group key is renewed due to joining or withdrawing another client. That is, h i, 1 (K i ) is stored in the password storage unit 240.

한편, 메시지 처리부(210)는 그룹으로부터의 탈퇴를 위해 그룹 탈퇴 요청 메시지를 서버로 전송할 수 있다. 이 경우 서버는 그룹 탈퇴 요청을 한 클라이언트를 제외한 클라이언트에게 갱신된 그룹키 보안 메시지를 전송하며, 그룹 탈퇴 요청을 한 클라이언트(200)는 별도의 그룹키 분배 과정에 참여하지 않는다.Meanwhile, the message processing unit 210 may transmit a group leave request message to the server in order to leave the group. In this case, the server transmits the updated group key security message to the clients except the client who has requested to leave the group, and the client 200 which has requested the group to leave the group does not participate in a separate group key distribution process.

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리 범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의하여 정해져야 한다.Although the present invention has been described in detail through the representative embodiments, those skilled in the art to which the present invention pertains can make various modifications without departing from the scope of the present invention. Will understand. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the claims below and equivalents thereof.

도 1은 본 발명의 일 실시예에 따른 단말이 그룹 가입 또는 그룹 탈퇴하는 상황을 나타낸 도면.1 is a diagram illustrating a situation in which a terminal joins or leaves a group according to an embodiment of the present invention.

도 2는 본 발명의 다른 실시예에 따른 클라이언트의 그룹 가입 시 그룹키 분배 방법을 나타낸 도면.2 is a diagram illustrating a group key distribution method when a client joins a group according to another embodiment of the present invention.

도 3은 본 발명의 또 다른 실시예에 따른 클라이언트의 그룹 탈퇴 시 그룹키 분배 방법을 나타낸 도면.3 is a diagram illustrating a group key distribution method when a client leaves a group according to another embodiment of the present invention.

도 4는 본 발명의 또 다른 실시예에 따른 서버의 블록 구성을 나타낸 도면.4 is a block diagram of a server according to another embodiment of the present invention.

도 5는 본 발명의 또 다른 실시예에 따른 클라이언트의 블록 구성을 나타낸 도면.5 is a block diagram of a client according to another embodiment of the present invention.

<도면의 주요 부분에 대한 부호 설명><Description of the symbols for the main parts of the drawings>

100 : 서버 110 : 메시지 처리부100: server 110: message processing unit

120 : 그룹 관리부 130 : 복호화부120: group management unit 130: decryption unit

140 : 사용자 인증부 150 : 클라이언트 키 저장부140: user authentication unit 150: client key storage unit

160 : 그룹키 생성부 170 : 그룹키 보안 메시지 생성부160: group key generation unit 170: group key security message generation unit

200 : 클라이언트 210 : 메시지 처리부200: client 210: message processing unit

220 : 암호화부 230 : 랜덤값 생성부220: encryption unit 230: random value generation unit

240 : 암호 저장부 250 : 그룹키 보안 메시지 복호화부240: Password storage unit 250: Group key security message decryption unit

Claims (26)

그룹키 분배 방법에 있어서,In the group key distribution method, 제1 클라이언트는 제1 랜덤값 및 제2 랜덤값을 생성하고, 상기 제1 랜덤값, 제2 랜덤값 및 서버와 상기 제1 클라이언트가 공유하는 비밀키를 암호화하여 서버로 전송하는 단계;Generating a first random value and a second random value, encrypting the first random value, the second random value, and a secret key shared by the server and the first client to a server; 상기 서버는 상기 암호화된 값을 복호화하여 상기 제1 랜덤값, 제2 랜덤값 및 비밀키 정보를 획득하는 단계;The server decrypting the encrypted value to obtain the first random value, the second random value, and the secret key information; 상기 서버는 서버 랜덤값을 생성하고, 상기 서버 랜덤값과 그룹에 속해있는 적어도 하나 이상의 클라이언트들의 제1 랜덤값을 이용하여 그룹키를 생성하는 단계; The server generating a server random value and generating a group key using the server random value and a first random value of at least one or more clients belonging to the group; 상기 서버는 상기 생성된 그룹키로부터 상기 그룹에 속해있는 적어도 하나 클라이언트들 별 그룹키 보안 메시지를 생성하고 이를 그룹에 속해 있는 각각의 클라이언트로 전송하는 단계; 및Generating, by the server, a group key security message for at least one client belonging to the group from the generated group key and transmitting the group key security message to each client belonging to the group; And 상기 그룹에 속해 있는 각각의 클라이언트는 자신의 제1 랜덤값, 제2 랜덤값 및 상기 그룹키 보안 메시지를 이용하여 그룹키를 획득하는 단계를 포함하는 것을 특징으로 하는 그룹키 분배 방법.And each client belonging to the group obtains a group key using its first random value, a second random value, and the group key security message. 제1항에 있어서,The method of claim 1, 상기 제1 클라이언트가 상기 그룹에서 탈퇴한 경우, If the first client leaves the group, 상기 서버는 새로운 서버 랜덤값을 생성하고, 상기 서버 랜덤값과 상기 그룹에 남아있는 적어도 하나 이상의 클라이언트 별 제1 랜덤값을 이용하여 새로운 그룹키를 생성하는 단계;The server generating a new server random value and generating a new group key using the server random value and at least one first random value for each client remaining in the group; 상기 서버는 상기 새롭게 생성된 그룹키를 이용하여 상기 그룹에 남아있는 적어도 하나 이상의 클라이언트 별로 그룹키 보안 메시지를 생성하여, 각각의 클라이언트로 전송하는 단계; 및Generating, by the server, a group key security message for each of at least one client remaining in the group by using the newly generated group key, and transmitting the generated group key security message to each client; And 상기 그룹에 남아있는 적어도 하나 이상의 클라이언트는 상기 그룹키 보안 메시지로부터 상기 새롭게 생성된 그룹키를 추출하는 단계를 더 포함하는 그룹키 분배 방법.At least one client remaining in the group further comprises extracting the newly generated group key from the group key security message. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 제1 클라이언트가 비밀키 정보를 암호화하는 단계는,Encrypting, by the first client, private key information, 상기 제1 랜덤값, 제2 랜덤값 및 및 서버와 제1 클라이언트가 공유하는 비밀키를 상기 비밀키를 이용하여 암호화하는 것을 특징으로 하는 그룹키 분배 방법.And encrypting the first random value, the second random value, and a secret key shared by the server and the first client using the secret key. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 복호화하여 획득한 상기 제1 랜덤값, 제2 랜덤값 및 비밀키 정보를 이 용하여 상기 제1 클라이언트의 인증을 수행하는 단계를 더 포함하는 그룹키 분배 방법.And performing authentication of the first client using the first random value, the second random value, and the secret key information obtained by decoding. 제4항에 있어서,The method of claim 4, wherein 상기 서버가 제1 클라이언트의 인증을 수행하는 단계는,The server performing authentication of the first client may include: 상기 복호화하여 획득한 비밀키와 상기 서버가 가지고 있던 제1 클라이언트의 비밀키 정보를 비교함으로써 상기 제1 클라이언트의 인증을 수행하는 것을 특징으로 하는 그룹키 분배 방법.And authenticating the first client by comparing the decrypted secret key with the private key information of the first client possessed by the server. 제1항 또는 제2항에 있어서,The method according to claim 1 or 2, 상기 서버 랜덤값과 상기 그룹에 속해있는 적어도 하나 이상의 클라이언트들의 제1 랜덤값을 이용하여 그룹키를 생성하는 단계는,Generating a group key by using the server random value and the first random value of at least one or more clients belonging to the group, 상기 서버 랜덤값과 상기 그룹에 속해있는 적어도 하나 이상의 클라이언트들의 제1 랜덤값을 XOR 연산하여 그룹키를 생성하는 것을 특징으로 하는 그룹키 분배 방법.And generating a group key by performing an XOR operation on the server random value and a first random value of at least one or more clients belonging to the group. 제6항에 있어서,The method of claim 6, 상기 서버가 그룹키 보안 메시지를 생성하는 단계는,The server generating the group key security message, 상기 생성된 그룹키, 클라이언트 별 제1 랜덤값 및 클라이언트별 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값을 XOR 연산하여 상기 그룹키 보안 메시지를 생성하는 것을 특징으로 하는 그룹키 분배 방법.And generating the group key security message by performing an XOR operation on the generated group key, a first random value for each client, and a second random value for each client by a predetermined number of times. 제7항에 있어서,The method of claim 7, wherein 상기 서버는 클라이언트별 제2 랜덤값을, 상기 클라이언트별 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값으로 업데이트하는 것을 특징으로 하는 그룹키 분배 방법.And the server updates the second random value for each client to a value applied to the one-way function by a predetermined number of times. 제8항에 있어서,The method of claim 8, 상기 클라이언트는 상기 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값, 상기 클라이언트의 제1 랜덤값 및 그룹키 보안 메시지를 XOR 연산함으로써 그룹키를 획득하는 것을 특징으로 하는 그룹키 분배 방법.And the client acquires a group key by performing an XOR operation on a value obtained by applying the second random value to a one-way function by a predetermined number of times, the first random value of the client, and a group key security message. 제9항에 있어서,10. The method of claim 9, 상기 클라이언트는 자신이 가지고 있는 제2 랜덤값을, 상기 제2 랜덤값을 기 설정된 횟수만큼 일방향 함수에 적용한 값으로 업데이트하는 것을 특징으로 하는 그룹키 분배 방법.And the client updates the second random value of the client to a value applied to the one-way function by a predetermined number of times. 그룹키 분배를 위한 서버에 있어서,In a server for group key distribution, 클라이언트로부터 전달되는 암호화 메시지를 복호화하여 제1 랜덤값, 제2 랜덤값 및 비밀키를 획득하는 복호화부; A decryption unit to decrypt the encrypted message transmitted from the client to obtain a first random value, a second random value, and a secret key; 서버의 제1 랜덤값을 생성하고, 상기 서버의 제1 랜덤값과 그룹에 속하는 적어도 하나 이상의 클라이언트 별 제1 랜덤값을 이용하여 그룹키를 생성하는 그룹키 생성부; 및A group key generation unit generating a first random value of a server and generating a group key by using the first random value of the server and a first random value of at least one client belonging to a group; And 상기 생성된 그룹키로부터 상기 그룹에 속하는 클라이언트 별로 그룹키 보안 메시지를 생성하여 이를 각각의 클라이언트로 전송하도록 하는 그룹키 보안 메시지 생성부를 포함하는 것을 특징으로 하는 서버.And a group key security message generator for generating a group key security message for each client belonging to the group from the generated group key and transmitting the group key security message to each client. 제11항에 있어서,The method of claim 11, 상기 복호화부는,The decoding unit, 상기 암호화 메시지를 전달한 클라이언트와 공유하고 있던 비밀키를 이용하여 상기 암호화 메시지를 복호화하는 것을 특징으로 하는 서버.And decrypting the encrypted message using a secret key shared with the client that has delivered the encrypted message. 제11항에 있어서,The method of claim 11, 상기 복호화부가 획득한 비밀키를 이용하여 클라이언트의 인증을 수행하고, 인증이 수행한 경우 상기 그룹키 생성부로 하여금 그룹키를 생성토록 제어하는 사용자 인증부를 더 포함한 것을 특징으로 하는 서버.And a user authentication unit configured to authenticate the client using the secret key obtained by the decryption unit, and control the group key generation unit to generate a group key when authentication is performed. 제11항에 있어서,The method of claim 11, 상기 그룹키 생성부는,The group key generation unit, 상기 서버의 제1 랜덤값과 그룹에 속한 적어도 하나 이상의 클라이언트 별 제1 랜덤값을 XOR 연산하여 그룹키를 생성하는 것을 특징으로 하는 서버.And generating a group key by performing an XOR operation on the first random value of the server and the first random value of at least one client belonging to the group. 제11항 내지 제13항 중 어느 한 항에 있어서,14. The method according to any one of claims 11 to 13, 그룹에 속한 적어도 하나 이상의 클라이언트 별 제1 랜덤값, 제2 랜덤값 및 비밀키를 저장하기 위한 암호 저장부를 더 포함하는 것을 특징으로 하는 서버.And a cryptographic storage unit for storing a first random value, a second random value, and a secret key for at least one client belonging to the group. 제15항에 있어서,The method of claim 15, 상기 그룹키 보안 메시지 생성부는,The group key security message generation unit, 상기 생성된 그룹키, 클라이언트별 제1 랜덤값 및 제2 랜덤값을 이용하여 클라이언트별 그룹키 보안 메시지를 생성하는 것을 특징으로 하는 서버.And generating a group key security message for each client by using the generated group key, first random value for each client, and second random value for each client. 제16항에 있어서,The method of claim 16, 상기 그룹키 보안 메시지 생성부는,The group key security message generation unit, 클라이언트 별 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값, 클라이언트 별 제1 랜덤값 및 상기 생성된 그룹키를 XOR 연산하여 클라이언트 별 그룹키 보안 메시지를 생성하는 것을 특징으로 하는 서버.And generating a group key security message for each client by performing an XOR operation on a value obtained by applying a second random value for each client to a one-way function a predetermined number of times, the first random value for each client, and the generated group key. 제17항에 있어서,The method of claim 17, 상기 일방향 함수는,The one-way function is 해쉬 함수(Hash Function) 또는 의사 난수 함수(Pseudo Random Function)인 것을 특징으로 하는 서버.Server characterized in that it is a hash function (Pseudo Random Function) or a hash function (Pseudo Random Function). 제17항에 있어서,The method of claim 17, 상기 그룹키 생성부는 클라이언트로부터 그룹 탈퇴 요청을 수신한 경우, 새로운 서버의 제1 랜덤값을 생성하여, 상기 새로운 서버의 제1 랜덤값과 그룹에 남 아있는 클라이언트 별 제1 랜덤값을 이용하여 새로운 그룹키를 생성하고,When the group key generation unit receives a group leave request from a client, the group key generation unit generates a first random value of a new server, and generates a new value by using the first random value of the new server and the first random value of each client remaining in the group. Create a group key, 상기 그룹키 보안 메시지 생성부는 상기 새롭게 생성된 그룹키로부터 상기 그룹에 남아있는 클라이언트 별 그룹키 보안 메시지를 생성하여 각각의 클라이언트로 전송하토록 하는 것을 특징으로 하는 서버.The group key security message generation unit generates a group key security message for each client remaining in the group from the newly generated group key and transmits the generated group key security message to each client. 제19항에 있어서,The method of claim 19, 상기 그룹키 보안 메시지 생성부는,The group key security message generation unit, 상기 클라이언트 별 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값을 다시 기설정된 횟수만큼 일방향 함수에 적용한 값, 클라이언트별 제1 랜덤값 및 상기 새롭게 생성된 그룹키를 XOR 연산하여 클라이언트별 그룹키 보안 메시지를 생성하는 것을 특징으로 하는 서버.XOR operation of the value of applying the second random value for each client to the one-way function by a predetermined number of times, the first random value for each client, and the newly generated group key by XOR operation Server for generating a secure message. 제1 랜덤값과 제2 랜덤값을 생성하는 랜덤값 생성부;A random value generator for generating a first random value and a second random value; 상기 제1 랜덤값과 제2 랜덤값 및 서버와 공유하고 있는 비밀키를 암호화하고 상기 암호화된 메시지를 서버로 전송케 하는 암호화부; 및An encryption unit for encrypting the first random value and the second random value and a secret key shared with the server, and transmitting the encrypted message to a server; And 서버로부터 그룹키가 암호화된 그룹키 보안 메시지를 수신하고 이를 복호화하여 그룹키를 획득하는 그룹키 보안 메시지 복호화부를 포함하는 것을 특징으로 하는 클라이언트.And a group key security message decryption unit for receiving the group key security message encrypted with the group key from the server and decrypting the group key security message. 제21항에 있어서,The method of claim 21, 상기 암호화부는, The encryption unit, 상기 제1 랜덤값과, 제2 랜덤값 및 서버와 공유하고 있는 비밀키를 상기 비밀키를 이용하여 암호화하는 것을 특징으로 하는 클라이언트.And encrypting the first random value, the second random value, and a secret key shared with the server using the secret key. 제21항 또는 제22항에 있어서,The method of claim 21 or 22, 상기 제1 랜덤값, 제2 랜덤값 및 비밀키를 저장하기 위한 암호 저장부를 더 포함하는 것을 특징으로 하는 클라이언트.And a cryptographic storage for storing the first random value, the second random value, and the secret key. 제23항에 있어서,24. The method of claim 23, 상기 그룹키 보안 메시지 복호화부는,The group key security message decryption unit, 상기 암호 저장부에 포함되어 있는 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값, 상기 제1 랜덤값 및 그룹키 보안 메시지를 이용하여 그룹키를 획득하는 것을 특징으로 하는 클라이언트.And obtaining a group key using a value obtained by applying a second random value included in the cryptographic storage unit to a one-way function a predetermined number of times, the first random value and the group key security message. 제24항에 있어서,The method of claim 24, 상기 그룹키 보안 메시지 복호화부는,The group key security message decryption unit, 상기 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값, 상기 제1 랜덤값 및 그룹키 보안 메시지를 XOR 연산함으로써 그룹키를 획득하는 것을 특징으로 하는 클라이언트.And obtaining a group key by performing an XOR operation on the value obtained by applying the second random value to a one-way function a predetermined number of times, the first random value and the group key security message. 제24항에 있어서,The method of claim 24, 상기 그룹키 보안 메시지 복호화부는,The group key security message decryption unit, 상기 암호 저장부에 저장된 제2 랜덤값을, 상기 제2 랜덤값을 기설정된 횟수만큼 일방향 함수에 적용한 값으로 업데이트하는 것을 특징으로 하는 클라이언트.And updating the second random value stored in the cryptographic storage unit to a value applied to the one-way function by a predetermined number of times.
KR1020090004700A 2009-01-20 2009-01-20 Group Key Distribution Method and Server and Client for Implementing the Same KR101021708B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090004700A KR101021708B1 (en) 2009-01-20 2009-01-20 Group Key Distribution Method and Server and Client for Implementing the Same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090004700A KR101021708B1 (en) 2009-01-20 2009-01-20 Group Key Distribution Method and Server and Client for Implementing the Same

Publications (2)

Publication Number Publication Date
KR20100085424A KR20100085424A (en) 2010-07-29
KR101021708B1 true KR101021708B1 (en) 2011-03-15

Family

ID=42644334

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090004700A KR101021708B1 (en) 2009-01-20 2009-01-20 Group Key Distribution Method and Server and Client for Implementing the Same

Country Status (1)

Country Link
KR (1) KR101021708B1 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101314417B1 (en) * 2010-12-24 2013-10-04 한양대학교 에리카산학협력단 Apparatus for providing and reproducing contents using secure chipset and the method threaof
KR101275830B1 (en) * 2011-11-07 2013-06-18 숭실대학교산학협력단 Apparatus and method for managing group key and recording medium storing program for executing method of the same in computer
KR101329789B1 (en) * 2012-03-28 2013-11-15 이니텍(주) Encryption Method of Database of Mobile Communication Device
US9043903B2 (en) 2012-06-08 2015-05-26 Crowdstrike, Inc. Kernel-level security agent
US9292881B2 (en) 2012-06-29 2016-03-22 Crowdstrike, Inc. Social sharing of security information in a group
US10409980B2 (en) 2012-12-27 2019-09-10 Crowdstrike, Inc. Real-time representation of security-relevant system state
KR20140100101A (en) * 2013-02-05 2014-08-14 주식회사 엑스엔시스템즈 System and method for providing secure network in enterprise
KR101494510B1 (en) * 2013-03-12 2015-02-23 명지대학교 산학협력단 Apparatus and method for managing group key, recording medium thereof
US20150222646A1 (en) 2014-01-31 2015-08-06 Crowdstrike, Inc. Tagging Security-Relevant System Objects
US10289405B2 (en) 2014-03-20 2019-05-14 Crowdstrike, Inc. Integrity assurance and rebootless updating during runtime
US9798882B2 (en) 2014-06-06 2017-10-24 Crowdstrike, Inc. Real-time model of states of monitored devices
US10339316B2 (en) 2015-07-28 2019-07-02 Crowdstrike, Inc. Integrity assurance through early loading in the boot phase
US10387228B2 (en) 2017-02-21 2019-08-20 Crowdstrike, Inc. Symmetric bridge component for communications between kernel mode and user mode
KR101987411B1 (en) * 2017-06-26 2019-06-11 중앙대학교 산학협력단 Method and apparatus for sharing secret key
KR102648508B1 (en) * 2021-03-18 2024-03-20 한국철도기술연구원 Security certification system for group security policy and encryption key management and its management method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060063271A (en) * 2004-12-07 2006-06-12 한국전자통신연구원 The key distribution technique of link security on epon
KR20060065863A (en) * 2004-12-10 2006-06-14 한국전자통신연구원 Authentication method for a link protection in epon
KR20080007678A (en) * 2005-05-09 2008-01-22 노키아 코포레이션 System and method for efficient encryption and decryption of drm rights objects
KR20080107188A (en) * 2007-06-05 2008-12-10 주식회사 케이티 Efficient authentication method for a rfid system having distributed database and rfid system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060063271A (en) * 2004-12-07 2006-06-12 한국전자통신연구원 The key distribution technique of link security on epon
KR20060065863A (en) * 2004-12-10 2006-06-14 한국전자통신연구원 Authentication method for a link protection in epon
KR20080007678A (en) * 2005-05-09 2008-01-22 노키아 코포레이션 System and method for efficient encryption and decryption of drm rights objects
KR20080107188A (en) * 2007-06-05 2008-12-10 주식회사 케이티 Efficient authentication method for a rfid system having distributed database and rfid system

Also Published As

Publication number Publication date
KR20100085424A (en) 2010-07-29

Similar Documents

Publication Publication Date Title
KR101021708B1 (en) Group Key Distribution Method and Server and Client for Implementing the Same
US10243742B2 (en) Method and system for accessing a device by a user
KR102124413B1 (en) System and method for identity based key management
CN108599925B (en) Improved AKA identity authentication system and method based on quantum communication network
JP5118048B2 (en) Method and apparatus for establishing a security association
Lin et al. A collaborative key management protocol in ciphertext policy attribute-based encryption for cloud data sharing
KR20060095077A (en) The hierarchial threshold tree-based broadcast encryption method
KR20060088995A (en) The hybrid broadcast encryption method
US20060047976A1 (en) Method and apparatus for generating a decrpytion content key
Bilal et al. Secure distribution of protected content in information-centric networking
CN110493367B (en) Address-free IPv6 non-public server, client and communication method
US12010216B2 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN114513327B (en) Block chain-based Internet of things private data rapid sharing method
Bali et al. Lightweight authentication for MQTT to improve the security of IoT communication
CN116614599B (en) Video monitoring method, device and storage medium for secure encryption
Chien et al. Efficient MQTT platform facilitating secure group communication
CN112019553B (en) Data sharing method based on IBE/IBBE
KR100888075B1 (en) An encryption and decryption system for multicast using a personal symmetric key
TWI313995B (en) Content protection method
Chen et al. A secure network coding based on broadcast encryption in sdn
Jain “Sec-KeyD” an efficient key distribution protocol for critical infrastructures
RU2693192C1 (en) Computer-implemented method of providing secure group communications with failure properties, perfect direct privacy and correspondence of text of correspondence
Saberi et al. Enhanced AES-CCMP key structure in IEEE 802.11 i
CN110890968B (en) Instant messaging method, device, equipment and computer readable storage medium
Mukherjee et al. Multicast group authentication

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140106

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150115

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee