README

Algorithm:	SERPENT
Submitter:	Ross Anderson, Eli Biham, Lars Knudsen

Reference ANSI C implementation (unoptimised)
=============================================

This directory contains the following files:

  Makefile.bcc        makefile for use with the Borland compiler
  Makefile.gcc        makefile for use with GCC-based compilers
  Makefile.Visualc    makefile for use with the Visual C compiler

  serpent-api.h       NIST API header file adapted for Serpent

  serpent-tables.h    tables for S-boxes and linear transformation      
  serpent-ref.h
  serpent-ref.c
                      serpent core implementation

  serpent-aux.h
  serpent-aux.c
                      auxiliary functions that print and perform conversions

  serpent-test.c
                      very basic command line test program


NIST-specified tests:

  ecb_vk.c            variable key
  ecb_vt.c            variable plaintext

  ecb_iv.c            intermediate values

  ecb_tbl.c           tables
  ecb_tbl_precomputed.txt
    Input data for tables test, as generated by the Java program
    Serpent.gen_plains (see floppy #3). The magic plaintexts are extracted
    from this file with grep and fed to the ecb_tbl test program. See the
    Makefile.org for more details.

  cbc_d_m.c
  cbc_e_m.c
  ecb_d_m.c
  ecb_e_m.c
                      Monte Carlo (NB: with the above non-optimised reference code,
                      these take several hours each to run)

