Browse Prior Art Database

Software Data Encryption Standard

IP.com Disclosure Number: IPCOM000039366D
Original Publication Date: 1987-May-01
Included in the Prior Art Database: 2005-Feb-01
Document File: 2 page(s) / 14K

Publishing Venue

IBM

Related People

Taber, JK: AUTHOR

Abstract

A method is described for implementing the Data Encryption Standard (DES) on the Intel 8088, 8086 or 80286 microprocessors. The same technique could be used on any processor. Data encryption techniques must be implemented to run efficiently and compile to small programs requiring minimum amounts of storage to avoid impacting a functioning system. Many software implementations exist for the DES; however, the method described performs faster and requires less storage. The DES is defined in Federal Information Processing Standard (FIPS) Publication 46 and requires the permutation of 32 bits sixteen times per eight-byte block encrypted. This disclosure does away with the actual work of permutation during encryption by using pre-computed tables.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 1 of 2

Software Data Encryption Standard

A method is described for implementing the Data Encryption Standard (DES) on the Intel 8088, 8086 or 80286 microprocessors. The same technique could be used on any processor. Data encryption techniques must be implemented to run efficiently and compile to small programs requiring minimum amounts of storage to avoid impacting a functioning system. Many software implementations exist for the DES; however, the method described performs faster and requires less storage. The DES is defined in Federal Information Processing Standard (FIPS) Publication 46 and requires the permutation of 32 bits sixteen times per eight- byte block encrypted. This disclosure does away with the actual work of permutation during encryption by using pre-computed tables. As described in FIPS Publication 46, the DES employs unique selection functions S1, S2, ... , S8. Each function defines 64 four-bit values, one of which is selected according to a key and a message from all eight boxes for a total of 32 selected bits. The selected bits are then permuted by a permutation function, P. Since P is invariant, the result is that all 64 values in one selective function, S1, for example, define four bits in a 32-bit temporary result. To continue with S1, as an example, any four-bit value in S1 defines bits 9, 17, 23, and 31 as a result of applying P. For example, take the first value (14) of S1, which is 1110 in binary. These bits are labeled: 1 1 1 0 a b c d A transformed value out of 32 bits is constructed, initially all zeros, then bit (a) is placed in the 9th position, bit (b) in the 17th position, bit (c) in the 23rd position and bit (d) in the 31st. The same transformation is performed for all 64 values of the first selection function. This transformation is continued for each selection function, putting the bits in their appropriate position for each selection function, as dictated by P. Note that the appropriate positions are the inverse of P. The inverse of P is calculated, and inverse is arranged in groups of four. Each group of four corresponds to a selection function, the first group to S1, the second to S2, and so on. Each group specifies where all bits of each original value should be moved to. Therefore, a table is constructed consisting of 32 bits for each entry representing the permuted result of each S-box value for a total of 512 entries, requiring 2048 bytes of storage. This table replaces the S-boxes. By replacing the selection functions with these transformed tables, the permutation function P is eliminated in the code for a great saving in execution cycles. The DES defines two block...