How to Use AES.ZIP ================== AES.ZIP contains a Microsoft Visual C++ Version 6 project to build and evaluate the 15 AES candidate algorithms. I retain copyright in this source code but I hereby give permission for its free use provided its origin is acknowledged and provided also that any conditions imposed by the AES algorithm designers or owners are met. I provide no warranties of any kind in respect of this code. If any of this code is used for purposes other than for AES algorithm evaluation, e.g. in delivered applications, I would be grateful to receive outline details of the use to which it is being put. Please note that some AES algorithms have only been made available by their designers and owners for evaluation purposes. Before some AES algorithms are used it is hence necessary to obtain permission from the design teams concerned. The Structure of the VC++ Project ================================= The zip file expands into a directory and file structure of a VC++ v6 project in which there are three active programs and 17 directories that contain algorithm code. The three active programs are: aes_gtst - a program to generate test vector files for an AES algorithm and compare these with reference versions aes_test - a program to test an AES algorithm against a standard set of test vector files aes_time - a program to test the speed of an AES algorithm To use these with a particular algorithm, the algortihm source code from one of the algorithm directories is added to one of the above projects, which is then compiled to run the test in question. Note that DEAL requires DES files (des.h, des.c, key.c) in addition to DEAL itself (since DEAL is built on DES) It will be necessary to set up the right source directories in the C++ files for the first two pojects in the above list. The following path in the first and second project C++ files: string loc_path("d:\\cpp\\aes\\"); must point to the location of the VC++ project. In the first project, if a NIST CD-ROM is to be used for test vectors, AES_CD should be defined and the appropraite drive set in the path: string ref_path("f:\\testvals\\"); Otherwise AES_CD should be left undefined so that the test vectors supplied in AES.ZIP will be used. Bugs and Comments ================= I would appreciate feedback on this code, especially bugs and improvements. Note that I have not put any effort into making this code work on both big and little endain machines. My PC has an Intel PII processor and is hence little endian and this is the environment in which I believe the code runs correctly. Brian Gladman (gladman@seven77.demon.co.uk), 8th July 1999