KR20180098841A - 인증된 동적 그룹에 대한 효율적인 그룹 키 관리를 제공하는 방법 및 장치 - Google Patents

인증된 동적 그룹에 대한 효율적인 그룹 키 관리를 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR20180098841A
KR20180098841A KR1020170025476A KR20170025476A KR20180098841A KR 20180098841 A KR20180098841 A KR 20180098841A KR 1020170025476 A KR1020170025476 A KR 1020170025476A KR 20170025476 A KR20170025476 A KR 20170025476A KR 20180098841 A KR20180098841 A KR 20180098841A
Authority
KR
South Korea
Prior art keywords
group
node
key
nodes
members
Prior art date
Application number
KR1020170025476A
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 KR1020170025476A priority Critical patent/KR20180098841A/ko
Publication of KR20180098841A publication Critical patent/KR20180098841A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

그룹의 인증된 맴버들 간에 비밀의 그룹 키를 공유 및 갱신하기 위한 방법 및 장치가 제공된다. 그룹의 맴버들은 논리적인 환형 링크된 리스트를 구성할 수 있다. 그룹의 각 맴버는 맴버 자신의 상태 벡터를 관리할 수 있다. 상태 벡터는 논리적인 환영 링크된 리스트에서 노드 자신의 바로 옆에 연결된 이웃 노드를 제외한 그룹의 모든 노드들의 비밀의 넌스들을 포함할 수 있다. 상태 벡터에 기반하여 그룹의 그룹 키가 생성될 수 있고, 가입 프로토콜, 이탈 프로토콜, 병합 프로토콜 및 분할 프로토콜을 통해 그룹에 대한 연산이 수행될 수 있다. 각 노드 들은 상태 벡터에 기반하여 통신하고자 하는 다른 그룹 멤버 들간에 또 다른 서브 그룹 키를 생성할 수 있다.

Description

인증된 동적 그룹에 대한 효율적인 그룹 키 관리를 제공하는 방법 및 장치{METHOD AND APPRATUS FOR PROVIDING EFFICIENT GROUP KEY MANAGEMENT FOR AUTHENTICATED DYNAMIC GROUP}
아래의 실시예들은 인증된 맴버들 간에 비밀의 그룹 키를 공유 및 갱신하기 위한 효율적인 메커니즘을 설립하기 위해 설계되었다.
인터넷 프로토콜(Internet Protocol;IP) 상에서의 그룹 통신은 1986년에 에스. 이. 디어링(S. E. Deering)에 의해 알에프씨(RFC) 988에서 처음으로 도입되었다.
그러나, IP 멀티캐스트 자체는 그룹 통신을 비-그룹 맴버들로부터 막아내는 어떤 매커니즘도 갖지 않는다. IP 멀티캐스팅 외에도, 무선(wireless) 네트워크 및 센서 네트워크 기술의 향상(advancement)과 함께 몇몇 새로운 형태의 그룹 통신 어플리케이션들이 대두하였다.
만약 모든 그룹 맴버들이 공통의 비밀 키를 공유한다면, 통신은 안전할 수 있다. 몇몇 프로토콜들이 최소의 메시지 교환으로 그룹의 맴버들 간에 안전한 암호법의(cryptographic) 키를 설립(establish)하도록 제안되어 왔다.
개발되온 프로토콜들은 3개의 주 카테고리들로 분류될 수 있다. 첫 번째는, 중앙집중적(centralized) 키 분배 및 관리 시스템이다. 두 번째는, 분권적(decentralized) 키 분배 및 관리 시스템이다. 세 번째는, 분산된(distributed) 키 분배 및 관리 시스템이다.
일 실시예는 인증 시스템에 의해 그룹 맴버들이 인증되었다는 가정 하에서의 완전히 분산된 키 분배 및 관리를 제공하는 방법, 장치 및 시스템을 제공할 수 있다.
일 실시예는 맴버 또는 맴버들의 그룹이 빈번하게 이탈 및 가입할 수 있는 동적 통신 그룹 내에서 비밀의 암호화 그래픽 키를 공유 및 갱신하는 경량(light weight) 및 효율적인 메커니즘을 제공할 수 있다.
일 실시예는 맴버 또는 맴버들의 그룹이 빈번하게 이탈 및 가입할 수 있는 동적 통신 그룹 내에서 공유된 비밀의 키의 갱신에 대해 총 메시지 교환 복잡도를 낮게 유지하는 메커니즘을 제공할 수 있다.
노드에 있어서, 상기 노드의 그룹에 대한 프로토콜을 처리하는 처리부; 및 상기 프로토콜을 위한 정보를 송신하거나, 수신하는 통신부를 포함하고,
상기 그룹의 맴버들은 논리적인 환형 링크된 리스트를 구성하고, 상기 처리부는 상태 벡터를 관리하고, 상기 상태 벡터는 상기 논리적인 환영 링크된 리스트에서 상기 노드의 바로 옆에 연결된 이웃 노드를 제외한 상기 그룹의 모든 노드들의 비밀의 넌스들을 포함하는, 노드가 제공된다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 장치, 시스템 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
인증 시스템에 의해 그룹 맴버들이 인증되었다는 가정 하에서의 완전히 분산된 키 분배 및 관리를 제공하는 방법, 장치 및 시스템이 제공된다.
일 실시예는 맴버 또는 맴버들의 그룹이 빈번하게 이탈 및 가입할 수 있는 동적 통신 그룹 내에서 비밀의 암호화 그래픽 키를 공유 및 갱신하는 경량(light weight) 및 효율적인 메커니즘이 제공된다.
일 실시예는 맴버 또는 맴버들의 그룹이 빈번하게 이탈 및 가입할 수 있는 동적 통신 그룹 내에서 공유된 비밀의 키의 갱신에 대해 총 메시지 교환 복잡도를 낮게 유지하는 메커니즘이 제공된다.
도 1은 일 실시예에 따른 노드의 구성을 나타낸다.
도 2은 일 예에 따른 프로토콜의 개요(overview)를 나타낸다.
도 3은 일 실시예에 따른 비밀의 공유를 수행하는 노드들의 그룹의 논리적인 구조를 나타낸다.
도 4는 일 예에 따른 노드의 동작을 설명하는 흐름도이다.
도 5는 일 예에 따른 가입 프로토콜의 흐름도이다.
도 6은 일 예에 따른 노드가 가입하기 이전의 노드들의 상태를 나타낸다.
도 7은 일 예에 따른 노드가 가입한 이후의 노드들의 상태를 나타낸다.
도 8은 일 예에 따른 이탈 프로토콜의 흐름도이다.
도 9는 일 예에 따른 노드가 이탈하기 이전의 노드들의 상태를 나타낸다.
도 10은 일 예에 따른 노드가 이탈한 이후의 노드들의 상태를 나타낸다.
도 11은 일 예에 따른 6 개의 작은 그룹들을 하나의 더 큰 그룹으로 병합하는 과정을 나타낸다.
도 12는 일 예에 따른 병합 프로토콜의 흐름도이다.
도 13은 일 예에 따른 노드들이 병합되기 이전의 노드들의 상태를 나타낸다.
도 14는 일 예에 따른 노드들이 병합된 이후의 노드들의 상태를 나타낸다.
도 15는 일 예에 따른 분할 프로토콜의 흐름도이다.
도 16은 일 예에 따른 노드들이 분할되기 이전의 노드들의 상태를 나타낸다.
도 17은 일 예에 따른 노드들이 분할된 이후의 노드들의 상태를 나타낸다.
도 18은 일 예에 따른 슈퍼-그룹 레벨에서의 그룹 키의 생성을 설명하는 흐름도이다.
도 19는 일 예에 따른 그룹들의 연쇄를 나타낸다.
후술하는 예시적 실시예들에 대한 상세한 설명은, 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 실시예를 실시할 수 있기에 충분하도록 상세히 설명된다. 다양한 실시예들은 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 실시예의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 예시적 실시예들의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다.
도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
실시예에서 사용된 용어는 실시예를 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 실시예에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않으며, 추가적인 구성이 예시적 실시예들의 실시 또는 예시적 실시예들의 기술적 사상의 범위에 포함될 수 있음을 의미한다. 어떤 구성요소(component)가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기의 2개의 구성요소들이 서로 간에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있으나, 상기의 2개의 구성요소들의 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
제1 및 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기의 구성요소들은 상기의 용어들에 의해 한정되어서는 안 된다. 상기의 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하여 지칭하기 위해서 사용된다. 예를 들어, 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
또한 실시예들에 나타나는 구성요소들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성요소가 분리된 하드웨어나 하나의 소프트웨어 구성 단위로만 이루어짐을 의미하지 않는다. 즉, 각 구성요소는 설명의 편의상 각각의 구성요소로 나열된 것이다. 예를 들면, 구성요소들 중 적어도 두 개의 구성요소들이 하나의 구성요소로 합쳐질 수 있다. 또한, 하나의 구성요소가 복수의 구성요소들로 나뉠 수 있다. 이러한 각 구성요소의 통합된 실시예 및 분리된 실시예 또한 본질에서 벗어나지 않는 한 권리범위에 포함된다.
또한, 일부의 구성요소는 본질적인 기능을 수행하는 필수적인 구성요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성요소일 수 있다. 실시예들은 실시예의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 예를 들면, 단지 성능 향상을 위해 사용되는 구성요소와 같은, 선택적 구성요소가 제외된 구조 또한 권리 범위에 포함된다.
이하에서는, 기술분야에서 통상의 지식을 가진 자가 실시예들을 용이하게 실시할 수 있도록 하기 위하여, 첨부된 도면을 참조하여 실시예들을 상세히 설명하기로 한다. 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
아래의 실시예들은, 안전한(secure) 그룹 통신을 위해서 "암호법의(cryptographic) 키 교환(exchange)"에 대해 거센(crucial) 도전을 다루고 있다.
아래의 실시예들은 5 개의 서브-혁신(innovation) 파트들로 구성될 수 있다. 서브-혁신 파트들은 다음과 같다. 1. 그룹의 특성(characteristic)들, 2. 키잉(keying) 시스템, 3. 새 맴버의 추가의 알고리즘, 4. 맴버가 그룹을 이탈할 때의 비밀의 키의 갱신의 알고리즘, 5. 2개의 그룹들의 합성 및 분할. 이러한 5 개의 파트들은 도면들을 참조하여 설명된다.
노드
도 1은 일 실시예에 따른 노드의 구성을 나타낸다.
노드(100)는 처리부(110), 통신부(120) 및 저장부(130)를 포함할 수 있다.
처리부(110)는 노드(100)의 동작을 위해 요구되는 작업을 처리할 수 있다. 처리부(110)는 실시예들에서 설명되는 처리부(110)의 동작 또는 단계의 코드를 실행(execute)할 수 있다.
처리부(110)는 데이터 또는 정보의 생성 및 처리를 수행할 수 있고, 데이터 또는 정보에 관련된 검사, 비교 및 판단 등을 수행할 수 있다. 말하자면, 실시예에서 데이터 또는 정보의 생성 및 처리와 데이터 또는 정보에 관련된 검사, 비교 및 판단은 처리부(110)에 의해 수행될 수 있다.
예를 들면, 처리부(110)는 노드(100)의 그룹에 대한 프로토콜을 처리할 수 있다.
예를 들면, 처리부(110)는 데이터 또는 정보의 암호화 및/또는 복호화를 수행할 수 있고, 후술될 키 및 상태 벡터(state vector)를 생성, 관리 및 사용할 수 있다.
예를 들면, 처리부(110)는 적어도 하나의 프로세서(processor)일 수 있다.
통신부(120)는 노드(100)의 동작을 위해 요구되는 데이터 또는 정보를 수신할 수 있으며, 노드(100)의 동작을 위해 요구되는 데이터 또는 정보를 전송할 수 있다.
통신부(120)는 네트워크 내의 다른 장치로 데이터, 정보 또는 메시지를 전송할 수 있고, 다른 장치로부터 데이터 또는 정보를 수신할 수 있다. 말하자면, 실시예에서 데이터 또는 정보의 전송 또는 수신은 통신부(120)에 의해 수행될 수 있다.
예를 들면, 통신부(120)는 노드의 그룹에 대한 프로토콜을 위한 정보, 데이터 및 메시지를 송신하거나, 수신할 수 있다.
예를 들면, 통신부(120)는 네트워킹 칩(chip) 네트워킹 인터페이스(interface) 또는 통신 포트(port)일 수 있다.
저장부(130)는 노드(100)의 동작을 위해 요구되는 데이터 또는 정보를 저장할 수 있다. 실시예에서, 노드(100)가 갖는 데이터 또는 정보는 저장부(230) 내에 저장될 수 있다.
예를 들면, 저장부(130)는 노드(100)의 비밀의 넌스 또는 키를 저장할 수 있다.
예를 들면, 저장부(130)는 메모리(memory)일 수 있다. 저장부(130)는 램(RAM) 및 플레시(flash) 메모리 등과 같은 내장형의 저장 매체를 포함할 수 있고, 메모리 카드 등과 같은 탈착가능한 저장 매체를 포함할 수 있다.
저장부(130)는 적어도 하나의 프로그램을 저장할 수 있다. 처리부(110)는 적어도 하나의 프로그램을 실행할 수 있다. 처리부(110)는 저장부(130)로부터 적어도 하나의 프로그램의 코드를 독출(read)할 수 있고, 독출된 코드를 실행할 수 있다.
노드(100)의 처리부(110), 통신부(120) 및 저장부(130)의 동작, 기능 및 특징에 대해서 실시예들을 참조하여 아래에서 상세하게 설명된다.
프로토콜 스케치 및 상정(assumption)들
도 2은 일 예에 따른 프로토콜의 개요(overview)를 나타낸다.
실시예들에서, 신규의 비밀의 그룹 키 동의(agreement) 프로토콜 스위트(suite)가 개시된다.
프로토콜 스위트는 4개의 근본적인(fundamental) 프로토콜들을 포함할 수 있다. 4개의 근본적인 프로토콜들은, 1) 가입(join), 2) 이탈(leave), 3) 병합(merge) 및 4) 분할(partition)일 수 있다.
만약, 새로운 노드 또는 노드들의 그룹이 인증 시스템에 의해 인증되었고, 유효한(valid) 가입(joining) 태그(tag)를 보유(possess)하고 있다면, 그룹 가입 요청을 수신함에 따라, 프로토콜이 진행할 수 있다.
또한, 인증 권한자(authority)는 그룹의 현재의 리더 및 그룹의 이전의 리더의 암호화된(encrypted) 비밀의 넌스(nonce)들을 이미 알고 있다는 것이 가정된다.
기보법들(notations)
아래에서 설명될 실시예들에서, 엔티티(entity), 정보 및 변수 등에 대해 아래의 기보법(notation)이 사용될 수 있다.
Ni : 그룹의 노드들 중 i번째 노드.
ni : i번째 노드의 비밀의 넌스. 아래에서, 비밀의 넌스는, 비밀의 정보 또는 비밀로 약술될 수 있다.
Si : i번째 노드의 상태 벡터(state vector). i번째 노드의 상태 백터는 i번째 노드에게 알려진 모든 비밀의 넌스(들)의 집합일 수 있다.
Xs : 동적 그룹의 모든 맴버들 간에서 생성되고 공유된 비밀의 넌스(들)의 집합.
XN : 동적 그룹의 모든 맴버들의 노드 식별자(identifier; ID)들의 집합. Xs의 ID들에 대응함.
Ys : Xs의 부분집합
YN : XN의 부분집합. Ys의 ID들에 대응함.
KY : Ys 의 요소들로부터 유래된(derived) 키.
KP : 공개 키
KG : 그룹 키
EA(B) : 키 KA를 사용하는 B의 암호화, 또는 키 KA에 의해 암호화된 B. KA는 임의의 유효한 KY, KP 또는 KG 등일 수 있다.
f(Ys) : 함수(function) f는 {ni, ni+1}을 입력 인자(argument)로서 취하고, KG를 생성하는 비가역의(irreversible) 함수.
|| : 용어들(terms)의 연쇄(concatenation)을 나타내는 심볼.
Figure pat00001
: 용어의 설명 부분(explicate part)을 나타내는 심볼
S
Figure pat00002
m: S가 m을 생성한다는 것을 가리킴.
그룹의 특성들
도 3은 일 실시예에 따른 비밀의 공유를 수행하는 노드들의 그룹의 논리적인 구조를 나타낸다.
도 3에서, 사각형은 노드를 나타낼 수 있다. 사각형 내의 Ni는 그룹의 노드들 중 i 번째 노드를 나타낼 수 있으며, 노드의 식별자를 나타낼 수 있다.
이하에서, "그룹의 노드들" 및 "그룹의 맴버들"은 동일한 의미로 사용될 수 있다.
그룹의 각 맴버는 비밀의 넌스를 생성할 수 있다. 비밀의 넌스는 하나의 맴버를 제외한 그룹의 모든 맴버들에게 알려져야할 수 있다.
도 3에서, 사각형 내의 Si는 노드의 상태 벡터를 나타낼 수 있다.
비밀의 넌스의 지역적인(local) 인지(knowledge)는 맴버의 상태 벡터를 나타낼 수 있다. 말하자면, 노드의 상태 벡터는 그룹의 맴버들의 비밀의 넌스들 중 노드가 알고 있는 넌스들을 나타낼 수 있다.
N 개의 맴버들의 그룹에서, 모든 맴버들은 N-1의 크기의 상태 벡터를 가질 수 있다. 또한, 각 맴버는 상태 벡터 Si를 가질 수 있다. 상태 벡터 Si는 Xs-ni-1 의 비밀의 넌스들일 수 있다.
예를 들면, 도 3에서, N2는 n1을 제외한 모든 넌스들을 알 수 있다. N3은 n2를 제외한 모든 넌스들을 알 수 있다.
도 3에서, 사각형들 간의 화살표는 노드들 간의 포인터(pointer)를 나타낼 수 있다. 화살표가 출발하는 노드는 화살표가 도달하는 노드를 가리키는 포인터를 포함할 수 있다. 예를 들면 노드 N1의 포인터는 노드 N2를 가리킬 수 있다.
그룹의 맴버들은 논리적인 환형(circular) 링크된(linked) 리스트를 구성할 수 있다. 맴버들이 논리적인 환형 링크된 리스트로 배열된 것을 고려할 때, 다음 노드로의 포인터는 현재 노드의 넌스의 다음 노드로에 대한 비밀성(secrecy)을 가리킬 수 있다.
예를 들면, 노드 N1의 포인터가 노드 N2를 가리킨다는 것인 노드 N1의 비밀의 넌스가 노드 N2에게는 알려지지 않는다는 것을 나타낼 수 있다. 또는, 노드의 상태 벡터는 논리적인 환영 링크된 리스트에서 노드의 바로 옆에 연결된 이웃 노드를 제외한 그룹의 모든 노드들의 비밀의 넌스들을 포함할 수 있다. 여기에서, "바로 옆에 연결된 이웃 노드"란 노드 자신을 가리키는 포인터를 포함하고 있는 다른 노드를 의미할 수 있다. 또는, "바로 옆에 연결된 이웃 노드"란 노드 자신의 바로 앞 번호의 다른 노드를 나타낼 수 있다. 노드가 그룹에서 첫 번째의 노드인 경우 "바로 옆에 연결된 이웃 노드"는 그룹의 마지막 노드일 수 있다. 또는, 노드 Ni의 바로 옆에 연결된 이웃 노드는 노드 Ni-1일 수 있다. 여기에서, i=1일 경우, i-1은 N으로 대체될 수 있다.
또는, 노드의 비밀의 넌스는 환형 링크된 리스트에서 노드의 바로 옆에 연결된 이웃 노드를 제외한 그룹의 모든 노드들과 공유될 수 있다. 여기에서, "바로 옆에 연결된 이웃 노드"란 노드의 포인터가 가리키는 다른 노드를 의미할 수 있다.
그룹 맴버들 간에 논리적 링크를 생성한다는 이러한 새로운 접근방식은 실시예들의 프로토콜에 있어서의 키 펙터(key factor)일 수 있다. 공유된 넌스를 사용함으로써 각 맴버는 다수의 비밀의 키들을 생성 및 공유할 수 있다.
키잉 시스템
키 KG 이외에도, 그룹의 각 노드는 논리적으로 알려진 비밀의 넌스들의 집합 Si에 기반하여 다중의 암호법의 멀티케스트 키들 KY를 생성할 수 있다. 다중의 암호법의 키들이 생성될 수 있다는 실시예들의 강력한 특성은 그룹의 노드들에게 다수의 비밀의 멀티캐스팅 서브 그룹들을 제공할 수 있다.
멀티캐스팅 키 KY는 함수 f(Y)에 기반하여 생성될 수 있다. 함수 f(Y)는 아래의 수학식 1과 같이 정의될 수 있다.
Figure pat00003
집합 KS의 비밀성을 보장(ensure)하기 위해, 집합 YN은 노드들의 상태 집합 Si로부터 유효한 비밀의 넌스 Ys를 추출하기 위한 인덱스 값으로서 사용될 수 있다.
오직, 집합 YN 내에 참여된(enlisted) 노드들의 ID들에 대응하는 비밀의 넌스를 보유하고 있는(hold) 노드들이 키 KY를 생성할 수 있다. 예를 들면, 만약, Ys⊆Si이면, KY는 모든 노드들 Ni에 대하여 유효한 키일 수 있다. 만약, Ys=Si이면, Ky는 노드 Ni의 프라이빗(private) 키일 수 있다. |XN|의 그룹 크기가 N일 때, 가능한 멀티캐스팅 키들의 개수 w는 아래의 수학식 2와 같이 정의될 수 있다.
Figure pat00004
그러나, 각 노드는 Z 개의 비밀의 서브 그룹 통신에 참여 또는 시작할 수 있다. 여기에서, Z⊆W이고, Z는 아래의 수학식 3과 같이 정의될 수 있다.
Figure pat00005
예를 들면, N의 값이 7이면, 노드들의 그룹의 시스템에서 총 119 개의 가능한 키들이 존재할 수 있다. 이러한 키들의 개수는 119 개의 서브 그룹들이 생성될 수 있다는 것을 나타낼 수 있다. 119 개의 서브 그룹들에서, 각 노드는 (최대로) 63 개의 서브 그룹들에 참여할 수 있다.
그룹의 그룹 키 KG는 아래의 수학식 4와 같이 해쉬 함수에 의해 생성될 수 있다.
Figure pat00006
그룹의 노드들 중 하나의 노드는 스폰서(sponsor) 노드일 수 있다. ni는 노드 Ni의 비밀의 넌스일 수 있다. ni는 스폰서 노드일 수 있다. 또는, Ni+1이 그룹을 이탈하는 경우, ni는 논리적 링크된 리스트 내에서 Ni+1의 바로 직전의 노드일 수 있다.
제안된 스킴
프로토콜 스위트는 4개의 근본적인(fundamental) 프로토콜들을 포함할 수 있다. 4개의 근본적인 프로토콜들은, 1) 가입(join), 2) 이탈(leave), 3) 병합(merge) 및 4) 분할(partition)일 수 있다.
모든 이러한 프로토콜들은 아래의 중요한(prominent) 특징들(features)을 갖는 공동의(joint) 프레임워크를 공유할 수 있다.
- 각 그룹 맴버는 아래에서 정의될 그룹의 특성들(characteristics)을 보존(preserve)하기 위한 상태 벡터를 유지에 일조할 수 있다.
- 노드의 추가 또는 제거 시, 그룹의 모든 노드들은 이전의 키잉 재료를 갱신할 수있다.
- 각 노드는 Z 개의 비밀의 서브 그룹 통신에 참여 및/또는 시작할 수 있다. 여기에서, Z ⊆W일 수 있다.
각 맴버쉽 이벤트에 따라, 모든 맴버들은 독립적으로 상태 벡터를 갱신할 수 있고, 요구에 따라서(on demand) 모든 가능한 키들을 계산할 수 있다. 실시예들의 프로토콜은 고도로 분산될 수 있다. 모든 프로토콜에 참가하는 노드들은, 몇몇 가외의(extra) 연산들(operations)을 수행할 것이 요구되는 스폰서 노드 외에는, 프로토콜의 실행에서 있어서 동등하게 참여할 수 있다.
도 4는 일 예에 따른 노드의 동작을 설명하는 흐름도이다.
단계(410)에서, 노드(100)는 그룹에 가입할 수 있다. 그룹으로의 가입에 대하여 아래에서 도 5를 참조하여 상세하게 설명된다.
노드(100)가 그룹에 가입한 후, 단계들(420, 430 및 440) 중 하나가 수행될 수 있다.
단계(420)에서, 노드의 그룹은 다른 그룹과 병합될 수 있다. 그룹들의 병합에 대하여 아래에서 도 12를 참조하여 상세하게 설명된다.
단계(430)에서, 노드의 그룹은 2 개의 그룹들로 분할될 수 있다. 그룹의 분할에 대하여 아래에서 도 15를 참조하여 상세하게 설명된다.
단계(440)에서, 노드는 그룹으로부터 이탈할 수 있다. 노드의 그룹으로부터의 이탈에 대해서 아래에서 도 8을 참조하여 상세하게 설명된다.
가입 프토토콜
도 5는 일 예에 따른 가입 프로토콜의 흐름도이다.
가입 프로토콜은 그룹으로의 가입을 원하는 잠재적인 맴버가 유효한 가입 요청을 그룹의 스폰서 노드로 전송할 때 개시될(initiated) 수 있다.
아래에서, Ni는 그룹의 현재의 스폰서 노드일 수 있다. Nj는 그룹으로의 가입을 원하는 노드일 수 있다. Nj는 가입 요청을 포함하는 유효한 가입 요청을 Ni로 전송할 수 있다.
가입 요청의 가입 티켓은 아래의 수학식 5와 같이 정의될 수 있다.
Figure pat00007
스폰서 노드가 유효한 가입 티켓을 수신한 후에, Nj는 그룹에 추가될 수 있다. Nj가 그룹에 추가됨에 따라 Nj는 이전의 스폰서 노드 Ni의 비밀의 넌스 ni를 알 수 있다.
가입 요청의 멀티캐스팅에 따라, 프로토콜은 아래와 같이 진행될 수 있다.
단계(510)에서, Nj에 의해 가입 요청이 전송될 수 있다. 단계(510)의 동작은 아래의 수학식 6과 같이 표현될 수 있다.
Figure pat00008
단계(510)에서, Nj는 가입 요청을 멀티캐스트할 수 있다. 가입 요청은 멀티캐스팅 키 KY로 암호화될 수 있다. 멀티캐스팅 키 KY는 Ni의 비밀의 넌스에서 유래될 수 있다.
가입 요청이 멀티캐스팅 키 KY로 암호화됨에 따라, Ni+1을 제외한 그룹의 모든 맴버들은 nj를 획득할 수 있다.
그룹의 모든 맴버들은 인증 서버의 서명 및 발송자의 서명을 검증(verify)함으로써 발송자의 진본성(authenticity)를 확정(confirm)할 수 있다.
단계(520)에서, 새로운 노드 Nj를 포함하는 새로운 논리적인 링크가 설립될 수 있다. 단계(520)의 동작은 아래의 수학식 7과 같이 표현될 수 있다.
Figure pat00009
단계(520)에서, 스폰서 노드 Ni는 스폰서 노드의 비밀의 넌스 ni를 Ni+1와 공유할 수 있다.
비밀의 넌스 ni가 공유되면, 지체 없이(straight away) 노드 Ni+1은 Ni와의 논리적인 링크를 깰(break) 수 있고, 노드 Nj와의 새로운 논리적인 링크를 설립할 수 있다. 다른 말로, Nj는 Ni 및 Ni+1의 사이에 추가될 수 있다.
또한, Ni는 nj의 해쉬 값을 Ni+1과 공유할 수 있다. nj의 해쉬 값은 새로운 그룹 키를 생성하기 위해 Ni로부터 Ni+1로 전송될 수 있다.
단계(530)에서, 그룹의 맴버들의 상태 백터들이 갱신될 수 있다. 단계(530)의 동작은 아래의 수학식 8과 같이 표현될 수 있다.
Figure pat00010
단계(530)에서, Nj를 제외한 그룹의 모든 멤버들은 새로운 그룹 키를 생성할 수 있고, 스폰서 노드의 비밀의 넌스를 갱신함으로써 멤버들의 상태 벡터들을 갱신할 수 있다.
단계(540)에서, 새로운 노드와 그룹에 대한 정보가 공유될 수 있다. 단계(540)의 동작은 아래의 수학식 9와 같이 표현될 수 있다.
Figure pat00011
단계(540)에서, Ni는 Ni 자신의 비밀의 넌스를 제외한 Ni의 상태 벡터 및 새로운 그룹 키를 Nj와 공유할 수 있다. 아래의 수학식 10은 이러한 공유를 나타낼 수 있다.
Figure pat00012
도 6은 일 예에 따른 노드가 가입하기 이전의 노드들의 상태를 나타낸다.
도 6에서는, 새로운 노드 N4가 노드 N3에게 가입 요청을 전송하는 것이 도시되었다.
도 7은 일 예에 따른 노드가 가입한 이후의 노드들의 상태를 나타낸다.
도 7에서, 가입 프로토콜의 실행 후에, N4가 N3 및 N1의 사이에 추가되었다.
이탈 프토토콜
도 8은 일 예에 따른 이탈 프로토콜의 흐름도이다.
이탈 프로토콜은 유효한 맴버가 무효하게(invalid) 되거나, 유효한 맴버가 그룹의 맴버쉽에 대한 구독해지(unsubscribe)할 때 개시될 수 있다.
아래에서, Nj는 그룹의 현재의 스폰서일 수 있다. Ni는 그룹으로부터 이탈하는 노드일 수 있다.
이탈 이벤트가 발생함에 따라, 그룹의 스폰서 Nj는 이탈 프로토콜을 초기화할 수 있다. 이탈 프로토콜은 아래와 같이 진행할 수 있다.
단계(810)에서, 새로운 그룹 키가 생성될 수 있다. 단계(810)의 동작은 아래의 수학식 11과 같이 표현될 수 있다.
Figure pat00013
단계(810)에서, Ni이 그룹으로부터 이탈할 때, 스폰서 노드 Nj는 Nj의 비밀의 넌스 nj를 갱신할 수 있다. nj는 아래의 수학식 12와 같이 정의될 수 있다.
Figure pat00014
또한, 스폰서 노드 Nj는 새로운 그룹 키 KG를 생성할 수 있다. KG는 아래의 수학식 13과 같이 정의될 수 있다.
Figure pat00015
nrandom은 난수일 수 있다.
또한, 스폰서 노드 Nj는 맴버 Ni-1의 비밀의 넌스 ni-1을 갱신함으로써 Nj의 상태 벡터를 갱신할 수 있다. ni-1는 아래의 수학식 14와 같이 갱신될 수 있다.
Figure pat00016
그러나, 스폰서 노드 Nj는 아래의 단계(820)가 성공적으로 완료될 때까지 ni-1의 구(old) 값을 보존(keep)할 수 있다.
전술된 맴버 Ni-1의 비밀의 넌스 ni-1의 갱신은 논리적인 연결된 리스트 내에서 스폰서 노드 Nj가 이탈하는 맴버 Ni의 옆에 있을 경우 생략될 수 있다. 말하자면, 아래의 수학식 15가 성립할 경우, 맴버 Ni-1의 비밀의 넌스 ni-1의 갱신은 생략될 수 있다.
Figure pat00017
새 그룹 키가 생성되고, 상태 백터가 갱신된 후, Nj는 nrandom과 결합된 분할 메시지를 멀티캐스트할 수 있다.
멀티캐스팅 키 KY는 집합 YN으로부터 유래될 수 있다. YN은 아래의 수학식 16과 같이 정의될 수 있다.
Figure pat00018
멀티캐스팅 키 KY가 집합 YN으로부터 유래된다는 것은, 오직 남는 멤버들 XN'만이 분할 메시지를 획득할 수 있다는 것을 의미할 수 있다.
또한, 스폰서 노드 Nj가 ni-1을 갱신했음에도 불구하고, 스폰서 노드 Nj는 아래의 단계(820)가 성공적으로 완료될 때까지 멀티캐스팅되는 메시지에 대해서 여전히 ni-1의 구 값을 사용할 수 있다.
ni-1-Si이기 때문에, 이탈하는 노드 Ni는 분할 메시지를 복호화할 수 없을 수 있고, 따라서 이탈하는 노드 Ni는 새로운 그룹 키를 생성하지 못할 수 있다. 이탈하는 노드 Ni가 분할 메시지를 복호화하지 못하고, 새로운 그룹 키를 생성하지 못함에 따라 전방 보안성(forward secrecy)이 보장될 수 있다.
단계(820)에서, 새로운 논리적인 링크가 생성될 수 있다. 단계(820)의 동작은 아래의 수학식 17와 같이 표현될 수 있다.
Figure pat00019
새로운 그룹 키를 생성하기 위한 인자들(arguments)을 수신한 후, Ni+1 를 제외한 그룹의 모든 맴버들은 새로운 그룹 키 KG를 생성할 수 있고, ni와 함께 ni-1의 구 값을 해싱함으로써 넌스 ni-1를 갱신하여 생태 벡터들을 갱신할 수 있다.
이탈하는 맴버에게는 nrandom이 미지(unknown)이기 때문에, 단계(820)은 이탈하는 맴버가 새로운 그룹키를 생성하지 못한다는 것을 보장할 수 있다. 또한, ni는 Ni+1에게 미지이기 때문에, 단계(820)은 맴버 Ni+1이 ni-1를 생성하지 못해야 한다는 것을 보장할 수 있다.
이러한 이유로, 단계(820)의 이후에 아래의 수학식 18이 성립할 수 있고, Ni-1 및 Ni+1 간의 새로운 논리적인 링크가 생성될 수 있다.
Figure pat00020
단계(830)에서, 스폰서 노드에 의해 생성된 그룹 키가 공유될 수 있다. 단계(830)의 동작은 아래의 수학식 19와 같이 표현될 수 있다.
Figure pat00021
단계(830)에서, 마지막으로, 스폰서 노드 Nj는 그룹 키를 노드 Ni+1와 공유할 수 있다.
도 9는 일 예에 따른 노드가 이탈하기 이전의 노드들의 상태를 나타낸다.
도 9에서는, 노드 N4가 그룹으로부터 이탈하기 전의 노드들의 상태가 도시되었다.
도 10은 일 예에 따른 노드가 이탈한 이후의 노드들의 상태를 나타낸다.
도 10에서, N4는 그룹으로부터 이탈하였다. 이탈 프로토콜을 실행함으로써, 그룹의 모든 남은 맴버들은 상태 벡터들을 갱신할 수 있고, 새로운 그룹 키를 생성할 수 있다.
병합 프토토콜
k 개의 작은 그룹들을 하나의 큰 그룹으로 병합하기 위해, 병합 프로토콜이
Figure pat00022
라운드들 내에 k-1 회 동시에(concurrently) 실행될 수 있다.
도 11은 일 예에 따른 6 개의 작은 그룹들을 하나의 더 큰 그룹으로 병합하는 과정을 나타낸다. 병합 프로토콜의 각 실행에 의하여, 2 개의 서브 그룹들이 하나의 그룹으로 병합될 수 있다.
도 11에서, 병합은
Figure pat00023
(= 3) 개의 라운드들 내에서 완료될 수 있다.
도 12는 일 예에 따른 병합 프로토콜의 흐름도이다.
병합 프로토콜은 스폰서 노드가 다른 그룹의 스폰서 노드에게 유효한 가입 메시지를 전송할 때 개시될 수 있다.
Ni a는 그룹 a의 현재의 스폰서일 수 있다. Ni b는 그룹 b의 스폰서일 수 있다. 병합 요청의 유효한 가입 티켓을 수신한 후, 그룹 b의 맴버들은 그룹 a의 이전의 스폰서 노드의 비밀의 넌스를 알 수 있다. 가입 티켓은 아래의 수학식 20과 같이 정의될 수 있다.
Figure pat00024
병합 요청을 전송함에 따라, 병합 프로토콜은 아래와 같이 진행할 수 있다.
단계(1210)에서, Ni b에 의해 병합 요청이 전송될 수 있다. 단계(1110)의 동작은 아래의 수학식 21과 같이 표현될 수 있다.
Figure pat00025
단계(1210)에서, 그룹 b의 스폰서는 가입 메시지를 전송할 수 있다. 가입 메시지는 키 KY로 암호화될 수 있다. 키 KY는 {XN a - Ni +1 a}로부터 유래할 수 있다. 키 KY가 {XN a - Ni +1 a}로부터 유래된다는 것은, 오직 그룹 a의 스폰서 노드만이 가입 메시지를 획득할 수 있다는 것을 의미할 수 있다.
스폰서 노드 Ni a는 서명들을 검증함으로써 전송자의 진본성을 확정할 수 있다.
단계(1220)에서, Nj a에 의해 Nj a의 갱신된 비밀의 넌스가 통지될 수 있다. 단계(1220)의 동작은 아래의 수학식 22와 같이 표현될 수 있다.
Figure pat00026
단계(1220)에서, 그룹 a의 스폰서 노드는 ni a의 갱신된 값과 함께 갱신 메시지를 멀티캐스트할 수 있다. 갱신된 값은 아래의 수학식 23와 같이 정의될 수 있다.
Figure pat00027
갱신 메시지는 멀티캐스팅 키 KY로 암호화될 수 있다. 멀티캐스팅 키 KY는 Ni의 비밀의 넌스로부터 유래된 것일 수 있다. 멀티캐스팅 키 KY가 Ni의 비밀의 넌스로부터 유래된다는 것은 Ni+1를 제외한 그룹의 모든 맴버들 ni를 획득한다는 것을 의미할 수 있다.
단계(1230)에서, 병합되는 그룹의 맴버들에게 상태 벡터가 제공될 수 있다. 단계(1230)의 동작은 아래의 수학식 24와 같이 표현될 수 있다.
Figure pat00028
단계(1230)에서, Ni a는 Ni a 자신의 상태 벡터를 그룹 b의 꼬리의(tail) 노드 N1 b를 제외한 그룹 b의 모든 맴버들과 공유할 수 있다.
Ni a의 상태 벡터를 꼬리의 노드 N1 b를 제외한 그룹 b의 모든 맴버들과 공유하는 것을 보장하기 위해, Ni a는 헤드 노드 Nm b의 비밀의 넌스, 말하자면 nm b, 로부터 유래된 키 KY를 사용하여 단계(1230)의 메시지를 암호화한 후, 암호화된 메시지를 멀티캐스트할 수 있다.
단계(1240)에서, 그룹들의 병합에 따른 새로운 논리적인 링크의 일부가 설립될 수 있다. 단계(1240)의 동작은 아래의 수학식 25와 같이 표현될 수 있다.
Figure pat00029
Ni a는 비밀의 값들의 집합을 N1 b와 공유할 수 있다. 비밀의 값들의 집합은 아래의 수학식 26과 같이 정의될 수 있다.
Figure pat00030
비밀의 값들의 집합이 공유되면, 지체 없이 노드 N1 b는 Nm b와의 논리적인 링크를 깰 수 있고, 노드 Ni a와의 새로운 논리적인 링크를 설립할 수 있다.
여기에서, 단계(1220) 및 단계(1120)에서의 그룹 a의 스폰서 노드에 의해 전송되는 메시지들은 여전히 그룹 b로부터 유래된 키들로 암호화될 수 있다. 이러한 선택이 지지되는 근거는 Si a를 그룹의 다른 맴버들로부터 격리(prevent)하는 것이다.
단계(1250)에서, 병합된 그룹 b의 정보가 공유될 수 있다. 단계(1250)의 동작은 아래의 수학식 27과 같이 표현될 수 있다.
Figure pat00031
단계(1250)에서, 스폰서 노드는 Ni+1 a를 제외한 그룹 a의 모든 맴버들과 벡터 Xs b 및 KG b를 공유할 수 있다. 메시지는 KG a로 암호화될 수 있고, 나아가 Ni a로부터 유래된 KY로 암호화될 수 있다. 메시지가 KG a 및 Ni a로 암호화된다는 것은 메시지가 Ni+1 a 및 그룹 b의 모든 맴버들로부터 격리된다는 것을 의미할 수 있다.
단계(1260)에서, 그룹들의 병합에 따른 새로운 논리적인 링크가 설립될 수 있다. 단계(1260)의 동작은 아래의 수학식 28과 같이 표현될 수 있다.
Figure pat00032
단계(1260)에서, Ni-1 a는 Ni+1 a와 비밀의 값들의 집합을 공유할 수 있다. 비밀의 값들의 집합은 아래의 수학식 29와 같이 정의될 수 있다.
Figure pat00033
비밀의 값들이 공유되면, 지체 없이 노드 Ni+1 b는 Ni b와의 논리적인 링크를 깰 수 있고, 노드 Nm b와의 새로운 논리적인 링크를 설립할 수 있다.
다른 말로, 그룹 b는 Ni a 및 Ni+1 a 사이에 삽입될 수 있다. 그룹 b 및 그룹 a의 모든 맴버들은 공통의 그룹 키 KG b를 공유할 수 있고, 새로운 비밀의 값들로 상태 벡터를 갱신할 수 있다. 그룹 b 및 그룹 a의 모든 맴버들은 공통의 그룹 키의 공유 및 상태 벡터의 갱신을 통해 논리적인 링크들을 유지할 수 있다.
도 13은 일 예에 따른 노드들이 병합되기 이전의 노드들의 상태를 나타낸다.
도 13에서는, 그룹 b의 N3 b가 가입 메시지를 N2 a로 전송하는 것이 도시되었다.
도 14은 일 예에 따른 노드들이 병합된 이후의 노드들의 상태를 나타낸다.
도 14에서, 병합 프로토콜의 실행 후에, 그룹 b의 노드들이 N2 a 및 N3 a의 사이에 추가되었고, 병합에 의해 생성된 그룹의 모든 맴버들은 그룹들의 병합에 맞춰 상태 백터들을 갱신하였다.
분할 프토토콜
도 15는 일 예에 따른 분할 프로토콜의 흐름도이다.
N 개의 맴버들을 갖는 그룹이 존재한다고 가정하면, M 개의 맴버들이 그룹을 동시에 이탈하거나, 다른 그룹을 만들 수 있다. 그룹의 전체의 맴버들은 집합 XN으로 표현될 수 있다. 그룹으로부터 이탈하여 새로운 그룹을 생성하는 노드들은 XM으로 표현될 수 있고, 남은 노드들은 XN'으로 표현될 수 있다.
그룹의 현재의 스폰서 노드 Ni는 분할 프로토콜을 개시할 수 있다.
단계(1510)에서, 그룹 키가 갱신될 수 있다. 단계(1510)의 동작은 아래의 수학식 30와 같이 표현될 수 있다.
Figure pat00034
단계(1510)에서, 분할 이벤트가 발생함에 따라 스폰서 노드 Nj는 비밀의 넌스 nj를 갱신할 수 있다. nj는 아래의 수학식 31과 같이 정의될 수 있다.
Figure pat00035
nrandom은 난수일 수 있다.
또한, 스폰서 노드 Nj는 새로운 그룹 키 KG를 생성할 수 있다. KG는 아래의 수학식 32와 같이 정의될 수 있다.
Figure pat00036
Nj는 nrandom과 결합된 분할 메시지를 멀티캐스트할 수 있다.
멀티캐스팅 키 KY는 집합 YN으로부터 유래될 수 있다. YN은 아래의 수학식 33과 같이 정의될 수 있다.
Figure pat00037
멀티캐스팅 키 KY가 집합 YN으로부터 유래된다는 것은 오직 남아 있는 멤버 노드들 XN'만이 분할 메시지를 획득할 수 있다는 것을 의미할 수 있다.
또한, 멀티캐스팅 키 KY가 집합 YN으로부터 유래된다는 것은 모든 맴버들 ni가 지역적인 비밀 리스트로부터 모든 맴버들 nk를 제거한다는 것을 의미할 수 있다. ni는 아래의 수학식 34과 같이 표현될 수 있다. nk는 아래의 수학식 35와 같이 표현될 수 있다.
Figure pat00038
Figure pat00039
단계(1520)에서, 그룹의 분할에 따른 그룹의 맴버들의 상태 벡터들이 갱신될 수 있다. 단계(1520)의 동작은 아래의 수학식 36과 같이 표현될 수 있다.
Figure pat00040
단계(1520)에서, 새로운 그룹 키를 생성하기 위한 인자들(arguments)을 수신한 후, Ni-1 를 제외한 그룹의 모든 맴버들은 새로운 그룹 키 KG를 생성할 수 있고, 함수 G를 실행함으로써 상태 벡터들을 갱신할 수 있다.
함수 G는 생성될 수 없는 비밀의 넌스들 및 그룹을 이탈한 노드들에 속하는 비밀의 넌스들을 폐기(discard)함으로써 모든 남아 있는 노드들의 상태 벡터를 갱신할 수 있다.
예를 들면, 만약 아래의 수학식 37이 성립할 때, 함수 G는 ni를 갱신할 수 있다. ni는 아래의 수학식 38과 같이 정의될 수 있다.
Figure pat00041
Figure pat00042
여기에서, nj는 논리적인 연결된 리스트의 연속된(contiguous) 이탈하는 노드들의 헤드의 비밀의 넌스일 수 있다.
이탈하는 맴버들이 논리적인 링크된 리스트 내에서 비-연속적(noncontiguous)일 때의 최악의 케이스에서는, 함수 G는 각 맴버의 상태 벡터를 갱신하기 위해 |XN-XM| 회의 해쉬 연산들을 수행할 수 있다.
이탈하는 맴버들이 논리적인 링크된 리스트 내에서 연속적일 때의 최상의 케이스에서는 함수 G는 각 맴버의 상태 벡터를 갱신하기 위해 단지 한 번의 해쉬 연산만을 수행할 수 있다.
단계(1530)에서, 그룹 키가 전달될 수 있다. 단계(1530)의 동작은 아래의 수학식 39와 같이 표현될 수 있다.
Figure pat00043
단계(1530)에서, Ni-1는 nj의 값을 모르기 때문에, 스폰서 노드 Nj는 그룹 키를 Ni-1로 명시적으로(explicitly) 전송할 수 있다.
여섯 맴버들 {N1, N2, N3, N4, N5, N6}의 그룹 X6이 존재하고, N3이 스폰서 노드이며, {N1, N2, N5}가 그룹을 동시에 이탈할 경우, 아래의 단계 1 및 단계 2수행될 수 있다.
단계 1에서, N3은 새로운 그룹 키 KG를 생성할 수 있고, 암호화 키 KY를 사용하여 분할 메시지를 N4 및 N6으로 멀티캐스트할 수 있다. 분할 메시지는 1) 새로운 그룹 키 및 2) 맴버들 XM의 목록을 포함할 수 있다.
암호화 키 KY는 YN으로부터 유래할 수 있다. YN는 아래의 수학식 40과 같이 정의될 수 있다.
Figure pat00044
단계 2에서, 분할 메시지를 수신한 후, 모든 남아 있는 맴버들은 상태 벡터를 갱신할 수 있다. 상태 벡터들에 관련하여 아래의 수학식 41, 수학식 42 및 수학식 43이 성립할 수 있다.
Figure pat00045
Figure pat00046
Figure pat00047
도 16은 일 예에 따른 노드들이 분할되기 이전의 노드들의 상태를 나타낸다.
도 16에서는, 노드들 N1, N2 및 N5가 이탈하기 이전의 노드들의 상태가 도시되었다.
도 17은 일 예에 따른 노드들이 분할된 이후의 노드들의 상태를 나타낸다.
도 17에서, 노드들 N1, N2 및 N5가 그룹을 이탈한 후에 남아 있는 노드들의 상태가 도시되었다.
더 큰 그룹에 대한 스케일러블한 프로토콜
각각의 가입 메시지 또는 이탈 메시지에 대해서, 그룹의 크기에 비례하는 해쉬 연산들의 수행이 요구될 수 있다. 실시예들은 그룹의 크기가 수백만의 사용자들에 도달할 때 스케일러빌리티의 문제에 직면할 수 있다. 예를 들면, 1 백만의 맴버들의 그룹 내에서, 각 맴버는 999999 개의 비밀의 넌스들의 상태 벡터를 유지해야 할 수 있다. 메모리 소비(consumption)의 관점에서, 이러한 상태 백터는 대략 40MB(Mega Byte) 정도의 메모리를 요구할 수 있다. 이러한 메모리에 대한 요구는 현대의 말단 사용자 디바이스들에 대해서는 이슈가 되지 않을 수 있으나, 각각의 이탈 이벤트 및 가입 이벤트에 대하여 실시예들의 프로토콜은 거의 1 백만 번의 해쉬 연산들을 수행해야 할 수 있다. 큰 크기의 그룹에서는, 이탈 이벤트 또는 가입 이벤트의 발생 확률 또한 증가할 수 있다.
스케일러빌리티의 문제는 큰 그룹을 다중의 레이어들 내의 더 작은 연쇄된(cascaded) 그룹들로 분할함으로써 해결될 수 있다.
아래에서는, N 개의 맴버들이 k 개의 그룹들로 나뉘어지고, 각 그룹 Gi가 Gi 자신의 그룹 키 KG i를 갖는 경우가 설명된다.
그룹 키 KG i는 아래의 수학식 44와 같이 표현될 수 있다.
Figure pat00048
그룹 키 KG i는 공유될 수 있고, 전술된 실시예들에서 설명된 것과 같이 생성될 수 있다. 모든 이러한 그룹들은 각 그룹 Gi를 슈퍼-그룹의 논리적인 맴버로서 간주하고, 각 그룹 Gi에 대응하는 그룹 키 KG i를 각 그룹 Gi 비밀의 넌스로 간주함으로써 슈퍼-그룹 SGi를 생성할 수 있다.
이러한 종류의 정렬로 인해, 모든 그룹들 및 그룹의 모든 맴버들은 슈퍼-그룹 레벨에서 생성된 공통의 그룹 키를 공유할 수 있다. 슈퍼 그룹 SGi는 울트라-슈퍼-그룹 USGi를 생성하기 위해 더 나아가서 연쇄될 수 있으며, 그 이상도 가능할 수 있다.
연쇄된 그룹은 새로운 그룹 키를 위한 비밀의 넌스의 갱신들의 요구되는 개수를 최 하단의(lowest) 그룹 레벨로 제한할 수 있다.
예를 들면, 슈퍼-그룹 SG를 생성하기 위해 그룹들이 함께 가입하는 2 개의 레벨들의 연쇄가 가정될 수 있다. 만약 SG 내의 그룹 Gi 내에서 이탈 이벤트 또는 가입 이벤트가 발생하면, 실시예들의 프로토콜이 지역적으로 수행될 수 있고, 새로운 그룹 키 KG i가 생성될 수 있다. 새로운 그룹 키 KG i는 슈퍼-그룹 레벨에서 그룹 맴버 Gi의 갱신된 비밀의 넌스로서 나아가 제공될 수 있다.
다음으로, 슈퍼-그룹 레벨에서, 슈퍼-그룹의 모둔 맴버들은 새로운 슈퍼-그룹 키를 생성할 수 있다.
도 18은 일 예에 따른 슈퍼-그룹 레벨에서의 그룹 키의 생성을 설명하는 흐름도이다.
단계(1810)에서, 새로운 지역적인 그룹 키 KG i를 생성하도록 리드하는 이벤트가 발생할 수 있다. 단계(1810)는 아래의 수학식 45와 같이 표현될 수 있다.
Figure pat00049
단계(1820)에서, 슈퍼-그룹 키가 생성될 수 있다. 단계(1820)는 아래의 수학식 46과 같이 표현될 수 있다.
Figure pat00050
슈퍼-그룹 레벨에서, Gi-1을 제외한 그룹의 모든 맴버들은 새로운 슈퍼-그룹 키를 생성할 수 있고, 생성된 슈퍼-그룹 키를 지역의 맴버들과 공유할 수 있다.
단계(1830)에서 갱신된 그룹 키가 공유될 수 있다. 단계(1830)는 아래의 수학식 47와 같이 표현될 수 있다.
Figure pat00051
단계(1830)에서, 임의의 다른 그룹 맴버 Gj는 갱신된 그룹 키를 Gi+1로 전송할 수 있다.
스케일러블한 실시예들을 위한 연쇄된 그룹 솔루션에 있어서, 하나의 가정이 요구될 수 있다. 그룹 레벨에서의 스폰서 노드는 지역적인 맴버들과는 최종의 슈퍼-그룹 키를 제외하고는 상위 레벨의 키들을 공유하지 않는 항구적이고(permanent) 신뢰된(trusted) 맴버로 간주될 수 있다.
도 19는 일 예에 따른 그룹들의 연쇄를 나타낸다.
도 19에서, k 개의 그룹들은 하나의 슈퍼-그룹을 생성하고, l 개의 슈퍼-그룹들은 하나의 큰 울트라-슈퍼-그룹을 생성할 수 있다.
울트라-슈퍼-그룹 레벨에서 생성된 그룹 키는 1) 모든 슈퍼-그룹의 그룹들 및 2) 그룹의 맴버들의 사이에서 공유될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
100: 노드
110: 처리부
120: 통신부
130: 저장부

Claims (1)

  1. 노드에 있어서,
    상기 노드의 그룹에 대한 프로토콜을 처리하는 처리부; 및
    상기 프로토콜을 위한 정보를 송신하거나, 수신하는 통신부
    를 포함하고,
    상기 그룹의 맴버들은 논리적인 환형 링크된 리스트를 구성하고,
    상기 처리부는 상태 벡터를 관리하고,
    상기 상태 벡터는 상기 논리적인 환영 링크된 리스트에서 상기 노드의 바로 옆에 연결된 이웃 노드를 제외한 상기 그룹의 모든 노드들의 비밀의 넌스들을 포함하는, 노드.
KR1020170025476A 2017-02-27 2017-02-27 인증된 동적 그룹에 대한 효율적인 그룹 키 관리를 제공하는 방법 및 장치 KR20180098841A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170025476A KR20180098841A (ko) 2017-02-27 2017-02-27 인증된 동적 그룹에 대한 효율적인 그룹 키 관리를 제공하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170025476A KR20180098841A (ko) 2017-02-27 2017-02-27 인증된 동적 그룹에 대한 효율적인 그룹 키 관리를 제공하는 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20180098841A true KR20180098841A (ko) 2018-09-05

Family

ID=63594274

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170025476A KR20180098841A (ko) 2017-02-27 2017-02-27 인증된 동적 그룹에 대한 효율적인 그룹 키 관리를 제공하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20180098841A (ko)

Similar Documents

Publication Publication Date Title
US11316677B2 (en) Quantum key distribution node apparatus and method for quantum key distribution thereof
US20200145204A1 (en) Blockchain transaction privacy enhancement through broadcast encryption
TWI816659B (zh) 容錯多節點通訊的電腦實施系統及方法
US8553887B2 (en) Method for generating dynamic group key
Bilal et al. A secure key agreement protocol for dynamic group
US11387999B2 (en) Access to secured information
EP2056521A1 (en) A method, system and device for achieving multi-party communication security
KR20100133448A (ko) 컴퓨터 클러스터 시스템들내 통신의 보안
CN113259460B (zh) 跨链交互方法及装置
US12034862B2 (en) Anonymous broadcast method, key exchange method, anonymous broadcast system, key exchange system, communication device, and program
JP7345612B2 (ja) ブラインド化された帰結の多様化を用いてブロックチェーンのエントロピーを増加させるための方法および装置
US11470065B2 (en) Protection of private data using an enclave cluster
US11973765B2 (en) Group access control
CN113239403A (zh) 一种数据共享方法及装置
JP2014530554A (ja) グループメンバによるグループ秘密の管理
EP3306855B1 (en) Authentication device, authentication system, authentication method, and program
JP5400395B2 (ja) データ配信システム、鍵管理装置および鍵管理方法
CN117675216A (zh) 一种数据处理方法及相关设备
JP2018037938A (ja) 鍵交換方法、鍵交換システム
Eugster et al. A cryptographic look at multi-party channels
KR20180098841A (ko) 인증된 동적 그룹에 대한 효율적인 그룹 키 관리를 제공하는 방법 및 장치
Kamil NOVEL LIGHTWEIGHT ENCRYPTION API FOR IOT DEVICE COMMUNICATION
SOARES KEY AGREEMENT FOR DECENTRALIZED SECURE INTRUSION DETECTION
Nelson et al. To Signal or Not to Signal? Layering Traffic Analysis Resistance on Secure Instant Messaging
KR20170055434A (ko) 시간이 지원되는 인증 프로토콜을 제공하는 방법 및 장치