One-byte RSA modulus patching speeds up with shared sieving

A research implementation searches roughly 130,000 one-byte variants of a 4096-bit RSA modulus without factoring each candidate independently. It computes divisibility for all 256 values at each byte position in one pass over small primes, then filters candidates before costly Miller-Rabin tests.

One-byte RSA modulus patching speeds up with shared sieving

Key points

  • Candidates at a fixed byte position form an arithmetic sequence, allowing one modular residue to identify the small prime divisors of all 256 possible values.
  • Counting small prime factors removes most candidates, while checking the public exponent against the candidate totient eliminates about three quarters of the remaining cases when the exponent is 3.
  • The implementation favors GCC and GMP because MSVC lacks GCC-style 128-bit integers and cannot use the same optimized GMP multiplication path.

Context

The work is presented as an experimental exercise in finding a usable private key by changing one byte of an RSA modulus. Its optimization applies to this tightly bounded search rather than to general-purpose integer factorization or conventional RSA decryption.

What this means for you

Directly applicable

Developers can reuse the batch-sieving pattern to avoid repeated modular checks in tightly bounded byte-level searches involving RSA values.

Who benefits: Developers working with RSA validation or legacy patching can benefit from the optimization as a concrete research reference, although no broad production benefit is established.

The site could assess where workload-aware sieving and batch processing can reduce repeated computation in legacy-system security reviews.

Share article: