Skip to main content
NTL’s most important security design decision: cryptography is a module, not a foundation.

The Problem with Hardcoded Crypto

Every major protocol today has cryptographic assumptions baked into its core:
  • TLS uses RSA or ECDSA for key exchange
  • Bitcoin uses secp256k1 for signatures
  • Ethereum uses ECDSA with keccak256
  • HTTPS certificates depend on RSA/ECC
When quantum computing breaks these schemes (not if — when), every protocol that hardcoded them faces an existential rewrite.

NTL’s Approach

NTL defines a CryptoModule interface that all cryptographic operations go through:

Default Implementation

NTL ships with a default PostQuantumModule that uses: These are the current NIST Post-Quantum Cryptography standards. When they’re superseded, a new module is published — the protocol doesn’t change.
pq-v1 is specified but not implemented. The only module the reference implementation provides today is classical-v1 — Ed25519 signatures, X25519 key agreement, BLAKE3 hashing. See spec/crypto-interface for the full status table.A node configured for a module this build cannot provide fails to start, naming the modules it does support. It does not silently fall back: an operator who asked for post-quantum signing and got Ed25519 has been told the opposite of the truth about their deployment’s confidentiality horizon.

Swapping Modules

crypto_module is a top-level field, not a [crypto] table:
Nodes negotiate crypto modules during the synapse handshake. If two nodes support different modules they fall back to the highest common module, or refuse the synapse.

Hybrid Mode

Design, not shipped. hybrid-v1 is specified; no implementation provides it yet.
The intent is that during the transition period a hybrid mode signs and encrypts with both classical and post-quantum algorithms. This provides backward compatibility with systems that don’t yet support PQ crypto while maintaining quantum resistance.
Last modified on September 11, 2026