Symmetric key encryption system with synchronously updating expanded key
First Claim
Patent Images
1. A method comprising:
- using at least one processor able to execute instructions to;
receive a cipher key;
expand the cipher key into a plurality of round keys;
create a pre-cipher, based at least in part upon the cipher key and the plurality of round keys;
receive a message comprising a plurality of ciphertext blocks;
use the pre-cipher to decrypt the plurality of ciphertext blocks, yielding a plurality of plaintext blocks;
during decryption of the message;
inspect a designated portion of the last plaintext block of the plurality of plaintext blocks to determine whether a pre-cipher reconfiguration parameter is non-zero; and
when the pre-cipher reconfiguration parameter is non-zero;
extract the pre-cipher reconfiguration parameter from the plaintext block; and
alter the pre-cipher based upon the reconfiguration parameter, to provide an altered pre-cipher.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus, and system of encryption, including embedding reconfiguration information within a ciphertext block destined for a decryptor. The decryptor identifies the reconfiguration information, extracts such information, and uses it to alter a pre-cipher, which is used for decryption. The encryptor alters its pre-cipher synchronously with the decryptor.
-
Citations
25 Claims
-
1. A method comprising:
using at least one processor able to execute instructions to; receive a cipher key; expand the cipher key into a plurality of round keys; create a pre-cipher, based at least in part upon the cipher key and the plurality of round keys; receive a message comprising a plurality of ciphertext blocks; use the pre-cipher to decrypt the plurality of ciphertext blocks, yielding a plurality of plaintext blocks; during decryption of the message; inspect a designated portion of the last plaintext block of the plurality of plaintext blocks to determine whether a pre-cipher reconfiguration parameter is non-zero; and when the pre-cipher reconfiguration parameter is non-zero; extract the pre-cipher reconfiguration parameter from the plaintext block; and alter the pre-cipher based upon the reconfiguration parameter, to provide an altered pre-cipher. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. A method comprising:
using at least one processor able to execute instructions to; identify a cipher key; expand the cipher key into a plurality of round keys; generate a pre-cipher based upon the cipher key, and the plurality of round keys; encrypt a first plurality of plaintext blocks based upon the pre-cipher yielding a plurality of ciphertext blocks; transmit the plurality of ciphertext blocks; detect the occurrence of a condition; and subsequent to occurrence of the condition; embed a pre-cipher reconfiguration parameter in a designated portion of the last plaintext block of a second plurality of plaintext blocks; alter the pre-cipher to correspond with the reconfiguration parameter, to provide an altered pre-cipher; encrypt the second plurality of plaintext blocks using the altered pre-cipher, to provide a plurality of ciphertext blocks encrypted with the altered pre-cipher; and transmit the plurality of ciphertext blocks encrypted with the altered pre-cipher. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
18. An implantable device comprising:
-
a sense/stimulator channel; and an input/output (I/O) interface; and a controller coupled to the sense/stimulator channel and to the I/O interface, the controller being configured to; receive physiological or behavioral data from the sensor; receive a cipher key via the I/O interface; expand the cipher key into a plurality of round keys; create a pre-cipher, based at least in part upon the cipher key and the plurality of round keys; receive a plurality of ciphertext blocks via the I/O interface; use the pre-cipher to decrypt the plurality of ciphertext blocks, yielding a plurality of plaintext blocks; inspect a designated portion of the last plaintext block of the plurality of plaintext blocks to determine whether a pre-cipher reconfiguration parameter is non-zero; and when the pre-cipher reconfiguration parameter is non-zero; extract a pre-cipher reconfiguration parameter from at least one of the plaintext blocks; and alter the pre-cipher based upon the parameter. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
-
25. A non-transitory computer-readable medium, including instructions that, when performed by a computer, cause the computer to:
-
identify a cipher key; expand the cipher key into a plurality of round keys; generate a pre-cipher based upon the cipher key and the plurality of round keys; encrypt a first plurality of plaintext blocks based upon the pre-cipher yielding a plurality of ciphertext blocks; transmit the plurality of ciphertext blocks; detect the occurrence of a condition; and subsequent to occurrence of the condition; embed a pre-cipher reconfiguration parameter in a designated portion of the last plaintext block of a second plurality of plaintext blocks; alter the pre-cipher to correspond with the reconfiguration parameter, to provide an altered pre-cipher; encrypt the second plurality of plaintext blocks using the altered pre-cipher, to provide a plurality of ciphertext blocks encrypted with the altered pre-cipher; and transmit the plurality of ciphertext blocks encrypted with the altered pre-cipher.
-
Specification