KR101875528B1 - 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법 - Google Patents

경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법 Download PDF

Info

Publication number
KR101875528B1
KR101875528B1 KR1020160118252A KR20160118252A KR101875528B1 KR 101875528 B1 KR101875528 B1 KR 101875528B1 KR 1020160118252 A KR1020160118252 A KR 1020160118252A KR 20160118252 A KR20160118252 A KR 20160118252A KR 101875528 B1 KR101875528 B1 KR 101875528B1
Authority
KR
South Korea
Prior art keywords
server
value
client terminal
message
secret information
Prior art date
Application number
KR1020160118252A
Other languages
English (en)
Other versions
KR20180029756A (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 KR1020160118252A priority Critical patent/KR101875528B1/ko
Publication of KR20180029756A publication Critical patent/KR20180029756A/ko
Application granted granted Critical
Publication of KR101875528B1 publication Critical patent/KR101875528B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/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
    • 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/3271Cryptographic 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 challenge-response
    • H04L9/3273Cryptographic 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 challenge-response for mutual authentication
    • 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/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

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)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은, 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법으로서, 클라이언트 단말기가 클라이언트 단말기 비밀 키에 기반하여 은닉 정보 생성 함수에 의해 생성된 제1 은닉 정보를 포함하는 통신 시작 요청 메시지를 생성하고, 통신 시작 요청 메시지를 서버로 전송하는 제1 단계; 서버가 상기 수신한 통신 시작 요청 메시지를 복원 및 인증하는 제2 단계; 인증이 성공한 경우, 서버가 서버 비밀 키에 기반하여 은닉 정보 생성 함수에 의해 생성된 제2 은닉 정보를 포함하는 통신 시작 확인 메시지를 생성하고, 통신 시작 확인 메시지를 클라이언트 단말기로 전송하는 제3 단계; 클라이언트 단말기가 상기 수신한 통신 시작 확인 메시지를 복원 및 인증하는 제4 단계; 인증이 성공한 경우, 클라이언트 단말기가 장치 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제3 은닉 정보를 포함하는 클라이언트 메시지를 생성하고, 생성된 클라이언트 메시지를 서버로 전송하는 제5 단계; 서버가 상기 수신한 클라이언트 메시지를 복원 및 인증하는 제6 단계; 인증이 성공한 경우, 서버가 서버 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제4 은닉 정보를 포함하는 서버 메시지를 생성하고, 생성된 서버 메시지를 클라이언트 단말기로 전송하는 제7 단계; 및 클라이언트 단말기가 상기 수신한 서버 메시지를 복원 및 인증하는 제8 단계를 포함하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법을 제공한다.

Description

경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법{METHOD FOR COMMUNICATION BASED ON STEGANOGRAPHY}
본 발명은 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법에 관한 것으로서, 보다 상세하게는 경량 장치와 서버 사이에서 스테가노그래피 기법에 기반하여 상호 인증, 세션 키 합의 및 무결성 검증 기능을 제공할 수 있는 통신 방법에 관한 것이다.
데이터 전송시에 정보를 은닉하여 전송하는 것을 일반적으로 스테가노그래피(Steganography)라고 하는데, 종래 알려진 방식은 보안성을 높이기 위해 다수의 복잡한 연산을 수행해야 하는 경우가 많아서 미약한 하드웨어 자원을 갖는 경량의 컴퓨팅 장치에서는 현실적으로 사용하기에 어려운 점이 있다.
특히, 최근에 사물 인터넷의 활성화로 미약한 하드웨어 자원(작은 메모리, 한정된 배터리 전원, 낮은 CPU 속도)을 가진 초경량 무선 컴퓨터와 같은 경량 장치에는 적용하기가 어려운 점이 있다. 즉, 기존에 스테가노그래피에서 사용되는 암호화 알고리즘(AES, SEED 등)들은 높은 자원 소모(많은 프로그램 실행 코드 증가, 높은 CPU 추가 연산량, 높은 배터리 전원 소모 증가)를 요구하여 사물 인터넷(IoT)에서 사용되는 경량 장치에는 적용할 수 없다는 한계가 있다.
따라서, 경량 장치의 하드웨어 자원 제약으로 암호 함수를 탑재하지 못하는 경우에는 상호인증, 세션키 합의 및 무결성 검증 기능을 제공할 수 없다는 한계가 있다.
이에 본 출원인은 2015.10.15.자로 "문자 배열 디지털 코드로 구성되는 메시지를 이용하여 은닉 정보를 전송하는 방법"(출원번호 10-2015-0144278)을 출원한 바 있다. 이에 의하면, 미약한 하드웨어 자원을 갖는 경량 장치에서 복잡한 암호화 연산을 수행하지 않고 스테가노그래피 기법을 이용하여 메시지 내에 정보를 은닉하여 전송할 수 있는 방법이 제시되어 있다. 본 발명은 이러한 기술을 이용하여 경량 장치에서 상호 인증, 세션 키 합의 및 무결성 검증 기능을 제공할 수 있는 통신 방법을 제공할 수 있는 방안을 제시하고자 한다.
특허출원 제10-2015-0144278호(2015.10.15.출원)
본 발명은 미약한 하드웨어 자원(작은 메모리, 한정된 배터리 전원, 낮은 CPU 속도)을 갖는 경량 장치에서, 적은 자원 소모(적은 프로그램 실행 코드 증가, 적은 CPU 추가 연산량, 낮은 배터리 전원 소모 증가)를 갖는 통신 방법을 제공하는 것을 목적으로 한다.
또한, 본 발명은 경량 장치의 하드웨어 자원 제약으로 암호 함수를 탑재하지 못하는 경우에도 스테가노그래피 기법에 기반하여 상호 인증, 세션키 합의 및 무결성 검증 기능을 제공할 수 있는 통신 방법을 제공하는 것을 목적으로 한다.
상기한 바와 같은 과제를 해결하기 위하여 본 발명은, 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법으로서, 클라이언트 단말기가 클라이언트 단말기 비밀 키에 기반하여 은닉 정보 생성 함수에 의해 생성된 제1 은닉 정보를 포함하는 통신 시작 요청 메시지를 생성하고, 통신 시작 요청 메시지를 서버로 전송하는 제1 단계; 서버가 상기 수신한 통신 시작 요청 메시지를 복원 및 인증하는 제2 단계; 인증이 성공한 경우, 서버가 서버 비밀 키에 기반하여 은닉 정보 생성 함수에 의해 생성된 제2 은닉 정보를 포함하는 통신 시작 확인 메시지를 생성하고, 통신 시작 확인 메시지를 클라이언트 단말기로 전송하는 제3 단계; 클라이언트 단말기가 상기 수신한 통신 시작 확인 메시지를 복원 및 인증하는 제4 단계; 인증이 성공한 경우, 클라이언트 단말기가 장치 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제3 은닉 정보를 포함하는 클라이언트 메시지를 생성하고, 생성된 클라이언트 메시지를 서버로 전송하는 제5 단계; 서버가 상기 수신한 클라이언트 메시지를 복원 및 인증하는 제6 단계; 인증이 성공한 경우, 서버가 서버 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제4 은닉 정보를 포함하는 서버 메시지를 생성하고, 생성된 서버 메시지를 클라이언트 단말기로 전송하는 제7 단계; 및 클라이언트 단말기가 상기 수신한 서버 메시지를 복원 및 인증하는 제8 단계를 포함하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법을 제공한다.
여기에서, 상기 제1 단계는, 클라이언트 단말기가 클라이언트 단말기에 대해 부여된 장치 ID와 장치 난스값을 연결하고(concatenation), 상기 연결된 장치 ID와 장치 난스값을 은닉 정보 생성 함수에 입력시켜서 제1 은닉 정보를 생성하도록 할 수 있다.
또한, 상기 제2 단계는, 서버가 은닉 정보 생성 함수에 의해 수행된 연산에 상응하는 연산을 수행함으로써 제1 은닉 정보를 복원하고, 복원된 제1 은닉 정보에 포함된 장치 ID와 서버가 저장하고 있는 장치 ID를 비교하여 일치하는 경우 인증이 성공한 것으로 판단하도록 할 수 있다.
또한, 상기 제3 단계는, 서버가 장치 난스값과 서버 난스값을 연결하고(concatenation), 상기 연결된 장치 난스값과 서버 난스값을 은닉 정보 생성 함수에 입력시켜서 제2 은닉 정보를 생성하도록 구성할 수도 있다.
또한, 상기 제2 단계는, 클라이언트 단말기가 은닉 정보 생성 함수에 의해 수행된 연산에 상응하는 연산을 수행함으로써 제2 은닉 정보를 복원하고, 복원된 제2 은닉 정보에 포함된 장치 난스값과 클라이언트 단말기가 생성했던 장치 난스값을 비교하여 일치하는 경우 인증이 성공한 것으로 판단할 수 있다.
또한, 상기 제5 단계는, 클라이언트 단말기가 서버로 전송하고자 하는 클라이언트 메시지에 대해 서버 난스값을 키값으로 하는 해쉬 함수에 의한 결과값인 해쉬 값을 장치 난스값을 키값으로 하는 은닉 정보 생성 함수에 입력시켜서 제3 은닉 정보를 생성하도록 할 수도 있다.
또한, 상기 제6 단계는, 서버가 은닉 정보 생성 함수에 의해 수행된 연산에 상응하는 연산을 수행함으로써 제3 은닉 정보를 복원하고, 복원된 제3 은닉 정보에 포함된 해쉬 값과 수신된 클라이언트 메시지에 대해 구한 해쉬 값을 비교하여 일치하는 경우 인증이 성공한 것으로 판단할 수 있다.
또한, 상기 제7 단계는, 서버가 클라이언트 단말기로 전송하고자 하는 서버 메시지에 대해 장치 난스값을 키값으로 하는 해쉬 함수에 의한 결과값인 해쉬 값을 장치 난스값을 키값으로 하는 은닉 정보 생성 함수에 입력시켜서 제4 은닉 정보를 생성하도록 구성할 수도 있다.
또한, 상기 제8 단계는, 클라이언트 단말기가 은닉 정보 생성 함수에 의해 수행된 연산에 상응하는 연산을 수행함으로써 제4 은닉 정보를 복원하고, 복원된 제4 은닉 정보에 포함된 해쉬 값과 수신된 서버 메시지에 대해 구한 해쉬 값을 비교하여 일치하는 경우 인증이 성공한 것으로 판단할 수 있다.
또한, 상기 제7 단계 이후, 클라이언트 단말기가 장치 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제5 은닉 정보를 포함하는 통신 종료 요청 메시지를 생성하고, 생성된 통신 종료 요청 메시지를 서버로 전송하는 제8 단계; 서버가 상기 수신한 통신 종료 요청 메시지를 복원 및 인증하는 제9 단계; 인증이 성공한 경우, 서버가 서버 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제6 은닉 정보를 포함하는 통신 종료 확인 메시지를 생성하고, 생성된 통신 종료 확인 메시지를 클라이언트 단말기로 전송하는 제10 단계; 및 클라이언트 단말기가 상기 수신한 통신 종료 확인 메시지를 복원 및 인증하는 제11 단계를 더 포함할 수 있다.
본 발명에 의하면, 미약한 하드웨어 자원(작은 메모리, 한정된 배터리 전원, 낮은 CPU 속도)을 갖는 경량 장치에서, 적은 자원 소모(적은 프로그램 실행 코드 증가, 적은 CPU 추가 연산량, 낮은 배터리 전원 소모 증가)를 갖는 통신 방법을 제공할 수 있다.
또한, 본 발명은 경량 장치의 하드웨어 자원 제약으로 암호 함수를 탑재하지 못하는 경우에도 스테가노그래피 기법에 기반하여 상호 인증, 세션키 합의 및 무결성 검증 기능을 제공할 수 있다.
도 1은 본 발명에 의한 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법의 일실시예를 나타낸 흐름도이다.
도 2는 제1 은닉 정보를 생성하는 과정을 나타낸 흐름도이다.
도 3은 통신 시작 요청 메시지의 복원 및 인증 과정을 나타낸 흐름도이다.
도 4는 클라이언트 단말기(100)와 서버(200)에서 통신을 종료하는 경우에 대한 흐름도이다.
이하, 첨부 도면을 참조하여 본 발명에 의한 실시예를 상세하게 설명하기로 한다.
도 1은 본 발명에 의한 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법의 일실시예를 나타낸 흐름도이다.
도 1을 참조하면, 클라이언트 단말기(100)와 서버(200)는 네트워크를 통해 서로 연결되어 통신을 수행한다. 여기에서 네트워크는 인터넷, 공중 통화망, 이동 통신망, 무선 네트워크(블루투스, NFC) 등과 같은 모든 종류의 네트워크를 포함하는 광의의 개념이다.
클라이언트 단말기(100)는 미약한 하드웨어 자원(작은 메모리, 한정된 배터리 전원, 낮은 CPU 속도)을 갖는 경량 장치를 의미하는 것으로 정의한다. 이러한 경량 장치는 사물 인터넷(IoT) 단말기일 수 있다. 이러한 경량 장치는 하드웨어 자원의 제약으로 인해 AES, SEED 등과 같은 암호 함수를 탑재할 수 없는 장치이다.
이러한 클라이언트 단말기(100)와 서버(200)는, 후술하는 바와 같이, 스테가노그래피 기법에 기반하여 상호 인증, 세션키 합의 및 무결성 검증 기능을 제공하는 통신 방법을 제공한다.
우선, 클라이언트 단말기(100)는 클라이언트 단말기 비밀 키에 기반하여 제1 은닉 정보를 생성하고, 제1 은닉 정보를 포함하는 통신 시작 요청 메시지를 생성한다(S100).
클라이언트 단말기(100)는 미리 클라이언트 단말기 비밀 키를 가지고 있으며, 이에 기반하여 제1 은닉 정보를 생성한다.
도 2는 제1 은닉 정보를 생성하는 과정을 나타낸 흐름도이다.
도 2를 참조하면, 우선, 클라이언트 단말기(100)는 장치 난스(nounce)값을 생성한다(S101). 여기에서, 난스값이란 사전 예측이 되지 않고 반복되지 않는 랜덤 값을 의미하며, 예컨대 타임스탬프(timestamp)값을 난스값으로 할 수 있다.
그리고, 클라이언트 단말기(100)에 대해 미리 부여된 장치 ID와 장치 난스값을 연결(concatenation)한다(S102). 여기서, 연결(concatenation)은 이어 붙인다는 의미로서 예컨대, 장치 ID가 "aaa"이고 장치 난스값이 "201609091301"일 때, 이들을 연결하면 "aaa201609091301"가 된다. 이는 (장치 ID |장치 난스값)으로 표현할 수 있다.
그리고, 클라이언트 단말기(100)는 상기 연결된 (장치 ID |장치 난스값)을 은닉 정보 생성 함수에 입력시키고(S103), 은닉 정보 생성 함수는 클라이언트 단말기(100)가 가지고 있는 클라이언트 단말기 비밀 키에 의해 제1 은닉 정보를 생성한다(S104).
여기에서, 은닉 정보 생성 함수는 다음과 같이 정의될 수 있다.
S(입력) = 키 값을 사용하여 입력값에 대한 은닉 정보를 생성
따라서, 제1 은닉 정보는 다음과 같은 식에 의해 표현될 수 있다.
제1 은닉 정보 = S클라이언트 단말기 비밀 키(장치 ID |장치 난스값)
이러한 원리에 의해 은닉 정보 생성 함수는 여러 가지 연산에 의해 은닉 정보를 생성할 수 있는데, 일예로서 은닉 정보 생성 함수는 다음과 같은 방법에 의해 은닉 정보를 생성할 수 있다.
예컨대, 은닉 정보를 4바이트로 구성하는 것으로 미리 설정한 경우, 입력값이 "123456"인 경우, 이를 2자리씩 나누고, 이들 각각에 클라이언트 단말기 비밀 키(예컨대 2)를 더한 값을 생성한다. 그러면, "14","36","58"이 된다. 그리고, 나머지 100 연산 패리티(parity)를 사용하여 유효성 검증을 위한 검증 정보를 생성한다. 즉, 14+36+58을 더한 값을 100으로 나누었을 때 나머지가 0이 되도록 하는 숫자인 92를 검증 정보로 할 수 있다.
이와 같이 하면, 입력 값이 "123456"인 경우 14,36,58이 3바이트에 채워지고 나머지 한바이트에 92가 검증 정보로서 채워지게 되며, 이들 4바이트에 의해 은닉 정보가 생성된다.
이러한 방식에 의해 제1 은닉 정보가 생성되면, 클라이언트 단말기(100)는 생성된 제1 은닉 정보를 포함하는 통신 시작 요청 메시지를 생성한다(S100).
전술한 예에서, 은닉 정보는 4바이트로 구성되는 것으로 설명하였으므로, 통신 시작 요청 메시지는 원래의 통신 시작 요청 메시지에 4바이트의 제1 은닉 정보가 포함된 통신 시작 요청 메시지를 생성한다.
이 때, 제1 은닉 정보는 원래의 통신 시작 요청 메시지의 맨 마지막 4바이트에 포함되도록 할 수 있다. 다른 방법으로서는, 맨 앞 4바이트에 포함되도록 하거나 뒤에서부터 홀수자리의 4바이트 또는 짝수 자리의 4바이트에 포함되도록 할 수도 있다.
통신 시작 요청 메시지가 생성되면, 클라이언트 단말기(100)는 통신 시작 요청 메시지를 서버(200)로 전송한다(S110).
서버(200)는 통신 시작 요청 메시지를 수신하면, 수신된 통신 시작 요청 메시지를 복원하고 인증한다(S120).
도 3은 통신 시작 요청 메시지의 복원 및 인증 과정을 나타낸 흐름도이다.
우선, 서버(200)는 통신 시작 요청 메시지에 포함된 제1 은닉 정보 중에서 검증 정보에 의해 유효성 검증을 수행한다(S121). 유효성 검증은 전술한 바와 같이 예컨대 검증 정보 생성시의 패리티 연산의 결과값을 검증하는 것일 수 있다. 즉, 은닉 정보와 검증 정보를 모두 더한 값에 대해 나머지 100 연산을 수행하고 그 결과가 0인 경우 유효한 것으로 판단할 수 있다. 유효성 검증이 실패하면, 수신된 메시지를 폐기한다.
유효성 검증이 성공한 경우, 서버(200)는 제1 은닉 정보에 대해 은닉 정보 생성 함수에 의해 수행된 연산에 상응하는 연산을 수행함으로써 제1 은닉 정보를 복원한다(S122). 전술한 바와 같이, 제1 은닉 정보 중에서 검증 정보를 제외한 3바이트에 대해 클라이언트 단말기 비밀 키의 값 즉, 2를 감산하는 연산을 수행함으로써 3바이트에 대해 12, 34, 56을 얻을 수 있고 이들을 연결하여 123456을 복원할 수 있다. 여기에서, 제1 은닉 정보를 복원한 것은 (장치 ID |장치 난스값)이 되므로, 이에 의해 서버(200)는 장치 ID와 장치 난스값을 알 수 있게 된다.
다음으로, 서버(200)는 복원된 제1 은닉 정보에 포함된 장치 ID와 서버(200)가 저장하고 있는 장치 ID를 비교하여 일치하는 경우 인증이 성공한 것으로 판단한다(S123).
다시 도 1을 참조하면, 서버(200)는 서버 비밀 키에 기반하여 제2 은닉 정보를 생성하고, 제2 은닉 정보를 포함하는 통신 시작 확인 메시지를 생성한다(S130).
통신 시작 확인 메시지는 서버(200)가 클라이언트 단말기(100)로부터 전송되어 온 통신 시작 요청 메시지를 정상적으로 수신하였음을 알리기 위한 메시지로서, 제2 은닉 정보는 다음과 같은 식에 의해 표현될 수 있다.
제2 은닉 정보 = S서버 비밀 키(장치 난스값 |서버 난스값)
즉, 제2 은닉 정보는, 장치 난스값과 서버 난스값을 연결(concatenation)하고 이를 은닉 정보 생성 함수에 입력시키고 은닉 정보 생성 함수는 서버 비밀 키를 이용하여 입력값에 대한 제2 은닉 정보를 생성한다. 여기에서, 장치 난스값은 클라이언트 단말기(100)로부터 수신한 제1 은닉 정보에 포함되어 있으며 이를 복원하여 획득한 값이다.
제2 은닉 정보를 생성하는 과정은 입력값만 다를 뿐 기타 과정은 전술한 제1 은닉 정보를 생성하는 과정과 동일하므로 상세 설명은 생략한다.
제2 은닉 정보가 생성되면, 전술한 제1 은닉 정보의 경우에서와 마찬가지 방식으로 서버(200)는 제2 은닉 정보를 포함하는 통신 시작 확인 메시지를 생성한다(S130).
그리고, 서버(200)는 통신 시작 확인 메시지를 클라이언트 단말기(100)로 전송한다(S140).
클라이언트 단말기(100)는 통신 시작 확인 메시지를 수신하고 이를 복원 및 인증한다(S150). 통신 시작 확인 메시지의 복원은 제2 은닉 정보라는 점만을 제외하면 상기 단계(S120)에서 서버(200)가 통신 시작 요청 메시지를 복원하는 것과 마찬가지 방식으로 이루어진다. 그러면, 클라이언트 단말기(100)는 제2 은닉 정보를 알 수 있게 되는데, 제2 은닉 정보는 서버(200)가 전송한 (장치 난스값 |서버 난스값)이므로, 이 장치 난스값과 앞서 클라이언트 단말기(100)가 생성하여 전송한 장치 난스값을 비교하여 일치하는 경우 인증이 성공한 것으로 판단한다.
이와 같은 과정 즉, 상기 단계(S100) 내지 단계(S150)에 의해, 클라이언트 단말기(100)와 서버(200)는 상호 인증을 간편하고 효율적으로 수행할 수 있게 된다.
인증이 성공한 경우, 클라이언트 단말기(100)는 장치 난스값에 기반하여 제3 은닉 정보를 생성하고, 제3 은닉 정보를 포함하는 클라이언트 메시지를 생성한다(S160). 여기에서, 클라이언트 메시지는 실제 클라이언트 단말기(100)가 서버(200)로 전송하고자 하는 메시지를 말한다.
제3 은닉 정보는 다음과 같이 표현할 수 있다.
제3 은닉 정보 = S장치 난스값(H서버 난스값(클라이언트 메시지))
여기에서, H서버 난스값(클라이언트 메시지)은 입력값 즉, 클라이언트 메시지에 대해 서버 난스값을 키값으로 하는 해쉬(Hash) 함수를 의미한다. 예컨대, 해쉬 함수는 입력값이 A인 경우 (A의 아스키 코드값의 나머지 연산 값) + 키값과 같은 것을 사용할 수 있다. 해쉬 함수 자체는 종래 기술에 의해 잘 알려져 있는 것이고 본 발명의 직접적인 목적은 아니므로 이에 대한 상세 설명은 생략한다.
즉, 제3 은닉 정보는 서버로 전송하고자 하는 클라이언트 메시지를 입력값으로 할 때 서버 난스값을 키값으로 하는 해쉬 함수의 결과값이 해쉬 값을 구하고, 장치 난스값을 키값으로 하여 상기 해쉬 값을 은닉 정보 생성 함수에 입력시켜 구한 결과이다. 은닉 정보 생성 함수는 앞서 설명한 바와 마찬가지이므로 이에 대한 상세 설명은 생략한다.
이와 같이 제3 은닉 정보가 생성되면, 클라이언트 단말기(100)는 제3 은닉 정보를 클라이언트 메시지에 포함시켜서 클라이언트 메시지를 다시 생성하고, 생성된 클라이언트 메시지를 서버(200)로 전송한다(S170).
서버(200)는 클라이언트 메시지를 수신하고, 수신된 클라이언트 메시지를 복원 및 인증한다(S180). 여기에서 복원 과정은 앞서 설명한 바와 마찬가지이고, 이러한 복원 과정에 의해 제3 은닉 정보가 복원되며, 복원된 제3 은닉 정보에 포함된 해쉬 값을 알 수 있게 된다. 서버(200)는 수신된 클라이언트 메시지에 대해 전술한 바와 같은 해쉬 값을 구하고 이 구한 해쉬 값과 복원된 해쉬 값을 비교하여 일치하면 인증이 성공한 것으로 판단한다.
인증이 성공하면, 클라이언트 단말기(100)로부터 전송된 클라이언트 메시지가 정상적인 메시지인 것으로 판단할 수 있으며, 이에 의해 무결성을 검증할 수 있다.
다음으로, 서버(200)는 서버 난스값에 기반하여 제4 은닉 정보를 생성하고, 제4 은닉 정보를 포함하는 서버 메시지를 생성한다(S190). 여기에서, 서버 메시지는 실제 클라이언트 단말기(100)가 서버(200)로 전송하고자 하는 메시지를 말한다.
제4 은닉 정보는 다음과 같이 표현할 수 있다.
제4 은닉 정보 = S서버 난스값(H장치 난스값(서버 메시지))
즉, 제4 은닉 정보는 클라이언트 단말기(100)로 전송하고자 하는 서버 메시지를 입력값으로 할 때 장치 난스값을 키값으로 하는 해쉬 함수의 결과값인 해쉬 값을 구하고, 서버 난스값을 키값으로 하여 상기 해쉬 값을 은닉 정보 생성 함수에 입력시켜 구한 결과이다.
이와 같이 제4 은닉 정보가 생성되면, 서버(200)는 제4 은닉 정보를 서버 메시지에 포함시켜서 서버 메시지를 다시 생성하고, 생성된 서버 메시지를 클라이언트 단말기(100)로 전송한다(S200).
클라이언트 단말기(100)는 서버 메시지를 수신하고, 수신된 서버 메시지를 복원 및 인증한다(S210). 여기에서 복원 과정은 앞서 설명한 바와 마찬가지이고, 이러한 복원 과정에 의해 제4 은닉 정보가 복원되며, 복원된 제4 은닉 정보에 포함된 해쉬 값을 알 수 있게 된다. 클라이언트 단말기(100)는 수신된 서버 메시지에 대해 전술한 바와 같은 해쉬 값을 구하고 이 구한 해쉬 값과 복원된 해쉬 값을 비교하여 일치하면 인증이 성공한 것으로 판단한다.
인증이 성공하면, 서버(200)로부터 전송된 서버 메시지가 정상적인 메시지인 것으로 판단할 수 있으며, 이에 의해 무결성을 검증할 수 있다.
한편, 상기 단계(S180) 및 단계(210)에서 인증이 실패하면, 수신된 메시지는 폐기한다.
도 4는 클라이언트 단말기(100)와 서버(200)에서 통신을 종료하는 경우에 대한 흐름도이다.
도 1 내지 도 3에서 설명한 바와 같은 과정을 통해 클라이언트 단말기(100)와 서버(200)가 통신을 수행하는 도중, 통신을 종료하고자 하는 경우 클라이언트 단말기(100)가 통신 종료 요청 메시지를 생성한다(S220).
여기서, 통신 종료 요청 메시지는 장치 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제5 은닉 정보를 포함한다.
제5 은닉 정보는 다음과 같이 표현될 수 있다.
제5 은닉 정보 = S장치 난스값(H서버 난스값(클라이언트 메시지))
즉, 제5 은닉 정보는 제3 은닉 정보와 동일하다. 클라이언트 단말기(100)ㄴ는 제5 은닉 정보를 포함하는 통신 종료 요청 메시지를 생성하고 이를 서버(200)로 전송한다(S230).
서버(200)는 통신 종료 요청 메시지를 수신하고 이를 복원 및 인증한다(S240). 이는 도 1의 단계(S180)과 마찬가지 방식으로 이루어진다.
인증이 성공하면, 서버(200)는 서버 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제6 은닉 정보를 포함하는 통신 종료 확인 메시지를 생성한다(S250).
제6 은닉 정보는 다음과 같이 표현된다.
제6 은닉 정보 = S서버 난스값(H장치 난스값(서버 메시지))
즉, 제6 은닉 정보는 제4 은닉 정보와 동일하다. 서버(200)는 제6 은닉 정보를 포함하는 통신 종료 확인 메시지를 생성하고 이를 클라이언트 단말기(100)로 전송한다(S260).
클라이언트 단말기(100)는 전술한 바와 같은 방식에 의해 수신된 통신 종료 확인 메시지를 복원 및 인증하고(S270), 인증이 성공한 경우 통신을 종료하게 된다.
이와 같은 본 발명에 의하면, 암호 함수를 탑재할 수 없는 경량 장치인 클라이언트 단말기(100)가 서버(200)와 통신을 수행할 때, 상호 인증, 세션 키 합의 및 무결성 검증을 간편하고 효율적인 방식으로 제공할 수 있게 된다.
상호 인증은, 우선 서버(200)가 수신한 통신 시작 요청 메시지에서 장치 ID를 정상적으로 복원함으로써, 클라이언트 단말기(100)를 인증할 수 있고, 클라이언트 단말기(100)가 수신한 통신 시작 확인 메시지에서 장치 난스값을 정상적으로 복원하면 서버(200)를 인증하는 방법에 의해 이루어질 수 있다.
한편, 클라이언트 단말기 비밀 키와 서버 비밀 키는 상호 인증 과정 즉, 단계(S100) 내지 단계(S150)에서만 사용되고, 실제 메시지 전송시(단계(S160) 내지 단계(S210))에는 상기 상호 인증 과정에서 동적으로 생성된 서버 난스값과 장치 난스값을 세션 비밀 키 값으로 사용함으로써 세션 키 합의 기능을 제공할 수 있다.
또한, 수신된 메시지의 해쉬 값과 복원된 해쉬 값을 비교하여 일치하는 경우 정상적 메시지로 확인하고 일치하지 않는 경우 수신된 메시지를 폐기함으로써 무결성 검증 기능을 제공할 수 있다.
또한, 서버는 제3자의 클라이언트를 가장한 변조된 메시지 전송을 구분하여 폐기하고, 클라이언트는 제3자의 서버를 가장한 변조된 메시지 전송을 구분하여 폐기할 수 있으므로, 보안성을 강화할 수 있다.
또한, 이러한 본 발명에 의하면, 외부에는 통신 시작 요청과 통신 시작 확인 메시지만 노출되고, 상호인증, 세션키 합의 및 무결성 검증 과정을 노출시키지 않을 수 있다.
또한, 은닉 정보의 복원 실패시(비교 값이 일치하지 않는 경우)에는 무응답(또는 제한된 횟수의 재송신 요청 메시지 전송)을 통해서 retry 공격을 차단하도록 할 수도 있다.
이상에서 본 발명의 바람직한 실시예를 참조하여 본 발명을 설명하였으나 본 발명은 상기 실시예에 한정되는 것이 아님은 물론이다.
예컨대, 은닉 정보 생성 함수에서 은닉 정보를 생성하는 방법으로는 기타 다른 방법(더하기 값의 변경, 마지막 바이트 나머지 연산 값 변경 등)을 사용할 수 있을 것이다.
또한, 은닉 정보 생성 함수를 주기적으로 바꾸어서 보안성을 강화하는 방법도 생각할 수 있다. 예컨대, 전송하고자 하는 정보+ 비밀 키값 연산과 정보+2*비밀 키 값의 연산을 번갈아 가면서 사용할 수도 있다.
또한, 은닉 정보를 메시지에 포함시키는 형태 또한 상기 실시예에서 설명한 방식 이외의 기타 다른 방법을 사용할 수도 있을 것이다.

Claims (10)

  1. 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법으로서,
    클라이언트 단말기가 클라이언트 단말기 비밀 키에 기반하여 은닉 정보 생성 함수에 의해 생성된 제1 은닉 정보를 포함하는 통신 시작 요청 메시지를 생성하고, 통신 시작 요청 메시지를 서버로 전송하는 제1 단계;
    서버가 상기 수신한 통신 시작 요청 메시지를 복원 및 인증하는 제2 단계;
    인증이 성공한 경우, 서버가 서버 비밀 키에 기반하여 은닉 정보 생성 함수에 의해 생성된 제2 은닉 정보를 포함하는 통신 시작 확인 메시지를 생성하고, 통신 시작 확인 메시지를 클라이언트 단말기로 전송하는 제3 단계;
    클라이언트 단말기가 상기 수신한 통신 시작 확인 메시지를 복원 및 인증하는 제4 단계;
    인증이 성공한 경우, 클라이언트 단말기가 장치 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제3 은닉 정보를 포함하는 클라이언트 메시지를 생성하고, 생성된 클라이언트 메시지를 서버로 전송하는 제5 단계;
    서버가 상기 수신한 클라이언트 메시지를 복원 및 인증하는 제6 단계;
    인증이 성공한 경우, 서버가 서버 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제4 은닉 정보를 포함하는 서버 메시지를 생성하고, 생성된 서버 메시지를 클라이언트 단말기로 전송하는 제7 단계; 및
    클라이언트 단말기가 상기 수신한 서버 메시지를 복원 및 인증하는 제8 단계
    를 포함하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
  2. 제1항에 있어서,
    상기 제1 단계는,
    클라이언트 단말기가 클라이언트 단말기에 대해 부여된 장치 ID와 장치 난스값을 연결하고(concatenation),
    상기 연결된 장치 ID와 장치 난스값을 은닉 정보 생성 함수에 입력시켜서 제1 은닉 정보를 생성하는 것을 특징으로 하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
  3. 제2항에 있어서,
    상기 제2 단계는,
    서버가 은닉 정보 생성 함수에 의해 수행된 연산에 상응하는 연산을 수행함으로써 제1 은닉 정보를 복원하고, 복원된 제1 은닉 정보에 포함된 장치 ID와 서버가 저장하고 있는 장치 ID를 비교하여 일치하는 경우 인증이 성공한 것으로 판단하는 것을 특징으로 하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
  4. 제1항에 있어서,
    상기 제3 단계는,
    서버가 장치 난스값과 서버 난스값을 연결하고(concatenation),
    상기 연결된 장치 난스값과 서버 난스값을 은닉 정보 생성 함수에 입력시켜서 제2 은닉 정보를 생성하는 것을 특징으로 하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
  5. 제4항에 있어서,
    상기 제2 단계는,
    클라이언트 단말기가 은닉 정보 생성 함수에 의해 수행된 연산에 상응하는 연산을 수행함으로써 제2 은닉 정보를 복원하고, 복원된 제2 은닉 정보에 포함된 장치 난스값과 클라이언트 단말기가 생성했던 장치 난스값을 비교하여 일치하는 경우 인증이 성공한 것으로 판단하는 것을 특징으로 하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
  6. 제1항에 있어서,
    상기 제5 단계는,
    클라이언트 단말기가 서버로 전송하고자 하는 클라이언트 메시지에 대해 서버 난스값을 키값으로 하는 해쉬 함수에 의한 결과값인 해쉬 값을 장치 난스값을 키값으로 하는 은닉 정보 생성 함수에 입력시켜서 제3 은닉 정보를 생성하는 것을 특징으로 하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
  7. 제6항에 있어서,
    상기 제6 단계는,
    서버가 은닉 정보 생성 함수에 의해 수행된 연산에 상응하는 연산을 수행함으로써 제3 은닉 정보를 복원하고, 복원된 제3 은닉 정보에 포함된 해쉬 값과 수신된 클라이언트 메시지에 대해 구한 해쉬 값을 비교하여 일치하는 경우 인증이 성공한 것으로 판단하는 것을 특징으로 하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
  8. 제1항에 있어서,
    상기 제7 단계는,
    서버가 클라이언트 단말기로 전송하고자 하는 서버 메시지에 대해 장치 난스값을 키값으로 하는 해쉬 함수에 의한 결과값인 해쉬 값을 장치 난스값을 키값으로 하는 은닉 정보 생성 함수에 입력시켜서 제4 은닉 정보를 생성하는 것을 특징으로 하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
  9. 제8항에 있어서,
    상기 제8 단계는,
    클라이언트 단말기가 은닉 정보 생성 함수에 의해 수행된 연산에 상응하는 연산을 수행함으로써 제4 은닉 정보를 복원하고, 복원된 제4 은닉 정보에 포함된 해쉬 값과 수신된 서버 메시지에 대해 구한 해쉬 값을 비교하여 일치하는 경우 인증이 성공한 것으로 판단하는 것을 특징으로 하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
  10. 제1항에 있어서,
    상기 제7 단계 이후,
    클라이언트 단말기가 장치 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제5 은닉 정보를 포함하는 통신 종료 요청 메시지를 생성하고, 생성된 통신 종료 요청 메시지를 서버로 전송하는 제9 단계;
    서버가 상기 수신한 통신 종료 요청 메시지를 복원 및 인증하는 제10 단계;
    인증이 성공한 경우, 서버가 서버 난스값에 기반하여 은닉 정보 생성 함수에 의해 생성된 제6 은닉 정보를 포함하는 통신 종료 확인 메시지를 생성하고, 생성된 통신 종료 확인 메시지를 클라이언트 단말기로 전송하는 제11 단계; 및
    클라이언트 단말기가 상기 수신한 통신 종료 확인 메시지를 복원 및 인증하는 제12 단계
    를 더 포함하는 것을 특징으로 하는 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법.
KR1020160118252A 2016-09-13 2016-09-13 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법 KR101875528B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160118252A KR101875528B1 (ko) 2016-09-13 2016-09-13 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160118252A KR101875528B1 (ko) 2016-09-13 2016-09-13 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법

Publications (2)

Publication Number Publication Date
KR20180029756A KR20180029756A (ko) 2018-03-21
KR101875528B1 true KR101875528B1 (ko) 2018-07-06

Family

ID=61900439

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160118252A KR101875528B1 (ko) 2016-09-13 2016-09-13 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법

Country Status (1)

Country Link
KR (1) KR101875528B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100104161A (ko) * 2009-03-16 2010-09-29 김세용 피싱 방지를 위한 일회용 비밀번호 생성 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100104161A (ko) * 2009-03-16 2010-09-29 김세용 피싱 방지를 위한 일회용 비밀번호 생성 방법 및 장치

Also Published As

Publication number Publication date
KR20180029756A (ko) 2018-03-21

Similar Documents

Publication Publication Date Title
CN107196763B (zh) Sm2算法协同签名及解密方法、装置与系统
Eldefrawy et al. OTP-based two-factor authentication using mobile phones
US9853816B2 (en) Credential validation
KR101486782B1 (ko) 무한 중첩된 해시 체인들에 의한 1회용 패스워드 인증
EP2291946B1 (en) Cryptographic key generation
Mavrogiannopoulos et al. A cross-protocol attack on the TLS protocol
KR20210134655A (ko) 보안 시스템 및 관련 방법
CN105228157B (zh) 一种无线传感器网络安全轻量重编程方法
WO2005008950A1 (en) Secure seed generation protocol
CN111935712A (zh) 一种基于NB-IoT通信的数据传输方法、系统及介质
CN101931536B (zh) 一种无需认证中心的高效数据加密及认证方法
CN104901935A (zh) 一种基于cpk的双向认证及数据交互安全保护方法
CN111884811B (zh) 一种基于区块链的数据存证方法和数据存证平台
WO2004038999A1 (en) Message authentication code based on error correcting code
KR101253683B1 (ko) 연쇄 해시에 의한 전자서명 시스템 및 방법
CN108616350B (zh) 一种基于对称密钥池的HTTP-Digest类AKA身份认证系统和方法
CN112771832A (zh) 用于共享公共秘密的计算机实现的系统和方法
CN114915396B (zh) 一种基于国密算法的跳变密钥数字通信加密系统和方法
CN110417804B (zh) 一种适于单片机实现的双向身份认证加密通信方法及系统
US7975142B2 (en) Ring authentication method for concurrency environment
CN109936438A (zh) 一种物联网系统终端设备安全接入认证的方法
KR101875528B1 (ko) 경량 장치를 위한 스테가노그래피 기법에 기반한 통신 방법
CN110912687A (zh) 一种分布式身份验证方法
JP5392741B2 (ja) Rsaをベースとしたパスワード認証方式及びその応用
CN118018205A (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