Sunteți pe pagina 1din 148

ACADEMIA DE TRANSPORTURI,

INFORMATIC I COMUNICAII

Zgureanu Aureliu

CRIPTAREA
I
SECURITATEA INFORMAIEI

Note de curs

CHIINU 2013

Notele de Curs la disciplina Criptarea i securitatea informaiei


a fost examinat i aprobat la edina catedrei Matematic i
Informatic, proces verbal nr. 3 din 11.11.2013, i la edina Comisiei
metodice i de calitate a FEI, proces verbal nr. 1 din 02.12.2013.

Zgureanu Aureliu, 2013


2

Cuprins

Introducere ............................................................................................................ 4
Tema 1. Noiuni de baz ale Criptografiei. ......................................................... 6
Tema 2. Cifruri clasice. Cifruri de substituie .................................................. 12
Tema 3. Cifruri clasice. Cifrul de transpoziii .................................................. 25
Tema 4. Maini rotor........................................................................................... 30
Tema 5. Algoritmi simetrici de criptare. Cifruri bloc. Reeaua Feistel .......... 40
Tema 6. Algoritmul de cifrare Lucifer .............................................................. 46
Tema 7. Algoritmul DES..................................................................................... 59
Tema 8. Cifrul AES ............................................................................................. 69
Tema 9. Algoritmi simetrici de tip ir (stream cypher)................................... 80
Tema 10. Criptarea cu cheie public ................................................................. 91
Tema 11. Sisteme asimetrice bazate pe curbe eliptice .................................... 100
Tema 12. Sistemul de criptare RSA ................................................................. 107
Tema 13. Funciile HASH criptografice .......................................................... 113
Tema 14. Semnturi digitale............................................................................. 122
Tema 15. Atacuri criptografice ........................................................................ 132
Bibliografie......................................................................................................... 146

Introducere
Una dintre caracteristicile societii moderne o reprezint
Informatizarea. Tehnologii informaionale noi sunt permanent
implementate n diverse domenii ale activitii umane. Prin utilizarea
calculatoarelor i a software-ului respectiv sunt dirijate procese complexe
din cele mai diverse domenii de activitate. Calculatoarele stau la baza
mulimilor de sisteme de prelucrare a informaiei, care nfptuiesc
pstrarea, prelucrarea informaiei, distribuirea ei ctre utilizator, realiznd
astfel tehnologii informaionale moderne.
Odat cu dezvoltarea mecanismelor, metodelor i formelor de
automatizare a proceselor de prelucrare a informaiei crete i dependena
societii de gradul de securitate a proceselor de gestionare a informaiei,
realizat prin intermediul diverselor tehnologii informaionale aplicate, de
care depinde bunstarea, sau uneori i viaa multor oameni.
n acest context un specialist modern din domeniul Tehnologiilor
Informaionale este obligat s posede cunotine i aptitudini de asigurare a
securitii informaiei n toate fazele de dezvoltare i de funcionare a
sistemelor informaionale.
Soluionarea problemelor legate de securitatea informaiei constituie
obiectul de studiu al Criptografiei, care este o ramur a matematicii
moderne, ce se ocup de elaborarea metodelor matematice capabile s
asigure confidenialitatea, autentificarea i non-repudierea mesajelor,
precum i integritatea datelor vehiculate. Criptografia este un set de
standarde i protocoale pentru codificarea datelor i mesajelor, astfel nct
acestea s poat fi stocate i transmise mai sigur. Ea st la baza multor
servicii i mecanisme de securitate, folosind metode matematice pentru
transformarea datelor, n intenia de a ascunde coninutul lor sau de a le
proteja mpotriva modificrii. Criptografia ne ajut s avem comunicaii
mai sigure, chiar i atunci cnd mediul de transmitere (de exemplu,
Internetul) nu este de ncredere. Ea poate fi utilizat pentru a contribui la
asigurarea integritii datelor, precum i la meninerea lor n calitate de
date secrete, ne permite s verificm originea datelor i a mesajelor prin
utilizarea semnturilor digitale i a certificatelor.
Unul dintre instrumentele principale ale criptografiei este sistemul de
criptare, la baza cruia se afl algoritmul de criptare.
4

Scopul acestui curs este de familiariza viitorul specialist din domeniul


Ttehnologiilor Informaionale cu noiunile fundamentale ale criptografiei i
cu metodele moderne criptare ca instrument indispensabil al securitii
informaiilor.

Tema 1. Noiuni de baz ale Criptografiei.


Criptografia reprezint o ramur a matematicii care se ocup cu
securizarea informaiei, precum i cu autentificarea i restricionarea
accesului ntr-un sistem informatic. n realizarea acestora se utilizeaz n
mare parte metode matematice, profitnd de unele probleme cu
complexitate de rezolvare suficient de nalt. Termenul criptografie este
compus din cuvintele de origine greac , krypts (ascuns) i
, grfein (a scrie). Criptografia urmrete urmtoarele obiective:
1. Confidenialitatea (privacy) proprietatea de a pstra secretul
informaiei, pentru ca aceasta s e folosit numai de persoanele
autorizate.
2. Integritatea datelor proprietatea de a evita orice modificare
(inserare, tergere, substituie) neautorizat a informaiei.
3. Autentificare proprietatea de a identifica o entitate conform
anumitor standarde. Este compus din:
a. autentificarea unei entiti;
b. autentificarea sursei informaiei;
4. Non-repudierea proprietatea care previne negarea unor
evenimente anterioare.
Celelalte obiective legate de securitatea informaiei (autentificarea
mesajelor, semnturi, autorizare, validare, controlul accesului, certificare,
timestamping, confirmarea recepiei, anonimitate, revocare) pot derivate
din aceste patru.
mpreun cu Criptografia se dezvolt Criptanaliza (din greac,
krypts, ascuns, i analein, a dezlega) este studiul metodelor de
obinere a nelesului informaiilor criptate, fr a avea acces la informaia
secret necesar n mod normal pentru aceasta. De regul, aceasta implic
gsirea unei chei secrete.
Criptografia i Criptanaliza mpreun constituie Criptologia (din
greac, krypts, ascuns, i , cuvnt) tiina care se ocup cu
metodele de criptare i decriptare.
n continuare sunt date noiunile fundamenatle cu care se operaz n
croptologie.
O mulime nevid T se numete alfabet.
6

Elementele alfabetului T se numesc litere. Una i aceeai liter poate


intra ntr-un cuvnt de mai multe ori.
O consecutivitate finit de elemente din alfabetul T se numete cuvnt.
Numrul de elemente ale alfabetului se numete lungimea alfabetului.
Un cuvnt ce nu conine nici o liter se numete cuvnt nul.
Lungimea cuvntului, notat cu w, este numrul de litere n acest
cuvnt, unde fiecare liter se consider de cte ori se ntlnete n el.
Vom nota cu T* mulimea tuturor cuvintelor alfabetului T.
Submulimile mulimii T* le vom numi limbaje (formale) peste T.
Un mesaj n forma sa originar se numete text clar (uneori text n
clar, n englez plaintext) i l vom nota cu pt sau cu m (de la message mesajul).
Rescrierea textului clar, folosind o metod cunoscut numai de
expeditor (eventual i de destinatar), se numete criptare (sau cifrare) a
mesajului.
Text criptat sau text cifrat (n englez ciphertext) se numete textul
obinut n rezultatul operaiei de criptare a textului plan. Textul criptat l
vom nota cu ct sau cu c (de la cipher - cifrul). Textul cifrat se mai
numete criptogram.
Procesul retransformrii criptogramei n textul original este numit
decriptare.
Un canal este o cale pentru fluxul de informaii.
Destinatarul primete printr-un canal textul criptat i l decripteaz,
tiind metoda folosit pentru criptare, obinnd mesajul iniial. n literatura
de specialitate expeditorul de obicei este numit Alice iar destinatarul este
numit Bob. Deci, Alice i Bob trebuie s stabileasc n prealabil detaliile
modalitii de criptare i de decriptare. Aadar, criptarea este o metod de
camuflare a textului clar n aa fel nct substana s nu sufere modificri
semantice.
Criptarea se folosete pentru a fi siguri c informaia este inaccesibil
oricrei persoane care nu deine instrumentul necesar decriptrii, chiar dac
oricine poate vedea datele n form criptografic. Oricum nu va nelege
nimic, care s conduc spre descifrarea textului original.
Persoana care intercepteaz criptograma i ncearc s obin textul
clar aplicnd diverse metode, ns fr a avea cheia de decriptare, este
numit criptanalist.
7

Sistemul care realizeaz operaiile de criptare i decriptare se numete


sistem de criptare (sau sistem criptografic, sau criptosistem).
n criptografia modern un sistem de criptare este definit ca o structur
cu cinci componente (P, C, K, E, D):
P = {pt / pt T*} spaiul (mulimea) textelor n clar, scrise
pentru un alfabet nevid T (n mod obinuit T={0,1});
K spaiul (mulimea) cheilor de criptare k, k K;
Familia funciilor de criptare dependent de chei i de un algoritm
de criptare E
Ek : P C, Ek = {ek / ek (pt) = ct i ek este injectiv};
Familia funciilor de decriptare dependent de chei i de un
algoritm de decriptare D
Dk : C P , Dk = { dk / dk (ek (pt))= pt pentru orice pt P};
C spaiul (mulimea) mesajelor cu text criptat unde:
C={ct / exist k K, a P, ct = Ek (a)}.
Schema aplicrii unui sistem de criptare este prezentat n Figura 1.1.
Pentru ca un sistem de criptare s e considerat bun, el trebuie s
ndeplineasc trei criterii (enunate de Francis Bacon n sec. XVII):
1. Fiind date ek i pt P s fie uor de calculat ek (pt).
2. Fiind date dk i ct C s fie uor de determinat dk (ct).
3. S fie imposibil de determinat pt din ct, fr a cunoate dk.

Figura 1.1. Schema aplicrii unui sistem de criptare

Criteriile 1 i 2 implic c pentru utilizatorii legali sistemul de criptare


nu trebuie s fie prea complicat (se presupune c utilizatorii au un timp
acceptabil pentru calcule). n criteriul 3 imposibilitatea e nlocuit n
prezent cu dificultatea de a calcula. Se presupune c un interceptor de
asemenea are acces la tehnica de calcul. Ultimul criteriu definete sub o
8

form vag ideea de securitate a sistemului. La aceste criterii, Bacon


aduga i o a patra regul:
4. Textul criptat trebuie s e un text banal, fr suspiciuni.
Aceast condiie nu mai poate fi considerat important i este utiliz
astzi doar de un subdomeniu strict al criptografiei, numit steganografie
tiina despre transmiterea secret a informaiei prin pstrarea secretului a
nsui faptului transmiterii acestei informaii.
Metodele de criptare pot fi divizate pe categorii n felul urmtor:
a) n funcie de tipul operaiilor folosite:
Bazate pe substituii
Bazate pe transpuneri
b) n funcie de tipul de chei folosite:
Sisteme Simetrice (single-key, secret-key, private-key)
Sisteme Asimetrice (two-key, public-key)
c) Metoda prin care datele sunt procesate:
Cu cifruri bloc
Cu cifruri fluide (flux, ir, stream)
Cifrurile clasice foloseau substituia sau transpoziia. Printre metodele
moderne de criptare deosebim dou direcii principale: sistemele cu cheie
secret (sau sisteme simetrice) n care ek este bijectiv i sisteme cu chei
publice (sau sisteme asimetrice) sistemele n care ek nu este bijectiv.

Figura 1.2. Clasificarea cifrurilor

Exist dou tipuri de sisteme simetrice: sisteme care se bazeaz pe


algoritmi de tip bloc i sisteme care se bazeaz algoritmi de tip ir (sau
flux, n englez stream cipher). Algoritmii de tip bloc acioneaz asupra
blocurilor de text clar i text cifrat. Algoritmii de tip ir se aplic irurilor
de text clar i text cifrat, la nivel de bit sau octet. n Figura 1.2 sunt
prezentate tipurile de cifruri utilizate n trecut sau prezent.
Algoritmii moderni de tip bloc cripteaz mesajul n blocuri de 64 265
bii. Pentru acesta se aplic o funcie matematic ntre un bloc de bii ai
mesajului n clar i cheie (care poate varia ca mrime), rezultnd acelai
numr de bii pentru mesajul criptat. Funcia de criptare este realizat astfel
nct s ndeplineasc urmtoarele cerine:
tiind un bloc de bii ai textului clar i cheia de criptare, sistemul
s poat genera rapid un bloc al textului criptat;
tiind un bloc de bii ai textului criptat i cheia de
criptare/decriptare, sistemul s poat genera rapid un bloc al
textului clar;
tiind blocurile textului clar i ale textului criptat, s fie dificil de
generat cheia.
Cifrurile ir (sau cifruri fluide) la fel formeaz o clas important de
algoritmi de criptare. Ceea ce le caracterizeaz i le difereniaz fa de
cifrurile bloc este faptul c cifrurile ir proceseaz informaia n uniti
orict de mici, chiar bit cu bit, aplicnd funcia XOR ntre biii cheii i biii
de cifrat, iar funcia de criptare se poate modifica n cursul criptrii.
Cifrurile ir sunt algoritmi cu memorie, n sensul c procesul de criptare nu
depinde doar de cheie i de textul clar, ci i de starea curent. n cazul n
care probabilitatea erorilor de transmisie este mare, folosirea cifrurilor ir
este avantajoas deoarece au proprietatea de a nu propaga erorile. Ele se
folosesc i n cazurile n care datele trebuie procesate una cte una, datorit
lipsei de spaiu de memorie.
Cifruri asimetrice utilizeaza o pereche de chei: o cheie public i o
cheie privat. Un utilizator care de
o
cheie (cheia public) astfel ncat oricine dorete s o poata folosi pentru a
i transmite un mesaj criptat. Numai de
torul cheii secrete (private) este
cel care poate decripta mesajul astfel criptat.
Cele dou chei sunt legate matematic, ns cheia privat nu poate fi
ob
din cheia public. n caz contrar, orcine ar putea decripta
10

mesajele destinate unui alt utilizator, fiindc oricine are acces la cheia
public a acestuia. O analogie foarte potrivit pentru proces este folosirea
cutiei potale. Oricine poate pune n cutia potal a cuiva un plic, dar la
plic nu are acces dect posesorul cheii de la cutia potal.
Cripografia asimetric se mai numete criptografie cu chei publice i
e compus din dou mari ramuri:
Criptarea cu cheie public un mesaj criptat cu o cheie public nu
poate fi decodificat dect folosind cheia privat corespunztoare.
Metoda este folosit pentru a asigura confiden
Semnturi digitale un mesaj semnat cu cheia privat a
emi torului poate fi verificat de ctre oricine, prin acces la cheia
public corespunzatoare, astfel asigurndu-se autenticitatea
mesajului.

11

Tema 2. Cifruri clasice. Cifruri de substituie


nc foarte demult, circa 4000 de ani n urm, n oraul Menet Khufu
de pe malul Nilului un scrib cu experien a desenat ieroglife care relatau
viaa stpnului su, devenind astfel cel care a pus bazele istoriei
criptografiei. Sistemul su nu este un sistem al scrierii secrete n sens
contemporan. Pentru aceasta el nu a folosit un cifru complet. Aceast
nscriere, fcut circa n 1900 .Hr. pe mormntul lui Khnumphotep, numai
alocuri consta din simboluri ieroglifice neobinuite n locul unora uzuale la
acel moment. Marea lor parte se ntlnete n ultimele douzeci de coloane
n care sunt enumerate monumentele create de ctre Khnumphotep n
timpul serviciului su la faraonul Amenemhet II. Aceste nscrieri au fost
fcute mai degrab pentru a da o importan textului i nu pentru a
mpiedica citirea lui. Astfel scribul nu a aplicat scrierea secret dar, fr
ndoial, a aplicat unul dintre elementele de baz ale criptrii
transformarea deliberat a celor scrise.
Astfel, adugarea la textele de acest fel a elementelor de secret a dat
natere criptografiei. Este adevrat, acest fapt semna mai mult cu un joc,
deoarece avea scopul de a amna dezlegarea ghicitorii pentru un interval
de timp scurt. Deci i criptanaliza lui consta numai n rezolvarea
problemei. Aadar putem afirma c criptanaliza Egiptului antic, spre
deosebire de cea contemporan, foarte serioas, era numai o quasi-tiin.
ns orice lucru mre are un nceput modest. Hieroglifele Egiptului antic
conineau, ntr-o form departe de cea impecabil, dou dintre elementele
de baz ale criptografiei secretul i transformarea textului. Astfel s-a
nscut criptologia.
n primii 3000 de ani dezvoltarea ei nu a fost una continu. n unele
locuri criptologia se ntea i murea odat cu civilizaia ce i-a dat natere.
n altele ea a rezistat ptrunznd n literatur pentru ca generaiile
urmtoare s poat urca spre nivele mai nalte ale criptologiei. naintarea
spre aceste nivele era lent i anevoioas. Mai multe erau pierdute dect
pstrate. Cunotinele acumulate au cptat amploare numai la nceputul
Renaterii europene.
Criptografia clasic este criptografia dinaintea calculatorului, de unde
i denumirea de criptografie pre-computaional. n criptografia clasic,
algoritmii erau bazai pe caracter i constau dintr-o serie de transformri
elementare (substituii, transpoziii) ale caracterelor textului clar. Unii
12

algoritmi aplicau aceste transformri n mod repetat, mbuntind n acest


mod securitatea algoritmului. n criptografia modern bazat pe calculator
(criptografie computaional), lucrurile s-au complicat, dar multe dintre
ideile criptografiei clasice au rmas nemodificate.
Criptografia clasic se ncadreaz n clasa criptografiei cu chei
simetrice.
Cifrul de substituie (substitution cipher) este cifrul bloc la care
fiecare caracter sau grup de caractere ale textului clar m este substituit cu
un alt caracter sau grup de caractere n textul cifrat c, descifrarea fcnduse prin aplicarea substituiei inverse asupra textului cifrat. n criptografia
clasic exist patru tipuri de cifruri de substituie. Deosebim cifruri cu
substituie monoalfabetic i polialfabetic.
Cifruri de substituie monoalfabetic (monoalphabetic ciphers) sunt
cifrurile n care fiecare caracter al textului n clar m este nlocuit cu un
caracter corespunztor n textul cifrat c. Mai jos sunt prezentate cteva
dintre cele mai cunoscute cifruri de substituie monoalfabetic:
Cifrul lui Cesar (sau Cezar). n acest cifru fiecare liter a textului clar
este nlocuit cu o nou liter obinut printr-o deplasare alfabetic. Cheia
secret k, care este aceeai la criptare ct i la decriptare, const n numrul
care indic deplasarea alfabetic, adic k{1, 2, 3,, n1}, unde n este
lungimea alfabetului. Criptarea i decriptarea mesajului pentru cifrul Cezar
poate fi definit de formulele
c = ek(x) = x + k (mod n),
m = dk(y) = y k (mod n),
unde x este reprezentarea numeric a caracterului respectiv al textului clar.
Funcia numit Modulo (a mod b) returneaz restul mpririi numrului
ntreg a la numrul ntreg b. Aceast metod de criptare este numit aa
dup Iulius Cezar, care o folosea pentru a comunica cu generalii si,
folosind cheia k = 3 (Tabelul 2.1). Pasul de criptare al cifrului lui Cezar
este de obicei ncorporat n scheme mai complexe precum Cifrul Vigenre
(vezi mai jos).
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
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0 1 2
ABCDEFG H I J K L M N O P Q R S T U V W X Y Z
DEFGH I J K L M N O P Q R S T U V W X Y Z A B C
13

Tabelul 2.1. Exemplu pentru un cifru Cezar cu cheia k=3


De exemplu, pentru k = 3 avem
ek(S) = 18 + 3 (mod 26) = 21 = V
dk(V) = 21 3 (mod 26) = 18 = S
Exemplu: Textul clar
EXEMPLIFICARE CEZAR,
prin aplicarea cheii k = 3 se transform n textul criptat
HAHPSOLILFDUH FHCDU.
Cifrul lui Cezar este foarte uor de spart, deci este un cifru foarte slab.
Astfel, un criptanalist poate obine textul clar prin ncercarea celor 25 de
chei. Nu se tie ct de util era cifrul Cezar n timpul cnd era folosit de
ctre cel de la care i provine numele, dar este probabil ca el s fie destul
de sigur, att timp ct numai civa dintre inamicii lui Cezar erau n stare
s scrie i s citeasc, dar mai ales s cunoasc concepte de criptanaliz.
Cifrul afin este o generalizare a cifrului Cezar.
Cheia
k = {(a, b) | a, b Z26 = {0, 1, 2, , 25}, cmmdc(a, 26) = 1},
iar funciile de criptare i decriptare (pentru o cheie k = (a, b)) sunt
ek(x) = ax + b (mod 26),
dk(y) = a 1y + a 1(26 b) (mod 26).
Condiia ca a s e prim cu 26 asigur existena lui a 1 n Z26.
De exemplu, pentru a = 7, b = 16 funcia de criptare este ek(x) = 7x +
16, care poate reprezentat cu Tabelul 2.2:
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
16 23 4 11 18 25 6 13 20 1 8 15 22 3 10 17 24 5 12 19 0 7 14 21 2 9
A B CD E F GH I J K L M N O P Q R S T U V W X Y Z
Q X E L S Z GN UB I P W D K R Y F M T A H O V C J
Tabelul 2.2. Exemplu pentru cifrul afin cu cheia k = (7, 16)

Astfel, textul clar LA MULTI ANI se cripteaz n PQ WAPTU QDU.


Deoarece 71 = 15 (mod 26), decriptarea se realizeaz matematic
folosind funcia
dk(y)=15y+15(2615)(mod 26)=15y+1511 (mod 26)=15y + 9 (mod 26)
(sau practic, inversnd cele dou linii ale tabelului de mai sus).
Condiia cmmdc(a, 26) = 1 asigur de asemenea injectivitatea funciei
ek. De exemplu, pentru ek(x) = 10x + 1, A i N se transform ambele n B,
iar O nu apare ca imagine n alfabetul substituiei.
14

Orice cheie k a cifrului afin este determinat complet de valorile


ntregi (a, b) pentru care cmmdc(a, 26) = 1. Sunt posibile 12 valori pentru
a: 1, 3, 5, 7, 9, 11, 15, 19, 21, 23, 25 i 26 valori pentru b, care se iau
independent de a, cu o singur excepie a = 1, b = 0 (care se exclude
deoarece nu conduce la nici o criptare). Aadar mulimea cheilor n acest
caz este alctuit din
1226 1 = 311
chei diferite, numr suficient de pentru atacul prin fora brut.
Cifrul Polibios. Cifrul Cezar nu este cel mai vechi algoritm de criptare.
Se pare c primul astfel de algoritm a fost utilizat de Polybios (istoric grec
mort cu 30 ani naintea naterii lui Cezar). Iniial acesta a fost doar un
sistem maritim de semnalizare cu tore iar ulterior i s-a dat o semnificaie
criptografic.
n cifrul Polibios pentru fiecare alfabet se construiete un careu aparte
de cifrare, de cele mai dese ori cu numrul de coloane i linii egal (ns nu
e o condiie necesar). Dimensiunile careului depind de lungimea n a
alfabetului. Pentru a crea careul se iau dou numere ntregi, produsul
crora e cel mai aproape de n. Liniile i coloanele se numeroteaz. Dup
aceasta literele alfabetului se nscriu n acest careu n ordinea apariiei.
Dac nu sunt suficiente celule pentru literele alfabetului se pot nscrie ntro celul 2 litere (de frecvena ct mai redus).
Pentru alfabetul latin, putem avea careuri Polibios 55, dup cum este
reprezentat n Tabelul 2.3:
a

I/J

I/J

Tabelul 2.3. Exemple de tabele ale cifrului Polibios

15

Observaie: n al treilea careu a fost omis litera Q care este una cu


frecven redus.
n operaia de criptare, fiecare caracter m va fi reprezentat printr-o
pereche de litere (x, y), unde x, y{A, B, C, D, E} (unde ABCDE este
cheia cifrului) sau x, y{1, 2, 3, 4, 5} (cheia este 12345) care dau linia,
respectiv coloana pe care se a M.
Astfel, textul clar VENI VIDI VICI este criptat n
55 15 33 24 55 24 14 24 55 24 13 24.
Deci sistemul de criptare Polybios este o substituie monoalfabetic cu
alfabetul
W ={AA, AB, AC, . . . , EE} sau W ={11, 12, 13, . . . , 55}
de 25 caractere.
Sunt diverse versiuni ale sistemului Polybios. Astfel, dac se folosesc
drept coordonate cifrele 1, 2, 3, 4, 5 n loc de A, B, C, D, E, sistemul a fost
folosit n penitenciarele ruseti i de ctre prizonierii americani din
Vietnam. Este foarte simplu de nvat i poate aplicat folosind diverse
semne drept coordonate-chei (cifre, puncte, guri, etc). Cifrul Polibios a
fost utilizat de asemenea n cadrul altor sisteme de criptare, cum ar
sistemul nihilist, cifrul ADFGVX (utilizat de armata german n primul
rzboi mondial) sau sistemul Bifid, inventat de Dellastell n 1901.
Punctul slab al sistemelor de criptare monoalfabetice const n
frecvena de apariie a caracterelor n text. Dac un text criptat este
suficient de lung i se cunoate limba n care este scris textul clar, sistemul
poate spart printr-un atac bazat pe frecvena apariiei literelor ntr-o
limb.
Sunt construite diverse structuri de ordine relativ la frecvena apariiei
literelor n fiecare limb european. De obicei, cu ct un text criptat este
mai lung, cu att frecvena literelor folosite se apropie de aceast ordonare
general. O comparare ntre cele dou relaii de ordine (cea a caracterelor
din textul criptat i cea a literelor din alfabetul limbii curente) conduce la
realizarea ctorva corespondene (liter text clar liter text criptat), ceea
ce stabilete n mod univoc cheia de criptare. Pentru sistemul Cezar este
suficient stabilirea unei singure perechi; pentru sistemul an trebuiesc
dou perechi etc.
Pentru limba romn frecvena literelor este prezentat n Tabelul 2.4
i Figura 2.1.
16

9,95 4,06 0,91 1,07 5,28 3,45 11,47 1,18 0,99 0,47 9,96 1,40 0,24 0,11 4,48 3,10

6,47 4,07 3,18 0,00 6,82 4,40 1,55 6,04 1,00 6,20 1,23 0,03 0,11 0,07 0,71

Tabelul 2.4. Frecvena literelor limbii romne

Figura 2.1. Frecvena literelor limbii romne

Cifruri de substituie polialfabetic (polyalphabetic ciphers).


Slbiciunea cifrurilor monoalfabetice este dat de faptul c distribuia
lor de frecven reflect distribuia alfabetului folosit. Un cifru este mai
sigur din punct de vedere criptografic dac prezint o distribuie ct mai
regulat, care s nu ofere informaii criptanalistului.
O cale de a aplatiza distribuia este combinarea distribuiilor ridicate cu
cele sczute. Daca T este criptat cteodat ca a i alt dat ca b, i dac X
este de asemenea cteodat criptat ca a i alt dat ca b, frecvena ridicat a
lui T se combin cu frecvena sczut a lui X producnd o distribuie mai
moderata pentru a i pentru b.
Dou distribuii se pot combina prin folosirea a doua alfabete separate
de criptare, primul pentru caracterele aflate pe poziii pare n text clar, al
doilea pentru caracterele aflate pe poziii impare rezultnd necesitatea de
17

a folosi alternativ doua tabele de translatare, de exemplu permutrile


p1(a) = (3a) mod 26 i p2(a) = ((7a) +13) mod 26.
Diferena dintre cifrurile polialfabetice i cele monoalfabetice const n
faptul c substituia unui caracter variaz n text, n funcie de diveri
parametri (poziie, context etc.). Aceasta conduce bineneles la un numr
mult mai mare de chei posibile. Se consider c primul sistem de criptare
polialfabetic a fost creat de Leon Battista n 1568. Unele aplicaii actuale
folosesc nc pentru anumite seciuni astfel de sisteme de criptare.
Cifrul omofonic (homophonic ciphers) este un cifru de substituie n
care un caracter al alfabetului mesajului n clar (alfabet primar) poate s
aib mai multe reprezentri. Ideea utilizat n aceste cifruri este
uniformizarea frecvenelor de apariie a caracterelor alfabetului textului
cifrat (alfabet secundar), pentru a ngreuna atacurile criptanalitice. Astfel,
litera A - cu cea mai mare frecven de apariie n alfabetul primar poate
fi nlocuit de exemplu cu H, # sau m.
Sistemul de criptare omofonic este un sistem intermediar ntre
sistemele mono i cele polialfabetice. Principalul lui scop este de a evita
atacul prin frecvena de apariie a caracterelor. Se presupune c a fost
utilizat prima oar n 1401 de ctre ducele de Mantua. n cifrul omofonic
fiecrui caracter a m i se asociaz o mulime H(a) c astfel nct:
H(a) H(b) = a b;
Dac a apare mai frecvent dect b n textele clare, atunci card
((H(a)) card(H(b)).
Criptarea unui caracter x m se face cu un element ales aleator din
H(a). Pentru decriptarea lui y c se caut o mulime H(x) astfel ca
y H(x).
Exemplu. Pentru limba englez poate fi utilizat cifrul definit de Tabelul
2.5.
n primele dou linii ale acestui tabel sunt aezate literele alfabetului
latin i frecvenele (rotunjite) ale acestora. n coloanele de sub litera x este
situat H(x). De exemplu
H(n) = {18, 58, 59, 66, 71,91}.
Pentru criptarea textului ac se poate folosi oricare din secvenele
0948, 1248, 3348, 4748, 5348, 6748, 7848, 9248, 0981, 1281, 3381, 4781,
5381, 6781, 7881, 9281.
18

Dei mai greu de spart dect cifrurile de substituie simple


(monoalfabetice), cifrul omofonic nu mascheaz total proprietile
statistice ale textului clar. n cazul unui atac cu text clar cunoscut (vezi
Tema 15), cifrul se sparge extrem de uor. Atacul cu text cifrat este mai
dificil, dar unui calculator i va lua doar cteva secunde pentru a-l sparge.
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
8 2 3 4 13 2 2 6 7 1 1 4 3 7 8 2 1 6 6 9 3 1 2 1 2 1
09 48 13 01 14 10 06 23 32 15 04 26 22 18 00 38 94 29 11 17 08 34 60 28 21 02
12 81 41 03 16 31 25 39 70
37 27 58 05 95
35 19 20 61
89
52
33
62 45 24
50 73
51
59 07
40 36 30 63
47
79 44
56 83
84
66 54
42 76 43
53
46
65 88
71 72
77 86 49
67
55
68 93
91 90
80 96 69
78
57
99
75
92
64
85
74
97
82
87
98
Tabelul 2.5. Exemplu de cifru omofonic pentru limba englez

Cifrurile bazate pe substituie poligramic realizeaz substituirea unor


blocuri de caractere (poligrame) din textul clar, distrugnd astfel
semnificaia, att de util n criptanaliz, a frecvenelor diferitelor
caractere. Vom considera un mesaj m = m1m2...mdmd+1... i un cifru care
prelucreaz poligrame de lungime d. Criptograma rezultat este
c=c1...cdcd+1...cd+d. Fiecare poligram mi,d+1...mi,d+d va fi prelucrat n
poligrama ci,d+1...ci,d+d prin funcia de substitute fj astfel:
ci,d+j = fj(mi,d+1mi,d+d)
n cazul cifrrii literelor singulare frecvena de apariie a literelor n
textul cifrat este egal cu frecvena de apariie a literelor corespunztoare
din textul clar. Aceast invarian a frecvenelor furnizeaz o cantitate de
informaie suficient criptanalistului pentru spargerea cifrului. Pentru
minimizarea informaiei colaterale furnizate de frecvena de apariie a
literelor s-a utilizat cifrarea grupurilor de d litere (d-grame). n cazul cnd
un grup de d litere este substituit printr-un alt grup de d litere, substituia se
19

numete poligramic. Substituia poligramic cea mai simpl se obine


pentru d=2 cnd digrama m1m2 din textul clar se substituie cu digrama c1c2
din textul cifrat.
Un exemplu clasic pentru substituia diagramelor este cifrul lui
Playfair (Tabelul 2.6).
P L A Y F
I
R E X M
B C D G H
J K N O S
T U V W Z
Tabelul 2.6. Exemplu de cifru Playfair

Primele litere din ptrat reprezint un cuvnt cheie k (literele care se


repet se scriu o singur dat, n acest exemplu cheia fiind k=PLAYFAIR),
dup care ptratul se completeaz cu literele alfabetului, fr repetarea
literelor. Cifrarea se executa dup urmtoarele reguli:
dac m1m2 sunt dispuse n vrfurile opuse ale unui dreptunghi, atunci
c1c2 sunt caracterele din celelalte vrfuri ale dreptunghiului, c2 fiind
n aceeai linie cu m1. De exemplu AB devine PD, deci AB PD;
dac m1 i m2 se gsesc ntr-o linie, atunci c1 i c2 se obin printr-o
deplasare ciclic spre dreapta a literelor m1 i m2. De exemplu
AF YP iar XM MI;
dac m1 i m2 se afl n aceeai coloan atunci c1 i c2 se obin printr-o
deplasare ciclic a lui m1, m2 de sus n jos. De exemplu RC CK
iar LU RL etc.;
pentru separarea liniilor identice alturate se introduc nite caractere de
separare care, de regula, au frecventa de apariie redus, cum sunt de
exemplu literele X, Q n limba romna. n cazul n care numrul de
caractere n textul clar este impar se procedeaz la fel. La descifrare
aceste litere introduse se omit.
Descifrarea se executa dup reguli asemntoare cu cele de cifrare
Exemplu. Folosind exemplul de mai sus (k = PLAYFAIR) textul clar
VINE IARNA obinem textul cifrat TE VD EP KE YE. Aici am
introdus la sfritul mesajului litera X iar AX YE. La descifrare dup
sensul mesajului se omite aceast liter.
20

Cifrul Playfair se folosea n scopuri tactice de ctre forele militare


britanice n timpul celui de-al doilea rzboi al Burilor (1899-1902) dar i n
primul rzboi mondial. La fel a fost utilizat de ctre australieni i germani
n timpul celui de-al doilea rzboi mondial. El era utilizat deoarece era
suficient de rapid n aplicare i nu necesita nici un utilaj special. Scopul
principal al utilizrii lui era protecia informaiei importante (ns nu i
secrete) pe parcursul unei lupte. La momentul cnd criptanalitii inamici
sprgeau cifrul, informaia deja nu mai era util pentru inamic.
Utilizarea cifrului Playfair n prezent nu are sens deoarece laptop-urile
moderne pot sparge cu uurin cifrul n cteva secunde. Primul algoritm
de spargere pentru Playfair a fost descris n anul 1914 de ctre locotenentul
Iosif O. Moubornom ntr-o brour de 19 pagini.
Cifrul Vigenere. La fel ca cifrul Cezar, cifrul Vigenere deplaseaz
literele, dar, spre deosebire de acesta nu se poate sparge uor n 26
combinaii. Cifrul Vigenere folosete o deplasare multipl. Cheia nu este
constituit de o singur deplasare, ci de mai multe. Cheia este constituit
din civa ntregi ki, unde 0 ki 25.
Criptarea se face n felul urmtor:
ci = mi + ki (mod 26).
Cheia poate fi, de exemplu, k = (21, 4, 2 19, 14, 17) i ar provoca
deplasarea primei litere cu 21, c1 = m1 + 21 (mod 26), a celei de a doua cu
4, c2 = m2 + 4 (mod 26), .a.m.d. pn la sfritul cheii i apoi de la
nceput, din nou. Cheia este de obicei un cuvnt, pentru a fi mai uor de
memorat cheia de mai sus corespunde cuvntului vector. Metoda cu
deplasare multipl ofer protecie suplimentar din dou motive:
primul motiv este c ceilali nu cunosc lungimea cheii.
cel de al doilea motiv este c numrul de soluii posibile
crete; de exemplu, pentru lungimea cheii egal cu 5, numrul
de combinaii care ar fi necesare la cutarea exhaustiv ar fi
265 = 11 881 376.
Cifrul Vigenere a fost spart ns folosind altceva dect fora brut (vezi
mai jos).
Decriptarea pentru cifrul Vigenere este asemntoare criptrii.
Diferena const n faptul c se scade cheia din textul cifrat,
mi = ci ki (mod 26).
Pentru simplificarea procesului de cifrare se poate utiliza urmtorul
tabel, numit Tabula Recta (Tabelul 2.7). Aici toate cele 26 cifruri sunt
21

situate pe orizontal i fiecrui cifru i corespunde o anumit liter din


cheie, reprezentat n colana din stnga tabelului. Alfabetul corespunztor
literelor textului clar se afl n prima linie de sus a tabelului. Procesul de
cifrare este simplu este necesar ca avnd litera x din cheie i litera y din
textul clar s gsim litera textului cifrat care se afl la intersecia liniei x i
coloanei y.
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
a A B C D E F G H I J K LMN O P Q R S T U VWX Y Z
b B C D E F G H I J K L MN O P Q R S T U VWX Y Z A
c C D E F G H I J K LMN O P Q R S T U VWX Y Z A B
d D E F G H I J K L MN O P Q R S T U VWX Y Z A B C
e E F G H I J K LMN O P Q R S T U VWX Y Z A B C D
f F G H I J K L MN O P Q R S T U VWX Y Z A B C D E
g G H I J K L MN O P Q R S T U VWX Y Z A B C D E F
h H I J K L MN O P Q R S T U VWX Y Z A B C D E F G
i I J K L MN O P Q R S T U VWX Y Z A B C D E F G H
j J K L MN O P Q R S T U VWX Y Z A B C D E F G H I
k K L MN O P Q R S T U VWX Y Z A B C D E F G H I J
l L MN O P Q R S T U VWX Y Z A B C D E F G H I J K
mMN O P Q R S T U VWX Y Z A B C D E F G H I J K L
n N O P Q R S T U VWX Y Z A B C D E F G H I J K LM
o O P Q R S T U VWX Y Z A B C D E F G H I J K LMN
p P Q R S T U VWX Y Z A B C D E F G H I J K L MN O
q Q R S T U VWX Y Z A B C D E F G H I J K LMN O P
r R S T U VWX Y Z A B C D E F G H I J K LMN O P Q
s S T U VWX Y Z A B C D E F G H I J K LMN O P Q R
t T U VWX Y Z A B C D E F G H I J K LMN O P Q R S
u U VWX Y Z A B C D E F G H I J K LMN O P Q R S T
v VWX Y Z A B C D E F G H I J K LMN O P Q R S T U
wWXY Z A B C D E F GH I J K LMNO P Q R S T UV
x X Y Z A B C D E F G H I J K L MN O P Q R S T U VW
y Y Z A B C D E F G H I J K L MN O P Q R S T U VWX
z Z A B C D E F G H I J K L MN O P Q R S T U VWX Y
Tabelul 2.7. Tabula Recta pentru cifrul Vigenere

22

Se poate de procedat i n conformitate cu ecuaiile ce definesc cifrul


ci = mi + ki (mod 26) i mi = ci ki (mod 26), aa cum este artat n
exemplul ce urmeaz.
Exemplu. De cifrat, utiliznd cifrul Vigenere, mesajul Per aspera ad
astra folosind cheia K= SUPER.
Pentru a cifra sau descifra mai nti facem corespondena urmtoare:
ABCDEFGH I J K L M N O P Q R S T U V W X Y Z
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
Apoi alctuim i completm tabelul:
Textul clar M
Cheia K
Textul clar M
Cheia K
M+K (mod 26)
Textul cifrat C

P
S
15
18
7
H

E
U
4
20
24
Y

R
P
17
15
6
G

A
E
0
4
4
E

S
R
18
17
9
J

P
S
15
18
7
H

E
U
4
20
24
Y

R
P
17
15
6
G

A
E
0
4
4
E

A
R
0
17
17
R

D
S
3
18
21
V

A
U
0
20
20
U

S
P
18
15
7
H

T
E
19
4
23
X

R
R
17
17
8
I

A
S
0
18
18
S

C= HYGEJHYGERVUHXIS.
Pentru decriptare procedm la fel, cu excepia mi = ci ki (mod 26).
Apoi alctuim i completm tabelul:
Textul cifrat C
Cheia K
Textul cifrat C
Cheia K
MK (mod 26)
Textul clar M

H
S
7
18
15
P

Y
U
24
20
4
E

G
P
6
15
17
R

E
E
4
4
0
A

J
R
9
17
18
S

H
S
7
18
15
P

Y
U
24
20
4
E

G
P
6
15
17
R

E
E
4
4
0
A

R
R
17
17
0
A

V
S
21
18
3
D

U
U
20
20
0
A

H
P
7
15
18
S

X
E
23
4
19
T

I
R
8
17
17
R

S
S
18
18
0
A

M = PERASPERAADASTRA.
Criptanaliza sistemului Vigenere const n urmtoarele: fie
c = c0 c1 ... cn-1 textul criptat cu cheia k = k0 k1 ... kp1; putem aranja acest
text sub forma unei matrice cu p linii i n / p coloane, astfel

23

c0
c1

c p 1

cp
c p +1

c2 p
c2 p +1

c2 p 1

c3 p 1

Elementele de pe prima linie au fost criptate dup formula


c pr = a pr + k0 (mod 26), k 0 ,
adic cu un sistem Cezar ( k 0 fiind o valoare fixat din Z26). n mod similar
i celelalte linii.
Deci, dac s-ar cunoate lungimea p a cheii, problema s-ar reduce la
criptanaliza a p texte criptate cu Cezar sistem de criptare monoalfabetic.
Sunt cunoscute dou metode pentru aflarea lungimii cheii: testul lui
Kasiski i indexul de coinciden.
Prima metod const n studiul textului criptat i aflarea de perechi de
segmente de cel puin 3 caractere identice (aceast lungime este propus de
Kasiski). Pentru fiecare astfel de pereche, se determin distanta dintre
segmente. Dup ce s-au gsit mai multe astfel de distane, valoarea lui p va
cel mai mare divizor comun al lor (sau eventual un divizor al acestuia).
A doua metod de aare a lungimii cheii de criptare ntr-un sistem
Vigenere se bazeaz pe un concept denit n 1920 de Wolfe Friedman indexul de coinciden. Dac c = c1c2 ...cn este o secven de n caractere
alfabetice, probabilitatea ca dou caractere din c, alese aleator, s e
identice se numete index de coinciden I c (x) al lui c.

24

Tema 3. Cifruri clasice. Cifrul de transpoziii


Spre deosebire de cifrurile cu substituie, care pstreaz ordinea
literelor din textul surs dar le transform, cifrurile cu transpoziie
(transposition ciphers) reordoneaz literele, fr a le deghiza.
Criptarea prin metoda transpoziiei este o tehnic mai eficient dect
criptarea prin substituie, dar are, la rndul ei, o mulime de dezavantaje.
Textul criptat prin metoda transpoziiei pstreaz toate caracterele textului
iniial, dar n alt ordine obinut prin aplicarea algoritmului ce va fi
prezentat n continuare.
Criptarea prin transpoziie const n scrierea textului iniial din care sau eliminat spaiile i semnele de punctuaie ntr-o matrice de dimensiune
MN i interschimbarea anumitor linii (sau coloane) ntre ele. Textul
criptat se obine prin scrierea caracterelor din noua matrice de pe fiecare
coloan n parte, ncepnd cu colul din stnga-sus. Dac lungimea textului
iniial este mai mic dect numrul de elemente ce pot fi scrise n matrice,
atunci textul se completeaz cu elemente aleatoare, pn ajunge la
dimensiunea MN.
Pentru textul Misiunea a fost ndeplinit, care are lungimea de 24 de
caractere, se pot alege mai multe matrice de dimensiune MN, o
posibilitate ar fi ca matricea s aib 4 linii i 6 coloane, dar pentru ca textul
s fie mai greu de decodificat trebuie s conin i caractere alese aleator,
sau ntr-un mod mai inteligent, care s ngreuneze munca celui care dorete
s afle coninutul secret din mesajul criptat. Fie am ales o matrice care are
5 linii i 6 coloane. Textului iniial i se adaug 6 caractere aleatoare i se
obine textul Misiun eaafos tndep linit xyztwu care se scrie n matricea
din partea stng, aa cum e artat n Tabelul 3.1:

Tabelul 3.1. Exemplu de cifru cu transpoziie

25

Prin scrierea liniilor 1, 2, 3, 4, 5 n ordinea 5, 3, 4, 1, 2, se obine


matricea din partea dreapt. Textul criptat care se obine este: xtlMe yiia
znnsa tdiif wetuo upns.
Transpoziie cu cheie. Pentru ca procesul de decriptare s fie mai
simplu i s nu mai fie nevoie de ordinea n care au fost puse liniile din
matricea creat, se folosete o versiune a criptrii prin transpoziie care se
bazeaz pe o cheie.
Pentru a cripta un text folosind o cheie i metoda transpoziiei, se alege
o cheie ale crei litere determin ordinea n care se vor scrie coloanele din
matricea aleas. Pentru a afla ordinea n care vor fi scrise coloanele din
textul iniial, se ordoneaz alfabetic literele din cheie, i fiecrei litere i se
asociaz numrul de ordine din irul ordonat.
Lungimea cheii trebuie s fie egal cu numrul de coloane din matrice.
Considerm textul anterior, scris ntr-o matrice de dimensiuni 56, i
cheia vultur. Literele din cheie se ordoneaz alfabetic i se obine irul: l,
r, t, u, u, v. Indicele 1 este asociat cu litera l, indicele 2 cu litera r, indicele
3 cu litera t, indicele 4 cu prima liter u din cheie, indicele 5 cu a doua
liter u din cheie, iar indicele 6 este asociat cu litera v. Pentru a scrie
coloanele, pentru fiecare indice i din irul ordonat se caut indicele j, care
reprezint poziia literei cu indicele i, din cheie i se scrie coloana j, astfel:

Tabelul 3.2. Exemplu de transpoziie cu cheie

Textul cifrat care se obine n final este:


sannz nspu ifdit iaiy uoetw Metlx.
Pentru a decripta un mesaj criptat cu aceast metod, criptograma se
scrie n matrice pe coloane, ncepnd cu colul stnga-sus, i apoi se
realizeaz operaia invers, adic pentru fiecare indice j al literelor din
cheie, se caut indicele i asociat literei din irul sortat i se scrie coloana cu
26

indicele i. Din noua matrice astfel obinut se scriu literele de pe fiecare


linie, n ordine.
O tehnic cunoscut i foarte practic de transmitere a mesajelor
folosind metoda transpoziiei const n nfurarea unei panglici n jurul
unui b. Mesajul se scrie pe panglic, de-a lungul bului, de la captul
superior spre captul inferior, pe coloane i apoi se trimite la destinaie
numai panglica, care ulterior s-a desfcut de pe b. La destinaie se
nfoar panglica pe un b avnd aceeai dimensiune cu cel care a ajutat
la scrierea textului i se citete textul pe coloane.
S analizm un exemplu de text mai voluminos a transpoziiei cu
cheie.
Exemplu: De efectuat criptarea textului clar m =acestcurssipropune
sprezintefacilittiledecomunicareoferitedereteleledecalculatoare,
utiliznd cheia PRECIS.
P
4

R
5

E
2

C
1

I
3

S
6

a
u
p
e
z
a

e
i
f
d
l
c
a

c
r
r
s
i
c
t
c
c
e
e
e
a
t

e
s
o

n
i
i
o
a
r
r
l
l
o

p
p
t
l
l
m
r
i
e
e
c
a

t
s
u
r
e
i
e
u
e
t
t
d
u
r

c
i
n
e
f
t
d
n
o
e
e
e
l
e

Tabelul 3.3. Exemplu de cifru cu transpoziie

27

Pentru criptare (dar ulterior i pentru decriptare) completm tabelul de


criptare (Tabelul 3.3) prin aezarea textului clar pe linii. Citirea rezultatului
pe coloane n conformitate cu cheia (n ordine alfabetic) va genera textul
cifrat:
c =spptllmrieecaesoniioarrllotsureieuettduraupezaeifdlcacrrsictcceeea
tcineftdnoeeele.
Spargerea unui cifru cu transpoziie ncepe cu verificarea dac acesta
este ntr-adevr de acest tip prin calcularea frecventelor literelor i
compararea acestora cu statisticile cunoscute. Dac aceste valori coincid,
se deduce c fiecare liter este ea nsi, deci este vorba de un cifru cu
transpoziie.
Urmtorul pas este emiterea unei presupuneri n legtur cu numrul
de coloane. Acesta se poate deduce pe baza unui cuvnt sau expresii
ghicite ca fcnd parte din text. Considernd sintagma sprezinte, cu
grupurile de litere (luate pe coloane) si, n, pt, re, se poate deduce
numrul de litere care le separ, deci numrul de coloane. Notm n
continuare cu m acest numr de coloane.
Pentru a descoperi modul de ordonare a coloanelor, dac m este mic, se
pot considera toate posibilitile de grupare a cte dou coloane (n numr
de m (m 1) ). Se verific dac ele formeaz mpreun un text corect
numrnd frecventele literelor i comparndu-le cu cele statistice. Perechea
cu cea mai bun potrivire se consider corect poziionat. Apoi se ncearc,
dup acelai principiu, determinarea coloanei succesoare perechii din
coloanele rmase iar apoi - a coloanei predecesoare. n urma acestor
operaii, exist anse mari ca textul s devin recognoscibil.
Unele proceduri de criptare accept blocuri de lungime fix la intrare i
genereaz tot un bloc de lungime fix. Aceste cifruri pot fi descrise
complet prin lista care definete ordinea n care caracterele vor fi trimise la
ieire (irul poziiilor din textul de intrare pentru fiecare caracter din
succesiunea generat).
De la apariia cifrurilor cu substituie i a celor cu transpoziie anii au
trecut i tehnicile de criptare au evoluat foarte mult.
Problema construirii unui cifru imposibil de spart a preocupat ndelung
pe criptanaliti; ei au dat o rezolvare teoretic simpl nc de acum cteva
decenii dar metoda nu s-a dovedit fiabil din punct de vedere practic, dup
cum se va vedea n continuare.
28

Tehnica propus pentru un cifru perfect presupune alegerea unui ir


aleator de bii pe post de cheie i aducerea textului surs n forma unei
succesiuni de bii prin nlocuirea fiecrui caracter cu codul su ASCII.
Apoi se aplic o operaie logic - de tip SAU exclusiv (operaia invers
echivalentei: 0 xor 0 = 0, 0 xor 1 = 1, 1 xor 0 = 1, 1 xor 1 = 0) - ntre cele
dou iruri de bii. Textul cifrat rezultat nu poate fi spart pentru c nu
exist indicii asupra textului surs i nici textul cifrat nu ofer
criptanalistului informaii. Pentru un eantion de text cifrat suficient de
mare, orice liter sau grup de litere (diftong, triftong) va aprea la fel de
des.
Acest procedeu este cunoscut sub numele de metoda cheilor
acoperitoare. Dei este perfect din punct de vedere teoretic, metoda are,
din pcate, cteva dezavantaje practice:
cheia nu poate fi memorat, astfel nct transmitorul i receptorul
s poarte cte o copie scris a ei fiindc n caz c ar fi capturai,
adversarul ar obine cheia;
cantitatea total de date care poate fi transmis este determinat de
dimensiunea cheii disponibile;
o nesincronizare a transmitorului i receptorului care genereaz o
pierdere sau o inserare de caractere poate compromite ntreaga
transmisie fiindc toate datele ulterioare incidentului vor aprea ca
eronate.

29

Tema 4. Maini rotor


Sistemele de criptare pot fi aduse la un grad mai mare de securitate
dac se folosesc mijloace mecanice de criptare. Astfel de mecanisme
special construite vor uura operaiile de criptare/decriptare i n acelai
timp vor fi capabile s creeze un numr mult mai mare de chei posibile.
Primele astfel de mecanisme au aprut nc n antichitate.
n secolul V .e.n. pentru criptarea datelor se folosea un baston, numit
Schitala, n jurul cruia se nfura spir lng spir o panglic foarte
ngust de piele, papirus sau pergament pe care, pe generatoare se scriau
literele mesajelor. Dup ce textul era scris panglica se desfura, mesajul
devenea indescifrabil, deoarece literele erau dezasamblate. Mesajul se
putea descifra numai de o persoan care dispunea de un baston de grosime
i lungime identice cu bastonul iniial pe care se nfura din nou panglica
primit de receptor. Astfel Schitala realiza o transpoziie, aceasta fiind o
prim form a acestei metode de criptare. Conform istoricilor greci, acest
mod de comunicare era folosit de spartani n timpul campaniilor militare.
El avea avantajul de a fi rapid i nu genera erori de transmitere.
Dezavantajul ns era acela c putea fi uor de spart.

Figura 4.1. Schitala

Leon Battista Alberti (14.02.1404 25.04.1472) scriitor, arhitect,


pictor, sculptor, matematician, criptograf, filozof italian i umanist al
Renaterii a inventat Criptograful lui Alberti (Figura 4.2), care era
alctuit din dou discuri concentrice cu diametre diferite, suprapuse.
Fiecare disc era mprit n 24 sectoare pe care erau nscrise litere i cifre.
Pe discul exterior, care rmnea static, erau scrise 20 de litere ale
alfabetului italian (alfabetul italian nu avea literele H, J, K, W, X, Y) n
30

ordinea lor fireasc, iar apoi cifrele 1, 2, 3, 4. Pe discul interior care se


rotea, erau scrise 23 de litere ale alfabetului latin (fr J, K, Y) i conjuncia
ET. Ordinea lor era arbitrar. Pentru cifrare se stabilea o cheie, de exemplu
G=a. Aceasta nsemna c pentru cifrare litera a de pe discul mic se aeza n
dreptul literei G de pe discul mare i apoi ncepea cifrarea. Alberti
recomanda schimbarea cheii dup un numr de cuvinte.
Criptograful lui Alberti a fost perfecionat de ctre Silvester, Argenti i
alii, constituind un element de baz pentru criptografele de tip disc aprute
ulterior. Silvester Porta a mprit discurile n 26 sectoare (Figura 4.2)
utiliznd astfel toate cele 26 litere ale alfabetului latin (nu numai italian),
criptograful su realiznd astfel o substituie simpl complet literal.
Criptograful lui Alberti avea dou particulariti care fac ca invenia sa
fie un mare eveniment n criptografie. n primul rnd acest mecanism nu
era altceva dect un algoritm de criptare polialfabetic. n rndul al doilea
discul respectiv permitea utilizarea aa numitelor coduri cu recifrare, care
au aprut abia la sfritul secolului XIX, adic peste patru secole dup
invenia lui Alberti. n acest scop pe discul exterior erau scrise cifrele 1, 2,
3, 4. Alberti a compus un cod care consta din 336 grupuri de coduri
numerotate de la 11 la 4444. Fiecrui cod i corespundea o oarecare fraz
terminat. Cnd fraza se ntlnea n mesaj ea se nlocuia cu codul
respectiv, iar cu ajutorul discului cifrele erau criptate ca nite semne
ordinare ale mesajului, fiind transformate n litere.
Leon Alberti poate fi considerat un criptogarf ilustru i din motivul c
este autorul primei lucrri de criptologie din Europa (De cifris) publicat
n 1946. n aceast lucrare erau prezentate exemple de versiuni posibile de
cifrare dar i se argumenta necesitatea aplicrii criptografie n practic ca
un instrument ieftin i sigur de protecie a informaiei.
Ideea de main de criptare apare clar prima dat la Thomas Jefferson,
primul secretar de Stat al Statelor Unite (preedinte era George
Washington), care a inventat un aparat de criptat numit roat de criptare,
folosit pentru securitatea corespondenei cu aliaii n special cei francezi.
Un cilindru Jefferson (Figura 4.3) este format din n discuri de
dimensiuni egale (iniial n = 26 sau n = 36) aezate pe un ax. Discurile se
pot roti independent pe ax, iar pe muchia fiecruia sunt nscrise cele 26
litere ale alfabetului, ntr-o ordine aleatoare (dar diferit pentru fiecare
disc).
31

Criptograful lui Alberti

Criptograful lui
Silvester
Figura 4.2.

Criptograful lui
Silvester

La criptare, textul clar se mparte n blocuri de n caractere. Fiecare


astfel de bloc se scrie pe o linie (generatoare) a cilindrului, rotind
corespunztor fiecare disc pentru a aduce pe linie caracterul cutat. Oricare
din celelalte 25 linii va constitui blocul de text criptat.

Figura 4.3. Cilindre Jefferson

32

Pentru decriptare este necesar un cilindru identic, n care se scrie pe o


linie textul criptat (de n caractere) i apoi se caut printre celelalte 25 linii
un text cu semnificaie semantic. Probabilitatea de a avea un singur astfel
de text crete cu numrul de discuri din cilindru.
O mic diferen apare dac textul clar nu are nici o semnificaie
semantic (s-a folosit o dubl criptare). Atunci trebuie convenit dinainte o
anumit distan de criptare s (1 s 25). Thomas Jefferson a folosit acest
aparat n perioada 1790 1802, dup care se pare c ideea s-a pierdut.
Devenit preedinte, Jefferson a fost atras de sistemul Vigenere, pe care l
consider mai sigur i-l recomand secretarului su de stat James Madison
ca nlocuitor al sistemului pe care l inventase anterior.
Ordinea discurilor poate de asemenea schimbat. De exemplu, un
cilindru cu n = 20 discuri poate realiza 20! = 2 432 902 008 176 640 000
texte criptate diferite pentru acelai text clar. Cilindrul Jefferson realizeaz
o substituie polialfabetic de perioad n. Dac ar privit ca un sistem de
criptare Vigenere, lungimea cheii este enorm (de multe ori nn, n funcie
de modalitile de aranjare a alfabetelor pe discuri). Cilindrul Jefferson a
fost reinventat ulterior de mai multe ori, cea mai celebr fiind se pare
maina de criptat Enigma.
O main rotor (rotor machine, Figura 4.4) are o tastatur i o serie de
rotoare ce permit implementarea unei versiuni a cifrului Vignre. Fiecare
rotor face o permutare arbitrar a alfabetului, are 26 de poziii i realizeaz
o substituie simpl. Deoarece rotoarele se mic cu viteze de rotaie
diferite, perioada unei maini cu n rotoare este n26!.
Aplicarea practic a acestor maini a nceput numai la nceputul
secolului XX. Una dintre primele maini cu rotor a fost maina german
Enigma, elaborat n anul 1917 de ctre Eduard Hebern i perfectat mai
trziu de mai multe ori. Din punct de vedere comercial ea a fost disponibil
pe pia nc din anl 1920, ns importana ei a fost dat de utilizarea
mainii de ctre diverse guverne, n mod special de ctre Germania nazist
nainte i n timpul celui de-al doilea rzboi mondial.
Dintre toate dispozitivele criptografice create de-a lungul timpului
maina Enigma a fost un echipament mai special din 2 puncte de vedere:
criptografic;
istoric.
33

Importana din punct de


vedere criptografic este dat de
faptul c echipe de criptanaliti
(matematicieni la origine) de toate
naionalitile, n efort combinat,
au ncercat pe de o parte
perfecionarea mainii, pe de alt
parte spargerea cifrurilor. Printre
cei care au participat la spargerea
cifrului au fcut parte i polonezul
Rajewski i britanicul Turing
(inventatorul mainilor Turing).
Importana istoric rezid din
rolul mare jucat de aceste maini
n timpul celui de-al doilea rzboi
mondial, mai precis faptul c
descifrarea de ctre aliai a
Figura 4.4. Modelul militar german
codului (nume
de proiect
numit Wehrmacht Enigma
ULTRA) a dus, dup unii istorici,
la scurtarea rzboiului cu aproximativ un an.
Construcia mainii. Maina Enigma era o combinaie de pri
mecanice i electrice. Principalele ei componente erau, dup cum urmeaz:

Tastatura (Key board): o tastatur obinuit similar cu cea pentru


mainile de scris.
Placa cu lmpi (Lamp board): asemntoare unei tastaturi cu
lmpi n loc de taste. Pe lmpi erau tiprite literele alfabetului ce
deveneau vizibile prin aprinderea lmpii corespunztoare.
Placa cu comutatoare (Switch board): mufe (prize) cte una pentru
fiecare liter, ce se conectau prin fire n 6 perechi (Aceast
component fusese adugat de germani pentru a crete securitatea
mainii).
Trei roi (Rotating drums): se mai numeau rotoare (roi
detaabile) fiecare dintre ele avnd cte un set de 26 de contacte,
cte unul pentru fiecare liter a alfabetului (Figura 4.5).
Roata reflectoare (Reflecting drum): roat fix identic cu
celelalte 3, avnd un set de 26 de contacte grupate n perechi.
34

Cabluri (Wiring): asigurau conexiunile ntre taste i lmpi precum


i ntre lmpi i primul rotor, ntre primul rotor i al doilea, al
doilea i al treilea, al treilea si roata reflectoare.
Baterie (Battery): pentru alimentarea circuitelor electrice.

Figura 4.5. Seturi rotor

Principiul de funcionare al mainii Enigma se prezenta conform


schemei din Figura 4.6:
Prin apsarea tastei A
curentul era trecut prin setul
de rotoare pn la reflector
de unde se ntorcea napoi
aprinzndu-se becul G.
Litera A se cripteaz
diferit (G si C) doar
printr-o simpl rotire a
primului rotor care face ca
semnalul s circule pe o rut
complet diferit.
Figura 4.6. Principiul de funcionare
al mainii (Enigma)

Pentru operarea mainii n primul rnd toi operatorii aveau maini


identice (pentru asigurarea inter-operabilitii). Iniierea criptrii unui
mesaj se fcea n 2 pai:
Pasul 1: setarea mainii operaie ce consta n fixarea ordinei i
poziiei fiecrui rotor precum i alegerea celor 6 perechi de
conectori prin placa cu comutatoare (switch board).
35

Pasul 2: scrierea propriu-zis a mesajului pentru criptarea


mesajului operatorul apsa pe tasta corespunztoare primei litere
din textul necodat (s zicem N). n acest moment se aprindea o
lamp (s zicem T) corespunztoare codificrii. Repetnd i
pentru celelalte litere, rezulta textul codat.

Trebuie de menionat c toate setrile din Pasul 1 erau nscrise n


manuale de operare (code books), setri ce se schimbau de regul zilnic.
Fiecare operator avea cte un exemplar. De fapt, aceste setri constituiau
cheia criptosistemului Enigma. Un atribut extrem de important al mainii
Enigma era c cheile de cifrare i cele de decifrare erau aceleai. Cu alte
cuvinte dac la transmitere N se transforma n T, la destinaie T
se transforma n N (folosind bine-neles aceleai setri ale mainii).
Utilizarea intensiv colaborat cu posibilitatea transmiterii informaiei
folosind aceleai day key la care se adugau intensele activiti de
contraspionaj i-au condus pe germani la teama c maina ar putea fi
compromis. Efectul, a fost introducerea unui protocol. Acesta spunea:
fiecare operator va transmite suplimentar, naintea mesajului propriu zis,
o cheie a mesajului (message key). Aceste chei erau cuvinte (nu neaprat
cu sens) formate din 3 litere alese n mod aleator de operatorul mainii. Cu
alte cuvinte, operatorul trebuia s seteze maina conform instruciunilor
zilnice din manualul de operare (code book), dup care trimitea cheia din
cele trei litere alese aleator. n aa fel maina se seta ntr-un mod complet
aleator. Condiiile radio proaste, lucrul sub presiune, precum i alte condiii
de lucru nefavorabile puteau conduce la transmiterea (sau recepionarea)
greit (alterat) a cheii, fapt ce ar fi fcut inutil transmiterea mesajului
propriu-zis (evident, datorit faptului c mainile de la transmitor i cea
de la receptor ar fi fost setate diferit). Pentru a minimiza astfel de
incidente, operatorilor li s-a cerut s transmit cheia de 2 ori.
De exmplu
cheia:
the
se transmitea: hothot
se recepiona: dugraz
ns n mod ironic, ceea ce se dorea o msur de securitate n plus, de fapt
a compromis maina.
Matematic vorbind, mulimea cheilor posibile era att de mare nct
nici nu se punea problema atacrii mainii, cel puin nu la aceea vreme,
36

prin metoda exhaustiv (brute-force). Enigma a fost elaborat astfel


nct securitatea s fie pstrat chiar dac inamicul cunoate schemele
rotoarelor, cu toate c n practic setrile erau secrete. Cu o schem secret
de setare cantitatea total a configurrilor posibile era de ordinul 10114
(circa 380 bii) iar dac schema i alte setri operaionale erau cunoscute
acest numr se reducea la 1023 (76 bii). Germanii credeau c maina
Enigma este una infailibil datorit imensitii setrilor posibile ce i se
puteau aplica. Era ireal s ncepi mcar s alegi o configurare posibil.
Din punct matematic de vedere transformarea Enigmei pentru fiecare
liter este rezultatul matematic a permutrilor. Pentru un aparat cu trei
rotoare fie P transformarea pe tabela de prize, U - reflectorul, i L, M, R aciunea rotorului din stnga, din mijloc, dreapta respectiv. Atunci
criptarea E poate fi notat cu:
E = PRMLUL- 1M - 1R - 1P - 1
Dup fiecare apsare de tast rotoarele se rotesc, schimbnd
transformarea. De exemplu dac rotorul de dreapta R e rotit cu i poziii,
transformarea devine: iR- i, unde este permutarea ciclic. Similar,
rotorul din mijloc i cel din stnga pot fi reprezentate ca j i k rotaii
respectiv a lui M i L. Funcia de criptare poate fi descris astfel:
E = P(iR - i)(jM - j)(kL - k)U(kL - 1 - k)(jM - 1 - j)(iR - 1 - i)P - 1
Pentru elucidarea funcionrii mainii Enigma este sugestiv simularea
(n flash) de la http://enigmaco.de/enigma/enigma.swf (Figura 4.7).
Primele spargeri ale mainii Enigma au avut loc la nceputul anilor 30
de ctre matematicienii polonezi Alicen Rejewski, Jerzy Rozycki i Henryk
Zygalsk. Cu noroc i intuiie Rejewski i echipa lui au reuit s compromit
maina, totul fiind posibil nu datorit vreunei scpri n proiectarea
mainii ci deciziei nemilor de a transmite repetitiv (de 2 ori) cheia.
Ulterior Enigma a fost perfecionat, spargerea ei devenind practic
imposibil pentru acele timpuri. Un aport considerabil n direcia spargerii
acestei maini a avut Alan Turing, care proiectase o main
electromecanic (denumit Bombe dup modelul original polonez) ce
putea ajuta la spargerea mainii Enigma mai rapid dect bomba din 1932
a lui Rejewski, din care s-a i inspirat. Bombe (Figura 4.8), cu o
mbuntire sugerat de matematicianul Gordon Welchman, a devenit una
din principalele unelte automate utilizate pentru a ataca traficul de mesaje
protejat de Enigma.
37

Figura 4.7. Simulator maina Enigma

Maina Bombe cuta setri potenial corecte pentru un mesaj


Enigma (adic, ordinea rotoarelor, setrile rotoarelor, etc.), folosind un
fragment de text clar probabil. Pentru fiecare setare posibil a rotoarelor
(numrul maxim posibil fiind de ordinul a 1019 stri, sau 1022 pentru
mainile Enigma de la U-boat, care aveau patru rotoare, fa de maina
Enigma standard care avea doar trei). Aceasta efectua un lan de deducii
logice pe baza fragmentului probabil, deducii implementate electric.
Bombe detecta cnd avea loc o contradicie, i elimina setarea, trecnd la
urmtoarea. Peste dou sute de astfel de maini create de Alan Turing au
fost n funciune pn la sfritul rzboiului.
Mainile cu rotor au fost folosite activ pe parcursul rzboiului II
mondial. Pe lng maina german Enigma au fost folosite i Sigaba
(SUA), Typex (Marea Britanie), Red, Orange, Purple (Japonia). Mainile
cu rotor au fost vrful criptografiei formale deoarece realizau cifruri
suficient de rezistente ntr-un mod relativ simplu.
38

Figura 4.8. Maina BOMBE (Alan Turing)

Atacurile ncununate de succes asupra mainilor cu rotor au fost


posibile numai la nceputul anilor 40 odat cu apariia mainilor
electronice de calcul. Tot n aceast perioad criptografia devine tiinific
ramur aparte a matematicii odat cu publicarea (anul 1949) articolului lui
Claude Elwood Shannon Communication Theory of Secrecy Systems.,
care a pus bazele tiinifice ale sistemelor de criptare cu cheie secret
(sistemelor simetrice).

39

Tema 5. Algoritmi simetrici de criptare. Cifruri bloc. Reeaua Feistel


Dup cum am menionat i la sfritul temei precedente era tiinific a
criptografiei a nceput odat cu publicarea n anul 1949 a articolului lui
Claude Elwood Shannon (30.04.1916 24.02.2001, fondatorul teoriei
informaiei) Communication Theory of Secrecy Systems. ncepnd cu
acest moment criptografia devine tiinific ramur aparte a matematicii, iar
articolul lui Shannon a pus bazele tiinifice ale sistemelor de criptare cu
cheie secret (sistemelor simetrice).
Criptografia modern utilizeaz n principiu aceeai algoritmi ca i
criptografia tradiional (transpoziia i substituia), dar accentul cade pe
complexitatea algoritmilor. Obiectivul criptografic din actuala perioad
este de a concepe algoritmi de criptare att de compleci i de ireversibili
nct atacatorul (sau criptanalistul), chiar i n situaia n care are la
dispoziie cantiti mari de text criptat la alegerea sa, s nu poat face
nimic fr cheia secret.
Algoritmii criptografici folosii n sistemele simetrice de criptare se
mpart n cifruri bloc (block ciphers) i cifruri flux sau cifruri ir (stream
ciphers). Cifrurile flux pot cripta un singur bit de text clar la un moment
dat, pe cnd cifrurile bloc cripteaz mai muli bii (64, 128, 256 sau alt
numr de bii) la un moment dat.
Algoritmii de tip bloc cripteaz mesajul n blocuri de n de bii. Se
aplic o funcie matematic ntre un bloc de bii ai textului clar i cheie
(care poate varia ca mrime), rezultnd acelai numr de bii pentru
mesajul criptat. Funcia de criptare este realizat astfel nct s
ndeplineasc urmtoarele cerine:
tiind un bloc de bii ai textului clar i cheia de criptare, sistemul
s poat genera rapid un bloc al textului criptat;
tiind un bloc de bii ai textului criptat i cheia de
criptare/decriptare, sistemul s poat genera rapid un bloc al
textului clar;
tiind blocurile textului clar i ale textului cifrat ale sistemului s
fie dificil s genereze cheia.
Reeaua (cifrul, schema) Feistel
Algoritmii de tip bloc sunt foarte des folosii n criptografia modern,
iar majoritatea algoritmilor tip bloc utilizai n criptarea simetric la ora
40

actual se bazeaz pe o structur numit cifru bloc Feistel sau reea (uneori
schema) Feistel. Ea a fost elaborat de ctre Horst Feistel (30.01.1915
14.11.1990) unul dintre ntemeietorii criptografiei moderne. Dup cum
am mai menionat, un cifru bloc opereaz asupra blocurilor de text clar de
lungime n bii pentru a produce un bloc de text cifrat de aceeai lungime (n
bii). Un cifru de substituie reversibil arbitrar nu este practic pentru o
dimensiune mare a blocului, din punct de vedere al implementrii i al
performanei. n general, pentru un cifru bloc de substituie arbitrar de nbii, dimensiunea cheii este n2n. Pentru un bloc de 64 de bii, care e o
dimensiune necesar pentru a zdrnici atacurile statistice, dimensiunea
cheii este
64264 = 270 = 1021 bii.
Considernd aceste dificulti, Feistel remarc faptul c este nevoie de
o aproximare a unui cifru bloc ideal, pentru valori mari ale lui n, construit
din componente ce pot fi realizate uor.
Feistel numete o substituie general de n-bii ca fiind cifrul bloc
ideal, deoarece permite numrul maxim de criptri posibile din blocuri de
text clar n blocuri de text cifrat. 4 bii la intrare produc una din cele 16
stri de intrare posibile, care sunt asociate de cifrul cu substituie ntr-o
singur stare de ieire din cele 16 posibile, fiecare fiind reprezentat de 4
bii de text cifrat. Funciile de criptare i decriptare pot fi definite printr-un
tabel.
O structur Feistel are avantajul c cifrarea i decifrarea sunt foarte
similare sau chiar identice n unele cazuri (ceea ce ne amintete de
Enigma), cernd doar o reversie a cheii. Astfel, dimensiunea codului sau
circuitului necesar pentru a implementa un astfel de cifru este practic
njumtit.
Reelele Feistel i construcii similare combin mai multe runde de
operaii repetate cum ar fi:
amestecarea de bii (numit i permutri pe cutii P),
funcii simple ne-lineare (numite si substituii prin cutii S),
amestecul liniar (n sensul algebrei modulare) utiliznd XOR,
pentru a produce o funcie care conine cantiti mari de date, numite de
Claude Shannon confuzie i difuzie. Amestecarea de bii creeaz difuzia
iar substituia - confuzia. n criptografie confuzia se refer la a face o
relaie ntre cheie i textul cifrat ct de complex i adnc posibil, iar difuzia
este definit ca proprietatea c redundana n statisticele textului clar este
41

disipat n statisticele textului cifrat. Difuzia este asociata cu dependena


biilor de la ieire de biii de la intrare. ntr-un cifru cu o difuzie perfecta,
doar schimbarea unui bit de la intrare ar schimba ntregul text, ceea ce se
mai numete i SAC (Strict Avalanche Criterion). Feistel utilizeaz cutiile
P (P-box sau Permutation-box) i amestecul liniar de bii pentru a atinge o
difuzie aproape perfect i se poate spune c ndeplinete condiiile SAC.
Cutiile-S (S-box sau Substitution-box) au o importan fundamental n
funcionarea schemei Feistel. Acestea sunt de obicei folosite pentru a
ascunde relaia dintre cheie i textul cifrat. n general, o cutie S ia un
numr m de bii de intrare i i transform ntr-un numr n de bii de ieire,
unde n nu e neaprat egal cu m. O cutie Smn poate fi implementat ca un
tabel de 2m cuvinte de n bii fiecare. n mod normal sunt utilizate tabele
fixe, la fel ca n Data Encryption Standard (DES), dar n unele cifruri
tabelele sunt generate dinamic din cheie (de exemplu, Blowfish, Twofish).
Un exemplu elocvent de tabel fix este tabelul de 64 - bii al cutiei S
(S5) din DES (Tabelul 5.1):
S5
00
Biii
01
exte10
riori
11

0000
0010
1110
0100
1011

0001
1100
1011
0010
1000

0010
0100
0010
0001
1100

0011
0001
1100
1011
0111

4 bii de mijloc ai intrrii


0100 0101 0110 0111 1000 1001
0111 1010 1011 0110 1000 0101
0100 0111 1101 0001 0101 0000
1010 1101 0111 1000 1111 1001
0001 1110 0010 1101 0110 1111

1010
0011
1111
1100
0000

1011
1111
1010
0101
1001

1100 1101
1101 0000
0011 1001
0110 0011
1010 0100

Tabelul 5.1. Cutia S5 din DES

Fiind dat o intrare de 6 bii, ieirea de 4 bii este gsit prin selectarea
liniei, folosind cei doi bii exteriori (primul i ultimul bit), i a coloanei,
utiliznd cei patru bii interiori. De exemplu, o intrare 011011 are biii
exteriori 01 i biii interiori 1101; ieirea corespunztoare va fi
1001.
Cutiile de permutare reprezint o metod de amestecare a biilor,
utilizat pentru a permuta sau transpune biii n intrrile cutiilor S,
meninnd difuzia n timpul transpunerii.
Reele Feistel au fost introduce pentru prima dat, n domeniu
comercial, n cifrul Lucifer de la IBM care a fost conceput de nsui Feistel
i Don Coppersmith. Reele Feistel au ctigat respect atunci cnd
guvernul SUA a adoptat standardul de securitate a datelor DES. Ca i alte
42

componente ale lui DES, exista natura iterativ a construciei Feistel care
face foarte simple implementrile criptosistemului n electronic.

Fig. 5.1. Schema unei cutii-S

Multe cifruri simetrice de tip bloc se bazeaz pe reele Feistel i pe


structura i proprietile cifrului Feistel, care a fost intens explorat de cate
criptologi. n special Michael Luby i Charles Rackoff, care au analizat
cifrul i au demonstrat c dac funcia round-robin (un round-robin este
un aranjament prin care se aleg n ponderi egale toate elementele unui grup
sau a unei liste, ntr-o ordine raional, de obicei de sus pn jos, i dup
aia pornind de la nceput) este un generator criptografic sigur de numere
pseudoaleatoare, cu Ki utilizat ca seed, atunci 3 runde sunt suficiente
pentru a face cifrul bloc sigur, pe cnd 4 runde sunt suficiente s fac cifrul
puternic sigur, nsemnnd c este sigur pentru un atac prin text cifrat
ales. Din cauza acestui rezultat, cifrurile Feistel au fost uneori numite
cifruri pe blocuri.
Modul de operare al cifrului Feistel este urmtorul:
1. mparte textul clar n doua blocuri egale (L0, R0)
2. Pentru fiecare rund i=1,2,...,n, calculeaz:
Li = Ri-1
Ri = Li-1 + f(Ri-1, Ki ),
unde f este funcia, de obicei tot XOR, i Ki este sub-cheia. Atunci textul
cifrat va fi (Ln, Rn)
3. Repeta.
Indiferent de natura funciei f, decifrarea se face prin:
Ri-1 = Li
Li-1 = Ri + f(Li , Ki ).
Un avantaj al acestui model este c funcia utilizat nu trebuie neaprat
s fie inversabil i poate s fie foarte complex. Am menionat c funcia f
43

este de obicei XOR. Acest lucru nu este complet adevrat. Funcia poate s
fie oricare, nsa pentru ilustrare se folosete o funcie simpl i relativ
sigur, cum ar fi XOR.

Figura 5.2. Schema reelei Feistel

n Figura 5.2 este artat cum acest model trece textul clar n text cifrat.
Este de notat reversia sub-cheii pentru decriptare, aceasta fiind singura
diferen ntre cifrare si descifrare.
Mai exist ns un tip de cifru Feistel, numit Feistel debalansat, care
utilizeaz o structur modificat n care L0 i R0 nu sunt egale n lungime.
Un exemplu de asemenea cifru este Skipjack.
Construcia Feistel este utilizat i n algoritmi care nu sunt cifruri pe
blocuri. De exemplu, Optimal Asymmetric Encryption Padding (OAEP)
44

utilizeaz o reea Feistel simpl pentru a randomiza textele cifrate n unele


scheme de cifrare asimetric.
Dat fiind natura cifrului Feistel, textul cifrat sparge orice convenie de
caractere i produce numere ce corespund la caractere care nu exist. De
fapt orice tip de cifru care opereaz pe blocuri de text sau pe bii
individuali nu avea cum s respecte standardul de caractere. Din aceast
cauz se utilizeaz la ieire un codor pentru a reda textului cifrat
proprietatea de lizibilitate i implicit pentru a putea fi transmis prin
sistemele informatice.

45

Tema 6. Algoritmul de cifrare Lucifer


Algoritmul de criptare Lucifer a fost elaborat la nceputul anilor 70 i a
stat la baza algoritmului DES primului standard de cifrare din SUA.
Algoritmul i istoria sa sunt suficient de interesante pentru a fi studiate
aparte.
Algoritmul Lucifer este adesea numit primul algoritm de cifrare
pentru aplicaii civile. n realitate Lucifer reprezint nu un singur algoritm
ci o familie de algoritmi legai intre ei (care au fost elaborai n cadrul
programului Lucifer al companiei IBM i care prevedea cercetri n
domeniul criptografiei), care erau algoritmi de criptare de tip bloc realizai
n perioade diferite de timp.
Dup spusele vestitului criptolog american Bruce Schneier (nscut la
15.01.1963), exist cel puin doi algoritmi diferii cu acest nume i
aceasta a dus la o ncrctur vizibil. Iar n Wikipedia sunt menionate 4
versiuni ale acestui algoritm.
Versiunea iniial a algoritmului Lucifer a fost elaborat de un colectiv
de specialiti ai companiei IBM sub conducerea lui Horst Feistel. Aceast
versiune a algoritmului a fost brevetat de ctre compania IBM n anul
1971 (brevetul a fost eliberat n 1974 n SUA cu numrul 3798359
http://www.freepatentsonline.com/3798359.pdf).
Aceast versiune a algoritmului cifreaz datele pe blocuri de 48 bii cu
utilizarea cheii de 48 de bii.
Algoritmul este unul bazat pe o reea de permutri i substituii. n
procesul de cifrare se execut 16 runde de transformri (numr de runde
recomandat de autor), n fiecare dinte ele fiind realizate aciuni n
conformitate cu Figura 6.1:
1. Asigurarea feedback-ului (conexiunii inverse). Se efectueaz
operaia logic XOR ntre fiecare bit al blocului procesat i
valoarea precedent a aceluiai bit n cazul n care bitul analogic al
cheii de rund are valoarea 1; n caz contrar operaia nu se
efectueaz. Valoarea precedent a fiecrui bit procesat se salveaz
n registrul blocului de feedback. n prima rund a algoritmului
blocul de feedback nu efectueaz operaia XOR ci memorizeaz
doar pentru urmtoarea rund biii blocului prelucrat.
2. Transformarea prin confuzie. Se efectueaz o transformare
neliniar a datelor obinute la operaia precedent prin intermediul
46

substituiei tabelare care este n funcie de un bit concret al cheii de


rund. Aceast funcie este suficient de simpl: dac valoarea
bitului respectiv este 1, se efectueaz substituia tabelar S0, n caz
contrar se aplic substituia S1. Fiecare niblu1 de date se modific
independent de alte date, astfel tabele nlocuiesc valoarea de
intrare de 4 bii cu o alt valoare care la fel are 4 bii. Trebuie de
menionat c n acest brevet nu sunt prezentate valorile tabelelor de
substituie; n calitate de exemplu este dat numai Tabelul 6.1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 5 4 0 7 6 10 1 9 14 3 12 8 15 13 11
Tabelul 6.1. Exemplu de tabel de confuzie pentru brevetul alg. Lucifer
Aceasta nseamn c valoarea de intrare 0 se nlocuiete cu 2,
valoarea 1 cu 5 .a.m.d. pn la valoarea 15 care se nlocuiete
cu 11.
3. Transformarea prin difuzie. Aceast transformare const n
redirecionarea simpl a biilor de intrare n aa mod nct valorile
tuturor biilor de intrare se schimb cu locul dup o anumit
regul. La fel ca i valorile tabelelor de substituie, regula dup
care se face difuzia datelor nu este descris n brevet. Operaia de
difuziune se efectueaz absolut independent de valoarea cheii de
cifrare.
4. Aplicarea cheii. Aceast operaie se efectueaz prin aplicarea bit
cu bit a operaiei XOR asupra rezultatului operaiei precedente i a
biilor respectivi a cheii de rund.
Dup cum se poate observa din descrierea de mai sus la fiecare rund
de a cifrrii sunt necesari 108 bii:
1. 48 de bii pentru blocul de feedback;
2. 12 bii pentru blocul de substituie;
3. 48 bii pentru aplicarea cheii.

Un niblu este o colecie de 4 bii cu care se pot reprezenta 16 valori diferite.

47

Text cifrat

Text clar

Blocul de confuzie
Blocul de difuzie

Cheiea

16 runde

Blocul de Feed-back

Aplicarea cheii
Figura 6.1. Schema general a Versiunii 1 Lucifer

Pentru obinerea a 16 sub-chei de rund de 108 bii fiecare din cheia


iniial de 48 de bii se aplic procedura de extindere a cheii (Figura 6.2):
1. Cheia de 48 de bii se nscrie n registrele cheii (Key Register)
KR1, KR2, , KR6.
2. Din aceste registre se extrage cantitatea necesar de bii prin
intermediul permutrii de extensie KEP (Key Extension
Permutation). Operaia KEP nu efectueaz calcule, obinerea
celor 108 bii de informaie din cheie din cei 48 de bii are loc
prin utilizarea multipl a anumitor bii din KR1, KR2, ,
KR6. Permutarea KEP nu este descris n detalii n
specificaiile algoritmului.
3. Pentru obinerea din cheie a informaiei pentru runda
urmtoare se efectueaz deplasarea de un bit n fiecare din
registrele KR1, KR2, , KR6. Apoi din se aplic permutarea
KEP. Acest pas se repet ciclic un numr necesar de ori pn
la sfritul executrii algoritmului.

48

Cheia pentru cifrare 48


Blocul de feedback
8

Aplicarea cheii

48

KR6

Blocul de difuzie

KEP

12

KR1

48

Figura 6.2. Procedura de extensie a cheii n Versiunea 1 Lucifer

Trebuie de menionat c acest algoritm este strict axat pe implementare


hardware n brevetul respectiv sunt prezentate cteva scheme amnunite
care descriu realizrile hardware posibile ale algoritmului, pe cnd cifrrii
software practic nu i se acord atenie n acest brevet.
Este evident c n descrierea algoritmului exist multe pete albe. De
exemplu nu sunt prezentate tabelele de substituie, nu este descris n
detalii transformarea liniar utilizat, lipsete descrierea permutrii KEP
etc. De fapt, brevetul stabilete un model pentru dezvoltarea pe aceast
baz algoritmilor criptografici concrei cu proceduri rafinate.
Concomitent cu brevetul depus la 30 iunie 1971 Horst Feistel a mai
depus 2 cereri de brevetare, ambele propunnd aplicaii specifice ale
algoritmului expus mai sus:
protecia datelor transmise i prelucrate n sisteme cu terminale
multiple cu utilizarea algoritmului Lucifer; schema brevetat
presupune de asemenea i asigurarea integritii datelor dar i
prezena a dou regimuri de autentificare a utilizatorilor: cu
parol i solicitare-confirmare.
cifrarea datelor pe parcursul a mai multe etape, ceea ce asigur
diverse nivele de securitate la transmiterea informaiei n
sistemele cu terminale multiple; aceast schem era la fel
bazat pe aplicarea algoritmului Lucifer.
49

Ca i brevetul pentru algoritmul Lucifer, brevetele menionate au fost


obinute de ctre compania IBM n anul 1974.
Versiunea a doua a algoritmului Lucifer a aprut foarte curnd dup
prima n acelai an 1971. Se vede c autorii algoritmului Lucifer
nelegeau c mrimea cheii de 48 de bii este insuficient (n prezent
aceast mrime a cheii este nepermis) i au prezentat algoritmul care cifra
cu o cheie de 64 bii. Algoritmul dat efectua ns cifrarea cu blocuri de
numai 32 bii ceea ce evident este insuficient (pentru un bloc de lungime n
n

bii la cifrarea a 2 2 blocuri de text clar cu aceeai cheie vor avea loc
scurgeri de informaie despre datele cifrate). Aceast versiune a
algoritmului a fost brevetat la fel de ctre IBM i descris n patentul nr.
3796830 n martie 1974 (http://www.freepatentsonline.com/3796830.pdf).
A

Prelucrare

Aplicarea cheii

A'

16 runde

Cheia de rund

B'

Figura 6.3. Structura Versiunii 2 Lucifer

Versiunile 1 i 2 au semnificativ mai multe discrepane dect


similitudini. Versiunea a doua a algoritmului divizeaz blocul cifrat de 32
bii n dou sub-blocuri de cte 16 bii i efectueaz 16 runde de
50

transformri, n fiecare din care se realizeaz urmtoarea consecutivitate de


operaii (Figura 6.3):
1. Blocul de 32 bii este divizat n 2 sub-blocuri A i B de 16 bii.
2. Sub-blocul A se divizeaz n 4 fragmente a cte 4 bii, fiecare
fragment fiind prelucrat aparte (Figura 6.4), adic celelalte
operaii se repet pentru fiecare fragment.

Cheia de cifrare
Figura 6.4. Prelucrarea fragmentului sub-blocului A (vers. 2 Lucifer)

3. Fiecare dintre aceste fragmente se sumeaz modulo 16 cu KAi,n


un fragment de 4 bii ai cheii de rund pentru operaia de
adunare (procedura de extindere a cheii de cifrare va fi expus
mai jos), unde:
n numrul de ordine al fragmentului prelucrat;
i numrul de ordine a rundei curente.
4. Asupra fiecrui fragment se aplic o substituie care este n
funcie de cheie: fragmentul prelucrat se nlocuiete cu
valoarea de 4 bii T0 T1 T2 T3 n conformitate cu Tabelul 6.2.
51

0
~k
1
k
k

1
~k
~k
1
~k

2
k
1
1
~k

3
1
0
~k
k

4
~k
~k
1
k

Valoarea de intrare
5 6 7 8 9 10
1 ~k 0 k k 0
~k 0 k k 1 0
k k 0 ~k ~k ~k
1 ~k 0 0 k 1

11
k
0
k
~k

12
~k
k
k
~k

13
k
0
k
k

14
k
~k
0
~k

Rezul15 tatul
~k T0
k
T1
0
T2
k
T3

Tabelul 6.2. Substituia aplicat fiecrui fragment al sub-blocului unde:

k = KSi [n], reprezint bitul n al fragmentului de 4 bii ai


cheii de rund, care gestioneaz substituiile (KSi ),
~k valoarea invers a lui k.

n conformitate cu valoarea de intrare, din tabel se aleg


valorile T0, T1, T2, T3 ale biilor, de exemplu pentru valoarea
de intrare 14 i k = 1 se vor obine urmtoarele valori:
T0 =1, T1 =0, T2 =0, T3 =0.
5. Se aplic operaia XOR asupra cortegiului de bii T0, T1, T2, T3
(care nu este altceva dect rezultatul prelucrrii fragmentului
sub-blocului A) i a anumitor bii ai sub-blocului B. Biii subblocului B care particip n aceast operaie se aleg cu
ajutorul unui fragment determinat de 4 bii ai cheii de rund
KXi,n n conformitate cu tabelul 6.3.

T0
T1
T2
T3

Valoarea bitului de control KXi,n


1
0
B0,(n +1 mod 4)
B0,n
B1,(n +2 mod 4)
B1,(n +3 mod 4)
B2,(n +3 mod 4)
B2,(n +2 mod 4)
B3,n
B3,(n +1 mod 4)

Tabelul 6.3. Alegerea biilor pentru cheia de rund

Bitul de control pentru Ti este bitul nr. i al fragmentului KXi,n. De


exemplu, la prelucrarea fragmentului nr. 0 i a tuturor biilor egali cu 1 din
KXi,n se efectueaz urmtoarele operaii (vezi figura 6.4 toate datele
incluse n prelucrarea fragmentului nr. 0 al sub-blocului pentru toi biii
egali cu 1 sunt evideniate cu linii de grosime mai mare):
B0,1 = B0,1 + T0 ;
B1,2 = B1,2 + T1 ;
B2,3 = B2,3 + T2 ;
B3,0 = B3,0 + T3 .
52

Dup fiecare rund n afar de ultima sub-blocurile se schimb cu


locurile.
Extinderea cheii, adic obinerea cantitii necesare de fragmente ale
cheilor de rund:
KAi,0, KAi,1, KAi,2, KAi,3 pentru adunarea modulo 16;
KSi pentru participarea la substituia tabelar;
KXi,0, KXi,1, KXi,2, KXi,3 pentru controlul aplicrii rezultatului
asupra sub-blocului B, se efectueaz ntr-un mod suficient de
simplu:
1. Cheia de cifrare de 64 bii se divizeaz n 16 pri
a cte 4 bii care se numeroteaz de la 0 la 15.
2. n caz de necesitate se alege un fragment
determinat al cheii n conformitate cu Tabelul 6.4.
Runda KSi KAi,0 KXi,0 KAi,1 KXi,1 KAi,2 KXi,2 KAi,3 KXi,3
1
0
1
2
3
4
5
6
7
8
2
9
10
11
12
13
14
15
0
1
3
2
3
4
5
6
7
8
9
10
4
11
12
13
14
15
0
1
2
3
5
4
5
6
7
8
9
10
11
12
6
13
14
15
0
1
2
3
4
5
7
6
7
8
9
10
11
12
13
14
8
15
0
1
2
3
4
5
6
7
9
8
9
10
11
12
13
14
15
0
10
1
2
3
4
5
6
7
8
9
11
10
11
12
13
14
15
0
1
2
12
3
4
5
6
7
8
9
10
11
13
12
13
14
15
0
1
2
3
4
14
5
6
7
8
9
10
11
12
13
15
14
15
0
1
2
3
4
5
6
16
7
8
9
10
11
12
13
14
15
Tabelul 6.4. Tabelul pentru alegerea cheii n caz de necesitate
Aceast versiune a algoritmului este descris mult mai amnunit dect
cea precedent: n patentul respectiv (nr. 3796830) lipsesc petele albe
deci acest algoritm poate fi pe deplin realizat numai cu ajutorul informaiei
ce se conine n patentul respectiv.
53

Ca i n cazul precedent n brevetul pentru versiunea a doua a


algoritmului Lucifer a fost prezentat o informaie amnunit referitoare la
realizarea hardware a algoritmului, particularitile realizrii software n
brevet nu sunt examinate.
Versiunea 3 a algoritmului Lucifer este cel mai puin descris n
detalii, ea fiind publicat n articolul Feistel H. Cryptography and
Computer Pivacy. Scientific American, May 1973, Vol. 228, No. 5, pp. 1523 ( http://www.apprendre-en-ligne.net/crypto/bibliotheque/feistel/). Dac
s judecm dup descriere, algoritmul const dintr-o succesiune de operaii
(Figura 6.5):
Tabelele de substituie gestionate de biii de control ai cheii
secrete analogic versiunii 1, n funcie de valoare bitului de
control al cheii se efectueaz substituia S0 sau S1;
Permutri fixate P ale biilor.
Aplicarea multipl a acestor operaii reprezint acest algoritm de
criptare.

Figura 6.5. Structura Versiunii 3 Lucifer

54

n articolul menionat mai sus nu sunt indicai majoritatea covritoare


a parametrilor algoritmului: nu este dat nici numrul exact de runde, nici
valorile tabelelor de substituie i permutare, nu sunt indicate dimensiunile
blocului i a cheii (mrimile de 128 bii ale blocului i cheii sunt indicate
doar ca valori posibile). n acest mod versiunea dat a algoritmului este
mult mai ablonizat dect prima versiune.

Figura 6.6. Structura Versiunii 4 Lucifer

Versiunea Lucifer 4. Putem afirma c versiunea dat este asemntoare


concomitent cu toate cele trei versiuni precedente. La fel ca la versiunea 2
aici fiecare bloc de 128 bii ai textul clar se divizeaz n dou sub-blocuri
unul dinte care se prelucreaz n felul indicat n figura 6.6 (Savard J.
Lucifer: the first block cipher, http://www.quadibloc.com/crypto/
co0401.htm):
1. Se aplic cheia de rund prin efectuarea operaiei XOR asupra
biilor sub-blocului prelucrat i a 64 bii ai fragmentului cheii
de rund KXi (i numrul de ordine a rundei curente).
2. Substituia tabelar dirijat de cheie este nfptuit ntr-un mod
foarte asemntor cu versiunile 1 i 3:
dac valoarea bitului j ( j = 0, 1, , 7) al fragmentului
de 8 bii ai cheii de rund KSi este egal cu 1, atunci
55

cei doi nibli ai octetului j care este prelucrat la


moment se schimb cu locurile;
niblului superior al fiecrui octet i se aplic tabelul de
substituie S0, pe cnd niblului inferior tabelul S1.
Tabelele S0 i S1 sunt definite cum este indicat n
Tabelul 6.5.
3. Se execut permutarea fix P a biilor sub-blocului n
conformitate cu Tabelul 6.6. Valoarea bitului 10 de intrare se
nscrie n bitul de ieire 0, valoarea bitului 21 n bitul 1 etc.
(se numeroteaz de la stnga la dreapta ncepnd cu bitul 0)
Valoarea de intrare
0

9 10 11 12 13 14 15

S0 12 15 7 10 14 13 11 0

S1

2 14 9

3 11 0

4 12 13 1 10 6 15 8

Tabelul 6.5. Tabelele S0 i S1 pentru Lucifer - 4

10 21 52 56 27
26 37

47 38 18 29 60

35

43 17 63 54 34 45 12 16 51 25

42 53 20 24 59 33 15
58

36 40 11 49 31 22

50 61 28 32
2

55 46
7

62

41 23 14

13 44 48 19 57 39 30

Tabelul 6.6. Permutarea fix P a biilor sub-blocului

4. Asupra rezultatului operaiei precedente i a sub-blocului


neprelucrat se efectueaz operaia XOR.
5. Sub-blocurile se schimb cu locurile (n toate rundele cu
excepia ultimei).
n total se efectueaz 16 runde de transformri descrise mai sus.
Procedura de extindere a cheii rezolv problema obinerii a 16 chei de
rund a cte 72 bii fiecare (64 bii KXi i 8 bii KSi) din cheia de cifrare
iniial. Extinderea cheii se efectueaz ntru-un mod foarte simplu:

56

1. n calitate de fragment KSi este utilizat primul octet al cheii de


cifrare iniiale (calculnd octeii de la stnga la dreapta, ncepnd
cu 1).
2. n calitate de fragment KXi se utilizeaz primii 8 octei ai cheii de
cifrare iniiale (adic primul octet se utilizeaz n ambele
fragmente).
3. Cheia de cifrare este deplasat n mod ciclic spre stnga cu 7
octei, dup care analogic se aleg fragmentele de cheie pentru
runda urmtoare.
Spre deosebire de versiunile 1 i 3 versiunea 4 este descris suficient
de amnunit pentru realizare att hardware ct i software.
Criptanaliza versiunilor algoritmilor. Primele dou versiuni ale
algoritmului Lucifer nu au avut parte de publicaii de criptanaliz.
Celelalte dou versiuni ns au avut noroc mai mult. Sunt cunoscute
cteva rezultate n aceast direcie.
n anul 1991 criptologii Eli Biham i Adi Shamir au cercetat versiunea
3 (n articolul A Differential Cryptanalisis of Snefru, Khafre, REDOCII, LOKI and Lucifer http://pdf.aminer.org/000/119/748/differential_
cryptanalysis_of_snefru_khafre_redoc_ii_loki_and_lucifer.pdf).
Pentru a fi un caz determinat ei au utilizat permutarea P din algoritmul
DES iar n calitate de S0 i S1 au fost luate liniile 3 i 4 din tabelul S1
din DES (Tabelul 6.7).
Valoarea de intrare
0

14

13

11 15 12

10

15 12

14 10

13

9
11

10 11 12 13 14 15

Tabelul 6.7. Substituiile S0 i S1 (cazul studiat de Biham i Shamir)

n conformitate cu lucrarea menionat versiunea nr. 3 cu 8 runde i


blocul de 32 bii se poate sparge avnd doar 24 de texte n clar alese i
a textelor cifrate respective prin efectuarea a 221 operaii de testare
pentru cifrare. n aceeai lucrare autorii au descris un atac posibil
asupra algoritmului analogic cu blocuri de 128 bii, pentru succesul
creia este necesar de avut 64-70 texte n clar alese i circa 253 operaii
57

de cifrare. n plus, Biham i Shamir afirm c versiunea 4 a


algoritmului Lucifer est i mai vulnerabil.
Ultima afirmaie a fost demonstrat n lucrarea autorilor Ishai BenAroya i Eli Biham Differential Cryptanalysis of Lucifer, Tehnio,
Haifa, Israel, 1993. n aceast lucrare este descris atacul asupra
versiunii 4 a algoritmului Lucifer, n care a fost descoperit o
submulime a cheilor (suficient de mare circa 55% din toate valorile
posibile ale cheilor), slabe la criptanaliza diferenial. La utilizarea
cheii de criptare din aceast submulime algoritmul putea fi spart
avnd 236 texte n clar alese.

Deci, algoritmul Lucifer nu a fost un algoritm suficient de sigur pentru


a se menine n aplicare, ba mai mult chiar a fost unul cu multe
neajunsuri, ns el a fost strmoul algoritmilor simetrici de criptare care
au fost implementai ulterior, primul urma al su fiind chiar vestitul DES
(Data Encription Standard) primul standard de criptare din SUA.

58

Tema 7. Algoritmul DES


Plecnd de la algoritmul Lucifer conceput n Laboratoarele IBM a
fost dezvoltat algoritmul de criptare DES (Data Encryption Standard).
Algoritmul a fost conceput pentru guvernul Statelor Unite dar i pentru
folosin public. Trebuie de menionat c chiar i cei mai mari experi n
domeniul criptografiei fac diverse presupuneri referitor la versiunea
algoritmului Lucifer care a fost predecesorul lui DES. n mai 1973, revista
Federal Register a sintetizat principiile care trebuie s stea la baza
proiectrii unui algoritm criptografic standard:

algoritmul trebuie s asigure un nalt nivel de securitate;


algoritmul trebuie s fie complet specificat i simplu de neles;
securitatea algoritmului trebuie s fie asigurat de cheie i nu
trebuie s depind de pstrarea secret a algoritmului;
algoritmul trebuie s fie disponibil tuturor utilizatorilor;
algoritmul trebuie s fie adaptabil pentru diverse aplicaii;
algoritmul trebuie s fie implementabil pe dispozitivele
electronice;
algoritmul trebuie s fie eficient n utilizare;
algoritmul trebuie s poat fi validat;
algoritmul trebuie s fie exportabil.

DES a fost oficial adoptat ca standard federal la 23 noiembrie 1976, iar


n 1977 specificaiile sale au fost fcute publice.
Algoritmul DES este o combinaie complex, folosind dou blocuri
fundamentale n criptografie: substituia i permutarea (transpoziia). Acest
cifru bloc accept un bloc de 64 de bii la intrare i genereaz un bloc cifrat
de 64 de bii. DES este un algoritm simetric. Acelai algoritm i aceeai
cheie sunt folosii att la criptare ct i la decriptare.
Algoritmul este constituit din 16 cicluri repetate ale blocurilor
fundamentale. Textul iniial este descompus n blocuri de 64 de bii. Cheia
este de 64 bii din care doar 56 sunt efectivi, ceilali fiind bii de paritate.
Folosirea substituiei provoac confuzie prin sistematica substituire a unor
bii cu alii. Transpoziiile provoac difuzie prin re-ordonarea biilor.
Algoritmul folosete numai operaii aritmetice i logice clasice cu
numr de pn la 64 de bii, ceea ce face relativ uor de implementat att
59

software ct mai ales hardware: unul din scopurile declarate ale


algoritmului fiind uoara lui implementare hardware ntr-un cip specializat.
Parcurgerea celor 16 cicluri are loc dup schema din figura 7.1:

Figura 7.1 Detalii pentru folosirea algoritmului DES

60

La intrare datele sunt mprite n blocuri de 64 bii, care sunt


transformate folosind cheia de 64 de bii. Cei 64 de bii sunt permutai prin
permutarea iniial IP. n continuare, urmeaz operaiile ce constituie
un ciclu. Blocul de 64 de bii este separat n dou, jumtatea stng i
jumtatea dreapt, fiecare de 32 de bii. Cheia este deplasat la stnga cu
un numr de bii i permutat: ea se combin cu partea dreapt care apoi
se combin cu partea stng; rezultatul devine noua parte dreapt;
vechea parte dreapt devine noua parte stng (figura 7.2).

Figura 7.2 Manipularea cheii n algoritmul DES

Dup repetarea acestui ciclu de 16 ori se face permutarea final care


este invers permutrii iniiale.
Pentru combinarea unei secvene de 32 bii cu cheia de 64 bii se
folosesc expandri de la 32 bii la 48 bii i reducerea cheii de la 64 bii la
48 bii prin alegerea anumitor bii, operaii ce le numim permutare
expandat i permutare aleas (figura 7.3).

61

Permutare aleas

Permutare

Permutare expandat

Figura 7.3 Manipularea permutrii n algoritmul DES

n fiecare ciclu practic au loc patru operaii separate:


1. partea dreapt este expandat de la 32 la 48 bii;
2. partea dreapt este combinat cu o form a cheii;
3. rezultatul este substituit i condensat n 32 bii,
4. cei 32 bii sunt permutai i apoi combinai cu partea stng
pentru a da o nou parte dreapt (figura 7.4).
Permutarea expandat este definit n Tabelul 7.1:
Bit
se mut la
Bit
se mut la
Bit
se mut la
Bit
se mut la

1
2,48
9
12,14
17
24,26
25
36,38

2
3
10
15
18
27
26
39

3
4
11
16
19
28
27
40

4
5,7
12
17,19
20
29,31
28
41,43

5
6,8
13
18,20
21
30,32
29
42,44

6
9
14
21
22
33
30
45

7
10
15
22
23
34
31
46

8
11,13
16
23,25
24
35,37
32
47,1

Tabelul 7.1 Definirea permutrii expandate n DES

Cheia este mprit n dou pri de 28 bii deplasate la stnga cu un


numr de bii apoi reunite i 48 din cei 56 de bii sunt permutai i folosii
ca o cheie de 48 de bii de-a lungul ciclului.
Cheia dintr-un ciclu este combinat printr-o funcie sau exclusiv cu
partea dreapt expandat. Rezultatul este operat n 8 cutii-S care
efectueaz substituia. O cutie-s este o tabel n care 6 bii de date sunt
nlocuii de 4 bii. Permutrile sunt efectuate de tabele numite cutii-P.

62

Figura 7.4. Ciclul n algoritmul DES

Cu algoritmul DES se poate face att criptarea ct i decriptarea unui


mesaj. Rezultatul este adevrat pentru c ciclul j deriv din ciclul ( j 1)
astfel:
S j = Dj1
(1)
Dj = S j1 f (Dj1, kj),
(2)
unde este operaia sau exclusiv, f este funcia rezultat din operaiile
dintr-un ciclu.
Aceste ecuaii arat c rezultatul fiecrui ciclu depinde numai de ciclul
precedent.
Descriind ecuaiile pentru Dj1 i S j1 avem :
Dj1 = S j
(3)
63

S j1 = Dj f (Dj1, kj),

(4)

nlocuind (3) n (4) avem:


S j1 = Dj f (Sj, kj),
(5)
Ecuaiile (3) i (5) arat c aceleai valori pot fi obinute n cicluri
ulterioare. Aceast proprietate face algoritmul DES reversibil.
Deci putem face criptarea unor date i decriptarea lor folosind acelai
algoritm, fcnd observaia c la decriptare cheia se ia n ordine invers.
Datorit lungimii cheii de lucru i a operaiilor elementare pe care le
folosete algoritmul, nu se ridic probleme deosebite ntr-o implementare
software; singura observaie este c, datorit modulului de lucru (cu
secvene de date, cu tabele) practic algoritmul este lent ntr-o implementare
software. Modul de concepere l face ns perfect implementabil hard (ntrun cip) ceea ce s-a i realizat, existnd multiple variante de maini hard de
criptare.
Criptanaliza DES. Dei DES a fost cel mai celebru algoritm al
secolului XX este considerat la aceast or nesigur pentru multe aplicaii.
Pare paradoxal, dar aceasta este consecina mririi considerabile a puterii
de calcul de la confirmarea DES ului ca un standard criptografic i pn
in anul 2000. Slbiciunea pleac de la lungimea prea mic a cheii de 56 de
bii. Varianta algoritmului cunoscut ca triplu-DES este cea care este
considerat sigur i la aceast or.
Insecuritatea DES-ului pleac de la premiza c un atac n for are
anse de reuit n condiiile puterii de calcul disponibile astzi; pn n
2004 cel mai eficient atac este datorat criptanalizei liniare care folosind 2 43
texte cunoscute genereaz o complexitate temporal de 2 39-43 (Junod 2001);
n condiiile unui atac cu text ales complexitatea poate fi redus de patru
ori (Knudsen i Mathiassen, 2000).
Variante de DES
DES multiplu. Cnd s-a descoperit c cheile pe 56 de bi
DES nu sunt suficiente pentru a proteja mpotriva atacurilor bute force,
au fost folosite variantele 2DES i 3DES ca modaliti simple de a mri
spa
r nevoia de a trece la un nou algoritm.
2DES const n dou ac
ri succesive ale algoritmului DES, cu
dou chei DES diferite sau egale. Utilizarea sa este pur didactic deoarece
este vulnerabil la atacurile cu ntlnire la mijloc (Meet-in-the-middle
64

attack). 2DES este exemplul cel mai des folosit pentru a demonstra
viabilitatea unui astfel de atac, dar valoarea sa practic este aproape de
zero.
Utilizarea a trei pai este esen
pentru a evita atacurile cu
ntlnire la mijloc care sunt eficiente mpotriva criptrii cu 2DES.
Mul

cu opera
matematic
de grup; dac ar fi fost a
cu o
opera
ca aceasta. Deoarece DES nu
este un grup, textul cifrat rezultat este mult mai greu de spart folosind
cutarea exhaustiv (fora brut): 2112 ncercri n loc de 256 ncercri.
Cea mai simpl variant de 3DES func
astfel (figura 7.4):
C = DES(k3; DES(k2; DES(k1; M))),
unde M este blocul n clar, iar k1, k2 i k3 sunt cheile DES. Aceast variant
este cunoscut sub nota
cele trei opera
efectuate cu cheile sunt criptri. Pentru a simplifica interoperabilitatea ntre
DES i 3DES, pasul din mijloc se nlocuiete de obicei cu decriptarea
(modul EDE):
C = DES(k3; DES 1(k2; DES(k1; M))),
i astfel o singur criptare DES cu cheia k poate fi reprezentat ca 3DESEDE cu cheile k1 = k2 = k3 = k. Alegerea decriptrii pentru pasul al doilea
nu afecteaz securitatea algoritmului.

Figura 7.4. Schema algoritmului 3DES

65

O variant, numit 3DES cu dou chei, folosete k1 = k3, reducnd


astfel lungimea cheii la 112 bi
Totu
ionare este susceptibil la unele atacuri cu text
clar ales sau text clar cunoscut i astfel este considerat de NIST2 ca avnd
securitate echivalent cu doar 80 de bi .
DES cu sub-chei independente. O alt variant de DES const n
folosirea unei sub-chei diferite pentru fiecare trecere, n loc de a o genera
dintr-o singur cheie de 56 de bii. Deoarece n fiecare din cele 16 treceri
se folosete o cheie de 48 de bii, rezult c lungimea cheii pentru aceast
variant este de 768 bii, ceea ce va crete semnificativ dificultatea unui
atac n for mpotriva algoritmului, acesta avnd complexitatea de 2 768.
Totui, un atac de tip ntlnire la mijloc este posibil, ceea ce reduce
complexitatea atacului la 2384; nc destul de lung pentru orice nevoie
imaginabil de securitate.
Aceast variant poate fi analizat folosind criptanaliza diferenial i
poate fi spart cu 261 texte n clar date. Se pare c nici o modificare n
planificarea cheilor nu conduce la ntrirea semnificativ a algoritmului
DES.
DESX este o variant DES dezvoltat de RSA Data Security, care a
fost inclus nc din 1968 n programul de securitate pentru pot
electronic MailSafe. DESX folosete o tehnic numit albire, pentru a
ascunde intrrile i ieirile DES. n plus fa de cheia DES de 56 de bii,
DESX are o cheie suplimentar de albire de 64 de bii. Aceti 64 de bii
sunt operai XOR cu textul n clar nainte de prima trecere DES. 64 de bii
suplimentari, calculai ca o funcie bijectiv de toi cei 120 de bii ai cheii
DES, sunt operai XOR cu textul cifrat naintea ultimei treceri. Albirea l
face pe DESX mult mai puternic dect DES fa de un atac n for; atacul
necesit (2120)/n operaii cu n texte n clar cunoscute. De asemenea se
mbuntete securitatea mpotriva criptanalizei liniare i difereniale
atacul necesit 261 texte n clar date i 260 de texte n clar cunoscute.
CRYPT(3) este o variant de DES ntlnit n sistemele UNIX. Este
folosit n mod obinuit pentru parole, dar uneori i pentru criptare.
Diferena ntre CRYPT(3) i DES este c CRYPT(3) are o permutare de
2

National Institute of Standards and Technology

66

chei cu 212 posibiliti, astfel nct s nu permit folosirea cipurilor DES la


construcia unui dispozitiv hardware de spart parole.
DES-ul generalizat (GDES) a fost proiectat s mreasc viteza DESului i s ntreasc algoritmul. Mrimea total a blocului crete, n timp ce
suma calculelor rmne constant.
GDES opereaz pe blocuri de text clar de lungime variabil. Blocurile
criptate sunt mprite n q sub-blocuri; numrul exact depinde de mrimea
total a blocului. n general q este egal cu lungimea blocului mprit la
32.
Funcia f este calculat o dat la fiecare trecere, pe ultimul bloc din
dreapta. Rezultatul este operat XOR cu toate celelalte pri, care sunt apoi
rotite spre dreapta. GDES are un numr variabil de treceri, n. Exista o mic
modificare la ultima trecere, astfel nct procesele de criptare i decriptare
difer doar prin ordinea sub-cheilor. De fapt, pentru q=2 i n=16 se obine
algoritmul DES.
Biham i Shamir arat c, folosind criptanaliza diferenial, GDES cu
q=8 i n=16 este vulnerabil cu doar ase texte n clar date. Dac se folosesc
i sub-chei independente, sunt necesare 16 texte n clar date. Pentru q=8 i
n=64, GDES e mai slab dect DES; sunt necesare 249 texte n clar date
pentru a-l sparge. De fapt, orice schem GDES este mai rapid dect DES,
dar este de asemenea mai puin sigur.
RDES este o variant care nlocuiete schimbarea stnga-dreapta de la
sfritul fiecrei treceri cu o schimbare dependent de cheie. Schimbrile
sunt fixe, depinznd doar de cheie. Aceasta nseamn c cele 15 schimbri
dependente de cheie se petrec cu 215 posibiliti i c aceast variant nu
rezist la criptanaliza diferenial.
O idee mai bun este ca schimbarea s aib loc doar n partea dreapt,
la nceputul fiecrei treceri, iar schimbarea s depind de datele de intrare
i nu de cheie. n RDES-1 se practic o schimbare dependent de date de
cuvinte pe 16 bii la nceputul fiecrei treceri. n RDES-2 exist o
schimbare de octei dependent de date la nceputul fiecrei treceri, dup o
schimbare ca n RDES-1. Se poate continua n acelai mod pn la RDES4. RDES-1 este sigur att fa de criptanaliza liniar ct i fa de cea
diferenial.
n final este prezentat o istorie cronologic a algoritmului de criptare
DES (tabelul 7.2).
67

Data

Anul

15 mai

1973

27 august

1974

17 martie

1975

august

1976

septembrie

1976

noiembrie
15 ianuarie

1976
1977
1983

22 ianuarie

1988

1992
30 decembrie 1993
1994
iunie

1997

iulie

1998

ianuarie

1999

25 octombrie 1999
26 noiembrie 2001
26 mai
2002
26 iulie

2004

Evenimentul
NBS public prima cerere pentru un algoritm
standard pentru criptare
NBS public a doua cerere pentru un algoritm
standard pentru criptare
DES este publicat n Federal Register3 pentru
comentarii
Se organizeaz primul workshop despre DES
Al doilea workshop despre fundamentele matematice
ale DES-ului
DES este aprobat ca un standard
DES este publicat n FIPS PUB 46
DES este reconfirmat pentru prima dat
DES este reconfirmat pentru a doua oar ca FIPS 461
Biham i Shamir public primul atac teoretic cu o
complexitate mai mic dect atacul
n for brut : criptanaliza diferenial ; metoda
cerea un numr nerealist (247) de texte alese
DES este reconfirmat pentru a treia oar ca FIPS 46-2
Prima criptanaliz experimental folosind
criptanaliza liniar (Matsui, 1994)
Proiectul DESCHALL sparge pentru prima dat n
public un mesaj criptat cu DES
EFF gsete o cheie pentru DES n 56 de ore
EFF folosind putere de calcul distribuit gsete o
cheie pentru DES n 22 de ore i 15 minute
DES este reconfirmat pentru a patra oar ca FIPS 463 cu specificaia preferinei pentru Triplu DES
AES este publicat n FIPS 197
Standardul AES devine efectiv
Retragerea standardului FIPS 46-3 (i a celor
conexe) este propus n Federal Register

Tabelul 7.2 Cronologia evenimentelor algoritmului DES


3

Publicaie a NIST

68

Tema 8. Cifrul AES


n ianuarie 1997, NIST a organizat un concurs de criptografie deschis
cercettorilor din ntreaga lume, avnd ca subiect crearea unui nou
standard, care urma s se numeasc AES Advanced Encryption
Standard (Standard de Criptare Avansat). Regulile concursului erau:
algoritmul s fie un cifru bloc simetric;
proiectul trebuia s fie public;
AES trebuia s suporte chei de 128, 192 i 256 bii;
algoritmul trebuia s se poat implementa att hardware ct i
software;
AES trebuia s fie un standard public sau oferit cu licen
nediscriminatorie.
n august 1998 NIST a selectat cinci finaliti pe criterii de securitate,
eficien, flexibilitate i cerine de memorie. Finalitii au fost:
1. Rijndael (Joan Daemen i Vincent Rijmen, 86 de voturi)
2. Serpent (Ross Anderson, Eli Biham, Lars Knudsen, 56
voturi)
3. Twofish (echipa condus de Bruce Schneier, 31 voturi)
4. RC6 (RSA Laboratories, 23 voturi)
5. MARS (IBM, 13 voturi)
n octombrie 2000 NIST a stabilit ctigtorul. Acesta este algoritmul
Rijndael, dezvoltat de doi tineri cercettori belgieni, Joan Daemen i
Vincent Rijmen i care devine standard guvernamental al SUA. Se spera ca
Rjindael s devin standardul criptografic dominant n lume pentru
urmtorii 10 ani.
Rijndael permite lungimi de chei i mrimi de blocuri de la 128 de bii
la 256 de bii, n pai de cte 32 de bii. Lungimea cheii i lungimea
blocului pot fi alese n mod independent, dar n practic se presupunea
folosirea a dou variante: bloc de 128 bii cu cheie de 128 bii i bloc de
128 bii cu cheie de 256 bii. Standardul comercial trebuia s devenin cel
mai probabil varianta 128/128. O cheie de 128 bii permite un spaiu al
cheilor de 2128 chei.

69

Preliminarii matematice. Rijndael se bazeaz pe teoria cmpului


Galois, n sensul c anumite operaiuni sunt definite la nivel de octet iar
octeii reprezint elemente n cmpul finit GF(2 8).
Cum toate reprezentrile cmpului finit GF(28) sunt izomorfe, se poate
alege reprezentarea clasic polinomial, cu impact pozitiv asupra
complexitii implementrii.
Octetul b, format din biii b7, b6, b5, b4, b3, b2, b1 i b0, este considerat
ca fiind un polinom de gradul 7 cu coeficieni 0 sau 1:
b7 x7 + b6 x6 + b5 x5 + b4 x4 + b3 x3 + b2 x2 + b1 x + b0
Operaia de adunare este definit ca suma a dou polinoame n care
coeficienii se adun modulo 2 i care corespunde operrii XOR a celor doi
octei corespondeni. Sunt ndeplinite axiomele grupului abelian: operaia
este intern, asociativ, comutativ, exist element neutru i element
invers.
Operaia de nmulire corespunde produsului a dou polinoame
modulo, un polinom ireductibil de grad 8 i care pentru AES este
m(x) = x8 + x4 + x3 + x + 1.
nmulirea este intern (rezultatul este un polinom de grad strict mai
mic ca 8), asociativ i exist element neutru. Elementul invers se
determin cu algoritmul lui Euclid, iar distributivitatea celor doua operaii
se verific.
Concluzia este c mulimea celor 256 de valori posibile ale unui octet,
mpreun cu cele dou operaiuni definite mai sus formeaz un corp
algebric finit, respectiv GF(28).
n proiectarea AES s-a inut cont de trei criterii:
rezistena mpotriva tuturor atacurilor cunoscute;
viteza i compactitatea codului pe un mare numr de platforme;
simplicitatea proiectrii.
Ca i DES, AES folosete substituii i permutri, ca i runde multiple.
Numrul de runde depinde de mrimea cheii i de mrimea blocului, fiind
10 n cazul 128/128 i mrindu-se pn la 14 pentru cazul 256/128. Spre
deosebire de DES, toate operaiile sunt la nivel de octet, pentru a permite
implementri hardware i software eficiente.

70

Descrierea AES
n algoritmul AES rezultatul cifrat intermediar este numit vector state,
care poate fi reprezentat ca un tabel cu patru linii i patru coloane, acestea
fiind numerotate ncepnd de la 0.
Vectorul state se iniializeaz cu blocul de 128 bii de text clar (n
ordinea coloanelor, cu primii patru octei n coloana 0) i va fi modificat la
fiecare pas al calculului, prin substituii, permutri i alte transformri,
rezultnd n final blocul de 128 bii de text cifrat.
Cheia de 128 de bii este expandat n 11 tabele 4x4 notate rk(0),
rk(1),...., rk(10). Expandarea este realizat prin rotiri repetate i operaii
XOR asupra unor grupuri de bii din cheia original.
nainte de a ncepe cele 10 runde, cheia rk(0) se opereaz XOR cu
vectorul state.
Calculul principal const n execuia a 10 runde, folosind cheia rk(i) la
iteraia i. Fiecare rund const n patru pai.
Pasul 1 realizeaz o substituie octet cu octet asupra vectorului state
folosind o cutie S.
Pasul 2 rotete la stnga fiecare din cele 4 rnduri ale vectorului state:
rndul 0 este rotit cu 0 octei, rndul 1 este rotit cu 1 octet, rndul 2 este
rotit cu 2 octei i rndul 3 este rotit cu 3 octei, realiznd difuzia datelor.
Pasul 3 amestec fiecare coloan din vectorul state independent de
celelalte, prin nmulirea coloanei cu o matrice constant, multiplicarea
fiind realizat folosind cmpul finit Galois GF(28).
n fine, pasul 4 opereaz XOR cheia rk din runda respectiv cu
vectorul state.
Deoarece fiecare pas este reversibil, decriptarea se poate realiza prin
rularea algoritmului de la coad la cap, sau prin rularea algoritmului de
criptare nemodificat, dar folosind tabele diferite.
Avantajele AES relativ la implementare sunt:
- AES se poate implementa pe un procesor Pentium Pro i va
rula cu o vitez mai mare dect orice alt cifru bloc;
- AES se poate implementa pe un dispozitiv Smart Card,
folosind un spaiu redus de memorie RAM i un numr redus
de cicluri;

71

transformarea din cadrul unei runde este paralel prin


proiectare, ceea ce constituie un avantaj pentru viitoarele
procesoare;
- AES nu folosete operaii aritmetice, ci doar operaii la nivel
de iruri de bii.
Simplitatea proiectrii AES:
- AES nu folosete componente criptografice externe, cum ar fi
cutii S, bii aleatori sau iruri de cifre din dezvoltarea
numrului ;
- AES nu i bazeaz securitatea pe interaciuni obscure sau greu
de neles ntre operaiuni aritmetice;
- proiectarea clar a AES nu permite ascunderea unei trape.
Lungimea variabil a blocului
- lungimile de bloc de 192 i 256 bii permit construirea unei
funcii hash iterative folosind AES ca funcie de compresie.
Extensii:
- proiectarea permite specificarea de variante cu lungimi de
blocuri i lungimi de chei aflate ntre 128 i 256 bii, n pai de
cte 32 de bii;
- dei numrul de runde n AES este fixat n specificaiile
algoritmului, el poate modificat ca un parametru n cazul unor
probleme de securitate.
Limitrile AES sunt n legtur cu algoritmul de decriptare:
- algoritmul de decriptare este mai puin pretabil la
implementarea pe un dispozitiv Smart Card, deoarece necesit
mai mult cod i mai multe cicluri;
- implementarea software a AES folosete cod i/sau tabele
diferite pentru algoritmul de criptare, respectiv decriptare;
- implementarea hardware a AES a algoritmului de decriptare
refolosete doar parial circuitele care implementeaz
algoritmul de criptare.
Iteraiile algoritmului AES
Fiecare iteraie obinuit se efectueaz n 4 pai.
Primul pas este cel de substituire al octeilor, the Byte Sub (BS) step
(figura 8.1).
72

Figura 8.1. Transformarea Byte Sub

n acest pas fiecare octet al textului clar este substituit cu un octet


extras dintr-o cutie de tip S. Cutia de tip S este descris de matricea
ilustrat n Tabelul 8.1.
Cel de al doilea pas al unei iteraii uzuale se numete deplasarea
liniilor, the Shift Row (SR) step (Figura 8.2).

Figura 8.2. Transformarea ShiftRows

Considernd c blocul care trebuie construit este alctuit cu octeii


numerotai de la 1 la 16, aceti octei se aranjeaz ntr-un dreptunghi i se
deplaseaz dup cum urmeaz:

De la

1
2
3
4

5 9 13
6 10 14
7 11 15
8 12 16

la

73

1 5 9 13
6 10 14 2
11 15 3 7
16 4 8 12

99
48
202
173
183
52
4
7
9
82
83
106
208
69
81
188
205
196
96
70
224
194
231
108
186
232
112
97
225
155
140
65

124
1
130
212
253
165
199
18
131
59
209
203
239
249
163
182
12
167
129
238
50
211
200
86
120
221
62
53
248
30
161
153

119
103
201
162
147
229
35
128
44
214
0
190
170
2
64
218
19
126
79
184
58
172
55
244
37
116
181
87
152
135
137
45

123
43
125
175
38
241
195
226
26
179
237
57
251
127
143
33
236
61
220
20
10
98
109
234
46
31
102
185
17
233
13
15

242
254
250
156
54
113
24
235
27
41
32
74
67
80
146
16
95
100
34
222
73
145
141
101
28
75
72
134
105
206
191
176

107 111 197


215 171 118
89 71 240
164 114 192
63 247 204
216 49 21
150 5
154
39 178 117
110 90 160
227 47 132
252 177 91
76 88 207
77 51 133
60 159 168
157 56 245
255 243 210
151 68 2332
93 25 115
42 144 136
94 11 219
6
36 92
149 228 121
213 78 169
122 174 8
166 180 198
189 139 138
3
246 14
193 29 158
217 142 148
85 40 223
230 66 104
84 187 22

Tabelul 8.1. Matricea pentru cutia de tip S

Cel de al treilea pas al algoritmului de criptare Rijndael este numit


amestecarea coloanelor, the Mix Column (MC) step (Figura 8.3).
74

Figura 8.3. Transformarea MixColumns

Acest pas se realizeaz prin nmulire matricial: fiecare coloan,


n aranjamentul pe care l-am observat, este nmulit cu matricea:
2311
1231
1123
3112
Aceast nmulire matricial corespunde unei nmuliri specific
cmpului Galois al lui 28, definit de polinomul modul
m(x) = x8 + x4 + x3 + x + 1
Octeii care trebuie nmulii sunt privii ca i polinoame i nu ca i
numere. De exemplu prin nmulirea unui octet cu 3 se obine rezultatul
operaiei sau-exclusiv dintre acel octet i varianta sa obinut prin rotirea
acelui octet cu o poziie la stnga. Dac rezultatul acestei nmuliri are mai
mult de 8 bii, biii suplimentari nu sunt pur i simplu ignorai. Pentru
eliminarea lor se calculeaz sau-exclusiv ntre rezultatul obinut n urma
nmulirii deja efectuate (deplasat la stnga dac este necesar) i irul
binar cu lungimea de 9 bii 100011011 (care corespunde polinomului
modul).
Cel de al patrulea pas al algoritmului Rijndael este cel de adugare a
sub-cheii, the Add Round Key step (Figura 8.4).

75

Figura 8.4. Transformarea Add Round Key

Pasul AddRoundKey (ARK) este pasul n care este implicat cheia. El


const ntr-o simpl operaie de sau exclusiv pe bii ntre stare i cheia de
rund (o cheie care este unic pentru fiecare iteraie, cheie calculat pe
baza cheii secrete). Operaia de combinare cu cheia secret este una extrem
de simpl i rapid, dar algoritmul rmne complex, din cauza
complexitii calculului cheilor de rund (Key Schedule), precum i a
celorlali pai ai algoritmului.
Din ultima iteraie este omis pasul de amestecare a coloanelor.
Decriptarea n AES
Pentru a decripta mesajul fabricat de algoritmul Rijndael este necesar
ca operaiile descrise s fie nlocuite cu operaiile lor inverse i ca acestea
s fie aplicate n ordine invers (prima operaie din algoritmul de
decriptare trebuie s fie inversa ultimei operaii din algoritmul de criptare).
Succesiunea pailor n algoritmul Rijndael este:
ARK,
BS SR MC ARK,
BS SR MC ARK ,
...,
BS SR MC ARC,
BS SR ARC
76

Dei aceast secven nu este simetric, ordinea unor operaii poate fi


modificat fr ca procesul de criptare s fie afectat. De exemplu pasul BS
de substituire a octeilor (notat cu B n continuare), poate fi la fel de bine
fcut i dup pasul SR de deplasare a liniilor (notat cu S n continuare).
Aceast observaie este util pentru procesul de decriptare. Fcnd aceast
inversare secvena algoritmului, de forma:
A BSMA BSMA ... BSMA BSA
se transform ntr-o secven de forma:
A SBMA SBMA ... SBMA SBA
(1R)
Pentru fiecare pas s-a folosit notaia bazat pe prima liter a denumirii
engleze a pasului. Dac se inverseaz secvena care descrie algoritmul se
obine:
ASB AMSB ... AMSB AMSB A
(2R)
Comparnd secvenele (1R) i (2R) se constat c pe lng diferita
poziionare a spaiilor (acestea marcheaz nceputul unei noi iteraii a
algoritmului de criptare) singura diferen care mai apare este c grupurile
MA din (1R) sunt nlocuite cu grupuri AM n (2R).
E clar c nu este suficient inversarea ordinii pailor folosii la criptare
pentru a se face decriptarea ci trebuie inversate i operaiile care compun
aceti pai. Pentru inversarea pasului ARK trebuie inversat funcia sauexclusiv. Dar aceast inversare se realizeaz tot cu funcia sau-exclusiv. De
aceea pasul ARK nu trebuie inversat la decriptare. Nu acelai lucru se
poate spune despre ceilali pai. Este de exemplu cazul pasului de
amestecare a coloanelor, MC, (notat cu M n relaiile (1R) i (2R)) pentru
inversarea cruia, n procesul de decriptare este necesar inversarea
matricei cu care se nmulete fiecare vector. La fel trebuie procedat i cu
matricea cutiei de tip S din pasul de substituie a octeilor, BS (notat cu B
n relaiile (1R) i (2R)).
Revenind la relaiile (1R) i (2R), deoarece operaia de nmulire a
matricelor este distributiv n raport cu operaia de adunare pe cmpul
Galois al lui 28, nu trebuie inversat ordinea secvenei pailor MA i
AM pentru decriptare. Operaia de sau-exclusiv din cadrul pasului MC
(M) este de fapt identic cu operaia de adunare definit pe cmpul Galois
al lui 28. De aceea cheile de iteraie, implicate n procesul de inversare al
pasului de amestecare a coloanelor, trebuiesc nmulite cu inversa matricei
de amestecare a coloanelor i apoi se pot calcula funciile sau-exclusiv, la
fel ca la criptare (bineneles cheile de iteraie trebuiesc luate n ordine
77

invers n raport cu ordinea folosit la criptare). Matricea pentru inversarea


pasului de amestec al coloanelor este:
14 11 13 9
9 14 11 13
13 9 14 11
11 13 9 14
iar forma sa binar, folosit n algoritmul de decriptare este:
1110 1011 1101 1001
1001 1110 1011 1101
1101 1001 1110 1011
1011 1101 1001 1110
111 101 110 100
110 100 111 101
1100 1000 1110 1010
1011 1101 1000 1110
0
0
1 0

01 00 00 00
00 01 00 00
00 00 01 00
00 00 00 01
01 01 00 00
00 00 01 01
00 00 10 10
01 01 10 10
01 01 10 11

Generarea cheilor n AES


Pentru cazul n care se folosete o cheie iniial cu lungimea de 128
bii sau de 192 de bii, toate subcheile necesare pentru toate iteraiile, se
obin din cheia iniial (prima subcheie fiind chiar cheia iniial) sau din
variante ale cheii iniiale i au aceeai lungime cu aceasta. Subcheile sunt
alctuite din cuvinte de 4 octei. Fiecare cuvnt se obine calculnd sauexclusiv ntre cuvntul anterior de 4 octei i cuvntul corespunztor dintro variant anterioar sau rezultatul aplicrii unei funcii acestui cuvnt (din
varianta precedent). Pentru stabilirea primului cuvnt dintr-o anumit
variant, cuvntul iniial (cel curent pentru iteraia respectiv) este pentru
nceput rotit cu opt poziii spre stnga, apoi octeii si sunt modificai
folosind cutia de tip S din pasul BS (B) de substituie a biilor
corespunztor, iar apoi se calculeaz sau exclusiv ntre primul octet al
rezultatului obinut anterior i o constant dependent de iteraie.
Constantele dependente de iteraie sunt puterile lui 2 succesive n
reprezentarea din cmpul Galois al lui 28 folosit:

78

1
27
94
179
228

2
54
188
125
211

4
108
99
250
189

8 16
216 171
198 151
239 197
97...

32 64 128
77 154 47
53 106 212
145 57 114

sau n binar:
00000001 00000010 00000100 00001000 00010000 00100000
01000000 10000000
00011011 00110110 01101100 11011000 10101011 01001101
10011010 00101111
01011110 10111100 01100011 11000110 10010111 00110101
01101010 11010100
10110011 01111101 11111010 11101111 11000101 10010001
00111001 01110010
11100100 11010011 10111101 01100001...
Rijndael, ca
de
selec
NSA4
finaliti, este considerat suficient de sigur pentru a fi folosit la criptarea
informa
ericane neclasificate. n iunie 2003,
guvernul SUA a decis ca AES s poat fi folosit pentru informa
clasificate. Pn la nivelul SECRET, se pot folosi toate cele trei lungimi de
cheie standardizate, 128, 192
TOP
SECRET (cel mai nalt nivel de clasificare) pot fi criptate doar cu chei pe
256 bi
Atacul cel mai realizabil mpotriva AES este ndreptat mpotriva
variantelor Rijndael cu numr redus de itera
cheie de 128 de bi
bi
bi
7, 8, respectiv 9 itera
Deoarece cutarea permanent rezult cu succese pentru criptanaliti,
pentru siguran e recomandat (B. Schneier) trecerea de la 10 la 16 runde
pentru AES-128, de la 12 la 20 pentru AES 192 i de la 14 la 28 pentru
AES-256.
4

National Security Agency

79

Tema 9. Algoritmi simetrici de tip ir (stream cypher)


Cifrurile ir (sau cifruri fluide) formeaz o clas important de
algoritmi de criptare; ele pot fi cifruri cu chei simetrice sau cu chei publice.
Ceea ce le caracterizeaz i le difereniaz fa de cifrurile bloc este faptul
c cifrurile ir proceseaz textul clar n uniti orict de mici, chiar bit cu
bit, aplicnd funcia XOR ntre biii cheii i biii de cifrat, iar funcia de
criptare se poate modifica pe parcursul criptrii. Cifrurile ir sunt algoritmi
cu memorie, n sensul c procesul de criptare nu depinde doar de cheie i
de textul n clar, ci i de starea curent. n cazul n care probabilitatea
erorilor de transmisie este mare, folosirea cifrurilor ir este avantajoas
deoarece au proprietatea de a nu propaga erorile. Ele se folosesc i n
cazurile n care datele trebuie procesate una cte una, datorit lipsei de
spaiu de memorie.
Reamintim c ntr-un sistem de criptare bloc elementele succesive ale
textului clar sunt criptate folosind aceeai cheie k. Adic dac
M = m1m2 m3 ... este textul clar, atunci textul criptat este
C = c1c2 c3 ... = ek (m1 )ek (m2 )ek (m3 )... .
Definiie. Fie (P, C, K, E, D) un sistem de criptare. O secven de
simboluri k k1k 2 k 3 ... K se numete cheie fluid.
Definiie. Un sistem de criptare (P, C, K, E, D) care cripteaz un text clar
M = m1 m2 m3 ...
n
C = c1c2c3 ... = ek1 (m1 )ek 2 (m2 )ek 3 (m3 )... ,
se numete sistem fluid de criptare, unde k1k 2 k 3 ... K este o cheie fluid.
Problema principal n sistemele fluide de criptare o reprezint
generarea cheii de criptare. Aceasta se poate realiza e aleator, e pe baza
unui algoritm care pleac de la o secven mic de chei de criptare. Un
astfel de algoritm se numete generator de chei fluide, care este de fapt un
generator de numere pseudo-aleatoare.
Algoritmii simetrici de tip ir se mpart n dou clase mari: cifruri ir
sincrone i cifruri ir asincrone.

80

Un cifru ir sincron este unul care genereaz irul de chei independent


de textul clar i de textul cifrat. Criptarea n acest caz poate fi descris de
urmtoarele ecuaii:
Si+1 = f (Si , k),
zi = g (Si , k);
ci = h (zi , mi),
unde i = 0, 1, 2, l, iar l reprezint lungimea mesajului.
n aceast formul starea iniial S0 se determin din cheia k, f este
funcia de stare, g este funcia care produce irul de chei z, iar h este
funcia de ieire, care combin irul de chei cu textul clar mi pentru
obinerea textului cifrat ci .
Printre proprietile cifrurilor ir sincrone se numr:
sincronizarea att expeditorul ct i destinatarul trebuie s fie
sincronizai, n sensul de a folosi aceeai cheie i a opera cu
aceeai stare respectiv, astfel nct s fie posibil o decriptare
corect. Dac sincronizarea se pierde prin inserarea sau lipsa unor
bii din textul cifrat transmis, atunci decriptarea eueaz i poate fi
reluat doar prin tehnici suplimentare de re-sincronizare, adic reiniializarea, plasarea de markeri speciali sau dac textul n clar
conine suficient redundan i se ncearc toate deplasrile
posibile ale irului de chei.
nepropagarea erorii un bit de text cifrat care este modificat n
timpul transmisiei nu trebuie s afecteze decriptarea celorlali bii
cifrai.
atacuri active ca o consecin a sincronizrii, inserarea, tergerea
sau retransmisia unor bii de text cifrat de ctre un adversar activ
va cauza o pierdere instantanee a sincronizrii i crete
posibilitatea detectrii atacului de ctre decriptor. Ca o consecin
a nepropagrii erorii, un atacator ar putea s modifice bii alei din
textul cifrat i s afle exact ce efect au modificrile n textul clar.
Trebuie deci, s se foloseasc mecanisme suplimentare de
autentificare a expeditorului i de garantare a integritii datelor.
Cifru ir asincron sau autosincronizabil este cifrul care genereaz
irul de chei ca o funcie de cheie i un numr de bii din textul cifrat
anterior. Funcia de criptare n acest caz poate fi descris de urmtoarele
ecuaii:
81

Si = (ci-t, ci-t+1, , ci-1),


zi = g (Si, k),
ci = h (zi, mi),
unde i = 0, 1, 2, l, iar l reprezint lungimea mesajului.
n aceast formul S0 = (c-t, c-t+1, , c-1), este starea iniial
(nesecret), k este cheia, g este funcia care produce irul de chei z, iar h
este funcia de ieire care combin irul de chei cu textul n clar mi pentru
a obine textul cifrat ci.
Cifrurile ir asincrone posed urmtoarele proprieti:
auto-sincronizarea este posibil dac unii bii din textul cifrat
sunt teri sau adugai, deoarece decriptarea depinde doar de un
numr determinat de bii cifrai anterior. Astfel de cifruri sunt
capabile s-i restabileasc automat procesul de decriptare corect
dup pierderea sincronizrii.
propagarea limitat a erorii s presupunem c starea unui cifru
ir asincron depinde de t bii cifrai anteriori. Dac un singur bit
cifrat este modificat, ters sau inserat n timpul transmisiei, atunci
decriptarea a cel mult t bii urmtori de text cifrat va fi incorect,
dup care se reia decriptarea corect.
atacuri active limitarea propagrii erorii face ca orice modificare
a textului cifrat de ctre un adversar activ s aib ca i consecin
decriptarea incorect a altor bii cifrai, ceea ce poate mri
posibilitatea ca atacul s fie observat de ctre decriptor. Pe de alt
parte, datorit auto-sincronizrii este mai dificil dect n cazul
cifrurilor ir sincrone s se detecteze inserarea, tergerea sau
modificarea unor bii n textul cifrat. Trebuie deci s se foloseasc
mecanisme suplimentare de autentificare a expeditorului i de
garantare a integritii datelor.
difuzia statisticilor textului n clar deoarece fiecare bit de text
clar influeneaz toi biii cifrai urmtori, proprietile statistice
ale textului n clar sunt dispersate n textul cifrat. Ca o consecin,
cifrurile ir asincrone trebuie s fie mai rezistente dect cifrurile ir
sincrone fa de atacurile bazate pe redundana textului n clar.
Majoritatea cifrurilor flux folosite n practic sunt proiectate folosind
LFSR Linear Feedback Shift Registers (registru de deplasare cu
feedback) care sunt simplu de implementat software sau hardware. n
82

structura LFSR se regsesc urmtoarele elemente: de ntrziere (bistabili


D), de adunare modulo 2, de multiplicare scalar modulo 2.
Problema este c aceste implementri sunt ineficiente din punct de
vedere al vitezei. Pentru a rezista atacului de corelaie, funcia de feedback
trebuie s fie un polinom dens, ceea ce presupune multe calcule, care
produc la ieire un singur bit, deci trebuie repetate des. Totui, cele mai
multe sisteme de criptare militare se bazeaz pe LFSR.
O metric important folosit pentru a analiza generatoarele bazate pe
LFSR este complexitatea liniar, definit ca fiind lungimea n a celui mai
scurt LFSR care poate produce ieirea generatorului. Orice ir generat de o
main de stare finit peste un cmp finit are o complexitate liniar finit.
Complexitatea liniar este important deoarece un algoritm simplu,
Berlekamp-Massey (algoritm de cutare a celui mai scurt registru LFSR),
poate genera LFSR-ul de definiie examinnd doar 2n bii din cheie, ceea
ce nsemn spargerea cifrului ir.
Concluzia este c o complexitate liniar ridicat nu nseamn neaprat
un generator sigur, dar o complexitate liniar sczut indic un generator
fr securitate.
Criptografii ncearc s obin o complexitate liniar ridicat prin
combinarea ieirilor mai multor LFSR-uri ntr-un mod nonliniar. Pericolul
este ca unul sau mai multe iruri interne generate de obicei ieiri ale
LFSR-urilor individuale s fie corelate cu irul combinat, ceea ce permite
un atac bazat pe algebra liniar numit atac de corelaie. Thomas
Siegenthaler a artat c imunitatea de corelare poate fi precis definit i c
exist o legtur ntre aceasta i complexitatea liniar. Ideea de baz a
atacului de corelaie este identificarea unor corelaii ntre ieirea
generatorului i ieirea uneia din componentele sale interne. Apoi,
observnd irul de ieire, se pot obine informaii despre ieirea intern.
Folosind aceste informaii i alte corelaii se colecteaz informaii despre
celelalte ieiri interne ale generatorului, pn cnd acesta este spart n
totalitate.
Printre cifrurile flux mai frecvent utilizate se numr cifrurile SEAL,
A5, RC4, RC5, FISH etc.
Cifrul SEAL (Software-Optimized Encryption ALgorithm) este un
sistem de criptare aditiv binar (adic are la baz operaia - XOR), a fost
elaborat n 1993 de ctre Phillip Rogaway i Don Coppersmith. Este unul
83

din cele mai eficiente sisteme implementabile pe procesoare de 32 bii.


SEAL este o funcie pseudo-aleatoare care scoate o cheie fluid de L bii
folosind un numr n de 32 bii i o cheie secret a de 160 bii.
Fie A, B, C, D, Xi, Yj cuvinte de 32 bii. Pentru descrierea
algoritmului vom folosi notaiile:
A complementul lui A (pe bii);
A B, A B, A B operaiile OR, AND i XOR (pe
bii);
A << s deplasarea ciclic a lui A spre stnga cu s poziii;
A >> s deplasarea ciclic a lui A spre dreapta cu s
poziii;
A + B (mod 232 ) suma lui A i B (considerate ca numere
ntregi fr semn);

f ( B, C , D ) = ( B C ) ( B D ) ;
h( B, C , D) = B C D;
A || B concatenarea lui A cu B;
( X 1 , X 2 , ..., X n ) (Y1 , Y2 , ..., Yn ) atribuire simultan.
n continuare o succesiune de 32 bii se va numi cuvnt iar
succesiunea d 8 bii se va numi octet. O succesiune vid este notat cu
.
n primul rnd trebuie de generat tabelele T, R i S, fiecare din care
este n funcie de cheia a. Unica misiune a cheii a n algoritm este de a
genera aceste tabele prin intermediul funciei G, construite n baza
cunoscutului algoritm al funciei hash SHA-1 care este un standard de stat
n SUA.
Algoritmul de generare a tabelei G pentru SEAL 2.0 este urmtorul
(Figura 9.1):
Intrare: un ir a de 160 bii i un ntreg i (0 i < 232).
Ieire: Ga(i) ir de 160 bii.
1. Se definesc constantele (de 32 bii):
y1 = 0x5a827999,
y2 = 0x6ed9eba1,
y3 = 0x8f1bbcdc,
y4 = 0xca62c1d6
84

2.

a.
b.
c.
d.
e.

X0 i;
for j 1 to 15 do Xj 0x00000000;
for j 16 to 79 do Xj ((Xj 3 Xj 8 Xj 14 Xj 16) << 1);
(A, B, C, D, E) (H0 , H1, H2, H3, H4) where a =H0 H1 H2 H3 H4;
(Runda 1): for j 0 to 19 do
t ((A << 5) + f(B, C, D) + E + X j + y1 );
(A, B, C, D, E) (t, A, B << 30, C, D);
f. (Runda 2): for j 20 to 39 do
t ((A << 5) + h(B, C, D) + E + X j + y2);
(A, B, C, D, E) (t, A, B << 30, C, D);
g. (Runda 3): for j 40 to 59 do
t ((A << 5) + h(B, C, D) + E + X j + y3);
(A, B, C, D, E) (t, A, B << 30, C, D);
h. (Runda 4): for j 60 to 79 do
t ((A << 5) + h(B, C, D) + E + X j + y4);
(A, B, C, D, E) (t, A, B << 30, C, D);
i. (H0 , H1, H2, H3, H4) (H0 +A, H1+B, H2+C, H3+D, H4+E) ;
Ga(i) = H0 || H1 || H2 || H3 || H4 .

Generatorul de chei fluide pentru SEAL 2.0 SEAL(a, n):


Intrare: a cheia secret (160 bii), n [0, 232 ) ntreg,
L - lungimea solicitat pentru cheia fluid.
Ieire: cheia fluid y, |y| = L ,unde L este primul multiplu de 128 din
intervalul [ L, ).
1. Se genereaz tabelele T, S, R avnd ca elemente cuvinte de 32 bii. Fie
funcia Fa (i ) = H ii(mod 5) unde H 0i H1i H 2i H 3i H 4i = Ga ( i / 5 ).
a. for i 0 to 511 do T[i] Fa (i ) ;
b. for j 0 to 255 do S[j] Fa (0 x00001000 + j ) ;
c. for k0 to 4 ( L 1) / 8192 1 do R[k] Fa (0 x00002000 + k );
2. Descrierea procedurii Initialize (n, l, A, B, C, D, n1, n2, n3, n4) cu intrrile
n (cuvnt) i l (ntreg) i ieirile A, B, C, D, n1, n2, n3, n4 (cuvinte).
a. A nR[4l], B(n >> 8)R[4l+1], C (n >>16)R[4l+2],
D (n >> 24)R[4l+3];
b. for j 1 to 2 do
85

P A 0x000007fc, B B + T [P/4], A (A >> 9),


P B 0x000007fc, C C + T [P/4], B (B >> 9),
P C 0x000007fc, D D + T [P/4], C (C >> 9),
P D 0x000007fc, A A + T [P/4], D (D >> 9),
(n1, n2, n3, n4) (D, A, B, C);
P A 0x000007fc, B B + T [P/4], A (A >> 9),
P B 0x000007fc, C C + T [P/4], B (B >> 9),
P C 0x000007fc, D D + T [P/4], C (C >> 9),
P D 0x000007fc, A A + T [P/4], D (D >> 9);
3. l 0, y (irul vid);
4. repeat
a. Initialize(n, l, A, B, C, D, n1, n2, n3, n4);
b. for i 1 to 64 do
P A 0x000007fc, B B + T [P/4], A (A >> 9),
B B A;
Q B 0x000007fc, C C + T [Q/4], B (B >> 9),
C C B;
P (P + C) 0x000007fc, D D + T [P/4],
C (C >> 9), D D C;
Q (Q + D) 0x000007fc, A A + T [Q/4],
D (D >> 9), A A D;
P (P + A) 0x000007fc, B B + T [P/4],
A (A >> 9);
Q (Q + B) 0x000007fc, C C + T [Q/4],
B (B >> 9);
P (P + C) 0x000007fc, D D + T [P/4],
C (C >> 9);
Q (Q + D) 0x000007fc, A A + T [Q/4],
D (D >> 9);
y y||(B + S[4i 4]) || (C S[4i 3]) ||
|| (D + S[4i 2]) || (A S[4i 1]).
if |y| L then return(y) STOP
else if i (mod 2) = 1 then (A, C) (A + n1, C + n2 )
else (A, C) (A + n3, C + n4 );
c. l l + 1.
86

Figura 9.1. Schema ciclului intern SEAL

Menionm c n majoritatea aplicaiilor pentru SEAL 2.0 se folosete


L 219 . Algoritmul funcioneaz i pentru valori mai mari, dar devine
ineficient deoarece crete mult dimensiunea tabelei R. O soluie este
concatenarea cheilor fluide SEAL(a, 0) || SEAL(a, 1) || SEAL(a, 2) ||
Deoarece n < 232 , se pot obine astfel chei fluide de lungimi pn la 251,
pstrnd L = 219.
Algoritmul SEAL este relativ nou i la momentul actual nu sunt
publicate metode eficiente de spargere a acestui algoritm. n anul 1997 a
fost publicat o metod de atac bazat pe Criptanaliza 2 care permite
determinarea unei pri mari din tabelele interne, ns era aplicabil numai
la o versiune simplificat a lui SEAL. Trebuie de menionat aici c Don
Coppersmith (care este i coautor al lui DES) este i unul dinte cei mai
abili criptanaliti.
Cifrul A5 este un cifru stream folosit pentru a cripta fluxul de date
GSM (Group Special Mobile), reprezentnd standardul non-american
pentru telefonia mobil celular. A5 cripteaz linia dintre telefon i celula
de baz, restul legturii rmnnd necriptat. A5 este format din trei
LFSR-uri, care au registre de lungime 19, 22 i respectiv 23. Toate
polinoamele de feedback sunt cu un numr redus de coeficieni. Ieirea
este obinut prin operarea XOR a celor trei LFSR-uri. A5 folosete un
clock control variabil. Fiecare registru face un clocking bazat pe bitul
87

central, care este operat XOR cu inversa funciei prag (threshold function)
a biilor de la mijlocul celor trei registre. Un registru este clock-at dac
bitul su de clocking (orange) este n concordan cu unul sau ambii bii de
clocking a celorlalte dou registre (Figura 9.2). n mod normal, dou din
LFSR-uri sunt clock-ate la fiecare iteraie.

Figura 9.2. Cifrul A5 (versiunea 1)

Exist un atac trivial care necesit 240 criptri: se ghicete coninutul


primelor dou LFSR-uri, apoi se determin al treilea din irul generat. n
ciuda acestui fapt, A5 este bine proiectat i este extrem de eficient. El trece
cu succes toate testele statistice cunoscute i singura sa slbiciune rezid n
faptul c registrele sunt scurte, ceea ce face posibil o cutare exhaustiv.
Variantele A5 cu registre lungi i polinoame feedback dense au un grad de
siguran sporit.
Cifrul RC4 este un cifru ir cu cheie de lungime variabil, dezvoltat n
1987 de ctre Ron Rivest pentru RSA Data Security. n 1994 codul surs al
algoritmului este fcut public pe Internet. RC4 este un algoritm simplu de
descris: irul cheie este independent de textul clar. Funcioneaz n baza
cutiilor-S: S0, S1, ..., S255. Intrrile sunt permutri ale numerelor de la 0 la
255, iar permutarea este o funcie de o cheie de lungime variabil. Exist
doi indici, i i j, iniializai cu zero. Pentru a genera un octet aleator se
procedeaz astfel:
88

i = (i + 1) mod 256;
j = (j + Si) mod 256;
T = Si; Si = Sj; Sj = T;
t = (Si + Sj) mod 256;
K = St .
Octetul K este operat XOR cu textul clar pentru a produce text cifrat
sau operat XOR cu textul cifrat pentru a obine textul clar. Criptarea este
aproape de 10 ori mai rapid dect DES-ul.

Iniializarea cutiilor-S este simpl. Se iniializeaz liniar:


S0 = 0, S1 = 1, , S255 = 255
i un alt vector de 256 de octei cu cheia, repetnd cheia, dac este
necesar, pentru a completa vectorul cu componentele:
K0, K1, , K255 .
j = 0;
For i = 0 to 255:
j = ( j + Si + Ki ) mod 256;
se schimb Si cu Sj ntre ele (Figura 9.3).

Figura 9.3. Generatorul de chei al algoritmului RC4

Nu exist rezultate publice ale criptanalizei. Se crede ca algoritmul este


imun la analiza diferenial i liniar; RC4 poate fi n aproximativ 2 1700
stri posibile. Cutiile-S evolueaz lent n timpul ntrebuinrii: i asigur
c fiecare element se schimb, iar j c aceste schimbri sunt aleatoare. RC4
are un statut special de export, acesta fiind permis doar pentru chei de pn
89

la 40 de octei. Acest algoritm este implementat n multe produse


comerciale, dintre care Lotus Notes i Oracle Secure SQL.
n sistemele simetrice de criptare, Alice i Bob i aleg o cheie secret
k care definete regulile de criptare ek i decriptare dk. n aproape toate
cazurile ek i dk coincid sau se pot deduce imediat una din alta. Un punct
slab al sistemelor cu cheie privat este acela c necesit o comunicare
prealabil a cheii ntre Alice i Bob printr-un canal sigur, nainte de
transmiterea mesajului criptat. Practic, n condiiile cererii tot mai mari de
securizare a comunicaiilor, acest lucru este din ce n ce mai dicil de
realizat. Astfel a aprut necesitatea de a crea sisteme care au alt concept de
transmitere a cheii.

90

Tema 10. Criptarea cu cheie public


Conceptul de criptografie cu chei publice a fost inventat de Whitfield
Diffie i Martin Hellman. Contribuia lor const n propunerea de a folosi
un nou criptosistem n care cheile de criptare i decriptare sunt diferite, iar
cheia de decriptare (care este secret) nu poate fi dedus din cheia de
criptare (care este public). n anul 1976 conceptul a fost prezentat n
premier la National Computer Conference SUA, iar cteva luni mai trziu
lucrarea a fost publicat.
Sistemele cu cheie public (sau sisteme asimetrice) au un mare avantaj
fa de sistemele cu chei secrete: oricine poate transmite un mesaj secret
utilizatorului (cunoscndu-i cheia public), iar mesajul rmne protejat
fa de interceptor. Cu un sistem cu cheie convenional pentru fiecare
pereche de utilizatori este necesar o cheie separat secret (privat).
n general, un sistem cu n utilizatori necesit

n(n 1)
chei, pentru ca
2

oricare pereche de utilizatori s poat comunica ntre ei i mesajele lor s


rmn secrete fa de ceilali utilizatori. Numrul de chei crete rapid o
dat cu numrul de utilizatori; generarea, distribuirea i meninerea
securitii cheilor constituie o problem datorit numrului lor mare.
ntr-un sistem cu cheie public, un utilizator deine dou chei: o cheie
public i o cheie privat (secret). Utilizatorul i poate face cunoscut
oricui cheia public. Fie SK cheia secret i PK cheia public
corespunztoare. Atunci:
m=d(SK, e(PK, m)).
Utilizatorul poate decripta cu cheia privat ceea ce oricine altcineva a
criptat cu cheia public corespunztoare.
Cu al doilea algoritm de criptare cu cheie public
m=d(PK, e(SK, m))
utilizatorul poate cripta un mesaj cu cheia privat, iar mesajul poate fi
decriptat doar cu cheia public corespunztoare.
Aceste dou proprieti presupun c cele dou chei, public i privat,
pot fi aplicate n orice ordine (sistemul RSA nu face distincie ntre cheia
public i cheia privat; orice cheie din perechea de chei poate fi folosit
fie ca cheie public, fie ca cheie privat).
91

Definiie. O schem de criptare cu cheie public const n trei


algoritmi (Figura 10.1):
1. Generatorul de chei, care returneaz i pereche cheie secret-cheie
public (SK, PK);
2. Algoritmul de criptare, care primete la intrare un mesaj m din
mulimea mesajelor posibile, o cheie public PK i returneaz
criptotextul c.
3. Algoritmul de decriptare, care ia ca intrare un text cifrat c din
mulimea textelor cifrate, o cheie secret SK i returneaz un
mesaj m.

Figura 10.1. Schema unui algoritm cu cheie public

Trebuie de menionat aici unele condiii care trebuie respectate:


Receptorul B poate uor s genereze cheia public PKB i cheia
privat SKB.
Emitorul A, tiind cheia public a lui B i mesajul clar m,
poate s genereze textul cifrat corespunztor:
c = ePK B (m).

Receptorul B poate uor s decripteze textul cifrat c:


m = d SK B (c) = d SK B (ePK B (m)).

Un atacator care tie PKB nu poate s determine cheia privat


SKB.
Un atacator care tie cheia public PKB i textul cifrat c nu
poate s determine mesajul original m.
Are loc urmtoarea relaie (menionat mai sus):

92

m = d SK B (ePK B (m)) = d PK B (eSK B (m)).

La momentul actual cele mai cunoscute sisteme de criptare cu cheie


publlic sunt:
Sistemul RSA: se bazeaz pe dificultatea descompunerii n
factori primi a numerelor mari (de sute de cifre). Este sistemul
cel mai larg utilizat n acest moment.
Sistemul El Gamal: se bazeaz pe dificultatea calculului
logaritmului discret ntr-un corp nit.
Sistemul Merkle-Hellman: primul sistem denit cu cheie
public, bazat pe problema {0, 1} a rucsacului, problem NP complet.
Sistemul McEliece: este bazat pe teoria algebric a codurilor,
decodificarea unui cod liniar fiind de asemenea o problem NP
- complet.
Curbe eliptice: Sunt sisteme de criptare care i desfar
calculele pe mulimea punctelor unei curbe eliptice (n locul
unui inel nit Zn).
Att conceptul criptrii cu chei publice ct i primul algoritm publicat
care folosea chei publice a fost dezvoltat de W. Diffie i M. Hellman.
Algoritmul este numit Diffie-Hellman key exchange (1976) i este folosit
n numeroase produse comerciale. Acest algoritm nu se aplic la criptarea
mesajelor sau la crearea de semnturi digitale. Scopul su este distribuirea
cheilor, adic scopul este ca doi utilizatori s poat schimba o cheie secret
n siguran, deci algoritmul este limitat la schimbul cheilor secrete.
Algoritmul Diffie-Hellman este bazat pe problema complicat a
determinrii logaritmului discret. S ncercm o explicaie succint acestei
noiuni.
Definiie: Fie G un grup ciclic de ordinul n i elementul
generator al su. Fie un element din G. Logaritmul discret n baza ,
care se noteaz cu log , este unicul numr ntreg a, 0 a | G 1 | , astfel
nct = a.
Pentru comoditate i exactitate vom considera G un grup
multiplicativ Zp* de ordin p 1, unde operaia este nmulirea modulo p.

93

*
Exemplu. Fie p = 97. Atunci Z 97
este un grup ciclic multiplicativ de
*
ordinul n = 96. Elementul generator al grupului Z 97
este = 5. Deoarece
*
532 35 (mod 97), avem log535 = 32 n Z 97
.
Unele proprieti ale logaritmilor discrei:
log ( ) = (log + log ) mod n;

log s = s log mod n.


Problema logaritmului discret (DLP Discrete Logarithms Problem)
const n urmtoarele:
fiind date un grup ciclic finit G = Zp*, un generator al lui G i un
element y din G, se cere s se gseasc un numr ntreg a,
0 a p 2, astfel nct y = a (mod p).
Algoritmul Diffie-Hellman pentru schimbul de chei const n
urmtoarele (Figura 10.2):
Alice i Bob convin asupra unui numr mare prim p i a unui
generator .
Alice alege (genereaz aleator) un numr secret a, i l trimite lui
Bob numrul A:
A = a (mod p).
Bob alege (genereaz aleator) un numr secret b, i l trimite lui
Alice numrul B:
B = b (mod p).
Alice calculeaz B a mod p = ( b mod p) a mod p) = k.
Bob calculeaz Ab mod p = ( a mod p) b mod p) = k.

Figura 10.2. Schema schimbului de chei Diffie-Hellman

94

Cheia secret stabilit de cei doi utilizatori Alice i Bob este k.


Menionm c p i nu este necesar de inut n secret. n realizrile
practice ale Algoritmului Diffie-Hellman pentru a i b se utilizeaz chei de
ordinul 10100 i p de ordinul 10300. Numrul nu este neaprat mare i de
obicei are valori mai mici ca 10. innd cont de aceste mrimi ale
parametrilor a, b i p putem afirma cu certitudine c securitatea
algoritmului este una foarte mare, deoarece determinarea cheii secrete
cunoscnd numai , p, b mod p, b mod p (fr a cunoate a i b ele
fiind meninute n secret) folosind cel mai performant este o problem
extrem de complicat care nu poate fi rezolvat ntr-un timp rezonabil.
Algoritmul Diffie-Hellman poate fi utilizat i pentru criptarea cu cheie
secret. n acest caz schema este aceeai ca i mai sus ns cu unele
particulariti. Alice nu transmite direct lui Bob valorile p, i A ns le
public din timp, ele avnd calitatea de cheie public. Bob la rndul su
efectueaz calculele sale, dup care cifreaz mesajul cu un algoritm
simetric, folosind k n calitate de cheie, apoi transmite spre Alice textul
cifrat mpreun cu valoarea lui B.
Exemplu de utilizare a schimbului de chei Diffie-Hellman:
Alice i Bob convin asupra lui p = 23 i = 5.
Alice alege aleatoriu a = 6 and i trimite lui Bob A = 56 mod 23=8.
Bob alege aleatoriu b = 15 i trimite lui Alice 515 mod 23 = 19.
Alice calculeaz 196 mod 23 = 2.
Bob calculeaz 815 mod 23 = 2.
Alice i Bob au abinut alei rezultat, deci cheia secret comun
este k = 2.
n practic ns algoritmul Diffie-Hellman nu este utilizat astfel.
Algoritmul cu chei publice care domin este algoritmul RSA, deoarece
anume pentru RSA a fost creat un centru de cerificare. n plus algoritmul
Diffie-Hellman nu poate fi utilizat la semnarea certificatelor.
Un alt sistem de criptare cu cheie public bazat pe problema
logaritmului discret este sistemul ElGamal, care conine n sine i
algoritmul de semntur digital. Schema ElGamal se afl la baza
standardului de semntur digital n SUA (standardul DSA), precum i n
Rusia ( 34.10-94).
Schema a fost propus de ctre Taher Elgamal n anul 1984. Elgamal a
elaborat una din versiunile algoritmului Diffie-Hellman. El a perfecionat
95

algoritmul Diffie-Hellman i a obinut doi algoritmi care sunt utilizai


pentru criptare i pentru asigurarea autenticitii. Spre deosebire de
algoritmul RSA, algoritmul ElGamal nu a fost brevetat i deci este o
alternativ mai puin costisitoare, deoarece nu este necesar achitarea unei
tax pentru licen. Se consider c algoritmul ElGamal este acoperit de
brevetul Diffie-Hellman.
Algoritmul ElGamal const n urmtoarele:
1. Generarea cheilor:
Se genereaz aleatoriu un numr prim p de n bii.
Se alege aleatoriu elementul primitiv al cmpului Zp
Se alege aleatoriu un numr ntreg a nct 1 < a p 2.
Se calculeaz y = a (mod p).
Cheia public este tripletul (p, , y), cheia privat numrul a.
2. Cifrarea mesajului m n sistemul ElGamal este de fapt o
modalitate de generare a cheii publice Diffie-Hellman:
Se alege aleatoriu cheia de sesiune un numr ntreg k,
1 < k p 2.
Se calculeaz A = k (mod p) i B = y k m (mod p).
Textul cifrat este perechea de numere (A, B).
Este evident c lungimea textului cifrat cu algoritmul ElGamal este
de dou ori mai mare dect lungimea textului clar m.
3. Descifrarea. Cunoscnd cheia privat a, textul clar m poate fi
calculat din textul cifrat ( A, B ) n felul urmtor:
m = B (Aa ) 1(mod p).
Aceasta este posibili deoarece
(Aa ) 1 = ka mod p;
B (Aa ) 1 = ( ka m) ka = m mod p.
n scopuri practice pentru descifrare este mai convenabil formula
m = B (Aa ) 1 = B A(p 1a) (mod p).
Deoarece n schema ElGamal se introduce o mrime aleatoare k acest
cifru poate fi considerat cifru polialfabetic. Alegerea aleatorie a lui k a
generat noiunea de schem probabilistic de cifrare. Caracterul
probabilistic cal cifrrii reprezint o prioritate a cifrului ElGaml, deoarece
schemele probabilistice au o rezisten mai mare dect alte scheme cu un
96

proces determinist de cifrare. Dezavantajul schemei ElGamal l reprezint


dublarea lungimii textului cifrat n raport cu textul clar. Pentru schemele
probabilistice de cifrare mesajul m i cheia nu determin univoc textul
cifrat. n schema ElGamal este necesar de a alege valori diferite ale
mrimii aleatoare k pentru cifrarea a dou mesaje diferite m i m. Dac
am folosi aceleai valori ale lui k pentru textele cifrate ( A, B ) i ( A, B )
atunci din relaia B ( B ) 1 = m (m) 1 , se poate uor de calculat m
dac cunoatem m.
Exemplu de utilizare a algoritmului ElGamal, textul clar este m = 65, pe
care Alice trebuie s-l trimit cifrat lui Bob.
Algoritmul ElGamal va consta n urmtoarele:
1. Generarea cheilor:
Se alege aleatoriu numrul prim p = 281.
Se alege aleatoriu elementul primitiv = 3 al cmpului Z281
Se alege aleatoriu un numr ntreg a = 57 nct 1 < a 279.
Se calculeaz y = a (mod p) = 357mod 281= 258.
Cheia public este tripletul (p, , y) = (281, 3, 258).
cheia privat este numrul a = 57.
1. Cifrarea:

Alice alege aleatoriu cheia de sesiune k = 49 un numr


ntreg, 1 < k 279.
Ea calculeaz
A = k (mod p) = 349 mod 281= 146 i
B = y km (mod p) = (34965) mod 281= (15265) mod 281 = 45.
Textul cifrat este perechea de numere (A, B) = (146, 45).
Alice transmite lui Bob textul cifrat (146, 45).
2. Descifrarea. Bob, fiind titularul cheii secrete a = 57, primete textul
cifrat (146, 45) de la Alice. Pentru descifrarea acestui mesaj el
procedeaz n felul urmtor:

m = B (Aa) 1(mod p) = 45 (146 57) 1(mod 281).


Pentru aceasta Bob poate calcula mai nti 14657mod 281=152.

97

Apoi calculeaz 152 1 mod 281 = 220 (pentru aceasta poate


aplica algoritmul Euclid Extins).
Calculeaz textul clar
m = (45220) mod 281 = 9900 mod 281 = 65.
Textul clar putea fi calculat i fr a aplica calculul inversului
aplicnd formula m = B A(p 1a) (mod p):
m = 45146(281 157) (mod 281) = 45146223 (mod 281) =
= 45220 (mod 281) = 9900 (mod 281) = 65.

Un alt algoritm clasat printre primii algoritmi cu cheie public este


Algoritmul Merkle-Hellman. Ralph Merkle i Martin Hellman au dezvoltat
un algoritm de criptare bazat pe problema rucsacului, o problem NPcomplet, care a fost publicat n anul 1978. Problema rucsacului conine o
mulime de ntregi pozitivi i o sum int, i const n gsirea unei
submulimi de ntregi a cror sum coincide cu suma int.
Ideea pe care se bazeaz schema rucsacului Merkle-Hellman este
codificarea unui mesaj binar ca o soluie la o problem a rucsacului,
reducnd mesajul n text cifrat la suma int obinut prin adunarea
termenilor corespunztori valorilor de 1 din irul binar.
Un rucsac este reprezentat ca un vector de numere ntregi n care
ordinea termenilor este foarte important. Exist dou tipuri de rucsacuri:
unul simplu, pentru care exist un algoritm rapid (n timp liniar) i unul
complicat, obinut din cel simplu prin modificarea elementelor sale.
Modificarea este astfel proiectat nct o soluie cu elementele oricrui
rucsac este de asemenea soluie pentru cellalt. Aceast modificare se
numete trap, permind utilizatorilor legitimi s rezolve problema
simplu. Deci, problema general este NP-complet, dar exist o versiune
restrns care are o soluie foarte rapid.
Algoritmul ncepe cu o mulime de ntregi n care fiecare element este
mai mare dect suma predecesorilor si. S presupunem c avem un ir n
care fiecare element ak este mai mare dect a1+a2+...+ak-1. Dac o sum
este ntre ak i ak+1, trebuie s-l conin pe ak, deoarece nici o combinaie de
termeni a1, a2, ..., ak-1 nu pot produce un total mai mare dect ak. Analog,
dac o sum este mai mic dect ak, evident nu l va conine ca termen pe
ak.
Modificarea algoritmului schimb elementele mulimii din problema
simpl a rucsacului, prin alterarea acestei proprieti de ordonare
98

cresctoare ntr-un fel care pstreaz soluia. Modificarea se realizeaz prin


nmulire cu o constant modulo n.
Problema rucsacului presupune un ir a1, a2, ..., an de ntregi i o sum
int T. Problema este de a gsi un vector de valori 0 i 1 astfel nct suma
ntregilor asociai cu 1 s dea T. Deci, dndu-se S=[a1, a2, ..., an], i T, s se
gseasc un vector V cu valori 0 i 1 astfel nct:
n

a v = T .
i

i =1

Rezolvarea se face considernd fiecare ntreg din S ca participnd la T


i reducnd problema corespunztor. Cnd o soluie nu produce suma int,
se elimin ntregul ales iniial i se continu cu urmtorul. Acest backtraking deterioreaz viteza soluiei.
S presupunem problema rucsacului cu o restricie suplimentar:
ntregii din S formeaz un ir supercresctor, adic unul n care fiecare
ntreg este strict mai mare dect suma predecesorilor si. Atunci, orice
ntreg ak satisface relaia
ak >

k 1

j =1

Soluia rucsacului supercresctor (numit i rucsacul simplu) este uor


de gsit. Se ncepe cu T, care se compar cu cel mai mare ntreg din S.
Dac acesta este mai mare dect T, nu este termen al sumei, deci valoarea
corespunztoare din V este 0. Dac acest cel mai mare ntreg din S este mai
mic sau egal cu T, el este termen al sumei, deci valoarea corespunztoare
din V este 1. Relum algoritmul pentru T din care scdem sau nu termenul
analizat (conform cu valoarea din V) i pentru ntregii rmai.
Tehnica de criptare Merkle-Hellman este un sistem de criptare cu cheie
public. Fiecare utilizator are o cheie public, care poate fi distribuit
oricui i o cheie privat, care se pstreaz secret. Cheia public este
mulimea ntregilor din problema rucsacului (nu unul supercresctor);
cheia privat este rucsacul supercresctor corespondent. Contribuia lui
Merkle i Hellman a fost s proiecteze o tehnic de conversie a rucsacului
supercresctor ntr-unul normal, prin schimbarea numerelor de o manier
reversibil.

99

Tema 11. Sisteme asimetrice bazate pe curbe eliptice


n categoria sistemelor de criptare ale mileniului III pot fi cu
certitudine introduse sistemele bazate pe curbe eliptice. Aceste sisteme de
criptare ne permit s realizm algoritmul de criptare asimetric, protocolul
de generare cheii secrete partajabile pentru criptarea simetric, precum i
algoritmi de semntur digital. Aceste sisteme de criptare au o
productivitate mai nalt i permit utilizarea cheilor substanial mai mici ca
mrime pstrnd nivelul necesar de securitate.
Pentru diverse implementri se utilizeaz curbe eliptice de dou tipuri:
curb eliptic peste un cmp finit Fp, unde p este un
numr prim, p > 3;
curb eliptic peste un cmp finit F2m .
Curbele eliptice sunt un domeniu al matematicii cu o istorie ce se
ntinde pe parcursul a peste un secol. Utilizarea curbelor eliptice n
criptografie a fost propusa pentru prima oar n 1985 de Victor Miller,
cercettor de la IBM i, independent, de Neal Kobitz, profesor la
Universitatea din Washington. Ideea de baza era folosirea grupului
punctelor de pe o curb eliptic n locul grupului Z *p din sistemele
criptografice existente. La momentul descoperirii lor, sistemele bazate pe
curbe eliptice au fost considerate nepractice. De atunci nsa s-a ntreprins
asupra lor o cercetare aprofundata i intens. Datorit perioadei de studiu
de peste 20 de ani a proprietilor criptosistemelor bazate pe curbe eliptice,
se poate considera ca acestea sunt suficient de bine cunoscute.
nc de la acestor sisteme de criptare au existat discuii extinse i au
fost publicate numeroase cri i articole asupra securitii i eficientei lor.
Anii 90 au fost nsa extrem de importani pentru acest tip de criptosisteme,
deoarece acestea au nceput s cunoasc acceptarea comercial odat cu
standardizarea unor algoritmi i protocoale bazate pe curbe eliptice.
Eficienta curbelor eliptice ine de un avantaj important pe care l au aceste
obiecte matematice n faa altor criptosisteme. Avantajul const n
inexistena sau mai bine spus, nu se cunoate un algoritm cu timp
subexponenial care s gseasc logaritmi discrei pentru grupurile
generate de o curb eliptic. n plus, un alt avantaj ar fi acela c utilizarea
100

unei astfel de structuri care este mai mica dect altele, n ceea ce privete
numrul de elemente, conduce la pstrarea aceluiai nivel de securitate cu
dimensiuni ale cheilor mai mici dect n cazul altor criptosisteme.
Dimensiunile reduse ale cheilor i ale reprezentrilor elementelor conduc
implicit la utilizarea a mai puine resurse pentru criptarea datelor i
reducerea limii de band necesare transmiterii textelor criptate. Este
evident ca astfel de proprieti fac din curbele eliptice i criptosistemele
bazate pe aceste obiecte matematice soluii ideale de securitate a datelor
pentru mediile n care puterea de procesare i conexiunea la reea sunt
limitate. Printre aceste medii se pot enumera: telefoanele mobile, PDA-uri,
smart-carduri, carduri pc, etc.
n ultimii ani, curbele eliptice au fost folosite pentru conceperea unor
algoritmi eficieni de factorizare a ntregilor i pentru demonstrarea
primalitii. Ele au fost utilizate n construirea criptosistemelor cu chei
publice, n construirea generatoarelor de bii pseudoaleatoare i a
permutrilor neinversabile. Curbele eliptice i-au gsit aplicabilitate i n
teoria codurilor, unde au fost ntrebuinate pentru obinerea unor coduri
corectoare de erori foarte bune. Curbele eliptice au jucat un rol important i
n recenta demonstraie a Ultimei Teoreme a lui Fermat. Folosirea
sistemelor de criptare bazate pe curbe eliptice permite creterea securitii,
scznd n acelai timp overhead-ul (suprancrcarea) i timpul de laten.
Securitatea criptosistemelor bazate pe curbe eliptice const n
dificultatea calculului logaritmilor n cmpuri discrete (problema
logaritmilor discrei): date fiind A (un element dintr-un cmp finit) i Ax,
este practic imposibil s se calculeze x, atunci cnd elementele sunt
suficient de mari. i alte sisteme criptografice se bazeaz pe problema
logaritmilor discrei in Z*p: ElGamal, algoritmul de semntur Schnorr,
algoritmul de semntura Nyberg-Rueppel, DSA. n mod clasic, aceste
sisteme au fost definite n grupul multiplicativ Z*p. Ele pot fi nsa definite
la fel de bine n orice alt grup finit, cum ar fi grupul punctelor de pe o
curb eliptic.
Serviciile de securitate oferite de criptosistemele bazate pe curbe
eliptice sunt:
autentificarea entitilor
confidenialitatea
integritatea datelor
101

ne-repudierea
schimbul de chei autentificat.
Curbele eliptice sunt benefice n aplicaii n care :
puterea de calcul este limitat (cartele inteligente,
dispozitive fr fir, placi PC);
spaiul pe circuit integrat este limitat (cartele inteligente,
dispozitive fr fir, placi PC);
este necesar viteza mare de calcul;
se folosete intens semnarea i verificarea semnturii;
mesajele semnate trebuie memorate sau transmise;
limea de band este limitat (comunicaii mobile,
anumite reele de calculatoare).
Aplicaii de genul transferurilor bancare sau transmisiile de date prin
reele radio (fr fir), care necesit folosirea intensiv a semnrii digitale,
autentificrii, vitez ridicat i lrgime de band limitat, vor beneficia din
plin de avantajele oferite de implementrile bazate pe conceptul curbelor
eliptice. Sistemele bazate pe curbe eliptice se pot implementa mult mai
uor i eficient att n hardware ct i n software. Implementrile existente
la momentul actual indic faptul c aceste sisteme sunt pe departe mai
eficiente dect orice alt sistem cu chei publice. Un cip construit de
Certicom Corporation pentru realizarea operaiilor pe o curb eliptic peste
cmpul F2155 are o frecvena de ceas de 40MHz i poate efectua
aproximativ 40000 de operaii pe secund. Cipul are doar 12000 de pori i
este de 10 ori mai rapid dect DSA sau RSA pe 1024 de bii.
Definiie: Fie p (p >3) un numr prim. Curba eliptica y 2 = x 3 + ax + b
peste Zp const din mulimea soluiilor (x, y) Zp Zp ecuaiei

y 2 = x 3 + ax + b (mod p),
unde a, b Zp sunt constante astfel nct 4a3 + 27b2 0 (mod p) i dintr-un
punct O numit punct la infinit.
O curb eliptic E se poate structura ca un grup abelian finit. Legea de
compoziie (notat aditiv) este definit astfel:
Fie P, Q E, P = (x1, y1), Q = (x2 , y2).
Dac x2 = x1, y2= y1, atunci P + Q = O; altfel, P + Q = (x3, y3),
unde x3 = 2 x1 x2, y3 =(x1 x2) y1, iar
102

y2 y1
x x
2 1
= 2
dac P Q sau P = Q.
3 x1 + a
2 y1
Se mai definete P+O = O +P = P, P E. Elementul neutru este O.

Operaii cu punctele de pe curbele eliptice


Adunarea punctelor de pe curbele eliptice poate fi explicat cel mai
simplu prin prisma reprezentrilor geometrice. Operaia de adunare pe o
curb eliptic este corespondent operaiei de nmulire n sistemele cu
chei publice obinuite iar adunarea multipl este corespondent
exponenierii modulare din acestea.
S examinm reprezentarea curbei din Figura 11.1. Adunarea
punctelor P(x1, y1) i Q(x2, y2) este echivalent cu gsirea punctului
R(x3, y3) prin trasarea unei drepte ntre punctele P i Q care intersecteaz
curba ntr-un al treilea punct. Acest punct este inversul punctului R, iar R
va fi punctul de reflexie al acestui punct. Mai exact vom trasa o
perpendicular din punctul R pe axa OX care va intersecta curba n
punctul R.

Figura 11.1. Adunarea punctelor de pe curba eliptica

103

O alt operaie posibil cu punctele unei curbe este dublarea unui


punct. Dublul unui punct se obine asemntor, cu diferena c de aceasta
dat trasm o dreapt tangent la punctul P(x1, y1). Conform Figurii 11.2 se
obine la fel ca la adunare inversul punctului R, din care vom obine R. Din
punct de vedere algebric pentru a putea folosi aceste elemente pentru a
defini un criptosistem bazat pe operaii cu puncte de pe curbe eliptice,
avem nevoie sa definim o structur algebric. Cea mai simpla structur
care permite acest lucru este grupul.
Fie E o curb eliptic peste Fp sau peste F p m i dou puncte P i Q de
pe curba eliptica E. Mulimea punctelor de pe curba E, notat cu E(Fp) are
structura de grup mpreuna cu adunarea punctelor.
1. Exista element neutru: Dac P este punctul la infinit notat cu
, atunci definim punctul P ca fiind . Pentru orice alt punct
Q definim Q + = Q.
2. Exist element invers: n Fp definim punctul invers al lui
P(x, y) ca fiind P(x,y). Dac exist un punct Q = P, atunci
Q + P =.
3. Operaia de adunare: O dreapta care intersecteaz curba
eliptic n dou puncte P i Q va intersecta curba i ntr-un al
treilea punct. Definim P + Q = R, R(x3, y3) vor fi
coordonatele celui de-al treilea punct de intersecie al dreptei
cu curba eliptic E.
4. Dublarea punctelor: O dreapt d tangent la curba eliptica E
va intersecta curba eliptic n punctul R(x3, y3). Definim
dublarea punctului P prin 2P = R
Din descrierea de mai sus pot fi calculate formule exacte pentru
adunarea i dublarea punctelor n funcie de coordonatele punctelor i de
tipurile de curbe prezentate mai sus, rezultate prin schimbrile acceptabile
de variabile. Dei regulile de calcul n grupul punctelor unei curbe eliptice
par destul de complicate, aritmetica acestora poate fi implementat extrem
de eficient, calculele n acest grup fiind realizate mult mai rapid dect cele
din grupul Zp.

104

Figura 11.2. Adunarea punctelor de pe curba eliptica

Exemplu:
Fie curba eliptica E: y 2 = x3 + x + 6 pe Z11. Calculm mai nti
punctele lui E: pentru orice x Z11, se calculeaz z = x 3 + x + 6 mod11 . Se
testeaz dac z este un rest ptratic (pentru un x dat) folosind criteriul lui
Euler. Aplicnd formula de calcul a rdcinilor ptrate a unui rest ptratic
11+1

modulo p se obine: z 4 mod11 = z 3 mod11. Calculele sunt


reprezentate n Tabelul 11.1.
Deci curba eliptica E admite 13 puncte. Ordinul grupului este prim,
deci grupul este ciclic. Presupunem c se ia =(2, 7) generator al grupului.
Se pot atunci calcula multiplii lui (care sunt puteri ale lui deoarece
grupul este aditiv). Pentru a calcula 2 =(2, 7) + (2, 7) se calculeaz mai
nti =(322+1)(27)-1 mod 11 = 23-1 mod 11 = 24 mod 11 = 8. Atunci
avem x3=82 2 2 mod 11= 5 i y3 = 8(25) 7 mod 11= 2.
Observam c ales mai sus este cu adevrat un generator al grupului.
S analizm n continuare un exemplu de criptare El Gamal pe curba
eliptica din exemplul anterior:
Fie = (2, 7) i exponentul secret da = 7. Avem = 7 = (7, 2).
Criptarea textului clar x cu cheia k se face in modul urmtor:
105

eK(x, k) = (k, x+k) = (k (2, 7), x +k (7, 2)), unde 0 k 12 i x E


Operaia de decriptare se desfoar astfel:
dK(y1, y2) = y2 7y1.
S presupunem c utilizatorul A vrea s cifreze mesajul x = (10, 9)
(care este un punct de pe E) spre a-l trimite utilizatorului B. Pentru aceasta
el alege valoarea aleatoare k =3 i calculeaz:
y1 = 3(2,7) = (8,3)
i
y2 = (10, 9) + 3(7, 2) = (10, 9)+(3, 5) = (10, 2)
Deci textul cifrat este y = ((8, 3), (10, 2)).
La recepie, utilizatorul B descifreaz mesajul n urmtorul mod:
x = (10, 2) 7(8, 3) = (10, 2) (3, 5) = (10, 2) + (3, 6) = (10, 9)
rezultnd sensul descifrat al mesajului.
este rest
x
x3+x+6 mod11
ptratic
y
modulo 11 ?
0
6
Nu
1
8
Nu
2
5
4, 7
Da
3
3
5, 6
Da
4
8
Nu
5
4
2, 9
Da
6
8
Nu
7
4
2, 9
Da
8
9
3, 8
Da
9
7
Nu
10
4
2, 9
Da
Tabelul 11.1. Calculul punctelor curbei eliptice E

106

Tema 12. Sistemul de criptare RSA


Un alt criptosistem bazat pe o problem dificil este Algoritmul RSA,
numit astfel dup inventatorii si, Rivest, Shamir i Adelman. A fost
publicat n 1978 i rmne un algoritm foarte folosit i astzi, n ciuda
eforturilor criptanalitilor de a-l sparge.
Algoritmul de criptare RSA incorporeaz rezultate din teoria
numerelor, combinate cu dificultatea determinrii factorilor primi pentru
un numr int. Ca n cazul algoritmului Merkle-Hellman i algoritmul
RSA opereaz cu aritmetica modulo n. Un bloc n text clar este tratat ca un
ntreg, iar pentru criptare i decriptare se folosesc dou chei, e i d, care
sunt interschimbabile. Blocul de text clar P este criptat ca Pemodn.
Deoarece exponenierea este modulo n, este foarte dificil s se factorizeze
Pe pentru a descoperi textul original. Pentru aceasta, cheia de decriptare d
este astfel aleas nct
(Pe)d =P mod n.
Astfel P este regsit fr a fi necesar descompunerea n factori primi a
lui Pe.
Problema pe care se bazeaz algoritmul de criptare este cea a
factorizrii numerelor mari. Problema factorizrii nu se cunoate a fi
NP-complet; cel mai rapid algoritm cunoscut este exponenial n timp.
Cu algoritmul RSA mesajul n text clar p este criptat prin intermediul
cheii de criptare e obinndi-se mesajul n text cifrat c:
c = pe mod n.
Mesajul n text clar este regsit cu ajutorul cheii de decriptare d:
p = cd mod n.
Din cauza simetriei din aritmetica modular, criptarea i decriptarea
sunt mutual inverse i comutative:
p = cd mod n = (pe)d mod n = (pd)e mod n.
Cheia de criptare const n perechea de ntregi (e, n), iar cheia de
decriptare este (d, n). Punctul de plecare n gsirea cheilor pentru acest
algoritm este selectarea unei valori pentru n. Valoarea lui n trebuie s fie
suficient de mare, dat de un produs a dou numere prime p i q. Att p ct
i q trebuie s fie ele nsele suficient de mari. n mod obinuit, p i q au
aproximativ 100 de cifre fiecare, astfel nct n are aproximativ 200 de
cifre. Aceast lungime inhib ncercarea de a factoriza pe n, pentru a afla
pe p i pe q.
107

n continuare, se alege un ntreg e relativ mare, astfel nct e este


relativ prim cu (p1)(q1). Satisfacerea acestei condiii se face alegndu-l
pe e ca un numr prim mai mare dect p1 i q1. n final, se alege d astfel
nct:
e d 1 mod (p1) (q1).
Funcia lui Euler (n) este numrul ntregilor pozitivi mai mici dect n
care sunt relativ primi cu n. Dac p este prim, atunci:
(p) = p1.
Dac n = p q, unde p i q sunt ambele prime, atunci
(n) = (p) (q) = (p1) (q1)
Identitatea Euler-Fermat afirm c
x (n) 1 mod n
pentru orice ntreg x, dac n i x sunt reciproc prime.
S presupunem c mesajul n text clar p este criptat cu algoritmul RSA,
astfel nct e(p)=pe. Trebuie s fim siguri c putem decripta mesajul.
Valoarea e este astfel aleas nct inversa sa d s poat fi gsit uor.
Deoarece e i d sunt inverse modulo (n),
e d 1 mod (n) sau e d = k (n) + 1
pentru anumii ntregi k.
La implementarea practic a algoritmului, utilizatorul algoritmului
RSA alege numerele prime p i q, din care se obine n = pq. Apoi alege e,
relativ prim la (p1)(q1), de obicei un numr prim mai mare dect p1 i
dect q1. n final, d se calculeaz ca inversul lui e mod (n).
Utilizatorul distribuie e i n, i pstreaz cheia d secret; p, q i (n)
pot fi ignorate, dar nu fcute publice. Chiar dac se tie c n este produsul
a dou numere prime, datorit mrimii sale peste 200 de cifre, nu va fi
posibil s se determine factorii p i q, i nici cheia privat, d din e. De
asemenea, verificarea c p i q sunt prime, presupune luarea n considerare
a 1050 factori.
La momentul actual n RSA se utilizeaz numere prime gsite prin
intermediul algoritmilor probabilistici, cel mai performant fiind testul
Miller-Rabin. El este considerat suficient de bun pentru generarea
numerelor prime aplicate n criptografie. Dac ns acest test ar genera la
un moment dat un numr compus, urmrile vor fi imprevizibile pentru
utilizatorii algoritmului RSA cu cheile respective.
108

Teoretic sunt trei posibiliti de abordare a unui atac n cazul


algoritmului RSA: atacul n for, atacul bazat pe metode matematice
(ncercarea factorizrii produsului a dou numere prime mari) i atacul
temporal. Analiza acestor atacuri duce la concluzia c nici unul nu are sori
de izbnd. n pofida unor intense cercetri, au fost identificate doar
probleme minore n comparaie cu cele din cazul algoritmului rucsacului a
lui Merkle i Hellman.
Aadar algoritmul RSA const din urmtorii 3 algoritmi: generatorul
de chei, algoritmul de criptare i algoritmul de decriptare.
Generatorul de chei.
1. Genereaz dou numere prime mari p i q;
2. Calculeaz n = pq i indicatorul Euler (n) = (p 1)(q 1);
3. Alege aleator un numr e (1<e<(n)) astfel ca cmmdc(e, (n)) = 1;
4. Calculeaz d = e-1 mod (n) (adic d e = 1 mod (n)) folosind
algoritmul extins al lui Euclid;
5. Face public n i e, adic cheia public este (e, n) iar cea privat
este (d, n).
Algoritmul de criptare.
Fie m mesajul n clar dat sub forma unui numr natural mai mic
dect n (m poate fi reprezentarea zecimal conform tabelului ASCII a
caracterului ce trebuie criptat). Atunci textul cifrat, notat cu c, este
c = m e mod n.
Algoritmul de decriptare.
Fie c textul cifrat primit. Atunci textul clar m, este
m = c d mod n.
Pentru calcularea inversului d al uni numr ntreg e n clasele de resturi
modulo n putem aplica algoritmul Euclid extins, care poate fi implementat
cu ajutorul Tabelului 12.1. n acest tabel avem:
x1 = 1, y1 = 0, r1 = n, x2 = 0, y2 = 1, r2 = e.
r
qi = i 1 , i = 2, 3, ... ,
ri
unde [x] reprezint partea ntreag a numrului x. Pentru i = 3, 4, 5 ...
avem:

109

ri = ri 2 mod ri 1 , ,
xi = xi 2 qi 1 xi 1 ,
yi = yi 2 qi 1 yi 1 .
Procesul continu pn cnd obinem r = 1. n acest caz (la iteraia k)
e-1 mod n = yk. n cazul n care yk < 0 se adun n.
Pentru calcularea rapid a lui a b mod n se poate aplica urmtoarea
metod:
1. se determin reprezentarea binar a lui a;
2. fiecrei uniti din aceast reprezentare binar i corespund
operaiile de ridicare la ptrat i nmulirea cu baza
(( x 2 mod n) a ) mod n , iar pentru fiecare 0 numai nmulirea cu
baza ( x a ) mod n ; prima unitate din aceast reprezentare nu o
lum n consideraie (pe primul loc numaidect se afl 1).

i
1

x
1

y
0

r
n

3 xi = xi 2 qi 1 xi 1

k xk = xk 2 qk 1 xk 1

q
r
q2 = 1
r2

r
yi = yi 2 qi 1 yi 1 ri = ri 2 mod ri 1 q3 = 2
r3

r
qk = k 1
yk = yk 2 qk 1 yk 1
1
rk

Tabelul 12.1. Schema algoritmului Euclid extins

S analizm un exemplu al algoritmului RSA. Din start trebuie de


menionat c acest exemplu este unul pur instructiv, el neavnd nici un
grad de securitate.
Exemplu. Bob trebuie s genereze o pereche de chei pentru algoritmul
RSA i s-i transmit lui Alice cheia sa public. Alice va cripta cu aceast
cheie mesajul A i va trimite lui Bob textul cifrat, care, folosind cheia sa
privat, trebuie s-l decripteze.
110

Pentru generarea cheilor Bob alege 2 numere prime:


p = 31 i q = 23.
Calculeaz produsul

n = 31 23 = 713.
Apoi calculeaz indicatorul Euler
(n) = (p 1)(q 1) = 30 22 = 660.
n continuare Bob alege aleator un numr e (1 < e < (n)) astfel ca
cmmdc(e, (n)) = 1, adic 1 < e < 660 i cmmdc(e, 660) = 1. Fie c alege
e = 223
Calculeaz d = 223-1 mod 660 aplicnd algoritmul Euclid extins (Tabelul
12.2).
i
x
y
r
q
1
1
0
660
2
0
1
223
2
3
1
-2
214
1

1
3
9
23
k
24
71
7
1
25
74
2
3
99
2
293
1
Stop!
Tabelul 12.2. Schema algoritmului Euclid extins pentru d = 223-1 mod 660

Aadar,
d = 223-1 mod 660 = 293 mod 660 = 293 + 660 = 367
Deci cheia privat a lui Bob este (367, 713).
Ceia sa public (223, 713) Bob o transmite lui Alice.
Alice trebuie s trimit mesajul A lui Bob cifrnd-ul cu algoritmul
RSA. Conform tabelului ASCII valoarea zecimal a lui A este 65. Deci
m = 65. Pentru aceasta Alice calculeaz
c = 65223 mod 713.
Reprezentarea binar al exponentului 223 este:
22310 = 110111112.
Aadar,
111

65223 mod 713 = (((((((((((((652 mod 713) 65 mod n) 2 mod n) 2 mod n)


65 mod n) 2 mod n) 65 mod n) 2 mod n)
65 mod n) 2 mod n) 65 mod n) 2 mod n) 65 mod n).
Efectund consecutive calculele se obine
65223 mod 713 = 396.
Alice trimite lui Bob textul cifrat
c = 396.
Bob aplic aceeai metod i calculeaz
m = c d mod n = 396367 = 65 ,
adic conform tabelului ASCII litera A.
Dac numrul n este insuficient de mare, atunci algoritmul poate fi
spat. n cazul nostru n = 713. Acest numr poate fi foarte simplu factorizat:
n = 713 = 31 23.
Ruvoitorul cunoate cheia public, deci tie c e = 223 i la fel ca Bob
calculeaz d i obine cheia lui privat. Algoritmul este spart.
n conformitate cu recomandrile unor specialiti din domeniu
lungimea cheii RSA trebuie s fie n concordan cu Tabelul 12.3.

Durata de via a
datelor
pn n 2010
pn n 2030
ncepnd cu
2031

Lungimea cheii
RSA
1024 bii
2048 bii
3072 bii

Tabelul 12.3. Recomandri referitoare la lungimea cheii RSA

112

Tema 13. Funciile HASH criptografice


Unul dintre instrumentele importante ale criptografiei moderne sunt
funciile HASH. Aceste funcii efectueaz transformri asupra unei intrri
de o lungime arbitrar genernd o ieire de lungime fix care este o
imagine a intrrii. Valoarea imaginii returnate se numete valoare
HASH. Aceste funcii se mai numesc i funcii message digest, deoarece
din valoarea HASH este imposibil de reconstruit intrarea din care s-a fcut
imaginea. Exist multe funcii care pot transforma intrarea de lungime
arbitrar n o ieire de lungime fix, ns funciile care prezint interes din
punct de vedere criptografic sunt funciile hash de sens unic (oneway
hash functions). Ecuaia general care descrie funciile hash este
h = H(m),
unde m intrarea, H este funcia i h valoarea hash.
Caracteristicile speciale ale funciilor de sens unic sunt urmtoarele:
o Pentru orice intrare M este uor de calculat h.
o Avnd h este dificil de calculat M astfel nct se fie
satisfcut relaia h = H(m).
o Pentru un M dat este dificil de gsit M1 astfel nct
H(M) = H(M1).
Aceste proprieti ale funciilor hash de sens unic folosite n
criptografie sunt extrem de importante deoarece dac un atacator ar putea
gsi cu uurin o valoare de intrare m1 care produce acelai rezultat cu m
atunci dac cineva semneaz m, atacatorul ar putea afirma c a fost semnat
m1. O cerin adiional pentru aceste funcii este ca pentru ele s fie dificil
de gsit dou mesaje aleatoare care s aib acelai imagine, altfel spus:
o Este dificil de gsit mesajele aleatoare m i m1 astfel nct
H(m) = H(m1).
Un posibil atac, dac ultima cerin nu este ndeplinit, ar fi atacul
numit atacul zilei de natere (birthday atack). Acest tip de atac i-a
primit numele de la paradoxul zilelor de natere. n mod surprinztor, se
poate dovedi matematic c probabilitatea ca n orice grup de 23 de
persoane doi sau mai muli indivizi s aib acelai zi de natere este mai
1
mare dect .
2
113

Atacul descris de ctre criptologul Bruce Schneier presupune folosirea


unei funcii hash care produce un rezultat de 64 bii. Paii care trebuie
parcuri pentru ca Bob s obin o semntur de la Alice pe un document
care n-ar fi semnat, n condiii normale, niciodat de Alice:
1. Bob pregtete dou versiuni ale documentului, una care este n
ordine i va fi semnat de Alice, i una care conine informaii false
care nu ar fi semnate de Alice.
2. Bob face schimbri subtile pe fiecare document (de ex. inserare de
spaii etc.), obinnd 223 variante ale documentelor.
3. Bob calculeaz valorile Hash a fiecrei variante ale celor dou
documente, i gsete cte una din fiecare grup care produc
aceleai valori HASH.
4. Bob trimite varianta modificat a documentului pe care Alice este
dispus s semneze, folosind un protocol unde se semneaz numai
valoarea HASH.
5. Acuma Bob poate susine c documentul pereche cu informaiile
false a fost semnat de Alice.
Nu este uor de gsit o funcie care satisface toate cerinele de mai sus,
totui exist destul de multe, mai mult sau mai puin sigure, funcii HASH
folosite n criptografie. Vom oferi o descriere a celor mai cunoscute dintre
aceste funcii.
MD5 (MD provine din Message Digest) este o funcie hash de sens
unic, proiectat de Ron Rivest (unul dintre autorii algoritmului RSA).
Algoritmul produce un hash, sau altfel zis imagine de 128 bii a mesajului
de intrare.
Principiile dup care s-a realizat algoritmul sunt urmtoarele:
o Securitate. Este imposibil de gsit dou mesaje care au
aceiai imagine, presupunnd c nu exist alt metod de
criptanaliz dect cea a forei brute.
o Securitate direct. Securitatea nu se bazeaz pe
presupuneri, cum ar fi de exemplu dificultatea de a
factoriza numere mari n cazul RSA.
o Vitez. Algoritmul trebuie s fie potrivit pentru
implementri rapide de software, bazndu-se pe manipulaii
de bit cu operanzi de 32 bii.
114

o Simplicitate i compactitate. Algoritmul trebuie s fie ct se


poate de simplu, fr structuri mari de date sau un program
complicat.
o Favorizare de arhitecturi Little-Endian. Algoritmul este
optimizat pentru arhitecturi de microprocesoare (mai ales
Intel). Calculatoarele mai performante fac transformrile
necesare.
Prima variant a algoritmului a fost MD4, dar acesta dup ce a fost
introdus a fost criptanalizat cu succes n pri, ce l-a ndemnat pe autor
s-si mbunteasc codul. Astfel a fost conceput MD5, ca variant MD4
mbuntit.
Descrierea algoritmului MD5. Dup nite procesri iniiale MD5
proceseaz textul de intrare n blocuri de 512 de bii, care sunt mai departe
separai n 16 sub-blocuri de 32 bii fiecare. Algoritmul produce un set de 4
blocuri de 32 bii, care concatenate dau ieirea de 128 bit.
Mesajul este mrit pentru a fi multiplul lui 512. Acest procedeu se
realizeaz prin adugarea unui bit de 1 la sfritul mesajului i attea
zerouri ci sunt necesari ca mesajul original s aib o lungime cu 64 de
bii mai scurt dect un multiplu al lui 512. O reprezentare pe 64 de bii
este apoi adugat la sfritul mesajului. Acest procedeu asigur ca
complementarea s arate diferit pentru mesajele diferite.
La nceput sunt iniializate patru variabile, numite variabile de
legtur:
A = 0x01234567
B = 0x89abcdef
C = 0xfedcba98
D = 0x76543210
Apoi ncepe ciclul principal al algoritmului, care este repetat n funcie de
numrul de blocuri de 512 din mesajul de intrare. Cele patru variabile sunt
copiate n alte variabile, anume: A n a, B n b, C n c iar D n d.
Ciclul principal are patru runde asemntoare. Fiecare rund folosete
o operaie diferit de 16 ori. Fiecare operaie aplic o funcie ne-liniar pe
trei din variabilele a,b,c,d, adugnd rezultatul la al patrulea variabil, la
un sub-bloc a textului de intrare i o constant. Apoi rotete rezultatul
obinut la dreapta cu un numr variabil de bii i adaug rezultatul la unul
dintre variabilele a,b,c, sau d. n final rezultatul este copiat ntr-unul dintre
115

variabilele de dinainte. Funcionarea buclei principale a algoritmului este


prezentat n Figura 13.1.

Figura 13.1. Bucla principal MD5

Sunt patru funcii neliniare folosite n fiecare operaie. Se folosete o


funcie diferit n fiecare rund. Funciile neliniare sunt:
F(X,Y,Z) = (X & Y) | ((!X) & Z)
G(X,Y,Z) = (X & Z) !(Y (!Z))
H(X,Y,Z) = X xor Y xor Z
I(X,Y,Z) = Y xor (X | (!Z))
Considernd M j fiind blocul j din sub-blocul de mesaje i <<< s fiind o
rotaie circular de s bii, cele patru operaii sunt:
FF (a, b, c, d, Mj, s, ti) nseamn a = b+((a + F(b, c, d)+Mj + ti) <<< s)
GG (a, b, c, d, Mj, s, ti) nseamn a = b+((a + G(b, c, d)+Mj + ti) <<< s)
HH (a, b, c, d, Mj, s, ti) nseamn a = b+((a + H(b, c, d)+Mj + ti) <<< s)
II (a, b, c, d, Mj, s, ti) nseamn a = b + ((a + I(b, c, d) + Mj + ti) <<< s)
Cele patru runde (64 de pai) sunt prezentate n Tabelul 13.1.
Constantele ti sunt alese astfel nct ti n pasul i este partea ntreag a
valorii 232 abs(sin(i)), unde i este n radiani. Dup parcurgerea celor 64 de
pai valorile a, b, c, d sunt adugate la A, B, C, D i ciclul se repet cu
urmtorul bloc de date. Ieirea final va fi concatenarea valorilor A, B, C i
D.
116

Runda 1
FF (a, b, c, d, M0, 7, 0xd76aa478)
FF (d, a, b, c, M1, 12, 0xe8c7b756)
FF (c, d, a, b, M2, 17, 0x242070db)
FF (b, c, d, a, M3, 22, 0xc1bdceee)
FF (a, b, c, d, M4, 7, 0xf57c0faf)
FF (d, a, b, c, M5, 12, 0x4787c62a)
FF (c, d, a, b, M6, 17, 0xa8304613)
FF (b, c, d, a, M7, 22, 0xfd469501)
FF (a, b, c, d, M8, 7, 0x698098d8)
FF (d, a, b, c, M9, 12, 0x8b44f7af)
FF (c, d, a, b, M10, 17, 0xffff5bb1)
FF (b, c, d, a, M11, 22, 0x895cd7be)
FF (a, b, c, d, M12, 7, 0x6b901122)
FF (d, a, b, c, M13, 12, 0xfd987193)
FF (c, d, a, b, M14, 17, 0xa679438e)
FF (b, c, d, a, M15, 22, 0x49b40821)
Runda 3:
HH (a, b, c, d, M5, 4, 0xfffa3942)
HH (d, a, b, c, M8, 11, 0x8771f681)
HH (c, d, a, b, M11,16,0x6d9d6122)
HH (b, c, d, a, M14, 23, 0xfde5380c)
HH (a, b, c, d, M1, 4, 0xa4beea44)
HH (d, a, b, c, M4, 11, 0x4bdecfa9)
HH (c, d, a, b, M7, 16, 0xf6bb4b60)
HH (b, c, d, a, M10, 23, 0xbebfbc70)
HH (a, b, c, d, M13, 4, 0x289b7ec6)
HH (d, a, b, c, M0, 11, 0xeaa127fa)
HH (c, d, a, b, M3, 16, 0xd4ef3085)
HH (b, c, d, a, M6, 23, 0x04881d05)
HH (a, b, c, d, M9, 4, 0xd9d4d039)
HH (d, a, b, c, M12, 11,0xe6db99e5)
HH (c, d, a, b, M15, 16, 0x1fa27cf8)
HH (b, c, d, a, M2, 23, 0xc4ac5665)

Runda 2
GG (a, b, c, d, M1, 5, 0xf61e2562)
GG (d, a, b, c, M6, 9, 0xc040b340)
GG (c, d, a, b, M11, 14, 0x265e5a51)
GG (b, c, d, a, M0, 20, 0xe9b6c7aa)
GG (a, b, c, d, M5, 5, 0xd62f105d)
GG (d, a, b, c, M10, 9, 0x02441453)
GG (c, d, a, b, M15, 14, 0xd8a1e681)
GG (b, c, d, a, M4, 20, 0xe7d3fbc8)
GG (a, b, c, d, M9, 5, 0x21e1cde6)
GG (d, a, b, c, M14, 9, 0xc33707d6)
GG (c, d, a, b, M3, 14, 0xf4d50d87)
GG (b, c, d, a, M8, 20, 0x455a14ed)
GG (a, b, c, d, M13, 5, 0xa9e3e905)
GG (d, a, b, c, M2, 9, 0xfcefa3f8)
GG (c, d, a, b, M7, 14, 0x676f02d9)
GG (b, c, d, a, M12, 20, 0x8d2a4c8a)
Runda 4:
II (a, b, c, d, M0, 6, 0xf4292244)
II (d, a, b, c, M7, 10, 0x432aff97)
II (c, d, a, b, M14, 15, 0xab9423a7)
II (b, c, d, a, M5, 21, 0xfc93a039)
II (a, b, c, d, M12, 6, 0x655b59c3)
II (d, a, b, c, M3, 10, 0x8f0ccc92)
II (c, d, a, b, M10, 15, 0xffeff47d)
II (b, c, d, a, M1, 21, 0x85845dd1)
II (a, b, c, d, M8, 6, 0x6fa87e4f)
II (d, a, b, c, M15, 10, 0xfe2ce6e0)
II (c, d, a, b, M6, 15, 0xa3014314)
II (b, c, d, a, M13, 21, 0x4e0811a1)
II (a, b, c, d, M4, 6, 0xf7537e82)
II (d, a, b, c, M11, 10, 0xbd3af235)
II (c, d, a, b, M2, 15, 0x2ad7d2bb)
II (b, c, d, a, M9, 21, 0xeb86d391)

Tabelul 13.1. Operaiile din rundele MD5

117

Exist diverse implementri ale algoritmului de generare a lui MD,


spre exemplu http://www.miraclesalad.com/webtools/md5.php.
Exemplu MD5.

Deci, MD5(Funcii HASH) = 8e31fb99ef4072b4d3d93014651eb13a.


Secure Hash Algorithm SHA. NIST mpreun cu NSA au propus
algoritmul SHA pentru standardul de semntur digital. Diferena cea mai
important dintre MD5 i SHA este lungimea imaginii produse, care n
cazul lui SHA este 160 bii. Cu ct este mai lung imaginea produs de
funcie cu att mai mare este fidelitatea cu care aceast imagine
caracterizeaz sursa, deci scade probabilitatea ca dou mesaje diferite s
produc acelai hash. ns ideea de baz, pentru care s-a introdus crearea
de imagine a mesajelor este tocmai s se obin date de lungime redus
care vor fi semnate, asigurnd astfel viteza necesar semnrii digitale a
documentelor. Deci putem afirma c lungimea este de fapt un compromis
ntre fidelitatea imaginii i viteza procesului de semnare.
Algoritmul SHA a fost proiectat inspirndu-se din MD5, astfel multe
din operaiile acestor doi algoritmi sunt similare. Completarea mesajului de
intrare la multiplu de 512 bii este realizat exact la fel ca i la MD5.
SHA folosete cinci variabile de 32 bii (MD5 folosete numai 4),
obinndu-se astfel ieirea de 160 bii prin concatenarea ieirilor din cele
cinci blocuri.
Menionm faptul c funciile hash MD5, SHA i mai recent SHA-1
(Figura 13.2) nu mai ofer rezisten secundar a imaginii, ns n ciuda
118

acestui fapt ele sunt nc folosite n multe aplicaii. Atacuri asupra SHA au
fost anunate pentru prima oar n dou articole non-tehnice ale lui
Schneier cu privire la atacurile asupra funciilor hash. Pentru soluii
contemporane se recomand folosirea SHA-256 sau mai puternic, i
nicidecum a MD5 sau SHA-1.

Figura 13.2 Bucla principal SHA1

Un nlocuitor pentru unul dintre cei mai folosii algoritmi n securitatea


informatic a fost ales n urma unui concurs ntre criptografi desfurat
timp de cinci ani. Concursul a fost conceput pentru a liniti experii n
securitate cibernetic. Acetia fuseser speriai de deficienele standardului
gold precedent. Acum se pare c nu avem o nevoie stringent de un
algoritm nou...
Exemplu SHA-1.

SHA1(Funcii HASH) =745503396156e64889f1ae2386a410f03887ebf7


119

n data de 2 octombrie 2012 un algoritm numit Keccak a fost


desemnat ctigtorul competiiei Secure Hash Algorithm - 3 (SHA-3)
organizat de NIST n Gaithersburg, Maryland. Algoritmii alei de NIST
sunt considerai ca fiind standardul de aur n criptografie. La sfritul
competiiei anterioare, definitivate n anul 2000, s-a ales Advanced
Encryption Standard (AES), folosit pe scar larg, de la Skype la
Agenia Naional de Securitate (US National Security Agency, NSA).
NIST a dat startul acestui concurs pentru prima dat n 2007, dup ce au
nceput s apar temeri c algoritmii hash existeni la acea vreme, SHA-1
i SHA-2, ar putea fi defectuoi.
Algoritmii hash sunt utilizai de ctre ageniile guvernamentale i
ntreprinderile din ntreaga lume pentru a realiza tranzacii on-line n
siguran, pentru a stoca parole sigure i pentru a verifica fiiere digitale i
semnturi.
Pentru ca un algoritm hash s funcioneze, trebuie s fie foarte greu de
produs coincidene. n limbajul criptografilor acest lucru se numete
coliziune: dou texte diferite care produc acelai hash. n anul 2004
criptograful Xiaoyun Wang a descoperit un defect la SHA-1, care a redus
n mod drastic timpul necesar pentru a gsi o coliziune fcnd nesigure
sistemele care utilizeaz acest algoritm. Pn n acest moment NIST a
aprobat deja succesorul su, familia de algoritmi SHA-2, crend motive de
ngrijorare c defectul s-ar putea extinde i la SHA-2.
Dar, n timp ce cercettorii de la NIST analizau cerinele pentru
competitorul SHA-3, acetia au constatat c algoritmul SHA-2 nu a fost
viciat n acest mod. Ei sunt de fapt algoritmi hash foarte buni, att n
privina performanei, ct i a securitii", afirm Tim Polk, savant de la
NIST.
n loc s ntrerup proiectul de cercetare, NIST a decis c SHA-3 ar
trebui s fie o opiune complementar, explic Polk. Algoritmul ideal ar
avea o structur diferit criptografic, fcnd mai puin probabil ca un atac
asupra SHA-2 s afecteze de asemenea SHA-3. Mai mult chiar, acesta ar
fi mai potrivit pentru o gam mare de dispozitive de calcul.
Dintr-un total de 64 de nregistrri care au avut loc iniial, NIST a
identificat cinci finaliti n 2010. Ctigtorul, algoritmul Keccak, se
bazeaz pe o construcie hash de tip burete, numit astfel deoarece
funcia sa este flexibil, asemeni unui burete fizic. Dac v gndii c
datele de intrare ntr-o func
i
120

apoi stoarse pentru a produce hash, ntr-o construcie de tip burete,


stoarcerea mai rapid produce un hash mai rapid, dar mai puin sigur i
vice-versa, oferind flexibilitate.
Algoritmul nou este n general mai rapid dect predecesorul su i prin
urmare consum mai puin energie, afirm Gilles Van Assche, unul
dintre criptografii aflai n spatele algoritmului Keccak, care a fost
dezvoltat de firmele de materiale semiconductoare STMicroelectronics din
Geneva, Elveia i NXP din Eindhoven, Olanda.
Ali experi n securitate sunt mai puin siguri de utilitatea unui nou
algoritm. Chiar i Bruce Schneier, creatorul unuia dintre finalitii SHA-3,
numit Skein, i-a exprimat ndoiala. Nu este vorba despre faptul c noile
funcii hash nu ar fi bune, ci despre faptul c nu prea avem nevoie de
unul, a scris Schneier pe blog-ul su, dei dup anunul fcut de NIST el a
adugat c Keccak este o alegere bun.
Din punct de vedere practic, nu se cunoate s fie ceva n neregul cu
algoritmii pe care oamenii i folosesc n acest moment", afirm Ross
Anderson, un expert n securitate de la Universitatea din Cambridge.
Avnd n vedere faptul c nu exist nici o vulnerabilitate evident a SHA2, sistemele pot decide s utilizeze n continuare acest algoritm, mai
degrab dect s l schimbe, afirm el. SHA-2 este nc un algoritm bun,
dar poate SHA-3 ar fi mai eficient n unele situaii, afirm Van Assche.
Polk relateaz c NIST nu ncurajeaz pe nimeni s abandoneze SHA2 n favoarea SHA-3. Ei sunt ntr-adevr cei doi algoritmi foarte buni, iar
SHA-3 nu este mai bun dect SHA-2 pe toate planurile.

121

Tema 14. Semnturi digitale.


Semntura digital este o schem matematic pentru demonstrarea
autenticitii unui mesaj sau document electronic. O semntur digital
valid este un motiv de ncredere pentru destinatarul mesajului c acest
mesaj a fost creat de ctre un expeditor cunoscut, astfel nct el nu va putea
nega faptul trimiterii mesajului (autentificarea i non-repudierea) i c
mesajul nu a fost modificat n drum (integritatea). Semnturile digitale
sunt n general utilizate pentru distribuia de software, n tranzaciile
financiare, precum i n alte cazuri n care este important detectarea
falsificrii sau manipulrii.
Semntura electronica nu este o semntur scanat, pictogram, o poz
sau o holograma i nici nu este un smart-card.
O schem de semntur digital se bazeaz pe trei algoritmi:
algoritmul de selectare aleatoare a unei chei private care
se va asocia unei chei publice;
algoritmul de semnare care, aplicat unei chei private i
unui document digital, genereaz semntura digital;
algoritmul de verificare a semnturii digitale, care aplicat
cheii publice i semnturii digitale, accept sau respinge
mesajul de conformitate.
Semnturile digitale reprezint echivalentul electronic al semnturilor
de mn, acest concept fiind introdus ca funcionalitate adiional a
criptosistemelor cu cheie public de ctre Diffie i Hellman n 1976, n
absena unei scheme criptografice pentru acest scop. Obiectivul principal
de securitate pe care l asigur semnturile digitale l reprezint nonrepudierea, i anume faptul c o entitate odat ce a semnat o informaie nu
poate nega c a emis acea informaie i orice alt entitate neutr poate
verifica acest lucru. Semnturile digitale reprezint deci o valoare
numeric care leag coninutul unui mesaj de identitatea unei entiti. n
principiu, orice algoritm asimetric poate fi utilizat pentru crearea unei
semnturi digitale prin inversarea rolului cheii publice cu cea privat, iar
primele propuneri de semnturi digitale se gsesc n lucrrile lui Rivest,
Rabin i ElGamal. Subliniem c i algoritmi simetrici pot fi folosii pentru
a crea semnturi digitale de tip one-time dar acestea sunt rar utilizate n
practic.
Pentru o semntur digital sunt necesare dou proprieti de baz:
122

n primul rnd, o semntur generat dintr-un mesaj fix


i o cheie fix privat ar trebui s verifice autenticitatea
acestui mesaj utiliznd cheia public corespunztoare.
n al doilea rnd, ar trebui s fie imposibil de generat o
semntur valid pentru o entitate care nu posed cheia
privat.
Mai menionm cteva proprieti ale semnturilor digitale:
Trebuie s fie uor de calculat doar de ctre cel care
semneaz mesajul (funcia de semnare trebuie s fie uor
de calculat).
Trebuie s fie uor de verificat de ctre oricine (funcia de
verificare trebuie s fie uor de calculat).
Trebuie s dein o durat de via corespunztoare, adic
semntura s nu poat fi falsificat pn cnd nu mai este
necesar scopului n care a fost creat.
Precizm nc odat cele trei motive principale pentru care se
recomanda folosirea semnturilor digitale:
Autenticitatea. Dei documentele digitale pot s includ informaii
despre identitatea celui care le-a emis, aceste informaii pot s nu fie
corecte. Semntura digital poate fi folosit pentru autentificarea sursei
documentului. Atunci cnd dreptul de proprietate asupra unei semnturi
digitale aparine unei anumite persoane, semntura digital arat c
documentul a fost eliberat de ctre acea persoan. Importana acestui
aspect apare n dovedirea autenticitii documentelor digitale n context
financiar-contabil. De exemplu actele contabile ale unei firme sunt trimise
corect de ctre firma de contabilitate ctre administratorul firmei. Daca
acesta va modifica aceste acte ncercnd s schimbe informaiile financiare
sau orice fel de informaii transmise ca fiier PDF/A semnat electronic,
pentru a putea obine un credit de la o banc, n momentul n care banca
deschide acele documente, semntura electronic va fi invalidat, deci
firma de contabilitate nu va putea fi considerat responsabil de coninutul
documentului, persoana care a transmis documentul modificat nu va putea
fi urmrit n justiie pentru fals i uz de fals, iar banca va fi asigurat c nu
cade n capcana acordrii unui credit pe baza unor documente false.
Integritatea. Semntura digital aplicat unui document electronic
reprezint o garanie a integritii documentului atunci cnd este validat
123

de o autoritate public. Cheia aleatoare se creeaz pe baza unor criterii


multiple care includ printre altele i detalii despre coninutul documentului.
Orice modificare a coninutului unui document digital nseamn o cheie
aleatoare nou diferit de cheia aleatoare folosit pentru aplicarea
semnturii digitale. n clipa n care se solicit validarea documentului cele
dou chei aleatoare vor fi diferite, iar documentul se va putea considera ca
avnd coninutul alterat.
Imposibilitatea repudierii (non-repudiere). Odat ce este emis un
document digital semnat electronic, atta vreme ct semntura electronic
este valid pe documentul digital, autorul documentului nu i poate
declina rspunderea pentru coninutul documentului cu semntura
electronic valid. n plus, nu poate nega faptul c documentul a fost
semnat personal, deoarece legislaia n vigoare prevede faptul c
deintorul unei semnturi digitale nu are dreptul s nstrineze sau
mprumute token-ul (dispozitivul criptografic) pe care exist certificatul
digital calificat pe care l deine. Din acest punct de vedere, exemplul de
mai sus n care firma de contabilitate transmite documentele financiare
firmei pentru care le ntocmete, dac a comis greeli n ntocmirea acestor
acte, rmne responsabil pentru datele prezentate, cta vreme documentul
digital transmis poart o semntur valid.
Pentru o semntur digital a mesajului m de ctre entitatea A putem
folosi notaia SigA(m).
Exist dou categorii distincte de semnturi digitale:
Semnturi digitale cu recuperarea mesajului. La utilizarea acestor
semnturi mesajul poate fi recuperat direct din semntura digital. Cel mai
simplu exemplu de construcie este prin inversarea rolului cheii publice i
private n cazul schemei RSA. Pentru a evita fraudarea lor este obligatorie
aplicarea unei funcii de redundan asupra mesajului dup care semntura
propriu-zis se aplic asupra mesajului redundant.
Semnturi digitale cu anex (sau cu apendice). Acestea sunt semnturi
digitale din care mesajul nu poate fi recuperat, drept care este trimis
adiional ca anex la semntura digital. Se pot construi uor prin aplicarea
unei funcii hash asupra mesajului i semnarea hash-ului obinut. Datorit
eficienei computaionale n semnarea mesajelor de dimensiuni mari
(deoarece se semneaz efectiv doar hash-ul mesajului care are o lungime
fix pentru fiecare algoritm hash indiferent de lungimea mesajului), aceste
semnturi sunt cele mai utilizate n practic. Totodat orice semntur
124

digital cu recuperarea mesajului poate fi uor convertit n semntur cu


anex.

Figura 14.1. Schema unei semnturi digitale fr criptarea mesajului

Semnturile digitale de asemenea pot fi clasificate n semnturi


deterministe respectiv randomizate dup cum algoritmul de semnare
folosete valori aleatoare i nu returneaz aceeai semntur pentru acelai
mesaj de fiecare dat.
O alt clasificare a algoritmilor de semntur mai poate fi n algoritmi
de unic folosin (one-time) sau pentru folosire multipl (multiple-time).
S analizm n continuare cteva dintre schemele de semntur digital
aplicate n prezent.
Schema de semntur RSA
1. Generarea cheilor. Entitatea A execut urmtoarele n
conformitate cu algoritmul de generare a cheilor RSA:
Genereaz dou numere prime mari p i q;
Calculeaz n = pq i (n) = (p1) (q1);
Selecteaz aleator un numr ntreg e, 1< e < (n), astfel
nct cmmdc (e, (n)) = 1;
125

Calculeaz numrul ntreg d, 1< d < (n), astfel nct


ed = 1 (mod (n));
Cheia public a entitii A este perechea (e, n); cheia
privat este d sau (d, n).
2. Generarea semnturii. Entitatea A execut urmtoarele:
Calculeaz S = [H(m)]d (mod n), unde H este o funcie
hash;
Semntura mesajului m este S.
3. Verificarea semnturii. Pentru a verifica semntura S a mesajului
m, entitatea B execut urmtoarele:
Obine cheia public autentic (e, n) a entitii A;
Calculeaz H1=Se i H2 = H(m) (mod n). n cazul n care
H1 = H2 semntura e verificat, n caz contrar nseamn c
s-a ntmplat ceva n canalul de comunicaii sau A vrea s-l
nele pe B.
Exemplu.
Fie p = 53 i q = 61, dou numere prime secrete ale lui A.
Se calculeaz n =5361=3233 i (n)=(p1)(q1)=5260=3120.
Se alege o cheie secreta d = 71 (cmmdc(71, 3120) = 1).
Se calculeaz cheia public e = 791 (71d = 1 (mod 3120);
Se consider un document al crui rezumat S=H(m)=13021426.
Deoarece valoarea lui S depete mrimea modulului n =3233, se
va sparge acest rezumat n dou blocuri (1302 i 1426), pe care A
le va semna separat, folosind cheia privat d = 71:
(130271) mod 3233 = 1984;
(142671) mod 3233 = 2927;
Semntura electronic obinut este S = 1984 2927;
Se transmite S obinut la pasul anterior i M (textul clar fr
secretizare).
B primete pachetul S i M, dup care calculeaz H(M) n dou
moduri i le va compara:
o va calcula H(M) cu cheia public a lui A:
(130271) mod 3233 = 1984;
(142671) mod 3233 = 2927;
deci H1 = 1302 1426;
126

va calcula H(M) asupra mesajului primit (la fel cum a


procedat A):
H2 = H(M) = 1302 1426;
Deoarece H1 este identic H2 atunci cu siguran semntura este
valid.
o

Schema de semntur ElGamal


Schema de semntur ElGamal a fost propus de ElGamal mpreun
cu schema de criptare cu chei publice.
1. Generarea cheilor. Fiecare entitate genereaz cheia public i cheia
privat corespunztoare.
Entitatea A execut urmtoarele:
Genereaz un numr prim mare p i un generator al grupului
multiplicativ Zp*;
Selecteaz aleator un numr ntreg a astfel nct 1 a p2;
Calculeaz y = a mod p.
Cheia public a entitii A este (p, , y); cheia privat este a.
2. Generarea semnturii. Entitatea A semneaz un mesaj binar m de o
lungime arbitrar.
Pentru aceasta, entitatea A execut urmtoarele:
Selecteaz aleator un numr ntreg secret k, 1 k p 2, astfel
nct cmmdc(k, p 1) = 1;
Calculeaz r = k mod p i k 1 mod (p 1);
Calculeaz s = k 1 (H(m) ar) mod (p 1), unde H este o funcie
hash;
Semntura mesajului m este perechea (r, s).
3. Verificarea semnturii.
Pentru a verifica semntura (r, s) a mesajului m, entitatea B
execut urmtoarele:
Obine cheia public autentic (p, , y) a entitii A ;
Verific dac 1 r p 1 (dac aceast inegalitate nu are loc,
semntura (r, s) nu e valid);
Calculeaz v1 = y r r s mod p;

Calculeaz H(m) i v2 = H ( m ) mod p, unde H este o funcie hash;


Semntura (r, s) este acceptat dac i numai dac v1 = v2.
127

Exemplu.
A genereaz numrul prim p=2357 i generatorul =2 al grupului
Z*2357;
A alege cheia privat a = 1751 i calculeaz
y = a mod p = 21751 mod 2357 = 1185.
Cheia public a lui A este (p = 2357, = 2, y = 1185), iar cheia sa
privat este a = 1751.
Pentru a semna mesajul m cu H(m) =1463, A selecteaz aleator un
ntreg k =1529, calculeaz
r = k mod p = 21529 mod 2357 = 1490 i
k 1 mod (p 1) = 245;
A calculeaz s=245(146317511490) mod 2356=1777;
semntura mesajului m = 1463 este perechea (r =1490, s =1777);
Pentru verificarea semnturii, B calculeaz
v1 = 1185 1490 1490 1777 mod 2357 = 1072 ,
H(m) =1463 i
v2 =21463 mod 2357=1072;
Entitatea B accept semntura deoarece v1 = v2.

Standardul DSS (Digital Signature Standard) de semntur digital


DSA este algoritmul de semntur digital al standardului DSS,
elaborat de NIST n august 1991. Este un standard foarte controversat n
literatura de specialitate deoarece este destinat s nlocuiasc standardul
de facto al domeniului, RSA. Algoritmul SDA se bazeaz pe un aparat
matematic derivat din metoda ElGamal, gardul de securitate al su fiind
bazat la fel pe problema dificultii calculului logaritmilor ntr-un cmp
finit.
1. Generarea cheilor. Fiecare entitate genereaz cheia public i cheia
privat corespunztoare.
Entitatea A execut urmtoarele:
Genereaz un numr prim q astfel nct 2 159 < q < 2 160 ;
Genereaz un numr prim p astfel nct 2512 p < 21024 i q|(p 1) ;
Selecteaz un generator pentru grupul ciclic Zp de ordin q;
Alege un element g Zp* i calculeaz = g(p1)/q mod p;
dac = 1, atunci alege alt element g;
128

Se selecteaz un numr ntreg a astfel nct 1 a q 1 ;


Se calculeaz y = a mod p;
Cheia public a entitii A este (p, q, , y), iar cheia privat este a.
2. Generarea semnturii. Entitatea A semneaz un mesaj m astfel:
Selecteaz aleator un numr ntreg k astfel nct 0 < k < q;
Calculeaz r = ( k mod p) mod q.
Calculeaz k 1 mod q;
Calculeaz s = k 1 (H(m) + ar) mod q, unde H este o func
hash;
Semntura mesajului m este perechea (r, s).
3. Verificarea semnturii. Pentru a verifica semntura (r, s) a mesajului
m, entitatea B execut urmtoarele:
Obine cheia public autentic (p, q, , y) a entitii B;
Verific dac 0 < r < q i 0 < s < q. Dac aceste inegaliti nu au
loc, semntura (r, s) nu e valid;
Calculeaz w = s 1 mod q i H(m);
Calculeaz u1 = wH(m) mod q i u2 = rw mod q;

Calculeaz v = ( u 1 y 2 mod p ) mod q;


Semntura (r, s) a mesajului m este acceptat dac i numai dac
v = r.
Exemplu.
Entitatea A genereaz numerele prime p=124540019 i q=17389,
astfel nct q | p 1;
A selecteaz g = 110217528 Zp* i calculeaz
= g 7162 mod p = 10083255;
A selecteaz un numr ntreg a = 12496 astfel nct 1 a q 1 i
calculeaz
y = a mod p = 10083255 12496 mod 124540019 = 19946265;
Cheia public a lui A este
(p, q, , y) = (124540019, 17389, 10083255, 119946265) ;
Cheia privat a lui A este a = 12496.
Pentru a semna un mesaj m:
A alege aleator un numr ntreg k = 9557 i calculeaz
r = ( k mod p) mod q;
u

129

r = (10083255 9557 mod 124540019) mod 17389 =


=27039929 mod 17389=34.
A calculeaz
k 1 mod q=7631,
H(m)=5246 i apoi
s=7631(5246+1249634) mod q = 13049.
Semntura mesajului m este perechea (r, s)= (34, 13049).
Pentru a verifica un mesaj, entitatea B:
Obine cheia public autentic (p, q, , y) a entitii B;
Verific dac 0 < 34 < 17389 i 0 < 13049 < 17389. Dac aceste
inegaliti nu ar avea loc, semntura (r, s) nu ar fi fost valid;
Calculeaz w = s 1 mod q =1799;
Calculeaz
u1 = wH(m) mod q = 52461799 mod 17389 = 12716
u2 = rw mod q = 341799 mod 17389=8999;
u
u
B calculeaz v = ( 1 y 2 mod p ) mod q :
(10083255 12716 119946265 8999 mod 124540019) mod 17389 =
=27039929 mod 17389 = 34.
Deoarece v = r, B accept semntura.

130

Figura 14.2. Schema unei semnturi digitale fr criptarea mesajului

n exemplele de mai sus documentul a fost trimis fr a fi criptat,


fiind necesar numai semntura digital. n cazul n care este necesar,
textul clar este criptat cu unul dintre sistemele de criptare i se trimite lui B
textul cifrat mpreun cu semntura digital, dup care B l descifreaz cu
cheia respectiv apoi efectueaz verificarea semnturii, avnd deja textul
clar. n Figura 14.1 este prezentat schema aplicrii semnturii digitale fr
criptarea mesajului, iar n Figura 14.2 cu criptarea acestuia.

131

Tema 15. Atacuri criptografice


Aa cum nu exist bine fr ru, sau noapte fr zi aa i nu avem
criptografie fr criptanaliz.
Criptanaliza este tiia spargerii cifrurilor i ce se ocup de obinerea
valorii iniiale a informaiei criptate fr a avea acces la informaia secret,
adic la cheia necesar pentru acest lucru.
Persoana care se ocup cu criptanaliza se numete Criptanalist.
Rezultatul criptanalizei unui cifru concret se numete atac criptografic
asupra cifrului dat. Atacurile criptografice sunt concepute pentru a
submina securitatea algoritmilor de criptare i utilizate pentru a ncerca
decriptarea datelor fr a acces prealabil la cheie.
Scopul metodelor de criptanaliz este descoperirea mesajelor n clar
i/sau a cheii din mesajul criptat. Orice cifru este creat n scopul de a
asigura confiden
ind din acest
concept, ntotdeauna se vor gsi oamnei care doresc s obin accesul la
informaia dat.
Orice ncercare de ob
a textului n clar din textul criptat, fr a
de
, este considerat drept atac criptanalitic. Analiza
132

criptografic studiaz metode de atac pornind de la informaii minimale


despre cheile de criptare, algoritmii utiliza
e autentificare,
segmente de text clar i segmentele corespondente din textul criptat, sau
doar pe baza unuia sau a unui set de texte criptate utiliznd acelai
algoritm.
n esen , se ncearc determinarea unui punct vulnerabil al
algoritmului, care s poat fi exploatat folosind metode pentru care timpul
de cutare s fie considerabil mai mic dect timpul necesar verificrii
tuturor combina
a brut).
Nu exist nc un sistem criptografic despre care s se poat afirma c
este pe deplin sigur, dar pot fi considerate sigure acele criptosisteme
pentru care atacurile cunoscute necesit un timp mult prea ndelungat
pentru a putea fi considerate practice. n continuare sunt descrise pe scurt,
cele mai cunoscute atacuri, demonstrate i verificate de matematicieni,
informaticieni i criptanaliti.
Se cunosc mai multe tipuri de atacuri criptografice. O categorie aparte
sunt atacurile bazate pe for. Acestea sunt atacurile ce se realizeaz prin
for brut (brute force), adic aplic o metod exhaustiv de cutare prin
ncercarea tuturor combinaiilor posibile fie de chei de criptare, fie de
simboluri din text pentru deducerea textului n clar (de exemplu, la
metodele de criptare prin substituia sau transpoziia literelor din mesaje de
tip text). Complexitatea acestui atac este n funcie de cantitatea tuturor
variantelor posibile.
Acest tip de atac este unul genereal, adic poate fi aplicat la orice
algoritm de criptare. Din acest motiv n elaborarea sistemelor de criptare
autorii ncearc s obin ca acest atac s fie cel mai eficient, comparativ
cu celelalte metode de spargere. Sistemul se proeicteaz astfel nct fora
brut s aib un spaiu al soluiilor suficient de voluminos pentru ca
rezultatul aplicrii forei brute s nu fie obinut pe percursul a ctorva ani,
sau uneori i secoole.
n baza complexitii aplicrii forei brute se face evaluarea securitii
sistemului. n particular, cifrul se consider sigur dac nu exist o metod
de spargere semnificativ mai rapid dect fora brut.
Atacurile criptografice bazate pe fora brut sunt cele mai universale,
dar i cele mai ndelungate. n legtur cu aceasta exist deja i se mai
elaboreaz ncontinuu posibiliti de optimizare a metodei forei brute.
Printre aceste metode optimizate se numr urmtoarele:
133

Metoda ramific i mrginete (Branch and Bound method);


Metoda calculelor paralele (Parallel calculation method);
(Rainbow tables method).
Metoda ramific i mrginete reprezint un algorim de cutare a
soluiilor optine pentru diverse probleme. Esena lui const n separarea
submulimii de soluii admisibile care nu conine soluii optime. Metoda a
fost propus pentru prima dat de ctre A. H. Land i A. G. Doig n 1960
pentru programarea discret.
Calculul paralel este execu
procesoare a
acelora
rezolvrii mai rapide a unei probleme, de obicei special adaptat sau
subdivizat. Ideea de baz aici const n divizarea mulimii soluiilor n N
submulimi, fiecare din ele fiind mult mai mic dect originalul, astfel
realizarea forei brute va necesita de n ori mai puin timp, n funcie de
numrul de submulimi ale partiiei fcute. Problema fundamental aici
const n determinarea i divizarea mulimii soluiilor. Fora brut se
aplic pn cnd un procesor nu a gsit soluia (cheia) necesar.
Ideia metodei Rainbow tables const n determinarea prealabil a
spaiului cheilor ntr-o form comprimat. Acest spaiu comprimat va
conine o colec
cu proprieti de checkpoint (punct de
control). Atunci cnd determinm spa
al cheilor, selectnd
punctele de control, se identific o colec
de chei (cteva
miliarde), despre care se tie c conin cheia cutat. Pentru restabilirea
cheii la valoarea dat a funciei hash se palic o funcie de reducere i se
face cutare an tabel. Dac nu sunt gsite coincidene se aplic din nou
funcia hash i funcia de reducre. Procesul continu pn cnd nu se
gsete o coinciden. Dup gsirea acestei coincidene se restabilete irul
care o conine pentru a determina valoarea omis care i este cheia cutat.
Aadar cutarea cheii cu tabele curcubeu const din dou etape; n
primul rnd, ncepem cutarea pentru a gsi un punct de control, i apoi,
n al doilea rnd, cutam cheile definite de punctul de control pentru a gsi
cheia cutat.
Avantajul fa de fora brut este c pot fi create mai multe puncte de
control, i, prin urmare, procesul de cutare va nimeri unul dintre aceste
puncte de control mult mai repede dect am atepta pn cnd nimerim
peste cheia
singuratic. Desigur aici un dezavantaj este faptul c
134

punctele de control trebuie s fie pre-calculate i stocate. Deci trebuie


gsit un compromis ntre timpul de cutare i memoria de stocare - timpul
de cutare se reduce prin mrirea numrului de puncte de control ns cu
preul mririi costului de pre-calcul i de stocare a tabelelor.
Tabelele curcubeu pot fi folosite de asemena i la spargerea
diverselor parole transformate cu ajutorul funciilor hash dificeil de
inversat.
n tabelul 15.1 este prezentat dependena timpului de spargere prin
fora brut de lungimea cheii (sau a parolei). n acest tabel este artat
timpul aproximativ pentru verificarea tuturor variantelor posibile ale unei
chei ce poate fi alctuit din 36 caractere (26 litere i 10 cifre) cu viteza de
prelucrare de 100000 de variante pe secund. Dac ns se vor aduga
litere din ali regitri timpul va crete de cteva ori. Din tabel putem
observa c cheile de lungime mai mic dect 8 sunt foarte vulnerabile la
fora brut.
Lungime cheie
(caractere)
1
2
3
4
5
6
7
8
9
10
11
12

Variante
posibile
36
1296
46656
1679616
60466176
2176782336
78364164096
2,82110991012
1,01559951014
3,65615841015
1,31621701017
4,73838131018

Timpul de atac
<1s
<1s
<1s
17 s
26 s
6 ore
9 zile
11 luni
32 ani
1162 ani
41823 ani
1505615 ani

Tabelul 15.1. Timpul necesar pentru atacul n for brut


De rnd cu fora brut se mai aplic i metodele statistice de atac.
Aceste metode se divizeza n dou subcategorii:
metode de criptanaliz a proprietilor statistice ale gamei de
criptare;
135

metode de criptanaliza a complexitii irului.


Prima subcategorie studiaz irurile la ieirea algoritmilor de criptare.
n acest caz criptanalistul cu ajutorul diverselor teste statistice ncearc s
gseasc valoarea urmtorului bit al irului cu o probabilitate mai mare
dect probabilitatea alegerii aleatoare.
n cazul al doilea criptanalistul ncearc s genereze iruri analogice cu
gama ns aplicnd metode mult mai simple.
Din diversitatea de tipuri i metode cel mai cunnoscute de atac
criptografic, demonstrate, verificate i aplicate de matematicieni,
informaticieni i criptanaliti punem meniona atacurile cu text clar sau
text cifrat:
Atac cu text cifrat (ciphertext-only attack) interceptat, prin analiza
cruia se ncearc gsirea textului original sau a cheii de criptare.
Acest atac se bazeaz pe informaii referitoare la secvene de text
cifrat i este una dintre cele mai dificile metode criptografice din
cauza informaiei sumare pe baza creia trebuie s se deduc
informaii referitoare la textul clar sau la chei.
Atac cu text clar cunoscut (known plaintext attack), este un atac n
care criptanalistul are acces nu doar la textul cifrat, ci i la textul
clar corespunztor. El ncearc s descopere o corela
dou pentru a gsi cheia de criptare sau pentru a crea un algoritm
care i va permite s descifreze orice mesaje criptate cu aceast
cheie. Textele n clar necesare pentru acest atac pot fi obinute prin
diverse metode, de exemplu dac se cunoate c se trimte un fiier
cifrat cu un nume tiut, atunci din extensia fiierului se pot face
concluzii despre coninutul anumitor fragmente ale fiierelor, de
exemplu a heeder-ului. Acest atac este mai puternic dect atacul cu
text cifrat.
Atac cu text cifrat ales (chosen ciphertext attack), este un atac n
care criptanalistul alege un text cifrat i ncearc s gseasc
textul clar potrivit. Acest lucru se poate face cu o decriptare oracul
(o main care decripteaz fr a demasca cheia). Atacul este
aplicat la criptarea cu cheie public se ncepe cu un text cifrat i
cutri de potrivire de date ale textului clar postate public.
Atac cu text clar ales (chosen plaintext attack), este un atac n care
criptanalistul poate cripta un text clar la alegerea sa i studia
136

textul cifrat rezultat. Scopul criptanalistului este acelai cala atacul


cu text clar cunoscut: de a afla cheia de criptare sau de a gsi o alt
metod pentru descifrarea mesajelor cifrate cu aceeaai cheie. ns
criptanalistul trebuie s mai aib posibilitatea de a alege cteva
texte n clar i s obin rezultatul cifrrii lor. Obinerea textului
cifrat respectiv pentru textul clar dat uneori se poate face prin
crearea i transmiterea unui mesaj necifrat n numele unia din
utiliaztoriicare folosesc criptarea. n cazul coincidenii unor factori
acest mesaj poate fi cifrat i retransmis napoi. Acest atac este cel
mai des utilizat n criptografia asimetric, n cazul n care
criptanalistul are acces la o cheie public.
Atac cu text clar ales adaptiv (adaptive chosen plaintext attack),
este un caz particular, mai confortabil, al atacului cu text clar ales.
Confortul atacului const n faptul c pe lng posibilitatea alegerii
textului clar, criptanalistul poate lua decizia de a cifra un careva
text clar n baza operaiilor de cifrare deja efectuate. Cu alte
cuvinte la realizarea atacului cu text clar ales criptanalistul alege
doar un bloc mare al textuli clar pentru a fi cifrat i apoi, n baza
datelor obinute ncepe spargerea sistemului. n cazul organizrii
atacului cu text clar ales adaptiv criptanalistul poate obine
rezultatul cifrrii oricrui bloc al textului clar pentru a acumula
datele care l intereseaz i care vor fi luate n seam la alegerea
ulterioar a blocurilor textului clar etc. Anume adaptiviattea
(posibilitatea feedback-ului) i d un avantaj atacului cu text calr
ales adaptiv.
Atac cu text cifrat ales adaptiv (Adaptive Chosen Ciphertext
Attack), este un atac analogic atacului cu text clar ales adaptiv.
n continuare vom meniona alte tipuri i metode de tac utilizate n
prezent.
Atacul cu chei alese (Chosen key attacks) n care atacatorul nu
posed informaii complete despre chei ci doar cteva informaii disparate
despre relaiile dintre nite chei. Acest tip de atac se bazeaz pe faptul c
criptanalistul poate analiza activitatea algoritmului de criptare, care
utilizeaz mai multe chei. Criptanalistul ini
exact a cheilor, dar el
care relaioneaz
cheile. Un exemplu poate fi cazul n care criptanalistul a constatat c n
137

ultimii 80 de bi a tuturor cheilor sunt aceleai, dei valorile acestor


bi
Este un atac foarte puin folosit i aproape
impracticabil.
Atacul de tip dicionar (dictionary attack) este o metod criptanalitic
n care atacatorul pregtete i memoreaz un tabel cu corespondene text
clar - text criptat de tipul perechilor (Pi Ci = EKi (P), Ki) sortate dup Ci.
Ulterior, atacatorul monitorizeaz comunicaia i n momentul n care va
gsi un text criptat Cj care se regsete n tabelul su va gsi imediat cheia
de criptare K j .
Atacul zilei de natere (Birthday attack), se bazeaz pe cunoscutul
paradox al zilei de natere i a variantelor sale (ntr-un grup de 23 de
persoane, probabilitatea s existe dou dintre ele nscute n aceeai zi din
an este peste 0,5; n general, ntr-un grup de k numere aleatoare avnd k
valori posibile, probabilitatea ca cel puin dou s fie egale este n jur de
0,5). Problema poate fi astfel generalizat: dac o funcie f: A B poate
lua oricare din cele n valori din mulimea B cu probabiliti egale, atunci
dup calculul funciei pentru n valori diferite este foarte posibil s gsim
o pereche de valori x1 i x2 astfel nct f(x1) = f(x2). Evenimentul reprezint
o coliziune (Bellare i Kohno, 2004), iar pentru funcii cu distribu
impar, coliziunea poate aprea i mai devreme. Semntura digital este
susceptibil de a fi supus unui astfel de atac.
Atac cu ntlnire la mijloc (Meet-in-the-middle attack) este similar cu
atacul zilei de natere, cu excepia faptului c n acest caz analistul are o
flexibilitate mai mare. n loc s atepte coincidena a dou valori ntr-o
singur mulime de date, analistul poate cuta o intersecie a dou mulimi.
Presupunem c atacatorul cunoate o mulime de texte n clar P i
texte criptate C cu cheile k1 i k2. Atunci el poate calcula EK(P) pentru
toate cheile posibile K i s memoreze rezultatele, apoi poate calcula
DK(C) pentru fiecare K i s compare cu rezultatele memorate - dac va
gsi o coinciden este ca i cum ar fi gsit cele dou chei i poate verifica
direct pe textul n clar i cel criptat. Dac dimensiunea cheii este n, atacul
va folosi doar 2n+1 criptri n contrast cu un atac clasic, care ar avea nevoie
de 22n criptri.
Atacul omului din mijloc (Man-in-the-middle attack) descrie situaia
cnd un atacator are posibilitatea s citeasc i s modifice mesajele
138

schimbate ntre doi corespondeni fr ca cele dou pri s sesizeze faptul


c metoda de comunicare ntre ei a fost compromis.
Atacul ncepe de obicei cu ascultarea canalului i se termin cu
ncercarea criptanalistului de a nlocui mesajul interceptat, extragerea
informaiilor utile din el, redirecionarea mesajului la unele resurse externe.
Fie c subiectul A planific transmiterea spre subiectul B a unei informaii
oarecare. Subiectul C posed cunotine despre structura i proprietile
metodei de transmitere a datelor, precum i a nsui faptului transmiterii
acelei informaii pe care intenioneaz s o intercepteze (de exemplu cheia
privat). Pentru svrirea atacului C se prezint lui A drept B, iar lui B
dreptA. Subiectul A consider eronat c transmite informaia lui B i o
trimite lui C, care la rndul su efectueaz unele operaii cu ea (o copiaz
sau o modific n scopuri personale) i o transmite lui B. Ultimul consider
c informaia a fost primit direct de la A.
Posibilitatea unui astfel de atac rmne o problem serioas pentru
sistemele bazate pe chei publice.
Atacul n reluare (replay atack) este un atac n care atacatorul
memoreaz o sesiune de comunicare n ambele sensuri (mesajele
schimbate de ambii corespondeni) sau buci din sesiune (Schneier, 1996)
i (Menezes i colab., 1996). Ideea atacului nu este de a decripta o sesiune
de comunicare, ci de a crea confuzii i mesaje false.
Atacul cu chei relaionate (related keys attack). n acest caz atacatorul
descoper o relaie ntre un set de chei i are acces la funciile de criptare
cu astfel de chei relaionate. Scopul declarat este de a gsi chiar cheile de
criptare (Knuth 1998; Biham, 1994). Algoritmi ca IDEA, GOST, RC2 i
TEA au prezentat slabiciuni cand au fost supuse atacului (Kelsey i
colab., 1996; 1997).
Atacul prin alunecare (slide attack) poate fi vzut ca o variant a
atacului cu chei relaionate n care relaiile sunt definite pe aceeai cheie.
Atacul este eficient n cazul unor procese iterative sau recursive (algoritmi
simetrici de tip ir sau bloc) care prezint grade de similitudine ntre
cicluri succesive ale procesului iterativ (Biryukov i Wagner, 1999;
2000). Complexitatea atacului este independent de numrul de cicluri ai
algoritmului. Slbiciuni n cazul acestui atac au fost relevate n algoritmul
Feistel i chiar n cazul SHA-1 (Saarinen, 2003).
Atacul de corelaie (correlation attack) se efectueaz asupra
generatorului de filtrare din cifrurile ir bazate pe generatoare de tip LFSR
139

(Linear Feedback Shift Register), n dou faze: nti se determin o funcie


ntre irul de bii cheie generat i biii tregistrului de deplasare, dup care
irul de chei este interpretat ca o versiune afectat de zgomot a irului
generat de LFSR.
Siegenthaler a dezvoltat versiunea original a atacului de corelaie
care presupune o cutare exhaustiv aplicat n toate fazele LFSR-ului
pentru a gsi cel mai nalt grad de corelaie (Seigenthaler, 1985). Meier
i Staffelbach au artat ulteriorc tehnicile de reconstrucie iterative sunt
mult mai rapide, n special cnd funcia de combinare este un polinom de
grad mic (Meier i Staffelbach, 1988), iar Mihaljevic i Golic stabilesc
condiiile n care acest tip de atac rapid de corelaie converge (Mihajevici
i Golic, 1992).
Atacul de corelaie rapid (fast correlation attack) se aplic
generatoarelor de chei bazate pe LFSR, ca i atacul de corelaie, dar sunt
mai rapide i exploateaz existena unei corelaii ntre irul de chei i
ieirea unui LFSR, numit LFSR int, a crui stare iniial depinde de
anumii bii ai cheii secrete (Meier i Staffelbach, 1988).
Atacurile de corelaie rapid evit examinarea tuturor iniializrilor
posibile ale LFSR-ului int folosind anumite tehnici eficiente de corectare
a erorii. Astfel, descoperirea strii iniiale a LFSR-ului const n
decodarea subirului de chei relativ la codul FSR-ului (Johansson i
Jonsson, 1999; 2000).
Atacul prin interpolare (interpolation attack) este o tehnic de atac
asupra cifrurilor simetrice bloc construite din funcii algebrice simple.
Dac textul criptat este scris ca un polinom, funcie de elementele textului
clar i gradul polinomului este suficient de mic, atunci un numr limitat de
perechi de text clar/criptat sunt suficiente pentru determinarea funciei de
criptare. Acest lucru permite atacatorului s cripteze sau s decripteze
blocuri de date fr a recupera propriu zis cheia de criptare. Atacul a fost
introdus n 1997 i aplicat prima dat pe o variant a algoritmului SHARK
(Jakobsen i Knudsen, 1997), un predecesor al algoritmului Rijndael.
Acest tip de atac poate fi generalizat, astfel c ideea interpolrii poate fi
aplicat i n cazul unor polinoame probabilistice (Jakobsen, 1998).
Atacul divide i cucerete (divide and conquer attack). Atacurile
din aceast categorie ncearc diviziunea cheilor n buci mai mici, pentru
a face posibil cutarea exhaustiv. Acest tip de atac este eficient n
msura n care este posibil s determinm buci separate din chei.
140

Problema const n validarea sau invalidarea unui segment de cheie, fr a


avea informaii despre restul cheii.
Atacul
temporal (timing attack). Durata de execuie a unui
echipament hardware de criptare poate furniza informaii despre parametrii
implicai astfel nct analiza atent i msurarea timpului de execuie
poate duce, n anumite condi
la recuperarea cheilor secrete (Kocher,
1996). Pentru a putea realiza un astfel de atac, atacatorul are nevoie de un
set de mesaje mpreun cu durata lor de procesare pe echipamentul
criptografic. Metodele de msurare a timpului sunt diverse: monitorizarea
activitii procesorului, msurarea timpului ntr-o secven de
interogare/rspuns etc. Atacul a fost aplicat algoritmilor RSA (Schindler
i colab., 2001) i RC5 (Handschuh i Heys, 1998), dar i unor
protocoale de internet de tipul SSL (Canvel i colab. 2003).
n continuare sunt expuse dou tehnici de criptaniliz - criptanaliza
liniar i criptanaliza diferneial - care la momnetul actual sunt unele
dintre cele mai rspndite metode de spargere a cifrurilor bloc.
Criptanaliza liniar (linear cryptanalisis) este o tehnic introdus de
Matsui si Yamagishi n 1991 (A new Method for known plain text attack of
FEAL cipher) care ncearc s exploateze apariiile cu probabilitate mare
ale expresiilor liniare ce implic bii de text clar, bii de text criptat i bii
ai subcheilor. n acest caz se presupune c atacatorul cunoate un set
aleator de texte clare, precum i textele criptate corespunztoare. Se aplic
algoritmilor simetrici, de tip bloc (Matsui, 1993) i a fost utilizat cu
succes n criptanaliza algoritmului DES (Matsui, 1994). Sunt elaborate
atacuri pentru cifrurile bloc i cele de tip flux. Descoperirea criptanalizei
liniare a constituit un imbold pentru elaborarea noilor scheme de criptare.
Criptanaliza liniar este o tehnic prin care se urmrete construcia
unui sistem de ecuaii liniare ntre biii textului clar, ai textului cifrat i ai
cheii. Rezolvarea acestui sistem de ecuaii duce la aarea cheii de cifrare.
Sistemul de ecuaii ce se construiete poate chiar un sistem probabilist, n
sensul c o ecuaie este vericat cu o anumit probabilitate.
Criptanaliza se face n dou etape. Prima - construirea rela
textul clar, textul cifrat i cheie, care sunt adevrate cu o probabilitate
mare. A doua - utilizarea acestor rela
cu perechile cunoscute
de text clar i text cifrat pentru obinerea bi lor cheii.
Sensul a algoritmului este de a ob
a:
141

Pi1 Pi 2 ... Pim C j1 C j 2 ... C jn = Pl1 K l 2 ... K lq (*),

Unde Pn, Cn, Kn sunt biii de ordin n respecriv ai textului clar, textului
cifrat i ai cheii.
Aceste relaii sunt numite aproximri liniare. Pentru bi i alei aleator
ai textului clar, textului cifrat i ai chei probabilitatea p ca aceast relaie
s fie just este aproximativ egal 0,5. Pentru spargerea algoritmului
alegem astfel de relaii care au probailitatea respectiv semnificativ diferit
de 0,5
Mai nti criptanalistul gsete o relaie oarecare pe o singur rund
pe care ncearc s o extind asupra ntregului algoritm. Sunt elaborai
algoritmi pentru gsirea relaiilor utile de acest fel. Doi algoritmi de acest
fel au fost descrii de ctre Mitsuru Matsui, al
mai trziu .
n cifrurile bloc analiz se concentreaz n principal pe S-boxe,
deoarece acestea sunt parte a non-liniaritii cifrului. Cea mai eficient
relaie pe o rund pentru algoritmul DES utilizeaz proprietatea boxei S5.
Al doilea bit de intrare al boxei bi
ul XOR dintre to
de ieire cu probabilitatea de 3/16 (cu o deplasare de 5/16 de la 1/2). Iar
pentru DES-ul complet este cunoscut o rela
se ndeplinete cu
probabilitatea 1/2 + 224.
Criptanaliza liniar posed o caracteristic foarte util - n anumite
condi , este posibil s se reducraportul dintre (*) la o ecua
:
C j1 C j 2 ... C jn = Pl1 K l 2 ... K lq .
Aici nu sunt bi i textului clar, deci este posibil s se construiasc atacul
numai cu textul cifrat. Acest atac este cel mai practic.
Experimentele efctuate de Mitsuru Matsui cu atacul cu text clar
(calculele au fost efectuate pe HP9750 66MHz) au dat urmtoarele
rezultate:
DES cu 8 runde se sparge cu 221 texte n clar cunoscute. Matsui a
avut nevoie de 40 secunde.
DES cu 12 runde se sparge cu 233 texte n clar cunoscute. Au fost
necesare 50 de ore.
Pentru un DES 16 runde a fost necesare 247 texte n clar cunoscute.
Acest atac nu este, de obicei, practic. Cu toate acestea, metoda este
mai rapid dect cutarea exhaustiv pentru cheia de 56 bii.
Tehnologiile moderne ale calculatoarelor sunt capabile s sparg cifrul
dat mult mai rapid.
142

Deseori metoda de criptanaliza liniar este utilizat mpreun cu atacul


forei brute un brute force" - dup ce un anumit numr de bi ai cheii au
fost gsii de criptanaliza liniara se face o cutare exhaustiv pentru toate
valorile posibile ale celorlalte bi
sunt
necesare 243 texte n calr.
La momentul actual pentru orice cifru nou este necesar de demonstrat
c el este rezistent la criptanaliza liniar.
Criptanaliza diferenial (diferential cryptanalysis) este o tehnic
introdusa de Biham i Schamir prima dat n 1991 i concretizat pentru
DES n ,,Diferential Cryptanalysis of the Data Encryption Standard
publicat n 1993. Tehnica face parte din categoria atacurilor cu text clar
ales. n general dandu-se perechea ( D, D ), numit caracteristic, tehnica
const n generarea de texte clare (P1, P2) cu D = P1 P2 astfel incat
D = C1 C2 i aflarea unei pri a cheii, restul fiind cautata exhaustiv.
Operatia ,, este operaia de grup care, spre exemplu n cazul cifrurilor
bloc, const n adunarea cheii de runda.
Criptanaliza diferenial exploateaz apariiile cu mare probabilitate a
diferenelor din textele clare, precum i a diferenelor aprute n ultimul
ciclu al criptorului n care atacatorul poate selecta intrrile i examina
ieirile n ncercarea de a deduce cheia.
Sunt cunoscute cteva modele de criptanaliz diferential:
1. Criptanaliza diferenial clasica;
2. Criptanaliza diferenialelor trunchiate;
3. Criptanaliza diferenialelor imposibile;
4. Criptanaliza diferenialelor de ordin superior;
5. Criptanaliza diferenial-liniara;
Criptanaliza diferentiala clasic permite pe baza perechilor de text
clar/text cifrat ;i a diferentialelor acestora, aflarea ultimei chei de runda.
Pentru diferentiala (, ) n runda (r 1) se realizeaz paii (Figura 15.1,
URNG - Uniformly Random Number Generator):
1. Selecteaz aleatoriu textul clar X(1) i calculeaz X *(1) astfel
ncat X(1) = X(1) + X*(1) = . Se cifreaza X(1) i X*(1).
2. Presupunnd c Y(r1) = , cutm toate valorile subcheii
z(r) consistente cu Y(r-1) i textele cifrate Y(r) i Y*(r). Se
incrementeaz frecvena de apariie a acestor subchei.
143

3. Se repet (1) i (2) pn cnd o anumit cheie are o frecven


semnificativ mai mare dect a celorlalte. Aceasta subcheie z(r)
este cheia ultimei runde.

Figura 15.1. Schema criptanalizei difereniale


Criptanaliza diferenialelor trunchiate (truncated differential
cryptanalysis) este o generalizare a criptanalizei diferen le. Lars
Knudsen a dezvoltat tehnica n 1994. n timp ce criptanaliza diferentiala
clasic analizeaz diferen
ntre dou texte, varianta trunchiat
consider diferen
ial. Prin urmare, acest
atac poate prezice doar unele valori ale bi
i nu a ntregului bloc.
Aceasta tehnica a fost aplicata la cifrurile bloc SAFER, IDEA, Skipjack,
E2, Twofish, Camellia, CRYPTON, i chiar la cifrul flux Salsa20.
Criptanaliza diferenialelor imposibile (impossible differential
cryptanalysis) este o form de criptanaliza diferen
pentru cifrurilor
bloc. n timp ce criptanaliza diferential clasic urmre
se propag prin cifru cu o probabilitate mai mare dect se atepta,
criptanaliza diferen
elor imposibile exploateaz diferen
imposibile (cu probabilitatea 0) la o stare intermediar a algoritmului de
criptare.
Lars Knudsen pare a fi primul care a folosit o forma a acestui atac,
ntr-o lucrare n 1998, unde a prezentat DEAL candidatul su la AES.
Prima prezentare care a atras aten

e a fost mai
trziu n acelai an, la conferina CRYPTO'98, n care Eli Biham, Alex
Biryukov, i Adi Shamir a introdus definiia diferen
e imposibile i
au folosit tehnica dat pentru a sparge cifrul IDEA i Skipjackc cu un
numr redus de runde. Tehnica a fost aplicat mai trziu i la multe alte
144

cifruri: Khufu i Khafre, E2, variante ale Serpent, MARS, Twofish,


Rijndael, CRYPTON, Zodiac, Hierocrypt-3, TEA, XTEA, Mini-AES,
ARIA, Camellia, and SHACAL2.
Biham, Biryukov i Shamir a prezentat, de asemenea, o metod
special relativ eficient pentru a gsi diferen iale imposibile care au
numit-o atac miss-in-the-middle. Aceasta const n a gsi dou
evenimente de probabilitate unu, ale cror condi
concomitent.
Criptanaliza diferenialelor de ordin superior este o generalizare a
criptanalizei diferen
i este de fapt aplicarea recursiva a diferentialei.
Dezvoltat n 1994 de catre Lars Knudsen, tehnica a fost aplicat asupra
unui ir de cifruri. n timp ce criptanaliza diferential clasic analizeaz
diferen
texte, varianta de ordin superior analizeaz
diferen
. n unele cazuri aceast tehnic s-a
dovedit a fi mai puternic dect un atac de ordinul nti (vezi cifrul KN).
Criptanaliza diferenial-liniara este o metod hibrid ce utilizeaz
criptanaliza diferenial i cea liniar.
Atacul de tip bumerang (boomerang attack) folosete flexibilitatea
criptografiei difereniale i permite utilizarea a dou caracteristici
necorelate pentru a ataca cele dou jumti ale unui cifru bloc. Metoda
mrete potenialul criptanalizei difereniale prin folosirea unor
caracteristici ce nu se propag prin ntreg algoritmul criptografic.
Rezultatele se produc doar n prezena ambelor caracteristici, ntruct
metoda nu poate lucra independent, pentru fiecare caracteristic.
Atacul de consisten liniar (linear consistency attack) aplic o
tehnica de tipul divide i cucerete pentru o secvene de text clar
cunoscute. A fost introdus n 1989 i aplicat algoritmilor de tip ir, asupra
generatoarelor de iruri de chei (Zeng i colab., 1989), dar i asupra
algoritmului E0 folosit n Bluetooth (Fluhrer i Lucks, 2001).
n final trebuie de subliniat c la elaborarea sistemelor de criptare
trebuie s fie luate n consideraie performanele criptanalizei pentru a
diminua riscurile posibile.

145

Bibliografie
1. Ben-Aroya I., Biham E., Differential Cryptanalysis of Lucifer,
Journal of Cryptology 9(1), pp. 2134, 1996
2. Biham E. and Biryukov A., An Improvement of Davies' Attack on
DES, J. Cryptology 10(3): 195206 (1997)
3. Biham E. and Shamir A., Differential Cryptanalysis of the Full 16Round DES, Advances in Cryptology, Proceedings of CRYPTO
'92, 1992, pp. 487496
4. Daemen J., Rijmen V., The Design of Rijndael: AES - The
Advanced Encryption Standard, Springer-Verlag, 2002
5. Data Encryption Standard, National Bureau of Standards, Federal
Information Standard 46, USA; 1977
6. Devours C., Kahn D., Kruh L., Mellen G., Winkel B., Cryptology:
Machines, history and Methods, Artech House, 1989
7. Devours C., Kruh L., Machine Cryptography and Modern
Cryptanalysis, Artech House, 1985
8. Diffie W. and Hellman M. E., New Directions in Cryptography.
IEEE Transactions on Information Theory, vol. IT-22, Nov. 1976,
pp. 644654

146

9. El Gamal T., A Public Key Cryptosystem and Signature Scheme


Based on Discrete Logarithms, IEEE Transactions in Information
Theory 31 (4), 1985, pp. 469472
10. Ferguson N. and Schneir B., Practical Cryptography, Wiley N. Y.
(2003)
11. FIPS PUB 197, The official AES standard
12. FIPS PUB 46-3, DES, (Federal Information Processing Standards
Publication). NIST, 1999.
13. Friedman W. F., Military Cryptanalysis Part I, Monoalphabetic
Substitution Systems, United States Government Printing Office,
Washington, 1939
14. Friedman W. F., Military Cryptanalysis Part II: Simpler
Varieties of Polyalphabetic Substitution Systems, United States
Government Printing Office, Washington, 1938
15. Kahn D., The Codebreakers - The Story of Secret Writing, abridget
ed. New York, NY: Signet, 1973
16. Katz J. & Lindell Y., Introduction to Modern Cryptography,
Chapman & Hall/CRC (2008)
17. Konheim Alan G., Computer Security and Cryptography, John
Wiley & Sons, Inc., 2007
18. Menezes A., Van Oorschot P. C., Vanstone S. A., Handbook of
applied cryptography, CRC Press, 1997
19. Mogollon M., Cryptography and Security Services: Mechanisms
and Applications, New York, Cybertech Publishing, 2008
20. National Bureau of Standards, Data Encryption Standard, FIPS
PUB 46 (Jan. 1977)
21. National Bureau of Standards, DES Modes of Operation, FIPS
PUB 81 (Dec. 1980)
22. National Institute of Standards and Technology, Advanced
Encryption Standard (AES), FIPS PUB 197 (Nov. 2001)
23. NIST, Modes of operations for symmetric block ciphers (available
at: http://csrc.nist.gov/CryptoToolkit/modes/)
24. Rivest R. L., Shamir A., Adleman L., A method for obtaining
digital signatures and public key cryptosystems, Comm ACM 21,
1978, pp. 120126

147

25. Rivest R. L., The RC5 encryption algorithm, In: Fast software
encryptionLeuven 1994. LNCS, vol. 1008. Berlin: Springer;
1995, pp. 8696
26. Rueppel R. A., Stream ciphers, In: G. J. Simmons, Editor,
Contemporary CryptologyThe Science of Information Integrity,
IEEE Press, New York, 1992, pp. 65134
27. Salomaa A., Criptograe cu chei publice, Ed. Militar, 1994
28. Schneier B., Applied Cryptography, Second Edition. John Wiley &
Sons, 1996
29. Schneier B., The Blowfish Encryption Algorithm. One Year Later,
Dr. Dobb's Journal, 20(9), p. 137, September 1995.
30. Scripcariu Luminia, Bazele reelelor de calculatoare, Ed. Cermi
Iai, 2005.
31. Shannon C. E., A Mathematical Theory of Communication, Bell
System Technical Journal. v. 27, n. 4, 1948, pp. 379-426
32. Shannon C. E., Communication Theory of Secrecy Systems, Bell
System Technical Journal. v. 28, n. 4, 1949, pp. 656-715
33. Shannon C. E., Predication and Entropy in Printed English, Bell
System Technical Journal. v. 30, n. 1, 1951, pp. 50-64
34. Smith, Laurence D. Substitution Ciphers. Cryptography the
Science of Secret Writing, Dover Publications. pp. 81. 1943
35. Sorkin A., LUCIFER: a cryptographic algorithm, Cryptologia,
8(1), 22-35, 1984
36. Vernam G., Cipher Printing Telegraph Systems For Secret Wire
and Radio Telegraphic Communications, Journal of the IEEE, Vol
55, pp. 109-115 (1926)
37. . ., . ., ,
, , 2009
38. .., .., (1792-1871),
, , 1973
39. ., ( ), .:
, 2005
40. ., .
, , 2003
41. .. .
. . .:
, 2009. 352 .
148

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