KR20210022852A - Block chain-based iot management system using cryptographic module - Google Patents

Block chain-based iot management system using cryptographic module Download PDF

Info

Publication number
KR20210022852A
KR20210022852A KR1020190102102A KR20190102102A KR20210022852A KR 20210022852 A KR20210022852 A KR 20210022852A KR 1020190102102 A KR1020190102102 A KR 1020190102102A KR 20190102102 A KR20190102102 A KR 20190102102A KR 20210022852 A KR20210022852 A KR 20210022852A
Authority
KR
South Korea
Prior art keywords
module
client
data
member management
encryption
Prior art date
Application number
KR1020190102102A
Other languages
Korean (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 KR1020190102102A priority Critical patent/KR20210022852A/en
Publication of KR20210022852A publication Critical patent/KR20210022852A/en

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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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
    • 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
    • H04L2209/38

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)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

The present invention relates to an IoT management system and, more specifically, to an IoT management system based on blockchain using a cryptographic module. An objective of the present invention is to provide the IoT management system capable of improving data processing speed and preventing forgery and falsification of data. In the present invention, a cryptographic module is separated from a software-based blockchain network to generate an encryption key corresponding to client information and manage the generated encryption key, thereby preventing forgery and falsification of data from memory loss or external software attack. In addition, by extracting only the data within a preset range of the data sensed by the client module from IoT, the IoT management system can have the effect of improving the data processing speed by minimizing the amount of data transmitted to the blockchain and minimizing the size of the blockchain at the same time.

Description

암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템{BLOCK CHAIN-BASED IOT MANAGEMENT SYSTEM USING CRYPTOGRAPHIC MODULE}Blockchain-based IoT management system using cryptographic modules {BLOCK CHAIN-BASED IOT MANAGEMENT SYSTEM USING CRYPTOGRAPHIC MODULE}

본 발명은 사물인터넷 관리 시스템에 관한 것으로 보다 상세하게는, 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리시스템에 관한 것이다.The present invention relates to an IoT management system, and more particularly, to a blockchain-based IoT management system using an encryption module.

사물인터넷(Internet of Things; IOT)이란, 각종 사물에 센서 및 통신 기능을 내장하여 사물이 인터넷에 연결되는 독립 장치가 되도록 함으로써, 사물들이 외부 환경으로부터 취득한 데이터를 클라이언트에게 제공하거나 클라이언트가 사물을 원격으로 제어할 수 있도록 하는 기술을 의미한다. 예를 들어, 인터넷에 연결되어 독자적인 IP(Internet Protocol) 주소를 가진 센서가 센싱 값을 인터넷을 통해 중앙의 서버에 전송하면, 클라이언트는 서버에 접속하여 센싱 정보의 검색, 수집, 분석 및 가공과 같은 처리를 수행할 수 있다.Internet of Things (IOT) means that objects can be connected to the Internet by embedding sensors and communication functions in various objects, thereby providing data acquired from the external environment to the client or allowing the client to remotely control the object. It refers to a technology that allows you to control it. For example, if a sensor connected to the Internet and having its own IP (Internet Protocol) address transmits the sensing value to a central server through the Internet, the client accesses the server and detects, collects, analyzes, and processes sensing information. Treatment can be carried out.

또한, 사물인터넷은 의료, 교통, 제조 등 다양한 상업 분야에 적용되고 있으며, 본격적인 시장 활성화가 진행됨에 따라 그 개체수가 증가하고 있고, 사물인터넷의 개체수에 대응한 데이터의 양도 증가하고 있다.In addition, IoT is being applied to various commercial fields such as medical care, transportation, and manufacturing, and as the market revitalization progresses, the number of the IoT is increasing, and the amount of data corresponding to the number of IoT is increasing.

그러나, 현재까지의 IOT 기술로는 사물이 센싱 값의 의미를 자체적으로 파악할 수 없으며, 센싱 정보의 처리를 위해서는 센싱 정보가 클라우드(Cloud) 서버와 같은 중앙의 서버에 집중 전송되어 처리는 되는 중앙화 데이터 처리만이 가능하여 중앙화 데이터 관리에 따른 보안문제가 대두되고 있다.However, with IOT technology up to now, objects cannot self-identify the meaning of sensing values, and for processing sensing information, sensing information is centrally transmitted to a central server such as a cloud server to be processed. Because only processing is possible, a security problem has emerged due to centralized data management.

중앙화 데이터 관리에 의한 상기 문제를 해결하기 위해 중앙 운영자에 의해 임의 조작이 불가능하도록 고안된 블록체인을 이용한 탈중앙화 사물인터넷 관리 시스템이 개발되고 있다. 그러나, 종래의 블록체인은 분산형 데이터 저장기술로써, 네트워크에 참여하는 클라이언트가 모든 데이터를 보유해야 하며, 데이터 처리를 위해 모든 클라이언트들이 데이터를 공유하고, 이를 대조해야 함으로써, 데이터양에 대응한 블록체인의 크기가 증가함에 따라 데이터 처리 속도가 느려지는 문제가 있다.In order to solve the above problem due to centralized data management, a decentralized IoT management system using a block chain designed to prevent arbitrary manipulation by a central operator is being developed. However, the conventional blockchain is a decentralized data storage technology, and clients participating in the network must hold all data, and all clients must share and collate data for data processing. As the size of the chain increases, there is a problem that the data processing speed is slowed down.

또한, 종래의 블록체인은 소프트웨어 기반의 프로세스 안에 클라이언트 인증을 위한 인증구성을 함께 구비하여 클라이언트의 인증을 수행함으로써, 클라이언트 정보가 저장되어 있는 메모리가 손실되거나 외부로부터 악의적으로 해킹될 경우, 악의자가 메모리에 저장되어 있던 클라이언트 정보를 이용하여 데이터를 위변조하는 문제가 있다.In addition, the conventional blockchain has an authentication configuration for client authentication in a software-based process and performs client authentication, so that if the memory in which the client information is stored is lost or if the memory is maliciously hacked from the outside, the malicious person There is a problem of falsifying data by using the client information stored in.

1. 한국등록특허 제10-1979586(2019.05.15. 등록)1. Korean Patent Registration No. 10-1979586 (registered on May 15, 2019) 2. 한국공개특허 제10-2018-0113786(2018.10.17. 공개)2. Korean Patent Publication No. 10-2018-0113786 (published on October 17, 2018)

본 발명은 상기의 문제점을 해결하기 위한 것으로, 데이터 처리 속도를 개선하고, 데이터의 위변조를 방지할 수 있는 사물인터넷 관리 시스템을 제공하는 것을 목적으로 한다.The present invention has been made to solve the above problems, and an object of the present invention is to provide an IoT management system capable of improving data processing speed and preventing forgery and alteration of data.

상기와 같은 목적을 달성하기 위한 본 발명의 바람직한 일 실시예에 따른 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템은 적어도 하나 이상의 사물인터넷으로부터 센싱되는 데이터를 수신하며, 수신된 데이터 중 기 설정된 범위 내의 데이터를 추출하는 클라이언트 모듈, 상기 클라이언트 모듈을 기 설정된 인증방식으로 인증하며, 인증된 상기 클라이언트 모듈에 한하여 블록체인 네트워크의 접근을 허용하는 멤버관리모듈, 상기 멤버관리모듈로부터 클라이언트의 정보를 수신하며, 수신된 상기 클라이언트 정보에 대응한 암호키를 생성하는 암호모듈 및 상기 멤버관리모듈을 통해 인증된 상기 클라이언트 모듈로부터 데이터를 수신하며, 수신된 데이터에 대응한 블록을 생성하고, 생성된 블록의 유효성 검증을 통해 합의된 블록만을 체인에 연결하는 블록체인을 포함하는 것을 특징으로 한다.A blockchain-based IoT management system using an encryption module according to a preferred embodiment of the present invention for achieving the above object receives data sensed from at least one IoT, and a preset range among the received data. A client module that extracts data from within, a member management module that authenticates the client module with a preset authentication method, and allows access to the blockchain network only to the authenticated client module, and receives client information from the member management module. , An encryption module that generates an encryption key corresponding to the received client information, and receives data from the client module authenticated through the member management module, generates a block corresponding to the received data, and validates the generated block It is characterized by including a blockchain that connects only the blocks agreed upon through verification to the chain.

또한, 상기 멤버관리모듈은 인증된 상기 클라이언트 모듈에 한하여 블록체인 네트워크의 접근을 허용하되, 상기 클라이언트 모듈의 권한에 대응해 상기 클라이언트 모듈과 엑세스되는 것을 특징으로 한다.In addition, the member management module allows access to the blockchain network only to the authenticated client module, and is characterized in that the client module is accessed in response to the authority of the client module.

또한, 상기 암호모듈은 상기 클라이언트 정보에 대응한 암호키를 생성하되, 공개키는 상기 멤버관리모듈에 전송하는 것을 특징으로 한다.In addition, the encryption module generates an encryption key corresponding to the client information, and transmits the public key to the member management module.

또한, 상기 암호모듈은 상기 클라이언트 정보에 대응한 암호키를 생성하되, 비밀키는 저장부에 저장하여 관리하는 것을 특징으로 한다.In addition, the encryption module generates an encryption key corresponding to the client information, but the secret key is stored and managed in a storage unit.

이상에서 설명한 바와 같이, 본 발명은 암호모듈이 소프트웨어 기반으로 형성된 블록체인 네트워크와 분리되어 클라이언트 정보에 대응한 암호키를 생성하고, 생성된 암호키를 관리함으로써, 메모리 손실이나 외부 소프트웨어 공격으로부터 데이터의 위변조를 방지할 수 있는 효과를 가질 수 있다.As described above, in the present invention, the encryption module is separated from the block chain network formed based on software, generates an encryption key corresponding to client information, and manages the generated encryption key, thereby preventing data from being lost from memory loss or external software attacks. It can have the effect of preventing forgery and alteration.

또한, 클라이언트 모듈이 사물인터넷으로부터 센싱된 데이터 중 기 설정된 범위 내의 데이터만을 추출함으로써, 블록체인에 전송되는 데이터의 양을 최소화함과 동시에 블록체인의 크기를 최소화하여 데이터 처리 속도를 개선할 수 있는 효과를 가질 수 있다.In addition, the client module extracts only data within a preset range among the data sensed from the IoT, thereby minimizing the amount of data transmitted to the blockchain and improving the data processing speed by minimizing the size of the blockchain. Can have.

도 1은 본 발명의 일 실시예에 따른 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템의 개략도이다.
도 2는 도 1의 클라이언트 모듈의 기능블록도이다.
도 3은 도 1의 멤버관리모듈의 기능블록도이다.
도 4는 도 1의 암호모듈의 기능블록도이다.
도 5는 도 1의 블록체인의 기능블록도이다.
도 6은 본 발명의 일 실시예에 따른 암호모듈과 연동된 멤버관리모듈의 멤버관리방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 블록체인과 연동된 멤버관리모듈의 데이터 처리방법을 설명하기 위한 흐름도이다.
1 is a schematic diagram of a blockchain-based IoT management system using an encryption module according to an embodiment of the present invention.
2 is a functional block diagram of the client module of FIG. 1.
3 is a functional block diagram of the member management module of FIG. 1.
4 is a functional block diagram of the cryptographic module of FIG. 1.
5 is a functional block diagram of the block chain of FIG. 1.
6 is a flowchart illustrating a member management method of a member management module interlocked with an encryption module according to an embodiment of the present invention.
7 is a flowchart illustrating a data processing method of a member management module interlocked with a block chain according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In the present invention, various modifications may be made and various embodiments may be provided, and specific embodiments will be illustrated in the drawings and will be described in detail in the detailed description. However, this is not intended to limit the present invention to a specific embodiment, it should be understood to include all changes, equivalents, or substitutes included in the spirit and scope of the present invention.

각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In describing each drawing, similar reference numerals have been used for similar elements. In describing the present invention, when it is determined that a detailed description of a related known technology may obscure the subject matter of the present invention, a detailed description thereof will be omitted.

제 1, 제 2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.Terms such as first and second may be used to describe various constituent elements, but the constituent elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another component.

예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다.For example, without departing from the scope of the present invention, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element.

및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The term and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items.

본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다.The terms used in the present application are only used to describe specific embodiments, and are not intended to limit the present invention.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present application, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Unless otherwise defined, all terms used herein including technical or scientific terms have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs.

일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in the present application. Does not.

이하, 도면을 참조하여 본 발명의 바람직한 일 실시 예에 따른 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템에 대하여 상세히 설명하기로 한다. 도 1은 본 발명의 일 실시예에 따른 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템의 개략도이다. 도 2는 도 1의 클라이언트 모듈의 기능블록도이다. 도 3은 도 1의 멤버관리모듈의 기능블록도이다. 도 4는 도 1의 암호모듈의 기능블록도이다. 도 5는 도 1의 블록체인의 기능블록도이다. 도 6은 본 발명의 일 실시예에 따른 암호모듈과 연동된 멤버관리모듈의 멤버관리방법을 설명하기 위한 흐름도이다. 도 7은 본 발명의 일 실시예에 따른 블록체인과 연동된 멤버관리모듈의 데이터 처리방법을 설명하기 위한 흐름도이다. 이하에서 종래 주지된 사항에 대한 설명은 본 발명의 요지를 명확히 하기 위해 생략하거나 간단히 한다.Hereinafter, a block chain-based IoT management system using an encryption module according to a preferred embodiment of the present invention will be described in detail with reference to the drawings. 1 is a schematic diagram of a blockchain-based IoT management system using an encryption module according to an embodiment of the present invention. 2 is a functional block diagram of the client module of FIG. 1. 3 is a functional block diagram of the member management module of FIG. 1. 4 is a functional block diagram of the cryptographic module of FIG. 1. 5 is a functional block diagram of the block chain of FIG. 1. 6 is a flowchart illustrating a member management method of a member management module interlocked with an encryption module according to an embodiment of the present invention. 7 is a flowchart illustrating a data processing method of a member management module interlocked with a block chain according to an embodiment of the present invention. Hereinafter, descriptions of conventionally known matters are omitted or simplified to clarify the gist of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템(1)은 인증된 클라이언트 모듈에 한하여, 블록체인 네트워크의 접근을 허용하고, 정의된 클라이언트 모듈의 권한에 따라 사물인터넷으로부터 센싱되는 데이터를 처리함으로써, 사물인터넷을 효율적으로 관리할 수 있는 새로운 방법을 제공할 수 있다. 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템(1)은 클라이언트 모듈(100), 멤버관리모듈(200), 암호모듈(300) 및 블록체인(400)을 포함할 수 있다.Referring to FIG. 1, a blockchain-based IoT management system 1 using an encryption module according to an embodiment of the present invention allows access to a blockchain network only for authenticated client modules, and a defined client module It is possible to provide a new method for efficiently managing the IoT by processing data sensed from the IoT according to the authority of. The blockchain-based IoT management system 1 using a cryptographic module may include a client module 100, a member management module 200, a cryptographic module 300, and a block chain 400.

클라이언트 모듈(100)은 적어도 하나 이상의 사물인터넷(10)으로부터 센싱되는 데이터를 수신할 수 있으며, 수신된 데이터 중 기 설정된 범위 내의 데이터만을 추출할 수 있다. 여기서, 기 설정된 범위 내의 데이터는 사물인터넷(10)을 관리하기 위한 최소 필수 데이터가 될 수 있으며, 예를 들어, 사물인터넷(10)의 에너지 최적화에 필요한 데이터일 수 있다.The client module 100 may receive data sensed from at least one or more IoT devices 10, and may extract only data within a preset range from among the received data. Here, the data within the preset range may be the minimum essential data for managing the IoT 10, for example, may be data required for energy optimization of the IoT 10.

사물인터넷(10)은 자체의 통신 기능이 구비된 임의의 장치일 수 있으며, 예를 들어, 사물인터넷(10)은 건물에 설치되어 실외 또는 실내 환경을 측정하는 날씨 센서, 재실 센서 또는 전기설비 센서 등과 같은 환경 측정 센서가 될 수 있다.The IoT 10 may be an arbitrary device equipped with its own communication function. For example, the IoT 10 is a weather sensor, occupancy sensor, or electric facility sensor installed in a building to measure the outdoor or indoor environment. It can be an environmental measurement sensor such as, etc.

또한, 사물인터넷(10)은 실내 환경 조절 등 제어에 의해 에너지를 소모하는 공기조절장치, 조명장치 또는 차양 장치 등과 같은 에너지 소모 장치가 될 수 있다.In addition, the IoT 10 may be an energy consuming device such as an air conditioning device, a lighting device, or a awning device that consumes energy through control such as indoor environment control.

또한, 사물인터넷(10)은 실내 환경 조절 등 제어에 의해 에너지를 발생시키는 발전 장치, 에너지 저장 시스템(Energy Storage System; ESS) 등과 같은 에너지 발생 장치가 될 수 있다.In addition, the IoT 10 may be an energy generating device such as a power generation device or an energy storage system (ESS) that generates energy through control such as indoor environment control.

본 명세서에서, 사물인터넷(10)은 에너지의 소모 또는 생산에 의하여 건물의 에너지 환경에 영향을 미치면서 통신 기능을 구비한 임의의 장치로 설명된다. 그러나, 본 발명의 실시예에 따른 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템(1)이 적용될 수 있는 사물인터넷(10)은 일반 가정에서 사용되는 개인용 장비 또는 스마트 팩토리(Smart Factory) 등에 사용되는 산업용 장비일 수 있고, 전술한 예시에 의하여 한정되지 않는다.In this specification, the IoT 10 is described as an arbitrary device having a communication function while affecting the energy environment of a building by consumption or production of energy. However, the IoT 10 to which the blockchain-based IoT management system 1 using the cryptographic module according to the embodiment of the present invention can be applied is used for personal equipment or smart factory used in general homes. It may be industrial equipment, and is not limited by the above-described example.

도 2를 참조하면, 클라이언트 모듈(100)은 데이터 수신부(110), 데이터 추출부(120) 및 제어부(130)를 포함할 수 있다.Referring to FIG. 2, the client module 100 may include a data receiving unit 110, a data extracting unit 120, and a control unit 130.

데이터 수신부(110)는 적어도 하나 이상의 사물인터넷(10)으로부터 환경 정보 및 사물인터넷(10)의 동작 정보 중 하나 이상을 수신할 수 있다. 여기서, 동작 정보는 사물인터넷(10)의 에너지 생산량 정보 또는 에너지 소모량 정보 등이 될 수 있으며, 데이터 수신을 위하여, 데이터 수신부(110)는 유선 또는 무선 방식 중 적어도 하나 이상의 방식을 이용하여 사물인터넷(10)과 통신 가능하게 연결될 수 있다. 데이터 수신부(110)와 사물인터넷(10) 사이의 통신은 3GPP(3rd Generation Partnership Project) 통신, LTE(Long Term Evolution) 통신, WIMAX(World Interoperability for Microwave Access) 통신, 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), 블루투스(Bluetooth) 통신, 위성 방송 통신, 아날로그 통신, DMB(Digital Multimedia Broadcasting) 통신, WiFi, V2V, V2I, V2X, DSRC 등이 포함되나 이에 한정되지는 않는다.The data receiving unit 110 may receive one or more of environment information and operation information of the IoT 10 from at least one IoT 10. Here, the operation information may be energy production amount information or energy consumption information of the IoT 10, and for data reception, the data receiving unit 110 uses at least one of a wired or wireless method. 10) can be connected to enable communication. Communication between the data receiver 110 and the Internet of Things 10 is 3GPP (3rd Generation Partnership Project) communication, LTE (Long Term Evolution) communication, WIMAX (World Interoperability for Microwave Access) communication, Internet, LAN (Local Area Network), Wireless LAN (Wireless Local Area Network), WAN (Wide Area Network), PAN (Personal Area Network), Bluetooth communication, satellite broadcasting communication, analog communication, Digital Multimedia Broadcasting (DMB) communication, WiFi, V2V, V2I, V2X, DSRC, and the like are included, but are not limited thereto.

데이터 추출부(120)는 적어도 하나 이상의 사물인터넷(10)으로부터 수신된 데이터 중 사물인터넷(10)의 관리를 위한 최소 필수 데이터 즉, 기 설정된 범위 내의 데이터만을 추출할 수 있다. 여기서, 기 설정된 범위 내의 데이터는 클라이언트에 의해 정의될 수 있으며, 사물인터넷(10)이 설치된 환경 및 클라이언트의 경험에 의해 실험적으로 가변 될 수 있다. 이때, 클라이언트는 제어부(130)를 통해 명령신호 즉, 추출할 최소 필수 데이터에 대한 요청을 데이터 추출부(120)에 전송하고, 데이터 추출부(120)는 제어부(130)를 통해 전송된 클라이언트의 요청에 기초하여 기 설정된 범위 내의 최소 필수정보를 추출할 수 있다.The data extracting unit 120 may extract only the minimum essential data for management of the IoT 10, that is, only data within a preset range from among data received from the at least one IoT Internet 10. Here, data within a preset range may be defined by the client, and may be experimentally varied depending on the environment in which the IoT 10 is installed and the experience of the client. At this time, the client transmits a command signal, that is, a request for the minimum essential data to be extracted, to the data extraction unit 120 through the control unit 130, and the data extraction unit 120 Based on the request, the minimum essential information within a preset range can be extracted.

제어부(130)는 클라이언트로부터 기본정보 및 명령신호를 수신할 수 있으며, 수신된 기본정보 및 명령신호에 대응하여 사물인터넷(10)의 동작을 제어함과 동시에 블록체인 네트워크(1000)에 참여하기 위한 동작을 할 수 있다. 즉, 제어부(130)는 클라이언트로부터 이름, 소속, IP(Internet Protocol) 등과 같은 기본정보를 수신하고, 명령신호에 대응하여 블록체인 네트워크(1000)에 참여하기 위한 멤버 등록요청, 접근 요청과 같은 동작을 수행할 수 있다. 여기서, 기본정보는 클라이언트의 이름, 소속, IP(Internet Protocol) 등으로 설명하고 있으나, 멤버관리모듈(200)이 클라이언트를 인식하고, 정의하기 위한 정보이면 한정하지 않는다. 명령신호는 클라이언트가 클라이언트 모듈(100)을 통해 블록체인 네트워크(1000)에 참여하기 위한 신호가 될 수 있으며, 사물인터넷(10)의 관리를 위한 신호 즉, 사물인터넷(10)의 에너지 최적화에 필요한 요청 신호가 될 수 있다.The controller 130 may receive basic information and command signals from the client, and control the operation of the Internet of Things 10 in response to the received basic information and command signals, and to participate in the blockchain network 1000 at the same time. It can be operated. That is, the control unit 130 receives basic information such as name, affiliation, and IP (Internet Protocol) from the client, and operates such as member registration request and access request to participate in the blockchain network 1000 in response to a command signal. You can do it. Here, the basic information is described in terms of the client's name, affiliation, and IP (Internet Protocol), but the member management module 200 is not limited as long as it is information for recognizing and defining the client. The command signal may be a signal for the client to participate in the blockchain network 1000 through the client module 100, and a signal for management of the IoT 10, that is, a signal required for energy optimization of the IoT 10 Can be a request signal.

또한, 제어부(130)는 멤버관리모듈(200)로부터 멤버 등록요청에 대응한 멤버 ID를 수신할 수 있으며, 수신된 멤버 ID를 이용하여 멤버관리모듈(200)에 접근을 요청할 수 있다. 이때, 클라이언트 모듈(100)은 멤버관리모듈(200)이 멤버 ID를 인증하고, 정의된 클라이언트의 권한에 대응해 접근을 허용하는 것에 의해 멤버관리모듈(200)과 엑세스 되어 데이터를 전송할 수 있다.In addition, the control unit 130 may receive a member ID corresponding to the member registration request from the member management module 200, and may request access to the member management module 200 using the received member ID. At this time, the client module 100 may access the member management module 200 and transmit data by allowing the member management module 200 to authenticate the member ID and allow access in response to the defined client's authority.

도 3을 참조하면, 멤버관리모듈(200)은 클라이언트 모듈(100)을 기 설정된 인증방식으로 인증할 수 있으며, 인증된 클라이언트 모듈(100)에 한하여 블록체인 네트워크(1000)의 접근을 허용할 수 있다.Referring to FIG. 3, the member management module 200 may authenticate the client module 100 using a preset authentication method, and only the authenticated client module 100 may allow access to the blockchain network 1000. have.

또한, 멤버관리모듈(200)은 인증된 클라이언트 모듈(100)에 한하여 블록체인 네트워크(1000)의 접근을 허용하되, 클라이언트 모듈(100)의 권한에 대응해 클라이언트 모듈(100)과 엑세스 될 수 있다. 즉, 멤버관리모듈(200)은 클라이언트 모듈(100)로부터 클라이언트의 기본정보를 수신하여 클라이언트를 인식하고, 인식된 클라이언트의 엑세스 권한 등을 정의할 수 있으며, 기 설정된 인증방식으로 인증된 클라이언트 모듈(100)에 한하여 엑세스 권한에 대응한 블록체인 네트워크(1000)의 접근을 허용할 수 있다. 여기서, 엑세스 권한은 클라이언트의 역할 예를 들어, 독자, 작성자, 관리자 등에 대응한 권한이 될 수 있으며, 기 설정된 인증방식은 하기에 설명될 인증부(240)에 의해 설명될 수 있다.In addition, the member management module 200 allows access to the blockchain network 1000 only to the authenticated client module 100, but may be accessed with the client module 100 in response to the authority of the client module 100. . That is, the member management module 200 may recognize the client by receiving basic information of the client from the client module 100, and define the access rights of the recognized client, and the client module ( 100) can allow access to the blockchain network 1000 corresponding to the access right. Here, the access right may correspond to a role of the client, for example, a reader, an author, an administrator, and the like, and a preset authentication method may be described by the authentication unit 240 to be described below.

계속하여, 멤버관리모듈(200)은 클라이언트 모듈(100)로부터 수신된 기본정보 및 클라이언트의 권한 정보를 암호모듈(300)에 전송할 수 있다. 이때, 암호모듈(300)은 수신된 기본정보 및 클라이언트의 권한 정보에 대응한 암호키 즉, 공개키 및 비밀키를 생성할 수 있으며, 생성된 비밀키는 저장부(320)에 저장하고, 공개키는 멤버관리모듈(200)에 전송할 수 있다.Subsequently, the member management module 200 may transmit the basic information and the client's authority information received from the client module 100 to the encryption module 300. At this time, the encryption module 300 may generate an encryption key corresponding to the received basic information and the client's authority information, that is, a public key and a secret key, and the generated secret key is stored in the storage unit 320 and disclosed. The key may be transmitted to the member management module 200.

계속하여, 멤버관리모듈(200)은 암호모듈(300)로부터 수신된 공개키를 이용하여 클라이언트의 기본정보 및 클라이언트의 권한 정보를 암호화할 수 있으며, 암호화를 통해 멤버 ID를 생성하고, 생성된 멤버 ID를 클라이언트 모듈(100)에 전송할 수 있다. 이때, 클라이언트 모듈(100)은 멤버관리모듈(200)에 의해 블록체인 네트워크(1000)의 멤버가 될 수 있으며, 멤버관리모듈(200)을 통해 기 설정된 인증방식으로 인증되어 엑세스 권한에 따라 블록체인 네트워크(1000)에 접근하여 읽기, 쓰기, 관리 등의 행위를 할 수 있다.Subsequently, the member management module 200 can encrypt the basic information of the client and the authorization information of the client by using the public key received from the encryption module 300, and generates a member ID through encryption, and the created member The ID may be transmitted to the client module 100. At this time, the client module 100 may become a member of the blockchain network 1000 by the member management module 200, and is authenticated by a preset authentication method through the member management module 200 and is By accessing the network 1000, actions such as reading, writing, and management can be performed.

멤버관리모듈(200)은 인식부(210), 권한제어부(220), 멤버관리부(230) 및 인증부(240)를 포함할 수 있다.The member management module 200 may include a recognition unit 210, an authority control unit 220, a member management unit 230, and an authentication unit 240.

인식부(210)는 클라이언트 모듈(100)로부터 제공되는 클라이언트의 기본정보를 이용하여 클라이언트를 인식할 수 있으며, 인식된 클라이언트 기본정보를 권한제어부(220)에 제공할 수 있다.The recognition unit 210 may recognize the client using basic information of the client provided from the client module 100 and may provide the recognized basic information of the client to the authority control unit 220.

권한제어부(220)는 인식부(210)로부터 인식된 클라이언트를 정의할 수 있으며, 인식부(210)로부터 제공된 클라이언트 기본정보를 이용하여 블록체인 네트워크(1000)에 대한 클라이언트의 엑세스 권한 등을 정의할 수 있다. 여기서, 엑세스 권한은 클라이언트의 역할 예를 들어, 독자, 작성자, 관리자 등에 대한 권한이 될 수 있으며, 클라이언트의 소속에 대응하여 관련 블록체인 네트워크(1000) 채널에 대한 권한이 할당 될 수 있다.The authority control unit 220 may define a client recognized by the recognition unit 210, and use the basic client information provided from the recognition unit 210 to define the access rights of the client to the blockchain network 1000. I can. Here, the access authority may be the authority of the client's role, for example, a reader, an author, an administrator, etc., and authority for a related blockchain network 1000 channel may be assigned according to the client's affiliation.

멤버관리부(230)는 클라이언트의 기본정보 및 권한 정보를 암호모듈(300)에 전송할 수 있으며, 암호모듈(300)로부터 생성된 공개키를 제공받아 클라이언트의 기본정보 및 권한 정보를 암호화 함과 동시에 멤버 ID를 생성하고, 생성된 멤버 ID를 클라이언트 모듈(100)에 전송할 수 있다. 즉, 멤버관리부(230)는 암호모듈(300)에 암호키 생성 요청을 함과 동시에 인식부(210)로부터 인식된 클라이언트의 기본 정보 및 권한제어부(220)로부터 정의된 클라이언트의 권한 정보를 암호모듈(300)에 전송할 수 있으며, 이에 대응해 암호모듈(300)로부터 생성되는 암호키 즉, 공개키 및 비밀키 중 공개키만을 수신하여 클라이언트의 기본 정보 및 클라이언트의 권한 정보를 암호화함과 동시에 멤버 ID를 생성하여 클라이언트 모듈(100)을 멤버로 등록할 수 있다.The member management unit 230 may transmit basic information and authority information of the client to the cryptographic module 300, and receive the public key generated from the cryptographic module 300 to encrypt the basic information and authority information of the client and at the same time as a member An ID may be generated and the generated member ID may be transmitted to the client module 100. That is, the member management unit 230 requests the encryption module 300 to generate an encryption key, and at the same time, the basic information of the client recognized from the recognition unit 210 and the rights information of the client defined by the authorization control unit 220 are stored in the encryption module. It can be transmitted to 300, and in response to this, by receiving only the public key of the encryption key generated from the encryption module 300, that is, the public key and the private key, the basic information of the client and the authorization information of the client are encrypted, and the member ID You can register the client module 100 as a member by creating.

인증부(240)는 클라이언트 모듈(100)로부터 제공되는 클라이언트 모듈(100)의 멤버 ID를 인식할 수 있으며, 인식된 멤버 ID를 암호모듈(300)에 전송하고, 암호모듈(300)에 의해 복호화된 멤버 ID에 대응한 클라이언트 정보를 수신하여 암호화 이전의 클라이언트 정보와 대조하는 것에 의해 멤버 ID를 인증할 수 있다. 즉, 인증부(240)는 암호모듈(300)로부터 수신된 공개키를 이용하여 암호화한 클라이언트 정보 및 암호모듈로(300)이 비밀키를 이용하여 복호화한 클라이언트 정보를 비교하여 매칭되는 것에 의해 멤버 ID를 인증할 수 있다. 여기서, 암호화는 공개키(특정의 비트열)를 이용하여 정보를 암호문으로 변환하는 것이 될 수 있고, 복호화는 비밀키를 이용하여 원래의 정보를 복원하는 것이 될 수 있다.The authentication unit 240 can recognize the member ID of the client module 100 provided from the client module 100, transmits the recognized member ID to the encryption module 300, and decrypts it by the encryption module 300 The member ID can be authenticated by receiving client information corresponding to the created member ID and matching it with the client information before encryption. That is, the authentication unit 240 compares and matches the client information encrypted using the public key received from the encryption module 300 and the client information decrypted by the encryption module 300 using the private key. ID can be authenticated. Here, encryption may be to convert information into a cipher text using a public key (a specific bit string), and decryption may be to restore original information using a secret key.

도 4를 참조하면, 암호모듈(300)은 멤버관리모듈(200)로부터 클라이언트 정보를 수신할 수 있으며, 수신된 클라이언트 정보에 대응한 암호키를 생성할 수 있다. 즉, 암호모듈(300)은 멤버관리모듈(200)로부터 클라이언트의 기본정보 및 권한 정보를 수신할 수 있으며, 수신된 클라이언트의 기본정보 및 권한 정보를 이용하여 암호키를 생성하고, 관리할 수 있다. 여기서, 암호키는 공개키 및 비밀키가 될 수 있다.Referring to FIG. 4, the encryption module 300 may receive client information from the member management module 200 and may generate an encryption key corresponding to the received client information. That is, the encryption module 300 may receive basic information and authority information of a client from the member management module 200, and may generate and manage an encryption key using the received basic information and authority information of the client. . Here, the encryption key may be a public key and a private key.

또한, 암호모듈(300)은 클라이언트 정보에 대응한 암호키를 생성하되, 공개키는 멤버관리모듈에 전송할 수 있다.In addition, the encryption module 300 generates an encryption key corresponding to the client information, but the public key may be transmitted to the member management module.

또한, 암호모듈(300)은 클라이언트 정보에 대응한 암호키를 생성하되, 비밀키는 저장부(320)에 저장하여 관리할 수 있다.In addition, the encryption module 300 generates an encryption key corresponding to the client information, but the secret key may be stored and managed in the storage unit 320.

또한, 암호모듈(300)은 소프트웨어를 기반으로 형성된 블록체인 네트워크(1000)와 분리되어 하드웨어를 기반으로 형성된 독립적인 장치가 될 수 있으며, 어플라이언스(Appliance)와 같은 정보 기기로 구현될 수 있다. 이에 따라, 멤버관리모듈(200)에 수신된 클라이언트 정보가 메모리 손실이나 외부 소프트웨어 공격에 의해 해킹되어도 기 설정된 인증방식을 수행하기 위한 암호키 즉, 암호화된 멤버 ID를 복원할 수 있는 비밀키가 멤버관리모듈(200)과 분리되어 관리되는 것에 의해 암호화된 멤버 ID를 복원할 수 없어 기 설정된 인증방식이 수행될 수 없으므로, 멤버관리모듈(200)의 메모리 손실이나 외부 소프트웨어 공격으로부터 데이터의 위변조를 방지할 수 있다. 여기서, 블록체인 네트워크(1000)는 멤버관리모듈(200) 및 블록체인(400)이 소프트웨어를 기반으로 형성된 프로세스가 될 수 있다.In addition, the cryptographic module 300 may be an independent device formed based on hardware by being separated from the block chain network 1000 formed based on software, and may be implemented as an information device such as an appliance. Accordingly, even if the client information received by the member management module 200 is hacked by memory loss or external software attack, an encryption key for performing a preset authentication method, that is, a secret key capable of restoring an encrypted member ID is a member Since the member ID encrypted by being managed separately from the management module 200 cannot be restored, the pre-set authentication method cannot be performed, thus preventing forgery of data from memory loss or external software attack of the member management module 200 can do. Here, the block chain network 1000 may be a process in which the member management module 200 and the block chain 400 are formed based on software.

암호모듈(300)은 암호키 생성부(310), 저장부(320) 및 인증지원부(330)를 포함할 수 있다.The encryption module 300 may include an encryption key generation unit 310, a storage unit 320, and an authentication support unit 330.

암호키 생성부(310)는 멤버관리모듈(200)로부터 클라이언트의 기본정보 및 권한 정보를 수신하여 클라이언트의 정보에 대응한 암호키를 생성할 수 있으며, 생성된 암호키 중 공개키를 멤버관리모듈(200)에 전송할 수 있다. 여기서, 암호키는 공개키 및 비밀키가 될 수 있다.The encryption key generation unit 310 may receive basic information and authority information of the client from the member management module 200 to generate an encryption key corresponding to the client's information, and the public key among the generated encryption keys is a member management module. It can be sent to 200. Here, the encryption key may be a public key and a private key.

저장부(320)는 암호키 생성부(310)로부터 생성된 암호키 중 비밀키를 저장할 수 있으며, 저장된 비밀키를 인증지원부(330)에 제공할 수 있다.The storage unit 320 may store a secret key among encryption keys generated by the encryption key generation unit 310, and may provide the stored secret key to the authentication support unit 330.

인증지원부(330)는 멤버관리모듈(200)의 기 설정된 인증방식을 지원할 수 있으며, 멤버관리모듈(200)로부터 멤버 ID를 수신하여 수신된 멤버 ID에 대응한 비밀키를 추출하고, 추출된 비밀키를 이용하여 암호화된 멤버 ID를 복호화하여 복원된 클라이언트 정보를 멤버관리모듈(200)에 전송할 수 있다.The authentication support unit 330 may support a preset authentication method of the member management module 200, receives a member ID from the member management module 200, extracts a secret key corresponding to the received member ID, and extracts the extracted secret. The member ID encrypted using the key may be decrypted and the restored client information may be transmitted to the member management module 200.

도 5를 참조하면, 블록체인(400)은 멤버관리모듈(200)을 통해 인증된 클라이언트 모듈(100)로부터 데이터를 수신할 수 있으며, 수신된 데이터에 대응하여 블록을 생성하고, 생성된 블록의 유효성 검증을 통해 합의된 블록만을 체인에 연결할 수 있다. 여기서, 데이터는 사물인터넷(10)을 관리하기 위한 최소 필수 데이터가 될 수 있으며, 예를 들어, 사물인터넷(10)의 에너지 최적화를 위한 트랜잭션이 될 수 있다. 블록체인(400)은 블록관리부(310), 합의부(320) 및 블록제어부(330)를 포함할 수 있다.5, the block chain 400 may receive data from the client module 100 authenticated through the member management module 200, generate a block in response to the received data, and Only consensus blocks can be connected to the chain through validation. Here, the data may be the minimum essential data for managing the IoT 10 and may be, for example, a transaction for energy optimization of the IoT 10. The block chain 400 may include a block management unit 310, an agreement unit 320 and a block control unit 330.

블록관리부(310)는 클라이언트 모듈(100)로부터 멤버관리모듈(200)을 통해 전송된 데이터를 수신할 수 있으며, 수신된 데이터를 이용하여 블록을 생성할 수 있다. 여기서, 블록은 임의의 크기를 갖는 데이터를 미리 결정된 크기를 갖는 데이터로 변환하는 해쉬 함수에 의해 생성될 수 있으며, 예를 들어, MD5, SHA1, SHA2 등 필요에 따라 선택한 해쉬 함수가 이용될 수 있으나, 이에 한정되지 않는다.The block management unit 310 may receive data transmitted from the client module 100 through the member management module 200 and may generate a block using the received data. Here, the block may be generated by a hash function that converts data having an arbitrary size into data having a predetermined size, and for example, a hash function selected as needed, such as MD5, SHA1, SHA2, etc., may be used. , Is not limited thereto.

합의부(320)는 블록관리부(310)로부터 생성된 블록의 유효성을 검증할 수 있으며, 유효성 검증을 통해 합의된 블록만을 블록제어부(330)에 제공할 수 있다. 여기서, 유효성 검증을 위한 합의 알고리즘은 블록 및 트랜잭션의 유효성 검증, 블록 및 트랜잭션의 순서 결정, 새로운 블록의 생성 중 적어도 하나 이상을 수행할 수 있도록 정의된 알고리즘일 수 있으며, 예를 들어, 작업 증명(Proof-of Work, POW) 알고리즘, 지분 증명(Proof-of-Stake, POS) 알고리즘, 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, PBFT) 알고리즘, 경과 시간 증명(Proof of Elapsed Time, PoET) 알고리즘 등이 이용될 수 있으나, 이에 한정되지 않는다.The consensus unit 320 may verify the validity of the block generated by the block management unit 310, and may provide only the consensus block to the block control unit 330 through the validity verification. Here, the consensus algorithm for validation may be an algorithm defined to perform at least one or more of validating blocks and transactions, determining the order of blocks and transactions, and creating new blocks. For example, proof of work ( Proof-of Work (POW) algorithm, Proof-of-Stake (POS) algorithm, Practical Byzantine Fault Tolerance (PBFT) algorithm, Proof of Elapsed Time (PoET) algorithm, etc. May be used, but is not limited thereto.

블록제어부(330)는 합의부(320)로부터 유효성 검증을 통해 합의된 블록을 수신할 수 있으며, 수신된 블록을 체인에 연결할 수 있다. 여기서, 각 블록들은 헤쉬 체인(Hash Chain)의 형태로 연결될 수 있다. 즉, n번째 블록은 n-1번째 블록의 해쉬 값을 저장한다. 이에 따라, 어느 한 블록의 정보의 변경은 해당 블록으로부터 산출한 해당 블록의 해쉬 값의 변경을 초래하고, 이는 그 다음 블록의 내용의 변경을 초래하기 때문에 체인에 연결된 블록의 데이터를 삭제하거나 변경하는 것을 불가능하여 체인에 연결된 블록의 데이터는 신뢰성이 보장될 수 있다.The block control unit 330 may receive the consensus block from the consensus unit 320 through validity verification, and may connect the received block to the chain. Here, each block may be connected in the form of a hash chain. That is, the nth block stores the hash value of the n-1th block. Accordingly, a change in the information of one block results in a change in the hash value of the block calculated from the block, which results in a change in the content of the next block. It is impossible to do so, so the reliability of the data in the blocks connected to the chain can be guaranteed.

도 6은 본 발명의 일 실시예에 따른 암호모듈과 연동된 멤버관리모듈의 멤버관리방법을 설명하기 위한 흐름도이다.6 is a flowchart illustrating a member management method of a member management module interlocked with an encryption module according to an embodiment of the present invention.

도 6을 참조하여 본 발명의 일 실시예에 따른 암호모듈과 연동된 멤버관리모듈의 멤버관리방법을 설명한다. 이하의 설명에 의해 앞서 설명된 구성이 보다 명확해질 수 있다.A member management method of a member management module interlocked with an encryption module according to an embodiment of the present invention will be described with reference to FIG. 6. The configuration described above may be more clearly defined by the following description.

멤버관리모듈(200)은 먼저, 클라이언트 모듈(100)로부터 멤버 등록요청을 받을 수 있다(S11). 여기서, 클라이언트 모듈(100)은 멤버 등록요청과 동시에 클라이언트의 이름, 소속, IP와 같은 기본정보를 전송할 수 있다.The member management module 200 may first receive a member registration request from the client module 100 (S11). Here, the client module 100 may transmit basic information such as a name, affiliation, and IP of the client at the same time as the member registration request.

계속하여, 멤버관리모듈(200)은 클라이언트 모듈(100)로부터 수신된 기본정보를 이용하여, 클라이언트를 인식할 수 있으며(S12), 인식된 클라이언트 기본정보를 이용하여 블록체인 네트워크(1000)에 대한 클라이언트를 정의할 수 있다(S13). 여기서, 클라이언트 정의는 블록체인 네트워크(1000)에 대한 클라이언트의 엑세스 권한 등이 될 수 있으며, 엑세스 권한은 클라이언트의 역할 예를 들어, 독자, 작성자, 관리자 등에 대한 권한이 될 수 있고, 클라이언트의 소속에 대응하여 관련 블록체인 네트워크(1000) 채널에 대한 권한이 할당될 수 있다.Subsequently, the member management module 200 can recognize the client using the basic information received from the client module 100 (S12), and use the recognized basic information of the client for the blockchain network 1000. A client can be defined (S13). Here, the client definition may be a client's access right to the blockchain network 1000, and the access right may be a role of the client, for example, a reader, author, administrator, etc., and belong to the client. Correspondingly, the authority for the related blockchain network 1000 channel may be assigned.

계속하여, 멤버관리모듈(200)은 암호모듈(300)에 암호키 생성 요청을 할 수 있다(S14). 여기서, 멤버관리모듈(200)은 암호키 생성 요청과 동시에 클라이언트의 기본정보 및 권한 정보를 전송할 수 있다.Subsequently, the member management module 200 may make a request to generate an encryption key to the encryption module 300 (S14). Here, the member management module 200 may transmit basic information and authority information of the client at the same time as the encryption key generation request.

암호모듈(300)은 멤버관리모듈(200)로부터 수신된 클라이언트의 기본정보 및 권한 정보에 대응하여 공개키를 생성할 수 있으며(S15), 비밀키를 생성할 수 있다(S16).The encryption module 300 may generate a public key corresponding to the basic information and authority information of the client received from the member management module 200 (S15), and may generate a secret key (S16).

계속하여, 암호모듈(300)은 생성된 비밀키를 저장부(320)에 저장할 수 있으며(S17), 공개키는 멤버관리모듈(200)에 전송할 수 있다(S18).Subsequently, the encryption module 300 may store the generated secret key in the storage unit 320 (S17), and the public key may be transmitted to the member management module 200 (S18).

멤버관리모듈(200)은 암호모듈(300)로부터 수신된 공개키를 이용하여 클라이언트의 기본정보 및 권한 정보를 암호화 할 수 있으며(S19), 암호화를 통해 클라이언트의 기본정보 및 권한 정보에 대응한 멤버 ID를 생성할 수 있다(S20).The member management module 200 can encrypt the basic information and authorization information of the client using the public key received from the encryption module 300 (S19), and the member corresponding to the basic information and authorization information of the client through encryption An ID can be generated (S20).

계속하여, 멤버관리모듈(200)은 생성된 멤버 ID를 이용하여 클라이언트 모듈(100)을 멤버로 등록할 수 있으며(S21), 생성된 멤버 ID를 클라이언트 모듈(100)에 전송할 수 있다(S22). 이때, 클라이언트 모듈(100)은 멤버관리모듈(200)에 의해 블록체인 멤버가 될 수 있으며, 멤버관리모듈(200)을 통해 기 설정된 인증방식으로 인증되어 엑세스 권한에 따라 블록체인 네트워크(1000)에 접근하여 읽기, 쓰기, 관리 등의 행위를 할 수 있다.Subsequently, the member management module 200 may register the client module 100 as a member using the generated member ID (S21), and may transmit the generated member ID to the client module 100 (S22). . At this time, the client module 100 may become a block chain member by the member management module 200, and is authenticated by a preset authentication method through the member management module 200, and is then connected to the block chain network 1000 according to access rights. You can access and read, write, manage, etc.

도 7은 본 발명의 일 실시예에 따른 블록체인과 연동된 멤버관리모듈의 데이터 처리방법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating a data processing method of a member management module interlocked with a block chain according to an embodiment of the present invention.

도 7을 참조하여 본 발명의 일 실시예에 따른 블록체인과 연동된 멤버관리모듈의 데이터 처리방법을 설명한다. 이하의 설명에 의해 앞서 설명된 구성이 보다 명확해질 수 있다.Referring to FIG. 7, a data processing method of a member management module linked with a block chain according to an embodiment of the present invention will be described. The configuration described above may be more clearly defined by the following description.

멤버관리모듈(200)은 먼저, 클라이언트 모듈(100)로부터 접근 요청을 받을 수 있다(S101). 여기서, 클라이언트 모듈(100)은 접근 요청과 동시에 멤버 ID를 전송할 수 있다.The member management module 200 may first receive an access request from the client module 100 (S101). Here, the client module 100 may transmit the member ID at the same time as the access request.

계속하여, 멤버관리모듈(200)은 클라이언트 모듈(100)로부터 수신된 멤버 ID를 이용하여 멤버 ID를 인식할 수 있으며(S102), 인식된 멤버 ID를 암호모듈(300)에 전송할 수 있다(S103).Subsequently, the member management module 200 may recognize the member ID using the member ID received from the client module 100 (S102), and transmit the recognized member ID to the encryption module 300 (S103). ).

