Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate...

26
Noțiuni de baz ă în criptografie

Transcript of Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate...

Page 1: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Noțiuni de bază în criptografie

Page 2: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Mo d u r i de c r i p ta r e F l u x B l o c u r i Iul ius C e z a r Cr i p to s is t eme a f i n e Dig r a f i M at r i c i Vigener e

C r i p t o s i s t e m

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−→

P = mulțimea mesajelor în clar

Page 3: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Definiție.Un sistem de criptare este o structură (P, C, K,E,D),unde:• P= {w | w∈V } este mulțimea ”textelor clare”, scrise

peste un alfabet nevid V (uzual V = {0, 1}).• C= {w | w∈W} este mulțimea ”textelor criptate”,

scrise peste un alfabet nevid W (uzual W = V ).• K este o mulțime de elemente numite chei.• Fiecare cheie K ∈K determină o metodă de criptare

E și o metodă de decriptare D. P->C și C->P sunt funcții cu proprietatea

∀w∈P• În general C= { α| ∃a∈P, ∃k∈K, α= (a)}.

∈ke ∈kd :ke:kd ,))(( wwed kk =

ke

Page 4: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Clasificarea sistemelor criptografice după 3 criterii:

1.Tipul operaţiilor utilizate pentru a transforma textul clar în textcifrat. Algoritmii de criptare sunt bazaţi pe două transformărigenerale: substituţia şi transpoziţia. 2. Numărul de chei utilizate. Dacă atât emiţătorul cât şi receptorulutilizează o aceeaşi cheie secretă, sistemul se numeşte simetricsau cu o singură cheie. Dacă emiţătorul şi receptorul utilizeazăchei diferite, sistemul se numeşte asimetric sau cu chei publice. 3. Modul în care textul clar este procesat. Se procesează un blocde elemente de fiecare dată rezultând un bloc cifrat pentru fiecarebloc de intrare. Aceste sisteme se numesc cifruri bloc. Un cifrustream procesează câte un element de intrare continuu,producând la ieşire câte un element o dată.

Page 5: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

• Un algoritm de criptare - algoritm cu securitate computaţională.

1. Costul spargerii textului cifrat este multmai mare decât valoarea informaţieicriptate

2. Timpul necesar pentru spargerea textului cifrat depăşeşte timpul de viaţă al informaţiei.

Page 6: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Clasificarea metodelor simetrice

1. Cifruri substituţie;2. Cifruri transpoziţie;3. Cifruri combinate (sisteme criptografice

mixte).

Page 7: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

CIFRURI DE SUBSTITUŢIE

• Cifruri de substituţie monoalfabetică (monoalphabetic ciphers)

• Cifruri de substituţie omofonica (homophonic substitution ciphers)

• Cifrul de substituţie poligramică (polygram substitution ciphers)

• Cifruri de substituţie polialfabetice

Page 8: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

1. Cifruri de substituţie monoalfabetică (monoalphabetic ciphers)

• Codul Cezar• Sistemul Cezar cu cheie• Cifrarea afină - generalizare a sistemului Cezar

Page 9: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

• Cifrarea afină-generalizare a sistemului Cezar

• Un sistem criptografic afin cu n=26 ( ) este definit ca fiind P=C= si

K={(a,b)∈ : cmmdc(a,26)=1}Pentru k=(a,b) definim funcția de criptare

(x)=ax+b (mod 26) și funcția de decriptare

(y)= y+ (26-b) mod 26, unde x,y ∈Obs. Condiția cmmdc(a,26)=1 asigură existența lui în

26Z26Z

2626 ZZ ×

ke

26Zkd 1−a 1−a1−a 26Z

Page 10: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Ex. Functia de criptare: = 3x+5

sau

Textul clar: PRIMAVARA INCEPE Textul criptat: YEDPFQFEF DSLRYR

0 1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

5 8 11

14

17

20

23

0 3 6 9 12

15

18

21

24

1 4 7 10

13

16

19

22

25

2

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

F I L O R U X A D G J M P S V Y B E H K N Q T W Z C

( )xek

Page 11: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

0 1 2 3 4 5 6 7 8 9 10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

1 11

21

5 15

25

9 19

3 13

23

7 17

1 11

21

5 15

25

9 19

3 13

23

7 17

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

B L V F P Z J T D N X H R B L V F P Z J T D N X H R

Page 12: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Criptare/decriptare afină

Criptare(Mn,k,l_alfabet)1. Start2. if(cmmdc(a,l_alfabet)>1)

stop3. i=04. while(i<n)

Ci=a*Mi+bi++

5. Return Cn

Decriptare(Cn,k,l_alfabet)1. Start2. A=1/a3. B=- b/a4. K=(A,B)5. Criptare(Cn,k,l_alfabet)Obs. Orice cheie k ∈ K estedeterminată complet de valorileîntregi (a, b) cu (a, 26) = 1.Pentru a avem 12 valori , pentru bsunt 26; exclus a=1, b=0.=> 12x26-1 =311 chei

Page 13: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Cifrul lui Polybius

Pătratul lui Polybius

1 2 3 4 51 A B C D E2 F G H I/J K3 L M N O P4 Q R S T U5 V W X Y Z

• Mesajul: AM CASTIGAT LUPTAse transformă dupăcifrare în:1123 3111344443221144

1354534411

Observaţie: Codul poate fischimbat prin rearanjarealiterelor în pătratul 5x5.

Page 14: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Sistemul cavalerilor de Malta

• Ordinul cavalerilor de Malta folosea un sistem de criptare monoalfabetic bazat pe stilizarea unei cruci.

Liniile care încadrează fiecare caracter (inclusiv spațiul), împreună cu punctele(două, unul sau zero) indică substituția caracterului respectiv.

Page 15: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Concluzie: Cifrurile de substituţie monoalfabetică pot fi sparte cu uşurinţă deoarece frecvenţele literelor alfabetului nu se schimbă în textul cifrat faţă de textul în clar.

Page 16: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

2. Cifruri de substituţie omofonica (homophonic substitution ciphers)

• Cifruri de substituţie în care un caracter al alfabetului mesajului în clar (alfabet primar) poate să aibă mai multe reprezentări.

• Ideea utilizată în aceste cifruri este uniformizarea frecvenţelor de apariţie a caracterelor textului cifrat (alfabet secundar), pentru a îngreuna atacurile criptanalitice.

• Astfel, litera A – cu cea mai mare frecvenţă de apariţie în alfabetul primar – poate fi înlocuită cu F, * sau K.

Concluzii:• deși mai greu de spart decât cifrurile de substituţie monoalfabetice,

ele nu maschează total proprietăţile statistice ale mesajului în clar.• atacul cu text cifrat este mai dificil, dar unui calculator îi va lua doar

câteva secunde pentru a-l sparge.

Page 17: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Pentru limba română, un tabel al literelor cele mai frecvent întâlnite este:

Litera Frecventa

AIERTNUSCLODMPFV

13.04%12.89%11.75%

7.39%6.62%6.44%6.44%5.50%5.47%4.58%3.85%3.68%3.33%2.91%1.50%1.26%

• restul caracterelor au în mod normal o frecvență de apariție sub 1 %

• Exemplu.doc

Page 18: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

3. Cifrul de substituţie poligramică(polygram substitution ciphers)

• Cifrurile bazate pe substituţia poligramică realizează substituirea unor blocuri de caractere (poligrame) din textul clar, distrugând astfel semnificaţia, atât de utilă în criptanaliză, a frecvenţelor diferitelor caractere.

Ex. ABA → RTQ SLL → ABB • Considerăm un mesaj M=m1m2 … mdmd+1 … şi un cifru

care prelucrează poligrame de lungime d. Criptograma rezultată este C=c1c2 … cdcd+1 … cd+d .

• Fiecare poligramă mid+1mid+2 … mid+d va fi prelucrată înpoligrama cid+1cid+2 … cid+d prin funcţia de substituţie fiastfel : C id+j=fj (mid+1 , mid+2 ,…, mid+d ) .

Page 19: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Codul Playfair

• criptarea cu litere multiple• foloseşte secvenţe de două litere adiacente

din mesajul original tratate ca o singură unitate, transformându-le în text criptat format tot din două litere adiacente

• numărul de chei este 26x26=676 • efectuarea unei analize bazate pe frecvenţa

literelor devine mult mai dificilă

Page 20: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

• Dacă în urma împărţirii mesajului iniţial în grupuri de câte două litere rezultă grupuri ce conţin o literă dublată, atunci se va introduce un caracter considerat ‘neutru’ pentru a remedia această situaţie. Exemplu, dacă mesajul iniţial este balloon, el va fi împărţit astfel: ba lx lo on. La fel se va proceda în cazul mesajelor cu număr impar de litere (se va completa la sfârşit cu un caracter neutru).

• Dacă ambele litere ale grupului de două litere din mesajul iniţial apar în aceiaşi linie a matricei atunci fiecare literă va fi înlocuită cu litera ce apare în matrice imediat în dreapta ei (se va considera că dacă litera apare pe ultima poziţie în cadrul liniei ea va fi înlocuită cu litera de pe prima poziţie, ca şi când linia ar fi circulară). Exemplu, cuplul ba ar deveni de.

• Dacă ambele litere ale grupului de două litere din mesajul iniţial apar în aceiaşi coloană a matricei atunci fiecare literă va fi înlocuită cu litera ce apare în matrice imediat sub ea (se va considera că dacă litera apare pe ultima poziţie în cadrul coloanei ea va fi înlocuită cu litera de pe prima poziţie, ca şi când coloana ar fi circulară).

• În toate celelalte cazuri, fiecare literă din mesajul original va fi înlocuită cu litera ce este poziţionată pe aceeaşi linie şi în coloana dată de cealaltă literă din cuplu. De ex., cuplul lo ar deveni hs.

• balloon -> dekyhsqo

C R I/J P T

A E B D F

G H K L M

N O Q S U

V W X Y Z

Page 21: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

4. Cifruri de substituţie polialfabetice

• sunt formate din mai multe cifruri de substituţiesimple

• Un sistem de cifrare de tip substituție polialfabeticăeste generalizarea sistemului de cifrare de substituțiemonoalfabetică, fiind compus dintr-un număr N de alfabete

• Fiecare alfabet reprezintă o permutare (stabilită în funcție de parolă) a alfabetului de intrare. Algoritmulde cifrare constă în substituirea celei de a i−a litere mdin textul clar cu litera corespunzătoare din cel de al i mod N alfabet.

Page 22: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

• Fie d alfabete de cifrare c 1, c 2, ..., c d, şi d funcţii f i care realizează substituţia de forma:f i : A→C i, 1 ≤ i ≤ d .

• Un mesaj clar M=m1m2 … mdmd+1 … m 2d... va fi cifrat prin repetarea secvenţelor de funcţii f 1, f 2, ...,f d: E k (M) = f 1 (m1) ...f d (md) f (m d+1).

Obs. numărul cheilor posibile se măreşte de la 26!, câte erau la substituţia monoalfabetică, la (26!)n

Page 23: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

A. Cifrul lui Vigenère

• In acest caz cheia k este o secvenţă de litere de forma : k=k 1k 2...k n .

• ea este folosită periodic pentru a transformacaracterul m j∈ {A, . . . , Z} din textul clar dupăformula:

c j = (m j + k j mod n) mod 26. • Pentru descifrare se folosește formula: m j = (c j - k j mod n) mod 26.

Page 24: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

• Exemplu considerăm cheia de 8 litere ACADEMIE care va fi utilizată repetitiv pentru cifrarea mesajului SUBSTITUŢIE POLIALFABETICĂ.

• Folosind o corespondenţă biunivocă între literele alfabetului şi elementele claselor de resturi modulo 26 (A=0, B=1, ..., Z=25 ), substituţia 8-alfabetică conduce la următorul text:

Page 25: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

• text clar :

• cheia :

• S + A = 18 + 0 (mod 26) = 18 (mod 26) = 18 = S• U + C = 20 + 2 (mod 26) = 22 (mod 26) = 22 = W• B + A = 1 + 0 (mod 26) = 1 (mod 26) = 1 = B• ...• C + E = 2 + 4 (mod 26) = 6 (mod 26) = 6 = G• A + A = 0 + 0 (mod 26) = 0 (mod 26) = 0 = A• - text cifrat : SWBVXUBYTKESSXQELHAEIFQGA

A C A D E M I E A C A D E M I E A C A D E M I E A

S U B S T I T U T I E P O L I A L F A B E T I C A

Page 26: Noțiuni de bazăîn criptografievictoria.iordan/SC/Curs_2.pdf · 1.Tipul operaţiilor utilizate pentru a transforma textul clar în text. cifrat. Algoritmii de criptare sunt bazaţi

Ex. Să se cifreze mesajul WINDS OF CHANGE - cheiaFUTURE.

j m j k (j mod 6) c j = (m j + k (j mod 6) mod n) mod 26

1 W − 22 F − 5 (22 + 5)(mod 26) = 1 − B

2 I − 8 U − 20 (8 + 20)(mod 26) = 2 − C

3 N − 13 T − 19 (13 + 19)(mod 26) = 6 − G

4 D − 3 U − 20 (3 + 20)(mod 26) = 23 − X

5 S − 18 R − 17 (18 + 17)(mod 26) = 9 − J

6 O - 14 E − 4 (14 + 4)(mod 26) = 18 − S

7 F − 5 F − 5 (5 + 5)(mod 26) = 10 − K

8 C − 2 U − 20 (2 + 20)(mod 26) = 22 − W

9 H − 7 T − 19 (7 + 19)(mod 26) = 0 − A

10 A − 0 U − 20 (0 + 20)(mod 26) = 20 − U

11 N − 13 R − 17 (13 + 17)(mod 26) = 4 − E

12 G − 6 E − 4 (6 + 4)(mod 26) = 10 − K

13 E − 4 F − 5 (4 + 5)(mod 26) = 9 − J