Method and apparatus for variable-overhead cached encryption
First Claim
1. An apparatus for variable-overhead cached encryption and decryption comprising:
- (i) a transmitter for encrypting plaintext data, the transmitter further comprising;
a first memory for storing at least one Pseudorandom Number (PN) sequence and for outputting a selected PN sequence;
an encoder which receives the selected PN sequence from the first memory as a first input and receives the plaintext data as a second input, and responsive to these first and second inputs produces the encrypted data;
(ii) a receiver for decrypting encrypted data, the receiver comprising;
a second memory for storing at least one Pseudorandom Number (PN) sequence;
a receiver PN generator which generates and provides as an output the same selected PN sequence which is received by the encoder;
a control signal responsive to the contents of the second memory which indicates whether the selected PN sequence is stored in the second memory;
switching means having a first sequence input coupled to the output of the second memory and a second sequence input coupled to the output of the receiver PN generator, for outputting one of the sequence inputs responsive to the indication of the control signal; and
a decoder which receives the output of the switching means as a first input and receives the encrypted data as a second input, and combines these first and second inputs to produce decrypted data.
1 Assignment
0 Petitions
Accused Products
Abstract
A digital encryption structure allows the varying of the computational overhead by selectively reusing, according to the desired level of security, a pseudorandom encoding sequence at the transmitter end and by storing and reusing pseudorandom decoding sequences, associated with one or more transmitters at the receiver end. A public initialization vector is combined with a secret key to produce a deterministic sequence from a pseudorandom number generator. This pseudorandom sequence in turn, is used to convert plaintext to ciphertext. The sequence may be selectively reused by storing the sequence to a transmitter memory cache and iteratively reading the sequence from memory according to a counter which controls the level of security of the encryption system. The ciphertext is decrypted on the receiver end by invertibly combining the ciphertext with the same pseudorandom sequence used by the transmitter to originally encode the plaintext. The pseudorandom sequence is independently generated by the receiver end using the original key and initialization vector used in the transmitter end. Once generated in the receiver, the pseudorandom sequence is stored in a receiver cache for reuse with each iterative use of the stored transmitter pseudorandom sequence.
80 Citations
27 Claims
-
1. An apparatus for variable-overhead cached encryption and decryption comprising:
-
(i) a transmitter for encrypting plaintext data, the transmitter further comprising; a first memory for storing at least one Pseudorandom Number (PN) sequence and for outputting a selected PN sequence; an encoder which receives the selected PN sequence from the first memory as a first input and receives the plaintext data as a second input, and responsive to these first and second inputs produces the encrypted data; (ii) a receiver for decrypting encrypted data, the receiver comprising; a second memory for storing at least one Pseudorandom Number (PN) sequence; a receiver PN generator which generates and provides as an output the same selected PN sequence which is received by the encoder; a control signal responsive to the contents of the second memory which indicates whether the selected PN sequence is stored in the second memory; switching means having a first sequence input coupled to the output of the second memory and a second sequence input coupled to the output of the receiver PN generator, for outputting one of the sequence inputs responsive to the indication of the control signal; and a decoder which receives the output of the switching means as a first input and receives the encrypted data as a second input, and combines these first and second inputs to produce decrypted data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. An encryption system comprising:
-
transmitter means for encrypting plaintext data into ciphertext, the transmitter means further comprising; selectively controlled first memory storage means for storing a first pseudorandom sequence, wherein the selective control of the first memory storage means enables reuse of the first pseudorandom sequence, and encoding means for combining the first pseudorandom sequence with the plaintext data to produce the ciphertext; and receiver means for receiving the ciphertext from the transmitter means and decrypting the ciphertext to the original plaintext, the receiving means further comprising second storage means for storing a second pseudorandom sequence, wherein the second pseudorandom sequence is used in combination with the ciphertext to produce the plaintext and wherein the second pseudorandom sequence may be retrieved from the second storage means and used for producing the plaintext each time the selective control of the first memory storage means enables reuse of the first pseudorandom sequence in the transmitter means. - View Dependent Claims (23, 24)
-
-
25. A method for variable-overhead cached encryption and decryption comprising the steps:
-
(i) encrypting a sequence of plaintext data comprising the substeps; generating a first pseudorandom number from a public initialization vector and a secret key; encrypting the plaintext data to produce a ciphertext by logically combining the plaintext data with the stored first pseudorandom number; and exporting the ciphertext in concatenated combination with the initialization vector; (ii) decrypting the ciphertext in a receiver comprising storage for unique pairs of initialization vectors and second pseudorandom numbers, the decrypting step comprising the substeps; importing the concatenated combination from (i); separating the ciphertext from the initialization vector in the concatenated combination; searching the storage for a unique initialization vector and second pseudorandom number pair having an initialization vector which matches the imported initialization vector; decrypting the imported ciphertext using the second pseudorandom number corresponding to the matched initialization vector, if such an initialization vector match is found; and generating a second pseudorandom number from the imported initialization vector and the secret key used in (i) and using the generated second pseudorandom number to decrypt the imported ciphertext, if no initialization vector match is found in the searching substep above. - View Dependent Claims (26, 27)
-
Specification