01 / PREDICTION
Conservative sufficient bound
Waiting for public challengeAn exact finite bound for the chosen lattice, not a cutoff for possible recovery.
CRYPTANALYSIS / ADVANCED
Coppersmith · Howgrave-Graham · Exact LLL
Recover an unknown RSA message suffix or a prime from known high bits, and inspect every step from the lattice to the verified answer.
SET UP THE EXPERIMENT
You know the prefix. A fresh suffix is encrypted with textbook RSA. Can public information recover the missing bits?
THE ATTACKER’S VIEW
Preparing keycrypto-lab://known-prefix/Public informationTURN THE MISSING PART INTO AN EQUATION
The full message is large. Only x, the unknown suffix, needs to be small.
The worker receives N, e, ciphertext, prefix, and suffix width. It receives no private key or secret suffix.
01 / PREDICTION
An exact finite bound for the chosen lattice, not a cutoff for possible recovery.
02 / CERTIFICATE
A short enough vector proves the modular root is also an integer root.
03 / RECOVERY
Every candidate must pass the original RSA equation or the hinted-factor check.
ALARM / CONFIDENTIALITY LOST
A correct encryption/decryption round trip does not establish confidentiality.
This attack knows the prefix and recovers the missing suffix. It does not recover an arbitrary message from its ciphertext.
FOLLOW THE EVIDENCE
Preparing a public challenge.
Run the attack to inspect the integer lattice.
Run the attack to inspect its reduction trace.
Run the attack to inspect root isolation and exact candidate checks.
THE IDEA BEHIND THE ATTACK
If the entire message is so small that cubing never wraps around the modulus, an integer cube root recovers it.
This is the integer cube-root attack. Håstad’s broadcast attack instead combines ciphertexts by CRT and compares with the product of the recipients’ moduli. Explore RSA Forge.
The prefix shifts a small suffix into a much larger message. Polynomial shifts encode the modular equation in an integer lattice.
The factor-hint scenario uses the same idea, but the equation vanishes modulo an unknown divisor. It needs leaked high bits and does not rely on a small public exponent.
LLL finds short combinations. When an integer is divisible by a large modulus and smaller in magnitude than that modulus, it must be zero.
Exact Sturm sequences isolate roots without scanning every suffix. Re-encryption or candidate divisibility supplies the final public check.
For degree r, multiplicity m, and t extra shifts, n = rm + t. Rows are N^(m−i) x^j f^i for 0 ≤ i < m, 0 ≤ j < r, followed by x^j f^m for 0 ≤ j < t. Column ℓ is scaled by X^ℓ. Completed rows are never reduced modulo N.
D = N^[rm(m+1)/2] X^[n(n−1)/2]. With δ = 3/4, the finite sufficient inequality is C X^Q < N^E, where Q = n(n−1), C = n^n 2^[n(n−1)/2], and E = 2βmn − rm(m+1). β = 1 for messages and 1/2 for the promised larger prime.
The sufficient bound is a guarantee for this construction, not a boundary beyond which recovery is impossible. Asymptotic scales N^(1/3) and N^(1/4) require suitable growing lattice parameters; they are not the finite guarantees for every browser preset.
For the selected original vector v, S = Σvℓ². Require nS < N^(2m) for the message, or nS < N^m for the larger-prime hint. Cauchy–Schwarz then gives |h(x₀)| < b^m. Integer row operations preserve divisibility by b^m, so h(x₀) = 0. The factor certificate is conditional on the declared larger-prime promise until a factor is found.
Increasing e is not a general repair for textbook RSA’s lack of a secure encryption encoding. This known-prefix/small-suffix equation does not directly describe correctly implemented RSA-OAEP. Read PKCS #1, §7.1 for the actual OAEP construction.
Out of scope: Håstad implementation, Wiener, Boneh–Durfee, Blömer–May, arbitrary exponents or multivariate polynomials, known-LSB hints, ROCA, BKZ, and an OAEP attack.
Keys and secrets stay in session memory. No server solver, telemetry, or secret persistence. Probable primes use a small-prime sieve and 64 independently sampled Miller–Rabin rounds. Demonstration keys are unsuitable for deployment.