Metode de criptare simetrice

RSA Algoritmul de criptare

RSA este un sistem de chei publice criptografice care oferă mecanisme de securitate, cum ar fi criptarea și semnătura digitală (autentificare - autentificare). Cryptosystemul RSA a fost dezvoltat în 1977 și a fost numit după dezvoltatorii săi: Rivest, Shamir și Adleman.







Algoritmul RSA funcționează după cum urmează: luați două numere primare suficient de mari p și q și calculați produsul lor n = p * q; n este numit modul.

Apoi se alege numărul e, care satisface condiția:

și nu are divizori comuni cu excepția 1 (relativ prime) cu numărul (p-1) * (q-1).

Apoi, numărul d este calculat astfel încât (e * d - 1) să fie împărțit în

e - indicator public

d este cheia privată.

(n; e) este cheia publică

(n; d) este cheia privată.

Divizoarele (factorii) p și q pot fi fie distruse, fie stocate împreună cu o cheie secretă (privată).

Dacă există metode eficiente de factoring, atunci prin extinderea n în factorii p și q, am putea obține o cheie privată d. Astfel, fiabilitatea sistemului cryptosystem RSA se bazează pe problema necontrolabilă - de aproape nesolvabilă - de descompunere a n în factori (adică imposibilitatea de a factoriza n), deoarece în prezent nu există un mod eficient de a găsi cofactori.

Să presupunem că Alice dorește să trimită lui Bob un mesaj M. Alice creează textul criptat C, ridicând mesajul M la puterea lui e și înmulțind-l cu modulul n: C = M ** e * (mod n), unde e și n sunt cheia publică a lui Bob .

Apoi, Alice trimite lui C (ciphertext) lui Bob. Pentru a descifra textul rezultat, Bob ridică textul criptat C primit la puterea lui d și îl multiplică cu modul n:

M = c ** d * (mod n); Relația dintre e și d asigură că Bob calculează corect M. Din moment ce numai Bob știe d, numai el are capacitatea de a descifra mesajul primit.

În prezent, laboratorul RSA recomandă cheile de 1024 de biți pentru sarcini comune și 2048 de biți pentru sarcini critice.

În practică, sistemul de criptografie RSA este adesea utilizat împreună cu un sistem de chei secret criptografice, cum ar fi DES, pentru a cripta un mesaj cu o cheie RSA prin intermediul unui plic digital.

Sistemul de criptare RSA poate fi, de asemenea, utilizat pentru a autentifica sau a identifica o altă persoană sau entitate. Acest lucru este posibil deoarece fiecare utilizator înregistrat al sistemului criptosist are o cheie privată unică, care (teoretic) nu mai este disponibilă nimănui. Aceasta face posibilă identificarea pozitivă și unică.

DES (Data Encryption Standart) este un algoritm cu chei simetrice, adică o cheie este utilizată atât pentru criptarea, cât și pentru decriptarea mesajelor. Dezvoltat de IBM și aprobat de guvernul SUA în 1977 ca standard oficial







DES are blocuri de 64 de biți și se bazează pe o permutare de 16 ori a datelor, de asemenea utilizează o cheie de 56 biți pentru criptare. Există mai multe moduri DES, de exemplu, Electronic Code Book (BCE) și Cipher Block Chaining (CBC).

56 biți sunt 8 caractere ASCII de șapte biți, adică Parola nu poate fi mai mare de 8 litere. Dacă, în plus, se utilizează numai litere și numere, atunci numărul de opțiuni posibile va fi semnificativ mai mic decât cel maxim posibil de 2 ^ 56.

Unul dintre pașii algoritmului DES:

Blocul de date de intrare este împărțit în jumătate în părțile din stânga (L ') și din dreapta (R'). După aceea, matricea de ieșire este formată astfel încât partea stângă L "este reprezentată de partea dreaptă R 'a intrării, iar dreapta R" este formată ca suma L' și R 'a operațiilor XOR. Mai mult, matricea de ieșire este criptată printr-o permutare cu înlocuire. Puteți verifica dacă toate operațiile efectuate pot fi inversate și decodarea este efectuată pentru numărul de operații, în funcție de dimensiunea blocului. După mai multe astfel de biciuri, se poate presupune că fiecare bit al blocului de cifru de ieșire poate depinde de fiecare bit al mesajului.

Rijndael (AES, Advanced Encryption Standard)

Acest algoritm a fost elaborat de doi specialiști în criptografie din Belgia. Este un cifru neconvențional bloc, deoarece nu folosește rețeaua Feyxtel pentru cripto-transformări. Algoritmul reprezintă fiecare bloc de date codificate sub forma unei matrice bidimensionale bidimensionale cu dimensiunile 4x4, 4x6 sau 4x8, în funcție de lungimea blocului setat. Mai departe, în etapele corespunzătoare, transformările se efectuează fie pe coloane independente, fie pe șiruri independente sau, în general, peste octeți individuali din tabel.

Toate transformările din cifru au o justificare matematică strictă. Structura în sine și secvența de operații fac posibilă realizarea eficientă a acestui algoritm atât pe procesoarele pe 8 biți, cât și pe 32 de biți. În structura algoritmului există o posibilitate de execuție paralelă a unor operații, care pe stațiile de lucru multiprocesor pot totuși crește viteza de criptare de 4 ori.

Algoritmul constă dintr-un număr de runde (de la 10 la 14 - aceasta depinde de dimensiunea blocului și de lungimea cheii), în care sunt executate secvențial următoarele operații:

ByteSub - substituția tabelară a biților 8x8,

ShiftRow - trecerea liniilor într-o matrice bidimensională la compensări diferite,

MixColumn este o transformare matematică care amestecă datele într-o coloană,

AddRoundKey - adăugarea materialului cheie prin operația XOR.

În ultima rundă, funcționarea coloanelor de amestec este absentă, ceea ce face ca întreaga secvență de operații să fie simetrică.

Metode de criptare simetrice

Există două tipuri de algoritmi de criptare care utilizează chei - cheie simetrică și publică. Symmetric este algoritmul criptografic în care cheia utilizată pentru criptarea mesajelor poate fi obținută de la cheia de decriptare și invers. În majoritatea algoritmilor simetrici, este utilizată o singură cheie. Astfel de algoritmi sunt numiți algoritmi cu cheie unică sau algoritmi cu cheie secretă și necesită ca expeditorul mesajelor și destinatarul și violul să convină asupra cheii pe care o vor folosi. Fiabilitatea unui algoritm cu o singură cheie este determinată de alegerea cheii, deoarece valoarea acesteia permite atacatorului să decripteze toate mesajele interceptate fără obstacole. Prin urmare, cheia selectată trebuie păstrată secretă de la străini.

Criptarea și decriptarea în algoritmi simetrici criptografici sunt date de formule deja familiare:

Metodele algoritmice de criptare simetrice sunt de două tipuri. Unele dintre ele procesează textul simplu bitwise. Acestea sunt numite algoritmi de streaming sau cipuri de flux. Conform altora, textul deschis este împărțit în blocuri formate din mai mulți biți. Astfel de algoritmi se numesc blocuri sau blocuri de cipuri. În algoritmii moderni de calculator pentru blocarea criptării, lungimea blocului este de obicei 64 de biți.

Exemple de algoritmi de criptare bloc simetric: DES, AES, IDEA, CAST, SAFER, 3-WAY, CRAB, RC5, Blowfish, GOST etc.







Articole similare

Trimiteți-le prietenilor: