CRIPTOSISTEME SIMETRICE I Criptografie Anul II Martie 2019
Criptosistem P = mulţimea mesajelor în clar + K = mulţimea cheilor E C = mulţimea mesajelor criptate C = mulţimea mesajelor criptate + K = mulţimea cheilor D C = mulţimea mesajelor în clar
Criptosistem Notaţie: E(m, k) = E k (m), D(c, k) = D k (c) k K funcţia m E k (m) este injectivă k K, k K astfel încât m c := E k (m) D k (c) = m (condiţia de reversibilitate a criptării) Criptosistem simetric (cu cheie privată) Cheia de criptare = cheia de decriptare
Metode de criptare Criptare în sistem flux (stream cypher) Criptare pe blocuri (block cypher) Criptare prin substituţie (substitution cypher) Criptare prin transpoziţie (transposition cypher)
Criptare in sistem flux Fie A un alfabet (cu n caractere) şi K o mulţime (chei). Pentru fiecare k K este dată o funcţie bijectivă E k : A A Fie M = m 1 m 2... un şir de caractere din A şi K = k 1 k 2... un şir de chei de aceeaşi lungime (keystream = flux de chei). O criptare în sistem flux constă în obţinerea unui text criptat C = c 1 c 2... unde c i = E ki (m i ). AVANTAJE Funcţia de criptare se schimbă la fiecare caracter Erorile nu se propagă Util în cazurile sistemelor fără memorie
Criptare în sistem flux GENERAREA CHEILOR Aleatoriu Algoritm de generare plecând de la un flux de chei iniţial de lungime mică (seed) k i = f i (k 1,..., k n0 ), i > n 0 c i = E ki (m i ), i > 0 Algoritm de generare care depinde de un flux de chei iniţial de lungime mică (seed) şi de caracterele criptate deja obţinute k i = f i (k 1,..., k n0, c i 1 ), i > n 0 c i = E ki (m i ), i > 0
Criptare în sistem flux Criptosistemul Vernam Alfabetul: A = {0, 1}. Mesaj în clar: m 1 m 2... m t Keystream: k 1 k 2... k t Mesaj criptat: c 1 c 2... c t c i = m i k i = XOR Exemplu Text în clar: TEST = 10011001001001010011 Keystream: 11011101101111101010 Text criptat: 01000100100110111001 = ISNZ
Criptare în sistem flux Criptosistemul Vernam ONE TIME PAD = criptosistem Vernam cu cheie generată aleatoriu şi folosită o singură dată One Time Pad are securitate absolută: singura metodă de atac este căutarea exhaustivă Pentru aceasta fluxul de chei trebuie să fie generat total aleatoriu, impredictibil (folosind, de exemplu, surse fizice, ca miscarea browniană a particulelor sau procese radioactive) şi utilizat o singură dată. Folosit de: spionii sovietici; CIA; comunicaţiile red line Washington Moscova. Cunoaşterea a două mesaje criptate cu acelaşi flux de chei duce la cunoaşterea sumei XOR a mesajelor în clar corespunzătoare.
Criptare în sistem flux RC4 criptosistem bazat pe criptarea în sistem flux pentru obţinerea unui bit criptat sunt necesare între 8 si 16 operaţii optimizat pentru implementare software rapidă utilizat în produse Microsoft (parole Windows, MSAccess, MSWord,...), SSL (Netscape, Explorer), Adobe Acrobat...
Criptare pe blocuri Mesajul în clar este împărţit în blocuri de o anumită lungime, fiecare din acestea fiind criptat şi obţinându-se astfel un alt bloc, eventual de lungime diferită. Criptarea prin substituţie: S-BOX. Un bloc de n caractere (biţi) este înlocuit cu o altă combinaţie de caractere (biţi) Substituţie monoalfabetică Exemplu: Criptosistemul lui Iulius Cezar Substituţie polialfabetică Exemplu: Criptosistemul lui Vigenère Criptarea prin substituţie induce confuzie: legătura dintre cheie şi textul cifrat este pe cât posibil de complexă.
Criptare pe blocuri Criptarea prin permutare: P-BOX. Fiecare bloc este criptat prin permutarea caracterelor (biţilor) sale. Criptarea prin permutare induce difuzie: posibilele puncte slabe sunt imprăştiate în întreg textul cifrat. Exemplu Text în clar: VINDETI TOATE ACTIUNILE DE LA FIRMA X Algoritm de criptare: VINDET ITOATE ACTIUN ILEDEL AFIRMA X Text criptat: VIAIAXITCLFNOTEIDAIDRETUEMTENLA Cheia: 6
Criptare pe blocuri Criptosisteme produs: RUNDE. Un bloc este criptat prin aplicarea succesivă a unui număr determinat de S-Box şi P-Box Arhitectura Feistel Data Encryption System Rijndael (Advanced Encryption System).
Criptosistemul lui Iulius Cezar Menţionat de Suetonius în biografia lui Iulius Cezar Criptare pe blocuri Mesajele (în clar şi criptate) sunt scrise într-un alfabet cu N caractere. Fiecare bloc are un caracter. Fiecărui caracter i se asociază un element m Z N. Mulţimea cheilor este Z N. Funcţia de criptare: E k (m) = m + k (mod N)
Criptosistemul lui Iulius Cezar Exemplu N = 26 A B C D E F G H I J K L M N 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Text în clar: Text criptat: Cheie: 3 O P Q R S T U V W X Y Z 14 15 16 17 18 19 20 21 22 23 24 25 ALTE EXEMPLE LA SEMINAR DOWH HAHPSOH OD VHPLQDU
Criptosistemul lui Iulius Cezar Exerciţiu Criptaţi textul în clar: Cheie: 10 INTRODUCERE IN CRIPTOGRAFIE Condiţia de reversibilitate a criptării este satisfăcută. Funcţia de decriptare: D k (c) = c + k (mod N) unde k = k (mod N). Criptosistemul este foarte uşor de spart: analiza frecvenţelor. Exerciţiu Decriptaţi: HAHJBSCHHCLHSVJHGP
Criptosisteme afine Criptare pe blocuri Mesajele (în clar şi criptate) sunt scrise într-un alfabet cu N caractere. Fiecare bloc are un caracter. Fiecărui caracter i se asociază un element m Z N. Mulţimea cheilor este Z N. Funcţia de criptare: E k (m) = am + b (mod N). Cheia: k = (a, b) Z 2 N. O generalizare directă a Criptosistemului lui Cezar (a = 1)
Criptosisteme afine Exemplu Cheia: a = 3, b = 2 Text în clar: CRIPTOGRAFIE Text criptat: IBAVHSUBCRAO Pentru decriptare, este necesară inversarea funcţiei m c := am + b (mod N) Condiţia de reversibilitate a criptării: (a, N) = 1 In acest caz funcţia de decriptare este c m := a c + b (mod N) unde a = a 1 (mod N), b = a 1 b (mod N).
Criptosisteme afine Dacă (a, N) 1, funcţia de criptare nu este injectivă. Exemplu a = 2, b = 3 C H, P H. Pentru atac: analiza frecvenţelor. Este necesar să deţinem a două informaţii. Exemplu Determinaţi cheia de decriptare pentru un criptosistem afin dacă numărul caracterelor este N = 28 (A Z?) şi se cunoaşte că si A sunt criptate în B, respectiv?.
Criptosisteme bazate pe transformari ale digrafilor Presupunem că mesajele sunt scrise folosind caracterele unui alfabet A, de cardinal N. Fiecare bloc are două caractere. Fiecărui bloc xy i se asociază un element m = xn + y {0, 1,..., N 2 1} = Z N 2 Funcţia de criptare este o aplicaţie bijectivă E k : Z N 2 Z N 2 De exemplu, poate fi o transformare afină E k (m) = am + b (mod N 2 ) cu cheia k = (a, b) Z 2 N 2, Condiţia de reversibilitate a criptării: a inversabil in Z 2 N 2 (a, N) = 1.
Criptosisteme bazate pe transformări ale digrafilor Exemplu N = 26, a = 159, b = 580 Text in clar: NO Text criptat: QY Text in clar: ON Text criptat: NV Funcţia de decriptare este c m := a c + b (mod N 2 ) unde a = a 1 (mod N 2 ), b = a 1 b (mod N 2 ) Pentru atac: este necesar să cunoaştem unităţi ale textului criptat corespunzătoare a 2 digrafi din textul in clar (de exemplu: prin analiza frecvenţelor).
Criptosisteme bazate pe transformari ale digrafilor Exemplu Decriptaţi mesajul NDXBHO ştiind că s-a realizat o criptare afină pe digrafi, cu un alfabet cu 27 de caractere (A Z ). De asemenea, se cunoaşte că prin criptarea digrafilor în clar E S T se obţin digrafii ZA IA IW.
Matrici de criptare m = Presupunem că mesajele sunt scrise folosind caracterele unui alfabet A, de cardinal N. Fiecare bloc are l caractere (l N fixat). Fiecărui bloc m 1 m 2... m l i se asociază o matrice coloană m := (m 1 m 2... m l ) T (m i Z N, i = 1,..., l). Funcţia de criptare: m 1 m 2... m l c := a 11... a 1l a 21... a 2l......... a l1... a ll a ij Z N (i, j = 1,..., l), b i Z N (i = 1,..., l) m c := Am + B m 1 m 2... m l + b 1 b 2... b l
Matrici de criptare Cheia: k = (A, B). Condiţia de reversibilitate a criptării: A matrice inversabilă in M l (Z N ) det A Z N (det A, N) = 1 Funcţia de decriptare: c m := A c + B unde A = A 1 (mod N), B = A 1 B (mod N)
Criptosistemul Vigenère Criptosistem bazat pe substituţie polialfabetică Propus de Giovan Batista Belaso, in 1553 Blaise de Vigenère, la curtea regelui Henri III al Franţei, a propus in 1586 o versiune mai puternică Mesajele şi cheile sunt scrise îtr-un alfabet cu N caractere Mesajele în clar sunt împărţite în blocuri cu n caractere, iar cheia are aceeaşi lungime n Un bloc m corespunde unui vector din Z n N, la fel şi cheia k Un bloc al mesajului criptat se obţine caracter cu caracter: c i = m i + k i (mod N), i = 1,..., n.
Criptosistemul Vigenère Exemplu Text în clar: TO BE OR NOT TO BE THAT IS THE QUESTION Cheia: RELATIONS Text criptat: KSMEHZBBLKSMEMPOGAJXSEJCSFLZSY
Criptosistemul Vigenère Atac: analiza frecvenţelor (Kasiski, Babbage, Friedman) Exemplu Text în clar: TO BE OR NOT TO BE THAT IS THE QUESTION Cheia: RELATIONS Text criptat: KSMEHZBBLKSMEMPOGAJXSEJCSFLZSY
Criptosistemul Vigenère Atac: analiza frecvenţelor (Kasiski, Babbage, Friedman) Exemplu Text în clar: TO BE OR NOT TO BE THAT IS THE QUESTION Cheia: RELATIONS Text criptat: KSMEHZBBLKSMEMPOGAJXSEJCSFLZSY
Criptosistemul Vigenère Atac: analiza frecvenţelor (Kasiski, Babbage, Friedman) Exemplu Text în clar: TO BE OR NOT TO BE THAT IS THE QUESTION Cheia: RELATIONS Text criptat: KSMEHZBBLKSMEMPOGAJXSEJCSFLZSY
Criptosistemul Vigenère Atac: analiza frecvenţelor (Kasiski, Babbage, Friedman) Exemplu Text în clar: TO BE OR NOT TO BE THAT IS THE QUESTION Cheia: RELATIONS Text criptat: KSMEHZBBLKSMEMPOGAJXSEJCSFLZSY