Feature
AES-256-GCM: The Cipher Behind Every Inkrypt Note
AES is the block cipher that protects most encrypted data in the world. The part worth understanding is not the algorithm itself but the mode it runs in — because that is where a surprising number of real-world encryption failures originate.
What AES is
The Advanced Encryption Standard is a symmetric block cipher selected by NIST in 2001, after an open international competition, from a design originally called Rijndael. Symmetric means the same key encrypts and decrypts. Block cipher means it operates on fixed 128-bit chunks of data.
It has been under sustained public analysis for over two decades. No practical break of full AES exists. Modern processors implement it directly in hardware, so it is both extremely well-studied and extremely fast — an unusual and valuable combination.
Why 256-bit, and what that number does not mean
AES supports 128-, 192- and 256-bit keys. A common misreading is that 256-bit is "twice as strong" as 128-bit. It is not — the keyspace is 2^128 times larger.
Both are far beyond brute force. AES-128 is not breakable by any foreseeable classical computer. We use AES-256 partly for margin against future cryptanalysis, and partly because Grover's algorithm — a quantum search technique — would theoretically halve the effective key length, leaving AES-256 with a 128-bit security level and AES-128 with a 64-bit one. The cost of the larger key is negligible; the margin is worth having.
Key size is rarely the weak point
password123 provides the security of password123.GCM: the part that actually matters
A block cipher alone only encrypts one 128-bit block. A mode of operation defines how to handle a message of arbitrary length — and the choice of mode has historically caused far more breakage than the cipher itself.
The problem with unauthenticated modes
Older modes such as CBC provide confidentiality but not integrity. An attacker who cannot read your ciphertext can still modify it, and the recipient's decryption will happily produce altered plaintext without complaint. Padding-oracle attacks — which have broken real deployed systems — exploit precisely this gap.
What GCM adds
Galois/Counter Mode is an authenticated mode. Alongside the ciphertext it produces a 128-bit authentication tag, computed over the encrypted data. On decryption, the tag is verified first. If even one bit of the ciphertext has changed, verification fails and decryption refuses to proceed rather than returning corrupted plaintext.
- Confidentiality — an attacker cannot read the note.
- Integrity — an attacker cannot alter the note undetected.
- Authenticity — successful decryption means the ciphertext is exactly what was encrypted under that key.
In practice this means a wrong password and a tampered note produce the same outcome: decryption simply fails. There is no state in which you read a note that is subtly not what the author wrote.
The IV, and the rule you must not break
GCM requires an initialisation vector — 12 bytes, in the standard construction. The IV is not secret and is stored alongside the ciphertext. It exists so that encrypting the same plaintext twice produces different ciphertext.
GCM has one catastrophic failure mode: reusing an IV with the same key. Doing so does not merely weaken the encryption — it can allow an attacker to recover the authentication subkey and forge messages. This is not theoretical; it has broken production systems.
Inkrypt generates a fresh random IV for every encryption operation, including every re-save of an existing note, and a fresh salt with it — so each save derives a distinct key as well. The combination makes IV reuse under the same key structurally impossible in normal operation.
| Cipher | AES-256-GCM |
|---|---|
| Key length | 256 bits |
| Block size | 128 bits |
| IV length | 96 bits (12 bytes), random per operation |
| Authentication tag | 128 bits |
| IV reuse | Never — new IV and new salt on every save |
How to read another service's claims
- "AES-256 encryption" with no mode named is incomplete information. Ask which mode.
- "Military-grade" or "bank-level" encryption are marketing phrases with no technical meaning. AES is a public standard; there is no separate military tier.
- CBC without a separate MAC should prompt questions. Encrypt-then-MAC done correctly is fine; CBC alone is not.
- GCM, ChaCha20-Poly1305, or XChaCha20-Poly1305 all indicate authenticated encryption and are all good answers.
- No stated key derivation is the bigger red flag. AES-256 says nothing about how the key was produced, which is usually where the real weakness lives.
Frequently asked questions
Has AES-256 ever been broken?
Why AES-256 rather than AES-128?
What does GCM add over plain AES?
Is it a problem that the IV is stored unencrypted?
Will quantum computers break AES-256?
Related reading
AES vs RSA encryption
Why symmetric and asymmetric ciphers are used together rather than in competition.
Read morePassword-protected notes
How the 256-bit key is produced from a human password.
Read moreSecurity architecture
The complete parameter set and data flow.
Read moreEncryption glossary
IV, salt, block cipher, authentication tag — defined.
Read moreWrite your first encrypted note
No account, no email address, no download. Type a note, set a password, share the link.
Open the notepad