A Whitebox is a method designed to protect cryptographic keys in unsecured environments where an attacker has full access to the system (in our case, the executable), including memory and executed code. Unlike traditional cryptography, where the key is assumed to remain secret, a Whitebox integrates the key directly into the encryption algorithms, making its extraction particularly difficult. This mechanism aims to resist various attacks, including static analysis, dynamic analysis, and side-channel attacks.
As part of our project, we plan to protect the AES key by integrating it into a Whitebox. This Whitebox will combine at least two robust cryptographic algorithms to enhance its resistance against attacks, especially those based on side channels. While we have not yet precisely defined the algorithms we will implement, our goal is to have a functional first draft for the initial presentation. This initial version will serve as a foundation, allowing us to progress with other parts of the project. We also plan to improve it further to strengthen security and optimize its performance.