Encrypted 3D mesh model reversible information hiding method based on depth-first spanning tree

By constructing depth in the 3D grid model, the tree is prioritized and the Multi-MSB replacement and the Huffman encoding are applied to solve the problem of insufficient embedded rate in the existing technology, and more efficient information hiding and stronger security.

CN119359829AActive Publication Date: 2025-01-24EAST CHINA NORMAL UNIV

Patent Information

Application Number
CN202411436690.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-15
Publication Date
2025-01-24
Estimated Expiration
2044-10-15

AI Technical Summary

Technical Problem

When the information is hidden in the 3D mesh model, the embedding rate is insufficient, the vertex division method is simple, and the embedding space cannot be fully utilized, and the auxiliary information is long, which affects the embedding rate.

Method used

The encrypted 3D grid model reversed information hidden method based on the deep-preferred tree is used to divide the vertices by constructing depth priority tree. The Multi-MSB replacement and Huffman coding optimization than special stream arrangement can be used to reduce the length of the auxiliary information.

Benefits of technology

The embedded rate of the 3D grid model is significantly increased, the number of embedded vertices is increased, the length of the auxiliary information is reduced, and the efficiency and security of information hidden are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119359829A_ABST
    Figure CN119359829A_ABST
Patent Text Reader

Abstract

The invention discloses an encrypted 3D mesh model reversible information hiding method based on a depth-first spanning tree, which comprises the following steps: firstly converting vertex coordinates of a 3D mesh model into non-negative integers, then constructing the depth-first spanning tree according to a triangular surface relationship, then comparing all non-root nodes of the depth-first spanning tree with father nodes of the depth-first spanning tree, performing Multi-MSB replacement, and finally, constructing the depth-first spanning tree according to the non-negative integers. The method comprises the following steps of: obtaining Multi-MSB replacement length frequency number statistics and a vertex structure array after Multi-MSB replacement, recoding the same bit number to obtain a Huffman coding structure array, carrying out bit stream integration, and carrying out encryption by using a model encryption key; secondly, embedding the number of embeddable bits into the end of the encrypted information stream, and shuffling to reform an encrypted 3D mesh model; the information hider embeds the information to generate a secret-carrying 3D mesh model, and the authorization receiver decides whether to restore the model or extract the information or to simultaneously restore the model and extract the information according to different secret keys. According to the method, the problem that the number of embeddable vertexes is small is solved through the implementation of the depth spanning tree, the length of auxiliary information can be shortened, and the embedding rate is greatly increased.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of information hiding, and in particular relates to a reversible information hiding method for an encrypted 3D grid model based on a depth-first spanning tree. Background Art

[0002] In the context of the rapid development of information technology today, personal privacy protection and information security have become the focus of social attention. As an effective means to protect information from illegal acquisition and use, information hiding technology plays an important role in key fields such as digital communications, military, medical, and cloud services. In multimedia scenarios, information hiding technology uses the insensitivity of the human visual system and the redundancy of multimedia data encoding such as images and 3D models to hide additional information in multimedia data without destroying its use value. Reversible information hiding ensures that the embedded information can be accurately extracted while also losslessly restoring the original carrier signal, playing an important role in military, medical, cloud services, and other fields.

[0003] With the rapid development of information technology, 3D models have become another important data structure after images, audio and video, and are widely used in fields such as construction engineering, game development and animation production. Some scholars have begun to explore the migration of the reversible information hiding technology in the ciphertext domain that has been successfully applied in two-dimensional images to the three-dimensional grid field, hoping to provide new ideas and solutions for the information security of three-dimensional models. In order to protect privacy, model owners usually encrypt 3D models locally and upload them to the cloud to ensure the security of the transmission process; information hiders can embed watermarks, timestamps, digital signatures or other encrypted information into the model in the cloud to transmit private data or ensure copyright information; authorized recipients can extract the original 3D model or embedded information based on different authorization keys.

[0004] The existing technology usually divides vertices into an embeddable point set and a non-embeddable set. Therefore, the division method determines the proportion of embeddable points and non-embeddable points. The higher the proportion of embeddable points, the larger the embeddable space and the higher the embedding rate (ER). However, the existing division method is relatively simple, and the proportion of embeddable vertices still has room for further improvement. In addition, after using the multiple high-significant bit (Multi-MSB) method to replace the x, y, and z coordinates, the existing technology will adopt various arrangement and storage strategies, such as making the number of replaceable high bits of the x, y, and z coordinates take the minimum value of the three. The purpose is to make the length of the auxiliary information shorter when rearranging the bit stream and storing auxiliary information, thereby increasing the embeddable space and improving the embedding rate. However, these methods may waste the embeddable bit capacity of the two coordinates whose number of replaceable high bits is not the minimum. In addition, the storage of the Multi-MSB replacement relationship between embeddable vertices and non-embeddable vertices will further compress the embeddable space.

[0005] For example, patent CN115150621A discloses a 3D grid reversible information hiding algorithm based on block and multi-MSB prediction, in which the number of block divisions directly determines the number of reference center points, which are non-embeddable vertices. Due to the large number of block divisions (if there are fewer blocks, in the subsequent Multi-MSB replacement process, except for a few vertices in the block, most of the other vertices in the block have a weak correlation with the reference center point, resulting in a poor overall Multi-MSB replacement effect), the proportion of non-embeddable vertices will be large, and the number of embeddable vertices cannot reach the extreme, so the overall embedding capacity of the vertices of the entire technical solution is insufficient. In addition, the length of the embeddable information in the block of this technical solution is stored separately in each block, and is not integrated, which makes the overall auxiliary information length longer, squeezes the embeddable space, and affects the final embedding rate. XOR encryption is used but the auxiliary information is not encrypted. The auxiliary information will be exposed during network transmission, which poses certain security risks.

[0006] For example, patent CN109981918B discloses a reversible information hiding method for encrypted images based on quadtree dynamic block segmentation. When the quadtree is used for block division and the threshold β is small, in order to meet the quadtree termination decomposition condition that the difference between the maximum value and the minimum value in the block is less than 2β-1, the depth of the quadtree must be very deep, and its blocks must be many. At this time, the proportion of embeddable vertices must be small; when the threshold β is large, the available bits in the embeddable vertices are small, which will also affect the final embedding effect; when the threshold β is high, the embeddable vertices have fewer bits, which will also affect the final embedding effect. Although the effect is slightly better than the previous two values, the number of block vertices is still large, the proportion of non-embeddable vertices is large, and the number of embeddable vertices cannot reach the extreme, so the overall embedding rate of vertices is insufficient; at the same time, the technical solution uses the difference between the points in the block and the minimum value to make room for the operation method, which is not adaptive. No matter how large the pixel difference between the two points is, there is only a fixed 8-β bit of embeddable space, and the correlation between adjacent pixels is not well utilized, which affects the size of the embeddable space and reduces the overall embedding rate. Summary of the invention

[0007] Purpose of the invention: The purpose of the present invention is to solve the deficiencies in the prior art and to provide a reversible information hiding method for an encrypted 3D mesh model based on a depth-first spanning tree. The implementation of the deep spanning tree is used to solve the problem of fewer embeddable vertices, and when storing auxiliary information, there is no need to store the depth-first spanning tree, which can significantly shorten the length of the auxiliary information.

[0008] Technical solution: The invention provides a reversible information hiding method for an encrypted 3D mesh model based on a depth-first spanning tree, comprising the following steps:

[0009] Step 1: The model owner first extracts the relationship between vertex coordinates and triangular faces in the 3D mesh model file (.off), with the vertex being V and the triangular face being F, and then converts all vertex coordinates into non-negative integers to obtain the corresponding non-negative integer matrix V';

[0010] Step 2: The model owner constructs a depth-first spanning tree spanning_trees based on the triangle face relationship. The specific method is:

[0011] Step 2.1, constructing a vertex information structure array vertex_related for each vertex according to F and V', wherein the vertex information structure array vertex_related includes a vertex ID number, a point three-dimensional coordinate, and vertices related to the vertex ID number, and the vertex ID numbers are arranged in ascending order as a whole;

[0012] Step 2.2, based on the vertex information structure array vertex_related, the entire 3D mesh model is regarded as a graph structure. By default, vertex 1 is used as the starting point, and the graph is depth-first traversed and a tree is generated. When the tree can no longer be generated, the node with the smallest sequence number is selected from the remaining nodes as the root node of the next tree, and then the tree is generated again; this process is repeated until all vertices are placed in a tree, and the spanning tree spanning_trees is obtained;

[0013] The node relationship of the spanning tree spanning_trees is the required depth-first spanning tree. The depth-first spanning tree spanning_trees includes the vertex ID number and the sequence number array of the child nodes of this vertex (sorted in ascending order). If the current node is a leaf node, then there is only one sequence number here, which is recorded as 0; at the same time, the root node relationship of the depth-first spanning tree spanning_trees is represented by the root node array roots;

[0014] Step 3, compare all non-root nodes of the depth-first spanning tree spanning_trees with their parent nodes, perform Multi-MSB replacement, record the number of identical bits, irreplaceable bits, and the frequency of occurrence of identical bits; finally, obtain the frequency statistics of Multi-MSB replacement length and the vertex structure array after Multi-MSB replacement; the frequency statistics of Multi-MSB replacement length can facilitate the subsequent Huffman coding operation; the structure of the vertex structure array after Multi-MSB replacement includes the vertex ID number, the length of the number of MSB bits that can be replaced by the x, y, z coordinates, and the least significant bit (LSB) bit stream sequence that cannot be replaced by the x, y, z coordinates;

[0015] Step 4: construct Huffman code, re-encode the same number of bits, and obtain the Huffman code structure array; here, the Huffman tree can be constructed by frequency, and then the code can be generated by recursion, and its structure includes the replaceable length and its corresponding Huffman code;

[0016] Step 5: Integrate the obtained Huffman coding structure array, the vertex structure array after Multi-MSB replacement and the depth-first spanning tree spanning_trees root node array roots into bit streams (i.e., integrate the auxiliary information, root node information and non-root node information) to obtain the compressed bit stream strStream and the number of embedded bits allocated_room. And encrypt them respectively using the model encryption key;

[0017] Step 6: embed the number of embeddable bits into the end of the encrypted information stream, shuffle it, reconstruct it into an encrypted 3D mesh model, and send it to the information hider;

[0018] Step 7: After receiving the encrypted 3D mesh model, the information hider first deshuffles it, then encrypts the information to be embedded and uses the information embedding model to generate a 3D mesh model, and sends it to the authorized recipient;

[0019] Step 8: After receiving the encrypted 3D mesh model, the authorized recipient determines whether to restore the model or extract information or both according to the different authorization keys.

[0020] Furthermore, the detailed method of step 1 is:

[0021] Since the coordinate value range of V is [-1, 1], first use the formula V0 = 1-V to convert the vertex V into a non-negative floating-point matrix V0 (due to the subsequent Multi-MSB replacement of adjacent vertices, if the adjacent vertices are one positive and one negative, even if the distance is very close, the Multi-MSB replacement cannot work due to the different sign bits. Therefore, all coordinate values ​​are converted to non-negative numbers here to avoid the influence of the sign bit), and then perform integer mapping operation on V0, V' = V0×10 m , V' is the integer matrix to be sought, m ​​is its precision, and the value range of m determines the conversion of its coordinates into bit_len binary. The specific formula is:

[0022]

[0023] Here, m is 5, and the coordinates are converted to 32-bit binary, that is, bit_len=32.

[0024] Furthermore, the detailed process of step 3 is as follows:

[0025] First, all non-root nodes of the depth-first spanning tree spanning_trees are compared with their parent nodes, and Multi-MSB replacement is performed to record the number of identical bits, irreplaceable bits, and the frequency of occurrence of the identical bits; then, the x, y, and z coordinates of each node are converted into 32-bit binary representations, and the parent node and the child node are compared bit by bit starting from the highest bit until a certain digit is different. In this case, this digit is a different digit, and the sequence of the length of the child node coordinate before this digit can be replaced by the parent node; finally, the Multi-MSB replacement length frequency statistics and the vertex structure array after Multi-MSB replacement are obtained. The Multi-MSB replacement length frequency statistics can facilitate the subsequent Huffman coding operation; the structure of the vertex structure array after Multi-MSB replacement includes the vertex ID number, the length of the number of MSB bits that can be replaced in the x, y, and z coordinates, and the least significant bit (LSB) bit stream sequence that cannot be replaced in the x, y, and z coordinates.

[0026] Furthermore, the specific method of step 5 is:

[0027] First, use 16 bits to store the length of the Huffman code; then integrate the specific Huffman codes in sequence, which are divided into three parts: serial number ID (6 bits), code length (6 bits) and code; then store the position of the root node, the length of which is (bit_len×3)×nRoots, where nRoots is the number of root nodes, and the storage order is in ascending order of ID; then store the non-root nodes ((Huffman code corresponding to the length of the replaceable MSB bit + LSB)×(x,y,z)), and the storage order is in ascending order of ID, and the order of x, y, z coordinates within the vertex; finally, obtain the compressed bit stream strStream and the number of embeddable bits allocated_room; the obtained number of embeddable bits is represented by 32-bit binary;

[0028] Use stream cipher to encrypt the compressed bit stream strStream, using the model encryption key K en Get a pseudo-random matrix H, and perform XOR (exclusive OR) encryption operation on the compressed bit stream strStream bit by bit. XOR encryption is used here because it is simple to operate, adapts to the bit stream operated bit by bit, and has operation symmetry. No matter encryption or decryption, only one XOR operation is required.

[0029] Furthermore, the detailed method of step 6 is: first, store the number of embeddable bits allocated_room in the last 32 bits of the embedding information matrix to facilitate subsequent embedding or recovery information and recovery model, and then use the shuffle key K fix Generate a shuffle matrix, shuffle, and distribute the shuffled data stream to V en The shuffling operation helps to improve the information privacy of each part of the bit stream and avoids the number of embeddable bits being directly exposed during the transmission process. The shuffling key K fix As the key required for each operation stage, it is jointly held by the three parties of the operation; finally, the binary system is converted into decimal system to obtain the encrypted vertex information, which can be combined with F to construct the encrypted 3D mesh model.

[0030] Furthermore, the detailed method of step 7 is:

[0031] The information hider first converts the encrypted 3D mesh model vertices into a binary array and then uses the shuffle key K fix Perform the deshuffling operation and extract the number of embedded bits allocated_room from the last 32 bits of the bit stream; then the information hider will use the information encryption key K to embed the information to be embedded emb Encrypt, the encryption also uses XOR encryption, and then put it into the vacated space, using the shuffle key K fix Generate a shuffle matrix, shuffle it, and regenerate the encrypted binary array; then assign the shuffled data to V store In the matrix, the final conversion of binary to decimal is the encrypted vertex information. With F, the encrypted 3D mesh model can be constructed.

[0032] Furthermore, the specific steps of restoring the model in step 8 are:

[0033] Step 1) First, normalize the vertices and convert them into binary arrays, using the shuffle key K fix Perform the deshuffling operation to obtain the restored encrypted binary sequence, and extract the number of embeddable bits allocated_room from the last 32 bits;

[0034] Step 2) Use the model encryption key K en Get a pseudo-random matrix H, perform XOR operation on the restored encrypted binary sequence to obtain the decrypted encrypted binary array, and then get and split the compressed bit stream strStream;

[0035] Step 3), extract Huffman code and construct Huffman code tree HuffmanTree to facilitate subsequent length matching;

[0036] Step 4), re-obtain information related to each vertex based on F, and construct a depth-first spanning tree spanning_trees;

[0037] Step 5) Extract the root node in order, and then extract the non-root node information, and reconstruct the coordinate information of the non-root node according to the length of the HuffmanTree matching Multi-MSB replacement. Get the vertex structure array after Multi-MSB replacement, the structure is still the vertex ID number, the length of the MSB bit that can be replaced by the x, y, z coordinates, and the LSB bit stream sequence that cannot be replaced by the x, y, z coordinates;

[0038] Step 6), perform Multi-MSB replacement and restoration, use the queue to start the restoration operation from the root node to the child node in sequence, avoid the problem of repeated traversal, and obtain V', that is, the vertex information after integer mapping;

[0039] Step 7) Perform floating point reduction on V' and use the formula V restore =1-V' to get the final reduced V restore The vertex information can be combined with F to construct the restored 3D mesh model.

[0040] Furthermore, the specific steps of extracting information in step 8 are:

[0041] First, normalize the vertices and convert them into binary arrays, using the shuffle key K fix Perform the deshuffle operation to obtain the restored encrypted binary sequence, extract the number of embedded bits allocated_room from the last 32 bits; obtain the encrypted information sequence, and use the information encryption key K emb Decrypt it and get the restored embedded information.

[0042] Beneficial effects: Compared with the prior art, the present invention has the following advantages:

[0043] (1) The present invention traverses the triangular face set of the 3D mesh model, obtains the associated vertex structure vertex_related, and then traverses vertex_related to gradually construct a depth-first spanning tree. Since the 3D mesh model is usually connected, that is, starting from any node, one or more paths can be used to reach other nodes. Therefore, the present invention does not need multiple root nodes to construct a spanning tree. Only one depth-first spanning tree DFS is generated to deeply access all reachable nodes without missing any nodes.

[0044] (2) The present invention rearranges the bit stream and stores auxiliary information. After each vertex coordinate is replaced by Multi-MSB, the replaced part becomes a replaceable space, which ensures that each coordinate record has a sufficient length, thus avoiding the waste of embeddable space.

[0045] (3) In the process of arranging the bit stream of the present invention, except for the number of embeddable bits being placed at the end, the remaining auxiliary information is stored in sequence according to the total length occupied by the Huffman code, the ID corresponding to each Huffman code, the length and the code. Since the vertex topological relationship, i.e., the face information, is used to construct the depth-first spanning tree, and the topological relationship does not participate in information hiding, no additional parameters are required to store the depth-first spanning tree, saving a lot of space. BRIEF DESCRIPTION OF THE DRAWINGS

[0046] Figure 1 It is the overall flow chart of the present invention;

[0047] Figure 2 It is a flow chart of encryption and information hiding of 3D mesh model of the present invention;

[0048] Figure 3 A depth-first spanning tree construction process for an embodiment;

[0049] Figure 4 An example of the Multi-MSB replacement process of an embodiment;

[0050] Figure 5 A schematic diagram of the positions of different component bit sequences in different processes of the embodiment;

[0051] Figure 6 It is a test effect diagram of the embodiment. DETAILED DESCRIPTION

[0052] The technical solution of the present invention is described in detail below, but the protection scope of the present invention is not limited to the embodiments.

[0053] like Figure 1 and Figure 2 As shown, the reversible information hiding method of an encrypted 3D mesh model based on a depth-first spanning tree of the present invention comprises the following steps:

[0054] Step 1: The model owner first extracts the relationship between vertex coordinates and triangular faces in the 3D mesh model file (.off), with the vertex being V and the triangular face being F, and then converts all vertex coordinates into non-negative integers to obtain the corresponding non-negative integer matrix V';

[0055] Step 2: The model owner constructs a depth-first spanning tree spanning_trees based on the triangle face relationship. The specific method (such as Figure 4 )for:

[0056] Step 2.1, constructing a vertex information structure array vertex_related for each vertex according to F and V', wherein the vertex information structure array vertex_related includes a vertex ID number, a point three-dimensional coordinate, and vertices related to the vertex ID number, and the vertex ID numbers are arranged in ascending order as a whole;

[0057] Step 2.2: Figure 3 As shown, based on the vertex information structure array vertex_related, the entire 3D mesh model is regarded as a graph structure. By default, vertex 1 is used as the starting point, and the graph is traversed in depth first and a tree is generated. When the tree can no longer be generated, the node with the smallest sequence number is selected from the remaining nodes as the root node of the next tree, and then the tree is generated again; this is repeated until all vertices are placed in a certain tree, and the spanning tree spanning_trees is obtained; the node relationship of the spanning tree spanning_trees is the required depth-first spanning tree, and the depth-first spanning tree spanning_trees includes the vertex ID number and the sequence number array of the child nodes of this vertex (sorted in ascending order). If the current node is a leaf node, there is only one sequence number here, which is recorded as 0; at the same time, the root node relationship of the depth-first spanning tree spanning_trees is represented by the root node array roots;

[0058] Step 3, compare all non-root nodes of the depth-first spanning tree spanning_trees with their parent nodes, perform Multi-MSB replacement, record the number of identical bits, irreplaceable bits, and the frequency of occurrence of identical bits; finally, obtain the frequency statistics of Multi-MSB replacement length and the vertex structure array after Multi-MSB replacement; the frequency statistics of Multi-MSB replacement length can facilitate the subsequent Huffman coding operation; the structure of the vertex structure array after Multi-MSB replacement includes the vertex ID number, the length of the number of MSB bits that can be replaced by the x, y, z coordinates, and the least significant bit (LSB) bit stream sequence that cannot be replaced by the x, y, z coordinates;

[0059] Step 4: construct Huffman code, re-encode the same number of bits, and obtain the Huffman code structure array; here, the Huffman tree can be constructed by frequency, and then the code can be generated by recursion, and its structure includes the replaceable length and its corresponding Huffman code;

[0060] Step 5: Integrate the obtained Huffman coding structure array, the vertex structure array after Multi-MSB replacement and the depth-first spanning tree spanning_trees root node array roots into bit streams (i.e., integrate the auxiliary information, root node information and non-root node information) to obtain the compressed bit stream strStream and the number of embedded bits allocated_room. And encrypt them respectively using the model encryption key;

[0061] Step 6: embed the number of embeddable bits into the end of the encrypted information stream, shuffle it, reconstruct it into an encrypted 3D mesh model, and send it to the information hider;

[0062] Step 7: After receiving the encrypted 3D mesh model, the information hider first deshuffles it, then encrypts the information to be embedded and uses the information embedding model to generate a 3D mesh model, and sends it to the authorized recipient;

[0063] Step 8: After receiving the encrypted 3D mesh model, the authorized recipient determines whether to restore the model or extract information or both according to the different authorization keys.

[0064] The present invention makes full use of the topological relationship of the vertices of the 3D mesh model to construct a depth-first spanning tree, which greatly increases the number of embeddable vertices and optimizes the Multi-MSB replacement and bit stream arrangement methods, thereby greatly improving the embedding rate. Finally, the encrypted 3D mesh model is uploaded to the cloud by the model owner; the information hider can embed information into the model in the cloud to construct a encrypted 3D mesh model; and the authorized recipient can download the encrypted 3D mesh model from the cloud and re-implement information extraction or model recovery according to different authorization keys.

[0065] The detailed method of step 1 in this embodiment is:

[0066] Since the coordinate value range of V is [-1, 1], we first use the formula V0 = 1-V to convert the vertex V into a non-negative floating-point matrix V0, and then perform an integer mapping operation on V0, V' = V0 × 10 m , V' is the integer matrix to be sought, m ​​is its precision, and the value range of m determines the conversion of its coordinates into bit_len binary. The specific formula is:

[0067]

[0068] In this embodiment, the value of m is 5, and the coordinates are converted into 32-bit binary, that is, bit_len=32.

[0069] Furthermore, the detailed process of step 3 is as follows:

[0070] First, all non-root nodes of the depth-first spanning tree spanning_trees are compared with their parent nodes, and Multi-MSB replacement is performed to record the number of identical bits, irreplaceable bits, and the frequency of occurrence of the identical bits; then, the x, y, and z coordinates of each node are converted into 32-bit binary representations, and the parent node and the child node are compared bit by bit starting from the highest bit until a certain digit is different. In this case, this digit is a different digit, and the sequence of the length of the child node coordinate before this digit can be replaced by the parent node; finally, the Multi-MSB replacement length frequency statistics and the vertex structure array after Multi-MSB replacement are obtained. The Multi-MSB replacement length frequency statistics can facilitate the subsequent Huffman coding operation; the structure of the vertex structure array after Multi-MSB replacement includes the vertex ID number, the length of the number of MSB bits that can be replaced in the x, y, and z coordinates, and the least significant bit (LSB) bit stream sequence that cannot be replaced in the x, y, and z coordinates.

[0071] like Figure 4 As shown, this embodiment takes the xwing model as an example, and shows the process of performing Multi-MSB replacement of the x coordinate of the parent node with ID 88 and the child nodes with IDs 89, 131 and 1057 respectively. Figure 4 In the example, the first 19 bits of the x-coordinate of the child node with ID 89 can be replaced by the x-coordinate of the parent node, and the first 18 bits of the x-coordinate of the child nodes with IDs 131 and 1057 can be replaced by the x-coordinate of the parent node. Since this part of the bit sequence of the child node coordinates can be replaced, it can be left blank, that is, it is a component of the subsequent embeddable space; since the different bits and all subsequent sequences cannot be replaced, they are components of the subsequent non-embeddable space.

[0072] The specific method of step 5 in this embodiment is:

[0073] First, use 16 bits to store the length of the Huffman code; then integrate the specific Huffman codes in sequence, which are divided into three parts: serial number ID (6 bits), code length (6 bits) and code; then store the position of the root node, the length of which is (bit_len×3)×nRoots, where nRoots is the number of root nodes, and the storage order is in ascending order of ID; then store the non-root nodes ((Huffman code corresponding to the length of the replaceable MSB bit + LSB)×(x,y,z)), the storage order is in ascending order of ID, and the order of x, y, z coordinates within the vertex; finally, obtain the compressed bit stream strStream and the number of embedded bits allocated_room; the obtained number of embedded bits is represented by 32-bit binary; use stream cipher to encrypt the compressed bit stream strStream, and use the model encryption key K en Get a pseudo-random matrix H, and perform XOR (exclusive OR) encryption operation on the compressed bit stream strStream bit by bit. XOR encryption is used here because it is simple to operate, adapts to the bit stream operated bit by bit, and has operation symmetry. No matter encryption or decryption, only one XOR operation is required.

[0074] like Figure 5 As shown, the detailed method of step 6 is: first store the number of embeddable bits allocated_room in the last 32 bits of the embedded information matrix to facilitate subsequent embedding or recovery information and recovery model, and then use the shuffle key K fix Generate a shuffle matrix, shuffle, and distribute the shuffled data stream to V en The shuffling operation helps to improve the information privacy of each part of the bit stream and avoids the number of embeddable bits being directly exposed during the transmission process. The shuffling key K fix As the key required for each operation stage, it is jointly held by the three parties of the operation; finally, the binary system is converted into decimal system to obtain the encrypted vertex information, which can be combined with F to construct the encrypted 3D mesh model.

[0075] The .off file of the 3D mesh model in this embodiment is composed of vertex information and face information, and is a text type file. The first line of the file is the .off file header "OFF", the second line is the number of vertices Num_vetex, the number of faces Num_face and the number of edges (usually set to 0 by default), the third line to the Num_vetex+2 line is the vertex information, and the Num_vetex+3 line to the Num_vetex+Num_face+3 line is the face information. Therefore, if you want to rebuild the 3D mesh model of the .off file, you only need to know the vertex information matrix and the face information matrix, add the file header and the number of vertices, the number of faces and the number of edges (set to 0) at the beginning, and you can rebuild it.

[0076] The detailed method of step 7 in this embodiment is:

[0077] The information hider first converts the encrypted 3D mesh model vertices into a binary array and then uses the shuffle key K fix Perform the deshuffling operation and extract the number of embedded bits allocated_room from the last 32 bits of the bit stream; then the information hider will use the information encryption key K to embed the information to be embedded emb Encrypt, the encryption also uses XOR encryption, and then put it into the vacated space, using the shuffle key K fix Generate a shuffle matrix, shuffle it, and regenerate the encrypted binary array; then assign the shuffled data to V store In the matrix, the final conversion of binary to decimal is the encrypted vertex information. With F, the encrypted 3D mesh model can be constructed.

[0078] Specific steps to restore the model in step 8:

[0079] Step 1) First, normalize the vertices and convert them into binary arrays, using the shuffle key K fix Perform the deshuffling operation to obtain the restored encrypted binary sequence, and extract the number of embeddable bits allocated_room from the last 32 bits;

[0080] Step 2) Use the model encryption key K en Get a pseudo-random matrix H, perform XOR operation on the restored encrypted binary sequence to obtain the decrypted encrypted binary array, and then get and split the compressed bit stream strStream;

[0081] Step 3), extract Huffman code and construct Huffman code tree HuffmanTree to facilitate subsequent length matching;

[0082] Step 4), re-obtain information related to each vertex based on F, and construct a depth-first spanning tree spanning_trees;

[0083] Step 5) Extract the root node in order, and then extract the non-root node information, and reconstruct the coordinate information of the non-root node according to the length of the HuffmanTree matching Multi-MSB replacement. Get the vertex structure array after Multi-MSB replacement, the structure is still the vertex ID number, the length of the MSB bit that can be replaced by the x, y, z coordinates, and the LSB bit stream sequence that cannot be replaced by the x, y, z coordinates;

[0084] Step 6), perform Multi-MSB replacement and restoration, use the queue to start the restoration operation from the root node to the child node in sequence, avoid the problem of repeated traversal, and obtain V', that is, the vertex information after integer mapping;

[0085] Step 7) Perform floating point reduction on V' and use the formula V restore =1-V' to get the final reduced V restore The vertex information can be combined with F to construct the restored 3D mesh model.

[0086] The specific steps to extract information in step 8 are:

[0087] First, normalize the vertices and convert them into binary arrays, using the shuffle key K fix Perform the deshuffle operation to obtain the restored encrypted binary sequence, extract the number of embedded bits allocated_room from the last 32 bits; obtain the encrypted information sequence, and use the information encryption key K emb Decrypt it and get the restored embedded information.

[0088] Example

[0089] This embodiment adopts Figure 6 The 3D mesh model in is used to verify the technical solution of the present invention, and its specific effects are shown in Table 1:

[0090] Table 1 ER (bpv), Hausdorff distance and SNR of the present invention on the test samples

[0091]

[0092] It can be seen from Table 1 that the present invention can achieve a very high embedding rate on each test sample, which can reach more than 50 bpv. -6The SNR values ​​are all greater than 90. Since the smaller the Hausdorff distance is, the higher the SNR value is, indicating that the restoration quality of the 3D mesh model used in the embodiment is higher. Therefore, in addition to having advantages in terms of embedding rate, the present invention also achieves better results in model restoration.

[0093] In summary, the present invention divides vertices by constructing a depth-first spanning tree, and regards the 3D mesh model as a graph. Since most 3D mesh models are connected graphs, the number of spanning trees is only one or a few, and the specific number is determined by the number of connected subgraphs. Therefore. In the present invention, the number of root nodes of the tree is very small compared to the total number of vertices, and the root node is a non-embeddable vertex, and the non-root node is an embeddable node. The embeddable node accounts for a large proportion, which can greatly increase the overall embeddable space. Secondly, the present invention uses Multi-MSB replacement to make good use of the correlation between the vertex coordinates of the parent node and the child node, and adaptively allocates the replaceable length to ensure that the embeddable space of each embeddable vertex is fully utilized; Huffamn encoding is also used to replace the Multi-MSB replacement length parameter, which greatly reduces the length of the auxiliary information. At the same time, the present invention uses bit stream rearrangement for integration, stores the auxiliary information, non-embeddable space, and embeddable space in order, and stores the length information of each part separately, thereby avoiding redundancy. In addition, since only face information is needed to construct a depth-first spanning tree, there is no need to store the depth-first spanning tree in the auxiliary information. Moreover, in the process of reconstructing the 3D mesh model, a shuffling key is used to shuffle the bit stream, which not only disrupts the order of each part, but also effectively hides the auxiliary information to avoid its direct exposure during network transmission.

Claims

1. A reversible information hiding method for encrypted 3D mesh models based on depth-first spanning tree, characterized in that: The following steps are involved: Step 1: The model owner first extracts the relationship between the vertex coordinates and the triangular face of the 3D mesh model, with the vertex being V and the triangular face being F, and then converts all vertex coordinates into non-negative integers to obtain the corresponding non-negative integer matrix V'; Step 2: The model owner constructs a depth-first spanning tree spanning_trees based on the triangle face relationship. The specific method is: Step 2.1, constructing a vertex information structure array vertex_related for each vertex according to F and V', wherein the vertex information structure array vertex_related includes a vertex ID number, a point three-dimensional coordinate, and vertices related to the vertex ID number, and the vertex ID numbers are arranged in ascending order as a whole; Step 2.2, based on the vertex information structure array vertex_related, the entire 3D mesh model is regarded as a graph structure. By default, vertex 1 is used as the starting point, and the graph is depth-first traversed and a tree is generated. When the tree can no longer be generated, the node with the smallest sequence number is selected from the remaining nodes as the root node of the next tree, and then the tree is generated again; this process is repeated until all vertices are placed in a tree, and the spanning tree spanning_trees is obtained; The node relationship of the spanning tree spanning_trees is the required depth-first spanning tree. The depth-first spanning tree spanning_trees includes the vertex ID number and the sequence number array of the child nodes of this vertex. If the current node is a leaf node, there is only one sequence number here, which is recorded as 0; at the same time, the root node relationship of the depth-first spanning tree spanning_trees is represented by the root node array roots; Step 3: Compare all non-root nodes of the depth-first spanning tree spanning_trees with their parent nodes, perform Multi-MSB replacement, and record the number of identical bits, irreplaceable bits, and the frequency of the identical number of bits. Finally, we get the frequency statistics of Multi-MSB replacement length and the vertex structure array after Multi-MSB replacement; the frequency statistics of Multi-MSB replacement length can facilitate the subsequent Huffman coding operation; the structure of the vertex structure array after Multi-MSB replacement includes the vertex ID number, the length of the MSB bits that can be replaced by the x, y, z coordinates, and the least significant bit LSB bit stream sequence of the x, y, z coordinates that cannot be replaced; Step 4: construct Huffman code, re-encode the same number of bits, and obtain a Huffman code structure array; Step 5: Integrate the obtained Huffman coding structure array, the vertex structure array after Multi-MSB replacement and the depth-first spanning tree spanning_trees root node array roots into bit streams to obtain the compressed bit stream strStream and the number of embeddable bits allocated_room. And encrypt them respectively using the model encryption key; Step 6: embed the number of embeddable bits into the end of the encrypted information stream, shuffle it, reconstruct it into an encrypted 3D mesh model, and send it to the information hider; Step 7: After receiving the encrypted 3D mesh model, the information hider first deshuffles it, then encrypts the information to be embedded and uses the information embedding model to generate a 3D mesh model, and sends it to the authorized recipient; Step 8: After receiving the encrypted 3D mesh model, the authorized recipient determines whether to restore the model or extract information or both according to the different authorization keys.

2. The reversible information hiding method for encrypted 3D mesh model based on depth-first spanning tree according to claim 1 is characterized in that: The specific method of step 1 is: First, use the formula V0=1-V to convert the vertex V into a non-negative floating-point matrix V0, and then perform an integer mapping operation on V0, V'=V0×10 m , V' is the integer matrix to be sought, m ​​is its precision, and the value range of m determines the conversion of its coordinates into bit_len binary. The specific formula is:

3. The reversible information hiding method for encrypted 3D mesh model based on depth-first spanning tree according to claim 1 is characterized in that: The specific method of step 3 is: First, convert the coordinates of the parent node and the child node into 32-bit binary representation, and then compare the parent node and the child node bit by bit starting from the highest bit until a certain digit is different. In this case, this bit is a different bit, and the sequence of the length before this bit of the child node coordinate can be replaced by the parent node.

4. The reversible information hiding method for encrypted 3D mesh model based on depth-first spanning tree according to claim 1, characterized in that: The specific method of information integration in step 5 is: First, use 16 bits to store the length occupied by the Huffman code; then, integrate the Huffman code in sequence, which is divided into three parts, the serial number ID (6 bits), the code length (6 bits) and the code; then, store the position of the root node, the length occupied is (bit_len×3)×nRoots, nRoots is the number of root nodes, and the storage order is in ascending order of ID; then, store the non-root nodes ((Huffman code corresponding to the length of the replaceable MSB bit + LSB)×(x, y, z)), the storage order is in ascending order of ID, and the order of x, y, z coordinates within the vertex; finally, obtain the compressed bit stream strStream and the number of embedded bits allocated_room; the number of embedded bits allocated_room; The method to encrypt using the model encryption key is: Use stream cipher to encrypt the compressed bit stream strStream, using the model encryption key K en Get a pseudo-random matrix H and perform XOR encryption operation on the compressed bit stream strStream bit by bit.

5. The reversible information hiding method for encrypted 3D mesh model based on depth-first spanning tree according to claim 1, characterized in that: The detailed method of step 6 is: First, the number of embeddable bits allocated_room is stored in the last 32 bits of the encrypted information matrix; Then, using the shuffle key K fix Generate a shuffle matrix, shuffle, and distribute the shuffled data stream to V en In the matrix; Finally, the binary is converted into decimal to obtain the encrypted vertex information, and combined with F to construct an encrypted 3D mesh model.

6. According to the reversible information hiding method of encrypted 3D mesh model based on depth-first spanning tree in claim 1, the detailed process of the information hider generating the encrypted 3D mesh model in step 7 is: First, the encrypted 3D mesh model vertices are converted into a binary array, and then the shuffle key K is used fix Perform a deshuffle operation and extract the number of embeddable bits allocated_room from the last 32 bits of the bit stream; Then, the information to be embedded is encrypted using the information encryption key K emb Encrypt, the encryption also uses XOR encryption, and then put it into the vacated space, using the shuffle key K fix Generate a shuffle matrix, shuffle it, and regenerate a binary array containing secrets; Finally, assign the shuffled data to V store In the matrix, the binary is finally converted into decimal to obtain the encrypted vertex information, which is combined with F to construct a encrypted 3D mesh model.

7. The reversible information hiding method for encrypted 3D mesh model based on depth-first spanning tree according to claim 1, characterized in that: The specific steps of restoring the model in step 8 are as follows: Step 1) First, normalize the vertices and convert them into binary arrays, using the shuffle key K fix Perform the deshuffling operation to obtain the restored encrypted binary sequence, and extract the number of embeddable bits allocated_room from the last 32 bits; Step 2) Use the model encryption key K en Get a pseudo-random matrix H, perform XOR operation on the restored encrypted binary sequence to obtain the decrypted encrypted binary array, and then get and split the compressed bit stream strStream; Step 3), extract Huffman code and construct Huffman code tree HuffmanTree to facilitate subsequent length matching; Step 4), re-obtain information related to each vertex based on F, and construct a depth-first spanning tree spanning_trees; Step 5), extract the root node in order, and then extract the non-root node information, and reconstruct the coordinate information of the non-root node according to the length of the HuffmanTree matching Multi-MSB replacement; Get the vertex structure array after Multi-MSB replacement; Step 6), perform Multi-MSB replacement and restoration, use the queue to perform restoration operations from the root node to the child node in sequence, and obtain V', that is, the vertex information after integer mapping; Step 7) Perform floating point reduction on V' and use the formula V restore =1-V' to get the final reduced V restore The vertex information can be combined with F to construct the restored 3D mesh model.

8. The reversible information hiding method for encrypted 3D mesh model based on depth-first spanning tree according to claim 1, characterized in that: The detailed steps of extracting information in step 8 are as follows: First, the vertices are converted into a normalized binary array using the shuffle key K fix Perform the deshuffle operation to obtain the restored encrypted binary sequence, extract the number of embedded bits allocated_room from the last 32 bits; then obtain the encrypted information sequence, and use the information encryption key K emb Decrypt it and get the restored embedded information.

Citation Information

Patent Citations

  • A Reversible Information Hiding Method for Encrypted Images Based on Quadtree Dynamic Block Segmentation

    CN109981918B

  • Apparatus and method for low-complexity three-dimensional mesh compression

    US20110046923A1

  • Linear Blend Skinning Weight Optimization Utilizing Skeletal Pose Sampling

    US20170032055A1

  • Hierarchical continuous level of detail for three-dimentional meshes

    US20170091992A1

  • Compression of simple geometric models using spanning trees

    US5825369A

Cited By

  • Digital watermark embedding and extracting method for live-action three-dimensional model data

    CN119722429A

  • Digital Watermark Embedding and Extraction Method for Real Scene 3D Model Data

    CN119722429B