A method and device for realizing three-dimensional model software online encryption based on AES-GCM
By using the AES-GCM algorithm to generate and encrypt the initial fingerprint code at the front end, the security and speed issues of existing encryption technologies are resolved, achieving fast and secure protection of 3D model software data, reducing system complexity and improving user experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- CHINA UNITED NETWORK COMM GRP CO LTD
- Filing Date
- 2024-08-16
- Publication Date
- 2026-07-28
AI Technical Summary
Existing encryption technologies suffer from low security, slow speed, long key length, unsuitability for specific scenarios, lack of standardization and widespread support. Furthermore, backend encryption is vulnerable to attacks that can lead to data loss, and online encryption methods are not easy to optimize.
The AES-GCM encryption algorithm is used to encrypt and decrypt the 3D model software at the front end, generate an initial fingerprint code, and encrypt it using an AES key and an initialization vector IV. This generates the encrypted fingerprint code and authentication tag. All calculations are performed locally to ensure data security.
It achieves a highly secure and fast encryption and decryption process, reduces system architecture complexity, protects user privacy, and improves the portability and user experience of 3D modeling software.
Smart Images

Figure CN119109625B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of data security technology, and in particular to a method and apparatus for online encryption of 3D model software based on AES-GCM. Background Technology
[0002] With the widespread adoption of encryption technology and increasing demands for data privacy and security, encrypted traffic has exploded. According to Google's latest transparency report, 100% of the top 100 websites on the internet support HTTPS encryption, with 97% using it by default. While encryption technology protects user privacy, its misuse has profoundly changed the landscape of cybersecurity, making online fraud and illegal online transactions easier, and allowing hackers to more easily evade detection of ransomware, phishing attacks, and data breaches. A WatchGuard internet research report indicates that 91.5% of malware detected uses HTTPS for encrypted transmission. This means that companies without detection systems to decrypt and scan HTTPS traffic will overlook over 90% of malware threats. Another recent research report from Zscaler Security Threat Labs also claims that as of October 2023, the number of ransomware attacks globally increased by 37.75% year-on-year, and the effective attack payload of ransomware surged by 57.50%.
[0003] However, existing technologies use a combination of encryption algorithms and backend encryption.
[0004] On the one hand, the encryption algorithms used in existing technologies have the following shortcomings:
[0005] 1. Lower security: Some older encryption algorithms, such as DES, are considered no longer secure and are vulnerable to various attacks, such as brute-force attacks and differential attacks. Other algorithms may also have security weaknesses.
[0006] 2. Slower encryption speed: Some encryption algorithms, such as RSA, require a long time for encryption and decryption operations, especially for encrypting large amounts of data. This can affect system performance and response time.
[0007] 3. Long key lengths: Some encryption algorithms, such as RSA, require long key lengths to provide sufficient security. This can lead to complexities in key management and transmission.
[0008] 4. Not suitable for specific application scenarios: Some encryption algorithms may not be suitable for specific application scenarios. For example, stream cipher algorithms may be more suitable for scenarios requiring high-speed data transmission and real-time encryption, while asymmetric encryption algorithms may be more suitable for scenarios such as authentication and key exchange.
[0009] 5. Lack of standardization and widespread support: Currently, some encryption algorithms lack widespread standardization and support. This can lead to interoperability and compatibility issues between different systems and platforms.
[0010] On the other hand, the back-end encryption used in existing technologies has the following drawbacks:
[0011] 1. Backend encryption needs to be stored in the database for preservation, and data loss is easily caused by hacker attacks on the database.
[0012] 2. Encryption for the backend often takes more time, and excessively long encryption times for the backend are often difficult to optimize. Encryption methods for online users are also less common. Summary of the Invention
[0013] The technical problem this invention aims to solve is to address the aforementioned shortcomings of existing technologies by proposing a method and apparatus for online encryption of 3D model software based on AES-GCM. This method enables secure AES-GCM encryption and decryption entirely on the front end without a back end, ensuring the data security of the 3D model software.
[0014] In a first aspect, the present invention provides a method for online encryption of 3D model software based on AES-GCM, the method comprising the following steps:
[0015] Step S1: Obtain 3D point cloud data or 3D data information from the front-end 3D model software data;
[0016] Step S2: Obtain the front-end data to be encrypted based on the three-dimensional point cloud data or three-dimensional data information;
[0017] Step S3: Generate an initial fingerprint code based on the front-end data to be encrypted; the initial fingerprint code is a unique identifier corresponding to the front-end data to be encrypted.
[0018] Step S4: Encrypt the initial fingerprint code using the AES key and initialization vector IV based on AES-GCM to generate the encrypted fingerprint code and authentication tag, thereby completing the online encryption of the 3D model software based on AES-GCM.
[0019] The AES key is obtained through the crypto.subtle.generateKey wrapper function.
[0020] Furthermore, the AES key, the initialization vector IV, and the authentication tag are all stored in local files on the front end;
[0021] After step S4, the method further includes:
[0022] Step S5: Retrieve the AES key, the initialization vector IV, and the authentication tag from the local file to decrypt the encrypted fingerprint code and obtain the decrypted fingerprint code;
[0023] Step S6: Compare the decrypted fingerprint code with the initial fingerprint code to obtain authorization for the front-end 3D model software data, thereby completing the online decryption of the 3D model software based on AES-GCM.
[0024] Furthermore, the process of obtaining the AES key specifically includes the following steps:
[0025] Set the AES-GCM key length to 256 bits;
[0026] Call the crypto.subtle.generateKey wrapper function to generate an AES key;
[0027] The process of obtaining the initialization vector IV specifically includes the following steps:
[0028] Set the initialization vector IV length;
[0029] Call the crypto.getRandomValues function to generate the initialization vector IV.
[0030] Further, step S2 specifically includes the following steps:
[0031] The three-dimensional point cloud data or three-dimensional data information is cleaned.
[0032] The cleaned 3D point cloud data or 3D data information is normalized to the same coordinate system to obtain coordinate data;
[0033] Determine the storage format for the front-end 3D model software data;
[0034] The coordinate data is formatted and stored according to the specified storage format to obtain the front-end data to be encrypted.
[0035] Further, in step S6, the decrypted fingerprint code is compared with the initial fingerprint code to obtain authorization for the front-end 3D model software data, specifically including the following steps:
[0036] The decrypted fingerprint code is compared with the original initial fingerprint code by string or hash value;
[0037] If the decrypted fingerprint string is the same as the original initial fingerprint string, or if the decrypted fingerprint hash code is the same as the original initial fingerprint hash code, then the authorization is successful, meaning the user has the right to access or operate the front-end 3D model data; otherwise, the authorization fails, meaning the user cannot obtain the right to access or operate the front-end 3D model data.
[0038] Secondly, the present invention provides an apparatus for online encryption of 3D model software based on AES-GCM, the apparatus comprising:
[0039] The acquisition unit is used to acquire 3D point cloud data or 3D data information from the front-end 3D model software data.
[0040] The first processing unit, connected to the acquisition unit, is used to format the three-dimensional point cloud data or three-dimensional data information to obtain the front-end data to be encrypted.
[0041] The second processing unit, connected to the first processing unit, is used to generate an initial fingerprint code, which is a unique identifier corresponding to the front-end data to be encrypted.
[0042] An encryption unit, connected to the second processing unit, is used to encrypt the initial fingerprint code using an AES key and an initialization vector IV based on AES-GCM, and generate an encrypted fingerprint code and an authentication tag, thereby completing the online encryption of the 3D model software based on AES-GCM.
[0043] The AES key is obtained through the crypto.subtle.generateKey wrapper function.
[0044] The device further includes:
[0045] A storage unit, connected to the encryption unit, is used to store the AES key, the initialization vector IV, and the authentication tag in a local file at the front end;
[0046] A decryption unit, connected to the storage unit, is used to retrieve the AES key, the initialization vector IV, and the authentication tag from the local file to decrypt the encrypted fingerprint code and obtain the decrypted fingerprint code.
[0047] The comparison unit, connected to the decryption unit, is used to compare the decrypted fingerprint code with the initial fingerprint code to obtain authorization of the front-end 3D model software data, thereby completing the online decryption of the 3D model software based on AES-GCM.
[0048] Furthermore, the device also includes a first generation unit and a second generation unit;
[0049] The first generation unit is connected to the encryption unit and is used to generate an AES key;
[0050] The first generation unit includes:
[0051] The first setting module is used to set the AES-GCM key length to 256 bits;
[0052] The first generation module, connected to the first setting module, is used to call the crypto.subtle.generateKey encapsulation function to generate an AES key;
[0053] The second generation unit is connected to the encryption unit and is used to generate the initialization vector IV;
[0054] The second generation unit includes:
[0055] The second setting module is used to set the length of the initialization vector IV;
[0056] The second generation module, connected to the second setting module, is used to call the crypto.getRandomValues function to generate the initialization vector IV.
[0057] Further, the first processing unit includes:
[0058] The cleaning module is used to clean the three-dimensional point cloud data or three-dimensional data information.
[0059] The normalization module, connected to the cleaning module, is used to normalize the cleaned 3D point cloud data or 3D data information to the same coordinate system to obtain coordinate data.
[0060] The determination module is used to determine the storage format of the front-end 3D model software data;
[0061] The storage module, connected to the normalization module and the determination module respectively, is used to store the coordinate data in the specified storage format to obtain the front-end data to be encrypted.
[0062] Furthermore, the comparison unit includes:
[0063] The comparison module is used to compare the decrypted fingerprint code with the original initial fingerprint code by string or hash value.
[0064] An authorization module, connected to the comparison module, is used to grant authorization based on the comparison result of the comparison module;
[0065] If the decrypted fingerprint string is the same as the original initial fingerprint string, or if the decrypted fingerprint hash code is the same as the original initial fingerprint hash code, then authorization is successful, meaning the user gains permission to access or manipulate the front-end 3D model data; otherwise,
[0066] If the authorization fails, it means that permission to access or manipulate the front-end 3D model data cannot be obtained.
[0067] The beneficial effects of this invention are:
[0068] 1. The AES key of this invention is obtained through the crypto.subtle.generateKey wrapper function, which enables secure AES-GCM encryption and decryption entirely on the front end without a back end, ensuring the data security of 3D model software.
[0069] 2. This invention uses AES-GCM encryption, which combines data encryption and integrity verification, effectively preventing data from being tampered with.
[0070] 3. The encryption method of this invention is entirely based on the front end and does not rely on the back end server, which reduces the complexity of the system architecture.
[0071] 4. The 3D model software data in this invention will not be sent to the server for processing, which can protect user privacy and sensitive data to a certain extent.
[0072] 5. All calculations in this invention are performed on the local device, reducing data transmission latency and making the encryption and decryption process very fast, thus improving the user experience.
[0073] 6. The encryption and decryption process in this invention does not require the deployment of a complex backend architecture, reducing the requirements for server performance and improving the portability of the 3D model software. Attached Figure Description
[0074] Figure 1 This is a schematic diagram illustrating the method for online encryption and decryption of 3D model software based on AES-GCM in an embodiment of the present invention;
[0075] Figure 2 This is a schematic diagram of the AES encryption algorithm in an embodiment of the present invention;
[0076] Figure 3 This is a diagram of the architecture of the three-dimensional model software system in an embodiment of the present invention;
[0077] Figure 4 This is a schematic diagram of the specific encryption process of AES-GCM in an embodiment of the present invention;
[0078] Figure 5This is a schematic diagram of a device for online encryption and decryption of 3D model software based on AES-GCM in an embodiment of the present invention;
[0079] In the attached figures, the reference numerals are: 10, acquisition unit; 20, first processing unit; 30, second processing unit; 40, encryption unit; 50, storage unit; 60, decryption unit; and 70, comparison unit. Detailed Implementation
[0080] To enable those skilled in the art to better understand the technical solution of the present invention, the embodiments of the present invention will be further described in detail below with reference to the accompanying drawings.
[0081] It is understood that the specific embodiments and accompanying drawings described herein are merely for explaining the invention and are not intended to limit the invention.
[0082] It is understood that, without conflict, the various embodiments and features in the embodiments of the present invention can be combined with each other.
[0083] It is understood that, for ease of description, only the parts related to the present invention are shown in the accompanying drawings, while the parts unrelated to the present invention are not shown in the drawings.
[0084] It is understood that each unit or module involved in the embodiments of the present invention may correspond to only one entity structure, or may be composed of multiple entity structures, or multiple units or modules may be integrated into one entity structure.
[0085] It is understood that, without conflict, the functions and steps marked in the flowcharts and block diagrams of this invention may occur in a different order than that marked in the accompanying drawings.
[0086] It is understood that the flowcharts and block diagrams of this invention illustrate the possible architecture, functions, and operations of systems, apparatuses, devices, and methods according to various embodiments of this invention. Each block in the flowchart or block diagram may represent a unit, module, program segment, or code, containing executable instructions for implementing the specified function. Furthermore, each block or combination of blocks in the block diagram and flowchart can be implemented using a hardware-based system to achieve the specified function, or using a combination of hardware and computer instructions.
[0087] It is understood that the units and modules involved in the embodiments of the present invention can be implemented by software or by hardware. For example, the units and modules can be located in a processor.
[0088] Example 1:
[0089] like Figure 1As shown in the figure, this embodiment provides a method for online encryption of 3D model software based on AES-GCM, the method including the following steps:
[0090] Step S1: Obtain 3D point cloud data or 3D data information from the front-end 3D model software data.
[0091] like Figure 3 As shown, the 3D model encryption software in this embodiment includes encryption / decryption functions and system introduction functions, specifically including:
[0092] A. Software Overview
[0093] This 3D model encryption software aims to protect users' 3D model data from unauthorized access or theft. By providing encryption and decryption functions, any user can securely store and transmit 3D model files. Furthermore, the software provides related system introductions to help users understand its functions and usage.
[0094] B. Functional Modules
[0095] B.1. Encryption and decryption functions
[0096] B.1.1 Encryption Module
[0097] Function: Users can select the 3D model file to be encrypted and encrypt the file using the specified encryption algorithm.
[0098] Implementation idea:
[0099] It supports multiple encryption algorithms (such as AES and RSA).
[0100] It provides a user-friendly interface that allows users to select files and enter keys.
[0101] After the file is encrypted, a new encrypted file is generated and saved to the specified location.
[0102] B.1.2 Decryption Module
[0103] Function: Users can select an encrypted 3D model file and enter the correct password to decrypt it.
[0104] Implementation idea:
[0105] The file selection function allows users to choose the files they want to decrypt.
[0106] After entering the password, the system verifies the password and decrypts the file, returning the original 3D model.
[0107] B.1.3 Upload Module
[0108] Function: Allows users to upload encrypted files to the cloud or a designated server.
[0109] Implementation idea:
[0110] It provides a file upload function, allowing encrypted files to be sent to the server over the network.
[0111] Display the upload progress and ensure the file is transferred correctly.
[0112] B.1.4 Password Generation
[0113] Function: Users can generate strong passwords for encryption.
[0114] Implementation idea:
[0115] Provides a password generator that uses a random algorithm to generate strong passwords; password length and character combinations (letters, numbers, symbols) can be set.
[0116] The generated password can be copied to the clipboard for easy use.
[0117] B.1.5 Password Display
[0118] Function: Securely displays the user's entered password for easy confirmation and copying.
[0119] Implementation idea:
[0120] Use the "Show / Hide" button to visualize the password entered by the user, ensuring that the user can manage their passwords securely and conveniently.
[0121] C. System Introduction Function
[0122] C.1 Software Model
[0123] Function: To showcase the overall architecture and functional modules of the software.
[0124] Implementation idea:
[0125] Use UML diagrams or flowcharts to illustrate the various functional modules of the system and the relationships between them.
[0126] Brief text descriptions of each module's function enhance user understanding.
[0127] C.2 Related Items
[0128] Function: To introduce other projects or products related to this software.
[0129] Implementation idea:
[0130] List open-source projects, commercial solutions, and community resources related to 3D model encryption.
[0131] Provide links and brief descriptions to help users learn more.
[0132] C.3 Open Source Introduction
[0133] Function: Explain the open-source background and related licensing information of the software.
[0134] Implementation idea:
[0135] Briefly introduce the open-source licenses of software (such as MIT, GPL, etc.) and how to obtain the source code.
[0136] Developers are encouraged to contribute; methods for participation and contact information are provided.
[0137] C.4 Encryption Algorithm
[0138] Function: Lists the encryption algorithms used by the software and their basic descriptions.
[0139] Implementation idea:
[0140] Provides detailed information on the supported encryption algorithms, such as AES, RSA, ChaCha20, etc.
[0141] Explain the advantages, disadvantages, and applicable scenarios of each algorithm to enhance users' understanding of encryption methods.
[0142] D. User Interface Design
[0143] D.1 Main Interface: Includes a navigation bar, allowing users to access the encryption / decryption module and the system introduction module.
[0144] D.2 Encryption / Decryption Interface: Simple and clear, including file selection, password input, and operation buttons, with clear prompts.
[0145] D.3 System Introduction Interface: The interface is clearly divided into sections, allowing users to quickly find the information they need. It is equipped with icons and visual elements to enhance readability.
[0146] Step S2: Format the three-dimensional point cloud data or three-dimensional data information to obtain the front-end data to be encrypted.
[0147] Step S2 specifically includes the following steps:
[0148] The three-dimensional point cloud data or three-dimensional data information is cleaned.
[0149] The cleaned 3D point cloud data or 3D data information is normalized to the same coordinate system to obtain coordinate data;
[0150] Determine the storage format for the front-end 3D model software data;
[0151] The coordinate data is formatted and stored according to the specified storage format to obtain the front-end data to be encrypted.
[0152] Step S3: Generate an initial fingerprint code, which is a unique identifier corresponding to the front-end data to be encrypted.
[0153] Step S4: Encrypt the initial fingerprint using an AES key and an initialization vector IV based on AES-GCM to generate an encrypted fingerprint and an authentication tag. The AES key is obtained through the crypto.subtle.generateKey wrapper function; the AES key, the initialization vector IV, and the authentication tag are all stored in a local file on the front end.
[0154] crypto.subtle.generateKey is part of the WebCryptoAPI.
[0155] WebCryptoAPI is a JavaScript API for performing encryption and decryption operations in web browsers. It provides a rich set of cryptographic primitives, including symmetric encryption, asymmetric encryption, hash functions, message authentication codes, and random number generation. The primary goal of WebCryptoAPI is to provide a standardized way to perform secure encryption operations to protect sensitive data in web applications. It is designed to deliver high performance and security in a browser environment and allows developers to use modern cryptographic algorithms to protect data. By using WebCryptoAPI, developers can perform various encryption operations in web browsers without relying on third-party libraries or plugins. This makes it easier for developers to build secure web applications and protect users' sensitive data.
[0156] AES stands for Advanced Encryption Standard, also known as Rijndael encryption, and is a block cipher standard adopted by the U.S. federal government. This standard replaced the earlier DES and has been extensively analyzed and widely used worldwide. After a five-year selection process, the Advanced Encryption Standard was published by the National Institute of Standards and Technology (NIST) on November 26, 2001, in FIPS PUB 197, and became an effective standard on May 26, 2002. By 2006, the Advanced Encryption Standard had become one of the most popular algorithms in symmetric-key encryption.
[0157] AES supports three key lengths: 128 bits, 192 bits, and 256 bits. This embodiment uses 256 bits.
[0158] As a specific implementation method, such as Figure 2 As shown, the AES key is obtained through the following steps:
[0159] Set the AES-GCM key length to 256 bits;
[0160] Call the crypto.subtle.generateKey wrapper function to generate an AES key.
[0161] The AES algorithm primarily employs four processing operations: key addition (also called round key addition), byte substitution, row shifting, and column mixing. Both the plaintext x and the key k consist of 16 bytes of data, with the key supporting lengths of 192 bits and 256 bits. The keys are arranged byte-wise from top to bottom and left to right. The encrypted ciphertext is read in the same order, essentially restoring the array to a string format. Decryption then processes the ciphertext as a 4x4 array. The AES algorithm performs a separate round key addition operation before the round key addition begins.
[0162] As a specific implementation method, the process of obtaining the initialization vector IV specifically includes the following steps:
[0163] Set the initialization vector IV length;
[0164] Call the crypto.getRandomValues function to generate the initialization vector IV.
[0165] The front-end in this embodiment is implemented using HTML, CSS, and JavaScript. HTML, CSS, and JavaScript are known as the three core components of front-end development, forming the foundation of front-end technology. These three technologies work together to enable web pages to display rich content, beautiful styles, and a good interactive experience. HTML provides the structure and content of the web page, CSS is responsible for the layout and appearance, and JavaScript is responsible for implementing the page's interactivity and dynamic effects. By flexibly utilizing these three technologies, powerful and user-friendly web applications can be created.
[0166] in:
[0167] (1) HTML: HTML (Hypertext Markup Language) is a markup language used to describe the structure and content of web pages. It consists of a series of tags, through which elements such as web page titles, paragraphs, images, and links can be defined.
[0168] (2) CSS: CSS (Cascading Style Sheets) is a style sheet language used to describe the layout and appearance of web pages. CSS allows you to control the style of various elements on a web page, such as font, color, size, margins, and background.
[0169] (3) JavaScript: JavaScript is a scripting language used to implement interactive and dynamic effects on web pages. It can manipulate elements on a web page, respond to user actions, change the content and style of the page, and implement some complex functions, such as form validation, animation effects, and data interaction.
[0170] The specific encryption process is as follows:
[0171] (1) Divide the plaintext of the point cloud block into blocks of fixed length (128 bits);
[0172] (2) Encrypt each point cloud block;
[0173] (3) Encrypt using the key and IV as input, and use the AES-256 algorithm;
[0174] (4) Perform an XOR operation between the encryption result and the sequence number of the point cloud block to prevent replay attacks;
[0175] (5) Perform an XOR operation between the XOR result and the GCM authentication tag to ensure data integrity and output the encrypted block and authentication tag.
[0176] Step S5: Retrieve the AES key, the initialization vector IV, and the authentication tag from the local file to decrypt the encrypted fingerprint code and obtain the decrypted fingerprint code.
[0177] The decryption process is as follows:
[0178] (1) Divide the ciphertext into blocks of fixed length (128 bits);
[0179] (2) Decrypt each block;
[0180] (3) Decrypt using the key and IV as input, and use the AES-256 algorithm;
[0181] (4) Perform an XOR operation between the decryption result and the block number to restore the original data;
[0182] (5) Perform an XOR operation between the result and the GCM authentication tag to verify the integrity of the data. If the authentication tag verification passes, the decrypted block is output.
[0183] Step S6: Compare the decrypted fingerprint code with the initial fingerprint code to obtain authorization for the front-end 3D model software data, thereby completing the online encryption and decryption of the 3D model software based on AES-GCM.
[0184] In step S6, the decrypted fingerprint code is compared with the initial fingerprint code to obtain authorization for the front-end 3D model software data. This specifically includes the following steps:
[0185] The decrypted fingerprint code is compared with the original initial fingerprint code by string or hash value;
[0186] If the decrypted fingerprint string is the same as the original initial fingerprint string, or if the decrypted fingerprint hash code is the same as the original initial fingerprint hash code, then the authorization is successful, meaning the user has the right to access or operate the front-end 3D model data; otherwise, the authorization fails, meaning the user cannot obtain the right to access or operate the front-end 3D model data.
[0187] Step S7: Display the webpage.
[0188] The webpage display process includes the following steps:
[0189] The point cloud blocks are stitched together and connected.
[0190] Transmit the data on a web page to showcase its effects.
[0191] like Figure 4 As shown, AES-GCM (AES-Galois / Counter Mode) is an encryption mode that combines symmetric encryption and message authentication. Figure 4 As shown, the process includes:
[0192] 1. Key Expansion
[0193] Unexpanded Key: The basic key length for the AES algorithm can be 128, 192, or 256 bits. We start with an unexpanded key.
[0194] Key Expander: This function uses a key expansion algorithm (Key Schedule) to expand the key into multiple round keys, with one round key used in each round of encryption. This process is typically achieved by dividing the original key into several parts and then using transformations (such as circular left shift and S-Box substitution) to generate new keys.
[0195] Expanded Key: The expanded key set, containing multiple round keys.
[0196] 2. Initial State
[0197] AddRoundKey: XORs the first round key of the extended key with the plaintext to obtain the initial state value. The specific operation is as follows:
[0198] State = Plaintext ⊕ Round Key
[0199] 3. Main Encryption Rounds
[0200] The main encryption process of AES consists of multiple rounds (the number of rounds depends on the key length). For a 128-bit key, there are typically 10 rounds; for a 192-bit key, 12 rounds; and for a 256-bit key, 14 rounds. Each round includes the following steps:
[0201] Round Operations
[0202] SubBytes: Byte substitution is performed using an S-Box. Each byte is substituted using a lookup table to enhance non-linearity.
[0203] ShiftRows: Circularly shifts the rows of the state matrix. The first row remains unchanged, the second row is shifted left by 1 unit, the third row is shifted left by 2 units, and the fourth row is shifted left by 3 units to change the arrangement of bytes.
[0204] MixColumns: Performs a linear transformation on each column of the state to enhance diffusivity. The four bytes of each column are combined using a specific polynomial, relying on the mathematical properties of GF(2^8).
[0205] AddRoundKey: Performs an XOR operation between the current state and the corresponding round key.
[0206] 4. Final Round
[0207] In the final round, only the first three steps are performed:
[0208] SubBytes: Byte substitution.
[0209] ShiftRows: Row shift.
[0210] AddRoundKey: Performs an XOR operation with the last round key.
[0211] Thus, the final output state becomes ciphertext.
[0212] 5. Counter Mode and Authentication Data
[0213] GCM-specific steps:
[0214] AES-GCM also uses a counter mode (CTR) to generate a keystream for encryption. The counter mode generates a pseudo-random number stream by combining a set of incrementing counter values with a key. The specific steps are as follows:
[0215] Generate a counter (Counter): Generate a unique counter value (Nonce + Counter), where Nonce is a non-repeating, random value.
[0216] Encryption Counter: An AES encryption counter is used to generate a keystream. This keystream will be XORed with the plaintext to produce ciphertext.
[0217] Authentication Tag Generation: During the encryption process, the data to be authenticated (plaintext, header data, IV, etc.) is processed simultaneously, and tags are generated using Galois multiplication to ensure data integrity and authentication.
[0218] 6. Decryption process
[0219] The decryption process is similar to the encryption process. Because a symmetric key is used, decryption can perform the same AES operation. The plaintext can be recovered by XORing the ciphertext with the generated keystream. The authentication tag is also verified during decryption to ensure the data has not been tampered with.
[0220] Example 2:
[0221] like Figure 5 As shown, this embodiment provides a device for online encryption of 3D model software based on AES-GCM, the device comprising:
[0222] Acquisition unit 10 is used to acquire 3D point cloud data or 3D data information from the front-end 3D model software data;
[0223] The first processing unit 20, connected to the acquisition unit 10, is used to format the three-dimensional point cloud data or three-dimensional data information to obtain the front-end data to be encrypted.
[0224] The second processing unit 30 is connected to the first processing unit 20 and is used to generate an initial fingerprint code, wherein the initial fingerprint code is a unique identifier corresponding to the front-end data to be encrypted.
[0225] The encryption unit 40 is connected to the second processing unit 30 and is used to encrypt the initial fingerprint code using an AES key based on AES-GCM and an initialization vector IV to generate an encrypted fingerprint code and an authentication tag.
[0226] The AES key is obtained through the crypto.subtle.generateKey wrapper function;
[0227] Storage unit 50, connected to encryption unit 40, is used to store the AES key, the initialization vector IV, and the authentication tag in a local file at the front end;
[0228] The decryption unit 60, connected to the storage unit 50, is used to retrieve the AES key, the initialization vector IV, and the authentication tag from the local file to decrypt the encrypted fingerprint code and obtain the decrypted fingerprint code.
[0229] The comparison unit 70, connected to the decryption unit 60, is used to compare the decrypted fingerprint code with the initial fingerprint code to obtain authorization of the front-end 3D model software data, thereby completing the online encryption and decryption of the 3D model software based on AES-GCM.
[0230] In one specific implementation, the device further includes a first generation unit connected to the encryption unit, used to generate an AES key;
[0231] The first generation unit includes:
[0232] The first setting module is used to set the AES-GCM key length to 256 bits;
[0233] The first generation module, connected to the first setting module, is used to call the crypto.subtle.generateKey encapsulation function to generate an AES key.
[0234] In one specific implementation, the device includes a second generation unit connected to the encryption unit, used to generate an initialization vector IV;
[0235] The second generation unit includes:
[0236] The second setting module is used to set the length of the initialization vector IV;
[0237] The second generation module, connected to the second setting module, is used to call the crypto.getRandomValues function to generate the initialization vector IV.
[0238] In one specific implementation, the first processing unit includes:
[0239] The cleaning module is used to clean the three-dimensional point cloud data or three-dimensional data information.
[0240] The normalization module, connected to the cleaning module, is used to normalize the cleaned 3D point cloud data or 3D data information to the same coordinate system to obtain coordinate data.
[0241] The determination module is used to determine the storage format of the front-end 3D model software data;
[0242] The storage module, connected to the normalization module and the determination module respectively, is used to store the coordinate data in the specified storage format to obtain the front-end data to be encrypted.
[0243] As one specific implementation, the comparison unit includes:
[0244] The comparison module is used to compare the decrypted fingerprint code with the original initial fingerprint code by string or hash value.
[0245] An authorization module, connected to the comparison module, is used to grant authorization based on the comparison result of the comparison module;
[0246] If the decrypted fingerprint string is the same as the original initial fingerprint string, or if the decrypted fingerprint hash code is the same as the original initial fingerprint hash code, then the authorization is successful, meaning the user has the right to access or operate the front-end 3D model data; otherwise, the authorization fails, meaning the user cannot obtain the right to access or operate the front-end 3D model data.
[0247] The encryption generated by this device is all performed through a wrapper API (i.e., our encapsulated application programming interface) that performs encryption and decryption within a web browser. First, the AES-256-GCM algorithm is encapsulated using `crypto.subtle.O.generateKey`. Then, the inventors use a key management mechanism (Web Storage) and a secure transmission protocol (HTTPS) to protect the key. For the encryption algorithm and mode, the inventors selected the encapsulated AES-256 and GCM modes, and developed them into a software service through system design, placing it within this device.
[0248] The algorithm used by the inventor to generate crypto.subtle.O.generateKey is one that others have not considered.
[0249] The basic principle of AES encryption is to input 3D point cloud data or 3D data information into a hash function according to a certain format, and obtain a unique fingerprint code. After the fingerprint code is encrypted using the AES algorithm, it is then combined with the public key according to a certain format for digital signature encryption, resulting in the final ciphertext data. Throughout this process, the key, hash function, and public key remain confidential, ensuring the security and integrity of the 3D data. For decryption, the user uses their local private key to decrypt the digital signature, and then uses the key to decrypt the AES-encrypted data, finally obtaining the original 3D information data.
[0250] The specific process of AES encryption can be divided into the following steps: (1) Data formatting: The 3D point cloud data is standardized and formatted according to a certain format for subsequent processing and encryption operations. (2) Hash function to generate fingerprint code: The formatted data is input into the hash function, and a unique fingerprint code is calculated by the hash algorithm. The hash function has the characteristic of converting data of arbitrary length into a fixed-length hash value. (3) AES encryption: The generated fingerprint code is input into the AES encryption algorithm, and the encryption operation is performed using the pre-set key. AES is a symmetric encryption algorithm that encrypts and decrypts data according to the key. Digital signature encryption: The AES-encrypted point cloud data is combined with the public key according to a certain format, and then the point cloud digital signature encryption is performed. Point cloud digital signature is a technology used to verify data integrity and identity authentication. By encrypting the data to generate a signature, only users with the private key can decrypt and verify the signature. (4) Ciphertext data generation: Finally, the point cloud digital signature encrypted data is used as ciphertext data for transmission or storage.
[0251] The decryption process is the reverse of the encryption process: the private key is used to decrypt the point cloud digital signature to verify data integrity and authentication. The key is then used to decrypt the AES-encrypted data to recover the original fingerprint. The original 3D point cloud data is then deduced from the fingerprint. During aerial triangulation encryption, the key, hash function, and public / private key pair must remain confidential; only authorized users can correctly perform encryption and decryption operations. Simultaneously, the use of hash functions and digital signatures ensures data integrity and authentication, preventing data tampering during transmission.
[0252] When choosing an encryption algorithm, AES is a commonly used symmetric encryption algorithm with advantages such as fast data processing speed, high computational strength, and high security, and is widely used in air-triggered encryption. At the same time, choosing an appropriate key length is also important; a longer key length can increase encryption strength.
[0253] By combining GCM mode, additional data integrity verification and authentication can be provided to prevent data from being tampered with or forged during transmission. At the same time, GCM mode also provides efficient encryption and decryption operations, accelerating the encryption and decryption process.
[0254] In this embodiment, the GCM mode is selected based on the required key length and a random initialization vector to enhance encryption security. Furthermore, the confidentiality of the key, hash function, and public / private key pair must be ensured to protect the security and integrity of the AES data.
[0255] The apparatus in this embodiment is capable of performing the method in Embodiment 1.
[0256] It is understood that the above embodiments are merely exemplary implementations used to illustrate the principles of the present invention, and the present invention is not limited thereto. For those skilled in the art, various modifications and improvements can be made without departing from the spirit and essence of the present invention, and these modifications and improvements are also considered to be within the scope of protection of the present invention.
Claims
1. A method for online encryption of 3D model software based on AES-GCM, characterized in that, The method includes the following steps: Step S1: Obtain 3D point cloud data or 3D data information from the front-end 3D model software data; Step S2: Obtain the front-end data to be encrypted based on the three-dimensional point cloud data or three-dimensional data information; Step S3: Generate an initial fingerprint code based on the front-end data to be encrypted; the initial fingerprint code is a unique identifier corresponding to the front-end data to be encrypted. Step S4: Encrypt the initial fingerprint code using an AES key based on AES-GCM and an initialization vector IV to generate an encrypted fingerprint code and an authentication tag. The AES key is obtained through the crypto.subtle.generateKey wrapper function. During encryption, the plaintext of the point cloud block is divided into blocks of fixed length; each point cloud block is encrypted; using the key and IV as input, the block is encrypted using the AES-256 algorithm, and the encryption result is XORed with the sequence number of the point cloud block to prevent replay attacks; the result of the XOR operation is XORed with the GCM authentication tag to ensure data integrity, and the encrypted block and authentication tag are output.
2. The method for online encryption of 3D model software based on AES-GCM according to claim 1, characterized in that, The AES key, the initialization vector IV, and the authentication tag are all stored in local files on the front end; After step S4, the method further includes: Step S5: Retrieve the AES key, the initialization vector IV, and the authentication tag from the local file to decrypt the encrypted fingerprint code and obtain the decrypted fingerprint code; During decryption, the ciphertext is divided into fixed-length blocks; each block is decrypted; after decryption using the key and IV as input via the AES-256 algorithm, the decryption result is XORed with the block number to restore the original data; the XOR result is XORed with the GCM authentication tag to verify the integrity of the data. Step S6: Compare the decrypted fingerprint code with the initial fingerprint code to obtain authorization for the front-end 3D model software data, thereby completing the online decryption of the 3D model software based on AES-GCM.
3. The method for online encryption of 3D model software based on AES-GCM according to claim 1, characterized in that, The process of obtaining the AES key specifically includes the following steps: Set the AES-GCM key length to 256 bits; Call the crypto.subtle.generateKey wrapper function to generate an AES key; The process of obtaining the initialization vector IV specifically includes the following steps: Set the initialization vector IV length; Call the crypto.getRandomValues function to generate the initialization vector IV.
4. The method for online encryption of 3D model software based on AES-GCM according to claim 1, characterized in that, Step S2 specifically includes the following steps: The three-dimensional point cloud data or three-dimensional data information is cleaned. The cleaned 3D point cloud data or 3D data information is normalized to the same coordinate system to obtain coordinate data; Determine the storage format for the front-end 3D model software data; The coordinate data is formatted and stored according to the specified storage format to obtain the front-end data to be encrypted.
5. The method for online encryption of 3D model software based on AES-GCM according to claim 2, characterized in that, In step S6, the decrypted fingerprint code is compared with the initial fingerprint code to obtain authorization for the front-end 3D model software data, specifically including the following steps: The decrypted fingerprint code is compared with the original initial fingerprint code by string or hash value; If the decrypted fingerprint string is the same as the original initial fingerprint string, or if the decrypted fingerprint hash code is the same as the original initial fingerprint hash code, then the authorization is successful, meaning the user obtains permission to access or operate the front-end 3D model software data; otherwise, the authorization fails, meaning the user cannot obtain permission to access or operate the front-end 3D model software data.
6. A device for online encryption of 3D model software based on AES-GCM, characterized in that, The device includes: The acquisition unit is used to acquire 3D point cloud data or 3D data information from the front-end 3D model software data. The first processing unit, connected to the acquisition unit, is used to format the three-dimensional point cloud data or three-dimensional data information to obtain the front-end data to be encrypted. The second processing unit, connected to the first processing unit, is used to generate an initial fingerprint code, which is a unique identifier corresponding to the front-end data to be encrypted. An encryption unit, connected to the second processing unit, is used to encrypt the initial fingerprint code using an AES key based on AES-GCM and an initialization vector IV, generating an encrypted fingerprint code and an authentication tag; the AES key is obtained through the crypto.subtle.generateKey wrapper function; During encryption, the plaintext of the point cloud block is divided into blocks of fixed length; each point cloud block is encrypted; using the key and IV as input, the block is encrypted using the AES-256 algorithm, and the encryption result is XORed with the sequence number of the point cloud block to prevent replay attacks; the result of the XOR operation is XORed with the GCM authentication tag to ensure data integrity, and the encrypted block and authentication tag are output.
7. The apparatus for online encryption of 3D model software based on AES-GCM according to claim 6, characterized in that, The device further includes: A storage unit, connected to the encryption unit, is used to store the AES key, the initialization vector IV, and the authentication tag in a local file at the front end; A decryption unit, connected to the storage unit, is used to retrieve the AES key, the initialization vector IV, and the authentication tag from the local file to decrypt the encrypted fingerprint code and obtain the decrypted fingerprint code. During decryption, the ciphertext is divided into fixed-length blocks; each block is decrypted; after decryption using the key and IV as input via the AES-256 algorithm, the decryption result is XORed with the block number to restore the original data; the XOR result is XORed with the GCM authentication tag to verify the integrity of the data. The comparison unit, connected to the decryption unit, is used to compare the decrypted fingerprint code with the initial fingerprint code to obtain authorization of the front-end 3D model software data, thereby completing the online decryption of the 3D model software based on AES-GCM.
8. The apparatus for online encryption of 3D model software based on AES-GCM according to claim 6, characterized in that, The device further includes a first generation unit and a second generation unit; The first generation unit is connected to the encryption unit and is used to generate an AES key; The first generation unit includes: The first setting module is used to set the AES-GCM key length to 256 bits; The first generation module, connected to the first setting module, is used to call the crypto.subtle.generateKey encapsulation function to generate an AES key; The second generation unit is connected to the encryption unit and is used to generate the initialization vector IV; The second generation unit includes: The second setting module is used to set the length of the initialization vector IV; The second generation module, connected to the second setting module, is used to call the crypto.getRandomValues function to generate the initialization vector IV.
9. The apparatus for online encryption of 3D model software based on AES-GCM according to claim 6, characterized in that, The first processing unit includes: The cleaning module is used to clean the three-dimensional point cloud data or three-dimensional data information. The normalization module, connected to the cleaning module, is used to normalize the cleaned 3D point cloud data or 3D data information to the same coordinate system to obtain coordinate data. The determination module is used to determine the storage format of the front-end 3D model software data; The storage module, connected to the normalization module and the determination module respectively, is used to store the coordinate data in the specified storage format to obtain the front-end data to be encrypted.
10. The apparatus for online encryption of 3D model software based on AES-GCM according to claim 7, characterized in that, The comparison unit includes: The comparison module is used to compare the decrypted fingerprint code with the original initial fingerprint code by string or hash value. An authorization module, connected to the comparison module, is used to grant authorization based on the comparison result of the comparison module; If the decrypted fingerprint string is the same as the original initial fingerprint string, or if the decrypted fingerprint hash code is the same as the original initial fingerprint hash code, then the authorization is successful, meaning the user obtains permission to access or operate the front-end 3D model software data; otherwise, the authorization fails, meaning the user cannot obtain permission to access or operate the front-end 3D model software data.