Sunteți pe pagina 1din 28

4 Tehnici de criptare a informaţiei

4.1 Introducere. Clasificare


Criptare: procesul de conversie a datelor (fişiere, imagini, semnale),
într-un format neinteligibil pentru persoane neautorizate
- ca urmare a acestui tip de prelucrare un mesaj în clar (M –plaintext)
este transformat într-un mesaj criptat (C- ciphertext) cu ajutorul unei
chei de criptare şi (opţional) cu ajutorul unui algoritm criptografic
• Un sistem ce foloseşte criptare specifică:
-un algoritm de criptare E (primeşte ca parametri de intrare mesajul în
clar şi o cheie de criptare)
- un algoritm de decriptare D (primeşte ca parametri de intrare
mesajul criptat şi o cheie de criptare, posibil diferită de cea folosită la
criptare)
TPI- curs 6
• Schema bloc a unui sistem de criptare (criptosistem):

C  E K e (M ) D K d (C )  M
M
E D R
S

Ke
Kd
K

Ke – cheie de criptare
Kd – cheie de decriptare
S – sursă
R – receptor
K – spaţiul cheilor de criptare
TPI- curs 6
•Clasificarea criptosistemelor:
cifruri bloc
n=32...128
cu chei simetrice
(cu cheie secretă)
Criptosisteme
Ke=Kd=K cifruri secvenţiale
(stream ciphers)

cu chei publice K e  K d
(asimetrice) C  E K (M) e

D K d ( C)  M
Ke – cheie de criptare
Kd – cheie de decriptare
TPI- curs 6
•Criptosisteme cu chei simetrice
- cheile folosite la criptare şi decriptare sunt identice
Ke  Kd  K
- cheia K este secretă - sisteme cu cheie secretă.
- criptarea şi decriptarea se realizează extrem de simplu dacă
se cunoaşte cheia K:
C  E K M 
M  D K C   D K E K M 
- în funcţie de algoritmul folosit, criptosistemele cu chei simetrice se
clasifică în:
- criptosisteme cu cifruri block (block ciphers)
- criptosisteme cu cifruri secvenţiale (stream ciphers)

TPI- curs 6
-cifrurile bloc operează pe subdiviziuni ale mesajului în clar (lungimi
tipice 32- 128) iar blocurile de intrare se procesează individual prin
operaţii elementare de substituţie şi permutare
mesaj în clar (2L biţi)
- pot opera şi pe blocuri multiple
- sunt (în general) construite
iteraţia 1
pornind o structură canonică (cifru
Feistel)
- mesaj în clar de lungime 2w iteraţia 2
- algoritmul se aplică de m ori
iterativ (tipic m=8,16)
KKi subchei (generate din K)
iteraţia m
F- defineşte modul de substituţie
funcţie de subcheia curentă
mesaj criptat (2L biţi)
TPI- curs 6
- decriptarea se face prin prelucrare inversă:
mesaj criptat (2L biţi)

iteraţia 1

iteraţia 2

iteraţia m

- exemple de cifruri bloc – DES (Data Encryption Standard), IDEA


(International Data Encryption Algorithm), AES (Advanced
Encryption Standard
TPI- curs 6
- un cifru de tip Feistel foloseşte 2 operaţii criptografice de bază:
permutare şi substituţie
- operaţia de substituţie presupune înlocuirea unui caracter din
mesajul în clar cu un alt caracter în mesajul criptat. Substituţia nu
modifică proprietăţile statistice ale mesajului în clar; o simplă analiză
a frecvenţelor de apariţie a caracterelor poate conduce la spargerea
unui cifru construit doar pe baza acestei operaţii.
- operaţia de permutare presupune interschimbarea poziţiilor biţilor
dintr-un bloc criptat. Folosită în conjuncţie cu operaţia de substituţie,
poate masca proprietăţile statistice ale mesajului în clar
- în termeni criptografici operaţia de substituţie introduce confuzie iar
cea de permutare induce difuzie (împrăştierea modificărilor induse de
operația de confuzie pe un număr cît mai mare de biți)
TPI- curs 6
Exemplu
Fie mesajul în clar ABA. Un cifru de substituţie simplu poate fi
definit prin înlocuirea unei litere cu litera imediat următoare:
ABA -> BCB
- frecvenţa de apariţie a literei B este aceeaşi cu a literei A; un atac de
tip forţă brută şi analiză de context poate fi utilizat pentru decriptarea
mesajului
Proprietăţile statistice ale mesajului nu pot fi ascunse printr-o
permutare ce operează pe simboluri <2,1,3>
ABA -> BCB->CBB
- o permutare la nivel de bit poate fi folosită pentru modificarea
caracterelor din mesajul criptat
ABA -> BCB->42H 43H 42H
TPI- curs 6
- fie permutarea la nivel de bit definită de simpla inversare a biţilor
de pe poziţiile 7 cu 8 şi 14 cu 15

ABA -> BCB->42H 43H 42H -> 1000010 1000011 1000010

1000010 1000011 1000010 ->1000011 0000011 1000010


43H 03H 42H

- marea majoritate a cifrurilor bloc folosesc cele 2 operaţii în


structuri imbricate, numite reţele S-P (Substitution – Permutation
networks)

TPI- curs 6
- cifruri secvenţiale (stream ciphers): mesajul de la intrare este
considerat ca o succesiune continuă de simboluri iar criptarea
operează asupra mesajului în clar simbol cu simbol (tipic bit cu bit
prin operaţii de tip SAU exclusiv).

Exemplu – criptarea datelor în GSM

xor xor
Date Date
Signaling
Secvenţă de criptare Mesaj criptat Secvenţă de criptare
/user data
Algoritm A5 Algoritm A5

Kc Kc
Staţie Staţie de
mobilă Număr cadru Număr cadru bază
TDMA. TDMA
Staţi

TPI- curs 6
4.2 Algoritmul de criptare AES
4.2.1 Introducere
- AES – Advanced Encryption Standard
- standardizat de NIST (National Institute of Standards and
Technology -SUA)
- substituție pentru DES (Data Encryption Standard) folosit peste 30
de ani ca standard de criptare
- competiție internațională în 1997
- câștigător: cifrul Rijndael (John Daeman, Vincent Rijmen)
- operează pe blocuri de 128 de biți, operații orientate pe octet
- cheie de criptare de lungime 128,192 sau 256 de biți (doar 56 pentru
DES)
- pentru o cheie de 128 biți numărul de combinații posibile: 3.4x1038
TPI- curs 6
4.2.2 Criptare și decriptare AES
Mesaj în clar Cheie de criptare Mesaj în clar
Adunare cheie rundă Adunare cheie rundă
w[0,3]

Substituție octeți Expandare cheie Substituție octeți inv.

Rotire dpta. randuri Runda 10


Rotire stga. rânduri

Amestec coloane Amestec coloane inv.

Runda 1
Adunare cheie rundă Adunare cheie rundă
w[4,7]
Substituție octeți inv.

Substituție octeți Rotire dpta. rânduri Runda 9

Rotire stga. rânduri

Amestec coloane Amestec coloane inv.

Runda 9
Adunare cheie rundă Adunare cheie rundă
w[36,39]
Substituție octeți Substituție octeți inv.

Rotire dpta. rânduri Runda 1


Rotire stga. rânduri

Runda 10 Adunare cheie rundă


Adunare cheie rundă
w[40,43]
Mesaj criptat Mesaj criptat

TPI- curs 6
Terminologie și operații elementare AES
- Stare - variabilă reprezentată ca un tablou bidimensional de 4x4
octeți (pt chei de 128 biți) ce memorează blocul de date de 128 de biți
procesat . Fiecare element al matricii e un element din GF(28)
- Cheia cifrului AES – parametru de intrare reprezentat de asemenea
folosind un format de 4x4 octeți
Exemplu

Stare AES Cheie AES

TPI- curs 6
- Rundă AES - succesiune de operații asupra unei stări folosind
subchei de rundă distincte obținute în urma unei operații de
expandare a cheii inițiale
- expandare: generare de subchei diferite de aceeași lungime (128)
- utilizarea de runde multiple cu chei distincte îmbunătățeste
proprietățile de difuzie ale cifrului
- prin expandare cei 128 de biți ai chei sunt transformați în 1408 de
biți ce intervin în operații de tip SAU-EXCLUSIV
- cheia expandată poate fi pusă sub forma:
wo w1 w2 w3 w4 w5 w6 w7... w40 w41 w42 w43 wj – 4 octeţi
cheie runda 1 cheie runda 2 cheie runda 10
- toţi paşii algoritmului sunt publici:
http://www.csrc.nist.gov/publications/fips/fips197/fips-197.pdf
TPI- curs 6
O rundă AES presupune efectuarea următoarele operaţii:
a) Substituţie octeţi
- substituţie neliniară de octeţi ce lucrează independent pe
fiecare octet din variabila stare, folosind un tabel de substituţie
(cutie-S în terminologie AES). stare intrare

95

stare ieşire

2a
Cutie S AES
TPI- curs 6
b) Rotire rânduri
a b c d Rotire stânga 0 poziţii
a b c d
   
e f g h Rotire stânga 1 poziţie
 f g h e
i j k l Rotire stânga 2 poziţii k l i j
   
m p   p m n o
 n o Rotire stânga 3 poziţii
 
-asigură permutarea octeţilor pe liniile variabilei matriciale stare
-decriptarea presupune rotiri către dreapta
c) Amestec coloane
-fiecare coloană a variabilei stare este considerată un polinom de
gradul patru peste câmpul Galois GF(28)
- fiecare polinom, este înmulţit modulo x4 + 1, cu polinomul c(x)
= 3x3 + x2 + x + 2

TPI- curs 6
a( x)  a3 x 3  a2 x 2  a1 x  a0
a  (a0 , a1 , a2 , a3 )
c( x)  c3 x 3  c2 x 2  c1 x  c0

b( x)  a( x)  c( x)  b6 x 6  b5 x 5  ...  b2 x 2  b1 x  b0
b6  a3  c3
b5  a3  c2  a2  c3
mod( x 4  1)  x i mod( x 4  1)  x i mod 4
b4  a3  c1  a2  c2  a1  c3
b3  a3  c0  a2  c1  a1  c2  a0  c3

b2  a2  c0  a1  c1  a0  c2 b3  a3  c0  a2  c1  a1  c2  a0  c3
b1  a1  c0  a0  c1 b2  a2  c0  a1  c1  a0  c2  a3  c3
b1  a3  c2  a2  c3  a1  c0  a0  c1
b0  a0  b0
b0  a3  c1  a2  c2  a1  c3  a0  c0

TPI- curs 6
-operaţia poate fi pusă în termeni de multiplicare matricială
b0  c0 c3 c2 c1   a0 
b  c c0 c3 c 2   a1 
 1   1
b2  c 2 c1 c0 c3   a 2 
    
b3   c3 c2 c1 c0   a3 

-schematic, operaţia de amestec coloane presupune:

TPI- curs 6
-câmpul Galois GF(28) este generat de polinomul:
p( x)  x8  x 4  x 3  x  1 (100011011 binar )
D4  2  ?
D 4  2  11010100  00000010   ( x 7  x 6  x 4  x 2 )( x) mod p ( x) 
 x 8  x 7  x 5  x 3 mod p ( x)  x 7  x 5  x 4  x  1  10110011  B3
d) Adunare cheie rundă
-operaţie simplă de SAU EXCLUSIV efectuată pe coloane cu
cheile de rundă

wi wi+1 wi+2 w
i+3

TPI- curs 6
 Moduri de operare AES
-algoritmul de criptare AES poate opera în principal în 2 moduri
a) ECB - Electronic CodeBook - criptarea constă în procesarea
independentă a fiecărui bloc de 128 de biţi cu aceeaşi cheie de
criptare
M1 M2 M3 MN

