KR102364450B1 - 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법 - Google Patents

블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법 Download PDF

Info

Publication number
KR102364450B1
KR102364450B1 KR1020190161520A KR20190161520A KR102364450B1 KR 102364450 B1 KR102364450 B1 KR 102364450B1 KR 1020190161520 A KR1020190161520 A KR 1020190161520A KR 20190161520 A KR20190161520 A KR 20190161520A KR 102364450 B1 KR102364450 B1 KR 102364450B1
Authority
KR
South Korea
Prior art keywords
data
key
dynamic link
pseudo
link key
Prior art date
Application number
KR1020190161520A
Other languages
English (en)
Other versions
KR20210071394A (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 KR1020190161520A priority Critical patent/KR102364450B1/ko
Publication of KR20210071394A publication Critical patent/KR20210071394A/ko
Application granted granted Critical
Publication of KR102364450B1 publication Critical patent/KR102364450B1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 복수 개의 노드들을 구비하여 블록체인을 기반으로 한 센서 네트워크 시스템에 관한 것이다. 상기 센서 네트워크 시스템의 슬레이브는, 상기 마스터로부터 키 생성 요청을 받으면, 센서를 이용하여 외부 환경에 대한 데이터를 감지하고, 상기 데이터와 동적 링크키를 이용하여 새로운 동적 링크키를 생성하고, 상기 데이터 및 의사 난수를 이용하여 해쉬 기반의 메시지 인증 코드를 생성하고, 상기 데이터와 의사 난수를 암호화하며, 상기 메시지 인증 코드와 상기 암호화된 데이터와 의사 난수를 포함하는 확인 응답 메시지를 마스터에게 제공하며,
상기 마스터는, 상기 Critical Slave로부터 수신된 확인 응답 메시지의 암호화된 데이터 및 의사 난수를 복호화시켜 메시지 인증 코드를 생성하고, 상기 생성한 메시지 인증 코드와 상기 수신된 메시지 인증 코드를 비교하여, 서로 일치하면 상기 데이터와 동적 링크키를 이용하여 새로운 동적 링크키를 생성하는 것을 특징으로 한다.

Description

블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법{Sensor network system based on blockchain and method for generating dynamic link key in the sensor network system}
본 발명은 블록체인을 기반으로 한 센서 네트워크 시스템에 관한 것으로서, 더욱 구체적으로는 하드웨어 오라클 문제를 해결하기 위한 동적 링크키를 생성할 수 있도록 구성된 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법에 관한 것이다.
블록체인은 초기에 전자화폐의 기반 기술로써 소개되었으며, 이후 스마트 컨트랙트를 적용시킨 이더리움이 창안되어 블록체인 2세대로 넘어오게 된다. 초기의 비트코인은 단순 화폐 기능을 지원하게 했으나, 이더리움은 스마트 컨트랙트 통해 블록체인을 다양한 어플리케이션을 탑재할 수 있는 플랫폼을 제공한다.
블록체인은 데이터의 신뢰성을 보장하는 탈중앙화 시스템으로 한번 데이터가 장부에 기록되면 데이터의 수정과 삭제가 불가능하다. 이러한 블록체인의 특성상 외부 데이터가 위변조되어 블록체인에 기록된다면 블록체인 자체의 신뢰성이 무너지기 때문에 블록체인에 데이터가 기록되기 전에 데이터의 무결성이 보장이 되어야 한다. 한편, 블록체인에서 스마트 컨트랙트를 활용하기 위해서 외부의 데이터를 블록체인 내부로 가져오는 것이 필수적이다. 이때 외부 데이터의 신뢰성 문제인 오라클 문제가 발생할 수 있다. 블록체인 내부에 기록된 데이터는 위변조 되지 않는다고 하더라도 내부에 들어오기 전에 외부에서 충분히 위변조가 될 수 있다. 특히 외부데이터가 센서와 같은 하드웨어를 통해 들어오게 된다면 하드웨어의 보안이 필수적이다. 그러나 제한된 자원을 가진 상황에서 하드웨어 내부의 MCU(Micro Controller Unit)와 센서 간의 시리얼 통신 방법인 I2C, SPI, CAN 등에서는 보안 매커니즘을 제공하지 않는다. 이러한 점을 방지하기 위해 일반적으로 칩의 제조사에서 고정키를 통한 암호화 제공하고 있으나 고정키 방식은 키 탈취에 매우 취약하다.
그러나 센서로부터 추출한 데이터를 블록체인에 기록하려 할 때 디바이스 내부의 칩 간 통신 방법인I2C 프로토콜의 보안 매커니즘이 존재하지 않아 해킹의 위험에 노출되어 있다. 이러한 부분을 방지하기 위해 일반적으로 고정키 방식을 사용할 수 있지만 키 탈취에 취약하다. 또한 동적키의 경우 키 탈취에 대한 위험은 적지만 대신 키 생성 오버헤드가 발생한다는 단점이 있다.
시리얼 통신은 하나의 선을 사용하여 비트 단위의 데이터를 주고 받는 통신으로 다양한 프로토콜이 존재한다. 그 중, MCU와 주변 장치 간의 통신에 활용되는 프로토콜로 I2C(Inter-Intergrated Circuit)와 SPI(Serial Peripheral Interface)가 있다.
I2C는 필립스에서 개발한 직렬 컴퓨터 버스로 TWI(the Two-Wire Interface)로 불린다. 도 1의 (a)는 I2C 아키텍처를 도시한 것이며, (b)는 I2C 메시지 포맷을 도시한 표이다. 도 1의 (a)를 참조하면, 하나의 선은 SDA(Serial DAta)로 데이터를 송수신하는데 사용되고 나머지 선은 SCL(Serial CLock)로 송수신 타이밍 동기화를 위한 클럭 라인이다. CAN 버스와 달리 master-slave 구조로 마스터가 데이터 송수신의 권한을 가진다. 도 1의 (b)를 참조하면, I2C에서 메시지를 전송할 때 Start condition으로 시작하며 Stop Condition이 나오기 전까지 데이터의 사이즈 제한 없이 지속적으로 송수신이 가능하다. Address Frame에는 Slave 주소인 7비트 혹은 10비트가 들어간다. Master는 Slave에게 데이터를 전송하고 싶다면 Write 비트인 '1'을 전송하고 데이터를 수신 받고 싶다면 Read 비트인 '0'을 전송한다. 이후 R/W 비트의 Ack를 송수신하고 데이터를 보내게 된다. 이때 매 1바이트마다 Ack를 송수신하여 데이터가 올바르게 전송되었는지 확인한다.
SPI는 I2C와 같이 master-slave 구조로 가지며 일반적으로 I2C 보다 빠른 속도와 낮은 에너지 소모를 보인다. 그러나 SPI는 데이터의 송수신이 올바르게 되었는지 검증할 수 없어 데이터의 신뢰성에 문제가 생길 수 있다.
한편, 블록체인 외부 데이터(이하 외부 데이터)에 접근이 불가능한 한계점을 오라클 문제(Oracle problem)라고 하고, 이런 한계점을 극복하기 위해 외부 데이터를 블록체인에 제공하는 데이터 중개자를 오라클(Oracle)이라고 한다. 오라클은 데이터 중개자로서, 외부 출처로부터 받은 외부 데이터에 변조가 없다는 무결성(Integrity)을 증명해야 한다. 이러한 오라클 문제는 외부의 데이터를 내부로 가져올 때 외부의 데이터에 대해 발생되는 신뢰성 문제이다. 블록체인 내부에 기록된 데이터를 위변조 되지 않는다고 하더라도 블록체인에 트랜잭션으로 발생하기 전에 외부에서 위변조가 될 수 있다. 오라클 문제는 웹에 존재하는 데이터를 가져올 때 발생하는 소프트웨어 오라클 문제와 센서를 통해 감지된 데이터를 가져올 때 발생하는 하드웨어 오라클 문제로 구분된다. 이러한 오라클 문제를 해결하기 위해 미들웨어 형태로 외부 데이터를 안전하게 블록체인에 제공하는 Provable, Chainlink 등이 존재한다. 그러나 이러한 오라클 서비스들은 하드웨어의 보안부터 블록체인까지의 end to end 보안을 제공하지는 않는다.
한편, 키는 암호화 및 복호화 키가 동일한지 상이한 지에 따라 대칭키와 비대칭키로 나뉘어진다. 일반적으로 동일한 보안정도를 제공한다고 했을 때 대칭키를 통한 연산 속도가 빠르기 때문에 암호화 및 복호화에서 대칭키를 사용한다. 이러한 대칭키는 고정된 단일키를 사용하는 고정키 방식과 키가 주기적으로 변화하는 동적키 방식이 존재한다. 고정키 경우 키의 변화없이 사용하기에 해당 암호화 패턴이 지속적으로 노출되어 암호화된 데이터를 통해 키의 값을 역으로 계산할 가능성이 있다. 또한 키가 탈취당했을 경우 시스템의 보안이 무용지물이 된다. 반면, 동적키는 키가 일정 주기 마다 변화하므로 키의 값을 역추적하기 힘들고 키 탈취에도 강하다. 그러나 이는 키의 공유 범위와 주기에 따라 달라질 수 있다. 예를 들어 n개의 노드가 있을 때 전체에 공유된 동일한 Broadcast용 키와 n개의 노드가 자신을 제외한 각 노드와 Unicast 하기 위한 키를 비교한다면 Broadcast용 키의 탈취가 네트워크 전체에 영향이 가기에 더 치명적이다. 또한 주기가 길면 길수록 고정키와 흡사해지기에 적절한 키 재생성 주기를 필요로 하게 된다.
키 생성 방식은 순수 난수 기반의 키 생성 방식과 의사 난수 기반의 키 생성 방식이 있다. 순수 난수는 비결정적 특성을 지닌 자연적 현상을 바이너리로 변환하는 방법을 사용하여 생성되는 난수로서, 이를 생성하기 위하여 TRNG(True Random number Generator)를 탑재한 칩이 추가적으로 필요하며, 물리적 현상을 기반으로 하기 때문에 추출 당시의 환경과 기법에 따라 난수 추출에 어려움이 생길 수 있으며 비용측면에서 상용화가 어렵다는 단점이 있다. 의사 난수는 소프트웨어에서 수학적 알고리즘을 통해 생성되는 난수로서, 초기값에 따라 일정 패턴이 반복되어 생성된다. 따라서, 의사 난수를 통해 안전한 키를 생성하기 위하여 의사 난수 생성 함수 또는 의사 난수 함수를 반복적으로 사용하여 의사 난수가 일정한 패턴으로 생성되지 않도록 해야 한다.
한국등록특허공보 10-2023101호 한국공개특허공보 제 10-2018-0069856호
전술한 문제점을 해결하기 위한 본 발명은 동적키를 사용하되 보안을 위해 Master와 각 Slave가 일대일로 공유하고 있는 링크키를 제공할 수 있도록 구성된 블록체인을 기반으로 한 센서 네트워크 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 센서 네트워크 시스템에서 하드웨어 오라클 문제를 해결할 수 있도록 하는 동적 링크키 생성 방법을 제공하는 것을 다른 목적으로 한다.
전술한 기술적 과제를 달성하기 위한 본 발명의 제1 특징에 따른 센서 네트워크 시스템은, 복수 개의 노드들을 구비하여 블록체인을 기반으로 한 센서 네트워크 시스템에 관한 것으로서, 상기 노드들 중 단일의 마스터(Master)와 복수 개의 슬레이브(Slave)들을 설정하고, 상기 슬레이브들 중 일부는 중요 슬레이브(Critical Slave)로 설정하고, 상기 마스터와 중요 슬레이브는 일대일로 공유하고 있는 동적 링크키를 각각 구비하는 것을 특징으로 하며,
상기 노드들 중 중요 슬레이브로 설정된 노드는, 상기 마스터로부터 키 생성 요청을 받으면, 센서를 이용하여 외부 환경에 대한 데이터를 감지하고, 상기 감지된 데이터와 동적 링크키를 입력값으로 하여 제1 키 생성 함수를 이용하여 새로운 동적 링크키를 생성하고, 상기 데이터와 동적 링크키를 이용하여 해쉬 기반의 메시지 인증 코드를 생성하고, 상기 데이터를 암호화하며, 상기 메시지 인증 코드와 상기 암호화된 데이터를 포함하는 확인 응답 메시지를 마스터에게 제공한다.
전술한 제1 특징에 따른 블록체인을 기반으로 한 센서 네트워크 시스템에 있어서, 상기 마스터는, 사전 설정된 키 생성 주기가 도래하면 상기 Critical Slave에게 키 생성을 요청하고, 상기 키 생성 요청에 따라 상기 Critical Slave로부터 확인 응답 메시지를 수신하면, 확인 응답 메시지에 포함된 암호화된 데이터를 복호화시키고, 복호화된 데이터와 동적 링크키를 이용하여 메시지 인증 코드를 생성하고, 상기 생성한 메시지 인증 코드와 상기 확인 응답 메시지에 포함된 메시지 인증 코드를 비교하여, 서로 일치하면 상기 데이터와 동적 링크키를 이용하여 제2 키 생성 함수를 통해 새로운 동적 링크키를 생성하는 것이 바람직하다.
전술한 제1 특징에 따른 블록체인을 기반으로 한 센서 네트워크 시스템에 있어서, 상기 중요 슬레이브(Critical Slave)는, 센서를 구비하여 외부 환경에 대한 데이터를 감지하고, 감지된 데이터를 디지털 신호로 변환시켜 제공하는 센서 유닛; 및 상기 마스터로부터 키 생성 요청이 발생되면, 상기 센서 유닛으로부터 제공된 데이터와 동적 링크키를 이용하여 새로운 동적 링크키를 생성하고, 상기 데이터를 암호화하며, 상기 데이터를 이용하여 메시지 인증 코드를 생성하고, 상기 메시지 인증 코드와 상기 암호화된 데이터를 포함하는 확인 응답 메시지를 마스터에게 전송하는 프로세서 유닛;을 구비하는 것이 바람직하다.
전술한 제1 특징에 따른 블록체인을 기반으로 한 센서 네트워크 시스템에 있어서, 상기 제1 키 생성 함수는, 센서에 의해 외부 환경을 감지한 데이터와 동적 링크키를 입력받고, 의사 난수 생성 함수를 이용하여 의사 난수를 생성하고, 사전 설정된 개수의 바이트 배열을 생성하고 모두 0으로 초기화시킨 후 상기 의사 난수에 대응되는 바이트에 상기 센싱된 데이터를 저장하여 데이터 패딩하고, 데이터 패딩된 바이트 배열과 상기 동적 링크키를 블록 암호 기반의 메시지 인증 코드 생성 함수(CMAC)의 입력값으로 사용하여 새로운 동적 링크키를 생성하는 것이 바람직하다.
전술한 제1 특징에 따른 블록체인을 기반으로 한 센서 네트워크 시스템에 있어서, 상기 제2 키 생성 함수는, 확인 응답 메시지로부터 추출된 암호화된 데이터와 의사 난수를 복호화시켜 얻은 데이터와 의사 난수를 입력받고, 사전 설정된 개수의 바이트 배열을 생성하고 모두 0으로 초기화시킨 후 상기 의사 난수에 대응되는 바이트에 상기 센싱된 데이터를 저장하여 데이터 패딩하고, 데이터 패딩된 바이트 배열과 상기 동적 링크키를 블록 암호 기반의 메시지 인증 코드 생성 함수(CMAC)의 입력값으로 사용하여 새로운 동적 링크키를 생성하는 것이 바람직하다.
본 발명의 제2 특징에 따른 동적 링크키 생성 방법은, 단일의 마스터와 복수의 슬레이브를 구비하는 블록체인을 기반으로 한 센서 네트워크 시스템에서의 동적 링크키 생성 방법에 관한 것으로서, 상기 슬레이브가 상기 마스터로부터 키 생성 요청을 받는 단계; 상기 슬레이브가 센서를 이용하여 외부 환경에 대한 데이터를 감지하고, 상기 감지된 데이터와 동적 링크키를 입력값으로 하여 제1 키 생성 함수를 이용하여 새로운 동적 링크키를 생성하고, 의사 난수 생성 함수를 이용하여 의사 난수를 생성하고, 상기 데이터를 이용하여 메시지 인증 코드를 생성하고, 상기 데이터 및 상기 의사 난수를 암호화시킨 후, 상기 메시지 인증 코드와 상기 암호화된 데이터와 의사 난수를 포함하는 확인 응답 메시지를 생성하여 상기 마스터에게 제공하는 단계;를 구비한다.
전술한 제2 특징에 따른 동적 링크키 생성 방법에 있어서, 상기 슬레이브는, 상기 데이터와 링크키를 이용하여 메시지 인증 코드를 생성하고, 상기 제1 키 생성 함수는, 센서에 의해 외부 환경을 감지한 데이터와 동적 링크키를 입력받고, 의사 난수 생성 함수를 이용하여 의사 난수를 생성하고, 사전 설정된 개수의 바이트 배열을 생성하고 모두 0으로 초기화시킨 후 상기 의사 난수에 대응되는 바이트에 상기 센싱된 데이터를 저장하여 데이터 패딩하고, 데이터 패딩된 바이트 배열과 상기 동적 링크키를 블록 암호 기반의 메시지 인증 코드 생성 함수(CMAC)의 입력값으로 사용하여 새로운 동적 링크키를 생성하는 것이 바람직하다.
전술한 제2 특징에 따른 동적 링크키 생성 방법에 있어서, 상기 마스터가, 생성 주기가 도래하면 키 생성 요청을 슬레이브에게 요청하는 단계; 상기 마스터가, 상기 슬레이브로부터 확인 응답 메시지를 수신하면, 확인 응답 메시지에 포함된 암호화된 데이터와 의사 난수를 복호화시키고, 상기 복호화된 데이터, 의사 난수 및 동적 링크키를 이용하여 해쉬 기반의 메시지 인증 코드를 생성하고,
상기 확인 응답 메시지에 포함된 메시지 인증 코드와 마스터가 생성한 메시지 인증 코드를 비교하여 일치하면, 제2 키 생성 함수를 이용하여 새로운 동적 링크키를 생성하는 것이 바람직하다.
전술한 제2 특징에 따른 동적 링크키 생성 방법에 있어서, 상기 제2 키 생성 함수는, 복호화된 데이터와 의사 난수를 입력받고, 사전 설정된 개수의 바이트 배열을 생성하고 모두 0으로 초기화시킨 후 상기 의사 난수에 대응되는 바이트에 상기 입력된 데이터를 저장하여 데이터 패딩하고, 데이터 패딩된 바이트 배열과 동적 링크키를 블록 암호 기반의 메시지 인증 코드 생성 함수의 입력값으로 사용하여 새로운 동적 링크키를 생성하는 것이 바람직하다.
본 발명에 따른 시스템은 동적키를 사용하되 보안을 위해 Master와 각 Slave가 일대일로 공유하고 있는 동적 링크키를 생성하여 제공할 수 있게 된다.
또한, 본 발명에 따른 시스템에 따른 동적 링크키 생성 방법은, 낮은 에너지 소모와 키의 난수성을 보장하기 위하여 적은 연산으로 난수성을 만족할 수 있도록 한다. 이와 관련하여, 본 발명에 따른 키 생성 함수인
Figure 112019126306259-pat00001
와 NIST 키 유도 함수의 에너지 소모량을 비교하고 통계적 검정을 통해 난수적 특성을 만족하는지에 대해 실험적으로 살펴보았다. 여기서, NIST 키 유도 함수는 NIST(National Institute of Standards and Technology ; 미국 국립표준기술연구소)에서 제시하는 키 유도 함수이다.
먼저, 본 발명에 따른
Figure 112019126306259-pat00002
와 NIST 키 유도 함수의 실행시, SRAM 사용량을 살펴보았다. SRAM은 전역 변수용으로 예약된 공간인 Static data와 동적 할당을 위한 공간인 Heap, 지역 변수를 위한 공간인 Stack이 존재하고, 이 세가지 공간을 제외한 나머지 공간이 Free Memory가 존재한다. 도 10의 (a)는 SRAM의 측정 구간에 대한 구조이며, (b)는 본 발명에 따른 키 생성 함수와 NIST 키 유도 함수의 실행시의 Free memory를 측정하고 분석한 결과를 도시한 그래프이다.
본 발명에 따른
Figure 112019126306259-pat00003
와 NIST 키 유도 함수의 실행시의 Free Memory를 측정하고 분석한 결과는, 도 9에 도시된 바와 같이, Free memory가 각각 1422 bytes 와 1332 bytes로서, 본 발명에 따른 함수가 제한된 메모리를 보다 효율적으로 사용함을 알 수 있다.
한편, 본 발명에 따른 키 생성 함수인
Figure 112019126306259-pat00004
와 NIST 키 유도 함수의 EPI(Energy Per Instruction)을 측정하여 에너지 소모량을 살펴 보았다. EPI는 명령어 실행 당 에너지 소모를 나타내는 것으로서 에너지 단위인 줄을 명령어로 나눈 값이다. EPI 공식을 16MIPS(Million Instruction Per Second)의 아두이노에 적용시키면 아래의 수학식 1과 같다.
Figure 112019126306259-pat00005
본 발명에서
Figure 112019126306259-pat00006
와 NIST 키 유도 함수를 25000번 실행한 평균 오버 헤드를 측정하고 이를 MIPS를 통해 간접적으로 명령어를 산출한 뒤 EPI에 곱하여 총 에너지 소모량을 측정하면, 표 1과 같다.
Figure 112019126306259-pat00007
표 1을 통해, NIST 키 유도 함수는 본 발명에 따라 제안하는 방법에 비하여 약 13.7배의 에너지를 더 소모함을 알 수 있다. 본 발명에 따라 제안하는 방법은 PRNG와 PRF를 각각 한번씩 사용하여 연산량이 적기에 에너지 소모량이 낮지만 NIST 키 유도 함수는 PRF의 반복으로 수열을 만들어 내기 때문에 연산량이 높아, 이에 비례하여 에너지 소모량이 더 높다.
또한, 본 발명에 따른
Figure 112019126306259-pat00008
함수는 신뢰도 99%의 환경에서 난수적 특성을 만족한다.
도 1의 (a)는 I2C 아키텍처를 도시한 것이며, (b)는 I2C 메시지 포맷을 도시한 표이다.
도 2는 본 발명의 바람직한 실시예에 따른 블록체인을 기반으로 한 센서 네트워크 시스템을 전체적으로 도시한 구성도이다.
도 3은 본 발명의 바람직한 실시예에 따른 센서 네트워크 시스템에 있어서, 마스터와 슬레이브 간의 동적 링크키 생성 과정을 전체적으로 도시한 흐름도이다.
도 4는 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 마스터에 의해 수행되는 키 생성 요청 프로세스를 설명하는 알고리즘이다.
도 5는 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 키 생성 프로세스를 설명하는 알고리즘이다.
도 6은 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 슬레이브의 키 생성 함수인
Figure 112019126306259-pat00009
를 설명하는 알고리즘이며, 도 7은 키 생성 함수의
Figure 112019126306259-pat00010
에 대한 순서도이다.
도 8은, 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 데이터 패딩된 16 바이트 배열을 예시적으로 도시한 것이다.
도 9는 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 마스터의 키 생성 함수인
Figure 112019126306259-pat00011
를 설명하는 알고리즘이다.
도 10의 (a)는 SRAM의 측정 구간에 대한 구조이며, (b)는 본 발명에 따른 키 생성 함수와 NIST 키 유도 함수의 실행시의 Free memory를 측정하고 분석한 결과를 도시한 그래프이다.
본 발명에 따른 블록체인을 기반으로 한 센서 네트워크 시스템은, 센서 네트워크를 구성하는 센서들이 감지한 데이터들에 대하여 동적 링크키를 생성하고, 생성된 동적 링크키를 이용하여 감지 데이터들을 암호화하여 블록체인에 저장함으로써, 하드웨어 오라클 문제를 해결할 수 있도록 한 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 따른 블록체인을 기반으로 한 센서 네트워크 시스템의 구조 및 동작에 대하여 구체적으로 설명한다.
도 2는 본 발명의 바람직한 실시예에 따른 블록체인을 기반으로 한 센서 네트워크 시스템을 전체적으로 도시한 구성도이다.
도 2를 참조하면, 본 발명에 따른 블록체인을 기반으로 한 센서 네트워크 시스템(1)은, 복수 개의 노드들을 구비하는 센서 네트워크(10), 오라클(20) 및 블록체인(30)을 구비한다. 상기 센서 네트워크의 센서들은 외부 세계(Observation field)의 데이터를 감지하고, 이를 동적 링크키를 기반으로 하여 암호화하여 상기 오라클(20)을 통해 상기 블록체인(30)에 기록한다. 블록체인(30)는 복수 개의 노드들을 구비하는 블록체인 네트워크의 각 노드들에 저장되는 원장으로서, 상기 센서 네트워크로부터 제공되는 데이터들이 사전 설정된 합의 알고리즘에 따라 블록으로 생성되어 블록체인에 기록된다. 상기 오라클은 센서 네트워크와 블록체인 네트워크의 사이에 배치되어, 상기 센서 네트워크의 센서 노드들이 송신하는 데이터들을 무결성을 보장하면서 상기 블록체인 네트워크로 전송하게 된다.
상기 센서 네트워크(10)는 복수 개의 노드들을 구비하고, 상기 노드들 중 하나는 마스터(Master)로 동작되며 나머지 노드들은 슬레이브(Slave)로 동작한다. 상기 센서 네트워크는 전처리 과정으로 중요 슬레이브(Critical Slave)를 선정하는 것과 키 생성 주기를 설정한다. 먼저, Critical Slave란 I2C bus에 연결되어 있는 slave들 중 동적 링크키 생성 알고리즘을 적용하고자 하는 Slave를 말한다. 상기 센서 네트워크를 구성하는 센서 노드에는 다수의 센서 유닛이 존재할 수 있는데, 그 중 데이터의 무결성이 필요한 센서 유닛을 critical slave로 선정한다. Critical Slave의 개수가 많아질수록 키 갱신 모듈에서 발생하는 에너지 소모가 선형적으로 증가하게 된다.
다음, 본 발명에 따른 센서 네트워크 시스템에 있어서, 키 생성 주기는 일종의 메시지 카운터를 통해 설정한다. 카운터는 0 에서부터 시작하며 사용자가 설정한 K값에 도달했을 때 키를 업데이트하고 카운터를 0으로 초기화한다. 키 생성 주기가 빠를수록 선형적으로 연산량이 증가하므로, 에너지 소모도 이에 비례해서 증가하게 되게, 그 결과 사용 환경에 따라 최적화가 필요하게 된다. 단, NIST 800-57에 권고 사항으로 규정되어 있는 최대 키 사용 기간을 준수하는 키 생성 주기를 설정해야 한다. 동적 링크키 생성 알고리즘에서 사용되는 키는 키 유도 키(Key Derivation key)로도 사용되기 때문에 최소한 1년마다 키를 갱신해야 한다.
상기 센서 네트워크를 구성하는 노드들 중 센서 노드(12)는 센서 유닛(100), 프로세서 유닛(110), 트랜시버 유닛(120) 및 전력 유닛(130)을 구비한다. 상기 전력 유닛(130)은 센서 유닛, 프로세서 유닛 및 트랜시버 유닛으로 구동 전원을 공급한다.
상기 센서 유닛(100)은 센서(102), ADC 모듈(104), 제1 키 갱신 모듈(106) 및 제1 제어 모듈(108)을 구비하며, 상기 제1 제어 모듈(108)의 동작 제어에 의해 상기 센서(102)가 사전 설정된 데이터를 감지하고, ADC 모듈에 의해 상기 감지된 데이터를 상기 디지털 정보로 변환시킨 후, 상기 프로세서 유닛으로 제공한다.
상기 프로세서 유닛(110)은 제2 제어 모듈(118) 및 제2 키 갱신 모듈(116)을 구비한다. 상기 센서 유닛(100)의 제1 키 갱신 모듈(106)과 상기 프로세서 유닛(110)의 제2 키 갱신 모듈(116)은 본 발명에 따른 동적 링크키 생성 알고리즘을 구현하는 프로그램이 설치되어 있다. 상기 동적 링크키 생성 알고리즘은 의사 난수 생성 함수를 포함하여 암호화 알고리즘과 메시지 인증 코드를 생성하는 코드 생성 알고리즘이 탑재되어 있다. 키 생성에 필요한 모든 연산은 제1 제어 모듈에서 처리되고, 생성된 키는 제1 제어 모듈에 존재하는 비휘발성 메모리인 EEPROM에 저장된다.
이하, 본 발명의 바람직한 실시예에 따른 센서 네트워크 시스템에 있어서, 하드웨어 오라클 문제를 해결하기 위한 센서 네트워크 시스템에서의 동적 링크키 생성 과정을 전체적으로 설명한다. 도 3은 본 발명의 바람직한 실시예에 따른 센서 네트워크 시스템에 있어서, 마스터와 슬레이브 간의 동적 링크키 생성 과정을 전체적으로 도시한 흐름도이다. 도 3을 참조하면, 먼저 마스터가 키 생성 주기가 도래함을 확인하고, 슬레이브에게 키 생성을 요청한다(단계 400 ~ 단계 420). 다음, 슬레이브는 새로운 동적 링크키를 생성하고 메시지 인증 코드와 암호화된 데이터 및 의사 난수를 포함하는 확인 응답 메시지를 마스터에게 전송하고(단계 430 ~ 단계 448), 확인 응답 메시지를 수신한 마스터는 검증 과정을 거쳐 새로운 동적 링크키를 생성하게 된다(단계 450 ~ 단계 470).
이하, 상기 센서 노드의 센서 유닛 및 프로세서 유닛에 의해 수행되는 키 생성 프로세스에 대하여 구체적으로 설명한다. 센서 네트워크를 구성하는 단일의 Master 와 Slave가 일대일로 공유하고 있는 동적 링크키 생성 프로세스로서, 설명의 편의상, 표 2와 같이 아래의 각 함수들을 먼저 정의한다.
Figure 112019126306259-pat00012
Figure 112019126306259-pat00013
Figure 112019126306259-pat00014
Figure 112019126306259-pat00015
Figure 112019126306259-pat00016
Figure 112019126306259-pat00017
Figure 112019126306259-pat00018
Figure 112019126306259-pat00019
Figure 112019126306259-pat00020
Figure 112019126306259-pat00021
Figure 112019126306259-pat00022
Figure 112019126306259-pat00023
Figure 112019126306259-pat00024
Figure 112019126306259-pat00025
Figure 112019126306259-pat00026
Figure 112019126306259-pat00027
Figure 112019126306259-pat00028
Figure 112019126306259-pat00029
Figure 112019126306259-pat00030
Figure 112019126306259-pat00031
Figure 112019126306259-pat00032
Figure 112019126306259-pat00033
Figure 112019126306259-pat00034
Figure 112019126306259-pat00035
Figure 112019126306259-pat00036
Figure 112019126306259-pat00037
Figure 112019126306259-pat00038
Figure 112019126306259-pat00039
Figure 112019126306259-pat00040
Figure 112019126306259-pat00041
Figure 112019126306259-pat00042
Figure 112019126306259-pat00043
먼저, 키 생성 요청 과정을 설명한다. 도 4는 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 마스터에 의해 수행되는 키 생성 요청 프로세스를 설명하는 알고리즘이다. 도 4를 참조하면, 키 생성 프로세스가 동작되기 위해서는 먼저 Master와 Critical Slaves는 초기에 동일한 링크키(
Figure 112019126306259-pat00044
)가 설정되어 각각 EEPROM에 저장되어 있으며(단계 400),
Figure 112019126306259-pat00045
값이 사용자가 지정한 k 값에 도달하여야 한다(단계 410). 시스템 제작시에 Master는 EEPROM으로부터 Critical Slave 집합 N에 대해 이전 실행했던
Figure 112019126306259-pat00046
Figure 112019126306259-pat00047
를 읽어온다. 이후 I2C 프로토콜에서 Master가
Figure 112019126306259-pat00048
에게 송수신 요청을 할 때 Start Condition이 발생하게 된다. 이 때마다 Master는 해당
Figure 112019126306259-pat00049
로 보내는 Start Condition에 따라
Figure 112019126306259-pat00050
를 1씩 증가시킨다. 만약,
Figure 112019126306259-pat00051
가 k 값에 도달하고 Stop Condition이 발생하면 해당
Figure 112019126306259-pat00052
로 키 생성 요청을 하게 된다(단계 420).
다음, 키 생성 과정을 설명한다. 도 5는 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 키 생성 프로세스를 설명하는 알고리즘이다. 도 5를 참조하면, 마스터로부터 키 생성 요청을 전달받은
Figure 112019126306259-pat00053
는 센서를 이용하여 키 생성의 재료가 되는 데이터를 외부 환경으로부터 센싱한다(단계 430). 이후, 현재 보유하고 있는
Figure 112019126306259-pat00054
와 이전에 센싱한 데이터를 통해
Figure 112019126306259-pat00055
로 새로운 링크키(
Figure 112019126306259-pat00056
) 를 생성하게 된다(단계 440). 그리고, 의사 난수 생성 함수를 이용하여 의사 난수(
Figure 112019126306259-pat00057
)를 생성한다(단계 442). 키 생성의 재료인 데이터와 의사 난수를 마스터에게 안전하게 보내기 위하여
Figure 112019126306259-pat00058
Figure 112019126306259-pat00059
를 사용하여 데이터와 의사 난수를 각각 암호화한다(단계 444). 다음, 해쉬 시반의 메시지 인증 코드 생성 함수인
Figure 112019126306259-pat00060
를 사용하여 메시지 인증 코드를 생성한다(단계 446). 여기서, 상기
Figure 112019126306259-pat00061
은 Master에게 전송하는 데이터의 무결성을 보장하면서 데이터가 인증된 Critical Slave로부터 왔는지 확인해주는 역할을 하고,
Figure 112019126306259-pat00062
Figure 112019126306259-pat00063
는 암호화를 통해 데이터의 기밀성을 보장한다. 다음, Master에게 상기 과정에서 생성된 해쉬 기반의 메시지 인증 코드와 암호화된 데이터 및 암호화된 의사 난수와 함께 키 생성이 완료되었다는 확인 응답 메시지를 보낸다(단계 448).
Master는
Figure 112019126306259-pat00064
로부터 확인 응답 메시지를 받으면, 상기 확인 응답 메시지에 포함된 암호화된 데이터와 암호화된 의사 난수를 복호화하고(단계 450), 복호화된 데이터와 의사 난수를 이용하여 해쉬 기반의 메시지 인증 코드 생성 함수인
Figure 112019126306259-pat00065
를 사용하여 해쉬 기반의 메시지 인증 코드를 생성한다(단계 460). 전달받은 해쉬 기반의 메시지 인증 코드와 Master가 생성한 해쉬 기반의 메시지 인증 코드의 값이 같다면(단계 462),
Figure 112019126306259-pat00066
를 통해 새로운 링크키(
Figure 112019126306259-pat00067
)를 생성하고
Figure 112019126306259-pat00068
를 초기화한다(단계 470).
전술한 키 생성 프로세스는 I2C 프로토콜의 특성상 통신 상황에서 1바이트마다 메시지 수신 여부를 Ack와 No Ack를 통해 전달받기 때문에 키 생성 요청이나 확인 응답에서 메시지 유실이 발생해도 메시지를 재전송함으로써 해결이 가능하다. 또한, Master-Slave의 구조의 I2C는 Master가 메시지 송수신의 권한을 가지고 있기 때문에 키 생성 요청을 받은 Critical Slave가 우선적으로 키를 생성한 뒤 Master가 키를 생성함으로써 키 불일치에 따른 문제가 발생하지 않는다.
다음, 낮은 에너지 소모와 난수적 요소를 가진 키 생성 알고리즘을 위하여, 2개의 제1 키 생성 함수인
Figure 112019126306259-pat00069
와 제2 키 생성 함수인
Figure 112019126306259-pat00070
에 대하여 구체적으로 설명한다.
도 6은 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 슬레이브의 제1 키 생성 함수인
Figure 112019126306259-pat00071
를 설명하는 알고리즘이며, 도 7은 제2 키 생성 함수의
Figure 112019126306259-pat00072
에 대한 순서도이다. 도 6 및 도 7을 참조하면, 본 발명에 따른 슬레이브의 제1 키 생성 함수는 온도, 습도, 빛, 소음 등 단순 센서값과 결정적 알고리즘인 PRNG(Pseudo Random Number Generator) PRF(Pseudo Random Function)의 조합을 통해 난수적 특성을 만족하는 키를 생성한다. 상기 제1 키 생성 함수는 새로운 동적 링크키를 생성하는 함수로서, 데이터 센싱 단계(단계 600), 의사 난수 생성 함수를 통해 숫자 생성 단계(단계 610), 데이터 패딩 단계(단계 620) 및 CMAC 단계(단계 630)를 포함한다.
먼저, 데이터 센싱 단계는, Critical Slave에서 임의의 센서를 통해 온도, 습도, 빛, 소음 등으로부터 데이터를 감지하고, 의사 난수 생성 함수를 통해 0 ~ 15 사이의 숫자 M을 출력하여 의사 난수로 사용한다. 다음, 상기 데이터를 CMAC의 입력값으로 활용하기 위하여 필요한 16 바이트 배열을 생성한다. 여기서, 상기 생성된 16 바이트 배열은 모두 0으로 초기화되고, 의사 난수 M을 16 바이트 배열의 인덱스로 활용하여 16 바이트 배열의 M번째 바이트에 해당하는 곳에 상기 데이터를 삽입한다. 도 8은, 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 데이터 패딩된 16 바이트 배열을 예시적으로 도시한 것이다. 도 8을 참조하면, 의사 난수 생성 함수에서 생성된 값이 7 이라면, 8번째 바이트에 데이터를 저장함으로써, 데이터 패딩을 완성한다.
이후, 패딩된 데이터를 링크키와 함께 블록 암호 기반의 메시지 인증 코드 생성 함수인 CMAC 입력값으로 활용하여 128 비트의 수열을 만들고, 이를 새로운 링크키(
Figure 112019126306259-pat00073
)로 활용한다.
전술한 과정은 의사 난수 생성 함수의 연산과 의사 난수 함수의 연산을 최대한 줄이고 센서를 통해 얻은 데이터를 시드값으로 활용하여 난수적 특성을 보완하는 형태를 지닌다.
이하, 마스터의 제2 키 생성 함수인
Figure 112019126306259-pat00074
에 대하여 구체적으로 설명한다.
Figure 112019126306259-pat00075
는 마스터가 링크키를 생성하는 함수로서, Critical Slave로부터 전달받은 확인 응답 메시지로부터 데이터와 의사 난수를 추출하여 입력값으로 활용하여 새로운 링크키(
Figure 112019126306259-pat00076
)를 생성하게 된다.
도 9는 본 발명의 바람직한 실시예에 따른 동적 링크키 생성 방법에 있어서, 마스터의 키 생성 함수인
Figure 112019126306259-pat00077
를 설명하는 알고리즘이다. 도 8을 참조하면, 본 발명에 따른 마스터의 제2 키 생성 함수는 키 생성 요청에 따라 Critical Slave로부터 확인 응답 메시지를 전달받으면, 확인 응답 메시지에 포함된 암호화된 데이터와 암호화된 의사 난수를 복호화시켜 데이터(
Figure 112019126306259-pat00078
)와 의사 난수(
Figure 112019126306259-pat00079
)를 구하고 사전 저장되어 있던 링크키(
Figure 112019126306259-pat00080
)를 이용하여 데이터 패딩하고, 패딩된 데이터(
Figure 112019126306259-pat00081
)와 링크키(
Figure 112019126306259-pat00082
)를 블록 암호 기반의 메시지 인증 코드 생성 함수인 CMAC 함수의 입력값으로 하여 새로운 링크키(
Figure 112019126306259-pat00083
)를 생성하게 된다.
이로써, Master와 Critical Slave는 동일한 링크키(
Figure 112019126306259-pat00084
)를 갖게 된다.
본 발명에 따른 키 생성 프로세스는 I2C 프로토콜의 특성상 통신 상황에서 1바이트마다 메시지 수신 여부를 Ack 와 No Ack를 통해 전달받기 때문에 키 생성 요청이나 확인 응답에서 메시지 유실이 발생해도 메시지를 재전송함으로써 해결이 가능하다. 또한, Master-Slave의 구조의 I2C는 Master가 메시지 송수신의 권한을 가지고 있기 때문에 키 생성 요청을 받은 Critical Slave가 우선적으로 키를 생성한 뒤 Master가 키를 생성함으로써 키 불일치에 따른 문제가 발생하지 않게 된다.
이상에서 본 발명에 대하여 그 바람직한 실시예를 중심으로 설명하였으나, 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 발명의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 그리고, 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
1 : 센서 네트워크 시스템
10 : 센서 네트워크
20 : 오라클
30 : 블록체인
12 : 센서 노드
100 : 센서 유닛
110 : 프로세서 유닛
120 : 트랜시버 유닛
130 : 전력 유닛

Claims (9)

  1. 복수 개의 노드들을 구비하여 블록체인을 기반으로 한 센서 네트워크 시스템에 있어서,
    상기 노드들 중 단일의 마스터(Master)와 복수 개의 슬레이브(Slave)들을 설정하고,
    상기 슬레이브들 중 일부는 중요 슬레이브(Critical Slave)로 설정하고,
    상기 마스터와 중요 슬레이브는 일대일로 공유하고 있는 동적 링크키를 각각 구비하는 것을 특징으로 하며,
    상기 노드들 중 중요 슬레이브로 설정된 노드는,
    상기 마스터로부터 키 생성 요청을 받으면, 센서를 이용하여 외부 환경에 대한 데이터를 감지하고, 상기 감지된 데이터와 동적 링크키를 입력값으로 하여 제1 키 생성 함수를 이용하여 새로운 동적 링크키를 생성하고, 상기 데이터와 동적 링크키를 이용하여 해쉬 기반의 메시지 인증 코드를 생성하고, 상기 데이터를 암호화하며, 상기 메시지 인증 코드와 상기 암호화된 데이터를 포함하는 확인 응답 메시지를 마스터에게 제공하는 것을 특징으로 하며,
    상기 제1 키 생성 함수는,
    센서에 의해 외부 환경을 감지한 데이터와 동적 링크키를 입력받고,
    의사 난수 생성 함수를 이용하여 의사 난수를 생성하고,
    사전 설정된 개수의 바이트 배열을 생성하고 모두 0으로 초기화시킨 후 상기 의사 난수에 대응되는 바이트에 상기 입력된 데이터를 저장하여 데이터 패딩하고,
    데이터 패딩된 바이트 배열과 상기 동적 링크키를 블록 암호 기반의 메시지 인증 코드 생성 함수(CMAC)의 입력값으로 사용하여 새로운 동적 링크키를 생성하는 것을 특징으로 하는 블록체인을 기반으로 한 센서 네트워크 시스템.
  2. 제1항에 있어서, 상기 마스터는,
    사전 설정된 키 생성 주기가 도래하면 상기 중요 슬레이브에게 키 생성을 요청하고,
    상기 키 생성 요청에 따라 상기 중요 슬레이브로부터 확인 응답 메시지를 수신하면,
    확인 응답 메시지에 포함된 암호화된 데이터를 복호화시키고,
    복호화된 데이터와 동적 링크키를 이용하여 메시지 인증 코드를 생성하고,
    상기 생성한 메시지 인증 코드와 상기 확인 응답 메시지에 포함된 메시지 인증 코드를 비교하여, 서로 일치하면 상기 데이터와 동적 링크키를 이용하여 제2 키 생성 함수를 통해 새로운 동적 링크키를 생성하는 것을 특징으로 하는 블록체인을 기반으로 한 센서 네트워크 시스템.
  3. 제1항에 있어서, 상기 중요 슬레이브는,
    센서를 구비하여 외부 환경에 대한 데이터를 감지하고, 감지된 데이터를 디지털 신호로 변환시켜 제공하는 센서 유닛; 및
    상기 마스터로부터 키 생성 요청이 발생되면, 상기 센서 유닛으로부터 제공된 데이터와 동적 링크키를 이용하여 새로운 동적 링크키를 생성하고, 상기 데이터를 암호화하며, 상기 데이터를 이용하여 메시지 인증 코드를 생성하고, 상기 메시지 인증 코드와 상기 암호화된 데이터를 포함하는 확인 응답 메시지를 마스터에게 전송하는 프로세서 유닛;
    을 구비하는 것을 특징으로 하는 블록체인을 기반으로 한 센서 네트워크 시스템.
  4. 삭제
  5. 제2항에 있어서, 상기 제2 키 생성 함수는,
    상기 확인 응답 메시지로부터 추출되어 복호화된 데이터와 의사 난수를 입력받고,
    사전 설정된 개수의 바이트 배열을 생성하고 모두 0으로 초기화시킨 후 상기 의사 난수에 대응되는 바이트에 상기 입력된 데이터를 저장하여 데이터 패딩하고,
    데이터 패딩된 바이트 배열과 상기 동적 링크키를 블록 암호 기반의 메시지 인증 코드 생성 함수(CMAC)의 입력값으로 사용하여 새로운 동적 링크키를 생성하는 것을 특징으로 하는 블록체인을 기반으로 한 센서 네트워크 시스템.
  6. 단일의 마스터와 복수의 슬레이브를 구비하는 블록체인을 기반으로 한 센서 네트워크 시스템에서의 동적 링크키 생성 방법에 있어서,
    상기 슬레이브가 상기 마스터로부터 키 생성 요청을 받는 단계;
    상기 슬레이브가 센서를 이용하여 외부 환경에 대한 데이터를 감지하고,
    상기 감지된 데이터와 동적 링크키를 입력값으로 하여 제1 키 생성 함수를 이용하여 새로운 동적 링크키를 생성하고,
    의사 난수 생성 함수를 이용하여 의사 난수를 생성하고, 상기 데이터를 이용하여 메시지 인증 코드를 생성하고, 상기 데이터 및 상기 의사 난수를 암호화시킨 후, 상기 메시지 인증 코드와 상기 암호화된 데이터와 의사 난수를 포함하는 확인 응답 메시지를 생성하여 상기 마스터에게 제공하는 단계;
    를 구비하고, 상기 제1 키 생성 함수는,
    센서에 의해 외부 환경을 감지한 데이터와 동적 링크키를 입력받고,
    의사 난수 생성 함수를 이용하여 의사 난수를 생성하고,
    사전 설정된 개수의 바이트 배열을 생성하고 모두 0으로 초기화시킨 후 상기 의사 난수에 대응되는 바이트에 상기 입력된 데이터를 저장하여 데이터 패딩하고,
    데이터 패딩된 바이트 배열과 상기 동적 링크키를 블록 암호 기반의 메시지 인증 코드 생성 함수(CMAC)의 입력값으로 사용하여 새로운 동적 링크키를 생성하는 것을 특징으로 하는 동적 링크키 생성 방법.
  7. 삭제
  8. 제6항에 있어서,
    상기 마스터가, 키 생성 주기가 도래하면 키 생성 요청을 슬레이브에게 요청하는 단계;
    상기 마스터가, 상기 슬레이브로부터 확인 응답 메시지를 수신하면,
    확인 응답 메시지에 포함된 암호화된 데이터와 의사 난수를 복호화시키고,
    상기 복호화된 데이터, 의사 난수 및 동적 링크키를 이용하여 해쉬 기반의 메시지 인증 코드를 생성하고,
    상기 확인 응답 메시지에 포함된 메시지 인증 코드와 마스터가 생성한 메시지 인증 코드를 비교하여 일치하면, 제2 키 생성 함수를 이용하여 새로운 동적 링크키를 생성하는 것을 특징으로 하는 동적 링크키 생성 방법.
  9. 제8항에 있어서, 상기 제2 키 생성 함수는,
    복호화된 데이터와 의사 난수를 입력받고,
    사전 설정된 개수의 바이트 배열을 생성하고 모두 0으로 초기화시킨 후 상기 의사 난수에 대응되는 바이트에 상기 입력된 데이터를 저장하여 데이터 패딩하고,
    데이터 패딩된 바이트 배열과 동적 링크키를 블록 암호 기반의 메시지 인증 코드 생성 함수의 입력값으로 사용하여 새로운 동적 링크키를 생성하는 것을 특징으로 하는 동적 링크키 생성 방법.

KR1020190161520A 2019-12-06 2019-12-06 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법 KR102364450B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190161520A KR102364450B1 (ko) 2019-12-06 2019-12-06 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190161520A KR102364450B1 (ko) 2019-12-06 2019-12-06 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법

Publications (2)

Publication Number Publication Date
KR20210071394A KR20210071394A (ko) 2021-06-16
KR102364450B1 true KR102364450B1 (ko) 2022-02-17

Family

ID=76602798

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190161520A KR102364450B1 (ko) 2019-12-06 2019-12-06 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법

Country Status (1)

Country Link
KR (1) KR102364450B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115002711A (zh) * 2022-06-02 2022-09-02 四川师范大学 基于5g通信的区块链智能传感器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009157048A1 (ja) * 2008-06-27 2009-12-30 独立行政法人情報通信研究機構 無線通信認証方法及び無線通信システムと無線センサ
US20130013723A1 (en) * 2010-08-12 2013-01-10 International Business Machines Corporation High availability management system for stateless components in a distributed master-slave component topology
US20180295516A1 (en) * 2015-12-10 2018-10-11 SZ DJI Technology Co., Ltd. Secure communication

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101662838B1 (ko) * 2008-10-10 2016-10-10 삼성전자주식회사 홈 네트워크에서 제어 포인트 장치가 피제어 장치의 보안을 설정하기 위한 시스템 및 방법
US10169591B2 (en) 2015-12-07 2019-01-01 Amazon Technologies, Inc. Chained security systems
KR102023101B1 (ko) 2018-12-20 2019-11-04 주식회사 엔퍼 원본 데이터의 위변조 방지 장치 및 그 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009157048A1 (ja) * 2008-06-27 2009-12-30 独立行政法人情報通信研究機構 無線通信認証方法及び無線通信システムと無線センサ
US20130013723A1 (en) * 2010-08-12 2013-01-10 International Business Machines Corporation High availability management system for stateless components in a distributed master-slave component topology
US20180295516A1 (en) * 2015-12-10 2018-10-11 SZ DJI Technology Co., Ltd. Secure communication

Also Published As

Publication number Publication date
KR20210071394A (ko) 2021-06-16

Similar Documents

Publication Publication Date Title
CN109429222B (zh) 一种对无线网络设备升级程序及通讯数据加密的方法
US11477017B2 (en) System and method for quantum-safe authentication, encryption, and decryption of information
CN106506440B (zh) 用于验证数据完整性的方法
US10757571B2 (en) Internet of things device
US20160006570A1 (en) Generating a key derived from a cryptographic key using a physically unclonable function
US7693286B2 (en) Method of delivering direct proof private keys in signed groups to devices using a distribution CD
EP3577642B1 (en) Methods and devices for protecting data
US20160366109A1 (en) Method and Apparatus for Validating a Transaction between a Plurality of Machines
EP3563516B1 (en) Pseudo-random generation of matrices for a computational fuzzy extractor and method for authentication
BR102018015221A2 (pt) Método para compartilhamento seguro de informações e sistema relacionado
US20120096278A1 (en) Authenticating Messages Using Cryptographic Algorithm Constants Supplied to a Storage-Constrained Target
JP2001514834A (ja) 安全決定性暗号鍵発生システムおよび方法
CN111082925B (zh) 基于aes算法和puf技术的嵌入式系统加密保护装置和方法
JP2011522469A (ja) 保護されたソフトウエアイメージを有する集積回路及びそのための方法
WO2006025952A2 (en) Method of delivering direct proof private keys to devices using a distribution cd
CN102014015B (zh) 智能密钥设备的自检方法
KR20180119201A (ko) 인증 시스템을 위한 전자 장치
CN111555872A (zh) 一种通信数据处理方法、装置、计算机系统及存储介质
CN109544747A (zh) 智能门锁的加密密钥更新方法、系统和计算机存储介质
JP5068361B2 (ja) 非対話型キー生成装置及び方法、並びにこれを用いた通信セキュリティー方法
CN102843232A (zh) 生成安全装置密钥
US11128455B2 (en) Data encryption method and system using device authentication key
CN109586898B (zh) 双系统通信密钥生成方法及计算机可读存储介质
KR102364450B1 (ko) 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법
Tillmanns et al. Firmware insider: Bluetooth randomness is mostly random

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant