KR101584987B1 - 데이터 송수신 장치 및 방법 - Google Patents

데이터 송수신 장치 및 방법 Download PDF

Info

Publication number
KR101584987B1
KR101584987B1 KR1020090050392A KR20090050392A KR101584987B1 KR 101584987 B1 KR101584987 B1 KR 101584987B1 KR 1020090050392 A KR1020090050392 A KR 1020090050392A KR 20090050392 A KR20090050392 A KR 20090050392A KR 101584987 B1 KR101584987 B1 KR 101584987B1
Authority
KR
South Korea
Prior art keywords
message
ciphertext
cipher text
cipher
authentication code
Prior art date
Application number
KR1020090050392A
Other languages
English (en)
Other versions
KR20100131678A (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 KR1020090050392A priority Critical patent/KR101584987B1/ko
Priority to US12/796,483 priority patent/US8464070B2/en
Publication of KR20100131678A publication Critical patent/KR20100131678A/ko
Application granted granted Critical
Publication of KR101584987B1 publication Critical patent/KR101584987B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • H04L9/3242Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

데이터 송수신 장치 및 방법이 개시된다. 데이터 송신 장치는 전송하고자 하는 메시지에 대한 메시지 인증 코드를 복수의 암호키로 암호화하여 제1 암호문 및 제2 암호문을 생성하고, 생성된 제1 암호문 및 제2 암호문을 데이터 수신 장치로 송신한다.
Figure R1020090050392
서비스 부인 공격, DoS, 메시지 인증 코드, TESLA, staggered TESLA,

Description

데이터 송수신 장치 및 방법{APPARATUS FOR TRANSMITTING AND RECEIVING DATA AND METHOD USING THE SAME}
본 발명의 일실시예들은 데이터 송수신 장치 및 방법에 관한 것으로서, 보다 상세하게는 메시지의 인증을 위해 송신되는 데이터의 양을 줄이고, 서비스 부인 공격 공격에 강인한 데이터 송수신 장치 및 방법에 관한 것이다.
최근, 초고속 인터넷 환경이 구축되면서, 해킹이나 인터넷 침해 등과 같은 네트워크 공격에 의한 피해가 속출하고 있다. 특히, 대형 포탈 사이트의 경우, 네트워크 공격으로 인해, 서버가 다운되거나 개인 정보 유출 등의 문제가 발생한다면, 상기 포탈 사이트를 운영하는 운영자에게 막대한 피해가 돌아갈 수 있다.
네트워크 공격의 유형으로는 인터넷 사이트를 해킹하여, 기밀 정보나 개인 정보를 획득하는 공격 방법이 있고, 다수의 클라이언트 컴퓨터에 악성 코드를 감염시켜서 상기 다수의 클라이언트 컴퓨터가 특정 네트워크 시스템에 한번에 다량의 패킷을 송신하도록 함으로써 상기 네트워크 시스템의 서버를 다운시키는 공격 방법 등이 있다.
특히, 후자의 공격 방법을 서비스 부인 공격(Denial of Service(DoS) attack)이라고 한다. 서비스 부인 공격 은 공격 방법이 단순하고, 서비스 부인 공격을 위한 툴(tool)을 어디서나 쉽게 구할 수 있어, 초급 해커도 얼마든지 이를 이용하여, 네트워크 시스템을 공격할 수 있다.
따라서, 이러한 서비스 부인 공격을 효율적으로 방어할 수 있는 방법에 대한 연구가 필요하다.
본 발명의 일실시예에 따른 데이터 송신 장치는 i번째 메시지 및 상기 i번째 메시지에 할당된 암호키를 이용하여 메시지 인증 코드를 생성하는 인증 코드 생성부 (i는 1 이상의 정수), i-1번째 메시지에 할당된 암호키로부터 i-d+1번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 제1 암호문을 생성하고, 상기 i-1번째 메시지에 할당된 암호키로부터 i-d번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 제2 암호문을 생성하는 암호화부 (d는 1 이상의 정수), 및 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 송신하는 송신부를 포함한다.
이 때, 상기 암호화부는 상기 i-1번째 메시지에 할당된 암호키로부터 상기 i-d+1번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 순차적으로 암호화하여 상기 제1 암호문를 생성하고, 상기 i-1번째 메시지에 할당된 암호키로부터 상기 i-d번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 순차적으로 암호화하여 상기 제2 암호문를 생성할 수 있다.
또한, 본 발명의 일실시예에 따른 데이터 수신 장치는 i번째 메시지, 상기 i번째 메시지에 관한 제1 암호문, 및 상기 i번째 메시지에 관한 제2 암호문을 포함하는 제1 데이터 패킷, 및 i-k번째 메시지에 할당된 암호키를 포함하는 제2 데이터 패킷을 수신하는 수신부 (i는 1 이상의 정수, k는 0 이상의 정수), 상기 i번째 메시지, 상기 제1 암호문, 상기 제2 암호문을 저장하는 저장부, 및 상기 i-k번째 메시지에 할당된 암호키, 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 이용하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 제어부를 포함한다.
이 때, 상기 제어부는 상기 i-k번째 메시지에 할당된 암호키로부터 i-k-1번째 메시지에 할당된 암호키를 복원하고, 상기 복원된 i-k-1번째 메시지에 할당된 암호키를 이용하여 상기 제2 암호문을 복호화하여 제2 복호문을 생성하고, 상기 제2 복호문과 상기 제1 암호문을 비교하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리할 수 있다.
또한, 상기 제어부는 상기 i번째 메시지와 상기 수신된 i-k번째 메시지에 할당된 암호키를 이용하여 상기 i번째 메시지에 대한 메시지 인증 코드를 생성하고, 상기 메시지 인증 코드와 상기 제1 암호문을 비교하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리할 수 있다.
또한, 본 발명의 일실시예에 따른 메시지 송신 방법은 i번째 메시지 및 상기 i번째 메시지에 할당된 암호키를 이용하여 메시지 인증 코드를 생성하는 단계 (i 는 1이상의 정수), i-1번째 메시지에 할당된 암호키로부터 i-d+1번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 제1 암호문을 생성하고, 상기 i-1번째 메시지에 할당된 암호키로부터 i-d번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 제2 암호문을 생성하는 단계(d는 1 이상의 정수), 및 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 송신하는 단계를 포함한다.
또한, 본 발명의 일실시예에 따른 메시지 수신 방법은 i번째 메시지, 상기 i번째 메시지에 관한 제1 암호문, 및 상기 i번째 메시지에 관한 제2 암호문을 포함하는 제1 데이터 패킷을 수신하는 단계 (i는 1이상의 정수), 상기 i번째 메시지, 상기 제1 암호문, 상기 제2 암호문을 저장하는 단계, i-k번째 메시지에 할당된 암호키를 포함하는 제2 데이터 패킷을 수신하는 단계(k는 0 이상의 정수), 상기 i-k번째 메시지에 할당된 암호키, 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 이용하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 단계를 포함한다.
본 발명의 일실시예에 따르면, 메시지 인증을 위해 송신하여야 하는 데이터의 크기를 줄일 수 있게 된다.
또한, 본 발명의 일실시예에 따르면, 데이터 수신 장치에서 저장하여야 하는 데이터의 양을 줄일 수 있게 된다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설 명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 TESLA 프로토콜의 개념을 설명하기 위한 도면이다.
TESLA 프로토콜은 송신되는 데이터 패킷(data packet)에 메시지 인증 코드(MAC: message authentication code)를 메시지와 함께 송신하여, 해당 데이터 패킷이 인증된(authenticated) 근원지(source)로부터 송신된 것임을 증명함으로써, 서비스 부인 공격으로부터 데이터 송신 장치(일례로, 서버(server))와 데이터 수신 장치(일례로, 단말(terminal))를 보호하기 위한 프로토콜이다.
먼저, 도 1의 (a)를 참고하여 TESLA 프로토콜에 따라 데이터 송신 장치가 데이터 수신 장치로 데이터 패킷을 송신하는 구성을 설명한다.
제1 단계에서, 데이터 송신 장치는 데이터 패킷이 송신되는 시간(time)을 동일한 간격(duration)을 갖는 인터벌(interval)로 나눈다. 각각의 인터벌에서는 하나의 메시지를 포함하는 데이터 패킷이 송신된다. 이하에서는 i번째 인터벌에 송신되는 메시지를 메시지 Mi라고 한다.
제2 단계에서, 데이터 송신 장치는 각각의 인터벌에서 송신되는 메시지에 암호키(encryption key)를 할당한다. 각각의 암호키는 메시지에 대한 메시지 인증 코드를 생성하는데 사용된다. 이하에서는 메시지 Mi에 할당되는 암호키를 암호키 Ki라고 한다.
데이터 송신 장치는 초기값(seed)에 대해 단방향 함수(one-way function) 연산을 수행하여 암호키를 생성할 수 있다. 이는 하기 수학식 1과 같이 표현될 수 있다.
Figure 112009034453316-pat00001
여기서, F1()는 단방향 함수를 의미하고, Si는 암호키 Ki에 대한 초기값을 의미한다.
또한, 메시지 Mi-1에 할당되는 암호키 Ki-1에 대한 초기값 Si-1는 메시지 Mi에 할당되는 암호키 Ki에 대한 초기값 Si으로부터 연산될 수 있다. 이는 하기 수학식 2와 같이 표현될 수 있다.
Figure 112009034453316-pat00002
여기서, F2()는 단방향 함수를 의미한다.
제3 단계에서, 데이터 송신 장치는 메시지에 할당된 암호키를 이용하여 상기 메시지에 대한 메시지 인증 코드를 생성한다.
마지막으로 제4 단계에서, 데이터 송신 장치는 메시지, 메시지 인증 코드, 및 암호키의 초기값을 포함하는 데이터 패킷을 데이터 수신 장치로 송신한다. 이 경우, 각각의 인터벌에서 송신되는 암호키의 초기값은 동일한 인터벌에서 함께 송신되는 메시지에 할당된 암호키의 초기값이 아니라, 현재 인터벌의 d 인터벌 이전에 송신된 메시지에 할당된 암호키의 초기값이다. 여기서, d는 1 이상의 소정의 정수로서, d 값은 데이터 송신 장치에서 송신된 데이터 패킷을 수신하는 모든 데이터 수신 장치를 위한 최대 네트워크 지연(Maximum network delay for all recipients) 값에 따라 결정될 수 있다.
즉, 도 1의 (a)에 도시된 바와 같이, i번째 인터벌에서 송신되는 데이터 패킷은 메시지 Mi, 메시지 Mi보다 d 인터벌 이전에 송신된 메시지 Mi-d에 할당된 암호키 Ki-d의 초기값 Si-d, 및 암호키 Ki를 이용하여 생성된 메시지 Mi에 대한 메시지 인증 코드 MAC(Ki, Mi)를 포함한다. 메시지 Mi에 할당된 암호키 Ki의 초기값 Si은 i번째 인터벌보다 d 인터벌 이후인 i+d번째 인터벌에서 송신된다. 이하에서는 TESLA 프로토콜에 따라 데이터 수신 장치로 송신되는 데이터 패킷을 TESLA 패킷으로 칭하기로 한다. 또한, i번째 인터벌에서 송신되는 TESLA 패킷을 TESLA 패킷 {Mi, MAC(Ki, Mi), Si-d}로 표현한다.
예를 들어, d가 3의 값을 갖는 경우, i번째 인터벌에서는 TESLA 패킷 {Mi, MAC(Ki, Mi), Si-3}이 송신되고, i+3번째 인터벌에서는 TESLA 패킷 {Mi+3, MAC(Ki+3, Mi+3), Si}이 송신된다.
다음으로, 도 1의 (b)를 참고하여 수신된 데이터 패킷에 포함된 메시지를 인증하는 데이터 수신 장치의 동작을 설명한다.
먼저, 데이터 수신 장치는 i번째 인터벌에서 수신된 TESLA 패킷 {Mi, MAC(Ki, Mi), Si-d}에 포함된 메시지 Mi와 메시지 인증 코드 MAC(Ki, Mi)를 저장한다. 데이터 수신 장치는 메시지 Mi에 할당된 암호키 Ki의 초기값 Si이 수신될 때까지 메시지 Mi와 메시지 인증 코드 MAC(Ki, Mi)를 버퍼링(buffering)한다.
이후, 데이터 수신 장치는 i+d번째 인터벌에서, 메시지 Mi에 할당된 암호키 Ki의 초기값 Si이 포함된 TESLA 패킷 {Mi+d, MAC(Ki+d , Mi+d), Si}을 수신한다. 데이터 수신 장치는 수신된 초기값 Si부터 암호키 Ki를 연산하고, 암호키 Ki, 및 메시지 인증 코드 MAC(Ki, Mi)를 이용하여 메시지 Mi를 인증한다. 메시지 Mi가 인증되지 않은 경우, 데이터 수신 장치는 메시지 Mi, 및 메시지 인증 코드 MAC(Ki, Mi)를 삭제한다.
일례로, d가 3의 값을 갖는 경우, 데이터 수신 장치는 i번째 인터벌에서 TESLA 패킷 {Mi, MAC(Ki , Mi), Si-3}을 수신하고, i+2번째 인터벌까지 메시지 Mi 및 메시지 인증 코드 MAC(Ki , Mi)를 버퍼링한다. 이후, 데이터 수신 장치는 i+3번째 인터벌에서 수신된 TESLA 패킷 {Mi+3, MAC(Ki+3, Mi+3), Si}에 포함된 초기값 Si를 이용하여 메시지 Mi를 인증한다.
이와 같이, TESLA 프로토콜에서는 메시지 Mi에 할당된 암호키 Ki의 초기값 Si 이 수신될 때까지, 메시지 Mi, 및 메시지 인증 코드 MAC(Ki, Mi)를 버퍼링하여야 하기 때문에 오버플로우(overflow) 공격과 같은 서비스 부인 공격 공격에 취약하다는 문제점이 있다. 상기와 같은 문제점을 해결하기 위해 staggered TESLA 프로토콜이 제안되었다. 이하에서는 도 2를 참고하여 staggered TESLA 프로토콜에 대해 상세히 설명한다.
도 2는 staggered TESLA 프로토콜의 개념을 설명하기 위한 도면이다.
staggered TESLA 프로토콜에 따라 데이터를 송신하는 데이터 송신 장치는 TESLA 패킷에 부가적으로 d-1개의 메시지 인증 코드 송신하여 서비스 부인 공격으로부터 데이터 수신 장치를 보호할 수 있다.
먼저, 도 2의 (a)를 참고하여 staggered TESLA 프로토콜에 따라 데이터 송신 장치가 데이터 수신 장치로 데이터 패킷을 송신하는 구성을 설명한다.
제1 단계에서, 데이터 송신 장치는 메시지가 송신되는 시간을 동일한 간격을 갖는 인터벌로 나누고, 제2 단계에서, 데이터 송신 장치는 각각의 인터벌에서 송신되는 메시지에 암호키를 할당한다. 제1 단계 및 제2 단계는 상기 TESLA 프로토콜에 대한 설명 내용과 동일하다.
제3 단계에서, 데이터 송신 장치는 각각의 인터벌에서 송신하고자 하는 메시지에 대한 복수의 메시지 인증 코드를 생성하고, 제4 단계에서, 데이터 송신 장치는 메시지, 복수의 메시지 인증 코드, 및 암호키의 초기값을 포함하는 데이터 패킷을 데이터 수신 장치로 송신한다.
이에 대해 보다 상세히 살펴보면, 데이터 송신 장치는 제3 단계에서 d-1개의 메시지 인증 코드를 더 부가한 TESLA 패킷인 staggered TESLA 패킷을 생성하고, 제4 단계에서 생성된 staggered TESLA 패킷을 데이터 수신 장치로 송신한다.
공격자(invader)가 메시지 Mi를 위조(fabrication)하려고 하는 경우, 공격자는 암호키 Ki 뿐만 아니라 암호키 Ki-1 내지 암호키 Ki-d+1도 알지 못한다. 따라서, 데이터 송신 장치에서는 메시지 인증 코드 MAC(Ki, Mi) 뿐만 아니라, d-1개의 메시지 인증 코드를 더 송신함으로써, 메시지 Mi의 위조를 더욱 어렵게 하여 서비스 부인 공격으로부터 데이터 수신 장치를 보호한다.
d-1개의 메시지 인증 코드는 암호키 Ki-1 내지 암호키 Ki-d+1를 이용하여 생성된 메시지 Mi에 대한 메시지 인증 코드이다(MAC(Ki-1, Mi), MAC(Ki-2, Mi), … , MAC(Ki-d+1, Mi)). 즉, staggered TESLA 프로토콜에 따라 데이터를 송신하는 데이터 송신 장치는 i번째 인터벌에서 staggered TESLA 패킷 {Mi, MAC(Ki, Mi), MAC(Ki-1, Mi), MAC(Ki-2, Mi), … , MAC(Ki-d+1, Mi), Si-d}을 데이터 수신 장치로 송신한다.
일례로서, d가 3의 값을 갖는 경우, i번째 인터벌에서는 staggered TESLA 패킷 {Mi, MAC(Ki, Mi), MAC(Ki-1, Mi), MAC(Ki-2, Mi), Si-3}이 송신되고, i+3번째 인터벌에서는 staggered TESLA 패킷 {Mi+3, MAC(Ki+3, Mi+3), MAC(Ki-4, Mi+3), MAC(Ki-5, Mi+3), Si}이 송신된다.
다음으로, 도 2의 (b)를 참고하여 수신된 데이터 패킷에 포함된 메시지를 인증하는 데이터 수신 장치의 동작을 설명한다.
먼저, i번째 인터벌에서, 데이터 수신 장치는 staggered TESLA 패킷 {Mi, MAC(Ki, Mi), MAC(Ki-1, Mi), MAC(Ki-2, Mi), … , MAC(Ki-d+1, Mi), Si-d}을 수신하고, 수신된 staggered TESLA 패킷에 포함된 메시지 Mi와 메시지 인증 코드 MAC(Ki, Mi) 내지 메시지 인증 코드 MAC(Ki-d+1, Mi)를 저장한다.
이 후, i+1번째 인터벌에서, 데이터 수신 장치는 staggered TESLA 패킷 {Mi+1, MAC(Ki+1, Mi+1), MAC(Ki, Mi+1), MAC(Ki-1, Mi+1), … , MAC(Ki-d+2, Mi+1), Si-d+1}을 수신하고, 수신된 staggered TESLA 패킷에 포함된 초기값 Si-d+1 및 저장된 메시지 인증 코드 MAC(Ki-d+1, Mi)를 이용하여 저장된 메시지 Mi의 유지 또는 삭제 여부를 결정한다.
보다 상세하게, 데이터 송신 장치는 상기 수학식 1에 기초하여 초기값 Si-d+1으로부터 암호키 Ki-d+1를 연산하고, 암호키 Ki-d+1을 이용하여 메시지 Mi에 대한 메시지 인증 코드 MAC'(Ki-d+1, Mi)를 생성한다. 이 후, 데이터 송신 장치는 생성된 메시지 인증 코드 MAC'(Ki-d+1, Mi)와 저장된 메시지 인증 코드 MAC(Ki-d+1, Mi)가 동일한지를 비교한다. 만약 메시지 인증 코드 MAC'(Ki-d+1, Mi)와 메시지 인증 코드 MAC(Ki-d+1, Mi)가 동일한 경우, 데이터 수신 장치는 메시지 Mi 및 나머지 메시지 인증 코드(메시지 인증 코드 MAC(Ki, Mi) 내지 메시지 인증 코드 MAC(Ki-d+2, Mi))를 계속하여 버퍼링하고, 메시지 인증 코드 MAC'(Ki-d+1, Mi)와 메시지 인증 코드 MAC(Ki-d+1, Mi)가 다른 경우, 데이터 수신 장치는 메시지 Mi 및 나머지 메시지 인증 코드(메시지 인증 코드 MAC(Ki, Mi) 내지 메시지 인증 코드 MAC(Ki-d+2, Mi))를 삭제한다.
또한, i+2번째 인터벌에서, 데이터 수신 장치는 staggered TESLA 패킷 {Mi+2, MAC(Ki+2, Mi+2), MAC(Ki+1, Mi+2), MAC(Ki, Mi+2), … , MAC(Ki-d+3, Mi+2), Si-d+2}을 수신하고, 수신된 staggered TESLA 패킷에 포함된 초기값 Si-d+2 및 저장된 메시지 인증 코드 MAC(Ki-d+2, Mi)를 이용하여 저장된 메시지 Mi의 유지 또는 삭제 여부를 결정한다. 이는 상기 i+1번째 인터벌에서 수행되는 데이터 수신 장치의 동작과 동일하다.
이 후, 데이터 수신 장치는 i+d번째 인터벌까지(즉, 초기값 Si이 수신될 때까지) 각각의 인터벌에서 상기의 메시지 Mi의 유지 또는 삭제 동작을 반복 수행한다.
도 2의 (b)에 도시된 바와 같이, d가 3의 값을 갖는 경우를 예로 들면, 데이터 수신 장치는 i+1번째 인터벌에서, 생성된 메시지 인증 코드 MAC'(Ki-2, Mi)와 저장된 메시지 인증 코드 MAC(Ki-2, Mi)가 동일한 경우, 메시지 Mi, 메시지 인증 코드 MAC(Ki-1, Mi), 및 메시지 인증 코드 MAC(Ki, Mi))를 버퍼링한다. 이후, 데이터 수신 장치는 i+2번째 인터벌에서, 생성된 메시지 인증 코드 MAC'(Ki-1, Mi)와 저장된 메시지 인증 코드 MAC(Ki-1, Mi)가 동일한 경우, 메시지 Mi, 및 메시지 인증 코드 MAC(Ki, Mi))를 버퍼링한다. 마지막으로, 데이터 수신 장치는 i+3번째 인터벌에서, 생성된 메시지 인증 코드 MAC'(Ki, Mi)와 저장된 메시지 인증 코드 MAC(Ki, Mi)가 동일한 경우, 메시지 Mi가 유효한(valid) 메시지임을 인증한다.
이에 따라, 데이터 수신 장치는 d 인터벌 이전에 메시지 Mi가 유효한 메시지인지를 미리 확인할 수 있어 메시지 Mi의 버퍼링의 효율성을 높일 수 있게 된다.
그러나, 상기와 같은 staggered TESLA 프로토콜에 따르면, 복수의 메시지 인증 코드가 데이터 수신 장치로 송신되어야 하므로, 송신되는 데이터 패킷의 길이가 길어지는 문제점이 있다. 또한, 데이터 수신 장치에서는 수신된 복수의 메시지 인증 코드를 저장하고 있어야 하므로, 버퍼링 측면에서도 효율적이지 않다. 따라서, staggered TESLA 프로토콜과 유사한 장점을 가지면서도, 송신되는 데이터 패킷의 크기를 줄이고 버퍼링되는 데이터의 양을 줄일 수 있는 데이터 송수신 프로토콜의 필요성이 대두된다.
이하에서는 도 3을 참고하여 본 발명의 일실시예에 따른 데이터 송수신 시스템을 상세히 설명하기로 한다.
도 3은 본 발명의 일실시예에 따른 데이터 송수신 시스템의 상세한 구성을 도시한 블록도이다.
본 발명의 일실시예에 따른 데이터 송수신 시스템(300)은 데이터 송신 장치(310) 및 데이터 수신 장치(320)를 포함한다. 여기서, 본 발명의 일실시예에 따르면, 데이터 송신 장치(310)는 인증 코드 생성부(311), 암호화부(312), 및 송신부(313)를 포함하고, 데이터 수신 장치(320)는 수신부(321), 저장부(322), 및 제어부(323)을 포함한다. 이하, 각 구성 요소 별로 그 기능을 상술하기로 한다.
이하에서는 데이터 송신 장치(310)가 데이터 수신 장치(320)로 데이터 패킷을 송신하는 동작 및 데이터 패킷을 수신한 데이터 수신 장치(320)에서 데이터 패킷에 포함된 메시지를 인증하는 동작을 차례대로 살펴보기로 한다.
데이터 송신 장치(310)가 데이터 수신 장치(320)로 데이터 패킷을 송신하는 동작을 살펴보면 다음과 같다.
데이터 송신 장치(310)는 데이터 패킷이 송신되는 시간을 동일한 간격을 갖는 인터벌로 나누고, 각각의 인터벌에서 하나의 메시지를 포함하는 데이터 패킷을 송신한다. 각각에 인터벌에서 데이터 패킷을 송신하는 동작은 동일하므로, 이하에서는 i번째 인터벌에서 데이터 패킷을 송신하는 데이터 송신 장치(310)의 동작만을 설명하기로 한다.
먼저, 인증 코드 생성부(311)는 i번째 메시지와 i번째 메시지에 할당된 암호키를 이용하여 i번째 메시지에 대한 메시지 인증 코드를 생성한다. 상기에서 설명한 바와 같이, i번째 메시지는 i번째 인터벌에서 송신되는 메시지 Mi를, i번째 메시지에 할당된 암호키는 암호키 Ki를, i번째 메시지에 대한 메시지 인증 코드는 메시지 인증 코드 MAC(Ki, Mi)를 의미한다.
암호화부(312)는 i-1번째 메시지에 할당된 암호키로부터 i-d+1번째 메시지에 할당된 암호키(즉, 암호키 Ki-1로부터 암호키 Ki-d+1)를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 암호화하여 제1 암호문(cryptogram)을 생성하고, i-1번째 메시지에 할당된 암호키로부터 i-d번째 메시지에 할당된 암호키(즉, 암호키 Ki-1로부터 암호키 Ki-d)를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 암호화하여 제2 암호문을 생성한다.
즉, 공격자가 메시지의 위조를 어렵게 하기 위해, 암호화부(312)는 메시지 인증 코드 MAC(Ki, Mi)를 복수의 암호키를 이용하여 암호화하는데, 이 경우 암호화 부(312)는 d-1개의 암호키인 암호키 Ki-1 내지 암호키 Ki-d+1를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 암호화한 제1 암호문을 생성하고, 암호키 Ki-d를 이용하여 제1 암호문을 암호화하여 제2 암호문을 생성한다. 제1 암호문 및 제2 암호문은, 데이터 수신 장치(320)에서 메시지 Mi가 유효한지 여부를 판단하는데 이용된다. 이하에서는 메시지 인증 코드 MAC(Ki, Mi)에 대한 제1 암호문을 암호문 Ai으로, 메시지 인증 코드 MAC(Ki, Mi)에 대한 제2 암호문을 암호문 Ci으로 칭하기로 한다.
송신부(313)는 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 데이터 수신 장치(320)로 송신한다. 이 경우, 송신부(313)는 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 포함하는 데이터 패킷 {Mi, Ai, Ci}을 생성하고, 생성된 데이터 패킷 {Mi, Ai, Ci}을 데이터 수신 장치(320)로 송신할 수 있다.
또한, 송신부(313)는 메시지 Mi, 암호문 Ai, 및 암호문 Ci 이외에 i-d번째 메시지에 할당된 암호키 Ki-d를 더 포함하는 데이터 패킷 {Mi, Ai, Ci, Ki-d}을 생성하고, 생성된 데이터 패킷 {Mi, Ai, Ci, Ki-d}을 데이터 수신 장치(320)로 송신할 수 있다.
본 발명의 일실시예에 따르면, 암호화부(312)는 암호키 Ki-1로부터 암호키 Ki-d+1 를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 순차적으로 암호화하여 암호문 Ai을 생성하고, 암호키 Ki-1로부터 암호키 Ki-d를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 순차적으로 암호화하여 암호문 Ai을 생성할 수 있다. 이하에서는 도 4를 참고하여, 암호키 Ki-1로부터 암호키 Ki-d를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 순차적으로 암호화하여 암호문 Ai와 암호문 Ci을 생성하는 데이터 송신 장치(310)의 동작을 상세히 설명하기로 한다.
도 4는 본 발명의 일실시예에 따른 데이터 송신 장치(310)에서 수행되는 암호화 동작을 설명하기 위한 도면이다.
도 4에서는 설명의 편의를 위해 d가 5 이상의 소정의 정수 값을 갖는 것으로 가정한다.
먼저, 제1 단계에서 데이터 송신 장치(310)는 암호키 Ki를 이용하여 메시지 Mi에 대한 메시지 인증 코드 MAC(Ki, Mi)를 생성한다. 앞서 언급한 바와 같이, 메시지 인증 코드 MAC(Ki, Mi)는 인증 코드 생성부(311)에서 생성된다.
제2 단계에서 데이터 송신 장치(310)는 암호키 Ki-1를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 암호화하고, 제3 단계에서 데이터 송신 장치는 암호키 Ki-2를 이용하여 제2 단계에서 암호화된 메시지 인증 코드 MAC(Ki, Mi)를 다시 암호화한다.
이 후, 데이터 송신 장치(310)는 암호키 Ki-3 내지 암호키 Ki-d+1를 이용하여 상기와 같은 순차적인 암호화를 반복 수행하여 암호문 Ai를 생성하고, 마지막 제d 단계에서 데이터 송신 장치(310)는 암호키 Ki-d를 이용하여 암호문 Ai를 다시 암호화하여 암호문 Ci를 생성한다. 앞서 언급한 바와 같이, 암호문 Ai 및 암호문 Ci은 암호화부(312)에서 생성된다.
이와 같이, 데이터 송신 장치(310)는 메시지 인증 코드 MAC(Ki, Mi)에 대해 암호키 Ki-1 내지 암호키 Ki-d를 순차적으로 적용하여 암호문 Ai 및 암호문 Ci을 생성한다.
다시, 도 3을 참고하여 본 발명의 일실시예에 따른 데이터 송수신 장치(300)에 대해 상세히 설명하기로 한다.
데이터 송신 장치(310)에서 송신된 데이터 패킷을 수신한 데이터 수신 장치(320)는 송신된 데이터 패킷에 포함된 메시지가 유효한(valid) 메시지인지를 인증하고 인증된 메시지를 이용하여 다양한 프로세스(process)를 수행한다.
이하에서는 데이터 패킷을 수신한 데이터 수신 장치(320)에서 데이터 패킷에 포함된 메시지를 인증하는 동작을 차례대로 살펴보기로 한다.
각각의 인터벌에서 수행되는 메시지 인증 동작은 동일하므로, 이하에서는 대표적으로 i번째 인터벌에서 수신된 메시지 Mi를 인증하는 데이터 수신 장치(320)의 동작에 대해서 상세히 설명하기로 한다.
먼저, 수신부(321)는 i번째 인터벌에서, 데이터 패킷 {Mi, Ai, Ci, Ki-d}을 수신한다.
앞서 설명한 바와 같이, 암호문 Ai는 암호키 Ki를 이용하여 생성된 메시지 Mi에 대한 메시지 인증 코드 MAC(Ki, Mi)를 암호키 Ki-1로부터 암호키 Ki-d+1를 이용하여 순차적으로 암호화한 것이고, 암호문 Ci는 메시지 인증 코드 MAC(Ki, Mi)를 암호키 Ki-1로부터 암호키 Ki-d를 이용하여 순차적으로 암호화한 것이다.
저장부(322)는 수신된 데이터 패킷 {Mi, Ai, Ci, Ki-d}에 포함된 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 저장한다.
이 후, 수신부(321)는 j번째 인터벌에서 데이터 패킷 {Mj, Ai, Cj, Kj-d}을 수신한다. 여기서, j는 i 보다는 크고 i+d보다는 작은 소정의 정수이다(i<j<i+d).
여기서, j번째 인터벌에서 송신되는 암호키 Kj-d는 메시지 Mi보다 k 인터벌 이전에(즉, i-k 인터벌에서) 송신된 메시지이므로, 암호키 Kj-d는 암호키 Ki-k로 표시할 수 있다. 이 때, k는 0 이상 d 미만의 소정의 정수이다.
제어부(323)는 j번째 인터벌에서 수신된 데이터 패킷 {Mj, Aj, Cj, K-j-d(=Ki-k)}에 포함된 암호키 Kj-d(=Ki-k)와, 저장부(322)에 저장된 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 이용하여 메시지 Mi, 암호문 Ai, 및 암호문 Ci의 저장 상태를 관리한다.
즉, 제어부(323)는 i+d번째 인터벌에서 메시지 Mi의 유효성을 인증하기 이전에, 메시지 Mi의 유효성을 예비적으로 판단하여, 저장된 메시지 Mi, 암호문 Ai, 및 암호문 Ci의 유지 또는 삭제 여부를 결정한다. 이에 따라, 데이터 송신 장치는 i+d 인터벌 이전에 메시지 Mi가 유효한 메시지인지를 미리 확인할 수 있게 되고, 이에 따라, 메시지 Mi의 버퍼링의 효율성을 높일 수 있게 된다.
이하에서는 도 5를 참고하여, 암호키 Kj-d(=Ki-k)와, 저장부(322)에 저장된 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 이용하여 메시지 Mi, 암호문 Ai, 및 암호문 Ci의 저장 상태를 관리하는 데이터 수신 장치(320)의 동작을 상세히 설명하기로 한다.
도 5는 본 발명의 일실시예에 따른 데이터 수신 장치(320)에서 수행되는 복호화 동작을 설명하기 위한 도면이다.
도 5에서, 암호문 Ai은 메시지 인증 코드 MAC(Ki, Mi)에 대해 암호키 Ki-1로부터 암호키 Ki-d+1를 순차적으로 적용하여 암호화된 것이고, 암호문 Ci은 메시지 인증 코드 MAC(Ki, Mi)에 대해 암호키 Ki-1로부터 암호키 Ki-d를 순차적으로 적용하여 암호화된 것이다.
먼저, j=i+1인 경우(즉, i+1번째 인터벌에서), 데이터 수신 장치(320)에서 수행되는 동작을 설명하면 아래와 같다.
제1 단계에서, 수신부(321)는 데이터 패킷 {Mi+1, Ai+1, Ci+1, Ki-d+1}을 수신한다.
제2 단계에서, 제어부(323)는 암호키 Ki-d+1를 이용하여 암호키 Ki-d를 복원한다. 이는 앞서 설명한 수학식 2와 유사하게 수행될 수 있다. 즉, 암호키 역시 초기값과 마찬가지로, 수학식 3과 같은 단방향 함수 연산을 통해 복원될 수 있다.
Figure 112009034453316-pat00003
여기서, F3()는 단방향 함수를 의미한다.
제3 단계에서, 제어부(323)는 복원된 암호키 Ki-d를 이용하여 저장된 암호문 Ci(즉, 제2 암호문)을 복호화하여 제2 복호문을 생성한다. 이하에서는 제2 복호문을 복호문 Ci'라 칭한다.
암호문 Ci은 암호키 Ki-d를 이용하여 암호문 Ai(즉, 제1 암호문)을 암호화하여 생성된 것이므로, 데이터 패킷이 유효하게 송신된 것이라면, 복호문 Ci'와 암호문 Ai는 동일하여야 한다. 따라서, 복호문 Ci'와 암호문 Ai는 동일하지 않다면, 수신된 데이터 패킷은 정당한 사용자가 아닌 사용자로부터 송신된 것일 가능성이 높으므로, 데이터 수신 장치(320)에서 메시지 Mi를 i+d번째 인터벌까지 저장하고 있는 것은 비효율적이다.
따라서, 제어부(323)는 복호문 Ci'과 암호문 Ai를 비교하여 메시지 Mi, 암호문 Ai, 및 암호문 Ci의 저장 상태를 관리한다.
제4 단계에서, 제어부(323)는 복호문 Ci'과 암호문 Ai이 동일한지를 비교한다.
만약, 복호문 Ci'과 암호문 Ai이 동일하지 않은 경우, 제5 단계에서, 제어부(323)는 메시지 Mi를 유효하지 않은 메시지로 판단하고, 저장부(322)에 저장된 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 삭제한다.
또한, 만약 복호문 Ci'과 암호문 Ai이 동일한 경우, 제5 단계에서, 제어부(323)는 메시지 Mi를 유효한 메시지로 판단한다. 이 경우, 제어부(323)는 수신된 암호키 Ki-d+1를 이용하여 암호문 Ai를 복호화하여 제1 복호문(이하에서는, 제1 복호문을 복호문 Ai'라 칭한다)을 생성하고, 암호문 Ai을 생성된 복호문 Ai'로 대체하여 저장하고, 암호문 Ci를 복호문 Ci'으로 대체하여 저장한다. 즉, 제어부(323)는 수학식 4와 같이 암호문 Ai과 암호문 Ci을 변경(업데이트)한다.
Figure 112009034453316-pat00004
여기서, D()는 복호화(Decryption) 연산을 의미한다.
이와 같은 암호문 Ai 및 암호문 Ci의 변경(업데이트)은 다음 인터벌(즉 i+2번째 인터벌)에서 메시지 Mi의 유효성을 예비적으로 판단하기 위해 수행된다.
다음으로, j=i+2인 경우(즉, i+2번째 인터벌에서), 데이터 수신 장치(320)는 상기에서 설명한 메시지 Mi의 유효성에 대한 예비적 판단을 반복하여 수행한다.
이에 대한 보다 상세히 설명은 아래와 같다.
제1 단계에서, 수신부(321)는 데이터 패킷 {Mi+2, Ai+2, Ci+2, Ki-d+2}을 수신한다.
제2 단계에서, 제어부(323)는 암호키 Ki-d+2를 이용하여 암호키 Ki-d+1를 복원한다. 암호키 Ki-d+1의 복원은 앞서 설명한 수학식 3과 같은 단방향 함수 연산을 통해 수행될 수 있다.
제3 단계에서 제어부(323)는 복원된 암호키 Ki-d+1를 이용하여 저장된 암호문 Ci을 복호화하여 복호문 Ci'을 생성한다.
제4 단계에서, 제어부(323)는 생성된 복호문 Ci'과 저장된 암호문 Ai을 비교한다.
i+1번째 인터벌에서 암호문 Ai 및 암호문 Ci이 변경(업데이트)되었으므로, 데이터 패킷이 유효하게 수신되었다면, i+2번째 인터벌에서 복호화된 복호문 Ci'과 암호문 Ai은 동일하여야 한다.
따라서, 만약 복호문 Ci'과 암호문 Ai이 동일하지 않다면, 제5 단계에서 제어부(323)는 메시지 Mi를 유효하지 않은 메시지로 판단하고, 저장부(322)에 저장된 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 삭제한다.
반대로, 만약 복호문 Ci'과 암호문 Ai이 동일하다면, 제5 단계에서 제어부(323)는 메시지 Mi를 유효한 메시지로 판단한다. 이 경우, 제어부(323)는 수신된 암호키 Ki-d+2를 이용하여 암호문 Ai를 복호화하여 복호문 Ai' 을 생성하고, 상기의 수학식 4와 같이 암호문 Ai를 복호문 Ai'로 대체하여 저장하고, 암호문 Ci를 복호문 Ci'으로 대체하여 저장한다.
데이터 수신 장치(320)는 상기와 같은 메시지 Mi의 유효성에 대한 예비적 판단을 j=i+d-1일 때까지(즉, i+d-1번째 인터벌까지) 반복하여 수행한다.
마지막으로, j=i+d인 경우(즉, i+d번째 인터벌에서), 데이터 수신 장 치(320)는 메시지 Mi의 유효성 여부를 최종적으로 판단하는 동작을 설명하면 아래와 같다.
제1 단계에서, 수신부(321)는 데이터 패킷 {Mi+d, Ai+d, Ci+d, Ki}을 수신한다.
제2 단계에서, 제어부(323)는 수신된 암호키 Ki를 이용하여 저장부(322)에 저장된 메시지 Mi에 대한 메시지 인증 코드 MAC(Ki, Mi)를 생성한다.
i+d-1번째에서 변경(업데이트)된 암호문 Ai는 i번째 인터벌에서 저장되었던 암호문 Ai에 대해 암호키 Ki-d+1로부터 암호키 Ki-1을 순차적으로 적용하여 복호화한 것이므로(다시 말해, i번째 인터벌에서 저장되었던 암호문 Ci에 대해 암호키 Ki-d로부터 암호키 Ki-1을 순차적으로 적용하여 복호화한 것이므로), 데이터 패킷이 유효하게 수신되었다면, 생성된 메시지 인증 코드 MAC(Ki, Mi)와 i+d-1번째에서 저장되어 있는 암호문 Ai는 동일하여야 한다.
따라서, 제3 단계에서, 제어부(323)는 생성된 메시지 인증 코드 MAC(Ki, Mi)와 i+d-1번째에서 저장되어 있는 암호문 Ai이 동일한지 여부를 비교한다.
만약, 생성된 메시지 인증 코드 MAC(Ki, Mi)와 저장된 암호문 Ai가 동일하지 않은 경우, 제4 단계에서, 제어부(323)는 메시지 Mi가 유효하지 않은 것으로 판단하고, 저장부(322)에 저장된 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 삭제한다.
반대로, 만약 생성된 메시지 인증 코드 MAC(Ki, Mi)와 저장된 암호문 Ai가 동일한 경우, 제4 단계에서, 제어부(323)는 메시지 Mi가 유효한 것으로 판단(인증)한다.
이와 같이, 본 발명의 일실시예에 따르면, 메시지 인증을 위해 송신하여야 하는 데이터의 크기를 줄일 수 있게 되고, 데이터 수신 장치(320)에서 버퍼링하여야 하는 데이터의 양을 줄임으로써 오버플로우 공격과 같은 서비스 부인 공격에 보다 효율적으로 대처할 수 있게 된다.
도 6은 본 발명의 일실시예에 따른 데이터 송신 방법의 흐름도를 도시한 도면이다.
먼저, 단계(610)에서는 i번째 메시지(즉, 메시지 Mi) 및 메시지 Mi에 할당된 암호키 Ki를 이용하여 메시지 Mi에 대한 메시지 인증 코드(즉, 메시지 인증 코드 MAC(Ki, Mi))를 생성한다.
단계(620)에서는 i-1번째 메시지(즉, 메시지 Mi-1)에 할당된 암호키 Ki-1로부터 i-d+1번째 메시지(즉, 메시지 Mi+d-1)에 할당된 암호키 Ki+d-1를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 암호화하여 제1 암호문(즉, 암호문 Ai)을 생성하고, 메시지 Mi-1에 할당된 암호키 Ki-1로부터 i-d번째 메시지(즉, 메시지 Mi-d)에 할당된 암호키 Ki-d를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 암호화하여 제2 암호문(즉, 암 호문 Ci )을 생성한다.
본 발명의 일실시예에 따르면, 단계(620)에서는 암호키 Ki-1로부터 암호키 Ki-d+1 를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 순차적으로 암호화하여 암호문 Ai을 생성하고, 암호키 Ki-1로부터 암호키 Ki-d를 이용하여 메시지 인증 코드 MAC(Ki, Mi)를 순차적으로 암호화하여 암호문 Ai을 생성할 수 있다.
단계(630)에서는 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 송신한다. 이 경우, 단계(630)에서는 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 포함하는 데이터 패킷 {Mi, Ai, Ci}을 생성하고, 생성된 데이터 패킷 {Mi, Ai, Ci}을 데이터 수신 장치(320)로 송신할 수 있다.
또한, 본 발명의 일실시예에 따르면, 단계(630)에서는 메시지 Mi, 암호문 Ai, 및 암호문 Ci 이외에 i-d번째 메시지에 할당된 암호키 Ki-d를 더 포함하는 데이터 패킷 {Mi, Ai, Ci, Ki-d}을 생성하고, 생성된 데이터 패킷 {Mi, Ai, Ci, Ki-d}을 송신할 수 있다.
도 7 내지 도 9는 본 발명의 일실시예에 따른 데이터 수신 방법의 흐름도를 도시한 도면이다.
먼저, 단계(710)에서는 i번째 메시지(즉, 메시지 Mi), 메시지 Mi에 대한 제1 암호문(즉, 암호문 Ai), 및 메시지 Mi에 대한 제2 암호문(즉, 암호문 Ci)을 포함하는 제1 데이터 패킷을 수신한다. 일례로, 제1 데이터 패킷은 데이터 패킷{Mi, Ai, Ci, Ki-d}일 수 있다.
본 발명의 일실시예에 따르면, 암호문 Ai은 메시지 인증 코드 MAC(Ki, Mi)를 암호키 Ki-1로부터 암호키 Ki-d+1 를 이용하여 순차적으로 암호화한 것이고, 암호문 Ci은 메시지 인증 코드 MAC(Ki, Mi)를 암호키 Ki-1로부터 암호키 Ki-d를 이용하여 순차적으로 암호화한 것일 수 있다.
단계(720)에서는 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 저장한다.
단계(730)에서는 i-k번째 메시지(즉, 메시지 Mi-k)에 할당된 암호키 Ki-k를 포함하는 제2 데이터 패킷을 수신한다. 일례로, 제2 데이터 패킷은 j번째 인터벌에서 송신된 데이터 패킷{Mj, Aj, Cj, Kj-k(=Ki-k)}일 수 있다.
단계(740)에서는 암호키 Ki-k, 메시지 Mi, 암호문 Ai, 및 암호문 Ci을 이용하여 메시지 Mi, 암호문 Ai, 및 암호문 Ci의 저장 상태를 관리한다.
이하에서는 도 8 및 도 9를 참고하여 단계(740)를 보다 상세히 설명하기로 한다.
먼저, 도 8을 참고하여, 제2 데이터 패킷이 수신되는 인터벌이 i+1번째 인터벌 내지 i+d-1번째 인터벌인 경우 단계(740)에서 수행되는 동작을 설명한다.
단계(810)에서는 메시지 Mi-k에 할당된 암호키 Ki-k로부터 메시지 Mi-k-1에 할당된 암호키 Ki-k-1을 복원한다. 이 경우, 암호키 Ki-k-1을 복원은 상기 수학식 3에 따라 수행될 수 있다.
단계(820)에서는 암호키 Ki-k-1를 이용하여 암호문 Ci(즉, 제2 암호문)을 복호화하여 복호문 Ci'(즉, 제2 복호문)을 생성한다.
단계(830)에서는 복호문 Ci'과 암호문 Ai가 동일한지를 판단한다.
만약, 복호문 Ci'과 암호문 Ai가 동일하지 않은 경우, 단계(840)에서 저장된 메시지 Mi, 암호문 Ai, 및 암호문 Ci를 삭제한다.
만약, 복호문 Ci'과 암호문 Ai가 동일한 경우, 단계(850)에서 암호키 Ki-k를 이용하여 암호문 Ai(즉, 제1 암호문)을 복호화하여 복호문 Ai'(즉, 제1 복호문)을 생성한다.
이후, 단계(860)에서는 암호문 Ai를 복호문 Ai'로 대체하여 저장하고, 단계(870)에서는 암호문 Ci를 복호문 Ci'로 대체하여 저장한다.
다음으로, 도 9를 참고하여, 제2 데이터 패킷이 수신되는 인터벌이 i+d번째 인터벌인 경우 단계(740)에서 수행되는 동작을 설명한다.
단계(910)에서는 i+d번째 인터벌에서 수신된 데이터 패킷에 포함된 암호키 Ki를 이용하여 저장된 메시지 Mi에 대한 메시지 인증 코드 MAC(Ki, Mi)를 생성한다.
단계(920)에서는 생성된 메시지 인증 코드 MAC(Ki, Mi)와 저장된 암호문 Ai이 동일한지를 판단한다.
만약, 생성된 메시지 인증 코드 MAC(Ki, Mi)와 저장된 암호문 Ai가 동일하지 않은 경우, 단계(930)에서 저장된 메시지 Mi, 암호문 Ai, 및 암호문 Ci를 삭제한다.
만약, 생성된 메시지 인증 코드 MAC(Ki, Mi)와 저장된 암호문 Ai가 동일한 경우, 단계(940)에서 메시지 Mi를 유효한 메시지로 인증한다.
지금까지 본 발명에 따른 데이터 송신 방법 및 데이터 수신 방법의 실시예들에 대하여 설명하였고, 앞서 도 3에서 설명한 데이터 송수신 시스템에 관한 구성이 본 실시예에도 그대로 적용 가능하다. 이에, 보다 상세한 설명은 생략하기로 한다.
또한, 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 TESLA 프로토콜의 개념을 설명하기 위한 도면이다.
도 2는 staggered TESLA 프로토콜의 개념을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 데이터 송수신 시스템의 상세한 구성을 도시한 블록도이다.
도 4는 본 발명의 일실시예에 따른 데이터 송신 장치에서 수행되는 암호화 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 따른 데이터 수신 장치에서 수행되는 복호화 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 일실시예에 따른 데이터 송신 방법의 흐름도를 도시한 도면이다.
도 7 내지 도 9는 본 발명의 일실시예에 따른 데이터 수신 방법의 흐름도를 도시한 도면이다.

Claims (20)

  1. i번째 메시지 및 상기 i번째 메시지에 할당된 암호키를 이용하여 메시지 인증 코드를 생성하는 인증 코드 생성부 (i는 1 이상의 정수);
    i-1번째 메시지에 할당된 암호키로부터 i-d+1번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 제1 암호문을 생성하고, 상기 i-1번째 메시지에 할당된 암호키로부터 i-d번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 제2 암호문을 생성하는 암호화부 (d는 1 이상의 정수); 및
    상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 송신하는 송신부
    를 포함하는 데이터 송신 장치.
  2. 제1항에 있어서,
    상기 암호화부는
    상기 i-1번째 메시지에 할당된 암호키로부터 상기 i-d+1번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 순차적으로 암호화하여 상기 제1 암호문를 생성하고, 상기 i-1번째 메시지에 할당된 암호키로부터 상기 i-d번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 순차적으로 암호화하여 상기 제2 암호문를 생성하는 데이터 송신 장치.
  3. 제2항에 있어서,
    상기 송신부는
    상기 i번째 메시지, 상기 제1 암호문, 상기 제2 암호문, 및 상기 i-d번째 메시지에 할당된 암호키를 송신하는 데이터 송신 장치.
  4. i번째 메시지, 상기 i번째 메시지에 관한 제1 암호문, 및 상기 i번째 메시지에 관한 제2 암호문을 포함하는 제1 데이터 패킷, 및 i-k번째 메시지에 할당된 암호키를 포함하는 제2 데이터 패킷을 수신하는 수신부 (i는 1 이상의 정수, k는 0 이상의 정수);
    상기 i번째 메시지, 상기 제1 암호문, 상기 제2 암호문을 저장하는 저장부; 및
    상기 i-k번째 메시지에 할당된 암호키, 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 이용하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 제어부
    를 포함하고,
    상기 제1 암호문은 i-1번째 메시지에 할당된 암호키로부터 i-d+1번째 메시지에 할당된 암호키를 이용하여 생성된 메시지 인증 코드를 암호화하여 생성된 것이고, 상기 제2 암호문은 상기 i-1번째 메시지에 할당된 암호키로부터 i-d번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 생성된 것인 데이터 수신 장치.
  5. 제4항에 있어서,
    상기 제1 암호문은 상기 i번째 메시지 및 상기 i번째 메시지에 할당된 암호키를 이용하여 생성된 메시지 인증 코드를 순차적으로 암호화한 것이고 (d는 k 초과의 정수),
    상기 제2 암호문은 상기 메시지 인증 코드를 순차적으로 암호화한 것인 데이터 수신 장치.
  6. 제5항에 있어서,
    상기 제어부는
    상기 i-k번째 메시지에 할당된 암호키로부터 i-k-1번째 메시지에 할당된 암호키를 복원하고,
    상기 복원된 i-k-1번째 메시지에 할당된 암호키를 이용하여 상기 제2 암호문을 복호화하여 제2 복호문을 생성하고,
    상기 제2 복호문과 상기 제1 암호문을 비교하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 데이터 수신 장치.
  7. 제6항에 있어서,
    상기 제어부는
    상기 제2 복호문과 상기 제1 암호문이 동일한 경우, 상기 i-k번째 메시지에 할당된 암호키를 이용하여 상기 제1 암호문을 복호화하여 제1 복호문을 생성하고,
    상기 제1 암호문을 상기 제1 복호문으로 대체하여 상기 저장부에 저장하고,
    상기 제2 암호문을 상기 제2 복호문으로 대체하여 상기 저장부에 저장하는 데이터 수신 장치.
  8. 제6항에 있어서,
    상기 제어부는
    상기 제2 복호문과 상기 저장된 제1 암호문이 동일하지 않은 경우, 상기 저장된 i번째 메시지, 상기 저장된 제1 암호문, 및 상기 저장된 제2 암호문을 상기 저장부에서 삭제하는 데이터 수신 장치.
  9. 제4항에 있어서,
    상기 제어부는
    상기 i번째 메시지와 상기 수신된 i-k번째 메시지에 할당된 암호키를 이용하여 상기 i번째 메시지에 대한 메시지 인증 코드를 생성하고,
    상기 메시지 인증 코드와 상기 제1 암호문을 비교하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 데이터 수신 장치.
  10. 제9항에 있어서,
    상기 제어부는
    상기 메시지 인증 코드와 상기 제1 암호문이 동일하지 않은 경우, 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 상기 저장부에서 삭제하는 데이터 수신 장치.
  11. i번째 메시지 및 상기 i번째 메시지에 할당된 암호키를 이용하여 메시지 인증 코드를 생성하는 단계 (i 는 1이상의 정수);
    i-1번째 메시지에 할당된 암호키로부터 i-d+1번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 제1 암호문을 생성하고, 상기 i-1번째 메시지에 할당된 암호키로부터 i-d번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 제2 암호문을 생성하는 단계(d는 1 이상의 정수); 및
    상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 송신하는 단계
    를 포함하는 데이터 송신 방법.
  12. 제11항에 있어서,
    상기 제1 암호문 및 상기 제2 암호문을 생성하는 단계는,
    상기 i-1번째 메시지에 할당된 암호키로부터 상기 i-d+1번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 순차적으로 암호화하여 상기 제1 암호문를 생성하고,
    상기 i-1번째 메시지에 할당된 암호키로부터 상기 i-d번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 순차적으로 암호화하여 상기 제2 암호문를 생성하는 데이터 송신 방법.
  13. 제12항에 있어서,
    상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 송신하는 단계는,
    상기 i번째 메시지, 상기 제1 암호문, 상기 제2 암호문, 및 상기 i-d번째 메시지에 할당된 암호키를 송신하는 데이터 송신 방법.
  14. i번째 메시지, 상기 i번째 메시지에 관한 제1 암호문, 및 상기 i번째 메시지에 관한 제2 암호문을 포함하는 제1 데이터 패킷을 수신하는 단계 (i는 1이상의 정수);
    상기 i번째 메시지, 상기 제1 암호문, 상기 제2 암호문을 저장하는 단계;
    i-k번째 메시지에 할당된 암호키를 포함하는 제2 데이터 패킷을 수신하는 단계(k는 0 이상의 정수);
    상기 i-k번째 메시지에 할당된 암호키, 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 이용하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 단계
    를 포함하고,
    상기 제1 암호문은 i-1번째 메시지에 할당된 암호키로부터 i-d+1번째 메시지에 할당된 암호키를 이용하여 생성된 메시지 인증 코드를 암호화하여 생성된 것이고, 상기 제2 암호문은 상기 i-1번째 메시지에 할당된 암호키로부터 i-d번째 메시지에 할당된 암호키를 이용하여 상기 메시지 인증 코드를 암호화하여 생성된 것인 데이터 수신 방법.
  15. 제14항에 있어서,
    상기 제1 암호문은 상기 i번째 메시지 및 상기 i번째 메시지에 할당된 암호키를 이용하여 생성된 메시지 인증 코드를 순차적으로 암호화한 것이고 (d는 k 초과의 정수),
    상기 제2 암호문은 상기 메시지 인증 코드를 순차적으로 암호화한 것인 데이터 수신 방법.
  16. 제15항에 있어서,
    상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 단계는
    상기 i-k번째 메시지에 할당된 암호키로부터 i-k-1번째 메시지에 할당된 암호키를 복원하고,
    상기 복원된 i-k-1번째 메시지에 할당된 암호키를 이용하여 상기 제2 암호문을 복호화하여 제2 복호문을 생성하고,
    상기 제2 복호문과 상기 제1 암호문을 비교하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 데이터 수신 방법.
  17. 제16항에 있어서,
    상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 단계는
    상기 제2 복호문과 상기 제1 암호문이 동일한 경우, 상기 i-k번째 메시지에 할당된 암호키를 이용하여 상기 제1 암호문을 복호화하여 제1 복호문을 생성하고,
    상기 제1 암호문을 상기 제1 복호문으로 대체하여 저장하고,
    상기 제2 암호문을 상기 제2 복호문으로 대체하여 저장하는 데이터 수신 방법.
  18. 제16항에 있어서,
    상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 단계는
    상기 제2 복호문과 상기 저장된 제1 암호문이 동일하지 않은 경우, 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 삭제하는 데이터 수신 방법.
  19. 제14항에 있어서,
    상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 단계는
    상기 i번째 메시지와 상기 수신된 i-k번째 메시지에 할당된 암호키를 이용하여 상기 i번째 메시지에 대한 메시지 인증 코드를 생성하고,
    상기 메시지 인증 코드와 상기 제1 암호문을 비교하여 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 데이터 수신 방법.
  20. 제19항에 있어서,
    상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문의 저장 상태를 관리하는 단계는
    상기 메시지 인증 코드와 상기 제1 암호문이 동일하지 않은 경우, 상기 i번째 메시지, 상기 제1 암호문, 및 상기 제2 암호문을 삭제하는 데이터 수신 방법.
KR1020090050392A 2009-06-08 2009-06-08 데이터 송수신 장치 및 방법 KR101584987B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090050392A KR101584987B1 (ko) 2009-06-08 2009-06-08 데이터 송수신 장치 및 방법
US12/796,483 US8464070B2 (en) 2009-06-08 2010-06-08 Apparatus and method for transmitting and receiving data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090050392A KR101584987B1 (ko) 2009-06-08 2009-06-08 데이터 송수신 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20100131678A KR20100131678A (ko) 2010-12-16
KR101584987B1 true KR101584987B1 (ko) 2016-01-13

Family

ID=43412674

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090050392A KR101584987B1 (ko) 2009-06-08 2009-06-08 데이터 송수신 장치 및 방법

Country Status (2)

Country Link
US (1) US8464070B2 (ko)
KR (1) KR101584987B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2290872B1 (en) * 2009-08-27 2014-06-18 Nxp B.V. Device for generating a message authentication code for authenticating a message
WO2015008623A1 (ja) * 2013-07-18 2015-01-22 日本電信電話株式会社 鍵保管装置、鍵保管方法、及びそのプログラム
US9177123B1 (en) * 2013-09-27 2015-11-03 Emc Corporation Detecting illegitimate code generators
BR112016012359A2 (pt) * 2013-12-02 2017-08-08 Mastercard International Inc Método e sistema para transmissão segura de mensagens de serviço de notificação remota para dispositivos móveis sem elementos seguros
KR102208072B1 (ko) * 2014-09-01 2021-01-27 삼성전자주식회사 데이터 처리 시스템
CN105450620B (zh) * 2014-09-30 2019-07-12 阿里巴巴集团控股有限公司 一种信息处理方法及装置
US10630534B1 (en) 2016-12-02 2020-04-21 Worldpay, Llc Systems and methods for subscribing topics and registering computer server event notifications
RU2701128C1 (ru) * 2018-10-26 2019-09-24 Закрытое акционерное общество Научно-технический центр "Модуль" Способ шифрования двоичной информации

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235509A1 (en) * 2006-11-10 2008-09-25 Toyota Motor Engineering & Manufacturing North America, Inc. Method for exchanging messages and verifying the authenticity of the messages in an ad hoc network

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1343286A1 (en) 2002-03-04 2003-09-10 BRITISH TELECOMMUNICATIONS public limited company Lightweight authentication of information
US7401217B2 (en) * 2003-08-12 2008-07-15 Mitsubishi Electric Research Laboratories, Inc. Secure routing protocol for an ad hoc network using one-way/one-time hash functions
US8116243B2 (en) 2006-10-05 2012-02-14 Electronics And Telecommunications Research Institute Wireless sensor network and adaptive method for monitoring the security thereof
US8042033B2 (en) * 2006-11-29 2011-10-18 Lg Electronics Inc. Protection of access information in wireless communications

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235509A1 (en) * 2006-11-10 2008-09-25 Toyota Motor Engineering & Manufacturing North America, Inc. Method for exchanging messages and verifying the authenticity of the messages in an ad hoc network

