Data encryption method and system
AssigneeAmazon Technologies, Inc.
InventorsShay Gueron, Matthew John Campagna
Life of this patent
Estimating the term…
Loading patent…
AssigneeAmazon Technologies, Inc.
InventorsShay Gueron, Matthew John Campagna
Estimating the term…
Plaintext data is encrypted and decrypted using a symmetric encryption algorithm that generates a sequence of pseudorandom values from a cryptographic key. A portion of the sequence of pseudorandom values is discarded. For example, in an embodiment, each value in the sequence of pseudorandom values is truncated by a number of bits. Encryption and decryption is performed by combining plaintext or ciphertext with the truncated sequence of pseudorandom values. In an embodiment, the combination is made by performing a bitwise exclusive or operation between the truncated pseudorandom values and the plaintext or ciphertext. In an embodiment, a number of bits discarded from each value is encoded into a message authentication code which is provided with any resulting ciphertext.
A computer-implemented method, comprising:
A system, comprising:
A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
Dependencies are inferred from the claim text.
No related US applications are recorded in the indexed filing history.
Drawings are temporarily unavailable. Open the PDF at USPTO
Generation of secret information including derivation or calculation of cryptographic keys or passwords: involving random numbers or seeds
Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation: substitution permutation…
Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation: modes of operation, e.g. cipher…
Involving Diffie-Hellman or related key agreement protocols: with user authentication or key authentication, e.g. ElGamal, MTI,…
About 12 years 9 months of term left · ends 17 Jul 2039 (estimated)
Data security is an important aspect of modern computing environments. In many examples, data security is provided through the use of data encryption. Many types of encryption are well known in the art and are widely used. In general, encryption relies on the use of cryptographic keys. In the case of a symmetric key, the key is accessible to both the sending entity and a receiving entity, and the key is used for both the encryption and decryption operations. In the case of an asymmetric key, the key is split into a private key and a public key. In general, the private key is accessible to the recipient (but not the sender), and the public key may be accessible to all (or at least the sender). The public key may be used to encrypt information, and the private key is generally required to decrypt the encrypted information. Regardless of the type of encryption used, keys can become old and/or overused, leading to a reduction in the level of security provided by the encryption. When this occurs, the cryptographic key is often changed or rotated to a new value. The key rotation process can be very expensive because old keys may need to be stored, data may need to be re-encrypted, and new keys may need to be distributed. In some examples, multiple keys may need to be supported concurrently. For this and other reasons, excessive key rotation can result in significant use of available resources.
Various techniques will be described with reference to the drawings, in which:
FIG. 1 illustrates an example of a system in which a first computer system encrypts plaintext data and sends the resulting ciphertext to a second computer system which decrypts the ciphertext to recover the plaintext data, in an embodiment;
FIG. 2 illustrates an example of a system that uses Galois Counter Mode (“GCM”) to encrypt plaintext data and produce a ciphertext and a message authentication code, in an embodiment;
The present document describes a system that, in various embodiments, reduces the need for key rotation by performing symmetric encryption and decryption of plaintext data using a sequence of truncated pseudorandom values. In an embodiment, a sending computer system and a receiving computer system establish a shared secret that is used to produce a shared cryptographic key. In an embodiment, each computer system uses a counter to generate a sequence of values, and each value in the sequence of values is encrypted to produce a sequence of encrypted counters. In an embodiment, at least a portion of each encrypted counter is removed, truncated, or otherwise disregarded. Both the sending computer system and the receiving computer system generate matching sequences of encrypted counters. In an embodiment, the sending computer system performs an exclusive or (“XOR”) operation between a sequence of plaintext values and the sequence of encrypted counters to produce a ciphertext. In an embodiment, the sending computer system transmits the ciphertext to the receiving computer system. In an embodiment, the receiving computer system performs an XOR operation between the ciphertext and the sequence of encrypted counters to reproduce the plaintext.
In an embodiment, the Advanced Encryption Standard (“AES”) is a 128-bit block cipher. A block cipher is a function that maps a fixed block size input to a fixed block output as a pseduorandom permutation using a cryptographic key. In an embodiment, such a function is represented as E: 0; 1kx0; 1n→0; 1n where k is the key size in bits, and n is the block size. This can be represented as EK(m)=c to indicate the encryption of the plaintext message block m by the key K into the ciphertext block c. In general, an advantage to distinguish a pseudorandom permutation from a pseudorandom function is represented as AdvPRP-PRF≡q2/2n+1. This limitation affects the security bounds on the use of AES in Galois Counter Mode (“GCM”). However, by disregarding a portion of the encoded counters, security against such attacks is improved. In an embodiment, this allows for prolonged use of a cryptographic key without key rotation.
In an embodiment, the sending computer system generates a message authentication code that allows a recipient to confirm that the message has not been altered. In an embodiment, the message authentication code is based on the values of the encrypted counters, the length of the ciphertext, and the number of bits that are disregarded from each encrypted counter. In an embodiment, additional data is sent from the sending computer system to the receiving computer system, and the message authentication code is based at least in part on the additional data. In an embodiment, the sending computer system sends the message authentication code to the receiving computer system, and the receiving computer system confirms that the message authentication code is correct. In an embodiment, if the receiving computer system determines that the message authentication code is incorrect, the receiving computer system determines that the ciphertext has been tampered with, and any plaintext produced is not authenticated.