A white-box construction method for lightweight block cipher algorithm suitable for ARX structure

By using the combination method of external coding, high -dimensional security search table and internal coding in the ARX structure's lightweight packet password algorithm, solve the problem of large memory occupation, low computing efficiency and insufficient security in the existing technology, realized it, and realized it. Interesting and securely decrypting operations in the limited environment of resources.

CN115987490BActive Publication Date: 2025-01-24BEIJING ELECTRONICS SCI & TECH INST
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202211715404.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-12-28
Publication Date
2025-01-24
Estimated Expiration
2042-12-28

AI Technical Summary

Technical Problem

The existing white box cryptographic technology solution occupies a large memory space, has low computing efficiency, and is not suitable for resource-constrained software and hardware environments, and its security needs to be improved.

Method used

Using a white-box construction method of a lightweight block cipher algorithm suitable for the ARX structure, external coding is combined with the construction of a high-dimensional secure lookup table and random rotation, and then the scrambling items are inserted to hide the round key information, and in each round Add inter-round coding between rounds.

Benefits of technology

It improves the safety of algorithms in the white box environment, reduces memory occupation and computing complexity, so that the algorithm can operate efficiently in the environment of limited resources and effectively resist the code extraction attack.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115987490B_ABST
    Figure CN115987490B_ABST
Patent Text Reader

Abstract

The present invention discloses a white-box construction method for a lightweight block cipher algorithm suitable for an ARX structure. The method uses an updateable external coding form, namely, an external input coding and an external output coding, combined with the construction of a high-dimensional security lookup table, and then performs random rotation of the lookup table and inserts a disturbance item, so that all input values ​​and output values ​​of the original algorithm can be made into a lookup table, thereby hiding the round key information. In addition, an inter-round internal coding is added between each round, so that the adversary cannot easily obtain the key and the intermediate encrypted data information, thereby ensuring the overall security of the algorithm. The white-box construction method designed by the present invention is mainly aimed at the block ciphers of some lightweight ARX structures, and each round of the algorithm is made into multiple lookup tables. After multiple rounds of iterations and higher white-box diversity and white-box ambiguity values, the algorithm can be safely operated, and is more suitable for the white-box application environment on the basis of the original security. After analysis and verification, the white-box construction method proposed by the present invention has high security and implementation efficiency, and can be used in a white-box attack environment to resist multiple attacks.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of information security and cryptography technology, and specifically designs a white-box construction method for a lightweight block cipher algorithm suitable for an ARX structure. This method combines external encoding with the construction and random rotation of a high-dimensional security lookup table, and then inserts a disturbance term to ensure the security of the algorithm in a white-box environment. Background Art

[0002] Patent Document 1 (Publication Number: CN111800255A, Publication Date: October 20, 2020) discloses a method for generating and using a dynamic white-box library suitable for white-boxing block ciphers. This white-box library contains multiple lookup tables, which are then selected using a table selection factor to select the appropriate lookup table for use. However, this method only updates the existing static white-box library. The table lookup requires a large number of XOR operations and reversible affine transformations, which affects the overall computational efficiency of the algorithm and results in a low overall encryption and decryption rate.

[0003] Patent Document 2 (Publication Number: CN109981256B, Publication Date: August 5, 2022) discloses a white-box block cipher construction method and system based on the Feistelbox structure. This invention adds affine transformations between round functions and embeds the inverse affine transformation of the previous round into the lookup table of the current round. However, the invention does not add external encoding and internal encoding, making it vulnerable to code extraction attacks. Attackers can reverse engineer the entire algorithm code and obtain key data without the need for key information.

[0004] Through the analysis of the above literature, it can be seen that most existing white-box cryptographic technology solutions occupy a large amount of memory space, have low computational efficiency, are not suitable for resource-constrained hardware and software environments, and their security needs to be improved. The white-box construction scheme proposed in the present invention is suitable for ARX structure lightweight block ciphers. The algorithm has the advantages of fast operation speed and high security. After being constructed and implemented by the white-box method, it can combine lookup table technology with updateable external encoding technology and internal encoding technology. Through random rotation and insertion of scrambling items, it can be better deployed on lightweight devices. It can also resist common attacks against white-box environments, such as code extraction attacks, with high white-box diversity and white-box ambiguity values. Therefore, the algorithm proposed in the present invention can not only provide the white-box attack security of lightweight white-box cryptographic algorithms, but also be deployed on various resource-constrained hardware and software platforms, and has a wide range of applications. Summary of the Invention

[0005] This invention utilizes an updateable external code, combined with the construction of a high-dimensional secure lookup table, followed by random rotation of the lookup table and the insertion of scrambling terms. This allows all input and output values ​​of the lightweight ARX algorithm to be stored as a lookup table, thereby hiding the round key information. Furthermore, the addition of inter-round internal codes between each round prevents adversaries from easily obtaining the key and intermediate encrypted data, thus ensuring the overall security of the algorithm.

[0006] The present invention, through the above design, can solve the problems of existing white-box construction schemes such as large memory usage, low computational efficiency, and insufficient security against code extraction attacks, effectively improving the security of the ARX block cipher algorithm. The technical solutions of the present invention include:

[0007] A white-box construction method for lightweight block cipher algorithms suitable for ARX structures describes a secure external input encoding method. The specific steps are as follows:

[0008] Step S1: External input code, use pseudo random number generator PRNG to randomly generate 4 groups of 16-bit random binary data, recorded as C0, C1, C2, C3, each group of data is transformed into C0 through reversible affine transformation matrix in 、C1 in 、C2 in 、C3 in Deployed on an external software and hardware platform, the four sets of data are stored secretly, corresponding to the four input branches of the encryption algorithm, and can be changed and updated;

[0009] Where G and F are the corresponding operation matrices, which are left multiplication and right multiplication respectively. The four groups of 16-bit external input codes are first XORed with the four groups of 16-bit plaintext data X0, X1, X2, and X3 to be encrypted, and the result is recorded as X0 ’ , X1 ’ , X2 ’ , X3 ’ ;

[0010] X0 ’ =X0⊕C0 in ;X1 ’ =X1⊕C1 in ;X2 ’ =X2⊕C2 in ;X3 ’ =X3⊕C3 in ;

[0011] Step S2: External input decoding, before the first round of input in the ARX encryption algorithm, the corresponding random external input coded data C0 is XORed in each branch in 、C1 in 、C2 in 、C3in , so that the effect of the external input encoding is offset, that is, the original plaintext data X0, X1, X2, X3 are still involved in the first round of round function whitening key XOR operation and round key XOR operation;

[0012] A white-box construction method for lightweight block cipher algorithms suitable for ARX structures describes a secure external output encoding method. The specific steps are as follows:

[0013] Step S1: External output pre-decoding, before the final round of the ARX decryption algorithm, the random external output coded data D0 corresponding to each branch is XORed out 、D1 out 、D2 out 、D3 out , prepare for the subsequent external output code to be offset, the result is recorded as Y0 ’ , Y1 ’ , Y2 ’ , Y3 ’ ;

[0014] Step S2: External output encoding, using a pseudo-random number generator PRNG to randomly generate four groups of 16-bit random binary data, recorded as D0, D1, D2, D3, each group of data is transformed into D0 through a reversible affine transformation matrix out 、D1 out 、D2 out 、D3 out Deployed on an external software and hardware platform, the four sets of data are stored secretly, corresponding to the four output branches of the decryption algorithm, and can be modified and updated;

[0015]

[0016] Among them, H and E are the corresponding operation matrices, which are left multiplication and right multiplication respectively. The four groups of 16-bit external output codes and the four groups of 16-bit ciphertext data to be decrypted are intermediate data Y0 ’ , Y1 ’ , Y2 ’ , Y3 ’ Perform XOR:

