KR101699434B1 - Manet 환경에서 영공간을 활용한 안전한 메시지 전달 방법 및 이의 시스템 - Google Patents

Manet 환경에서 영공간을 활용한 안전한 메시지 전달 방법 및 이의 시스템 Download PDF

Info

Publication number
KR101699434B1
KR101699434B1 KR1020150181628A KR20150181628A KR101699434B1 KR 101699434 B1 KR101699434 B1 KR 101699434B1 KR 1020150181628 A KR1020150181628 A KR 1020150181628A KR 20150181628 A KR20150181628 A KR 20150181628A KR 101699434 B1 KR101699434 B1 KR 101699434B1
Authority
KR
South Korea
Prior art keywords
message
nodes
vector
survival information
node
Prior art date
Application number
KR1020150181628A
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 KR1020150181628A priority Critical patent/KR101699434B1/ko
Application granted granted Critical
Publication of KR101699434B1 publication Critical patent/KR101699434B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/18Commands or executable codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/17Interaction among intermediate nodes, e.g. hop by hop
    • H04L51/30
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload

Landscapes

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

Abstract

본 발명은 네트워크 통신에서 메시지 전송 기술에 관한 것으로, 더 상세하게는 MANET(Mobile Ad Hoc NETworks) 환경에서 영공간을 활용하여 메시지를 코딩하는 안전한 메시지 전달 방법 및 이의 시스템에 관한 것이다.

Description

MANET 환경에서 영공간을 활용한 안전한 메시지 전달 방법 및 이의 시스템{Method for transferring a secure message by using null space in Mobile Ad Hoc NETworks and System thereof}
본 발명은 네트워크 통신에서 메시지 전송 기술에 관한 것으로, 더 상세하게는 MANET(Mobile Ad Hoc NETworks) 환경에서 영공간을 활용하여 메시지를 코딩하는 안전한 메시지 전달 방법 및 이의 시스템에 관한 것이다.
선형대수에서 영공간은 모공간 중에서 일부의 벡터로 만들어지는 부분공간이 차지하는 차원을 제외한 나머지 차원의 기저벡터로 만들어지는 공간을 의미한다. 이 영공간에 속하는 임의의 벡터는 위의 일부의 벡터로 만들어지는 부분공간에 속하는 모든 벡터와 수직을 이루는 성질을 갖고 있다. 이는 수학적으로 부분공간을 이루는 어떤 벡터와 영공간에 속하는 어떤 벡터를 내적 연산하면 항상 0이라는 값을 얻을 수 있다는 의미이다.
Figure 112015124358519-pat00001
의 길이를 가지는 메시지 벡터
Figure 112015124358519-pat00002
Figure 112015124358519-pat00003
개 존재할 때,
Figure 112015124358519-pat00004
중 임의의 벡터
Figure 112015124358519-pat00005
개를 골라 차례로 나열한 행렬
Figure 112015124358519-pat00006
Figure 112015124358519-pat00007
행렬이다. 이 때, 이 행렬의 벡터들이 이루는 공간과 직교하는 영공간이 존재하며 그 랭크(rank)는
Figure 112015124358519-pat00008
이다. 이는 영공간 벡터가 차지하는 차원의 수를 의미한다.
영공간에 존재하는 모든 임의의 벡터는
Figure 112015124358519-pat00009
의 0이 아닌 해가 된다. 따라서 행렬
Figure 112015124358519-pat00010
의 영공간에 속하는 임의의 벡터 하나는 행렬
Figure 112015124358519-pat00011
을 이루는 모든 메시지 벡터와 내적을 수행하면 0이라는 값이 도출된다.
일반적으로 여러 메시지를 전송하고자 할 경우 메시지의 수만큼 전송을 수행한다. 하지만 네트워크에 참여하는 모든 노드가 주고받고자 하는 메시지를 미리 정해놓았을 경우 메시지와 아이디의 쌍이 동일하다는 가정 하에서 메시지의 번호를 전송함으로써 메시지를 직접 전송하는 것과 같은 효과를 가질 수 있다.
그렇다면 일반적으로 여러 메시지를 조합하여 전송하고자 할 경우 해당 메시지들의 번호를 체크하여 보내는 방식을 이용한다면 한 번의 전송 횟수로 메시지를 전송할 수 있다. 그러나 이러한 기법은 메시지를 도청당했을 경우 메시지의 개수와 종류를 파악당하기 쉬우며 공격자가 중간에서 오염공격을 시도할 경우 쉽게 오염된 정보를 생성해낼 수 있다는 단점이 존재한다.
1. 한국공개특허번호 제10-2008-0037168호
1. 김상철, "단일 노드 결합시 MANET 자동 네트워킹 프로토콜의 메시지 복잡도 분석"한국통신학회논문지 제32권 제5호 (2007년 5월) pp.257-269
본 발명이 위 배경기술에 따른 문제점을 해소하기 위해 제안된 것으로서, 네트워크 상에 미리 정해진 메시지 세트가 존재할 때 이 메시지의 조합을 수신자에게 전송함에 있어서, 한 번의 메시지 전송 횟수를 가지는 효율성을 가지면서도 도청 및/또는 메시지 오염 공격의 위험을 방지할 수 있는 메시지 코딩을 위한 안전한 메시지 전달 방법 및 이의 시스템을 제공하는데 그 목적이 있다.
본 발명은 위에서 제시된 과제를 달성하기 위해, 한 번의 메시지 전송 횟수를 가지는 효율성을 가지면서도 도청 및/또는 메시지 오염 공격의 위험을 방지할 수 있는 메시지 코딩을 위한 안전한 메시지 전달 방법을 제공한다.
상기 메시지 전달 방법은, 다수의 노드로 이루어지는 MANET(Mobile Ad Hoc NETworks) 환경에서 영공간을 활용한 안전한 메시지 전달 방법으로서,
(a) 상기 다수의 노드가 사용할 고유 ID(IDentification)를 할당하고 할당된 ID 할당 정보를 담은 노드 ID 행렬을 배포하는 초기화 페이즈를 수행하는 단계;
(b) 상기 다수의 노드 중 싱크 노드로부터 발행되는 제 1 생존 정보 요구 메시지를 상기 다수의 노드 중 나머지 노드들로 브로드캐스팅으로 전송하는 상류 페이즈를 수행하는 단계; 및
(c) 상기 다수의 노드 중 나머지 노드들로부터 상기 싱크 노드까지 상기 제 1 생존 정보 요구 메시지가 취합되어 전달되며, 영공간 벡터를 이용하여 상기 노드 ID 행렬을 생존 정보 ID 행렬로 변환한 제 2 생존 정보 요구 메시지를 전송하는 하류 페이즈를 수행하는 단계;를 포함하는 것을 특징으로 할 수 있다.
이때, 상기 제 1 생존 정보 요구 메시지는 1회의 상류 페이즈와 1회의 하류 페이즈의 수행을 합한 값으로 상기 제 1 생존 정보 요구 메시지의 중복을 걸러내기 위한 제 1 라운드 식별자 및 상기 제 1 생존 정보 요구 메시지를 통해 싱크 노드로부터 얼마나 멀리 위치해 있는 지를 알려주는 홉 카운트를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 제 2 생존 정보 요구 메시지는 1회의 상류 페이즈와 1회의 하류 페이즈의 수행을 합한 값으로 상기 제 2 생존 정보 요구 메시지의 중복을 걸러내기 위한 제 2 라운드 식별자, 상기 제 2 생존 정보 요구 메시지를 통해 싱크 노드로부터 최대로 멀리 위치해 있는 지를 알려주는 최대 홉 카운트 및 상기 생존 정보 ID 행렬을 포함하는 것을 특징으로 할 수 있다.
또한, 상기 제 2 생존 정보 요구 메시지는 상기 제 2 라운드 식별자를 이용하여 ID 벡터의 차원을 라운드마다 다르게 설정하여 생성되는 것을 특징으로 할 수 있다.
또한, 상기 생존 정보 ID 행렬의 ID 벡터들은 서로 선형 독립이고, 벡터의 차원은 노드의 개수(r)보다 크고, 벡터의 원소에는 "0"이 포함되지 않은 것을 특징으로 할 수 있다.
또한, 상기 (c) 단계에서, 영공간 벡터의 산출은, (c-1) 상기 다수의 노드 중 소스 노드들에서 전송할 다수의 메시지로 이루어지는 메시지 셋(set)에 대한 정보를 담고 있는 배열을 입력값으로 수신하는 단계; (c-2) 상기 입력값을 이용하여 조합할 메시지 벡터들을 추출하는 단계; (c-3) 상기 메시지 벡터들로부터 영공간 벡터를 생성하여 상기 다수의 노드 중 목적 노드들로 송신하는 단계; (c-4) 상기 메시지 셋에 상기 영공간 벡터를 추가하고 인코딩하여 상기 메시지 셋을 상기 목적 노드들로 송신하는 단계; 및 (c-5) 상기 목적 노드들에서 상기 영공간 벡터와 상기 메시지 셋의 각 메시지 벡터간 내적을 수행하여 디코딩하는 단계;를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 (c-4) 단계는, 중간 노드에서 상기 소스 노드들로부터 수신한 상기 메시지 셋을 하나의 메시지로 합하여 상기 목적지 노드들로 전송하는 단계;를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 메시지 셋을 하나의 메시지로 합하여 상기 목적지 노드들로 전송하는 단계는, 상기 소스 노들로부터의 영공간 벡터들을 이용하여 하나의 영공간 벡터를 생성하는 단계;를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 소스 노드들에서 상기 목적지 노드들로 상기 메시지 셋이 전달되는 동안, 상기 소스 노드들에서 상기 목적지 노드들로 경로를 설정하지 않는 것을 특징으로 할 수 있다.
또한, 상기 다수의 노드는 인증된 노드로서, 서로간 식별을 위한 식별자를 공유하며, 상기 소스 노드들은 상기 메시지 셋을 중복적으로 상기 목적지 노드들로 전송하는 것을 특징으로 할 수 있다.
또한, 상기 영공간 벡터는 QR 콤포지션(Decomposition) 함수를 이용하여 추출되는 것을 특징으로 할 수 있다.
상기 디코딩은 상기 하나의 해당 소스 노드가 전송한 메시지의 메시지 벡터와 영공간 벡터의 내적을 수행하면 0이 도출되고, 상기 하나의 해당 소스 노드가 전송한 메시지가 아닌 경우 0이 아닌 값이 도출되는 것을 특징으로 할 수 있다.
또한, 상기 (c-3) 단계는, 상기 영공간 벡터에 시간 벡터를 추가하는 단계;를 포함하는 것을 특징으로 할 수 있다.
또한, 상기 시간 벡터는 상기 다수의 노드가 모두 공유하는 글로벌 타이머를 이용하여 생성되는 것을 특징으로 할 수 있다.
또한, 상기 메시지 벡터는 더미 공간을 포함하며, 상기 더미 공간은 "1"인 것을 특징으로 할 수 있다.
다른 한편으로, 본 발명의 다른 일실시예는, 통신부, 상기 통신부로부터 전송된 아날로그 신호를 디지털로 변환하거나 디지털 신호를 아날로그 신호로 변환하는 변환 모듈 및 상기 통신부 및 변환 모듈을 제어하는 제어부를 포함하는 다수의 노드로 이루어지는 MANET(Mobile Ad Hoc NETworks) 환경의 영공간을 활용한 안전한 메시지 전달 시스템으로서, 상기 다수의 노드가 사용할 고유 ID(IDentification)를 할당하고 할당된 ID 할당 정보를 담은 노드 ID 행렬을 배포하는 초기화 페이즈를 수행하고, 상기 다수의 노드 중 싱크 노드로부터 발행되는 제 1 생존 정보 요구 메시지를 상기 다수의 노드 중 나머지 노드들로 브로드캐스팅으로 전송하는 상류 페이즈를 수행하고, 상기 다수의 노드 중 나머지 노드들로부터 상기 싱크 노드까지 상기 제 1 생존 정보 요구 메시지가 취합되어 전달되며, 영공간 벡터를 이용하여 상기 노드 ID 행렬을 생존 정보 ID 행렬로 변환한 제 2 생존 정보 요구 메시지를 전송하는 하류 페이즈를 수행하는 것을 특징으로 하는 공간을 활용한 안전한 메시지 전달 시스템을 제공할 수 있다.
본 발명에 따르면, 네트워크 상에서 미리 정해진 메시지를 조합하여 보내고자 할 때, 한 번의 전송 횟수로 보낼 수 있으며 도청에 의한 공격 혹은 오염 메시지를 생성하는 공격에도 저항이 강하므로 효율적이면서 보안에 강한 메시지 전송이 가능하다.
도 1은 일반적인 비트맵 방식과 본 발명에서 제안하는 영공간 코딩 방식에서 전달하는 메시지를 비교한 도면이다.
도 2는 본 발명의 일실시예에 따른 영공간 코딩 방식에 대한 개념도이다.
도 3은 도 2에 도시된 영공간 코딩 방식을 이용하여 메시지를 모아서 조합한 후 전송하는 간단한 예를 표현한 도식화한 도면이다.
도 4는 도 2에 따라 영공간 코딩 벡터를 추가하여 메시지를 인코딩하는 일예이다.
도 5는 도 2에 따른 영공간 코딩 벡터를 수신하였을 때 메시지를 디코딩하는 함수의 슈도코드(pseuodocode)의 일예이다.
도 6은 도 2에 시간 벡터를 추가하여 메시지를 생성하는 개념도이다.
도 7은 도 6에 따라 시간 벡터를 추가하여 인코딩하는 일례이다.
도 8은 본 발명의 일실시예에 따라 메시지 셋의 메시지 벡터와 영공간 벡터를 내적하여 디코딩하는 함수의 슈도코드의 일예이다.
도 9는 도 3에 도시된 일 노드(311)의 구성 블록도이다.
도 10은 본 발명의 다른 일실시예에 따른 상류 페이즈(upstream phase)에서 사용되는 상류 페이즈의 생존 정보 요구 메시지 구조를 보여주는 도면이다.
도 11은 도 10에 도시된 생존 정보 요구 메시지 구조를 이용하여 상류 페이즈에서 각 노드들이 수행하는 과정을 보여주는 흐름도이다.
도 12는 도 10에 도시된 생존 정보 요구 메시지 구조를 이용하여 상류 페이즈에서 각 노드들이 수행하는 과정을 인코딩하는 일예이다.
도 13은 도 10에 도시된 상류 페이즈의 생존 정보 요구 메시지를 수신한 노드들이 하류 페이즈(downstream phase)에서 생성하는 하류 페이즈의 생존 정보 메시지 구조를 보여주는 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는바, 특정 실시예들을 도면에 예시하고 상세한 설명에 구체적으로 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용한다.
제 1, 제 2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. "및/또는" 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미가 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않아야 한다.
이하 첨부된 도면을 참조하여 본 발명의 일실시예에 따른 MANET 환경에서 영공간을 활용한 안전한 메시지 전달 방법 및 이의 시스템을 상세하게 설명하기로 한다.
도 1은 일반적인 비트맵 방식(110)과 본 발명에서 제안하는 영공간 코딩 방식(120)에서 전달하는 메시지를 비교한 도면이다. 도 1을 참조하면, 비트맵 방식(110)의 경우 도청당한다면 몇 번 메시지를 보내는지, 몇 개의 메시지를 보내는지 직관적으로 알 수 있다. [0 1 0 1 0] 메시지는 2번째, 4번째 메시지를 조합하여 전송하는 메시지임을 쉽게 알 수 있다. 하지만 영공간 코딩 방식의 경우 코딩된 메시지 [1 0 2 0 3 4]를 도청하였다고 하더라도 아이디 테이블을 알고 있지 않으면 도청한 메시지가 어떤 메시지를 몇 개나 조합하였는지 알기 어렵다.
미리 주고받을 메시지를 설정하고 그 메시지의 개수를 n 이라고 정한다. 그리고 각 메시지마다 메시지 벡터를 할당한다. 메시지 벡터를 이루는 원소가 가지는 숫자의 범위는 설정하기 나름이며 범위가 더 클수록 오염 공격자가 임의의 벡터를 생성해내어 공격하는 기법에 저항이 강하다.
메시지 벡터의 길이는 n 보다 커야하며 이를 d 라고 했을 때 공격을 방어하기 위하여 포함되는 더미(dummy) 차원의 수는 d-n 가 된다. 이 때 d-n 값이 커질수록 도청과 오염공격에 저항성이 강해진다. 각 메시지 벡터는 반드시 서로 선형 독립(linearly independent)이어야 하나 반드시 서로 직교할(Orthogonal) 필요는 없다. 그러나 메시지의 개수가 적을수록 직교 성을 가지도록 메시지 벡터를 설정할 수 있다.
정보 오염 공격은 정상적으로 메시지 송수신이 이루어지고 있는 네트워크에서 공격자가 정상적으로 메시지 검증을 통과할 수 있지만 실제 정보와는 다른 메시지를 생성해내어 혼란을 초래하는 공격을 의미한다. 이 때 정상적인 노드들 간의 메시지 전송은 지속적으로 이루어지므로 공격자가 중간에서 이미 전송되거나 전송될 메시지를 제외하고 생성해 낸 메시지는 정상적으로 전달될 것이므로 공격으로서의 의미가 없다. 이는 정보 오염 공격은 실제로 송신자가 전송하지 않을 메시지이지만 마치 전송하는 것처럼 위조하여 수신자를 혼란시키는 공격을 의미한다. 이 때 공격자가 메시지 중 하나라도 전송하는 것처럼 조작된 메시지를 생성해낼 수 있는 확률은 다음과 같다.
Figure 112015124358519-pat00012
여기서,
Figure 112015124358519-pat00013
는 메시지 벡터의 길이이며,
Figure 112015124358519-pat00014
은 메시지의 개수,
Figure 112015124358519-pat00015
는 유한체(finite field)의 크기를 의미한다. 식을 통해서 메시지 벡터의 길이가 길수록, 유한체의 크기가 클수록 성공적으로 조작된 메시지를 생성해낼 확률이 0에 가까워짐을 알 수 있다. 따라서 사용하려는 메시지의 개수에 따라 적절한 메시지 벡터의 길이를 정하는 것이 요구된다.
메시지를 전송하기 위해서는 보내고자 하는 메시지의 메시지 벡터들이 이루는 영공간에 속하는 벡터를 찾아야 한다. 일반적으로 영공간을 찾는 수학적 기법은 2가지가 많이 쓰이며 그 중 하나는 QR Decomposition(QRD)이고 다른 하나는 Singular Value Decomposition(SVD)이다. 필연적으로 분수의 값을 포함하는 벡터값이 도출되기 때문에 소수를 플로팅 포인트로 표현하는 컴퓨터의 특성상 찾고자 하는 영공간 벡터의 값에 대하여 정확도라는 개념이 존재한다.
일반적으로 정확도는 SVD 기법이 더 높으나 QRD 또한 감내할 수 있는 수준의 정확도를 가지며 연산 복잡도 면에서 QRD가 더 간단하고 빠른 속도를 보이므로 QRD 기법을 사용하여 영공간 벡터를 찾는 것이 바람직하다.
QR Decomposition(QR factorization) 이란 선형대수에서 계산을 쉽게 하거나 특정한 성질을 가진 행렬로 바꾸기 위하여 2개의 행렬로 분해하는 Decomposition 기법 중 하나로,
Figure 112015124358519-pat00016
의 형태로 분해한다. 여기서 행렬
Figure 112015124358519-pat00017
는 직교 행렬(orthogonal matrix)이며 행렬
Figure 112015124358519-pat00018
은 상삼각 행렬(upper triangular matrix)의 형태를 지니고 있다.
Figure 112015124358519-pat00019
행렬
Figure 112015124358519-pat00020
을 QRD 로 분해할 경우
Figure 112015124358519-pat00021
행렬은
Figure 112015124358519-pat00022
행렬이 되며, 이 행렬의
Figure 112015124358519-pat00023
번째 열은 행렬
Figure 112015124358519-pat00024
의 영공간 벡터 중 하나가 그 열을 이룬다. 따라서 QRD 기법을 이용하여 영공간 벡터를 찾을 수 있다.
도 2는 본 발명의 일실시예에 따른 영공간 코딩 방식에 대한 개념도이고, 도 3은 도 2에 도시된 영공간 코딩 방식을 이용하여 메시지를 모아서 조합한 후 전송하는 간단한 예를 표현한 도식화한 도면이다. 도 2를 참조하면, 보내고자 하는 메시지가 5개이고 더미 공간(122)을 1로 두었으므로 메시지 벡터(121)의 길이는 6임을 알 수 있다.
도 3을 참조하면, 노드 1(311)은 메시지 1을 전송하기 위하여 메시지 1의 메시지 벡터인 [1 0 0 0 0 0](121) 가 이루는 영공간에 속하는 영공간 벡터인 [0 -3 2 5 -1 1](311-1)을 전송하였고, 노드 2(312)는 메시지 2를 전송하기 위하여 메시지 2의 메시지 벡터인 [0 2 0 0 0 0] 가 이루는 영공간에 속하는 영공간 벡터인 [2 0 9 -3 4 7](312-1)을 전송하였다.
이 두 메시지를 수신한 노드 3(313)은 이 벡터들([0 -3 2 5 -1 1],[2 0 9 -3 4 7])을 각 메시지 벡터([1 0 0 0 0 0],[0 2 0 0 0 0])와 내적을 수행하여 메시지 1 과 메시지 2를 수신하였음을 알 수 있다. 노드 3(313)은 여기에 메시지 3도 조합하여 전송하기 위하여 메시지 벡터인 [0 0 1 0 0 0]과 기존에 수신한 메시지의 메시지 벡터인 [1 0 0 0 0 0] 와 [0 1 0 0 0 0], 이 세 벡터가 이루는 영공간에 속하는 영공간 벡터 [0 0 0 6 -8 11]을 전송한다. 노드 4(314)와 5(315)는 이 메시지를 수신하여 앞과 같이 내적을 수행하면 메시지 1, 2, 3을 수신하였음을 알 수 있다. 노드 1 내지 노드 5(311 내지 315)는 MANET(Mobile Ad Hoc NETworks) 환경이다.
따라서, 메시지 전송에 참여하는 모든 노드들은 메시지 벡터 행렬을 미리 알고 있다는 가정 하에 전송한다. 수신 노드는 수신한 벡터를 자신이 소유하고 있는 메시지 벡터 행렬에 내적을 수행함으로써 해당 벡터를 송신한 노드가 어떤 메시지(내적 결과값이 0인 메시지 벡터)를 보내고자 하는지를 알 수 있게 된다. 메시지 벡터에 대한 정보가 없는 도청자는 이를 해독해낼 수 없다.
도 4는 도 2에 따라 영공간 코딩 벡터를 추가하여 메시지를 인코딩하는 일예이다. 도 4를 참조하면, 각 노드(도 9에 도시되며 이에 대하여는 후술하기로 한다)는 모든 메시지 벡터의 정보를 알고 있으며, 보내고자 하는 메시지에 대한 정보를 담고 있는 배열을 입력값으로 받아 조합할 메시지 벡터만을 따로 추려낸다. 그리고 이 추려낸 벡터들을 QR 콤포지션(Decomposition) 함수를 이용해 영공간 벡터를 추출하고 그 벡터를 반환한다.
수신 노드가 디코딩하는 방식은 수신한 영공간 벡터와 소유하고 있는 메시지 셋의 각 메시지 벡터와 내적(Inner product)을 수행하는 것이다. 송신자가 보내고자 하는 메시지의 메시지 벡터와 내적을 수행하면 그 값은 0이 도출될 것이며 그렇지 않은 메시지의 메시지 벡터와 내적을 수행하면 0이 아닌 값이 도출된다. 이 작업을 수행함으로써 소스 노드가 전송하고자 한 메시지를 디코딩해낼 수 있다.
컴퓨터 시스템에서 소수를 표현하는 플로팅 포인트의 특성 상, 실제로 정상적인 방법을 통해 생성된 적합한 영공간 벡터라고 할지라도 전송하고자 하는 메시지의 메시지 벡터와 내적을 수행한 값이 정확히 0이 도출되지 않을 수 있다. 그러므로 적당한 한계값을 두어 그 값보다 작은 값이 도출될 경우 0으로 간주하여 디코딩을 수행한다.
도 5는 도 2에 따른 영공간 코딩 벡터를 수신하였을 때 메시지를 디코딩하는 함수의 슈도코드의 일예이다. 도 5를 참조하면, 각 메시지 벡터마다 한 번씩 수신한 메시지 벡터(ID_Vector[i])와 영공간 벡터(Null_Vector)의 내적을 수행하여 미리 정해진 임계값보다 작은지 확인하고 그보다 작다면 해당 메시지를 수신하는 것을 볼 수 있다.
한편, 공격자가 일정 수 이상의 서로 다른 종류의 메시지를 엿들을 경우 정확한 메시지 벡터는 유추할 순 없어도 유효한 공격을 할 수 있는 메시지를 생성해낼 수 있는 확률이 올라간다. 또한 공격자가 엿들은 메시지를 그대로 재전송할 경우 유효한 공격이 될 확률이 높다. 예상되는 이러한 공격을 방어하기 위하여 영공간 벡터를 생성할 때 적법하게 네트워크에 참여하는 노드만이 공유하며 시간에 따라 변화하는 시간 벡터를 추가하여 영공간 벡터를 생성한다. 이를 보여주는 도면이 도 6이다.
즉, 도 6은 도 2에 시간 벡터를 추가하여 메시지를 생성하는 개념도이다. 도 6을 참조하면, 네트워크에 참여하고 있는 모든 노드(도 3의 311 내지 315)는 글로벌 타이머를 공유하고 이를 이용하여 메시지 전송을 하고자 하는 시간에 시간 벡터를 생성한다(610). 그리고 영공간 벡터를 생성할 때 전송하고자 하는 메시지의 메시지 벡터들과 시간 벡터가 이루는 영공간 벡터(620)를 선택하여 전송한다. 수신 노드는 디코딩을 수행할 때 메시지 벡터뿐만 아니라 생성한 시간 벡터 또한 내적 연산을 수행하여 동일한 타이머를 가진 소스 노드가 보낸 적법한 메시지인지 확인할 수 있다.
도 7은 도 6에 따라 시간 벡터를 추가하여 인코딩하는 일례이고, 도 8은 본 발명의 일실시예에 따라 메시지 셋의 메시지 벡터와 영공간 벡터를 내적하여 디코딩하는 함수의 슈도코드의 일예이다.
도 9는 도 3에 도시된 일 노드(311)의 구성 블록도이다. 도 9를 참조하면, 노드(311)는 다른 노드들과 아날로그 신호를 주고받는 통신부(1010), 아날로그 신호를 디지털 신호로 변환하거나 디지털 신호를 아날로그 신호로 변환하는 변환 모듈(1020), 및 통신부(1010), 변환모듈(1020)을 제어하는 제어부(1030) 등을 포함하여 구성된다.
제어부(1030)는 다수의 노드(도 3의 311 내지 315) 중 소스 노드들(311,312)에서 전송할 메시지에 대한 정보를 담고 있는 배열을 입력값으로 수신하고, 상기 입력값을 이용하여 조합할 메시지 벡터들을 추출하며, 상기 메시지 벡터들로부터 영공간 벡터를 생성하여 목적 노드들(314,315)로 송신한다. 또한, 상기 메시지에 상기 영공간 벡터를 추가하고 인코딩하여 상기 메시지를 상기 목적 노드들(314,315)로 송신하고, 상기 영공간 벡터와 상기 메시지 셋의 각 메시지 벡터간 내적을 수행하여 디코딩한다.
여기서, "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
한편, 도 1 내지 도 9에서 기술되는 영공간 벡터를 이용한 메시지 전달 프로토콜로 확장할 수 있다. 즉, 임의 브루트 포스 공격 및/또는 감청 공격에 안전한 메시지 전달 프로토콜의 알고리즘을 구현할 수 있다. 이를 보여주는 도면이 도 10 내지 13에 도시된다. 네트워크에 존재하는 노드 1 내지 노드 5(311 내지 315)는 전방위 브로드캐스팅(omni-broadcasting)이 가능하며 수신할 수 있는 모든 생존정보 메시지(solicitation message)를 엿듣기(오버히어링: overhearing)하는 것을 가정한다.
또한, 노드 1 내지 노드 5(311 내지 315)는 싱크 노드(sink node) 또는 일반 노드(normal node)가 될 수 있다.
― 싱크 노드(sink node): 최초 생존정보 요구 메시지(initial solicitation
message)를 전송하는 노드이다. 이를 발행할 권리는 싱크 노드에만 있다고 가정한다. 또한 최종적으로 생존정보를 취합하는 노드이다.
― 일반 노드(normal node): 생존정보 요구 메시지를 수신하면 그에 따른 응답으로 자신이 수집한 주변 노드들의 생존정보를 하나의 메시지로 생성하여 주변 노드들에게 전파하는 노드이다.
프로토콜의 수행은 크게 3 페이즈(phase)로 구성될 수 있으며, 각각 수행되는 순서대로 초기화 페이즈(Initialization Phase), 상류 페이즈(Upstream phase), 하류 페이즈(Downstream phase)로 칭한다.
초기화 페이즈(Initialization Phase)는 본격적으로 프로토콜이 가동되기 전에, 각 노드(311 내지 315)가 사용할 고유 ID를 할당하고 전체 노드의 ID할당 정보를 담은 행렬을 전체 노드에게 나눠주는 페이즈이다. 상류 페이즈는 싱크 노드로부터 생존정보 요구 메시지가 발생하여 전체 네트워크로 퍼져나가는 페이즈이다. 하류 페이즈는 네트워크의 가장자리 노드로부터 싱크노드까지 생존정보 메시지가 취합되어 전달되는 페이즈이다.
그리고 이 한 번의 상류 페이즈와 하류 페이즈를 합쳐 1 라운드(Round)를 이룬다. 일반적으로 한 번의 라운드에 한 번의 생존정보 요구 메시지 전송과 생존정보 응답 메시지 전송이 이루어지나 네트워크 환경의 가혹함에 따라 그 횟수는 변경될 수 있다.
Ⅰ. 초기화 페이즈(Initialization Phase):
네트워크가 시작되기전 각 노드(311 내지 315)는 고유의 ID를 하나씩 부여 받는다. 가상의 조정자가 존재하여 각 노드에게 적절한 ID를 부여하는 것으로 가정한다. 그리고 각 노드에 부여된 ID를 노드의 순서에 따라 나열함으로써 하나의 행렬로 만들고 이를 각 노드들이 공유하게 된다.
각 노드는 이 ID 행렬을 이용하여 생존정보 요구 메시지 생성에 사용할 생존정보 ID 행렬을 생성한다. 이 때 각 노드의 ID는 서로 선형 독립을 이루어야 한다. 이후 하류 페이즈에서 설명하겠지만, 생존정보 ID 행렬은 반드시 서로 선형 독립이어야 하는 조건이 있다. ID를 이용하여 생존정보 ID 행렬의 ID 벡터를 생성할 때 모든 ID가 같은 방식으로 변형되기 때문에, 만약 서로 선형 종속인 ID 가 존재한다면 이를 이용해 생성한 ID 벡터 또한 서로 선형 종속인 벡터가 생성될 것이기 때문이다.
각 노드에 위의 조건을 만족하는 ID 벡터를 부여했다면, 각 노드와 그 노드에 할당된 ID 간의 매핑 정보를 담은 생존정보 ID 행렬을 생성하고, 각 노드는 이 행렬을 부여 받게 된다.
Ⅱ. 상류 페이즈(Upstream Phase):
상류 페이즈는 싱크 노드로부터 생존정보 요구 메시지가 전체 네트워크로 전파되어 가는 단계이다. 최초로 발생되는 생존정보 요구 메시지는 싱크 노드에서만 발행될 수 있으며 브로드캐스팅으로 전송되기 때문에 무선 범위 내에 존재하는 모든 일반 노드는 생존정보 요구 메시지를 수신한다. 생존정보 요구 메시지에는 두 가지 정보가 포함되어 전송된다. 도 10은 본 발명의 다른 일실시예에 따른 상류 페이즈(upstream phase)에서 사용되는 상류 페이즈의 생존 정보 요구 메시지 구조를 보여주는 도면이다. 도 10을 참조하면 다음과 같다.
― 라운드 식별자(round ID): 생존정보를 수집하기 위해 생존정보 요구 메시지(1010)가 발생하고 그에 대한 응답으로 생존정보 응답 메시지를 생성하여 전송하는 일련의 과정을 수행하는 전체 과정을 라운드라고 한다. 보안을 고려한 전송을 위해 각 라운드마다 식별자를 두어 모든 노드가 이를 공유하며 용도는 다음과 같다.
① 중복된 생존정보 요구 메시지를 걸러낼 때 사용된다. 브로드캐스팅으로 주변에 생존정보 요구 메시지를 전파하기 때문에 한 노드가 동일한 라운드 식별자를 가진 메시지를 여러 번 수신할 수 있다. 이 때 가장 처음 수신한 생존정보 요구 메시지에만 반응하기 위하여 라운드 식별자를 사용한다.
② 각 노드가 보유한 ID 행렬을 생존정보 ID 행렬로 변환하기 위한 키 값으로 이용한다. 한 노드의 생존정보 ID 벡터의 차원을 늘리는데 그 값을 이용한다. 이 때 이용되는 알고리즘은 여러 가지가 존재할 수 있으나, 벡터의 차원이 전체 ID 의 개수보다 많은 조건만 만족하면 사용이 가능하다.
③ 이후 설명할 인증 벡터를 생성하는데 활용된다.
― 홉 카운트(hop count): 이 정보는 수신한 생존정보 요구 메시지를 통해 싱크 노드로부터 얼마나 멀리 위치해있는지를 파악하고, 이를 기반으로 생존정보 메시지를 전파할 타이밍을 정한다. 싱크 노드에서 발행하는 최초 생존정보 요구 메시지는 이 값을 0으로 설정하여 전파하며, 각 일반 노드에서 수신하였을 때는 기존 값에서 1 을 더한 값으로 설정하여 전파한다.
도 11은 도 10에 도시된 생존 정보 요구 메시지 구조를 이용하여 상류 페이즈에서 각 노드들이 수행하는 과정을 보여주는 흐름도이다. 도 11을 참조하면, 각 노드(311 내지 315) 중 어느 하나의 노드가 생존 정보 요구 메시지를 수신하고, 이 생존 정보 요구 메시지가 첫 수신인지를 확인한다(단계 S1110,S1120).
첫 수신이 아니고 중복 수신이면 수신된 생존 정보 요구 메시지를 무시한다(단계 S1130). 이와 달리, 단계 S1120에서 확인 결과, 첫 수신이면 라운드 식별자를 획득하고, 홉 카운트를 증가하여 새로운 생존 정보 요구 메시지를 브로드캐스팅한다(단계 S1160).
도 12는 도 10에 도시된 생존 정보 요구 메시지 구조를 이용하여 상류 페이즈에서 각 노드들이 수행하는 과정을 인코딩하는 일예이다. 부연하면, 도 11에 도시된 흐름도를 인코딩하는 예이다.
도 13은 도 10에 도시된 상류 페이즈의 생존 정보 요구 메시지를 수신한 노드들이 하류 페이즈(downstream phase)에서 생성하는 하류 페이즈의 생존 정보 메시지 구조를 보여주는 도면이다. 하류 페이즈는 상류 페이즈에서 생존정보 요구 메시지를 수신한 노드들이 일정 지연시간을 갖고 오버히어링을 수행하다가 자신의 전송 타이밍이 되면 자신의 주위로 생존정보를 전파하는 작업을 수행하는 단계이다.
도 13을 참조하면, 하류 페이즈의 생존 정보 메시지(1310)는 라운드 식별자(1312), 최대 홉 카운트(1313), 생존 정보 ID 행렬(1314) 등을 포함한다.
도 10에 도시된 생존 정보 요구 메시지(1010)와 도 13에 도시된 생존 정보 요구 메시지(1310)의 관계에 대하여 부연설명을 다음과 같다.
도 10의 메시지는 네트워크 전체의 생존정보를 수집하기 위해 주변에 전파하는 일종의 하트비트 메시지이다. 이를 수신한 각 노드들은 전체 네트워크로 이를 전파하기 위하여 자신 또한 이 메시지를 주변에 전파한다. 도 13의 메시지는 도 10의 메시지를 수신한 각 노드들이 그에 부응해 자신이 갖고 있는 생존정보를 인코딩하여 주변 노드들에게 피드백할 때 발신하는 메시지이다. 도 10의 메시지를 수신하였을 때의 hop count를 이용하여 계산한 일정 시간을 기다린 후 이 메시지를 주변에 전파한다.
일단, 라운드 식별자(1312)는 상류 단계에서 취득하였던 값과 동일한 값을 사용한다. 최대 홉 카운트(1313)는 싱크 노드로부터 최대로 머리 위치해 있는 확인하기 위한 값이다.
생존 정보 ID 행렬(1314)은 위에서 기술되는 영공간 벡터를 이용하여 각 노드가 보유하고 있는 노드 ID 행렬로부터 변환된 정보이다. 부연하면, 하류 페이즈에서 생존정보 전송을 위해서는 각 노드가 보유하고 있는 노드 ID 행렬을 생존정보 ID 행렬로 변환할 필요가 있다. 생존정보 ID 벡터와 그 벡터들로 이루어진 생존정보 ID 행렬은 네트워크와 시스템 환경, 전체 노드의 개수, 달성하고자 하는 보안 정도에 따라 벡터 공간의 차원, 체(field)의 크기가 달라진다. 생존정보 ID 벡터는 크기가 q인 체 위에 n 차원(보안 정도에 따라 n 의 크기가 달라진다)의 벡터공간 안에 속하며, 그 r(노드의 개수) 개의 ID 벡터들은 다음의 3 가지 조건을 만족해야 한다. 3가지 조건은 다음과 같다.
① 모든 ID 벡터는 서로 선형독립이어야 한다.
② 벡터의 차원 n r 보다 커야 한다.
③ ID 벡터의 원소에는 0이 포함되지 않도록 한다.
벡터들 간의 선형독립이 보장되어야 하는 이유는 올바른 방법으로 생성된 생존정보 메시지라 하더라도 생존정보의 교란을 일으킬 수 있기 때문이다. 임의의 ID 벡터들이 서로 선형 종속일 경우 이 벡터들의 영공간은 모두 같다. 따라서 서로 선형 종속인 ID 벡터 중 일부의 ID 벡터를 영공간 코딩을 수행하여 생존정보 메시지를 만들 경우 이 메시지는 해당 ID 벡터와 선형 종속인 다른 ID 벡터들과도 직교하기 때문에, 수신자가 이 생존정보 메시지를 이용하여 디코딩을 수행하면 실제로 생존해있지 않은 노드 또한 생존해있는 것으로 오인할 수 있다. 따라서 ID 벡터로 선정된 벡터들은 서로 선형 독립이어야 한다.
조건 ①을 만족하는 ID 벡터를 이용하여 영공간 코딩을 하기 위해서는 ID 벡터의 차원 n이 ID 벡터의 개수 r 보다 클 필요가 있다. 만약 n 이 r 보다 작다면 ID 벡터 사이에는 반드시 선형 종속의 관계를 가진 ID 벡터들이 존재하게 되며 이는 조건 ①을 위배한다. 또한 n과 r이 같을 때에는, 모든 노드가 생존해있다면 이에 대한 생존정보메시지로 선택되는 null 벡터는 0 벡터 하나 밖에 존재하지 않게 된다. 이는 보안상의 취약점을 초래하기 때문에 이 또한 허용될 수 없다. n 이r 보다 크기만 하면 되지만, 얼마나 더 커야 하는지는 보안 정도에 관련된 사항이다.
ID 벡터를 생성할 때 원소로 0을 허용하지 않는 이유는 보안 정도를 높이는데 도움이 되고자 함이다. 앞에서 기술하였듯이, 생존 정보 메시지는 메시지 벡터의 모든 원소가 0 인 0 벡터를 허용하지 않는다. 0 벡터는 모든 벡터와 내적 연산을 수행하였을 때 0 의 값이 도출되기 때문에 설령 모든 노드가 생존해 있다고 하더라도 생존정보 메시지를 0 벡터로 생성해서 보내지 않는다.
만약 0 벡터를 생존정보 메시지로 허용한다면 악의의 공격자가 0 벡터를 전파한다면 생존정보의 교란을 무조건 일으킬 수 있기 때문이다. 그렇다면 0 벡터 다음으로 임의의 벡터와 직교하도록 쉽게 생성할 수 있는 벡터는, 하나의 원소에만 임의의 값을 설정하고 이를 제외한 나머지 모든 원소를 0 으로 채운 벡터가 될 것이다. 이러한 벡터를 악의의 공격자가 오염 메시지로 전송한다면, 오염 메시지 벡터에서 0이 아닌 값으로 설정한 원소의 순서에 0 의 값이 설정된 ID 벡터는 모두 그 오염 메시지와 직교하게 된다. 따라서 공격자가 손쉽게 ID 벡터와 직교하는 벡터를 생성해낼 수 있으므로 0 이 포함된 ID 벡터는 보안에 불리할 수 있기 때문에 선택되지 않는다.
위의 조건을 고려하여 변환한 생존정보 ID 벡터를 생존정보 전달에 사용한다. 이를 변환하는 방법은 여러 가지가 존재할 수 있으며 위의 조건을 만족한다면 어떤 방식으로 변환하든 생존정보 전송에는 문제가 되지 않으며 이는 적법한 노드들만이 공유한다. 또한 보안을 고려한 전송을 위해서 상류 단계에서 수신한 라운드 식별자를 이용하여 ID 벡터의 차원 n 을 라운드마다 다르게 설정하여 생존정보 메시지를 생성한다. 라운드 식별자를 이용하여 이번 라운드에 사용할 벡터공간의 차원 n 값을 계산하는 방법 또한 적법한 사용자만이 알고 있다.
상류 페이즈에서 생존정보 요구 메시지의 전파가 수행되면 싱크 노드에서 물리적으로 멀리 위치해있는 노드들로부터 생존정보 응답 메시지가 생성되어 상류 페이즈의 역방향으로 전파된다. 이 때 각 노드는 자신의 전송 타이밍이 오기 전까지 주변의 다른 노드들이 전파하는 생존정보 메시지를 모두 수신하여 생존정보를 수집한다. 엿듣기(오버히어링)한 메시지로부터 생존정보를 추출하는 방법은 보유하고 있는 생존정보 ID 행렬과 내적 연산을 수행하는 것이다. 연산을 수행하면 1 ×r 행렬(생존정보 ID 행렬은 생존정보 ID 벡터를 열벡터로 하여 노드의 개수인 r만큼 늘어놓은 n×r행렬이다. 이 결과 값에서 0 이 나온 열에 해당하는 노드는 생존해 있다는 정보를 얻을 수 있으며, 0 이 아닌 다른 값이 나온 열은 생존 여부를 알 수 없는 노드라는 정보를 얻을 수 있다. 이 작업을 생존정보 전송 전까지 수행함으로써 주변 노드들이 보내는 생존정보를 취합, 축적할 수 있으며 이 정보를 기반으로 이후 생존정보 메시지를 생성한다.
한편, 브로드캐스팅 타이밍의 설정은 다음과 같다.
조정자(Coordinator)가 없는 애드-혹 네트워크 환경에서 전체 노드의 생존정보를 한 점으로 모아야 하기 때문에, 메시지 전송의 효율을 높이려면 노드 단위의 일정 관리(scheduling)가 필요하다. 메시지 전송이 일어날 때 충돌이 일어나면 생존정보의 정확도에 문제가 생기며 이는 불필요한 재전송을 요구하게 된다. 또한 이미 한 노드가 생존정보 전송을 완료했는데도 불구하고 생존정보 메시지를 수신하면 그 메시지에 포함된 생존정보를 다시 합쳐 메시지를 생성하고 전파해야 하기 때문에 메시지의 전달 횟수에서 효율성이 떨어지게 된다. 따라서 생존정보 전달의 효율성을 위해서는 각 노드가 적절한 차례를 가지고 순차적으로 메시지를 전파해야 한다.
하지만 조정자가 없고 주변 노드들과 협력을 하지 않기 때문에, 각 노드는 스스로 생존정보 요구 메시지의 홉카운트를 이용하여 임의의 전송 타이밍을 결정한다. 최초로 생존정보 요구 메시지를 수신한 시점을 기점으로 몇 초 후에 생존정보를 생성하여 보낼 건지를 정한다. 생존정보 전송을 위해 대기하는 시간을 계산하는 식은 다음과 같다.
Figure 112015124358519-pat00025
싱크 노드에서 멀리 떨어진 노드일수록 가까이 있는 노드보다 더 빨리 생존정보 메시지를 전송해야 하므로 각 노드는 최대 홉카운트 값을 예측하여 전송 타이밍을 결정하여야 한다. 따라서 초기화 단계에서 초기화를 담당하는 가상의 조정자는 각 노드를 배포하기 전에 네트워크의 규모와 배치를 고려해 적당히 큰 값을 최대 홉카운트로 설정을 함으로써 모든 노드가 일단 생존정보 전파를 할 수 있도록 한다.
생존정보 수집이 시작되면 각 일반 노드들은 생존정보 메시지를 전파할 때 자신의 홉카운트 값과 수신한 생존정보 메시지들의 홉카운트 값 중 큰 값을 선택하여 이를 생존정보 메시지에 포함시켜 메시지를 전파한다. 이를 통해 생존정보 메시지를 수신하였을 때 자신의 최대 홉카운트 설정값을 조절할 수 있다. 홉 간의 전송 시간은 네트워크 환경에 맞춰 적절히 설정하며 노드 간의 메시지 충돌을 막기 위해 더해지는 무작위 시간값은 0 보다 크고 홉 간 전송시간 보다 작은 값 사이에서 임의로 선택된다.
영벡터의 생성은 다음과 같다.
각 노드는 생존정보 요구 메시지를 수신하면 자신의 전송 타이밍을 계산하고, 그 전까지 주변의 노드들이 전파하는 생존정보 메시지를 엿듣기(오버히어링)하며 생존정보를 최신화하다가, 자신의 전송 타이밍이 되면 자신이 가진 생존정보를 메시지로 생성하여 주변에 전파한다. 생존정보로서 보내지는 내용은 현재 생존해 있다고 판단되는 노드들의 생존정보 ID 벡터들을 모아 그 벡터들의 null 벡터를 만들어 전송하는 것이다. 이 때 생성된 null 벡터가 오직 생존해있는 노드들의 ID 벡터들과 직교하는지를 확인하여야 한다. 벡터의 차원과 전체 노드 개수의 차이가 클수록, 체의 크기가 클수록 생성된 null 벡터가 생존해있지 않은 노드의 생존정보 ID 벡터와도 직교할 확률이 작아진다. 한 행렬의 영공간의 기저를 구하는 가장 쉬운 방법은 RREF(Reduced Row Echelon Form)를 구하는 것이며 이는 선형대수학에서 쓰이는 기초적이면서도 간단한 기법이다. 이를 구하는 복잡도는 O(n3) 이며 다른 기법도 많이 존재한다.
한편, 인증 벡터를 이용하여 인증하는 것이 가능하다. 인증 벡터는 적법한 노드만이 라운드 식별자를 이용하여 생성해낼 수 있는 벡터로서, 수신한 생존정보 메시지가 적법한 노드로부터 생성된 메시지인지 인증하기 위한 벡터이다. 적법한 노드만이 라운드 식별자로부터 인증벡터를 생성하는 방법을 알고 있다. 이 인증벡터는 생존정보 ID 벡터가 가지는 조건을 만족할 필요가 없으며 0 벡터만 아니면 모든 n 차원 벡터가 인증 벡터로서 사용이 가능하다. 이 인증벡터는 생존정보 메시지를 생성할 때, 즉 null 벡터를 계산할 때 마치 하나의 생존정보 ID 벡터인 것처럼 포함하여 메시지를 생성한다.
라운드 식별자는 라운드마다 달라지므로 사용되는 인증 벡터 또한 달라지기 때문에 라운드마다 다른 인증벡터를 사용하게 된다. 각 노드는 생존정보 메시지를 오버히어링 할 때마다 생존정보 ID 행렬과 내적을 수행하는데 이 때 더불어 인증벡터와도 내적 연산을 수행한다. 이 때 내적의 결과값이 0 이 나오지 않을 경우 적법한 노드로부터 생성된 생존정보 메시지가 아님을 알 수 있으므로 해당 메시지는 버려지게 된다.
부연하면, 상류 페이즈에서는 싱크 노드에서 발행한 최초 생존정보 요구 메시지를 통하여 라운드 식별자를 모든 노드에게 전파하여야 한다. 이 때 공격자가 네트워크의 중간에서 그릇된 라운드 식별자를 가진 생존정보 요구 메시지를 전파하거나 홉카운트를 조작하여 전파할 경우 생존정보 수집에 큰 장애를 초래할 수 있다. 따라서 상류 단계의 메시지에 메시지 인증 코드를 사용하여 이와 같은 공격을 미연에 방지할 수 있다. 그러나 일반 메시지 인증 코드는 일대일 간의 인증에 사용하는 것으로, 만약 다수의 수신자를 가진 환경에서 메시지 인증 코드를 사용할 경우 각 수신 노드에 대하여 모두 서로 다른 키를 가지고 인증을 해야 한다. 만약 그렇지 않을 경우 2 개의 메시지만 엿들어도 메시지 인증에 사용한 키 값을 알아낼 수 있다. 따라서 이를 방지하기 위하여 다수신자 메시지 인증 코드 기법을 사용한다. 다수신자 메시지 인증 코드 기법은 k 의 차수를 가진 다항식 M+1 개를 생성하여 이를 키로 삼는다. 이를 수학식으로 나타내면 다음과 같다.
Figure 112015124358519-pat00026
여기서,
Pi : 생성된 키(다항식)
ai : 키 쉐어를 만들어내기 위한 계수
각 다항식에 공용키를 대입한 값들을 키 쉐어(key share)하 하며 이를
각 노드들이 나눠 가짐으로써 이후의 메시지 인증에 사용한다.
Figure 112015124358519-pat00027
이후 메시지에 대한 태그를 생성할 때는 모든 다항식에 공용 키 값을
대입한 결과를 더하여 하나의 태그로 완성한다. 이를 수학식으로 나타내면 다음과 같다.
Figure 112015124358519-pat00028
여기서,
A : 키 쉐어를 이용하여 생성한 인증 태그
Si : 메시지
이후 각 노드들은 자신이 가진 키 쉐어와 메시지를 이용하여 태그와 계산값을 비교한다. 즉 간단히 설명하자면, 인증을 위해 사용하는 키 자체를 숫자가 아니라 k차 다항식으로 설정함으로써 2 개가 아닌 k + 1개 이상의 메시지를 엿들어야만 키를 풀어낼 수 있도록 하는 것이다. 하류 페이즈에서 사용하는 인증은 이와 반대의 개념인 다송신자 메시지 인증 기법이다. 하나의 메시지에 대한 태그를 생성하기 위하여 이에 대해 다른 노드들이 미리 키 쉐어를 갖고 있으며, 메시지를 인증하고자 할 때 이 키 쉐어들을 조합함으로써 그 메시지에 대한 태그를 완성한다.
수신자는 온전한 키를 갖고 있으므로 이를 이용하여 메시지와 태그를 생성하고 수신한 값과 비교하여 인증을 수행할 수 있다. 이 역시 다수신자 인증 코드와 마찬가지로 k + 1 개 이상의 키 쉐어를 갖고 있어야만 조작된 메시지에 대한 태그를 생성할 수 있다.따라서 이를 본 발명의 일실시예에서 제안하는 프로토콜에 적용하기 위해서는, 메시지를 다 만들고 나서 이 메시지 자체를 인증하는 방식으로 채택한다. 즉 별개의 레이어에서 따로 수행되는 인증 기법이기 때문에 null 벡터를 이용한 보안과 메시지 인증 코드를 통한 인증은 독립사건이라고 볼 수 있으며, 이는 공격자가 유효한 공격을 하기 위해서는 전혀 다른 보안 2 개를 동시에 회피하여야 한다는 것이다. 그렇기 때문에 더욱더 강력한 보안 시스템을 구축할 수 있다. 인증을 위한 키 쉐어 분배는 널리 알려져 있으므로 더 상세한 설명은 생략하기 로한다.
121: 메시지 벡터
122: 더미 공간
311: 노드1 312: 노드2
313: 노드3 314: 노드4
315: 노드5
1010: 통신부
1020: 변환모듈
1030: 제어부

Claims (15)

  1. 통신부, 상기 통신부로부터 전송된 아날로그 신호를 디지털로 변환하거나 디지털 신호를 아날로그 신호로 변환하는 변환 모듈 및 상기 통신부 및 변환 모듈을 제어하는 제어부를 포함하는 다수의 노드로 이루어지는 MANET(Mobile Ad Hoc NETworks) 환경에서 영공간을 활용한 안전한 메시지 전달 방법에 있어서,
    (a) 상기 제어부가 상기 다수의 노드가 사용할 고유 ID(IDentification)를 할당하고 할당된 ID 할당 정보를 담은 노드 ID 행렬을 배포하는 초기화 페이즈를 수행하는 단계;
    (b) 상기 제어부가 상기 다수의 노드 중 싱크 노드로부터 발행되는 제 1 생존 정보 요구 메시지를 상기 다수의 노드 중 나머지 노드들로 브로드캐스팅으로 전송하는 상류 페이즈를 수행하는 단계; 및
    (c) 상기 제어부가 상기 다수의 노드 중 나머지 노드들로부터 상기 싱크 노드까지 상기 제 1 생존 정보 요구 메시지가 취합되어 전달되며, 영공간 벡터를 이용하여 상기 노드 ID 행렬을 생존 정보 ID 행렬로 변환한 제 2 생존 정보 요구 메시지를 전송하는 하류 페이즈를 수행하는 단계;
    를 포함하는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  2. 제 1 항에 있어서,
    상기 제 1 생존 정보 요구 메시지는 1회의 상류 페이즈와 1회의 하류 페이즈의 수행을 합한 값으로 상기 제 1 생존 정보 요구 메시지의 중복을 걸러내기 위한 제 1 라운드 식별자 및 상기 제 1 생존 정보 요구 메시지를 통해 싱크 노드로부터 얼마나 멀리 위치해 있는 지를 알려주는 홉카운트를 포함하는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  3. 제 2 항에 있어서,
    상기 제 2 생존 정보 요구 메시지는 1회의 상류 페이즈와 1회의 하류 페이즈의 수행을 합한 값으로 상기 제 2 생존 정보 요구 메시지의 중복을 걸러내기 위한 제 2 라운드 식별자, 상기 제 2 생존 정보 요구 메시지를 통해 싱크 노드로부터 최대로 멀리 위치해 있는 지를 알려주는 최대 홉카운트 및 상기 생존 정보 ID 행렬을 포함하며,
    상기 제 2 생존 정보 요구 메시지는 상기 제 2 라운드 식별자를 이용하여 ID 벡터의 차원을 라운드마다 다르게 설정하여 생성되는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  4. 제 1 항에 있어서,
    상기 생존 정보 ID 행렬의 ID 벡터들은 서로 선형 독립이고, 벡터의 차원은 노드의 개수(r)보다 크고, 벡터의 원소에는 "0"이 포함되지 않은 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  5. 제 1 항에 있어서,
    상기 (c) 단계에서, 영공간 벡터의 산출은,
    (c-1) 상기 제어부가 상기 다수의 노드 중 소스 노드들에서 전송할 다수의 메시지로 이루어지는 메시지 셋(set)에 대한 정보를 담고 있는 배열을 입력값으로 수신하는 단계;
    (c-2) 상기 제어부가 상기 입력값을 이용하여 조합할 메시지 벡터들을 추출하는 단계;
    (c-3) 상기 제어부가 상기 메시지 벡터들로부터 영공간 벡터를 생성하여 상기 다수의 노드 중 목적 노드들로 송신하는 단계;
    (c-4) 상기 제어부가 상기 메시지 셋에 상기 영공간 벡터를 추가하고 인코딩하여 상기 메시지 셋을 상기 목적 노드들로 송신하는 단계; 및
    (c-5) 상기 제어부가 상기 목적 노드들에서 상기 영공간 벡터와 상기 메시지 셋의 각 메시지 벡터간 내적을 수행하여 디코딩하는 단계;
    을 포함하는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  6. 제 5 항에 있어서,
    상기 (c-4) 단계는, 상기 제어부가 중간 노드에서 상기 소스 노드들로부터 수신한 상기 메시지 셋을 하나의 메시지로 합하여 상기 목적 노드들로 전송하는 단계;를 포함하는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  7. 제 6 항에 있어서,
    상기 제어부가 상기 메시지 셋을 하나의 메시지로 합하여 상기 목적 노드들로 전송하는 단계는, 상기 소스 노드들로부터의 영공간 벡터들을 이용하여 하나의 영공간 벡터를 생성하는 단계;를 포함하는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  8. 제 5 항에 있어서,
    상기 소스 노드들에서 상기 목적 노드들로 상기 메시지 셋이 전달되는 동안, 상기 소스 노드들에서 상기 목적 노드들로 경로를 설정하지 않는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  9. 제 5 항에 있어서,
    상기 다수의 노드는 인증된 노드로서, 서로간 식별을 위한 식별자를 공유하며, 상기 소스 노드들은 상기 메시지 셋을 중복적으로 상기 목적 노드들로 전송하는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  10. 제 5 항에 있어서,
    상기 영공간 벡터는 QR 콤포지션(Decomposition) 함수를 이용하여 추출되는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  11. 제 5 항에 있어서,
    상기 디코딩은 상기 하나의 해당 소스 노드가 전송한 메시지의 메시지 벡터와 영공간 벡터의 내적을 수행하면 0이 도출되고, 상기 하나의 해당 소스 노드가 전송한 메시지가 아닌 경우 0이 아닌 값이 도출되는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  12. 제 5 항에 있어서,
    상기 (c-3) 단계는, 상기 제어부가 상기 영공간 벡터에 시간 벡터를 추가하는 단계;를 포함하는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  13. 제 12 항에 있어서,
    상기 시간 벡터는 상기 다수의 노드가 모두 공유하는 글로벌 타이머를 이용하여 생성되는 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  14. 제 5 항에 있어서,
    상기 메시지 벡터는 더미 공간을 포함하며, 상기 더미 공간은 "1"인 것을 특징으로 하는 영공간을 활용한 안전한 메시지 전달 방법.
  15. 통신부, 상기 통신부로부터 전송된 아날로그 신호를 디지털로 변환하거나 디지털 신호를 아날로그 신호로 변환하는 변환 모듈 및 상기 통신부 및 변환 모듈을 제어하는 제어부를 포함하는 다수의 노드로 이루어지는 MANET(Mobile Ad Hoc NETworks) 환경의 영공간을 활용한 안전한 메시지 전달 시스템에 있어서,
    상기 제어부가 상기 다수의 노드가 사용할 고유 ID(IDentification)를 할당하고 할당된 ID 할당 정보를 담은 노드 ID 행렬을 배포하는 초기화 페이즈를 수행하고, 상기 다수의 노드 중 싱크 노드로부터 발행되는 제 1 생존 정보 요구 메시지를 상기 다수의 노드 중 나머지 노드들로 브로드캐스팅으로 전송하는 상류 페이즈를 수행하고, 상기 다수의 노드 중 나머지 노드들로부터 상기 싱크 노드까지 상기 제 1 생존 정보 요구 메시지가 취합되어 전달되며, 영공간 벡터를 이용하여 상기 노드 ID 행렬을 생존 정보 ID 행렬로 변환한 제 2 생존 정보 요구 메시지를 전송하는 하류 페이즈를 수행하는 것을 특징으로 하는 공간을 활용한 안전한 메시지 전달 시스템.
KR1020150181628A 2015-12-18 2015-12-18 Manet 환경에서 영공간을 활용한 안전한 메시지 전달 방법 및 이의 시스템 KR101699434B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150181628A KR101699434B1 (ko) 2015-12-18 2015-12-18 Manet 환경에서 영공간을 활용한 안전한 메시지 전달 방법 및 이의 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150181628A KR101699434B1 (ko) 2015-12-18 2015-12-18 Manet 환경에서 영공간을 활용한 안전한 메시지 전달 방법 및 이의 시스템

Publications (1)

Publication Number Publication Date
KR101699434B1 true KR101699434B1 (ko) 2017-02-13

Family

ID=58155924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150181628A KR101699434B1 (ko) 2015-12-18 2015-12-18 Manet 환경에서 영공간을 활용한 안전한 메시지 전달 방법 및 이의 시스템

Country Status (1)

Country Link
KR (1) KR101699434B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100646824B1 (ko) * 2005-10-14 2006-11-23 전자부품연구원 다수의 노드를 포함하는 무선 네트워크에서의 tdma기반 데이터 전송 제어 방법 및 이를 이용한 센서 네트워크시스템 및 컴퓨터로 판독 가능한 기록 매체
KR20070072312A (ko) * 2005-12-30 2007-07-04 삼성전자주식회사 무선 애드혹 망을 위한 링크 이동성 추적 방법
KR20080037168A (ko) 2006-10-25 2008-04-30 안상현 다중 인터넷 게이트웨이를 이용하는 이동 애드혹 네트워크환경에서 인터넷 게이트웨이와 이동 노드간의 홉 수와인터넷 게이트웨이의 광고 메시지 수신 간격을 이용하여인터넷 노드와 통신하는 이동 노드들의 총 전송률 향상을위한 인터넷 게이트웨이 선택 방법
KR20100042516A (ko) * 2008-10-16 2010-04-26 숭실대학교산학협력단 애드 혹 네트워크의 데이터 전송 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100646824B1 (ko) * 2005-10-14 2006-11-23 전자부품연구원 다수의 노드를 포함하는 무선 네트워크에서의 tdma기반 데이터 전송 제어 방법 및 이를 이용한 센서 네트워크시스템 및 컴퓨터로 판독 가능한 기록 매체
KR20070072312A (ko) * 2005-12-30 2007-07-04 삼성전자주식회사 무선 애드혹 망을 위한 링크 이동성 추적 방법
KR20080037168A (ko) 2006-10-25 2008-04-30 안상현 다중 인터넷 게이트웨이를 이용하는 이동 애드혹 네트워크환경에서 인터넷 게이트웨이와 이동 노드간의 홉 수와인터넷 게이트웨이의 광고 메시지 수신 간격을 이용하여인터넷 노드와 통신하는 이동 노드들의 총 전송률 향상을위한 인터넷 게이트웨이 선택 방법
KR20100042516A (ko) * 2008-10-16 2010-04-26 숭실대학교산학협력단 애드 혹 네트워크의 데이터 전송 방법

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"다중 사용자 MIMO 시스템을 위한 순차적 영공간 계산", by 정진곤 외 1명 한국통신학회논문지 32(12), 2007.12, 1238-1243 (6 pages) *
1. 김상철, "단일 노드 결합시 MANET 자동 네트워킹 프로토콜의 메시지 복잡도 분석"한국통신학회논문지 제32권 제5호 (2007년 5월) pp.257-269

Similar Documents

Publication Publication Date Title
CN105187200B (zh) 用于在网络中生成密钥的方法以及在网络上的用户和网络
Lai et al. A unified framework for key agreement over wireless fading channels
Clementi et al. Distributed broadcast in radio networks of unknown topology
Zhou et al. Secret key generation in the two-way relay channel with active attackers
Wang et al. Optimal linear network coding design for secure unicast with multiple streams
CN113285923B (zh) 基于空海跨域通信网关的数据安全传输方法及存储介质
Elmahdi et al. Securing data forwarding against blackhole attacks in mobile ad hoc networks
CN107666491B (zh) 基于对称加密的空地一体化网络的数据传输方法
Wang et al. Optimal design of linear network coding for information theoretically secure unicast
Li et al. Exact secrecy throughput capacity study in mobile ad hoc networks
US9191371B2 (en) Network coding-based anonymous communication
KR101699434B1 (ko) Manet 환경에서 영공간을 활용한 안전한 메시지 전달 방법 및 이의 시스템
CN104780169A (zh) 一种基于控制器的量子中继器网络编码方案
Wu et al. A generic secure transmission scheme based on random linear network coding
Zhu et al. SPAIS: A novel Self-checking Pollution Attackers Identification Scheme in network coding-based wireless mesh networks
CN104219661A (zh) 抗tdoa定位追踪的源位置隐私保护路由方法
Deryabin et al. Protocol for secure and reliable data transmission in MANET based on modular arithmetic
Bansal et al. Robinhood: sharing the happiness in a wireless jungle
SM et al. IDENTITY BASED ATTACK DETECTION AND MANIFOLD ADVERSARIES LOCALIZATION IN WIRELESS NETWORKS.
CN106604274A (zh) 无线传感器网络中基于信息论及密码学的安全通信方法
CN104717652A (zh) 基于无线链路签名的身份认证方法
Zhao et al. Throughput improvement in two dimensional underwater acoustic networks by interference alignment
Ahmad et al. Security on MANETs using block coding
Chen et al. Secrecy extraction from increased randomness in a time-variant MIMO channel
Tang et al. Revisiting a secret sharing approach to network codes

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 4