System and method for implementing DES permutation functions
First Claim
1. A method of implementing at least a portion of the data encryption standard (DES) algorithm on a general purpose processor comprising:
- fetching a permutation instruction comprising a permutation opcode and a permutation identifier;
decoding said permutation opcode to determine the function that is to be performed;
instructing an encryption unit to perform a DES permutation function by sending a permutation request and said permutation identifier to said encryption unit;
performing a DES permutation function in response to receiving said permutation request and said permutation identifier, said permutation identifier delineating the type of DES permutation function that is to be performed; and
loading the permutation result of said DES permutation function in a general purpose register.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method is provided for using a general purpose processor to implement permutation and/or round opcodes for encrypting and/or decrypting data in accordance with the data encryption standard (DES) algorithm. In one embodiment of the present invention, an encryption unit is adapted to implement a permutation (or rotation) function on a first operand obtained from a general purpose register, where the permutation function is derived from a permutation opcode and a second operand provided to the encryption unit. In this embodiment, the permutation opcode is used to instruct the encryption unit to perform a permutation function, and the second operand is used to delineate which permutation function is to be performed. In another embodiment of the present invention, the encryption unit is adapted to implement a round function on two operands obtained from general purpose registers. In this embodiment a round opcode is used to instruct the encryption unit to perform the round function. In another embodiment, the encryption unit is adapted to perform the round function by implementing four permutation and two exclusive-or functions.
-
Citations
30 Claims
-
1. A method of implementing at least a portion of the data encryption standard (DES) algorithm on a general purpose processor comprising:
-
fetching a permutation instruction comprising a permutation opcode and a permutation identifier;
decoding said permutation opcode to determine the function that is to be performed;
instructing an encryption unit to perform a DES permutation function by sending a permutation request and said permutation identifier to said encryption unit;
performing a DES permutation function in response to receiving said permutation request and said permutation identifier, said permutation identifier delineating the type of DES permutation function that is to be performed; and
loading the permutation result of said DES permutation function in a general purpose register. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A method of implementing at least a portion of the data encryption standard (DES) algorithm on a general purpose processor, said general purpose processor being adapted to perform a portion of said DES algorithm in response to receiving a permutation opcode, comprising:
-
obtaining a first set of text data and a first set of key data from a plurality of sixty-four bit general purpose registers;
performing an initial-data-permutation function on said first set of text data to produce a second set of text data;
performing a key-permutation function on said first set of key data to produce a second set of key data;
performing a round computation on said second set of text data and said second set of key data to produce a third set of text data;
performing a rotation computation by performing a circular-rotation-of-the-key function on said second set of key data to produce a third set of key data;
repeating said round and rotation computation to produce a final set of text data; and
performing a final-data-permutation function on said final set of text data to produce a resulting set of text data. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A general purpose processor for encrypting and decrypting data using the data encryption standard (DES) algorithm, said general purpose processor comprising:
-
a memory adapted to store a permutation instruction comprising a permutation opcode and a permutation identifier;
a control unit adapted to generate a permutation request in response to receiving said permutation opcode from said memory;
a plurality of general purpose registers; and
an encryption unit adapted to perform a DES permutation function on an operand obtained from said plurality of general purpose registers in response to receiving said permutation request and said permutation identifier, said permutation identifier delineating the type of DES permutation function that is to be performed. - View Dependent Claims (27, 28, 29, 30)
-
Specification