Cryptography algorithms and AWS services
An encryption algorithm is a formula or procedure that converts a plaintext message into an encrypted ciphertext. If you are new to encryption or its terminology, we recommend that you read About data encryption before proceeding with this guide.
AWS cryptography services
AWS cryptography services rely on secure, open-source encryption algorithms. These algorithms are vetted by public standards bodies and by academic research. Some AWS tools and services enforce the use of a specific algorithm. In other services, you can choose between multiple available algorithms and key lengths, or you can use the recommended defaults.
This section describes some of the algorithms that AWS tools and services support. They fall into two categories, symmetric and asymmetric, based on how their keys function:
-
Symmetric encryption uses the same key to encrypt and decrypt the data. AWS services support Advanced Encryption Standard (AES) and Triple Data Encryption Standard (3DES or TDES), which are two widely used symmetric algorithms.
-
Asymmetric encryption uses a pair of keys, a public key for encryption and a private key for decryption. You can share the public key because it isn't used for decryption, but access to the private key should be highly restricted. AWS services typically support RSA and elliptic-curve cryptography (ECC) asymmetric algorithms.
AWS cryptographic services comply with a wide range of cryptographic security
standards, so you can comply with governmental or professional regulations. For a full
list of the data security standards that AWS services comply with, see AWS compliance
programs
Cryptographic algorithms
Cryptography is an essential part of security for AWS. AWS services support
encryption for data in transit, at rest, or in memory. Many also support encryption with
customer managed keys that are inaccessible to AWS. You can learn more about the AWS
commitment to innovation and investing in additional controls for sovereignty and
encryption features in the AWS digital sovereignty pledge
AWS is committed to using the most secure available cryptographic algorithms to meet
your security and performance requirements. AWS defaults to high-assurance algorithms
and implementations and prefer hardware-optimized solutions that are faster, improve
security, and are more energy efficient. See the AWS Crypto Library
AWS services use trusted cryptographic algorithms that meet industry standards and foster interoperability. These standards are widely accepted by governments, industry, and academia. It takes considerable analysis by the global community for an algorithm to become widely accepted. It also takes time for it to become widely available within the industry. Lack of analysis and availability introduces challenges to interoperability, complexity, and risks for deployments. AWS continues to deploy new cryptographic options to meet a high bar for security and performance.
The following tables summarize the cryptographic algorithms, ciphers, modes, and key sizes that AWS deploys across its services to protect your data. They should not be considered to be an exhaustive list of all cryptography options available in AWS. The algorithms fall into two categories:
-
Preferred are the algorithms that meet the AWS security and performance standards.
-
Acceptable algorithms can be used for compatibility in some applications but are not preferred.
Asymmetric encryption | Status |
---|---|
RSA-OAEP with 2048 or 3072-bit modulus | Acceptable |
HPKE with P-256 or P-384, HKDF and AES-GCM | Acceptable |
Asymmetric key agreement | Status |
---|---|
ECDH(E) with P-384 | Preferred |
ECDH(E) with P-256, P-521, or X25519 | Acceptable |
ECDH(E) with brainpoolP256r1, brainpoolP384r1, or brainpoolP512r1 | Acceptable |
ML-KEM-768 combined with ECDH(E) (in PQ-hybrid key exchanges) | Preferred (for quantum-resistance) |
Block ciphers and modes | Status |
---|---|
AES-GCM-256 | Preferred |
AES-XTS-256 | Acceptable |
AES-GCM-128 | Acceptable |
ChaCha20/Poly1305 | Acceptable |
CBC / CTR / CCM modes (with AES-128 or AES-256) | Acceptable |
Hashing | Status |
---|---|
SHA2-384 | Preferred |
SHA2-256 | Acceptable |
SHA3 | Acceptable |
Key derivation | Status |
---|---|
HKDF_Expand or HKDF with SHA2-256 | Preferred |
Counter Mode KDF with HMAC-SHA2-256 | Acceptable |
Key wrapping | Status |
---|---|
AES-GCM-256 | Preferred |
AES-KW or AES-KWP with 256-bit keys | Acceptable |
Message Authentication Code (MAC) | Status |
---|---|
HMAC-SHA2-384 | Preferred |
HMAC-SHA2-256 | Acceptable |
KMAC | Acceptable |
Password hashing | Status |
---|---|
scrypt with SHA384 | Preferred |
PBKDF2 | Acceptable |
Signatures | Status |
---|---|
ECDSA with P-384 | Preferred |
ECDSA with P-256, P-521, or Ed25519 | Acceptable |
RSA-2048 or RSA-3072 | Acceptable |
SLH-DSA | Preferred (for quantum-resistant software/firmware signing) |
AWS closely tracks cryptographic developments, security issues, and research
results. As deprecated algorithms and security issues are discovered, they are
addressed. For more information, see the AWS Security
Blog