The Data Encryption Standard (DES) or Data Encryption Algorithm (DEA), ANSI standard X3.92-1981, is a well known symmetric block cipher. In the basic mode of operation, electronic code book mode, it encrypts blocks of 64 bits of plain text into 64 bits of cipher text using a 56-bit key. Its internal structure, which is highly non-linear and contains 18 permutations and 16 expansions of bit blocks, does not encourage software implementation but is much better suited for hardware implementation. However, by a series of equivalence transformations, all expansions and but two of the permutations can be eliminated. Furthermore, then the 16-bit or 32-bit architecture of modern microprocessors can be fully exploited. Both a 16-bit version of the transformed algorithm (for 8086 and 80286) and a 32-bit version (for 80386 and 80486) have been implemented in assembly language. Depending on the actual processor employed, the implementation chooses 16-bit code or 32-bit code at run time. A sustained throughput of over 75,000 bytes second on a 33-MHz 80386 with cache and of over 8800 bytes per second on a 10-MHz 80286 with one wait state is obtained. The program needs only 13·3 kbytes for code and data. Hence this high-performance software DES implementation is also well suited for embedded applications, as for instance for encryption of serial communication lines or ISDN voice and data channels.