암호모듈(300)은 멤버관리모듈(200)로부터 수신된 멤버 ID를 이용하여 멤버 ID에 대응한 비밀키를 추출할 수 있으며(S104), 추출된 비밀키를 이용하여 암호화된 멤버 ID를 복호화할 수 있다(S105). 여기서, 암호모듈(300)이 비밀키를 이용하여 멤버 ID를 복호화하는 것에 의해 클라이언트 정보를 복원할 수 있다.The encryption module 300 can extract the secret key corresponding to the member ID using the member ID received from the member management module 200 (S104), and decrypt the encrypted member ID using the extracted secret key. Can be (S105). Here, the encryption module 300 may restore the client information by decrypting the member ID using the secret key.

계속하여, 암호모듈(300)은 복원된 클라이언트 정보를 멤버관리모듈(200)에 전송할 수 있다(S106).Subsequently, the encryption module 300 may transmit the restored client information to the member management module 200 (S106).

멤버관리모듈(200)은 암호모듈(300)로부터 클라이언트 정보를 수신하여 암호화 이전의 클라이언트 정보와 대조하는 것에 의해 멤버 ID를 인증할 수 있다(S107).The member management module 200 may authenticate the member ID by receiving client information from the encryption module 300 and collating it with client information before encryption (S107).

계속하여, 멤버관리모듈(200)은 인증된 클라이언트 모듈(100)에 한하여, 블록체인 네트워크(1000)의 접근을 허용할 수 있으며(S108), 정의된 클라이언트 모듈(100)의 권한에 따라 클라이언트 모듈(100)과 엑세스 될 수 있다(S109). 여기서, 엑세스 권한은 클라이언트의 역할 예를 들어, 독자, 작성자, 관리자 등에 대한 권한이 될 수 있으며, 클라이언트의 소속에 대응하여 관련 블록체인 네트워크(1000) 채널에 대한 권한이 할당 될 수 있다.Subsequently, the member management module 200 may allow access to the blockchain network 1000 only to the authenticated client module 100 (S108), and the client module according to the authority of the defined client module 100 It can be accessed with (100) (S109). Here, the access authority may be the authority of the client's role, for example, a reader, an author, an administrator, etc., and authority for a related blockchain network 1000 channel may be assigned according to the client's affiliation.

클라이언트 모듈(100)은 멤버관리모듈(200)과 엑세스 되는 것에 의해 엑세스 권한에 따라 멤버관리모듈(200)을 통해 블록체인(400)에 데이터를 전송할 수 있다(S110).The client module 100 may transmit data to the block chain 400 through the member management module 200 according to access rights by being accessed with the member management module 200 (S110).

멤버관리모듈(200)은 클라이언트 모듈(100)로부터 데이터를 수신할 수 있으며, 클라이언트 모듈(100)의 권한 및 수신된 데이터에 대응하여 블록체인(400)에 블록 연결 요청을 할 수 있다(S111). 이에 따라, 클라이언트 모듈(100)은 엑세스 권한에 따라 블록체인 네트워크(1000)에 접근하여 읽기, 쓰기, 관리 등의 행위를 할 수 있다.The member management module 200 may receive data from the client module 100, and may make a block connection request to the block chain 400 in response to the authority of the client module 100 and the received data (S111). . Accordingly, the client module 100 may access the blockchain network 1000 according to the access authority and perform actions such as reading, writing, and management.

블록체인(400)은 멤버관리모듈(200)로부터 블록 연결 요청을 받을 수 있다(S111). 여기서, 멤버관리모듈(200)은 블록체인(400)에 블록 연결 요청을 함과 동시에 클라이언트 모듈(100)로부터 수신된 데이터를 전송할 수 있다.The block chain 400 may receive a block connection request from the member management module 200 (S111). Here, the member management module 200 may transmit the data received from the client module 100 while making a block connection request to the block chain 400.

계속하여, 블록체인(400)은 클라이언트 모듈(100)로부터 멤버관리모듈(200)을 통해 전송된 데이터를 이용하여 블록을 생성할 수 있다(S112). 여기서, 블록은 임의의 크기를 갖는 데이터를 미리 결정된 크기를 갖는 데이터로 변환하는 해쉬 함수에 의해 생성될 수 있으며, 예를 들어, MD5, SHA1, SHA2 등 필요에 따라 선택한 해쉬 함수가 이용될 수 있으나, 이에 한정되지 않는다.Subsequently, the block chain 400 may generate a block using data transmitted from the client module 100 through the member management module 200 (S112). Here, the block may be generated by a hash function that converts data having an arbitrary size into data having a predetermined size, and for example, a hash function selected as needed, such as MD5, SHA1, SHA2, etc., may be used. , Is not limited thereto.

