Carrierless Steganography Method Based on Blockchain Transactions
By generating brother and son addresses in blockchain transactions, using the immutability and homomorphic hidden technology of the zcash system, the problem of insufficient robustness and centralized tampering risks in the existing technology is solved, and information embedding with high concealment and large hidden capacity is achieved.
Patent Information
- Application Number
- CN202210757536.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-06-29
- Publication Date
- 2025-08-05
- Estimated Expiration
- 2042-06-29
AI Technical Summary
The existing blockchain-based information hiding scheme is not robust enough to be detected, and the centralized server has the risk of tampering, making it difficult to achieve information embedding with high concealment and large hidden capacity.
By generating brother and son addresses in blockchain transactions, using the immutability and homomorphic hidden technology of the zcash system, secret information is embedded in the transaction amount, and information is extracted by the receiver monitoring the address transaction status.
It improves the concealment and robustness of information embedding, enhances the immutability of blockchain transactions, and realizes information embedding with high concealment and large hidden capacity.
Smart Images

Figure CN115189869B_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the field of information hiding, and in particular relates to a carrier-free steganography method based on blockchain transactions. Background Art
[0002] Steganography is a technique for concealing secret information within a carrier without arousing suspicion from steganalysts. Typically, a steganographic system consists of three parts: Alice, Bob, and Eve. Alice, the sender, hides the secret message within a carrier (cover), transforming it into another cover (stego) without changing its appearance. She then sends the stego to Bob, the receiver, via a public channel. Bob then recovers the message from the stego. Eve, acting as a steganalyst, monitors their communication and determines whether the carrier contains secret information. Steganography aims to hide secret information within a common carrier, concealing the secret information carried within it through unsuspicious multimedia carriers. A similar technique is digital watermarking. The difference between the two is that steganography's key goal is to prevent the secret information from being discovered, while digital watermarking focuses on protecting the carrier data itself, identifying carrier ownership and protecting intellectual property rights through embedded watermark information.
[0003] In the real world, steganography is typically not performed using peer-to-peer communication tools like email. This is because such peer-to-peer communication methods are easily detected by attackers due to factors like IP addresses and location information. However, social networks, where a large number of users share a wide variety of text, video, and other information, make it difficult for adversaries to detect covert communication. Therefore, to enhance concealment, secret carriers are often disseminated through social networks like Twitter and Weibo. However, these social networking sites often compress, crop, and resize the carriers, placing high demands on the robustness of information hiding technology. However, the concealment, robustness, and hiding capacity of information hiding are mutually constrained, making it difficult to improve them simultaneously. Blindly improving robustness will only result in a decrease in both concealment and hiding capacity. Furthermore, both peer-to-peer communication tools like email and social networks like Twitter rely on centralized servers. Secret carriers uploaded by users are subject to malicious tampering by server administrators. With many traditional steganographic algorithms, recipients cannot determine whether the secret carrier has been tampered with, and may therefore obtain incorrect secret information. Therefore, finding a robust and decentralized information hiding solution is crucial.
[0004] In recent years, blockchain technology has attracted widespread attention due to its decentralized and tamper-resistant properties. Nodes in a blockchain system are equal, lacking a central authority. The Proof of Work (PoW) consensus mechanism ensures that data within a block cannot be tampered with by nodes with less than 50% of the computing power. Therefore, if secret information can be hidden within the block, robustness and centralization issues will be addressed. However, since blockchain data is structured and must conform to the system's specifications, embedding secret information within the blockchain presents a research challenge. Currently, existing blockchain-based information hiding schemes are very limited, relatively simple, and easily detectable. There is an urgent need for a steganographic algorithm with high concealment and large hiding capacity to embed watermarks within the carrier. Summary of the Invention
[0005] Purpose of the invention: To address the above problems, the present invention proposes a carrier-less steganography method based on blockchain transactions, which establishes a covert channel on the blockchain and embeds a watermark into the carrier through a steganography algorithm with high concealment and large hidden capacity.
[0006] Technical solution: To achieve the purpose of the present invention, the technical solution adopted by the present invention is: a carrier-less steganography method based on blockchain transactions, comprising the following steps:
[0007] (1) Sender address A 00 Generate n brother addresses A 01 ,A 02 ,...,A 0n , n is the number of brother addresses, generate a son address A 10 , A 10 Generate n brother addresses A 11 ,A 12 ,...,A 1n ;
[0008] (2) The sender embeds the information into the transaction amount of the zcash system and randomly selects A 00 ,A 01 ,...,A 0n An address in sends the amount with information to A 10 ,A 11 ,...,A 1n The recipient monitors the address and whether the address is traded on the chain, and extracts information from the transaction amount.
[0009] Furthermore, the step (1) includes:
[0010] A 00 The private key sk 00 Is a randomly generated binary string, address A00 Brother's address A 01 The private key sk 01 Use address sk 00 and key psk0, address A 01 Brother's address A 02 The private key sk 02 Using sk 01 And key psk0 is generated;
[0011] A 00 The public key pk 00 By sk 00 Generated by elliptic curve encryption algorithm, address A 00 Son's address A 10 The private key sk 10 Use address A 00 The private key sk 00 and key psk1, address A 10 Brother's address A 11 The private key sk 11 Using sk 10 And key psk0 is generated;
[0012] For A 00 Brother's address A 01 , the specific process of private key generation is:
[0013] sk00=sk00||psk0
[0014] sk=connect(sk 00 ,S0,S1)
[0015] Among them, || is the OR operation; sk is sk 00 The length of the padded bit stream must be a minimum multiple of 512; sk 00 The length is 256 bits; S0 is the padding data, its length plus sk 00 The length satisfies the requirement that the remainder after modulo 512 is 448; S1 is sk 00 The length of the 64-bit binary representation; connect(sk 00 ,S0,S1) is the connection function used to sk 00 ,S0 and S1 are spliced;
[0016] Set the following iteration formula:
[0017] W[j]=W[j-2]+W[j-7]+σ0(W[j-15])+W[j-16]
[0018] The padded 512-bit sk is divided into 16 32-bit binary streams W[0] to W
[15] , each 32-bit long. 48 binary streams W
[16] to W
[63] are constructed through an iterative formula. The 48 binary streams are also 32 bits long. σ(x) is a logical function that manipulates the 32-bit binary stream and outputs a 32-bit binary stream. It is defined as follows:
[0019]
[0020] Among them, x is a 32-bit binary stream; S i (x) is x cyclically shifted right by i positions, R j (x) is x shifted right by j bits; It is an exclusive OR operation;
[0021] Assume a, b, c, d, e, f, g, h are the components of the private key, which are the first to eighth intermediate variables of the private key, and their sizes are all 32 bits. The initial values of a, b, c, d, e, f, g, h are the first 8 prime numbers in natural numbers, that is, the first 32 bits of the decimal part of the square root of 2, 3, 5, 7, 11, 13, 17, and 19. The iterative process of a, b, c, d, e, f, g, h is as follows:
[0022] h=g,g=f,f=e
[0023] e=d+h+e+K[j]+W[j]
[0024] d=c,c=b,b=a
[0025] a=h+e+K[j]+W[j]+a
[0026] Among them, K[j] is the first 32 bits of the decimal part of the cube root of the first 64 prime numbers in natural numbers; after 64 iterations of a,b,c,d,e,f,g,h, the final 256-bit data of a,b,c,d,e,f,g,h is A 01 The private key of
[0027] A 01 The public key pk 01 By A 01 The private key sk 01 Generated by elliptic curve encryption algorithm; for A 00 Son's address A 10 , the private key is owned by A 00 The private key and key psk1 are generated.
[0028] Furthermore, in the zcash system of step (2), the party with the private key has the right to view the address and transaction amount, and the transaction is stored on the blockchain;
[0029] The input and output of a Zcash transaction are notes, where note = (pk, v, r). pk is the sender's public key, v is the amount, and r is a serial number that identifies the note. The hash value of the note, called a commitment, serves as a declaration of the asset.
[0030] The address information of the transaction recipient does not exist during the transaction process. The transaction verification process uses homomorphic hiding technology, and the sender uses binary information as the transaction amount.
[0031] Furthermore, the information embedding and extraction process in step (2) is as follows:
[0032] The sender first shares his private key sk with the receiver off-chain 00 , keys psk0 and psk1, generate the number n of brother addresses; the sender chooses A 00 and any of its sibling addresses to A 10 Transaction with any of its sibling addresses, with the secret information as the transaction amount;
[0033] The receiver uses a blockchain browser to monitor whether the address generated by the sender is traded to determine whether the information is embedded. If it is determined that the information is embedded, the receiver uses the address generation method agreed upon with the sender in advance to monitor whether all the sender's addresses are traded, and then extract the information from the transaction amount.
[0034] Beneficial effects: Compared with the prior art, the technical solution of the present invention has the following beneficial technical effects:
[0035] This paper proposes a covert data embedding scheme based on blockchain transactions to achieve covert communication. This scheme makes on-chain addresses more similar to regular addresses, enhancing the confidentiality of secret information embedded in blockchain. Embedding information using blockchain transactions fully exploits the immutability of blockchain transactions. Combining the transaction framework with the Zcash system further enhances confidentiality. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] Figure 1 This is the overall framework diagram of secret information embedding based on blockchain transactions;
[0037] Figure 2 It is an embedded information flow diagram. DETAILED DESCRIPTION
[0038] The technical solution of the present invention will be further described below with reference to the accompanying drawings and embodiments.
[0039] The carrier-free steganographic method based on blockchain transactions described in the present invention is as follows: Figure 1 As shown, including:
[0040] (1) Sender address A 00 Generate n brother addresses A 01 ,A 02 ,...,A 0n , n is the number of brother addresses, generate a son address A 10 , A 10 Generate n brother addresses A 11 ,A 12 ,...,A 1n ;Specifically:
[0041] Address A 00 The private key sk 00 is a randomly generated binary stream, A 00 Brother's address A 01 The private key sk 01 Using sk 00 and key psk0, that is, generated by the brother address private key generation function; A 01 Brother's address A 02 The private key sk 02 Using sk 01 And key psk0 is generated;
[0042] A 00 The public key pk 00 By sk 00 Generated by elliptic curve algorithm, A 00 Son's address A 10 The private key sk 10 Using sk 00 and key psk1, A 10 Brother's address A 11 The private key sk 11 Using sk 10 And key psk0 is generated;
[0043] For A 00 Brother's address A 01 , the specific process of private key generation is:
[0044] sk 00 =sk 00 ||psk0
[0045] sk=connect(sk 00 ,S0,S1)
[0046] Among them, || is the OR operation; sk is sk 00 The length of the padded bit stream must be a minimum multiple of 512; sk 00 The length is 256 bits; S0 is the padding data, its length plus sk00 The length satisfies the remainder of 448 after modulo 512; S1 is sk 00 The length of the 64-bit binary representation; connect(sk 00 ,S0,S1) is the connection function used to sk 00 ,S0 and S1 are spliced;
[0047] Set the following iteration formula:
[0048] W[j]=W[j-2]+W[j-7]+σ0(W[j-15])+W[j-16]
[0049] The padded 512-bit sk is divided into 16 32-bit binary streams W[0] to W
[15] , each 32-bit long. 48 binary streams W
[16] to W
[63] are constructed through an iterative formula. The 48 binary streams are also 32 bits long. σ(x) is a logical function that manipulates the 32-bit binary stream and outputs a 32-bit binary stream. It is defined as follows:
[0050]
[0051] Among them, x is a 32-bit binary stream; S i (x) is x cyclically shifted right by i positions, R j (x) is x shifted right by j bits; It is an exclusive OR operation;
[0052] Assume a, b, c, d, e, f, g, h are the components of the private key, which are the first to eighth intermediate variables of the private key, and their sizes are all 32 bits. The initial values of a, b, c, d, e, f, g, h are the first 8 prime numbers in natural numbers, that is, the first 32 bits of the decimal part of the square root of 2, 3, 5, 7, 11, 13, 17, and 19. The iterative process of a, b, c, d, e, f, g, h is as follows:
[0053] h=g,g=f,f=e
[0054] e=d+h+e+K[j]+W[j]
[0055] d=c,c=b,b=a
[0056] a=h+e+K[j]+W[j]+a
[0057] Among them, K[j] is the first 32 bits of the decimal part of the cube root of the first 64 prime numbers in natural numbers; after 64 iterations of a,b,c,d,e,f,g,h, the final 256-bit data of a,b,c,d,e,f,g,h is A 01 The private key of
[0058] A 01 The public key pk 01 By A 01 The private key sk 01 Generated by elliptic curve encryption algorithm; for A 00 Son's address A 10 , its operation process is to replace the key in the brother address private key generation process with psk1, that is, generated by the son address private key generation function;
[0059] (2) Taking advantage of the fact that the transaction amount in the Zcash system cannot be viewed, the sender embeds the information into the transaction amount. Select A 00 ,A 01 ,...,A 0n An address in sends the amount with information to A 10 ,A 11 ,...,A 1n An address in the transaction is used to extract information from the transaction amount through the recipient.
[0060] The zcash system is an example of a zero-knowledge proof protocol, with the confidentiality of addresses and transaction amounts. Only the party with the private key can view them, and transactions are stored on the blockchain and are tamper-proof. Unlike Bitcoin, which uses unspent outputs (UTXOs), the input and output of zcash transactions are notes, where note = (pk, v, r). Here, pk is the sender's public key, v is the amount, and r is the serial number that distinguishes the note. The hash value of the note, the commitment, serves as a declaration of the asset. A valid commitment is proof of the existence of a note, but the corresponding note and its owner cannot be determined from the commitment.
[0061] The address information of the transaction recipient does not exist during the transaction process, so the recipient of the transaction is unknown; the transaction verification process uses homomorphic hiding technology, and the verifier on the blockchain cannot know the transaction amount;
[0062] The sender uses the binary information as the transaction amount and randomly selects A 00 ,A 01 ,...,A 0n An address in sends the amount containing information to A 10 ,A 11 ,...,A 1n An address in the embedding process is as follows Figure 2 The receiver extracts secret information by monitoring the address and whether the address is traded on the chain. The process of embedding and extracting information is as follows:
[0063] The sender first shares his private key sk with the receiver off-chain 00 , keys psk0 and psk1, generate the number n of sibling addresses.
[0064] Since transactions on the blockchain are transparent and open, the recipient can use the blockchain browser to monitor whether the address generated by the sender is traded to determine whether the information is embedded. If it is determined that the information is embedded, the recipient can extract the information from the transaction amount by using the address generation method agreed in advance with the sender and monitoring whether all its addresses are traded.
[0065] Assume that the number of generated brother addresses is 3, sender A 00 Three brother addresses A can be generated 01 ,A 02 ,A 03 and a son, address A 10 , A 10 Also generate three brother addresses A 11 ,A 12 ,A 13 , A 00 ,A 01 ,A 02 ,A 03 and A 10 ,A 11 ,A 12 ,A 13 There are 16 random choices for the transaction, and A is selected 00 ,A 01 ,A 02 ,A 03 Any address pair A 10 ,A 11 ,A 12 ,A 13 A transaction containing secret information can be performed at any address in the
[0066] The receiver receives the sender's private key sk in advance 00 , keys psk0, psk1 and the number n of generated brother addresses, monitor A through the blockchain browser 00 and its brother address pair A 10 Whether the sender embeds the message is determined by whether the transaction is conducted with its sibling address.
[0067] If the sender embeds the binary stream as 00110001, 11110000, 01101101, 10100100, and the agreed number of generated brother addresses is 3, the receiver will pass A in chronological order. 00 ,A 01 ,A 02 ,A 03 and A 10 ,A11 ,A 12 ,A 13 Transaction extraction information, as shown in Table 1, if A 00 ,A 01 ,A 02 ,A 03 The address pair A 10 ,A 11 ,A 12 ,A 13 If the address in the address has not made any transactions, then the sender has not sent any message.
[0068] Table 1 Extracted secret information
[0069]
[0070]
[0071] The above is a preferred embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the technical principles of the present invention. These improvements and modifications should also be regarded as the scope of protection of the present invention.
Claims
1. A carrier-less steganography method based on blockchain transactions, characterized by: The method comprises the following steps: (1) Sender address A 00 Generate n brother addresses A 01 ,A 02 ,...,A 0n , n is the number of brother addresses, generate a son address A 10 , A 10 Generate n brother addresses A 11 ,A 12 ,...,A 1n ; A 00 The private key sk 00 Is a randomly generated binary string, the sender address A 00 Brother's address A 01 The private key sk 01 Using sk 00 and key psk0, address A 01 Brother's address A 02 The private key sk 02 Using sk 01 And key psk0 is generated; A 00 The public key pk 00 By sk 00 Generated by elliptic curve encryption algorithm, address A 00 Son's address A 10 The private key sk 10 Using sk 00 and key psk1, address A 10 Brother's address A 11 The private key sk 11 Using sk 10 And key psk0 is generated; For A 00 Brother's address A 01 , the specific process of private key generation is: en 00 =en 00 ||psk0 sk=connect(sk 00 ,S0,S1) Among them, || is the OR operation; sk is sk 00 The length of the padded bit stream must be a minimum multiple of 512; sk 00 The length is 256 bits; S0 is the padding data, its length plus sk 00 The length satisfies the requirement that the remainder after modulo 512 is 448; S1 is sk 00 The length of the 64-bit binary representation; connect(sk 00 ,S0,S1) is the connection function used to sk 00 ,S0 and S1 are spliced; Set the following iteration formula: W[j]=W[j-2]+W[j-7]+σ0(W[j-15])+W[j-16] The padded 512-bit sk is divided into 16 32-bit binary streams W[0] to W[15], each 32-bit long. 48 binary streams W[16] to W[63] are constructed through an iterative formula. The 48 binary streams are also 32 bits long. σ(x) is a logical function that manipulates the 32-bit binary stream and outputs a 32-bit binary stream. It is defined as follows: σ(x)=S 7 (x)⊕S 18 (x)⊕R 3 (x) Among them, x is a 32-bit binary stream; S i (x) is x cyclically shifted right by i positions, R j (x) is x shifted right by j bits; ⊕ is the exclusive OR operation; Assume a, b, c, d, e, f, g, h are the components of the private key, which are the first to eighth intermediate variables of the private key, and their sizes are all 32 bits. The initial values of a, b, c, d, e, f, g, h are the first 8 prime numbers in natural numbers, that is, the first 32 bits of the decimal part of the square root of 2, 3, 5, 7, 11, 13, 17, and 19. The iterative process of a, b, c, d, e, f, g, h is as follows: h=g,g=f,f=e e=d+h+e+K[j]+W[j] d=c,c=b,b=a a=h+e+K[j]+W[j]+a Among them, K[j] is the first 32 bits of the decimal part of the cube root of the first 64 prime numbers in natural numbers; after 64 iterations of a,b,c,d,e,f,g,h, the final 256-bit data of a,b,c,d,e,f,g,h is A 01 The private key of A 01 The public key pk 01 By A 01 The private key sk 01 Generated by elliptic curve encryption algorithm; for A 00 Son's address A 10 , the private key is owned by A 00 The private key and secret key psk1 generation step (1) includes: A 00 The private key sk 00 Is a randomly generated binary string, the sender address A 00 Brother's address A 01 The private key sk 01 Using sk 00 and key psk0, address A 01 Brother's address A 02 The private key sk 02 Using sk 01 And key psk0 is generated; A 00 The public key pk 00 By sk 00 Generated by elliptic curve encryption algorithm, address A 00 Son's address A 10 The private key sk 10 Using sk 00 and key psk1, address A 10 Brother's address A 11 The private key sk 11 Using sk 10 And key psk0 is generated; For A 00 Brother's address A 01 , the specific process of private key generation is: en 00 =en 00 ||psk0 sk=connect(sk 00 ,S0,S1) Among them, || is the OR operation; sk is sk 00 The length of the padded bit stream must be a minimum multiple of 512; sk 00 The length is 256 bits; S0 is the padding data, its length plus sk 00 The length satisfies the requirement that the remainder after modulo 512 is 448; S1 is sk 00 The length of the 64-bit binary representation; connect(sk 00 ,S0,S1) is the connection function used to sk 00 ,S0 and S1 are spliced; Set the following iteration formula: W[j]=W[j-2]+W[j-7]+σ0(W[j-15])+W[j-16] The padded 512-bit sk is divided into 16 32-bit binary streams W[0] to W[15], each 32-bit long. 48 binary streams W[16] to W[63] are constructed through an iterative formula. The 48 binary streams are also 32 bits long. σ(x) is a logical function that manipulates the 32-bit binary stream and outputs a 32-bit binary stream. It is defined as follows: σ(x)=S 7 (x)⊕S 18 (x)⊕R 3 (x) Among them, x is a 32-bit binary stream; S i (x) is x cyclically shifted right by i positions, R j (x) is x shifted right by j bits; ⊕ is the exclusive OR operation; Assume a, b, c, d, e, f, g, h are the components of the private key, which are the first to eighth intermediate variables of the private key, and their sizes are all 32 bits. The initial values of a, b, c, d, e, f, g, h are the first 8 prime numbers in natural numbers, that is, the first 32 bits of the decimal part of the square root of 2, 3, 5, 7, 11, 13, 17, and 19. The iterative process of a, b, c, d, e, f, g, h is as follows: h=g,g=f,f=e e=d+h+e+K[j]+W[j] d=c,c=b,b=a a=h+e+K[j]+W[j]+a Among them, K[j] is the first 32 bits of the decimal part of the cube root of the first 64 prime numbers in natural numbers; after 64 iterations of a,b,c,d,e,f,g,h, the final 256-bit data of a,b,c,d,e,f,g,h is A 01 The private key of A 01 The public key pk 01 By A 01 The private key sk 01 Generated by elliptic curve encryption algorithm; for A 00 Son's address A 10 , the private key is owned by A 00 The private key and key psk1 are generated; (2) The sender embeds the information into the transaction amount of the zcash system and randomly selects A 00 ,A 01 ,...,A 0n An address in sends the amount with information to A 10 ,A 11 ,...,A 1n The recipient monitors the address and whether the address is traded on the chain, and extracts information from the transaction amount.
2. The carrier-less steganography method based on blockchain transactions according to claim 1 is characterized in that: Step (2) In the Zcash system, the party with the private key has the right to view the address and transaction amount, and the transaction is stored on the blockchain; The input and output of a Zcash transaction are notes, where note = (pk, v, r). pk is the sender's public key, v is the amount, and r is a serial number that identifies the note. The hash value of the note, called a commitment, serves as a declaration of the asset. The address information of the transaction recipient does not exist during the transaction process, and the transaction verification process uses homomorphic hiding technology.
3. The carrier-less steganography method based on blockchain transactions according to claim 1 is characterized in that: Step (2) The process of embedding and extracting information is as follows: The sender first shares his private key sk with the receiver off-chain 00 , keys psk0 and psk1, generate the number n of brother addresses; The sender chooses A 00 and any of its sibling addresses to A 10 Transaction with any of its sibling addresses, with the secret information as the transaction amount; The receiver receives the sender's private key sk in advance 00 , keys psk0, psk1 and the number n of generated brother addresses, monitor A through the blockchain browser 00 and its brother address pair A 10 Whether the sender has embedded the message is determined by whether the transaction is conducted with its sibling address; If it is determined that the information has been embedded, the address generation method agreed upon with the sender in advance can be used to monitor all the sender's addresses for transactions, and the information can be extracted from the transaction amount.
Citation Information
Patent Citations
Service interaction method and system based on blockchain invisible address
CN111507711A