KR20110069695A - 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법 - Google Patents

네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법 Download PDF

Info

Publication number
KR20110069695A
KR20110069695A KR1020100099613A KR20100099613A KR20110069695A KR 20110069695 A KR20110069695 A KR 20110069695A KR 1020100099613 A KR1020100099613 A KR 1020100099613A KR 20100099613 A KR20100099613 A KR 20100099613A KR 20110069695 A KR20110069695 A KR 20110069695A
Authority
KR
South Korea
Prior art keywords
network
node
block
transmitting
packet
Prior art date
Application number
KR1020100099613A
Other languages
English (en)
Other versions
KR101161585B1 (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 한국과학기술원
Publication of KR20110069695A publication Critical patent/KR20110069695A/ko
Application granted granted Critical
Publication of KR101161585B1 publication Critical patent/KR101161585B1/ko

Links

Images

Classifications

    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Abstract

본 발명은 송신측 노드로부터 송신되는 패킷들을 중간 노드에서 수집한 후 이를 인코딩하여 수신측 노드에 전송하는 네트워크 코딩을 이용한 망에서의 보안 처리 시스템으로서, 이를 위하여 본 발명의 실시 예에 따른 송신측 노드는, 수신측 노드와 보안 채널을 형성한 후 수신측 노드와 보안 키를 공유하는 채널 형성부와, 수신측 노드에 전송할 전송 데이터를 블록으로 나눈 후 각 블록을 암호화하여 전송 패킷을 생성하며, 암호화된 각 블록에 대한 체크섬 값을 각각 계산한 후 계산된 체크섬 값을 수신측 노드에 전송하는 데이터 처리부와, 생성된 전송 패킷을 중간 노드를 통해 수신측 노드에 전송하는 전송부를 포함하며, 수신측 노드는, 송신측 노드로부터 수신한 전송 패킷에 대한 체크섬 값을 계산한 후 계산된 체크섬 값과 송신측 노드에서 수신한 체크섬 값간의 비교를 통해 상기 수신한 전송 패킷에 대한 무결성을 검사한다.

Description

네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법{DATA TRANSFERRING SYSTEM AND METHOD USING NETWORK CODING}
본 발명은 네트워크 코딩을 이용한 망에서의 데이터 전송에 관한 것으로, 더욱 상세하게는 네트워크 코딩을 이용하여 송신측 노드에서 전송되는 패킷을 수신한 후 선형 연산을 통해 계산된 패킷의 체크섬 값과 송신측 노드로부터 수신한 체크섬 값간의 비교를 통해 패킷의 무결성을 검사할 수 있는 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법에 관한 것이다.
일반적으로 네트워크 코딩은 송신측 노드와 중간 노드에서 데이터를 인코딩하여 데이터를 전송하는 기존의 방식과는 다른 새로운 네트워크 패러다임이다. 네트워크 코딩의 수신측 노드는 중간 노드가 들어오는 데이터들을 모아 재인코딩하여 모든 아웃고잉(out-going) 링크로 보내는 데이터를 다양한 경로를 통해 수신한 후, 여러 인코딩된 데이터들을 모아 디코딩하여 송신측 노드에서 보낸 데이터를 얻어낸다. 여기에서 기존의 라우팅을 통하여 원하는 수신측 노드에 데이터를 전송하는 일반적인 전송 방식과는 다른 문제점이 발생한다.
먼저, 송신측 노드에서 원하는 수신측 노드가 아닌 다른 모든 노드들이 데이터를 받게 되고, 원하지 않는 노드라 할지라도 일정량의 데이터를 수신한 후에는 송신측 노드에서 데이터를 디코딩할 수 있기 때문에 기밀성이 보장되지 않는 문제점이 있다.
네트워크 코딩의 다른 문제점은 전송되는 데이터가 송신측 노드에서 보낸 데이터와 다른 무결성 문제점이 있는데, 즉 네트워크 코딩은 중간 노드들이 수신한 패킷을 재인코딩하여 전송하기 때문에 무결성 문제가 항상 발생할 수 있다.
또한, 수신측 노드의 디코딩률을 저하시키는 요인으로는 데이터 전송에서 발생하는 전송 에러와 악의적으로 보거스(bogus) 패킷(packet)을 주입하여 수신측의 디코딩을 방해할 수 있다. 네트워크 코딩을 이용하는 망의 경우 수신측 노드의 디코딩률은 망의 성능에 영향을 끼치는 중요한 요소 중의 하나이다. 이를 해결하기 위하여 포워드-에러-정정(forward-error-correction) 기법을 이용할 수 있으나, 이 경우 에러 복구를 위하여 송신측 노드에서 데이터 전송 시 리던던시 비트(redundancy bit)를 추가하여 보내야 하기 때문에 전송률을 저하시킨다. 또한, 에러 복구를 위한 수신측 노드의 오버헤드가 급격히 증가하기 때문에 일정량의 데이터를 빠르게 수신한 후 디코딩해야하는 네트워크 코딩에는 적합하지 않다.
상기와 같은 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 블록 단위의 체크섬을 이용하여 데이터를 수신하는 즉시 무결성을 검사하여 에러가 있는 패킷을 버릴 수 있는 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법을 제공하는데 있다.
또한, 본 발명은 블록 암호화 방식을 통해 데이터 전송의 기본 단위인 블록 단위로 암호화하는 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법을 제공하는데 있다.
본 발명은 하나의 보안 키를 수신측 노드와 송신측 노드간에 형성된 보안 채널을 통해 공유하여 무결성과 기밀성을 보장할 수 있는 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법을 제공하는데 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 본 발명이 속하는 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 목적을 달성하기 위한 본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 시스템은 송신측 노드로부터 송신되는 패킷들을 중간 노드에서 수집한 후 이를 인코딩하여 수신측 노드에 전송하는 네트워크 코딩을 이용한 망에서의 보안 처리 시스템으로서, 상기 송신측 노드는, 상기 수신측 노드와 보안 채널을 형성한 후 상기 수신측 노드와 보안 키를 공유하는 채널 형성부와, 상기 수신측 노드에 전송할 전송 데이터를 블록으로 나눈 후 각 블록을 암호화하여 전송 패킷을 생성하며, 상기 암호화된 각 블록에 대한 체크섬 값을 각각 계산한 후 상기 계산된 체크섬 값을 상기 수신측 노드에 전송하는 데이터 처리부와, 상기 생성된 전송 패킷을 상기 중간 노드를 통해 상기 수신측 노드에 전송하는 전송부를 포함하며, 상기 수신측 노드는, 상기 송신측 노드로부터 수신한 전송 패킷에 대한 체크섬 값을 계산한 후 상기 계산된 체크섬 값과 상기 송신측 노드에서 수신한 체크섬 값간의 비교를 통해 상기 수신한 전송 패킷에 대한 무결성을 검사한다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 시스템에서 상기 데이터 처리부는, 상기 망의 상황을 고려하여 맥스-플로우 값을 계산한 후 상기 맥스-플로우 값을 전송의 기본 단위인 블록 사이즈로 설정하고, 상기 설정된 블록 사이즈에 맞도록 상기 전송 데이터를 상기 블록으로 나눈 후 상기 블록 각각을 상기 보안 키로 암호화하여 상기 전송 패킷을 생성하는 전송 패킷 생성부를 포함할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 시스템에서 상기 데이터 처리부는, 상기 암호화된 블록 내 각 비트의 데이터를 상기 보안 키와 연산을 통해 상기 각 비트에 대한 값을 계산하고, 상기 계산된 각 비트에 대한 값을 합한 후 상기 블록 각각에 대한 체크섬 값을 계산하여 상기 전송 패킷에 대한 전체 체크섬 값을 생성한 후 이를 상기 수신측 노드에 전송하는 체크섬 계산부를 포함할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 시스템에서 상기 수신측 노드는, 상기 수신한 전송 패킷에서 실제 데이터와 상기 보안 키간의 선형 연산 값 및 상기 전송 패킷이 거치는 중간 노드들의 코딩 정보를 갖는 글로벌 인코딩 벡터와 상기 송신측 노드로부터 수신한 체크섬 값간의 선형 연산 값간의 비교를 통해 상기 무결성 검사를 수행할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 시스템에서 상기 수신측 노드는, 상기 무결성 검사의 결과 에러가 발생된 패킷을 무시하고, 에러가 없는 패킷들만을 이용하여 디코딩을 수행할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 시스템에서 상기 수신측 노드는, 상기 에러가 발생된 패킷이 기 설정된 개수 이상일 경우 상기 에러가 발생된 패킷에 대한 정보를 상기 보안 채널을 통해 상기 송신측 노드에 전송하고, 상기 보안 채널을 통해 상기 정보에 대응되는 블록을 상기 송신측 노드로부터 수신한 후 이를 디코딩에 이용할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 시스템에서 상기 송신측 노드는, 상기 송신측 노드에서 상기 정보에 대응되는 블록을 상기 보안 키를 이용하여 암호화한 후 이를 상기 수신측 노드로 전송할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 시스템에서 상기 수신측 노드는, 상기 송신측 노드로부터 수신한 암호화된 블록을 상기 보안 키로 복호화한 후 상기 복호화한 블록에 대한 디코딩을 수행할 수 있다.
다른 견지에서 본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 방법은 송신측 노드로부터 송신되는 패킷들을 중간 노드에서 수집한 후 이를 인코딩하여 수신측 노드에 전송하는 네트워크 코딩을 이용한 망에서의 데이터 전송 방법으로서, 상기 송신측 노드와 상기 수신측 노드간에 보안 채널을 형성하여 보안 키를 공유하는 단계와, 상기 송신측 노드에서 전송 데이터를 블록으로 나눈 후 상기 각 블록을 암호화하여 전송 패킷을 생성하는 단계와, 상기 암호화된 각 블록에 대한 체크섬 값을 각각 계산하고, 상기 계산된 체크섬 값을 상기 수신측 노드에 전송하는 단계와, 상기 생성된 전송 패킷을 상기 중간 노드를 통해 상기 수신측 노드에 전송하는 단계와, 상기 수신측 노드에서 수신한 전송 패킷에 대한 체크섬 값을 계산한 후 상기 계산된 체크섬 값과 상기 송신측 노드에서 수신한 체크섬 값간의 비교를 통해 상기 수신한 전송 패킷에 대한 무결성을 검사하는 단계를 포함한다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 방법에서 상기 전송 패킷을 생성하는 단계는, 상기 망 상황을 고려하여 맥스-플로우 값을 계산하는 단계와, 상기 계산된 맥스-플로우 값을 전송의 기본 단위인 블록 사이즈로 설정하고, 상기 설정된 블록 사이즈에 맞도록 상기 전송 데이터를 상기 블록으로 나누는 단계와, 상기 블록 각각을 암호화하여 상기 전송 패킷을 생성하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 방법에서 상기 무결성 검사를 수행하는 단계는, 상기 수신측 노드에서 수신한 전송 패킷에서 실제 데이터와 상기 보안 키간의 선형 연산을 통해 제 1 값을 산출하는 단계와, 상기 전송 패킷에 거치는 중간 노드들의 코딩 정보를 갖는 글로벌 인코딩 벡터와 상기 송신측 노드로부터 수신한 체크섬 값간의 선형 연산을 통해 제 2 값을 산출하는 단계와, 상기 제 1 값과 제 2 값간의 비교를 통해 상기 무결성 검사를 수행하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 방법에서 상기 수신측 노드에 전송하는 단계는, 상기 암호화된 블록 내 각 비트의 데이터를 상기 보안 키와 연산을 통해 상기 각 비트에 대한 값을 계산하고, 상기 계산된 각 비트에 대한 값을 합한 후 상기 블록 각각에 대한 체크섬 값을 계산하여 상기 전송 패킷에 대한 전체 체크섬 값을 생성한 후 이를 상기 수신측 노드에 전송할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 방법은 상기 수신측 노드에서 상기 무결성 검사 결과에 따라 에러가 발생된 패킷을 무시하고, 에러가 없는 패킷들만을 이용하여 디코딩하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 방법은 상기 에러가 발생된 패킷이 기 설정된 개수 이상일 경우 상기 디코딩이 불가능한 블록에 대한 정보를 상기 보안 채널을 통해 상기 송신측 노드에 전송하는 단계와, 상기 송신측 노드로부터 상기 정보에 대응되는 블록을 상기 보안 채널을 통해 수신한 후 이를 디코딩하는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따른 네트워크 코딩 망에서의 데이터 전송 방법에서 상기 보안 채널을 통해 수신한 후 이를 디코딩하는 단계는, 상기 송신측 노드에서 상기 정보에 대응되는 블록을 상기 보안 키를 이용하여 암호화한 후 이를 상기 수신측 노드로 전송하는 단계와, 상기 수신측 노드에서 수신한 암호화된 블록을 상기 보안 키로 복호화하는 단계와, 상기 복호화한 블록에 대한 디코딩을 수행하는 단계를 포함할 수 있다.
본 발명은 송수신측 노드간의 보안 채널을 통해 공유되는 보안 키를 이용하여 전송 데이터를 여러 개의 블록으로 나누어 암호화한 후 각 암호화된 블록에 대한 체크섬 값을 계산하여 수신측 노드에 전송하고, 수신측 노드에서 네트워크 코딩을 이용하여 송신측 노드로부터 송출되는 패킷을 수신한 후 선형 연산을 통해 계산된 패킷의 체크섬 값과 송신측 노드로부터 보안 채널을 통해 수신한 체크섬 값간의 비교를 통해 패킷의 무결성을 검사함으로써, 네트워크 코딩을 이용하여 데이터를 전송함에 있어서 기밀성과 무결성을 보장할 수 있는 효과가 있다.
도 1은 본 발명의 실시 예에 따른 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템을 도시한 블록도이며,
도 2는 본 발명의 실시 예에 따라 전송 데이터를 블록으로 나눠어 전송 패킷을 생성하는 과정을 설명하기 위한 도면이며,
도 3은 본 발명의 실시 예에 다라 각 암호화된 블록들의 전송 패킷에 대한 체크섬 값을 계산하는 과정을 설명하기 위한 도면이며,
도 4는 본 발명의 실시 예에 따른 네트워크 코딩을 이용한 망 구성에서 데이터 송신 과정을 도시한 흐름도이다.
본 발명의 목적 및 효과, 그리고 그것들을 달성하기 위한 기술적 구성들은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.
그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있다. 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 실시 예에서는 송수신측 노드간의 보안 채널을 통해 공유되는 보안 키를 이용하여 전송 데이터를 여러 개의 블록으로 나누어 암호화한 후 각 암호화된 블록에 대한 체크섬 값을 계산하여 수신측 노드에 전송하고, 수신측 노드에서 네트워크 코딩을 이용하여 송신측 노드로부터 송출되는 패킷을 수신한 후 선형 연산을 통해 계산된 패킷의 체크섬 값과 송신측 노드로부터 보안 채널을 통해 수신한 체크섬 값간의 비교를 통해 패킷의 무결성을 검사할 수 있는 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법에 대해 설명한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템을 도시한 블록도로서, 송신측 노드(100), 중간 노드(120) 및 수신측 노드(140) 등을 포함할 수 있다. 송신측 노드(100)는 채널 형성부(102), 데이터 처리부(104) 및 전송부(106) 등을 포함할 수 있으며, 데이터 처리부(104)는 전송 패킷 생성부(104a) 및 체크섬 계산부(104b) 등을 포함할 수 있다.
송신측 노드(100)의 채널 형성부(102)는 수신측 노드(140)와 보안 채널을 형성한 후 보안 채널을 이용하여 보안 키와 체크섬 값을 공유하며, 수신측 노드(140)의 디코딩에 필요한 추가 데이터 요청을 수신한다.
송신측 노드(100)의 데이터 처리부(104)는 네트워크 코딩을 이용하여 데이터를 전송하기 위해서 수신측 노드(140)까지의 망 상황 고려하여 맥스-플로우 값을 계산한 후 이를 토대로 전송의 기본 단위인 블록 사이즈를 결정하며, 결정된 블록 사이즈에 맞춰서 전송 데이터를 블록으로 나눈다.
또한, 데이터 처리부(104)의 전송 패킷 생성부(104a)는 전송할 데이터를 블록으로 나눈 후 보안 키로 암호화하여 전송 패킷을 생성하는데, 이러한 과정에 대해 설명하면 아래와 같다.
먼저, 블록 사이즈에 맞춰서 전송할 데이터는, 도 2에 도시된 바와 같이, h개(b1, b2, b3, ……, bn-1, bn) 블록으로 나누어지게 되며, 각 블록은 n 비트로 구성된다. 여기서, 각 블록이 암호화됨에 따라 전송할 데이터의 첫 번째 블록(b1)은 암호화된 정보(200)인 X1,1, X1,2, X1,3, ……, X1,n으로 구성되며, h번째 블록(bn)은 암호화된 정보(200)인 Xh,1, Xh,2, Xh,3, ……, Xh,N으로 구성된다. 또한, 각 블록에는 암호화된 정보(200) 외에도 h 비트의 글로벌 인코딩 벡터(global encoding vector)(210)가 추가된다. 이러한 과정을 통해 각 암호화된 블록은 h 비트의 글로벌 인코딩 벡터(210)와 암호화된 n 비트의 정보(200)로 이루어진 전송 패킷으로 구성된다.
데이터 처리부(104)의 체크섬 계산부(104b)는 각 암호화된 블록들의 전송 패킷에 대한 체크섬 값을 계산하고, 계산된 체크섬 값을 수신측 노드(140)에 전송한다.
송신측 노드(100)가 각 암호화된 블록들의 전송 패킷에 대한 체크섬 값을 계산하는 과정에 대해 도 3을 참조하여 설명한다.
도 3에 도시된 바와 같이, 암호화된 블록 내 암호화된 정보(200)인 각 비트와 보안 키(k1, k2, k3, …, kN)를 곱한 각 비트별 결과값을 더하여 하나의 블록에 대한 체크섬 값(SKC1)을 계산한다. 이와 같은 방법으로 각각의 암호화된 블록에 대한 체크섬 값을 계산한 후 이 체크섬 값들을 모아 전송하고자하는 데이터에 대한 전체 체크섬 값(SKC)을 생성한다. 즉, X1,1과 암호화 키(k1)를 곱한 결과값, X1,2와 암호화 키(k2)를 곱한 결과값, X1,3과 암호화 키(k3)를 곱한 결과값, ……, X1,N과 암호화 키(kN)를 곱한 결과값을 각각 연산한 후 각 결과값을 더함으로써, 암호화된 첫 번째 블록에 대한 체크섬 값(SKC1)을 계산한다. 이런 방식으로, h번째 블록까지의 체크섬 값(SKCh)을 계산함으로써, 전체 체크섬(SKC)을 계산할 수 있다.
여기서, 암호화 키(k=k1, k2, k3, …, kN)는 전송 채널을 통해 송수신측 노드(100, 140)가 공유하는 보안 키이며, 암호화된 정보인 n 비트의 i 번째 블록 Xi는 "[Xi,1, ……, Xi,N]"이라고 할 때 무결성 검사를 위한 i 번째 블록 Xi의 체크섬(SKCi)은 아래의 수학식 1로 나타낼 수 있다.
[수학식 1]
Figure pat00001
이와 같은 과정을 통해 송신측 노드(100)는 h개의 블록으로 나누어진 전체 데이터에 대한 체크섬 값, 즉 전체 체크섬 값(SKC=[SKC1 … SKCh])을 계산할 수 있으며, 계산된 전체 체크섬 값(SKC)을 데이터 전송 전에 채널 형성부(102)와 수신측 노드(140)의 보안 채널을 통해 수신측 노드(140)에게 전송함으로써, 수신측 노드(140)는 패킷을 수신하는 즉시 수신된 패킷에 대한 무결성 검사를 수행할 수 있다.
전송부(106)는 전송 패킷 생성부(104a)에서 생성된 전송 패킷을 중간 노드(120)들을 통해 수신측 노드(140)에 전송하는데, 실용적인 네트워크 코딩을 이용하여 전송 데이터에 상응하는 전송 패킷을 전송할 경우 중간 노드(120)들의 코딩을 거치면서 수신측 노드(140)에 전송되는 패킷은 중간 노드(120)들의 코딩 정보를 갖는 글로벌 인코딩 벡터(g(e))와 실제 데이터를 갖는 y((e))를 연속하여 표시하는데, 아래의 수학식 2와 같다.
[수학식 2]
Figure pat00002
수신측 노드(140)에서 데이터를 수신하게 되면, 수신한 패킷들을 선형 연산을 이용하여 즉시 체크섬을 계산한 후 계산된 체크섬과 송신측 노드(100)에서 전송 패킷을 전송하기 전에 채널 형성부(102)와 수신측 노드(140)의 보안 채널을 통해 전송한 체크섬 값들간의 비교를 통해 무결성을 검사하며, 검사 결과 에러가 있는 패킷을 무시하고 에러가 없는 패킷들만을 수신하여 디코딩에 이용한다.
수신측 노드(140)에서 무결성 검사 과정은 아래의 수학식 3으로 정의할 수 있다.
[수학식 3]
Figure pat00003
상기의 수학식 3에서 알 수 있듯이, 수신측 노드(140)에서 데이터(y(e))를 수신하게 되면 보안 키(K)와 실제 데이터(y(e))의 선형 연산인 K·y(e) 값인 체크섬 값과 글로벌 인코딩 벡터의 선형 연산 값인 SKC·g(e)를 비교하여 무결성을 확인한다.
보안 키(K)와 수신한 데이터((y(e))의 벡터 연산 값이 체크섬 값(SKC)과 수신한 글로벌 인코딩 벡터(g(e))의 벡터 연산값과 같음은 아래의 수학식 4로 증명할 수 있다.
[수학식 4]
Figure pat00004
Figure pat00005
수신측 노드(140)는 네트워크 코딩의 특성 상 일정 시간이 지나게 되면 에러가 발생한 패킷들을 제외하고도 디코딩에 필요한 충분한 양의 패킷들을 수신할 수 있다. 이러한 이유로 무결성 검사를 통해 버려지는 데이터가 있어도 해당 데이터를 디코딩할 수 있다.
한편, 수신측 노드(140)는 망의 상태가 나쁘거나 악의적으로 임의의 사용자가 주입한 부적절한 패킷들이 많을 경우 디코딩이 불가능, 즉 기 설정된 개수 이상의 패킷이 무결성 검사에서 무시될 수 있는데, 이러한 경우 보안 채널을 통해 송신측 노드(100)에게 디코딩이 불가능한 블록, 즉 무결성 검사를 통해 무시되는 전송 패킷에 대한 정보를 보내게 된다. 이에 따라, 송신측 노드(100)는 수신측 노드(140)로부터 수신한 정보에 대응되는 블록을 보안 키를 이용하여 암호화한 후 이를 보안 채널을 통해 수신측 노드(140)에 전송한다.
수신측 노드(140)는 디코딩을 위한 충분한 양의 데이터가 수신되면 해당 블록을 디코딩하고, 데이터 수신 전 송신측 노드(100)로부터 전송받은 보안 키를 이용하여 암호화된 데이터를 복호화한다.
상기와 같은 구성을 갖는 네트워크 코딩을 이용한 망 구성에서 데이터 전송하는 과정에 대해 도 4를 참조하여 설명한다.
도 4는 본 발명의 실시 예에 따른 네트워크 코딩을 이용한 망 구성에서 데이터 송신 과정을 도시한 흐름도이다.
도 4를 참조하면, 소스 노드인 송신측 노드(100)는 보안 키를 공유하기 위해 수신측 노드(140)와 보안 채널을 형성한다(S400).
그런 다음, 송신측 노드(100)는 보안 채널을 통해 보안 키를 수신측 노드(140)에 전송함으로써, 송신측 노드(100)와 수신측 노드(140)간에 보안 키를 공유한다(S402).
이후, 송신측 노드(100)는 네트워크 코딩을 이용하여 전송 데이터를 송신하기 위해 수신측 노드까지의 망 상황을 고려하여 맥스-플로우 값을 계산한다(S404). 이때, 계산된 맥스-플로우 값은 전송의 기본 단위인 블록 사이즈를 정하는데 이용되는데, 즉 맥스-플로우 값을 이용하여 전송 데이터를 다수의 블록으로 나눈다(S406).
그리고 나서, 송신측 노드(100)는 각 블록에 대한 암호화를 수행하고(S408), 암호화된 블록 각각에 대한 체크섬 값을 계산한 후 계신된 체크섬 값을 수신측 노드(140)에 전송한다(S410).
그런 다음, 송신측 노드(100)는 암호화된 각 블록들을 중간 노드(120)를 거쳐 수신측 노드(140)에 전송(S412)하는데, 이때 송신측 노드(100)는 암호화된 각 블록에 글로벌 인코딩 벡터를 추가하여 하나의 패킷을 만든 후 이를 실용적 네트워크 코딩을 이용하여 전송할 경우 중간 노드(120)들의 코딩을 거치면서 수신측 노드(140)에 전송되는 패킷은 중간 노드(120)들의 코딩 정보를 갖는 글로벌 인코딩 정보와 실제 데이터를 갖는 y(e)를 연속하여 표시될 수 있다.
수신측 노드(140)에서 데이터를 수신하게 되면, 수신한 패킷들을 선형 연산을 이용하여 체크섬 값을 계산(S414)하고, 계산된 체크섬 값과 송신측 노드(100)에서 전송 데이터를 전송하기 전에 전송한 체크섬 값간의 비교를 통해 무결성을 검사한다(S414).
S414의 검사 결과, 수신측 노드(140)는 에러가 있는 패킷의 경우 무시하고(S416), 에러가 없는 패킷만을 수신하여 디코딩에 이용될 패킷을 분류한다(S418).
한편, 수신측 노드(140)는 기 설정된 시간 동안 디코딩에 필요한 양의 패킷들이 수신되었는지를 판단하며(S420), S420의 판단 결과 기 설정된 시간 동안 디코딩에 필요한 양의 패킷들이 수신되지 않을 경우, 즉 기 설정된 개수 이상의 패킷들이 무결성 검사 시 무시되는 경우 보안 채널을 통해 송신측 노드(100)에 디코딩이 불가능한 블록에 대한 정보를 전송한다(S422). 이에 따라, 송신측 노드(100)는 디코딩이 불가능한 블록에 대한 정보에 해당되는 블록들을 암호화한 후 이를 보안 채널을 통해 수신측 노드(140)에 전송하고, 수신측 노드(140)는 보안 채널을 통해 수신한 블록을 보안 키를 이용하여 복호화(S424)한 후 S420으로 진행하여 이후 단계를 수행한다.
S420의 판단 결과, 기 설정된 시간 동안 디코딩에 필요한 양의 패킷들이 수신되는 경우 수신측 노드(140)는 수신된 패킷들(에러가 없는 패킷들)을 이용하여 디코딩을 한다(S426).
본 발명의 실시 예에 따르면, 송수신측 노드(100, 140)간의 보안 채널을 통해 공유되는 보안 키를 이용하여 전송 데이터를 여러 개의 블록으로 나누어 암호화한 후 각 암호화된 블록에 대한 체크섬 값을 계산하여 수신측 노드(140)에 전송하고, 수신측 노드(140)에서 네트워크 코딩을 이용하여 송신측 노드(100)로부터 송출되는 패킷을 수신한 후 선형 연산을 통해 수신한 패킷에 대한 체크섬 값을 계산하여 패킷 전송 전에 송신측 노드(100)로부터 수신한 체크섬 값간의 비교를 통해 패킷의 무결성을 검사함으로써, 네트워크 코딩을 이용하여 데이터 전송에 있어서 기밀성과 무결성을 보장할 수 있다.
이상 본 발명의 구체적 실시 형태를 참조하여 본 발명을 설명하였으나, 이는 예시에 불과하며 본 발명의 범위를 제한하는 것이 아니다. 당업자는 본 발명의 범위를 벗어나지 않는 범위 내에서 설명된 실시형태들을 변경 또는 변형할 수 있다. 본 명세서에서 설명된 각 기능 블록들 또는 수단들은 프로그램 형식으로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수 있다. 본 명세서 및 청구범위에서 별개인 것으로 설명된 모듈 등의 구성요소는 단순히 기능상 구별된 것으로 물리적으로는 하나의 수단으로 구현될 수 있으며, 단일한 것으로 설명된 수단 등의 구성요소도 수개의 구성요소의 결합으로 이루어질 수 있다. 또한 본 명세서에서 설명된 각 방법 단계들은 본 발명의 범위를 벗어나지 않고 그 순서가 변경될 수 있고, 다른 단계가 부가될 수 있다. 뿐만 아니라, 본 명세서에서 설명된 다양한 실시형태들은 각각 독립하여서뿐만 아니라 적절하게 결합되어 구현될 수도 있다. 따라서 본 발명의 범위는 설명된 실시형태가 아니라 첨부된 청구범위 및 그 균등물에 의해 정해져야 한다.
100 : 송신측 노드 102 : 채널 형성부
104a : 전송 패킷 생성부 104b : 체크섬 계산부
104 : 데이터 처리부 106 : 전송부
120 : 중간 노드 140 : 수신측 노드

Claims (15)

  1. 송신측 노드로부터 송신되는 패킷들을 중간 노드에서 수집한 후 이를 인코딩하여 수신측 노드에 전송하는 네트워크 코딩을 이용한 망에서의 보안 처리 시스템으로서,
    상기 송신측 노드는,
    상기 수신측 노드와 보안 채널을 형성한 후 상기 수신측 노드와 보안 키를 공유하는 채널 형성부와,
    상기 수신측 노드에 전송할 전송 데이터를 블록으로 나눈 후 각 블록을 암호화하여 전송 패킷을 생성하며, 상기 암호화된 각 블록에 대한 체크섬 값을 각각 계산한 후 상기 계산된 체크섬 값을 상기 수신측 노드에 전송하는 데이터 처리부와,
    상기 생성된 전송 패킷을 상기 중간 노드를 통해 상기 수신측 노드에 전송하는 전송부를 포함하며,
    상기 수신측 노드는,
    상기 송신측 노드로부터 수신한 전송 패킷에 대한 체크섬 값을 계산한 후 상기 계산된 체크섬 값과 상기 송신측 노드에서 수신한 체크섬 값간의 비교를 통해 상기 수신한 전송 패킷에 대한 무결성을 검사하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 시스템.
  2. 제 1 항에 있어서,
    상기 데이터 처리부는,
    상기 망의 상황을 고려하여 맥스-플로우 값을 계산한 후 상기 맥스-플로우 값을 전송의 기본 단위인 블록 사이즈로 설정하고, 상기 설정된 블록 사이즈에 맞도록 상기 전송 데이터를 상기 블록으로 나눈 후 상기 블록 각각을 상기 보안 키로 암호화하여 상기 전송 패킷을 생성하는 전송 패킷 생성부를 포함하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 시스템.
  3. 제 1 항에 있어서,
    상기 데이터 처리부는,
    상기 암호화된 블록 내 각 비트의 데이터를 상기 보안 키와 연산을 통해 상기 각 비트에 대한 값을 계산하고, 상기 계산된 각 비트에 대한 값을 합한 후 상기 블록 각각에 대한 체크섬 값을 계산하여 상기 전송 패킷에 대한 전체 체크섬 값을 생성한 후 이를 상기 수신측 노드에 전송하는 체크섬 계산부를 포함하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 시스템.
  4. 제 1 항에 있어서,
    상기 수신측 노드는, 상기 수신한 전송 패킷에서 실제 데이터와 상기 보안 키간의 선형 연산 값 및 상기 전송 패킷이 거치는 중간 노드들의 코딩 정보를 갖는 글로벌 인코딩 벡터와 상기 송신측 노드로부터 수신한 체크섬 값간의 선형 연산 값간의 비교를 통해 상기 무결성 검사를 수행하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 시스템.
  5. 제 1 항에 있어서,
    상기 수신측 노드는, 상기 무결성 검사의 결과 에러가 발생된 패킷을 무시하고, 에러가 없는 패킷들만을 이용하여 디코딩을 수행하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 시스템.
  6. 제 5 항에 있어서,
    상기 수신측 노드는, 상기 에러가 발생된 패킷이 기 설정된 개수 이상일 경우 상기 에러가 발생된 패킷에 대한 정보를 상기 보안 채널을 통해 상기 송신측 노드에 전송하고, 상기 보안 채널을 통해 상기 정보에 대응되는 블록을 상기 송신측 노드로부터 수신한 후 이를 디코딩에 이용하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 시스템.
  7. 제 5 항에 있어서,
    상기 송신측 노드는, 상기 송신측 노드에서 상기 정보에 대응되는 블록을 상기 보안 키를 이용하여 암호화한 후 이를 상기 수신측 노드로 전송하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 시스템.
  8. 제 7 항에 있어서,
    상기 수신측 노드는, 상기 송신측 노드로부터 수신한 암호화된 블록을 상기 보안 키로 복호화한 후 상기 복호화한 블록에 대한 디코딩을 수행하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 시스템.
  9. 송신측 노드로부터 송신되는 패킷들을 중간 노드에서 수집한 후 이를 인코딩하여 수신측 노드에 전송하는 네트워크 코딩을 이용한 망에서의 데이터 전송 방법으로서,
    상기 송신측 노드와 상기 수신측 노드간에 보안 채널을 형성하여 보안 키를 공유하는 단계와,
    상기 송신측 노드에서 전송 데이터를 블록으로 나눈 후 상기 각 블록을 암호화하여 전송 패킷을 생성하는 단계와,
    상기 암호화된 각 블록에 대한 체크섬 값을 각각 계산하고, 상기 계산된 체크섬 값을 상기 수신측 노드에 전송하는 단계와,
    상기 생성된 전송 패킷을 상기 중간 노드를 통해 상기 수신측 노드에 전송하는 단계와,
    상기 수신측 노드에서 수신한 전송 패킷에 대한 체크섬 값을 계산한 후 상기 계산된 체크섬 값과 상기 송신측 노드에서 수신한 체크섬 값간의 비교를 통해 상기 수신한 전송 패킷에 대한 무결성을 검사하는 단계를 포함하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 방법.
  10. 제 9 항에 있어서,
    상기 전송 패킷을 생성하는 단계는,
    상기 망 상황을 고려하여 맥스-플로우 값을 계산하는 단계와,
    상기 계산된 맥스-플로우 값을 전송의 기본 단위인 블록 사이즈로 설정하고, 상기 설정된 블록 사이즈에 맞도록 상기 전송 데이터를 상기 블록으로 나누는 단계와,
    상기 블록 각각을 암호화하여 상기 전송 패킷을 생성하는 단계를 포함하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 방법.
  11. 제 9 항에 있어서,
    상기 무결성 검사를 수행하는 단계는,
    상기 수신측 노드에서 수신한 전송 패킷에서 실제 데이터와 상기 보안 키간의 선형 연산을 통해 제 1 값을 산출하는 단계와,
    상기 전송 패킷에 거치는 중간 노드들의 코딩 정보를 갖는 글로벌 인코딩 벡터와 상기 송신측 노드로부터 수신한 체크섬 값간의 선형 연산을 통해 제 2 값을 산출하는 단계와,
    상기 제 1 값과 제 2 값간의 비교를 통해 상기 무결성 검사를 수행하는 단계를 포함하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 방법.
  12. 제 9 항에 있어서,
    상기 수신측 노드에 전송하는 단계는,
    상기 암호화된 블록 내 각 비트의 데이터를 상기 보안 키와 연산을 통해 상기 각 비트에 대한 값을 계산하고, 상기 계산된 각 비트에 대한 값을 합한 후 상기 블록 각각에 대한 체크섬 값을 계산하여 상기 전송 패킷에 대한 전체 체크섬 값을 생성한 후 이를 상기 수신측 노드에 전송하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 방법.
  13. 제 9 항에 있어서,
    상기 데이터 전송 방법은,
    상기 수신측 노드에서 상기 무결성 검사 결과에 따라 에러가 발생된 패킷을 무시하고, 에러가 없는 패킷들만을 이용하여 디코딩하는 단계를 더 포함하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 방법.
  14. 제 13 항에 있어서,
    상기 데이터 전송 방법은,
    상기 에러가 발생된 패킷이 기 설정된 개수 이상일 경우 상기 디코딩이 불가능한 블록에 대한 정보를 상기 보안 채널을 통해 상기 송신측 노드에 전송하는 단계와,
    상기 송신측 노드로부터 상기 정보에 대응되는 블록을 상기 보안 채널을 통해 수신한 후 이를 디코딩하는 단계를 더 포함하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 방법.
  15. 제 14 항에 있어서,
    상기 보안 채널을 통해 수신한 후 이를 디코딩하는 단계는,
    상기 송신측 노드에서 상기 정보에 대응되는 블록을 상기 보안 키를 이용하여 암호화한 후 이를 상기 수신측 노드로 전송하는 단계와,
    상기 수신측 노드에서 수신한 암호화된 블록을 상기 보안 키로 복호화하는 단계와,
    상기 복호화한 블록에 대한 디코딩을 수행하는 단계를 포함하는
    네트워크 코딩을 이용한 망에서의 데이터 전송 방법.
KR1020100099613A 2009-12-17 2010-10-13 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법 KR101161585B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20090126182 2009-12-17
KR1020090126182 2009-12-17

Publications (2)

Publication Number Publication Date
KR20110069695A true KR20110069695A (ko) 2011-06-23
KR101161585B1 KR101161585B1 (ko) 2012-07-04

Family

ID=44401472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100099613A KR101161585B1 (ko) 2009-12-17 2010-10-13 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101161585B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101501168B1 (ko) * 2013-08-12 2015-03-12 홍익대학교 산학협력단 네트워크 코딩의 피드백 장치 및 데이터 전송 방법
KR20160065297A (ko) * 2014-11-28 2016-06-09 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102003878B1 (ko) 2017-05-29 2019-10-01 주식회사 스마트코어 디바이스 간의 데이터 맵을 이용한 데이터 전송 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101501168B1 (ko) * 2013-08-12 2015-03-12 홍익대학교 산학협력단 네트워크 코딩의 피드백 장치 및 데이터 전송 방법
KR20160065297A (ko) * 2014-11-28 2016-06-09 삼성전자주식회사 Puf 회로 및 그것의 키 등록 방법

Also Published As

Publication number Publication date
KR101161585B1 (ko) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102884746B (zh) 处理传输分组
CN111404672B (zh) 量子密钥分发方法及装置
US10630465B2 (en) Key exchange method, key exchange system, communication device and storage medium therefore
KR20090108052A (ko) 정보 송신 보안 방법
US20050063547A1 (en) Standards-compliant encryption with QKD
CN110365474B (zh) 密钥协商方法及通信设备
Hooshmand et al. Efficient polar code-based physical layer encryption scheme
US9002000B2 (en) Method for conversion of a first encryption into a second encryption
US20220294618A1 (en) Improvements to qkd methods
EP3309995B1 (en) Key exchange method, key exchange system, key distribution device, communication device, and program
KR101161585B1 (ko) 네트워크 코딩을 이용한 망에서의 데이터 전송 시스템 및 방법
JP4963835B2 (ja) 暗号化方法と復号方法、それらの方法を利用した装置、システム、およびプログラム
CN107231628A (zh) 一种适用于多应用场景的安全数据融合方法
CN111194531B (zh) 用于在多个信道上发送数字数据的方法
JP4843511B2 (ja) 同報通信暗号化方法、情報復号方法、それらの装置、それらのプログラム、およびそれらの記録媒体
CN109889327B (zh) 共享密钥生成方法和装置
GB2586235A (en) Improvements to QKD methods
US8036383B2 (en) Method and apparatus for secure communication between cryptographic systems using real time clock
KR101575040B1 (ko) 이종의 계장제어 시스템간의 통신 인터페이스를 지원하는 2.5계층 보안 시스템
JPH06209313A (ja) 機密保持装置およびその方法
Venkadesh et al. Techniques to enhance security in SCTP for multi-homed networks
JP5367023B2 (ja) 情報暗号化方法、情報暗号化装置、プログラム、および記録媒体
JPWO2004105310A1 (ja) 暗号化装置、暗号化方法および暗号化プログラム
WO2023218575A1 (ja) 鍵交換システム、拠点装置、qkd装置、方法、及びプログラム
KR100798921B1 (ko) Mac 보안 서비스망에서의 보안 채널 제어 방법 및 이를구현하는 단말 장치

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee