Algoritmul de criptare rsa

În prezent, criptarea asimetrică bazată pe cheia publică RSA (înseamnă Rivest, Shamir și Aldeman - creatorii algoritmului) utilizează majoritatea produselor pe piața securității informațiilor.







Criptostabilitatea sa se bazează pe complexitatea factorilor de numere mari, și anume - pe dificultatea excepțională a sarcinii de a determina cheia secretă pe baza unei chei deschise, deoarece aceasta va necesita rezolvarea problemei existenței divizoarelor întregi. Cele mai cripto-rezistente sisteme folosesc 1024-biți și numere mari.

Luați în considerare algoritmul RSA din punct de vedere practic.

În primul rând, trebuie să generați chei publice și private:
  • Luați două prime primare p și q.
  • Definiți n ca rezultat al înmulțirii p pe q (n = p * q).
  • Alegem un număr aleator, pe care îl numim d. Acest număr trebuie să fie relativ prime (să nu aibă un singur divizor comun decât 1) cu înmulțire (p-1) * (q-1).
  • Definim un număr e pentru care relația următoare (e * d) mod ((p-1) * (q-1)) = 1 este adevărată.
  • Noi numim numere deschise e și n, și secret - d și n.






Pentru a cripta datele de pe o cheie publică, aveți nevoie de următoarele:
  • spargeți textul criptat în blocuri, fiecare dintre acestea reprezentând un număr M (i) = 0,1,2. n-1 (adică numai până la n-1).
  • criptează textul, considerat ca o secvență de numere M (i) cu formula C (i) = (M (I) ^ e) mod n.

Pentru a decripta aceste date folosind o cheie secretă, este necesar să efectuăm următoarele calcule: M (i) = (C (i) ^ d) mod n. Ca urmare, se va obține un set de numere M (i) care reprezintă textul sursă.

Următorul exemplu demonstrează algoritmul de criptare RSA:

Noi criptăm și descifrăm mesajul "SAV" prin algoritmul RSA. Pentru simplificare, să luăm numere mici - acest lucru ne va scurta calculele.
  • Alegem p = 3 și q = 11.
  • Definim n = 3 * 11 = 33.
  • Gasim (p-1) * (q-1) = 20. Prin urmare, d va fi, de exemplu, 3: (d = 3).
  • Alegem numărul e prin următoarea formulă: (e * 3) mod 20 = 1. Aceasta înseamnă că e va fi, de exemplu, 7: (e = 7).
  • Imaginați-vă mesajul criptat ca o secvență de numere în intervalul de la 0 la 32 (nu uitați că se termină în n-1). Scrisoarea A = 1, B = 2, C = 3.

Acum criptăm mesajul folosind cheia publică

C1 = (3 ^ 7) mod 33 = 2187 mod 33 = 9;
C2 = (1 ^ 7) mod 33 = 1 mod 33 = 1;
C3 = (2 ^ 7) mod 33 = 128 mod 33 = 29;

Acum, descifrăm datele folosind cheia privată.

M1 = (9 ^ 3) mod 33 = 729 mod 33 = 3 (C);
M2 = (1 ^ 3) mod 33 = 1 mod 33 = 1 (A);
M3 = (293) mod 33 = 24389 mod 33 = 2 (B);







Articole similare

Trimiteți-le prietenilor: