Apparatus and method of performing AES Rijndael algorithm
First Claim
1. An encryption and decryption apparatus, comprising:
- a round key generator generating at least one round key for iterative operations in each of a plurality of rounds using an input key for one of the encryption or decryption;
an initial round key adder receiving a plurality of divided parts of an input data, consecutively receiving a plurality of parts of the at least one round key which is output from the round key generator for an initial round and corresponds to each of the divided parts of the input data, and adding the divided parts of the input data and the corresponding part of the at least one round key;
a first operator receiving a first data which is output from the initial round key adder and a second part of the at least one round key which is output from the round key generator and performing operations for the one of the encryption or decryption;
a second operator receiving a second data which is output from the initial round key adder and a third part of the round key which is output from the round key generator, and performing operations for the one of the encryption or decryption; and
a register part temporarily storing the first data which is output from the first operator and the second data which is output from the second operator, inputting the first and second data to the first and second operators, respectively, for operations of a next round among the plurality of the rounds, and outputting an encrypted or decrypted data when the plurality of the rounds are completed.
1 Assignment
0 Petitions
Accused Products
Abstract
An encryption and decryption apparatus includes a round key generator generating at least one round key for iterative operations in each of a plurality of rounds using an input key for one of the encryption and decryption; an initial round key adder receiving a plurality of divided parts of an input data, consecutively receiving a plurality of parts of an initial round key which is output from the round key generator for an initial round and corresponds to each of the divided input data, and adding the input data and the corresponding part of the initial round key; a first operator receiving a first data which is output from the initial round key adder and a part of the round key which is output from the round key generator and performing operations for one of the encryption and decryption; a second operator receiving a second data which is output from the initial round key adder and another part of the round key which is output from the round key generator, and performing operations for one of the encryption and decryption; and a register part temporarily storing the first data which is output from the first operator and the second data which is output from the second operator, inputting the first and second data to the first and second operators, respectively, for operations of a next round among the plurality of the rounds, and outputting an encrypted or decrypted data when the plurality of the rounds are completed.
-
Citations
34 Claims
-
1. An encryption and decryption apparatus, comprising:
-
a round key generator generating at least one round key for iterative operations in each of a plurality of rounds using an input key for one of the encryption or decryption;
an initial round key adder receiving a plurality of divided parts of an input data, consecutively receiving a plurality of parts of the at least one round key which is output from the round key generator for an initial round and corresponds to each of the divided parts of the input data, and adding the divided parts of the input data and the corresponding part of the at least one round key;
a first operator receiving a first data which is output from the initial round key adder and a second part of the at least one round key which is output from the round key generator and performing operations for the one of the encryption or decryption;
a second operator receiving a second data which is output from the initial round key adder and a third part of the round key which is output from the round key generator, and performing operations for the one of the encryption or decryption; and
a register part temporarily storing the first data which is output from the first operator and the second data which is output from the second operator, inputting the first and second data to the first and second operators, respectively, for operations of a next round among the plurality of the rounds, and outputting an encrypted or decrypted data when the plurality of the rounds are completed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method of encrypting and decrypting data, comprising:
-
receiving data to be encrypted or decrypted;
performing preprocessing of the received data by performing a shift row operation of a Rijndael (AES) for encryption or an inverse shift row operation of the Rijndael (AES) for decryption;
performing a key schedule to calculate an initial key for encryption or decryption rounds to be added to the received data;
performing loading of the preprocessed data, and adding the loaded data to the calculated initial key;
performing a first round of the encryption or decryption rounds while loading the preprocessed data by performing the Rijndael (AES) for each one fourth of the preprocessed data and storing resulting data in state bytes array storage to perform a data permutation operation;
performing remaining rounds of the encryption or decryption rounds for each one half of data output from the state bytes array storage and storing the resulting data in the state bytes array storage to perform the data permutation operation, thereby outputting the resulting data. - View Dependent Claims (17, 18, 19)
-
-
20. A data encryption system, comprising:
-
an input unit dividing input data into n-bit segments;
a round key generator receiving a master key and generating n-bit round keys corresponding to each round stage of an encryption process;
a first key adder which adds each of the n-bit segments with a first one of the n-bit round keys;
a first operator which performs a partial encryption operation on each of the added n-bit segments and adding a second one of the n-bit round keys to selected results of the partial encryption operation;
a second operator which performs a second encryption operation by using selected ones of the partial encryption results and a third one of the n-bit round keys; and
a register part temporarily storing each n-bit output from the first operator and each n-bit output from the second operator, feeding back each n-bit output from the first and second operators to the first and second operators, respectively, for operations of a next round stage, and combining each of the n-bit outputs to form an encrypted result when each round stage is complete. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A method of encrypting data via parallel processing, comprising:
-
dividing input data into sequential n-bit segments;
generating n-bit round keys corresponding to a number of encryption rounds;
adding a first one of the n-bit round keys to each of the n-bit segments;
performing first encryption round operations on odd n-bit segments using a second one of the n-bit keys until the number of encryption rounds is complete;
performing second encryption round operations on even n-bit segments in parallel with the performing the first encryption round operations using a third one of the n-bit keys until the number of encryption rounds is complete; and
combining results from the first encryption round operations and the second encryption round operations to form an enciphered output. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification