KR102475221B1 - A decision tree-based covert channel generation method, apparatus and system therefor - Google Patents

A decision tree-based covert channel generation method, apparatus and system therefor Download PDF

Info

Publication number
KR102475221B1
KR102475221B1 KR1020200137841A KR20200137841A KR102475221B1 KR 102475221 B1 KR102475221 B1 KR 102475221B1 KR 1020200137841 A KR1020200137841 A KR 1020200137841A KR 20200137841 A KR20200137841 A KR 20200137841A KR 102475221 B1 KR102475221 B1 KR 102475221B1
Authority
KR
South Korea
Prior art keywords
block
value
node
covert channel
threshold value
Prior art date
Application number
KR1020200137841A
Other languages
Korean (ko)
Other versions
KR20220053400A (en
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 KR1020200137841A priority Critical patent/KR102475221B1/en
Publication of KR20220053400A publication Critical patent/KR20220053400A/en
Application granted granted Critical
Publication of KR102475221B1 publication Critical patent/KR102475221B1/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명의 일 실시예에 따르면, 블록체인 네트워크의 코버트(covert) 채널 생성 방법에 있어서, 제1 블록 해시(hash) 값이 포함된 제1 블록을 채굴하는, 제1 단계; 상기 제1 블록을 상기 블록체인 네트워크에 브로드캐스트하는, 제2 단계; 상기 제1 블록을 검증하여 블록 체인에 추가하는, 제3 단계; 상기 제1 내지 제3 단계를 기설정된 횟수(M)만큼 반복적으로 수행하여 M개의 샘플을 획득하는, 제4 단계; 서로 다른 임의의 값이 설정된 복수의 후보 제1 스레시홀드 값들에 대하여 상기 제1 내지 제4 단계를 수행함으로써 각 후보 제1 스레시홀드 값별 M개의 샘플을 획득하는, 제5 단계; 상기 각 후보 제1 스레시홀드 값별로 획득된M개의 샘플을 이용하여 결정 트리(Decision Tree)를 트레이닝하는, 제6단계; CART(Classification And Regression Tree) 알고리즘을 기반으로 상기 복수의 후보 제1 스레시홀드 값들 중 상기 결정 트리의 분류 기준인 제1 스레시홀드 값을 결정하는, 제7 단계; 및 결정된 제1 스레시홀드 값을 상기 결정 트리에 적용하여 상기 코버트 채널을 생성하는, 제8 단계; 를 포함할 수 있다.According to an embodiment of the present invention, in a method for generating a covert channel of a blockchain network, a first step of mining a first block including a first block hash value; a second step of broadcasting the first block to the blockchain network; A third step of verifying the first block and adding it to the block chain; A fourth step of obtaining M samples by repeatedly performing the first to third steps a predetermined number of times (M); a fifth step of obtaining M samples for each candidate first threshold value by performing the first to fourth steps on a plurality of candidate first threshold values to which different arbitrary values are set; A sixth step of training a decision tree using M samples obtained for each candidate first threshold value; A seventh step of determining a first threshold value that is a classification criterion of the decision tree from among the plurality of candidate first threshold values based on a Classification And Regression Tree (CART) algorithm; and an eighth step of generating the covert channel by applying the determined first threshold value to the decision tree. can include

Description

결정 트리 기반 코버트 채널 생성 방법, 이를 위한 장치 및 시스템{A decision tree-based covert channel generation method, apparatus and system therefor}A decision tree-based covert channel generation method, apparatus and system therefor}

본 명세서는 결정 트리(decision tree)를 기반으로 코버트 채널을 생성하는 방법 및 이를 위한 장치를 제안한다. The present specification proposes a method for generating a covert channel based on a decision tree and an apparatus therefor.

코버트 채널(Covert channel)은 일종의 은닉(또는 비밀 통신) 채널에 해당한다. 코버트 채널은 송신자와 수신자간의 비밀 통신 통로를 의미하는 것이 아니라, 송신자와 수신자간에 주고 받는 데이터나 메시지가 특정 암호화/인코딩 방식으로 암호화/인코딩되어 전송되는 것을 의미하며, 이렇게 암호화/인코딩된 데이터가 전송되는 경우 해당 데이터는 코버트 채널을 통해 전송된다고 표현될 수 있다.A covert channel corresponds to a kind of covert (or secret communication) channel. A covert channel does not mean a secret communication path between a sender and a receiver, but means that data or messages exchanged between a sender and a receiver are encrypted/encoded and transmitted using a specific encryption/encoding method. When transmitted, the corresponding data may be expressed as being transmitted through a covert channel.

예를 들어, 송신자가 [a b c d]라는 메시지를 수신자한테 보낸다고 가정했을 때, 코버트 채널이 존재하지 않는 경우, 송신자, 수신자, 그리고 제3자는 모두 해당 메시지를 [a b c d]로 인식하게 된다. 그러나, 송신자가 1을 [a b c d]로 인코딩하고, 수신자가 [a b c d]를 1로 디코딩한다고 가정하면, 송신자와 수신자는 [a b c d]를 1로 해석하는 반면, 제3 자는 이를 그대로 [a b c d]로 해석하게 된다. 이런 식으로 송신자와 수신자간의 암호화/인코딩 방식을 서로 지정/약속함으로써 코버트 채널이 생성되게 된다.For example, assuming that a sender sends a message [a b c d] to a receiver, and a covert channel does not exist, the sender, receiver, and a third party all recognize the message as [a b c d]. However, assuming that the sender encodes 1 as [a b c d] and the receiver decodes [a b c d] as 1, the sender and receiver interpret [a b c d] as 1, while the third party interprets it as [a b c d] as it is. will do In this way, a covert channel is created by designating/promising an encryption/encoding method between the sender and the receiver.

인터넷이나 무선 네트워크, 그리고 안드로이드 시스템과 같은 다양한 시스템/네트워크에서 다양한 방식/형태의 코버트 채널이 제안된 바 있으며, 블록체인 시스템에서도 코버트 채널이 제안된 바 있다. Various methods/types of covert channels have been proposed in various systems/networks such as the Internet, wireless networks, and Android systems, and covert channels have also been proposed in blockchain systems.

블록체인 시스템에서 제안된 종래의 코버트 채널은 주로 트랜잭션 정보나 암호 관련 기능을 활용하는 방식이었다. 그러나, 이러한 종래의 코버트 채널은 기술 방식이 복잡하고 불편하다는 문제점이 존재하였다.The conventional covert channel proposed in the blockchain system was mainly a method of utilizing transaction information or cryptographic functions. However, such a conventional covert channel has a problem that the technology method is complicated and inconvenient.

따라서, 본 명세서에서는 종래의 코버트 채널에 비해 보다 간편하고 편리한 방식의 코버트 채널에 대해 제안하고자 함이 목적이다.Therefore, the purpose of this specification is to propose a simpler and more convenient covert channel compared to the conventional covert channel.

본 발명의 일 실시예에 따르면, 블록체인 네트워크의 코버트(covert) 채널 생성 방법에 있어서, 제1 블록 해시(hash) 값이 포함된 제1 블록을 채굴하는, 제1 단계; 상기 제1 블록을 상기 블록체인 네트워크에 브로드캐스트하는, 제2 단계; 상기 제1 블록을 검증하여 블록 체인에 추가하는, 제3 단계; 상기 제1 내지 제3 단계를 기설정된 횟수(M)만큼 반복적으로 수행하여 M개의 샘플을 획득하는, 제4 단계; 서로 다른 임의의 값이 설정된 복수의 후보 제1 스레시홀드 값들에 대하여 상기 제1 내지 제4 단계를 수행함으로써 각 후보 제1 스레시홀드 값별 M개의 샘플을 획득하는, 제5 단계; 상기 각 후보 제1 스레시홀드 값별로 획득된 M개의 샘플을 이용하여 결정 트리(Decision Tree)를 트레이닝하는, 제6단계; CART(Classification And Regression Tree) 알고리즘을 기반으로 상기 복수의 후보 제1 스레시홀드 값들 중 상기 결정 트리의 분류 기준인 제1 스레시홀드 값을 결정하는, 제7 단계; 및 결정된 제1 스레시홀드 값을 상기 결정 트리에 적용하여 상기 코버트 채널을 생성하는, 제8 단계; 를 포함할 수 있다.According to an embodiment of the present invention, in a method for generating a covert channel of a blockchain network, a first step of mining a first block including a first block hash value; a second step of broadcasting the first block to the blockchain network; A third step of verifying the first block and adding it to the block chain; A fourth step of obtaining M samples by repeatedly performing the first to third steps a predetermined number of times (M); a fifth step of obtaining M samples for each candidate first threshold value by performing the first to fourth steps on a plurality of candidate first threshold values to which different arbitrary values are set; A sixth step of training a decision tree using M samples obtained for each candidate first threshold value; A seventh step of determining a first threshold value that is a classification criterion of the decision tree from among the plurality of candidate first threshold values based on a Classification And Regression Tree (CART) algorithm; and an eighth step of generating the covert channel by applying the determined first threshold value to the decision tree. can include

본 발명의 일 실시예에 따르면, 블록체인 네트워크의 특징을 기반으로 간편하게 데이터의 인코딩/디코딩/암호화/비암호화가 가능하므로, 종래 기술 대비 간편하지만 보안 레벨이 높은 코버트 채널의 생성이 가능하다는 효과를 갖는다.According to an embodiment of the present invention, encoding/decoding/encryption/non-encryption of data is easily possible based on the characteristics of a blockchain network, so it is possible to create a covert channel that is simpler than the prior art but has a high security level. have

또한, 본 발명의 일 실시예에 따르면, 블록체인 네트워크 기반의 새로운 코버트 채널 생성 방식을 제안하므로, 코버트 채널의 영역이 확장된다는 효과가 있다. In addition, according to an embodiment of the present invention, since a new covert channel generation method based on a blockchain network is proposed, there is an effect that the covert channel area is expanded.

본 발명의 효과는 상술한 내용에 한정되지 않으며, 이외의 다양한 효과는 이하에서 상세히 후술한다.Effects of the present invention are not limited to the above, and various other effects will be described in detail below.

도 1은 본 발명의 일 실시예에 따른 블록체인 네트워크를 예시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 코버트 채널 생성 방법에 관한 순서도이다.
도 3은 본 발명의 일 실시예에 따른 코버트 채널 생성 방법을 예시한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 결정 트리의 개념도이다.
도 5는 본 발명의 일 실시예에 따른 블록체인 노드의 블록도이다.
1 is a diagram illustrating a blockchain network according to an embodiment of the present invention.
2 is a flowchart of a method for generating a covert channel according to an embodiment of the present invention.
3 is a flowchart illustrating a method for generating a covert channel according to an embodiment of the present invention.
4 is a conceptual diagram of a decision tree according to an embodiment of the present invention.
5 is a block diagram of a blockchain node according to an embodiment of the present invention.

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

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. 예를 들어, 'A 및/또는 B'는 'A 또는 B 중 적어도 하나'의 의미로 해석될 수 있다. 또한, '/'는 '및' 또는 '또는'으로 해석될 수 있다.Terms such as first, second, A, B, etc. may be used to describe various elements, but the elements are not limited by the above terms, and are merely used to distinguish one element from another. used only as For example, without departing from the scope of the technology described below, a first element may be referred to as a second element, and similarly, the second element may be referred to as a first element. The terms and/or include any combination of a plurality of related recited items or any of a plurality of related recited items. For example, 'A and/or B' may be interpreted as meaning 'at least one of A or B'. Also, '/' can be interpreted as 'and' or 'or'.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In the terms used in this specification, singular expressions should be understood to include plural expressions unless clearly interpreted differently in context, and terms such as “comprising” refer to the described features, numbers, steps, operations, and components. , parts or combinations thereof, but it should be understood that it does not exclude the possibility of the presence or addition of one or more other features or numbers, step-action components, parts or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Prior to a detailed description of the drawings, it is to be clarified that the classification of components in the present specification is merely a classification for each main function in charge of each component. That is, two or more components to be described below may be combined into one component, or one component may be divided into two or more for each more subdivided function. In addition, each component to be described below may additionally perform some or all of the functions of other components in addition to its main function, and some of the main functions of each component may be performed by other components. Of course, it may be dedicated and performed by .

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in performing a method or method of operation, each process constituting the method may occur in a different order from the specified order unless a specific order is clearly described in context. That is, each process may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

도 1은 본 발명의 일 실시예에 따른 블록체인 네트워크를 예시한 도면이다.1 is a diagram illustrating a blockchain network according to an embodiment of the present invention.

도 1을 참조하면, 블록체인 네트워크(100)는 복수의 블록체인 노드들(110-1~110-N)로 구성될 수 있다. 블록체인 노드(110-1~110-N)는 블록체인 네트워크(100)를 구성하는 IoT 기기로서, 크게 채굴 작업에 참여하는 채굴(mining) 노드, 채굴된 블록의 검증 작업을 수행하는 검증(verification) 노드로 구분될 수 있다. 특히, 채굴 노드는 다수의 트랜잭션들을 하나의 블록으로 구성하여 블록 채굴 작업을 수행할 수 있으며, 채굴한 블록을 블록체인 네트워크(100)에 포함된 다른 블록체인 노드들에게 브로드캐스트할 수 있다. 검증 노드는 채굴 노드로부터 수신한 블록에 대하여 작업 증명(Proof of Work) 메커니즘을 기반으로 검증 작업을 수행하며, 검증이 완료된 블록만 선택적으로 블록 체인에 추가할 수 있다. 보다 상세하게는, 검증 노드는 트랜잭션이 포함된 블록의 블록 해시 값이 기설정된 해시 값보다 작은지 여부를 기초로 검증 작업을 수행하며, 블록 해시 값이 기설정된 해시 값보다 작다고 판단되는 경우에만 해당 블록에 대한 검증이 성공한 것으로 보고 블록체인에 추가할 수 있다. 반대로, 블록 해시 값이 기설정된 해시 값 이상이라고 판단되는 경우에는, 검증 노드는 해당 블록에 대한 검증이 실패한 것으로 보고 블록체인에 추가하지 않을 수 있다.Referring to FIG. 1 , a blockchain network 100 may be composed of a plurality of blockchain nodes 110-1 to 110-N. The blockchain nodes 110-1 to 110-N are IoT devices constituting the blockchain network 100, and are mining nodes that participate in mining operations and verification operations that perform verification of mined blocks. ) can be divided into nodes. In particular, the mining node may configure a plurality of transactions into one block to perform block mining, and may broadcast the mined block to other blockchain nodes included in the blockchain network 100. The verification node performs verification work based on the Proof of Work mechanism on the block received from the mining node, and only blocks that have been verified can be selectively added to the block chain. More specifically, the verification node performs verification based on whether the block hash value of the block containing the transaction is smaller than the preset hash value, and only when it is determined that the block hash value is smaller than the preset hash value. Verification of the block is considered successful and can be added to the blockchain. Conversely, if it is determined that the block hash value is greater than or equal to the preset hash value, the verification node may not add the block to the blockchain considering that the verification of the corresponding block has failed.

트랜잭션(transaction)은 하나의 블록체인 노드가 다른 블록체인 노드로 전송하는 IoT 관련 데이터를 통칭하며, 블록의 구성 요소로서 블록에 포함되어 블록체인 네트워크(100)로 브로드캐스트될 수 있다. A transaction refers to IoT-related data transmitted from one blockchain node to another blockchain node, and can be included in a block as a component of a block and broadcast to the blockchain network 100.

본 명세서는 블록체인 네트워크 내에서 코버트 채널 생성 방법에 관한 것으로, 코버트 채널에서 데이터를 인코딩하기 위한 인코더 노드와 인코딩된 데이터를 디코딩하기 위한 디코더 노드가 요구된다. 이러한 인코더 및 디코더 노드는 앞서 상술한 블록체인 네트워크 내 채굴 노드 및 검증 노드 중에서 적어도 하나 선택되어 구성될 수 있다. 즉, 적어도 하나의 채굴 노드가 인코더 또는 디코더 노드가 될 수 있으며, 적어도 하나의 검증 노드가 인코더 또는 디코더 노드가 될 수 있다. This specification relates to a method for generating a covert channel in a blockchain network, and requires an encoder node for encoding data in a covert channel and a decoder node for decoding encoded data. These encoder and decoder nodes may be configured by selecting at least one of a mining node and a verification node in the aforementioned blockchain network. That is, at least one mining node can be an encoder or decoder node, and at least one verification node can be an encoder or decoder node.

도 2는 본 발명의 일 실시예에 따른 코버트 채널 생성 방법에 관한 순서도이다.2 is a flowchart of a method for generating a covert channel according to an embodiment of the present invention.

도 2를 참조하면, 본 명세서에서 제안하는 코버트 채널 생성 방법은, 크게 트레이닝(training) 단계(S210)와 예측(prediction) 단계(S210)로 구성될 수 있다. Referring to FIG. 2 , the covert channel generation method proposed in this specification may be largely composed of a training step ( S210 ) and a prediction step ( S210 ).

트레이닝 단계(S210)는 결정 트리를 트레이닝하여 코버트 채널에 사용할 인코딩/디코딩 모델을 구축하는 단계이다. 여기서, 트레이닝은 결정 트리에 적합한 분류 능력을 부여하기 위해 반복적으로 계산을 수행하는 절차를 의미한다. 따라서, 이렇게 트레이닝된 결정 트리는 향후 입력되는 데이터가 어떤 클래스에 소속되는지를 예측하는 데 사용될 수 있다. 특히, 본 명세서에서 트레이닝은 CART 알고리즘/메커니즘을 기반으로 수행될 수 있으며, 트레이닝이 완료되면 이진 트리 구조를 갖는 결정 트리가 완성될 수 있다. 결정 트리의 이진 트리 구조는, 루트(root) 노드와, 이러한 루트 노드로부터 좌측으로 분기된 좌자손 노드 및 우측으로 분기된 우자손 노드로 구성된 결정 트리 구조를 의미할 수 있다. 본 명세서에서는 이렇게 완성된 결정 트리의 좌자손 및 우자손 노드에 서로 다른 클래스를 할당하여, 대상 데이터를 인코딩/디코딩하는 데 사용할 수 있다. The training step (S210) is a step of building an encoding/decoding model to be used for a covert channel by training a decision tree. Here, training refers to a procedure of repeatedly performing calculations in order to impart appropriate classification ability to a decision tree. Therefore, the trained decision tree can be used to predict which class future input data belongs to. In particular, in this specification, training may be performed based on the CART algorithm/mechanism, and when training is completed, a decision tree having a binary tree structure may be completed. The binary tree structure of the decision tree may refer to a decision tree structure composed of a root node, a left descendant node branched from the root node to the left, and a right descendant node branched to the right. In the present specification, different classes may be assigned to the left and right descendant nodes of the decision tree completed in this way, and may be used to encode/decode target data.

예측 단계(S220)는, 트레이닝의 결과로 완성된 결정 트리에 새롭게 생성된 샘플을 입력한 결과, 해당 샘플이 좌자손 노드로 분류되는 경우 해당 샘플을 좌자손 노드에 할당된 클래스로 예측하고, 해당 샘플이 우자손 노드로 분류되는 경우 해당 샘플을 우자손 노드에 할당된 클래스로 예측하게 된다. 구체적인 인코딩/디코딩 동작은 예측 단계에서 수행되게 된다. In the prediction step (S220), as a result of inputting a newly created sample to the decision tree completed as a result of training, if the sample is classified as a left descendant node, the corresponding sample is predicted as a class assigned to the left descendant node, and the corresponding sample is classified as a left descendant node. If a sample is classified as a right descendant node, the corresponding sample is predicted as a class assigned to the right descendant node. A specific encoding/decoding operation is performed in the prediction step.

즉, 인코더 및 디코더 노드는 트레이닝 단계(S210)를 통해 코버트 채널을 생성하는 데 기반이 되는 결정 트리를 구축/생성하고, 이렇게 구축/생성된 결정 트리를 기반으로 예측 단계(S220)에서 데이터를 인코딩/디코딩함으로써 코버트 채널을 생성하게 된다. That is, the encoder and decoder nodes build/generate a decision tree that is the basis for generating a covert channel through a training step (S210), and based on the decision tree built/generated in this way, data is generated in a prediction step (S220). By encoding/decoding, a covert channel is created.

보다 구체적인 코버트 채널 생성 방법에 대해서는 도 3 및 4를 참조하여 이하에서 상세히 후술한다.A more specific covert channel generation method will be described in detail below with reference to FIGS. 3 and 4 .

도 3은 본 발명의 일 실시예에 따른 코버트 채널 생성 방법을 예시한 순서도이다. 3 is a flowchart illustrating a method for generating a covert channel according to an embodiment of the present invention.

본 순서도는 도 2의 실시예를 보다 구체화/세분화 한 순서도에 해당한다. 본 순서도는 인코더 및/또는 디코더 노드에 의해 수행될 수 있다. 따라서, 일부 단계는 인코더 및 디코더 노드에 의해 공통적으로 수행되나, 나머지 단계는 인코더 또는 디코더 노드 단독으로 수행될 수 있다. This flow chart corresponds to a more specific/subdivided flow chart of the embodiment of FIG. 2 . This flowchart may be performed by encoder and/or decoder nodes. Thus, some steps are commonly performed by the encoder and decoder nodes, while others may be performed by either the encoder or decoder nodes alone.

특히, 본 순서도는 서로 다른 후보 제1 스레시홀드 값에 대하여 반복적으로 수행될 수 있다. 예를 들어, 본 순서도는 제1 후보 제1 스레시홀드 값에 대하여 x=M이 될때까지 반복 수행, 제2 후보 제 1 스레시홀드 값에 대하여 x=M이 될때까지 반복 수행, ... 제N 후보 제1 스레시홀드 값에 대하여 x=M이 될때까지 반복 수행될 수 있으며, 그 결과 각 후보 제1 스레시홀드 값 별로 M개의 샘플이 수집될 수 있다. 여기서, 각 후보 제1 스레시홀드 값은 임의의 값으로 설정될 수 있으며, 다른 후보 제1 스레시홀드 값과 다른 값으로 설정된다.In particular, this flowchart may be repeatedly performed for different candidate first threshold values. For example, in this flowchart, iteration is performed until x=M for the first candidate first threshold value, iteration is performed until x=M for the second candidate first threshold value, ... It may be repeatedly performed for the Nth candidate first threshold values until x=M, and as a result, M samples may be collected for each candidate first threshold value. Here, each candidate first threshold value may be set to an arbitrary value, and is set to a different value from other candidate first threshold values.

도 3을 참조하면, 우선, 인코더 및/또는 디코더 노드는 제1 블록 해시 값이 포함된 제1 블록을 채굴(mining)할 수 있다(S310). 나아가, 인코더 및/또는 디코더 노드는 채굴한 제1 블록을 블록체인 네트워크에 브로드캐스트할 수 있다(S320). 검증 노드는 수신한 제1 블록을 검증하여 블록체인에 추가할 수 있다(S330). Referring to FIG. 3 , first, an encoder and/or decoder node may mine a first block including a first block hash value (S310). Furthermore, the encoder and/or decoder node may broadcast the mined first block to the blockchain network (S320). The verification node may verify the received first block and add it to the blockchain (S330).

상술한 S310 내지 S330 단계는 블록의 채굴 및 검증 단계로서, M회 반복 수행하여 결정 트리를 트레이닝하는 데 사용할 M개의 샘플(보다 상세하게는, M개의 제1 블록)을 확보할 수 있다. M은 블록체인 네트워크 관리자/운영자 또는 코버트 채널 운영자/사용자에 의해 다양한 값으로 설정될 수 있다. 이를 위해, 인코더 및/또는 디코더 노드는 초기 값이 0으로 설정된 카운트 값을 S310 내지 S330 단계를 1회 완료할 때마다 1만큼 증가시키고(S340), 카운트 값이 M이 되었을 때(S350), S360 단계로 넘어갈 수 있다.Steps S310 to S330 described above are steps of mining and verifying blocks, and may be repeated M times to secure M samples (more specifically, M first blocks) to be used for training the decision tree. M can be set to various values by the blockchain network manager/operator or covert channel operator/user. To this end, the encoder and / or decoder node increases the count value whose initial value is set to 0 by 1 each time steps S310 to S330 are completed (S340), and when the count value becomes M (S350), S360 You can go step by step.

다음으로, 인코더 및/또는 디코더 노드는 다른 후보 제1 스레시홀드 값에 대하여 S310 내지 S350 단계를 x=M을 만족할때까지 반복 수행할 수 있다(S360). Next, the encoder and/or decoder node may repeatedly perform steps S310 to S350 for another candidate first threshold value until x=M is satisfied (S360).

다음으로, 본 순서도에는 도시하지 않았으나, 이렇게 수집된 후보 제1 스레시홀드 값들과 각 후보별 수집된 M개의 샘플을 이용하여 결정 트리를 CART 알고리즘을 기반으로 트레이닝한 결과, 최적의 값으로 제1 스레시홀드 값이 최종 선택/결정될 수 있다. 이렇게 선택/결정된 제1 스레시홀드 값은 결정 트리에 입력된 샘플이 루트 노드에서 좌자손 노드로 분류될지, 우자손 노드로 분류될지를 결정하기 위한 분류 기준이 되며, 추후 코버트 채널 생성에 사용되게 된다. Next, although not shown in this flowchart, as a result of training the decision tree based on the CART algorithm using the first threshold values of the candidates collected in this way and the M samples collected for each candidate, the first optimal value The threshold value may be finally selected/determined. The first threshold value selected/determined in this way becomes a classification criterion for determining whether a sample entered into the decision tree is classified as a left descendant node or a right descendant node from the root node, and is used to generate a covert channel later It becomes.

CART 알고리즘을 기반으로 한 트레이닝 방식은 도 4를 참조하여 이하에서 상세히 후술한다.A training method based on the CART algorithm will be described in detail below with reference to FIG. 4 .

도 4는 본 발명의 일 실시예에 따른 결정 트리의 개념도이다.4 is a conceptual diagram of a decision tree according to an embodiment of the present invention.

도 4를 참조하면, 본 발명에서 사용되는 결정 트리(410)는 앞서 상술한 바와 같이 이진 트리 구조를 가질 수 있으며, 결정 트리(410)에 입력되는 샘플은 제1 스레시홀드 값을 기준으로 좌자손 노드 또는 우자손 노드로 분류될 수 있다. 보다 상세하게는, 결정 트리(410)에 입력된 샘플(제1 블록)의 제1 블록 해시 값이, 제1 스레시홀드 값 이하인 경우 해당 샘플은 좌자손 노드로 분류되며, 제1 스레시홀드 값을 초과하는 경우 해당 샘플은 우자손 노드로 분류될 수 있다. 이때, 좌자손 노드에는 비트 값 중 '1' 값으로 정의되는 1 클래스, 우자손 노드에는 '0' 값으로 정의되는 0 클래스가 각각 할당/부여될 수 있다.Referring to FIG. 4 , the decision tree 410 used in the present invention may have a binary tree structure as described above, and a sample input to the decision tree 410 is left based on a first threshold value. It can be classified as descendant node or right descendant node. More specifically, when the first block hash value of the sample (first block) input to the decision tree 410 is less than or equal to the first threshold value, the corresponding sample is classified as a left descendant node, and the first threshold value If it exceeds the value, the corresponding sample can be classified as a right descendant node. In this case, class 1 defined as a value of '1' among bit values may be assigned to the left descendant node, and class 0 defined as a value of '0' may be allocated/assigned to the right descendant node.

제1 스레시홀드 값은 작업 증명 메커니즘에서 블록을 검증하는 데 기준이 되는 기설정된 해시 값보다 작은 값 중에서 cost 함수 값을 최소화하는 값으로 선택/결정될 수 있다. 특히, 제1 스레시홀드 값은 복수의 후보 제1 스레시홀드 값들 중에서 cost 함수 값을 최소화하는 값으로 선택/결정될 수 있다. The first threshold value may be selected/determined as a value that minimizes a cost function value among values smaller than a predetermined hash value that is a criterion for verifying a block in a proof-of-work mechanism. In particular, the first threshold value may be selected/determined as a value that minimizes a cost function value among a plurality of candidate first threshold values.

예를 들어, M개의 샘플이 수집될 때까지 임의의 T_f' 값으로 고정된 제1 후보 제1 스레시홀드 값(즉, T_f=T_f')을 기초로 결정 트리가 트레이닝될 수 있다. 이와 마찬가지로, M개의 샘플이 수집될 때까지 또 다른 임의의 T_f'' 값으로 고정된 제2 후보 제1 스레시홀드 값(즉, T_f=T_f'')을 기초로 결정 트리가 트레이닝될 수 있다. 이와 같은 방식으로 서로 다른 값의 후보 제1 스레시홀드 값이 복수개 임의로 설정될 수 있으며, 각 후보 제1 스레시홀드별로 M개의 샘플이 수집되고, 각 후보별로 수집된 M개의 샘플을 이용하여 결정 트리가 트레이닝될 수 있다. 이렇게 획득된 복수의 후보 제1 스레시홀드 값 중 작업 증명 메커니즘에서 블록을 검증하는 데 기준이 되는 기설정된 해시 값보다 작은 값 중에서 cost 함수 값을 최소화하는 값으로 제1 스레시홀드 값이 최종 선택/결정될 수 있다. For example, a decision tree may be trained based on a first candidate first threshold value (ie, T_f=T_f') fixed at an arbitrary T_f' value until M samples are collected. Similarly, a decision tree can be trained based on the second candidate first threshold value (i.e., T_f=T_f″) fixed at another random value of T_f″ until M samples are collected. . In this way, a plurality of candidate first threshold values of different values may be arbitrarily set, M samples are collected for each candidate first threshold, and determined using the M samples collected for each candidate Trees can be trained. Among the plurality of candidate first threshold values obtained in this way, the first threshold value is finally selected as a value that minimizes the value of the cost function among values smaller than a preset hash value that is a criterion for verifying a block in a proof-of-work mechanism / can be determined.

cost 함수는 수학식 1과 같이 정의된다.The cost function is defined as in Equation 1.

Figure 112020125622217-pat00001
Figure 112020125622217-pat00001

수학식 1에서, f는 제1 블록 해시 값, T_f는 후보 제1 스레시홀드 값, n은 블록 채굴에 의해 현재까지 수집된 제1 블록 해시 값의 전체 개수, n_l은 전체 제1 블록 해시 값 중에서 f <= T_f를 만족하는 제1 블록 해시 값의 개수, n_r은 전체 제1 블록 해시 값 중에서 f > T_f를 만족하는 제1 블록 해시 값의 개수, G_l은 좌자손 노드의 Gini 불순도(impurity), G_r은 우좌손 노드의 Gini 불순도에 각각 해당한다. 샘플은 최대 M개까지 수집되므로, n 값은 1부터 M까지 가변한다.In Equation 1, f is the first block hash value, T_f is the candidate first threshold value, n is the total number of first block hash values collected so far by block mining, and n_l is the total first block hash value The number of first block hash values satisfying f <= T_f, n_r is the number of first block hash values satisfying f > T_f among all first block hash values, G_l is the Gini impurity of the left descendant node ), G_r corresponds to the Gini impurity of the left and right nodes respectively. Since up to M samples are collected, the value of n varies from 1 to M.

G_l 및 상기 G_r은 수학식 2와 같이 정의된다.G_l and G_r are defined as in Equation 2.

Figure 112020125622217-pat00002
Figure 112020125622217-pat00002

Figure 112020125622217-pat00003
Figure 112020125622217-pat00003

수학식 2에서, R_(l,j)는 좌자손 노드에 속하는 샘플 개수 대비 j 클래스에 속하는 샘플 개수의 비율, R_(r,j)는 우좌손 노드에 속하는 샘플 개수 대비 j 클래스에 속하는 샘플 개수의 비율에 각각 해당한다.In Equation 2, R_(l,j) is the ratio of the number of samples belonging to class j to the number of samples belonging to the left descendant node, R_(r,j) is the number of samples belonging to class j to the number of samples belonging to the right and left node corresponding to the ratio of

상술한 과정들은 결국 결정 트리(410)에 사용할 적합한 제1 스레시홀드 값을 찾기 위한 트레이닝 과정으로 해석될 수 있다.The above-described processes may eventually be interpreted as a training process for finding a first threshold value suitable for use in the decision tree 410 .

예를 들어 트레이닝 과정 중에서 샘플의 개수가 1000개(즉, M=1000), 이 중 f <= T_f 조건을 만족하는 샘플의 개수가 300, f > T_f 조건을 만족하는 샘플의 개수가 700이라고 하면, 좌자손 노드(클래스 1)로 분류되는 샘플의 개수는 300, 우자손 노드(클래스 0)로 분류되는 샘플의 개수는 700이 된다. 이때, 좌자손 노드와 우자손 노드의 샘플 비율은 7:3으로 결정된다. 그러나, 대상 데이터를 인코딩하는 데 사용할 결정 트리(410)를 생성한 본 발명의 목적을 고려하면, 좌자손 노드 및 우자손 노드에 실질적으로 동등한 비율(예를 들어, 5:5)로 샘플이 분류되도록 하기 위한 제1 스레시홀드 값이 요구될 수 있다. 좌자손 노드에 '1' 비트 값이, 우자손 노드에 '0' 비트 값이 각각 할당되기 때문이다. 그러나, 이에 한정되는 것은 아니며, 코버트 채널 설계자/운영자에 의해 실시예, 사용 목적 등에 따라, 다양한 비율로 샘플이 분리되도록 하기 위한 제1 스레시홀드 값이 설정될 수 있음은 물론이다.For example, if the number of samples in the training process is 1000 (i.e. M=1000), the number of samples satisfying the condition f <= T_f is 300, and the number of samples satisfying the condition f > T_f is 700. , the number of samples classified as the left descendant node (class 1) is 300, and the number of samples classified as the right descendant node (class 0) is 700. At this time, the sample ratio of the node of the left descendant and the node of the right descendant is determined as 7:3. However, given the purpose of the present invention in generating the decision tree 410 to be used to encode the subject data, the samples are classified in substantially equal proportions (e.g., 5:5) to left- and right-child nodes. A first threshold value may be required for this to happen. This is because a '1' bit value is assigned to the left descendant node and a '0' bit value is assigned to the right descendant node. However, it is not limited thereto, and it goes without saying that a first threshold value for separating samples at various ratios may be set by a designer/operator of the covert channel according to an embodiment, a purpose of use, and the like.

즉, 결정 트리(410)에 적용된 제1 스레시홀드 값에 따라서 샘플이 좌자손 노드로 분류될지, 우자손 노드로 분류될지 여부가 결정되며, 그에 따라 트레이닝 과정에서 좌자손 노드로 분류된 샘플의 개수, 우자손 노드로 분류된 샘플의 개수도 결정되게 된다. 따라서, 코버트 채널 설계자/운영자는 트레이닝 과정에서 전체 샘플의 개수(M) 중 좌자손 노드와 우자손 노드의 비율이 어떻게 설정되는지를 파악하고, 원하는 샘플 비율에 맞는 제1 스레시홀드 값을 설정/결정하게 되는 것이다.That is, whether a sample is classified as a left descendant node or a right descendant node is determined according to the first threshold value applied to the decision tree 410, and accordingly, in the training process, the sample classified as the left descendant node The number and the number of samples classified as right descendant nodes are also determined. Therefore, the covert channel designer/operator figures out how the ratio of the left descendant node to the right descendant node is set among the total number of samples (M) in the training process, and sets a first threshold value suitable for the desired sample ratio / will be decided.

이러한 결정 트리(410)의 트레이닝 과정은 오프라인으로 진행되기 때문에, 인코더 및/또는 디코더 노드는 서로 다른 제1 스레시홀드 값을 적용하여 여러 번 트레이닝을 반복함으로써 코버트 채널 설계자/운영자가 의도하는 비율의 적합한 제1 스레시홀드 값을 도출할 수 있다. Since the training process of the decision tree 410 proceeds offline, the encoder and/or decoder node repeats the training several times by applying different first threshold values to achieve the ratio intended by the designer/operator of the Covert channel. A suitable first threshold value of can be derived.

인코더 및/또는 디코더 노드는 CART 알고리즘을 통해 결정된 제1 스레시홀드 값을 결정 트리에 적용하여 코버트 채널을 생성할 수 있다(S370). 여기서 코버트 채널을 생성함은, 앞서 상술한 바와 같이, 실제 통신 통로를 의미하는 것이 아니라, 전송 대상 데이터를 기설정된 방식으로 인코딩 및 디코딩하는 것을 의미한다. 따라서, 코버트 채널이 생성됨은 트레이닝에 따라 확정된 제1 스레시홀드 값이 적용된 결정 트리를 이용하여 데이터를 송/수신한다는 것을 의미할 수 있다.The encoder and/or decoder node may generate a covert channel by applying the first threshold value determined through the CART algorithm to the decision tree (S370). As described above, generating a covert channel here does not mean an actual communication path, but means encoding and decoding data to be transmitted in a predetermined manner. Accordingly, generation of a covert channel may mean that data is transmitted/received using a decision tree to which a first threshold value determined according to training is applied.

본 명세서에서는 제1 스레시홀드 값이 적용된 결정 트리를 이용하여 전송 대상 데이터를 인코딩 및 디코딩하는 방식에 대해 다음과 같이 제안하며, 인코딩은 인코더 노드에 의해, 디코딩은 디코더 노드에 의해 각각 수행될 수 있다.In the present specification, a method of encoding and decoding data to be transmitted using a decision tree to which a first threshold value is applied is proposed as follows, and encoding may be performed by an encoder node and decoding may be performed by a decoder node, respectively have.

코버트 채널 생성 후, 인코더 노드는 채굴한 제2 블록을 제1 스레시홀드 값이 결정된 결정 트리에 입력할 수 있다. 결정 트리의 출력 결과에 기초하여, 인코더 노드는 인코딩하고자 하는 대상 비트를 제2 블록으로 인코딩하여 제2 블록을 코버트 채널을 통해 전송할 수 있다. After generating the covert channel, the encoder node may input the mined second block to the decision tree in which the first threshold value is determined. Based on the output result of the decision tree, the encoder node may encode target bits to be encoded into a second block and transmit the second block through a covert channel.

보다 상세하게는, 인코더 노드는 결정 트리에 제2 블록을 입력할 수 있으며, 결정 트리는 제2 블록의 제2 블록 해시 값을 제1 스레시홀드 값과 비교할 수 있다. 제2 블록 해시 값이 제2 스레시홀드 값 이하인 경우, 결정 트리는 제2 블록을 좌자손 노드로 분류하며, 제2 블록 해시 값이 제1 스레시홀드 값을 초과하는 경우, 결정 트리는 제2 블록을 우자손 노드로 분류할 수 있다. More specifically, the encoder node may input the second block to a decision tree, and the decision tree may compare a second block hash value of the second block to a first threshold value. If the second block hash value is less than or equal to the second threshold value, the decision tree classifies the second block as a left descendant node, and if the second block hash value exceeds the first threshold value, the decision tree classifies the second block as the second block can be classified as a right-descendant node.

나아가, 인코더 노드는 샘플이 분류된 노드에 할당된 클래스와 대상 비트의 매칭 여부를 판단하고, 매칭되는 경우, 해당 샘플이 대상 비트가 인코딩된 결과로 간주하고, 해당 샘플을 대상 비트를 대신하여 전송할 수 있다. 보다 상세하게는, 만일 제2 블록이 좌자손 노드로 분류되고, 좌자손 노드에 대하여 정의된 클래스 값이 대상 비트와 동일한 경우, 인코더 노드는 제2 블록을 대상 비트가 인코딩된 값으로 간주하여 제2 블록을 코버트 채널을 통해 디코더 노드로 전송할 수 있다. 예를 들어, 전송 대상 비트 값이 '1'이고, 제2 블록이 클래스 1이 할당된 좌자손 노드로 분류되는 경우, 인코더 노드는 비트 값 '1' 대신 제2 블록을 디코더 노드에 전송할 수 있다. 즉, 제2 블록이 전송 대상 비트 값 '1'의 인코딩된 결과 값에 해당하는 것이다.Furthermore, the encoder node determines whether the target bit matches the class assigned to the node where the sample is classified, and if it matches, considers the sample as the result of encoding the target bit, and transmits the corresponding sample instead of the target bit. can More specifically, if the second block is classified as a left descendant node and the class value defined for the left descendant node is the same as the target bit, the encoder node regards the second block as a value in which the target bit is encoded, and 2 blocks can be transmitted to the decoder node through the covert channel. For example, when the transmission target bit value is '1' and the second block is classified as a left descendant node to which class 1 is assigned, the encoder node may transmit the second block to the decoder node instead of the bit value '1' . That is, the second block corresponds to the encoded result value of the bit value '1' to be transmitted.

이와 유사하게, 만일 제2 블록이 우자손 노드로 분류되고, 우자손 노드에 대하여 정의된 클래스 값이 대상 비트와 동일한 경우, 인코더 노드는 제2 블록을 대상 비트가 인코딩된 값으로 간주하여 제2 블록을 코버트 채널을 통해 디코더 노드로 전송할 수 있다. 예를 들어, 전송 대상 비트 값이 '0'이고, 제2 블록이 클래스 0이 할당된 우자손 노드로 분류되는 경우, 인코더 노드는 비트 값 '0' 대신 제2 블록을 디코더 노드에 전송할 수 있다. 즉, 제2 블록이 전송 대상 비트 값 '0'의 인코딩된 결과 값에 해당하는 것이다.Similarly, if the second block is classified as a right-child node and the class value defined for the right-child node is the same as the target bit, the encoder node regards the second block as a value in which the target bit is encoded, and The block can be transmitted to the decoder node through a covert channel. For example, when the transmission target bit value is '0' and the second block is classified as a right-child node to which class 0 is assigned, the encoder node may transmit the second block to the decoder node instead of the bit value '0' . That is, the second block corresponds to the encoded result value of the bit value '0' to be transmitted.

디코더 노드에 의한 디코딩 방식은 인코딩 방식과 유사하다.The decoding scheme by the decoder node is similar to the encoding scheme.

디코더 노드는 인코더 노드로부터 제2 블록을 수신할 수 있으며, 제2 블록울 제1 스레시홀드 값이 결정된 결정 트리에 입력할 수 있다. 나아가, 디코더 노드는 결정 트리의 분류 결과에 기초하여 제2 블록을 대상 비트로 디코딩할 수 있다.The decoder node may receive the second block from the encoder node, and may input the second block to a decision tree in which a first threshold value is determined. Furthermore, the decoder node may decode the second block into target bits based on the classification result of the decision tree.

보다 상세하게는, 디코더 노드는 결정 트리에 제2 블록을 입력할 수 있으며, 결정 트리는 제2 블록의 제2 블록 해시 값을 제1 스레시홀드 값과 비교할 수 있다. 제2 블록 해시 값이 제2 스레시홀드 값 이하인 경우, 결정 트리는 제2 블록을 좌자손 노드로 분류하며, 제2 블록 해시 값이 제1 스레시홀드 값을 초과하는 경우, 결정 트리는 제2 블록을 우자손 노드로 분류할 수 있다. 디코더 노드는 제2 블록이 분류된 노드에 할당된/부여된 클래스 값으로 제2 블록을 디코딩할 수 있다. 예를 들어, 제2 블록이 클래스 1이 할당된 좌자손 노드로 분류된 경우, 제2 블록은 '1' 비트 값으로 디코딩될 수 있으며, 제2 블록이 클래스 0이 할당된 우자손 노드로 분류된 경우, 제2 블록은 '0' 값으로 디코딩될 수 있다. More specifically, the decoder node may input the second block to a decision tree, and the decision tree may compare a second block hash value of the second block to a first threshold value. If the second block hash value is less than or equal to the second threshold value, the decision tree classifies the second block as a left descendant node, and if the second block hash value exceeds the first threshold value, the decision tree classifies the second block as the second block can be classified as a right-descendant node. The decoder node may decode the second block with a class value assigned/assigned to the node where the second block is classified. For example, if the second block is classified as a left descendant node assigned class 1, the second block may be decoded with a '1' bit value, and the second block is classified as a right descendant node assigned class 0. In this case, the second block may be decoded with a '0' value.

본 실시예를 위한 전제 조건으로서, 인코더 및 디코더 노드에서 동일한 제1 스레시홀드 값이 적용된 결정 트리가 구축되어야 한다. 이를 위해, 인코더 및 디코더 노드는 M 값이 동일하게 설정될 수 있으며, 동일한 알고리즘(즉, CART 알고리즘)에 의해 결정 트리를 트레이닝한 결과 동일한 제1 스레시홀드 값이 설정됨을 전제로 한다. 또한, 인코더 및 디코더 노드는 코버트 채널을 통한 데이터 송수신을 위해, 상대방의 식별자 및 상대방의 공개키를 알고 있음을 전제로 한다.As a precondition for this embodiment, a decision tree to which the same first threshold value is applied must be constructed in the encoder and decoder nodes. To this end, it is assumed that the encoder and decoder nodes may have the same M value, and that the same first threshold value is set as a result of training the decision tree by the same algorithm (ie, the CART algorithm). In addition, it is assumed that the encoder and decoder nodes know the identifier of the other party and the public key of the other party in order to transmit and receive data through the covert channel.

본 명세서에서 제안한 바와 같이 결정 트리를 사용하지 않더라도 단순히 코버트 채널 설계자/운영자가 특정 제1 스레시홀드 값을 설정하고, 이를 블록 해시 값과 비교함으로써 코버트 채널을 생성할 수도 있다. 그러나, 이런 경우 좌자손 노드와 우자손 노드의 샘플 비율을 코버트 채널 설계자/운영자가 원하는 비율로 설정할 수가 없어, 좌자손 노드 및 우자손 노드에 대한 클래스의 예측 가능성이 떨어지므로, 본 명세서에서 제안한 바와 같이 결정 트리를 트레이닝하여 제1 스레시홀드 값을 결정하는 것이 효율적이다. 극단적인 예로, 사용자가 임의로 제1 스레시홀드 값을 설정한 결과, 좌자손 노드와 우자손 노드의 샘플 비율이 9:1로 설정될 수 있으며, 이 경우 인코더 노드는 대상 비트 값 '1'에 대해서는 블록으로의 인코딩이 용이하나, 대상 비트 값 '0'에 대해서는 블록으로의 인코딩이 매우 어렵게 된다. 잘못된 제1 스레시홀드 값의 설정으로 우자손 노드로 분류되는 되는 블록이 거의 존재하지 않기 때문이다.Even if a decision tree is not used as proposed in the present specification, a covert channel designer/operator may simply set a specific first threshold value and generate a covert channel by comparing it with a block hash value. However, in this case, since the sample ratio of the left-child node and the right-child node cannot be set to the ratio desired by the covert channel designer/operator, the predictability of the class for the left-child node and the right-child node is low. It is efficient to determine the first threshold value by training a decision tree as As an extreme example, as a result of the user arbitrarily setting the first threshold value, the sample ratio of the left descendant node and the right descendant node may be set to 9:1, and in this case, the encoder node corresponds to the target bit value '1'. Although encoding into a block is easy, encoding into a block becomes very difficult for a target bit value of '0'. This is because there are almost no blocks that are classified as right descendant nodes due to incorrect setting of the first threshold value.

도 5는 본 발명의 일 실시예에 따른 블록체인 노드의 블록도이다.5 is a block diagram of a blockchain node according to an embodiment of the present invention.

도 5를 참조하면, 블록체인 노드(500)는 프로세서(510), 메모리부(520) 및 통신부(530)를 포함할 수 있다. Referring to FIG. 5 , a blockchain node 500 may include a processor 510, a memory unit 520, and a communication unit 530.

프로세서(510)는, 본 명세서에서 제안되는 적어도 하나의 실시예를 수행하기 위한 데이터 처리/프로세싱 동작을 수행할 수 있다. 따라서, 상술한 실시예들에서 블록체인 노드(500)는 프로세서(510)로 대체되어 설명될 수 있다. 프로세서(510)는 메모리부(520)에 저장된 다양한 메커니즘/알고리즘/프로그램 등을 실행하고, 내부의 데이터를 프로세싱할 수 있다. 또한, 본 명세서에서 제안된 적어도 하나의 실시예를 수행하기 위해 메모리부(520) 및 통신부(530)를 제어하며, 구성들간의 데이터 송수신을 매니지할 수도 있다. 프로세서(510)는, CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), AP(Application Processor), AP(Application Processor) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 적어도 하나 포함하여 구성될 수 있다.The processor 510 may perform a data processing/processing operation for performing at least one embodiment proposed in this specification. Therefore, in the above-described embodiments, the blockchain node 500 may be replaced with the processor 510 and described. The processor 510 may execute various mechanisms/algorithms/programs stored in the memory unit 520 and process internal data. In addition, in order to perform at least one embodiment proposed in this specification, the memory unit 520 and the communication unit 530 may be controlled, and data transmission/reception between components may be managed. The processor 510 may be a Central Processing Unit (CPU), Micro Processor Unit (MPU), Micro Controller Unit (MCU), Application Processor (AP), Application Processor (AP), or any type well known in the art. It may be configured to include at least one processor of.

특히, 본 명세서의 프로세서(510)는 앞서 상술한 결정 트리를 트레이닝하고, 트레이닝한 결과를 기초로 인코딩/디코딩 동작을 수행하여 코버트 채널을 생성할 수 있으며, 기본적으로 블록 채굴 및/또는 검증 동작과 같은 블록체인 네트워크 기능 관련 동작들도 다양하게 수행할 수 있다. In particular, the processor 510 of the present specification may generate a covert channel by training the above-described decision tree and performing an encoding/decoding operation based on the training result, and basically block mining and/or verifying operations. Operations related to blockchain network functions such as can also be performed in various ways.

메모리부(520)는 다양한 디지털 데이터(예를 들어, 트랜잭션, 트랜잭션이 포함된 블록 등)를 저장할 수 있다. 메모리부(520)는 플래시 메모리, HDD(Hard Disk Drive), SSD(Solid State Drive) 등의 다양한 디지털 데이터 저장 공간을 나타낸다.The memory unit 520 may store various digital data (eg, transactions, blocks including transactions, etc.). The memory unit 520 represents various digital data storage spaces such as a flash memory, a hard disk drive (HDD), and a solid state drive (SSD).

통신부(530)는 적어도 하나의 유/무선 통신 프로토콜을 사용하여 통신을 수행, 데이터를 송신/수신할 수 있다. 특히, 통신부(530)는 트랜잭션(또는 트랜잭션이 포함된 블록)을 송수신할 수 있다. The communication unit 530 may transmit/receive data by performing communication using at least one wired/wireless communication protocol. In particular, the communication unit 530 may transmit/receive a transaction (or a block including the transaction).

본 발명에 따른 실시예는 다양한 수단, 예를 들어, 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 본 발명의 일 실시예는 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.An embodiment according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. In the case of hardware implementation, one embodiment of the present invention provides one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), FPGAs ( field programmable gate arrays), processors, controllers, microcontrollers, microprocessors, etc.

또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.In addition, in the case of implementation by firmware or software, an embodiment of the present invention is implemented in the form of a module, procedure, function, etc. that performs the functions or operations described above, and is stored on a recording medium readable through various computer means. can be recorded. Here, the recording medium may include program commands, data files, data structures, etc. alone or in combination. Program instructions recorded on the recording medium may be those specially designed and configured for the present invention, or those known and usable to those skilled in computer software. For example, recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs (Compact Disk Read Only Memory) and DVDs (Digital Video Disks), floptical It includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, such as a floptical disk, and ROM, RAM, flash memory, and the like. Examples of program instructions may include high-level language codes that can be executed by a computer using an interpreter or the like as well as machine language codes generated by a compiler. These hardware devices may be configured to act as one or more software modules to perform the operations of the present invention, and vice versa.

아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.In addition, an apparatus or terminal according to the present invention may be driven by a command that causes one or more processors to perform the functions and processes described above. For example, such instructions may include interpreted instructions, such as script instructions such as JavaScript or ECMAScript instructions, or executable code or other instructions stored on a computer readable medium. Furthermore, the device according to the present invention may be implemented in a distributed manner over a network, such as a server farm, or may be implemented in a single computer device.

또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.In addition, a computer program (also known as a program, software, software application, script or code) loaded into a device according to the present invention and executing the method according to the present invention includes a compiled or interpreted language or a priori or procedural language. It can be written in any form of programming language, and can be deployed in any form, including stand-alone programs, modules, components, subroutines, or other units suitable for use in a computer environment. A computer program does not necessarily correspond to a file in a file system. A program may be in a single file provided to the requested program, or in multiple interacting files (e.g., one or more modules, subprograms, or files that store portions of code), or parts of files that hold other programs or data. (eg, one or more scripts stored within a markup language document). A computer program may be deployed to be executed on a single computer or multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.

설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시예들을 병합하여 새로운 실시예를 구현하도록 설계하는 것도 가능하다. 또한, 본 발명은 상술한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상술한 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.For convenience of description, each drawing has been divided and described, but it is also possible to design to implement a new embodiment by merging the embodiments described in each drawing. In addition, the present invention is not limited to the configuration and method of the described embodiments as described above, but the above-described embodiments are configured by selectively combining all or part of each embodiment so that various modifications can be made. It could be.

또한, 이상에서는 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 명세서는 상술한 특정의 실시예에 한정되지 아니하며, 청구 범위에서 청구하는 요지를 벗어남이 없이 당해 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 명세서의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although preferred embodiments have been shown and described above, this specification is not limited to the specific embodiments described above, and those skilled in the art in the art to which the specification pertains without departing from the subject matter claimed in the claims Of course, various modifications are possible by the person, and these modifications should not be individually understood from the technical spirit or perspective of the present specification.

100: 블록체인 네트워크
110-1~110-N: 블록체인 노드들
100: blockchain network
110-1~110-N: Blockchain Nodes

Claims (17)

블록체인 네트워크의 코버트(covert) 채널 생성 방법에 있어서,
제1 블록 해시(hash) 값이 포함된 제1 블록을 채굴하는, 제1 단계;
상기 제1 블록을 상기 블록체인 네트워크에 브로드캐스트하는, 제2 단계;
상기 제1 블록을 검증하여 블록 체인에 추가하는, 제3 단계;
상기 제1 내지 제3 단계를 기설정된 횟수(M)만큼 반복적으로 수행하여 상기 제1 블록의 M개의 샘플을 획득하는, 제4 단계;
서로 다른 임의의 값이 설정된 복수의 후보 제1 스레시홀드 값들에 대하여 상기 제1 내지 제4 단계를 수행함으로써 각 후보 제1 스레시홀드 값별 M개의 샘플을 획득하는, 제5 단계;
상기 각 후보 제1 스레시홀드 값별로 획득된M개의 샘플을 이용하여 결정 트리(Decision Tree)를 트레이닝하는, 제6단계;
CART(Classification And Regression Tree) 알고리즘을 기반으로 상기 복수의 후보 제1 스레시홀드 값들 중 상기 결정 트리의 분류 기준인 제1 스레시홀드 값을 결정하는, 제7 단계; 및
결정된 제1 스레시홀드 값을 상기 결정 트리에 적용하여 상기 코버트 채널을 생성하는, 제8 단계; 를 포함하는, 코버트 채널 생성 방법.
In the method of creating a covert channel of a blockchain network,
A first step of mining a first block including a first block hash value;
a second step of broadcasting the first block to the blockchain network;
A third step of verifying the first block and adding it to the block chain;
A fourth step of repeatedly performing the first to third steps a predetermined number of times (M) to obtain M samples of the first block;
a fifth step of obtaining M samples for each candidate first threshold value by performing the first to fourth steps on a plurality of candidate first threshold values to which different arbitrary values are set;
A sixth step of training a decision tree using M samples obtained for each candidate first threshold value;
A seventh step of determining a first threshold value that is a classification criterion of the decision tree from among the plurality of candidate first threshold values based on a Classification And Regression Tree (CART) algorithm; and
An eighth step of generating the covert channel by applying the determined first threshold value to the decision tree; Including, Covert channel generation method.
제 1 항에 있어서,
상기 제3 단계는 작업 증명(Proof of Work) 메커니즘을 기반으로 수행되는, 코버트 채널 생성 방법.
According to claim 1,
Wherein the third step is performed based on a Proof of Work mechanism.
제 2 항에 있어서,
상기 제3 단계는,
상기 제1 블록 해시 값이 상기 작업 증명 메커니즘에서 미리 정의된 제2 스레시홀드(threshold) 값보다 작은 경우, 상기 제1 블록의 검증이 성공한 것으로 보고 상기 블록을 상기 블록 체인에 추가하며,
상기 제1 블록 해시 값이 상기 제2 스레시홀드 값 이상인 경우, 상기 제1 블록의 검증이 실패한 것으로 보고 상기 제1 블록을 상기 블록 체인에 추가하지 않는 단계; 를 포함하는, 코버트 채널 생성 방법.
According to claim 2,
The third step,
When the first block hash value is smaller than a predefined second threshold value in the proof-of-work mechanism, the verification of the first block is regarded as successful and the block is added to the block chain;
not adding the first block to the block chain considering that the verification of the first block has failed when the first block hash value is equal to or greater than the second threshold value; Including, Covert channel generation method.
제 3 항에 있어서,
상기 결정 트리는, 루트(root) 노드로부터 좌자손(left child) 노드와 우자손(right child) 노드로 1차로만 분기되는 이진 트리에 해당하며,
상기 제1 블록 해시 값은,
상기 제1 스레시홀드 값 이하인 경우 상기 좌자손 노드로 분류되며, 상기 제1 스레시홀드 값을 초과하는 경우 상기 우자손 노드로 분류되는, 코버트 채널 생성 방법.
According to claim 3,
The decision tree corresponds to a binary tree in which only a first branch is made from a root node to a left child node and a right child node,
The first block hash value,
If it is less than the first threshold value, it is classified as the left child node, and if it exceeds the first threshold value, it is classified as the right child node.
제 4 항에 있어서,
상기 좌자손 노드는 '1' 값으로 정의되는 1 클래스, 상기 우좌손 노드는 '0' 값으로 정의되는 0 클래스로 각각 구분되는, 코버트 채널 생성 방법.
According to claim 4,
The left descendant node is divided into 1 class defined as a '1' value, and the right and left descendant node is divided into a 0 class defined as a '0' value.
제 5 항에 있어서,
상기 제1 스레시홀드 값은, 상기 복수의 후보 제1 스레시홀드 값들 중 상기 CART 알고리즘에서 정의된 cost 함수 값을 최소화하는 값으로 선택되는, 코버트 채널 생성 방법.
According to claim 5,
The first threshold value is selected as a value that minimizes a value of the cost function defined in the CART algorithm among the plurality of candidate first threshold values.
제 6 항에 있어서,
상기 cost 함수는 수학식 1로 정의되는, 코버트 채널 생성 방법.
[수학식 1]
Figure 112020125622217-pat00004

상기 f는 상기 제1 블록 해시 값, 상기 T_f는 후보 제1 스레시홀드 값, 상기 n은 블록 채굴에 의해 현재까지 수집된 제1 블록 해시 값의 전체 개수, 상기 n_l은 전체 제1 블록 해시 값 중에서 f <= T_f를 만족하는 제1 블록 해시 값의 개수, 상기 n_r은 상기 전체 제1 블록 해시 값 중에서 f > T_f를 만족하는 제1 블록 해시 값의 개수, G_l은 상기 좌자손 노드의 Gini 불순도(impurity), G_r은 상기 우좌손 노드의 Gini 불순도임.
According to claim 6,
The cost function is defined by Equation 1, Covert channel generation method.
[Equation 1]
Figure 112020125622217-pat00004

where f is the first block hash value, T_f is a candidate first threshold value, n is the total number of first block hash values collected by block mining so far, and n_l is the total first block hash value The number of first block hash values satisfying f <= T_f, n_r is the number of first block hash values satisfying f > T_f among all first block hash values, and G_l is the Gini impurity of the left descendant node. Impurity, G_r is the Gini impurity of the right-left node.
제 7 항에 있어서,
상기 G_l 및 상기 G_r은 수학식 2로 정의되는, 코버트 채널 생성 방법.
[수학식 2]
Figure 112020125622217-pat00005

Figure 112020125622217-pat00006

상기 R_(l,j)는 상기 좌자손 노드에 속하는 샘플 개수 대비 j 클래스에 속하는 샘플 개수의 비율, 상기 R_(r,j)는 상기 우좌손 노드에 속하는 샘플 개수 대비 j 클래스에 속하는 샘플 개수의 비율임.
According to claim 7,
The G_l and the G_r are defined by Equation 2, Covert channel generation method.
[Equation 2]
Figure 112020125622217-pat00005

Figure 112020125622217-pat00006

R_(l,j) is the ratio of the number of samples belonging to class j to the number of samples belonging to the left descendant node, and R_(r,j) is the ratio of the number of samples belonging to class j to the number of samples belonging to the right and left node. is the ratio.
제 6 항에 있어서,
상기 코버트 채널 생성 후 채굴한 제2 블록을 상기 제1 스레시홀드 값이 결정된 결정 트리에 입력하는 단계; 및
상기 결정 트리의 분류 결과에 기초하여, 인코딩하고자 하는 대상 비트를 상기 제2 블록으로 인코딩하여 상기 제2 블록을 상기 코버트 채널을 통해 전송하는 단계; 를 포함하는, 코버트 채널 생성 방법.
According to claim 6,
inputting a second block mined after the covert channel is created into a decision tree in which the first threshold value is determined; and
encoding a target bit to be encoded into the second block based on a classification result of the decision tree and transmitting the second block through the covert channel; Including, Covert channel generation method.
제 9 항에 있어서,
상기 결정 트리는, 입력받은 제2 블록의 제2 블록 해시 값을 상기 제1 스레시홀드 값과 비교하여:
상기 제2 블록 해시 값이 상기 제1 스레시홀드 값 이하인 경우, 상기 제2 블록을 상기 좌자손 노드로 분류하며,
상기 제2 블록 해시 값이 상기 제1 스레시홀드 값을 초과하는 경우, 상기 제2 블록을 상기 우자손 노드로 분류하는, 코버트 채널 생성 방법.
According to claim 9,
The decision tree compares the input second block hash value of the second block with the first threshold value to:
When the second block hash value is less than or equal to the first threshold value, classifying the second block as the left descendant node;
When the second block hash value exceeds the first threshold value, the second block is classified as the right-child node.
제 9 항에 있어서,
상기 결정 트리의 분류 결과에 기초하여, 인코딩하고자 하는 대상 비트를 상기 제2 블록으로 인코딩하여 상기 제2 블록을 상기 코버트 채널을 통해 전송하는 단계는,
상기 제2 블록이 상기 좌자손 노드로 분류되고, 상기 좌자손 노드에 대하여 정의된 클래스 값이 상기 대상 비트와 동일한 경우, 상기 제2 블록을 상기 대상 비트가 인코딩된 값으로 간주하여, 상기 제2 블록을 상기 코버트 채널을 통해 전송하는 단계; 를 포함하는, 코버트 채널 생성 방법.
According to claim 9,
Based on the classification result of the decision tree, encoding a target bit to be encoded into the second block and transmitting the second block through the covert channel,
When the second block is classified as the left descendant node and the class value defined for the left descendant node is the same as the target bit, the second block is regarded as a value in which the target bit is encoded, and the second block transmitting a block through the covert channel; Including, Covert channel generation method.
제 9 항에 있어서,
상기 결정 트리의 분류 결과에 기초하여, 인코딩하고자 하는 대상 비트를 상기 제2 블록으로 인코딩하여 상기 제2 블록을 상기 코버트 채널을 통해 전송하는 단계는,
상기 제2 블록이 상기 우자손 노드로 분류되고, 상기 우자손 노드에 대하여 정의된 클래스 값이 상기 대상 비트와 동일한 경우, 상기 제2 블록을 상기 대상 비트가 인코딩된 값으로 간주하여, 상기 제2 블록을 상기 코버트 채널을 통해 전송하는 단계; 를 포함하는, 코버트 채널 생성 방법.
According to claim 9,
Based on the classification result of the decision tree, encoding a target bit to be encoded into the second block and transmitting the second block through the covert channel,
When the second block is classified as the right-child node and the class value defined for the right-child node is the same as the target bit, the second block is regarded as a value in which the target bit is encoded, and the second block transmitting a block through the covert channel; Including, Covert channel generation method.
제 9 항에 있어서,
상기 코버트 채널을 통해 전송한 상기 제2 블록을 수신하는 단계;
수신한 상기 제2 블록을 상기 제1 스레시홀드 값이 결정된 결정 트리에 입력하는 단계; 및
상기 결정 트리의 분류 결과에 기초하여, 상기 제2 블록을 상기 대상 비트로 디코딩하는 단계;를 더 포함하는, 코버트 채널 생성 방법.
According to claim 9,
Receiving the second block transmitted through the covert channel;
inputting the received second block into a decision tree in which the first threshold value is determined; and
Further comprising, decoding the second block into the target bit based on a classification result of the decision tree.
제 13 항에 있어서,
상기 분류 결과에 기초하여 상기 제2 블록을 상기 대상 비트로 디코딩하는 단계는,
상기 제2 블록이 상기 좌자손 노드로 분류되는 경우, 상기 제2 블록을 상기 좌자손 노드에 대하여 정의된 클래스 값을 상기 대상 비트로서 디코딩하는 단계; 를 포함하는, 코버트 채널 생성 방법.
According to claim 13,
Decoding the second block into the target bit based on the classification result,
decoding a class value defined for the second block as the target bit when the second block is classified as the left descendant node; Including, Covert channel generation method.
제 13 항에 있어서,
상기 분류 결과에 기초하여 상기 제2 블록을 상기 대상 비트로 디코딩하는 단계는,
상기 제2 블록이 상기 우자손 노드로 분류되는 경우, 상기 제2 블록을 상기 우자손 노드에 대하여 정의된 클래스 값을 상기 대상 비트로서 디코딩하는 단계; 를 포함하는, 코버트 채널 생성 방법.
According to claim 13,
Decoding the second block into the target bit based on the classification result,
decoding a class value defined for the second block as the target bit when the second block is classified as the right descendant node; Including, Covert channel generation method.
제 13 항에 있어서,
상기 대상 비트의 인코딩은 상기 블록체인 네트워크에 포함된 인코더 노드에 의해 수행되며, 상기 제2 블록의 디코딩은 상기 블록체인 네트워크에 포함된 디코더 노드에 의해 수행되는, 코버트 채널 생성 방법.
According to claim 13,
The encoding of the target bit is performed by an encoder node included in the blockchain network, and the decoding of the second block is performed by a decoder node included in the blockchain network.
제 16 항에 있어서,
상기 인코더 노드 및 디코더 노드는 상대방의 식별자 및 상대방의 공개키를 알고 있으며, 상기 M 값이 동일한 값으로 설정되는, 코버트 채널 생성 방법.
17. The method of claim 16,
The encoder node and the decoder node know the identifier of the other party and the public key of the other party, and the M value is set to the same value.
KR1020200137841A 2020-10-22 2020-10-22 A decision tree-based covert channel generation method, apparatus and system therefor KR102475221B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200137841A KR102475221B1 (en) 2020-10-22 2020-10-22 A decision tree-based covert channel generation method, apparatus and system therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200137841A KR102475221B1 (en) 2020-10-22 2020-10-22 A decision tree-based covert channel generation method, apparatus and system therefor

Publications (2)

Publication Number Publication Date
KR20220053400A KR20220053400A (en) 2022-04-29
KR102475221B1 true KR102475221B1 (en) 2022-12-06

Family

ID=81428910

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200137841A KR102475221B1 (en) 2020-10-22 2020-10-22 A decision tree-based covert channel generation method, apparatus and system therefor

Country Status (1)

Country Link
KR (1) KR102475221B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200133921A1 (en) 2018-10-26 2020-04-30 Samsung Sds Co., Ltd. Method and apparatus for sharing information recorded on blockchain based on anchoring
US20200201846A1 (en) 2019-06-28 2020-06-25 Alibaba Group Holding Limited Blockchain-based transaction processing

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102500497B1 (en) * 2018-03-09 2023-02-15 삼성에스디에스 주식회사 Apparatus for performing access control based on blockchain and method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200133921A1 (en) 2018-10-26 2020-04-30 Samsung Sds Co., Ltd. Method and apparatus for sharing information recorded on blockchain based on anchoring
US20200201846A1 (en) 2019-06-28 2020-06-25 Alibaba Group Holding Limited Blockchain-based transaction processing

Also Published As

Publication number Publication date
KR20220053400A (en) 2022-04-29

Similar Documents

Publication Publication Date Title
CN110119643B (en) Two-dimensional code generation method and device and two-dimensional code identification method and device
CN113841160A (en) Encrypting and decrypting information
WO2023056808A1 (en) Encrypted malicious traffic detection method and apparatus, storage medium and electronic apparatus
US10681013B2 (en) Methods and systems for concealing information
CN111310222A (en) File encryption method
CN113722987A (en) Federal learning model training method and device, electronic equipment and storage medium
US9742743B2 (en) Information processing apparatus and mobile terminal device
US9116827B2 (en) System and method for optimizing luby transform (LT) codes to facilitate data transmission over communication network
KR102475221B1 (en) A decision tree-based covert channel generation method, apparatus and system therefor
KR102238590B1 (en) Method of authenticating and verifying data packet transmission, and apparatuses operating the same
US10148547B2 (en) Hardware trigger generation from a declarative protocol description
CN112887088B (en) Gaussian modulation method and continuous variable quantum secure direct communication system
Jafarizadeh et al. An exact solution to degree distribution optimization in LT codes
US20210258778A1 (en) Secure communication method and device performing the same
US11599772B2 (en) Guided character string alteration
WO2022026755A1 (en) Secure massively parallel computation for dishonest majority
KR102199274B1 (en) Map decoding method using augmented lattices
Shang et al. Second-order memory based LT encoder design
CN112491862B (en) Distributed encryption method and device
Liao et al. A generalized design of distributed rateless codes with decreasing ripple size for multiple-access relay networks
CN110138564B (en) Method for secure transmission of data from encoder, and storage medium
US9258204B2 (en) Method and apparatus for deciding network coding method based on link utilization
KR102400362B1 (en) A blockchain network attack packet detection method
Fu et al. High-Performance Steganographic Coding Based on Sub-Polarized Channel
Jiang et al. A degree distribution optimization algorithm for image transmission

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