Methods, devices, equipment, systems, and media for white-box symmetric encryption and decryption.
By employing composite input encoding generated by composite affine transformation in the white-box cryptographic algorithm and the protection mechanism of the decryption backend system, the problem of external encoding being easily cracked is solved, and the security and operability of data protection are improved.
Patent Information
- Application Number
- CN202411305023.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-18
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2044-09-18
AI Technical Summary
Existing white-box cryptographic algorithms are easily cracked after the external encoding is intercepted during multiple rounds of encryption, resulting in reduced data protection security. Furthermore, existing protection methods have limitations in terms of hardware and operating system compatibility.
A composite affine transformation technique is used to generate a composite input code. By performing a composite affine transformation between the randomly generated input obfuscation code and the preset input code in the decryption backend system, it is difficult for attackers to split the input code. The attackers then use the output code and the inverse input obfuscation code in the decryption backend system to perform decryption, thereby improving security.
It effectively prevents external encoding from being exploited and cracked, improves the security of data protection, and does not require the addition of security chips or security isolation zones in encrypted terminals, making it highly operable and easy to promote.
Smart Images

Figure CN119109568B_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the field of data processing, and in particular relates to a method, apparatus, device, system and medium for white-box symmetric encryption and decryption. Background Technology
[0002] In the electronic implementation of various business processes, large amounts of data need to be transmitted, including sensitive user information. To ensure the security of this sensitive information, the data is encrypted before transmission. White-box cryptography is a technique that uses affine transformations and lookup tables to encode and protect the key, hiding the key within the lookup table to encrypt the data. During the encryption and decryption processes of white-box cryptography, the key never appears in plaintext in memory.
[0003] However, white-box cryptography algorithms involve multiple rounds of encryption. These rounds require scrambling to protect intermediate data. Specifically, before the first round of encryption, an external encoding (input encoding) is introduced to obtain the scrambling information for the first round. After the final round of encryption, an external encoding (output encoding) is introduced to cancel out the scrambling information from the last round. If the external encoding is intercepted, it is possible to use it to deduce the key for the multiple rounds of encryption, thus breaking the white-box cryptography algorithm. Once the white-box cryptography algorithm is broken, the data encrypted using it will also be compromised, thereby reducing data security. Summary of the Invention
[0004] This application provides a method, apparatus, device, system, and medium for white-box symmetric encryption and decryption, which can improve the security of data protection.
[0005] In a first aspect, embodiments of this application provide a white-box symmetric encryption method applied to an encryption terminal. The method includes: acquiring plaintext data; performing multiple rounds of iterative encryption based on the plaintext data and composite input encoding, lookup table, and composite affine transformation data issued by a decryption backend system to obtain obfuscated ciphertext data, wherein the composite input encoding is obtained by performing a composite affine transformation based on an input obfuscated encoding randomly generated by the decryption backend system and a preset input encoding; and sending the obfuscated ciphertext data to the decryption backend system, wherein the obfuscated ciphertext data is decrypted by the decryption backend system based on a preset output encoding, a pre-stored target key, and an input obfuscated inverse encoding to obtain plaintext data, wherein the input obfuscated inverse encoding includes the inverse encoding of the input obfuscated encoding.
[0006] Secondly, embodiments of this application provide a white-box symmetric decryption method applied to a decryption backend system. The method includes: receiving obfuscated ciphertext data sent by an encryption terminal; the obfuscated ciphertext data is obtained by performing multiple rounds of iterative encryption based on plaintext data and composite input encoding, lookup table, and composite affine transformation data issued by the decryption backend system; the composite input encoding is obtained by performing a composite affine transformation based on an input obfuscated encoding randomly generated by the decryption backend system and a preset input encoding; and decrypting the obfuscated ciphertext data according to a preset output encoding, a pre-stored target key, and an inverse input obfuscated encoding to obtain plaintext data; the inverse input obfuscated encoding includes the inverse encoding of the input obfuscated encoding.
[0007] Thirdly, embodiments of this application provide a white-box symmetric encryption apparatus, comprising: a data acquisition module for acquiring plaintext data; a white-box encryption module for performing multiple rounds of iterative encryption based on the plaintext data and composite input encoding, lookup table, and composite affine transformation data issued by a decryption backend system to obtain obfuscated ciphertext data, wherein the composite input encoding is obtained by performing a composite affine transformation based on an input obfuscated encoding randomly generated by the decryption backend system and a preset input encoding; and a sending module for sending the obfuscated ciphertext data to the decryption backend system, wherein the obfuscated ciphertext data is decrypted by the decryption backend system based on a preset output encoding, a pre-stored target key, and an input obfuscated inverse encoding to obtain plaintext data, wherein the input obfuscated inverse encoding includes the inverse encoding of the input obfuscated encoding.
[0008] Fourthly, embodiments of this application provide a white-box symmetric decryption apparatus, comprising: a receiving module, configured to receive obfuscated ciphertext data sent by an encryption terminal, wherein the obfuscated ciphertext data is obtained by performing multiple rounds of iterative encryption based on plaintext data and composite input encoding, lookup table, and composite affine transformation data issued by the white-box symmetric decryption apparatus, wherein the composite input encoding is obtained by performing a composite affine transformation based on an input obfuscated encoding randomly generated by the white-box symmetric decryption apparatus and a preset input encoding; and a white-box decryption module, configured to decrypt the obfuscated ciphertext data according to a preset output encoding, a pre-stored target key, and an input obfuscated inverse encoding to obtain plaintext data, wherein the input obfuscated inverse encoding includes the inverse encoding of the input obfuscated encoding.
[0009] Fifthly, embodiments of this application provide an electronic device, including: a processor and a memory storing computer program instructions; the processor, when executing the computer program instructions, implements the white-box symmetric encryption method of the first aspect or the white-box symmetric decryption method of the second aspect.
[0010] In a sixth aspect, embodiments of this application provide a white-box symmetric encryption / decryption system, comprising: an encryption terminal for executing the white-box symmetric encryption method of the first aspect; and a decryption backend system communicatively connected to the encryption terminal for executing the white-box symmetric decryption method of the second aspect.
[0011] In a seventh aspect, embodiments of this application provide a computer-readable storage medium storing computer program instructions, which, when executed by a processor, implement the white-box symmetric encryption method of the first aspect or the white-box symmetric decryption method of the second aspect.
[0012] Eighthly, embodiments of this application provide a computer program product, including a computer program that, when executed by a processor, implements a white-box symmetric encryption method of the first aspect or a white-box symmetric decryption method of the second aspect.
[0013] This application provides a method, apparatus, device, system, and medium for white-box symmetric encryption and decryption. The encryption terminal performs multiple rounds of iterative encryption based on plaintext data, a composite input code, a lookup table, and composite affine transformation data to obtain obfuscated ciphertext data. The composite input code is obtained by performing a composite affine transformation on the input obfuscation code randomly generated by the decryption backend system and the input code. An attacker cannot decompose the input code based on the composite input code. After receiving the obfuscated ciphertext data, the decryption backend system can decrypt the obfuscated ciphertext data based on the output code, the target key, and the inverse input obfuscation code. The inverse input obfuscation code can cancel the obfuscation information introduced by the input obfuscation code, thereby restoring the plaintext data. Both the output code and the inverse input obfuscation code reside in the more secure decryption backend system, making them difficult for attackers to obtain. Even if an attacker obtains the base key and / or round key of the white-box cryptographic algorithm, they cannot crack the obfuscated ciphertext data if at least one of the input code, output code, or inverse input obfuscation code is unavailable, thus improving data protection security. Attached Figure Description
[0014] To more clearly illustrate the technical solutions of the embodiments of this application, the accompanying drawings used in the embodiments of this application will be briefly introduced below. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0015] Figure 1 A flowchart illustrating a white-box symmetric encryption method provided in an embodiment of this application;
[0016] Figure 2 A schematic diagram illustrating an example of obtaining obfuscated ciphertext data provided in an embodiment of this application;
[0017] Figure 3 This is a schematic diagram illustrating an example of decrypting obfuscated ciphertext data to obtain plaintext data, provided as an embodiment of this application.
[0018] Figure 4 A flowchart illustrating a white-box symmetric decryption method provided in an embodiment of this application;
[0019] Figure 5 A schematic diagram of the structure of a white-box symmetric encryption device provided in an embodiment of this application;
[0020] Figure 6 A schematic diagram of the structure of a white-box symmetric decryption device provided in an embodiment of this application;
[0021] Figure 7 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application;
[0022] Figure 8 This is a schematic diagram of the architecture of a white-box symmetric encryption / decryption system provided in an embodiment of this application. Detailed Implementation
[0023] The features and exemplary embodiments of various aspects of this application will be described in detail below. To make the objectives, technical solutions, and advantages of this application clearer, the application will be further described in detail below with reference to the accompanying drawings and specific embodiments. It should be understood that the specific embodiments described herein are only intended to explain this application and not to limit it. For those skilled in the art, this application can be implemented without some of these specific details. The following description of the embodiments is merely to provide a better understanding of this application by illustrating examples. It should be noted that the acquisition, storage, use, and processing of information and data in the embodiments of this application are all authorized by users or relevant organizations and comply with the relevant provisions of national laws and regulations.
[0024] In the electronic implementation of various business processes, large amounts of data need to be transmitted, including sensitive user information. To ensure the security of this sensitive information, the data is encrypted before transmission. For example, in payment scenarios, payment data contains a large amount of sensitive information, requiring encryption before transmission. White-box cryptography is a technique that uses affine transformations and lookup tables to encode and protect the key, hiding it within the lookup table to encrypt the data. During encryption and decryption in white-box cryptography, the key is never stored in plaintext in memory. However, white-box cryptography involves multiple rounds of encryption. These rounds require scrambling encoding to protect intermediate data. Correspondingly, before the first round of encryption, an external encoding (input encoding) is introduced to obtain the scrambling information for the first round of encryption; after the last round of encryption, an external encoding (output encoding) is introduced to cancel out the scrambling information from the last round of encryption. If the external encoding is intercepted, its inverse transformation, i.e., the inverse external encoding, can be obtained. This inverse external encoding allows for the extraction of the encoding used to process the lookup table from the composite affine transformation data in the white-box cryptographic algorithm. This leads to the derivation of the round keys used in the multi-round encryption within the white-box cryptographic algorithm. The encrypted data can then be directly cracked using these round keys. Furthermore, using the input encoding and other external encodings as a breakthrough point to crack the white-box cryptographic algorithm has a complexity of less than O(2^3). 20.4 This is far lower than the O(2^3) complexity of the current Lin-Lai attack to break white-box cryptographic algorithms. 47 This poses a significant threat to data security and reduces the security of data protection.
[0025] In some related technologies, a security chip can be added to the encrypted terminal to protect the external code. Alternatively, virtual machine technology can be used to establish a secure isolation zone within the encrypted terminal, protecting both the external code and the white-box cryptographic algorithm. However, security chips have high hardware requirements, which are often lacking in common mobile phones and other terminals, making widespread adoption difficult. While establishing a secure isolation zone is non-intrusive to hardware, it has limitations in terms of applicable operating systems and platforms, resulting in poor versatility and hindering widespread adoption. Both of these protection methods have poor practical operability in real-world applications.
[0026] This application provides a method, apparatus, device, system, medium, and program product for white-box symmetric encryption and decryption. It can pre-decode the input code using a composite affine transformation to obtain a composite input code. Using this composite input code during encryption makes it difficult for attackers to derive the input code from the composite input code, and also prevents them from using the input code to crack white-box cryptographic algorithms, thereby improving data protection security. Furthermore, by hiding the input code within the composite input code obtained through the composite affine transformation, there is no need to add a security chip to the encryption terminal, nor is it necessary to set up a security isolation zone within the encryption terminal, making it highly practical in real-world applications.
[0027] The following describes the white-box symmetric encryption and decryption methods, apparatus, equipment, systems, media, and program products provided in this application.
[0028] The first aspect of this application provides a white-box symmetric encryption method, which can be applied to an encryption terminal; that is, the white-box symmetric encryption method can be executed by the encryption terminal. The white-box symmetric encryption algorithm in the embodiments of this application can be implemented as a white-box SM4 cryptographic algorithm. Figure 1 A flowchart of a white-box symmetric encryption method provided in an embodiment of this application is shown below. Figure 1 As shown, the white-box symmetric encryption method may include steps S101 to S103.
[0029] In step S101, plaintext data is obtained.
[0030] The content of plaintext data can be determined according to the application scenario. For example, in a payment scenario, plaintext data may include, but is not limited to, payment information; in a user login scenario, plaintext data may include, but is not limited to, user identity information. Examples are not provided here. Plaintext data requiring encryption protection is within the protection scope of this application's embodiments.
[0031] In step S102, based on the plaintext data and the composite input encoding, lookup table and composite affine transformation data issued by the decryption backend system, multiple rounds of iterative encryption are performed to obtain obfuscated ciphertext data.
[0032] The decryption backend system will pre-send composite input codes, lookup tables, and composite affine transformation data to the encryption terminal. That is, the encryption terminal will pre-receive the composite input codes, lookup tables, and composite affine transformation data sent by the decryption backend system. In the subsequent encryption process, the encryption terminal can directly use the composite input codes, lookup tables, and composite affine transformation data for encryption.
[0033] The composite input code is obtained by performing a composite affine transformation on the input obfuscation code randomly generated by the decryption backend system and the preset input code. The generation of the composite input code is completed in the decryption backend system. The encryption terminal does not receive the input obfuscation code, that is, the input obfuscation code is unknown to the encryption terminal. The random generation of the input obfuscation code increases the randomness of the composite input code, further increasing the difficulty of splitting the composite input code to obtain the input code. The input code can be regarded as an affine transformation, and the input obfuscation code can also be regarded as an affine transformation. The decryption backend system's use of the randomly generated input obfuscation code to perform an affine transformation on the input code is regarded as the behavior of a composite affine transformation. For example, the input code includes, and the input obfuscation code includes, then the process of obtaining the composite input code from the input code, the input obfuscation code and the composite affine transformation can be seen in the following equations (1) to (3):
[0034]
[0035] Among them, P i (x) represents the input encoding; l[P] i ] is the linear part of the input encoding, which is a matrix, and in some examples, it can be a 32×32 invertible matrix over a finite field containing two elements, i.e., GF(2); x is the object to be affinely transformed, i.e., the original data; c[P i The constant part of the input encoding is a vector, which in some examples can be a 32×1 column vector over GF(2); N i (x) represents the input obfuscation code; l[N] i ] is the linear part of the input obfuscation code, which is a matrix, and in some examples, it can be a 32×32 invertible matrix over GF(2); c[N i ] is the constant part of the input obfuscation code, which is a vector, and in some examples, it can be a 32×1 column vector over GF(2); M i (x) represents the composite input code; This is an XOR operation.
[0036] Even if an attacker intercepts the composite input code, to obtain the input code from it, the linear part of the composite input code, i.e., the invertible matrix, needs to be split into the product of two invertible matrices. The number of invertible matrices of order i obtained by splitting an i-th order invertible matrix into two i-th order invertible matrices can be obtained according to the following formula (4):
[0037]
[0038] Where h(i) represents the number of invertible matrices of order i that can be obtained by splitting an i-th order invertible matrix into two i-th order invertible matrices; when i = 32, the number of 32-th order invertible matrices that can be obtained by splitting a 32-th order invertible matrix is 2. 1023 The attacker wanted to get from 2 1023 Finding a combination of the linear parts of the actual input code and the linear parts of the input scrambled code within a 32-order invertible matrix is impractical. Even if a combination of linear parts is obtained, the constant part of the composite input code still needs to be decomposed to obtain a combination of constant parts. Similarly, from 2... 1023 Finding a combination of the constant part of the actual input code and the constant part of the input obfuscation code from a single 32-order invertible matrix is impractical. Therefore, composite input coding can securely protect the input code from being extracted by attackers.
[0039] The lookup table, as used in white-box cryptography, is used to find the round key for each round of encryption; it will not be elaborated upon here. The composite affine transformation data, as used in white-box cryptography, may include the composite affine transformation code obtained by affine transformation of the inverse code of one input code and another input code, or the composite affine transformation code obtained by affine transformation of the input code and the operational code.
[0040] Composite input encoding can be used to introduce scrambling information into plaintext data, and the data obtained after introducing the scrambling information can then participate in subsequent multi-round iterative encryption. In some examples, an affine transformation can be performed on the composite input encoding and plaintext data to obtain the first input data; using the first input data, a lookup table, and composite affine transformation data, multi-round iterative encryption is performed to obtain obfuscated ciphertext data. The first input data includes the data obtained after the affine transformation of the plaintext data and the composite input encoding. The first input data and composite affine transformation data are used as inputs for multi-round iterative encryption, and the lookup table is used as parameters for multi-round iterative encryption, thus obtaining obfuscated ciphertext data. Multi-round iterative encryption can be implemented as white-box SM4 iterative encryption. The obfuscated ciphertext data is the data after obfuscation and encryption.
[0041] In step S103, obfuscated ciphertext data is sent to the decryption backend system.
[0042] The obfuscated ciphertext data is decrypted by the decryption backend system using a preset output encoding, a pre-stored target key, and an input obfuscation inverse encoding to obtain plaintext data. The input obfuscation inverse encoding includes the inverse encoding of the input obfuscation encoding. That is, after receiving the obfuscated ciphertext data, the decryption backend system first performs an affine transformation with the obfuscated ciphertext data using the preset output encoding to cancel the scrambling information introduced in the last round of encryption in multi-round iterative encryption. Then, it decrypts the obfuscated ciphertext data processed by the output encoding according to the target key. In some examples, the obfuscated ciphertext data is used to perform an affine transformation with the output encoding in the decryption backend system to obtain the first output data. The first output data is used for decryption based on the target key to obtain obfuscated plaintext data. The obfuscated plaintext data is used to perform an affine transformation with the input obfuscation inverse encoding to obtain plaintext data. The first output data obtained by the decryption backend system using the output encoding to perform an affine transformation on the obfuscated ciphertext data is the data after canceling the scrambling information introduced in the last round of encryption in multi-round iterative encryption. The target key may include the base key of a white-box encryption algorithm or the round key of a white-box encryption algorithm. If the target key includes the base key, then round keys for multi-round iterative encryption can be obtained by expanding the base key. These round keys can then be used to decrypt the obfuscated ciphertext data after output encoding. If the target key includes round keys, then the obfuscated ciphertext data after output encoding can be directly decrypted using the round keys. The decrypted data contains obfuscated information with the input obfuscation encoding. The decrypted data can then be processed using the inverse obfuscation encoding to restore the obfuscated data with the input obfuscation encoding to plaintext data.
[0043] Attackers cannot obtain the input code from the composite input code, and both the output code and the input obfuscation inverse code reside in the decryption backend system. The security level of the decryption backend system is far higher than that of the encryption terminal, making it difficult for attackers to obtain the output code and input obfuscation inverse code from the decryption backend system. Attackers cannot use external codes as a breakthrough point to crack the obfuscated ciphertext data generated in this application embodiment. Even if an attacker extracts the basic key and round key required for encryption from the lookup table, without the input code and output code, the attacker still cannot crack the obfuscated ciphertext data generated in this application embodiment.
[0044] In this embodiment, the encryption terminal performs multiple rounds of iterative encryption based on plaintext data, composite input encoding, a lookup table, and composite affine transformation data to obtain obfuscated ciphertext data. The composite input encoding is obtained by performing a composite affine transformation between the input obfuscation encoding randomly generated by the decryption backend system and the input encoding. An attacker cannot decompose the input encoding based on the composite input encoding. After receiving the obfuscated ciphertext data, the decryption backend system can decrypt the obfuscated ciphertext data based on the output encoding, the target key, and the inverse input obfuscation encoding. The inverse input obfuscation encoding can cancel the obfuscation information introduced by the input obfuscation encoding, thereby restoring the plaintext data. Both the output encoding and the inverse input obfuscation encoding are located in the more secure decryption backend system, making them difficult for attackers to obtain. Even if an attacker obtains the base key and / or round key of the white-box cryptographic algorithm, they cannot crack the obfuscated ciphertext data if at least one of the input encoding, output encoding, or inverse input obfuscation encoding is unavailable, thus improving data protection security. Furthermore, by hiding the input code within the composite input code obtained through composite affine transformation, there is no need to add a security chip to the encryption terminal or set up a security isolation zone within the encryption terminal. This makes it highly operable in practical applications and easier to promote and use.
[0045] In some embodiments, plaintext data can be obtained in data groups, where each data group is a single plaintext data set. Plaintext data can include multiple plaintext data blocks, and each plaintext data block corresponds to a composite input code. In some examples, the plaintext data can be 128 bits, and each 128-bit plaintext data set can include four 32-bit data blocks. The encryption terminal can perform an affine transformation on each composite input code and its corresponding plaintext data block to obtain multiple input data blocks; combining the multiple input data blocks yields the first input data.
[0046] For example, Figure 2 A schematic diagram illustrating an example of obtaining obfuscated ciphertext data provided in an embodiment of this application, as shown below. Figure 2As shown, the 128-bit plaintext data is X0X1X2X3, which includes four plaintext data blocks, each of which is 32 bits. The four plaintext data blocks are plaintext data block X0, plaintext data block X1, plaintext data block X2 and plaintext data block X3. The composite input codes include M0, M1, M2 and M3. The composite input code M0 can be based on the input code P0 and the input obfuscation code N0, the composite input code M1 can be based on the input code P1 and the input obfuscation code N1, the composite input code M2 can be based on the input code P2 and the input obfuscation code N2, and the composite input code M3 can be based on the input code P3 and the input obfuscation code N3. The calculation of the composite input codes M0, M1, M2 and M3 can be obtained according to the above formulas (1) to (3). Plaintext data block X0 is transformed by an affine transformation with composite input code M0 to obtain input data block X0". Plaintext data block X1 is transformed by an affine transformation with composite input code M1 to obtain input data block X1". Plaintext data block X2 is transformed by an affine transformation with composite input code M2 to obtain input data block X2". Plaintext data block X3 is transformed by an affine transformation with composite input code M3 to obtain input data block X3". The four input data blocks are combined to obtain the first input data X0"X1"X2"X3". The input is fed into the iterative encryption algorithm module, which performs 32 rounds of white-box SM4 iterative encryption to obtain 128 bits of confused ciphertext data X. 32 X 33 X 34 X 35 ". Figure 2 The process shown for obtaining obfuscated ciphertext data is executed in an encrypted terminal.
[0047] In some embodiments, the obfuscated ciphertext data may include multiple obfuscated ciphertext data blocks, each obfuscated ciphertext data block corresponding to an output code. Each obfuscated ciphertext data block is used to perform an affine transformation with its corresponding output code to obtain multiple output data blocks. The first output data includes multiple output data blocks. The steps of performing an affine transformation on each obfuscated ciphertext data block with its corresponding output code to obtain an output data block, and combining multiple output data blocks to obtain the first output data block, can be performed by a decryption backend system. One obfuscated ciphertext data block can be obtained by performing an affine transformation on its corresponding output code.
[0048] Obfuscated plaintext data may include multiple obfuscated plaintext data blocks, each of which corresponds to an input inverse obfuscation code. Each obfuscated plaintext data block is used to perform an affine transformation with its corresponding input inverse obfuscation code to obtain a plaintext data block. Plaintext data consists of multiple plaintext data blocks. The steps of performing an affine transformation on each obfuscated plaintext data block with its corresponding input inverse obfuscation code to obtain a plaintext data block, and combining the plaintext data blocks to obtain plaintext data, can be performed by the decryption backend system. One obfuscated plaintext data block can be obtained by performing an affine transformation on its corresponding input inverse obfuscation code.
[0049] For example, Figure 3 This is a schematic diagram illustrating an example of decrypting obfuscated ciphertext data to obtain plaintext data, as provided in an embodiment of this application. Figure 3 As shown, the 128-bit obfuscated ciphertext data is X. 32 X 33 X 34 X 35 This can include four obfuscated ciphertext data blocks, each 32 bits long, and the four obfuscated ciphertext data blocks are named as follows: Obfuscated Ciphertext Data Block X 32 ", Obfuscated ciphertext data block X 33 ", Obfuscated ciphertext data block X 34 "and obfuscated ciphertext data block X" 35 Obfuscated ciphertext data block X 32 "and the corresponding output code P" -1 32 Affine transformation yields the output data block X 32 "', obfuscate ciphertext data block X 33 "and the corresponding output code P" -1 33 Affine transformation yields the output data block X 33 "', obfuscate ciphertext data block X 34 "and the corresponding output code P" -1 34 Affine transformation yields the output data block X 34 "', obfuscate ciphertext data block X 35 "and the corresponding output code P" -1 35 Affine transformation yields the output data block X 35 The four output data blocks are combined to obtain the first output data X. 32 "'X 33 "'X 34 "'X 35 Based on the white-box SM4 encryption base key, the first output data X... 32 "'X 33 "'X 34 "'X35 Decryption yields 128 bits of obfuscated plaintext data X0'X1'X2'X3'. This obfuscated plaintext data X0'X1'X2'X3' comprises four obfuscated plaintext data blocks: obfuscated plaintext data block X0', obfuscated plaintext data block X1', obfuscated plaintext data block X2', and obfuscated plaintext data block X3'. Obfuscated plaintext data block X0' is then combined with the input obfuscated inverse code N. -1 Affine transformation yields plaintext data block X0, and the obfuscated plaintext data block X1' is combined with the input obfuscated inverse code N. -1 1. Affine transformation yields plaintext data block X1, and the obfuscated plaintext data block X2' is combined with the input obfuscated inverse code N. -1 2. Affine transformation yields plaintext data block X2, and the obfuscated plaintext data block X3' is combined with the input obfuscated inverse code N. -1 3. Affine transformation yields plaintext data block X3. Combining the four plaintext data blocks restores the 128-bit plaintext data X0X1X2X3. Figure 3 The process shown for decrypting obfuscated ciphertext data to obtain plaintext data is executed in the decryption backend system.
[0050] A second aspect of this application provides a white-box symmetric decryption method applicable to a decryption backend system; that is, the white-box symmetric decryption method can be executed by the decryption backend system. The white-box symmetric decryption algorithm in the embodiments of this application can be implemented as a white-box SM4 cryptographic algorithm. Figure 4 A flowchart of a white-box symmetric decryption method provided in an embodiment of this application is shown below. Figure 4 As shown, the white-box symmetric decryption method may include steps S201 and S202.
[0051] In step S201, the obfuscated ciphertext data sent by the encryption terminal is received.
[0052] The obfuscated ciphertext data is obtained through multiple rounds of iterative encryption based on the plaintext data, as well as the composite input encoding, lookup table, and composite affine transformation data issued by the decryption backend system. The composite input encoding is obtained by performing a composite affine transformation on the input obfuscation encoding randomly generated by the decryption backend system and the preset input encoding.
[0053] In step S202, the obfuscated ciphertext data is decrypted according to the preset output encoding, the pre-stored target key, and the input obfuscation inverse encoding to obtain the plaintext data.
[0054] Input obfuscation inverse encoding includes the inverse encoding of the input obfuscation encoding.
[0055] In some embodiments, step S202 can be further refined as follows: performing an affine transformation on the obfuscated ciphertext data and the output encoding to obtain first output data; decrypting the first output data based on the target key to obtain obfuscated plaintext data; and performing an affine transformation on the obfuscated plaintext data and the input obfuscated inverse encoding to obtain plaintext data.
[0056] In some examples, the obfuscated ciphertext data comprises multiple obfuscated ciphertext data blocks, each of which corresponds to an output code. The step of performing an affine transformation between the obfuscated ciphertext data and the output code to obtain the first output data can be further refined as follows: perform an affine transformation between each obfuscated ciphertext data block and its corresponding output code to obtain multiple output data blocks; combine the multiple output data blocks to obtain the first output data.
[0057] In some examples, obfuscated plaintext data comprises multiple obfuscated plaintext data blocks, each of which corresponds to an input inverse obfuscation code. The steps described above, involving an affine transformation between the obfuscated plaintext data and the input inverse obfuscation code to obtain plaintext data, can be further refined as follows: performing an affine transformation between each obfuscated plaintext data block and its corresponding input inverse obfuscation code to obtain multiple plaintext data blocks; and combining these multiple plaintext data blocks to obtain the plaintext data.
[0058] In some embodiments, before receiving the obfuscated ciphertext data sent by the encrypted terminal, the decryption backend system may also send composite input codes, lookup tables, and composite affine transformation data to the encrypted terminal.
[0059] In some embodiments, the obfuscated ciphertext data is obtained by multiple rounds of iterative encryption based on the first input data, a lookup table, and composite affine transformation data. The first input data is obtained by performing an affine transformation between the composite input code and the plaintext data.
[0060] Plaintext data comprises multiple plaintext data blocks, and each plaintext data block corresponds to a composite input code. Each plaintext data block is used to perform an affine transformation with its corresponding composite input code to obtain multiple input data blocks. The first input data comprises multiple input data blocks.
[0061] It should be noted that the white-box symmetric decryption method is the same as the decryption method corresponding to the white-box symmetric encryption method described above. All implementation methods in the white-box symmetric encryption method embodiments described above are applicable to the white-box symmetric decryption method embodiments and can achieve the same technical effect, so they will not be described again here.
[0062] By employing white-box symmetric encryption and decryption methods, and using composite affine transformation to protect the input encoding, while utilizing a decryption backend system to protect the output encoding, the security of the external encoding is enhanced, thereby improving the overall security of white-box cryptographic algorithms such as the white-box SM4 algorithm. During the white-box symmetric decryption process, the decryption backend system eliminates scrambling information introduced into the obfuscated ciphertext data through output encoding and input obfuscation inverse encoding, realizing a complete white-box symmetric encryption and decryption process.
[0063] The third aspect of this application provides a white-box symmetric encryption device. Figure 5 This is a schematic diagram of the structure of a white-box symmetric encryption device provided in an embodiment of this application, as shown below. Figure 5 As shown, the white-box symmetric encryption device 300 may include a data acquisition module 301, a white-box encryption module 302, and a sending module 303.
[0064] The data acquisition module 301 can be used to acquire plaintext data.
[0065] The white-box encryption module 302 can perform multiple rounds of iterative encryption based on plaintext data and composite input codes, lookup tables, and composite affine transformation data issued by the decryption backend system to obtain obfuscated ciphertext data. The composite input code is obtained by performing a composite affine transformation on the input obfuscation code randomly generated by the decryption backend system and a preset input code.
[0066] The sending module 303 can be used to send obfuscated ciphertext data to the decryption backend system. The obfuscated ciphertext data is decrypted by the decryption backend system according to the preset output encoding, the pre-stored target key, and the input obfuscation inverse encoding to obtain plaintext data. The input obfuscation inverse encoding includes the inverse encoding of the input obfuscation encoding.
[0067] In some embodiments, the white-box encryption module 302 may be specifically used to: perform an affine transformation on the composite input code and plaintext data to obtain first input data; and perform multiple rounds of iterative encryption using the first input data, a lookup table, and the composite affine transformation data to obtain obfuscated ciphertext data.
[0068] In some examples, the plaintext data comprises multiple plaintext data blocks, each plaintext data block corresponding to a composite input code. The white-box encryption module 302 can specifically be used to: perform an affine transformation on each composite input code and its corresponding plaintext data block to obtain multiple input data blocks; and combine the multiple input data blocks to obtain the first input data.
[0069] In some embodiments, the white-box symmetric encryption apparatus 300 may further include a receiving module. The receiving module may be used to receive composite input encoding, lookup table, and composite affine transformation data sent by the decryption backend system before acquiring plaintext data.
[0070] In some embodiments, the obfuscated ciphertext data is used to perform an affine transformation with the output encoding in the decryption backend system to obtain first output data. The first output data is used for decryption based on the target key to obtain obfuscated plaintext data. The obfuscated plaintext data is then used to perform an affine transformation with the input obfuscated inverse encoding to obtain plaintext data.
[0071] In some examples, the obfuscated ciphertext data comprises multiple obfuscated ciphertext data blocks, each block corresponding to an output code. Each obfuscated ciphertext data block is used to perform an affine transformation with its corresponding output code to obtain multiple output data blocks. The first output data comprises multiple output data blocks.
[0072] Obfuscated plaintext data consists of multiple obfuscated plaintext data blocks, each block corresponding to an input obfuscated inverse code. Each obfuscated plaintext data block is used to perform an affine transformation with its corresponding input obfuscated inverse code to obtain a plaintext data block. Plaintext data consists of multiple plaintext data blocks.
[0073] It should be noted that the white-box symmetric encryption device 300 is a device corresponding to the white-box symmetric encryption method described above. All implementation methods in the above method embodiments are applicable to the embodiments of this device and can achieve the same technical effect, so they will not be described again here.
[0074] The fourth aspect of this application provides a white-box symmetric decryption apparatus. Figure 6 This is a schematic diagram of the structure of a white-box symmetric decryption device provided in an embodiment of this application, as shown below. Figure 6 As shown, the white-box symmetric decryption device 400 may include a receiving module 401 and a white-box decryption module 402.
[0075] The receiving module 401 can be used to receive obfuscated ciphertext data sent by the encrypted terminal. The obfuscated ciphertext data is obtained by iteratively encrypting the plaintext data and the composite input code, lookup table, and composite affine transformation data issued by the white-box symmetric decryption device. The composite input code is obtained by performing a composite affine transformation on the input obfuscated code randomly generated by the white-box symmetric decryption device and a preset input code.
[0076] The white-box decryption module 402 can be used to decrypt obfuscated ciphertext data according to the preset output encoding, the pre-stored target key, and the input obfuscation inverse encoding to obtain plaintext data. The input obfuscation inverse encoding includes the inverse encoding of the input obfuscation encoding.
[0077] In some embodiments, the white-box decryption module 402 may be specifically used to: perform an affine transformation on the obfuscated ciphertext data and the output encoding to obtain first output data; decrypt the first output data based on the target key to obtain obfuscated plaintext data; and perform an affine transformation on the obfuscated plaintext data and the input obfuscated inverse encoding to obtain plaintext data.
[0078] In some examples, the obfuscated ciphertext data comprises multiple obfuscated ciphertext data blocks, each of which corresponds to an output code. The white-box decryption module 402 can specifically be used to: perform an affine transformation on each obfuscated ciphertext data block and its corresponding output code to obtain multiple output data blocks; and combine the multiple output data blocks to obtain the first output data.
[0079] In some examples, the obfuscated plaintext data comprises multiple obfuscated plaintext data blocks, each of which corresponds to an input obfuscated inverse code. The white-box decryption module 402 can specifically be used to: perform an affine transformation on each obfuscated plaintext data block and its corresponding input obfuscated inverse code to obtain multiple plaintext data blocks; and combine the multiple plaintext data blocks to obtain plaintext data.
[0080] In some embodiments, the white-box symmetric decryption apparatus 400 may further include a sending module. The sending module may be used to: send composite input encoding, lookup table, and composite affine transformation data to the encryption terminal before receiving obfuscated ciphertext data sent by the encryption terminal.
[0081] In some embodiments, the obfuscated ciphertext data is obtained by multiple rounds of iterative encryption based on the first input data, a lookup table, and composite affine transformation data. The first input data is obtained by performing an affine transformation between the composite input code and the plaintext data.
[0082] Plaintext data comprises multiple plaintext data blocks, and each plaintext data block corresponds to a composite input code. Each plaintext data block is used to perform an affine transformation with its corresponding composite input code to obtain multiple input data blocks. The first input data comprises multiple input data blocks.
[0083] It should be noted that the white-box symmetric decryption device 400 is a device corresponding to the white-box symmetric decryption method described above. All implementation methods in the above method embodiments are applicable to the embodiments of this device and can achieve the same technical effect, so they will not be described again here.
[0084] The fifth aspect of this application provides an electronic device. Figure 7 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application, as shown below. Figure 7 As shown, the electronic device 500 includes a memory 501, a processor 502, and a computer program stored in the memory 501 and executable on the processor 502.
[0085] In some examples, the processor 502 described above may include a central processing unit (CPU), or an application-specific integrated circuit (ASIC), or one or more integrated circuits that may be configured to implement the embodiments of this application.
[0086] Memory 501 may include read-only memory (ROM), random access memory (RAM), disk storage media device, optical storage media device, flash memory device, electrical, optical, or other physical / tangible memory storage device. Therefore, typically, memory includes one or more tangible (non-transitory) computer-readable storage media (e.g., memory devices) encoded with software including computer-executable instructions, and when the software is executed (e.g., by one or more processors), it is operable to perform operations described with reference to the white-box symmetric encryption method according to the first aspect embodiment of this application or the white-box symmetric decryption method according to the second aspect embodiment.
[0087] The processor 502 runs a computer program corresponding to the executable program code by reading the executable program code stored in the memory 501, so as to implement the white-box symmetric encryption method in the first aspect embodiment or the white-box symmetric decryption method in the second aspect embodiment.
[0088] In some examples, the electronic device 500 may also include a communication interface 503 and a bus 504. For example, Figure 7 As shown, the memory 501, processor 502, and communication interface 503 are connected through bus 504 and complete communication with each other.
[0089] The communication interface 503 is mainly used to enable communication between various modules, devices, units, and / or equipment in the embodiments of this application. Input devices and / or output devices can also be connected through the communication interface 503.
[0090] Bus 504 includes hardware, software, or both, that couples components of electronic device 500 together. For example, and not limitingly, bus 504 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hyper Transport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an Infinite Bandwidth Interconnect, a Low Pin Count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-E) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association Local Bus (VLB) bus, or other suitable buses, or combinations of two or more of these. Where appropriate, bus 504 may include one or more buses. Although specific buses are described and illustrated in the embodiments of this application, this application considers any suitable bus or interconnection.
[0091] The sixth aspect of this application provides a white-box symmetric encryption / decryption system. Figure 8 This is a schematic diagram of the architecture of a white-box symmetric encryption / decryption system provided in an embodiment of this application, as shown below. Figure 8 As shown, the white-box symmetric encryption and decryption system may include an encryption terminal 61 and a decryption backend system 62, with the encryption terminal 61 and the decryption backend system 62 being communicatively connected.
[0092] The encrypted terminal 61 is used to execute the white-box symmetric encryption method in the first aspect embodiment described above. For details, please refer to the relevant descriptions in the above embodiments, and it achieves the same technical effect. To avoid repetition, it will not be described again here. The encrypted terminal 61 may include, but is not limited to, devices such as mobile phones, desktop computers, laptops, smartwatches, smart bracelets, and electronic paper.
[0093] The decryption backend system 62 is used to execute the white-box symmetric decryption method in the second aspect embodiment described above. For details, please refer to the relevant descriptions in the above embodiments, and it achieves the same technical effect. To avoid repetition, it will not be repeated here. The decryption backend system 62 may include one or more devices. The devices in the decryption backend system 62 may be servers or other devices; the type and number of devices in the decryption backend system 62 are not limited here.
[0094] The seventh aspect of this application provides a computer-readable storage medium storing computer program instructions. When executed by a processor, these computer program instructions can implement the white-box symmetric encryption method in the first aspect embodiment or the white-box symmetric decryption method in the second aspect embodiment, achieving the same technical effect. To avoid repetition, further details are omitted here. The aforementioned computer-readable storage medium may include non-transitory computer-readable storage media, such as read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks, etc., and is not limited thereto.
[0095] The eighth aspect of this application provides a computer program product, which includes a computer program. When the computer program is executed by a processor, it implements the white-box symmetric encryption method in the first aspect embodiment or the white-box symmetric decryption method in the second aspect embodiment, and can achieve the same technical effect. To avoid repetition, it will not be described again here.
[0096] It should be clarified that the various embodiments in this specification are described in a progressive manner, and the same or similar parts between the various embodiments can be referred to mutually. Each embodiment focuses on describing the differences from other embodiments. For the device embodiments, equipment embodiments, system embodiments, computer-readable storage medium embodiments, and computer program product embodiments, the relevant parts can be referred to the description section of the method embodiments. This application is not limited to the specific steps and structures described above and shown in the figures. Those skilled in the art can make various changes, modifications, and additions, or change the order of steps, after understanding the spirit of this application. Furthermore, for the sake of brevity, detailed descriptions of known methods and techniques are omitted here.
[0097] The aspects of this application have been described above with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It should be understood that each block in the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine such that these instructions, executable via the processor of the computer or other programmable data processing apparatus, enable the implementation of the functions / actions specified in one or more blocks of the flowchart illustrations and / or block diagrams. Such a processor can be, but is not limited to, a general-purpose processor, a special-purpose processor, a special application processor, or a field-programmable logic circuit. It is also understood that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can also be implemented by dedicated hardware performing the specified functions or actions, or can be implemented by a combination of dedicated hardware and computer instructions.
[0098] Those skilled in the art will understand that the above embodiments are exemplary and not restrictive. Different technical features appearing in different embodiments can be combined to achieve beneficial effects. Based on a study of the drawings, specification, and claims, those skilled in the art should be able to understand and implement other variations of the disclosed embodiments. In the claims, the term "comprising" does not exclude other means or steps; the quantifier "a" does not exclude a plurality; the terms "first" and "second" are used to identify names and not to indicate any particular order. No reference numerals in the claims should be construed as limiting the scope of protection. The functionality of multiple parts appearing in the claims can be implemented by a single hardware or software module. The appearance of certain technical features in different dependent claims does not mean that these technical features cannot be combined to achieve beneficial effects.
Claims
1. A white-box symmetric encryption method, characterized in that, Applied to encrypted terminals, the method includes: Obtain plaintext data; Based on the plaintext data, and the composite input code, lookup table and composite affine transformation data issued by the decryption backend system, multiple rounds of iterative encryption are performed to obtain obfuscated ciphertext data. The composite input code is obtained by performing a composite affine transformation on the input obfuscation code randomly generated by the decryption backend system and the preset input code. The obfuscated ciphertext data is sent to the decryption backend system, wherein the obfuscated ciphertext data is decrypted by the decryption backend system according to the preset output encoding, the pre-stored target key and the input obfuscated inverse encoding to obtain the plaintext data, wherein the input obfuscated inverse encoding includes the inverse encoding of the input obfuscated encoding.
2. The method according to claim 1, characterized in that, The process involves multiple rounds of iterative encryption based on the plaintext data and the composite input encoding, lookup table, and composite affine transformation data issued by the decryption backend system to obtain obfuscated ciphertext data, including: The first input data is obtained by performing an affine transformation between the composite input code and the plaintext data. Using the first input data, the lookup table, and the composite affine transformation data, multiple rounds of iterative encryption are performed to obtain obfuscated ciphertext data.
3. The method according to claim 2, characterized in that, The plaintext data includes multiple plaintext data blocks, and each plaintext data block corresponds to one of the composite input codes; The step of performing an affine transformation based on the composite input code and the plaintext data to obtain the first input data includes: Each composite input code is affinely transformed with its corresponding plaintext data block to obtain multiple input data blocks. The first input data is obtained by combining multiple input data blocks.
4. The method according to claim 1, characterized in that, Before obtaining plaintext data, the method further includes: Receive the composite input code, the lookup table, and the composite affine transformation data sent by the decryption backend system.
5. The method according to claim 1, characterized in that, The obfuscated ciphertext data is used to perform an affine transformation with the output encoding in the decryption backend system to obtain first output data; the first output data is used to decrypt based on the target key to obtain obfuscated plaintext data; the obfuscated plaintext data is used to perform an affine transformation with the input obfuscated inverse encoding to obtain the plaintext data.
6. The method according to claim 5, characterized in that, The obfuscated ciphertext data includes multiple obfuscated ciphertext data blocks. Each obfuscated ciphertext data block corresponds to one output code. Each obfuscated ciphertext data block is used to perform an affine transformation with the corresponding output code to obtain multiple output data blocks. The first output data includes a plurality of the output data blocks; The obfuscated plaintext data includes multiple obfuscated plaintext data blocks. Each obfuscated plaintext data block corresponds to an input obfuscated inverse code. Each obfuscated plaintext data block is used to perform an affine transformation with the corresponding input obfuscated inverse code to obtain a plaintext data block. The plaintext data includes multiple plaintext data blocks.
7. A white-box symmetric decryption method, characterized in that, The method, applied to a decryption backend system, includes: The system receives obfuscated ciphertext data sent by the encryption terminal. The obfuscated ciphertext data is obtained by multiple rounds of iterative encryption based on plaintext data and composite input encoding, lookup table and composite affine transformation data issued by the decryption backend system. The composite input encoding is obtained by performing a composite affine transformation based on the input obfuscated encoding randomly generated by the decryption backend system and a preset input encoding. The obfuscated ciphertext data is decrypted according to the preset output encoding, the pre-stored target key and the input obfuscation inverse encoding to obtain the plaintext data. The input obfuscation inverse encoding includes the inverse encoding of the input obfuscation encoding.
8. The method according to claim 7, characterized in that, The step of decrypting the obfuscated ciphertext data according to the preset output encoding, the pre-stored target key, and the input obfuscated inverse encoding to obtain the plaintext data includes: Affine transformation is performed on the obfuscated ciphertext data and the output code to obtain the first output data; Based on the target key, the first output data is decrypted to obtain obfuscated plaintext data; The plaintext data is obtained by performing an affine transformation on the obfuscated plaintext data and the input obfuscated inverse code.
9. The method according to claim 8, characterized in that, The obfuscated ciphertext data includes multiple obfuscated ciphertext data blocks, and each obfuscated ciphertext data block corresponds to one output code; The step of performing an affine transformation based on the obfuscated ciphertext data and the output code to obtain the first output data includes: Each of the obfuscated ciphertext data blocks is subjected to an affine transformation with the corresponding output code to obtain multiple output data blocks; The first output data is obtained by combining multiple output data blocks.
10. The method according to claim 8, characterized in that, The obfuscated plaintext data includes multiple obfuscated plaintext data blocks, and each obfuscated plaintext data block in one obfuscated plaintext data corresponds to one input obfuscated inverse code; The step of performing an affine transformation on the obfuscated plaintext data and the input obfuscated inverse code to obtain the plaintext data includes: Each obfuscated plaintext data block is subjected to an affine transformation with the corresponding input obfuscated inverse code to obtain multiple plaintext data blocks; Multiple plaintext data blocks are combined to obtain the plaintext data.
11. The method according to claim 7, characterized in that, Before receiving the obfuscated ciphertext data sent by the encrypted terminal, the method further includes: The composite input code, the lookup table, and the composite affine transformation data are sent to the encrypted terminal.
12. The method according to claim 7, characterized in that, The obfuscated ciphertext data is obtained by multiple rounds of iterative encryption based on the first input data, the lookup table, and the composite affine transformation data. The first input data is obtained by performing an affine transformation between the composite input code and the plaintext data. The plaintext data includes multiple plaintext data blocks, and each plaintext data block corresponds to one of the composite input codes; Each plaintext data block is used to perform an affine transformation with the corresponding composite input code to obtain multiple input data blocks; The first input data includes multiple input data blocks.
13. A white-box symmetric encryption device, characterized in that, include: The data acquisition module is used to acquire plaintext data; The white-box encryption module is used to perform multiple rounds of iterative encryption based on the plaintext data and the composite input code, lookup table and composite affine transformation data issued by the decryption backend system to obtain obfuscated ciphertext data. The composite input code is obtained by performing a composite affine transformation based on the input obfuscation code randomly generated by the decryption backend system and a preset input code. The sending module is used to send the obfuscated ciphertext data to the decryption backend system, wherein the obfuscated ciphertext data is decrypted by the decryption backend system according to the preset output encoding, the pre-stored target key and the input obfuscation inverse encoding to obtain the plaintext data, and the input obfuscation inverse encoding includes the inverse encoding of the input obfuscation encoding.
14. A white-box symmetric decryption device, characterized in that, include: The receiving module is used to receive obfuscated ciphertext data sent by the encryption terminal. The obfuscated ciphertext data is obtained by multiple rounds of iterative encryption based on plaintext data and composite input codes, lookup tables and composite affine transformation data issued by the white-box symmetric decryption device. The composite input codes are obtained by performing composite affine transformations on the input obfuscated codes randomly generated by the white-box symmetric decryption device and preset input codes. The white-box decryption module is used to decrypt the obfuscated ciphertext data according to the preset output encoding, the pre-stored target key and the input obfuscation inverse encoding to obtain the plaintext data. The input obfuscation inverse encoding includes the inverse encoding of the input obfuscation encoding.
15. An electronic device, characterized in that, include: Processor and memory storing computer program instructions; When the processor executes the computer program instructions, it implements the white-box symmetric encryption method as described in any one of claims 1 to 6 or the white-box symmetric decryption method as described in any one of claims 7 to 12.
16. A white-box symmetric encryption / decryption system, characterized in that, include: An encrypted terminal for performing the white-box symmetric encryption method as described in any one of claims 1 to 6; The decryption backend system is connected to the encrypted terminal for executing the white-box symmetric decryption method as described in any one of claims 7 to 12.
17. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer program instructions that, when executed by a processor, implement the white-box symmetric encryption method as described in any one of claims 1 to 6 or the white-box symmetric decryption method as described in any one of claims 7 to 12.
18. A computer program product, characterized in that, It includes a computer program that, when executed by a processor, implements the white-box symmetric encryption method as described in any one of claims 1 to 6 or the white-box symmetric decryption method as described in any one of claims 7 to 12.
Citation Information
Patent Citations
White-box password nonlinear coding protection method based on combination of table look-up and disturbance scrambling
CN105656622A
Symmetric white box encryption method with unfixed key and apparatus
CN106411518A