Sunteți pe pagina 1din 56

Moscaliuc Ovidiu

Păun Adrian
Stancu Elena Andreea
Cifruri bloc

• cifrurile bloc criptează blocuri de lungime


fixă în blocuri de aceeaşi lungime

• cifrurile bloc constau într-o pereche de 2


algoritmi: unul de criptare (E) şi unul de
decriptare (E-1)

• funcţiile de criptare ale unui cifru bloc sunt


permutări

2
Cifruri bloc

• pentru a mări securitatea, se poate aplica


“cifrarea multiplă”

• pentru mesajele mai lungi decât lungimea


blocului (de obicei n=64) se împarte mesajul
în blocuri de lungime egală cu n şi se critează
separat fiecare bloc.

• există mai multe moduri de operare ale


cifrurilor bloc, prezentate în continuare.
3
Modul de cifrare ECB

Se alege n ca lungimea blocurilor şi un


alfabet Σ. Fie K mulţimea cheilor şi Ek, Dk
funcţiile de cifrare, respectiv decifrare.

Folosind ECB, blocuri identice de text sunt


criptate în blocuri identice. Acest lucru
conferă atacatorului posibilitatea de a
identifica secvenţe de text simplu în textul
cifrat.

4
Modul de cifrare ECB

Modul ECB(electronic code book) are


următorii paşi:

• textul simplu de lungime m se împarte în


blocuri de lungime n (se adaugă simboluri din
Σ dacă m nu este divizibil cu n)

• se alege cheia e şi blocurile de lungime n se


criptează folosind funcţia de criptare Ee

• decriptarea se face similar, folosind Dd


5
Modul de cifrare ECB

6
Modul de cifrare ECB

ECB nu trebuie folosit la criptarea unor texte


mari şi nu trebuie folosită aceeaşi cheie
pentru criptarea a două blocuri diferite.
7
Modul de cifrare ECB

Exerciţiu:
n=4, , m=101100010100101
• adăugăm un 0 la final pentru ca lungimea
lui m să fie divizibilă cu 4
• descompunem textul în blocuri de câte 4
biţi:m1=1011, m2=0001, m3=0100, m4=1010
• cu funcţia de criptare EPI cifrăm fiecare bloc
şi obţinem: E(m)=c1c2c3c4 cu c1=0111,
c2=0010, c3=1000, c4=0101
• c=0111001010000101
8
Modul de cifrare CBC

Modul CBC (cypher-block chaining) a fost


creat de IBM în 1976. Fiecărui bloc de text
simplu i se aplică operatorul XOR cu textul
cifrat anterior.

Astfel, blocurile criptate sunt dependente de


blocurile simple procesate până la momentul
respectiv.

Pentru primul bloc text se va folosi un vector


de iniţializare.
9
Modul de cifrare CBC

Modul CCB are următorii paşi:


• textul simplu de lungime m se împarte în
blocuri de lungime n (se adaugă simboluri din
Σ dacă m nu este divizibil cu n –idem ECB)

• se alege vectorul iniţial u Σn


• se cifrează mesajul m cu cheia e, astfel:
c0=u, cj=Ee(cj-1 mj) pentru 1≤j≤t; c=c1c2...ct

• decriptarea:c0=u, mj=cj-1 Dd(cj), cu Dd=Ee-1


10
Modul de cifrare CBC

11
Modul de cifrare CBC

Exerciţiu:
n=4, , m=101100010100101
• adăugăm un 0 la final pentru ca lungimea
lui m să fie divizibilă cu 4

• descompunem textul în blocuri de câte 4


biţi:m1=1011, m2=0001, m3=0100, m4=1010

• considerăm vectorul iniţial u=1010

12
Modul de cifrare CBC

• c0=u;
c1=EPI(c0 m1)=EPI(0001)=0010;
c2=EPI(c1 m2)=EPI(0011)=0110;
c3=EPI(c2 m3)=EPI(0010)=0100;
c4=EPI(c3 m4)=EPI(1110)=1101.
c=0010011001001101.

13
Modul de cifrare CBC

• decriptarea se face astfel:


m1=c0+Dd(c1)=u+EPI-1(0010)=1010
0001=1011;
m2=c1+Dd(c2)=u+EPI-1(0110)=0010
0011=0001;
m3=c2+Dd(c3)=u+EPI-1(0100)=0110
0010=0100;
m4=c3+Dd(c4)=u+EPI-1(1101)=0100
1110=1010;

14
Modul de cifrare CFB

Modul CFB (cypher feedback) este foarte


asemănător cu CBC, dar vine cu unele
îmbunătăţiri ce permit transmiterea
mesajelor criptate mai rapid decât în cazul
CBC – caz în care timpul de calculare a
funcţiilor de criptare/decriptare poate dura
foarte mult în cazul textelor mari.

15
Modul de cifrare CFB

În modul CFB, funcţiile de criptare nu sunt


folosite pentru a cripta blocuri de text simplu,
ci pentru a obţine un şir de chei bloc.
Criptarea se face adunând cheile bloc modulo
2. Decriptarea se face folosind suma aceloraşi
chei bloc modulo 2. Blocurile cheie pot fi
generate simultan de către cei care comunică
folosind CFB.

16
Modul de cifrare CFB

Algoritmul este următorul:


• se alege un vector u Z2n
• se alege un întreg pozitiv r, 1 r<n
• textul simplu se împarte in blocuri de
lungime r: m=m1...mt
•I1=u
•pt 1 j t avem Oj=Ek(Ij) Z2n , tj=stringul
format din primii r biţi din Oj , cj=mj tj ,
Ij+1=2rIj+cj mod 2n adică se şterg primii r biţi
din Ij şi se adaugă cj în drepta biţilor rămaşi
17
Modul de cifrare CFB

Algoritmul pentru decriptare este similar:


• I1=u
• Oj=Ek(Ij) Z2n
• tj=stringul format din primii r biţi din Oj
• mj=cj tj
•Ij+1=2rIj+cj mod 2n adică se şterg primii r biţi
din Ij şi se adaugă cj în drepta biţilor rămaşi

18
Modul de cifrare CFB

19
Modul de cifrare CFB

Exerciţiu:
n=4, , m=101100010100101
• considerăm vectorul iniţial u=1010 şi r=3
• blocurile lui m sunt: m1=101, m2=100,
m3=010, m4=100, m5=101
j Ij Oj tj mj cj
1 1010 0101 010 101 111
2 0111 1110 111 100 011
3 1011 0111 011 010 001
4 1001 0011 001 100 101
5 1101 1011 101 101 000
20
Modul de cifrare CFB

Observaţii:
• fie A şi B participanţii la comunicaţie, A->B,
B având cj poate afla Ij+1, Oj+1, tj+1, în timp
ce A află cj+1. Când B primeşte cj+1 de la A, B
obţine imediat mj+1=cj+1 tj+1. Acest mod de
cifrare este rapid în transmiterea mesajelor.
• în CFB blocul criptat anterior este folosit ca
intrare în algoritm pentru a obţine blocul
cifrat.

21
Modul de criptare OFB (output
feedback mode)
• este foarte asemănător cu modul CFB

• la fel ca în modul CFB, OFB foloseşte un


cifru bloc de lungime n, un alt bloc de
lungime r , şi un vector iniţial I
1.

• dacă avem de criptat un text simplu folosind


cheia e, atunci mesajul simplu trebuie
descompus în blocuri simple de lungime r, ca
în modul CFB
22
Modul de criptare OFB
- schema de funcţionare -

23
Modul de criptare OFB - criptarea

24
Modul de criptare OFB
- algoritmul de criptare -
•I1 = IV;

•Ij = Oj -1 pentru j = 2...n;

•Oj = CIPHK(Ij) pentru j = 1, 2...n;

•Cj = Pj XOR Oj pentru j = 1, 2...n.

25
Modul de criptare OFB
- algoritmul de criptare -
• la criptarea cu OFB, IV ( vectorul iniţial ), este transformat
de către funcţia cifru pentru a produce prima ieşire ( output
block )
• primului bloc de ieşire îi este aplicată funcţia logică XOR,
cu primul bloc de text ( în clar ), pentru a produce prima
ieşire a cifrului bloc
• celui de-al doilea bloc de ieşire i se aplică funcţia logică
XOR, împreună cu al doilea bloc de text în clar, pentru a
produce a treia ieşire a cifrului bloc
• astfel blocurile succesive de ieşire sunt produse din
cifrarea cu blocurile anterioare de ieşire, iar blocurilor de
ieşire le este aplicată funcţia logică OR, împreună cu textul
iniţial în clar pentru a produce cifrul bloc în întregime.
26
Modul de criptare OFB -
decriptarea

27
Modul de criptare OFB
- algoritmul de decriptare -

•I1 = IV;

•Ij = Oj -1 pentru j = 2...n;

•Oj = CIPHK(Ij) pentru j = 1, 2...n;

•Pj = Cj XOR Oj pentru j = 1, 2...n.

28
Modul de criptare OFB
- algoritmul de decriptare -
• la decriptarea cu OFB, IV ( vectorul iniţial ), este
transformat de către funcţia cifru (decriptare) pentru a
produce prima ieşire ( output block ) .
• acestuia i se aplică funcţia logică XOR, împreună cu
primul cifru bloc , pentru a recupera primul bloc al
mesajului iniţial.
• primul bloc de ieşire este folosit mai apoi pentru a
genera al doilea bloc de ieşire; acestuia din urmă i se
aplică funcţia XOR împreună cu al 2 lea cifru bloc,
pentru a recupera al 2 lea bloc al mesajului iniţial
• se repetă până când mesajul iniţial este recuperat în
întregime.
29
Modul de criptare OFB

• în ambele situaţii de criptare şi decriptare,


fiecare funcţie cifru ( exceptând-o pe prima),
depinde de rezultatele funcţiei anterioare.

• prin urmare, mai multe funcţii cifru nu pot fi


executate în paralel.

• cu toate acestea în cazul în care este


cunoscut vectorul iniţial, blocurile de ieşire pot
fi generate în conformitate cu disponibilitatea
datelor textului iniţial sau a cifrului bloc.
30
Modul de criptare OFB
- avantaje şi limitări -
• similar cu CFB, feedback-ul care iese din
ieşirea cifrului este independent de mesaj.

• este o varianta a cifrului Vernam.

• emiţătorul şi destinatarul trebuie să rămână


sincronizaţi şi este nevoie de nişte metode de
recuperare, pentru a asigura acest lucru.

31
Modul de criptare OFB
- avantaje şi limitări -
• studiile au arătat că doar OFB 64 ar trebui
folosit vreodată

• avantajul major al acestui mod este că


cifrarea şi decifrarea merg foarte repede şi că
eventualele erori de transmisie ale unui bloc
cifrat cj afectează doar la decifrare blocul mj.

• la modul OFB cifrarea nu depinde de blocurile


precedente, ci doar de poziţia blocului în cauză
32
Modul de criptare OFB - exemplu
• date: Având un cifru bloc care aplică permutări la nivel de
bit unui vector de dimensiune 4 ( exemplu permutarea cu
cifru cu alfabet Σ= {1,0}, iar lungimea blocului este 4.
Atunci K=S4, iar funcţia de decriptare a cheii,
este :

• codăm mesajul în clar:

• blocurile mesajului în clar sunt:

33
Modul de criptare OFB - exemplu
• cheia folosită este:

• ca vector de iniţializare folosim:

• obţinem

34
Cifruri şuvoi (stream chipers)

• am văzut cum cifrurile de bloc pot fi folosite


la cifrarea unor texte simple mari, astfel încât,
criptarea blocurilor simple depinde de poziţia
lor în text

• o generalizare este dată de cifrurile şuvoi

35
Cifruri şuvoi (stream chipers)

• alfabetul este ∑ = Ζ 2 , P = C = ∑ *,unde lungimea nu e precizată ;


Fie n un număr natural şi K = ∑ n . Cuvintele din ∑ * sunt cifrate bit
cu bit în felul următor:
Fie k = (k1 , k 2 ,...., k 2 ) ∈ κ o cheie şi a = a1 , a 2 ,...., a un cuvânt de
lungime t în ∑ *.Alice generează nun şuvoi de chei z = z1 , z 2 ,...., z t
astfel : z i = k i pentru1 ≤ i ≤ n, n < i ≤ t , z i ∑ w j z i − j mod 2 , unde w1 ,...wn sunt
j =1
coeficienţi întregi fixaţi. O astfel de ecuaţie se numeşte recurenţă
liniară de grad n. Atunci criptarea şi decriptarea se fac prin:
E k ( a ) = a1 + z1 ,...., a t + z t
şi respectiv
Dk (a ) = a1 + z1 ,...., at + z t

36
Cifruri şuvoi - exemplu

• fie n=4, k=(1,0,0,0) ∈ κ . Şuvoiul de chei


este dat prin recurenţa: z i + 4 = z i + z i +1 , adică am
ales w1 = w2 = 0, w3 = w4 = 1

• obţinem şuvoiul de chei :


1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,1,0,0,0,... ,
care este periodic cu perioada 15

37
Probabilităţi

• Fie S o multime finită, nevidă, numită


spaţiu de modelare
• Eveniment: A⊂S
• Eveniment elementar: a∈S
• S s.n. evenimentul sigur
• Ø⊂S s.n. evenimentul nul
• A,B ⊂S se numesc (mutual) exclusive dacă
A∩B=Ø

38
Distributie de probabilitate
• Pr:P(S) → R
• Proprietăți:
• Pr(A)≥0, ∀ A⊂S
• Pr(S)=1
• A,B evenimente mutual exclusive ⇒
Pr(A∪B)=Pr(A)+Pr(B)
• Pr(A) s.n. probabilitatea lui A
• Consecințe:
• Pr(A)∈[0,1] ∀ A⊂P(S)
• Pr(Ø)=0
• Dacă A⊂B ⇒ Pr(A) ≤ Pr(B)
• Pr(S\A)=1-Pr(A) n n
• A1,A2,…,An ⊂ S două câte două mutual exclusive ⇒Pr( Ai ) = ∑ Pr( Ai )
i =1 i =1

39
Teorema lui Bayes
• Distribuția uniformă: ∀a∈S Pr(a)=1/|s|
• Probabilitatea condiționată
Pr( A ∩ B)
Pr( A | B) =
Pr(B)
• A si B sunt evenimente independente dacă
Pr( A ∩ B) = Pr( A) Pr(B) ⇔ Pr( A | B) = Pr( A)
• Teorema lui Bayes: Fie A si B două evenimente pentru care
Pr(A)>0 si Pr(B)>0. Atunci:

Pr(B) ⋅ Pr( A | B) = Pr( A) ⋅ Pr(B | A)

40
Exemplu: probabilitate condiţionată
• Aruncarea unui zar
• S={1,2,3,4,5,6}
• Distribuție uniformă:
• Pr(a)=1/6 ∀a∈S
• Se presupune că a avut loc
deja evenimentul {4,5,6}
• Care este probabilitatea ca la urmatoarea aruncare
să obținem număr par?
• A={2,4,6}
• Pr(B)=3/6
• Pr(A∩B)=Pr({4,6})=2/4
• Pr(A|B)=Pr(A∩B)/Pr(B)=(2/6)/(3/6)=2/3

41
Teorema lui Shannon - Istoric

• Are ca origine articolul publicat de Shannon


în 1949 cu titlul: “Communication theory of
secrecy systems”
• Folosește concepte din teoria informației
(ilustrate în articolul său, publicat în anul
1948: “A mathematical theory of
communication”)
• Demonstrează că pot exista criptosisteme
perfect sigure.

42
Criptosistem perfect sigur
- concepte generale -
• Lungimea cheii utilizate trebuie să fie egală
cu lungimea textului ce trebuie criptat
• Pentru fiecare nou mesaj criptat se va
utiliza o cheie nouă
• Deşi există astfel de criptosisteme(ex: One
Time Pad), ele sunt utilizate doar în medii
cu un grad ridicat de securizare, necesitând
transmiterea unei cantități mari de
informație.

43
Criptosistem perfect sigur
- scenariu -
• Se consideră urmatorul scenariu:

• Folosind un criptosistem, Alice trimite mesaje către


Bob
• Mesajul criptat trimis este interceptat de Oscar
• Criptosistemul este considerat perfect sigur dacă
Oscar nu poate deduce mesajul original din
mesajul criptat.

44
Criptosistem perfect sigur
- modelare matematică -
• Se consideră un criptosistem (M,C,K,E,D) cu
• M – spațiul mesajelor ce pot fi trimise
• C – spațiul mesajelor criptate posibile
• K – spațiul tuturor cheilor ce pot fi utilizate
• Ek – funcția de criptare folosind cheia k∈K
• Dk – funcția de decriptare folosind cheia k∈K
• Pentru criptarea fiecărui mesaj nou, Alice
folosește o cheie diferită, independentă de
textul ce urmează a fi criptat.

45
Criptosistem perfect sigur
- modelare matematică -
• Se consideră:
• PrM distribuția de probabilitate pe M
• PrM(m)>0, ∀m∈M
• PrK distribuția de probabilitate pe K
• PrK(k)>0, ∀k∈K
• Pr distribuția de probabilitate pe MxK cu
Pr(m,k)= PrM(m) PrK(k) fiind probabilitatea de
apariție a mesajului m și criptarea acestuia
folosind cheia k.
• Pr(c)>0, ∀c∈C

46
Criptosistem perfect sigur
- modelare matematică -
• Se consideră evenimentele:
• Mesajul este criptat:
m = {(m, k ) | k ∈ K }
• Cheia k este folosită pentru criptare:
k = {(m, k ) | m ∈ M}
• Mesajul m este criptat folosind cheia k, iar
rezultatul este c:
c = {(m, k ) | Ek(m) = c}
• Obs: evenimentele m si k sunt independente:
m  k = {(m, k ) | m ∈ M, k ∈ K }
Pr(m  k ) = Pr(m, k ) = Pr(m) ⋅ Pr(k ) = Pr(m) ⋅ Pr(k ) 47
Criptosistem perfect sigur
- modelare matematică -
• Se poate demonstra că: Pr(m) = Pr M(m) , unde Pr(m)
este probabilitatea ca mesajul m să fie criptat
Pr(m) = ∑ Pr(m, k ) = ∑ Pr M(m) ⋅ Pr K(k ) = Pr M(m) ⋅ ∑ Pr K(k ) = Pr M(m)
k ∈K k ∈K k ∈K

• Analog: Pr(k ) = Pr K(k ) , unde Pr(k ) este


probabilitatea să fie folosită cheia k
• Pr(m, c) este probabilitatea ca un mesaj c
recepționat să fi fost criptat

48
Criptosistem perfect sigur
- modelare matematică -
• Se consideră că Oscar a interceptat mesajul
cifrat c și cunoaște distribuția de probabilități
PrM (cunoaște limba folosită de Alice si Bob)
• Putem spune că un criptosistem este perfect
sigur daca Oscar nu poate “invăța” nimic din
mesajul cifrat interceptat c, adică dacă apariția
lui c nu face ca anumite texte simple să fie
privilegiate.
• Definiţie: Un criptosistem (M,C,K,E,D) este
perfect sigur dacă evenimentele m si c sunt
independente:
Pr(m | c) = Pr(m), ∀m ∈ M, ∀k ∈ K
49
Criptosistem perfect sigur
- exemplu-
Fie
 M={0,1} cu Pr(0)=1/4 si Pr(1)=3/4
 K={A,B} cu Pr(A)=1/4 si Pr(B)=3/4
 C={a,b}
 Functiile de criptare EA si EB cu EA(0)=a,
EA(1)=b, EB(0)=b si EB(1)=a

50
Criptosistem perfect sigur
- exemplu-
Posibilitatea ca textul original 1 sa fie cifrat cu
cheia B este:
3 3 9
Pr(1, B) = Pr(1) ⋅ Pr(B) = ⋅ =
4 4 16

Posibilitatea de aparitie a textului cifrat a


este:
1 9 5
Pr(a) = Pr({(m, k ) | EK(m) = a}) = Pr(0, A) + Pr(1, B) = + =
16 16 8
Iar a textului b:
3 3 3
Pr(b) = Pr({(m, k ) | EK(m) = b}) = Pr(1, A) + Pr(0, B) = + =
16 16 8

51
Criptosistem perfect sigur
- exemplu-
Calculam probabilitatile conditionate P(m, c)

Pr(0  a) Pr({(0, k ) | Ek(0) = a}) 8 8 1 1


Pr(0 | a) = = = ⋅ Pr(0, A) = ⋅ =
Pr(a) 5 5 5 16 10
8
Pr(1, B) 8 9 9
Pr(1 | a) = = ⋅ =
Pr(a) 5 16 10
Pr(0, B) 8 3 1
Pr(0 | b) = = ⋅ =
Pr(b) 3 16 2
Pr(1, A) 8 3 1
Pr(1 | b) = = ⋅ =
Pr(b) 3 16 2

52
Criptosistem perfect sigur
- exemplu-
Reamintim ca un sistem este perfect sigur daca
Pr(m | c) = Pr(m), ∀m ∈ M, ∀k ∈ K

Caz particular:
1 1
Pr(0) = Pr(0) = ≠ = Pr(0, a)
4 10
⇒ Criptosistemul nu este perfect sigur(daca
Oscar intercepteaza textul cifrat a, poate fi
aproape sigur ca mesajul original a fost 1)

53
Teorema lui Shannon

Shannon a dat o caracterizare a schemelor


de criptare perfect sigure.

Teoremă: Fie (E,D) o schemă de criptare


peste (P,C,K) astfel încât |P|=|C|=|K|.
Atunci schema este perfect sigură. Adică:
• orice cheie k este aleasă cu aceeaşi
probabilitate 1/|K|
• pentru m P şi c P, există o singură
cheie k K astfel încât Ek(m)=c
54
VERNAM ONE TIME PAD

• reprezintă cel mai faimos criptosistem


perfect sigur

• a fost inventat şi patentat de Gilbert


Vernam în 1917, dar abia în 1949 Shannon a
demonstrat că acesta este perfect sigur

56
Întrebări

57