Documente Academic
Documente Profesional
Documente Cultură
5.1. Sisteme Criptografice: Patriciu V. Şi Colaboratori - Securitatea Informaţiei În UNIX Şi INTERNET
5.1. Sisteme Criptografice: Patriciu V. Şi Colaboratori - Securitatea Informaţiei În UNIX Şi INTERNET
Sisteme criptografice
Criptare
B
Decriptare
Au fost fcute studii de firma IBM nc din 1970, iar dup modificrile fcute
mpreun cu NBS i NSA (Naional Security Agency) a fost publicat ca FIPS PUB46 n
1977 i denumit DES. Ulterior a fost adoptat de ANSI (American Standard Institute) ca
standard ANSI x 1,92 i intitulat DEA.
DES este de fapt un cifru bloc cu lungime de 64 de bii prelucrai n configuraie
cu o cheie care la rndul ei este compus din 56 bii generai aleator i 8 bii care sunt
folosii n detectarea erorilor de transmisie, fiecare dintre ei reprezentnd paritatea impus
a celor 8 octei ai cheii.
Prin aceast tehnic, cheia este expandat la lungimea blocului. Cheia este
pstrat de toi membri unui grup de utilizatori care n acest mod pot cifra sau descifra
datele care circul ntre ei.
n ansamblu algoritmul este o combinaie a dou tehnici de cifrare numite
,,confuzie i ,,difuzie.
Construcia unui bloc DES este o combinaie unic a celor dou tehnici
menionate anterior. Ca atare o substituie este urmat de o permutare asupra textului,
bazat pe chei.
O astfel de substituie se numete rund. DES se compune de 16 runde, ceea ce
nseamn c se aplic aceiai combinaie de tehnici asupra blocului de text clar de 16
octei. Algoritmul se bazeaz pe un set de permutri, substituii i sum modulo 2 ,
aplicate iterativ pe 16 octei, pe un bloc de date de 64 bii, prin folosirea unei chei diferite
la fiecare trecere, format din 48 de bii extrai dintr-o cheie de 56.
Date sunt mprite n blocuri de 64 de bii i criptate fr a se modifica lungimea
lor.
Exist o varietate de derivaii ale acestei cifri cum sunt :
a) DES multiplu este DES-triplu folosit de anumite implementri ale DES-ului. n
acest caz DES nu are structur de grup, iar textul cifrat rezultat este mai greu de spart
ntruct sunt necesare 2112 ncercri n loc de 256 ;*
b) DES cu sub-chei independente presupune utilizarea unor sub-chei diferite
pentru fiecare rund, toate fiind extrase din cheia principal i nu derivate din aceasta ca
n varianta clasic. Fiecare rund va utiliza o sub-cheie de 41 bii ceea ce nseamn c la
16 runde va avea 768 bii.
Varianta aceasta mrete dificultatea atacului la cheie la 2 768 ncercri, fcndu-l n
acest fel impracticabil ;
c) DESX este varianta DES dezvoltat de RSA Data Security Inc. Ea utilizeaz o
tehnic numit transparen. Dac detaliem se observ c pe lng cheia de 56 bii a
DES-ului, DESX mai adaug o cheie de 64 de bii denumit cheie transparent.*
Cei 64 de bii se vor nsuma module 2 cu textul clar nainte de nceperea
algoritmului DES. Dup ultima rund a DES-ului se va face suma module 2 ntre rezultat
i ,,cheia transparent. Din acest motiv DESX este mai puternic dect DES-ul la un atac
obinuit.
d) DES generalizat (GDES) a fost proiectat pentru a mri viteza de lucru a DESului ct i pentru ntrirea algoritmului.
Dimensiunea blocului se mrete, n timp ce numrul de calcule rmne constant.
Varianta GDES opereaz cu blocuri de text clar de dimensiune variabil. Astfel blocurile
Patriciu V. i colectiv Securitatea informatic n UNIX i INTERNET
de text clar se mpart n q sub-blocuri de 12 de bii, unde q este egal cu raportul dintre
dimensiunea blocului i 12.
Funcia f se va calcula pentru fiecare rund asupra blocului celui mai din dreapta.
Rezultatul se va nsuma module 2 cu toate celelalte pri, care mai apoi sunt rotite la
dreapta.
GDES are un numr n variabil de runde. Pentru q=2 i n=16 se obine DES.
Avantajul GDES-ului este c este mai rapid ca DES-ul, dar ofer mai puin securitate
dect acesta din urm.
e) DES cu cutii S alternative. n acest caz se construiesc S cutii variabile care se
modific. S. Biham i Shamir au artat c alegerea cutiilor S originale nu a fost arbitrar,
ci ele au fost optimizate mpotriva atacurilor care folosesc criptanaliza diferenial.
f) DES cu cutii S dependente de cheie.
De remarcat este faptul c criptanaliza liniar i cea diferenial pot fi folosite ca
atac DES numai dac se cunoate componena cutiilor S. Dac cutiile S sunt dependente
de cheie i alese prin metode criptografice puternice, atunci criptarea liniar i cea
diferenial devin dificil de folosit.
Se va analiza o metod de utilizare a unei chei de 56 de bii pentru generarea de
cutii S rezistente la criptanaliza liniar i diferenial :
- se face i alt aranjare a cutiilor S ale DES-ului n modul urmtor : 2, 4, 6, 7, 1,
1, 5, 8 ;
- se selecteaz 16 bii din cheie. Dac :
- primul este egal cu 1, se interschimb primele dou linii cu ultimele dou
linii ale cutiei S1 ;
- al doilea bit este 1, se interschimb primele 8 coloane cu urmtoarele 8
coloane ale cutiei S1 ;
- se procedeaz similar n cutia S2 cu biii 1 i 4. Algoritmul se continu
pentru cutiile S de la 1 la 8.
- Se selecteaz ceilali 12 bii din cheie, se face suma module 2 ntre primii 4 bii
i intrrile corespunztoare n cutia S1, iar procesul este repetabil pentru celelalte cutii S.
Complexitatea unui atac prin cripanaliz diferenial este 251, iar pentru
criptanaliza liniar este 251. Complexitatea unui atac prin cutri exaustive este 2102.
Avantajul acestei variante const n aceea c algoritmul poate fi implementat
hardware folosind componentele deja existente. Exist chip-uri care au posibilitatea de a
ncrca cutii S. Metoda de generare a cutiilor S se poate face n afara chip-ului, apoi
cutiile S pot fi ncrcate n circuit.
Cifrare bloc.
Cifrare carte de coduri (Electronic Code book ECB) este cea mai utilizat cale de
cifrare bloc unde un bloc de text se transform ntr-un bloc de text cifrat. ntruct fiecare
bloc de text este ntotdeauna cifrat n acelai bloc de text cifrat, teoretic se consider a fi
posibil crearea unei cri de coduri n care s se poate face asocierea dintre text-clar i
text-cifrat. Pentru blocuri cu o lungime de 64 bii rezult 2 64 intrri n cartea de coduri,
ceea ce constituie o mrime ce nu permite uor memorarea i lucrul. De asemenea este
tiut c i fiecare cheie necesit o carte de coduri special.
Aceast metod nu necesit ca fiierul intrat la criptare s fie cifrat liniar de la
nceput pn la sfrit.
Criptarea se poate face lund blocuri din fiier n mod aleator. Acest mod de lucru
este foarte important mai ales pentru fiierele criptate care sunt accesate aleator, precum
sunt bazele de date. Dac se cripteaz o baz de date cu cifrul ECB, atunci se poate
aduga orice nregistrare, se poate terge, se poate cripta sau decripta independent de
celelalte. Condiia este ns ca nregistrrile s conin un numr ntreg de blocuri
criptate. Problema care se ridic n utilizarea ECB, este dac un criptanalist care deine
att textul clar ct i textul cifrat echivalent pentru cteva mesaje, poare realiza o carte de
coduri fr a ti cheia. Unele mesaje au fragmente care tind s se repete, iar altele ca n
pota electronic au structuri regulate i de aceea un criptanalist ar putea intercepta o
serie de informaii. El poate ataca textul de baz, indiferent de tria cfrului. Sunt foarte
multe mesaje care se mpart exact n blocuri de cte 64 bii i ECB-ul nu lucreaz dect
cu astfel de blocuri. De aceea se recurge la operaia de padding (completare) a blocurilor.
Ultimul bloc se va completa cu un model zero-unu, alternnd cifre de 1 i 0, n aa fel
nct blocul s fie complet.
La decriptare este nevoie de tergerea acestor surplusuri. Pentru stergerea
surplusurilor se adaug ca ultim octet al ultimului bloc, numrul de octei adugai.
Cifrare bloc cu nlnuire (Cipher Block Chaining CBC).
Prin aceast metod se adaug mecanismului de criptare un bloc de reacie.
Rezultatul criptrii unui bloc anterior revine prin bucl i intervine n criptarea blocului
curent. Printr-un astfel de procedeu, textul cifrat nu mai depinde doar de textul clar, ci i
de modul de cifrare al blocului anterior.
n CBC, textul clar este nsumat module 2 (XOR) cu blocul text cifrat anterior,
nainte de a intra n blocul de criptare propriu-zis. Textul cifrat care rezult se stocheaz
ntr-un registru al buclei de reacie. La urmtorul pas, cnd un alt text clar va fi criptat el
este fcut XOR cu blocul din registrul de reacie i devine intrare pentru rutina de
criptare.
Dup criptare, coninutul registrului va fi nlocuit cu blocul criptat, descifrarea
blocului i depinde de toate cele i-1 blocuri anterioare. La decriptare, textul cifrat este
decriptat, normal i depozitat n registrul de reacie. Urmtorul bloc care se va decripta
este fcut XOR cu coninutul registrului de reacie.
Se mai pot utiliza cifrarea bloc cu nlnuire, cifrarea CBC cu propagare (PCBC)
sau cifrarea cu reacie neliniar la ieire (OFBNLF).
Cifruri secveniale
Cifrarea secvenial (Stream Ciphers) const n convertirea bit cu bit a textului clar n
text cifrat. Aceast metod dispune de un generator de chei, (care n funcie de timp)
genereaz un ir de bii K1, K2, , Ki. Cu ajutorul acestui ir de chei numit i cheie
curent se face XOR cu irul de bii ai textului clar, p 1, p2, , pi, pentru a obine un ir de
text cifrat de forma : Ci= pi Ki. La decriptare se obine rezultatul prin efectuarea unui
XOR ntre criptogram i cheia curent pi = Ci Ki (fig.1.3).
Securitatea acestui sistem depinde de generatorul de chei i anume acesta genereaz
iruri-cheie aleatoare, atunci exist un grad nalt de securitate. Generatorul de chei
genereaz iruri aleatoare (sunt iruri deterministe) care pot fi recompuse complet n
momentul efecturii operaiei de decriptare.
Generator
de
chei
Text clar
Generator
de
chei
Text cifrat
Pi
Text clar
Pi
Ci
Criptare
Decriptare
Fig. 1.3. Modul secvenial
Starea
intern
Cheia K
Funcia
strii
urmtoare
Funcie ieire
Ki