tcdg

9
Final TCDG VHDL & Verilog Synthesizable model of the Data Encryption Standard (DES) Version : 1.0 Printing date : 10/09/99 DISTINCTIVE CHARACTERISTICS High Performance - 16 clock cycles for a complete DES encryption or decryption - Simple interface with a start/done handshake - No external logic necessary Compatibility - Based on the FIPS PUB 44-2 specification - ANSI X3.92, ANSI X3.106 - Suitable for triple DES implementations - Suitable for electronic code block (ECB), cipher block coding (CBC), cipher feedback (CFB) and output feedback (OFB) implementations Description language & Synthesis caracteristics - Available in VHDL and Verilog - Described for both synthesis and simulation - Fully Synchronous design - Low gate count - High clock speed - Test bench provided Target Technology - FPGA - ASIC - Gate Array - .... Typical application - Data files protection on any media (hard disk, CD- ROM, EEPROM,...) - Access authentification - Smart card applications - Internet & Intranet communication protection - Space telecommunication - Banking applications - Private informations protections Complete product range - See TETRAEDRE’s products portofolio for availability of low-power, full-scan products. As well as for C (C++) source files and Triple DES modules. 0110110001101100001000001000100100111101010100011110110001001011010101100011101101010011010111111110110100 1111101011000001010100000110011111011001111100011010011001111011110111110110100010110111001001011010100010 0011011001010010001101110100100101000111111010110011011010110001000000001101000011101010111000011101110001 1011010000100000011001010001001110011011110111011100100000011010010111001100100000011101000011111110100100 0000111010001010100110000100110101001000000101010000011001100011110100011011001101111100010010000000100100 0011000110100001100101001000000111010001101001011011010110010100100000011010100010011100010111100001111010 1011100010001000001111111001100101011100101011100000011010101001111111110100110101101101001001100110011011 1101110010001000000110000101101100011011000010000010001001001111010101000111101100010010110101011000111011 0101001101011111111011010011111010110000010101000001100111110110011111000011000101001111100000110010011111 1110100111101000001001101010000000011001100011110100011011001101111100010010000000100100001100001111111010 0100000011101000101010011000010011010100100000010101010000110110001001110110000011001100000100111011101001 1111011010100101011100101011100000011010101001111111110100110101101101001001101010001001110001011110000111 1010101110001000100000111111100111111111010101011100010111111000000011111010101010101100010001011011000110 1100001000001000100100111101010100011110110001001011010101100011101101010011010111111110110100111110101100 0001010100000110011111011001111100011010011001111011110111110110100010110111001001011010100010001101100101 0010001101110100100101000111111010110011011010110001000000001101000011101010111000011101110001101101000010 0000011001010001001110011011110111011100100000011010010111001100100000011101000011111110100100000011101000 1010100110000100110101001000000101010000011001100011110100011011001101111100010010000000100100001100011010 0001100101001000000111010001101001011011010110010100100000011010100010011100010111100001111010101110001000 1000001111111001100101011100101011100000011010101001111111110100110101101101001001100110011011110111001000 1000000110000101101100011011000010000010001001001111010101000111101100010010110101011000111011010100110101 1111111011010011111010110000010101000001100111110110011111000011000101001111100000110010011111111010011110 1000001001101010000000011001100011110100011011001101111100010010000000100100001100001111111010010000001110 1000101010011000010011010100100000010101010000110110001001110110000011001100000100111011101001111101101010 0101011100101011100000011010101001111111110100110101101101001001101010001001110001011110000111101010111000 1000100000111111100111111111010101011100010111111000000011111010101010101100010001011011000110110000100000 1000100100111101010100011110110001001011010101100011101101010011010111111110110100111110101100000101010000 0110011111011001111100011010011001111011110111110110100010110111001001011010100010001101100101001000110111 0100100101000111111010110011011010110001000000001101000011101010111000011101110001101101000010000001100101 0001001110011011110111011100100000011010010111001100100000011101000011111110100100000011101000101010011000 0100110101001000000101010000011001100011110100011011001101111100010010000000100100001100011010000110010100 1000000111010001101001011011010110010100100000011010100010011100010111100001111010101110001000100000111111 1001100101011100101011100000011010101001111111110100110101101101001001100110011011110111001000100000011000 0101101100011011000010000010001001001111010101000111101100010010110101011000111011010100110101111111101101 0011111010110000010101000001100111110110011111000011000101001111100000110010011111111010011110100000100110 1010000000011001100011110100011011001101111100010010000000100100001100001111111010010000001110100010101001 1000010011010100100000010101010000110110001001110110000011001100000100111011101001111101101010010101110010 1011100000011010101001111111110100110101101101001001101010001001110001011110000111101010111000100010000011 key(63:0) q(63:0) TCDG d(63:0) start done crypt clk nreset

Transcript of tcdg

Page 1: tcdg

Final

TCDGVHDL & Verilog Synthesizable model of theData Encryption Standard (DES)

Version : 1.0Printing date : 10/09/99

DISTINCTIVE CHARACTERISTICS

� High Performance

− 16 clock cycles for a complete DES encryption ordecryption

− Simple interface with a start/done handshake− No external logic necessary

� Compatibility

− Based on the FIPS PUB 44-2 specification− ANSI X3.92, ANSI X3.106− Suitable for triple DES implementations− Suitable for electronic code block (ECB), cipher

block coding (CBC), cipher feedback (CFB) andoutput feedback (OFB) implementations

� Description language & Synthesiscaracteristics

− Available in VHDL and Verilog− Described for both synthesis and simulation− Fully Synchronous design− Low gate count− High clock speed− Test bench provided

� Target Technology

− FPGA− ASIC− Gate Array− ....

� Typical application

− Data files protection on any media (hard disk, CD-ROM, EEPROM,...)

− Access authentification− Smart card applications− Internet & Intranet communication protection− Space telecommunication− Banking applications− Private informations protections

� Complete product range

− See TETRAEDRE’s products portofolio foravailability of low-power, full-scan products. Aswell as for C (C++) source files and Triple DESmodules.

0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 01 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 00 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 11 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 00 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 00 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 01 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 11 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 10 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 11 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 00 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 11 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 11 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 01 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 1 0 00 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 10 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 00 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 01 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 00 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 01 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 0 01 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 11 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 01 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 01 0 0 0 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 00 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 01 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 01 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 1 0 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 00 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 0 1 1 0 1 0 0 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 0 0 1 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 1 1 10 1 0 0 1 0 0 1 0 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 10 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 1 1 0 0 00 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1 0 1 0 01 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 1 1 1 11 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 00 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 0 1 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 1 1 0 1 1 0 10 0 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1 01 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 0 1 0 1 0 0 11 0 0 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 1 0 1 1 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 1 0 0 1 01 0 1 1 1 0 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1

key(63:0) q(63:0)TCDG

d(63:0)

start donecryptclknreset

Page 2: tcdg

TCDG 2 / 9

GENERAL DESCRIPTIONThe Data Encryption Standard (DES) algorithm, adoptedby the U.S. government in 1977, is a block cipher thattransforms 64-bit data blocks under a 56-bit secret key, bymeans of permutation and substitution. It is officiallydescribed in FIPS PUB 46. The DES algorithm is used formany applications within the government and in the privatesector.In general, cryptography is used to protect data while it isbeing communicated between two points or while it isstored on a medium vulnerable to physical theft.Communication security provides protection to data byenciphering it at the transmitting point and deciphering it atthe receiving point. File security proceeds protection todata by enciphering it when it is recorded on a storagemedium and deciphering it when it is read back from thestorage medium. In the first case, the key must beavailable at the transmitter and receiver simultaneouslyduring communication. In the second case, the key mustbe maintained and accessible for the duration of thestorage period.

KeyA key consists of 64 binary digits ("0"s or "1"s) of which 56bits are randomly generated and used directly by thealgorithm. The other 8 bits, which are not used by thealgorithm may be used for error detection if they areinterpreted as parity bits. The TCDG modules doesn’t usethese bits at all. When these parity bit are used, they mustbe set to make the parity of each 8-bit byte of the key odd.The user must have the key that was used to encipher thedata in order to decrypt it. Use of a different key causesthe cipher that is produced for any given set of inputs to bedifferent. The encryption algorithm specified for the DES iscommonly known among those using the standard. Thecryptographic security of the data depends on the securityprovided for the key used to encipher and decipher thedata.

Data inputThe DES algorithm can crypt or decrypt any data (eithertext, numbers) expressed in 64 binary digits words. Theinput is processed in blocks. Therefore, this algorithm canbe used to protect any kind of documents, like pictures,private data, bank account number, confidentialdocuments, ...

Data outputData can be recovered from cipher only by using exactlythe same key used to encipher it. Unauthorized recipientsof the cipher who know the algorithm but do not have thecorrect key cannot derive the original data algorithmically.However, anyone who does have the key can decipher thecipher and obtain the original data.

Qualification

The cryptographic DES algorithm transforms a 64-bitbinary value into a unique 64-bit binary value based on a56-bit variable. If the complete 64-bit input is used and ifthe 56-bit variable is randomly chose, no technique otherthan trying all possible keys using known input and outputfor the DES will guarantee finding the chosen key. Asthese are over 70,000,000,000,000,000 (seventyquadrillion) possible keys of 56 bits, the feasibility ofderiving a particular key in this way is extremely unlikely intypical threat environments. Moreover, if the key ischanged frequently, the risk of this event is greatlydiminished.

If improved security level are needed by your application,the Triple DES algorithm may be used. This algorithm,based on the DES uses three independents key (leadingto 168-bit key) to cipher the data.Products implemented the Triple DES algorithm are alsoavailable by Tetraedre.

Export control and restrictions

In the United States of America, cryptographic devices andtechnical data regarding them are subject to U.S. FederalGovernment export controls (Code of FederalRegulations). Some export of cryptographic modulesimplementing this standard and technical data regardingthem must comply with these regulations and be licensedby the U.S. Department of State or by the Bureau of ExportAdministration of the U.S. Department of Commerce.

This product is not suitable for life support equipment.

Patents

Cryptographic devices implementing this standard may becovered by U.S. and foreign patents issued to theInternational Business Machines Corporation. However,IBM has granted nonexclusive, royalty-free licenses underthe patents to make, use and sell apparatus whichcomplies with this standard.

The VHDL and Verilog modules, TCDG products, areprotected by copyrights and belong to Tetraedre Sarl,Switzerland. These modules can be used only by signing alicense agreement with Tetraedre Sarl.

Page 3: tcdg

TCDG 3 / 9

LOGIC SYMBOL

key(63:0) q(63:0)TCDG

d(63:0)

start donecryptclknreset

Block diagram

PIN CONFIGURATION

key(63:0) key input

d(63:0) data input

q(63:0) result output

start conversion start

crypt crypt/decrypt mode selection

done conversion done flag

clk clock input

nreset asynchronous reset

subkeygenerator

key

d

q

crypt

start

done

clk Initial Permutation

Expansion

XOR

S Boxes

XOR

Inverse Initial Permutation

Left Register Left Register

nreset

Control statemachine

Page 4: tcdg

TCDG 4 / 9

OPERATING MODESThe TCDG module is a very easy to use component. Thedata to be encrypted or decrypted is applied to the d input,the appropriate operation mode is selected by settingcrypt in the right state. Then, to start the conversion, thestart signal is asserted. Once the conversion is finished,the done signal is asserted. The result can be read on theq output pin.The word "conversion" is used hereafter to indicate eitheran encryption or a decryption. The choice of the operationis selected by the crypt pin, as explained below.

Since the design is completely synchronous, no clocksignals are generated and no gated clock are used insidethis component. So the interface between the DES moduleand your application is very easy to implement.

Pinout description

key(63:0) This 64-bit wide bus represents the key ofthe DES encryption or decryption. The key input mustremain stable during the complete conversion. The keymust not change until the result has been stored since theoutput depends directly on the key value.

d(63:0) This 64-bits input represents the data whichmust be encrypted or decrypted. The data is sampled ininternal registers at clk’s rising edge at the conversion’sstart.

q(63:0) This 64-bits output represents the result ofthe calculation. This signal can be sampled by yourapplication at clk’s rising edge, when done is asserted(high). The result appears on the output linesimultaneously with the done signal.

start This signal indicates to the internal statemachine to start a conversion. The conversion starts atclk’s rising edge after start has changed from 0 to 1. Thestart signal is internally synchronized with the clock.

crypt This signal indicates if the data at the inputmust be encrypted (crypt=1) or decrypted (crypt=0). Thissignal is sampled in an internal register at clk’s rising edgewhen the conversion starts.

done This output indicates (at 1) when the resulthas been calculated. This signal remains at one as long asno START signal is asserted.

clk Clock signal.

nreset This signal is an asynchronous reset signal(low active).

Conversion timing diagram

The figure 1 shows the timing diagram of a conversion.Since the data (d) and crypt inputs are sampled at the startof the conversion, the can change after the start. The keyinput is not sampled inside the component so modifyingthe key will change the result, even after the conversionended.The start signal starts the conversion. done is asserted 15clock cycles after start has been negated. The resultremains stable as long as no START occurs and as longas the input remains stable.

valid result

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

ck

key

d, crypt

start

done

q

Figure 1. Conversion timing

Page 5: tcdg

TCDG 5 / 9

Alternative modes of using the DES

Four different modes for using the algorithm have beendescribed in several standard (for example FIPS PUB 81).The four modes are called the Electronic Codebook (ECB)mode, the Cipher Block Chaining (CBC) mode, the CipherFeedback (CFB) mode and the Output Feedback (OFB)mode.

ECB is a direct application of DES algorithm to encrypt anddecrypt data.

CBC is an enhanced mode of ECB which chains togetherblocks of cipher text.

CFB uses previously generated cipher text as input to theDES to generate pseudorandom outputs which arecombined with the plaintext to produce cipher, therebychaining together the resulting cipher.

OFB is identical to CFB except that the previous output ofthe DES is used as input in OFB while the previous cipheris used as input in CFB. OFB does not chain the cipher.

Page 6: tcdg

TCDG 6 / 9

SIMULATION INFORMATION

The DES module, TCDG, is delivered with a HDLtestbench (either VHDL or Verilog). This testbench iscomposed of several hundreds encryption and decryptioncalculations. The test vectors define the input parameters(d, key, crypt) and also the expected output of the block.The value generated by the DES module is compared withthe expected value. If they don’t match, the "erreur" signalis asserted (high) and an error message is displayed onthe simulator’s standard outputsee note 1. The "erreur" signalis negated at the beginning of the simulation and remainslow as long as no error is detected.

At the end of the simulation, a message is displayedindicating if the complete test failed or if it succeed see note 1.This message has a severity of type "error" if the test failedand a severity of type "note" if it succeeded. Don’t forget toenable the display of these type of message for a propersimulation.

The DES component and all its sub-blocks are describedin a single file: TCDG.V or TCDG.VHD. The testbench is

1 This feature is only available for the VHDL description.For the Verilog model, the value of the "erreur" signal mustbe tested at the end of the simulation.

completely described in the TCDG_BENCH.V orTCDG_BENCH.VHD file. This file must be compiledAFTER the other file since it has the highest level ofhierarchy.The figure 2 shows this hierarchy.

Compilation and Simulation script

The following commands are for Mentor ModelSim Tools

Library creation:vlib work

Compilation:vcom -work work -explicit tcdg.vhd

Compilation of the test bench:vcom -work work -explicit tcdg_bench.vhd

Simulation:vsim -lib work tcdg_bench

subs_8

tcdgcomponent

subkeycomponent

subs_7subs_6

subs_5

subs_4

subs_3

subs_2subs_1

component

tcdg_benchcomponent

tcdg.v, tcdg.vhd files

tcdg_bench.v,tcdg_bench.vhd files

Figure 2. HDL files and design hierachy

Page 7: tcdg

TCDG 7 / 9

Validation

The TCDG module is validated using test vectors. Thesevectors are composed of input parameters and anexpected result. This expected result is automaticallycompared with the result of the TCDG operation.

The data input and expected results for these testbenchesare taken from the following sources:

− The ANSI X3.106 specification− The ANSI X9.52 specification− Some vectors have been calculated using

shareware using the DES algorithm.− Some vectors have been calculated with the C++

description of the DES function.

In addition, the different permutation tables and the S-Boxare formally compared with the one in the ANSIspecification.

Page 8: tcdg

TCDG 8 / 9

SYNTHESIS INFORMATION

Architecture

The DES has nine sub-blocks: "subkey" and "subs_1" to"subs_8". All the sub-blocks are completely combinatorial.The DES component and all its sub-blocks are grouped inthe same file. The synthesis can be made directly on thetop module by loading the TCDG.V or TCDG.VHD file. Thesubkey module is solely composed of multiplexers. Thusflattening this component will not modify drastically theresult in term of area or speed.The subs (S-Box permutation) are mainly look-up tables.Due to the specificity of the DES algorithm (pseudo-random permutations), the S-Box cannot be very welloptimized.

The internal architecture of the DES is mainly composed ofmultiplexers, XOR gated and the substitution boxes. Thecontrol logic is very simple .

The easiest way to synthesize this component is to definea clock, set the correct input and output constraintsregarding your design’s constraints and to optimize theblock (see "synthesis script" below)

The DES specification uses only a 56-bit key, but for mostapplications, a 64-bit key is provided. The 8 unused bitsare often treated as parity control bit.In this HDL description, the key input is 64-bit widetherefrom 8 inputs are unused. These unused inputs willbe notified by the synthesizer.

Synthesis

The following commands provide you an example ofconstraints to synthesize the TCDG module with yourSynthesizer.

synthesis script (for Synplicity Tools):

define_clock clk -freq 30.0

define_input_delay {k[63:0]} -1000define_input_delay {d[63:0]} 10define_input_delay start 7define_input_delay crypt 5define_input_delay nreset -1000

define_output_delay done 15define_output_delay {q[63:0]} 5

synthesis result on FPGA Actel A54SX32-1:

Estimated frequency: 31 MHzIO number: 187Sequential cells: 163*Combinatorial cells: 886

*The number of sequential cells given by the synthesizer isbigger here than the number of necessary flip-flopsbecause of fan-out constraints. (Results given bySynplicity Tools).

subs_8

tcdgcomponent

subkeycomponent

subs_7

subs_6

subs_5

subs_4

subs_3

subs_2subs_1

component

tcdg_benchcomponent

Figure 3. Design hierachy and synthesis

MUST NOT BESYNTHETISED

MUST BESYNTHETISED

Page 9: tcdg

TCDG 9 / 9

ORDERING INFORMATION

Worldwide Sales Offices

Tetraedre SarlChenes 192072 Saint-BlaiseSwitzerland

e-mail: [email protected]: www.tetraedre.comphone: +41 79 402 25 39fax: +41 86 079 402 25 39

Device Number

TCDG VHDL VHDL description of the DES, including functional test bench.

TCDG Verilog Verilog description of the DES, including functional test bench.

Copyright 1999 TETRAEDRE S.A.R.LAll rights are reserved. Reproduction whole or in part is prohibited without the prior written consent of the copyright owner. Theinformation presented in this document does not form part of any quotation or contract, is believed to be accurate and reliableand may be changed without notice. No liability will be accepted by the publisher for any consequence of its use.Printed in Switzerland