Sunteți pe pagina 1din 83

3 Elemente de criptografie / criptologie

3.1 Scurt istoric

InformaÆia (religioaså, militarå, economicå, etc.) a însemnat


întotdeauna putere, prin urmare dorinÆa de a o proteja, de a o face
accesibilå doar unor elite, unor iniÆiaÆi, s-a pus din cele mai vechi timpuri.
Primele texte cifrate descoperite pânå în prezent dateazå de circa 4000 de
ani çi provin din Egiptul antic, dar existenÆa acestora probabil cå dateazå
de la apariÆia scrierii în toate civilizaÆiile umane.
Existå date privind utilizarea scrierii cifrate în Grecia anticå încå din
secolul al V-lea î.e.n. Pentru cifrare se folosea un baston în jurul cåruia se
înfåçura, spiralå lângå spiralå, o panglicå îngustå de piele, papirus sau
pergament pe care, paralel cu axa se scriau literele mesajului. Dupå scriere
panglica era derulatå, mesajul devenind indescifrabil. El putea fi
reconstituit numai de cåtre persoana care avea un baston identic cu cel
utilizat la cifrare. În secolul al IV-lea î.e.n. în Grecia se cunoçteau 16
scrieri cifrate. Istoricul grec Polybius (sec II î.e.n.) este inventatorul unui
tabel de cifrare påtrat de dimensiune 5x5, tabel aflat la baza elaborårii
unui numår mare de sisteme de cifrare utilizate çi azi.
În Roma anticå secretul informaÆiilor politice çi militare se fåcea
utilizând scrierea secretå. Amintim cifrul lui Cesar, utilizat încå din timpul
råzboiului galic.
Existå documente ce atestå existenÆa scrierilor secrete în Asia încå din
antichitate. Astfel, literatura indianå då o serie de referinÆe dintre care
Artha-såstra (321-300 î.e.n.), Lalita-Vistara çi Kamasutra sunt exemplele
cele mai cunoscute. În China anticå, documentele militare çi diplomatice
de mare importanÆå erau scrise pe fâçii înguste de måtase sau hârtie;
2 Autori
acestea erau rulate formând mici bile care apoi se acopereau cu cearå çî se
introduceau în rectul mesagerilor. [Deavours]
Steganografia, çtiinÆa scrierilor secrete insesizabile camuflate în texte în
clar, constituie o formå particularå de secretizare çi este prezentatå în
detaliu în capitolul 8.
ContribuÆia arabå ([Deavours] - Al Kadif) la dezvoltarea criptologiei, mai
puÆin cunoscutå çi mediatizatå este de o remarcabilå importanÆå [Deavours].
David Kahn, unul dintre cei mai de seamå istoriografi ai domeniului,
subliniazå în cartea sa The Codebreakers cå criptologia s-a nåscut în
lumea arabå. Primele trei secole ale civilizaÆiei islamice (700-1000 e.n.) au
constituit, pe lângå o mare extindere politicå çi militarå çi o epocå de
intense traduceri în limba arabå ale principalelor opere ale antichitåÆii
greceçti, romane, indiene, armene, ebraice, siriene. Unele cårÆi surså erau
scrise în limbi deja moarte, deci reprezentau în fapt texte cifrate, astfel
încât traducerea lor constituie primii paçi în criptanalizå, deci originile
criptologiei pot fi atribuite arabilor. Cartea lui Ahmad ibn Wahshiyyab
(cca. 900 e.n.) conÆine 93 de alfabete ale diferitelor limbi, moarte sau vii.
Nouå secole mai târziu, cartea a fost traduså în limba englezå çî a fost
publicatå la Londra de cåtre orientalistul Joseph von Hammer sub
denumirea Ancient Alfabets and Hieroglyphic Caracters Explained, iar
aceasta din urmå a fost traduså çi publicatå la Paris în 1810 çi este posibil
så-l fi ajutat pe celebrul arheolog J. F. Champollion în descifrarea
hieroglifelor (scrierea de la Rosseta, aflatå la British Museum).
Dezvoltårile criptanalizei au fost mult sprijinite de studiile lingvistice ale
limbii arabe care în primele patru secole ale imperiului islamic a constituit
limba oficialå unificatoare pentru un imperiu de o uriaçå întindere çi în
acelaçi timp çi limba çtiinÆificå. Arabii au preluat cunoçtinÆele matematice
ale civilizaÆiilor greceçti çi indiene. Arabii sunt cei care au introdus
sistemul zecimal de numeraÆie çi cifrele “arabe”. Termenii “zero”, “cifru”,
“algoritm”, “algebrå” li se datorezå tot lor. Manuscrise recent descoperite
aratå cå primele scrieri în domeniul probabilitåÆilor çi statisticii dateazå cu
800 de ani înaintea celor corespunzåtoare ale lui Pascal çi Fermat. Însuçi
termenul de “cifru” ne vine de la arabi. El provine de la cuvântul arab
“çifr” care reprezintå traducerea în arabå a cifrei zero din sanscritå.
Conceptul de zero a fost deosebit de ambigu la începuturile introducerii lui
în Europa, în care sistemul de numeraÆie folosit era cel roman. De aceea se
3. Elemente de criptografie / criptologie 3
obiçnuia så se spunå despre cineva care vorbea neclar cå vorbeçte ambigu,
ca un cifru. Acest înÆeles de ambiguitate a unui mesaj poartå çi azi
denumirea de cifru.
În perioada Renaçterii, o datå cu trezirea interesului pentru civilizaÆia
anticå, s-au redescoperit lucrårile criptografiei din antichitate.
Extinderea relaÆiilor diplomatice dintre diferitele state feudale a determinat
o puternicå dezvoltare a secretizårii informaÆiei. CurÆile regale çi în special
statul papal dispuneau de criptologi de mare valoare dintre care amintim
pe Giambattista della Porta, Vigenere, Cardan (secolul XIV) çi Rossignol
(secolul XVIII), cel mai abil criptolog din Europa regilor Ludovic al XIII-
lea çi Ludovic al XIV-lea.
În fapt istoria criptografiei / criptologiei urmåreçte îndeaproape
creçterea çi descreçterea marilor imperii çi civilizaÆii. Ea nu apare çi nu se
dezvoltå decât acolo unde este putere ce trebuie protejatå.
ApariÆia telegrafului çi a radioului în secolul al XIX-lea precum çi cele
douå råzboaie mondiale din secolul XX au fost stimulente puternice în
dezvoltarea metodelor çi tehnicilor de criptare.
ApariÆia çi dezvoltarea continuå a utilizårii calculatoarelor practic în
toate domeniile vieÆii, existenÆa çi evoluÆia puternicå a reÆelelor
teleinformatice la nivel naÆional çi internaÆional, globalizarea
comunicaÆiilor, existenÆa unor baze de date puternice, apariÆia çi
dezvoltarea comerÆului electronic, a poçtei electronice, constituie premizele
societåÆii informaÆionale în care påçim. Toate acestea indicå o creçtere
extraordinarå a volumului çi importanÆei datelor transmise sau stocate çi
implicit a vulnerabilitåÆii acestora. ProtecÆia în aceste sisteme vizeazå:
 eliminarea posibilitåÆilor de distrugere voitå sau accidentalå
 asigurarea caracterului secret al comunicårii pentru a preveni
posibilitatea ca persoane neautorizate så extragå informaÆii
 autentificarea informaÆiei în scopul prevenirii posibilitåÆii ca
persoane neautorizate så introducå informaÆii în sistem
 în anumite situaÆii, cum ar fi transferurile electronice de
fonduri, negocierile contractuale, este importantå existenÆa
unor semnåturi electronice pentru a evita dispute între
emiÆåtor çi receptor cu privire la mesajul transmis.
Toate aceste obiective aratå o lårgire puternicå a domeniului de aplicare
al criptografiei de la domeniul diplomatic, militar, politic, la cel civil cu
4 Autori
caracter economic çi social. În momentul de faÆå, 99% din criptografie în
lume nu este utilizatå pentru protejarea secretelor militare ci pentru
carduri bancare, plåÆi de taxe radio / TV, taxe de drumuri, acces autorizat
în clådiri sau la calculatoare, terminale de loterie, instrumente electronice
de plåÆi anticipate. În aceste aplicaÆii rolul criptografiei este acela de a face
furturile mai greu de realizat.

3.2 Terminologie de bazå

Criptografia (cryptography) este çtiinÆa creerii çi menÆinerii mesajelor


secrete, în sensul imposibilitåÆii citirii lor de cåtre neautorizaÆi (çtiinÆa
mesajelor secrete).
Mesaj (text) în clar (M) (plain / clear text) este mesajul ce urmeazå a fi
secretizat; în criptografie M se mai numeçte scriere chiar dacå este un
document de altå naturå, de exemplu voce, imagine, date.
Mesaj cifrat (criptogramå) (C) (cipher text) este mesajul secretizat,
inaccesibil neavizaÆilor.
Criptare / cifrare (E) (encryption / enciphering) este procedeul de
“ascundere” al unui mesaj în clar în mesajul secretizat.
E M   C (3.1)
Decriptare / descifrare (D) (decryption / deciphering) este procedeul de
regåsire a mesajului în clar M din mesajul cifrat C.
DC   DEM   M (3.2)
ObservaÆie:
 decriptarea este operaÆia inverså criptårii.
 ISO 7498-2 foloseçte termenii de cifrare / descifrare (encipher
/ decipher), socoteçte Schneier [Scheneier], probabil cå pentru
cå primul set de termeni aminteçte de morÆi (criptare /
decriptare)
Criptograf (cryptographer) este persoana ce se ocupå cu criptografia.
Algoritm criptografic / cifru (cryptographic algorithm / cipher) este
funcÆia sau funcÆiile matematice utilizate pentru criptare / decriptare; în
general existå douå funcÆii: una pentru criptatre (E) çi alta pentru
decriptare (D).
3. Elemente de criptografie / criptologie 5
Cheia criptograficå (K) (key) este mårimea (în majoritatea cazurilor
secretå) necesarå realizårii criptårii çi decriptårii.
Criptosistem (cryptosystem) este sistemul format din:
- algoritm
- toate mesajele în clar (M)
- toate textele cifrate (C)
- toate cheile (K).
Criptanalizå (cryptanalysis) este çtiinÆa spargerii cifrurilor, deci a
obÆinerii mesajelor în clar (M) sau a cheii (K) din mesajul cifrat (C).
Criptanalist (cryptanalyst) este persoana care se ocupå cu criptanaliza.
Atac (attack) este încercarea / tentativa criptanaliticå.
Criptologie (cryptology) este çtiinÆa care se ocupå atât de criptografie cât
çi de criptanalizå.
Criptolog (cryptologist) este persoana care se ocupå cu criptologia.
Steganografia (steganography) este tehnica ascunderii mesajelor secrete
în alte mesaje, în aça fel încât existenÆa mesajelor secrete så fie Æinutå
secretå.

3.3 Criptosisteme çi rolul acestora

Schema bloc a unui criptosistem este prezentatå în Fig 3.1.


M sau
Criptanalizå Kd

M D(C)=M
E D B
A
C = E(M)
Ke Kd
K

Fig. 3.1 - Schema bloc a unui criptosistem

A, B - entitåÆi ce emit, recepÆioneazå sau manipuleazå informaÆia


6 Autori
E - funcÆia de criptare (cifrare)
D - funcÆia de decriptare (descifrare)
M - spaÆiul mesajelor în clar
C - spaÆiul criptogramelor (text cifrat)
K - spaÆiul cheilor

Ke - spaÆiul cheilor de criptare


Kd - spaÆiul cheilor de decriptare

3.3.1 Rolul unui criptosistem

Rolul unui criptosistem este de a preveni sau detecta activitåÆile


nepermise dintr-un sistem informatic, cum ar fi:
- consultarea neavizatå a datelor transmise sau stocate
- inserarea de mesaje false
- modificarea, çtergerea sau distrugerea mesajelor existente
- analiza traficului
- conectårile neautorizate
deci, aça cum se precizeazå în capitolul 1, acela de “poliÆie informaticå”.
Îndeplinirea acestui rol presupune ca un criptosistem så asigure:
 ConfidenÆialitatea / secretul / protecÆia datelor (confidentiality
/ secrecy / privacy) asigurå inaccesibilitatea conÆinutului
informaÆiei transmise / stocate pentru un utilizator neavizat
(în cazul canalelor / mediilor nesigure în care pot apårea
intruçi)
 Autentificarea (autentication) se aplicå [Menezes] la:
- entitåÆi (persoane, terminale, cårÆi de credit, etc.) çi în acest
caz se numeçte autentificarea entitåÆilor / identificare
(entity autentication / identity)
- informaÆie: informaÆia trasmiså / stocatå trebuie så fie
autentificatå în sensul originii, conÆinutului datelor,
timpului de transmisiune / stocare çi defineçte
autentificarea originii datelor / integritatea datelor (data
origin autentication / data integrity)
3. Elemente de criptografie / criptologie 7

 Semnåtura digitalå (digital signature) [Scheneier] reprezintå


autentificarea reciprocå a datelor çi entitåÆilor çi se referå la
faptul cå un utilizator B este sigur cå mesajul recepÆionat vine
de la A prin semnarea mesajelor sale (SA), iar A este sigur cå
nimeni nu-i poate atribui un mesaj fals deoarece mesajul
transmis de cåtre el îi poartå semnåtura.

ObservaÆie:
Aceste trei cerinÆe sunt vitale pentru interacÆiunea “socialå” în
calculatoare çi sunt echivalente cu interacÆiunile umane faÆå în faÆå.

Pe lângå cele trei obiective principale anterior enumerate, anumite


criptosisteme pot asigura çi alte obiective printre care amintim:
nerepudierea (non-repudiation), autorizarea (authorization), validarea
(validation), controlul accesului (acces control), certificarea (certification),
certificarea temporalå (time-stamping), mårturia (witnessing), confirmarea
(confirmation), dreptul de proprietate (ownership), anonimatul
(anonimity), revocarea (revocation).
Obiectivele pe care le poate realiza un criptosistem sunt cuprinse în
tabelul 3.1.

ObservaÆii
 toate aceste obiective existå natural în interacÆiunile umane
faÆå în faÆå;
 apariÆia reÆelelor de calculatoare prin care au loc
interacÆiunile interumane pune o serie de probleme în plus:
hârtia se înlocuieçte cu discul, unda radio, firul; scrisul are
un format electronic çi anume “biÆii” cu posibilitate extrem de
uçoarå de copiere (copiile digitale sunt identice); utilizatorii se
aflå la distanÆå, nu se pot vedea faÆå în faÆå çi deci se lucreazå
în condiÆii de neîncredere
8 Autori

 criptografia este chematå astfel så soluÆioneze o diversitate


extremå de probleme, multe de mare dificultate

Nr.
Obiectivul Definirea
crt.
1 ConfidenÆialitatea påstrarea secretului pentru neavizaÆi
2 EntitåÆilor / legatå de identitatea unei entitåÆi
autentificar

identificare (persoanå, terminal, carte de credit, etc.)


Originii datelor legatå de sursa de informaÆie (sursa
ea

informaÆiei)
IntegritåÆii asigurå cå informaÆia nu a fost modificatå
datelor de surse neautorizate
3 semnåtura mijlocul de a lega informaÆia de entitate
4 nerepudierea prevenirea unor acÆiuni comise anterior
5 autorizarea transferul cåtre altå entitate a unei
imputerniciri oficiale de a fi sau de a face
ceva
6 validarea mijlocul de a permite (pentru o anumitå
perioadå de timp) autorizarea de a folosi
sau manipula informaÆia sau resursele
7 revocarea retragerea certificatului sau autorizaÆiei
8 controlul accesului restricÆionarea accesului la resurse pentru
entitåÆi privilegiate (cu drept de acces)
9 certificare informaÆia de aprobare datå de o entitate
de încredere (arbitru)
10 certificare înregistrarea timpului de creere sau de
temporalå existenÆå a informaÆiei
3. Elemente de criptografie / criptologie 9
11 mårturia verificarea creerii sau existenÆei unei
informaÆii de cåtre o entitate diferitå decât
cea creatoare
12 confirmarea recunoaçterea faptului cå serviciile au fost
efectuate
13 dreptul de mijlocul de a înzestra o entitate cu dreptul
proprietate legal de a utiliza sau transfera o surså la
alÆii
14 anonimatul ascunderea (tåinuirea) identitåÆii unei
entitåÆi implicate într-un anumit proces

Tabelul 3.1 - Obiectivele unui criptosistem ce realizeazå securitatea informaÆiei

3.3.2 Clasificarea criptosistemelor

Dupå tipul cheilor folosite pentru criptare / decriptare, criptosistemele se


clasificå în douå categorii çi anume în sisteme: cu chei simetrice çi cu chei
publice.

3.3.2.1 Criptosistemele cu chei simetrice / cu cheie secretå /


criptosistemele convenÆionale

Criptosistemele cu chei simetrice sunt criptosistemele pentru care cheile


folosite la criptare çi decriptare sunt identice; de unde çi denumirea de chei
simetrice.
Ke  Kd  K (3.3)
Cheia K este secretå, fapt ce conduce la denumirea de sisteme cu cheie
secretå. Criptarea çi decriptarea se realizeazå extrem de simplu dacå se
cunoaçte K:
E K M   C (3.4)
DK C   DK E K M   M (3.5)
Problema ce se pune în cazul acestor sisteme este distribuÆia cheii K,
care necesitå un canal sigur.
Dupå tipul algoritmului folosit, criptosistemele cu chei simetrice se
clasificå în douå categorii:
10 Autori

 Cu cifruri bloc (block ciphers) sunt cifrurile care acÆioneazå


asupra unei diviziuni a textului în clar; blocurile de la intrare
se cifreazå independent, lungimea tipicå a blocurilor fiind
n  32  128 biÆi, iar cheia K are aceeaçi lungime cu n.
Transformårile de bazå folosite pentru criptare çi decriptare
sunt substituÆiile çi transpoziÆiile, repetate iterativ [Angheloiu et
al. (1986)] [Scheneier].
 Cu cifruri secvenÆiale (stream ciphers): mesajul de la intrare
este considerat ca o succesiune (çir) de simboluri. Criptarea
opereazå asupra textului în clar simbol cu simbol. Cheia K
este generatå de un registru de deplasare cu reacÆie (RDR)
având starea iniÆialå S 0 controlatå de o cheie compactå
[Angheloiu et al. (1986)][Scheneier].

3.3.2.2 Criptosisteme cu chei publice (asimetrice)

Criptosistemele cu chei publice sunt criptosistemele pentru care cheile


folosite la criptare çi decriptare diferå, de unde derivå çi denumirea de
sisteme asimetrice:
Ke  Kd (3.6)
Cheia de criptare K e se numeçte cheie publicå çi - aça cum îi spune çi
numele - poate fi accesatå public (asemånåtor unei cårÆi de telefon), iar
cheia de decriptare K d este secretå (privatå). Caracteristic acestor sisteme
este cå funcÆia de criptare çi cea de decriptare se realizeazå uçor dacå se
cunosc K d çi K e :
 E K e M   C
 (3.7)
 D K d (C )  M
dar aflarea lui M, dacå se cunosc C çi K e este imposibilå.
ObservaÆie:
E este o funcÆie neinversabilå cu trapå [Angheloiu et al. (1986)], [Patriciu
(1994)], [Menezes]. K d este trapa care furnizeazå informaÆia necesarå
calculårii funcÆiei inverse D. Dintre funcÆiile neinversabile cu trapå
amintim: factorizarea unui produs de numere prime mari cu peste 100 de
3. Elemente de criptografie / criptologie 11
cifre zecimale (folosit în algoritmul RSA), gåsirea logaritmului modulo un
numår prim într-un câmp Galois GF(q) cu q foarte mare (folosit în
algoritmii Rabin çi Diffie-Hellman), problema rucsacului (folositå în
algoritmul Merkle-Hellman).

3.4 Atacuri çi modele de securitate în sisteme


informatice

3.4.1 Atacuri asupra securitåÆii sistemelor criptografice

Atacul asupra securitåÆii unui sistem criptografic defineçte orice acÆiune


ce compromite securitatea acelui sistem.
O ilustrare sugestivå a principalelor tipuri de atacuri asupra unui sistem
informatic este fåcutå în fig 3.2

atac pasiv
(atac la
flux normal confidenÆialitate)

intercepÆie

atacuri
active
întrerupere

modificare fabricare

Fig. 3.2 - Ilustrarea principalelor tipuri de atacuri la securitatea unui sistem


criptografic
12 Autori
Atacurile criptografice pot fi îndreptate împotriva:
- algoritmilor criptografici
- tehnicilor utilizate pentru implementarea algoritmilor
çi protocoalelor
- protocoalelor
Dupå modul de atacare al unui atacator / intrus / persoanå neautorizatå
/ pirat (attacker / introuder / pirat), aceste atacuri se pot clasifica dupå cum
urmeazå:
Atacuri
 pasive (de intercepÆie)
- de înregistrare a conÆinutului mesajelor
- de analizå de trafic;
 active
- de întrerupere (atac la disponibilitate)
- de modificare (atac la integritate)
- de fabricare (atac la autenticitate).
Atacurile pasive sunt atacuri în care intrusul (persoanå, calculator,
program) doar ascultå, monitorizeazå transmisia, deci sunt atacuri de
intercepÆie. Ele pot fi de douå feluri:
 de inregistrare a conÆinutului mesajelor (release of message
contents): dacå mesajele nu sunt criptate, se violeazå
caracterul confidenÆial al comunicaÆiei; de exemplu, în
convorbirile telefonice, mesajele transmise prin poçta
electronicå; deci trebuie evitate (prin criptare de exemplu).
 de analizå a traficului (traffic analysis): în cazul în care
mesajele sunt criptate çi nu se poate face rapid criptanaliza,
prin analiza traficului se pot afla o serie de date utile
criptanalizei: identitatea pårÆilor ce comunicå între ele,
frecvenÆa çi lungimea mesajelor.
Caracteristicile atacurilor pasive:
- sunt greu de detectat pentru cå datele nu sunt alterate;
- måsurile ce pot fi luate pentru evitarea acestor atacuri sunt
acelea care fac criptanaliza extrem de grea dacå nu
imposibilå;
- este necesarå prevenirea çi nu detecÆia lor.
3. Elemente de criptografie / criptologie 13
Atacurile active sunt atacuri în care intrusul are o intervenÆie activå
atât în desfåçurarea normalå a traficului, cât çi în configuraÆia datelor
(modificarea datelor, creearea unor date false). Dintre atacurile active
amintim [Stallings],[Menezes]:
 întreruperea [Stallings] / refuzul serviciului (denial of service)
[Menezes]: un bloc funcÆional este distrus, sau se inhibå
funcÆionarea normalå sau managementul facilitåÆilor de
comunicaÆie, acest tip de atac este un atac la disponibilitate
(attack on availability)
 modificarea: mesajul iniÆial este întârziat, alterat, reordonat
pentru a produce efecte neautorizate ca de exemplu:
- schimbare de valori în fiçiere de date;
- modificåri în program astfel încât acesta va lucra
diferit;
- modificarea conÆinutului mesajelor transmise în
reÆea
 fabricarea: un neavizat insereazå informaÆii false în sistem;
acest atac este un atac la autenticitate. Din aceastå categorie
fac parte çi:
- Mascarea (masquerade): o entitate pretinde a fi altå
entitate. Exemplu: secvenÆele de autentificare pot fi
capturate çi dupå validarea unei autentificåri se
înlocuiesc, permiÆând astfel unei entitåÆi så obÆinå
privilegii pe care nu le are de drept.
- Reluarea (replay) constå în capturarea prin atac
pasiv a unei cantitåÆi de informaÆie çi transmiterea sa
ulterioarå pentru a produce efecte neautorizate.
Caracteristicile atacurilor active:
- deçi pot fi detectate, prevenirea lor este foarte grea, deoarece
ar însemna protecÆie fizicå permanentå a întregului sistem.

3.4.2 Atacuri criptanalitice

Atacurile criptanalitice [Scheneier] sunt atacuri asupra textelor cifrate în


vederea obÆinerii textului în clar sau a cheilor folosite pentru decriptare.
14 Autori
Existå mai multe tipuri de asemenea atacuri dintre care amintim:
1) Atac asupra textului cifrat (cipher text-only attack):
criptanalistul are Ci  E k M i  çi trebuie så obÆinå pe M i sau
pe k
2) Atac asupra unui text cunoscut (known plain-text attack):
criptanalistul are criptogramele C i çi mesajele în clar M i
corespunzåtoare çi trebuie så determine cheia k sau
algoritmul de determinarea lui M i 1 din Ci 1  Ek M i 1  .
3) Atac cu text în clar ales (chosen plain-text attack): se pot
alege o serie de mesaje M i dupå dorinÆå çi se cunosc
criptogramele corespondente: Ci  E k M i  . Criptanalistul
trebuie så determine cheia k sau algoritmul de determinare al
lui M i 1 din Ci 1  Ek M i 1  .
4) Atac cu text în clar ales adaptiv (adaptive chosen plain-text
attack) mesajele în clar M i se pot alege dupå dorinÆå çi sunt
adaptabile în funcÆie de rezultatele criptanalizelor anterioare
iar criptogramele Ci  E k M i  se cunosc. Se cere cheia k sau
algoritmul de determinare al lui M i 1 din Ci 1  Ek M i 1  .
Aceste patru atacuri constituie atacurile criptanalitice de bazå. În afara
acestora mai putem aminti:
5) Atac cu text cifrat la alegere (chosen cipher-text attack) în
care se aleg C i çi M i  Dk Ci  , sarcina criptanalistului fiind
determinarea cheii k. Acest atac se aplicå mai ales
algoritmilor cu chei publice.
6) Atacul de “cumpårare” a cheii (rubber-hose cryptanalysis /
purchase-key attack), în care aflarea cheii se face fårå
mijloace criptanalitice (se procedeazå la çantaj, furt, etc.).
ObservaÆie:
Atacurile 3) çi 5) se numesc atacuri cu text ales (chosen text attack) çi au
fost folosite cu succes în cel de-al doilea råzboi mondial pentru spargerea
codurilor german çi japonez [Deavours].
3. Elemente de criptografie / criptologie 15

3.4.3 Securitatea algoritmilor [Scheneier]

În secolul al XIX-lea, olandezul A. Kerckhoff a enunÆat conceptul


fundamental al criptanalizei: secretul se rezumå în întregime la cheie,
algoritmul criptografic çi implementarea considerându-se cunoscute.
DiferiÆii algoritmi pot asigura diferite grade de securitate, funcÆie de
dificultatea cu care pot fi sparÆi [Menezes], [Scheneier]:
 dacå costul spargerii unui algoritm este mai mare decât
valoarea datelor criptate, algoritmul este probabil sigur (PS);
 dacå timpul necesar spargerii este mai mare decât
valabilitatea datelor criptate, algoritmul este PS;
 dacå mulÆimea datelor necesare spargerii este mai mare decât
mulÆimea datelor criptate la un moment dat de o cheie,
algoritmul este PS.
Lars Knudsen - în teza de doctorat susÆinutå în 1994 [Menezes] - a
clasificat diferitele categorii de spargere a unui algoritm în ordine
descrescåtoare a securitåÆii:
1) Spargere totalå (total break) / securitate zero: un criptanalist
gåseçte cheia, deci orice criptogramå va fi decriptatå:
Dk C   M .
2) DeducÆie globalå (global deduction): criptanalistul gåseçte un
algoritm alternativ echivalent cu Dk C  fårå a cunoaçte cheia
k.
3) DeducÆie localå (local deduction): un criptanalist gåseçte
textul în clar al unui text cifrat interceptat.
4) DeducÆia informaÆionalå (information deduction):
criptanalistul capåtå unele informaÆii privitor la cheie sau la
textul în clar (de exemplu câÆiva biÆi ai cheii, anumite
informaÆii privitoare la M, etc.).
5) Algoritm necondiÆionat sigur (unconditional secure) este
algoritmul pentru care indiferent cât text cifrat are
criptanalistul, informaÆia nu este suficientå pentru a deduce
textul în clar.
ObservaÆii:
16 Autori

 Doar cheia de unicå folosinÆå (one time pad), inventatå în


1917 de Major J. Maubergue çi Gilbert Vernon, având aceeaçi
lungime cu a textului în clar, este de nespart
 ToÆi ceilalÆi algoritmi pot fi sparÆi cu un atac cu text cifrat,
prin încercarea tuturor cheilor, pânå textul descifrat are sens.
Acest atac se numeçte atac prin forÆå brutå (brute force
attack)
6) Algoritm computaÆional puternic (computational strong) este
algoritmul care nu poate fi spart cu resursele existente, atât la
momentul curent, cât çi într-un viitor predictibil. Privitor la
aceçti din urmå termeni trebuie atenÆionat cå sunt extrem de
expuçi interpretårilor.
Complexitatea unui atac (complexity) se manifestå în mai multe feluri:
a) Complexitatea datelor (data complexity) este volumul de date
necesar pentru atac;
b) Complexitatea procesårii / factorul de lucru (processing
complexity / work factor) este timpul necesar realizårii
atacului;
c) Complexitatea stocårii (storage complexity) este cantitatea de
memorie necesarå atacului.
Regulå: Complexitatea unui atac = max {a, b, c}.
Exemplu: complexitatea de 2128 indicå 2128 operaÆii necesare spargerii
cifrului (de obicei aceasta reprezintå complexitatea atacului prin forÆå
brutå, deci în cazul unui algoritm necondiÆionat sigur, 128 indicând
lungimea cheii în biÆi).
ObservaÆie:
Multe atacuri se preteazå paralelismului, deci complexitatea scade faÆå
de regula anterior enunÆatå.

3.5 Criptografie clasicå (precomputaÆionalå)

Criptografia clasicå este criptografia dinaintea calculatorului, de unde


çi denumirea de criptografie precomputaÆionalå.
3. Elemente de criptografie / criptologie 17
În criptografia clasicå, algoritmii erau bazaÆi pe caracter çi constau
dintr-o serie de transformåri elementare (permutåri, transpoziÆii) ale
caracterelor textului în clar. Unii algoritmi aplicau aceste transformåri în
mod repetat, îmbunåtåÆind în acest mod securitatea algoritmului.
În criptografia modernå bazatå pe calculator (criptografie
computaÆionalå), lucrurile s-au complicat, dar multe dintre ideile
criptografiei clasice au råmas nemodificate.
Criptografia clasicå se încadreazå în clasa criptografiei cu chei
simetrice.

3.5.1 Cifruri de substituÆie

Cifrul de substituÆie (substitution cipher) este cifrul bloc la care fiecare


caracter sau grup de caractere ale textului în clar (M) este substituit cu un
alt caracter sau grup de caractere în textul cifrat (C); descifrarea se face
aplicând substituÆia inverså asupra textului cifrat.
În criptografia clasicå existå patru tipuri de cifruri de substituÆie:
1) Cifruri de substituÆie monoalfabeticå (monoalphabetic ciphers)
este cifrul în care fiecare caracter al textului în clar (M) este înlocuit cu
un caracter corespondent în textul cifrat (C). Am aminti aici câteva
dintre cifrurile de substituÆie cele mai cunoscute:
A. Cifrul lui Cesar
Este un cifru cu substituÆie monoalfabeticå:
 fiecare literå a textului în clar este înlocuitå cu o nouå literå
obÆinutå printr-o deplasare alfabeticå
 cheia (aceeaçi la criptare ca çi la decriptare) constå în
numårul care indicå deplasarea alfabeticå
C  aM  b (mod N )
unde a se numeçte factor de amplificare, iar b coeficient de deplasare.
Fåcând corespondenÆa biunivocå între literele alfabetului latin (N = 26)
çi echivalentele lor numerice ni   0, 1, 2, ...,25 , cifrul lui Cesar se poate
scrie conform tabelului 3.2.
Cni   ni  3 (mod 26)
18 Autori
Text 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
clar
Text D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
cifrat

Tabelul 3.2 - Cifrul lui Cesar

Exemplu: Celebrul VENI VIDI VICI, devine prin criptare : YHQL


YLGL YLFL.
Ulterior, cifrul lui Cesar, a fost generalizat prin alegerea în calitate de
cheie a oricårei litere din alfabet.
B. Cifrul lui Polybius
Este un cifru substituÆie. Literele alfabetului latin sunt açezate într-un
påtrat de dimensiune 5x5. Literele I çi J sunt combinate pentru a forma un
singur caracter, deoarece alegerea finalå (între I çi J) poate fi uçor deciså
din contextul mesajului. Rezultå 25 de caractere açezate într-un påtrat 5x5.
Cifrarea oricårui caracter se face alegând perechea potrivitå de numere
(intersecÆia liniei çi coloanei) corespunzåtoare dispunerii caracterului în
påtrat.

1 2 3 4 5
1 A B C D E
2 F G H IJ K
3 L M N O P
4 Q R S T U
5 V W X Y Z

Tabelul 3.3 - Påtratul lui Polybius


Exemplu: Mesajul: “A SOSIT TIMPUL”, se transformå (dupå cifrare)
în: “11 3443344244 444223535413”.
ObservaÆie:
Codul poate fi schimbat prin rearanjarea literelor în påtratul 5x5.
În sistemele UNIX, programul de criptare ROT 13 este un cifru de
substituÆie monoalfabeticå; fiecare literå, în textul cifrat se roteçte cu 13
caractere, de unde çi denumirea de ROT 13:
C  ROT 13 M  (3.8)
3. Elemente de criptografie / criptologie 19
iar decriptarea se face aplicând de douå ori ROT 13, dat fiind cå
alfabetul latin conÆine N = 26 litere:
M  ROT 13 ROT 13 C  (3.9)
Acest cifru nu este în realitate un cifru de securitate; el se utilizeazå
adesea în posturile de utilizatori de reÆea pentru a ascunde texte potenÆial
ofensive [Scheneier].
Concluzii:
 cifrurile de substituÆie monoalfabeticå pot fi sparte cu
uçurinÆå deoarece frecvenÆele literelor alfabetului nu se
schimbå în textul cifrat faÆå de textul în clar.
2) Cifruri de substituÆie omofonicå (homophonic substitution
ciphers) [Angheloiu et al. (1986)][Patriciu (1994)] sunt cifrurile de substituÆie în
care un caracter al alfabetului mesajului în clar (alfabet primar) poate
så aibå mai multe reprezentåri.
Ideea utilizatå în aceste cifruri este uniformizarea frecvenÆelor de
apariÆie a caracterelor alfabetului textului cifrat (alfabet secundar), pentru
a îngreuna atacurile criptanalitice.
Astfel, litera A - cu cea mai mare frecvenÆå de apariÆie în alfabetul
primar - poate fi înlocuitå cu F, * sau K.
Concluzii:
 Deçi mai greu de spart decât cifrurile de substituÆie simple
(monoalfabetice), ele nu mascheazå total proprietåÆile
statistice ale mesajului în clar.
 În cazul unui atac cu text în clar cunoscut, cifrul se sparge
extrem de uçor.
 Atacul cu text cifrat este mai dificil, dar unui calculator îi va
lua doar câteva secunde pentru a-l sparge.
3) Cifruri de substituÆie poligramicå (polygram substitution ciphers)
[Patriciu (1994)][Scheneier] se obÆin substituind blocuri de caractere ale
alfabetului primar - numite poligrame - cu alte blocuri de caractere, de
exemplu:
ABA  RTQ
SLL  ABB
Utilizåri:
20 Autori

 Cifrul Playfair, inventat în 1854 [Stallings], a fost utilizat în


Anglia, în timpul primului råzboi mondial
 Codul Huffman, bazat pe acelaçi principiu, poate fi utilizat çi
cu cifre dar este nesigur.
4) Cifruri de substituÆie polialfabetice [Patriciu (1994)][Scheneier][Patriciu
(1998)] sunt formate din mai multe cifruri de substituÆie simple. Au fost
inventate de Leon Battista, în 1568. Dintre acestea vom aminti pe douå
dintre cele mai celebre çi anume cele ale lui Trithemius çi Vigenere.
A. Cifrul lui Trithemius
Este un cifru polialfabetic. Alfabetul este dispus pe 26 de linii
numerotate de la 0 la 25, unde numårul de ordine al liniei indicå numårul
de caractere cu care se deplaseazå ciclic alfabetul spre dreapta. Linia
numerotatå cu 0 constituie tocmai alfabetul în ordinea iniÆialå. Acest cifru
poate fi utilizat astfel: primul caracter se cifreazå selectându-l din linia 1,
al doilea din linia a 2-a çi aça mai departe [Borda (1999)].
Exemplu: 1 2 3 4 5 6 7 8 9 10 11 12
Mesajul: A S O S I T T I M P U L , se cifreazå: B URWNZ
AQVZFX.
B. Cifrul lui Vigenere
Acest cifru utilizeazå cifrul Trithemius çi un anumit cuvânt cheie. Cheia
dicteazå alegerea liniilor în criptarea çi decriptarea fiecårui caracter din
mesaj.
Exemplu:
12 14 13 0 12 14 13 0 12 14 13 0
Cuvânt cheie M O N A M O N A M O N A

Text în clar A S O S I T T I M P U L

Text cifrat M G B S U H G I Y D H L

O variantå a acestui cifru este cifrul Vigenere cu cheie în clar (cheie de


încercare). Cheia de încercare indicå linia (sau liniile) de început
pentru primul (sau primele caractere) ale textului în clar ca în exemplul
urmåtor. Apoi caracterele textului în clar sunt folosite drept chei pentru
alegerea liniilor în criptare.
Exemplu:
Reluåm exemplul anterior, dar alegem litera M drept cheie de încercare.
3. Elemente de criptografie / criptologie 21
ObÆinem:
Cuvânt cheie M A S O S I T T I M P U

Text \n clar A S O S I T T I M P U L
Text cifrat M S G G A B M B U B J F

ObservaÆie: Se remarcå introducerea unei reacÆii în procesul de criptare,


textul cifrat fiind condiÆionat de conÆinutul mesajului.
O altå variantå a cifrului Vigenere este cifrul Vigenere cu autocheie
(cheie cifratå). Dupå criptarea cu cheie de încercare, fiecare caracter
succesiv al cheii în secvenÆå se obÆine de la caracterul cifrat al
mesajului çi nu de la textul în clar.
Exemplu:
Cuvânt cheie M M E S K S L E M Y N H

Text \n clar A S O S I T T I M P U L
Text cifrat M E S K S L E M Y N H S

ObservaÆie:
 Deçi fiecare caracter utilizat drept cheie poate fi gåsit din caracterul
anterior al textului cifrat, el este funcÆional dependent de toate
caracterele anterioare ale mesajului, inclusiv de cheia de încercare.
Urmare a acestui fapt este efectul de difuziune a proprietåÆilor
statistice ale textului în clar asupra textului cifrat, ceea ce face ca
analizele statistice så devinå foarte grele pentru un criptanalist.
În baza standardelor actuale, schemele de cifrare Vigenere nu sunt
foarte sigure; contribuÆia importantå a lui Vigenere constå în faptul cå a
descoperit cå pot fi generate secvenÆe nerepetitive drept cheie, prin
utilizarea a însuçi mesajului sau a unor pårÆi ale acestuia.

3.5.2 Cifruri de transpoziÆie (transposition ciphers) [Patriciu


(1994)]

Cifrurile de transpoziÆie se caracterizeazå prin faptul cå textul în clar


råmâne acelaçi, doar ordinea caracterelor se schimbå.
Exemplu:
22 Autori
Cifrul simplu cu transpunere în coloane: textul în clar se scrie orizontal
într-o anumitå formå, ca la Polybius sau ceva asemånåtor, iar textul cifrat
se citeçte pe verticalå (coloane):
V E N I
V I D I  “VVVEIINDCIII”
V I C I
O simplå transpoziÆie permite påstrarea proprietåÆilor statistice ale
textului în clar çi asupra textului cifrat; o nouå transpoziÆie a textului cifrat
måreçte securitatea cifrului.
Utilizåri:
 ADFGVX [Scheneier], utilizat de germani în timpul primului
råzboi mondial are un cifru substituÆie combinat cu o altå
substituÆie; deçi pentru acea vreme a fost foarte complex, el a
fost spart de criptanalistul francez Georges Painvin.
MulÆi algoritmi moderni folosesc transpoziÆia, dar consumul de memorie
este mare comparativ cu substituÆia, care din acest punct de vedere este mai
convenabilå.

3.5.3 Maçini rotor

În vederea mecanizårii complicatelor metode de substituÆie çi permutåri


repetate, în anul 1920 au fost inventate o serie de echipamente mecanice de
criptare bazate pe principiul de rotor.
O maçinå rotor (rotor machine) are o tastaturå çi o serie de rotoare ce
permit implementarea unei versiuni a cifrului Vigenere. Fiecare rotor face
o permutare arbitrarå a alfabetului, are 26 de poziÆii çi realizeazå o simplå
substituÆie. Deoarece rotoarele se miçcå cu viteze de rotaÆie diferite,
perioada unei maçini cu n rotoare este 26 n .
Cel mai celebru cifru bazat pe o maçinå rotor este Enigma, utilizatå de
germani în cel de-al doilea råzboi mondial. El a fost inventat de Arthur
Scherbius çi Arvid Gerhard Damm în Europa çi a fost patentatå în SUA.
Germanii au îmbunåtåÆit considerabil proiectul inventatorilor såi, dar a
fost spart de criptanaliçtii polonezi care au explicat atacul lor englezilor.
3. Elemente de criptografie / criptologie 23

3.6 Protocoale criptografice

3.6.1 GeneralitåÆi

Protocolul criptografic este un protocol în care este implicat cel puÆin un


algoritm criptografic.
Scopul unui protocol criptografic este de a nu permite så se facå sau så
se înveÆe mai mult decât este specificat în protocol.
Protocoale în care intervin probleme de securitate çi încredere se aplicå
în viaÆa de zi cu zi aproape pentru orice situaÆie: cumpåråturi, vot, joc, etc.
Forma lor este foarte simplå pentru cå presupune prezenÆa oamenilor.
În momentul în care activitåÆile de zi cu zi se transpun pe reÆele de
calculatoare, interacÆiunile umane faÆå în faÆå se reduc çi trebuie luate în
considerare o serie de probleme noi ce complicå protocolul în vederea
realizårii unei anumite sarcini.
ObservaÆie:
 în analiza unui protocol nu intereseazå modul de
implementare, el trebuind så råmânå acelçi în orice condiÆie
de implementare

3.6.1.1 Principalele tipuri de protocoale

Protocoalele se pot clasifica în trei categorii mari: arbitrate, adjudecate


çi liber consfinÆite.
1) Protocoalele arbitrate (arbitrated protocols) - caz în care comunicaÆia
între cei doi corespondenÆi A çi B se desfåçoarå prin intermediul unui
arbitru (TTP - trusted third part). Arbitrul reprezintå o a treia parte
implicatå în protocol, constituind o persoanå de încredere notatå de
acum înainte cu I în desfåçurarea protocolului. NoÆiunea de încredere
se referå la faptul cå toÆi partenerii din protocol acceptå ca adevår
verdictul dat de acesta.
În lumea realå arbitrii sunt: bancheri, judecåtori, notari publici. Într-un
protocol realizat într-un sistem informatic, un arbitru este un banal
24 Autori
program de calculator. Arbitrii sunt necesari când apar tranzacÆii între
parteneri care nu se cunosc çi/sau nu au încredere unul în altul.
Exemplu:
Realizarea unui act de vânzare de la A la B se face conform fig 3.3
unde:
A, B - partenerii tranzacÆiei
I - arbitru (persoanå de încredere).

(1)
(4)

(3) (2)
A B

Figura 3.3 - Protocol arbitrat

Protocolul se desfåçoarå dupå cum urmeazå:


(1) A då titlul de proprietate lui I;
(2) B då cecul lui A;
(3) A depune cecul lui B pentru operare;
(4) Dupå un timp specificat, I då lui B titlul de proprietate al lui
A.
Dacå operaÆiunea (3) nu se efectueazå (cecul nu are acoperire) în timpul
de açteptare specificat, A îi aratå arbitrului probe de neefectuare a plåÆii çi
I îi restituie lui A titlul de proprietate, deci (4) nu se efectueazå.
PrezenÆa unui arbitru într-o reÆea de calculatoare are o serie de
implicaÆii:
- costuri suplimentare;
- întârzieri inerente în protocol;
- arbitrul constituie un punct de “gâtuire” a comunicaÆiei în
cazul unui numår mare de utilizatori; pentru a evita acest
3. Elemente de criptografie / criptologie 25
dezavantaj s-ar putea creçte numårul arbitrilor implicaÆi în
protocol, cu creçterea evidentå a costurilor;
- faptul cå arbitrul este unicul partener din reÆea în care trebuie
avutå încredere, face ca el så devinå un punct vulnerabil
(“coruptibil”) pentru oricine doreçte så distrugå reÆeaua.
2) Protocoale adjudecate (adjudecated protocols)
Pentru a reduce costurile unui protocol arbitrat care necesitå prezenÆa
permanentå a unui arbitru, se pot imagina protocoale în care prezenÆa
arbitrului este necesarå doar în caz de disputå, în rest protocolul
desfåçurându-se fårå arbitru. În consecinÆå, un asemenea protocol va
conÆine douå subprotocoale: unul nearbitrat - executat de fiecare datå când
pårÆile doresc executarea lui - çi al doilea adjudecat, executat doar în
condiÆiile unei dispute între parteneri. Acest arbitru are rolul unui
judecåtor care în cazul unei dispute, în baza probelor prezentate de
parteneri, va da un verdict rezolvând astfel disputa.
În fig 3.4. este reprezentat un protocol adjudecat împreunå cu partenerii
implicaÆi în acesta:
A, B - partenerii tranzacÆiei;
I - arbitru (numai în caz de disputå);
PA çi PB - probe ale partenerilor A çi B necesare a fi prezentate
arbitrului în caz de disputå.

A B

P1 P2

Fig. 3.4 - Protocol adjudecat

Un protocol adjudecat se desfåçoarå dupå cum urmeazå:


 subprotocolul nearbitrat
(1) A çi B negociazå termenii contractului;
26 Autori
(2) A semneazå contractul;
(3) B semneazå contractul.
 subprotocolul arbitrat (în caz de dispute)
(4) A çi B apar în faÆa arbitrului I;
(5) A prezintå probele PA ;
(6) B prezintå probele PB;
(7) din analiza probelor, I hotårǎçte verdictul..
În calculatoare, protocoalele adjudecate se utilizeazå atunci când între
parteneri relaÆiile se bazeazå pe cinste; dacå un partener are suspiciuni de
înçelåciune, existå posibilitatea ca o a treia parte (arbitrul I) så determine
dacå çi cum a înçelat. Deci protocoalele adjudecate nu previn înçelåciunea,
dar o detecteazå; inevitabilitatea detecÆiei acÆioneazå ca o prevenÆie çi
descurajeazå înçelåciunile (ca în cazul magazinelor cu autoservire çi sistem
de monitorizare: nu se controleazå sacoça clientului decât în caz de
înçelåciune).
3) Protocoale autoimpuse (self - enforcing protocols)
Sunt cele mai simple çi mai eficiente dintre protocoale. Fig 3.5 prezintå
o schemå a funcÆionårii unui astfel de protocol.

A B

Fig. 3.5 - Protocol autoimpus

Nu existå arbitru çi nici dispute pentru cå protocolul însuçi garanteazå


cinstea. Dacå unul dintre parteneri încearcå så înçele, ceilalÆi pot detecta
înçelåciunea çi protocolul se opreçte.
În [Scheneier], autorul afirmå cå “în cea mai bunå dintre toate lumile
posibile toate protocoalele ar fi autoimpuse”. Råmâne de våzut dacå o
asemenea lume este posibilå çi - în caz afirmativ - când va fi.
3. Elemente de criptografie / criptologie 27

3.6.2 Protocoale pentru comunicaÆii criptografice simetrice

Un sistem criptografic simetric - care evidenÆiazå çi principalele atacuri -


este dat în fig. 3.6 çi are ca çi parteneri pe:
A, B - parteneri ai protocolului;
F - atacator pasiv (filaj);
H - atacator activ (hacker - hoÆ).

M
F Criptanaliz
å
k

D(C)=M
M C=E(M)
D B
A E

k C=Ek(M) k
A Dk(C)=M
H

Fig 3.6 - Criptosistem simetric cu evidenÆierea atacurilor posibile

Un protocol de comunicaÆie confidenÆialå între A çi B se desfåçoarå


dupå cum urmeazå:
(1) A çi B cad de comun acord asupra unui criptosistem simetric;
(2) A çi B aleg cheia k (secretå), cea mai bunå fiind cheia de
unicå folosinÆå (one time pad) pentru o comunicaÆie;
(3) A trimite lui B mesajul M criptat cu cheia k:
C  E k M  (3.10)
(4) B decripteazå mesajul criptat primit de la A, utilizând aceeaçi
cheie k:
Dk C   Dk Ek M   M . (3.11)
Se pune întrebarea: ce pot face atacatorii în acest caz?
28 Autori
Rolul atacatorului pasiv (F):
 El urmåreçte derularea pasului (3), încrederea criptanalizei
(este un atac asupra textului cifrat) rezistå la acest atac, F nu
poate face criptanalizå decât prin “atacul forÆei brute”, deci cu
o cheie bine aleaså çi ca lungime, F nu va afla nimic.
Rolul atacatorului activ (H):
 poate încerca întreruperea comunicaÆiei în pasul (3);
 poate înlocui mesajul lui A (M) cu mesajul såu M’ dacå aflå
cheia k prin criptanalizå;
 dacå nu aflå cheia k, va putea înlocui C cu C   E k  M  ,
ceea ce va face ca B så decripteze un mesaj lipsit de sens çi-l
va conduce pe B så tragå concluzia cå A (sau sistemul) are
probleme serioase de comunicare.
Din examinarea de mai sus, putem trage concluzia cå pentru sisteme
criptografice simetrice problemele sunt:
 cheia k trebuie distribuitå în secret; ceea ce - pentru sisteme mari -
constituie o problemå deosebitå;
 în cazul compromiterii cheii prin furt sau criptanalizå, sistemul este
compromis;
 dacå se utilizeazå chei diferite pentru fiecare pereche de utilizatori,
numårul cheilor creçte rapid cu numårul utilizatorilor (n):
n n  1
C n2  .
2

3.6.3 Protocoale pentru comunicaÆii criptografice asimetrice


(cu chei publice) çi hibride

În cazul criptosistemelor cu chei publice, fiecare utilizator are o pereche


de transformåri (chei):
E X - transformarea (cheia) publicå, accesibilå public;
D X - transformarea (cheia) privatå, Æinutå secretå.
În consecinÆå, doi parteneri A çi B ai unui protocol care utilizeazå un
criptosistem cu chei publice vor avea E A , D A  çi E B , DB  , unde E A çi
3. Elemente de criptografie / criptologie 29

E B sunt chei publice, putând fi luate dintr-un fiçier public asemånåtor


unei cårÆi de telefon.
Protocolul de comunicare între A çi B are urmåtorii paçi:
(1) A çi B cad de acord asupra unui criptosistem cu chei publice
çi selecteazå dintr-o bancå de date publicå cheile publice ale
partenerilor de comunicaÆie E A çi respectiv E B .
(2) A cripteazå mesajul såu M A cu cheia publicå a lui B çi îl
trimite lui B.
E B M A   C A  B (3.12)
(3) B decripteazå C A utilizând cheia sa privatå D B çi aflå pe
MA:
DB C A   DB E B M A  (3.13)
(4) B cripteazå mesajul såu M B cu cheia publicå a lui A çi-l
transmite lui A:
E A M B   C B  A (3.14)
(5) A decripteazå C B utilizând cheia sa privatå çi aflå pe M B :
D A C B   D A E A M B  (3.15)
ObservaÆii:
 Managementul cheilor este mult mai simplu în cazul criptosistemelor
cu chei publice, numårul perechilor de chei fiind egal cu cel al
utilizatorilor, iar în vederea comunicårii nu este necesarå transmiterea
cheii secrete între utilizatori, ci doar cheia publicå a corespondentului
care se citeçte uçor dintr-o bancå de date accesabilå public.
 Criptosistemele cu chei publice sunt vulnerabile la atacul cu text în
clar la alegere (dat fiind cå cheia de criptare este publicå), dar
atacurile sunt dificile pentru cå E çi D sunt funcÆii neinversabile cu
trapå [deci necunoaçterea trapei face aproape imposibilådeducerea lui
M din E(M)].
 Criptosistemele cu chei publice nu sunt un înlocuitor al
criptosistemelor simetrice, în primul rând deoarece primele sunt de
circa 1000 de ori mai lente.
30 Autori
Sisteme cu chei publice se folosesc doar la transmiterea secretå a cheii
de sesiune folosite pentru comunicaÆie cu chei simetrice. Un asemenea
sistem se numeçte criptosistem hibrid (hybrid cryptosistem).
Protocolul de comunicaÆie într-un criptosistem hibrid este:
(1) A çi B convin asupra unui criptosistem cu chei publice çi obÆin
cheile publice ale partenerului E B respectiv E A ;
(2) A genereazå o cheie aleatoare de sesiune k pe care le
cripteazå cu E B çi le transmite lui B
C A  E B k   B (3.16)
(3) B decripteazå pe C A cu cheia sa privatå D B çi obÆine cheia
de sesiune k:
DB C A   DB E B k   k (3.17)
(4) În comunicaÆiile ulterioare, pentru confidenÆialitate, A çi B
vor folosi aceeaçi cheie de sesiune k çi un criptosistem
simetric.
Concluzii:
 Generarea cheii de sesiune k doar când se doreçte
comunicarea çi ditrugerea ei dupå încheierea comunicårii
face ca atacurile pasive så fie mult mai puÆin eficiente.
ObservaÆie:
 În cadrul acestui paragraf çi în continuare, pentru a
comprima scrierea s-au folosit denumiri improprii de cheie
publicå respectiv privatå pentru transformårile respective care
includ cele douå tipuri de chei; avem convingerea cå aceastå
notaÆie “neortodoxå” nu va produce confuzii de înÆelegere
cititorului.

3.6.4. Protocoale pentru semnåturi digitale

3.6.4.1 Ce este o semnåturå digitalå ?

Semnåtura olografå este o probå a calitåÆii de autor al unui document,


sau cel puÆin de acord cu conÆinutul documentului.
3. Elemente de criptografie / criptologie 31
ProprietåÆile unei semnåturi olografe sunt:
1) Semnåtura så fie autenticå, adicå så aibå calitatea de a convinge
destinatarul cå semnatarul a semnat documentul în mod deliberat.
2) Semnåtura så nu poatå fi refolositå, ceea ce înseamnå cå semnåtura
este parte a documentului.
3) Documentul semnat nu poate fi modificat.
4) Semnåtura nu poate fi repudiatå.
Semnåturile digitale trebuie så påstreze cerinÆele 1)  4), transpuse în
comunicaÆia din reÆele de calculatoare.
ObservaÆie:
Existå destule situaÆii în care cerinÆele 1)  4) nu se respectå pentru o
semnåturå olografå, dar oricum aceste nerespectåri care reprezintå de fapt
delicte - deçi imposibile - sunt mai greu de realizat decât în cazul
calculatorului, la care paste çi copy sunt comenzi atât de uzuale.
Cele patru cerinÆe, transpuse în mediul digital se rezumå la douå cerinÆe
de bazå pentru o semnåturå:
(1) så depindå de mesaj, pentru a nu fi mutatå de pe un mesaj pe
altul (aceastå cerinÆå nu apare în semnåtura olografå pentru
cå nu este cazul);
(2) så depindå de emiÆåtor pentru a nu putea fi falsificatå.
Semnåtura digitalå S [Menezes] este o succesiune de biÆi obÆinutå din
transformarea mesajului (M) çi a unei informaÆii secrete, çtiute doar de
emiÆåtor.
Orice semnåturå digitalå trebuie så poatå fi verificatå, rezultatul acestei
funcÆii putând fi doar “adevårat” sau “fals”.
În cele ce urmeazå vom folosi notaÆiile:
S A - transformarea de semnare pentru entitatea A (ea este secretå);
V A - transformarea de verificare pentru entitatea A (ea este publicå);
S A ,V A  - perechea de transformåri care defineçte schema
(mecanismul) de semnåturå digitalå.
n - rezultatul verificårii {adevårat, fals}.
Protocolul de semnare este:
(1) A calculeazå S  S A M  = : semnåtura mesajului M (folosind
o cheie secretå);
(2) A transmite perechea {M, S}.
32 Autori
Protocolul de verificare:
(1) Verificatorul (B) obÆine funcÆia de verificare a lui A: V A , care
este publicå;
(2) B calculeazå funcÆia de verificare
n  VA M , S  (3.18)
(3) B acceptå cå S  A dacå n = adevårat çi o refuzå dacå n =
fals.
ObservaÆii:
 Transformatele S A çi V A sunt tipic caracterizate de câte o cheie
(secretå, respectiv publicå);
 Algoritmul de verificare V A este determinarea cheii publice.
Pentru funcÆiile de semnare, respectiv de verificare, se cer proprietåÆile:
(a) S este o semnåturå validå a lui A asupra mesajului M dacå çi
numai dacå: V A M , S   adevårat;
(b) este imposibil de determinat pentru altcineva decât A un M çi
S astfel încât V A M , S   adevårat.

(M1 S1) adevårat


M1 S1 (M1 S2)
u = VA(MI, SI)
M2 S2 (M2 S1)
(M2 S2) fals

SA VA
a) b)
Fig.3.7 - Reprezentarea graficå a procedurii de semnare a) çi verificare b)

ObservaÆie:
 semnåturile trebuie så fie verificabile  în caz de conflict så
nu poatå fi repudiate sau reclamate în mod fraudulos; un
arbitru trebuie så poatå rezolva disputa fårå a avea nevoie de
cheia privatå a lui A.
AplicaÆii:
3. Elemente de criptografie / criptologie 33

 autentificare
 integritatea datelor
 nerepudiere
 certificarea datelor publice în reÆele mari
Realizåri:
 existå numeroçi algoritmi pentru semnåturi digitale, toÆi necesitând
informaÆie secretå pentru semnare çi informaÆie publicå pentru
verificare;
 în cazul algoritmilor cu chei publice, cheia privatå folositå la criptare:
D A poate fi folositå la semnare, iar cheia publicå folositå la criptare:
E A poate fi folositå pentru verificare; acesta este cazul algoritmului
RSA.
 în cazul altor algoritmi, implementårile pot fi diferite; de exemplu,
pentru algoritmii bazaÆi pe funcÆii hash (de contracÆie) çi cu certificare
temporalå (TS) se adaugå paçi suplimentari pentru semnare çi verificare;
 o serie de algoritmi pot fi folosiÆi pentru semnåturi, dar nu pot fi
folosiÆi pentru criptare (confidenÆialitate), de exemplu DSA.

3.6.4.2 Protocol de semnare cu criptografie simetricå

Fie situaÆia 1) în care A semneazå un mesaj digital pe care vrea så-l


trimitå lui B. Protocolul se desfåçoarå astfel:
(1) A trimite arbitrului I mesajul M A criptat cu cheia sa k A :
C A  E A M A   I (3.19)
(2) I decripteazå C A , deci obÆine pe M A , la care adaugå o
declaraÆie de autentificare ( M I ) a primirii mesajului de la A
çi le trimite lui B, cripate cu cheia lui B:
CI  EB M A  M I  (3.20)
(3) B decripteazå C I çi poate citi pe M A cât çi certificarea lui I:
DB C I   DB E B M A  M I   M A  M I (3.21)
Fie situaÆia 2) în care B vrea så-i arate lui C mesajul lui A:
(1) B îi trimite arbitrului I mesajul lui A çi certificarea sa M I ,
criptate cu cheia sa proprie:
34 Autori

C B  E B M A  M I  (3.22)
(2) I decripteazå C B çi gåseçte pe M A
DB C B   M A  M I (3.23)
(3) I verificå în baza de date dacå îl are pe M A
(4) I cripteazå cu k C mesajul M A precum çi certificarea sa M I
çi îl trimite lui C:
C I  EC M A  M I  (3.24)
(5) C decripteazå C I çi citeçte pe M A precum çi certificare M I
DC C I   M A  M I (3.25)

Concluzii:
 Aceste protocoale sunt bune, dar extrem de laborioase, totul
tranzitând prin I
 I trebuie så Æinå o bazå de date cu cheile tuturor utilizatorilor
cât çi a mesajelor certificate, astfel încât devine un punct de
“strangulare” a traficului çi în acelaçi timp extrem de
vulnerabil la atac, deoarece el deÆine practic toate
informaÆiile. În plus, ca orice protocol arbitrat este mai
costisitor decât unul nearbitrat.
Propunem cititorului, ca exerciÆiu, så analizeze îndeplinirea cerinÆelor
unei semnåturi digitale în cele douå cazuri prezentate.
O ilustrare graficå a acestor douå situaÆii este prezentatå în fig. 3.8.

I CB=EKB(MA+ MI)

CA=EKA(MA)
CI=EKB(MA+
MI)

A B

CI=EKC(MA+ MI)

C
3. Elemente de criptografie / criptologie 35

Fig 3.8 - Ilustrarea graficå a protocolului de semnare utilizând criptosisteme


simetrice

3.6.4.3 Protocol de semnare utilizând criptografie cu chei


publice

 Protocol de semnare (fårå criptare)


(1) A semneazå mesajul M cu cheia sa privatå D A
S A  D A M  (3.26)
(2) A transmite S A  B (necriptat)
(3) B verificå S A folosind cheia publicå a lui A
V A  E A S A   E A D A M   M (3.27)
ObservaÆie:
Acest protocol este superior celui cu chei simetrice pentru cå nu
necesitå arbitraj
 Protocol de semnare cu criptare
ObservaÆie:
 Existå algoritmi cu chei publice care pot fi utilizaÆi atât pentru
semnåturi digitale (S) cât çi pentru criptare: de exemplu RSA poate fi
folosit la: semnåturå çi confidenÆialitate ( V X  E X çi S X  D X ).
 AlÆi algoritmi cu chei publice, de exemplu DSA [Scheneier][Patriciu (1994)],
se utilizeazå doar pentru semnåturå, neputând fi utilizaÆi pentru
criptare.
(1) A semneazå mesajul M cu cheia privatå D A
36 Autori

S A  D A M  (3.28)
(2) A cripteazå mesajul criptat cu cheia publicå a lui B çi îl
trimite acestuia
C1  E B S A   E B D A M  (3.29)
(3) B decripteazå C cu cheia privatå D B
DB C1   DB E B S A   S A (3.30)
(4) B verificå semnåtura lui A cu cheia sa publicå E A
V A S A M   E A D A M   M (3.31)
ObservaÆii:
 a semna înainte de a cripta este natural. Când A scrie o scrisoare,
semneazå înainte de a pune scrisoarea în plic
 utilizarea aceleiaçi perechi de chei (E, D) pentru semnåturå çi criptare
nu
este obligatorie. (Cheile pot avea dimensiuni diferite çi pot expira la
date
diferite).
Retransmiterea mesajului, ca o confirmare de primire (Resending the
message as a receipt)
(5) B, dupå verificarea lui S A retransmite M semnat ( S B ) la A
cu o confirmare de primire:
C2  E A S B M   A (3.32)
(6) A decripteazå C 2 cu cheia sa privatå, verificå S B cu cheia
publicå a lui B çi dacå M este acelaçi cu cel transmis de el, A
çtie cå B a primit mesajul:
D A C 2   S B M   DB M  (3.33)
VB S B   E B DB M   M  cu cel transmis de A. (3.34)
Atacul de retransmitere (confirmare de primire)
Ipotezå: H (atacatorul) este un utilizator legitim al sistemului deci are
E H , DH 
(1) H înregistreazå mesajul lui A cåtre B în pasul (2)
E B S A M   E B D A M  (3.35)
(2) Dupå un anumit timp, H trimite acest mesaj lui B pretinzând
cå vine de la H (dar nesemnat)
3. Elemente de criptografie / criptologie 37

E B D A M  (3.36)
(3) B decripteazå mesajul
DB E B D A M   D A M  (3.37)
çi verificå semnåtura lui H
VH  E H D A M  (3.38)
(4) B continuå protocolul çi retransmite mesajul lui H
S B  DB E H D A M  (3.39)
E H S B   E H DB E H D A M 
(5) H decripteazå mesajul:
DH E H S B   DB E H D A M  (3.40)
(6) H aplicå cheia publicå a lui B
E B DB E H D A M   E H D A M  (3.41)
(7) H decripteazå încå o datå cu cheia sa privatå
DH E H D A M   D A M  (3.42)
(8) H aplicå cheia publicå a lui A çi obÆine pe M
E A D A M   M (3.43)
çi aça H poate citi corespondenÆa
AtenÆie:
 deçi semnalul decriptat de cåtre B la pasul (3) este fårå sens, el a
continuat protocolul, generând astfel insecuritate; dacå B ar fi
verificat mesajul înainte de a-l retransmite, acest atac nu era posibil;
 nu semnaÆi niciodatå mesaje arbitrare de la alte persoane, nu decriptaÆi
mesaje arbitrare çi nu difuzaÆi rezultatele obÆinute de alÆii.
Contracararea atacului de retransmitere
- utilizarea de operaÆii distincte (chiar dacå apropiate) pentru
criptare respectiv semnåturå;
- chei diferite pentru criptare çi semnåturå;
- algoritmi diferiÆi pentru criptare çi semnåturå;
- certificare temporalå care fac ca semnåtura de intrare så fie
diferitå de cea de ieçire;
- semnåturi digitale cu funcÆii hash.
Atacuri în criptografia cu chei publice
 cheia publicå trebuie så fie protejetå la accesul la scriere;
38 Autori

 pentru a prevenii înlocuirea ei în timpul transmisiei, I


(autoritate de certificare a cheilor - KDC) trebuie så semneze
fiecare cheie publicå cu cheia sa privatå. Când A primiçte
cheia lui B, verificå semnåtura lui I.

3.6.4.4 Protocol de semnare çi certificare temporalå (TS -


time stamping)

Dacå A a semnat un cec cåtre B, acesta poate încasa banii çi apoi


reutiliza o copie a contractului semnat. Prevenirea acestei situaÆii se poate
face prin certificare temporalå (TS):
S A  D A ( M  TS)

3.6.4.5 Protocol de semnare cu sisteme cu chei publice çi


funcÆii hash

FuncÆii de dispersie (hash)


FuncÆiile hash - cunoscute çi sub denumirea de funcÆii de compresie
(compression), contracÆie (contraction) sau de rezumat al mesajului
(message digest) ori amprentå digitalå (fingerprint) - sunt funcÆii care au la
intrare un çir de date de lungime variabilå n - numitå preimagine - çi la
ieçire dau un çir de lungime fixå m (uzual 128 sau 160 de biÆi) numit
valoarea funcÆiei hash (hash value - HV).

n = m
FuncÆie hash
.. .
H
preimagine valoare hash (VH)

Fig. 3.9 - Ilustrarea graficå a conceptului de funcÆie hash

ObservaÆie: În [Patriciu (1994)] funcÆia hash este denumitå funcÆie de


dispersie.
3. Elemente de criptografie / criptologie 39
ProprietåÆi:
 valoarea hash constituie o amprentå digitalå a intrårii; dacå douå
çiruri la intrare dau aceeaçi valoare H nu se poate spune cu
certitudine cå cele douå çiruri sunt identice, dar aceastå
probabilitate este extrem de micå: p  2  n , deci funcÆiile hash pot fi
utilizate pentru a indica un grad destul de mare de asemånare;
 valoarea de dispersie (HV) se calculeazå extrem de uçor;
 çirul de intrare (preimaginea) se determinå destul de greu când se
cunoaçte HV. Aceasta proprietate împreunå cu cea precendentå
justificå încadrarea funcÆiilor hash în categoria funcÆiilor
neinversabile (one-way hash);
 este o funcÆie “fårå ciocnire“ (collision-free) în sensul cå este greu
de determinat douå preimagini care så aibå aceeaçi valoare hash
(VH);
 funcÆia hash este publicå.
AplicaÆii:
- în tranzacÆii financiare.
HV este o amprentå digitalå a fiçierelor; dacå vrei så verifici cå cineva
are acelaçi fiçier pe care îl ai çi tu, fårå så-l transmitå, îi ceri valoarea hash.
Dacå valoarea hash transmiså  HV calculat de tine  este aproape sigur
cå acea persoanå are acel fiçier.
Coduri de autentificare a mesajelor [Scheneier] care constau din
calcularea lui HV çi semnarea acestuia cu o cheie secretå astfel încât doar
cel care deÆine cheia secretå k poate verifica HV:
MAC - message autentication code
DAC - data autentication code
ObservaÆii:
Dacå documentele semnate M sunt mari, semnarea lor cu algoritmul cu
chei publice este ineficientå
Pentru a reduce timpul, nu se semneazå M çi HV (valoarea hash a lui
M).
(1) A çi B convin asupra algoritmului de semnåturi digitale çi funcÆii
hash.
(2) A calculeazå valoarea hash a lui M: HV = Hash (M).
(3) A semneazå HV cu cheia sa privatå:
40 Autori

S A  D A HV M  (3.44)
(4) A trimite M çi S A cåtre B, criptat cu cheia publicå a lui B:
C B  E B S A  M   E B D A HV M   M  (3.45)
(5) B decripteazå C B çi gåseçte M çi S A dupå care determinå pe
HV(M) çi o comparå cu cea decriptatå
DB C B   S A  M . (3.46)
HV M CALC  HashM  (3.47)
V A S A   E A S A   E A D A HV   HV M DECRIPTATA (3.48)
dacå (a)  (b)  S A este validatå
Avantaje:
 vitezå mare;
 securitate sporitå: p  2 160 de a avea douå HV identice;
 S A poate fi påstratå separat de documentul M, ocupând o memorie
mult mai micå.

Utilizåri:
 sisteme de arhivare fårå citirea documentelor;
 obÆinerea dreptului de autor prin påstrarea secretului documentului.

3.6.4.6 Protocoale pentru semnåturi multiple

Fårå funcÆii hash


A çi B semneazå câte o copie (separat) a documentului M  mesajul
rezultant, având ambele copii este dublu ca dimensiune.
(1) A semneazå M  S A  D A M 
(2) B semneazå al doilea
V A  E A S A   M
 (3.49)
S B  D B S A  M 
Cu funcÆii hash
(1) A semneazå VH a lui M:
S A  D A VH M  (3.50)
(2) B semneazå VH a lui M:
3. Elemente de criptografie / criptologie 41

S B  DB VH M  (3.51)
(3) B trimite S B la A
(4) A trimite la C: S A  S B  (3.52)
(5) C verificå S A çi S B

3.6.4.7 Protocol de semnåturi digitale çi nerepudiere

A poate înçela semnând un document çi apoi pretinzând cå nu l-a


semnat; invocå pierderea sau furtul cheii private deci repudiazå pe S A -
certificarea temporalå limiteazå acest efect, dar el existå dacå A dateazå
documentul dupå dorinÆå. Asemenea situaÆii sunt evitate cu protocolul:
(1) A semneazå mesajul: S A
(2) A genereazå un antet de identificare (AI), concateneazå antetul cu
S , demneazå totul: S   D S  AI  çi trimite la arbitrul I
A A A A

(3) Arbitrul I verificå S A çi confirmå informaÆiile de identificare AI. (I)


adaugå o certificare temporalå (TS) la S A  AI , semneazå totul
S I  DI S A  AI  TS  çi trimite la A çi B
(4) B verificå S I , identificând AI çi S A
(5) A verificå S I , deci mesajul trimis de I lui B. Dacå nu-çi gåseçte S A
apare o disputå
ObservaÆie: Aceastå problemå poate fi soluÆionatå çi de protocoale
adjudecate; propunem cititorului ca exerciÆiu aceastå a doua cale.
Semnåturi în alb (blind signatures) [Scheneier]
O tråsåturå esenÆialå a protocoalelor de semnåturi digitale este cå
semnatarul cunoaçte ceea ce a semnat. Existå situaÆii în care anumite
persoane semneazå documente fårå så fi våzut niciodatå conÆinutul
acestora. Sunt cåi prin care semnatarul poate cunoaçte aproximativ, dar nu
exact, ceea ce semneazå.
Semnåturi complet în alb (completely blind signatures)
Fie:
B - notar public
42 Autori
A - doreçte ca B så semneze un document, dar nu doreçte ca B så
çtie conÆinutul documentului; pe B nu-l intereseazå conÆinutul
documentului, doar certificå cå acesta a fost notarizat.
Protocolul de semnare se desfåçoarå astfel:
(1) A ia documentul çi îl aleatorizeazå; aceastå valoare aleatoare
se numeçte factor de ascundere (blinding factor).
(2) A trimite documentul “ascuns (blinded) lui B”.
(3) B semneazå documentul “ascuns”.
(4) A înlåturå factorul de ascundere (dezaleatorizeazå
documentul), obÆinând documentul original semnat de B.
ProprietåÆile unei semnåturi complet în alb:
1) Semnåtura lui B pe document este validå. Semnåtura este
dovada cå B a semnat documentul çi are toate proprietåÆile
unei semnåturi digitale.
2) B nu poate corela documnentul semnat cu actul de semnare
propriu-zis. Chiar dacå el ar Æine o copie a tuturor
semnåturilor în alb acordate, el nu ar putea determina când
anume a semnat un anumit document.
Riscul semnåturilor complet în alb:
 A îl poate face pe B så semneze orice, de exemplu “B
datoreazå lui A 1.000.000 $”.

3.4.6.8 Semnåtura în alb (blind signatures)

Pentru a evita riscul menÆionat anterior, se va cåuta o cale în care B så


çtie ce semneazå, menÆinând în acelaçi timp çi proprietåÆile utile ale
semnåturii în alb.
Principiul: taie çi alege (cut and choose)
Exemplul 1: controlul vamal: soluÆia postbelicå: 1 din 10 [Scheneier];
controlul se efectueazå doar la 1 din 10 persoane.
Semnåtura în alb lucreazå ca în exemplul anterior. Lui B i se va da o
mare gråmadå de documente “ascunse” la semnat. El va deschide tot,
exceptând ultimul document pe care îl semneazå fårå a-l deschide.
Documentul ascuns se aflå în plic. Procesul de ascundere  punerea
documentului în plic. Procesul de înlåturare a factorului de ascundere 
deschiderea plicului.
3. Elemente de criptografie / criptologie 43
Exemplul 2: agenÆia de contra-spionaj
Fie un grup de agenÆi de contra-spionaj; identitatea lor este secretå
chiar çi pentru agenÆie. Directorul agenÆiei vrea så dea fiecårui agent un
document semnat care så-i ofere imunitate diplomaticå. Fiecare agent are
propria listå cu nume de acoperire çi nu doreçte ca agenÆii så o cunoascå
de teama spargerii calculatorului agenÆiei. Pe de altå parte agenÆia nu
doreçte så semneze în alb absolut orice document pentru a preîntâmpina
situaÆii de genul: “Agentul X a fost pensionat çi pensia anualå este de
100.000 $”.
Presupunem cå fiecare agent are 10 nume de acoperire cunoscute doar
de ei. Fie:
A - computerul agenÆiei
B - agentul sub acoperire
(1) B pregåteçte n nume, fiecare cu alt nume de acoperire, care îi
conferå imunitate diplomaticå.
(2) B aleatorizeazå fiecare document cu un factor de ascundere
diferit.
(3) B trimite cele n documente ascunse lui A.
(4) A alege (n-1) documente la întâmplare çi îi solicitå lui B
factorii de ascundere.
(5) B trimite lui A cei (n-1) factori de ascundere solicitaÆi.
(6) A deschide cele (n-1) plicuri, deci înlåtura factorul de
ascundere çi se asigurå de conÆinutul acestora.
(7) A semneazå ultimul document nedeschis çi-l trimite lui B.
(8) B înlåturå factorul de ascundere çi citeçte noul nume de
acoperire ce-i asigurå imunitate diplomaticå: Ion Ionescu
(VårguÆå Purpurie, Crimson Streak).

3.6.5 Protocoale pentru schimbul de chei

În tehnica criptograficå uzanÆa este de a utiliza o singurå cheie pentru


fiecare comunicaÆie criptatå numitå cheie de sesiune (key session).
44 Autori
3.6.5.1 Schimb de chei cu criptografie secretå

(1) I
kA kB

(2) (k,kA)
(5)
A B
(4) (k,kB)
(6)
k
Fig. 3.10 - Protocol de schimb de chei în criptografia simetricå

(1) A cere arbitrului I o sesiune de chei pentru a putea comunica


confidenÆial cu B
(2) I genereazå o cheie de sesiune k çi cripteazå 2 copii cu k A çi
k B çi le trimite lui A
E A (k )  A
E B k   A
(3) A decripteazå cu cheia sa secretå k A çi gåseçte k:
D A E A k   k (3.53)
(4) A trimite lui B copia cheii de sesiune k, criptatå cu k B
E B k   B
(5) B decripteazå cu cheia sa secretå k B çi gåseçte k
DB E B k   k (3.54)
(6) Atât A cât çi B pot comunica confidenÆial utilizând k.
ObservaÆii:
 A çi B au fiecare de la I (centrul de distribuÆie a cheilor KDC)
k A çi k B ;
 acest protocol presupune absoluta securitate a lui I, chiar
dacå acesta este un program de calculator;
3. Elemente de criptografie / criptologie 45

 I are copia tuturor cheilor k, deci poate citi tot traficul din
reÆea;
 PotenÆial I este un punct de “strangulare” a traficului în reÆea.

3.6.5.2 Schimb de chei cu criptografie cu chei publice

Principiul:
 A çi B utilizeazå criptografia cu chei publice pentru a stabili cheia de
sesiune k
 ComunicaÆia confidenÆialå între A çi B se face cu criptografie
simetricå

I
(1) EB
(1) EA (3) DB (EB(k))=k
(2) EB(k)

A B
EH EB H EA EH

Fig 3.11 - Protocol de schimb de chei în criptografia asimetricå

Protocolul este:
(1) A çi B îçi procurå de la I (CDC - centru de distribuÆie a
cheilor) cheile publice E A çi E B
(2) A genereazå o cheie de sesiune aleatoare k pe care o cripteazå
utilizând cheia publicå a lui B çi o trimite la B: E B k 
(3) B decripteazå mesajul primit de la A utilizând cheia sa privatå
DB :
DB E B k   k (3.55)
(4) A çi B comunicå confidenÆial între ei folosind cheia cheia
secretå k
Atacul “om la mijloc” (man in the middle attack)
46 Autori
(1) H - atacatorul activ, înlocuieçte cheia publicå a lui A sau B cu
cheia sa publicå: E H (în timpul transmiterii de la A la B çi
invers, fie într-o bazå de date a CDC)
(2) Toate mesajele criptate în acest caz de A çi B vor trece pe la H
care le va decripta cu uçurinÆå
Protocolul de interblocare (interlock protocol)
Protocolul de interblocare a fost inventat de Ron Rivest çi Adi Shamir çi
poate contracara atacul “om la mijloc”. Paçii acestuia sunt:
(1) A çi B intrå în posesia cheilor publice E A çi E B fie de la
CDC fie transmiÆându-le direct unul altuia
(2) A cripteazå M A cu E B çi transmite jumåtate din
criptogramå:
C A  E B M A  (3.56)
(3) B cripteazå M B cu EA çi transmite jumåtate din
criptogramå:
C B  E A M B  (3.57)
(4) A trimite lui B cealaltå jumåtate din C A
(5) B pune împreunå cele douå jumåtåÆi recepÆionate de la A çi le
cripteazå cu cheia sa privatå

E B M A   E B M A   E B M A 
1 1
(3.58)
2 2
DB E B M A   M A (3.59)
(6) A procedeazå identic çi obÆine M B

ObservaÆii:
 H nu mai poate face nimic deoarece ½ din M A sau M B nu
are utilitate  ½ reprezentând tot al doilea bit  pentru un
algoritm de tip bloc;
 decriptarea poate depinde de vectorul de iniÆializare, care se
poate transmite în a doua jumåtate a mesajului;
3. Elemente de criptografie / criptologie 47

 prima jumåtate a mesajului poate fi o funcÆie hash a


mesajului criptat, iar cea de-a doua parte poate fi chiar
mesajul criptat.

3.6.5.3 Schimb de chei cu semnåturi digitale

 Dacå în schimbul de chei se utilizeazå semnåturile digitale, se


poate preveni atacul “om la mijloc”.
 Existå un arbitru I (CDC) care semneazå E A çi E B . Când A
çi B primesc cheile, fiecare verificå semnåtura lui I, dupå care
protocolul se desfåçoarå ca la punctul B al subcapitolului de
faÆå.
ObservaÆii:
 H este în imposibilitate de atac.
 Çi în acest caz existå riscul compromiterii lui I (CDC), dar acesta este
mai mic decât la B; obÆinerea lui D I (cheia privatå a lui I) este
folositå doar pentru semnarea cheilor, nepermiÆând acestuia
decriptarea cheilor de sesiune precum çi a traficului din reÆea.
 Atacul poate fi reuçit dacå H înlocuieçte pe D I cu D H , dar aceasta
înseamnå cå H interceptezå çi modificå datele din CDC, ceea ce este
mult mai greu decât a sta pasiv într-o reÆea çi a privi la trecerea
mesajelor.
 Într-un canal de difuziune (reÆea radio) este aproape imposibil de a
înlocui un mesaj cu altul fårå blocarea întregii reÆele. În reÆele de
calculatoare acest lucru este din ce în ce mai uçor.

3.6.5.4 Transmiterea cheilor çi mesajelor

Principiul: transmiterea criptatå de mesaje, fårå existenÆa prealabilå a


unui protocol de schimb de chei.
(1) A genereazå o cheie de sesiune aleatoare k çi o foloseçte la
criptarea lui M: E k M 
(2) A selecteazå dintr-o bazå de date publicå cheia lui B: E B
(3) A cripteazå k cu cheia publicå a lui B: E B k 
48 Autori

(4) A transmite lui B atât mesajul criptat: E B k  cât çi cheia


criptatå: E k M 
(5) B obÆine pe k:
DB E B k   k (3.60)
(6) B obÆine pe M folosind la criptare cheia k:
Dk E k M   M - algoritm simetric (3.61)
ObservaÆii:
 Acest algoritm hibrid este cel mai folosit în sistemele de comunicaÆie;
 pentru mårirea securitåÆii în cazul atacului “om la mijloc”, A poate
semna transmisiunea în pasul (4);
 poate fi combinat cu:
- semnåtura digitalå
- certificarea temporalå
- alte protocoale de securitate.

3.6.5.5 Difuzarea cheilor çi a mesajelor

(1) A genereazå o cheie de sesiune k çi cripteazå M: E k M 


(2) A selecteazå dintr-o bazå de date cheile publice: E B , E C ,
E D çi cripteazå cheia k: E B k  , E C k  , E D k  .
(3) A difuzeazå E k M  çi E B k  , E C k  , E D k  .
(4) Doar B, C çi D pot decripta k çi apoi obÆine M
ObservaÆie:
Un server central poate distribui E B , E C , E D ; el înså nu trebuie så fie
de încredere (protejat), deoarece el nu este capabil så decripteze nici un
mesaj

3.6.6 Protocoale de autentificare [Scheneier]

Problema: dacå A intrå într-un calculator (ex: sistemul bancar


telefonic) cum çtie calculatorul cine este acesta? De unde are calculatorul
garanÆia cå nu este H care încearcå så foloseascå identitatea lui A?
Råspunsul:
3. Elemente de criptografie / criptologie 49

- Problema anterioarå se rezolvå tradiÆional prin “parole” P.


- A introduce parola çi calculatorul verificå dacå este corectå.
- Parola se cere de fiecare datå când A doreçte så acceseze
calculatorul.

3.6.6.1 Autentificare cu funcÆii neinversabile (f)

Roger Needham çi Mike Guy au aråtat cå calculatorul nu trebuie så


cunoascå parola. El trebuie doar så facå distincÆie între parolele corecte çi
cele incorecte. Acest lucru se realizeazå uçor cu funcÆiile neinversabile. În
loc de memorarea parolelor, calculatorul memoreazå f  A .
(1) A trimite calculatorului parola P
(2) Calculatorul calculeazå f P 
(3) Calculatorul comparå de fiecare datå f Pi  cu valoarea
memoratå
f P 
ObservaÆii:
 Acest algoritm atenueazå atacul la bånci de date în care sunt
memorate parolele.
 f Pi  nu sunt utile deoarece f 1 Pi   Pi este extrem de greu
de calculat.
Atacul de tip dicÆionar
Un fiçier de parole criptat cu o funcÆie neinversabilå: f Pi  este încå
vulnerabil:
- H poate încerca de exemplu 10 6 parole (cele mai uzuale)
pentru care calculeazå f Pi  çi memoreazå rezultatele; dacå
fiecare f Pi   8 B  fiçierul are 8 MB (deci nu este exagerat
de mare).
- H furå din calculator lista f Pi  çi o comparå cu lista
calculatå de el pentru a vedea potrivirile.
- Acesta este atacul de tip dicÆionar çi este surprinzåtor de
eficient.
Sufixul (salt)
50 Autori

Sufixul este - prin definiÆie - un çir aleator S i care se concateneazå cu


Pi , înaintea lui f; f Pi  Si  se memoreazå. PrezenÆa lui S i diminueazå
atacul de tip dicÆionar.
ObservaÆii:
 mulÆimea S i este mare;
 majoritatea sistemelor UNIX utilizeazå pt S i =12 biÆi;
 existå programe de “ghicit parola” (password guessing
program) care sparg çi pe S i ;
 S i nu este un panaceu universal  creçterea lungimii lui
S i protejeazå la atacurile dicÆionar asupra fiçierelor parolate,
nu înså asupra unui atac concentrat asupra unei singure
parole;
 S i protejeazå persoanele care au aceeaçi parolå pe maçini
multiple, dar nu sunt cu nimic mai bune decât parolele slab
alese.

3.6.6.2 Autentificare cu chei publice

Problema: Çi în cazul folosirii sufixelor, f Pi  Si  este vulnerabil. În


cazul (1) oricine are acces pe canal poate afla S i çi Pi , iar dacå F are
acces la memoria
calculatorului, poate vedea S i çi Pi înainte de a se calcula f Pi  Si  .
SoluÆia:
- Criptografia cu chei simetrice.
- Calculatorul are un fiçier cu toate cheile publice E i .
- utilizatorii îçi Æin acaså cheile private Di .
(1) Calculatorul trimite lui A un çir aleator X;
(2) A cripteazå X cu cheia sa privatå D A çi îl trimite
calculatorului;
C A  D A X  (3.62)
(3) Calculatorul, utilizând cheia publicå a lui A decripteazå C A ;
E A C A   E A D A  X   X (3.63)
3. Elemente de criptografie / criptologie 51
(4) Dacå X decriptat la (3)  X transmis la (2), A are acces la
sistem.
ObservaÆii:
 nimeni nu cunoaçte D A , deci nu se poate falsifica identitatea lui A;
 A nu transmite niciodatå D A pe canal, deci nu sunt posibile atacuri
pasive;
 cheia privatå D A trebuie så fie lungå çi nenumericå çi se calculeazå
automat în hardul calculatorului sau în softul de comunicaÆie  este
necesar un terminal inteligent de comunicaÆie în care A så aibå
încredere, dar atât canalul cât çi calculatorul gazdå nu trebuie så fie
sigure;
 pasul (1) este neobiçnuit: nimeni nu va cripta un çir arbitrar venit de
nu se çtie unde (calculatorul nu trebuie så fie sigur); pentru mårirea
siguranÆei, algoritmul se modificå dupå cum urmeazå:
(1) A genereazå un çir aleator X A , îl cripteazå cu cheia sa
secretå çi-l trimite calculatorului.
(2) Calculatorul îi trimite lui A un çir aleator diferit: X.
(3) A face o serie de calcule bazate pe numerele aleatoare (X çi
X A ) çi cheia privatå D A çi trimite rezultatul calculatorului.
(4) Calculatorul face o serie de calcule asupra numerelor primite
de la A pentru a verifica dacå A îçi cunoaçte cheia privatå.
(5) Dacå A îçi cunoaçte cheia D A , identitatea lui A este
verificatå.

3.6.6.3 Autentificarea mesajelor

Problema: Când B primeçte un mesaj de la A, de unde çtie cå este


autentic?
SoluÆia: semnarea mesajului de cåtre A.
ObservaÆii:
 criptografia simetricå furnizeazå o anumitå autentificare:
- când B primeçte de la A un mesaj criptat cu cheia
comunå secretå k, el çtie cå vine de la A, deoarece numai
A cunoaçte chei;
52 Autori
- B nu poate convinge o a treia parte de identitatea lui A; el
nu poate convinge un arbitru (I) cå mesajul vine de la A,
dat fiind cå atât A cât çi B deÆin aceeaçi cheie, deci nu
existå posibilitatea identificårii emiÆåtorului.

3.7 Algoritmi criptografici (cifruri)

Algoritm criptografic  : funcÆia (funcÆiile) matematicå(e) utilizatå(e)


pentru criptare / decriptare
 În general existå douå funcÆii destinate pentru:
- criptare (E)
- decriptare (D)
 Atât criptarea cât çi decriptarea sunt controlate de una sau mai multe
chei criptografice K i  .

3.7.1 Algoritmi simetrici

Algoritmii simetrici (dupå cum s-a aråtat în secÆiunea 3.1.2) se clasificå


în douå categorii mari: algoritmi secvenÆiali çi algoritmi bloc.

3.7.1.1 Algoritmi secvenÆiali

 Textul în clar M este considerat ca un çir de simboluri dintr-


un alfabet A; prin cifrare fiecare simbol al textului în clar este
transformat într-un alt simbol al mesajului criptat, deci la
ieçire se obÆine un çir de simboluri ale criptogramei.
 A - alfabetul mesajului în clar.
 C - alfabetul mesajului cifrat.
 S - cifrarea secvenÆialå: s : A  C .
ObservaÆii:
 Dacå A  C   0, 1  , nu se recomandå criptarea.
 Cifrurile secvenÆiale sunt o variantå modernå a cifrului
Vigenere.
3. Elemente de criptografie / criptologie 53

 Cheia folositå în cazul acestor cifruri K este generatå de un


RDR (starea iniÆialå çi polinomul generator pot fi controlate
prin chei).

Criptarea: E K M   M  K  C . (3.64)
Decriptarea: DK C   C  K  M  K   K  M . (3.65)

ObservaÆii:
 pentru cifruri secvenÆiale puternice se au în vedere:
- schimbarea periodicå a lui g i  X 
- pe timpul pauzelor între mesaje, se vor transmite valorile
aleatoare produse de un generator de zgomot

Recomandåm cititorului consultarea bibliografiei: [Angheloiu et al. (1986)]


pp. 78-91; [Patriciu (1994)] pp. 85-89 çi [Scheneier] cap.16; iar pentru aplicaÆii
[Scheneier] cap.17 : RC-4, SEAL, etc.

3.7.1.2 Algoritmi (cifruri) bloc

 Mesajul în clar M este împårÆit în blocuri, de obicei de aceeaçi


dimensiune, fiecare bloc fiind cifrat independent.
 Cifrurile bloc sunt cifruri produs iterate având la bazå
substituÆia çi transpoziÆia.
 Lungimile tipice ale blocurilor sunt: 32  128 biÆi.
 Cheia de cifrare K are de obicei aceeaçi lungime cu a
blocurilor.
 1970 - anii de dezvoltare a cifrurilor bloc (la baza acestora au
stat lucrårile lui Shannon).

Componentele de bazå ale cifrurilor bloc sunt transformårile de:


 transpoziÆie - cutiile P - permutare (P - box).
 substituÆia - cutiile S - sustituÆie (S - box).
54 Autori

Cutia P

M0 C0

M1 C1
M2 C2

M3 C3
 
M7 C7

Fig.3.12 - Exemplu de cutie P

 transformårile operate de P sunt liniare, legåturile interioare


ale unei cutii P putând fi determinate prin punerea unui “1”
la fiecare intrare çi marcarea ieçirii corespondente

Cutia S

P
0 0
M0 1 1
C0
2 2
M1 CB 3 3 CZ C1
Z 4 4 B
M2 5 5 C2
6 6
7 7
3. Elemente de criptografie / criptologie 55

Fig 3.13 - Exemplu de cutie S

Intrare M0 M1 M2 C0 C1 C2 Ieçire
0 0 0 0 1 1 0 3
1 1 0 0 1 1 1 7
2 0 1 0 0 0 0 0
3 1 1 0 0 1 1 6
4 0 0 1 0 1 0 2
5 1 0 1 1 0 1 5
6 0 1 1 0 0 1 4
7 1 1 1 1 0 0 1

Tabelul 3.5 - Stårile intrårilor çi ieçirilor pentru cutia S din fig. 3.13.

 Într-o cutie S se fac atât transformåri liniare (prin P) cât çi


neliniare (prin CBZ çi CZB).
 Numårul de permutåri posibile pentru o cutie S cu n intråri
 
este 2 n !

Exemple:
 n=3  2 3  8  8!  40320 permutåri
  
dacå n = 128  2128 !  criptanaliza exhaustivå imposibilå
tehnic

Un cifru bloc  : o alternanÆå de cutii P çi S


 cutiile sunt fixe (fårå cheie) çi prin permutarea pe care o fac
realizeazå “difuzia”;
 cutiile S primesc la intrare atât informaÆia (4x4) cât çi cheia
de cifrare K   8, K   8 , care are rolul så comande
substituÆia liniarå; în acest fel cutiile S realizeazå “confuzia”:
56 Autori

K  K K   16 biÆi  câte doi biÆi de fiecare cutie S, ceea ce


creazå posibilitatea selectårii uneia din 4 substituÆii posibile.

k' k''
8 8
M0 C0
B i 4 4 4 4 B c
S
l n M1 S C1 l i
o c 1 1 o f
4 4 4 4
c l S S c r
P1 M
P20 P3
t a 2 2 t a
4 S 4 4 S 4 e t
e r
x 3 3 x
M15 4 S 4 4 S 4 C15 t C
t M
4 4

Fig.3.14 - Sistem de cifrare bloc

AplicaÆii:
 LUCIFER
 IDEA
 DES
Prezentate pe larg în [Scheneier], [Patriciu (1994)], [Stallings] çi [Menezes]
Sistemul
 DES (Data Encryption Standard)
 DEA (Data Encryption Algoritm) - ANSI (American
National Standards Institute)
 DEA - 1 - ISO
3. Elemente de criptografie / criptologie 57
Caracteristici:
- flexibilitatea implementårii çi utilizårii în diferite aplicaÆii;
- fiecare bloc cifrat este independent de celelalte;
- nu este necesarå sincronizarea între operaÆiile de criptare /
decriptare ale unui bloc;
- pentru creçterea securitåÆii se poate aplica algoritmul T-DES
care constå în iterarea de trei ori a algoritmului DES;
Deçi då semne de “båtrâneÆe” DES-ul s-a comportat excepÆional timp de
20 de ani la atacuri criptanalitice çi este considerat încå sigur. Consideråm
cå istoria apariÆiei sale meritå a fi amintitå [Scheneier], deoarece ea
reprezintå un model de conlucrare eficientå a lumii çtiinÆifice, a
producåtorilor de echipamente, a consumatorilor çi - în final - a factorului
politic în dezvoltarea unei probleme de mare actualitate.

Dezvoltarea standardului
La începutul anilor 70 cercetarea criptograficå nemilitarå era
întâmplåtoare. Aproape cå nu erau lucråri publicate în domeniu.
Majoritatea oamenilor çtiau cå militarii utilizau coduri speciale pentru a
comunica, dar puÆini erau cei ce înÆelegeau çtiinÆa criptografiei. NSA
(National Security Agency) avea cunoçtinÆe considerabile, dar nici nu
admiteau public cå existå.
Anumite companii mici fåceau çi livrau echipamente criptografice, în
afara SUA, diferitelor guverne. Echipamentele erau total diferite fårå
posibilitate de interconectare. Nimeni nu çtia måcar dacå era sigur, dat
fiind cå nu exista un organism independent care så certifice securitatea.
În 1972, NBS (National Bureau of Standards) aståzi NIST (National
Institute of Standards and Technology), a iniÆiat un program pentru
protecÆia calculatoarelor çi comunicaÆiilor de date. Ca parte a acestui
program, ei doreau så dezvolte un singur standard pentru un algoritm
criptografic. Un singur algoritm ar fi putut fi testat çi certificat, iar
diferitele echipamente criptografice care l-ar fi folosit ar fi fost compatibile
çi ar fi fost în acelaçi timp mai ieftin de implementat çi mai rapid
disponibile.
La data de 15 mai 1973 NBS a fåcut publice cererile pentru propuneri
de algoritmi criptografici standard. Criteriile specificate au fost:
58 Autori
- algoritmul trebuie så asigure un nivel ridicat de securitate
- algoritmul trebuie complet specificat çi uçor de înÆeles
- securitatea algoritmului trebuie så fie cuprinså în cheie çi nu
în secretul algoritmului
- algoritmul trebuie så fie disponibil tuturor utilizatorilor
- algoritmul trebuie så se poatå adapta diferitelor aplicaÆii
- algoritmul trebuie så poatå fi implementat economic cu
circuite electronice
- algoritmul trebuie så fie eficient în utilizare
- algoritmul trebuie så poatå fi evaluat
- algoritmul trebuie så poatå fi exportabil
Råspunsul public la prima strigare a aråtat cå interesul pentru un
standard criptografic era mare, dar existau puÆini specialiçti (în domeniul
public). Nici una dintre propuneri nu a îndeplinit cerinÆele specificate.
La data de 27 august 1974, NBS a fåcut a doua cerere (Federal
Register). Primiserå promisiunea unei candidaturi: un algoritm descoperit
de IBM la începutul anilor 1970 (LUCIFER). IBM avea un grup de
criptografi la Kingston çi Yorktown Heights. Algoritmul, deçi complicat,
era clar. Utiliza doar operaÆii simple pe grupuri mici de biÆi çi se putea
implementa destul de eficient.
NBS a cerut agenÆiei NSA så evalueze securitatea algoritmului çi så
determine dacå poate constitui un standard federal. IBM a patentat
algoritmul, dar dorea ca drepturile de autor så fie date altora pentru
fabricaÆie, implementare çi utilizare.
La data de 17 martie 1975, Registrul Federal a publicat algoritmul dat
de NBS çi cerinÆele companiei IBM de neexclusivitate çi a cerut comentarii.
Çi comentariile au fost multe. ToÆi erau speriaÆi cå NSA a modificat
algoritmul instalând o trapå. Ei au comentat cå NSA a redus cheia de la
128 la 56 de biÆi.
În 1976, NBS a Æinut douå conferinÆe pentru a evalua standardul
propus. Prima conferinÆå a discutat matematica algoritmului çî
posibilitatea unei trape. Cea de-a doua conferinÆå a discutat problema
creçterii dimensiunii cheii. Au fost invitaÆi: proiectanÆii algoritmului,
evaluatorii, implementatorii, vânzåtorii, utilizatorii çi criticii. Dupå toÆi,
conferinÆele au fost strålucite.
NBS a publicat:
3. Elemente de criptografie / criptologie 59

 La data de 26 noiembrie 1976, DES a fost adoptat ca standard


federal çi autorizat pentru utilizare în comunicaÆii
guvernamentale (unclassified) secrete.
 La data de 15 ianuarie 1977 - descriere oficialå a
standardului.
 1981 publicarea ghidului pentru implementarea çi utilizarea
DES.
 specificaÆiile DES pentru criptarea parolelor.
 specificaÆiile DES pentru autentificarea datelor.
ObservaÆii:
 Toate aceste standarde sunt fårå precedent. Niciodatå pânå
atunci un algoritm evaluat de NSA nu a fost fåcut public
 NSA a gândit DES doar ca hardware; standardul DES
mandata o implementare hard, dar NBS a publicat suficiente
detalii, astfel încât oamenii så poatå implementa DES soft.
 NSA a apreciat cå DES a fost una dintre cele mai mari greçeli
ale lor; dacå ar fi çtiut cå atâtea detalii vor fi date încât
oamenii så-l poatå implementa soft, nu ar fi acceptat så-l
evalueze.
 DES a fost cel mai puternic catalizator în domeniul
criptografiei. Exista un algoritm pentru studiu: unul socotit
sigur de NSA.
Adoptarea standardului
ANSI - American National Standards Institute a aprobat DES-ul ca
standard pentru sectorul privat în 1981 (ANSI X3.92). Ei l-au numit DEA
(Data Encryption Algorithm).
 douå grupuri din ANSI reprezentând tranzacÆiile en-gros çi
en-détail au elaborat standarde bazate pe DES
 Grupul ANSI - grup de lucru pentru securitatea instituÆiilor
financiare pentru vânzårile cu amånuntul (retail) - a
dezvoltat un standard pentru managementul çi securitatea
PIN çi un standard DES pentru autentificarea mesajelor în
vânzårile cu amånuntul (retail) - ANSI X9.19
Acelaçi grup a fåcut o propunere de standard pentru
distribuÆia cheilor
60 Autori
Algoritmul DES
Algoritmul DES (Data Ecryption Standard) este un algoritm de criptare
cu chei simetrice. Structural este constituit ca o combinaÆie de algoritmi de
tip transpoziÆie çi substituÆie. Dupå cum aratå çi numele, este un standard
de criptare. Acest standard a fost adoptat de National Security Agency
(NSA) din SUA. IniÆial sistemul a fost propus så lucreze cu un cuvânt cheie
de 128 de biÆi, dar din motive strategice s-a redus lungimea lui la 64 (de
fapt la 56) biÆi. ExperÆii NSA au realizat cå o cheie de 128 de biÆi este prea
greu de ‘spart’ chiar çi pentru ei.
În continuare vom prezenta standardul de criptare DES, mai precis o
variantå a sa, råmânând la latitudinea cititorului så ‘înÆeleagå’ logica dupå
care acest algoritm a fost construit.
Schema generalå de criptare a DES este reprezentatå în fig 3.15. Dupå
cum era de açteptat, sunt douå intråri în algoritm çi anume un bloc de text
în
clar de 64 de biÆi çi o cheie de 56 de biÆi.
3. Elemente de criptografie / criptologie 61

Fig 3.15 - Prezentarea generalå a algoritmului DES

Se poate observa din fig. 3.15 cå - în partea dreaptå a desenului - avem


generarea cheilor iar în stânga se prelucreazå textul. Intrarea în bloc se va
supune întâi unei permutåri iniÆiale dupå care au loc 16 iteraÆii succesive, o
interschimbare pe 32 de biÆi çi - în încheiere - se va aplica inversa
permutårii iniÆiale. În continuare, se vor descrie pe scurt principalii paçi
care sunt de efectuat pentru a parcurge algoritmul. O descriere a acestui
algoritm binecunoscut nu poate så omitå detaliile intime ale acestuia care
aparÆin de altfel çi standardului. Din acest considerent am hotårât så
introduc în lucrare çi tabelele de mai jos. De asemenea, consider cå unii
dintre paçi - cum ar fi permutarea iniÆialå sau generarea cheilor necesitå -
o prezentare mai detaliatå.[Stallings]. Toate operaÆiile descrise în aceastå
secÆiune sunt prezentate detaliat în tabelele de mai jos:

Bit ieçire 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Bit 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4
intrare
Bit ieçire 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Bit 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8
intrare
Bit ieçire 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Bit 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3
intrare
Bit ieçire 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Bit 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7
intrare

Tabelul 3.6 - Permutarea iniÆialå


Bit ieçire 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Bit intrare 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31
Bit ieçire 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Bir intrare 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29
Bit ieçire 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
62 Autori

Bit intrare 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27
Bit ieçire 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
Bit intrare 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25

Tabelul 3.7 - Inversa permutårii iniÆiale


Bit ieçire 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Bit intrare 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11
Bit ieçire 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Bit intrare 12 13 12 13 14 15 16 17 16 17 18 19 20 21 20 21
Bit ieçire 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
Bit intrare 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1

Tabelul 3.8 - Permutarea cu expansiune

Bit ieçire 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Bit intrare 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10
Bit ieçire 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Bit intrare 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25
Tabelul 3.9 - Permutarea P

Bit ieçire 1 2 3 4 5 6 7 8 9 10 11 12 13 14

Bit intrare 57 49 41 33 25 17 9 1 58 50 42 34 26 18

Bit ieçire 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Bit intrare 10 2 59 51 43 35 27 19 11 3 60 52 44 36

Bit ieçire 29 30 31 32 33 34 35 36 37 38 39 40 41 42

Bit intrare 63 55 47 39 31 23 15 7 62 54 46 38 30 22

Bit ieçire 43 44 45 46 47 48 49 50 51 52 53 54 55 56

Bit intrare 14 6 61 53 45 37 29 21 13 5 28 20 12 4

Tabelul 3.10 - Permutarea de tipul 1


3. Elemente de criptografie / criptologie 63

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

Nr. biÆi 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Tabelul 3.11 - Programul deplasårilor spre stânga pe paçi

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

Bit intrare 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4

Bit ieçire 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32

Bit intrare 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40

Bit ieçire 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

Bit intrare 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32

Tabelul 3.12 - Permutarea de tipul 2

Cutie Rând 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
S1
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
0 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
1 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
S2
2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
3 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
0 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
1 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
S3
2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
3 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
0 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
1 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
S4
2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
0 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
1 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
S5
2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
3 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
0 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
1 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
S6
2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
64 Autori
0 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
S7
2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
3 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
0 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
S8
2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Tabelul 3.13 - Cutiile S din algoritmul DES


Precum se observå din aceste tabele, dacå se vor face verificårile, se
poate dovedi uçor cå într-adevår permutarea finalå este inversa celei
iniÆiale. Interschimbarea pe 32 de biÆi de care am pomenit în fig.3.15,
efectueazå trecerea blocului de 32 de biÆi aflaÆi pe primele poziÆii în blocul
de intrare de 64 de biÆi pe ultimele poziÆii çi invers. Detalii despre o iteraÆie
oarecare se pot gåsi în fig. 3.16
3. Elemente de criptografie / criptologie 65

Fig 3.16 - Descrierea unei singure iteraÆii ale algoritmului DES

În figura de mai sus se poate observa cå algoritmul împarte blocul de 64


de biÆi în douå blocuri de 32 de biÆi pe care le denumeçte stâng çi drept çi cu
care va lucra în continuare separat. Chiar din schemå se poate observa cå
blocul stâng care va fi regåsit la ieçirea dintr-o iteraÆie va fi identic cu cel
drept de la intrare deci Si = Di-1. Blocul iniÆial drept va fi supus întâi unei
permutaÆii cu rol çi de expandare care îi va måri dimensiunea de la 32 la 48
de biÆi pentru ca apoi så poate så fie supus unei operaÆii de SAU
EXCLUSIV cheia intermediarå corespunzåtoare iteraÆiei. Rezultatul
obÆinut în urma acestor calcule va fi introdus în cutiile S de unde se va
obÆine un bloc de 32 de biÆi care la rândul såu va fi supus unei permutåri P
66 Autori
çi apoi unei operaÆii de SAU EXCLUSIV cu blocul stâng iniÆial obÆinându-
se blocul drept final al iteraÆiei. Toate operaÆiile de mai sus se pot rezuma
în formula Di = Si-1  f(Di-1,Si) unde modul de calculare al funcÆiei f se
poate observa în fig 3.17.

Fig 3.17 - OperaÆiile care se efectueazå pentru calcularea funcÆiei f

Tot din fig 3.16 se poate observa cå în cazul algoritmului DES, çi cheia
de 56 de biÆi va fi supuså unei permutåri de tipul 1 dupå care va fi împårÆitå
în douå blocuri de 28 de biÆi iniÆial. Dupå aceasta, asupra ambelor pårÆi
astfel obÆinute se va efectua o rotaÆie circularå spre stânga cu un numår de
biÆi corespunzåtor numårului iteraÆiei, numår ce se poate gåsi în tabelul
3.11 prezentat anterior în aceastå secÆiune. Cele douå blocuri care s-au
obÆinut anterior se vor introduce ca çi blocuri de intrare în viitoarea iteraÆie
dar çi într-un bloc de permutare de tip 2 din care se va obÆine de altfel çi
cheia intermediarå a iteraÆiei curente.
3. Elemente de criptografie / criptologie 67

3.7.2 Algoritmi asimetrici (cu chei publice)

Principiul:
- Utilizarea a douå chei diferite:
- E - publicå pentru criptare
- D - secretå / privatå pentru decriptare
- Cele douå funcÆii E çi D sunt funcÆii greu inversabile
cu trapå.
Conceptul a fost inventat de Whitfield Diffie çi Martin Hellman în 1976
(când au prezentat o lucrare la National Computer Conference çi pe care
au publicat-o dupå aceea în lucrarea New Directions in Cryptography).
Ralph Merkle a inventat - independent - acelaçi principiu, dar lucrarea
i-a apårut doar în 1978 (datoritå unui proces prelungit de publicare).
NSA a susÆinut cå deÆine principiul din 1976, dar nu a putut aduce
probe.
Din numeroçii algoritmi propuçi, numai trei lucreazå bine atât pentru
criptare cât çi pentru semnåturi digitale:
 RSA
 El Gamal
 Rabin.
Utilizare (în sisteme hibride): pentru sesiuni de chei.
Dezavantaj: de 1000 de ori mai lenÆi decât algoritmii simetrici.
Diffie çi Hellman au propus ca cele douå funcÆii E çi D så îndeplineascå
çi urmåtoarele proprietåÆi adiÆionale:
 dacå S  DM  , atunci M  E S  , sau E DM   M , M
 posibilitatea utilizårii în semnåturi digitale
Principiul:
- funcÆii greu inversabile
- f - se calculeazå uçor
- f 1 se calculeazå uçor doar dacå existå o trapå (informaÆie
secretå)
-  
f , f 1 ~ E, D 
Exemplu:
Fie q un numår prim çi un întreg x, x  1, q  1
68 Autori

 se calculeazå uçor Y   x mod q


  GF q - element primitiv al câmpului

GF q   0,1,  , ,  q 1 
- se noteazå  n   q  1 =: indicatorul lui Euler
- Fiecare utilizator A alege în mod aleator un numår
x A  1, , q  1
- A calculeazå y A   x A mod q  E A - çi o face publicå
- Dacå A çi B doresc så comunice între ei, se utilizeazå:
K AB  y A xB  y B x A   x A xB mod q) (3.66)
- deci A çi B pot calcula K AB pornind de la cheia privatå
x A / x B çi de la cheia publicå a partenerului y A / y B
- comunicaÆia este confidenÆialå, dat fiind cå K AB nu se poate
calcula dacå nu se cunoaçte cheia privatå:
K AB  y A log yB mod q (3.67)
Este imposibil de calculat
Avantajele algoritmilor cu cheie publicå:
 Nu este necesarå stabilirea unei chei secrete de comunicare
(K).
 A çi B pot comunica direct pe baza cheilor publice çi a cheii
private a fiecåruia.

Alte funcÆii greu inversabile


 factorizarea unui produs de numere prime mari (100 de cifre
zecimale)  RSA
 gåsirea logaritmului modulo numår prim dintr-un GF(q) cu q
foarte mare  Rabin
 problema rucsacului  Merkle-Hellman (MH).
Dintre algoritmii cu chei publice vom prezenta pe scurt pe cel mai
popular çi anume RSA (Rivest-Shamir-Adleman).
Criptosistemul Rivest Shamir Adleman (RSA)
Acest algoritm apare publicat pentru prima datå în 1978. Securitatea
acestui sistem se bazeazå pe faptul cå - deçi gåsirea unor numere prime
3. Elemente de criptografie / criptologie 69
mari este din punct de vedere computaÆional uçoarå - factorizarea
produsului a douå astfel de numere este în prezent irezolvabilå. Problema
de factorizare este o problemå veche în matematicå rezistând efortului mai
multor matematicieni din mai multe secole. In aceastå privinÆå Fermat çi
Legendre au dezvoltat o serie de algoritmi de factorizare, cei mai eficienÆi
folosiÆi la ora actualå bazându-se pe cei elaboraÆi de Legendre.
Metoda de criptare implicå calculul exponenÆial într-un câmp finit
(modulo n). Mesajul cifrat se obÆine din mesajul în clar printr-o
transformare (codare) bloc. Fie unul din aceste blocuri din mesajul M, bloc
care are proprietatea cå M(0,n-1) (proprietate ce se obÆine prin
modul de împårÆire a mesajului în blocuri). Blocul criptat C corespunzåtor
blocului în clar se obÆine calculând exponenÆiala C  ME(mod n), E çi n
reprezentând astfel cheia publicå de criptare. Decriptarea se face prin
operaÆia M  CD(mod n), D fiind cheia secretå de decriptare.
Cele douå chei E çi D trebuie så satisfacå relaÆia:
M  CD(mod n)  MED(mod n), (3.68)
pentru ca algoritmul så poatå fi într-adevår folosit.Pentru aceasta vom
pleca de la:
Teorema Euler-Fermat : p este un numår prim dacå ap-11(mod p)
oricare ar fi a,a1,p].
Astfel dacå am ales n un numår prim, pentru orice bloc M(0, n-1)
avem proprietatea de la care vom porni:
M(n)mod (n)  1, (3.69)
unde
(n)  n1 (3.70)
este numit indicatorul lui Euler
Dacå E si D satisfac relaÆia:
ED(mod(n))  1 (3.71)
putem scrie:
ED  k(n)1 (n) (n) (n)... (n)1,
(3.72)
MED  M(n) (n) (n)... (n)1 M(n) M(n) M(n)....M(mod n),
(3.73)
deci:
70 Autori
ED
ED(mod(n))  1 M  M(mod n).
(3.74)
Astfel am asigurat o transformare reversibilå de criptare pe baza unei
exponenÆiale într-un câmp finit. Mai råmâne så asiguråm securitatea cheii
de decriptare. Aceastå cheie D trebuie så fie aproape imposibil de
determinat din cheia de criptare, iar în cazul de mai sus este uçor de
determinat având la dispoziÆie E çi n çtiind cå ED(mod (n))  1 çi (n) 
n1.
Securitatea se bazeazå pe idea de factorizare a unui numår mare.
Pornind de la aceastå idee, numårul n se poate obÆine prin produsul a douå
numere prime mari p çi q:
n  pq (3.75)
astfel încât indicatorul Euler, în acest caz:
(n)  (p-1)(q-1) (3.76)
devine mult mai greu de determinat având la dispoziÆie n.
Folosind acestå schemå se poate obÆine un sistem performant de criptare
cu chei publice. Un sistem care asigurå confidenÆialitatea va avea ca
elemente urmåtoarele perechi:
 (E,n) cheia publicå
 (D,n) cheia secretå
Un criptanalist care are la dispoziÆie perechea (E,n) va trebui så
determine D Æinând cont cå ED(mod(n))1. Pentru asta trebuie
determinat (n) = (p-1)(q-1) - deci implicit p çi q - problemå care se
reduce la a factoriza numårul n (problemå practic ‘imposibilå’ pentru un n
mare).
Exemplu:
Vom utiliza un cifru cu p = 47 çi q = 97.
N = pq = 47 x 97 = 3713
alegând D = 97, E va fi 37 pentru a satisface relaÆia ExD mod((p-1)(q-
1)) = 1,
E = [(p-1)(q-1)+1]/D,
astfel pentru a coda mesajul: ”A SOSIT TIMPUL”, vom coda mai
înainte fiecare literå a alfabetului. De exemplu ‘A’= 00,’B’= 01....
Mesajul va deveni: 0018 1418 0819 1908 1215 2011
3. Elemente de criptografie / criptologie 71
În continuare, vom coda fiecare numår de 4 cifre, având grijå så fie mai
mic decât n:
0018Emod(n) = 001837mod(3713) = 3091,
1418Emod(n) = 141837mod(3713) = 0943,...
Astfel mesajul criptat devine: 3091 0943 3366 2545 0107 2965.
La decriptare, se va calcula pe rând:
3091Dmod(n) = 309197mod(3713) = 0018... obÆinând mesajul
iniÆial.
Dacå pânå acum ne-am referit doar la secretizare, odatå principial
metoda înÆeleaså, se poate intui uçor aplicabilitatea ei în autentificare çi în
domeniul semnåturilor digitale.
Totuçi, o problemå care mai apare în dezvoltarea unui astfel de algoritm
este cea a calculului valorilor sistemului: a numårului n, çi a celor douå
chei E çi D, calcul care se va face la nivel de zeci de digiÆi pentru a asigura
un nivel de scretizare mare. Se poate spune cå lucrând cu operanzi pe 512
biÆi sistemul este deocamdatå ‘imposibil de spart’.
Sistemul de criptare cu chei publice RSA este cel mai important dintre
sistemele cu chei publice oferind un mare nivel de secretizare, fiind
standardizat în domeniul semnåturilor digitale. RSA este recunoscutå ca
cea mai sigurå metodå de cifrare çi autentificare disponibilå comercial,
imposibil de spart, chiar çi de agenÆiile guvernamentale. Metoda are un
mare avantaj prin faptul cå nu sunt disponibile ‘cåi furiçate’ de atac la
sistemul de criptare, cum sunt cunoscute la alte metode. Algoritmul este
utilizat pentru protejarea çi autentificarea datelor, parolelor, fiçierelor de
cåtre o serie de firme producåtoare de sisteme de programare çi
echipamente ca DEC, Lotus, Novell, Motorola precum çi o serie de
instituÆii importante (Department of Defense SUA, Boeing, reÆeua bancarå
SWIFT, guvernul Belgiei) [Patriciu (1994)].
72 Autori

3.7.3 Algoritmi bazaÆi pe funcÆii hash neinversabile

3.7.3.1 GeneralitåÆi
O funcÆie hash: H opereazå asupra unui mesaj pre-imagine de lungime
variabilå M çi då la ieçire o valoare hash: h de lungime constantå (128 sau
160 de biÆi).
h  H M  [m biÆi- lungimea valorii lui h]
O funcÆie hash neinversabilå (one way hash) trebuie så mai
îndeplineascå urmåtoarele proprietåÆi:
 Dacå se då M, h  H M  se calculeazå uçor.
 Dacå se då h, determinarea lui M astfel încât h  H M  , este foarte
dificilå.
 Dacå se då M este greu de gåsit un alt mesaj M’ astfel încât:
H M   H M  (collusion free).
Aceastå ultimå cerinÆå este necesarå pentru a evita “atacul zilei de
naçtere” (birthday attack), bazat pe determinarea a douå mesaje aleatoare
M çi M’ astfel încât H M   H M  .
Protocol cu atacul zilei de naçtere – Gideon Yuval
(1) A pregåteçte douå versiuni ale unui contract: unul favorabil
lui B, al doilea de escrocare.
(2) A face câteva modificåri subtile la fiecare document çi
calculeazå pe h (valoare lui H) (exemplu: SPACE  SPACE-
BACKSPACE-SPACE, SPAæIUL înainte sau dupå întoarcerea carului. În
acest fel A poate genera 2 32 documente diferite dacå în document sunt 32
de linii).
(3) A comparå valoarea h pentru toate modificårile, pentru a
vedea douå identice. Dacå h - 64 biÆi, cele 2 32 modificåri vor
conduce la valori h identice.
(4) A face ca B så semneze o versiune a contractului favorabilå
lui, utilizând un document de semnare cu valoarea h.
3. Elemente de criptografie / criptologie 73
(5) Mai târziu, A înlocuieçte contractul semnat de B cu altul,
defavorabil dar având aceeaçi valoare h. În acest mod poate
convinge un arbitru cå B a semnat noua variantå.
Morala: este bine så se facå întotdeauna unele modificåri cosmetice ale
documentelor care se semneazå.
Lungimea funcÆiilor hash neinversabile
S-a aråtat cå funcÆiile hash de 64 de biÆi nu rezistå la atacul “zilei de
naçtere”. Cele mai practice funcÆii prevåd pe m = 128 de biÆi (de exemplu
MD5)  2 64 documente aleatoare la care se cautå valori h identice cu
celelalte 2 64 documente.
NIST foloseçte în standardul SHS (Secure Hash Standard) 160 de biÆi ca
lungime a rezumatului mesajului  atacul zilei de naçtere necesitå 2 80
valori ceea ce sporeçte securitatea.
În continuare, se då o metodå care genereazå o valoare h mai mare
decât cea produså de o funcÆie hash.
(1) Genereazå o valoare h a unui mesaj utilizând o funcÆie H datå
în carte.
(2) Concateneazå mesajul cu valoarea h.
(3) Genereazå valoarea h a mesajului concatenat cu valoarea h.
(4) Prin concatenarea valorii h generate în (1) cu valoarea h
generatå în (3), valoarea h rezultantå va creçte.
(5) Repetå pasul (1) pânå la (3) de câte ori vrei çi concateneazå
ObservaÆie:
 Deçi metoda propuså nu s-a dovedit a fi sigurå sau nesigurå, o
serie de specialiçtii au rezerve serioase asupra ei.
Rezumat al functiei hash neinversabile
În lumea realå, funcÆiile hash sunt gândite ca funcÆii de compresie.
Valoarea h a întregului mesaj este valoarea h a ultimului bloc. Aceastå
tehnicå se numeçte MD – strengthening. IniÆialele MD provin de la
message digest, ceea ce - în traducere - reprezintå rezumatul mesajului.
DiferiÆi cercetåtori au teoretizat cå dacå funcÆia de compresie este
sigurå, atunci aceastå metodå de a comprima (hashing) preimagini de
lungimi arbitrare este de asemenea sigurå, dar nu s-a demonstrat nimic.
[Scheneier]
74 Autori
3.7.3.2 Algoritmi mai importanÆi

 SNEFRU – proiectat de Ralph Merkle

Principiul: M este divizat în bucåÆi de 512-m lungime (variabila m este


lungimea valorii h) deci:
- dacå m = 128  512 - 128 = 384
- dacå m = 256  512 - 256 = 256
 inima algoritmului este funcÆia H care rezumå valoare de 512 biÆi
într-o valoare de m biÆi. Primii m biÆi ai ieçirii H constituie valoarea h a
blocului, restul fiind omiçi. Blocul urmåtor este anexat la valoarea h a
blocului anterior çi rezumat încå odatå. Dupå ultimul bloc se folosesc
“0” pentru a umple ultimul bloc.
FuncÆia H se bazeazå pe blocul de criptare E (cifru bloc) care opereazå
pe blocuri de 512 biÆi. H reprezintå ultimii m biÆi ai ieçirii lui E adunaÆi
folosind operatorul  (SAU EXCLUSIV pe biÆi) cu primii m biÆi ai intrårii
lui E.
Securitatea lui H se bazeazå pe E, care aleatorizeazå datele din câÆiva
paçi. Fiecare pas este compus din 64 de runde de aleatorizare. Fiecare
rundå utilizeazå câte un octet diferit ca intrare la o cutie S.

ObservaÆie:
 Merkle a recomandat utilizarea lui SNEFRU cu cel puÆin 8
treceri, caz în care algoritmul este mult mai lent decât MD-5
sau SHA.
N – HASH (Nippon - Hash)
- inventat de cåtre Nippon Telephone and Telegraph în 1990
(tot ei au inventat FEAL - cod bloc)
- m = 128
- blocurile M i au lungimi de 128 de biÆi
MD – 4 (Message Digest)
- inventat de Ron Rivest
- m = 128 biÆi
- a fost supus criptanalizei çi a rezultat un algoritm mai
puternic (MD - 5)
3. Elemente de criptografie / criptologie 75
Tråsåturi:
 cel mai eficient atac este forÆa brutå;
 nu se bazeazå pe nici o ipotezå, de exemplu dificultatea factorizårii;
 vitezå: bun pentru implementåri soft de mare vitezå, bazându-se pe o
simplå manipulare a unor operanzi pe 32 de biÆi.
MD – 5
- este o variantå îmbunåtåÆitå a lui MD - 4, dar m råmâne în
continuare de 128 de biÆi;
- este puÆin mai lent decât MD - 4, dar datoritå complexitåÆii
sale ridicate oferå o securitate mai ridicatå decât acesta;
- spre deosebire de SNEFRU care foloseçte cutii S çi funcÆia
SAU-EXCLUSIV, MD - 5 se bazeazå pe adunarea modulo
2 32 ceea ce îl face mai puÆin vulnerabil la criptanaliza
diferenÆialå [Stallings].
SHA (Secure Hash Algorithm)
- este propus de NIST çi NSA pentru utilizare în standardul de
semnåturi digitale (DSS)  standardul SHS (Secure Hash
Standard);
- dezvoltat de NIST çi publicat ca standard federal de procesare
a informaÆiilor sub numele de FIPS PUB 180 în 1993
- este bazat pe algoritmul MD - 4;
- spre deosebire de MD - 5 este mai lent dar mult mai sigur
având m = 160 biÆi.

3.7.4 Utilizarea algoritmilor

În cele ce urmeazå vom discuta situaÆia aplicaÆiilor criptografice din


lumea civilå: carduri bancare, carduri de acces în clådiri çi la calculatoare,
plåÆi pentru diferite servicii, taxe de drumuri, etc., care în fapt constituie
imensa majoritate a aplicaÆiilor criptografice (cca 99%). În aceste cazuri
nu se utilizeazå o criptografie de maximå securitate ca în cazul aplicaÆiilor
militare, diplomatice, etc. iar atacurile care au loc nu sunt atacuri
criptanalitice în adevåratul sens al cuvântului, ci sunt mai degrabå cauzate
de angajaÆi necinstiÆi, de implementåri deficitare, de gafe çi erori
întâmplåtoare. Cei mai buni criptologi considerå cå majoritatea cåderilor
76 Autori

din criptosisteme se datoresc deficienÆelor de implementare çi “inventivitåÆii


proçtilor”, çi nu sunt cauzate de algoritmi sau protocoale.

3.7.4.1 Cum alegem un algoritm?

Pentru lumea civilå care nu deÆine specialiçti çi centre de testare pe


måsurå (invitåm cititorul, pentru a-çi face o imagine sumarå despre ceea ce
înseamnå un centru profesionist de criptologie så citeascå articolul lui
F.D.Parker The Fall and Rise of Cryptanalysis in Canada din [Deavours]),
nu sunt prea multe alternative în aceastå alegere.
Acestea se rezumå la:
 alegerea unui algoritm fåcut public pe considerentul cå
dacå a fost fåcut public çi nu se çtie cå a fost spart, are
çanså så fie aproape sigur (pretty good);
 încrederea într-un consultant privat pe considerentul cå
fiind dezinteresat va face o evaluare imparÆialå a
algoritmilor;
 încrederea într-un producåtor de marcå, în baza
presupunerii cå acesta nu îçi riscå reputaÆia vânzând un
echipament ce utilizeazå un algoritm deja depåçit;
 încrederea în sfatul dat de guvern în acest tip de alegere;
 încrederea doar în forÆele proprii, deci craerea unui
algoritm propriu.
Toate aceste variante suportå discuÆii.
MulÆi aça-ziçi consultanÆi în probleme de securitate (chiar de la firme
reputate) çtiu în general foarte puÆin despre criptografie çi acelaçi lucru
este valabil çi în cazul producåtorilor de echipamente. NSA are unii dintre
cei mai buni criptografi din lume, dar ei nu vor spune tot ceea ce çtiu; ei au
propriile interese care de multe ori nu sunt în concordanÆå cu cele ale
cetåÆenilor.[Scheneier]. În aceste condiÆii, chiar dacå eçti un geniu, a scrie
propriul algoritm çi a-l utiliza fårå a avea nici o verificare, este dupå cum
considerå B.S. Schneier - curatå nebunie- . Acelaçi autor afirmå cå
organizaÆiile militare de securitate sunt probabil mai bune decât cele
academice pentru cå au tradiÆie în domeniu çi sunt mai bine finanÆate.
3. Elemente de criptografie / criptologie 77
Se pune întrebarea: ce algoritmi poate sparge NSA? Tot Schneier
afirmå cå pentru majoritatea dintre noi nu existå cale realå de a çtii.
InformaÆia privitoare la ce algoritmi pot fi sparÆi este una dintre cele mai
secrete. O ipotezå bunå de lucru pentru lumea civilå ar fi cå NSA poate citi
orice mesaj criptat dar cå ea nu poate citi toate mesajele, fiind necesarå o
selecÆie a Æintelor.
În situaÆia descriså, acelaçi autor afirmå [Scheneier] cå cea mai bunå
alegere este cea a unui algoritm public. Nu trebuie uitat cå SUA este cel
mai mare producåtor de produse criptografice, dar acestea - ca çi
tehnologia atomicå - sunt supuse unor legi extrem de severe din punct de
vedere al exporturilor.
Algoritmii pentru export, deci cei ce pot fi exportaÆi de SUA, trebuie så
fie aprobaÆi de guvernul SUA (aståzi NSA). CredinÆa este cå aceçti
algoritmi pot fi sparÆi de cåÆre NSA [Scheneier], dar cumpåråtorii de
asemenea produse trebuie så aibå grijå în aceste cumpåråturi de riscurile
asumate.

3.7.4.2 ComparaÆie între criptografia secretå çi cea cu chei


publice

ComparaÆia între cele douå tipuri de bazå de algoritmi criptografici


poate fi cuprinså în tabelul 3.14.

Nr.
Parametrul Algoritmi simetrici Algoritmi cu chei publice
crt
1 viteza mare (sute Mbps) hard mai micå de cca 1000 de ori
(1  10 Mbps) soft
2 lungimea relativ micå (ex: 64, 128 biÆi) mare (ex. RSA:1024)
tipul secretå (necesitå canal k E - publicå, k D - privatå
K sigur)
manage- greoi, necesitå un centru de uçor, nu necesitå CDC
mentul distribuÆie a cheilor (CDC)
78 Autori
schimbare foarte des (cheie de sesiune) rar, la ani de zile
3 semnåtura - necesitå protocoale - nu necesitå arbitraj
digitalå arbitrate - verificarea semnåturii
- verificarea este de lungime micå
semnåturii este de
lungime mare
4 eficienÆa pentru confidenÆialitate - pentru semnåturi
digitale
- pentru managementul
cheilor
5 utilizarea - în criptografia clasicå - RSA
- în standarde moderne - Rabin
(DES, LUCIFER, IDEA) - El Gamal etc.
Tabelul 3.14 - ComparaÆia algoritmilor simetrici çi cu chei publice

3.7.4.3 ModalitåÆi de criptarea a canalelor de comunicaÆie


[Scheneier]

Teoretic, criptarea poate fi fåcutå la nivelul oricårui start OSI (Open


System Interface) al modelului de comunicaÆie.
Practic, criptarea se face la nivelul fizic, caz în care se numeçte criptare
legåturå la legåturå (link-by-link encryption) sau la nivelele înalte, caz în
care poartå denumirea de criptare capåt la capåt (end-to-end encryption).

Criptarea legåturå la legåturå

Nodul 1 Nodul 2 Nodul 3 Nodul 4


M M
Ek1 Dk1 Ek2 Dk Ek3 Dk3
21

Legatura 1 Legatura 2 Legatura 3


3. Elemente de criptografie / criptologie 79
Fig. 3.18 - Criptarea legåturå la legåturå

Caracteristici:
 Criptarea se face la nivel fizic.
 Echipamentul de criptare se pune dupå interfaÆa stratului
fizic, care este standardizatå; aceste echipamente hard cripteazå
toate datele ce trec prin ele: date, informaÆii de rutare, informaÆii
corespunzåtoare protocolului. Datoritå acestui fapt se realizeazå o
protecÆie a traficului (traffic flow security), ceea ce constituie un
avantaj.
 Comutatoarele inteligente çi nodurile cu memorie dintre
emiÆåtor çi receptor necesitå decriptare înainte de procesare (vezi
nodurile 2 çi 3 din fig. 3.18) ceea ce constituie un dezavantaj,
nodurile devin vulnerabile din punct de vedere al securitåÆii.
 Managementul cheilor este simplu, numai nodurile terminale
ale unei legåturi necesitând o cheie comunå, ele putând så-çi
schimbe cheia independent de restul reÆelei (în fig 3.18 se vede de
exemplu cå legåtura 1 foloseçte k1 ç.a.m.d.
 Securitatea nu depinde de managementul cheilor.
 Criptarea este online.

Criptarea capåt la capåt

Nodul 1 Nodul 2 Nodul 3 Nodul 4


M M
Ek Dk

Legatura 1 Legatura 2 Legatura 3

Fig 3.19 - Criptarea capåt la capåt (end-to-end)


80 Autori
Caracteristici:
 criptarea se face la nivelul transport, echipamentul de criptare
punându-se între nivelul reÆea çi nivelul transport;
 informaÆiile de rutare nu sunt criptate, ceea ce permite analiza
traficului çi constituie un dezavantaj principal al acestui tip
de criptare;
 managementul cheilor este mai dificil (dezavantaj), deoarece
utilizatorii individuali trebuie så fie siguri cå au aceeaçi
cheie;
 criptarea este offline (dezavantaj);
 asigurå un nivel sporit de securitate (avantaj), în noduri
semnalele sunt criptate;
 criptarea având loc la nivel înalt, este independentå de tipul
reÆelei, de codurile de linie folosite, de sincronizarea dintre
modemuri, de interfeÆele fizice, etc. ceea ce constituie un
avantaj;
 criptarea la nivelele înalte interacÆioneazå cu softul
utilizatorului, care poate diferi de la un calculator la altul
(dezavantaj);
 echipamentul de criptare poate fi realizat soft sau hard.

3.7.4.4 ModalitåÆi de criptare a datelor pentru stocare


[Scheneier]

Criptarea, în cazul stocårii datelor, are cerinÆe diferite faÆå de criptarea


în cazul transmisiunii acestora.
Probleme în transmisiune:
 Dacå apar erori în transmisiune, acestea pot fi corectate prin
retransmisie.
 Cheile utilizate sunt valabile doar pentru o singurå
transmisiune (cheie de sesiune), dupå care existenÆa lor nu
mai este necesarå.
Probleme în stocare:
 Datele stocate trebuie så fie protejate prin coduri corectoare
de erori deoarece retransmisia este imposibilå.
3. Elemente de criptografie / criptologie 81

 Cheile trebuie så se påstreze atâta timp cât se påstreazå


datele stocate (ani de zile în multe situaÆii).
 Datele în clar trebuie så existe pe alt disc sau alt suport, de
exemplu hârtie (de aici posibilitatea unor atacuri cu text în
clar).
 În aplicaÆii cu baze de date, datele pot fi mai mici decât
lungimea blocului majoritåÆii algoritmilor, ceea ce face ca
textul cifrat så fie mare decât textul în clar.
 Viteza dispozitivelor de I/O cer criptåri / decriptåri de mare
vitezå, deci criptare hard, iar în unele aplicaÆii se cer
algoritmi de mare vitezå.
 Managementul cheilor este mult mai complicat, deoarece
utilizatori diferiÆi necesitå acces la diferite fiçiere sau porÆiuni
de fiçiere.
Când este necesarå criptarea pentru stocare a datelor de pe un suport de
date cu o capacitate mare (de exemplu un disc dur) apar niçte probleme
suplimentare cum ar fi: problema numårului de chei folosite la criptare çi
cea a criptårii datelor la nivel de disc sau la nivel de fiçier.
Caracteristici ale criptårii informaÆiei de pe un disc cu o singurå cheie
 este simplå deoarece nu implicå reÆinerea de cåtre utilizatori a
unui numår mare de chei de criptare (avantaj);
 nivelul de securitate este redus deoarece un eventual
criptanalist ar avea la dispoziÆie o cantitate imenså de text
criptat (dezavantaj);
 nu se poate restricÆiona accesul utilizatorilor doar la anumite
fiçiere (dezavantaj).
Caracteristici ale criptårii datelor folosind mai multe chei
 este greoaie deoarece fiecare utilizator care doreçte så aibå
acces la informaÆia din mai multe fiçiere trebuie så cunoascå
cheile cu care acestea sunt criptate (dezavantaj - deoarece
trebuiesc reÆinute un numår mare de chei);
 dezavantajul de mai sus poate fi contracarat dacå se copiazå
cheile de criptare într-un fiçier separat care va fi la rândul
såu cifrat cu o cheie care va fi cunoscutå de toÆi utilizatorii;
82 Autori

 utilizatorii au acces doar la acele fiçiere la care cunosc cheia


de criptare (avantaj - avantaj din punt de vedere al nivelului
de securitate).

3.7.4.4 ComparaÆii dintre criptarea hard çi soft [Scheneier]

Una dintre problemele cele mai importante în implementarea


algoritmilor criptografici este aceea care se referå la modul în care aceasta
se va face çi anume: prin folosirea de circuite specializate (implementare
hardware) sau prin programe (implementare software). Alegerea uneia sau
alteia dintre cele douå implementåri se face dacå se cunosc bine avantajele
çi dezavantajele pe care acestea le au.
Caracteristici ale implementårii hard
 este extrem de avantajoaså din puntul de vedere al vitezei de
lucru;
 nivelul de securitate este ridicat deoarece circuitele pot fi
protejate la modificåri sau se pot folosi cipuri VLSI speciale
care nu permite modificåri ale schemei;
 de moment ce radiaÆia electromagneticå emiså de un circuit
poate da informaÆii nedorite despre ceea ce se întâmplå în el,
cutiile de criptare specializate pot fi ecranate;
 sunt uçor de instalat ele putând fi conectate fårå probleme la
diferitele dispozitive care se doresc a fii protejate.
Caracteristici ale implementårii soft
 au o vitezå de lucru mult mai micå decât implementårile hard;
 sunt mai puÆin sigure deoarece un program de codare sau
decodare ce ruleazå pe un computer nespecializat nu are nici
un fel de protecÆie fizicå;
 o protejare mai eficientå a unei implementåri soft ar
presupune introducerea criptårii la nivelul sistemului de
operare;
 este avantajoaså din punctul de vedere al portabilitåÆii çi
flexibilitåÆii în cazul folosirii de limbaje de programare care
au versiuni ce ruleazå sub diferite sisteme de operare;
3. Elemente de criptografie / criptologie 83

 utilizarea çi upgrade-ul se pot face foarte uçor în cazul unei


astfel de implementåri.

Ca o concluzie în acest sens s-ar putea spune cå pentru un sistem


criptografic necesar în aplicaÆii militare, diplomatice sau alte domenii cu
grad maxim de securitate, sunt indicate clar implementårile hard (NSA de
exemplu nu autorizeazå decât acest tip de implementare), pe când în
celelalte aplicaÆii din domeniul civil sau comercial se pot folosi
implementårile sub formå de program (soft).

3.8 Bibliografie
Schneier, B. (1996): Applied cryptography. Protocols, Algorithms and Source Code in C, J.
Willey & Sons, New York
Patriciu, V. V. (1994): Criptografia çi securitatea reÆelelor de calculatoare, Edittura Tehnicå,
Bucureçti
Stallings, W. (1995): Network and Internetwork Security. Principles and Practice, Prentice
Hall
Angheloiu, I., Gyorfi, E., Patriciu, V.V. (1986): Securitatea çi protecÆia informaÆiei în
sistemele electronice de calcul, Editura Militarå, Bucureçti
Patriciu V. V. (1998): Securitatea informaticå în UNIX çi Internet, Editura Tehnicå,
Bucureçti
Menezes, A., Orschot, P., van, Vanstone, S. (1997): Handbook of Applied Cryptography, CRC
Press Inc.
Borda, M. (1999): Teoria transmiterii informaÆiei, Dacia, Cluj-Napoca
Deavours, C.A., Kahn, D. (1998): Selections from Cryptologia, Artech House
Swanson, M.D., Kobayashi, M., Tewfik, A. (1998): Multimedia Data – Embedding and
Watermarking Technologies, Proceedings of the IEEE, Vol. 86, No. 6, June.

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