128 M1 M2 MN

K Criptare K Criptare K Criptare

C1 C2 CN
Dezavantaje: mesaje în clar identice produc mesaje criptate identice;
metoda nu este sigură pentru secvenţe lungi de date. Un atacator
poate schimba de asemenea ordinea blocurilor criptate.
TPI- curs 6
Exemplu

Imagine Imagine
originală criptată ECB

b) CBC - Cipher Block Chaining Mode – fiecare bloc este criptat cu


aceeaşi cheie; metoda presupune suplimentar o operaţie SAU
EXCLUSIV între blocul criptat curent şi mesajul în clar următor.
TPI- curs 6
M1 M2 M3 MN

128

M1 M2 M3 MN
Vector de
iniţializare

K Criptare K Criptare K Criptare

C1 C2 CN
- vector de iniţializare – asigură aleatorizarea în debutul procesului
de criptare CBC; în absenţa acestuia mesaje în clar identice ar
conduce la mesaje criptate identice
- vectorul de iniţializare trebuie transmis receptorului (de obicei în
mod EBC)
TPI- curs 6
- decriptare CBC:
C1-1 C1 C1+1
M1

K Decriptare K Decriptare K Decriptare

Vector de
iniţializare

M1-1 M1 M1+1

- dezavantaj CBC – erorile apărute în procesul de transmisie într-un


bloc criptat afectează şi blocurile următoare

TPI- curs 6
Exemplu

Imagine Imagine
originală criptată
AES

TPI- curs 6
5 Tehnici de marcare transparentă a imaginilor şi a
semnalelor
5.1 Introducere
- criptarea poate fi privită ca o soluţie pentru protecţia drepturilor de
autor
- dezavantajul major al unei astfel de abordări constă în faptul că de
îndată ce informaţia a fost decriptată aceasta poate fi copiată fără
restricţii
- tehnicile de marcare transparentă adresează această problemă prin
inserarea unei informaţii impercetibile pentru sistemul auditiv sau vizual
uman
- informaţia inserată poartă denumirea de watermark (marcaj)
- tehnicile de marcare transparentă inserează marcajul într-un semnal
gazdă de tip fişier, semnal audio, imagini statice sau secvenţe video
TPI- curs 6
- utilizarea unei tehnici de watermarking în aplicaţii reale presupune
definirea a 2 operaţii pereche- inserarea marcajului şi extragerea
marcajului- şi, suplimentar, a unei operaţii de comparare în caz de
dispută
Date gazdă Date marcate
Inserare

Marcaj

Date Extragere Marcaj extras DA


marcate marcaj
Marcaj
original NU

TPI- curs 6
• Caracteristicile unui sistem de marcare transparentă
- transparenţă perceptuală: marcajul inserat nu trebuie să degradeze
în mod semnificativ calitatea datelor gazdă; marcajul inserat este
numit invizibil în acest caz şi se bazează pe incapacitatea
sistemului auditiv sau vizual uman de a detecta modificările aduse
prin inserarea acestuia
- robusteţe: marcajul trebuie să reziste la modificări neintenţionate
sau intenţionate (atacuri) realizate pentru înlăturarea acestuia.
Exemple:transformări geometrice, compresie, transformări
neliniare, scalare, etc.
- capacitatea marcajului: exprimă cantitatea de informaţie cuprinsă
în marcaj raportată la cea inclusă în datele gazdă.
TPI- curs 6
- modul de detecţie: detectarea marcajului la recepţie poate fi făcută
în prezenţa originalului sau în absenţa acestuia

• Aplicaţii tipice
- protecţia dreptului de autor: autorul introduce un marcaj cu
informaţii legate de dreptul său de proprietate
- protejarea la copiere: informaţie de marcaj inserată pentru
permiterea sau interzicerea dreptului de copiere
- amprentare : inserarea unor informaţii specifice în fiecare copie a
datelor originale

TPI- curs 6

S-ar putea să vă placă și