Puncte:0

Numărul de numere întregi impare până la care trebuie să testăm pentru a găsi unul care este prim pentru orice dimensiune arbitrară a modulului RSA

drapel at

Dimensiunile populare ale modulului RSA sunt $1024$, $2048$, $3072$ și $4092$ pic. Câte numere întregi impare aleatoare trebuie să testăm în medie până când ne așteptăm să găsim unul care este prim? Cunosc cam pe fiecare $\ln p$ numerele întregi au un prim. Pentru o $1024$ pic $p$, $\ln p = 710$. În medie, trebuie să testați aproximativ $710/2=355$ numere impare înainte de a găsi un prim. Este adevărat și putem extrage formula $(\ln p)/2$ pentru orice dimensiune arbitrară a modulului RSA?

kelalaka avatar
drapel in
Vezi întrebarea: [Teorema numărului prim - RSA](https://crypto.stackexchange.com/q/11106/18298)
Mohammadsadeq Borjiyan avatar
drapel at
Mulțumiri. Da, știu formula numerelor prime mai mici decât x pe care le-ai menționat. Acum este adevărată concluzia mea?
poncho avatar
drapel my
Pentru a lăsa în cale complexitatea implementărilor reale, folosim adesea cernerea pentru a elimina multiplii numerelor prime mici (de exemplu, toate numerele prime mici mai mici de 10.000); aceasta reduce considerabil numărul așteptat de valori pe care trebuie să le supunem unor teste mai complete; cu toate acestea complică și aplicarea simplă a teoremei numerelor prime...
gnasher729 avatar
drapel kz
Kekalaka ai nevoie de logaritmul natural.
Puncte:-1
drapel kz

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...

drapel cn
Ce vrei să spui cu „în timp ce pentru 3/4 din non-prime îl rulezi o dată, pentru 3/4 din rest îl rulezi de două ori etc.”? Se pare că presupuneți că un non-prim trece un test Miller-Rabin cu probabilitate 1/4, ceea ce este mult prea mare. Cu excepția cazului în care cineva (poate rău construind un număr special) ți-a dat candidatul principal, poți fi destul de sigur că un număr aleatoriu de 1000 de biți care trece testul Miller-Rabin este prim. Motivul pentru repetarea testelor MR este de a convinge un evaluator că probabilitatea de a nu fi prim este *probabil* mai mică decât - să spunem - $2^{-80}$.
poncho avatar
drapel my
Acest răspuns presupune, de asemenea, că veți folosi Miller-Rabin pentru testul de primalitate; asta nu este neaparat adevarat. De exemplu, dacă utilizați algoritmul Shawe-Taylor (care începe cu un factor prim mare de $p-1$), aveți nevoie de o singură iterație dacă atingeți un prim. Din experiența mea, sarcina de a construi valorile prime din ce în ce mai mari (pentru a fi factorul mare de $p-1$ pentru următorul prim mai mare) este mai rapidă decât Miller-Rabin repetat.
drapel cn
Jumătate din acest răspuns se adresează unei întrebări, care nu a fost pusă deloc în întrebare.
gnasher729 avatar
drapel kz
Probabilitatea de 3/4 ca un număr compus să eșueze o trecere Rabin-Miller este ușor de demonstrat. Deci, cel puțin 3/4 din numerele pe care le testați pentru primalitate eșuează cu o singură trecere, 3/4 din sfertul rămas eșuează în a doua trecere etc. Numai când testați un prim real aveți nevoie de multe treceri. Prin urmare, numărul de candidați pe care îi testați nu este foarte relevant; cheltuiți cea mai mare parte a muncii pe o singură valoare care este prima.
Puncte:-2
drapel cn

Nu, te înșeli, pentru că

Știu că aproximativ fiecare ln p numere întregi au un prim.

este o estimare aproximativă, care este de fapt greșită.

Estimarea funcției de numărare a primelor $\Pi(p)=p /ln(p)$ estimează numerele prime totale între 0 și $p$. Deci, pentru un număr cu x biți, trebuie să vă uitați la $\Pi(2^{x}) - \Pi(2^{x-1})$ și comparați-l cu numărul total de candidați, care sunt $2^{x-2}$, când luați în considerare doar numerele impare.

Nu ești departe, iar diferența este mică pentru numere mari, dar formula nu este atât de simplă.

gnasher729 avatar
drapel kz
âAproximativâ. Are aproximativ dreptate. Și exponenții tăi sunt diminuați cu unu, iar funcția de numărare a primelor nu estimează.
drapel cn
@gnasher729 Este aproximativ la fel de corect ca a spune $\Pi=3$. Ai dreptate despre exponenții scoși de unul, am schimbat asta.
Daniel S avatar
drapel ru
O estimare mai precisă pentru funcția de numărare a primelor este $\pi(x)\sim\int_2^x\frac{dt}{\log t}$ care echivalează euristic cu observația lui Gauss că numerele prime în jurul $t$ au densitate. în jur de $1/\log t$. Cu alte cuvinte, estimarea din întrebare este mai precisă decât $(2^x/(\log 2^x)-2^{x-1}/(\log 2^{x-1}))/2^{ x-2}$.
drapel cn
Densitatea la un anumit punct nu este aceeași cu densitatea pe un interval mare. Și acesta a fost punctul principal aici.
Daniel S avatar
drapel ru
Conform sagemath $\mathrm{li}(2^{1024})-\mathrm{li}(2^{1023})\aproximativ 1,2669e305$, în timp ce $2^{1023}/1024\log(2)\aprox. 1,2663e305$ și $2^{1024}/1024\log(2)-2^{1023}/1023\log(2)\aproximativ 1,2651e305$. Rețineți că eroarea din estimarea $\mathrm{li}(x)$ va fi (presupunând RH) $O(x^{1/2+\epsilon})$ și deci mai mică decât, să zicem, 1e200. Estimarea din întrebare este mai precisă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.