Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

X448 is a Diffie–Hellman key-agreement function built on Curve448. TLS 1.3 supports it as a key-exchange group, but that does not mean every TLS connection uses it: both peers and their configurations must support and select it. RFC 7748 assigns Curve448 an approximately 224-bit classical security level. That is a larger classical security margin than Curve25519’s approximately 128-bit level—not protection against sufficiently capable quantum computers.

What is X448?

X448 is a function for elliptic-curve Diffie–Hellman (ECDH): two parties use their private scalar and the other party’s public value to calculate a shared value. The function is associated with Curve448, a Montgomery-form elliptic curve. The names are related but not interchangeable: Curve448 names the curve, while X448 names the scalar-multiplication function used for key agreement on it.

In practice, a protocol uses X448 to help two endpoints derive shared secret material without sending that shared value directly over the network. A protocol’s key schedule can then use the result to derive traffic keys. X448 does not encrypt application data by itself, identify the other endpoint, or sign a message. Those are separate jobs handled by the surrounding protocol and its authentication mechanisms.

What does “448” mean, and how secure is X448?

The number in the name refers to the curve’s size, not to 448-bit security. RFC 7748, an Internet Research Task Force Informational RFC published in 2016, describes Curve448 as providing approximately 224-bit security against classical attacks. It compares this with approximately 128-bit security for Curve25519. These are security-level estimates, not key lengths or guarantees that a system is invulnerable.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The larger classical security margin comes with a performance trade-off. RFC 7748 describes Curve448 as a choice for a larger margin against possible analytical advances in elliptic-curve cryptanalysis, while noting Curve25519 was considered safe under reasonable projections of classical computing capabilities. The right choice depends on the application’s threat model, the cost on its target hardware, and whether both endpoints can use the chosen group.

Property X448 / Curve448 X25519 / Curve25519
Approximate classical security level 224 bits, as stated in RFC 7748 (2016) 128 bits, as stated in RFC 7748 (2016)
Diffie–Hellman function output/input size 56 bytes 32 bytes
Quantum resistance No; a sufficiently large quantum computer would break it No; a sufficiently large quantum computer would break it
Choice considerations Larger classical margin; weigh performance and peer support Smaller classical margin; weigh performance and peer support

Neither curve is post-quantum cryptography. The distinction matters: a larger classical security estimate does not make X448 a hedge against a sufficiently powerful quantum computer. Systems with a quantum-adversary requirement need to assess post-quantum or hybrid key-establishment options specified and supported by their protocol stack; X448 alone does not meet that requirement.

Does TLS 1.3 support X448?

Yes. TLS 1.3 defines X448 as one of its supported named groups for ephemeral key exchange. During a handshake, peers can exchange X448 public values in key shares and compute the corresponding shared value. TLS then feeds the key-exchange result into its key schedule, which derives the connection’s traffic keys.

Rank #2
Sale
Full Stack Python Security: Cryptography, TLS, and attack resistance
  • Full Stack Python Security: Cryptography, TLS, and attack resistance
  • Manning
  • ABIS BOOK

A supported group is not the same thing as a negotiated group. An implementation may offer X448 but not enable it in a particular build or configuration; the other endpoint may not support it; or the peers may choose a different mutually supported group. OpenSSL’s 3.1 documentation lists X448 key types and says X25519 and X448 key types are implemented in its default and FIPS providers. That documents capability in that OpenSSL release, not universal availability across TLS products, operating systems, builds, or remote servers.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Key exchange is not authentication or a cipher suite

X448 contributes to key agreement. It does not tell a client which server it has reached. TLS certificate authentication is a separate handshake function, and the negotiated symmetric cipher is another separate choice. Seeing an X448 key exchange therefore does not, by itself, establish what certificate was validated or which symmetric algorithm protects application records.

Likewise, “TLS supports X448” should not be read as “this website uses X448.” A real connection uses the result of negotiation between the two endpoints, constrained by their supported groups and configuration. To confirm the behavior that matters, inspect the negotiated group for the specific connection in the client, server, or TLS instrumentation you operate; do not infer it merely from a library’s feature list.

How X448 values are encoded and checked

RFC 7748 specifies 56-byte strings for X448 inputs and outputs. Its Curve448 base-point u-coordinate is 5. Implementations need to follow the RFC’s scalar-processing and byte-encoding rules; using a different encoding or treating these values as arbitrary big-endian integers can prevent interoperability.

The shared output also needs protocol-appropriate handling. RFC 7748 permits checking whether the computed shared result is all zero and says an implementation can abort on that result without leaking additional information about the shared value. It cautions protocol designers not to assume “contributory behaviour” from these Diffie–Hellman functions alone. In practical terms, a caller should follow the protocol’s specified validation and failure behavior rather than assuming that any peer-provided public value necessarily contributes a secret known only to both parties.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Do not treat a successful X448 calculation as proof of the other party’s identity. Authentication must come from the surrounding protocol, such as TLS certificate validation, or another explicitly designed authentication mechanism. Key agreement and identity checks solve different problems.

Is X448 constant-time or side-channel-proof?

RFC 7748 says the specified curves are designed to lend themselves to constant-time implementations and exception-free scalar multiplication, properties intended to resist a range of side-channel attacks, including timing and cache attacks. That is a design goal and an implementation advantage—not proof that every implementation is constant-time or free from side-channel vulnerabilities.

Security depends on the concrete library, build, provider, hardware, and protocol integration. Use maintained cryptographic implementations, follow their security guidance, and avoid implementing curve arithmetic yourself unless that is the work you are qualified and equipped to audit. A standards-compliant algorithm can still be undermined by a defective implementation, unsafe secret handling, or incorrect integration.

How to decide whether to use X448

  • Start with the security requirement. If the requirement is approximately 224-bit classical security for this key agreement, X448 is the relevant option in the RFC 7748 comparison. Do not describe that requirement as quantum resistance.
  • Check the actual endpoints. Verify support and configuration on both client and server, and confirm the group negotiated in the environment you care about. Library support alone does not establish end-to-end support.
  • Measure on the target platform. Compare performance and resource costs for the workloads and hardware you deploy. The RFC’s security estimates do not predict your application’s latency or throughput.
  • Keep protocol responsibilities separate. Use TLS authentication to establish peer identity, the TLS key schedule to derive traffic keys, and the specified failure handling for invalid or all-zero results.
  • Account for interoperability. If one endpoint cannot use X448, the connection may negotiate another group or fail, depending on the available groups and policy. Set group preferences only with a clear compatibility and security objective.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshooting X448 support in TLS

The library lists X448, but the connection does not negotiate it

Check both endpoints, not only the local library. Confirm the actual library release and provider in use, whether the feature is enabled in the deployed build, and whether local policy or configuration restricts the groups offered. Then inspect the negotiated group from the live handshake. An OpenSSL 3.1 capability statement cannot establish what a different product or a remote peer offers.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The handshake fails after changing group configuration

Review the complete set of groups enabled at each endpoint and any policy that limits their use. A configuration that leaves no mutually supported option can prevent a successful exchange. Restore a mutually supported configuration, then test negotiation again; avoid assuming a failed handshake means the curve arithmetic itself is defective.

Two implementations produce different results

Check that each implementation is using X448 rather than another function, that the exchanged values are represented as the RFC’s 56-byte strings, and that scalar processing and decoding follow RFC 7748. Also check whether either side is handling an all-zero shared result according to its protocol. If the values are part of TLS, diagnose the full handshake and its selected group rather than comparing raw values without accounting for protocol encoding.

A connection uses X448, but the application still needs identity assurance

Verify the separate authentication step. In TLS, inspect certificate validation and the peer identity checks performed by the client. X448’s shared-value calculation alone does not authenticate the server or client.

ScreenshotNeo is for website screenshots, not TLS key exchange

ScreenshotNeo is a website screenshot API and MCP server from Yorker Media, not an X448 implementation or a TLS diagnostic tool. If your separate task is capturing web pages, it can return a PNG, JPEG, WebP, or PDF from one GET request; its clean-shot options accept consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets before capture. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for AI agents using Claude, Cursor, or another MCP client.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

For a screenshot rather than a TLS key exchange, see ScreenshotNeo. Its free plan includes 1,000 screenshots per month without a card; paid plans start at $5 for 3,000 shots. Sign up for free.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.