KR20090071874A - 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과그를 이용한 노드 인증 방법 - Google Patents

무선 네트워크 환경에서의 노드 아이디/키 생성 방법과그를 이용한 노드 인증 방법 Download PDF

Info

Publication number
KR20090071874A
KR20090071874A KR1020070139805A KR20070139805A KR20090071874A KR 20090071874 A KR20090071874 A KR 20090071874A KR 1020070139805 A KR1020070139805 A KR 1020070139805A KR 20070139805 A KR20070139805 A KR 20070139805A KR 20090071874 A KR20090071874 A KR 20090071874A
Authority
KR
South Korea
Prior art keywords
node
public key
signature
ramport
value
Prior art date
Application number
KR1020070139805A
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 KR1020070139805A priority Critical patent/KR20090071874A/ko
Publication of KR20090071874A publication Critical patent/KR20090071874A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • 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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication

Landscapes

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

Abstract

본 발명은 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과 그를 이용한 노드 인증 방법에 관한 것으로, 램포트 서명 방식의 메시지에 노드 아이디(ID)를 추가하고, 램포트 서명 비밀키와 노드 아이디 간에 관련성을 부여하여 노드 아이디를 교체할 수 없도록 하며, 공개키(비대칭 키) 암호법을 통해 생성한 공개키를 램포트 서명 방식을 이용하여 전송함으로써, 안전하고 효율적으로 각 노드를 인증하기 위한, 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과 그를 이용한 노드 인증 방법을 제공하고자 한다.
이를 위하여, 본 발명은 무선 네트워크 환경에서의 노드 아이디 생성 방법에 있어서, 상기 무선 네트워크를 구성하는 각 노드가 고유의 비밀값을 생성하는 비밀값 생성 단계; 임의 노드가 자신의 비밀값을 이용하여 비밀값 쌍을 생성하는 비밀값 쌍 생성 단계; 상기 생성한 비밀값 쌍에 단방향 해쉬 함수를 적용하여 해쉬 값들을 생성하는 해쉬 값 생성 단계; 및 상기 생성한 해쉬 값들에 배타적 논리합(XOR) 비트 연산을 수행하여 노드 아이디를 생성하는 노드 아이디 생성 단계를 포함한다.
인증, 애드 혹 네트워크, 노드 아이디, 램포트 서명, 공개키, 비밀값, 해쉬 함수

Description

무선 네트워크 환경에서의 노드 아이디/키 생성 방법과 그를 이용한 노드 인증 방법{Method for producing node ID or Lamport signature key and its using method for node certification in wireless network}
본 발명은 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과 그를 이용한 노드 인증 방법에 관한 것으로, 더욱 상세하게는 어느 노드도 항구적으로 CA(Certification Authority) 역할을 수행할 수 없는 무선(일예로, Ad-Hoc) 네트워크 환경에서, 각 노드 간 협력을 통해 안전하고 효율적으로 노드 간 인증을 수행하기 위한, 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과 그를 이용한 노드 인증 방법에 관한 것이다.
이하, 종래의 램포트 서명(Lamport signature) 인증 절차에 대해 상세히 설명하기로 한다.
먼저, 메시지를 전송하고자 하는 임의 노드(이하, 노드 A)가 256 비트 해쉬 함수와 난수 생성기를 구비하고 있다.
이후, 노드 A가 난수 생성기를 이용하여 램포트 서명 비밀키(A_L_pr)인 256쌍(총 512개)의 난수를 생성한다. 이때, 각각의 난수는 256 비트 길이를 갖는다.
그리고, 노드 A가 상기 생성한 램포트 서명 비밀키(A_L_pr)인 256쌍(총 512개)의 난수를 각각 해쉬하여, 256쌍(총 512개)의 램포트 서명 공개키(A_L_pu)를 생성한다.
이러한 과정을 통해, 종래의 램포트 서명 비밀키(A_L_pr)와 램포트 서명 공개키(A_L_pu)의 생성 과정이 완료된다.
이후, 노드 A는 노드 B(메시지를 수신하는 임의 노드)로 전송하고자 하는 메시지를 해쉬하여 256 비트의 해쉬 값을 생성한다.
이후, 노드 A는 상기 생성한 해쉬 값의 각 비트에 따라 램포트 서명 비밀키(A_L_pr)로부터 해당하는 값을 뽑아낸다.
예를 들면, 첫 번째 해쉬 비트 값이 '0'이면 램포트 서명 비밀키(A_L_pr)의 첫 번째 쌍에서 첫 번째 값을 선택하고, 두 번째 해쉬 비트 값이 '1'이면 램포트 서명 비밀키(A_L_pr)의 두 번째 쌍에서 두 번째 값을 선택하며, 세 번째 해쉬 비트 값이 '1'이면 램포트 서명 비밀키(A_L_pr)의 세 번째 쌍에서 두 번째 값을 선택한다.
즉, 해쉬 비트 값의 순서는 램포트 서명 비밀키(A_L_pr) 쌍의 순서와 매칭되며, 비트 값 '0'은 해당 램포트 서명 비밀키(A_L_pr) 쌍에서 첫 번째 값을 선택하라는 의미이고, 비트 값 '1'은 해당 램포트 서명 비밀키(A_L_pr) 쌍에서 두 번째 값을 선택하라는 의미이다.
이러한 방식으로, 메시지의 해쉬 값에 기초하여 256개의 난수(A_L_pr')를 선택한다. 이렇게 선택된 256개의 난수는 노드 A가 노드 B로 전송하고자 하는 메시지에 대한 서명이 되며, 메시지를 전송할 때 함께 전송한다. 또한, 노드 A는 노드 B로 자신이 생성한 램포트 서명 공개키(A_L_pu)도 함께 전송한다.
이러한 과정을 통해, 메시지에 대한 서명(A_L_pr') 생성 과정이 완료된다.
이후, 노드 A로부터 메시지, 서명(A_L_pr'), 및 램포트 서명 공개키(A_L_pu)를 수신한 노드 B는, 수신한 메시지를 해쉬하여 256 비트의 해쉬 값을 생성한다.
이후, 생성한 해쉬 비트값에 대해 노드 A가 한 것처럼, 노드 A로부터 수신한 램포트 서명 공개키(A_L_pu)로부터 256개의 값(A_L_pu')을 선택한다.
이후, 상기 선택한 값(A_L_pu')이 노드 A로부터 수신한 서명(A_L_pr')을 해쉬한 값과 같다면 메시지 서명 검증은 완료된다. 이때, 노드 A로부터 수신한 메시지가 변조되었거나 전송 도중 에러로 변경되었다면 서명 검증은 이루어지지 않는다.
이러한 종래의 램포트 서명 인증 방식은, "Lamport one-time signature" 라고도 불리며, 상기 생성한 램포트 서명 공개키(A_L_pu) 및 램포트 서명 비밀키(A_L_pr)를 한 번만 사용한다.
아울러, 이러한 종래의 램포트 서명 인증 방식은, 메시지 인증시 메시지 전송자를 확인할 수 있는 방안을 제공하지 못하기 때문에, "man-in-the-middle- attack"에 노출되기 쉽다.
예를 들어, 노드 A가 노드 M을 통해 노드 B와 통신하는 환경을 생각해 보자. 노드 A가 노드 B로 메시지(메시지_A), 램포트 서명 공개키(A_L_pu), 및 서명(A_L_pr')을 전송할 때, 노드 M이 이를 가로챈 후 노드 A의 아이디와 함께 자신이 생성한 메시지(메시지_M), 램포트 서명 공개키(M_L_pu), 및 서명(M_L_pr')을 노드 B로 전송할 수 있다.
이때, 노드 B는 종래의 램포트 서명 인증 방식에 기초하여 메시지 서명을 검사하기 때문에 아무런 이상을 발견할 수 없지만, 이는 노드 A가 아닌 노드 M으로부터 전송된 것이다.
따라서 상기와 같은 종래의 램포트 서명 인증 방식은 메시지 전송자의 정보를 증명할 수 있는 메시지 인증 기능을 제공하지 않기 때문에, "man-in-the-middle-attack"에 노출될 수 있는 문제점이 있으며, 이러한 문제점을 해결하고자 하는 것이 본 발명의 과제이다.
본 발명은 램포트 서명 방식의 메시지에 노드 아이디(ID)를 추가하고, 램포트 서명 비밀키와 노드 아이디 간에 관련성을 부여하여 노드 아이디를 교체할 수 없도록 하며, 공개키(비대칭 키) 암호법을 통해 생성한 공개키를 램포트 서명 방식을 이용하여 전송함으로써, 안전하고 효율적으로 노드 간 인증을 수행하기 위한, 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과 그를 이용한 노드 인증 방법을 제공하는데 그 목적이 있다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 방법은, 무선 네트워크 환경에서의 노드 아이디 생성 방법에 있어서, 상기 무선 네트워크를 구성하는 각 노드가 고유의 비밀값을 생성하는 비밀값 생성 단계; 임의 노드가 자신의 비밀값을 이용하여 비밀값 쌍을 생성하는 비밀값 쌍 생성 단계; 상기 생성한 비밀값 쌍에 단방향 해쉬 함수를 적용하여 해쉬 값들을 생성하는 해쉬 값 생성 단계; 및 상기 생성한 해쉬 값들에 배타적 논리합(XOR) 비트 연산을 수행하여 노드 아이디를 생성하는 노드 아이디 생성 단계를 포함한다.
또한, 상기 목적을 달성하기 위한 본 발명의 다른 방법은, 무선 네트워크 환경에서의 키 생성 방법에 있어서, 고유의 비밀값을 저장하고 있는 비밀값 저장 단계; 상기 저장하고 있는 비밀값을 이용하여 비밀값 쌍을 생성하는 비밀값 쌍 생성 단계; 상기 생성한 비밀값 쌍에 단방향 해쉬 함수를 적용하여 램포트 서명 비밀 키(L_pr)를 생성하는 단계; 및 상기 생성한 램포트 서명 비밀키에 해쉬 함수를 한번 적용하여 램포트 서명 공개키(L_pu)를 생성하는 램포트 서명 공개키 생성 단계를 포함한다.
또한, 상기 목적을 달성하기 위한 본 발명의 또 다른 방법은, 무선 네트워크 환경에서의 노드 인증 방법에 있어서, 임의 노드가 공개키와 아이디 및 상기 공개키의 총 전송 횟수(t)를 담은 메시지, 상기 메시지에 대한 서명, 램포트 서명 공개키를 수신하는 단계; 상기 수신한 램포트 서명 공개키에 단방향 해쉬 함수를 적용하여 해쉬 값들을 생성하는 해쉬 값 생성 단계; 상기 생성한 해쉬 값들에 배타적 논리합(XOR) 비트 연산을 수행하여 인증 아이디를 생성하는 단계; 및 상기 수신한 아이디와 상기 생성한 인증 아이디가 동일하면 정상적인 노드로부터의 메시지로 인증하는 인증 단계를 포함한다.
또한, 본 발명은 램포트 서명의 "Impersonation" 문제를 해결하고, 개선된 램포트 서명 방식을 활용하여 동료 노드 간 협력에 의하여 효율적으로 상호 간 인증을 수행한다.
상기와 같은 본 발명은, 종래의 램포트 서명 기법이 "man-in-the-middle" 공격에 의하여 "impersonation"이 가능했던 단점을 보완하고, 개선된 램포트 서명 기법을 사용하여 인증 서버가 없는 무선(일예로, 애드 혹(Ad-Hoc)) 네트워크 환경에서 동료 노드 간 협력에 의하여 안전하게 효율적으로 노드 인증을 수행할 수 있는 효과가 있다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
본 발명의 실시 예에서는 무선 네트워크의 예로, 애드 혹 네트워크를 예로 들어 설명하기로 한다.
도 1 은 본 발명에 따른 비밀값을 이용한 256 쌍의 값 생성 과정에 대한 일실시예 설명도이다.
먼저, 애드 혹 네트워크를 구성하는 각 노드는 자신의 아이디를 생성하기 위한 비밀값을 가지고 있다. 상기 비밀값은 노드가 임의로 생성할 수 있는 256 비트 길이의 값이며, 해당 노드만이 알고 있는 값이다.
이후, 각 노드는 비밀값에 기초해 256 쌍(총 512개)의 값을 생성한다. 즉, 비밀값에서 나머지 값들을 제외한 특정 비트 값을 변경하여 한 쌍, 즉 두 개의 숫자를 생성한다.
도 1에 도시된 바와 같이, 비밀값이 주어지고 첫 번째 비트에 대해서 하나의 쌍을 생성하고자 할 때, 먼저 원래 값(0)을 포함하는 256 비트를 가지는 하나의 값(101)을 얻고, 첫 번째 비트를 1로 변경하여 256 비트를 가지는 다른 하나의 값(102)을 얻는다.
다음으로, 원래 값(0)을 포함하는 256 비트를 가지는 하나의 값(103)을 얻고, 두 번째 비트를 1로 변경하여 256 비트를 가지는 다른 하나의 값(104)을 얻는다.
이와 같은 방식으로, 256 개의 비트에 적용하여 256 비트의 비밀값으로부터 256 쌍의 값을 생성한다.
이하, 도 2를 참조하여 상기 생성한 256 쌍에 기초하여 노드 아이디를 생성하는 과정에 대해 설명하기로 한다.
도 2 는 본 발명에 따른 256 쌍의 값을 이용한 노드 아이디 생성 과정에 대한 일실시예 설명도이다.
도 2에 도시된 바와 같이, 256 쌍의 값에 기초하여 노드 아이디를 생성하기 위해서 각 값에 단방향 해쉬 함수를 적용한다. 여기서, 단방향 해쉬 함수는 입력에 대해서 256 비트 길이의 값을 생성해 내는 함수를 의미한다.
즉, 512 개의 각 값에 대해 단방향 해쉬 함수를 n 번 적용하여 512 개의 해쉬 값들을 생성한다. 이때, n 은 네트워크상의 총 노드 수를 의미한다.
이후, 상기 생성한 해쉬 값들을 배타적 논리합(XOR) 비트 연산을 통해 256 비트를 가지는 하나의 값으로 생성한다. 이렇게 생성한 값이 바로 노드의 아이디가 된다.
도 3 은 본 발명에 따른 애드 혹 네트워크 환경에서의 노드 아이디 생성 방법에 대한 일실시예 흐름도이다.
먼저, 애드 혹 네트워크를 구성하는 각 노드는 자신의 아이디를 생성하기 위한 비밀값을 저장하고 있다(301). 이때, 비밀값은 노드가 임의로 생성할 수 있는 256 비트 길이의 값이며, 해당 노드만이 알고 있는 값이다.
이후, 상기 저장하고 있는 비밀값을 이용하여 256 쌍(총 512개)의 값을 생성한다(302). 즉, 256 비트의 비밀값에서 특정 비트 값을 변경하여 256 쌍의 값을 생성한다.
이후, 상기 생성한 256 쌍의 값에 단방향 해쉬 함수를 적용하여 512 개의 해쉬 값들을 생성한다(303). 이때, 단방향 해쉬 함수를 적용하는 횟수는 총 노드 수에 상응하는 값이 바람직하다.
이후, 상기 생성한 해쉬 값들에 배타적 논리합(XOR) 비트 연산을 수행하여 256 비트를 가지는 노드의 아이디를 생성한다(304).
이하, 도 1에서 생성한 256 쌍의 값을 이용하여, 본 발명에서 새롭게 제안하는 램포트 서명 공개키(L_pu) 및 램포트 서명 비밀키(L_pr)의 생성 과정에 대해 살펴보기로 한다.
도 1에 도시된 바와 같이, 비밀값을 이용하여 생성한 256 쌍의 값으로부터 램포트 서명 공개키(L_pu)와 램포트 서명 비밀키(L_pr)를 생성한다. 이때, 종래의 램포트 서명(Lamport signature) 인증 방식에서 사용하는 공개키(A_L_pu)와 비밀키(A_L_pr)가 일회성임을 감안하여, 본 발명에서도 노드별로 서로 다른 램포트 서명 공개키(L_pu) 및 램포트 서명 비밀키(L_pr)를 생성한다.
이때, 램포트 서명 공개키(L_pu) 및 램포트 서명 비밀키(L_pr)는 공개키(pu)를 전송하기 위해 사용된다. 여기서, 공개키(pu)는 일반적으로 널리 알려진 공개키(비대칭 키) 암호화 기법(RSA, ECC 등)을 통해 생성하는 것이 바람직하지만, 각 노드가 자신의 공개키(pu)/비밀키(pr)를 생성하기 위해 특별히 사용해야 하는 암호화 기법은 없으며, 안전하게 생성할 수 있는 기법이면 충분하다.
예를 들어, 자신이 보유한 비밀값으로부터 아이디를 생성한 후, 첫 번째 노드로 자신의 공개키(pu)를 전송하기 위해, 자신의 아이디를 생성한 것처럼 비밀값으로부터 생성한 512 개의 각 값에 단방향 해쉬 함수를 n 번 적용하여 램포트 서명 공개키(L_pu)를 생성하며, 단방향 해쉬 함수를 n-1 번 적용하여 램포트 서명 비밀키(L_pr)를 생성한다. 이때, 최초 램포트 서명 공개키(L_pu) 생성시 적용되는 단방향 해쉬 함수의 횟수는, 아이디 생성시 적용되는 단방향 해쉬 함수의 횟수와 같다.
다른 예로, 두 번째 노드로 자신의 공개키(pu)를 전송하기 위해서, 비밀값으로부터 생성한 512 개의 각 값에 단방향 해쉬 함수를 n-1 번 적용하여 램포트 서명 공개키(L_pu)를 생성하고, 단방향 해쉬 함수를 n-2 번 적용하여 램포트 서명 비밀키(L_pr)를 생성한다.
하나 더 예를 든다면, 다섯 번째 노드로 자신의 공개키(pu)를 전송하기 위해서, 비밀값으로부터 생성한 512 개의 각 값에 단방향 해쉬 함수를 n-4 번 적용하여 램포트 서명 공개키(L_pu)를 생성하고, 단방향 해쉬 함수를 n-5 번 적용하여 램포트 서명 비밀키(L_pr)를 생성한다.
결국, 램포트 서명 공개키(L_pu)를 생성하기 위해 단방향 해쉬 함수를 적용하는 횟수는 램포트 서명 비밀키(L_pr)를 생성하기 위해 단방향 해쉬 함수를 적용하는 횟수보다 한번 더 많다. 이는, 종래의 램포트 서명 인증 방식에서 램포트 서명 비밀키(A_L_pr)를 해쉬한 결과가 램포트 서명 공개키(A_L_pu)가 되는 요건을 만족시킨다.
이를 일반화하면, i 번째로 노드(아직 노드 A의 공개키를 가지고 있지 않은 노드)로 램포트 서명 공개키(L_pu)와 램포트 서명 비밀키(L_pr)를 이용하여 공개키(pu)를 전송하고자 할 때, 비밀값으로부터 생성한 512 개의 각 값에 n-(i-1)번 단방향 해쉬 함수를 적용하여 램포트 서명 공개키(L_pu)를 생성하고, n-i 번 단방향 해쉬 함수를 적용하여 램포트 서명 비밀키(L_pr)를 생성한다.
이때, 노드의 아이디는 비밀값으로부터 해쉬 함수를 n번 적용하여 생성한 값이기 때문에, 해당 노드는 최대 n개의 노드로 자신의 공개키(pu)를 안전하게 전송할 수 있다.
도 4 는 본 발명에 따른 애드 혹 네트워크 환경에서의 키 생성 방법에 대한 일실시예 흐름도로서, 램포트 서명 공개키(L_pu) 및 램포트 서명 비밀키(L_pr) 생 성 과정을 나타낸다.
먼저, 애드 혹 네트워크를 구성하는 각 노드는 자신의 아이디를 생성하기 위한 비밀값을 저장하고 있다(401). 이때, 비밀값은 노드가 임의로 생성할 수 있는 256 비트 길이의 값이며, 해당 노드만이 알고 있는 값이다.
이후, 상기 저장하고 있는 비밀값을 이용하여 256 쌍(총 512개)의 값을 생성한다(402). 즉, 256 비트의 비밀값에서 특정 비트 값을 변경하여 256 쌍의 값을 생성한다.
이후, 상기 생성한 256 쌍의 값에 단방향 해쉬 함수를 적용하여 256 쌍의 램포트 서명 비밀키(L_pr)를 생성한다(403).
이후, 상기 생성한 256 쌍의 램포트 서명 비밀키(L_pr)에 단방향 해쉬 함수를 한번 적용하여 256 쌍의 램포트 서명 공개키(L_pu)를 생성한다(404). 이때, 램포트 서명 공개키(L_pu)를 생성하기 위해 적용되는 단방향 해쉬 함수의 총 적용 횟수는 최초 생성시, 총 노드 수와 동일하며, 그 다음부터는 총 노드 수에서 일 회씩 감소시킨 값이다.
이하, 도 5를 참조하여 메시지 인증 절차에 대해 노드 A가 노드 B로 공개키(pu)를 전송하는 과정을 예로 들어 상세히 살펴보기로 한다. 이때, 노드 B는 자신이 인증하고자 하는 노드, 즉 자신에게 공개키를 전송하고자 하는 노드 A의 아이디를 알고 있다.
먼저, 노드 A가 상기 과정을 통해 생성한, 공개키(pu), 아이디(ID), 공개 키(pu)의 총 전송 횟수(t)를 담은 메시지, 상기 메시지에 대한 서명(A_L_pr'), 램포트 서명 공개키(L_pu)를 해당 노드로 전송한다. 여기서, t는 노드 B로의 공개키(pu) 전송도 하나의 횟수로 포함한다.
그러면, 노드 B는 전송받은 램포트 서명 공개키(L_pu)가 노드 A가 보낸 램포트 서명 공개키(L_pu)가 맞는지 확인한다.
즉, 전송받은 램포트 서명 공개키(L_pu)에 t-1 번의 단방향 해쉬 함수를 적용하여 512 개의 해쉬 값들을 생성한다.
이후, 상기 생성한 해쉬 값들에 배타적 논리합(XOR) 비트 연산을 수행하여 256 비트 길이를 가지는 하나의 값인 인증 아이디(ID')를 생성한다.
이후, 상기 전송받은 아이디(ID)와 인증 아이디(ID')가 동일하면 정상적인 메시지로 인증한다.
이러한 과정을 통해, 노드 A가 전송하는 메시지가 악의적인 노드로부터 변경되는 공격(man-in-the-middle-attack)으로부터 보호할 수 있다.
아울러, 일반적인 램포트 서명 인증 절차에 따라 노드 A로부터 수신한 메시지를 해쉬하고, 이에 기초하여 램포트 서명 공개키(L_pu)로부터 256개의 값(L_pu')을 선택한다.
이후, 상기 선택한 값(L_pu')이 상기 메시지에 대한 서명(A_L_pr')을 해쉬한 값과 동일하면 메시지의 서명을 정상으로 최종 인증한다.
이후, 노드 B는 노드 A로부터 수신한 메시지에서 노드 A의 공개키(pu)를 획득하여 저장한다. 이때, 일반적으로 널리 알려진 "Challenge_response" 기법을 통 해 공개키(pu) 재확인 절차를 수행할 수도 있다.
즉, 노드 B는 노드 A의 아이디와 임시 데이터(nonce1)를 노드 A의 공개키(pu)로 암호화하여 노드 A로 전송한다.
이후, 노드 A는 임시 데이터(nonce1)를 자신의 비밀키(pr)로 암호화하여 노드 B로 전송한다.
그러면, 노드 B는 노드 A로부터의 임시 데이터와 자신이 보낸 임시 데이터를 비교하여 동일하면 전송받은 공개키(pu)를 정상적인 공개키로 판단한다.
도 6 은 본 발명에 따른 애드 혹 네트워크 환경에서의 노드 인증 방법에 대한 일실시예 흐름도이다.
먼저, 공개키와 아이디 및 상기 공개키의 총 전송 횟수를 담은 메시지, 상기 메시지에 대한 서명, 램포트 서명 공개키를 수신한다(601).
이후, 상기 수신한 램포트 서명 공개키에 단방향 해쉬 함수를 적용하여 해쉬 값들을 생성한다(602).
이후, 상기 생성한 해쉬 값들에 배타적 논리합(XOR) 비트 연산을 수행하여 인증 아이디를 생성한다(603).
이후, 상기 수신한 아이디와 상기 생성한 인증 아이디가 동일하면 정상적인 노드로부터의 메시지로 인증한다(604).
부가적으로, 상기 메시지를 해쉬한 후 이에 기초하여 램포트 서명 공개키로부터 256개의 값을 선택한다.
이후, 상기 선택한 값이 상기 메시지에 대한 서명을 해쉬한 값과 동일하면 상기 메시지의 서명을 정상으로 최종 인증한다.
이후, 상기 수신한 공개키를 저장한다.
도 7 은 본 발명에 따른 공개키(pu)를 공유 과정에 대한 일실시예 설명도이다.
먼저, 노드 B(72)는 노드 C(73)의 공개키(C_pu), 노드 D(74)의 공개키(D_pu), 노드 E(75)의 공개키(E_pu)를 저장하고 있다.
노드 C(73)는 노드 B(72)의 공개키(B_pu), 노드 D(74)의 공개키(D_pu), 노드 E(75)의 공개키(E_pu)를 저장하고 있다.
노드 D(74)는 노드 B(72)의 공개키(B_pu), 노드 C(73)의 공개키(C_pu), 노드 E(75)의 공개키(E_pu)를 저장하고 있다.
노드 E(75)는 노드 B(72)의 공개키(B_pu), 노드 C(73)의 공개키(C_pu), 노드 D(74)의 공개키(D_pu)를 저장하고 있다.
즉, 노드 B(72)는 노드 C,D,E와 인증 관계에 있다.
이후, 노드 B(72)는 노드 A(71)와 서로의 공개키(A_pu, B_pu)를 송수신한 후, 기 저장하고 있는 노드 C(73)의 공개키(C_pu), 노드 D(74)의 공개키(D_pu), 노드 E(75)의 공개키(E_pu)를 자신의 비밀키(B_pr)로 암호화하여 노드 A(71)로 전송한다.
이후, 노드 B(72)는 자신이 이미 인증한 노드(C,D,E), 즉 기 저장하고 있는 공개키에 해당하는 노드(C,D,E)로 노드 A(71)의 공개키(A_pu)를 자신의 비밀키(B_pr)로 암호화하여 브로트캐스팅 방식을 통해 전송한다.
이렇게 함으로써, 노드 A(71)는 노드 C(73), 노드 D(74), 노드E(75)와 간단하게 상호 인증 과정을 수행할 수 있다.
이러한 방식을 신뢰성 전이에 기초한 공개키 전달 방식이라 한다.
이하, 신뢰성 전이에 대해 좀 더 상세히 살펴보기로 한다.
특정 두 노드는 본 발명에 기초하여 서로의 공개키를 안전하게 공유할 수 있다. 즉, 본 발명에 따라 n 개의 노드를 만나 자신의 공개키를 전송해야 한다면 공개키 전달 절차를 n 번 수행해야 한다. 하지만, 신뢰성 전이 개념을 활용한다면 n번 모두 수행해야 할 필요가 없다.
더욱이 비밀값으로부터 노드 아이디를 생성할 때 단방향 해쉬 함수를 k번 적용한다면, 해당 노드가 자신의 공개키를 다른 노드들에게 전송할 수 있는 횟수가 k로 제한이 되기 때문에, 신뢰성 전이를 사용한다면 이러한 제한을 완화할 수 있다.
신뢰성 전이의 예는 다음과 같다.
예를 들어, 노드 A(71)와 노드 B(72)가 본 발명에 따른 공개키 전달 절차에 따라 서로의 공개키를 공유했다고 하자. 이때, 노드 A(71)와 노드 B(72)는 서로를 신뢰할 수 있다.
또한, 노드 C(73)가 노드 B(72)와 본 발명에 따른 공개키 전달 절차에 따라 서로의 공개키를 공유하여 서로 신뢰하는 사이가 되었다고 하자.
그렇다면, 노드 C(73)는 노드 B(72)를 통해 노드 A(71)를 신뢰할 수 있고, 노드 B(72)를 통해 노드 A(71)의 공개키를 획득할 수 있으며, 노드 A(71) 또한 노드 B(72)를 통해 노드 C(73)의 공개키를 획득할 수 있다.
따라서, 노드 A(71)가 다른 노드들(C,D,E)과 먼저 공개키를 공유하여 신뢰관계를 형성하고 있는 노드 B(72)와 서로의 공개키를 교환한 후, 신뢰성 전이를 통해서 노드 B(72)는 자신이 보유하고 있는 노드 C,D,E의 공개키를 노드 A(71)로 전송하고, 노드 B(72)는 노드 A(71)의 공개키를 노드 C,D,E로 전송한다. 이때, 노드 B(72)가 다른 노드로 자신이 보유한 공개키 정보를 전송할 때는 자신의 비밀키로 암호화하여 전송하여 목표하는 노드로 안전하게 전송한다.
또한, 노드 B(72)가 노드 A(71)로부터 수신한 노드 A(71)의 공개키를 노드 C, D, E에게 전송할 때 전송의 효율성을 위해서 브로드캐스팅 기법을 사용하여 전송한다.
한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
본 발명은 CA(Certification Authority) 없이 노드 상호 간 인증이 필요한 환경에서의 인증 등에 이용될 수 있다.
도 1 은 본 발명에 따른 비밀값을 이용한 256 쌍의 값 생성 과정에 대한 일실시예 설명도,
도 2 는 본 발명에 따른 256 쌍의 값을 이용한 노드 아이디 생성 과정에 대한 일실시예 설명도,
도 3 은 본 발명에 따른 애드 혹 네트워크 환경에서의 노드 아이디 생성 방법에 대한 일실시예 흐름도,
도 4 는 본 발명에 따른 애드 혹 네트워크 환경에서의 키 생성 방법에 대한 일실시예 흐름도,
도 5 는 본 발명에 따른 인증 아이디 생성 과정에 대한 일예시도,
도 6 은 본 발명에 따른 애드 혹 네트워크 환경에서의 노드 인증 방법에 대한 일실시예 흐름도,
도 7 은 본 발명에 따른 공개키(pu)를 공유 과정에 대한 일실시예 설명도이다.
* 도면의 주요 부분에 대한 부호의 설명
71 : 노드 A 72 : 노드 B
73 : 노드 C 74 : 노드 D
75 : 노드 E

Claims (14)

  1. 무선 네트워크 환경에서의 노드 아이디 생성 방법에 있어서,
    상기 무선 네트워크를 구성하는 각 노드가 고유의 비밀값을 생성하는 비밀값 생성 단계;
    임의 노드가 자신의 비밀값을 이용하여 비밀값 쌍을 생성하는 비밀값 쌍 생성 단계;
    상기 생성한 비밀값 쌍에 단방향 해쉬 함수를 적용하여 해쉬 값들을 생성하는 해쉬 값 생성 단계; 및
    상기 생성한 해쉬 값들에 배타적 논리합(XOR) 비트 연산을 수행하여 노드 아이디를 생성하는 노드 아이디 생성 단계
    를 포함하는 무선 네트워크 환경에서의 노드 아이디 생성 방법.
  2. 제 1 항에 있어서,
    상기 비밀값 생성 단계는,
    256 비트 길이의 비밀값을 생성하는 것을 특징으로 하는 무선 네트워크 환경에서의 노드 아이디 생성 방법.
  3. 제 2 항에 있어서,
    상기 비밀값 쌍 생성 단계는,
    상기 256 비트의 비밀값에서 특정 비트 값을 변경하여 256 쌍(총 512개)의 값을 생성하는 것을 특징으로 하는 무선 네트워크 환경에서의 노드 아이디 생성 방법.
  4. 제 3 항에 있어서,
    상기 해쉬 값 생성 단계는,
    총 노드의 수만큼 단방향 해쉬 함수를 적용하여 512 개의 해쉬 값들을 생성하는 것을 특징으로 하는 무선 네트워크 환경에서의 노드 아이디 생성 방법.
  5. 제 4 항에 있어서,
    상기 노드 아이디 생성 단계는,
    상기 생성한 해쉬 값들에 배타적 논리합(XOR) 비트 연산을 수행하여 256 비트를 가지는 노드 아이디를 생성하는 것을 특징으로 하는 무선 네트워크 환경에서의 노드 아이디 생성 방법.
  6. 무선 네트워크 환경에서의 키 생성 방법에 있어서,
    고유의 비밀값을 저장하고 있는 비밀값 저장 단계;
    상기 저장하고 있는 비밀값을 이용하여 비밀값 쌍을 생성하는 비밀값 쌍 생성 단계;
    상기 생성한 비밀값 쌍에 단방향 해쉬 함수를 적용하여 램포트 서명 비밀키(L_pr)를 생성하는 단계; 및
    상기 생성한 램포트 서명 비밀키에 해쉬 함수를 한번 적용하여 램포트 서명 공개키(L_pu)를 생성하는 램포트 서명 공개키 생성 단계
    를 포함하는 무선 네트워크 환경에서의 키 생성 방법.
  7. 제 6 항에 있어서,
    상기 비밀값 저장 단계는,
    256 비트 길이의 비밀값을 저장하고 있는 것을 특징으로 하는 무선 네트워크 환경에서의 키 생성 방법.
  8. 제 7 항에 있어서,
    상기 비밀값 쌍 생성 단계는,
    상기 256 비트의 비밀값에서 특정 비트 값을 변경하여 256 쌍(총 512개)의 값을 생성하는 것을 특징으로 하는 무선 네트워크 환경에서의 키 생성 방법.
  9. 제 8 항에 있어서,
    상기 램포트 서명 공개키 생성 단계는,
    최초 램포트 서명 공개키 생성시, 총 노드 수와 동일한 횟수의 단방향 해쉬 함수를 적용하여 램포트 서명 공개키를 생성하고, 그 다음부터는 총 노드 수에서 일 회씩 감소시킨 횟수를 적용하여 램포트 서명 공개키를 생성하는 것을 특징으로 하는 무선 네트워크 환경에서의 키 생성 방법.
  10. 무선 네트워크 환경에서의 노드 인증 방법에 있어서,
    임의 노드가 공개키와 아이디 및 상기 공개키의 총 전송 횟수(t)를 담은 메시지, 상기 메시지에 대한 서명, 램포트 서명 공개키를 수신하는 단계;
    상기 수신한 램포트 서명 공개키에 단방향 해쉬 함수를 적용하여 해쉬 값들을 생성하는 해쉬 값 생성 단계;
    상기 생성한 해쉬 값들에 배타적 논리합(XOR) 비트 연산을 수행하여 인증 아이디를 생성하는 단계; 및
    상기 수신한 아이디와 상기 생성한 인증 아이디가 동일하면 정상적인 노드로부터의 메시지로 인증하는 인증 단계
    를 포함하는 무선 네트워크 환경에서의 노드 인증 방법.
  11. 제 10 항에 있어서,
    상기 메시지를 해쉬한 후 이에 기초하여 램포트 서명 공개키로부터 256개의 값을 선택하는 단계;
    상기 선택한 값이 상기 메시지에 대한 서명을 해쉬한 값과 동일하면 상기 메시지의 서명을 정상으로 최종 인증하는 단계; 및
    상기 수신한 공개키를 저장하는 단계
    를 더 포함하는 무선 네트워크 환경에서의 노드 인증 방법.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 해쉬 값 생성 단계는,
    상기 수신한 램포트 서명 공개키에 t-1 번의 단방향 해쉬 함수를 적용하여 해쉬 값들을 생성하는 것을 특징으로 하는 무선 네트워크 환경에서의 노드 인증 방법.
  13. 제 12 항에 있어서,
    상기 임의 노드는,
    기 인증된 타 노드가 존재하는 경우, 타 노드의 공개키를 자신의 비밀키로 암호화하여 상기 정상적으로 인증한 노드로 전송하고, 상기 정상적으로 인증한 노드의 공개키를 자신의 비밀키로 암호화하여 기 인증된 타 노드로 전송하는 것을 특징으로 하는 무선 네트워크 환경에서의 노드 인증 방법.
  14. 제 13 항에 있어서,
    상기 임의 노드는,
    기 인증된 타 노드가 다수일 경우, 브로드캐스팅 방식을 통해 공개키를 전송하는 것을 특징으로 하는 무선 네트워크 환경에서의 노드 인증 방법.
KR1020070139805A 2007-12-28 2007-12-28 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과그를 이용한 노드 인증 방법 KR20090071874A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070139805A KR20090071874A (ko) 2007-12-28 2007-12-28 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과그를 이용한 노드 인증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070139805A KR20090071874A (ko) 2007-12-28 2007-12-28 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과그를 이용한 노드 인증 방법

Publications (1)

Publication Number Publication Date
KR20090071874A true KR20090071874A (ko) 2009-07-02

Family

ID=41329158

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070139805A KR20090071874A (ko) 2007-12-28 2007-12-28 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과그를 이용한 노드 인증 방법

Country Status (1)

Country Link
KR (1) KR20090071874A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10242177B2 (en) 2012-03-29 2019-03-26 Nokia Technologies Oy Wireless memory device authentication
CN110519060A (zh) * 2019-08-23 2019-11-29 湖南财政经济学院 一种密码生成及验证方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10242177B2 (en) 2012-03-29 2019-03-26 Nokia Technologies Oy Wireless memory device authentication
CN110519060A (zh) * 2019-08-23 2019-11-29 湖南财政经济学院 一种密码生成及验证方法
CN110519060B (zh) * 2019-08-23 2022-03-29 湖南财政经济学院 一种密码生成及验证方法

Similar Documents

Publication Publication Date Title
CN111771390B (zh) 自组织网络
US10581615B2 (en) Blockchain-based identity authentication method, device, node and system
JP5755391B2 (ja) 鍵共有デバイス、及び鍵共有デバイスを構成するためのシステム
US9509506B2 (en) Quantum key management
KR101314210B1 (ko) 사용자 인증 양자 키 분배 방법
US11223486B2 (en) Digital signature method, device, and system
US20170005792A1 (en) Key agreement device and method
US10931447B2 (en) Data receiving device, data transmission system, and key generating device
KR102028092B1 (ko) 신뢰 양자 서명 장치 및 방법
US20210167963A1 (en) Decentralised Authentication
KR20090104421A (ko) 무선센서네트워크에서의 타원곡선암호 기반 키 설정 방법과이를 이용한 무선센서네트워크 시스템 및 기록매체
US20160373260A1 (en) Public Key Based Network
CN104303450A (zh) 密码密钥的确定
US10419213B2 (en) Key exchange method, key exchange system, key device, terminal device, and program
JP2022500920A (ja) コンピュータにより実施される、共通シークレットを共有するシステム及び方法
CN111245611B (zh) 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统
CN115314284B (zh) 一种基于可信执行环境的公钥认证可搜索加密方法及系统
Odelu et al. A secure and scalable group access control scheme for wireless sensor networks
KR100974628B1 (ko) 무선 센서 네트워크에서의 브로드 캐스팅 메시지 인증을 통한 그룹키 분배 방법, 그 시스템 및 이를 기록한 기록매체
KR20090071874A (ko) 무선 네트워크 환경에서의 노드 아이디/키 생성 방법과그를 이용한 노드 인증 방법
TWI761243B (zh) 群組即時通訊的加密系統和加密方法
CN114189388A (zh) 一种联盟链密钥管理系统及方法
García et al. μTesla-Based Authentication for Reliable and Secure Broadcast Communications in IoD Using Blockchain
US10469267B2 (en) Method of managing implicit certificates using a distributed public keys infrastructure
GB2577494A (en) Feature(s) generation

Legal Events

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