US7103180B1 - Method of implementing the data encryption standard with reduced computation - Google Patents

Method of implementing the data encryption standard with reduced computation Download PDF

Info

Publication number
US7103180B1
US7103180B1 US10/001,682 US168201A US7103180B1 US 7103180 B1 US7103180 B1 US 7103180B1 US 168201 A US168201 A US 168201A US 7103180 B1 US7103180 B1 US 7103180B1
Authority
US
United States
Prior art keywords
des
round
function
box
round key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related, expires
Application number
US10/001,682
Inventor
John Patrick McGregor, Jr.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Priority to US10/001,682 priority Critical patent/US7103180B1/en
Assigned to HEWLETT-PACKARD COMPANY reassignment HEWLETT-PACKARD COMPANY ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MCGREGOR JR., JOHN PATRICK
Assigned to HEWLETT-PACKARD DEVELOPMENT COMPANY L.P. reassignment HEWLETT-PACKARD DEVELOPMENT COMPANY L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: HEWLETT-PACKARD COMPANY
Application granted granted Critical
Publication of US7103180B1 publication Critical patent/US7103180B1/en
Adjusted expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Definitions

  • the present invention relates generally to encryption and decryption.
  • the invention relates more specifically to a unique software implementation of the round function of the Data Encryption Standard to reduce required computation.
  • An encryption algorithm provides data confidentiality by disguising data such that an outsider that obtains the disguised data cannot recover the original data with a reasonable amount of time and effort.
  • the Data Encryption Standard (DES), described in U.S. Pat. No. 3,962,539, is a highly popular symmetric-key encryption algorithm.
  • the DES encryption algorithm accepts a 64-bit plaintext block P and a 56-bit key K as inputs, and the algorithm outputs a 64-bit ciphertext block C.
  • the plaintext block P is the data to be disguised
  • the ciphertext block C is the disguised result.
  • FIGS. 1 and 2 illustrate DES decryption and encryption, respectively. Encryption is denoted as DES and decryption is denoted as DES ⁇ 1 .
  • DES is a symmetric-key cipher because the decryption key is equivalent to the encryption key. If DES is secure, an outsider cannot easily recover P given C without knowledge of the secret key K. In addition, an outsider cannot easily discover the secret key K given a plaintext block P and the corresponding ciphertext block C encrypted under K.
  • DES suffers from insufficient key length. Given a plaintext P and the corresponding ciphertext C for some key K, an outsider can recover the secret key K by observing the results of the DES encryption of P using all possible values for K. This brute-force attack can be completed in a short period of time using a reasonable amount of computer hardware. To prevent such an attack, some communications and storage security systems employ Triple DES (3DES). Triple DES provides a larger effective key length than DES by sequentially encrypting a plaintext block with DES three times using three different keys.
  • DES encrypts a plaintext block in three steps, as illustrated in FIG. 3 .
  • DES performs a fixed initial permutation on the bits of the 64-bit plaintext block. The result of this permutation is then subjected to 16 identical rounds of permutation and substitution operations.
  • the jth DES round where 1 ⁇ j ⁇ 16, employs a 48-bit round key RK(j) that is deterministically generated from K.
  • DES performs a fixed final permutation on the output of the sixteenth round. The result of this final permutation is the 64-bit ciphertext block.
  • Decryption proceeds in the same manner, but the 16 round keys generated from K are used in reverse order. More specifically, the jth round in DES decryption uses the round key RK(17 ⁇ j).
  • FIG. 4 depicts the jth DES encryption round.
  • the values L(j) and R(j) are the leftmost 32 bits and the rightmost 32 bits of the 64-bit input to the jth round, respectively.
  • K is the 56-bit DES secret key.
  • the encryption round proceeds as follows.
  • R(j) is subjected to the Expansion Permutation, a fixed mapping of the 32 bits of R(j) to a 48-bit output. Since the number of bits in the output is greater than that of the input, some input bits are mapped to multiple output bits.
  • the 48-bit result of the Expansion Permutation is then XORed with the output of the round key generation function F.
  • F is a nonlinear function that accepts the 56-bit DES secret key K and the round number j as inputs; F outputs a 48-bit result, RK(j), which is the round key.
  • the result of the XOR operation between the round key and the output of the Expansion Permutation is then divided into eight 6-bit blocks. These 6-bit blocks are applied as inputs to the eight DES S-boxes. Each S-box accepts a 6-bit input and outputs a 4-bit result, and the S-boxes represent fixed nonlinear functions of the input bits. The 32 output bits of the S-boxes are then subjected to the DES P-box Permutation.
  • the P-box Permutation is a fixed bijective permutation that maps 32 input bits to 32 output bits. Lastly, the output of the P-box is XORed with L(j), and this 32-bit result is R(j+1) in the next round. The value of L(j+1) in the next round is simply the value of R(j) from the current round.
  • the round key computation function F is difficult to compute in software, for F involves a bit-level permutation. In practice, however, the function F is rarely executed.
  • a DES secret key K will often be used to encrypt/decrypt hundreds, thousands, or even millions of bytes of data.
  • the 16 round keys corresponding to a secret key K can be computed once prior to the encryption/decryption of all the 64-bit blocks of the data rather than once for each 64-bit block. Hence, the computation cost of calculating F is usually negligible; the computation is amortized over the encryption/decryption of many data blocks.
  • the S-boxes are usually implemented as lookup tables in software. We refer to the input to an S-box lookup table as the index, and we refer to the possible outputs of the S-box as the table entries.
  • software implementations of DES often combine the P-box Permutation with the S-box lookup tables to form SP-box lookup tables.
  • Each S-box outputs a 4-bit value, but the SP-boxes output a 32-bit or larger value in which the 4-bit S-box result is already permuted per the P-box Permutation.
  • no explicit run-time processing is needed to complete the P-box Permutation: The permutation is built into the eight SP-box lookup tables.
  • the 28 output bits that do not represent bits of the original 4-bit S-box output are set to zeroes.
  • the results of the eight SP-box outputs can be combined by performing seven bitwise logical XOR or bitwise logical OR operations following the eight SP-box table lookups.
  • Table 1 illustrates the DES Expansion Permutation.
  • the Expansion Permutation is easier to compute than the P-box Permutation in software, for most of the permutation involves 6-bit blocks rather than individual bits.
  • Each entry represents a bit of the 48-bit permutation output; the entries are arranged in increasing order from left to right and then from top to bottom. The number in each entry indicates the location of the bit in the 32-bit input that is mapped to the output bit corresponding to that entry. For example, bit 2 of the 32-bit input R(j) is mapped to bit 3 of the Expansion Permutation output, as the numeral 2 appears in the third entry. Similarly, bit 12 of R(j) is mapped to bits 17 and 19 of the output.
  • the Expansion Permutation requires very little computation.
  • the inputs to six of the eight S-boxes are simply the XOR results of six contiguous bits of R(j) with six bits of the round key R(j).
  • Preparing the inputs to the first and the eighth S-boxes requires additional special computation due to discontinuities in the Expansion Permutation.
  • the first six bits of the output of the Expansion Permutation which are involved in the generation of the input to the first SP-box, include bits from both the right and the left ends of the 32-bit value R(j). These discontinuities are easy to handle.
  • only one assembly instruction—if any at all—per DES round is required to complete this special computation.
  • the SP-box lookup tables can be combined in pairs to form four large lookup tables.
  • the number of table lookups per round is reduced from eight to four, and the number of bitwise XOR (or bitwise OR) operations required to combine the results is reduced from seven to three.
  • Each of these large SP-box tables is indexed with a 12-bit input (from the combination of two 6-bit inputs) and contains 4096 entries.
  • a table entry in a large SP-box corresponding to a 12-bit index W which is the concatenation of two 6-bit indexes U and V, is the result of bitwise XORing the entry corresponding to the index U in the first small table with the entry corresponding to the index V in the second small table. If the size of a table entry is 32 bits, the total size of all four tables is 64 kilobytes. Large SP-boxes do not reduce the number of instructions required to complete the Expansion Permutation and the round key XOR operations, however.
  • the present invention improves the throughput of software implementations of DES (that employ large SP-boxes) through mathematical transformations performed on the DES round function and on the DES round key computation function F. More specifically, this invention enables an implementation of the DES round that requires fewer assembly instructions to complete than existing implementations. The invention furnishes this performance improvement by shifting computation associated with the Expansion Permutation in the DES round to the infrequently executed round key computation function F.
  • the SP-box lookup tables are combined in pairs to produce four large SP-box lookup tables, and these four lookup tables are indexed as illustrated in FIGS. 5 through 8 .
  • Y represents the 48-bit output of the Expansion Permutation.
  • the variable y represents the ith bit of Y, where y 1 is the least significant bit and y 48 is the most significant bit.
  • k i represents the ith bit of the round key RK(j), where k 1 is the least significant bit and k 48 is the most significant bit.
  • the symbol ⁇ represents the bitwise logical XOR operator. For example, the leftmost bit of the index to the first large SP-box would be the XOR of the two bits y 1 and k 1 .
  • A is the result of bitwise logically XORing certain bits of the round key with certain bits of Y as follows:
  • the 32-bit input to the Expansion Permutation is referred to herein as X.
  • the variable x i represents the ith bit of X, where x 1 is the least significant bit and x 32 is the most significant bit. Since we are considering the input to the second large SP-box, the bits of X correspond to the second row of the Table 1. It is seen that the Expansion Permutation maps a pair of bits, x 12 and x 13 , to two locations in Y.
  • DES round function requires at least 7 simple RISC assembly instructions to compute A, the 12-bit input for the second large SP-box.
  • Pseudo assembly for the computation of A is listed below:
  • the register X represents the 32-bit variable X
  • the register Y is used to store bits 13 through 24 of the variable Y
  • the register RK is used to store bits 13 through 24 of the round key RK(j).
  • the registers U and V store temporary variables.
  • the appropriate 12-bit chunk of the round key is loaded from memory address M. More specifically, bits 13 through 24 of RK(j) are loaded into the 12 least significant bits of RK. Depending on the instruction set architecture, this round key loading operation may require more than one instruction.
  • the next 5 instructions shift and isolate the appropriate 12 bits of X to generate bits 13 through 24 of Y.
  • the register X is logically right shifted by seven and five bits, and the results are stored in registers U and V, respectively.
  • the processor performs bitwise AND operations on U and V to isolate bits 8 through 13 of X (in register U) and bits 12 through 17 of X (in register V).
  • the 12 least significant bits of register Y contain bits 13 through 24 of Y.
  • register Y is bitwise logically XORed with register RK, and A, the input to the second large SP-box, is stored in the 12 least significant bits of the register A.
  • the five inner instructions can be replaced with 3 EXTRACT and DEPOSIT instructions.
  • the present invention enables a reduction in the number of instructions required to compute the inputs for the four large SP-boxes. More specifically, this invention can be used to reduce the length of the previously described assembly code sequence from seven instructions to four instructions. If EXTRACT and DEPOSIT are used, the number of instructions can be reduced from five to three with this invention.
  • FIG. 1 is a simplified prior art illustration of DES encryption
  • FIG. 2 is a simplified prior art illustration of DES decryption
  • FIG. 3 is a prior art flow diagram of the steps for DES encryption of a plaintext block
  • FIG. 4 is a prior art flow diagram of the steps for a single DES encryption round
  • FIGS. 5 through 8 are representations of index computations for the four large SP-boxes used in the invention.
  • FIGS. 9 through 12 are representations of index computation for the RSP-boxes used in the invention.
  • the leftmost (i.e., least significant) 10 bits of B consist of all 12 bits of A except
  • B contains as least as much information as A.
  • This static rearrangement of SP-box entries occurs at or before software compile time, and therefore the computation required to reorder the entries does not affect DES encryption or decryption performance.
  • the present invention enables a software implementation of the DES round that employs fewer assembly instructions to compute B and the other three inputs to the rearranged large SP-boxes.
  • the new F would output modified round keys that could be directly XORed with contiguous bits of X to properly index the rearranged SP-boxes. Since the function F is computed infrequently relative to the execution of the DES round, the computation cost of performing the additional XOR and shift operations is negligible.
  • This invention includes all possible methods of generating indexes to rearranged SP-boxes (that each contain 4096 or more entries) in which a block of contiguous bits from X is directly XORed with a modified round key.
  • the method used to rearrange the entries of the large SP-boxes depends on the method used to generate the new inputs to the SP-boxes, however.
  • B the input to the second large rearranged SP-box could alternatively be calculated as follows:
  • two blocks of contiguous bits of X may be required to generate the input to the first large rearranged SP-box, the input to the fourth large rearranged SP-box, or the inputs to both the first and the fourth large rearranged SP-boxes.
  • the Expansion Permutation maps the 1st and the 32nd bits of X to the inputs to the first and the fourth large (original and rearranged) SP-boxes. Since these bits may not be contiguous in a register that stores X or a function of X, two blocks of contiguous bits of X may need to be employed to generate the said SP-box inputs.
  • This invention includes all methods of generating the input to a large rearranged SP-box using two blocks of contiguous bits of X if one block includes the first bit of the rightmost 32 bits of the input to the DES round and the other block includes the 32nd bit of the rightmost 32 bits of the input to the DES round.
  • each of the 4096 possible 12-bit indexes corresponds to a different 32-bit entry.
  • the 12-bit index be adcdefghijkl, where each letter represents a single bit:
  • the leftmost letter, a represents the least significant bit of the index, and the rightmost letter, 1, represents the most significant bit.
  • a 32-bit entry in an original large SP-box with corresponding index abcdefghijkl will be mapped to the entry in a rearranged RSP-box corresponding to the following index:
  • the rearranged large SP-boxes are hereinafter referred to as RSP-boxes.
  • No entries are exchanged between different SP-boxes. All the entries from the first large SP-box will be mapped to locations in the first RSP-box, all the entries from the second large SP-box will be mapped to locations in the second RSP-box, etc.
  • no modifications are made to the contents of the table entries; the rearrangement treats entries as atomic elements and simply involves permuting the entries within the SP-boxes as described above.
  • FIGS. 9 through 12 illustrate which bits of X need to be XORed with bits of the round key to generate the four indexes. While the invention has been described primarily in terms of XOR operations, this invention includes all possible methods of modifying or adding operations to the DES round key computation function that enable the novel SP-box indexing scheme described herein.
  • the first instruction loads the modified round key from memory address M and stores the result in register RK.
  • the next two instructions place bits 8 through 17 of X in the least significant bits of register U. If instructions such as EXTRACT are available, these two instructions can be replaced with a single instruction.
  • the modified round key is XORed with bits 8 through 17 of X to generate the index B.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