[0017] Y0=Y0 ’ ⊕D0 out ; Y1=Y1 ’ ⊕D1 out ; Y2=Y2 ’ ⊕D2 out ; Y3=Y3 ’ ⊕D3 out ;

[0018] At this time, after external encoding and decoding, the encryption and decryption process information can be partially hidden by the code, which greatly increases the difficulty for the enemy to crack. Even if the enemy obtains the internal algorithm code through code extraction attack, and then obtains the input and output before the external encoding through reverse engineering and other means, it cannot run the algorithm correctly because the internal algorithm contains C0 in 、C1 in 、C2 in 、C3 in 、D0 out 、D1 out 、D2 out 、D3 out A total of 8 groups of data are XORed, and the adversary cannot distinguish them from the key information, nor can they obtain the specific data deployed on the external software and hardware platform, thus ensuring the security of the overall algorithm.

[0019] A white-box construction method for lightweight block cipher algorithms suitable for ARX structures adopts a new lookup table creation method. The specific steps are as follows:

[0020] Step S1: Assume that the operation flow of the first round branch 1 of the ARX block cipher algorithm is as follows:

[0021]

[0022] The result is recorded as M0, and the internal state of M0 after table lookup and obfuscation is recorded as M0'. According to the branch iteration rule, it enters the fourth branch of the next round to continue participating in the calculation;

[0023] Step S2: Express F0 (X1⊕sk0) in the above step S1 as a lookup table. Since X1⊕sk0 is 16-bit data, F0 is a linear transformation that does not change the number of bits, so it is still 16-bit data at this time, recorded as a 1×16 matrix A, and its transposed matrix is ​​a 16×1 matrix A T , let B = A T ×A is a 16×16 matrix. The matrix B is expanded to be a 16×64 asymmetric matrix, expressed as a block Where B1 to B 14 Each matrix is ​​8×8, and the key information is hidden in one of the small matrices. A total of 14×4=56 lookup tables are made in each round;

[0024] Step S3: Each possible 8-bit input corresponds to an 8-bit output, so the size of each constructed lookup table is 28×8=256 bytes. A total of 56 lookup tables are constructed in each round, and the algorithm has 48 rounds of iterations. Therefore, the memory space occupied by the white-box ARX cryptographic algorithm lookup table is 256 bytes.

[0025] ×56×48=672KB;

[0026] Step S4: Random rotation of the lookup table. Multiple lookup tables generated in each round are stored uniformly and randomly rotated to improve the diffusion and obfuscation effect of the data, making it more difficult for the adversary to extract the key information.

[0027] A white-box construction method for a lightweight block cipher algorithm suitable for the ARX structure adopts an inner encoding based on a reversible affine transformation and a scrambling term. The specific steps are as follows:

[0028] Step S1: After the last round of encryption, a 16-bit disturbance term is inserted into the data of the odd-numbered branches. The disturbance term is a randomly generated bit data string. Branches 1 and 3 are marked as 0 and 1 respectively. 1 , O 3 , then it is randomly generated in each subsequent round and used as an obfuscation step in the table lookup step. At this time, it becomes more difficult for the adversary to obtain the key information through the table lookup operation;

[0029] Step S2: After the perturbation term is inserted, the four branch data are expanded into 16×16 matrices through two reversible affine transformations to further obfuscate the data;

[0030] Step S3: Before the next round of data is input, the inverse transformation of the reversible affine transformation of the branches in the previous round is performed according to the branch iteration rule, so that the effect of the reversible affine transformation is offset. Then, the 4 and 2 branch data (corresponding to the 1 and 3 branches in the previous round) in the obtained result are XORed with the disturbance term O added in the previous round. 1 , O 3 , returning to the initial first-round encrypted data. Through the above steps, the effect of the internal encoding between rounds can be successfully offset, and the key information in the lookup table can be protected from being obtained by the adversary.

[0031] Compared with the prior art, the present invention has the following beneficial effects:

[0032] First, the white-box security of the original ARX block cipher algorithm is effectively improved, and it can be deployed in more white-box attack environments, more effectively protecting the security of keys and data.

[0033] Second, the adopted white-box solution is only 672KB, meeting the lightweight design goal. Compared with other solutions, it can be applied to a variety of resource-constrained environments to protect information data.

[0034] Third, the external encoding method, internal encoding method and lookup table construction method proposed in the present invention do not affect the overall encryption and decryption effects and conclusions of the ARX algorithm, but only broaden its application field and have good compatibility and applicability. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] Figure 11 is a diagram of the round function structure of an example of the ARX algorithm described in the present invention;

[0036] Figure 2 It is an external coding flow chart of the white box construction method of the present invention;

[0037] Figure 3 It is the overall flow chart of the white box construction method of the present invention;

[0038] Figure 4 is a lookup table flow chart of the white-box construction method of the present invention;

[0039] Figure 5 This is an overall encryption algorithm structure diagram that takes the ARX algorithm as an example and combines it with the white-box construction method described in the present invention. DETAILED DESCRIPTION

[0040] The following further illustrates the implementation process of the present invention with reference to the accompanying drawings and examples, but does not limit the scope of application of the present invention in any way.

[0041] Reference Figure 1 , the implementation steps of the present invention are further described. The present invention takes an ARX algorithm as an example to describe the white box construction method.

[0042] Round function encryption. The four plaintext data packets enter the four branches of the ARX algorithm encryption round function from low to high:

[0043] Step S1: Perform initial transformation on plaintext X: R0=X0 0 ⊕rk0; R1=X0 1 ⊕sk0; R2=X0 2 ⊕sk1; R3=X0 3 ⊕rk1. Subsequently, the F function, modular addition, and XOR operations are performed on R0-R3 according to the round function algorithm. ⊕ is the XOR symbol, << <x>>>y: represents a circular left shift of x bits and a circular right shift of y bits, respectively. Modulo 2 16 add;

[0044] Step S1: F0(x) = (x<<<2)⊕(x<<<7)⊕(x<<<9), F1(x) = (x<<<5)⊕(x<<<11)⊕(x<<<14);

[0045] Step S1: record the first round encryption result after 4 branch modular addition, circular shift, F function and XOR mixing operation as X1 0 , X1 1 , X1 2 , X1 3 , are all 16-bit block encrypted data.

[0046] X1 0 =R1=X0 1 ⊕sk0;X1 1 =R2=X0 2 ⊕sk1;

[0047]

[0048]

[0049] The above four groups of 16-bit data are used as the data to be encrypted in the second round of encryption for subsequent iterations.

[0050] Reference Figure 2 , further describing the implementation steps of the present invention.

[0051] A white-box construction method for lightweight block cipher algorithms suitable for ARX structures describes a secure external input encoding method. The specific steps are as follows:

[0052] Step S1: External input code, use pseudo random number generator PRNG to randomly generate 4 groups of 16-bit random binary data, recorded as C0, C1, C2, C3, each group of data is transformed into C0 through reversible affine transformation matrix in 、C1 in 、C2 in 、C3 in Deployed on an external software and hardware platform, the four sets of data are stored secretly, corresponding to the four input branches of the encryption algorithm, and can be changed and updated;

[0053] Where G and F are the corresponding operation matrices, which are left multiplication and right multiplication respectively. The four groups of 16-bit external input codes are first XORed with the four groups of 16-bit plaintext data X0, X1, X2, and X3 to be encrypted, and the result is recorded as X0 ’ , X1 ’ , X2 ’ , X3 ’ ;

[0054] X0 ’ =X0⊕C0 in ;X1 ’ =X1⊕C1 in ;X2 ’ =X2⊕C2 in ;X3 ’ =X3⊕C3 in ;

[0055] Step S2: External input decoding, before the first round of input in the ARX encryption algorithm, the corresponding random external input coded data C0 is XORed in each branch in 、C1 in 、C2 in 、C3 in , so that the effect of the external input encoding is offset, that is, the original plaintext data X0, X1, X2, X3 are still involved in the first round of round function whitening key XOR operation and round key XOR operation;

[0056] A white-box construction method for lightweight block cipher algorithms suitable for ARX structures describes a secure external output encoding method. The specific steps are as follows:

[0057] Step S1: External output pre-decoding, before the final round of the ARX decryption algorithm, the random external output coded data D0 corresponding to each branch is XORed out 、D1 out 、D2 out 、D3 out , in preparation for the subsequent external output code to be offset, the result is recorded as Y0 ’ , Y1 ’ , Y2 ’ , Y3 ’ ;

[0058] Step S2: External output encoding, using a pseudo-random number generator PRNG to randomly generate four groups of 16-bit random binary data, recorded as D0, D1, D2, D3, each group of data is transformed into D0 through a reversible affine transformation matrix out 、D1 out 、D2 out 、D3 out Deployed on an external software and hardware platform, the four sets of data are stored secretly, corresponding to the four output branches of the decryption algorithm, and can be modified and updated;

[0059]

[0060] Among them, H and E are the corresponding operation matrices, which are left multiplication and right multiplication respectively. The four groups of 16-bit external output codes and the four groups of 16-bit ciphertext data to be decrypted are intermediate data Y0 ’ , Y1 ’ , Y2 ’ , Y3 ’ Perform XOR:

[0061] Y0=Y0 ’ ⊕D0 out ; Y1=Y1 ’ ⊕D1 out ; Y2=Y2 ’ ⊕D2 out ; Y3=Y3 ’ ⊕D3 out ;

[0062] At this time, after external encoding and decoding, the encryption and decryption process information can be partially hidden by the code, which greatly increases the difficulty for the enemy to crack. Even if the enemy obtains the internal algorithm code through code extraction attack, and then obtains the input and output before the external encoding through reverse engineering and other means, it cannot run the algorithm correctly because the internal algorithm contains C0 in 、C1 in 、C2 in 、C3 in 、D0 out 、D1 out 、D2 out 、D3 out A total of 8 groups of data are XORed, and the adversary cannot distinguish them from the key information, nor can they obtain the specific data deployed on the external software and hardware platform, thus ensuring the security of the overall algorithm.

[0063] Reference Figure 3 and Figure 4 , further describing the implementation steps of the present invention.

[0064] A white-box construction method for lightweight block cipher algorithms suitable for ARX structures adopts a new lookup table creation method. The specific steps are as follows:

[0065] Step S1: The operation flow of the first round branch 1 of the ARX block cipher algorithm is as follows:

[0066]

[0067] The result is recorded as M0, and the internal state of M0 after table lookup and obfuscation is recorded as M0'. According to the branch iteration rule, it enters the fourth branch of the next round to continue participating in the calculation;

[0068] Step S2: Express F0 (X1⊕sk0) in the above step S1 as a lookup table. Since X1⊕sk0 is 16-bit data, F0 is a linear transformation that does not change the number of bits, so it is still 16-bit data at this time, recorded as a 1×16 matrix A, and its transposed matrix is ​​a 16×1 matrix A T , let B = A T ×A is a 16×16 matrix. The matrix B is expanded to be a 16×64 asymmetric matrix, expressed as a block Where B1 to B 14 Each matrix is ​​8×8, and the key information is hidden in one of the small matrices. A total of 14×4=56 lookup tables are made in each round;

[0069] Step S3: Each possible 8-bit input corresponds to an 8-bit output, so the size of each constructed lookup table is 28×8=256 bytes. A total of 56 lookup tables are constructed in each round, and the algorithm has 48 rounds of iterations. Therefore, the memory space occupied by the white-box ARX cryptographic algorithm lookup table is 256 bytes.

[0070] ×56×48=672KB;

[0071] Step S4: Random rotation of the lookup table. Multiple lookup tables generated in each round are stored uniformly and randomly rotated to improve the diffusion and obfuscation effect of the data, making it more difficult for the adversary to extract the key information.

[0072] A white-box construction method for a lightweight block cipher algorithm suitable for the ARX structure adopts an inner encoding based on a reversible affine transformation and a scrambling term. The specific steps are as follows:

[0073] Step S1: After the last round of encryption, a 16-bit disturbance term is inserted into the data of the odd-numbered branches. The disturbance term is a randomly generated bit data string. Branches 1 and 3 are marked as 0 and 1 respectively. 1 , O 3 , then it is randomly generated in each subsequent round and used as an obfuscation step in the table lookup step. At this time, it becomes more difficult for the adversary to obtain the key information through the table lookup operation;

[0074] Step S2: After the perturbation term is inserted, the four branch data are expanded into 16×16 matrices through two reversible affine transformations to further obfuscate the data;

[0075] Step S3: Before the next round of data is input, the inverse transformation of the reversible affine transformation of the branches in the previous round is performed according to the branch iteration rule, so that the effect of the reversible affine transformation is offset. Then, the 4 and 2 branch data (corresponding to the 1 and 3 branches in the previous round) in the obtained result are XORed with the disturbance term O added in the previous round. 1 , O 3 , returning to the initial first-round encrypted data. Through the above steps, the effect of the internal encoding between rounds can be successfully offset, and the key information in the lookup table can be protected from being obtained by the adversary. Figure 5 The white-box process of the overall algorithm and the structure diagram of the ARX encryption algorithm are given as examples.

[0076] The above description is only a specific example of the present invention and does not constitute any limitation to the present invention. After understanding the technical principles and design ideas of the present invention, professional and technical personnel in this field may make corresponding modifications or improvements to the details or form of the method proposed in the present invention, which still fall within the scope of protection of the present invention.< / x>

Claims

1. A white-box construction method for a lightweight block cipher algorithm suitable for an ARX structure, characterized in that: The specific steps are: External input encoding method, the specific steps are: Step S1: External input code, use the pseudo-random number generator PRNG to randomly generate 4 groups of 16-bit random binary data, denoted as C0, C1, C2, C3, each group of data is transformed into C0 through a reversible affine transformation matrix in 、C1 in 、C2 in 、C3 in Deployed on an external software and hardware platform, the four sets of data are stored in secret, corresponding to the four input branches of the encryption algorithm, and can be changed and updated; Where G and F are the corresponding operation matrices, which are left multiplication and right multiplication respectively; the four groups of 16-bit external input codes are first XORed with the four groups of 16-bit plaintext data X0, X1, X2, and X3 to be encrypted, and the results are recorded as X0', X1', X2', and X3', and the expression is: Step S2: External input decoding, before the first round of input of the ARX encryption algorithm, the corresponding random external input coded data C0 is XORed in each branch in 、C1 in 、C2 in 、C3 in , so that the effect of the external input encoding is offset, that is, the original plaintext data X0, X1, X2, X3 are still involved in the first round of round function whitening key XOR operation and round key XOR operation; External output encoding method, the specific steps are: Step S3: External output pre-decoding, before the last round of output of the ARX decryption algorithm, the random external output coded data D0 corresponding to each branch is XORed out 、D1 out 、D2 out 、D3 out , in preparation for the subsequent external output code to be offset, the results are recorded as Y0', Y1', Y2', Y3'; Step S4: External output encoding, using a pseudo-random number generator PRNG to randomly generate 4 groups of 16-bit random binary data, recorded as D0, D1, D2, and D3. Each group of data is transformed into D0 through a reversible affine transformation matrix. out 、D1 out 、D2 out 、D3 out Deployed on an external software and hardware platform, the four sets of data are stored in secret, corresponding to the four output branches of the decryption algorithm, and can be changed and updated; Among them, H and E are the corresponding operation matrices, which are left multiplication and right multiplication respectively. The four groups of 16-bit external output codes are XORed with the four groups of 16-bit ciphertext data intermediate data Y0', Y1', Y2', Y3' to be decrypted: At this time, after external encoding and decoding, part of the encryption and decryption process information can be encoded and hidden, which greatly increases the difficulty of cracking by the enemy. Even if the enemy obtains the internal overall algorithm code through code extraction attack, and then obtains the input and output before external encoding through reverse engineering and other means, it cannot run the algorithm correctly because the internal algorithm contains C0 in 、C1 in 、C2 in 、C3 in 、D0 out 、D1 out 、D2 out 、D3 out A total of 8 sets of data XOR operations are performed, and the adversary cannot distinguish them from the key information, nor can they obtain the specific data deployed on the external software and hardware platform, thus ensuring the security of the overall algorithm; The specific steps for making a lookup table are as follows: Step S111: Assume that the operation flow of the first round branch 1 of the ARX block cipher algorithm is as follows: The result is recorded as M0, and the internal state of M0 after table lookup and confusion is recorded as M0'. According to the branch iteration rule, it enters the fourth branch of the next round to continue participating in the operation; Step S112: The Represented as a lookup table, since is 16-bit data, F0 is a linear transformation that does not change the number of bits, so it is still 16-bit data at this time, recorded as a 1×16 matrix A, and its transposed matrix is ​​a 16×1 matrix A T , let B = A T ×A, is a 16×16 matrix, and the matrix B is expanded to a 16×64 asymmetric matrix, expressed as a block Where B1 to B 14 All of them are 8×8 matrices, and the key information is hidden in one of the small matrices. A total of 14×4=56 lookup tables are made in each round; Step S113: Each possible 8-bit input corresponds to an 8-bit output, so the size of each constructed lookup table is 32×8=256 bytes, 56 lookup tables are made in each round, and the algorithm has 48 rounds of iterations. Therefore, the memory space occupied by the white-boxed ARX cryptographic algorithm lookup table is 256 bytes×56×48=672KB; Step S114: Random rotation of the lookup table, storing multiple lookup tables generated in each round in a unified manner, and randomly rotating their positions to improve the diffusion and obfuscation effect of data, and increase the difficulty for the adversary to extract key information. Based on the reversible affine transformation and the internal encoding of the perturbation term, the specific steps are as follows: Step S121: After the last round of encryption, a 16-bit disturbance term is inserted into the data of the odd-numbered branches. The disturbance term is a randomly generated bit data string. The 1st and 3rd branches are recorded as 0 respectively. 1 , 0 3 , and then randomly generated in each subsequent round, used as the obfuscation step in the table lookup step. At this time, it is more difficult for the adversary to obtain the key information through the table lookup operation; Step S122: After the disturbance term is inserted, the four branch data are respectively expanded into a 16×16 matrix through two reversible affine transformations to further confuse the data; Step S123: Before the next round of data is input, the inverse transformation of the reversible affine transformation of the previous round of branches is performed according to the branch iteration rule, so that the effect of the reversible affine transformation is offset. Then, the 4 and 2 branch data in the result, which correspond to the 1 and 3 branches of the previous round, are XORed with the disturbance term 0 added in the previous round. 1 , 0 3 , returning to the initial data after the first round of encryption, after steps S121 to S123, the effect of the internal encoding between rounds can be successfully offset, and the key information in the lookup table can be prevented from being obtained by the adversary.

Citation Information

Patent Citations

  • A white-box block cipher construction method and system based on the FeistelBox structure

    CN109981256B

  • Dynamic white box library generation and use method suitable for block cipher white box

    CN111800255A

  • White-box SM4 cryptographic algorithm scheme and system

    CN108809626A

  • 16-wheel SM4-128 / 128 white box password implementation method

    CN110278072A