The White-Box Table Generator is a Java tool compatible with major operating systems like MacOS, Windows, and Linux.

Syntax

The White-Box Table Generator can be used to enter an AES key securely, either as a single part or multiple parts of the key. It returns a key checksum for the validation of the key.

The usage of the tool is as follows :

java -jar table_generator.jar -n <number_of_parts> -o <output_folder>

where

  • <number_of_parts> is the number of parts of the key to be entered. You will be prompted to enter the parts in a secure manner. Use 1 for inputting the AES key as a single part.
  • <output_folder> is the path to the output directory. This parameter is optional. If this parameter is not supplied, the table file is generated in the current folder.

When the process is started the different parts of the key must be entered manually as hexadecimal character strings. The characters are hidden for security purposes. The total length of the parts must equal 32 or else the process will not continue.

After the input of all the key's parts, the final AES 128-bit key is computed and randomized in the table data and stored as an enc.dat file.

On Linux environments, sometimes the TableGenerator tool gives an Unsatisfied Link error for libcrypto++ or libntl. If this is the case, install the libcrypto++ and libntl libraries according to the installation procedures for the operating system.

For instance, on Ubuntu use the following:

apt-get update

apt-get install libntl-dev -y

apt-get install libcrypto++-dev -y

Return values

The output contains the tables that are generated for the given input key. By default, the tables are stored as a file named enc.dat. This file can be renamed and multiple .dat files can be created for various purposes.