Encryption / Message-level

McNeal Protocol

A separate encryption key for each message.

McNeal combines X25519 key agreement, double-ratchet key derivation, and ChaCha20-Poly1305 authenticated encryption. Its send and receive paths are documented below.

See protocol flow
KEY AGREEMENTX25519
KEY DERIVATIONDouble ratchet
AUTHENTICATED ENCRYPTIONChaCha20-Poly1305

Protocol overview

Message-key derivation and payload protection are distinct steps.

An ephemeral X25519 exchange and HKDF establish root key material. A double ratchet then derives message keys, including handling for packets that arrive out of order.

The message key feeds authenticated encryption and the keyed tone-encoding layer. The diagrams show how these parts fit into the sending and receiving pipelines.

Send / 01

Build and seal the outgoing frame.

McNeal Protocol send pipeline: X25519 key agreement, double-ratchet message key, keyed tone alphabet, tone encoding, fragmentation, ChaCha20-Poly1305 sealing, and frame construction
FIG. 01 Send pipeline

Receive / 02

Check the frame before decoding.

McNeal Protocol receive pipeline: frame validation, replay-window check, message-key resolution, authenticated decryption, fragment reassembly, and tone decoding
FIG. 02 Receive pipeline

Implementation details

Key agreement
Ephemeral X25519 exchange with HKDF-derived root key.
Message keys
Double-ratchet key derivation, with message-key handling for out-of-order packets.
Payload encryption
ChaCha20-Poly1305 authenticated encryption.
Encoding layer
Message-key-derived tone alphabet, followed by framing and optional fragmentation.
Replay handling
Sliding sequence window rejects duplicate and stale frames.

McNeal currently uses X25519 for key agreement and ChaCha20-Poly1305 for authenticated encryption. It is not post-quantum cryptography.

Technical evaluation

Discuss the protocol with One Island.

Contact us