42 0 265KB
Ana Maria Buta gr. 223 Informatica anul II
Algebra computationala Prof. Sacarea Christian
Algoritmul RSA Algoritmul de criptare RSA foloseste o cheie publică si o cheie privata. Acest algoritm a fost descoperit in 1977 de un grup de cercetători de la MIT - Ronald Rivest, Adi Shamir, Leonard Adelman - si s-a numit cu initialele creatorilor lui: RSA. Generarea cheilor 1. Se aleg doua numere prime suficient de mari P si Q 2. Se calculeaza N = P * Q si (φ) phi = (P - 1)*(Q - 1). 3. Se alege un intreg E, 1 < E < phi astfel incat cmmdc(E, phi) = 1 4. Se calculeaza exponentul secret D, 1 < D < phi, astfel incat E * D ≡ 1 (mod
phi).
D = E^-1 mod phi (modular inversion). 5. Cheia publica este formata din perechea (N, E) iar cheia privata este (N, D). De asemenea valorile lui P si Q ar trebui sa fie private Criptarea Cel care trimite mesajul, inidividul A face urmatoarele: 1. Obtine cheia publica a celui care primeste mesajul, individul B 2. Transforma textul de trimis intr-un sir de octeti 3. Fiecare octet m din sirul de octeti generat anterior se va transforma in text cifrat C astfel: C = m^E mod N.
4. Trmite sirul de caractere criptate catre individul B Decriptarea Cel care primeste mesajul, individul B face urmatoarele: 1. Foloseste cheia privata (N, D) pentru a calcula caracter din textul cifrat
m = C^D mod N, Pentru fiecare C
2. Extrage caracterele din fiecare intreg m generat la punctul 1 si obtine textul initial. Nota: Implementarea se afla in fisierul RSA.java
Fisierele aplicatiei Directorul aplicatiei contine urmatoarele fisiere: • RSA.java - implementarea algoritmului de criptare RSA - vezi pag 1 • RSAFrame.java - implementarea Graphical User Interface • RSAMain.java - punctul de intrare in aplicatie • ExitListener.java - clasa auxiliara folosita in RSAFrame • JDialogException.java - clasa pentru afisarea exceptiilor folosita in RSAFrame • JPanelLargeText.java - clasa pentru afisarea unui text lung (ex. textul criptat) folosita in RSAFrame • build.bat - executabil compileaza clasele aplicatiei. Conditie necesara: calea catre utilitarul javac trebuie sa fie pusa in PATH • start.bat - dupa compilarea claselor de mai sus, acest executabil deschide aplicatia.
1
Ana Maria Buta gr. 223 Informatica anul II
Algebra computationala Prof. Sacarea Christian
Manualul utilizatorului 1. Porniti aplicatia folosind executabilul start.bat dupa ce, in prealabil, ati rulat cu succes executabilul build.bat 2. Daca plicatia porneste corect veti vedea urmatoarea interfata grafica:
3. Introduceti numarul de biti al numerelor prime ce se vor genera. Apasati butonul Genereaza chei. Rezultatele acestei operatii vor aparea in casutele: Numarul prim P in baza 16 Numarul prim Q in baza 16 Cheia publica Cheia privata
2
Ana Maria Buta gr. 223 Informatica anul II
Algebra computationala Prof. Sacarea Christian
A se vedea in imaginea urmatoare.
4. Dupa generarea cheilor se poate initia operatia de criptare. Introduceti textul pe care doriti sa-l criptati in casuta Text de criptat si apasati butonul Cripteaza. Casuta Textul criptat va contine textul criptat, iar Textul decriptat dupa criptare va contine rezultatul decriptarii mesajului criptat anterior. A se vedea imaginea urmatoare.
3