Patent ID: 7769165

Claim:
A computer-implemented method for configuring a white-box cipher, the computer-implemented method comprising: configuring pseudorandom data derived from a key to perform key-scheduling functionality; and generating white-box executable code, the code hiding the pseudorandom data by incorporating it into mathematical operations performed during executing rounds, the executing rounds comprising using key-scheduled data in the executing, and injecting, after transformations in AES rounds, an XOR of a current AES state with pseudorandom bits, thereby providing additional bits for an adversary to recover, boundaries of the AES rounds being blurred by scrambling code and data elements, the white-box executable code comprising code segments configured according to at least two tracks, only one of the tracks in each round being actually useful for operation of the white-box cipher, and other tracks serving to obfuscate round boundaries, the generating of the white-box executable code comprising: extending a number of bits an adversary must recover by incorporating reversible steps to combine internal cipher data with the pseudorandom data; setting a user-specified security parameter defining a number of bits in the pseudorandom data, the bits configured so that the number of bits provides a lower bound on an amount of key data an adversary must extract in order to emulate operation of the white-box executable code; performing a brute-force search over short instruction sequences to find ones that implement a given operation and use the one found within the white-box executable code; and providing a user-selectable choice to create white-box cipher code or compact cipher code, and in response to user-selection of white-box cipher code, obfuscating pseudorandom data within the white-box cipher code, the compact cipher code containing the key within the compact cipher code.