How APEX-256 is meant to be used
One key exchange to start a session. Then a stream cipher for everything after it. That is the whole design, and it is why the cipher can stay small.
Three steps
1. Handshake, once
A standardized KEM
Two devices agree on a shared secret with a standardized KEM, such as ML-KEM (FIPS 203). This is where post-quantum protection lives, because this is what harvest-now-decrypt-later attacks aim at.
2. Derive the session key
256-bit key + 64-bit or 256-bit (X256) nonce
The shared secret goes through a standard key-derivation function and becomes the APEX-256 key and either a standard 64-bit session nonce or an extended 256-bit (X256) nonce (2^128 random-nonce birthday safety with zero added RAM).
3. Stream, after that
Ciphertext = plaintext length
Every message goes out exactly as long as it went in. No padding and no growth from the cipher. Supports standard streaming, 256-byte forward-secrecy keyframe ratcheting, and 4x to 8x fast multi-byte extraction.
Is it post-quantum?
The key exchange is. The cipher is a 256-bit symmetric primitive. It is not a post-quantum algorithm and we don’t call it one.
A 256-bit key leaves extra margin against quantum search attacks on the bulk side. That margin comes with the key size. It is not anything exotic.
APEX-256 encrypts. It does not authenticate by itself.
Without a MAC, an attacker can flip bits in the ciphertext and the same bits flip in the plaintext. Pair the core stream cipher with an authentication layer.
The SDK includes APEX-AEAD (AEAD-X256 and AEAD-W64) for domain-separated Encrypt-then-MAC authentication with strict Release of Unverified Plaintext (RUP) immunity and full 256-bit F256 companion state. Alternatively, we have prototyped a hybrid pipeline that puts the handshake and message headers under ASCON-128, a NIST standard, and the bulk payload under APEX-256. See APEX-256 with ASCON.
Two rules you can’t skip
- Never reuse a key and nonce pair. Reuse a nonce and the keystream repeats; XOR two ciphertexts and you get the XOR of the plaintexts.
- New session, new key. Don’t keep a key alive longer than you have to.
Where the details are: exact parameters, reference code and test vectors are restricted intellectual property, available under an Apex Evaluation NDA. Request access.