KR20220053400A - 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
KR20220053400A
KR20220053400A KR1020200137841A KR20200137841A KR20220053400A KR 20220053400 A KR20220053400 A KR 20220053400A KR 1020200137841 A KR1020200137841 A KR 1020200137841A KR 20200137841 A KR20200137841 A KR 20200137841A KR 20220053400 A KR20220053400 A KR 20220053400A
Authority
KR
South Korea
Prior art keywords
block
node
value
threshold value
covert channel
Prior art date
Application number
KR1020200137841A
Other languages
Korean (ko)
Other versions
KR102475221B1 (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
    • H04L2209/38

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

According to an embodiment of the present invention, a method of generating a covert channel in a blockchain network comprises: 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 the first block to a 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 of candidate first threshold values by performing the first to fourth steps on the plurality of candidate first threshold values to which different arbitrary values are set; a sixth step of training a decision tree using the M samples obtained for each candidate first threshold value; a seventh step of determining a first threshold value which 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. According to the present invention, the covert channel which is simpler than the prior art and has a high security level can be generated.

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 and apparatus for generating a covert channel based on a decision tree.

코버트 채널(Covert channel)은 일종의 은닉(또는 비밀 통신) 채널에 해당한다. 코버트 채널은 송신자와 수신자간의 비밀 통신 통로를 의미하는 것이 아니라, 송신자와 수신자간에 주고 받는 데이터나 메시지가 특정 암호화/인코딩 방식으로 암호화/인코딩되어 전송되는 것을 의미하며, 이렇게 암호화/인코딩된 데이터가 전송되는 경우 해당 데이터는 코버트 채널을 통해 전송된다고 표현될 수 있다.A covert channel corresponds to a kind of hidden (or secret communication) channel. The covert channel does not mean a secret communication path between the sender and the receiver, but means that data or messages exchanged between the sender and the receiver are encrypted/encoded using a specific encryption/encoding method and transmitted. 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 the sender sends the message [a b c d] to the receiver, if the covert channel does not exist, the sender, receiver, and a third party all recognize the message as [a b c d]. However, assuming 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 is. will do In this way, a covert channel is created by specifying/promising to each other the encryption/encoding method between the sender and the receiver.

인터넷이나 무선 네트워크, 그리고 안드로이드 시스템과 같은 다양한 시스템/네트워크에서 다양한 방식/형태의 코버트 채널이 제안된 바 있으며, 블록체인 시스템에서도 코버트 채널이 제안된 바 있다. Various methods/forms 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 mainly utilizes transaction information or cryptographic related functions. However, such a conventional covert channel has a problem in that the technology is complicated and inconvenient.

따라서, 본 명세서에서는 종래의 코버트 채널에 비해 보다 간편하고 편리한 방식의 코버트 채널에 대해 제안하고자 함이 목적이다.Accordingly, it is an object of the present specification to propose a covert channel that is simpler and more convenient than 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, there is provided a method for generating a covert channel in a block chain network, the method comprising: 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; 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 the M samples obtained for each candidate first threshold value; a seventh step of determining a first threshold value, which 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 applying the determined first threshold value to the decision tree to generate the covert channel; may include

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

또한, 본 발명의 일 실시예에 따르면, 블록체인 네트워크 기반의 새로운 코버트 채널 생성 방식을 제안하므로, 코버트 채널의 영역이 확장된다는 효과가 있다. In addition, according to an embodiment of the present invention, since a new covert channel creation method based on a block chain network is proposed, the area of the covert channel 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 block chain network according to an embodiment of the present invention.
2 is a flowchart illustrating 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 may have various changes and may have 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, and 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, and B may be used to describe various components, but the components are not limited by the above terms, and only for the purpose of distinguishing one component from other components. is used only as For example, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component without departing from the scope of the present invention. and/or includes a combination of a plurality of related listed items or any of a plurality of related listed items. For example, 'A and/or B' may be interpreted as meaning 'at least one of A or B'. Also, '/' may be interpreted as 'and' or 'or'.

본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.In terms of terms used herein, the singular expression should be understood to include a plural expression unless the context clearly dictates otherwise, and terms such as "comprises" include the specified feature, number, step, operation, and element. , parts or combinations thereof are to be understood, but not to exclude the possibility of the presence or addition of one or more other features or numbers, step operation components, parts or combinations thereof.

도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.Prior to a detailed description of the drawings, it is intended to clarify that the classification of the constituent parts in the present specification is merely a division according to the main function each constituent unit is responsible for. 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 of the constituent units to be described below may additionally perform some or all of the functions of other constituent units in addition to the main function it is responsible for. Of course, it can also be performed by being dedicated to it.

또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in performing the method or method of operation, each process constituting the method may occur differently 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 block chain 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 , the block chain network 100 may be composed of a plurality of block chain nodes 110-1 to 110-N. The blockchain nodes 110-1 to 110-N are IoT devices constituting the blockchain network 100, and are a mining node that largely participates in the mining operation, and verification that performs the verification operation of the mined block. ) can be divided into nodes. In particular, the mining node may perform block mining by composing a plurality of transactions into one block, and may broadcast the mined block to other blockchain nodes included in the blockchain network 100 . The verification node performs verification work on the blocks received from the mining node based on the Proof of Work mechanism, and only verified blocks can be selectively added to the block chain. More specifically, the verification node performs a verification operation based on whether the block hash value of the block including the transaction is smaller than the predetermined hash value, and only when it is determined that the block hash value is smaller than the predetermined hash value It can be added to the blockchain as the verification of the block was successful. 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 it to the block chain as the verification for the block has failed.

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

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

도 2는 본 발명의 일 실시예에 따른 코버트 채널 생성 방법에 관한 순서도이다.2 is a flowchart illustrating 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 method for generating a covert channel proposed in the present specification may largely include a training step ( S210 ) and a prediction step ( S210 ).

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

예측 단계(S220)는, 트레이닝의 결과로 완성된 결정 트리에 새롭게 생성된 샘플을 입력한 결과, 해당 샘플이 좌자손 노드로 분류되는 경우 해당 샘플을 좌자손 노드에 할당된 클래스로 예측하고, 해당 샘플이 우자손 노드로 분류되는 경우 해당 샘플을 우자손 노드에 할당된 클래스로 예측하게 된다. 구체적인 인코딩/디코딩 동작은 예측 단계에서 수행되게 된다. In the prediction step (S220), as a result of inputting a newly generated 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. When a sample is classified as a right descendant node, the 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/create a decision tree that is a basis for generating a covert channel through the training step (S210), and predict data in the prediction step (S220) based on the decision tree constructed/generated in this way. By encoding/decoding, a covert channel is created.

보다 구체적인 코버트 채널 생성 방법에 대해서는 도 3 및 4를 참조하여 이하에서 상세히 후술한다.A more specific method of generating a covert channel 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 flowchart corresponds to a more detailed/subdivided flowchart of the embodiment of FIG. 2 . This flowchart may be performed by an encoder and/or a decoder node. Accordingly, some steps are performed in common by the encoder and decoder nodes, but the remaining steps may be performed by the encoder or decoder node alone.

특히, 본 순서도는 서로 다른 후보 제1 스레시홀드 값에 대하여 반복적으로 수행될 수 있다. 예를 들어, 본 순서도는 제1 후보 제1 스레시홀드 값에 대하여 x=M이 될때까지 반복 수행, 제2 후보 제 1 스레시홀드 값에 대하여 x=M이 될때까지 반복 수행, ... 제N 후보 제1 스레시홀드 값에 대하여 x=M이 될때까지 반복 수행될 수 있으며, 그 결과 각 후보 제1 스레시홀드 값 별로 M개의 샘플이 수집될 수 있다. 여기서, 각 후보 제1 스레시홀드 값은 임의의 값으로 설정될 수 있으며, 다른 후보 제1 스레시홀드 값과 다른 값으로 설정된다.In particular, this flowchart may be iteratively performed for different candidate first threshold values. For example, in this flowchart, the first candidate first threshold value is repeatedly performed until x=M, the second candidate first threshold value is repeatedly performed until x=M, ... The N-th candidate first threshold value may be repeatedly performed 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 value different from other candidate first threshold values.

도 3을 참조하면, 우선, 인코더 및/또는 디코더 노드는 제1 블록 해시 값이 포함된 제1 블록을 채굴(mining)할 수 있다(S310). 나아가, 인코더 및/또는 디코더 노드는 채굴한 제1 블록을 블록체인 네트워크에 브로드캐스트할 수 있다(S320). 검증 노드는 수신한 제1 블록을 검증하여 블록체인에 추가할 수 있다(S330). Referring to FIG. 3 , first, an encoder and/or a 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 block chain (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 for mining and verifying blocks, and M samples (more specifically, M first blocks) to be used for training a decision tree may be secured by performing M iterations M times. M can be set to various values by the blockchain network administrator/operator or the covert channel operator/user. To this end, the encoder and/or decoder node increments the count value whose initial value is set to 0 by 1 every time steps S310 to S330 are completed once (S340), and when the count value becomes M (S350), S360 step can be passed.

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

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

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 the first threshold value. It can be classified as a descendant node or a right descendant node. More specifically, when the first block hash value of the sample (first block) input to the decision tree 410 is equal to or greater than the first threshold value, the sample is classified as a left descendant node, and the first threshold value If the value is less than the value, the corresponding sample may be classified as a right descendant node. In this case, a class 1 defined as a value of '1' among bit values may be assigned to the left descendant node, and a class 0 defined as a value '0' may be assigned/provided to the right descendant node, respectively.

제1 스레시홀드 값은 작업 증명 메커니즘에서 블록을 검증하는 데 기준이 되는 기설정된 해시 값보다 작은 값 중에서 cost 함수 값을 최소화하는 값으로 선택/결정될 수 있다. 특히, 제1 스레시홀드 값은 복수의 후보 제1 스레시홀드 값들 중에서 cost 함수 값을 최소화하는 값으로 선택/결정될 수 있다. The first threshold value may be selected/determined as a value that minimizes the cost function value among values smaller than a preset hash value that is a criterion for verifying a block in the proof-of-work mechanism. In particular, the first threshold value may be selected/determined as a value that minimizes the cost function value among the 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 to a random value of T_f' until M samples are collected. Similarly, a decision tree may be trained based on a second candidate first threshold value fixed to another arbitrary value of T_f'' (ie, T_f=T_f'') until M samples have been 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 the M samples collected for each candidate are used to determine. Trees can be trained. Among the plurality of candidate first threshold values obtained in this way, the first threshold value is a value that minimizes the cost function value among values smaller than a preset hash value that is a criterion for verifying a block in the proof-of-work mechanism. /can be decided.

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

Figure pat00001
Figure 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, n_l is the total first block hash value Among them, f <= the number of first block hash values satisfying 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. ) and G_r correspond to the Gini impurity of the right and left 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 pat00002
Figure pat00002

Figure pat00003
Figure 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-hand node, and R_(r,j) is the number of samples belonging to class j compared to the number of samples belonging to the right-left node. each corresponds to the proportion of

상술한 과정들은 결국 결정 트리(410)에 사용할 적합한 제1 스레시홀드 값을 찾기 위한 트레이닝 과정으로 해석될 수 있다.The above-described processes may eventually be interpreted as a training process for finding a suitable first threshold value to be used 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 (that is, M=1000), the number of samples satisfying the f <= T_f condition is 300, and the number of samples satisfying the f > T_f condition is 700. , the number of samples classified as a left descendant node (class 1) is 300, and the number of samples classified as a right descendant node (class 0) is 700. In this case, the sample ratio of the left descendant node and the right descendant node is determined to be 7:3. However, given the purpose of the present invention to generate a decision tree 410 for use in encoding the target data, samples are classified in a substantially equal ratio (eg, 5:5) to left and right descendant nodes. A first threshold value may be required to make it 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, respectively. However, the present invention is not limited thereto, and it goes without saying that a first threshold value for allowing samples to be separated at various ratios may be set by a covert channel designer/operator according to an embodiment, purpose of use, and the like.

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

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

인코더 및/또는 디코더 노드는 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 ). Here, as described above, the creation of the covert channel does not mean an actual communication path, but means encoding and decoding data to be transmitted in a preset manner. Accordingly, the creation of the covert channel may mean that data is transmitted/received using a decision tree to which the first threshold value determined according to training is applied.

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

코버트 채널 생성 후, 인코더 노드는 채굴한 제2 블록을 제1 스레시홀드 값이 결정된 결정 트리에 입력할 수 있다. 결정 트리의 출력 결과에 기초하여, 인코더 노드는 인코딩하고자 하는 대상 비트를 제2 블록으로 인코딩하여 제2 블록을 코버트 채널을 통해 전송할 수 있다. After the covert channel is created, the encoder node may input the mined second block into 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 the target bit to be encoded into the second block and transmit the second block through the covert channel.

보다 상세하게는, 인코더 노드는 결정 트리에 제2 블록을 입력할 수 있으며, 결정 트리는 제2 블록의 제2 블록 해시 값을 제1 스레시홀드 값과 비교할 수 있다. 제2 블록 해시 값이 제2 스레시홀드 값 이하인 경우, 결정 트리는 제2 블록을 좌자손 노드로 분류하며, 제2 블록 해시 값이 제1 스레시홀드 값을 초과하는 경우, 결정 트리는 제2 블록을 우자손 노드로 분류할 수 있다. More specifically, the encoder node may input the second block into the decision tree, and the decision tree may compare the hash value of the second block of the second block with the first threshold value. If the second block hash value is equal to or less than 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 is 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 class assigned to the node in which the sample is classified matches the target bit, and if they match, considers the sample as a result of encoding the target bit, and transmits the sample on behalf 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 object bit, the encoder node regards the second block as the value in which the object bit is encoded and 2 blocks can be transmitted to the decoder node through the covert channel. For example, if the bit value to be transmitted is '1' and the second block is classified as a left descendant node assigned class 1, 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 transmission target bit value '1'.

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

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

디코더 노드는 인코더 노드로부터 제2 블록을 수신할 수 있으며, 제2 블록울 제1 스레시홀드 값이 결정된 결정 트리에 입력할 수 있다. 나아가, 디코더 노드는 결정 트리의 분류 결과에 기초하여 제2 블록을 대상 비트로 디코딩할 수 있다.The decoder node may receive the second block from the encoder node, and may input the second block to the decision tree in which the first threshold value is determined. Furthermore, the decoder node may decode the second block into the target bit 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 into the decision tree, and the decision tree may compare the hash value of the second block of the second block with the first threshold value. If the second block hash value is equal to or less than 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 is the second block can be classified as a right descendant node. The decoder node may decode the second block with a class value assigned/given to the node into which the second block is classified. For example, when the second block is classified as a left descendant node assigned class 1, the second block may be decoded as 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 as a '0' value.

본 실시예를 위한 전제 조건으로서, 인코더 및 디코더 노드에서 동일한 제1 스레시홀드 값이 적용된 결정 트리가 구축되어야 한다. 이를 위해, 인코더 및 디코더 노드는 M 값이 동일하게 설정될 수 있으며, 동일한 알고리즘(즉, CART 알고리즘)에 의해 결정 트리를 트레이닝한 결과 동일한 제1 스레시홀드 값이 설정됨을 전제로 한다. 또한, 인코더 및 디코더 노드는 코버트 채널을 통한 데이터 송수신을 위해, 서로의 식별자 및 공공키를 공유함을 전제로 한다.As a prerequisite for this embodiment, a decision tree to which the same first threshold value is applied in the encoder and decoder nodes should be built. To this end, it is premised that the encoder and decoder nodes may set 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 premised that the encoder and decoder nodes share an identifier and a public key for data transmission/reception through a covert channel.

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

도 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 , the block chain 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 the present specification. Accordingly, in the above-described embodiments, the block chain node 500 may be described as being replaced with the processor 510 . The processor 510 may execute various mechanisms/algorithms/programs stored in the memory unit 520 and process internal data. In addition, the memory unit 520 and the communication unit 530 may be controlled to perform at least one embodiment proposed in the present specification, and data transmission/reception between components may be managed. The processor 510 is a CPU (Central Processing Unit), MPU (Micro Processor Unit), MCU (Micro Controller Unit), AP (Application Processor), AP (Application Processor), or any form well known in the art. It may be configured to include at least one processor.

특히, 본 명세서의 프로세서(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 a block mining and/or verification operation It is also possible to perform various operations related to blockchain network functions, such as

메모리부(520)는 다양한 디지털 데이터(예를 들어, 트랜잭션, 트랜잭션이 포함된 블록 등)를 저장할 수 있다. 메모리부(520)는 플래시 메모리, HDD(Hard Disk Drive), SSD(Solid State Drive) 등의 다양한 디지털 데이터 저장 공간을 나타낸다.The memory unit 520 may store various digital data (eg, a transaction, a block including a transaction, 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 a 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), 프로세서, 콘트롤러, 마이크로 콘트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.Embodiments according to the present invention may be implemented by various means, for example, hardware, firmware, software, or a combination thereof. In the case of implementation by hardware, an 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), a processor, a controller, a microcontroller, a microprocessor, and the like.

또한, 펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 일 실시예는 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차, 함수 등의 형태로 구현되어, 다양한 컴퓨터 수단을 통하여 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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 in a recording medium readable through various computer means. can be recorded. Here, the recording medium may include a program command, a data file, a data structure, etc. alone or in combination. The program instructions recorded on the recording medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. For example, the recording medium includes a magnetic medium such as a hard disk, a floppy disk, and a magnetic tape, an optical recording medium such as a compact disk read only memory (CD-ROM), a digital video disk (DVD), and a floppy disk. Magneto-Optical Media, such as a disk, and hardware devices specially configured to store and execute program instructions, such as 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 such as those generated by a compiler. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

아울러, 본 발명에 따른 장치나 단말은 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다. 나아가 본 발명에 따른 장치는 서버 팜(Server Farm)과 같이 네트워크에 걸쳐서 분산형으로 구현될 수 있으며, 혹은 단일의 컴퓨터 장치에서 구현될 수도 있다.In addition, the device or terminal according to the present invention may be driven by a command to cause 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 across a network, such as a server farm, or may be implemented in a single computer device.

또한, 본 발명에 따른 장치에 탑재되고 본 발명에 따른 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.Further, a computer program (also known as a program, software, software application, script or code) mounted on the device according to the invention and executing the method according to the invention includes 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 (eg, files that store one or more modules, subprograms, or portions of code), or portions of files that hold other programs or data. (eg, one or more scripts stored within a markup language document). The computer program may be deployed to be executed on a single computer or multiple computers located at one site or distributed over a plurality of sites and interconnected by a communication network.

설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시예들을 병합하여 새로운 실시예를 구현하도록 설계하는 것도 가능하다. 또한, 본 발명은 상술한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상술한 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.Although each drawing is described separately for convenience of description, 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 might be

또한, 이상에서는 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 명세서는 상술한 특정의 실시예에 한정되지 아니하며, 청구 범위에서 청구하는 요지를 벗어남이 없이 당해 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형 실시들은 본 명세서의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.In addition, although preferred embodiments have been illustrated and described above, the present specification is not limited to the specific embodiments described above, and those of ordinary skill in the art to which the specification pertains without departing from the gist of the claims Various modifications are possible by a person, of course, 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)만큼 반복적으로 수행하여 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;
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 the M samples obtained for each candidate first threshold value;
a seventh step of determining a first threshold value, which 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; A method of creating a covert channel, comprising:
제 1 항에 있어서,
상기 제3 단계는 작업 증명(Proof of Work) 메커니즘을 기반으로 수행되는, 코버트 채널 생성 방법.
The method of claim 1,
The third step is performed based on a Proof of Work mechanism.
제 2 항에 있어서,
상기 제3 단계는,
상기 제1 블록 해시 값이 상기 작업 증명 메커니즘에서 미리 정의된 제2 스레시홀드(threshold) 값보다 작은 경우, 상기 제1 블록의 검증이 성공한 것으로 보고 상기 블록을 상기 블록 체인에 추가하며,
상기 제1 블록 해시 값이 상기 제2 스레시홀드 값 이상인 경우, 상기 제1 블록의 검증이 실패한 것으로 보고 상기 제1 블록을 상기 블록 체인에 추가하지 않는 단계; 를 포함하는, 코버트 채널 생성 방법.
3. The method of claim 2,
The third step is
if the first block hash value is less than a second threshold value predefined in the proof-of-work mechanism, it is deemed that the verification of the first block is successful and the block is added to the block chain;
when the first block hash value is equal to or greater than the second threshold value, not adding the first block to the block chain, considering that the verification of the first block has failed; A method of creating a covert channel, comprising:
제 3 항에 있어서,
상기 결정 트리는, 루트(root) 노드로부터 좌자손(left child) 노드와 우자손(right child) 노드로 1차로만 분기되는 이진 트리에 해당하며,
상기 제1 블록 해시 값은,
상기 제1 스레시홀드 값 이상인 경우 상기 좌자손 노드로 분류되며, 상기 제1 스레시홀드 값 미만인 경우 상기 우자손 노드로 분류되는, 코버트 채널 생성 방법.
4. The method of claim 3,
The decision tree corresponds to a binary tree that is branched only primarily from a root node to a left child node and a right child node,
The first block hash value is,
When the first threshold value is greater than the first threshold value, the node is classified as the left descendant node, and when it is less than the first threshold value, it is classified as the right descendant node.
제 4 항에 있어서,
상기 좌자손 노드는 '1' 값으로 정의되는 1 클래스, 상기 우좌손 노드는 '0' 값으로 정의되는 0 클래스로 각각 구분되는, 코버트 채널 생성 방법.
5. The method of claim 4,
The left descendant node is divided into class 1 defined by a value of '1', and the right and left nodes are divided into class 0 defined by a value of '0', respectively.
제 5 항에 있어서,
상기 제1 스레시홀드 값은, 상기 복수의 후보 제1 스레시홀드 값들 중 상기 CART 알고리즘에서 정의된 cost 함수 값을 최소화하는 값으로 선택되는, 코버트 채널 생성 방법.
6. The method of claim 5,
The first threshold value is selected as a value that minimizes a cost function value defined in the CART algorithm among the plurality of candidate first threshold values.
제 6 항에 있어서,
상기 cost 함수는 수학식 1로 정의되는, 코버트 채널 생성 방법.
[수학식 1]
Figure 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 불순도임.
7. The method of claim 6,
The cost function is defined by Equation 1, a method of generating a covert channel.
[Equation 1]
Figure 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 so far by block mining, and n_l is the total first block hash value Among them, 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 the 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 pat00005

Figure pat00006

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

Figure pat00006

R_(l,j) is a ratio of the number of samples belonging to class j to the number of samples belonging to the left-hand node, and R_(r,j) is the number of samples belonging to class j compared to the number of samples belonging to the right-left node. ratio.
제 6 항에 있어서,
상기 코버트 채널 생성 후 채굴한 제2 블록을 상기 제1 스레시홀드 값이 결정된 결정 트리에 입력하는 단계; 및
상기 결정 트리의 분류 결과에 기초하여, 인코딩하고자 하는 대상 비트를 상기 제2 블록으로 인코딩하여 상기 제2 블록을 상기 코버트 채널을 통해 전송하는 단계; 를 포함하는, 코버트 채널 생성 방법.
7. The method of claim 6,
inputting a second block mined after the creation of the covert channel 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 the classification result of the decision tree and transmitting the second block through the covert channel; A method of creating a covert channel, comprising:
제 9 항에 있어서,
상기 결정 트리는, 입력받은 제2 블록의 제2 블록 해시 값을 상기 제1 스레시홀드 값과 비교하여:
상기 제2 블록 해시 값이 상기 제1 스레시홀드 값 이하인 경우, 상기 제2 블록을 상기 좌자손 노드로 분류하며,
상기 제2 블록 해시 값이 상기 제1 스레시홀드 값을 초과하는 경우, 상기 제2 블록을 상기 우자손 노드로 분류하는, 코버트 채널 생성 방법.
10. The method of claim 9,
The decision tree compares the second block hash value of the received second block with the first threshold value:
When the second block hash value is equal to or less than the first threshold value, the second block is classified as the left descendant node,
classifying the second block as the right descendant node when the second block hash value exceeds the first threshold value.
제 10 항에 있어서,
상기 분류 결과에 기초하여 상기 대상 비트를 상기 제2 블록으로 인코딩하여 전송하는 단계는,
상기 제2 블록이 상기 좌자손 노드로 분류되고, 상기 좌자손 노드에 대하여 정의된 클래스 값이 상기 대상 비트와 동일한 경우, 상기 제2 블록을 상기 대상 비트가 인코딩된 값으로 간주하여, 상기 제2 블록을 상기 코버트 채널을 통해 전송하는 단계; 를 포함하는, 코버트 채널 생성 방법.
11. The method of claim 10,
The step of encoding and transmitting the target bit to the second block based on the classification result,
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 the value encoded by the target bit, and the second block is transmitting a block over the covert channel; A method of creating a covert channel, comprising:
제 10 항에 있어서,
상기 분류 결과에 기초하여 상기 대상 비트를 상기 제2 블록으로 인코딩하여 전송하는 단계는,
상기 제2 블록이 상기 우자손 노드로 분류되고, 상기 우자손 노드에 대하여 정의된 클래스 값이 상기 대상 비트와 동일한 경우, 상기 제2 블록을 상기 대상 비트가 인코딩된 값으로 간주하여, 상기 제2 블록을 상기 코버트 채널을 통해 전송하는 단계; 를 포함하는, 코버트 채널 생성 방법.
11. The method of claim 10,
The step of encoding and transmitting the target bit to the second block based on the classification result,
When the second block is classified as the right descendant node and the class value defined for the right descendant node is the same as the object bit, the second block is regarded as the value encoded by the object bit, and the second block is transmitting a block over the covert channel; A method of creating a covert channel, comprising:
제 10 항에 있어서,
상기 제2 블록을 수신하는 단계;
상기 제2 블록을 상기 제1 스레시홀드 값이 결정된 결정 트리에 입력하는 단계; 및
상기 결정 트리의 분류 결과에 기초하여, 상기 제2 블록을 상기 대상 비트로 디코딩하는 단계; 를 포함하는, 코버트 채널 생성 방법.
11. The method of claim 10,
receiving the second block;
inputting the second block into a decision tree in which the first threshold value is determined; and
decoding the second block into the target bit based on the classification result of the decision tree; A method of creating a covert channel, comprising:
제 13 항에 있어서,
상기 분류 결과에 기초하여 상기 제2 블록을 상기 대상 비트로 디코딩하는 단계는,
상기 제2 블록이 상기 좌자손 노드로 분류되는 경우, 상기 제2 블록을 상기 좌자손 노드에 대하여 정의된 클래스 값을 상기 대상 비트로서 디코딩하는 단계; 를 포함하는, 코버트 채널 생성 방법.
14. The method of claim 13,
Decoding the second block into the target bit based on the classification result comprises:
decoding the second block as the target bit by a class value defined for the left descendant node when the second block is classified as the left descendant node; A method of creating a covert channel, comprising:
제 13 항에 있어서,
상기 분류 결과에 기초하여 상기 제2 블록을 상기 대상 비트로 디코딩하는 단계는,
상기 제2 블록이 상기 우자손 노드로 분류되는 경우, 상기 제2 블록을 상기 우자손 노드에 대하여 정의된 클래스 값을 상기 대상 비트로서 디코딩하는 단계; 를 포함하는, 코버트 채널 생성 방법.
14. The method of claim 13,
Decoding the second block into the target bit based on the classification result comprises:
decoding the second block as the target bit by a class value defined for the right descendant node when the second block is classified as the right descendant node; A method of creating a covert channel, comprising:
제 13 항에 있어서,
상기 대상 비트의 인코딩은 상기 블록체인 네트워크에 포함된 인코더 노드에 의해 수행되며, 상기 제2 블록의 디코딩은 상기 블록체인 네트워크에 포함된 디코더 노드에 의해 수행되는, 코버트 채널 생성 방법.
14. The method of 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 share each other's identifier and public key, 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 true KR20220053400A (en) 2022-04-29
KR102475221B1 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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190106551A (en) * 2018-03-09 2019-09-18 삼성에스디에스 주식회사 Apparatus for perfomming access contorl based on blockchain and method thereof
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190106551A (en) * 2018-03-09 2019-09-18 삼성에스디에스 주식회사 Apparatus for perfomming access contorl based on blockchain and method thereof
US20200133921A1 (en) * 2018-10-26 2020-04-30 Samsung Sds Co., Ltd. Method and apparatus for sharing information recorded on blockchain based on anchoring
KR20200046947A (en) * 2018-10-26 2020-05-07 삼성에스디에스 주식회사 Method for sharing information based on anchoring and anchoring apparatus supporting the same
US20200201846A1 (en) * 2019-06-28 2020-06-25 Alibaba Group Holding Limited Blockchain-based transaction processing

Also Published As

Publication number Publication date
KR102475221B1 (en) 2022-12-06

Similar Documents

Publication Publication Date Title
CN110119643B (en) Two-dimensional code generation method and device and two-dimensional code identification method and device
US11569978B2 (en) Encrypting and decrypting information
CN108270874B (en) Application program updating method and device
CN109691011B (en) Transmission device, reception device, quantum key distribution method, and medium
Karpman et al. Practical free-start collision attacks on 76-step SHA-1
WO2023056808A1 (en) Encrypted malicious traffic detection method and apparatus, storage medium and electronic apparatus
US10248324B2 (en) Oblivious parallel random access machine system and methods
AU2022216269A1 (en) Cyphergenics-based ecosystem security platforms
CN113722987A (en) Federal learning model training method and device, electronic equipment and storage medium
US20200169411A1 (en) Cryptograpic font script with integrated signature for verification
Chen et al. Secrecy coding for the binary symmetric wiretap channel
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
JP5511803B2 (en) Techniques for performing symmetric cryptography
US8270614B2 (en) Method of updating group key and group key update device using the same
CN112119608A (en) System and asynchronous protocol for verifiable secret sharing
KR102529272B1 (en) Secure communication method and device performing the same
WO2022026755A1 (en) Secure massively parallel computation for dishonest majority
KR101285597B1 (en) Method of updating group key and group key update device using the same
CN112765278A (en) Wireless Internet of things system based on block chain
CN111061682A (en) Data caching method, data reading method, electronic equipment and storage medium
CN110138564B (en) Method for secure transmission of data from encoder, and storage medium
Nguyen et al. Secure content distribution in vehicular networks
Wang et al. On achievable rates of line networks with generalized batched network coding
KR102400362B1 (en) A blockchain network attack packet detection method

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