Handshake once • Stream after

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.