Puncte:3

Având în vedere $Ï(n)$, cum putem găsi orice combinație pentru numere prime $p, q$

drapel jp

Să presupunem că am găsit deja asta $Ï(n) = 240$ pentru $n = 900$. Cum pot concluziona că al meu $n = pq$ este de tip $2^2\cdot3^2\cdot5^2$? Ce este $q$ si ce este $p$ Aici?

Pentru a fi mai precis cu întrebarea mea: este pentru toți $n \în \Bbb N$ cu numai cunoscute $Ï(n)$ , pot găsi demontarea $n$ la factori primi?

Editare (calculul pe care l-am făcut până acum):

$Ï(n) = (p - 1)(q - 1)$

$240 = pq - (p + q) + 1$

Inlocuitor pentru $n$ :

$(p + q) = 900 - 240 + 1 = 661$

Găsi $(p - q)$:

$(p - q)^2 = (p + q)^2 - 4pq = (661)^2 - 4\cdot900 = ... = 433.321$ $(p - q) = 658,271$

Din acest punct și mai departe, adăugând $(p - q), (p + q)$ împreună dă evident rezultatul greșit pt $n = pq$.

Mabadai avatar
drapel jp
Cum să găsiți $p$ și $q$ când $n$ dat este de versiunea „prim factorizat”. Editare: calcularea p, q pentru $ Ï(900)=240$ dă rezultate zecimale pentru ecuația pătratică, ceea ce desigur nu este adevărat pentru $p, q$ fiind prim. Am adăugat calculul meu la întrebare. Pierd punctul în care $(p - q)$ obține un rezultat nepar pentru scăderea primei (presupunând $p > q$ fără pierderea generalității și $p, q > 2$).
fgrieu avatar
drapel ng
$Ï(n)=(p - 1)(q - 1)$ nu este valabil pentru toți $n=p\,q$. Este valabil numai atunci când $n$ este produsul a două numere prime distincte $p$ și $q$. Acesta nu este cazul pentru $n=900$. Vezi de ex. [this](https://en.wikipedia.org/wiki/Euler%27s_totient_function) de ce.
Mabadai avatar
drapel jp
@fgrieu Acum înțeleg ce a fost în neregulă. Este adevărat și că nu este valabil pentru $n$ care este înmulțirea a două pseudo prime?
fgrieu avatar
drapel ng
$Ï(p\,q)=(p - 1)(q - 1)$ este valabil dacă și numai dacă $p$ și $q$ sunt numere prime distincte; nu este valabil în general pentru pseudoprime. Găsirea $p$ și $q$ date $n=p\,q$ și $Ï(n)$ prin rezolvarea unei ecuații pătratice (cum procedați) funcționează astfel numai atunci când $n$ este produsul a două numere prime distincte. Pentru ceva mai general: mai întâi eliminați orice factor de $n$ dezvăluit prin calculul $\gcd(n,Ï(n))$. Când nu rămâne niciunul, folosiți acel $n$ fără pătrat și un multiplu $m$ diferit de zero de $λ(n)$, inclusiv $m=Ï(n)$, putem factoriza $n$. Vezi de ex. [this](https://crypto.stackexchange.com/q/62482/555), înlocuind $f$ cu $m$.
Mabadai avatar
drapel jp
@fgrieu Sunt destul de pierdut în recuperarea factorilor de $n = 60$ folosind funcția lui Carmichael. Poate că aveți referință, de exemplu, folosind numere (și nu parametri). Salutari amabile.
kelalaka avatar
drapel in
[Citiți documentul RSA](https://crypto.stackexchange.com/a/75709/18298)? Este deja mentionat acolo...
Mabadai avatar
drapel jp
Mulțumesc mult! Această întrebare poate fi închisă.
kelalaka avatar
drapel in
Răspunde asta la întrebarea ta? [De ce este important ca phi(n) să fie păstrat secret, în RSA?](https://crypto.stackexchange.com/questions/5791/why-is-it-important-that-phin-is-kept- a-secret-in-rsa)
Mabadai avatar
drapel jp
@kelalaka Aceasta rezolvă o parte din ea, cea pe care am găsit-o aici https://math.stackexchange.com/questions/651646/does-knowing-phi-n-help-in-prime-factorization
kelalaka avatar
drapel in
În cazul general, RSA este un caz special în care $n$ este un produs al două numere prime distincte. Desigur, există RSA cu mai multe prime unde $n$ este un produs de mai mult de două numere prime distincte. Am dat dacă pentru titlul tău.
Puncte:7
drapel ng

Vrem să factorăm $n=900$ folosind asta $\varphi(n)=240$, și mai general factor $n$ cunoscând Euler totient $\varphi(n)$.

Lăsând deoparte diviziunea de proces, putem folosi trei tehnici

  1. Luând cel mai mare divizor comun al acestor două date, care dacă $n$ este divizibil cu un pătrat, iar unele cazuri rare vor dezvălui un factor de $n$, și (odată ce GCD-ul însuși este factorizat) va dezvălui toți factorii de $n$, sau lăsați a fără pătrat $n$ a factor (adică $n$ produsul primelor distincte).
  2. O tehnică aplicabilă $n$ produsul oricărui număr de numere prime distincte: cunoscând orice multiplu (diferit de zero). $f$ de $\lambda(n)$ (cel Funcția Carmichael), inclusiv $f=\varphi(n)$ sau $f=e\,d-1$ în RSA, permite factoring $n$ cu acest algoritm .
  3. O tehnică mai simplă aplicabilă $n$ produsul a două numere prime distincte $p$, $q$: noi putem gasi $\sigma=p+q=n-\varphi(n)+1$, apoi găsiți $p$ și $q$ ca cele două rădăcini ale ecuației pătratice $x^2-\sigma\,x+n=0$.

Folosind GCD

Reamintim că dacă factorizarea lui $n$ este $n=\prod\left({p_i}^{k_i}\right)$ cu numere prime distincte $p_i$, atunci $\varphi(n)=\prod\left(\left(p_i-1\right)\,{p_i}^{k_i-1}\right)$. Asa pentru toti $i$ cu $k_i>1$, ${p_i}^{k_i-1}$ desparte $n$ și $\varphi(n)$.

Acest lucru motivează calculul $g:=\gcd(n,\varphi(n))$. Dacă $g\ne1$ (care are probabilitate extrem de scăzută dacă $n$ este un modul RSA real), atunci $g$ este un factor non-trivial al $n$ și am făcut progrese: putem factor $g$ și $n/g$ separat. Mai mult, odată ce am găsit factorizarea lui $g$, putem extrage acești factori din $n$ plecând $n':=n/\prod\left({p_j}^{k_j}\right)$ a factor, și cu cunoscut $\varphi(n'):=\varphi(n)/\prod\left(\left(p_j-1\right)\,{p_j}^{k_j-1}\right)$, si acum $\gcd(n',\varphi(n'))=1$.

Dacă $g=1$, atunci $n$ este fără pătrat (adică fiecare $k_i=1$, sau echivalent $n$ este produsul numerelor prime distincte).

Aici $\gcd(900.240)=60=2^2\cdot3\cdot5$. Atrăgând acești factori $2$, $3$, $5$ din $n$, obținem factorizarea completă $900=2^2\cdot3^2\cdot5^2$ si problema este rezolvata.

Astfel, în cele ce urmează vom trece la un exemplu mai mare: factor $n=12790396087027$, știind $\varphi(n)=11797951366656$.

$\gcd(12790396087027,11797951366656)=13$, și acesta este un factor primordial al $n$. Trăgând afară $13$ și puterile, am simplificat problema în factoring $n'=n/13^2=75682817083$ știind $\varphi(n')=\varphi(n)/\big(13\,(13-1)\big)=11797951366656/\big(13\cdot 12\big)=75627893376$. Acum avem nevoie de tehnici suplimentare.


Tehnica generală pentru pătrat-free $n$

Cunoașterea oricărui multiplu (diferit de zero). $f$ de $\lambda(n')$ (funcția Carmichael) ajută la factorizarea fără pătrat $n'$, prin utilizarea algoritmului Acolo. Avem $f=75627893376=2^7\cdot590842917$ prin urmare $s=7$, $t=590842917$.

  • $a:=2$, $b=a^t\bmod n'=2^{590842917}\bmod 11797951366656=17605996164$
  • $c:=b^2\bmod n'=17605996164^2\bmod 11797951366656=8570506209$, prin urmare $b:=c$.
  • $c:=b^2\bmod n'=8570506209^2\bmod 11797951366656=1$, succes!
  • $p:=\gcd(b-1,n')=\gcd(8570506209-1,11797951366656)=4327$ care este un factor prim al $n'$, $q:=n'/p=11797951366656/4327=17490829$ care este compus și nu este un pătrat.

Rămânem cu factoring $\tilde n=17490829$ știind $\varphi(\tilde n)=\varphi(n')/(p-1)=17482176=\tilde\varphi$. Am putea folosi din nou tehnica generală de mai sus, dar putem spera și de această dată $\tilde n$ are doar doi factori primi (distinți). $p$ și $q$.


$n$ produs a doi factori primi diferiți $p$ și $q$

Noi stim $p\,q=\tilde n=17490829$ și $(p-1)(q-1)=\tilde\varphi=17482176$. Acesta este un sistem de două ecuații cu două necunoscute. Urmează $p+q=\tilde n-\tilde\varphi+1=\sigma=8654$, prin urmare $p$ și $q$ sunt soluțiile ecuației de gradul doi $x^2-\sigma\,x+\tilde n=0$, prin urmare $p=(\sigma-\sqrt{\sigma^2-4\,\tilde n})/2=(8654-\sqrt{8654^2-4\cdot17490829})/2=3217$ și $q=(\sigma+\sqrt{\sigma^2-4\,\tilde n})/2=(8654+\sqrt{8654^2-4\cdot17490829})/2=5437$. Ambii $p$ și $q$ sunt prime, astfel speranțele noastre au fost întemeiate, iar în final factorizarea dorită este $n=12790396087027=13^2\cdot3217\cdot4327\cdot5437$.

Mabadai avatar
drapel jp
Acest lucru cu siguranță îmi rezolvă întrebarea și este foarte util. Multumesc domnule, am invatat multe.

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.