An efficient software implementation of the round function of the Data Encryption Standard (DES) involves mathematical transformations performed on the DES round function and the DES round key computation function that reduce the computation required to complete a DES round on general-purpose, embedded, and cryptographic processors. These transformations shift computation associated with the Expansion Permutation from the DES round function to the DES round key computation function. As a result, fewer instructions are required to compute the inputs of the DES S-boxes in the round function.

Description

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to encryption and decryption. The invention relates more specifically to a unique software implementation of the round function of the Data Encryption Standard to reduce required computation.
2. Description of the Related Art
An encryption algorithm provides data confidentiality by disguising data such that an outsider that obtains the disguised data cannot recover the original data with a reasonable amount of time and effort. The Data Encryption Standard (DES), described in U.S. Pat. No. 3,962,539, is a highly popular symmetric-key encryption algorithm. The DES encryption algorithm accepts a 64-bit plaintext block P and a 56-bit key K as inputs, and the algorithm outputs a 64-bit ciphertext block C. The plaintext block P is the data to be disguised, and the ciphertext block C is the disguised result. Similarly, the DES decryption algorithm accepts a 64-bit ciphertext block C and the 56-bit secret key K as inputs and the decryption algorithm outputs the 64-bit plaintext block P. FIGS. 1 and 2 illustrate DES decryption and encryption, respectively. Encryption is denoted as DES and decryption is denoted as DES−1.
DES is a symmetric-key cipher because the decryption key is equivalent to the encryption key. If DES is secure, an outsider cannot easily recover P given C without knowledge of the secret key K. In addition, an outsider cannot easily discover the secret key K given a plaintext block P and the corresponding ciphertext block C encrypted under K.
In the context of available computing power, DES suffers from insufficient key length. Given a plaintext P and the corresponding ciphertext C for some key K, an outsider can recover the secret key K by observing the results of the DES encryption of P using all possible values for K. This brute-force attack can be completed in a short period of time using a reasonable amount of computer hardware. To prevent such an attack, some communications and storage security systems employ Triple DES (3DES). Triple DES provides a larger effective key length than DES by sequentially encrypting a plaintext block with DES three times using three different keys.
DES encrypts a plaintext block in three steps, as illustrated in FIG. 3. First, DES performs a fixed initial permutation on the bits of the 64-bit plaintext block. The result of this permutation is then subjected to 16 identical rounds of permutation and substitution operations. The jth DES round, where 1≦j≦16, employs a 48-bit round key RK(j) that is deterministically generated from K. Lastly, DES performs a fixed final permutation on the output of the sixteenth round. The result of this final permutation is the 64-bit ciphertext block. Decryption proceeds in the same manner, but the 16 round keys generated from K are used in reverse order. More specifically, the jth round in DES decryption uses the round key RK(17−j).
FIG. 4 depicts the jth DES encryption round. The values L(j) and R(j) are the leftmost 32 bits and the rightmost 32 bits of the 64-bit input to the jth round, respectively. K is the 56-bit DES secret key. The encryption round proceeds as follows. R(j) is subjected to the Expansion Permutation, a fixed mapping of the 32 bits of R(j) to a 48-bit output. Since the number of bits in the output is greater than that of the input, some input bits are mapped to multiple output bits. The 48-bit result of the Expansion Permutation is then XORed with the output of the round key generation function F. F is a nonlinear function that accepts the 56-bit DES secret key K and the round number j as inputs; F outputs a 48-bit result, RK(j), which is the round key. The result of the XOR operation between the round key and the output of the Expansion Permutation is then divided into eight 6-bit blocks. These 6-bit blocks are applied as inputs to the eight DES S-boxes. Each S-box accepts a 6-bit input and outputs a 4-bit result, and the S-boxes represent fixed nonlinear functions of the input bits. The 32 output bits of the S-boxes are then subjected to the DES P-box Permutation. The P-box Permutation is a fixed bijective permutation that maps 32 input bits to 32 output bits. Lastly, the output of the P-box is XORed with L(j), and this 32-bit result is R(j+1) in the next round. The value of L(j+1) in the next round is simply the value of R(j) from the current round.
Implementing permutations in hardware is trivial: Wires representing input bits can simply be connected to wires representing the output bits without using any gates or other logic. In software, however, performing bit-level permutation is a difficult task. Instruction set architectures for existing general-purpose microprocessors do not include instructions that can be used to efficiently complete such permutations. Performing a bit-level permutation of an n-bit register can require as many as O(n) instructions on general-purpose RISC or CISC microprocessors.
The round key computation function F is difficult to compute in software, for F involves a bit-level permutation. In practice, however, the function F is rarely executed. A DES secret key K will often be used to encrypt/decrypt hundreds, thousands, or even millions of bytes of data. The 16 round keys corresponding to a secret key K can be computed once prior to the encryption/decryption of all the 64-bit blocks of the data rather than once for each 64-bit block. Hence, the computation cost of calculating F is usually negligible; the computation is amortized over the encryption/decryption of many data blocks.
The S-boxes are usually implemented as lookup tables in software. We refer to the input to an S-box lookup table as the index, and we refer to the possible outputs of the S-box as the table entries. To eliminate processing associated with the P-box Permutation, software implementations of DES often combine the P-box Permutation with the S-box lookup tables to form SP-box lookup tables. Each S-box outputs a 4-bit value, but the SP-boxes output a 32-bit or larger value in which the 4-bit S-box result is already permuted per the P-box Permutation. Hence, no explicit run-time processing is needed to complete the P-box Permutation: The permutation is built into the eight SP-box lookup tables. If the SP-box outputs are 32 bits in size, the 28 output bits that do not represent bits of the original 4-bit S-box output are set to zeroes. The results of the eight SP-box outputs can be combined by performing seven bitwise logical XOR or bitwise logical OR operations following the eight SP-box table lookups.
TABLE 1
DES EXPANSION PERMUTATION
32 1 2 3 4 5 4 5 6 7 8 9
8 9 10 11 12 13 12 13 14 15 16 17
16 17 18 19 20 21 20 21 22 23 24 25
24 25 26 27 28 29 28 29 30 31 32 1
Table 1 illustrates the DES Expansion Permutation. The Expansion Permutation is easier to compute than the P-box Permutation in software, for most of the permutation involves 6-bit blocks rather than individual bits. Each entry represents a bit of the 48-bit permutation output; the entries are arranged in increasing order from left to right and then from top to bottom. The number in each entry indicates the location of the bit in the 32-bit input that is mapped to the output bit corresponding to that entry. For example, bit 2 of the 32-bit input R(j) is mapped to bit 3 of the Expansion Permutation output, as the numeral 2 appears in the third entry. Similarly, bit 12 of R(j) is mapped to bits 17 and 19 of the output. In straightforward software implementations of DES, the Expansion Permutation requires very little computation. The inputs to six of the eight S-boxes are simply the XOR results of six contiguous bits of R(j) with six bits of the round key R(j). Preparing the inputs to the first and the eighth S-boxes requires additional special computation due to discontinuities in the Expansion Permutation. For example, the first six bits of the output of the Expansion Permutation, which are involved in the generation of the input to the first SP-box, include bits from both the right and the left ends of the 32-bit value R(j). These discontinuities are easy to handle. On many RISC processors, only one assembly instruction—if any at all—per DES round is required to complete this special computation.
To improve performance of software implementations of DES for processors with large memory caches, the SP-box lookup tables can be combined in pairs to form four large lookup tables. By using four SP-box tables rather than eight, the number of table lookups per round is reduced from eight to four, and the number of bitwise XOR (or bitwise OR) operations required to combine the results is reduced from seven to three. Each of these large SP-box tables is indexed with a 12-bit input (from the combination of two 6-bit inputs) and contains 4096 entries. A table entry in a large SP-box corresponding to a 12-bit index W, which is the concatenation of two 6-bit indexes U and V, is the result of bitwise XORing the entry corresponding to the index U in the first small table with the entry corresponding to the index V in the second small table. If the size of a table entry is 32 bits, the total size of all four tables is 64 kilobytes. Large SP-boxes do not reduce the number of instructions required to complete the Expansion Permutation and the round key XOR operations, however.
SUMMARY OF THE INVENTION
The present invention improves the throughput of software implementations of DES (that employ large SP-boxes) through mathematical transformations performed on the DES round function and on the DES round key computation function F. More specifically, this invention enables an implementation of the DES round that requires fewer assembly instructions to complete than existing implementations. The invention furnishes this performance improvement by shifting computation associated with the Expansion Permutation in the DES round to the infrequently executed round key computation function F.
The SP-box lookup tables are combined in pairs to produce four large SP-box lookup tables, and these four lookup tables are indexed as illustrated in FIGS. 5 through 8. We refer to the 48-bit output of the Expansion Permutation as Y. The variable y, represents the ith bit of Y, where y1 is the least significant bit and y48 is the most significant bit. Similarly, ki represents the ith bit of the round key RK(j), where k1 is the least significant bit and k48 is the most significant bit. The symbol ⊕ represents the bitwise logical XOR operator. For example, the leftmost bit of the index to the first large SP-box would be the XOR of the two bits y1 and k1.
Let us consider the 12-bit input the second large SP-box. We call this 12-bit input A. The DES round function essentially requires the same number and types of operations to produce each of SP-box inputs; the following transformations can be applied to all four of the large SP-boxes and their respective inputs. As shown in FIG. 6, A is the result of bitwise logically XORing certain bits of the round key with certain bits of Y as follows:
y13 y14 y15 y16 y17 y18 y19 y20 y21 y22 y23 y24
k13 k14 k15 k16 k17 k18 k19 k20 k21 k22 k23 k24

Since the Expansion Permutation is fixed, we can rewrite A as follows:
x8 x9 x10 x11 x12 x13 x12 x13 x14 x15 x16 x17
k13 k14 k15 k16 k17 k18 k19 k20 k21 k22 k23 k24
The 32-bit input to the Expansion Permutation is referred to herein as X. The variable xi represents the ith bit of X, where x1 is the least significant bit and x32 is the most significant bit. Since we are considering the input to the second large SP-box, the bits of X correspond to the second row of the Table 1. It is seen that the Expansion Permutation maps a pair of bits, x12 and x13, to two locations in Y.
Described hereinafter are software implementations of DES using general-purpose RISC processor assembly instructions. A straightforward implementation of DES round function requires at least 7 simple RISC assembly instructions to compute A, the 12-bit input for the second large SP-box. Pseudo assembly for the computation of A is listed below:
LOAD M −> RK
SHIFTR X, 0x7 −> U
SHIFTR X, 0x5 −> V
AND U, 0x03F −> U
AND V, 0xFC0 −> V
XOR U, V −> Y
XOR Y, RK −> A
The register X represents the 32-bit variable X, the register Y is used to store bits 13 through 24 of the variable Y, and the register RK is used to store bits 13 through 24 of the round key RK(j). The registers U and V store temporary variables. In the first instruction, the appropriate 12-bit chunk of the round key is loaded from memory address M. More specifically, bits 13 through 24 of RK(j) are loaded into the 12 least significant bits of RK. Depending on the instruction set architecture, this round key loading operation may require more than one instruction. The next 5 instructions shift and isolate the appropriate 12 bits of X to generate bits 13 through 24 of Y. In the two SHIFTR instructions, the register X is logically right shifted by seven and five bits, and the results are stored in registers U and V, respectively. During the execution of the two AND instructions, the processor performs bitwise AND operations on U and V to isolate bits 8 through 13 of X (in register U) and bits 12 through 17 of X (in register V). After the completion of the first XOR instruction, the 12 least significant bits of register Y contain bits 13 through 24 of Y. In the last XOR instruction, register Y is bitwise logically XORed with register RK, and A, the input to the second large SP-box, is stored in the 12 least significant bits of the register A.
If more sophisticated assembly instructions are available, it is possible to achieve the result of the above assembly sequence using fewer instructions. For example, the five inner instructions can be replaced with 3 EXTRACT and DEPOSIT instructions.
The present invention enables a reduction in the number of instructions required to compute the inputs for the four large SP-boxes. More specifically, this invention can be used to reduce the length of the previously described assembly code sequence from seven instructions to four instructions. If EXTRACT and DEPOSIT are used, the number of instructions can be reduced from five to three with this invention.
BRIEF DESCRIPTION OF THE DRAWING
The above and other objects and advantages of the present invention will become apparent from the following description when read in conjunction with the accompanying drawing wherein:
FIG. 1 is a simplified prior art illustration of DES encryption;
FIG. 2 is a simplified prior art illustration of DES decryption;
FIG. 3 is a prior art flow diagram of the steps for DES encryption of a plaintext block;
FIG. 4 is a prior art flow diagram of the steps for a single DES encryption round;
FIGS. 5 through 8 are representations of index computations for the four large SP-boxes used in the invention; and
FIGS. 9 through 12 are representations of index computation for the RSP-boxes used in the invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
We begin by describing a new indexing scheme for the large SP-boxes. We refer to the new input into the second large SP-box as B. The variable bi represents the ith bit of B where b1 is the least significant bit and b12 is the most significant bit. B is calculated as follows:
x8 x9 x10 x11 x12 x13 x14 x15 x16 x17 0 0
k13 k14 k15 k16 k17 k18 k21 k22 k23 k24 (k19⊕k17) (k20⊕k18)
The leftmost (i.e., least significant) 10 bits of B consist of all 12 bits of A except
(x13⊕k20) and (x12⊕k19). We can infer the values of (x13⊕k20) and (x12⊕k19) by logically XORing bits of B together. By the properties of the XOR operator:
    • (b12⊕b6)=(k20⊕k18)⊕(x13⊕k18)=(x13⊕k20)
    • (b11⊕b5)=(k19⊕k17)⊕(x12⊕k17)=(x12⊕k19)
From these expressions, it can be concluded that B contains as least as much information as A. We can therefore obtain the correct output from the second large SP-box using the input B (rather than A) if we rearrange the large SP-box entries. This static rearrangement of SP-box entries occurs at or before software compile time, and therefore the computation required to reorder the entries does not affect DES encryption or decryption performance.
To generate B, we require a single block of contiguous bits from X rather than two blocks of contiguous bits (as required to generate A). As a result, the present invention enables a software implementation of the DES round that employs fewer assembly instructions to compute B and the other three inputs to the rearranged large SP-boxes. We avoid the computation cost associated with generating the modified round keys required to compute the inputs to the rearranged SP-boxes by performing the necessary XOR and shift operations during the computation of F. The new F would output modified round keys that could be directly XORed with contiguous bits of X to properly index the rearranged SP-boxes. Since the function F is computed infrequently relative to the execution of the DES round, the computation cost of performing the additional XOR and shift operations is negligible.
This invention includes all possible methods of generating indexes to rearranged SP-boxes (that each contain 4096 or more entries) in which a block of contiguous bits from X is directly XORed with a modified round key. The method used to rearrange the entries of the large SP-boxes depends on the method used to generate the new inputs to the SP-boxes, however. For example, B, the input to the second large rearranged SP-box could alternatively be calculated as follows:
0 0 x8 x9 x10 x11 x12 x13 x14 x15 x16 x17
(k19 ⊕k17) (k20 ⊕k18) k13 k14 k15 k16 k17 k18 k21 k22 k23 k24
The same number of assembly instructions would be required to compute the original and alternative versions of B, but the SP-boxes would have to be rearranged differently in the two cases to guarantee the correct output of the DES round.
Depending on the processor that executes the software, two blocks of contiguous bits of X (rather than one block) may be required to generate the input to the first large rearranged SP-box, the input to the fourth large rearranged SP-box, or the inputs to both the first and the fourth large rearranged SP-boxes. The Expansion Permutation maps the 1st and the 32nd bits of X to the inputs to the first and the fourth large (original and rearranged) SP-boxes. Since these bits may not be contiguous in a register that stores X or a function of X, two blocks of contiguous bits of X may need to be employed to generate the said SP-box inputs. This invention includes all methods of generating the input to a large rearranged SP-box using two blocks of contiguous bits of X if one block includes the first bit of the rightmost 32 bits of the input to the DES round and the other block includes the 32nd bit of the rightmost 32 bits of the input to the DES round.
We now describe a sample implementation of the invention. The entries of four large SP-boxes are rearranged as follows. In each of the four SP-box lookup tables, each of the 4096 possible 12-bit indexes corresponds to a different 32-bit entry. Let the 12-bit index be adcdefghijkl, where each letter represents a single bit:
a b c d e f g h i j k l
The leftmost letter, a, represents the least significant bit of the index, and the rightmost letter, 1, represents the most significant bit. A 32-bit entry in an original large SP-box with corresponding index abcdefghijkl will be mapped to the entry in a rearranged RSP-box corresponding to the following index:
a b c d e f i j k l (g⊕e) (h⊕f)
The rearranged large SP-boxes are hereinafter referred to as RSP-boxes. No entries are exchanged between different SP-boxes. All the entries from the first large SP-box will be mapped to locations in the first RSP-box, all the entries from the second large SP-box will be mapped to locations in the second RSP-box, etc. In addition, no modifications are made to the contents of the table entries; the rearrangement treats entries as atomic elements and simply involves permuting the entries within the SP-boxes as described above.
In addition to making changes to the large SP-boxes, we also modify the round key computation function F. The following bits of the round key need to be logically XORed with bits of X in order to generate B and properly index the second RSP-box:
k13 k14 k15 k16 k17 k18 k21 k22 k23 k24 (k19⊕k17) (k20⊕k18)
As explained herein, using the present invention, we avoid the computation cost of preparing the modified round keys by performing the necessary operations when computing the round key computation function F. The appropriate block of the modified round key can then be directly loaded from memory and XORed with bits of X during the execution of the DES round.
We now describe how to generate the four indexes for all four RSP-boxes. FIGS. 9 through 12 illustrate which bits of X need to be XORed with bits of the round key to generate the four indexes. While the invention has been described primarily in terms of XOR operations, this invention includes all possible methods of modifying or adding operations to the DES round key computation function that enable the novel SP-box indexing scheme described herein.
Using the mathematical transformation of the present invention, software implementations of a DES round can employ contiguous blocks of bits from X when computing the indexes for the large SP-boxes. As a result, generating the input to an RSP-box requires only four conventional RISC assembly instructions rather than seven. Pseudo assembly for the computation of B, the index into the second RSP-box, is listed below:
LOAD M −> RK
SHIFTR X, 0x7 −> U
AND U, 0x3FF −> U
XOR U, RK −> B
The first instruction loads the modified round key from memory address M and stores the result in register RK. The next two instructions place bits 8 through 17 of X in the least significant bits of register U. If instructions such as EXTRACT are available, these two instructions can be replaced with a single instruction. Lastly, the modified round key is XORed with bits 8 through 17 of X to generate the index B.
Having thus disclosed a preferred embodiment of the invention, it is understood that modifications and variations may be readily carried out without deviating from the underlying inventive principles described herein, and that the invention is limited only by the appended claims and their equivalents.

Claims (19)

1. A method of reducing computation during each Data Encryption Standard (DES) encryption and decryption round, the method comprising the steps of:
a) generating at least one large SP-box lookup table;
b) computing an index for each SP-box lookup table;
c) adding operations to the DES round key computation function to obtain a modified round key computation function; and
d) computing the index for each SP-box by performing XOR operations between at least one block of contiguous bits of the input to the DES Expansion Permutation and said modified round key computation function.
2. A method of reducing the number of software instructions required to perform permutation and substitution operations using Data Encryption Standard (DES) encryption and decryption rounds, wherein each round has a 64-bit input, and 32 bits of that 64-bit input are applied as the input to the DES Expansion Permutation, the method comprising the steps of:
a) generating at least one large SP-box lookup table;
b) adding operations to the DES round key computation function to obtain a modified round key computation function;
c) computing a modified SP-box index by performing XOR operations between at least one block of contiguous bits of the 32-bit input to the DES Expansion Permutation and the result of the modified round key computation function of step b); and
d) executing each subsequent round of DES computation by repeating steps a) and c).
3. The method recited in claim 2, wherein steps a) through d) are carried out in a digital processor.
4. The method recited in claim 3, wherein said digital processor is taken from the group consisting of a general-purpose processor, an embedded processor and a cryptographic processor.
5. The method recited in claim 2, wherein step c) comprises the step of selecting two blocks of contiguous bits of the 32-bit input to DES Expansion Permutation.
6. The method recited in claim 5, wherein one of said two blocks includes the least significant bit of said 32-bit input and the other of said two blocks includes the most significant bit of said 32-bit input for each of said round.
7. The method recited in claim 2, wherein step c) is carried out by permuting the entries within each SP-box lookup table.
8. In a processor carrying out a Data Encryption Standard (DES) computation by iterative DES rounds, a method of reducing computation associated with the DES Expansion Permutation by reducing the number of instructions required to compute the inputs to DES SP-boxes, the method comprising the steps of:
a) mathematically transforming the DES round function in each said round;
b) mathematically transforming the DES round key computation function in each said round; and
c) modifying the inputs to said SP-boxes in accordance with the results of steps a) and b).
9. The method recited in claim 8, wherein steps a) and b) are carried out so that computation in the DES Expansion Permutation is shifted from the DES round function to the DES round key computation function.
10. An apparatus for reducing computation during each Data Encryption Standard (DES) encryption and decryption round, the apparatus comprising:
a) means for generating at least one large SP-box lookup table;
b) means for computing an index for each SP-box lookup table;
c) means for adding operations to the DES round key computation function to obtain a modified round key computation function; and
d) means for computing the index for each said SP-box by performing XOR operations between at least one block of contiguous bits of the input to the DES Expansion Permutation and said modified round key computation function.
11. An apparatus for reducing the number of software instructions required to perform permutation and substitution operations in the Data Encryption Standard (DES) encryption and decryption rounds, wherein each round has a 64-bit input and 32 bits of that 64-bit input are applied as the input to the DES Expansion Permutation, the apparatus comprising:
a) means for generating at least one large SP-box lookup table;
b) means for adding operations to the DES round key computation function to obtain a modified round key computation function; and
c) means for computing a modified SP-box index by performing XOR operations between at least one selected block of said 32-bit input to the DES Expansion Permutation and the result of the modified round key computation function.
12. The apparatus recited in claim 11, wherein said means for computing comprises a digital processor.
13. The apparatus recited in claim 12, wherein said digital processor is taken from the group consisting of a general-purpose processor, an embedded processor and a cryptographic processor.
14. The apparatus recited in claim 11, wherein said means for computing comprises means for selecting two blocks of said 32-bit input to the DES Expansion Permutation.
15. The apparatus recited in claim 14, wherein one of said two blocks includes the least significant bit of said 32-bit input and the other of said two blocks includes the most significant bit of said 32-bit input for each of said round.
16. The apparatus recited in claim 11, wherein said means for generating comprises means for permuting the entries within each said SP-box lookup table.
17. In a processor carrying out a Data Encryption Standard (DES) computation by iterative DES rounds, an apparatus for reducing computation associated with the DES Expansion Permutation by reducing the number of instructions required to compute the inputs to DES SP-boxes, the apparatus comprising:
a) means for mathematically transforming the DES round function in each said round;
b) means for mathematically transforming the DES round key computation function in each said round; and
c) means for modifying the inputs to said SP-boxes in accordance with the transformations of said round function and of said round key computation function.
18. The apparatus recited in claim 17, wherein means for modifying comprises means for shifting computation in the DES Expansion Permutation from the DES round function to the DES round key computation function.
19. A data processing system for carrying out Data Encryption Standard (DES) encryption and decryption rounds with reduced computation, the system comprising:
a) computer processing means for processing data;
b) storage means providing four large SP-box lookup tables;
c) means for computing indices for the respective SP-box lookup tables;
d) means for adding operations to the DES round key computation function to obtain a modified round key computation function; and
e) means for computing the index of each said SP-box by performing XOR operations between at least one block of contiguous bits of the input to the DES Expansion Permutation and said modified round key computation function.
US10/001,682 2001-10-25 2001-10-25 Method of implementing the data encryption standard with reduced computation Expired - Fee Related US7103180B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/001,682 US7103180B1 (en) 2001-10-25 2001-10-25 Method of implementing the data encryption standard with reduced computation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/001,682 US7103180B1 (en) 2001-10-25 2001-10-25 Method of implementing the data encryption standard with reduced computation

Publications (1)

Publication Number Publication Date
US7103180B1 true US7103180B1 (en) 2006-09-05

Family

ID=36939547

Family Applications (1)

Application Number Title Priority Date Filing Date
US10/001,682 Expired - Fee Related US7103180B1 (en) 2001-10-25 2001-10-25 Method of implementing the data encryption standard with reduced computation

Country Status (1)

Country Link
US (1) US7103180B1 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060153382A1 (en) * 2005-01-12 2006-07-13 Sony Computer Entertainment America Inc. Extremely fast data encryption, decryption and secure hash scheme
US20070098153A1 (en) * 2005-08-31 2007-05-03 Canon Kabushiki Kaisha Cryptographic processing apparatus
US20070253549A1 (en) * 2006-04-18 2007-11-01 Ufuk Celikkan Encryption apparatus and method for providing an encrypted file system
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US9356954B2 (en) 2014-01-20 2016-05-31 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US9479529B2 (en) 2014-07-22 2016-10-25 Shape Security, Inc. Polymorphic security policy action
US9858440B1 (en) * 2014-05-23 2018-01-02 Shape Security, Inc. Encoding of sensitive data
US20200159944A1 (en) * 2017-10-09 2020-05-21 Jason McNutt Methods and systems for encrypting data using object-based screens

