AES-256 is often marketed as the strongest encryption available.
Cloud providers advertise it. VPN services promote it. Password managers highlight it. Security documentation frequently recommends it.
This creates a natural assumption:
If AES-256 is available, why would anyone use AES-128?
The answer is more complicated than many people expect.
Both AES-128 and AES-256 are considered extremely secure. In practice, most organisations are far more likely to experience security breaches caused by stolen credentials, software vulnerabilities, misconfigurations, or phishing attacks than weaknesses in either encryption standard.
Understanding the differences requires looking beyond marketing claims and examining how AES actually works.
What Is AES?
AES stands for Advanced Encryption Standard.
It is a symmetric encryption algorithm used to protect data.
“Symmetric” means the same key is used for both encryption and decryption.
AES is used in:
- HTTPS
- VPNs
- Wi-Fi security
- Cloud storage
- Password managers
- Database encryption
- File encryption tools
- Messaging applications
The algorithm was selected by the U.S. National Institute of Standards and Technology (NIST) in 2001 after a multi-year public competition.
Today it is considered the global standard for symmetric encryption.
What Is the Difference Between AES-128 and AES-256?
The primary difference is key size.
| Algorithm | Key Length |
|---|---|
| AES-128 | 128 bits |
| AES-192 | 192 bits |
| AES-256 | 256 bits |
The longer the key, the more possible combinations an attacker must try during a brute-force attack.
AES-256 has significantly more possible keys than AES-128.
The numbers involved are difficult to comprehend.
AES-128 Key Space
2^128
Approximately:
340,282,366,920,938,463,463,374,607,431,768,211,456
possible keys.
AES-256 Key Space
2^256
Approximately:
115,792,089,237,316,195,423,570,985,008,687,907,853,
269,984,665,640,564,039,457,584,007,913,129,639,936
possible keys.
Both numbers are astronomically large.
How AES Works
AES encrypts data using repeated rounds of transformations.
Each round applies mathematical operations that make the original data increasingly difficult to recover without the correct key.
The number of rounds depends on the key length.
| Algorithm | Rounds |
|---|---|
| AES-128 | 10 |
| AES-192 | 12 |
| AES-256 | 14 |
AES-256 performs more rounds than AES-128.
This contributes to its increased security but also slightly increases computational requirements.
Is AES-128 Still Secure?
Yes.
AES-128 remains extremely secure.
No practical attack currently exists that can brute-force AES-128 using modern computing technology.
Even with enormous computational resources, breaking AES-128 through brute force would take an unrealistic amount of time.
For most applications, AES-128 provides security well beyond what is necessary.
This is why AES-128 continues to be widely used in:
- TLS connections
- Wi-Fi encryption
- Enterprise applications
- Secure communications
The idea that AES-128 is somehow weak is a misconception.
Why Does AES-256 Exist?
AES-256 was designed to provide a larger security margin.
The goal was not necessarily to solve a current weakness but to provide stronger protection against future advances in computing and cryptanalysis.
Organisations handling highly sensitive information often prefer AES-256 because it offers greater resistance against theoretical future attacks.
Examples include:
- Government agencies
- Military systems
- Intelligence organisations
- Financial institutions
- Critical infrastructure providers
For these environments, additional security margin can be valuable.
AES-128 vs AES-256 Security Comparison
Both algorithms are considered secure.
The real question is how much security difference exists in practice.
| Factor | AES-128 | AES-256 |
|---|---|---|
| Key Size | 128-bit | 256-bit |
| Rounds | 10 | 14 |
| Brute Force Resistance | Extremely high | Even higher |
| Performance | Faster | Slightly slower |
| Security Margin | Very large | Larger |
| Government Use | Common | Common |
| Future-Proofing | Strong | Stronger |
For most threat models, both exceed practical security requirements.
What About Quantum Computing?
Quantum computing is often cited when discussing AES-256.
The reason involves Grover’s Algorithm.
In theory, a sufficiently powerful quantum computer could reduce the effective security of symmetric encryption.
Under this model:
| Algorithm | Approximate Quantum Security |
|---|---|
| AES-128 | ~64 bits |
| AES-256 | ~128 bits |
This is one reason security professionals often recommend AES-256 for long-term protection requirements.
However, large-scale quantum computers capable of attacking AES encryption do not currently exist.
For today’s systems, quantum attacks remain largely theoretical.
Performance Differences
AES-128 generally performs slightly faster than AES-256.
The difference exists because:
- Fewer rounds are executed
- Less key expansion is required
- Less computational work occurs during encryption
In modern hardware, the difference is often small.
Many CPUs include AES acceleration instructions that make both algorithms extremely fast.
However, at massive scale, performance differences can still matter.
Examples include:
- High-volume databases
- Cloud storage systems
- Large-scale VPN services
- Data centres processing enormous workloads
For these systems, AES-128 may offer measurable efficiency advantages, but the final decision should still be made against the surrounding data-protection strategy.
Why Many Systems Default to AES-256
If AES-128 is already secure, why do many products default to AES-256?
Several reasons contribute.
Marketing Simplicity
AES-256 sounds stronger.
Customers naturally associate larger numbers with better security.
Compliance Requirements
Certain standards and regulatory environments explicitly recommend or require AES-256.
Future-Proofing
Some organisations encrypt data that must remain secure for decades.
AES-256 provides a larger margin against future technological advances.
Minimal Performance Impact
Modern hardware often reduces the practical cost of AES-256.
When performance differences are negligible, organisations may simply choose the larger key size.
Real-World Security Problems Rarely Involve AES
One of the most important points often overlooked in encryption discussions is that encryption itself is rarely the weakest link.
Most security incidents occur because of problems elsewhere in the system, including the password and authentication failures discussed in password entropy:
- Weak passwords
- Credential theft
- Phishing attacks
- Vulnerable software
- Misconfigured systems
- Insecure APIs
- Excessive permissions
Switching from AES-128 to AES-256 will not protect against these issues.
An organisation using AES-256 with poor access controls is still vulnerable.
When Should You Use AES-128?
AES-128 is often appropriate when:
- Performance is important
- Data has a limited lifespan
- Compliance requirements do not mandate AES-256
- Existing systems already use AES-128
Many modern systems continue to rely on AES-128 successfully.
When Should You Use AES-256?
AES-256 is often preferred when:
- Long-term confidentiality matters
- Regulatory requirements specify it
- Highly sensitive data is involved
- Future-proofing is a priority
- Government or defence workloads are involved
In these situations, the additional security margin may justify the larger key size.
Is AES-256 Always Better?
Not necessarily.
AES-256 provides stronger theoretical security.
However, stronger encryption does not automatically translate into better overall security.
A system using AES-128 with strong authentication, secure software development practices, and effective access controls will usually be safer than a poorly designed system using AES-256.
Encryption is only one part of a larger security strategy, and it does not replace integrity checks such as checksums or trust chains such as certificates.
Does AES-256 Have a Weaker Key Schedule?
AES does not use the original encryption key directly in every round.
Instead, it uses a key schedule, also called key expansion, to derive a different round key for each stage of encryption. AES-128 generates 11 round keys, while AES-256 generates 15 because it performs more rounds and begins with a larger key.
The AES-256 key schedule is therefore larger and somewhat more complex. However, its structure has also attracted additional cryptanalysis.
In 2009, researchers published related-key attacks against full AES-192 and AES-256. These attacks examine an unusual scenario in which an attacker can observe encryptions performed under several keys with specific mathematical relationships.
This does not mean that AES-256 is practically broken.
Related-key attacks depend on conditions that correctly designed systems should not provide. Applications normally generate independent random keys and do not allow attackers to choose predictable relationships between them. The published attacks also require computational resources and access models that do not apply to ordinary AES deployments.
The practical conclusion is not that AES-128 is stronger than AES-256. It is that a larger key does not make every internal component automatically simpler or immune to theoretical analysis.
AES-256 remains approved by NIST and widely used for protecting highly sensitive information. The history of its key-schedule cryptanalysis is primarily relevant to cryptographers and protocol designers rather than normal application users.
For further detail, see:
- NIST FIPS 197: Advanced Encryption Standard
- Related-Key Cryptanalysis of the Full AES-192 and AES-256
Hardware Acceleration and AES Performance
The performance difference between AES-128 and AES-256 is partly caused by their number of rounds.
AES-128 performs 10 rounds, while AES-256 performs 14. In a software-only implementation, those additional rounds require more work.
Modern processors can reduce that cost substantially.
Many Intel and AMD processors support AES-NI, a set of processor instructions designed to accelerate AES encryption, decryption and key expansion. Many ARM processors provide similar acceleration through the ARM Cryptography Extensions.
These instructions allow the processor to perform important AES operations directly in hardware rather than reproducing them through longer sequences of general-purpose instructions.
As a result, both AES-128 and AES-256 can achieve high throughput on supported hardware. The difference between them is often small compared with the cost of:
- Reading data from storage
- Transferring data over a network
- Performing authentication
- Processing application logic
- Communicating with a remote key-management service
This does not mean the performance difference is always zero.
AES-128 can still provide higher throughput or lower power consumption in workloads that encrypt enormous amounts of data. The difference may also matter on older processors, embedded devices or systems without hardware acceleration.
For most desktop, server and mobile applications, however, performance should be measured rather than assumed. Choosing AES-128 solely because it is theoretically faster may provide no noticeable improvement in the complete system.
Processor documentation:
Why the AES Mode Can Matter More Than Key Length
AES is a block cipher. It encrypts fixed-size 128-bit blocks, but it does not by itself define how an entire file, disk or network message should be protected.
That behaviour is determined by a mode of operation.
Common AES modes include:
| Mode | Typical Use | Important Characteristic |
|---|---|---|
| GCM | Network traffic, APIs and application data | Provides encryption and authentication |
| CBC | Older protocols and legacy applications | Requires separate integrity protection and careful padding |
| XTS | Disk and storage encryption | Designed for storage sectors, not general messages |
| CTR | High-performance data encryption | Requires a unique counter and separate authentication |
| CCM | Embedded and wireless systems | Provides authenticated encryption |
AES-GCM
Galois/Counter Mode provides both confidentiality and integrity.
In addition to hiding the plaintext, it generates an authentication tag that can detect unauthorised changes. This makes GCM an example of authenticated encryption, where confidentiality and tamper detection belong together rather than being treated as separate afterthoughts.
GCM requires every nonce, sometimes called an IV, to be unique under the same key. Reusing a nonce can seriously compromise security, even when AES-256 is used.
AES-CBC
Cipher Block Chaining was widely used in older systems.
CBC can still be secure when implemented correctly, but it does not provide integrity by itself. It normally needs a separate message authentication mechanism and careful handling of padding, IVs and error responses.
A poorly designed AES-256-CBC implementation may therefore be less secure than a correctly implemented AES-128-GCM system.
AES-XTS
XTS is designed for encrypting storage devices and disk sectors.
It helps prevent identical plaintext blocks stored in different sector positions from producing identical ciphertext. However, XTS does not provide general-purpose message authentication and should not be treated as a replacement for GCM in network protocols or APIs.
Mode Selection in Practice
The mode determines properties such as:
- Whether tampering can be detected
- How nonces or IVs must be generated
- Whether operations can run in parallel
- Whether the construction is suitable for disks or messages
- What happens if data is modified or truncated
For that reason, choosing a suitable authenticated mode and managing its nonces correctly often matters more than choosing between a 128-bit and 256-bit AES key.
Official mode specifications include:
How Major Platforms Use AES-128 and AES-256
Real systems do not all choose the same AES key length or mode.
Their decisions depend on the type of data being protected, compatibility requirements, hardware support and the surrounding security design.
Microsoft BitLocker
BitLocker supports AES with 128-bit or 256-bit keys in CBC or XTS mode.
On current Windows device-encryption configurations, the default is generally XTS-AES-128. Administrators can select XTS-AES-256 through policy when their security or compliance requirements call for it.
Microsoft’s choice demonstrates that AES-128 remains suitable for protecting modern Windows storage. BitLocker’s overall security also depends on factors such as the Trusted Platform Module, recovery-key handling and device authentication.
TLS 1.3
TLS 1.3 supports cipher suites based on both AES-128-GCM and AES-256-GCM.
Two standard examples are:
TLS_AES_128_GCM_SHA256
TLS_AES_256_GCM_SHA384
TLS does not simply select the cipher with the largest number. The client and server negotiate a mutually supported suite according to their configuration and implementation.
Both AES options are standard TLS 1.3 choices. ChaCha20-Poly1305 is also available and may perform better on devices without fast AES hardware.
AWS Key Management Service
The default symmetric AWS KMS key specification uses AES-256-GCM.
AWS KMS performs symmetric cryptographic operations inside hardware security modules. In many AWS services, KMS protects or generates data-encryption keys rather than directly encrypting every large object.
This is an example of envelope encryption: a protected master key secures shorter-lived data keys, while those data keys encrypt the application data.
iPhone and iPad
Apple’s Data Protection system creates a new 256-bit per-file key when a file is created.
On recent Apple hardware, file encryption uses AES-256 in XTS mode with dedicated hardware support. The design also incorporates file protection classes, device-specific hardware keys and the Secure Enclave.
The strength of the system therefore comes from more than the AES key length alone.
Android
The standard Android Open Source Project file-based encryption configuration uses:
- AES-256-XTS for file contents
- AES-256-CBC-CTS for file names
Android can also use Adiantum on devices where AES hardware acceleration is unavailable or unsuitable.
As with Apple devices, Android’s security depends on key derivation, hardware-backed key protection, user authentication and filesystem design in addition to the cipher itself.
OpenSSL
OpenSSL supports both AES-128 and AES-256 across TLS and its general cryptographic APIs.
For TLS 1.3, applications commonly enable the standard AES-128-GCM and AES-256-GCM suites alongside ChaCha20-Poly1305. The final cipher depends on the OpenSSL version, application configuration, peer support and negotiation order.
OpenSSL therefore does not establish a universal rule that AES-256 must always replace AES-128. It provides secure options for both key lengths and leaves the protocol or application to choose appropriately.
What Does NIST Recommend?
NIST defines AES in FIPS 197.
The standard specifies three permitted key lengths:
- AES-128
- AES-192
- AES-256
NIST does not describe AES-128 as obsolete or insecure. All three remain part of the AES standard.
NIST publishes separate documents for modes of operation and cryptographic key management. This distinction is important because selecting AES-256 does not, by itself, ensure that an implementation is secure.
A deployment must also address:
- Approved modes of operation
- Secure random-key generation
- Nonce and IV requirements
- Key storage
- Key rotation
- Authentication
- Cryptographic module validation
- Appropriate security strength for the required protection period
Useful NIST documents include:
- FIPS 197: Advanced Encryption Standard
- SP 800-38A: Confidentiality Modes
- SP 800-38D: GCM and GMAC
- SP 800-38E: XTS-AES
- SP 800-131A: Transitioning Cryptographic Algorithms and Key Lengths
Compliance requirements should be checked separately. A regulation, customer contract or organisational policy may require AES-256 even when AES-128 would provide sufficient technical security.
Which Should You Choose?
flowchart TD
A[Do regulations or customer requirements mandate AES-256?] -->|Yes| B[Use AES-256]
A -->|No| C[Must the data remain confidential for decades?]
C -->|Yes| B
C -->|No| D[Is this an existing secure AES-128 system?]
D -->|Yes| E[Keep AES-128 unless there is another reason to migrate]
D -->|No| F[Does performance or power usage matter at very high scale?]
F -->|Yes| G[Benchmark AES-128 and AES-256 on the target hardware]
F -->|No| H[Use the secure default provided by the platform]
G --> I{Is AES-256 overhead material?}
I -->|Yes| J[Use AES-128 if permitted by the threat model]
I -->|No| B
B --> K[Use an appropriate authenticated mode and protect the keys]
E --> K
H --> K
J --> K
A practical rule is:
- Choose AES-256 when it is required, when long-term confidentiality is especially important or when its overhead is negligible.
- Choose AES-128 when it is the platform’s secure default, when performance matters or when an existing implementation already uses it correctly.
- In both cases, prefer a well-reviewed library and an appropriate mode rather than implementing AES directly.
Frequently Asked Questions
Is AES-128 less secure than AES-256?
AES-128 has a smaller key space and therefore a smaller theoretical security margin.
However, no practical brute-force attack against correctly implemented AES-128 is currently known. For most modern applications, its security margin remains extremely large.
Is AES-128 crackable?
AES-128 is theoretically crackable because a finite number of keys exist.
In practice, exhaustively searching all (2^{128}) possible keys is beyond realistic computing capabilities. Attackers are much more likely to target passwords, key storage, application vulnerabilities or implementation mistakes.
Has AES-256 ever been broken?
Researchers have published theoretical and related-key attacks against AES-256.
These results do not provide a practical method for breaking ordinary AES-256 encryption. They depend on unusual assumptions, extremely large resource requirements or reduced-round variants that are not the complete standard algorithm.
Is AES-256 always better than AES-128?
No.
AES-256 provides a larger theoretical security margin, but it cannot correct weak key generation, nonce reuse, insecure modes, exposed credentials or poor access controls.
A properly implemented AES-128-GCM system can be safer than a badly implemented AES-256-CBC system.
Is AES-256 slower than AES-128?
Usually, yes, because AES-256 performs 14 rounds instead of 10.
The difference is often small on processors with AES hardware acceleration. It may still be measurable in high-throughput, power-constrained or software-only environments.
Does AES-256 protect against quantum computers?
AES-256 offers a larger margin against theoretical quantum search attacks.
Grover’s algorithm is often described as reducing the effective search strength of AES-256 to approximately 128 bits. However, this simplified comparison does not mean that a practical quantum attack against AES currently exists.
Which AES version is used by banks?
There is no single AES configuration used by every bank.
Financial institutions may use AES-128 or AES-256 depending on the system, protocol, hardware, vendor and compliance requirements. The surrounding controls—especially key management, authentication and monitoring—are at least as important as the selected key length.
Does TLS use AES-128 or AES-256?
TLS can use either.
TLS 1.3 defines standard cipher suites for AES-128-GCM and AES-256-GCM. The client and server negotiate a mutually supported suite during the connection.
Should password managers use AES-256?
AES-256 is common in password managers, but key derivation and vault design are usually more important than the difference between AES-128 and AES-256.
A strong password manager should use a suitable password-based key derivation function, authenticated encryption, secure random values and careful key handling.
Is AES-GCM better than AES-CBC?
For new general-purpose applications, AES-GCM is often the more appropriate choice because it provides authenticated encryption.
CBC can still be secure when combined with a correct authentication mechanism, but it is easier to misuse. Existing protocols should not be modified without understanding their complete design.
Can I change an existing system from AES-128 to AES-256?
Usually, but migration may require re-encrypting existing data, rotating keys, updating configuration and confirming compatibility across every component.
A migration should be justified by a real requirement. Changing key length without addressing key storage, access controls and implementation quality may provide little practical benefit.
The platform examples are deliberately framed as current implementations rather than permanent guarantees, since defaults can change between software and hardware versions.
Conclusion
AES-128 and AES-256 are both exceptionally strong encryption algorithms that remain trusted throughout the technology industry.
AES-256 provides a larger key size, additional encryption rounds, and a greater security margin against future threats. AES-128 offers excellent security while delivering slightly better performance.
For most applications, either option provides more than enough protection against real-world attacks; the larger failures usually come from misused systems, weak credentials, or operational gaps.
The decision often comes down to compliance requirements, long-term security needs, and organisational risk tolerance rather than any immediate weakness in AES-128 itself.
In practice, most organisations will gain far more security by improving authentication, access controls, patching, and monitoring than by worrying about whether AES-128 or AES-256 is being used.





