Puncte:1

Finalizarea criptării RSA

drapel bl

Fiind nou în criptologie, încerc să înțeleg cum aș finaliza manual criptarea RSA. Nu pot decât să urmez formula până acum înainte de a deveni foarte confuz.

Vreau să criptez valoarea „123”

În primul rând, trebuie să selectez 2 numere prime. Aleg: $$p = 101\ q = 103$$

Apoi, calculez: $$n = p\cdot q = 10403$$.

După aceea, calculez: $$\varphi(n) = (p-1)\cdot(q-1) = 10200$$

Acum, vreau să aleg un exponent public și aleg 3 pentru asta.

Cred că formula de utilizat este: $$d = e^{â1}\bmod\varphi(n)$$

Nu înțeleg cum să conectez această formulă și nici nu știu cum aș cripta „123” folosind această formulă. De asemenea, nu știu cum aș găsi nici exponentul de decriptare.

Orice ajutor ar fi foarte apreciat!

dave_thompson_085 avatar
drapel cn
e (și, de asemenea, d, dar nu alegeți asta) trebuie să fie coprim pentru p-1 și q-1. Q-1 dvs. este 102 și 3 nu este co-prim la 102. Dacă ați dorit securitate reală, ceea ce este imposibil cu o dimensiune de jucărie mică ca aceasta, alegerea p și q adiacente sau aproape este defectă. d poate fi calculat ca e mod invers _fie_ phi(n) (Euler) _sau_ lambda(n) (Carmichael). Toate cele de mai sus sunt acoperite de wikipedia și de multe multe Q-uri existente.
fgrieu avatar
drapel ng
După cum sa menționat mai sus, alegerea dvs. de $e$ este incompatibilă cu alegerea dvs. de $q$. Pentru calcularea lui $d$, consultați (jumătate)[algoritmul Euclidian extins](https://en.wikipedia.org/wiki/Algoritmul_Euclidian_Extins#Computing_multiplicative_inverses_in_modular_structures) sau [this](https://crypto.stackexchange. /q/5889/555). Criptarea RSA pentru manuale este pe $m\to c=m^e\bmod n$. Decriptarea este pe $c\to m=c^d\bmod n$. Aceste calcule sunt [modular exponentiation](https://en.wikipedia.org/wiki/Modular_exponentiation).
jjj avatar
drapel cn
jjj
În practică, p și q nu ar trebui să fie prea apropiate, deoarece acest lucru face factorizarea lui n ușoară. (Doar spun, pentru că alegi p și q aproape unul de celălalt)
Puncte:1
drapel in

Fgrieu a dat în esență răspunsul în comentariu, voi încerca să detaliez puțin sub formă de răspuns.

Puteți utiliza algoritmul euclidian extins pentru a găsi d din e, dar rețineți că e pe care l-ați selectat nu va funcționa. Pentru că e nu este coprim cu $\varphi(n)$ Trebuie să selectați altul. Pentru eficiență, de obicei ne place să selectăm un e mic cu câțiva biți setați, de obicei de formă $2^k+1$ deoarece 3 nu merge poti incerca si altele. https://en.wikipedia.org/wiki/Extended_Euclidean_algorithm Iată un calculator online: https://planetcalc.com/3298/

Nu vă va oferi doar mcd-ul (care trebuie să fie 1), ci vă va oferi și a,b astfel încât: $a*e + b*\varphi(n) = 1$ ceea ce înseamnă în esență $a*e = 1 mod \varphi(n)$ ceea ce ne-am dorit.

Apoi criptați prin calcul $c = m^e\space mod(n)$ și decriptați folosind $m = c^d\space mod(n)$ Ambele realizate prin https://en.wikipedia.org/wiki/Modular_exponentiation

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.