ec9f0d908867b8705d61dd54a829e796.ppt
- Количество слайдов: 41
Sisteme de programe pentru timp real Universitatea “Politehnica” din Bucuresti 2005 -2006 Adina Magda Florea http: //turing. cs. pub. ro/sptr_06
Curs Nr. 3 Criptologie si criptosisteme • • • Numere aleatoare Operatii aritmetice cu numere mari Criptologie – generalitati Criptosisteme conventionale Criptosisteme publice Standarde actuale 2
1. Numere aleatoare • Numar intreg/real aleator intr-un domeniu dat si cu o precizie fixata / Numar pseudoaleator • Generator de numere aleatoare - o multime de stari S, o functie f: S S si o stare initiala s 0 samanta. • Starile generatorului evolueaza dupa relatia: si=f(si-1), cu i =1, 2, . . . g: S (0, 1) • Perioada unui generator de numere aleatoare este cel mai mic intreg pozitiv p a. i. si+p=si , i > p 0 3
Sunt numere aleatoare? • Testul • N numere intregi in intervalul [ 0, r ), frecventa fiecarui numar din interval fiind fi ( i = 0, r-1 ) • Distributii uniforme (aceeasi probabilitate) 4
1. 1 Metoda congruent multiplicativa • f (si+1) = ( b*si + c ) mod m g ( si ) = si/m s 0 - samanta , b, c < m, pozitivi f(si) [ 0, m-1 ] • Cum se aleg m, s 0 si b ? • Fiecare valoare este mai mica decat cel mai mare intreg, dar prima operatie a*b+1 duce la overflow • Cum se elimina overflow-ul? 5
Cum se elimina overflow-ul? • Reprezentare pe 32 de biti - intereseaza pentru rezultat numai ultimii 8 digiti. • a si b se reprezinta ca doua polinoame in fct. de x. • a = 1234567 b = 31415821 grad(p) N-1 grad(q) N-1 grad(p*q) 2 N-2 p = 104 * p 1 + p 0 q = 104 * q 1 + q 0 p * q = ( 104 *p 1 + p 0 ) ( 104 q 1 + q 0 ) = 108 * p 1 * q 1 + 104 * ( p 1 * q 0 + p 0 * q 1 ) + p 0 * q 0. 6
Generare numere aleatoare #define m 10000 #define m 1 10000 #define b 31415821 long int a =1234567; long int mult( long int p , long int q ) { long int p 0, p 1, q 0, q 1; p 1 = p / m; p 0 = p % m 1; q 1 = q / m 1; q 0 = q % m 1; return ((p 0 * q 1 + p 1 * q 0) % m 1)*m 1 + p 0* q 0)% m ; } long int random( ) { a = ( mult( a, b ) + 1 ) % m ; return a; } // nr. aleatoare [0, m-1] // echiv rand() RAND_MAX=m-1 7
1. 2 Metoda congruent-aditiva • Registru de deplasare cu feed-back • Adunare • 1111 • 0111, 0001, 1000, . . . • Pt. n biti se pot obtine secvente de max. 2 n-1 numere distincte • n = 31 sunt bune pozitiile 0 si una din pozitiile 4, 7, 8, 14, 19, 25, 26 sau 29. 8
Metoda congruent-aditiva • Adunare b c • Considerand un sir de numere aleatoare a 0 …ak, se obtin numere aleatoare in continuare in [ 0, m-1 ], astfel • a [ k ] = ( a [ k-b] + a [ k-c ] ) % m (b
2 Operatii aritmetice cu numere mari • Reprezentare • Intregul 0120200103110001200004012314 cu N = 28 digiti se reprezinta prin p(10) unde p este polinomul • Calcul eficient al inmultirii a doua polinoame p(x) si q(x) de grad N-1 • Produs de grad 2 N-2 cu 2 N-1 termeni • Produs calculat direct – N 2 inmultiri • Divide and conquer • N – par => 2 polinoame de grad N/2 10
Utilizare “Divide and conquer” p( x ) = p 0 + p 1 x +. . . + p. N-1 x. N-1 pi( x ) = p 0 + p 1 +. . . +p. N/2 -1 x. N/2 -1 ps( x ) = p. N/2 +. . . + p. N-1 x. N/2 -1 • Pentru a calcula p ( x ) * q ( x ) sunt necesare numai 3 inmultiri • Doua polinoame de grad N pot fi inmultite folosind inmultiri 11
3 Criptologie - generalitati • Criptografia - Proiectarea sistemelor de comunicatie secreta • Criptoanaliza - Studiul metodelor de intelegere a comunicatiilor secrete • Doua scopuri de baza • Doua tipuri de criptosisteme: - conventionale (criptosisteme simetrice) - publice (criptosisteme asimetrice) 12
4 Criptosisteme conventionale 13
Criptosisteme conventionale Metode simple • Cifrul lui Cezar – a N-a litera din alfabet se inlocuieste cu litera (N+k) din alfabet, unde k este constant (Cezar lua k = 3) • Substitutie simpla - Matrice cu 26 linii si 2 coloane care defineste substitutia literelor • Cifrul Vigenere: se utilizeaza o cheie pentru a determina valorile lui k care trebuie adaugate fiecarei litere. Fie cheia c 1 c 2. . . cm. j 0 pentru fiecare litera li din mesaj executa li din mesaj are indexul p in alfabet j ( j+1 ) mod m alege cj din cheie fie k indexul lui cj in alfabet inlocuieste li cu litera din alfabet de index ( k + p ) sfarsit 14
Criptosisteme conventionale • • • Cifrul Vigenere se poate combina cu substitutia simpla Daca cheie mesaj Cifrul Vernam (one time pad) Masini de criptare/decriptare - primeste un numar de chei adevarate, numite criptovariabile, care sunt utilizate pentru a genera chei lungi Generarea pseudocheii din criptovariabile este asemanatoare cu metoda congruent aditiva (cu registru) de la numere aleatoare Pericol Dificultati ale sistemelor conventionale 15
5 Criptosisteme publice Idee: fiecare utilizator are o cheie publica P care poate fi cunoscuta de oricine si o cheie secreta S cunoscuta numai de el. • Mesaj M • E - cheia publica P a receptorului - C = P ( M ) • R - cheia secreta S - M = S ( C ) 16
Criptosisteme publice • • Conditii S ( P ( M ) ) = M pentru fiecare mesaj M Toate perechile ( S, P ) sa fie distincte Deducerea lui S din P sa fie la fel de dificila ca si decriptarea lui C Atat S cat si P sunt usor de calculat 17
6. Standarde actuale Conventionale • DES – Data Encryption Standard • AES – Advanced Encryption Standard Publice • RSA - Ron Rivest, Adi Shamir, and Leonard Adelman • DSA – Digital Signature Algorithm • DSS – Digital Signature Standard • NIST (National Institute of Standards and Technology, USA) lucreaza la Federal Public Key Infrastructure – va sustine semnaturile digitale
7 Criptosistemul public RSA • Cheia de incriptare P este o pereche de intregi ( N, p ) cu p public • Cheia de decriptare S este o pereche de intregi ( N, s ) unde s este secret. Aceste numere trebuie sa fie foarte mari, in mod tipic N 200 digiti iar p si s aproximativ 100 digiti Metoda de criptare/decriptare 1. Se imparte mesajul in k grupri de biti M 1…Mk 2. Se incripteaza mesajul astfel: C = P(M) = C 1…Ck unde Ci = (Mpi) mod N R 3. Receptorul decripteaza mesajul M = S(C) = M 1. . . Mk unde Mi = (Csi) mod N 19
Modul de alegere a p si s 1. Se genereaza trei numere aleatoare prime mari ( 100 digiti ) x, y, z. 2. Cel mai mare dintre acestea este ales ca valoare a lui s. 3. Fie celelalte doua numere x si y. 4. N = x * y 5. p se alege astfel incat p * s mod ( x-1 ) * ( y-1 ) = 1. Se poate demonstra ca, pt. aceste alegeri, Este sigur? 20
Cum se genereaza un nr. prim f. mare? Se genereaza un nr. aleator f. mare + se testeaza daca este prim Fie w numarul pentru care se testeaza daca este prim. 1. i 1, n 50 2. Determina a si m a. i. w=1+2 am , unde m este impar si 2 este cea mai mare putere a lui 2 care divide w-1. 3. Genereaza un numar aleator b ( 1, w ) 4. j 0, z bm mod w 5. daca (( j=0 ) si ( z=1 )) sau ( z=w-1 ) atunci executa pasul 9 6. daca ( j>0 ) si ( z=1 ) atunci executa pasul 8 21
Cum se genereaza un nr. prim f. mare? Se genereaza un nr. aleator f. mare + se testeaza daca este prim j j+1 daca j
Discutie criptosisteme publice • Toate abordarile se bazeaza pe calcule NP • Problema: daca se inlocuieste p (cu s asociat) cu p’ (si s’ asociat) • Cheile publice – certificate de cheie (digitale) prefixate cu un certificat de semnatura; contin: – User key ID – Data la care a fost creata cheia – Cheia • Cheia secreta – cheie incriptata cu o parola 23
Certificate digitale • Atacuri asupra sistemelor de cu chie publice: afla cheia secreta • Management sigur • Managementul de chei implica – Genererarea cheilor – Cautarea cheilor – Distribuirea cheilor – Incredere in cheile publice 24
Certificate digitale: verifica daca o cheie publica apartine unui individ Un certificat contine: • Un nume si cheia publica • Data de expirare • Numele autoritatii de certificare • Numar de serie • Semnatura digitala a autoritatii de certificare Receptorul verifica un certificat folosind cheia publica a autoritatii de certificare Se autentifica astfel semnaturile digitale mesajelor 25
Certificate digitale • • • Lungimea cheii 1024 bits. 512 bits nesigur 2048 , 4096 bits. 4096 -bits Inpractica, 512 -bit key. • NSA • Cu cat mai mult timp, cu atat cheia mai lunga 26
8. DES – Data Encryption Standard • Data Encryption Standard (DES) adoptat ca standard in USA in 1977. • Foloseste o cheie de 56 -bits – insuficient • Varianta Triple-DES (TDES or 3 DES) – foloseste o cheie mai lunga • Advanced Encryption Standard (AES) – se crede ca va fi mai bun ca DES (si 3 DES) 27
DES – Mod de functionare § Algoritm pt. criptarea si decriptarea blocurilor de date de 64 de biti pe baza unei chei de 56 de biti. § Criptarea si decriptarea utilizeaza aceeasi cheie k – decriptarea este reversul criptarii § DES are un bloc cu dimensiunea de 64 biti – codifica 64 de biti de data odata § Incripteaza mesajul folosind o cheie de 56 de biti § Initial proiectat pt incriptare hardware § Sigur pt scopuri comerciale § Un calculator foarte puternic poate sparge DES prin forta bruta 28
DES – Mod de functionare § Algoritm pt. criptarea si decriptarea blocurilor de date de 64 de biti pe baza unei chei de 64 de biti. • Blocul de criptat: 1) Permutare initiala IP 2) Calcul complex care depinde de cheie = o functie f functia de criptare, si o functie KS - planificarea cheii 3) Permutare inversa a cele initiale IP-1 1 2 3 Bloc Left Right 29
DES – Mod de functionare 30
DES – Mod de functionare 2) Calcul § 16 iteratii; functia f opereaza asupra a 2 blocuri: unul de 32 biti si unul de 48 de biti un bloc de 32 de biti § Blocul de intrare = 64 biti = L (32) R (32) § K – un bloc de 48 biti ales din cheia KEY de 56 biti § La fiecare iteratie, blocul K este diferit Kn = KS(n, KEY) n [1, 16], Kn – functie care permuta o selectie de biti din KEY § Pt un bloc Ln-1 Rn-1, iesirea Ln. Rn a unei iteratii este: Ln = Rn-1 Rn = Ln-1 f(Rn-1, Kn) 31
DES – Atac Cheia: 56 biti – de incercat 72, 057, 594, 037, 927, 936 chei posibile 1998 - Electronic Frontier Foundation (EFF) Au construit un calculator dedicat care poate decripta un mesaj care incearca toate cheile posibile in mai putin de 3 zile. Cost calculator: < $250, 000 Cauta 88 miliarde chei/sec 32
DES – Modele de operare • ECB – Electronic Codebook – DES direct • CBC – Cipher Block Chaining – DES extins care inlantuie blocuri de text incifrat • CFB – Cipher Feedback – utilizeaza text incriptat anterior ca intrare pt. DES si genereaza iesiri pseudoaleatoare care sunt combinate cu textul neincriptat pentru a produce text incriptat • TDEA – Triple Data Encryption Standard 33
Triple DES Triple-DES – dupa ce s-a aratat vulnerabilitatea DES Foloseste 3 chei DES de 56 biti – lungime cheie totala 168 biti 1. Incriptare folosind DES cu prima cheie de 56 biti 2. Incriptare folosind DES cu a doua cheie de 56 biti 3. Incriptare folosind DES cu a treia cheie de 56 biti Decriptarea la fel, in sens invers 34
• RSA si DES pot fi folosite impreuna • DES – viteza mare, RSA – management convenabil • Un mesaj incriptat cu DES • Emitatorul utilizeaza cheia publica (RSA) a receptorului pt incriptarea cheii DES • Mesajul DES incriptat + cheia DES incriptata cu RSA sunt trimise receptorului intr-un plic digital RSA. • Cand plicul este primit de receptor, receptorul decripteaza cheia DES cu cheia lui RSA privata apoi utilizeaza cheia DES pt decriptare mesaj. 35
36
9 PGP (Phil Zimmermann, 1991) • PGP combina avantajele sistemelor publice si conventionale • Criptosistem hibrid • Intai comprima textul • De ce? • Mai scurt, mai repede de transmis • Creste securitatea prin eliminarea sabloanelor • (fisierele care sunt prea scurte sau care nu se comprima bine nu sunt comprimate) 37
• PGP creaza o cheie de sesiune, o cheie secreta “onetime-only”. • Cheia – numar aleator generat pe baza msicarilor mouse si taste apasate • Se foloseste cheia intr-un sistem clasic (rapid) • ciphertext. • Cheia de sesiune se incripteaza cu cheia publica a receptorului • Se transmite cheia de sesiune criptata + ciphertext 38
• Decriptarea - invers • Criptarea conventionala – cam de 1, 000 de ori mai rapida decat cea publica • Avantaje combinare • O cheie conventionala de 80 biti este echivalenta ca putere cu o cheie publica de 1024 biti • O cheie conventionala de 128 biti este echivalenta ca putere cu o cheie publica de 3000 biti 39
Certificat digital PGP Un certificat PGP: • The PGP version number — this identifies which version of PGP was used to create the key associated with the certificate. • The certificate holder's public key — the public portion of your key pair, together with the algorithm of the key: RSA, DH (Diffie-Hellman), or DSA (Digital Signature Algorithm). • The certificate holder's information — this consists of "identity" information about the user, such as his or her name, user ID, photograph, and so on. 40
Certificat digital PGP • The digital signature of the certificate owner — also called a self-signature, this is the signature using the corresponding private key of the public key associated with the certificate. • The certificate's validity period — the certificate's start date/ time and expiration date/ time; indicates when the certificate will expire. • The preferred symmetric encryption algorithmfor the key — indicates the encryption algorithm to which the certificate owner prefers to have information encrypted. The supported algorithms are CAST, IDEA or Triple-DES. 41