KR100727387B1 - 네트워크 시스템에서의 키 관리방법 - Google Patents

네트워크 시스템에서의 키 관리방법 Download PDF

Info

Publication number
KR100727387B1
KR100727387B1 KR1020050075073A KR20050075073A KR100727387B1 KR 100727387 B1 KR100727387 B1 KR 100727387B1 KR 1020050075073 A KR1020050075073 A KR 1020050075073A KR 20050075073 A KR20050075073 A KR 20050075073A KR 100727387 B1 KR100727387 B1 KR 100727387B1
Authority
KR
South Korea
Prior art keywords
key
node
keys
nodes
generated
Prior art date
Application number
KR1020050075073A
Other languages
English (en)
Other versions
KR20060050505A (ko
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 US11/256,167 priority Critical patent/US20060095379A1/en
Publication of KR20060050505A publication Critical patent/KR20060050505A/ko
Application granted granted Critical
Publication of KR100727387B1 publication Critical patent/KR100727387B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/065Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • H04L9/0836Key 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 using tree structure or hierarchical structure
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Abstract

네트워크 시스템에서의 키 관리방법이 개시된다. 본 발명에 따른 네트워크 시스템에서의 키 관리방법은, 수개의 노드들로 이루어진 적어도 하나의 노드그룹을 포함하는 네트워크 시스템에서의 키 관리방법에 있어서, 수개의 노드들의 전부 또는 일부로 이루어진 부분집합별로 공유하는 키들을 설정하는 단계, 각 노드별로 설정된 키들의 일부를 저장하는 단계, 및 각 노드별로 입력된 일부의 키를 소정의 함수에 대입하여 설정된 나머지 키를 생성하는 단계를 통해 구현된다. 본 발명에 따르면, 암호화된 컨텐츠 및 암호화된 갱신키를 전송함에 있어서, 각 노드가 저장하여야 하는 키의 개수를 현격하게 줄일수 있게 된다.
네트워크, 키 관리, 노드, 해쉬 함수, 해쉬 체인 트리, 키 생성

Description

네트워크 시스템에서의 키 관리방법{Key Management Method in Network System}
도 1은 종래기술에 따른 Logical Key Hierarchy (LKH)를 나타낸 도면,
도 2a는 본 발명에 따른 그룹노드내의 노드가 4개인 경우에 수학식 1의 적용 패턴을 나타낸 도면,
도 2b는 본 발명에 따른 그룹노드내의 노드가 4개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면,
도 3a는 본 발명에 따른 그룹노드내의 노드가 5개인 경우에 수학식 1의 적용 패턴을 나타낸 도면,
도 3b는 본 발명에 따른 그룹노드내의 노드가 5개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면,
도 4a는 본 발명에 따른 그룹노드내의 노드가 6개인 경우에 수학식 1의 적용 패턴을 나타낸 도면,
도 4b는 본 발명에 따른 그룹노드내의 노드가 6개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면,
도 5a 내지 도 5c는 본 발명에 따른 그룹노드내의 노드가 7개인 경우에 수학식 1의 적용 패턴을 나타낸 도면,
도 5d는 본 발명에 따른 그룹노드내의 노드가 7개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면,
도 6a 내지 도 6h는 본 발명에 따른 그룹노드내의 노드가 8개인 경우에 수학식 1의 적용 패턴을 나타낸 도면, 및
도 6i 내지 도 6j는 본 발명에 따른 그룹노드 내의 노드가 8개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면이다.
본 발명은 네트워크 시스템에서의 키 관리방법에 관한 것으로, 더욱 상세하게는 해쉬 체인 트리(Hash Chain Tree)를 이용한 네트워크 시스템에서의 키 관리방법에 관한 것이다.
도 1은 종래기술에 따른 Logical Key Hierarchy (LKH)를 나타낸 도면이다.
도 1을 참조하면, 도 1에 표현된 Logical Key Hierarchy (LKH)는 40개의 노드를 포함하고 있다. 이 중 제 1층에 위치한 노드 1,노드 2,..,노드 27만이 실제의 노드이고, 그 이외의 노드인 노드 1',노드 2',..,노드 9' 와 노도 a, 노드 b, 노드 c ,노드 A는 트리구조상에서 각각 자신의 하위 브랜치에 연결된 실제의 노드(노드 1,노드 2,..,노드 27)를 포함하는 개념으로서의 가상의 노드이다. 이러한 가상의 노드들은 실제의 노드들로 이루어진 노드 그룹이라고도 할 수 있을 것이다.
이러한 Logical Key Hierarchy (LKH)를 구성한 후에, 본 발명에서는 각각의 노드에 키를 할당한다. 키를 할당하는 방식에 대해 설명하면, 먼저 노드1'에서의 키 테이블(130)을 살펴보기로 한다.
노드 1'은 노드 1,노드 2 및 노드3의 그룹으로 이루어지는 가상의 노드이다.노드 1'에서의 키 테이블(130)에는 키 1내지 키 7을 상정한다. 키 1내지 키 7은 노드 1,노드 2 및 노드 3으로 이루어질 수 있는 임의의 부분집합이 각각 공유하는 키이다. 물론 임의의 부분집합에는 공집합은 제외될 것이다.
키 1은 노드 1만이 보유하고 있는 키이며, 키 2는 노드 2만이 보유하고 있는 키이며, 키 3은 노드 1과 노드 2가 보유하고 있는 키이며, 키 4는 노드 3만이 보유하고 있는 키이며, 키 5는 노드 1과 노드 3이 보유하고 있는 키이며, 키 6은 노드 2와 노드 3이 보유하고 있는 키이며, 키 7은 노드 1, 노드 2 및 노드 3이 모두 보유하고 있는 키이다.
즉 노드 1은 노드 1'에서의 키 테이블(130)상의 키1,키3,키5,키7을 보유하게 되며, 노드 2는 노드 1'에서의 키 테이블(130)상의 키2,키3,키6,키7을 보유하게 되며, 노드 3은 노드 1'에서의 키 테이블(130)상의 키4,키5,키6,키7을 보유하게 된다. 전술한 방식과 동일한 방식으로 각각의 노드2' 내지 노드 9'에서의 키 테이블이 설정된다.
그 다음, 노드 c에서의 키 테이블(160)을 살펴보면, 키 1은 노드 7'만이 보유하고 있는 키이며, 키 2는 노드 8'만이 보유하고 있는 키이며, 키 3은 노드 7'과 노드 8'이 보유하고 있는 키이며, 키 4는 노드 9'만이 보유하고 있는 키이며, 키 5는 노드 7'과 노드 9'가 보유하고 있는 키이며, 키 6은 노드 8'과 노드 9'가 보유하고 있는 키이며, 키 7은 노드 7', 노드 8' 및 노드 9'가 모두 보유하고 있는 키이다.
그 결과, 노드 7'에 속한 노드 19, 노드 20, 노드21은 각각 노드 c에서의 키 테이블(160)상의 키1,키3,키5,키7을 모두 보유하게 되며, 노드 8'에 속한 노드 22, 노드 23, 노드24는 각각 노드 c에서의 키 테이블(160)상의 키2,키3,키6,키7을 모두 보유하게 되며, 노드 9'에 속한 노드 25, 노드 26, 노드 27은 각각 노드 c에서의 키 테이블(130)상의 키4,키5,키6,키7을 모두 보유하게 된다. 전술한 방식과 동일한 방식으로 각각의 노드 a 및 노드 b에서의 키 테이블이 설정된다.
여기서, 키1 내지 키7는 서로 다른 별개의 키이며, 또한, 생성된 모든 키 테이블에서의 키값들은 서로 독립적인 별개의 키이다. 즉, 노드 1'에서의 키 1과 노드 c에서의 키 1은 서로 다른 키일 뿐만 아니라, 노드 2'과 노드 6'에서의 키 또한 독립적인 별개의 키이다.
그 다음엔 노드 A에서의 키 테이블(190)을 살펴보기로 한다. 키 1은 노드 a만이 보유하고 있는 키이며, 키 2는 노드 b만이 보유하고 있는 키이며, 키 3은 노드 a와 노드 b가 보유하고 있는 키이며, 키 4는 노드 c만이 보유하고 있는 키이며, 키 5는 노드 a와 노드 c가 보유하고 있는 키이며, 키 6은 노드 b와 노드 c가 보유하고 있는 키이며, 키 7은 노드 a, 노드 b 및 노드 c가 모두 보유하고 있는 키이다.
그 결과, 노드 a에 속한 노드 1 내지 노드 9는 각각 노드 A에서의 키 테이블(190)상의 키1,키3,키5,키7을 모두 보유하게 되며, 노드 b에 속한 노드 10 내지 노드 18은 각각 노드 A에서의 키 테이블(190)상의 키2,키3,키6,키7을 모두 보유하 게 되며, 노드 c에 속한 노드 19 내지 노드 27은 각각 노드 A에서의 키 테이블(190)상의 키4,키5,키6,키7을 모두 보유하게 된다.
도 1에 표현된 노드들 중 실제의 노드(노드 1,노드 2,..,노드 27)들은 서비스 제공자와의 관계에서 개개의 사용자(User)라 할 수 있다. 서비스 제공자는 사용자에게 제공되는 컨텐츠를 전술한 키를 이용하여 암호화하여 전송한다. 서비스에 가입된 사용자는 기본적으로 서비스 제공자가 컨텐츠를 암호화하는 데 사용한 키를 갖고 있으며, 이는 서비스의 가입 및 연장신청에 의해 서비스 제공자로부터 부여받게 된다.
따라서, 서비스에 가입된 사용자는 서비스 제공자가 암호화하여 전송한 컨텐츠를 이용함에 있어서, 자신이 보유하고 있는 키를 이용하여 암호화된 컨텐츠를 복호화하게 된다.
그러나, 이후에 특정의 사용자가 서비스 가입을 해지하거나, 서비스 사용료를 지급하지 않는 등의 경우(Revocation)가 발생하게 되면, 서비스 제공자는 특정 사용자가 서비스를 더이상 이용하지 못하도록 하여야 한다.
이를 위해서는 향후에 제공되는 컨텐츠를 새로운 키(New Key:갱신키)로 암호화하고, 암호화에 사용된 새로운 키(New Key)를 특정의 사용자를 배제한 나머지 사용자에게 전송하여야 한다, 즉 키의 갱신작업이 필요하게 된다.
만약, 노드 c에 속해있는 모든 사용자(즉, 노드 19내지 노드 27에 해당하는 사용자가 될 것이다.)가 Revocation된 경우에 사용자는 새로운 키를 노드 A에서의 키테이블(190)상의 키 3을 이용하여 암호화하여 전송한다.
만약, 노드 2에 해당하는 사용자가 Revocation된 경우에 서비스 제공자는 새로운 키를 노드 A에서의 키테이블(190)상의 키 6을 이용하여 암호화한 데이터, 새로운 키를 노드 a에서의 키테이블(미도시)상의 키 6(노드 2' 및 노드 3'에 속해있는 노드만이 보유하고 있는 키)을 이용하여 암호화한 데이터 및 새로운 키를 노드 1'에서의 키테이블(130)상의 키 5를 이용하여 암호화한 데이터를 결합하여 전송한다.
그러나, 종래기술에 의하면, 노드 1은 노드 1'에서의 키 테이블(130)상의 키1,키3,키5,키7을 보유하여야 하고, 또한 노드 a에서의 키 테이블(미도시)상의 키1,키3,키5,키7을 보유하여야 하고, 또한, 노드 A에서의 키 테이블(190)상의 키1,키3,키5,키7을 보유하여야 한다.
즉, 도 1을 통해 설명한 종래기술에 의하면, 노드 1의 경우를 살펴보았듯이 노드 1은 총 12개의 키를 할당받아 저장하여야 한다. 이는 종래기술에 따른 LKH를 이루는 모든 노드들에 있어서 그러하다.
또한, 도 1을 통해 설명한 종래기술에 의하면, 노드 2에 해당하는 사용자가 Revocation된 경우를 살펴보았듯이 서비스 제공자는 세개의 키를 이용하여 각각 암호화한 데이터를 결합하여 전송하여야 한다. 이는 종래기술에 따른 LKH를 이루는 모든 노드이 Revocation된 경우에 그러하다.
즉, 종래기술에 의한다 하더라도, 각각의 노드에 있어서의 키들의 저장량과, 서비스 제공자의 전송량이 커지게 된다는 문제점이 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 제안된 것으로서, 해쉬 체인 트리(Hash Chain Tree)를 이용한 네트워크 시스템에서의 키 관리방법을 제공함이 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명에 따른 네트워크 시스템에서의 키 관리방법은, 수개의 노드들로 이루어진 적어도 하나의 노드그룹을 포함하는 네트워크 시스템에서의 키 관리방법에 있어서, 상기 수개의 노드들의 전부 또는 일부로 이루어진 부분집합별로 공유하는 키들을 설정하는 단계, 상기 각 노드별로 상기 설정된 키들의 일부를 저장하는 단계, 및 상기 각 노드별로 상기 입력된 일부의 키를 소정의 함수에 대입하여 상기 설정된 나머지 키를 생성하는 단계를 포함한다.
바람직하게는, 상기 소정의 함수는 일방향 해쉬함수인 것을 특징으로 한다.
또한, 상기 나머지 키를 생성하는 단계는, 소정의 정수를 상기 소정의 함수에 함께 대입하는 것을 특징으로 한다.
또한, 상기 소정의 함수에 대입된 키의 일련번호 및 상기 소정의 정수에 의해서 상기 생성된 키의 일련번호가 결정되는 것을 특징으로 한다.
또한, 상기 나머지 키의 생성은, 상기 나머지 키들중 일부에 대해서 선택적으로 이루어지는 것을 특징으로 한다.
또한, 상기 생성된 키의 일련번호는 상기 대입된 키의 일련번호에 '2'에 대한 상기 소정의 정수승을 더한 값으로 하는 것을 특징으로 한다.
또한, 상기 나머지 키를 생성하는 단계에서의 상기 나머지 키는, 기 생성된 나머지 키를 상기 소정의 함수에 대입하여 생성되는 것을 특징으로 한다.
또한, 상기 나머지 키를 생성하는 단계는, 상기 소정의 함수에 의한 키의 순차적 생성관계를 정의한 해쉬 체인 트리(Hash Chain Tree)에 의하는 것을 특징으로 한다.
또한, 상기 노드는 상기 각 노드별로 저장된 키들에 대한 정보를 저장하고 있는 것을 특징으로 한다.
또한, 상기 나머지 키를 생성하는 단계는, 상기 각 노드별로 저장된 키들에 대한 정보를 통해, 상기 소정의 함수에 대입하여 키를 생성하는 것을 특징으로 한다.
또한, 상기 노드그룹을 이루는 노드의 개수는 4개이며, 상기 소정의 정수는 0,1,2 및 3중 어느 하나인 것을 특징으로 한다.
또한, 상기 노드그룹을 이루는 노드의 개수는 5개이며, 상기 소정의 정수는 0,1,2,3 및 4중 어느 하나인 것을 특징으로 한다.
또한, 상기 노드그룹을 이루는 노드의 개수는 6개이며, 상기 소정의 정수는 0,1,2,3,4 및 5중 어느 하나인 것을 특징으로 한다.
또한, 상기 노드그룹을 이루는 노드의 개수는 7개이며, 상기 소정의 정수는 0,1,2,3,4,5 및 6중 어느 하나인 것을 특징으로 한다.
또한, 상기 노드그룹을 이루는 노드의 개수는 8개이며, 상기 소정의 정수는 0,1,2,3,4,5,6 및 7중 어느 하나인 것을 특징으로 한다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1을 통해 설명한 종래기술에서, 노드 그룹을 구성하는 노드의 개수가 4개인 경우를 예로 들면, 각각의 노드가 저장해야 하는 키들은 하기의 표 1을 통해 살펴보기로 한다.
K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15
노드1 O X O X O X O X O X O X O X O
노드2 X O O X X O O X X O O X X O O
노드3 X X X O O O O X X X X O O O O
노드4 X X X X X X X O O O O O O O O
상기 표 1을 참조하면, 도 1을 통해 설명한 종래기술에서, 노드 그룹을 구성하는 노드의 개수가 4개인 경우에, 노드 1은 키1, 키3, 키5, 키7, 키9, 키11, 키13, 키15를 할당받아 저장해야 하고, 노드 2는 키2, 키3, 키6, 키7, 키10, 키11, 키14, 키15를 할당받아 저장해야 하고 , 노드 3은 키4, 키5, 키6, 키7, 키12, 키13, 키14, 키15를 할당방아 저장해야 하고, 노드 4는 키8, 키9, 키10, 키11, 키12, 키13, 키14, 키15를 할당받아 저장해애 한다.
그러나, 본 발명에 따른 네트워크 시스템에서의 키 관리방법에서는 일방향 해쉬 함수 및 이를 순차적으로 적용한 해쉬 체인 트리를 이용하여 각 노드별 키 저장량을 감소키게 된다.
여기서 해쉬 함수란, 임의의 길이의 입력값을 정해진 길이의 출력 값으로 압축하는 함수로서, 다음과 같은 성질을 갖고 있다. 해쉬 함수상에서는 주어진 출력값에 대하여 입력값을 구하는 것이 계산상 불가능하며, 주어진 입력값에 대하여 같은 출력값을 내는 또 다른 입력값을 찾아내는 것이 계산상 불가능하다. 또한, 해쉬 함수상에서는 같은 출력값을 내는 임의의 서로 다른 두 입력값을 찾는 것 또한 계산상 불가능하다.
전술한 바와 같은 성질을 만족하는 해쉬 함수는 데이터의 무결성, 인증, 부인 방지 등에서 응용되는 중요한 함수 중의 하나로서, 본 발명을 실시함에 있어서 노드 그룹내의 노드들은 해쉬 함수를 공유할 것이다.
또한, 해쉬 함수는 단방향 함수의 일 예이며 본 발명을 실시함에 있어서는 해쉬 함수뿐만 아니라 소정의 단방향 함수가 적용될 수도 있을 것이다.
즉, 본 발명에 따른 네트워크 시스템에서의 키 관리방법에서는 각 노드별 키의 저장량을 줄이기 위해, 표 1상의 각 노드들은 할당받은 키들의 일부의 키만을 저장하게 되고, 그 이외의 필요한 나머지 키들은 하기의 수학식 1에서의 1방향 해쉬 함수를 이용하여 생성해내게 된다.
Figure 112005045046569-pat00001
상기 수학식 1을 참조하면, 일련번호가 j인 키(Kj)는 일방향 해쉬 함수에 일련번호가 i인 키(Ki) 및 소정의 정수인 m을 대입하여 생성된다. 노드그룹을 구성하는 노드의 개수를 N이라고 할 때, 여기서 소정의 정수인 m은 0,1,2,..,N-1중 어느 하나의 값이 된다. 한편 j는 m과 i에 의해 결정되는데, 상기 수학식 1에서와 같이 j는 2의 m승에 i를 합한 값이 된다. 즉, 일련번호가 j인 키(Kj)는 일련번호가 i인 키(Ki)및 소정의 정수인 m으로부터 결정되며 이를 도식화하면,
Figure 112005045046569-pat00002
가 될 것이다.
상기 수학식 1을 이용하면, 각 노드들은 자신에게 할당된 키들의 일부만을 저장하고, 이들과 소정의 정수 m을 일방향 해쉬함수에 대입함으로서 자신에게 할당된 키들의 나머지 키들을 필요한 경우에 선택적으로 생성할 수 있게 된다.
각 노드들이 표 1상에서 할당된 키들 중 일부의 키들을 할당받고 수학식 1을 이용하여, 각각 표 1상에서 할당된 키들 중 나머지 키들을 생성할 수 있도록 하기 위해서는 수학식 1이 적용되는 미리 설정된 패턴이 결정되어야 한다. 그래야만, 각 노드들은 저장된 일부의 키만을 가지고 선택적으로 오직 자신에게 할당된 키만을 생성할 수 있을 것이기 때문이다.
도 2a는 본 발명에 따른 그룹노드내의 노드가 4개인 경우에 수학식 1의 적용 패턴을 나타낸 도면이다.
도 2a를 참조하여, 본 발명에 따른 그룹노드내의 노드가 4개인 경우에 수학식 1의 적용 패턴을 설명하면, 먼저 키1과 '1'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키3을 생성하게 되고, 생성된 키3과 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키7을 생성하게 된다. 또 한편, 키1과 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키5을 생성하게 된다.
한편, 키2와 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키6을 생성하게 되고, 생성된 키6과 '3'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키14를 생성하게 된다. 또한, 키2와 '3'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키10을 생성하게 된다.
한편, 키4와 '3'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키12를 생성하게 되고, 생성된 키12와 '0'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키13을 생성하게 된다.
한편, 키8과 '0'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키9를 생성하게 되고, 생성된 키9와 '1'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키11을 생성하게 된다. 도 2a를 통해 설명한 해쉬함수의 적용패턴을 해쉬 체인 트리(Hash Chain Tree)라고 한다.
도 2b는 본 발명에 따른 그룹노드내의 노드가 4개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면이다.
도 2b를 참조하여, 본 발명에 따른 그룹노드내의 노드가 4개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 설명하면, 먼저 노드1은 표 1에서 살펴본 저장해야 할 키들인 키1, 키3, 키5, 키7, 키9, 키11, 키13, 키15중에서 키1, 키9, 키13만을 저장하고, 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다.
한편, 노드 2는 표 1에서 살펴본 저장해야 할 키들인 키2, 키3, 키6, 키7, 키10, 키11, 키14, 키15중에서 키2, 키3, 키11만을 저장하고, 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다.
또한, 노드 3은 표 1에서 살펴본 저장해야 할 키들인 키4, 키5, 키6, 키7, 키12, 키13, 키14, 키15중에서 키4, 키5, 키6, 키7만을 저장하고, 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다.
또한, 노드 4는 표 1에서 살펴본 저장해야 할 키들인 키8, 키9, 키10, 키11, 키12, 키13, 키14, 키15중에서 키8, 키10, 키12, 키14만을 저장하고, 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다.
도 2b상의 첫번째 열(210)에 키형상 그림들의 하단에 순차적으로 기재된 K1,K2,K4,K8,K1,K2는 같은 행에 속해있는 키들의 도2a에 나타난 해쉬 체인 트리(Hash Chain Tree)상에서의 루트 키(Root Key)를 의미한다.
또한, 첫번째 열(210)에 도시된 열쇠들과 같은 행에 기재된 숫자들은, 루트 키와 같은 행에 속해있는 키들의 해쉬 체인 트리(Hash Chain Tree)상에서의 관계를 의미한다.
도 2b상의 첫번째 행(220)을 살펴보면, 노드1에 대해 기재된 숫자'1'은 노드1이 저장하고 있는 K1은 루트 키인 K1을 도 2a의 해쉬 체인 트리상에서 '1-1'회, 즉 '0'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드2에 대해 기재된 숫자'2'는 노드2가 저장하고 있는 K3는 루트 키인 K1을 도 2a의 해쉬 체인 트리상에서 '2-1'회, 즉 '1'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드3에 대해 기재된 숫자'3'은 노드3이 저장하고 있는 K7은 루트 키인 K1을 도 2a의 해쉬 체인 트리상에서 '3-1'회, 즉 '2'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드4에 대해 기재된 숫자'0'은 노드4는 K1을 루트키로 하는 어떤 키도 저장하고 있지 않다는 것을 의미한다.
한편, 도 2a를 살펴보면, K1을 루트 키로 하는 해쉬 체인 트리의 가지가 두방향인 것을 알 수 있다. 또한, 도 2b상의 첫번째 열(210)을 살펴보면, K1이 첫번째 행(220)과 다섯번째 행(260)에서 루트 키로 기재된 것을 확인할 수 있는 데, 처음 기재된 첫번째 행(220)에서의 해쉬 체인 트리연산은 도2a상의 상향가지를 따라 연산하고, 그 다음 기재된 다섯번째 행(260)에서의 해쉬 체인 트리연산은 도 2a상의 하향가지를 따라 연산하게 된다.
이는 K2를 루트 키로 하는 두번째 행(240)과 여섯번째 행(280)에서의 해쉬 체인 트리연산에서도 동일하게 적용된다.
도 2b상의 두번째 행(240)을 살펴보면, 노드1에 대해 기재된 숫자'0'은 노드1은 K2를 루트키로 하는 어떤 키도 저장하고 있지 않다는 것을 의미한다.
노드2에 대해 기재된 숫자'1'은 노드1이 저장하고 있는 K2는 루트 키인 K2를 도 2a의 해쉬 체인 트리상에서 '1-1'회, 즉 '0'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드3에 대해 기재된 숫자'2'는 노드3이 저장하고 있는 K6는 루트 키인 K2를 도 2a의 해쉬 체인 트리상에서 '2-1'회, 즉 '1'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드4에 대해 기재된 숫자'3'는 노드4가 저장하고 있는 K14는 루트 키인 K2를 도 2a의 해쉬 체인 트리상에서 '3-1'회, 즉 '2'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
도 2b상의 나머지 행에서의 숫자의 의미는 동일한 방식에 의해서 해석된다.
다만, 여기서 주의할 것은 일방향 해쉬 함수의 특성상, 각 노드는 자신이 저장하고 있는 키로부터 도 2a의 해쉬 체인 트리상의 해쉬연산에 의해 순차적으로 생성되는 키들을 이용할 수 있게 된다. 또한, 각 노드는 도 2a 및 도 2b 상에 나타난, 해쉬 체인 트리 및 각 노드에 저장된 키에 대한 정보를 확보하고 있다.
그 결과, 각 노드는 저장된 키외의 키가 필요한 경우에, 도 2a 및 도 2b 상의 정보를 이용하여, 자신에게 필요한 키를 해쉬연산에 의해서 생성해내게 된다.
즉, 키 관리자가 노드 2를 배제하고, 노드 1, 노드 3 및 노드 4만이 복호화할 수 있도록, 표 1상의 K13을 이용하여 암호화한 데이터를 전송하는 경우에, 먼저 노드 1은 K13을 이용하여 암호화한 데이터를 전송받은 경우, K13을 인식하고 K13은 노드1, 노드3 및 노드 4만이 함께 할당받은 키라는 것을 인식한다. 부연하면, 일반적으로 키 관리자가 메시지 전송시, 헤더(Header)에 노드 1, 노드 3, 및 노드 4만이 수신할 수 있다는 정보를 전달하게 되므로, 노드는 헤더로부터 수신 가능한 노드의 정보를 얻을 수 있고, 수신가능한 노드를 식별함으로써 어떤 키가 사용되었는지 인식할 수 있게 된다.
이를 통해 도2b 상에서, 노드1, 노드3, 및 노드4가 공통으로 저장하고 있는 루트 키를 확인한다. 이러한 루트 키는 K4가 됨을 확인한 후, 노드 1에 대응되는 숫자 3을 통해 자신에게 저장된 키(K13)가 도 2a의 해쉬 체인 트리상에서 '3-1'회, 즉 '2'회만큼 해쉬연산을 수행한 결과라는 것을 확인하고, 이를 통해 자신에게 저장된 키가 K13이라는 것을 인식하게 된다. 이 경우 노드 1은 자신에게 저장된 키인 K13을 이용하여 전송받은 암호화한 데이터를 복호화하게 된다.
또한, 노드 3은 K13을 이용하여 암호화한 데이터를 전송받은 경우에, K13을 인식하고 K13은 노드1, 노드3 및 노드 4만이 함께 할당받은 키라는 것을 인식한다.
이를 통해 도2b 상에서, 노드1, 노드3, 및 노드4가 공통으로 저장하고 있는 루트 키를 확인한다. 이러한 루트 키는 K4가 됨을 확인한 후, 노드 3에 대응되는 숫자 1을 통해 자신에게 저장된 키(K4)가 도 2a의 해쉬 체인 트리상에서 '1-1'회, 즉 '0'회만큼 해쉬연산을 수행한 결과라는 것을 확인하고, 이를 통해 자신에게 저장된 키가 K4라는 것을 인식하게 된다. 그 다음, K4를 이용하여, K13을 생성하기 위해서, 도 2a의 해쉬 체인 트리에 대한 정보를 참조하여, K12를 생성하고, 이를 이용하여 K13을 생성하게 된다. 이 경우 노드 3은 자신에게 생성된 키인 K13을 이용하여 전송받은 암호화한 데이터를 복호화하게 된다.
한편, 노드 4는 K13을 이용하여 암호화한 데이터를 전송받은 경우에, K13을 인식하고 K13은 노드1, 노드3 및 노드 4만이 함께 할당받은 키라는 것을 인식한다.
이를 통해 도2b 상에서, 노드1, 노드3, 및 노드4가 공통으로 저장하고 있는 루트 키를 확인한다. 이러한 루트 키는 K4가 됨을 확인한 후, 노드 4에 대응되는 숫자 2를 통해 자신에게 저장된 키(K12)가 도 2a의 해쉬 체인 트리상에서 '2-1'회, 즉 '1'회만큼 해쉬연산을 수행한 결과라는 것을 확인하고, 이를 통해 자신에게 저장된 키가 K12라는 것을 인식하게 된다. 그 다음, K12를 이용하여, K13을 생성하기 위해서, 도 2a의 해쉬 체인 트리에 대한 정보를 참조하여, K13을 생성하게 된다. 이 경우 노드 4는 자신에게 생성된 키인 K13을 이용하여 전송받은 암호화한 데이터를 복호화하게 된다.
여기에서 암호화한 데이터는 새로운 키가 될 수도 있을 것이며, 특정 컨텐츠에 대한 데이터가 될 수도 있을 것이다.
한편, 본 발명의 기술적 사상은 노드 그룹내의 임의의 두개 또는 세개의 노드가 자신들만이 공유하는 키를 통해 데이터 통신을 하는 데도 사용될 수 있을 것 이다. 예를 들어, 노드1, 노드2 및 노드 3이 그들만의 공유키를 통해 노드 그룹내의 다른 노드들을 배제한 상태로 데이터 통신을 하고 싶다면, 노드 1, 노드 2 및 노드 3은 자신들끼리만 공통으로 갖고 있는 키를 도 2b를 통해 확인하게 된다.
즉, 노드 1, 노드 2 및 노드 3은 각각 K1을 루트 키로 하는 K1, K3 및 K7을 저장하고 있다는 것을 확인하게 되고, 노드 1은 공유 키로서 K7을 생성하기 위해 도 2a상의 해쉬 체인 트리를 이용함에 있어서, 상향 가지를 따라, (3-1)회, 즉 2회를 연산하고, 이를 통해 K7을 생성하여 획득한다.
한편, 노드 2는 공유 키로서 K7을 생성하기 위해 도 2a상의 해쉬 체인 트리를 이용함에 있어서, 상향 가지를 따라, (2-1)회, 즉 1회를 연산하고, 이를 통해 K7을 생성하여 획득한다. 이로서, 노드 1, 노드 2 및 노드 3은 그들만의 공유 키로서 K7을 공유하게 되고, 이를 통해 다른 노드를 배제한 상태로 데이터 통신이 가능하게 된다.
한편, 노드 2와 노드 4가 그들만의 공유키를 통해 노드 그룹내의 다른 노드들을 배제한 상태로 데이터 통신을 하고 싶다면, 노드 2와 노드 4는 자신들끼리만 공통으로 갖고 있는 키를 도 2b를 통해 확인하게 된다. 즉, 노드 2와 노드 4는 각각 K2를 루트 키로 하는 K2 및 K10을 저장하고 있다는 것을 확인하게 되고, 노드 2는 공유 키로서 K10을 생성하기 위해 도 2a상의 해쉬 체인 트리를 이용함에 있어서, 하향 가지를 따라, (2-1)회, 즉 1회를 연산하고, 이를 통해 K10을 생성하여 획득한다.
이로써, 노드 2와 노드 4는 그들만의 공유 키로서 K10을 공유하게 되고, 이 를 통해 다른 노드를 배제한 상태로 데이터 통신이 가능하게 된다.
도 3a는 본 발명에 따른 그룹노드내의 노드가 5개인 경우에 수학식 1의 적용 패턴을 나타낸 도면이다.
도 3a를 참조하여, 본 발명에 따른 그룹노드내의 노드가 5개인 경우에 수학식 1의 적용 패턴을 설명하면, 먼저 키1과 '1'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키3을 생성하게 되고, 생성된 키3과 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키7을 생성하게 된다. 또 한편, 키1과 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키5을 생성하게 되고, 생성된 키5와 '3'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키13을 생성하게 된다.
한편, 키2와 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키6을 생성하게 되고, 생성된 키6과 '3'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키14를 생성하게 되고, 생성된 키14와 '4'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키30을 생성하게 된다.
또한, 키2와 '3'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키10을 생성하게 되고, 생성된 키10과 '4'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키26을 생성하게 된다.
한편, 키4와 '3'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키12를 생성하게 되고, 생성된 키12와 '4'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키28을 생성하게 되고, 생성된 키28과 '0'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키29를 생성하게 된다.
또한, 키4와 '4'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키20을 생성하게 되고, 생성된 키20과 '0'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키21을 생성하게 된다.
한편, 키8과 '4'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키 24를 생성하게 되고, 생성된 키24와 '0'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키25를 생성하게 되고, 생성된 키25와 '1'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키27을 생성하게 된다.
또한, 키8과 '0'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키9를 생성하게 되고, 생성된 키9와 '1'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키11을 생성하게 된다.
한편, 키16과 '0'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키17을 생성하게 되고, 생성된 키17과 '1'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키19를 생성하게 되고, 생성된 키19와 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키23을 생성하게 된다.
또한, 키16과 '1'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키18을 생성하게 되고, 생성된 키18과 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키22를 생성하게 된다.
도 3b는 본 발명에 따른 그룹노드내의 노드가 5개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면이다.
도 3b를 참조하여, 본 발명에 따른 그룹노드내의 노드가 5개인 경우에 각 노 드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 설명하면, 먼저 노드1은 키1, 키9, 키17, 키21, 키25, 키29만을 저장하고, 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다.
한편, 노드 2는 키2, 키3, 키11, 키18, 키19, 키27만을 저장하고, 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다.
또한, 노드 3은 키4, 키5, 키6, 키7, 키22, 키23만을 저장하고, 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다.
또한, 노드 4는 키8, 키10, 키12, 키13, 키14, 키15만을 저장하고, 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다.
또한, 노드 5는 키16, 키20, 키24, 키26, 키28, 키30만을 저장하고, 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다.
도 3b상의 첫번째 열(310)에 키형상 그림들의 하단에 순차적으로 기재된 K1,K2,K4,K8,K16,K1,K2,K4,K8,K16는 같은 행에 속해있는 키들의 도3a에 나타난 해쉬 체인 트리(Hash Chain Tree)상에서의 루트 키(Root Key)를 의미한다.
또한, 첫번째 열(310)에 도시된 열쇠들과 같은 행에 기재된 숫자들은, 루트 키와 같은 행에 속해있는 키들의 해쉬 체인 트리(Hash Chain Tree)상에서의 관계를 의미한다.
도 3b상의 첫번째 행(220)을 살펴보면, 노드1에 대해 기재된 숫자'1'은 노드1이 저장하고 있는 K1은 루트 키인 K1을 도 2a의 해쉬 체인 트리상에서 '1-1'회, 즉 '0'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드2에 대해 기재된 숫자'2'는 노드2가 저장하고 있는 K3는 루트 키인 K1을 도 3a의 해쉬 체인 트리상에서 '2-1'회, 즉 '1'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드3에 대해 기재된 숫자'3'은 노드3이 저장하고 있는 K7은 루트 키인 K1을 도 3a의 해쉬 체인 트리상에서 '3-1'회, 즉 '2'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드4에 대해 기재된 숫자'4'는 노드4가 저장하고 있는 K15는 루트 키인 K1을 도 3a의 해쉬 체인 트리상에서 '4-1'회, 즉 '3'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드5에 대해 기재된 숫자'0'은 노드5는 K1을 루트키로 하는 어떤 키도 저장하고 있지 않다는 것을 의미한다.
한편, 도 3a를 살펴보면, K1을 루트 키로 하는 해쉬 체인 트리의 가지가 두방향인 것을 알 수 있다. 또한, 도 3b상의 첫번째 열(310)을 살펴보면, K1이 첫번째 행(320)과 여섯번째 행에서 루트 키로 기재된 것을 확인할 수 있는 데, 처음 기재된 첫번째 행(320)에서의 해쉬 체인 트리연산은 도 3a상의 상향가지를 따라 연산하고, 그 다음 기재된 여섯번째 행에서의 해쉬 체인 트리연산은 도 3a상의 하향가지를 따라 연산하게 된다. 이는 도 3b상의 첫번째 열(310)에서 반복되는 모든 루트 키에 대해서 동일하게 적용된다.
도 3b상의 두번째 행(340)을 살펴보면, 노드1에 대해 기재된 숫자'0'은 노드1은 K2를 루트키로 하는 어떤 키도 저장하고 있지 않다는 것을 의미한다.
노드2에 대해 기재된 숫자'1'은 노드1이 저장하고 있는 K2는 루트 키인 K2를 도 3a의 해쉬 체인 트리상에서 '1-1'회, 즉 '0'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드3에 대해 기재된 숫자'2'는 노드3이 저장하고 있는 K6는 루트 키인 K2를 도 3a의 해쉬 체인 트리상에서 '2-1'회, 즉 '1'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드4에 대해 기재된 숫자'3'는 노드4가 저장하고 있는 K14는 루트 키인 K2를 도 3a의 해쉬 체인 트리상에서 '3-1'회, 즉 '2'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
노드5에 대해 기재된 숫자'4'는 노드5가 저장하고 있는 K30은 루트 키인 K2를 도 3a의 해쉬 체인 트리상에서 '4-1'회, 즉 '3'회만큼 해쉬연산을 수행한 결과라는 것을 의미한다.
도 3b상의 나머지 행에서의 숫자의 의미는 동일한 방식에 의해서 해석된다.
다만, 여기서 주의할 것은 일방향 해쉬 함수의 특성상, 각 노드는 자신이 저장하고 있는 키로부터 도 3a의 해쉬 체인 트리상의 해쉬연산에 의해 순차적으로 생성되는 키들을 이용할 수 있게 된다. 또한, 각 노드는 도 3a 및 도 3b 상에 나타난, 해쉬 체인 트리 및 각 노드에 저장된 키에 대한 정보를 확보하고 있다.
그 결과, 각 노드는 저장된 키외의 키가 필요한 경우에, 도 3a 및 도 3b 상의 정보를 이용하여, 자신에게 필요한 키를 해쉬연산에 의해서 생성해내게 된다.
자신에게 필요한 키를 해쉬연산에 의해서 생성해내게 되는 방법은 도 2a 및 도 2b를 통해 전술한 방법과 같다. 또한, 노드 그룹내의 노드의 개수가 5인 경우에도 도 2a 및 도 2b를 통해 전술한 방법에 의해 노드 그룹내의 임의의 두개 또는 세개 또는 네개의 노드가 자신들만이 공유하는 키를 통해 데이터 통신을 하는 데도 사용될 수 있을 것이다.
도 4a는 본 발명에 따른 그룹노드내의 노드가 6개인 경우에 수학식 1의 적용 패턴을 나타낸 도면이다.
도 4a를 참조하여, 본 발명에 따른 그룹노드내의 노드가 6개인 경우에 수학식 1의 적용 패턴을 설명하면, 먼저 키1과 '1'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키3을 생성하게 되고, 생성된 키3과 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키7을 생성하게 되고, 생성된 키7과 '3'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키15를 생성하게 되고, 생성된 키15와 '4'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키31을 생성하게 된다.
또한, 키1과 '2'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키5을 생성하게 되고, 생성된 키5와 '3'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키13을 생성하게 되고, 생성된 키13과 '4'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키29를 생성하게 된다.
또한, 키1과 '3'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키9를 생성하게 되고, 생성된 키9와 '1'을 일방향 해쉬함수에 대입하면 수학식 1에 의해 키11을 생성하게 되고, 생성된 키11과 '4'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키27을 생성하게 된다.
한편, 키9와 '4'를 일방향 해쉬함수에 대입하면 수학식 1에 의해 키25를 생성하게 된다. 그이외의 도 4a상의 키2, 키4, 키8, 키16, 키32을 루트 키로 하는 해쉬 체인 트리는 동일한 원리에 의해서 이해될 수 있을 것이다.
도 4b는 본 발명에 따른 그룹노드내의 노드가 6개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면이다.
여기서, 도 4b상에 기재된 각 숫자와 각 숫자의 밑에 기재된 키들의 상관관계를 설명하기로 한다.
도 4b상의 첫번째 열(410)의 각 그룹 키에 따라 각 노드에 대응되는 숫자를 살펴보면, 0,1,2,3,4,5 중의 어느 하나가 대응되어 있음을 알 수 있다. 이는 각 루트 키로부터 시작되는 해쉬 체인 트리상에서의 위치를 나타낸다. 즉,'1'은 루트 키를 의미하고, '2'는 루트 키로부터 1회 해쉬 변환한 키를 의미하고, '3'은 루트 키로부터 2회 해쉬 변환한 키를 의미하고, '4'는 루트 키로부터 3회 해쉬 변환한 키를 의미하고, '5'는 루트 키로부터 4회 해쉬 변환한 키를 의미한다. 한편 '0'은 해당 루트 키 및 이를 해쉬 변환한 키를 갖고 있지 않음을 의미한다.
그러나, 도 4a상의 해쉬 체인 트리에서의 변환 경로는 여러가지가 있음을 확인할 수 있다. 따라서, 해쉬 변환을 할 때 어떤 경로를 따라서, 변환을 수행하여야 하는 지가 문제된다.
변환 경로는 루트키에서 분기되는 경우가 있고, 루트키 이외의 키에서 분기되는 경우가 있다. 여기서 해쉬 변환에 따라, 먼저 만나게 되는 분기점을 상위 분기점이라하고, 이후에 만나게 되는 분기점을 하위 분기점이라 한다.
한편, 도 4b상의 첫번째 열(410)의 루트키는 일정 주기로 반복됨을 확인할 수있다. 해쉬 체인 트리에서의 해쉬 변환을 수행할 때, 특정 루트키에 대해서 처음에는 루트키에서의 분기가지중 가장 위에 위치한 최상향 가지를 따라 해쉬 변환을 수행하고, 두번째에는 루트키에서의 분기가지중 그 다음에 위치한 가지를 따라 해쉬 변환을 수행한다. 즉, 루트키가 반복됨에 따라 우선적으로 루트키에서의 분기가지를 순차적으로 선택하게 된다.
이 과정에서 하위 분기점을 만나게 되면, 우선적으로 상향 가지를 선택하여 해쉬 변환을 수행한다. 하위 분기점에서 선택되지 않은 분기 가지는, 루트키에서의 분기가지가 모두 선택된 후, 다시 루트키가 반복될 때, 순차적으로 선택하게 된다.
그 결과 도 4b를 통해 노드1은 키1, 키17, 키18, 키32, 키33, 키41, 키42, 키45, 키49, 키53, 키57, 키61을 저장하고 있다는 것을 확인할 수 있다. 그 이외의 노드2, 노드3, 노드4, 노드5, 노드6에서 저장하고 있는 키들 또한 같은 방식에 의해 도 4b를 통해 확인할 수 있을 것이다.
즉, 이러한 방법에 따라, 각 노드별로 저장하고 있는 키들이 결정되고, 각 노드별로 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다. 이후에,일방향 해쉬 함수의 특성상, 각 노드는 자신이 저장하고 있는 키로부터 도 4a의 해쉬 체인 트리상의 해쉬연산에 의해 순차적으로 생성되는 키들을 이용할 수 있게 된다. 또한, 각 노드는 도 4a 및 도 4b 상에 나타난, 해쉬 체인 트리 및 각 노드에 저장된 키에 대한 정보를 확보하고 있다.
그 결과, 각 노드는 저장된 키외의 키가 필요한 경우에, 도 4a 및 도 4b 상 의 정보를 이용하여, 자신에게 필요한 키를 해쉬연산에 의해서 생성해내게 된다.
자신에게 필요한 키를 해쉬연산에 의해서 생성해내게 되는 방법은 도 2a 및 도 2b를 통해 전술한 방법과 같다. 또한, 노드 그룹내의 노드의 개수가 6인 경우에도 도 2a 및 도 2b를 통해 전술한 방법에 의해 노드 그룹내의 임의의 노드들이 자신들만이 공유하는 키를 통해 데이터 통신을 하는 데도 사용될 수 있을 것이다.
도 5a 내지 도 5c는 본 발명에 따른 그룹노드내의 노드가 7개인 경우에 수학식 1의 적용 패턴을 나타낸 도면이다.
도 5a 내지 도 5c에 나타난, 본 발명에 따른 그룹노드내의 노드가 7개인 경우에 수학식 1의 적용 패턴은 전술한 바와 같다.
도 5d는 본 발명에 따른 그룹노드내의 노드가 7개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면이다.
도 5d에 나타난, 본 발명에 따른 그룹노드내의 노드가 7개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계는 전술한 바와 같다.
즉, 전술한 방법에 따라, 각 노드별로 저장하고 있는 키들이 결정되고, 각 노드별로 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다. 이후에, 일방향 해쉬 함수의 특성상, 각 노드는 자신이 저장하고 있는 키로부터 도 5a 내지 도 5c에서의 해쉬 체인 트리상의 해쉬연산에 의해 순차적으로 생성되는 키들을 이용할 수 있게 된다. 또한, 각 노드는 도 5a 내지 도 5d에 나타난, 해쉬 체인 트리 및 각 노드에 저장된 키에 대한 정보를 확보하고 있다.
그 결과, 각 노드는 저장된 키외의 키가 필요한 경우에, 도 5a 내지 도 5d 상의 정보를 이용하여, 자신에게 필요한 키를 해쉬연산에 의해서 생성해내게 된다.
자신에게 필요한 키를 해쉬연산에 의해서 생성해내게 되는 방법은 도 2a 및 도 2b를 통해 전술한 방법과 같다. 또한, 노드 그룹내의 노드의 개수가 7인 경우에도 도 2a 및 도 2b를 통해 전술한 방법에 의해 노드 그룹내의 임의의 노드들이 자신들만이 공유하는 키를 통해 데이터 통신을 하는 데도 사용될 수 있을 것이다.
도 6a 내지 도 6h는 본 발명에 따른 그룹노드내의 노드가 8개인 경우에 수학식 1의 적용 패턴을 나타낸 도면이다.
도 6a 내지 도 6h에 나타난, 본 발명에 따른 그룹노드내의 노드가 8개인 경우에 수학식 1의 적용 패턴은 전술한 바와 같다.
도 6i 내지 도 6j는 본 발명에 따른 그룹노드 내의 노드가 8개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계를 나타낸 도면이다.
도 6i 내지 도 6j에 나타난, 본 발명에 따른 그룹노드내의 노드가 8개인 경우에 각 노드별로 저장되는 일부의 키들 및 이들의 수학식 1과의 관계는 전술한 바와 같다.
즉, 전술한 방법에 따라, 각 노드별로 저장하고 있는 키들이 결정되고, 각 노드별로 나머지 키들은 수학식 1을 이용하여 필요에 따라 선택적으로 생성하게 된다. 이후에, 일방향 해쉬 함수의 특성상, 각 노드는 자신이 저장하고 있는 키로부터 도 6a 내지 도 6h에서의 해쉬 체인 트리상의 해쉬연산에 의해 순차적으로 생성되는 키들을 이용할 수 있게 된다. 또한, 각 노드는 도 6a 내지 도 6j에 나타난, 해쉬 체인 트리 및 각 노드에 저장된 키에 대한 정보를 확보하고 있다.
그 결과, 각 노드는 저장된 키외의 키가 필요한 경우에, 도 6a 내지 도 6j 상의 정보를 이용하여, 자신에게 필요한 키를 해쉬연산에 의해서 생성해내게 된다.
자신에게 필요한 키를 해쉬연산에 의해서 생성해내게 되는 방법은 도 2a 및 도 2b를 통해 전술한 방법과 같다. 또한, 노드 그룹내의 노드의 개수가 8인 경우에도 도 2a 및 도 2b를 통해 전술한 방법에 의해 노드 그룹내의 임의의 노드들이 자신들만이 공유하는 키를 통해 데이터 통신을 하는 데도 사용될 수 있을 것이다.
이상 설명한 바와 같이, 본 발명에 따르면, 암호화된 컨텐츠 및 암호화된 갱신키를 전송함에 있어서, 각 노드가 저장하여야 하는 키의 개수를 현격하게 줄일수 있게 된다.
또한, 이상에서는 본 발명의 바람직한 실시예 및 응용예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.

Claims (15)

  1. 수개의 노드들로 이루어진 적어도 하나의 노드그룹을 포함하는 네트워크 시스템에서의 키 관리방법에 있어서,
    상기 수개의 노드들의 전부 또는 일부로 이루어진 부분집합별로 공유하는 키들을 설정하는 단계;
    상기 각 노드별로 상기 설정된 키들의 일부를 저장하는 단계; 및
    상기 각 노드별로 상기 입력된 일부의 키를 소정의 함수에 대입하여 상기 설정된 나머지 키를 생성하는 단계;를 포함하는 네트워크 시스템에서의 키 관리방법.
  2. 제 1항에 있어서,
    상기 소정의 함수는 일방향 해쉬함수인 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  3. 제 1항에 있어서,
    상기 나머지 키를 생성하는 단계는, 소정의 정수를 상기 소정의 함수에 함께 대입하는 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  4. 제 3항에 있어서,
    상기 소정의 함수에 대입된 키의 일련번호 및 상기 소정의 정수에 의해서 상 기 생성된 키의 일련번호가 결정되는 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  5. 제 1항에 있어서,
    상기 나머지 키의 생성은, 상기 나머지 키들중 일부에 대해서 선택적으로 이루어지는 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  6. 제 4항에 있어서,
    상기 생성된 키의 일련번호는 상기 대입된 키의 일련번호에 '2'에 대한 상기 소정의 정수승을 더한 값으로 하는 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  7. 제 1항에 있어서,
    상기 나머지 키를 생성하는 단계에서의 상기 나머지 키는,
    기 생성된 나머지 키를 상기 소정의 함수에 대입하여 생성되는 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  8. 제 2항에 있어서,
    상기 나머지 키를 생성하는 단계는,
    상기 소정의 함수에 의한 키의 순차적 생성관계를 정의한 해쉬 체인 트리 (Hash Chain Tree)에 의하는 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  9. 제 1항에 있어서,
    상기 노드는 상기 각 노드별로 저장된 키들에 대한 정보를 저장하고 있는 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  10. 제 9항에 있어서,
    상기 나머지 키를 생성하는 단계는,
    상기 각 노드별로 저장된 키들에 대한 정보를 통해, 상기 소정의 함수에 대입하여 키를 생성하는 것을 특징으로 하는 네트워크 시스템에서의 키 관리 방법.
  11. 제 3항에 있어서,
    상기 노드그룹을 이루는 노드의 개수는 4개이며, 상기 소정의 정수는 0,1,2 및 3중 어느 하나인 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법
  12. 제 3항에 있어서,
    상기 노드그룹을 이루는 노드의 개수는 5개이며, 상기 소정의 정수는 0,1,2,3 및 4중 어느 하나인 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  13. 제 3항에 있어서,
    상기 노드그룹을 이루는 노드의 개수는 6개이며, 상기 소정의 정수는 0,1,2,3,4 및 5중 어느 하나인 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  14. 제 3항에 있어서,
    상기 노드그룹을 이루는 노드의 개수는 7개이며, 상기 소정의 정수는 0,1,2,3,4,5 및 6중 어느 하나인 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
  15. 제 3항에 있어서,
    상기 노드그룹을 이루는 노드의 개수는 8개이며, 상기 소정의 정수는 0,1,2,3,4,5,6 및 7중 어느 하나인 것을 특징으로 하는 네트워크 시스템에서의 키 관리방법.
KR1020050075073A 2004-10-22 2005-08-17 네트워크 시스템에서의 키 관리방법 KR100727387B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/256,167 US20060095379A1 (en) 2004-10-22 2005-10-24 Key management method in network system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62066304P 2004-10-22 2004-10-22
US60/620663 2004-10-22

Publications (2)

Publication Number Publication Date
KR20060050505A KR20060050505A (ko) 2006-05-19
KR100727387B1 true KR100727387B1 (ko) 2007-06-12

Family

ID=37150020

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050075073A KR100727387B1 (ko) 2004-10-22 2005-08-17 네트워크 시스템에서의 키 관리방법

Country Status (2)

Country Link
US (1) US20060095379A1 (ko)
KR (1) KR100727387B1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101213160B1 (ko) 2006-11-16 2012-12-17 삼성전자주식회사 그룹 키 업데이트 방법 및 이를 이용한 그룹 키 업데이트장치
KR100769934B1 (ko) * 2007-04-18 2007-10-24 닉스테크 주식회사 내부 정보 관리 방법 및 내부 정보 관리 시스템
CA2686498C (en) 2007-05-07 2016-01-26 Archivas, Inc. Method for data privacy in a fixed content distributed data storage
US9432184B2 (en) * 2008-09-05 2016-08-30 Vixs Systems Inc. Provisioning of secure storage for both static and dynamic rules for cryptographic key information
US9501429B2 (en) * 2008-09-05 2016-11-22 Vixs Systems Inc. Dynamic key and rule storage protection
US8594333B2 (en) * 2008-09-05 2013-11-26 Vixs Systems, Inc Secure key access with one-time programmable memory and applications thereof
US8386800B2 (en) * 2009-12-04 2013-02-26 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
KR101658501B1 (ko) 2015-09-03 2016-09-22 주식회사 마크애니 해시함수 기반의 전자서명 서비스 시스템 및 그 방법
KR101977109B1 (ko) * 2015-11-17 2019-08-28 (주)마크애니 해시함수 기반의 대규모 동시 전자서명 서비스 시스템 및 그 방법
US11146540B2 (en) * 2018-05-09 2021-10-12 Datalogic Ip Tech S.R.L. Systems and methods for public key exchange employing a peer-to-peer protocol

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307936B1 (en) 1997-09-16 2001-10-23 Safenet, Inc. Cryptographic key management scheme
US6363154B1 (en) 1998-10-28 2002-03-26 International Business Machines Corporation Decentralized systems methods and computer program products for sending secure messages among a group of nodes
US6560337B1 (en) 1998-10-28 2003-05-06 International Business Machines Corporation Systems, methods and computer program products for reducing effective key length of ciphers using one-way cryptographic functions and an initial key

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100499450C (zh) * 2003-04-22 2009-06-10 国际商业机器公司 数字资源的分层密钥生成方法及其设备
EP1676281B1 (en) * 2003-10-14 2018-03-14 Selander, Göran Efficient management of cryptographic key generations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307936B1 (en) 1997-09-16 2001-10-23 Safenet, Inc. Cryptographic key management scheme
US6363154B1 (en) 1998-10-28 2002-03-26 International Business Machines Corporation Decentralized systems methods and computer program products for sending secure messages among a group of nodes
US6560337B1 (en) 1998-10-28 2003-05-06 International Business Machines Corporation Systems, methods and computer program products for reducing effective key length of ciphers using one-way cryptographic functions and an initial key

Also Published As

Publication number Publication date
KR20060050505A (ko) 2006-05-19
US20060095379A1 (en) 2006-05-04

Similar Documents

Publication Publication Date Title
KR100727387B1 (ko) 네트워크 시스템에서의 키 관리방법
CN110581763B (zh) 一种量子密钥服务区块链网络系统
US8713329B2 (en) Authenticated secret sharing
CN112865964B (zh) 一种量子密钥分发方法、设备及存储介质
CN110661620B (zh) 一种基于虚拟量子链路的共享密钥协商方法
JP5637991B2 (ja) ネットワークにおけるセキュア通信に関する方法、通信デバイス、ネットワーク及びコンピュータプログラム
CN108847925A (zh) 一种基于树状结构的分片区块链生成方法
CA2379578A1 (en) Data distribution
CN101252506A (zh) 一种数据传输系统
CN111769948A (zh) 基于区块链的链间交互方法、系统、装置和计算机设备
CN108462573A (zh) 一种灵活的量子安全移动通信方法
KR100970391B1 (ko) 브로드 캐스트 암호화 시스템에서의 태그 형성방법
US20100054464A1 (en) Process for establishing a common cryptographic key for n subscribers
Doh et al. Secure authentication for structured smart grid system
Abdalla et al. (Password) authenticated key establishment: From 2-party to group
Anton et al. Group key establishment in wireless ad hoc networks
CN113542077B (zh) openstack加密链路管理方法和系统
US8509447B2 (en) Method and system for distributing cryptographic keys in a hierarchized network
CN112367160A (zh) 一种虚拟量子链路服务方法与装置
Li et al. A key management scheme based on hypergraph for fog computing
US9172685B2 (en) System and method for providing a secure book device using cryptographically secure communications across secure networks
JP5051429B2 (ja) 暗号鍵管理方法、そのシステム及びそのプログラム
RU2330382C1 (ru) Схема предварительного распределения ключей для кластерных сетей и способ ее функционирования
RU2812343C1 (ru) Способ управления ресурсами аутентификации в сетях квантового распределения ключей, описываемых связными графами произвольных конфигураций
CN115361680B (zh) 医保数据智能共享交换系统

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

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130531

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee