Video information hiding method based on double-layer embedding
By adopting a double-layer embedding method in the video information hiding technology, using STC and (7,4) Hamming code to embed and extract information, the problem that the prior art cannot adaptively hide information according to different scenarios is solved, and the security of hidden communication is improved.
Patent Information
- Application Number
- CN202510415573.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-04-03
- Publication Date
- 2025-06-27
AI Technical Summary
Existing video information hiding technology cannot adaptively present different hidden information according to different scenarios, resulting in insufficient security of hidden communications.
A video information hiding method based on double-layer embedding is adopted, and the information to be hidden is embedded in the macroblock motion vector residual of the video carrier, and the STC and (7,4) Hamming codes are used to embed and extract respectively to realize double-layer embedding.
It improves the security of hidden communications, enhances the difficulty of steganography analysis, and can embed different information at different layers as needed, which is suitable for scenarios such as cross-verification of hidden information, key delivery and anti-depression attacks.
Smart Images

Figure CN120223901A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of data steganography, and particularly relates to a video information hiding method based on double-layer embedding. Background Art
[0002] Steganography is a common means for covert communication. By using video information hiding technology to covertly transmit information such as privacy and business secrets, the secure communication of information can be protected. However, most of these methods rely on constructing a single-layer embedding carrier to embed and extract information in a fixed manner, and cannot present different hidden information according to different scenarios (such as the needs of different receivers), resulting in poor adaptability. Summary of the Invention
[0003] The purpose of the present invention is to provide a video information hiding method based on double-layer embedding, which can embed different information in different layers and improve the security of covert communication.
[0004] To achieve the above object, the solution of the present invention is:
[0005] A video information hiding method based on double-layer embedding, which embeds the information to be hidden into a video carrier, including,
[0006] Obtaining a key according to the input password, and encrypting the information to be hidden with the key to obtain a sequence to be hidden;
[0007] Cutting the macroblock motion vector residuals of the original video into vectors with a length of 8 bits, processing the vectors to obtain a first embedding sequence and a second embedding sequence;
[0008] Embedding the sequence to be hidden into the first embedding sequence and / or the second embedding sequence to obtain a ciphertext video file.
[0009] Among them, embedding the sequence to be hidden into the first embedding sequence and / or the second embedding sequence includes,
[0010] Embedding all of the sequence to be hidden into the first embedding sequence / second embedding sequence. If the first embedding sequence / second embedding sequence is full while there is still unembedded content in the sequence to be hidden, the remaining content is continued to be embedded into the second embedding sequence / first embedding sequence.
[0011] Among them, the information to be hidden includes a first piece of information and a second piece of information;
[0012] Obtaining corresponding first and second keys according to the first password and the second password respectively;
[0013] Encrypting the first piece of information with the first key to obtain a first sequence to be hidden, and encrypting the second piece of information with the second key to obtain a second sequence to be hidden;
[0014] Embed the first sequence to be hidden into the first embedding sequence, and embed the second sequence to be hidden into the second embedding sequence to obtain a video file carrying the secret.
[0015] Among them, encrypting the first information with the first key to obtain the first sequence to be hidden includes:
[0016] Convert the first information into binary form, and then encrypt it with the first key to obtain the first sequence;
[0017] Convert the length of the first sequence into 32-bit binary form, and encrypt it with the first key to obtain the second sequence;
[0018] Merge the first sequence and the second sequence to obtain the first sequence to be hidden;
[0019] Encrypt the second information with the second key to obtain the second sequence to be hidden, including:
[0020] Convert the second information into binary form, and then encrypt it with the second key to obtain the third sequence;
[0021] Convert the length of the third sequence into 32-bit binary form, and encrypt it with the second key to obtain the fourth sequence;
[0022] Merge the third sequence and the fourth sequence to obtain the second sequence to be hidden.
[0023] Among them, embedding the first sequence to be hidden into the first embedding sequence and embedding the second sequence to be hidden into the second embedding sequence includes:
[0024] Embed the first sequence to be hidden into the first embedding sequence using STC, and embed the second sequence to be hidden into the second embedding sequence using (7,4) Hamming code.
[0025] Among them, cutting the macroblock motion vector residuals of the original video into 8-bit lengths to obtain several vectors, including:
[0026] Read the NAL units of the original video in sequence according to the separation index of different NAL units. For NAL units of P_NAL type or B_NAL type, entropy decode all macroblocks in the Pslice or B slice except for 16×16 partitioned macroblocks, non-P macroblocks, and non-B macroblocks in order, and for the vertical component MVD y and the horizontal component MVD x in all macroblocks after entropy decoding, save the component c with the larger absolute value in order as the sequence C=(c1, c2,..., c h ), h is the length of the sequence C, save the least significant bits of all elements in the sequence C in order as the sequence G=(lsb1, lsb2,..., lsbh )
[0027] Group the sequence G into vectors of 8 bits in length, where the i-th vector is denoted as: G i =(lsb i+1 , lsb i+2 , lsb i+3 , lsb i+4 , lsb i+5 , lsb i+6 , lsb i+7 , lsb i+8 ), where i is a positive integer, denotes rounding down.
[0028] Among them, processing the several vectors to obtain a first embedding sequence and a second embedding sequence includes,
[0029] Exclusive-OR all 8 bits of each vector to obtain a single bit and save it in order as the first embedding sequence; save the first 7 bits of each vector in order as the second embedding sequence.
[0030] After adopting the above solution, the present invention has the following beneficial effects:
[0031] (1) The present invention uses the video macroblock motion vector residual as the carrier, designs a double-layer embedding architecture, cuts the carrier into multiple vectors of 8 bits in length, exclusive-OR all 8 bits of the vector to obtain a single bit as the first embedding channel; the first 7 bits of the vector are used as the second embedding channel. By increasing the level of steganography, the difficulty of steganalysis is improved, and the security of covert communication is enhanced;
[0032] (2) The present invention can be used to embed two kinds of information respectively. For the first embedding channel, use STC to embed the first kind of information, and the embedding modification bits are determined by the second embedding channel; for the second embedding channel, use (7,4) Hamming code to embed the second kind of information. Embed different information in different layers according to needs, which can be used in scenarios such as cross-verification of hidden information, key transmission, and anti-coercion attacks. Description of the Drawings
[0033] Figure 1 is the overall schematic diagram of the present invention. Detailed Embodiment
[0034] The present invention provides a video information hiding method based on double-layer embedding, which embeds the information to be hidden into a video carrier, including,
[0035] Obtain a key according to the input password, and encrypt the information to be hidden using the key to obtain a sequence to be hidden;
[0036] Cut the macroblock motion vector residuals of the original video into 8-bit lengths to obtain a number of vectors, and process the number of vectors to obtain a first embedding sequence and a second embedding sequence;
[0037] Embed the sequence to be hidden into the first embedding sequence and / or the second embedding sequence to obtain a cipher-carrying video file.
[0038] Among them, embedding the sequence to be hidden into the first embedding sequence and / or the second embedding sequence includes,
[0039] Embed all of the sequence to be hidden into the first embedding sequence / second embedding sequence. If the first embedding sequence / second embedding sequence is full while there is still unembedded content in the sequence to be hidden, the remaining content is continued to be embedded into the second embedding sequence / first embedding sequence.
[0040] Among them, the information to be hidden includes first information and second information;
[0041] Obtain corresponding first and second keys according to the first password and the second password respectively;
[0042] Encrypt the first information with the first key to obtain a first sequence to be hidden, and encrypt the second information with the second key to obtain a second sequence to be hidden;
[0043] Embed the first sequence to be hidden into the first embedding sequence, and embed the second sequence to be hidden into the second embedding sequence to obtain a cipher-carrying video file.
[0044] Among them, encrypting the first information with the first key to obtain a first sequence to be hidden includes,
[0045] Convert the first information into binary form, and then encrypt it with the first key to obtain a first sequence;
[0046] Convert the length of the first sequence into 32-bit binary form, and encrypt it with the first key to obtain a second sequence;
[0047] Merge the first sequence and the second sequence to obtain a first sequence to be hidden;
[0048] Encrypting the second information with the second key to obtain a second sequence to be hidden includes,
[0049] Convert the second information into binary form, and then encrypt it with the second key to obtain a third sequence;
[0050] Convert the length of the third sequence into 32-bit binary form, and encrypt it with the second key to obtain a fourth sequence;
[0051] Merge the third sequence and the fourth sequence to obtain a second sequence to be hidden.
[0052] Among them, embedding the first sequence to be hidden into the first embedding sequence and embedding the second sequence to be hidden into the second embedding sequence includes:
[0053] Embedding the first sequence to be hidden into the first embedding sequence by using STC, and embedding the second sequence to be hidden into the second embedding sequence by using (7,4) Hamming code.
[0054] Among them, cutting the macroblock motion vector residuals of the original video into vectors with a length of 8 bits includes:
[0055] Reading the NAL units of the original video in sequence according to the separation index of different NAL units. For the NAL units of P_NAL type or B_NAL type, entropy decoding is performed on all macroblocks in the Pslice or B slice except for the 16×16 partitioned macroblocks, non-P macroblocks, and non-B macroblocks in order, and the vertical component MVD y and the horizontal component MVD x of the motion vector residuals in all entropy-decoded macroblocks, and the component c with the larger absolute value is saved as the sequence C=(c1, c2,..., c h ) in order, where h is the length of the sequence C, and the least significant bits of all elements in the sequence C are saved as the sequence G=(lsb1, lsb2,..., lsb h );
[0056] Grouping the sequence G into vectors with a length of 8 bits, where the i-th vector is denoted as: G i =(lsb i+1 , lsb i+2 , lsb i+3 , lsb i+4 , lsb i+5 , lsb i+6 , lsb i+7 , lsb i+8 ), where i is a positive integer, represents rounding down.
[0057] Among them, processing the several vectors to obtain the first embedding sequence and the second embedding sequence includes:
[0058] XORing all 8 bits of each vector to obtain a bit and saving it as the first embedding sequence in order; saving the first 7 bits of each vector as the second embedding sequence in order.
[0059] The technical solutions and beneficial effects of the present invention will be described in detail below in conjunction with the accompanying drawings and specific embodiments.
[0060] AsFigure 1 As shown, it is a specific embodiment of a video information hiding method based on double-layer embedding in the present invention, including two parts: information embedding and information extraction.
[0061] 1. Information Embedding Process
[0062] SA1: The user inputs two passwords: password wp t and wp f , and generates two encryption keys through a hash algorithm: k t and k f ;
[0063] SA2: Convert the information 1 to be transmitted into binary form and encrypt it with k t to obtain the sequence M t =(m1, m2,..., m n ), where n is the length of M t . Then convert n into 32-bit binary form and encrypt it with k t to obtain the sequence N=(n1, n2,..., n 32 ). Combine the sequences N and M t to obtain the sequence M t '=N + M t =(n1, n2,..., n 32 , m1, m2,..., m n );
[0064] Convert the information 2 to be transmitted into binary form and encrypt it with k f to obtain the sequence T f =(t1, t2,..., t l ), where l is the length of M t . Then convert l into 32-bit binary form and encrypt it with k f to obtain the sequence L=(l1, l2,..., l 32 ). Combine the sequences L and T f to obtain the sequence T f '=L + T f =(l1, l2,..., l 32 , t1, t2,..., t l );
[0065] SA3: Read the original H.264 video bitstream into the buffer, sequentially read the NAL units according to the delimiter index of different NAL units, and judge its type. When it is of P_NAL type or B_NAL type, continue to the next step SA4. Otherwise, skip this NAL unit and continue to read the next NAL unit. If there is no next slice, jump to step SA12;
[0066] SA4: For the read NAL unit, read the slices in order and determine their types. If the type is P slice or B slice, proceed to the next step SA5; otherwise, skip the slice and continue to read the next slice. If there is no next slice, jump to step SA3;
[0067] SA5: Entropy decode all macroblocks in the slice except for 16×16 partitioned macroblocks, non-P macroblocks, and non-B macroblocks in order, and for all macroblocks after entropy decoding, save the vertical component MVD y and the horizontal component MVD x of the motion vector residual in the absolute value larger component c in order as the sequence C = (c1, c2,..., c h ), where h is the length of the sequence C. Save the least significant bits of all elements in the sequence C in order as the sequence G = (lsb1, lsb2,..., lsb h ); and determine whether h is greater than or equal to 8. If so, proceed to the next step SA6; if not, jump to step SA4;
[0068] SA6: Group the sequence G into vectors of 8 bits in length, where the i-th vector is denoted as: G i = (lsb i+1 , lsb i+2 , lsb i+3 , lsb i+4 , lsb i+5 , lsb i+6 , lsb i+7 , lsb i+8 ), where i is a positive integer, denotes rounding down. Exclusive-OR all 8 bits of each vector to obtain a single bit and save it in order as the sequence P = (p1, p2,..., p l1 ); Use the sequence P as the first-layer embedding channel; save the first 7 bits of each vector in order as the sequence Q = ([q 1,1 , q 1,2 , q 1,3 , q 1,4 , q 1,5 , q 1,6 , q 1,7 ,..., [q l1,1 , q l1,2 , q l1,3 , q l1,4 , q l1,5 , q l1,6 , q l1,7), as the second - layer embedding channel;
[0069] SA7: For the second - layer embedding channel, use the (7,4) Hamming code to embed M t ′:
[0070] Sequentially select a group of vectors [q i,1 , q i,2 , q i,3 , q i,4 , q i,5 , q i,6 , q i,7 from the sequence Q, and sequentially select 3 bits [cm1, cm2, cm3] from the sequence M t ′ to calculate the vector [x y z] using the following formula T .
[0071]
[0072] Where, · is the matrix multiplication operation, is the exclusive - or operation, H is the error - correcting matrix of the (7,4) Hamming code,
[0073] Convert the calculation result [x y z] T to decimal r i .
[0074] Repeat the above steps and save the calculation results to obtain the sequence R=(r1,..., r i ,..., r l1 ).
[0075] SA8: For the first - layer embedding channel, use STC to embed T f ′:
[0076] STC encoding and decoding principle: Define the carrier sequence stcx = {stcx1, stcx2,..., stcx sn} and the encrypted - carrier sequence stcy = {stcy1, stcy2,..., stcy sn} ∈ {0,1} n , stcm is the hidden information to be embedded, and stcm is the length of the hidden information stcm. The encoding and decoding processes of STC can be expressed by the following formula:
[0077]
[0078] stcm = Ext(stcy)=H · stcy
[0079] In the formula: D(stcx, stcy) is the embedding distortion function; H is the STC check matrix, which consists of a sub - check matrix with h rows and ω columns Composition; C(stcm) = {z ∈ {0, 1} n | Hz = stcm} represents the coset of the steganographic message stcm to be embedded. The STC encoding process is to find a suitable vector stcy such that the embedding distortion D(stcx, stcy) is minimized while satisfying H·stcy = stcm.
[0080] Therefore, the specific embedding process is as follows:
[0081] Based on the embedding rate α and the sub - check matrix of h rows and ω columns Construct the check matrix H required for STC, and sequentially select f elements from the sequence T to be hidden to form the current message sequence to be hidden Apply STC to construct an embedding path P′ = (p1′, p2′,..., p T ′) that minimizes the overall steganographic embedding cost and satisfies H·P = CM. Among them, the calculation formula for the distortion cost function is: l1 ′). Among them, the calculation formula for the distortion cost function is:
[0082] SA9: According to the calculation results of steps SA7 and SA8, modify the sequence G to obtain the sequence G′. The specific modification method is as follows:
[0083] When p i = p i ′ (p i ∈ P, p′ ∈ P′), r i = 0, all elements in the sequence G i remain unchanged;
[0084] When p i ≠ p i ′ (p i ∈ P, p′ ∈ P′), r i = 0, flip the lsb i value in the sequence G i+8 ;
[0085] When p i = p i ′ (p i ∈ P, p′ ∈ P′), r i ≠ 0, flip the r i - th data value and the lsb i value in the sequence G i+8 ;
[0086] When p i ≠ p i ′ (p i ∈ P, p′ ∈ P′), r iWhen it is not equal to 0, sequence G i the lsb i+8 value is flipped;
[0087] SA10: Modify the embedded carrier sequence C according to G' to obtain the encrypted carrier sequence C'=(c1', c2',..., c n '), where the modification method is: if lsb i is not equal to lsb i ', (lsb i ∈G, lsb i '∈G'), then the corresponding bit of the embedded carrier c i needs to be modified. If lsb i is equal to lsb i ', then the corresponding bit of the embedded carrier c i does not need to be modified, that is, c i ' = c i . Among them, the modification method of the embedded carrier c i is as follows:
[0088] 1) If MVDX i != MVDY i and c i is a positive odd number or a negative even number, then subtract 1 from c i to get c i ';
[0089] 2) If MVDX i != MVDY i and c i is a positive even number or a negative odd number, then add 1 to c i to get c i ';
[0090] 3) If MVDX i == MVDY i and c i is a positive number, then add 1 to c i to get c i ';
[0091] 4) If MVDX i == MVDY i and c i is a negative number, then subtract 1 from c i to get c i ';
[0092] SA11: Modify the component with the larger absolute value among the vertical and horizontal components of the corresponding motion vector residuals in all macroblocks in the slice according to C' calculated in step SA10. After the modification, re - entropy - encode the motion vector residuals and write them back to the bitstream to complete the encoding of the current slice. If the embedding of Information 1 and Information 2 is completed, continue to the next step SA12; if not, jump to step SA4;
[0093] SA12: The embedding ends, and the encrypted video file is output.
[0094] 2. Information extraction process
[0095] SB1: The user inputs a password, and generates an information encryption key k' through a hashing algorithm;
[0096] SB2: Set l t = 0, l f = 0, read the original H.264 video bitstream into the buffer, sequentially read NAL units according to the delimiter index of different NAL units, and judge its type. When it is of P_NAL type or B_NAL type, continue to the next step SB4; otherwise, skip this NAL unit and continue to read the next NAL unit. If there is no next slice, jump to step SB11;
[0097] SB3: For the read NAL unit, sequentially read slices and judge its type. If its type is Pslice or Bslice, continue to the next step SB5; otherwise, skip this slice and continue to read the next slice. If there is no next slice, jump to step SB3;
[0098] SB4: Entropy - decode all macroblocks in the slice except for 16×16 partition - form macroblocks, non - P macroblocks, and non - B macroblocks in sequence, and save the component with the larger absolute value among the vertical component MVD y and horizontal component MVD x of all macroblocks after entropy - decoding as a sequence C'=(c1', c2',..., c h ″), where h' is the length of the sequence C'. Save the least significant bits of all elements in the sequence C' as a sequence G'=(lsb1', lsb2',..., lsb h ″); and judge whether h' is greater than or equal to 8. If so, continue to the next step SB5; if not, jump to step SB3;
[0099] SB5: Group the sequence G' into vectors with a length of 8 bits each. The i - th vector is denoted as: G i '=(lsbi ′ +1 , lsb i ′ +2 , lsb i ′ +3 , lsb i ′ +4 , lsb i ′ +5 , lsb i ′ +6 , lsb i ′ +7 , lsb i ′ +8 ), where \(i\) is a positive integer, Denote the floor function. XOR all 8 bits of each vector to obtain a single bit and save it in order as the sequence \(P'=(p_1', p_2',..., p l '_1)\), Save the first 7 bits of each vector in order as the sequence \(Q' = ([q_1' ,1 , q_1' ,2 , q_1' ,3 , q_1' ,4 , q_1' ,5 , q_1' ,6 , q_1' ,7 ,..., [q l ' 1,1 , q l ' 1,2 , q l ' 1,3 , q l ' 1,4 , q l ' 1,5 , q l ' 1,6 , q l ' 1,7 );
[0100] SB6: Judge the values of \(l t and \(l f :
[0101] If both \(l t and \(l f are zero, proceed to steps SB7 and SB8;
[0102] If \(l t is not zero and \(l f is zero, proceed to step SB7 and skip step SB8;
[0103] If \(l t is zero and \(l fIf it is not zero, continue with step SB8 and skip step SB7;
[0104] If l t and l f are both not zero, end information extraction and return a prompt of "Abnormal information extraction";
[0105] SB7: Sequentially extract three bits of hidden information [x y z] from a group of vectors [q i ′ ,1 , q i ′ ,2 , q i ′ ,3 , q i ′ ,4 , q i ′ ,5 , q i ′ ,6 , q i ′ ,7 in sequence Q′ using (7,4) Hamming code T .
[0106] [x y z] T = H · [q i,1 q i,2 q i,3 q i,4 q i,5 q i,6 q i,7 T
[0107] Repeat the above steps and save the extracted hidden information as sequence M t ′.
[0108] SB8: Extract hidden information using STC: H · P T = CM and save the extracted hidden information as sequence T f ′.
[0109] SB9: Judge whether the lengths of the extracted hidden information M t ′ and T f ′ are greater than or equal to 32:
[0110] If it is greater than or equal to 32, first decrypt the first 32-bit data of M t ′ using the key k′, and judge whether the first 32-bit data of M t ′ is successfully decrypted. If the first 32-bit data of M t ′ is successfully decrypted, the input password is the password 1 during embedding, and assign the decryption result to l t ; if the first 32-bit data of M t ′ is decrypted unsuccessfully, decrypt T using the key k′f 'The first 32-bit data, and judge T f 'Whether the first 32-bit data is successfully decrypted. If T f 'The first 32-bit data is successfully decrypted, then the input password is the embedded password 2, and assign the decryption result to l f , if T f 'The first 32-bit data decryption fails, end the information extraction process, and return the prompt "information extraction failed";
[0111] If it is less than 32, jump to step SB10.
[0112] SB10: After completing the extraction of the current slice information, judge whether the information extraction is completed:
[0113] If the information to be extracted is Information 1, judge whether the length of the extracted information is equal to M t ', if so, the extraction of Information 1 is completed, jump to step SB11, if not, jump to step SB4;
[0114] If the information to be extracted is Information 2, judge whether the length of the extracted information is equal to T f ', if so, the extraction of Information 2 is completed, jump to step SB11, if not, jump to step SB4;
[0115] SB11: The extraction is completed, decrypt and binary decode the extracted information, and output the final information.
[0116] Those skilled in the art should understand that the embodiments of the present invention can be provided as methods, systems, or computer program products. Therefore, the present invention can take the form of a complete hardware embodiment, a complete software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present invention can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. The solutions in the embodiments of the present invention can be implemented in various computer languages. For example, object-oriented programming languages such as Java and interpreted scripting languages such as JavaScript.
[0117] The present invention is described with reference to the flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each flow and / or block in the flowchart and / or block diagram, and combinations of flows and / or blocks in the flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine, such that the instructions executed by the processor of the computer or other programmable data processing device generate means for implementing the functions specified in the flowchart Figure 1 one or more flows and / or blocks Figure 1 or means for implementing the functions specified in one or more blocks.
[0118] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable memory produce a manufacture including instruction means for implementing the functions specified in the flowchart Figure 1 one or more flows and / or blocks Figure 1 or means for implementing the functions specified in one or more blocks.
[0119] These computer program instructions can also be loaded onto a computer or other programmable data processing device, such that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, so that the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in the flowchart Figure 1 one or more flows and / or blocks Figure 1 or means for implementing the functions specified in one or more blocks.
[0120] Although the preferred embodiments of the present invention have been described, additional changes and modifications can be made by those skilled in the art once they learn of the basic creative concept. Therefore, the appended claims are intended to be construed to include the preferred embodiments and all changes and modifications that fall within the scope of the present invention.
[0121] Obviously, those skilled in the art can make various changes and modifications to the present invention without departing from the spirit and scope of the present invention. Thus, if these modifications and variations of the present invention fall within the scope of the claims of the present invention and their equivalent technologies, the present invention is also intended to include these modifications and variations.
Claims
1. A video information hiding method based on double-layer embedding, characterized in that: Embed the information to be hidden into the video carrier, including: Obtain a key according to the input password, and encrypt the information to be hidden using the key to obtain a sequence to be hidden; Cutting the macroblock motion vector residual of the original video into 8-bit lengths to obtain a plurality of vectors, and processing the plurality of vectors to obtain a first embedding sequence and a second embedding sequence; The sequence to be hidden is embedded into the first embedding sequence and / or the second embedding sequence to obtain an encrypted video file.
2. The method according to claim 1, characterized in that: Embedding the sequence to be hidden into the first embedding sequence and / or the second embedding sequence comprises: The sequence to be hidden is completely embedded in the first embedding sequence / the second embedding sequence. If the first embedding sequence / the second embedding sequence is full and there is still unembedded content in the sequence to be hidden, the remaining content continues to be embedded in the second embedding sequence / the first embedding sequence.
3. The method according to claim 1, characterized in that: The information to be hidden includes first information and second information; Obtaining a corresponding first key and a corresponding second key according to the first password and the second password respectively; Encrypt the first information using a first key to obtain a first sequence to be hidden, and encrypt the second information using a second key to obtain a second sequence to be hidden; The first sequence to be hidden is embedded in a first embedding sequence, and the second sequence to be hidden is embedded in a second embedding sequence, so as to obtain an encrypted video file.
4. The method according to claim 3, characterized in that: The first information is encrypted using a first key to obtain a first sequence to be hidden, including: Convert the first information into binary form, and then encrypt it using the first key to obtain a first sequence; Convert the length of the first sequence into a 32-bit binary format and encrypt it using the first key to obtain a second sequence; Combining the first sequence and the second sequence to obtain a first sequence to be hidden; The second information is encrypted using the second key to obtain a second sequence to be hidden, including: Convert the second information into binary form, and then encrypt it using the second key to obtain a third sequence; Convert the length of the third sequence into a 32-bit binary format and encrypt it using the second key to obtain a fourth sequence; The third sequence and the fourth sequence are combined to obtain a second sequence to be hidden.
5. The method according to claim 3, characterized in that: Embedding the first sequence to be hidden into a first embedding sequence, and embedding the second sequence to be hidden into a second embedding sequence, comprising: The first sequence to be hidden is embedded into a first embedding sequence using STC, and the second sequence to be hidden is embedded into a second embedding sequence using a (7, 4) Hamming code.
6. The method according to claim 1, characterized in that: The macroblock motion vector residual of the original video is cut into 8-bit lengths to obtain several vectors, including: The original video is read in sequence according to the separation index of different NAL units. For the NAL units of P_NAL type or B_NAL type, all macroblocks except 16×16 partitioned macroblocks, non-P macroblocks and non-B macroblocks in the Pslice or B slice are entropy decoded in sequence, and the vertical component MVD of the motion vector residual in all macroblocks after entropy decoding is calculated. y and horizontal component MVD x The components c with larger absolute values are saved in sequence as a sequence C = (c1, c2, ..., c h ), h is the length of sequence C, and the least significant bits of all elements in sequence C are saved in order as sequence G = (lsb1, lsb2, ..., lsb h ); Group the sequence G into 8-bit vectors, where the i-th vector is denoted as: G i =(lsb i+1 ,lsb i+2 ,lsb i+3 ,lsb i+4 ,lsb i+5 ,lsb i+6 ,lsb i+7 ,lsb i+8 ), i is a positive integer, Indicates rounding down.
7. The method according to claim 1, characterized in that: The plurality of vectors are processed to obtain a first embedding sequence and a second embedding sequence, including: All 8 bits of each vector are different or obtained by one bit and saved in order as the first embedding sequence; The first 7 bits of each vector are saved in order as the second embedding sequence.