Advanced Linux & INFOSEC

DOCUMENTATIE CURS

Public & private key encryption

I. Criptarea simetrica / symetric encryption

Se mai numeste si private key encryption sau secret key encryption si presupune folosirea aceleasi chei pentru procesul de criptare respectiv decriptare a datelor. Astfel cheia criptare = cheie decriptare.


Cheia de criptare/decriptare trebuie sa ramana secreta, oricine poseda cheia poate sa decripteze chiper textul sau textul criptat.

Principala problema a criptarii simetrice este distribuirea cheii de criptare, care trebuie sa aiba loc folosind un canal securizat. In momentul in care este necesara criptarea se presupune ca exista un canal nesigur de comunicatie altfel criptarea nu ar mai fi fost necesara. Neexistand un canal securizat, cheia de criptare nu poate fi schimbata intre sursa si destinatie.

De cele mai multe ori se foloseste suplimentar un algoritm de schimbare a cheilor astfel incat acestea sa poata fi transmise fara posibilitatea de a fi interceptate. Cel mai folosit si cunoscut algoritm de schimbare a cheilor este Diffie-Hellman.

Lungimea cheii simetrice este in general intre 56 si 512 biti.

Algoritmi de criptare simetrici

1. DES (Data Encryption Standard)
- lungimea cheii de criptare este de 56 biti;
- a fost dezvoltat de IBM si devenit standard federal in 1976;
- a fost folosit ca algoritm oficial de criptare pana in 2001 de catre guvernul USA;
- in acest moment se considera nesigur, el fiind "spart" intre timp (cheia DES poate fi aflata in mai putin de 24 ore folosind hardware extrem de performant si/sau procesare distribuita. Exemplu: DeepCrack + distributed.net.

2. 3DES (3 Data Encryption Standard)
- lungimea cheii de criptare este de 56 biti;
- reprezinta acelasi algoritm ca si DES doar ca textul in clar trece prin 3 runde de criptare pana cand se ajunge la textul criptat (chipher-text). De fiecare data se foloseste o alta cheie, deci exista in total 3 chei.
- este considerat nesigur, a fost "spart";

3. AES (Advanced Encryption Standard)
- lungimea cheii de criptare este de 128, 192 sau 256 biti;
- se mai numeste si Rijndael Algorithm dupa numele celor 2 inventatori belgieni: Joan Daemen si Vincent Rijmen;
- este standardul oficial de criptare al guvernului USA incepand cu anul 2001 (NIST);
- este considerat sigur, nu a fost inca "spart", nu se cunosc bug-uri si este folosit in aplicatii enterprise cu succes;
- Bruce Schneier (unul dintre cei mai cunoscuti criptografi din lume si care a dezcoperit o serie de algoritmi) a declarat: "I do not believe that anyone will ever discover an attack that will allow someone to read Rijndael traffic";

4. Blowfish
- a fost dezvoltat de catre Bruce Schneier in 1993;
- lungimea cheii de criptare este intre 32 si 448 biti;
- este considerat sigur, nu a fost inca "spart", nu se cunosc bug-uri si este folosit in aplicatii enterprise cu succes;

5. Twofish
- a fost dezvoltat de catre Bruce Schneier in 1998;
- lungimea cheii de criptare este de 128, 192 sau 256 biti
este unul dintre finalistii concursului pentru alegerea noului standard AES;

6. Rivest Ciphers (aka Ron's Code)
- reprezinta o familie de algoritmi de criptare dezvoltati de americanul Ronald Rivest. Este cel care a dezvoltat si algoritmi de hashing MD2, MD4 si MD5;
- aceasta familie de algoritmi cuprinde RC1, RC2, RC3, RC4, RC5 si RC6. Cei mai importanti sunt RC4 folositi in produse comerciale si RC6 unul dintre finalistii concursului pentru AES;


Nota
In momentul in care industria necesita un nou algoritm de criptare oficial, este lansat un concurs pentru alegerea noului standard de catre NIST. Astfel diferiti algoritmi sunt supusi unui audit complex din partea industriei si a mediului academic astfel incat in cele din urma sa fie ales cel mai bun, noul standard. Concursul pentru alegerea noului standard AES a durat 5 ani si au participat 15 algoritmi.
Acestia au fost: CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA, MARS, RC6, Rijndael, SAFER+, Serpent, si Twofish.
Finalistii concursului (inclusiv nr. de voturi obtinute) au fost:
* Rijndael: 86 positive, 10 negative
* Serpent: 59 positive, 7 negative
* Twofish: 31 positive, 21 negative
* RC6: 23 positive, 37 negative
* MARS: 13 positive, 83 negative


II. Criptarea asimetrica / asymetric encryption

Se mai numeste si public key encryption si presupune folosirea a 2 chei in procesul de criptare: a) o cheie privata care trebuie sa ramana secreta si b) o cheie publica care nu este secreta (de cele mai multe ori cheile publice se distribuie pe servere speciale publice pe Internet). O astfel de pereche se genereaza in mod automat folosind programe speciale precum GnuPG.



Criptarea asimetrica a aparut ca o necesitate a modului extrem de complicat (cateodata imposibil) de schimbare a cheilor secrete/private de criptare in cazul algoritmilor simetrici pe un canal sigur de comunicatie.

Problema introdusa de algoritmii de criptare asimetrici este viteza extrem de redusa de operare. Algoritmii asimetrici sunt de circa 1000 ori mai inceti decat cei simetrici.

Prima lucrare referitoare la criptarea asimetrica a fost publicata in 1976 de catre profesorul de la Stanford University Martin Hellman si studentul din ultimul an Whitfield Diffie. Acestia au descris un mod prin care se poate comunica criptat folosind un canal de comunicatie nesigur si fara posibilitatea de a schimba cheile de criptare.

Cu cheia publica se cripteaza iar cu cheia privata se decripteaza (de cele mai multe ori).

Astfel daca se doreste criptarea unor date pentru un anume destinatar se foloseste cheia sa publica si este garantat ca doar destinatarul care se gaseste in posesia chei private poate decripta.

Aceste doua chei, publica si privata, sunt strans legate din punct de vedere matematic cu toate ca una nu poate fi derivata din cealalta. Sistemul de criptare nu poate functiona daca una dintre ele lipseste.

Nota
1. Dimensiunea cheilor algoritmilor asimetrice este mult mai mare decat cea a cheilor simetrice. Acestea sunt de 1024, 2048 sau chiar 4096 biti in timp ce o cheie a unui algoritm simetrica nu depaseste de cele mai multe ori 256 biti.
2. Dimensiunea cheilor simetrice si asimetrice nu poate fi comparata. Un algoritm asimetric cu cheia de 1024 NU este mai sigur decat un algoritm simetric cu cheia de 128 biti.
RSA Security compara cheile simetrice cu cele asimetrice in urmatorul mod:
Symetric key length Asymetric key length Estimated crack year
80 1024 2006-2010
112 2048 2030
128 3072 after 2030
256 15360 never


Algoritmi asimetrici de criptare

1. RSA (Ronald Rivest, Adi Shamir si Leonard Adleman)
- a aparut in 1977 si este primul si totusi cel mai folosit algoritm asimetric de criptare din zilele noastre (2009);
- este implementat in majoritatea aplicatiilor comerciale cum ar fi cele care folosesc SSL si certificate digitale (comert electronic, e-mail securizat, criptare de fisiere etc);

2. Diffie-Helman
- este un algoritm de generare a unei chei simetrice intre 2 parti (A si B) folosind un canal nesigur si fara vreo cunostinta initiala. Aceasta va fi folosita ulterior in criptarea simetrica;
- acest algoritm nu cripteaza date;

Nota
Diffie-Hellman key exchange (D-H) is a cryptographic protocol that allows two parties that have no prior knowledge of each other to jointly establish a shared secret key over an insecure communications channel. This key can then be used to encrypt subsequent communications using a symmetric key cipher


3. ElGamal
- algoritm asemanator cu Diffie-Helman folosit pentru generarea cheilor folosite ulterior in criptarea simetrica;

4. DSA (Digital Signature Standard)
- algoritm de criptare asimetric folosit in generarea semnaturilor digitale pentru autentificarea mesajelor; Resurse
© 2006-2012 Crystal Mind Academy. All rights reserved