Pentru RSA pe n biți, trebuie să găsiți două numere prime al căror produs este un număr de n biți, adică aproximativ n/2 biți fiecare. De fapt, unul puțin mai mic și unul puțin mai mare, pentru că nu doriți ca numerele prime să fie prea apropiate.
Aproximativ unul din ln M numere din jurul lui M este prim; acesta este logaritmul natural. Ln (2) este aproape de 0,7. Dacă M = 2^(n/2), atunci ln M â 0,35n. Verificați numai numere întregi impare care au de două ori mai multe șanse să fie prime, cu probabilitatea 2 / 0,35n. Testarea a 0,175n numere întregi impare găsește un prim. Ai nevoie de două, deci aproximativ 0,35n.
Dar rețineți că mulți dintre aceștia au divizori mici și pot fi identificați foarte repede; de exemplu prin folosirea unei site care elimină numerele cu factori < 1000 sau 10.000. Pentru a accepta un prim, veți rula testul Miller-Rabin de 50 sau 100 de ori, în timp ce pentru 3/4 dintre non-prime îl rulați o dată, pentru 3/4 din restul îl rulați de două ori etc. Ideea este că testarea unui non-prime pentru primalitate este de obicei destul de rapidă.Testarea celor două numere prime reale durează mult timp. Numărul de compozite pe care le testați pentru primalitate nu contează prea mult.
PS Tocmai mi-am dat seama că toată lumea supraestimează cu un factor 2. Să zicem că am decis că vreau un prim aproape de un K impar, așa că testez K, K+2, K+4 etc până mă întâlnesc cu un prim. Fie p cel mai mare prim mai mic decât K și q primul prim >= K. Numărul de numere off de testat nu este decalajul q-p, împărțit la 2 (pentru că testăm doar numere impare), ci jumătate, deoarece K poate fi oriunde în acel gol.
PPS Tocmai mi-am dat seama că este ceva în neregulă cu acel argument...