Hardware-based encryption/decryption employing dual ported key storage
AssigneeCisco Technology, Inc.
InventorKenneth Batcher
Life of this patent
Estimating the term…
Abstract
A system for the encryption and decryption of data employing dual ported RAM for key storage to accelerate data processing operations. The on-chip key storage includes a dual-ported memory device which allows keys to be loaded into memory simultaneous with keys being read out of memory. Thus, an encryption or decryption algorithm can proceed while keys are being loaded into memory.
Claims25
A method for executing an algorithm for decrypting data, comprising:
- loading into a memory a first decryption key respectively associated with a first data frame including encrypted data, wherein said first decryption key is comprised of a first plurality of key values;
- and
- reading out a second decryption key, the second decryption key comprises a second plurality of key values, for a second data frame, concurrently with the step of loading of the first plurality of key values into the memory, wherein the step of reading out the second decryption key initiates a decryption operation using the key values for the second decryption keys already loaded into memory to decrypt said second data frame;
- wherein the first decryption key and the second decryption key are different.
A method for executing an algorithm for encrypting data, comprising:
- loading into a memory a first encryption key respectively associated with a first data frame including unencrypted data, wherein each said first key is comprised of a first plurality of key values;
- and
- reading out a second encryption key for a second data frame, the second encryption key comprising a second plurality of key values, concurrently with the step of loading of first key values into the memory, wherein the step of reading out the second encryption key initiates an encryption operation using the second plurality of key values loaded into memory to encrypt said second frame;
- wherein the first encryption key is different than the second encryption key.
A method for performing encryption operations employing a dual ported memory, the dual ported memory comprising a read port and a write port, comprising:
- reading out of the read port of the memory a first encryption key comprising a first plurality of key values for performing a first encryption operation;
- and
- loading into write port of the memory a second encryption key for performing a second encryption operation, wherein the second encryption key is comprised of a second plurality of key values;
- wherein the first decryption key and the second decryption key are different;
- and
- wherein the loading step starts before the reading step has completed.
A method for performing decryption operations employing a dual ported memory, the dual ported memory comprising a read port and a write port, comprising:
- reading out of the read port of the memory a first decryption key comprising a first plurality of key values for performing a first decryption operation;
- and
- loading into write port of the memory a second decryption key for performing a second decryption operation, wherein the second decryption key is comprised of a second plurality of key values;
- wherein the first decryption key and the second decryption key are different;
- and
- wherein the loading step starts before the reading step has completed.
A system, comprising:
- a memory;
- and
- a controller coupled to the key ram;
- wherein the controller is configured to execute an algorithm for decrypting data and the controller system is responsive to executing the algorithm to load into the memory a first decryption key respectively associated with a first data frame including encrypted data, wherein said first decryption key is comprised of a first plurality of key values;
- wherein the controller is configured to read out a second decryption key from the memory, the second decryption key comprises a second plurality of key values, for a second data frame, while loading of the first plurality of key values into the memory;
- wherein the reading out the second decryption key initiates a decryption operation using the key values for the second decryption keys already loaded into the memory to decrypt said second data frame;
- and
- wherein the first decryption key and the second decryption key are different.
A system, comprising:
- a memory;
- and
- a controller coupled to the key ram;
- wherein the controller is configured to execute an algorithm for encrypting data and the controller system is responsive to executing the algorithm to load into the memory a first encryption key respectively associated with a first data frame including encrypted data, wherein said first encryption key is comprised of a first plurality of key values;
- wherein the controller is configured to read out a second encryption key from the memory, the second encryption key comprises a second plurality of key values, for a second data frame, while loading of the first plurality of key values into the memory;
- wherein the reading out the second encryption key initiates a encryption operation using the key values for the second encryption keys already loaded into the memory to encrypt said second data frame;
- and
- wherein the first encryption key and the second encryption key are different.
A system for executing an algorithm for decrypting data, comprising:
- means for loading into a memory a first decryption key respectively associated with a first data frame including encrypted data, wherein said first decryption key is comprised of a first plurality of key values;
- and
- means for reading out a second decryption key, the second decryption key comprises a second plurality of key values, for a second data frame, concurrently with the step of loading of the first plurality of key values into the memory, wherein the step of reading out the second decryption key initiates a decryption operation using the key values for the second decryption keys already loaded into memory to decrypt said second data frame;
- wherein the first decryption key and the second decryption key are different.
A system for executing an algorithm for encrypting data, comprising:
- means for loading into a memory a first encryption key respectively associated with a first data frame including unencrypted data, wherein each said first key is comprised of a first plurality of key values;
- and
- means for reading out a second encryption key for a second data frame, the second encryption key comprising a second plurality of key values, concurrently with the step of loading of first key values into the memory, wherein the step of reading out the second encryption key initiates an encryption operation using the second plurality of key values loaded into memory to encrypt said second frame;
- wherein the first encryption key is different than the second encryption key.
Dependencies are inferred from the claim text.