Citations (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3962539A (en) 1975-02-24 1976-06-08 International Business Machines Corporation Product block cipher system for data security
US4262358A (en) * 1979-06-28 1981-04-14 Motorola, Inc. DES Parity check system
US4274085A (en) * 1979-06-28 1981-06-16 Motorola, Inc. Flexible mode DES system
US4275265A (en) * 1978-10-02 1981-06-23 Wisconsin Alumni Research Foundation Complete substitution permutation enciphering and deciphering circuit
US4543646A (en) * 1980-06-05 1985-09-24 Western Digital Corporation Chip topography for MOS Data Encryption Standard circuit
US4578530A (en) * 1981-06-26 1986-03-25 Visa U.S.A., Inc. End-to-end encryption system and method of operation
US4731843A (en) * 1985-12-30 1988-03-15 Paradyne Corporation Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
US5008935A (en) * 1989-06-30 1991-04-16 At&T Bell Laboratories Efficient method for encrypting superblocks of data
US5214703A (en) * 1990-05-18 1993-05-25 Ascom Tech Ag Device for the conversion of a digital block and use of same
US5317638A (en) * 1992-07-17 1994-05-31 International Business Machines Corporation Performance enhancement for ANSI X3.92 data encryption algorithm standard
US5432848A (en) * 1994-04-15 1995-07-11 International Business Machines Corporation DES encryption and decryption unit with error checking
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5513262A (en) * 1992-02-18 1996-04-30 Tulip Computers International B.V Device for enciphering and deciphering, by means of the DES algorithm, data to be written to be read from a hard disk
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US5673319A (en) * 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5796837A (en) * 1995-12-26 1998-08-18 Electronics And Telecommunications Research Institute Apparatus and method for generating a secure substitution-box immune to cryptanalyses
US5825886A (en) * 1995-12-08 1998-10-20 Entrust Technologies Ltd. Construction symmetric ciphers using the cast design procedure
US5835599A (en) * 1996-04-15 1998-11-10 Vlsi Technology, Inc. Muti-cycle non-parallel data encryption engine
US5838795A (en) * 1996-01-11 1998-11-17 Teledyne Industries, Inc. Method and apparatus for statistical diffusion in iterated block substitution
US5861662A (en) * 1997-02-24 1999-01-19 General Instrument Corporation Anti-tamper bond wire shield for an integrated circuit
US6005944A (en) * 1997-02-14 1999-12-21 At&T Corp System and method for constructing block ciphers
US6031911A (en) * 1996-07-18 2000-02-29 Entrust Technologies, Ltd. Practical S box design
US6199162B1 (en) * 1997-09-17 2001-03-06 Frank C. Luyster Block cipher method
US6215875B1 (en) * 1997-01-21 2001-04-10 Sony Corporation Cipher processing system
US6226382B1 (en) * 1994-02-28 2001-05-01 Gemplus Method for implementing a private-key communication protocol between two processing devices
US6266412B1 (en) * 1998-06-15 2001-07-24 Lucent Technologies Inc. Encrypting speech coder
US6278783B1 (en) * 1998-06-03 2001-08-21 Cryptography Research, Inc. Des and other cryptographic, processes with leak minimization for smartcards and other cryptosystems
US6314186B1 (en) * 1997-06-23 2001-11-06 Samsung Electronics Co., Ltd. Block cipher algorithm having a robust security against differential cryptanalysis, linear cryptanalysis and higher-order differential cryptanalysis
US6320964B1 (en) * 1998-08-26 2001-11-20 Intel Corporation Cryptographic accelerator
US6324286B1 (en) * 1998-06-17 2001-11-27 Industrial Technology Research Institute DES cipher processor for full duplex interleaving encryption/decryption service
US20020003876A1 (en) * 2000-06-08 2002-01-10 Young-Won Lim Encryption apparatus using data encryption standard algorithm
US20020009196A1 (en) * 2000-05-31 2002-01-24 Young-Won Lim Encryption device using data encryption standard algorithm
US20020012430A1 (en) * 2000-06-12 2002-01-31 Young-Won Lim Encryption apparatus using data encryption standard algorithm
US20020018562A1 (en) * 2000-06-13 2002-02-14 Hynix Semiconductor Inc. Key scheduler for encryption apparatus using data encryption standard algorithm
US20020051534A1 (en) * 2000-04-20 2002-05-02 Matchett Noel D. Cryptographic system with enhanced encryption function and cipher key for data encryption standard
US20030002664A1 (en) * 2001-06-13 2003-01-02 Anand Satish N. Data encryption and decryption system and method using merged ciphers
US6526505B1 (en) * 1998-07-20 2003-02-25 Koninklijke Philips Electronics N.V. DES encryption system
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
US20040028232A1 (en) * 2000-05-01 2004-02-12 Mark Lindemann Des hardware throughput for short operations
US6775776B1 (en) * 2000-06-27 2004-08-10 Intel Corporation Biometric-based authentication in a nonvolatile memory device
US6891951B2 (en) * 2000-01-21 2005-05-10 Victor Company Of Japan, Ltd. Cryptosystem-related method and apparatus

Patent Citations (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3962539A (en) 1975-02-24 1976-06-08 International Business Machines Corporation Product block cipher system for data security
US4275265A (en) * 1978-10-02 1981-06-23 Wisconsin Alumni Research Foundation Complete substitution permutation enciphering and deciphering circuit
US4262358A (en) * 1979-06-28 1981-04-14 Motorola, Inc. DES Parity check system
US4274085A (en) * 1979-06-28 1981-06-16 Motorola, Inc. Flexible mode DES system
US4543646A (en) * 1980-06-05 1985-09-24 Western Digital Corporation Chip topography for MOS Data Encryption Standard circuit
US4578530A (en) * 1981-06-26 1986-03-25 Visa U.S.A., Inc. End-to-end encryption system and method of operation
US4731843A (en) * 1985-12-30 1988-03-15 Paradyne Corporation Method and device of increasing the execution speed of cipher feedback mode of the DES by an arbitrary multiplier
US5008935A (en) * 1989-06-30 1991-04-16 At&T Bell Laboratories Efficient method for encrypting superblocks of data
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
US5214703A (en) * 1990-05-18 1993-05-25 Ascom Tech Ag Device for the conversion of a digital block and use of same
US5513262A (en) * 1992-02-18 1996-04-30 Tulip Computers International B.V Device for enciphering and deciphering, by means of the DES algorithm, data to be written to be read from a hard disk
US5317638A (en) * 1992-07-17 1994-05-31 International Business Machines Corporation Performance enhancement for ANSI X3.92 data encryption algorithm standard
US6226382B1 (en) * 1994-02-28 2001-05-01 Gemplus Method for implementing a private-key communication protocol between two processing devices
US5432848A (en) * 1994-04-15 1995-07-11 International Business Machines Corporation DES encryption and decryption unit with error checking
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US5673319A (en) * 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations
US5835600A (en) * 1995-11-01 1998-11-10 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations
US5825886A (en) * 1995-12-08 1998-10-20 Entrust Technologies Ltd. Construction symmetric ciphers using the cast design procedure
US5796837A (en) * 1995-12-26 1998-08-18 Electronics And Telecommunications Research Institute Apparatus and method for generating a secure substitution-box immune to cryptanalyses
US5838795A (en) * 1996-01-11 1998-11-17 Teledyne Industries, Inc. Method and apparatus for statistical diffusion in iterated block substitution
US5835599A (en) * 1996-04-15 1998-11-10 Vlsi Technology, Inc. Muti-cycle non-parallel data encryption engine
US6031911A (en) * 1996-07-18 2000-02-29 Entrust Technologies, Ltd. Practical S box design
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
US6215875B1 (en) * 1997-01-21 2001-04-10 Sony Corporation Cipher processing system
US6005944A (en) * 1997-02-14 1999-12-21 At&T Corp System and method for constructing block ciphers
US5861662A (en) * 1997-02-24 1999-01-19 General Instrument Corporation Anti-tamper bond wire shield for an integrated circuit
US6314186B1 (en) * 1997-06-23 2001-11-06 Samsung Electronics Co., Ltd. Block cipher algorithm having a robust security against differential cryptanalysis, linear cryptanalysis and higher-order differential cryptanalysis
US6199162B1 (en) * 1997-09-17 2001-03-06 Frank C. Luyster Block cipher method
US6751319B2 (en) * 1997-09-17 2004-06-15 Frank C. Luyster Block cipher method
US6578150B2 (en) * 1997-09-17 2003-06-10 Frank C. Luyster Block cipher method
US6278783B1 (en) * 1998-06-03 2001-08-21 Cryptography Research, Inc. Des and other cryptographic, processes with leak minimization for smartcards and other cryptosystems
US6266412B1 (en) * 1998-06-15 2001-07-24 Lucent Technologies Inc. Encrypting speech coder
US6324286B1 (en) * 1998-06-17 2001-11-27 Industrial Technology Research Institute DES cipher processor for full duplex interleaving encryption/decryption service
US6526505B1 (en) * 1998-07-20 2003-02-25 Koninklijke Philips Electronics N.V. DES encryption system
US6320964B1 (en) * 1998-08-26 2001-11-20 Intel Corporation Cryptographic accelerator
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
US6891951B2 (en) * 2000-01-21 2005-05-10 Victor Company Of Japan, Ltd. Cryptosystem-related method and apparatus
US20020051534A1 (en) * 2000-04-20 2002-05-02 Matchett Noel D. Cryptographic system with enhanced encryption function and cipher key for data encryption standard
US20040028232A1 (en) * 2000-05-01 2004-02-12 Mark Lindemann Des hardware throughput for short operations
US20020009196A1 (en) * 2000-05-31 2002-01-24 Young-Won Lim Encryption device using data encryption standard algorithm
US6931127B2 (en) * 2000-05-31 2005-08-16 Hynix Semiconductor Inc. Encryption device using data encryption standard algorithm
US20020003876A1 (en) * 2000-06-08 2002-01-10 Young-Won Lim Encryption apparatus using data encryption standard algorithm
US6914984B2 (en) * 2000-06-08 2005-07-05 Hynix Semiconductor, Inc. Encryption apparatus using data encryption standard algorithm
US20020012430A1 (en) * 2000-06-12 2002-01-31 Young-Won Lim Encryption apparatus using data encryption standard algorithm
US20020018562A1 (en) * 2000-06-13 2002-02-14 Hynix Semiconductor Inc. Key scheduler for encryption apparatus using data encryption standard algorithm
US6775776B1 (en) * 2000-06-27 2004-08-10 Intel Corporation Biometric-based authentication in a nonvolatile memory device
US20030002664A1 (en) * 2001-06-13 2003-01-02 Anand Satish N. Data encryption and decryption system and method using merged ciphers

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Bindel et al., "Extended Cryptographic File System," pp. 1-11 (Dec. 13, 1999).
Blaze, "A Cryptographic File System for Unix," Proc. of 1st ACM Conf. on Computer & Communications Security, 8 pages (Nov. 1993).
Blaze, "Key Mangement in an Encrypting File System," Proc. Summer 1994 USENIX Tech. Conf., 9 pages (Jun. 1994).
Eli Biham, A Fast New DES Implementation in Software, Lecture Notes in Computer Science, vol. 1267, Jan. 1997, p. 260. *
Menezes et al., Handbook of Applied Cryptography, CRC Press, 1997, pp. 250-259. *
Zadok et al., "Cryptfs: A Stackable Vnode Level Encryption File System," Tech. Report CUCS-021-98, pp. 1-11 (1998).

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060153382A1 (en) * 2005-01-12 2006-07-13 Sony Computer Entertainment America Inc. Extremely fast data encryption, decryption and secure hash scheme
US20070098153A1 (en) * 2005-08-31 2007-05-03 Canon Kabushiki Kaisha Cryptographic processing apparatus
US20070253549A1 (en) * 2006-04-18 2007-11-01 Ufuk Celikkan Encryption apparatus and method for providing an encrypted file system
US7428306B2 (en) * 2006-04-18 2008-09-23 International Business Machines Corporation Encryption apparatus and method for providing an encrypted file system
US20080310624A1 (en) * 2006-04-18 2008-12-18 International Business Machines Corporation Encryption Apparatus and Method for Providing an Encrypted File System
US8107621B2 (en) 2006-04-18 2012-01-31 International Business Machines Corporation Encrypted file system mechanisms
US9270647B2 (en) 2013-12-06 2016-02-23 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US10027628B2 (en) 2013-12-06 2018-07-17 Shape Security, Inc. Client/server security by an intermediary rendering modified in-memory objects
US9712561B2 (en) 2014-01-20 2017-07-18 Shape Security, Inc. Intercepting and supervising, in a runtime environment, calls to one or more objects in a web page
US9356954B2 (en) 2014-01-20 2016-05-31 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US20180121680A1 (en) * 2014-05-23 2018-05-03 Shape Security, Inc. Obfuscating web code
US9858440B1 (en) * 2014-05-23 2018-01-02 Shape Security, Inc. Encoding of sensitive data
US9479529B2 (en) 2014-07-22 2016-10-25 Shape Security, Inc. Polymorphic security policy action
US9438625B1 (en) 2014-09-09 2016-09-06 Shape Security, Inc. Mitigating scripted attacks using dynamic polymorphism
US20200159944A1 (en) * 2017-10-09 2020-05-21 Jason McNutt Methods and systems for encrypting data using object-based screens
US10902142B2 (en) * 2017-10-09 2021-01-26 Ceruleant Systems, Llc Methods and systems for encrypting data using object-based screens

Similar Documents

Publication Publication Date Title
US6199162B1 (en) Block cipher method
Lim CRYPTON: A new 128-bit block cipher
US6314186B1 (en) Block cipher algorithm having a robust security against differential cryptanalysis, linear cryptanalysis and higher-order differential cryptanalysis
US6259789B1 (en) Computer implemented secret object key block cipher encryption and digital signature device and method
US9054857B2 (en) Parallelizeable integrity-aware encryption technique
US7809132B2 (en) Implementations of AES algorithm for reducing hardware with improved efficiency
US6298136B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US7970129B2 (en) Selection of a lookup table with data masked with a combination of an additive and multiplicative mask
US5745577A (en) Symmetric cryptographic system for data encryption
US8787563B2 (en) Data converter, data conversion method and program
US20060177052A1 (en) S-box encryption in block cipher implementations
US7801307B2 (en) Method of symmetric key data encryption
US20070071236A1 (en) High speed configurable cryptographic architecture
US20230261853A1 (en) Method and apparatus for improving the speed of advanced encryption standard (aes) decryption algorithm
EP2316189B1 (en) Method for generating a cipher-based message authentication code
US20020101985A1 (en) Single-cycle hardware implementation of crypto-function for high throughput crypto-processing
US7103180B1 (en) Method of implementing the data encryption standard with reduced computation
WO1999014889A1 (en) Improved block cipher method
CN110247754B (en) Method and device for realizing block cipher FBC
Carter et al. Key schedule classification of the AES candidates
KR100350207B1 (en) Method for cryptographic conversion of l-bit input blocks of digital data into l-bit output blocks
RU2186467C2 (en) Method for iterative block encryption
RU2199826C2 (en) Method for iterative encoding of digital data blocks
CN113343276A (en) Generalized two-dimensional cat mapping-based lightweight block cipher algorithm GCM implementation method
Dutta An approach to ensure information security through 252-bit integrated encryption system (IES)

Legal Events

Date Code Title Description
AS Assignment

Owner name: HEWLETT-PACKARD COMPANY, COLORADO

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MCGREGOR JR., JOHN PATRICK;REEL/FRAME:012624/0190

Effective date: 20011024

AS Assignment

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492

Effective date: 20030926

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY L.P.,TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD COMPANY;REEL/FRAME:014061/0492

Effective date: 20030926

CC Certificate of correction
FPAY Fee payment

Year of fee payment: 4

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20140905