계속하여, 블록체인(400)은 생성된 블록의 유효성 검증을 위해 합의 과정을 수행할 수 있으며(S113), 합의된 블록만을 체인에 연결할 수 있다(S114). 여기서, 유효성 검증을 위한 합의 알고리즘은 블록 및 트랜잭션의 유효성 검증, 블록 및 트랜잭션의 순서 결정, 새로운 블록의 생성 중 적어도 하나 이상을 수행할 수 있도록 정의된 알고리즘일 수 있으며, 예를 들어, 작업 증명(Proof-of Work, POW) 알고리즘, 지분 증명(Proof-of-Stake, POS) 알고리즘, 프랙티컬 비잔틴 장애 허용(Practical Byzantine Fault Tolerance, PBFT) 알고리즘, 경과 시간 증명(Proof of Elapsed Time, PoET) 알고리즘 등이 이용될 수 있으나, 이에 한정되지 않는다.Subsequently, the blockchain 400 may perform a consensus process to verify the validity of the generated block (S113), and connect only the consensus block to the chain (S114). Here, the consensus algorithm for validation may be an algorithm defined to perform at least one or more of validating blocks and transactions, determining the order of blocks and transactions, and creating new blocks. For example, proof of work ( Proof-of Work (POW) algorithm, Proof-of-Stake (POS) algorithm, Practical Byzantine Fault Tolerance (PBFT) algorithm, Proof of Elapsed Time (PoET) algorithm, etc. May be used, but is not limited thereto.

또한, 각 블록들은 헤쉬 체인(Hash Chain)의 형태로 연결될 수 있다. 즉, n번째 블록은 n-1번째 블록의 해쉬 값을 저장한다. 이에 따라, 어느 한 블록의 정보의 변경은 해당 블록으로부터 산출한 해당 블록의 해쉬 값의 변경을 초래하고, 이는 그 다음 블록의 내용의 변경을 초래하기 때문에 체인에 연결된 블록의 데이터를 삭제하거나 변경하는 것을 불가능하여 체인에 연결된 블록의 데이터는 신뢰성이 보장될 수 있다.In addition, each block can be connected in the form of a hash chain. That is, the nth block stores the hash value of the n-1th block. Accordingly, a change in the information of one block results in a change in the hash value of the block calculated from the block, which results in a change in the content of the next block. It is impossible to do so, so the reliability of the data in the blocks connected to the chain can be guaranteed.

한편, 상술한 설명에서, 단계 S11 내지 S22 및 단계 S101 내지 S114는 본 발명의 구현에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템에 관하여 이미 기술된 내용은 도 6 내지 도 7에도 적용된다.Meanwhile, in the above description, steps S11 to S22 and steps S101 to S114 may be further divided into additional steps or may be combined into fewer steps, depending on the implementation of the present invention. In addition, some steps may be omitted as necessary, and the order between steps may be changed. In addition, even if other contents are omitted, the contents already described for the blockchain-based IoT management system using the cryptographic module are also applied to FIGS. 6 to 7.

본 발명은 상술한 특정의 바람직한 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 해당 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.The present invention is not limited to the specific preferred embodiments described above, and any person having ordinary knowledge in the technical field to which the present invention pertains without departing from the gist of the present invention claimed in the claims can implement various modifications. Of course, such changes are intended to be within the scope of the description of the claims.

1 : 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템
10 : 사물인터넷
100 : 클라이언트 모듈
110 : 데이터 수신부
120 : 데이터 추출부
130 : 제어부
200 : 멤버관리모듈
210 : 인식부
220 : 권한제어부
230 : 멤버관리부
240 : 인증부
300 : 암호모듈
310 : 암호키 생성부
320 : 저장부
330 : 인증지원부
400 : 블록체인
410 : 블록관리부
420 : 합의부
430 : 블록제어부
1000 : 블록체인 네트워크
1: Blockchain-based IoT management system using cryptographic modules
10: Internet of Things
100: client module
110: data receiving unit
120: data extraction unit
130: control unit
200: member management module
210: recognition unit
220: authority control unit
230: Member Management Department
240: authentication department
300: cryptographic module
310: encryption key generation unit
320: storage unit
330: Certification Support Department
400: Blockchain
410: block management unit
420: consensus
430: block control unit
1000: Blockchain network

Claims (4)

적어도 하나 이상의 사물인터넷으로부터 센싱되는 데이터를 수신하며, 수신된 데이터 중 기 설정된 범위 내의 데이터를 추출하는 클라이언트 모듈;
상기 클라이언트 모듈을 기 설정된 인증방식으로 인증하며, 인증된 상기 클라이언트 모듈에 한하여 블록체인 네트워크의 접근을 허용하는 멤버관리모듈;
상기 멤버관리모듈로부터 클라이언트의 정보를 수신하며, 수신된 상기 클라이언트 정보에 대응한 암호키를 생성하는 암호모듈; 및
상기 멤버관리모듈을 통해 인증된 상기 클라이언트 모듈로부터 데이터를 수신하며, 수신된 데이터에 대응한 블록을 생성하고, 생성된 블록의 유효성 검증을 통해 합의된 블록만을 체인에 연결하는 블록체인을 포함하는 것을 특징으로 하는 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템.
A client module for receiving data sensed from at least one IoT and extracting data within a preset range from among the received data;
A member management module that authenticates the client module using a preset authentication method and allows access to the blockchain network only to the authenticated client module;
An encryption module for receiving client information from the member management module and generating an encryption key corresponding to the received client information; And
Including a block chain that receives data from the client module authenticated through the member management module, generates a block corresponding to the received data, and connects only the agreed block to the chain through validation of the generated block. Blockchain-based IoT management system using a cryptographic module as a feature.
제 1항에 있어서,
상기 멤버관리모듈은 인증된 상기 클라이언트 모듈에 한하여 블록체인 네트워크의 접근을 허용하되, 상기 클라이언트 모듈의 권한에 대응해 상기 클라이언트 모듈과 엑세스되는 것을 특징으로 하는 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템.
The method of claim 1,
The member management module allows access to the blockchain network only to the authenticated client module, but accesses the client module in response to the authority of the client module. Blockchain-based IoT management using a cryptographic module. system.
제 1항에 있어서,
상기 암호모듈은 상기 클라이언트 정보에 대응한 암호키를 생성하되, 공개키는 상기 멤버관리모듈에 전송하는 것을 특징으로 하는 사물인터넷 관리 시스템.
The method of claim 1,
Wherein the encryption module generates an encryption key corresponding to the client information, and transmits the public key to the member management module.
제 3항에 있어서,
상기 암호모듈은 상기 클라이언트 정보에 대응한 암호키를 생성하되, 비밀키는 저장부에 저장하여 관리하는 것을 특징으로 하는 암호모듈을 이용한 블록체인 기반의 사물인터넷 관리 시스템.
The method of claim 3,
The cryptographic module generates a cryptographic key corresponding to the client information, and stores and manages the secret key in a storage unit.
KR1020190102102A 2019-08-21 2019-08-21 Block chain-based iot management system using cryptographic module KR20210022852A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190102102A KR20210022852A (en) 2019-08-21 2019-08-21 Block chain-based iot management system using cryptographic module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190102102A KR20210022852A (en) 2019-08-21 2019-08-21 Block chain-based iot management system using cryptographic module

Publications (1)

Publication Number Publication Date
KR20210022852A true KR20210022852A (en) 2021-03-04

Family

ID=75174280

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190102102A KR20210022852A (en) 2019-08-21 2019-08-21 Block chain-based iot management system using cryptographic module

Country Status (1)

Country Link
KR (1) KR20210022852A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220141170A (en) 2021-04-12 2022-10-19 이화여자대학교 산학협력단 Leader election method using federated learning for private blockchain, recording medium and device for performing the method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180113786A (en) 2017-04-07 2018-10-17 한국전자통신연구원 Energy distributed method based on block chain
KR101979586B1 (en) 2018-12-19 2019-05-17 주식회사 마크애니 IoT DEVICE MANAGED BASED ON BLOCK CHAIN, SYSTEM AND METHOD THEREOF

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180113786A (en) 2017-04-07 2018-10-17 한국전자통신연구원 Energy distributed method based on block chain
KR101979586B1 (en) 2018-12-19 2019-05-17 주식회사 마크애니 IoT DEVICE MANAGED BASED ON BLOCK CHAIN, SYSTEM AND METHOD THEREOF

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220141170A (en) 2021-04-12 2022-10-19 이화여자대학교 산학협력단 Leader election method using federated learning for private blockchain, recording medium and device for performing the method

Similar Documents

Publication Publication Date Title
US10154021B1 (en) Securitization of temporal digital communications with authentication and validation of user and access devices
JP6234348B2 (en) Distribution of user authentication information
US9510195B2 (en) Secured transactions in internet of things embedded systems networks
US20160277933A1 (en) Secure Data Communication system between IoT smart devices and a Network gateway under Internet of Thing environment
US10637650B2 (en) Active authentication session transfer
EP3304258B1 (en) Authenticating stylus device
US9092016B2 (en) Universal validation module for access control systems
EA036987B1 (en) Systems and methods for device authentication
US11373762B2 (en) Information communication device, authentication program for information communication device, and authentication method
US9769164B2 (en) Universal validation module for access control systems
US20140223528A1 (en) Certificate installation and delivery process, four factor authentication, and applications utilizing same
JP6378424B1 (en) User authentication method with enhanced integrity and security
US20180137297A1 (en) Security system for industrial control system
KR20220086135A (en) Block chain-based power transaction operation system
KR20210022852A (en) Block chain-based iot management system using cryptographic module
US20090327704A1 (en) Strong authentication to a network
CN111914270A (en) Programmable authentication service method and system based on block chain technology
RU2709281C1 (en) Digital key carrier authorization method and system
US11387997B2 (en) Constrained key derivation in geographical space
US11784809B2 (en) Constrained key derivation in temporal space
US20230403163A1 (en) Identification and authentication of multiple controllers
US11438150B2 (en) Constrained key derivation in linear space
US20230078096A1 (en) Offline delegation of authorization data
WO2021118471A1 (en) System and method for processing data
KR20170123222A (en) User authentication method for integrity and security enhancement

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application