Knowledge Base
Diffie-Hellman Parameter
F

768-bit MODP Group/Oakley Group 1 (RFC 2409, RFC 2539)

Summary

Name:
768-bit MODP Group/Oakley Group 1 (RFC 2409, RFC 2539)
Key size:
768 bits
Publishers:

Check your host!

Type a URL to analyze a service

Get a prompt and clear overview of your security configuration. Right now!

Security

F
Key Size
Name

768

Security

The Diffie-Hellman ephemeral public key parameter[409][410][411] with prime size less or equal than 768-bit[425] is weakened against logjam attack[7][8][9][10], but can only be exploited by an academic team.

Recommendations

Use a well-known Diffie-Hellman ephemeral public key parameter[426][427][428], or generate a custom Diffie-Hellman ephemeral public key parameter[409][410][411] with a size greater or equal than 2048 bits but less or equal than 4096 bits. In the case of custom parameters, validate that the prime is a safe prime[176] to avoid a small subgroup confinement attack[72][73].

A+
Prime
Name

Safe Prime

Security

Diffie-Hellman ephemeral public key parameter[409][410][411] contains a safe prime[176], so the connection is certainly not vulnerable to a small subgroup confinement attack[72][73].

A
Post-Quantum
Name

False

Security

The Diffie-Hellman[99][100][101][102][103] key exchange provides no protection against a cryptanalytic attack by a quantum computer, and no classical Diffie-Hellman does — just as no classical elliptic curve does — because a quantum computer breaks the hardness assumption they rely on. Only a hybrid key exchange (a classical algorithm combined with a post-quantum cryptography[158][159] one) or a pure post-quantum algorithm is quantum-safe.

Recommendations

Enable a hybrid key exchange or a pure post-quantum algorithm on your server, and prefer it where the configuration allows, so the connection stays secure against a future quantum computer.

Parameter Numbers

Prime (p)
0xffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff
Copy to clipboard
Generator (g)
0x2
Copy to clipboard

Representations

PEM

Default private value length
-----BEGIN DH PARAMETERS-----
MGYCYQD//////////8kP2qIhaMI0xMZii4DcHNEpAk4IimfMdAILvqY7E5siUUoI
eY40BN3vlRmzzTpDGzArCm3yXxQ3T+E1bW1RwkXkhbV2Yl5+xvRMQummOjYg////
//////8CAQI=
-----END DH PARAMETERS-----
Download dhparam.pem
Copy to clipboard
Small private value length
-----BEGIN DH PARAMETERS-----
MGoCYQD//////////8kP2qIhaMI0xMZii4DcHNEpAk4IimfMdAILvqY7E5siUUoI
eY40BN3vlRmzzTpDGzArCm3yXxQ3T+E1bW1RwkXkhbV2Yl5+xvRMQummOjYg////
//////8CAQICAgDh
-----END DH PARAMETERS-----
Download dhparam-small.pem
Copy to clipboard

PARI/GP

powermod(x, k, m) = lift(Mod(x, m) ^ k);

g = 0x2;
p = 2^768 - 2^704 - 1 + 2^64 * (floor(2^638 * Pi) + 149686);
s = 256;

a = 2 ^ (s - 1) + random(2 ^ (s - 1));
A = powermod(g, a, p);

b = 2 ^ (s - 1) + random(2 ^ (s - 1));
B = powermod(g, b, p);

S = powermod(B, a, p);
Copy to clipboard

LaTeX

$\begin{eqnarray}
p \equiv 2^{768} - 2^{704} - 1 + 2^{64} * (\lfloor 2^{638} * \pi \rfloor + 149686) \\
g \equiv 0x2 \\
\\
a \in \mathbb{Z}_q \\
b \in \mathbb{Z}_q \\
\\
A \equiv g^a \pmod{p} \\
B \equiv g^b \pmod{p} \\
\\
S \equiv {(g^{a})}^{b}={(g^{b})}^{a}=g^{ab} \pmod{p}
\end{eqnarray}$
Copy to clipboard