This is an explanation on how a whitebox can be implemented, It follows Chow et al's paper on the subject.
It uses our previous implementation of DES in C.
To Do List
- Create encodings for the network of XOR tables.
- Split-Pathing for the XOR tables
- Mixing-bijections for M_0, M_1, M_2 and
How to use the C implementation
WBDES.c and WBDES.h contain the functions used in the Whitebox-DES algorithm.
main.c builds the algorithm and allows you to decrypt an input file using the Whitebox DES. To encrypt you can use a simple DES encryption.
use make to build desbox.
$ make $ whitebox --help
- LtablesGen.c is a Lookup table generator that takes a key and generate a
LtablesGenexecutable. Use it before building the main executable
make to build the lookup table generator:
$ make Ltablesgen $ ./Ltablesgen key
key must be in binary format.