Also Published As

Publication number Publication date
US20110002459A1 (en) 2011-01-06
US8464070B2 (en) 2013-06-11
KR20100131678A (ko) 2010-12-16

Similar Documents

Publication Publication Date Title
KR101584987B1 (ko) 데이터 송수신 장치 및 방법
KR100979576B1 (ko) 새로운 패스워드를 실현하기 위한 방법 및 컴퓨터 판독가능 매체
US7958544B2 (en) Device authentication
US9852300B2 (en) Secure audit logging
CN103166958B (zh) 一种文件的保护方法及系统
US20080019530A1 (en) Message archival assurance for encrypted communications
US9491174B2 (en) System and method for authenticating a user
US10057060B2 (en) Password-based generation and management of secret cryptographic keys
US20090307495A1 (en) Confidential communication method
CN104506483A (zh) 一种信息加密解密、管理密钥的方法、终端及网络服务器
CN108809633B (zh) 一种身份认证的方法、装置及系统
Sari et al. Comparative analysis of wireless security protocols: WEP vs WPA
US20180063105A1 (en) Management of enciphered data sharing
Liew et al. One-time knocking framework using SPA and IPsec
US10666627B1 (en) Encrypting content and facilitating legal access to the encrypted content
US20190364025A1 (en) Method for end-to-end transmission of a piece of encrypted digital information, application of this method and object implementing this method
CN115150076A (zh) 一种基于量子随机数的加密系统及方法
CN114282189A (zh) 一种数据安全存储方法、系统、客户端以及服务器
KR100381710B1 (ko) 회원제 운용 인터넷 서버의 보안 방법 및 그에 관한 서버시스템
Sharma et al. ASCCS: Architecture for Secure Communication Using Cloud Services
Reddy et al. Data Storage on Cloud using Split-Merge and Hybrid Cryptographic Techniques
Rahman et al. Security Enhancement of WEP Protocol IEEE802. 11b with Dynamic Key Management
JP5446768B2 (ja) 鍵交換システム、鍵交換方法
CN116743470A (zh) 业务数据加密处理方法及装置
CN114531235A (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: 20181218

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191216

Year of fee payment: 5