An efficient blockchain covert communication method based on address coding
By employing an address-encoded blockchain covert communication method, which utilizes dynamic address sequences and AES encryption, the problems of low embedding efficiency and insufficient security in existing technologies are solved. This achieves efficient and secure covert communication, improving the embedding capacity and anti-detection capabilities of each transaction.
Patent Information
- Application Number
- CN202310916858.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-25
- Publication Date
- 2025-11-18
- Estimated Expiration
- 2043-07-25
AI Technical Summary
Existing blockchain covert communication solutions suffer from low embedding efficiency, insufficient security, and high costs, making it difficult to improve embedding efficiency while ensuring security and reducing transaction costs.
An efficient blockchain covert communication method based on address encoding is adopted. By sharing address encoding rules and seed keys, dynamic address sequences are generated using AES encryption and hash key chains. Odd-numbered addresses are used as covert communication transaction receiving addresses, and even-numbered addresses are used to encode information, thereby realizing covert transmission and decryption of messages in blockchain transactions.
It improves the embedding efficiency of each transaction, with an average of 60 bits of data embedded per transaction, enhancing security and resistance to detection. Network behavior is difficult to distinguish from Bitcoin user traffic, and it resists address association attacks.
Smart Images

Figure CN116866052B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of covert communication, and particularly relates to a high-efficiency blockchain covert communication method based on address coding. BACKGROUND
[0002] With the development of information technology, its secure transmission problem has attracted widespread attention. In today's Internet environment, almost all people and enterprises are communicating by using public channels, and the public channel is very insecure, which brings privacy and security problems. In some scenarios that need to protect data security, although the information can be kept secret through encryption technology, once the ciphertext is intercepted by the attacker, the attacker cannot know the specific content of the ciphertext, but the behavior of sending random codes will arouse suspicion and leave traces for the attacker. Therefore, in the scenario with high security requirements, not only the security of the communication content needs to be ensured, but also the concealment of the communication behavior needs to be ensured.
[0003] Traditional covert communication mostly embeds secret information by using the space characteristics of the head element or protocol data unit (PDU), such as encoding secret information by modifying the field length, field position and field value, or embedding secret information by sending the time difference of the data packet itself. Obviously, the former will make the fields of the covert channel different from the fields of the normal business because the field length or content is modified, and the covert channel is easy to be detected. The latter needs to ensure the synchronization of the network states of both parties in the communication process. However, various noises exist in the network environment, which affect the time interval, and the monitor can also launch a large number of requests to destroy the communication, so the reliability is low. In addition, since the traditional covert communication parties carry out direct communication, and the PDU records the IP address, which represents the identity of the parties. If the attacker identifies the special data unit, it means that the identity of the communication parties is exposed, and the anonymity and anti-tracking cannot be guaranteed.
[0004] With the maturity of the blockchain technology, in order to solve the above problems, some scholars have proposed a blockchain-based covert communication scheme. The blockchain-based covert communication has the following advantages: 1. The flooding broadcast mechanism of the blockchain makes the sender of the covert communication not need to specify the receiver when sending special transactions, which guarantees the anonymity. 2. The decentralized characteristics of the blockchain make the data and transactions in the network once confirmed cannot be changed again, which guarantees the reliability. 3. The anonymous address in the blockchain does not contain any identity information, and even if the blockchain-based covert channel is exposed, the identity of the communication party cannot be tracked.
[0005] The document "J. Partala. Provably secure covert communication on blockchain. Cryptography." is the first provably secure blockchain covert communication scheme, which uses the least significant bits of the transaction address to carry secret information, and each transaction embeds 1 bit of secret information, with low embedding efficiency. With the development of technology, more and more researchers have begun to design blockchain-based covert communication schemes. However, this technology is not mature enough, and there are still many shortcomings, such as the document "DLchain: A Covert Channel Over Blockchain Based on Dynamic Labels" which continuously sends two transactions with the same random number signature, which is easy to expose the communication behavior; the document "Whispers on Ethereum: Blockchain-based Covert Data Embedding Schemes" embeds information into the Ethereum transaction amount, which improves security, but the embedding capacity is still small, and at most 20 bits can be embedded in a single transaction, and the amount cost is high.
[0006] Therefore, in view of the problems of low embedding efficiency, insufficient security and high amount cost, a new covert communication method is needed to improve the embedding efficiency while ensuring security and transaction cost. SUMMARY
[0007] In order to improve the embedding efficiency while ensuring security, the present application proposes a high-efficiency blockchain covert communication method based on address encoding, which specifically includes the following steps:
[0008] The address encoding rule and the seed key are shared between the message sender and the message receiver, the message sender randomly generates a pair of public and private keys, and shares the public key with the message receiver; the message sender expands the seed key into a message encryption key and an address generation key;
[0009] The message sender generates an address sequence using the address generation key and the blockchain private key;
[0010] The message sender AES encrypts the message to obtain the ciphertext ciphertext, and converts the ciphertext ciphertext into a binary stream text binary ;
[0011] The elements in the odd position and the even position in the address sequence are extracted to obtain the odd address sequence and the even address sequence;
[0012] The even address sequence is sequentially combined with the binary stream text binaryThe address code is obtained by encoding under the encoding rules, and the odd address sequence is used as the receiving address of the covert communication message;
[0013] After the message sender joins the blockchain network, when conducting a transaction, one address is selected sequentially from the odd-numbered addresses as the receiving address for the communication transaction, and address codes are generated in sequence and filled into the transaction remarks.
[0014] The message sender sends messages in the order of the odd-numbered address sequence;
[0015] The message receiver expands the seed key to obtain the address generation key, and uses the public key shared by the message sender and the address generation key to generate an address sequence. The elements in the address sequence at odd and even positions are extracted to obtain the odd address sequence and the even address sequence.
[0016] The message receiver scans transactions in the blockchain, identifies covert communication transactions based on odd-numbered addresses, and sorts and saves the covert communication transactions according to the address sequence.
[0017] Extract the transaction notes for each transaction, convert the transaction notes into a binary bit stream, and also convert even-numbered addresses into binary bit streams. Restore the two binary bit streams according to the address encoding rules to obtain the ciphertext.
[0018] Reassemble all the ciphertext binary streams to obtain the complete message ciphertext binary stream, convert it to characters, and then use K. data Decryption yields the final plaintext message.
[0019] Furthermore, the message sender uses the address to generate a secret key and the blockchain private key to generate an address sequence, including:
[0020] Generate key K from address addr Expanded into a hash key chain, the hash key chain is represented as:
[0021] K addr →K1=H(K addr →K2=H(H(K) addr ))→…→K n =H(…(K) addr )...)
[0022] Among them, K n H(·) represents the result after n hash operations; H(·) represents a hash operation.
[0023] Expand the randomly generated private key Sk0 from the message sender into a hashed private key chain, represented as:
[0024] Sk i =H(K) i-1 )+Sk i-1
[0025] Among them, Sk i This represents the i-th private key obtained by expanding the hash key chain, where i∈{1,2,…,n};
[0026] The corresponding hash public key chain is calculated based on the hash key chain and represented as follows:
[0027] Pk i =G×Sk i
[0028] Among them, Pk i represents the i-th public key obtained by expanding the hash public key chain; G is the elliptic curve base point used in the random generation of public and private keys.
[0029] The blockchain address sequence is calculated based on the hash public key chain and represented as follows:
[0030] addr i =CreatAddr(Pk i )
[0031] Among them, addr i This represents the i-th blockchain address; CreatAddr(·) represents the blockchain address generated from the public key.
[0032] Furthermore, odd and even addresses obtained from an address sequence are represented as follows:
[0033] addr1[]={addr[1],addr[3],…,addr[2k+1]}
[0034] addr0[]={addr[0],addr[2],…,addr[2k]}
[0035] Where addr1[] represents an odd address obtained from an address sequence, addr0[] represents an even address obtained from an address sequence, and addr[i] represents the address of the i-th position in an address sequence.
[0036] Furthermore, even address sequences and binary stream text binary The process of obtaining address encoding under encoding rules includes:
[0037] Let the message be encrypted binary stream text binary Match each bit of the address binary stream. If the bit of the message matches the bit of the address binary stream, the match is successful and the address code is marked as 1. If they do not match, the match fails and the address code is marked as 0.
[0038] Message Cipher Binary Streambinary If a bit fails to match, it continues to match with the next bit in the address binary stream. If the match is successful, it is marked as 1; if the match fails, it is marked as 0. This process is repeated until a match is successful.
[0039] If all bits in the address binary stream are used up, a new address code `addrIndex` is generated, and the matching continues using the next even address until the message ciphertext binary stream `text` is reached. binary All bits have been matched.
[0040] Furthermore, the process of restoring the ciphertext by using the binary bit stream corresponding to the transaction memo and the binary bit stream corresponding to the even address according to the address encoding rules includes: extracting the value at the same position as the value of 1 in the transaction memo from the even address in sequence, and all the extracted values constitute the binary stream of the ciphertext.
[0041] This invention also proposes an efficient blockchain covert communication system based on address encoding. This system implements an efficient blockchain covert communication method based on address encoding, comprising a sharing module, a generation module, an encryption module, a binary stream conversion module, a parity address separation module, an address encoding module, a blockchain transaction module, a covert transaction identification module, an address decoding module, a character conversion module, and a decryption module, wherein:
[0042] The sharing module is used to share seed keys and address encoding rules between message senders and message receivers;
[0043] The generation module is used to randomly generate public and private keys for the blockchain, expand the seed key into a message encryption key and an address generation key, and the receiver uses the address generation key and the public key of the blockchain to generate an address sequence and sends an address sequence generated using the address generation key and the private key of the blockchain.
[0044] The encryption module is used to encrypt messages using AES.
[0045] The binary stream conversion module is used to convert the encrypted ciphertext, even addresses, and transaction notes into binary streams.
[0046] The odd-even address separation module is used to extract elements at odd and even positions in an address sequence and generate odd and even addresses respectively.
[0047] The address encoding module is used to encode even addresses and binary stream text. binary Encode the address to obtain the address code;
[0048] The blockchain transaction module is used by users to conduct blockchain transactions. During the transaction process, odd-numbered addresses are used as the receiving addresses for covert communication messages, and the address codes are filled into the transaction remarks.
[0049] The covert transaction identification module is used to identify whether a block in the blockchain network contains a transaction with an odd address based on the odd address. If it does, the transaction is identified as covert communication.
[0050] The address decoding module is used to decode the binary bit stream corresponding to the transaction notes of each transaction and the even address to obtain the binary stream corresponding to the ciphertext message.
[0051] The character conversion module is used to convert the binary stream corresponding to the encrypted message into characters;
[0052] The decryption module is used to decrypt the ciphertext message converted into characters to obtain the corresponding plaintext message.
[0053] Compared with existing technologies, this solution has at least the following significant advantages:
[0054] 1. Higher security, mainly reflected in the following aspects: (1) All network communication between the sender and receiver is carried out in accordance with the standard Bitcoin protocol specification. Therefore, for external observers, the network behavior of both parties is indistinguishable from the traffic of real Bitcoin users. (2) Dynamic addresses are used as the receiving addresses of transactions. Compared with the fixed label scheme, we can resist address association attacks. (3) Compared with DLchain and ChainChannels, although the embedding capacity is larger than this method, the security is lower because two signatures with the same auxiliary factor will be sent. Once the attacker discovers the error, he can obtain the private key and thus obtain the ciphertext of the message. In this technology, even if the sender knows the dynamic address, the address encoding is generated by the even address in the address sequence. Even addresses will not appear on the blockchain. The attacker still cannot obtain the ciphertext of the message, which means that it is impossible to determine that this is a covert communication transaction. This improves the resistance to detection.
[0055] 2. Higher transmission efficiency while ensuring security. Existing solutions such as BLOCCE can only embed 1 bit of data per transaction, and the Whispers protocol can only embed a maximum of 20 bits of data per transaction, while this solution can embed an average of 60 bits of data per transaction, which greatly improves transmission efficiency and real-time communication compared to existing solutions. Attached Figure Description
[0056] Figure 1 This invention employs an efficient blockchain covert communication model based on address encoding.
[0057] Figure 2 This is an example of a blockchain covert channel in a specific embodiment of the present invention;
[0058] Figure 3This is a flowchart of an efficient blockchain covert communication method based on address encoding according to the present invention. Detailed Implementation
[0059] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.
[0060] This invention proposes an efficient blockchain covert communication method based on address encoding, such as... Figure 3 Specifically, it includes the following steps:
[0061] The message sender and message receiver share the address encoding rules and seed key. The message sender randomly generates a public-private key pair and shares the public key with the message receiver. The message sender expands the seed key into a message encryption key and an address generation key.
[0062] The message sender uses the address generation key and the blockchain private key to generate an address sequence;
[0063] The message sender encrypts the message using AES to obtain the ciphertext and then converts the ciphertext into a binary stream text. binary ;
[0064] Extract the elements at odd and even positions in the address sequence to obtain the odd address sequence and the even address sequence;
[0065] Even address sequences are sequentially combined with binary stream text. binary The address code is obtained by encoding under the encoding rules, and the odd address sequence is used as the receiving address of the covert communication message;
[0066] After the message sender joins the blockchain network, when conducting a transaction, one address is selected sequentially from the odd-numbered addresses as the receiving address for the communication transaction, and address codes are generated in sequence and filled into the transaction remarks.
[0067] The message sender sends messages in the order of the odd-numbered address sequence;
[0068] The message receiver expands the seed key to obtain the address generation key, and uses the public key shared by the message sender and the address generation key to generate an address sequence. Elements at odd and even positions in the address sequence are extracted to obtain the odd address sequence and the even address sequence.
[0069] The message receiver scans transactions in the blockchain, identifies covert communication transactions based on odd-numbered addresses, and sorts and saves the covert communication transactions according to the address sequence.
[0070] Extract the transaction notes for each transaction, convert the transaction notes into a binary bit stream, and also convert even-numbered addresses into binary bit streams. Restore the two binary bit streams according to the address encoding rules to obtain the ciphertext.
[0071] Reassemble all the ciphertext binary streams to obtain the complete message ciphertext binary stream, convert it to characters, and then use K. data Decryption yields the final plaintext message.
[0072] The efficient blockchain covert communication model based on address encoding adopted in this invention is as follows: Figure 1 As shown, the sender of a secret message hides the ciphertext of the message within a blockchain transaction based on address encoding and address sequence. Ordinary users participate in the blockchain transaction and act as miners, generating blocks. Other users receive these blocks, and the receiving user determines whether it is a secret message by scanning the address sequence in the block. They then decrypt the ciphertext using the shared key and other data between the sender and receiver to obtain the secret message. In this embodiment, a blockchain covert communication method based on address encoding is described in detail in four parts: pre-sharing, message embedding, message transmission, and message extraction.
[0073] (a) Prior sharing
[0074] Step 1: The sender and receiver share the seed key and address encoding rules, and randomly generate a blockchain public-private key pair (Sk0, Pk0). The public key Pk0 is then shared with the receiver. The seed key is expanded into the message encryption key K. data Generate key K with address addr .
[0075] Step 2: The sender uses the address to generate key K. addr Generate an address sequence with the private key Sk0. Further, step 2 specifically includes the following steps:
[0076] Step 2.1: Generate key K from address addr Expanded into a hash key chain, that is:
[0077] K addr →K1=H(K addr →K2=H(H(K) addr ))→…→K n =H(…(K) addr ...);
[0078] Among them, K nH(·) represents the result after n hash operations; H(·) represents a hash operation.
[0079] Step 2.2: Expand the private key Sk0 into a hashed private key chain, that is:
[0080] Sk i =H(K) i-1 )+Sk i-1 ;
[0081] Among them, Sk i This represents the i-th private key obtained by expanding the hash key chain, where i∈{1,2,…,n};
[0082] Step 2.3: Calculate the corresponding public key chain, i.e.:
[0083] Pk i =G×Sk i ;
[0084] Among them, Pk i represents the i-th public key obtained by expanding the hash private key chain; G is the elliptic curve base point used in the random generation of public and private keys.
[0085] Step 2.4: Calculate the blockchain address sequence, i.e.:
[0086] addr i =CreatAddr(Pk i );
[0087] Among them, addr i This represents the i-th blockchain address; CreatAddr(·) represents the blockchain address generated from the public key.
[0088] (II) Message Embedding
[0089] Step 1: Use K data Encrypt the message using AES to obtain the ciphertext, and then convert the ciphertext into a binary stream text. binary That is, the formula: text binary = z(ciphertext).
[0090] Step 2: Separate the addresses in the address sequence that are in odd positions from those that are in even positions, calling them the odd address addr1[i] and the even address addr0[i], and the even address and text. binary Address codes are generated under the influence of encoding rules, with odd-numbered addresses used as receiving addresses for covert communication transactions. Odd and even addresses can be represented as follows:
[0091] addr1[]={addr[1],addr[3],…,addr[2k+1]}
[0092] addr0[]={addr[0],addr[2],…,addr[2k]}
[0093] Where addr1[] represents an odd address obtained from an address sequence, addr0[] represents an even address obtained from an address sequence, and addr[i] represents the i-th position in an address sequence.
[0094] Step 3: Convert even-numbered addresses to binary stream addr binary [i], addr binary [i] = z(addr0[i]).
[0095] Step 4: Generate address encoding according to the address encoding rules. The address encoding rules are: message ciphertext binary stream text binary Each bit is matched against the address binary stream. If the bit matches the corresponding bit in the address binary stream, it is considered a successful match, and the address code is marked as '1'. If they do not match, the match fails, and the address code is marked as '0'. The bit then continues to be matched against the next bit in the address binary stream. If the match is successful, the code is marked as '1'; if the match fails, it is marked as '0'. This process continues until a matching bit is found in the address binary stream, and then the next bit in the message binary stream is matched in the same way.
[0096] If all bits of the address binary stream are used up, an address code addrIndex is generated, and the matching continues using the binary stream of the next even address until every bit of the message has been matched.
[0097] Step 5: Construct covert communication transactions. Take the odd-numbered addresses addr1[i] sequentially as the receiving addresses for the covert communication transactions, and take the generated address codes addrIndex[i] sequentially to fill in the transaction remarks.
[0098] (III) Message Transmission
[0099] Step 1: The sender deploys a blockchain node in the network and joins the blockchain network.
[0100] Step 2: The sender sends the covert communication transactions in sequence. For miners and ordinary nodes, the address of the covert communication transaction is a normal blockchain address, so it is considered a normal transaction. Then, the miner packages the special transaction and the normal transaction together into a block. After successful mining, each node updates the newly generated block according to the consensus algorithm, and the block contains the special transaction.
[0101] (iv) Message Extraction
[0102] Step 1: The recipient deploys a node in the blockchain network, expands the seed key, and uses the public key Pk0 and the address to generate the key K. addr Generate an address sequence addr[i], and divide the address into odd address addr1[i] and even address addr0[i].
[0103] Step 2: Scan all transactions in the block, identify covert communication transactions based on odd address addr1[i], sort the covert communication transactions by address sequence and save them.
[0104] Step 3: Extract the memo data[i] of each transaction and convert it into a binary bitstream addrIndex[i]. Also convert even-numbered addresses into a binary stream addr. binary [i].
[0105] Step 4: addrIndex[i] and addr binary [i] Reconstruct the ciphertext binary stream of the message according to the encoding rules: whenever the address encoding addrIndex bit is '1', this bit in the ciphertext binary stream will match the corresponding bit in the address binary stream. For example, if the transaction memo binary stream is 00101, the even address binary stream is 10100, the third and fifth bits of the transaction memo binary stream are 1, and the third and fifth bits of the even address binary stream are 0, then the reconstructed ciphertext binary stream of the message will be 10.
[0106] Step 5: Reassemble all the ciphertext binary streams to obtain the complete message ciphertext binary stream, convert it to characters, and then use K... data Decryption yields the final plaintext message.
[0107] This invention also proposes an efficient blockchain covert communication system based on address encoding. This system implements an efficient blockchain covert communication method based on address encoding, comprising a sharing module, a generation module, an encryption module, a binary stream conversion module, a parity address separation module, an address encoding module, a blockchain transaction module, a covert transaction identification module, an address decoding module, a character conversion module, and a decryption module, wherein:
[0108] The sharing module is used to share seed keys and address encoding rules between message senders and message receivers;
[0109] The generation module is used to randomly generate public and private keys for the blockchain, expanding the seed key into a message encryption key and an address generation key. The receiver uses the address generation key and the blockchain's public key to generate an address sequence, and the sender uses the address generation key and the blockchain's private key to generate an address sequence. It's worth noting that the message sender's use of the address generation key and blockchain private key to generate the address sequence includes:
[0110] Generate key K from address addr Expanded into a hash key chain, the hash key chain is represented as:
[0111] K addr →K1=H(K addr →K2=H(H(K) addr ))→…→K n =H(…(K) addr )...)
[0112] Among them, K n H(·) represents the result after n hash operations; H(·) represents a hash operation.
[0113] Expand the randomly generated private key Sk0 from the message sender into a hash key chain, represented as:
[0114] Sk i =H(K) i-1 )+Sk i-1
[0115] Among them, Sk i This represents the i-th private key obtained by expanding the hash key chain, where i∈{1,2,…,n};
[0116] The corresponding hash private key chain is calculated based on the hash key chain and is represented as follows:
[0117] Pk i =G×Sk i
[0118] Among them, Pk i represents the i-th private key obtained by expanding the hash private key chain; G is the elliptic curve base point used in the random generation of public and private keys.
[0119] The blockchain address sequence is calculated based on the hash private key chain and represented as follows:
[0120] addr i =CreatAddr(Pk i )
[0121] Among them, addr i Represents the i-th blockchain address; CreatAddr(·) represents the blockchain address generated from the public key;
[0122] The process by which the transaction recipient uses the address to generate a key and the blockchain's public key to generate an address sequence includes:
[0123] Generate key K from address addr Expanded into a hash key chain, the hash key chain is represented as:
[0124] K addr →K1=H(K addr →K2=H(H(K) addr ))→…→K n =H(…(K) addr )...)
[0125] Among them, K n H(·) represents the result after n hash operations; H(·) represents a hash operation.
[0126] Expand the public key Pk0 shared by the message sender into a hash key chain, represented as:
[0127] Pk i =K i ×G+Pk i-1
[0128] Among them, Pk i Let represent the i-th private key obtained by expanding the hash public key chain; G is the base point of the elliptic curve used in the random generation of public and private keys;
[0129] The blockchain address sequence is calculated based on the hash public key chain and represented as follows:
[0130] addr i =CreatAddr(Pk i )
[0131] Among them, addr i This represents the i-th blockchain address; CreatAddr(·) represents the blockchain address generated from the public key.
[0132] The encryption module is used to encrypt messages using AES.
[0133] The binary stream conversion module is used to convert the encrypted ciphertext, even addresses, and transaction notes into binary streams.
[0134] The odd-even address separation module is used to extract elements at odd and even positions in an address sequence and generate odd and even addresses respectively.
[0135] The address encoding module is used to encode even addresses and binary stream text. binary Encode the address to obtain the address code;
[0136] The blockchain transaction module is used by users to conduct blockchain transactions. During the transaction process, odd-numbered addresses are used as the receiving addresses for covert communication messages, and the address codes are filled into the transaction remarks.
[0137] The covert transaction identification module is used to identify whether a block in the blockchain network contains a transaction with an odd address based on the odd address. If it does, the transaction is identified as covert communication.
[0138] The address decoding module is used to decode the binary bit stream corresponding to the transaction notes of each transaction and the even address to obtain the binary stream corresponding to the ciphertext message.
[0139] The character conversion module is used to convert the binary stream corresponding to the encrypted message into characters;
[0140] The decryption module is used to decrypt the ciphertext message converted into characters to obtain the corresponding plaintext message.
[0141] To provide a more detailed explanation of the above process, this embodiment provides a specific implementation procedure. In this embodiment, the development languages are Python and Golang. The experimental hardware consists of a client and a server. The client hardware is a regular PC with an i5-12500H 2.50GHz processor, 16GB of memory, and Windows 11 operating system. The server is a dedicated server with an Intel(R) Xeon(R) CPU E5-2603 v4@1.70GHz processor and Ubuntu-20.04.1 operating system. The experimental network is the Bitcoin testnet. Figure 2 This is a detailed flowchart. Since extraction is the reverse process of embedding, only the embedding process will be described in detail. The specific steps are as follows:
[0142] Step 1: Both parties share the seed key and expand it into the address generation key K. addr Message encryption key K data The sender shares the public key Pk0, and the shared content is shown in Table 1.
[0143] Table 1 Shared Content
[0144]
[0145]
[0146] Step 2: The sender uses the address to generate key K. addr An address sequence was generated using the private key Sk0, resulting in 6 addresses.
[0147] Step 3: Use K dataThe message (in this embodiment, the message content is "this is a secret message") is encrypted using AES to obtain the ciphertext:
[0148] "wkKLBMVpgX8I5gF7nvLTF7Y3S4Vm8B1q2a0uj5Bbd6oTgz3QbuAnLZo=".
[0149] Step 4: Convert the ciphertext and even-numbered addresses into binary, and generate address codes by matching each bit. This results in six address codes. Each address code is then Basse64 encoded to ensure that the content entered into the OP_RETURN field is not garbled. Odd-numbered addresses are then used as the transaction receiving addresses. The receiving addresses and address codes are shown in Table 2.
[0150] Table 2 Receiving Address and Address Code
[0151]
[0152] Step 5: The sender constructs a transaction containing two outputs: a normal transfer transaction output with the receiving address as an address sequence, and a memo output with an OP_RETURN field added. It's worth noting that Bitcoin converts the string content in OP_RETURN to hexadecimal characters, resulting in the final result being... Figure 2 Transaction notes.
[0153] Step 6: Package the transactions and broadcast them to the network in sequence. There are a total of 6 transactions. Each transaction contains three outputs: change address, transfer address (i.e., the odd address in the address sequence), and OP_RETURN output.
[0154] The receiver generates a key K based on the public key Pk0 and the address. addr Generate an address sequence. Locate the corresponding transaction in the block using the odd-numbered addresses in the address sequence. Extract the OP_RETURN output of the special transaction, convert OP_RETURN to string format, then to binary format to obtain the address code. Interact with the even-numbered addresses to reconstruct the ciphertext binary stream. Reassemble all the ciphertext binary streams, and then use K... data Decryption yields the original message "this is a secret message".
[0155] Although embodiments of the invention have been shown and described, it will be understood by those skilled in the art that various changes, modifications, substitutions and alterations can be made to these embodiments without departing from the principles and spirit of the invention, the scope of which is defined by the appended claims and their equivalents.
Claims
1. A highly efficient blockchain covert communication method based on address encoding, characterized in that, Specifically, the following steps are included: The message sender and message receiver share the address encoding rules and seed key. The message sender randomly generates a public-private key pair for the blockchain and shares the public key with the message receiver. The message sender expands the seed key into a message encryption key and an address generation key. The message sender uses the address generation key and the blockchain private key to generate an address sequence, including: in, This represents the result after performing n hash operations; This represents a hash operation; The private key randomly generated by the message sender Expanded into a hashed private key chain, it is represented as: in, This represents the i-th private key obtained by expanding the hash private key chain, where i∈{1,2,…,n}; The corresponding hash public key chain is calculated based on the hash private key chain and is represented as follows: in, This represents the i-th public key obtained by expanding the hash public key chain; The elliptic curve base points used in the random generation of public and private keys; The blockchain address sequence is calculated based on the hash public key chain and represented as follows: in, This represents the i-th blockchain address; This indicates that the corresponding blockchain address is generated from the public key; The message sender uses the message encryption key to encrypt the message using AES to obtain the ciphertext. and ciphertext Convert to binary stream ; Extracting elements at odd and even positions from the address sequence yields odd address sequences and even address sequences; the even address sequence and the binary stream... The process of obtaining address encoding under encoding rules includes: Let the message ciphertext binary stream Match each bit of the address binary stream. If the bit of the message matches the bit of the address binary stream, the match is successful and the address code is marked as 1. If they do not match, the match fails and the address code is marked as 0. Message Cipher Binary Stream If a bit fails to match, it continues to match with the next bit in the address binary stream. If the match is successful, it is marked as 1; if the match fails, it is marked as 0. This process is repeated until a match is successful. If all bits in the address binary stream are used up, a new address code is generated. Continue matching using the next even-numbered address until the ciphertext binary stream of the message is reached. All bits have been matched; Even address sequences are sequentially combined with binary streams The address code is obtained by encoding according to the encoding rules, and the odd address sequence is used as the receiving address of the covert communication message; After the message sender joins the blockchain network, when conducting a transaction, one address is selected sequentially from the odd-numbered addresses as the receiving address for the communication transaction, and address codes are generated in sequence and filled into the transaction remarks. The message sender sends messages in the order of the odd-numbered address sequence; The message receiver expands the seed key to obtain the address generation key, and uses the public key shared by the message sender and the address generation key to generate an address sequence. The elements in the address sequence at odd and even positions are extracted to obtain the odd address sequence and the even address sequence. The message receiver scans transactions in the blockchain, identifies covert communication transactions based on odd-numbered addresses, and sorts and saves the covert communication transactions according to the address sequence. Extract the transaction notes for each transaction, convert the transaction notes into a binary bit stream, and also convert even-numbered addresses into binary bit streams. Restore the two binary bit streams according to the address encoding rules to obtain the ciphertext. All the ciphertext binary streams are reassembled to obtain the complete ciphertext binary stream of the message. After being converted into characters, they are decrypted using the message encryption key to obtain the final plaintext message.
2. The efficient blockchain covert communication method based on address encoding according to claim 1, characterized in that, Odd and even addresses obtained from an address sequence are represented as follows: in, This indicates an odd-numbered address obtained from an address sequence. This indicates an even-numbered address obtained from an address sequence; This represents the address of the i-th position in an address sequence.
3. The efficient blockchain covert communication method based on address encoding according to claim 1, characterized in that, The process of restoring the ciphertext using the binary bit stream corresponding to the transaction memo and the binary bit stream corresponding to the even address according to the address encoding rules includes: extracting the value at the same position as the value of 1 in the transaction memo from the even address in sequence, and all the extracted values constitute the binary stream of the ciphertext.
4. A high-efficiency blockchain covert communication system based on address encoding, characterized in that, This system is used to implement the efficient blockchain covert communication method based on address encoding as described in claim 1, comprising a sharing module, a generation module, an encryption module, a binary stream conversion module, a parity address separation module, an address encoding module, a blockchain transaction module, a covert transaction identification module, an address decoding module, a character conversion module, and a decryption module, wherein: The sharing module is used to share seed keys and address encoding rules between message senders and message receivers; The generation module is used to randomly generate public and private keys for the blockchain, expand the seed key into a message encryption key and an address generation key, and the receiver uses the address generation key and the public key of the blockchain to generate an address sequence and sends an address sequence generated using the address generation key and the private key of the blockchain. The encryption module is used to encrypt messages using AES. The binary stream conversion module is used to convert the encrypted ciphertext, even addresses, and transaction notes into binary streams. The odd-even address separation module is used to extract elements at odd and even positions in an address sequence and generate odd and even addresses respectively. The address encoding module is used to encode even addresses and binary streams. Encode the address to obtain the address code; The blockchain transaction module is used by users to conduct blockchain transactions. During the transaction process, odd-numbered addresses are used as the receiving addresses for covert communication messages, and the address codes are filled into the transaction remarks. The covert transaction identification module is used to identify whether a block in the blockchain network contains a transaction with an odd address based on the odd address. If it does, the transaction is identified as covert communication. The address decoding module is used to decode the binary bit stream corresponding to the transaction notes of each transaction and the even address to obtain the binary stream corresponding to the ciphertext message. The character conversion module is used to convert the binary stream corresponding to the encrypted message into characters; The decryption module is used to decrypt the ciphertext message converted into characters to obtain the corresponding plaintext message.
5. The efficient blockchain covert communication system based on address encoding according to claim 4, characterized in that, The recipient uses the address to generate a key and the blockchain's public key to generate an address sequence, including: Generate a key from the address Expanded into a hash key chain, the hash key chain is represented as: in, This represents the result after performing n hash operations; This represents a hash operation; Share the public key between the message sender and the sender. Expanded into a hash public key chain, it is represented as: in, This represents the i-th public key obtained by expanding the hash public key chain; The elliptic curve base points used in the random generation of public and private keys; The blockchain address sequence is calculated based on the hash public key chain and represented as follows: in, This represents the i-th blockchain address; This indicates that the corresponding blockchain address is generated from the public key.
6. The efficient blockchain covert communication system based on address encoding according to claim 4, characterized in that, The odd and even address separation module obtains the odd and even addresses from an address sequence as follows: in, This indicates an odd-numbered address obtained from an address sequence. This indicates an even-numbered address obtained from an address sequence; This represents the address of the i-th position in an address sequence.
7. The efficient blockchain covert communication system based on address encoding according to claim 4, characterized in that, In the address encoding module, based on even addresses and binary streams... The process of obtaining the address code through encoding includes: Let the message ciphertext binary stream Match each bit of the address binary stream. If the bit of the message matches the bit of the address binary stream, the match is successful and the address code is marked as 1. If they do not match, the match fails and the address code is marked as 0. Message Cipher Binary Stream If a bit fails to match, it continues to match with the next bit in the address binary stream. If the match is successful, it is marked as 1; if the match fails, it is marked as 0. This process is repeated until a match is successful. If all bits in the address binary stream are used up, a new address code is generated. It then retrieves new odd and even addresses from the new address encoding, and continues matching using the new even addresses until the ciphertext binary stream of the message is reached. All bits have been matched.
8. The efficient blockchain covert communication system based on address encoding according to claim 4, characterized in that, The address decoding module is crucial. The decoding process based on the binary bit stream corresponding to the transaction notes of each transaction and the even-numbered address includes: using the binary bit stream corresponding to the transaction notes and the binary bit stream corresponding to the even-numbered address to restore the ciphertext according to the address encoding rules; and extracting the values at the same positions as the values of 1 in the transaction notes from the even-numbered addresses in sequence. All extracted values constitute the binary stream of the ciphertext.
Citation Information
Patent Citations
Covert communication method, device and system based on blockchain and encryption technology
CN112600665A
Transaction amount-based double-flow sequence block chain covert communication method
CN116029723A