US 12,149,608 B2
Method and apparatus for implementing a white-box cipher
Tingting Lin, Ottawa (CA); Dafu Lou, Ottawa (CA); and Manfred Von Willich, Ottawa (CA)
Assigned to Irdeto B.V., Hoofddorp (NL)
Filed by Irdeto Canada Corporation, Ottawa (CA)
Filed on Apr. 28, 2022, as Appl. No. 17/731,894.
Application 17/731,894 is a continuation of application No. 16/368,922, filed on Mar. 29, 2019, abandoned.
Prior Publication US 2022/0271916 A1, Aug. 25, 2022
Int. Cl. H04L 9/00 (2022.01); G06F 16/901 (2019.01); H04L 9/06 (2006.01); H04L 9/08 (2006.01); H04L 9/40 (2022.01)
CPC H04L 9/0631 (2013.01) [G06F 16/9017 (2019.01); G06F 16/9027 (2019.01); H04L 9/0861 (2013.01); H04L 63/1441 (2013.01)] 10 Claims
OG exemplary drawing
 
1. A method for implementing a block cipher algorithm in a software application to create a secure whitebox protected software application having the same functionality as the software application, the block cipher including a non-linear S-box step, and other linear algebraic steps, the method comprising:
re-expressing an S-box of the block cipher algorithm to hide and protect cryptographic keys used by the block cipher algorithm by:
decomposing the S-box based on its field, into a linear part including only linear steps and a non-linear part including non-linear steps and linear steps;
merging the linear part of the S-box with a preceding operation and creating a first set of lookup tables;
applying threshold implementations and masks to the first set of lookup tables;
obfuscating the non-linear part of the S-box by, for each round of the block cipher algorithm, creating a T-box comprising a second set of lookup tables by;
adding one of the cryptographic keys into the non-linear part of the S-Box;
applying an isomorphism to map the inversion computation corresponding to the S-box into a composite field to obtain a result that uses only elements of the composite field which include XOR, linear transformation and an inversion computation;
combining a threshold implementation and masks with a last step of the inversion computation in the composite field of the S-box;
mapping the result of the step of combining the threshold implementation step back into an original field of the S-box; and
creating a third set of lookup tables comprising all non-S-box operations of the block cipher algorithm;
applying further threshold implementations selectively to the third set of lookup tables and masks to the first, second, and third set of the lookup tables of the block cipher to generate and further obfuscate the first, second, and third set of lookup tables, whereby the inputs and outputs of all lookup tables of the first second, and third sets of lookup fables are obfuscated and the distribution of the masked values are uniform and independent of the original inputs; and
applying the block cipher to at least a portion of the software application to create the secure whitebox protected software application and thereby increase security of a computing platform executing the secure whitebox protected software application.