Întotdeauna informa ția (religioas ă, militară, economic ă, etc.) a însemnat putere, prin urmare [608899]

1CRIPTARE
1. INTRODUCERE

Întotdeauna informa ția (religioas ă, militară, economic ă, etc.) a însemnat 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 dateaz ă fără doar și poate de la apari ția scrierii în toate
civilizațiile umane.
În Grecia antic ă scrierile cifrate erau folosite înc ă din secolul al V-lea î.e.n. Pentru cifrare se
folosea un baston în jurul c ăruia se înf ășura, spiral ă l â n gă spirală, o panglic ă îngusta de piele,
papirus sau pergament, pe care paralel cu axa se scriau literele mesajului. Dup ă scriere panglica era
derulată, mesajul devenind astfel indescifrabil. Citirea mesajului putea fi f ăcută doar de persoana
posesoare a unui baston identic cu cel utilizat în cifrare. În secolul al IV -lea î.e.n. în Grecia se
cunoșteau 16 scrieri cifrate. Istori cul grec Polybius (sec ÎI î.e.n.) este inventatorul unui tabel de
cifrare pătrat de dimensiune 5×5, tabel aflat la baza elabor ării unui num ăr mare de sisteme de cifrare
utilizate și astăzi.
Î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.
Documentele atest ă chiar existen ța încă din antichitate a scrierilor secrete în Asia. Astfel
literatura indian ă dă o serie de indicii dintre care Arth a-sastra (321-300 î. e.n.), Lalita-Vistara și
Kamasutra sunt cele mai cunoscute.
Stenografia, știița scrierilor secrete insesizabile camuflat e în texte în clar, constituie o forma
particular ă de secretizare.
De o importan ță remarcabil ă la dezvoltarea criptologiei este contribu ția arabă. David Kahn,
unul din cei mai de seam ă istoriografi ai domeniului, sublinia în cartea s ă The Codebreakers că, de
fapt 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 epoca 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 pr ezentau în fapt texte cifrate. Astfel încât
primii pași în traducerea lor au fost traducerea acestora, deci originile criptologiei pot fi atribuite
arabilor. Cartea lui Ahmad ibn Wahshiyyah (cca. 900 e.n.) con ține 93 de alfabete ale diferitelor
limbi, moarte sau vii.
Cartea a fost tradus ă în limba englez ă și publicat ă la Londra nou ă secole mai târziu sub
numele Ancient Alfabets and Hierogl yphic 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 hieroglif elor (scrierea de la Rosseta, aflat ă la British Museum). Dezvolt ările
criptanalizei au fost sprijinite de studiile lingvistice ale limbii arabe care în pr imele patru secole ale

2imperiului 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 sistemele de numera ție zecimal și cifrele arabe
drept urmare unii termeni cum ar fi ”zero”, ”algebr ă” li se datoreaz ă tot lor. Ultimele descoperiri
demonstreaz ă faptul ca manuscrise referitoare la probabilit ăți și statistici erau realizate cu 800 de
ani înaintea celor scrise de Pascal și Fermat și însuși termenul de ”cifru” provine de la arabi
originea lui fiind reprezentat ă de cuvântul arab ” șifr” care reprezint ă traducerea din sanscrit ă a cifrei
zero.
Odată trezit interesul pentru civiliza ția antică, în perioada Rena șterii s-au descoperit
lucrările criptografiei din antichitate. Extinderea rela țiilor diplomatice dintre diferitele state feudale
a determinat o dezvoltare puternic ă a secretiz ării informa ției. Curțile regale și în special statul papal
dispuneau de criptologi de mare valoare cum ar fi Giambattista della Porta, Vigénère, Cardan
(secolul XIV) și Rossignol (secolul XVIII), cel mai abil cr iptolog din Europa regilor Ludovic al
XIII-lea și Ludovic al XIV-lea.
Dezvoltare sau recesiunea criptografie i / criptologiei conchide cu evolu ția marilor imperii și
civilizații. Ea nu apare și nu se dezvolt ă decât acolo unde puterea treb uie protejata, drept urmare,
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 continua a utiliz ării calculatoarelor în practic toate domeniile de
activitate, existenta și evoluția puternic ă a rețelelor teleinformatice la nivel na țional, globalizarea
comunica țiilor, existenta unor baze de date puternice, apari ția și dezvoltarea comer țului electronic, a
poștei electronice, constituie premisele societ ății informatice î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 posibilt ăților de distrugere voit ă sau accidental ă.
• asigurarea caracterului secret al comunic ării pentru a preveni posibilitatea ca persoane
neautorizate s ă extragă informații în sistem.
• în situații cum ar fi transferurile electronice de fonduri , negocierile contractuale, este
important ă existența unei 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, polit ic, la cel cu caracter economic și social. La ora actual ă, 99% nu
este utilizat ă pentru protejarea secretelor milita re ci pentru carduri bancare, pl ăți de taxe radio/TV,
taxe de drumuri, acces autorizat în cl ădiri sau la calculatoare, term inale de loterie, instrumente
electronice de pl ăți anticipate. În aceste aplica ții rolul criptografiei este de a face furturile dac ă nu
imposibil cel pu țin mai greu de realizat.

31.1 TERMINOLOGIE DE BAZ Ă
Criptografia (cryptography) este știința creării și menținerii mesajelor secrete, în sensul
imposibilt ăț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 nume ște scriere chiar dac ă este un document de alta natura, de exemplu voce,
imagine, date.
Mesaj cifrat (criptograma) (C) (cipher text) este mesajul secretizat, inaccesibil neaviza ților.
Criptare / cifrare (E) (encryption / encipheri ng) este procedeul de ”ascundere” a unui mesaj
în clar în mesajul secretizat.
E(M)=C 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
Observații
:
• decriptarea este opera ția inversă criptării;
• ISO 7498-2 folose ște termenii de cifrare / descifrare (encipher / decipher), probabil pentru
ca primul set de termeni aminte ște de mor ți (criptă).
Criptograf (cryptographer) este persoana care se ocup ă cu criptografia.
Algoritm criptografic / cifru (cryptographic algorithm / cipher) este func ția sau func țiile
matematice utilizate pentru criptare / decriptare; în general exista dou ă funcții: una pentru criptare
(E) și alta pentru decriptare (D).
Cheia criptografica (K) (key) este mărimea (în majoritatea cazurilor secret ă) necesar ă
realizării criptării și decriptării.
Criptosistem (cryptosistem) este sistemul format din:
– algoritm
– toate mesajele în clar (M)
– toate textele cifrate (C)
– toate cheile (K).
Criptanaliza (cryptanalysis) este știința spargerii cifrurilor, deci a ob ținerii mesajelor în clar
(M) sau a cheii (K) din mesajul cifrat(C) .
Criptanalist (cryptanayst) este persoana care se ocup ă cu criptanaliza.
Atac(attack) este încercarea / te ntativa 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 existenta mesajelor secrete s ă fie invizibil ă.

4 I.2 CRIPTOSISTEME ȘI ROLUL ACESTORA
Schema bloc a unui criptosistem este prezentat ă în figura al ăturată:

Figura I.1 Schema bloc a unui criptosistem
A,B – entit ăți ce emit, recep ționează sau manipuleaz ă informația
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

I.2.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, acela de "poli ție informatic ă"
Îndeplinirea acestui rol presupune ca un criptosistem s ă realizeze:
• Confidentialitatea / secretul / protec ția datelor ( confidentiality / secrecy / privacy ) asigura
inaccesibilitatea con ținutului informa ției transmise / stocate pentru un utilizator neavizat (în
cazul canalelor / mediilor nesigure în care pot ap ărea intruși)
• Autentificarea(autentification) se aplica la :
– entit ăți (persoane, terminale, c ărți de credit, etc.) și în acest caz se nume ște
autentificarea entit ăților / identificare (entity au tentification / identification)

informație: informa ția transmis ă / stocată trebuie s ă fie autentificat ă în sensul A E D A D(C)=M
C=E(M)
K Criptanaliz ă
M
Ke M’ sau
K d
Kd

5originii, con ținutul datelor, timpul de transmisiune / stocare și definește
autentificarea originii datelor / integritate a datelor (data origin autentification /
data integrity)
• Semnătura digital ă (digital signature) 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 ca 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 cr iptosistem sunt cuprinse în tabelul urm ător:

Nr.
crt. Obiectivul Definirea
1 Confiden țialitatea p ăstrarea secretului pentru neaviza ți
Emițător /
identificare legată de identitatea unei entit ăți (persoan ă,
terminal, carte de credit, etc.)
originii datelor legată de sursa de informa ție (sursa informa ție )
2
autentificarea integrității
datelor asigură că informația nu a fost modificat ă de
surse neautorizate
3 Semn ătură mijlocul de a lega informa ția de entitate
4 Nerepudierea prevenirea nerecunoa șterii unor ac țiuni comise
anterior
5 Autorizare transferul c ătre altă entitate a unei împuterniciri
oficiale de a fi sau de a face ceva
6 Validare mijlocul de a permite (pentru o anumit ă
perioadă de timp) autorizarea de a folosi sau
manipula informa ția sau resursele
7 Revocare retragerea certificatului sau autoriza ției
8 Controlul restric ționarea accesului la resurse pentru

6

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 ți" cu posibilitate extrem de u șoară de copiere
(copiile digitale sunt iden tice); utilizatorii se afl ă la distanță, nu se pot vedea fa ță în
față și deci se lucreaz ă în condiții de neîncredere.
• criptografia este chemat ă să soluționeze o diversitate de probleme, multe și de mare
dificultate.

1.2.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.
1.2.2.1 Criptosisteme cu chei simetrice / cu cheie secret ă / criptosisteme conven ționale
Criptosistemele cu chei simetrice sunt criptosistemele pentru car e cheile folosite la criptare
și decriptare sunt identice, de unde și denumirea de criptosisteme cu chei simetrice.
K K Kd e== (1.1)
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 :
C MEK=)( (1.2)
M MED CDK K K = = ))(( )( (1.3) accesului entit ăți privilegiate (cu drept de acces)
9 Certificare
informația de aprobare data de o entitate de
încredere (arbitru)
10 Certificare
temporala înregistrarea timpului de creare sau de existen ță
a informa ției
11 Mărturia verificarea cre ării sau existen ței unei informa ții
de către o entitate diferit ă decât cea creatoare
12 confirmarea recunoa șterea faptului ca serviciile au fost
efectuate
13 dreptul de
proprietate mijlocul de a înzestra o entitate cu dreptul legal
de a utiliza sau transfera o sursa la al ții
14 anonimatul ascunderea (t ăinuirea) identit ății unei entit ăți
implicate într-un anumit proces

7Problema ce se pune în cazul acestor sisteme este distribu ția cheii K, care necesit ă un canal
sigur.
După tipul algoritmului folosit, criptosist emele cu chei simetrice se clasific ă în două
categorii:
• 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. Transform ările de baz ă folosite pentru criptare și
decriptare sunt substitu țiile și transpozi țiile, repetate iterativ.
• 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ă 0Scontrolată de o cheie compact ă.

Fig.1.3. Schema de aplicare a unui algoritm simetric

Deoarece algoritmul este valid în ambele direc ții, utilizatorii trebuie s ă aibă încredere
reciprocă. Securitatea acestui tip de al goritm depinde de lungimea cheii și posibilitatea de a o p ăstra
secretă. Când comunica țiile dintre numero și utilizatori trebuie s ă fie criptate, apare o mare problem ă
a managementului cheilor; pentru n utilizatori sunt posibile n(n-1)/2 legături bidirec ționale, fiind
necesare tot atâtea chei. Aceasta implic ă în general probleme dific ile în generarea, distribu ția și
memorarea cheilor. Utilizarea calcul atoarelor electronice a permis folosirea unor chei de dimensiuni
mai mari, sporindu-se astfel rezisten ța la atacuri criptoanal itice. Când cheia secret ă are o
dimensiune convenabil ă și este suficient de frecvent schimbat ă, devine practic imposibil ă spargerea
cifrului, chiar dac ă se cunoaște algoritmul de cifrare.
I.2.2.2 Criptosistemele cu chei publice (asimetrice )
În locul unei singure chei, secrete, criptografia asimetric ă folosește două chei, diferite,
una pentru cifrare, alta pentru descifrare. Deoarece este imposibil ă deducerea unei chei din cealalt ă,
una din chei este f ăcută publicã fiind pus ă la dispozi ția oricui dore ște să transmită un mesaj cifrat.

8Doar destinatarul, care de ține cea de-a doua cheie, poate descifra și utiliza mesajul. În sistemele cu
chei publice, protec ția și autentificarea sunt re alizate prin transform ări distincte.
Criptosistemele cu chei publice sunt criptosistemele pentru care cheile folosite la criptare și
decriptare difer ă, de unde deriv ă și denumirea de sisteme asimetrice:
d eK K≠ (1.4)
Cheia public ă – așa cum îi spune și numele – poate fi accesata public (asem ănător unei
cărți de telefon), iar cheia privat ă este secret ă. Caracteristic acestor sisteme este ca func ția de
criptare și cea de decriptare se realizeaz ă ușor dacă se cunosc dK și eK:
⎪⎩⎪⎨⎧
==
M C DC M E
de
KK
)()(
( 1.5)
dar aflarea lui M, dac ă se cunosc C și eK este computa țional nefezabil ă.
Tehnica cheilor publice poate fi folosit ă și pentru autentificarea mesajelor, prin a șa numita
semnătură digitală, fapt care i-a sporit popularitatea. Folosind algoritmi cu cheie public ă
(asimetrici ), se creeaz ă criptosisteme cu dou ă chei, prin care doi utilizat ori (procese) pot comunica
cunoscând fiecare doar cheia public ă a celuilalt.

Fig.1.4. Schema de aplicare a unui algoritm asimetric
Observație: E este o func ție neinversabil ă cu trapă. dK 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 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 (Markle-Helman).

92. ATACURI ȘI MODELE DE SECURIT ATE ÎN SISTEMELE
INFORMATICE
2.1 ATACURI ASUPRA SECURIT ĂȚII SISTEMELOR CRIPTOGRAFICE
Atacul asupra securit ății unui sistem criptografic define ște orice ac țiune ce compromite
securitatea acelui sistem.
Atacurile criptografice pot fi îndreptate împotriva :
– algoritmilor criptografici – tehnicilor utilizate pentru implementarea algoritmilor protocoalelor – protocoalelor O ilustrare sugestiv ă a principalelor tipuri de atacuri as upra unui sistem informatic este
prezentată succint în figura al ăturată:

După modelul de atacare al unui atacator / intrus / persoan ă neautorizat ă / pirat ( attacker /
intruder / pirat ), aceste atacuri se pot clasifica dup ă cum urmeaz ă:
• atacuri pasive (de intercep ție):
– de înregistrare a con ținutului mesajelor
– de analiz ă de trafic;
• atacuri active :
– de întrerupere (a tac la disponibilitate) flux normal
intercep ție
întrerupere
modificare fabricare Atac pasiv
(atac la confiden țialitate)
Atacuri active

10 – de modificare (atac la integritate)
– de fabricare(atac la autenticitate). Atacurile pasive sunt atacuri în care intrusul (persoana, calculator, program) doar ascult ă,
monitorizeaz ă transmisia, deci sunt atacuri de intercep ție. Ele pot fi de dou ă feluri:

de înregistrare a con ținutului mesajelor( rele ase of message contents) , de exemplu în
convorbirile telefonice, în po șta electronic ă, fapt pentru care dac ă mesajele nu sunt criptate,
se violeaz ă caracterul confiden țial al comunica ției.
• de analiz ă a traficului ( trafic analysis ) : în cazul în care mesajele sunt criptate și nu se
poate face rapid criptanaliza, prin analiza tr aficului se pot afla o serie de date utile
criptanalizei precum identitatea p ărților ce comunica î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 evitar ea acestor atacuri sunt acelea care fac
criptanaliza extrem de grea, dac ă nu imposibil ă;
– este necesar ă prevenirea și nu detec ția lor.
Atacurile active sunt atacuri în care intrusul are o interven ție activă atât în desf ășurarea
normală a traficului, cât și în configurarea datelo r (modificarea datelor, cr earea unor date false).
Dintre atacurile active amintim :
• întreruperea / refuzul serviciului (denial of service) un bloc func țional este distrus, sau se
inhibă funcționarea normal ă sau managementul facilita ț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 pe ntru a produce efecte
neautorizate cum ar fi :
– 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 de
autenticitate . Din aceast ă categorie fac parte și:
– masacrarea (masaquerade): 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 s ă 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.

11 2.2 ATACURI CRIPTANALITICE
Atacurile criptanalitice sunt atacuri asupra textelor cifrate în vederea ob ținerii textului în clar
sau a cheilor folosite pentru decriptare .
Există mai multe tipuri de asemenea atacuri dintre care amintim:
1) Atac asupra textului cifrat (cipher text-only attack) : criptanalistul are criptograma
)(i k i ME C= și trebuie s ă obțină mesajul în clar (iM) sau cheia k.
2) Atac asupra unui text cunoscut (chiper text – only attack): criptanalistul are
criptogramele iC și mesajele în clar iM corespunz ătoare și trebuie s ă determine cheia k sau
algoritmul de determinare a lui 1+iM din ) (1 1 + +=i k i ME C
3) A tac cu text în clar ales (chosen plain-text attack) : se p ot alege o serie de mesaje
iM după dorința și se cunosc criptogramele corespondente : )(i k i ME C= . Criptanalistul
trebuie să determine cheia k sau algor itmul de determinare a lui 1+iM din ) (1 1 + +=i k i ME C .
4) Atac cu text în clar ales adaptiv (adaptive chosen plain-text attack) : mesajele în clar iM se
pot alege dup ă dorința și sunt adaptabile în func ție de rezultatele criptanalizelor anterioare, iar
criptogramele ) (i k i ME C= se cunosc. Se cere cheia k sau algoritmul de determinare a lui 1+iM din
) (1 1 + +=i k i ME C .
Aceste patru atacuri constituie atacurile criptanalitice de baz ă. În afara acest ora mai putem
aminti:
5) Atac cu text cifrat la alegere (chosen cipher-text attack ) în care se aleg iC și
) (i k i CD M= , sarcina criptanalistului fiind determ inarea 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 apeleaz ă la șantaj , furt , etc.) și este unul dintre
cele mai puternice atacuri.
Observație: Atacurile 3) și 4) 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.

2.3 SECURITATEA ALGORITMILOR
În secolul al XIX-lea, olandezul A. Kerckhoff a enun țat conceptul fundament al al criptanalizei:
Criptanaliza 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:

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 criptare, algoritmul

12este 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 1944 – a clasificat dife ritele categorii de spargere
a unui algoritm în ordine cresc ătoare a securit ății:
1)Spargere total ă (total break) / securitate zero: un criptanalist g ăsește cheia, deci orice
criptograma va fi decriptat ă: M CDk=)(.
2)Deducție globală (global deduction) : criptanalistul g ăsește un algoritm alternativ echivalent
cu ) (CDk 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ă (informa țional 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 computa țional puternic (computa țional strong) este algoritmul care poate fi spart cu
resursele existente, atât la momentul curent, cât și într-un viitor predictibil.
6)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. Privitor la
acești din urm ă termeni trebuie aten ționat că sunt extrem de expu și interpret ărilor.
Observații:
• Doar cheia de unic ă folosință (one time pad), inventată în 1917 de Major J. Maubergue
și GilbertVernon , având aceea și lungime cu a textului în clar, este de nespart.
• Toți ceilalți algoritmi pot fi spar ți cu ajutorul unui atac cu te xt cifrat, prin încercarea
tuturor cheilor, pân ă când textul descifrat are sens. Acest atac se nume ște atac prin for ță
brută (brute force attack).
Complexitatea unui atac (complexity) se manifesta în mai multe feluri:
a) Complexitatea datelor (data complexity) este volumul de date necesar pentru un atac;
b) Complexitatea proces ării / factorul de lucru (procesing 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 1282 indic ă 1282 opera ții necesare spargerii ci frului(de obicei aceasta
reprezintă complexitatea atacului prin for ța 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ă.

133. CRIPTOGRAFIE CLASIC Ă (PRECOMPUTA ȚIONALĂ,
SIMETRIC Ă)
Criptografia clasic ă este criptografia dinaintea calculatorului, de unde și denumirea de
criptografie precomputa țională.
În criptografia clasic ă, algoritmii erau baza ți pe caracter și constau dintr-o serie de
transform ări elementare (substitu ții, transpozi ții) ale caracterelor textului în clar. Unii algoritmi
aplicau aceste transform ări în mod repetat, îmbunătățind în acest fel securitatea algoritmului.
În criptografia modern ă bazată pe calculator (criptografie computa țională), lucrurile s-au
complicat, dar multe din ideile criptografiei clasice au r ămas nemodificate.
Criptografia clasic ă se încadreaz ă în clasa criptografiei cu chei simetrice.
Criptografia cu chei simetrice se refer ă la sistemele care folosesc aceia și cheie atât la criptare cât și
la decriptare. Modelul unui sistem cu chei simetrice este prezentat în figura 3.1.

Figura 3.1 Schema bloc a unui sistem de criptare cu chei simetrice
k – cheie de criptare ; E – bloc de criptare ( encryption ) ; D – bl oc de decriptare ( decryption ) ;
M – mesaj în clar ; C – mesaj criptat .
Clasificarea metodelor simetrice
În cadrul metodelor de criptografie simetric ă distingem 3 categorii diferite :
1. Cifruri substitu ție;
2. Cifruri transpozi ție;
3. Cifruri combinate.

3.1 CIFRURI DE SUBSTITU ȚIE
Cifrul de substitu ție (substituion 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 ale textului
cifrat (C), descifrarea f ăcându-se prin aplicarea substitu ției inverse asupra textului cifrat.
În criptografia clasic ă există patru tipuri de cifruri de substitu ție: D E
k kM C=E (M) D (C)

143.1.1) Cifruri de substitu ție monoalfabetic ă (monoalphabetic ciphers) sunt cifruri în care
fiecare caracter al textului în clar (M) este înlocuit cu un caract er corespondent al textului cifrat
(C).Vom aminti câteva dintre cifrurile de substituie cele mai cunoscute:
A. Cifrul Caesar
În cazul sistemului CAESAR substitutul unei litere se ob ține prin translarea s ă în față k
pași în alfabet. În sistemul CAESAR și în alte sisteme naturale se folose ște codificarea numeric ă
naturală:
A B C D E F G H I J K L M 0 1 2 3 4 5 6 7 8 9 10 11 12 N O P Q R S T U V W X Y Z 13 14 15 16 17 18 19 20 21 22 23 24 25

Notând literele de la 0 la 25, în CAESAR fiecare litera
α devine k+α , calculele
efectuându-se modulo 26.
Numărul cheilor posibile în CAESAR este foarte mic și pe lâng ă aceasta un alt mare
dezavantaj, din punct de vedere al securit ății, este acel ă că secvența substitutelor p ăstrează ordinea
alfabetică; doar pozi ția inițială se schimb ă.
B. Cifrul lui Polybius
Este un cifru de substitu ție. Literele alfabetului latin sunt a șezate într-un p ătrat de
dimensiune 5×5. 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 5×5 cifrarea oric ărui caracter f ăcându-se alegând perechea potrivit ă de numere (intersec ția
liniei și a 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 I.2 – Pătratul lui Polybius

Exemplu: Mesajul: ”AM CASTIGAT LUPTA”, se transform ă după cifrare în:
”11233111344443221144 1354534411”. Observație
: Codul poate fi schimbat prin rearanjarea l iterelor în p ătratul 5×5.

15 În sistemele UNIX, programul de crip tare 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) 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)) acest cifru nu este în realitate un ci fru de securitate; el se utilizeaz ă adesea în posturile de utilizator
de rețea pentru a ascunde texte poten țial ofensive.
Concluzie
: Cifrurile de substitu ție monoalfabetic ă p o t f i s p a r t e c u u șurință deoarece
frecvențele literelor alfabetului nu se schimb ă în textul cifrat fa ță de textul în clar.

3.1.2. Cifruri de substitu ție omofonica (homophonic substitution ciphers) 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
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 calcula tor îi va lu a doar câteva
secunde pentru al sparge.

3.1.3. Cifrul de substitu ție poligramic ă (polygram substitution ciphers) se obțin
substituind blocuri de caractere al e alfabetului primar – numite pol igrame – cu alte blocuri de
caractere, de exemplu:
ABA → RTQ
S L L → ABB
Cifrurile bazate pe substitu ția poligramic ă realizeaz ă substituirea unor blocuri de caractere
(poligrame) din textul clar, distrugând astfel semnifica ția, atât de util ă în criptanaliz ă, a frecven țelor
diferitelor caractere.
Considerăm un mesaj M=m 1m2…m dmd+1… și un cifru care prelucreaz ă poligrame de lungime
d. Criptograma rezultat ă este C=c 1c2…cdcd+1…cd+d. Fiecare poligram ă mid+1…m id+d va fi prelucrat ă în
poligrama c id+1…cid+d prin func ția de substitu ție f i astfel : C id+j=fj (m id+1, …, m id+d) .

16În cazul cifr ării literelor singulare frecven ța de apari ție a acestora în textul cifrat este
aceeași cu frecven ța de apari ție a literelor corespondente din te xtul clar. Aceast lucru furnizeaz ă o
cantitate de informa ție suficient ă criptanalistului pentru sparge rea sistemului. Pentru minimizarea
informației furnizate de frecven ța de apari ție a literelor s-a procedat la cifrarea grupurilor de litere
(n-grame). În cazul în care un grup de n litere este substituit printr-un alt grup de n litere,
substituția se nume ște poligramic ă; cel mai simplu caz se ob ține pentru n=2, când diagrama m 1m2
din textul clar se substitue cu diagrama c 1c2 din textul cifrat.
Un exemplu clasic pentru substitu ția diagramelor este cifrul lui Playfair .
Metoda const ă în dispunerea literelor alfabetului latin de 25 de litere într-un p ătrat de 5 linii și 5
coloane (i=j) de forma :
De regulă, în prima linie a p ătratului se scrie un cuvânt cheie și apoi se completeaz ă celelalte
linii cu literele alfabetului, f ără repetarea literelor din prima linie. Cifrarea se execut ă după
următoarele reguli :
– dacă m
1, m 2 sunt dispuse în vârfurile opuse ale unui dreptunghi, atunci c 1, c2 sunt
caracterele din celelalte vâ rfuri ale dreptunghiului, c 1 fiind în aceea și linie cu m 1. De exemplu GS
devine MN.
– dacă m1 și m 2 se găsesc într-o linie, atunci c 1 și c2 se obțin printr-o deplasare ciclic ă spre
dreapta a literelor m 1 și m 2. De exemplu AD devine BF sau CF, DA.
– dacă m1 și m 2 se află în aceeași coloană atunci c 1 și c2se obțin prin deplasarea ciclic ă a lui
m1, m 2 de sus în jos. De exemplu UO devine BW , iar EZ devine FE. Descifrarea se execut ă după
reguli asem ănătoare cu cele de cifrare.

3.1.4. Cifruri de substitu ție polialfabetice sunt formate din mai multe cifruri de substitu ție
simple. Au fost inventate de Leon Battis ta, în 1568. Cifrurile bazate pe substitu ția polialfabetic ă
constau din utilizarea unor substitu ții monoalfabetice diferite.
Fie d alfabete de cifrare c 1, c2, …, c d, și d funcții fi care realizeaz ă substituția de forma:
fi : A→Ci, 1 ≤ i ≤ d .
Un mesaj clar M = m 1m2…m dmd+1…m 2d… va fi cifrat prin repetarea secven țelor de func ții f1, f2, …,
fd: E k (M) = f 1 (m 1) …f d (md) f (m d+1). V U L P E
A B C D F
G H I K M
N O Q R S
T W X Y Z

17Utilizarea unei secven țe periodice de substiti ții ale alfabetului m ărește în mod semnificativ
securitatea criptogramei prin nivelarea caracteristicilor statistice ale limbii. Aceea și literă din textul
cifrat poate reprezenta mai multe litere din textul clar, cu diferite frecven țe de apari ție. În acest caz
numărul cheilor posibile se m ărește de la 26!, câte erau la substitu ția monoalfabetic ă, la (26!)n .
A. cifrul lui Vigenere ,
In acest caz cheia k este o secven ță de litere de forma : k=k 1k2…k d .
Funcțiile f i de substitu ție se definesc astfel : f i (a) = (a+k i) mod n, unde n este lungimea alfabetului .
Ca un exemplu consider ăm cheia de 8 litere ACADEMIE care va fi utilizat ă repetitiv pentru
cifrarea mesajului SUBSTITU ȚIE POLIALFABETIC Ă. Folosind o coresponden ță biunivoc ă între
literele alfabetului și elementele claselor de resturi modulo 26 ( A=0, B=1, …, Z=25 ), substitu ția 8-
alfabetică conduce la urm ătorul text:
– text clar : SUBSTITU ȚIE POLIALFABETIC Ă ;
– cheia : ACADEMIEACADEMIEACADEMIEA;
S + A = 18 + 0 (mod 26) = 18 (mod 26) = 18 = S U + C = 20 + 2 (mod26) = 22 (mod 26) = 22 = W B + A = 1 + 0 (mod26) = 1 (mod26) = 1 = B … C + E = 2 + 4 (mod 26) = 6 (mod26) = 6 = G A + A = 0 + 0 (mod26) = 0 (mod26) = 0 = A – text cifrat : SWBVXUBYTKESSXQELHAEIFQGA .

B. Sistemul Autoclave
O modificare suplimentar ă a sistemului Vigenere este sistemul Autoclave (cifrul Vigenere cu
cheie în clar sau cheie de încercare ). Caracterele te xtului în clar servesc drept cheie de criptare cu o
anumită deplasare.
Decriptarea se face în modul urm ător: din începutul criptotextului , pe baza cuvântului cheie,
se obține începutul textul ui în clar, dup ă care se folose ște drept cheie textul clar deja disponibil .
Într-o altă variantă a lui Autoclave (cifrul lui Vigenere cu autocheie sau cu cheie cifrat ă)
criptotextul deja creat folose ște drept cheie ad ăugându-se în continuar ea cuvântului cheie.
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 an terioare ale mesajului, inclusiv de
cheia de încercare. Urmare a acestui fa pt este efectul de fuziune a propriet ăților statistice ale
textului în clar asupra textului cifr at, ceea ce face ca analizele statistice s ă devină foarte grele pentru
criptanalist.
Schemele de cifrare Vigénère nu sunt foarte sigure având în vedere standardele actuale îns ă
contribuția important ă a lui Vigénère const ă în faptul ca a descoperit ca pot fi generate secven țe
nerepetitive drept cheie, prin utilizarea a însu și mesajului sau a unor p ărți ale acestuia.

18C. Cifrul Vernam
Cifrul Vigenere cu o perioad ă n, deși mult mai puternic decât un cifru bazat pe substitu ția
monoalfabetic ă, poate fi spart dac ă criptanalistul dispune de cel pu țin 2n caractere di n textul cifrat.
O variant ă mai nouă a acestui cifru peste un alfabet binar, este cifrul Vernam care se diferen țiază
prin cheia de cifrare, care este reprezentat ă de o secven ță de caractere aleatoare care nu se repet ă.
Fie M=m 1m2…m n un mesaj clar binar și K=k 1k2…kn un șir binar care reprezint ă cheia. Criptograma
C = E k (M) = c 1c2…cn se obține determinând fiecare caracter c i astfel : C i = (m i+ki) (mod n),
i=1, 2, … ,n .
Utilizarea o singur ă dată a cheii ne d ă un exemplu de criptosistem care face ca mesajul s ă
fie foarte rezistent la criptanaliz ă, practic imposibil de spart; textul clar este o secven ță finită de biți,
să zicem cel mult 20. Cheia este și ea o secven ța de 20 de bi ți. Ea este utilizat ă atât pentru criptare,
cât și pentru decriptare și este comunicat ă receptorului printr-un canal sigur. S ă luăm cheia
11010100001100010010; un text clar, s ă zicem 010001101011, este criptat prin sumare bit cu bit cu bi ții cheii, pornind cu
începutul acesteia.
11010100001100010010 ⊕
010001101011
100100101000 Deci criptotextul este 100100101000. Acesta nu d ă informații criptanalistului, deoarece el nu știe
nici ce biți vin din textul clar, nici care au fost schimba ți de către cheie. Aici este esen țial faptul c ă o
cheie este folosit ă o singură dată, altfel, un text clar anterior împreun ă cu criptotextul corespunz ător
oferă posibilitatea afl ării cheii sau cel pu țin prefixul ei.
Dezavantajul evident al acestei te hnici este gestionarea dificil ă a cheilor. Cheia, cel pu țin la fel de
lungă ca și textul clar, trebuie comunicat ă
printr-un canal sigur. Aceste cifruri au o larg ă utilizare în
comunica țiile diplomatice și militare.
D.Cifrul lui Trithemius
Este un cifru polialfabetic. Alfabetul este dis pus pe 26 de linii numer otate 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.

Exemplu: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Mesajul: ”T R E B U I E S Ǎ I N V I N G E M ”,
se cifreaz ă: ”UTHFZOL AJ SYHVBVUD”.

19 3.2 CIFRURI DE TRANSPOZI ȚIE
Spre deosebire de cifrurile cu substitu ție, care păstrează ordinea literelor din textul surs ă dar
le transform ă, cifrurile cu transpozi ție ("transposition ciphers") reordoneaz ă literele, f ără a le
"deghiza".
Un exemplu simplu este transpozi ția pe coloane, în care textul surs ă va fi scris liter ă cu literă
și apoi citit pe coloane, în ordinea dat ă de o anumit ă cheie. Ca și cheie se poate alege un cuvânt cu
litere distincte, de o lungime egal ă cu numărul de coloane folosite în cifru. Ordinea alfabetic ă a
literelor din cuvântul chei e va da ordinea în care se vor citi coloanele.
Exemplu:
Cifrul simplu cu transpunere în coloane: text ul în clar se scrie orizontal într-o anumit ă
formă, ca la Polybius sau ceva asem ănător, iar textul cifrat se cite ște pe coloane:

N E E D
H E L P
F A S T

Atfel textul rezultat este: ”NHFEEAELSDPT”
O simpl ă transpozi ție permite p ăstrarea propriet ăților statistice ale textului în clar și în textul
cifrat; o nou ă transpozi ție a textului cifrat m ărește securitatea cifrului.
Spargerea unui cifru cu transpozi ție începe cu verificarea dac ă acesta este într-adev ăr de
acest tip prin calcularea frecven țelor literelor și compararea acestora cu statisticile cunoscute. Dac ă
aceste valori coincid, se deduce c ă fiecare liter ă este "ea îns ăși", deci este vorba de un cifru cu
transpoziție.
Următorul pas este emiterea unei presupuneri în leg ătură cu numărul de coloane. Acesta se
poate deduce pe baza unui cuvânt sau expresii ghicite ca f ăcând parte din text. Considerând
sintagma "s ă prezinte", cu grupuril e de litere (luate pe coloane) "si", " ăn", "pt", "re", se poate
deduce num ărul de litere care le separ ă, deci num ărul de coloane. Not ăm în continuare cu k acest
număr de coloane.
Pentru a descoperi modul de ordonare a coloanelor, dac ă k este mic, se pot considera toate
posibilitățile de grupare a câte dou ă coloane (în num ăr de k(k-1) ). Se verific ă dacă ele formeaz ă
împreună un text corect num ărând frecven țele literelor și comparându-le cu cele statistice. Perechea
cu cea mai bun ă potrivire se consider ă corect pozi ționată. Apoi se încearc ă, după același principiu,
determinarea coloanei succesoare perechii din coloanele r ămase iar apoi – a coloanei predecesoare.
În urma acestor opera ții, există șanse mari ca textul s ă devină recognoscibil.
Unele proceduri de criptare accept ă blocuri de lungime fix ă la intrare și genereaz ă tot un
bloc de lungime fix ă. Aceste cifruri pot fi descrise complet prin lista care define ște ordinea în care

20caracterele vor fi trimise la ie șire (șirul pozițiilor din textul de intrare pentru fiecare caracter din
succesiunea generat ă).

3.3 MA ȘINI ROTOR
Având în vedere faptul ca metodele de substitu ție și permutări repetate sunt destul de
complicate s-a încercat mecanizarea lor primele ma șini fiind puse la punct în jurul anului 1920
acestea fiind bazate pe pricipiul de rotor.
O mașină rotor (rotor machine) are o tastatur ă și o serie de rotoare ce permit implementarea
unei versiuni a cifrului Vigénère. 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 n26 .
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 inve ntat de Arthur Scherbius și Arvid Gerhard Damm în Europa și a
fost patentat în SUA. Germanii au îmbun ătățit considerabil proiec tul inventatorilor s ăi, dar a fost
spart de criptanali știi polonezi care au explicat atacul englezilor.

4. Criptografie computati onala cu cheie secreta
Cifrul DES: Standard de încriptare a datelor (Data Encryption Standard)

4.1.Scurt istoric al dezvolt ării DES
Primele versiuni de DES au fost dezvoltate de IBM; în prezent, algoritmul este utilizat pe
majoritatea platformelor UNIX, pentru criptarea parolelor. DES este autorizat și de NBS (National
Bureau of Standards-Biroul Na țional de Standarde) și de NSA (National Security Agency-Agen ția
Națională de Securitate). De fapt începând cu 1977, DES a reprezentat metoda general acceptat ă
pentru protejarea datelor confiden țiale. Figura urm ătoare prezint ă un scurt istoric al dezvolt ării
DES:

Fig.4.1. Scurt istoric al dezvolt ării DES
DES a fost proiectat în principal pentru protejarea anumitor informa ții secrete ce puteau
exista în birourile federale.

21Datorită inexisten ței unei tehnologii cript ografice generale în af ara domeniului securit ății
naționale și deoarece produse de securita te, cum ar fi cele de cripta re, erau necesare în aplica țiile
secrete folosite pe calculatoarele federale și guvernamentale, NBS (Nationa l Bureau of Standards) a
inițiat în 1973 un proiect pentru asigurarea securit ății sistemelor de calcul , proiect care cuprindea și
dezvoltarea unui standard pentru cr iptarea datelor din calculatoare.

4.2. Prezentarea algoritmului DES
DES ofer ă un algoritm implementabil în dispoz itivele electronice pentru criptarea–
decriptarea datelor. Ideea de "standardizare" în criptografie este revolu ționară. Înaintea public ării lui
DES, nu se cuno ștea o altă publicație conținând descrierea u nui algoritm criptografic în uz.
În general, cei mai mul ți dintre proiectan ții de criptosisteme au încercat s ă ascundă detaliile
algoritmilor folosi ți. DES constituie o excep ție, algoritmul este publicat!. Aceasta poate constitui o
veritabilă provocare pentru oricine încearc ă spargerea acestuia.
Caracteristici:
’ lungimea unui bloc este de 64 de bi ți;
’ cheia este pe 64 de bi ți dintre care 8 sunt bi ți de paritate;
’ 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/decr iptare ale unui bloc;
’ pentru cre șterea securit ății se poate aplica algoritmul T-DES (triplu DES) care const ă în
iterarea de trei ori a algoritmului DES.

Fig.4.2. Prezentarea general ă a algoritmului DES

22În figura 4.2. se d ă o schem ă generală pentru algoritmul DES. Exist ă 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.
Din figură se poate observa c ă în partea dreapt ă a desenului avem generarea cheilor iar în
partea stâng ă 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 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. Prezentarea unei singure itera ții a algoritmului DES se d ă în figura 4.3.

Fig.4.3 Descrierea unei singure itera ții a algoritmului DES
Din figură se observ ă faptul 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 S i = D i-1. Blocul ini țial drept va fi supus întâi unei permuta ții de
expandare care îi va m ări dimensiunea de la 32 la 48 de bi ți pentru ca apoi s ă poată fi 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 ș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 D i = S i-1 ⊗ f(D i-1,Si) unde modulul de calculare al func ției f se
poate observa în figura 4.4:

23
Fig.4.4. Opera țiile care se efectueaz ă pentru calcularea func ției f

O prezentare mai am ănunțită a algoritmul DES este prezentat ă în continuare.
Operațiile de criptare și decriptare, potrivit algo ritmului DES, se desf ășoară după cum
urmează. Mai întâi utilizatorul alege o cheie – o succesiune aleatoare de 56 bi ți – folosit ă atât la
criptare, cât și la decriptare, pe care, bineîn țeles, o păstrează secretă. Opt biți, în pozițiile 8,16,……..,
64, sunt ad ăugați la cheie pentru a asigura faptul c ă fiecare octet este de paritate impar ă. Aceasta
folosește la detectarea eror ilor în timpul stoc ării și distribuirii cheilor. Astfel, bi ții adăugați sunt
determina ți de cei 56 bi ți inițiali, acum în pozi țiile 1, 2, …, 7, 9, …, 15, …,57, …, 63 ale cheii. Apoi,
cei 56 de bi ți sunt permuta ți în modul urm ător:

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 4.1. – Permutarea de tipul 1

obținându-se dou ă blocuri C 0 și D 0 a câte 28 de bi ți fiecare. Prin urmare, primii trei bi ți ai lui C 0
(respectiv, ultimii trei ai lui D 0) sunt biții 57, 49, 41 (respectiv, 20, 12, 4) ai cheii. Având construite
blocurile C n-1 și D n-1, n=1,…, 16, putem construi blocurile C n și D n, printr-o deplasare la stânga cu
una sau dou ă poziții, din blocurilor C n-1 și D n-1, în conformitate cu urm ătorul tabel:

24Iteraț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 4.2. – Programul deplas ărilor spre stânga pe pa și

O deplasare la stânga cu o pozi ție înseamn ă că secvența 1, 2, …, 28, devine 2, 3, 28,1.
Deci, potrivit tabelului, C 6 și D 6 sunt obținute din C 5 și, respectiv, din D 5, printr-o deplasare la
stânga cu dou ă poziții. În acest moment se pot defini 16 selec ții K n, 1≤ n ≤ 16 de bi ți din cheie.
Fiecare K n constă din 48 de bi ți, obținuti din bi ții lui C nDn, în următoarea ordine:

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 4.3. – Permutarea de tipul 2

Primii (respectiv, ultimii) trei bi ții în K n sunt biții 14, 17, 11 (respectiv, 36, 29, 32) din
CnDn au fost omi și în K n.
Calculele de pân ă acum sunt preliminare: plecând de la cheie, am produs 16 secven țe K n,
constând fiecare din câte 48 de bi ți. Vom ar ăta acum cum se cripteaz ă un bloc w de 64 de bi ți din
textul clar. Mai întâi blocul w este supus urm ătoarei permutări inițiale:

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

Tabelul 4.4. – 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
Bit 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
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 4.5. – Inversa permut ării inițiale

25rezultând un nou cuvânt w’, primii 3 bi ți ai acestuia fiind 58, 50, 42 ai lui w. Scriem acum w’=L 0R0,
unde L 0 și R0 sunt cuvinte de câte 32 de bi ți. Având definite L n-1 și Rn-1, 1≤ n ≤16, definim L n și Rn
prin:
Ln = R n-1
Rn= L n-1⊕ f(R n-1, Kn)
unde ⊕ semnific ă adunarea bit cu bit modulo 2, iar f va fi definit ă mai jos. Criptarea c a blocului
original w se va obține prin aplicarea inversei permut ări inițiale, blocului R 16L16 de câte 64 de bi ți.
Încă n-am definit func ția f, dar, înainte de a o face, s ă vedem cum se procedeaz ă pentru
decriptare. Scriind ecua țiile de mai sus sub forma:
Rn-1= L n
Ln-1= R n ⊕ f (L n, Kn)
putem afirma c ă am indicat o cale de deducere recursiv ă a lui L 0 și R 0 din L 16 R16, după care
decriptarea este clar ă.
Funcția f realizeaz ă un bloc de 32 de bi ți din două blocuri, unul de 32 bi ți, R n-1 sau L n, și
altul de 48 bi ți, K n, în felul urm ător:

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 4.6. – Permutarea cu expansiune
Așadar, primul bit din blocul ini țial de 32 bi ți apare de dou ă ori în pozi țiile 2 și 48 în noul
bloc de 48 bi ți. După această expandare, cele dou ă blocuri a 48 bi ți sunt sumate bit cu bit modulo 2.
Blocul rezultat B (48 bi ți) este împ ărțit în blocuri B 1, B2,…., B 8 a câte 6 bi ți fiecare. Fiecare din
aceste 8 blocuri B i este apoi transformat într-un nou bloc de 4 bi ți, B i’ , utilizând tabele
corespunz ătoare S I afișate mai jos.
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
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
S1

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
2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
S2
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
2 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
S3
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
2 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
S4
3 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14

260 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
2 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
S5
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
2 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
S6
3 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
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
2 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
S7
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
2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
S8
3 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

Tabelul 4.7. – Cutiile S din algoritmul DES
Transformarea se face dup ă cum urmeaz ă. Să luăm, de exemplu, blocul B 6=110010.
Primul bit împreun ă cu ultimul constituie un num ăr x, 0≤ x ≤ 3. Similar, restul de 4 bi ți constituie
un alt num ăr y, 0≤ y ≤ 15. În exemplul nostru, x=2 și y=9. Dac ă privim component ele perechii (x,y)
ca indicii de linii și coloane ai lui S 6, acestea vor determina în mod unic un num ăr, în cazul nostru
15. Reprezentând binar pe 15, ob ținem B 7’=1111. Valoarea lui f se obține acum prin aplicarea
permutării:

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 4.8. – Permutarea P

blocului de 32 bi ți rezultat B 1’, B2’, B3’, B 4’, B 5’, B 6’, B 7’, B 8’. Cu aceasta defini ția funcției f, ca și
descrierea algoritmului de criptare și decriptare DES sunt încheiate.
Cu un hard adecvat algoritmul DES este foarte rapid. Pe de alt ă parte, criptanaliza lui
conduce la numeroase sisteme de ecua ții neliniare. Construirea unei ma șini care s ă analizeze toate
cele 256 chei posibile, cu o vitez ă de 1012 chei pe secund ă, ar necesita un echipament special, cu 106
chip-uri, care s ă cerceteze diferite por țiuni din spa țiul cheii cu o vitez ă de o cheie pe micro-secund ă.
Estimările privind costul unei asemenea ma șini variaz ă considerabil.
Sistemul DES posed ă și o altă caracteristic ă foarte apreciat ă din punctul de vedere al
siguranței lui: o mic ă schimbare în textul clar sau în cheie provoac ă, o mare schimbare în criptotext.

275. Criptografia cu chei publice (asimetric ă)

Într-un sistem cu chei simetri ce, pentru un crip tanalist care cunoa ște metoda de criptare nu
există nici un fel de dificult ăți în procesul de decriptare. Cheile de criptare și decriptare coincid,
chiar și în cele mai sofisticate sistem e, cum ar fi DES-ul. Exist ă criptosisteme în care metoda de
criptare poate fi f ăcută publică. Aceasta înseamn ă că și criptanalistul cunoa ște metoda de criptare și,
totuși, el nu este în m ăsură să decripteze criptotextul. În aceasta const ă ceea ce este cunoscut sub
numele de criptografie cu chei publice : metoda de criptare poate fi f ăcută publică.
Ideea a fost realizat ă de către Diffie și Hellman, și deși revoluționară, ea este cât se poate
de simplă. O astfel de idee simpl ă a fost luat ă în considerare târziu – la mijlocul anilor ’70 deoarece
teoria complexit ății calculului s-a dezvoltat abia în ultima perioad ă de timp. Teoria d ă informații
privind complexitatea diferitelor calcule, de pild ă privind timpul de calcul necesar atunci când se
folosesc cele mai bune calculatoare. O astfel de informa ție este crucial ă în criptografie.
Deși metoda de criptare este f ăcută publică, criptarea se poate face în siguran ță. Dacă
totuși unui criptanalist îi vor fi necesari su te de ani pentru a deduce me toda de decriptare prin
dezvăluirea metodei de criptare, în aceast ă situație nimic nu va fi compromis.
Criptarea se poate face într-o singur ă direcție (“sens unic”). De și este ușor de mers în
această direcție, totuși este imposibil de urmat direc ția opusă: decriptarea. Pentru exemplificare s ă
considerăm cartea de telefon dintr-un mare ora ș. Este foarte u șor să stabilim num ărul de telefon al
unei persoane precizate. Pe de alt ă parte, este foarte greu (chiar im posibil) de stabilit persoana care
are un num ăr de telefon specificat.
Acest exemplu ofer ă și o idee pentru un criptosistem cu chei publice. Criptarea este de tip
context-free: liter ă cu literă. Pentru fiecare liter ă a textului clar este ales, din cartea de telefon, în
mod aleator, un nume car e începe cu acea liter ă. Numărul de telefon corespunz ător constituie
criptarea apari ției respective a literei în cauz ă. Spre exemplificare s ă criptăm textul ACUMSTAU.
Tabelul 513. – Criptarea unui text

Criptotextul se ob ține deci scriind, unul dup ă altul, toate numerele care apar în coloana din
dreapta. Un receptor legal al mesajului trebuie s ă aibă o carte de telefon, cu numere aranjate în
ordine cresc ătoare. O astfel de list ă de numere face ca decriptarea s ă fie mai simpl ă. Lista numerelor
de telefon ordonate cresc ător constituie trapa secret ă, cunoscut ă numai de utilizatorii legali ai
acestui sistem.

28Fără cunoașterea acestei trape, adic ă fără a poseda o copie a c ărții de telefon, criptanalistul
va avea nevoie de un timp foarte mare pent ru decriptare. Aceasta în ciuda faptului c ă metoda de
criptare a fost f ăcută publică și astfel criptanalistul cunoa ște, în principiu, cum trebuie s ă
intercepteze secven ța numeric ă interceptat ă.
Căutarea exhaustiv ă este în mod cert mult prea lung ă în timp. Criptanalistul poate, de
asemenea, s ă apeleze numerele din criptotext și să ceară numele corespunz ătoare acestora. Succesul
metodei este cel pu țin discutabil în foarte multe cazuri, criptanalistul poate primi un r ăspuns curios
sau nici un r ăspuns. De fapt metoda devine de neaplicat dac ă se folose ște o carte de telefon mai
veche.
Principiul acestui sistem es te ilustrat în figura 5.1:

Fig. 3.1 Schema bloc a unui sistem de criptare cu cheie public ă

Fiecare utilizator are o tran sformare de cifrare public ă Ek1 care poate fi memorat ă într-un
fișier public și o transformare de cifrare critic ă Dk2.
Proprietățile unui sistem de criptare cu cheie public ă sunt:
1. pentru orice pereche de chei (K 1,K2) algoritmul de descifrare cu cheia K 2 : D k2
este inversul algoritmului de descifrare cu cheia K 1 : E k1;
2. pentru orice K 1, K2 și orice M, algoritmii de calcul pentru E k1 și D k2 sunt simpli și rapizi
3. pentru orice K 1,K2 algoritmul de calcul al lui D k2 nu poate fi ob ținut într-un interval de
timp rezonabil plecând de la E k1
4. orice pereche K 1,K2 trebuie să fie calculabil ă ușor plecând de la o cheie unic ă și secretă.
În sistemele cu cheie public ă, protecția și autentificarea sunt re alizate prin transform ări
distincte.

Fig. 5.2 Protec ția criptosistemului cu chei publice
Presupunem c ă utilizatorul A dore ște să transmită un mesaj M unui utilizator B. În acest caz,
A, cunoscând cheia public ă a lui B (E B), transmite criptograma C=E B(M), asigurând astfel func ția
de protecție (Fig. 5.2).
La recepție, B descifreaz ă criptograma C utilizând transformarea D B:
DB(C)=D B(EB(M))=M.

29Pentru autentificare se aplic ă lui M transformarea secret ă DA. Către B se va transmite:
C=D A(M). La recep ție, B va aplica transformarea public ă E A corespunz ătoare lui A:
EA(C)=E A(DA(M)=M.

Fig. 3.3 Autentificarea în criptosisteme cu chei publice

Autentificarea este realizat ă deoarece c ătre B nu pot fi transmise mesaje false C ′=D A(M′), deoarece
numai A cunoa ște D A (cheia secret ă). În acest caz nu se realizeaz ă însă și protecția, pentru c ă M
poate fi ob ținut de orice apelant E A a lui C, E A fiind public ă.
Pentru a realiza simultan protec ția și autentificarea (Fig. 5.4), spa țiul M trebuie s ă fie
echivalent spa țiului C, astfel încât orice pereche (E A,DA), (E B,DB) să fie mutual inverse:
EA(DA(M))=D A(EA(M))=M
EB(DB(M))=D B(EB(M))=M

Fig. 3.4 Protec ție și autentificare în criptosistemele cu chei publice

Utilizatorul A va aplica mai întâi transformarea secret ă DA asupra mesajului M, dup ă care va
transmite lui B criptograma : C=E B(DA(M)). Receptorul B ob ține mesajul în clar aplicând
criptogramei propria-i func ție de descifrare D B și apoi transformare public ă a lui A,
EA: EA(DB(C)=E A(DB(EB(DA(M))))=E A(DA(M))=M.

Semnătura digital ă în criptosistemele cu chei publice
Fie mesajul semnat de A, transmis c ătre receptorul B. Semn ătura lui A trebuie s ă aibă
următoarele propriet ăți:
• B trebuie s ă fie capabil s ă valideze semn ătura lui A;
• să fie imposibil pentru oricine, inclusiv B, s ă falsifice semn ătura lui A;
• în cazul în care A nu recunoa ște semnătura unui mesaj M, s ă existe un „judec ător” care s ă
rezolve disputa dintre A și B.

30 Implementarea semn ăturii digitale este extrem de simpl ă în cazul sistemelor cu chei publice.
În acest caz, D A poate servi ca semn ătura digital ă pentru A. Receptorul B al mesajului M, semnat de
A, este sigur atât de autenticitatea emi țătorului cât și a datelor.
Protocolul semn ăturii digitale se desf ășoară astfel:
• A semneaz ă pe M : S=D A(M);
• A trimite lui B criptograma : C=E B(S);
• B valideaz ă semnătura lui A, verificând dac ă EA(S)=M;
D B(C)=D B(EB(S))=S;
E A(S)=E A(DA(M))=M;
Un „judec ător” rezolv ă eventualele dispute dintre A și B, controlând dac ă EA(S) conduce la
M, în acela și mod ca și B.

5.2 Sisteme de cifrare cu chei publice exponen țiale
Sistemele criptografice cu chei publice s unt sisteme de tip asimetric.Ideea care st ă la baza
acestui concept const ă în faptul c ă, cheia de cifrare este f ăcută publică de fiecare utilizator și poate
fi folosită de către toți ceilalți utilizatori pentru cifrarea mesajelo r ce îi sunt adresate. În schimb,
procedura (cheia) de descifrare este ținută secretă. În Fig. 3.5 se prezint ă sistemul cu chei publice, în
paralel cu un sistem clasic.

Fig. 5.5 Criptosistem cu chei publice a) și convențional b)
Dacă notăm cu {m} –mul țimea mesajelor, {c} –mul țimea receptoarelor,
E-procedura de cifrare și D-procedura de descifra re, un criptosistem cu chei publice trebuie s ă
satisfacă următoarele:
(1) dacă C=E(M), atunci M=D(C) sau D(E(M))=M,
∀M∈{M};
(2) E și D sunt u șor și rapid aplicabile
(3) dezvăluirea public ă a lui E nu trebuie s ă compromit ă pe D, ceea ce înseamn ă că obținerea lui D
din E este matematic imposibil sau presupune un consum enorm de resurse.

31 Metoda propus ă permite comunica ții sigure între utilizatorii care nu au stabilit contacte
prealabile. De exemplu, dac ă utilizatorul A dore ște să transmită un mesaj confiden țial utilizatorului
B, A va c ăuta în fișierul public E B și se va transmite la B: C=E B(M). Conform propriet ății a treia, B
este singurul utilizator care știe să descifreze criptograma C aplicând cheia D B ținută secretă.
În plus, pentru ridicarea gr adului de securitate al transmisiei s-a propus ca E și D să
îndeplineasc ă și următoarea proprietate adi țională:
(4) dacă S=D(M), atunci M=E(S) sau E(D(M))=M pentru ∀M ∈{M}.
Varianta S este numit ă semnătură digitală și reprezint ă o metodă de autentificare reciproc ă.
În timp ce B poate fi sigur c ă mesajul recep ționat a venit de la adev ăratul A, A poate fi sigur c ă
nimeni nu va putea s ă-i atribuie un mesaj fals. Utilizatorul A poate semna mesajul c ătre B astfel:
S=D A(M), apoi, trimi țând criptograma: C=E B(S).
În aceste condi ții numai B poate recunoa ște pe S din C calculând:
DB(C)=D B(EB(S))=S. Apoi mesajul se poate ob ține calculând :
EA(S)=E A(DA(M))=M.
Diffie și Hellman sugereaz ă o metod ă de implementare practic ă a conceptului propus. Se
indică utilizarea unor func ții greu inversabile. O func ție este greu inversabil ă dacă este inversabil ă
și ușor de calculat, dar pentru aproape toate valo rile y din codomeniu este imposibil computa țional
să se calculeze
x=f-1(y).
Cu alte cuvinte este imposibil s ă se calculeze f-1 dacă se dispune de o descriere complet ă a
lui f. În concluzie, o func ție este greu inversabil ă dacă:
• este ușor să se calculeze y din x, y=f(x);
• există inversa func ției;
• este computa țional imposibil ă determinarea inversei func ției.
O funcție greu inversabil ă se spune c ă este cu trap ă atunci când f-1 este ușor de calculat
numai dac ă se dispune de o informa ție numită trapă; necunoa șterea acestei informa ții face ca
funcția să fie greu inversabil ă. O astfel de pereche de func ții (f, f-1) poate constitui perechea (E, D) a
unui criptosistem cu chei publice. În general pentru procedurile E și D se indic ă scheme bazate pe
operații modulo n cu elemente din in elul claselor de resturi modul o n. Securitatea algoritmilor
implementa ți prin metoda cifr ării asimetrice au la baz ă dificultatea calculului logaritmului modulo
număr prim.
Fie q un num ăr prim și un întreg X, X ∈[1, q-1]. Se pot calcula:
Y=ax(mod q), unde a este un element primitiv al câmpului Galois GF(q).
Dup ă cum se știe, clasele de resturi modulo q formeaz ă un inel; dac ă q este un num ăr prim
acesta formeaz ă un câmp Galois GF(q). Într-un câmp Galois GF(q) exist ă (q-1) numere care se

32numesc elemente primitive ale câmpului. Dac ă a,a2,…,aФ(q) sunt puterile lui a, acestea au ca resturi
modulo q pe 1,2,…, Ф(q), unde Ф(q) este indicatorul lui Euler, Ф(q)=q-1.
Fiecare utilizator A aleg e în mod aleator un num ăr X A, X A={1,2,…,q-1} și se calculeaz ă
YA=aXA(mod q). Num ărul X A este ținut secret în timp ce Y A se face public. Dac ă utilizatorii A și B
doresc să comunice, ei utilizeaz ă următoarea cheie de comunica ție:
KAB=YXB
A=YXA
B =YXAXB
B (mod q).
În timp ce utilizatorii A și B pot calcula cheia K AB pornind de la x propriu(secret) și y public
al partenerului, un criptanalist trebuie s ă calculeze K AB pornind de la Y A și Y B, singurele f ăcute
publice; se procedeaz ă astfel: K AB=Y AlogYB(mod q). Acest lucru face ca sistemul s ă fie deosebit de
greu de spart datorit ă imposibilit ății calculului logari tmului modulo q.

5.2.1. Cifrul Rivest-Shamir Adleman (RSA)
Cel mai larg utilizat și verificat criptosistem cu chei publ ice a fost cel introdus de Rivest,
Shamir și Adleman, care este acum cunoscut ca RSA.
Acest cifru reprezint ă standardul în domeniul semn ăturilor digitale și al confiden țialității cu
chei publice. Sub diferite forme de implementare, prin programe sau dispozitive hardware speciale,
RSA este ast ăzi recunoscut ă ca cea mai sigur ă metodă de cifrare și autentificare disponibil ă
comercial.
Acest cifru se bazeaz ă pe o idee uimitor de simpl ă din teoria numerelor și totuși a rezistat la
toate atacurile criptanali știlor de pân ă acum.Ideea se bazeaz ă pe faptul c ă, deși este ușor să
înmulțești două numere prime mari, este îns ă extrem de greu s ă se factorizeze pr odusul lor.Astfel,
produsul poate fi f ăcut cunoscut și utilizat ca o cheie de criptare.Numerele prime însele nu pot fi
reconstituite din produsul lor.Pe de alt ă parte, numerele prime sunt necesare pentru decriptare.
În continuare voi prezenta deta lii despre sistemul RSA.Fie p și q două numere prime mari
distincte și aleatoare(având aproximativ 100 cifre zecimale fiecare).Se noteaz ă :
n = pq și Ф(n) = (p-1)(q-1)
unde Ф este func ția Euler.Se alege un num ăr aleator mare D >1 astfel încât (D, Ф(n)) = 1 și se
calculează numărul E,1 <E<Ф(n) care să satisfacă congruen ța:
ED = 1(mod Ф(n)).
Numărul n este modulul, E este exponentul de criptare și D exponentul de decriptare.Numerele n și
E formeaz ă cheia public ă de criptare, iar p, q, Ф(n) și D formeaz ă trapa secret ă.Evident c ă
informația despre trapa secret ă nu constă în patru parametri independen ți.De exemplu, cunoa șterea
lui p conduce imediat la aflarea și a celorlal ți trei parametri.

33 Metoda de criptare implic ă calcul exponen țial într-un câmp finit(m odulo n). Mesajul cifrat
se obține din mesajul în clar printr -o transformare(codare) bloc. Fi e unul din aceste blocuri din
mesaj M, bloc ce are proprietatea M ∈(0, n-1); proprietate care se ob ține prin modul de împ ărțire a
mesajului în blocuri. Bl ocul cifrat, C, corespunz ător blocului în clar, se ob ține calculând
exponențiala: C=ME(mod n), E și n reprezentând astfel cheia secret ă de decriptare.
Decriptarea se face prin opera ția : M=CD(mod n), unde D este cheia secret ă de decriptare.
Cele dou ă chei E și D trebuie s ă satisfacă relația:
M=CD(mod n)=MED(mod n), pentru ca algoritmul s ă poată fi într-adev ăr folosit. Pentru aceasta
plecăm 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 un num ăr prim n, pentru orice bloc n ∈(0,1) avem proprietatea de la
care pornim MФ(n)(mod n)=1,
Dac ă E și D satisfac rela ția ED(mod Ф(n))=1, putem scrie:
ED=KФ(n)+1=Ф(n)+Ф(n)+Ф(n)+…+Ф(n)+1, MED=MФ(n)+Ф(n)+Ф(n)+…+Ф(n)+1=
MФ(n)MФ(n)MФ(n)…M(mod n). Deci ED(mod Ф(n))=1⇒MED=M(mod n).
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 criptare, iar în cazu l 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 ideea 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, astfel încât
indicatorul lui Euler, Ф(n)=(p-1)(q-1), devine mult mai greu de determinat având la dispozi ție n.
Folosind aceast ă 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 aceasta 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 num ăr n mare.
Exemplu
Vom utiliza un cifru cu p=47 și q=79
n=pq=47·79=3713. Alegând D=47, E va fi 37 pentru a satisface rela ția:
E·D mod((p-1)(q-1))=1, E=[(p-1)(q-1)+1]/D Astfel, pentru a coda mesajul „A sosit timpul” vom coda mai întâi fiecare liter ă a alfabetului. De
exemplu: A=00, B=01,…,Y=25, blanc=26. Mesajul va deveni: M=0018 1418 0819 1908 1215 2011. În continuare vom coda fiecare num ăr de
4 :

34 0018E mod(n)= 001837 mod (3713)=3091
1418E mod(n)= 141837 mod (3711)=0943
0819E mod(n)= 081937 mod (3713)=3366
1908E mod(n)= 190837 mod (3713)=2545
1215E mod(n)= 121537 mod (3713)=0107
2011E mod(n)= 201137 mod (3713)=2965
Astfel mesajul cifrat devine: 3091 0943 3366 2545 0107 2965.
La decriptare se vor calcula pe rând:
3091E mod(n)= 309137 mod(3713)=0018
0943E mod(n)= 081937 mod(3713)=1418,
… , obținând mesajul ini țial.
O problem ă care 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 s ecurizare mare. Se poate spune ca lucrând cu operanzi pe 512 bi ți
sistemul este deocamdat ă imposibil de spart.

5.2.2. Cifrul EL GAMAL (EG)
El Gamal propune în o nou ă metodă de semnătură bazată pe schema de distribu ție a cheilor
a lui Diffie și Hellman. Schema presupune c ă A și B doreau stabilirea unei chei secrete k AB, A
folosind informa ția secretă xA iar B pe x B. De asemenea exist ă un întreg prim mare p și un element
a primitiv modulo p. A va calcula y A=axA
mod p și va emite la B pe y A. Similar B va emite la A:
yB=axB mod p.
Ca urmare fiecare poate acum calcula cheia secret ă comună:
k AB=(axA)xB
mod p=(y A)xB
mod p=(axB)xA mod p=(y B)xA mod p.
Pentru ca A s ă transmită un mesaj m cifrat la B, 0 ≤m≤p-1, A va putea alege un k ∈[0, p-1]
care va servi drept cheie secret ă xA. El va calcula apoi cheia: k AB=yBk mod p, unde y B a fost
obținut direct de la B sau dintr-un fi șier cu chei publice. A va pute emite la B perechea (c 1, c2), unde:
c1=ak mod p, și
c 2=kAB m mod p.
Descifrarea se face și ea în dou ă etape. Mai întâi se ob ține k AB:
k AB=(ak)xB=(c 1)xB mod p.
Apoi se va ob ține mesajul clar prin împ ărțirea lui c 2 la k AB. El Gamal propune pe baza acestei
scheme o nou ă metodă de semn ătură. Fie m un document semnat, 0 ≤m≤p-1. Fișierul public va
conține cheia y=ax mod p pentru fiecare uti lizator. Pentru a semna un doc ument, A va folosi cheia

35sa secretă xA într-o astfel de manier ă încât semn ătura să poate fi verificat ă de orice alt utilizator pe
baza cheii publice y A.

1) Procedura de semnare
a) Se alege aleator un întreg k, k ∈[0, p-1], astfel ca c.m.m.d.c.(k, p-1) = 1;
b) Se calculeaz ă: r=ak mod p.
Semnătura lui m este perechea (r,s), 0 ≤r, s≤p-1, care satisface condi ția: m=yrrs (mod p) (*);
c) acum condi ția (*) poate fi scris ă: am=axraks mod p, prin rezolvarea ecua ției m=xr+ks mod p, care
are soluție dacă se respect ă procedura a).

2) Verificarea semn ăturii
Fiind dați m,r,s, este u șor să se verifice autenticitatea semn ăturii calculând am (mod p), yrrs
(mod p) și verificând apoi dac ă sunt egale. Este indicat ca valoarea lui k, aleas ă aleator, s ă fie
folosită o singur ă dată. Se poate folosi în acest scop un generator de k bazat pe un model DES
(generator cu contor).
Generalizare a schemei El Gamal:
– cheia public ă: E A=aAD(mod n), unde a = este o constant ă a sistemului cunoscut ă de către toți
parametrii; n = este un num ăr prim;
– cheia secret ă: D A, un num ăr natural.
(1) Semnarea unui mesaj M se face dup ă următorul algoritm:
pentru i=1,p-1 execută
generez aleator k i în [0, n-1] astfel încât
c.m.m.d.c. (k i, n-1)=1
calculez ai=aki (mod n) din ecua ția:
M=D Aa1+k1a2+…+k p-1ap (mod n-1)
sfârșit
Ca urmare semn ătura lui M realizat ă cu nivelul de securitate p este reprezentat ă de: S=(a 1,a2,…,a p).
(2) Verificarea semn ăturii se face calculând separat:
Valoarea 1 = aM mod n
și
Valoarea 2 = e Aa1a1a2…ap-1ap mod n
și comparându-le dac ă sunt egale.
Aceast ă s c h e mă introduce un factor de complexitate suplimentar ă prin nivelul p de
securitate, ceea ce spore ște rezisten ța schemei la atac criptanalitic. Criptanalistul este confruntat cu
necesitatea invers ării tuturor func țiilor exponen țiale a i=aki (mod n) în câmp finit, ceea ce reprezint ă
o problem ă grea computa țională dacă n este mare (128,256,512 bi ți).

36

5.2.3. Sisteme de cifrare cu chei publice de tip rucsac
Metoda de cifrare cu cheie public ă MH este bazat ă pe cunoscuta problem ă a rucsacului, care
constă în a determina într-o mul țime de numere întregi, o submul țime de o sum ă dată. Merkle și
Hellman propun o metod ă a cărei securitate depinde de dificultatea rezolv ării următoarei probleme:
fiind dat un întreg pozitiv C și un vector A=(a 1,a2,…,a n) de întregi pozitivi, s ă se găsească o
submulțime a lui A a c ărei sumă să fie C. Cu alte cuvinte este necesar s ă se determine un vector
binar M=(m 1,…,m n), astfel că C=AM sau: iima C∑= .
Intuitiv problema este urm ătoarea: cunoscând greuta tea unui rucsac închis și greutățile mai
multor obiecte care s-ar putea afla în interiorul s ău, să se determine setul de obiecte aflate în rucsac,
fără a se face deschiderea lui.
Cel mai bun algoritm cunoscut pentru rezolvarea ei – în cazul în care dimensiunea rucsacului este n
– cere (2n/2) timp și o memorie de (2n/2).
Exist ă totuși o clasă specială de probleme de un asemenea tip, numit ă „rucsac simplu”, ce
pot fi rezolvate într-un ti mp ce depinde liniar de n.
Într-un rucsac simplu elementele a i (i=1,…,n) sunt în rela ție de dominan ță, adică ∑>j i a a ,
j=1,…,i.
Rela ția de dominan ță simplific ă soluția rucsacului, ea putându-se face dup ă următoarea
procedură:
Procedura RUCSAC-SIMPLU (C,A,M)
Pentru j=N,1 execută
Dac ă c≥aj atunci m j=1
altfel m j=0
atribuie c=c-a j·mj
dacă c=0 atunci „Soluția este M”
altfel „Nu exist ă soluție”
sfârșit.
În [MERK 78] se prezint ă 2 variante ale metodei, ambele utilizabile doar în secretizare, nu
și în autentificare.
1) Algoritmul MH cu trap ă aditivă
În proiectarea unui astfel de criptosistem tre buie convertit mesajul simplu într-un mesaj cu
trapă (trapdoor knapsack), care este greu de rezolvat. Mai întâi se selecteaz ă un vector rucsac
simplu A´=(a 1´,a2´,…,a n´). Acesta permite o solu ție simplă a problemei C´=A´M.

37Apoi se alege un întreg n astfel ca n>2a n´>∑ ia´, i=1,n.
În continuare se alege un alt într eg w, astfel ca c.m.m.d.c (n,w)=1 și se calculeaz ă inversa lui w mod
n. În final vectorul A´ este transf ormat într-un vector „rucsac greu”:
A=w·A´ mod n a
i=w·a i´ mod n
Acum rezolvarea problemei C=A·M este dificil ă, dacă nu se dispune de o informa ție „trapă”
(inversa lui w și n), cu ajutorul c ăreia calculul se simplific ă:
C′=W-1·C mod n=W-1·A·M mod n=W-1·(W·A′)·M mod n=A ′·M mod n=A ′·M
Transformarea de cifrare E A (publică) folosește cheia public ă care este vectorul „rucsac
greu”, A. Se ob ține criptograma:
C=E A(M)=A·M.
Transformarea de descifrare D A folosește cheia secret ă (A′,n,W-1) calculând pe baza func ției
„rucsac simplu”:
DA(C)=(rucsac_simplu ) (W-1C mod n, A ′) (W-1C mod n, A ′)=M.
Exemplu. Fie A′=(1,3,5,10) vectorul rucsac simplu, n=20, w=7. Inversul multiplicativ al lui
w este w′=3.
Acest rucsac simplu este transformat într-unul cu trap ă A:
A=(7·1 mod 20, 7·3 mod 20, 7·5 mod 20, 7·10 mod 20)=(7,1,15,20). Considerăm următorul mesaj M care va fi cifrat:
(M)
10=13 deci (M) 2=(1101).
Criptograma C este ob ținută cu ajutorul vectorului trap ă A:
C=E A(M)=7+1+10=18
C=(10010). La descifrare se ob ține mesajul clar cu vectorul simplu A ′ care este secret:
M=D
A(C)=D A(18)=RUCSAC_SIMPLU(3·18 mod 20, A ′)=
= RUCSAC_SIMPLU(14,A ′)=(1101)=13.
Cifrul Merkle Hellman este folosit în sistemul de operare UNIX pentru protec ția confiden țialității
scrisorilor în comenzile enroll, xget și xsend.
2) Algoritmul MH cu trap ă multiplicativ ă
Un rucsac cu trap ă multiplicativ ă este ușor de rezolvat dac ă elementele vectorului A sunt
relativ prime. Fiind date A=(6,11,35,43,169) și M=2838, este u șor de determinat c ă M=6·11·43,
deoarece 6,11 și 43 divid pe M, în timp ce 35 și 169 nu. Un rucsac multipli cativ este transformat
într-unul aditiv prin folosirea loga ritmilor. Pentru ca ambii membri s ă aibă valori rezonabile,
logaritmii sunt lua ți peste câmpul Galois GF(n), unde n este un num ăr prim.
Exemplu. Fie m=4 (num ărul de componente ale rucsacului), n=257, A'=(2,3,5,7) și b=131 –
baza logaritmului. Informa țiile secrete sunt n,A' și b. Rezolvând ecua țiile:
131a1=2(mod 257)

38 131a2=3(mod 257)
131a3=5(mod 257)
131a4=7(mod 257)
rezultă a1=80, a 2=183, a 3=81, a 4=195 și deci A=(80,183,81,195) este vectorul f ăcut public.
Găsirea logaritmilor peste GF(n) este relativ u șoară dacă (n-1) are numai factori primi mici
(aceasta înseamn ă valori de ordinul a 106 până la 1012).
Presupunem c ă avem dat ă criptograma C=183+81=264 și vrem să găsim soluția C=A·X.
Cunoscând informa ția trapă n, A' și b putem calcula c'=bc(mod n).În exemplul C'=131264 (mod
257)=15=(20)(31)(51)(70). Rezultă că X=(0,1,1,0), deoarece ∏∑= =xi
i iica xa b b`) ( (mod n). În
acest caz este necesar ca ∏ ia<n pentru a se asigura c ă ∏xi
ia`(mod n) este egal ă cu ∏xi
ia`în
mulțimea numerelor întregi.
O variant ă este să se utilizeze primele n numere prime ca a i', caz în care la m=100, n are
lungimea de 730 de bi ți. Orice variant ă aleasă trebuie s ă facă un compromis între securitatea și
extensia datelor.

5. 2.4.Avantajele evidente ale cheilor publice
Avantajele criptografiei cu chei publice sunt extraordinare, cu condi ția ca aceasta s ă poată
fi realizat ă practic fără nici un fel de urm ări secundare negative. O inova ție adusă de cheile publice
privește gestiunea cheilor : cum se pot mânui și transmite chei. S ă considerăm un criptosistem clasic
(simetric). Cheia de criptare o furnizeaz ă și pe cea de decriptare și, prin urmare, prima nu poate fi
făcută publică. Aceasta înseamn ă că cele două părți legale (emi țătorul și receptorul) trebuie s ă cadă
de acord în avans asupra metodei de criptare. Aceasta poate avea loc fie prin întâlnirea dintre cele
două părți, fie prin transmiterea cheii de cr iptare pe un anumit canal sigur.
Dacă se folose ște un criptosistem cu chei publi ce, nu este obligatoriu ca cele dou ă părți să
se fi întâlnit – ele pot chiar s ă nu se cunoasc ă una cu alta sau chiar s ă nu fi comunicat între ele
vreodată. Aceasta ester un avantaj uria ș, de exemplu, în cazul unei mari b ănci de date, unde exist ă
numeroși utilizatori și unul dintre ei vrea s ă comunice numai cu anumit ut ilizator. Atunci el poate
realiza acest lucru introducând informa ții în însăși baza de date.
Criptosistemele cu chei publice și cele clasice se pot compara și în ce prive ște lungimea
cheii. Deoarece fiecare cheie trebuie descris ă într-un fel sau altul, descrierea fiind o secven ță de
litere ale unui anumit alfabet (adic ă un cuvânt), pare foarte natural s ă vorbim despre lungimea unei
chei. Exist ă o diferen ță considerabil ă între criptosistemele cu chei publice și cele clasice.
Să consider ăm la început un criptosistem clasic. Dac ă cheia este mai lung ă decât textul
clar, realmente nu s-a ob ținut nimic. Deoarece cheia trebuie transmis ă pe un canal sigur am putea
transmite textul clar în locul cheii pe acela și canal sigur. Evident, în anumite situa ții cheia se
transmite în avans în a șteptarea unui moment crucial.

39Să considerăm acum și criptosistemul cu chei publice. Lungimea cheii de criptare este în
mare măsură irelevant ă. Cheia este oricum public ă. Aceasta înseamn ă că și lungimea cheii de
decriptare este irelevant ă, receptorul trebuind s ă o stocheze într-un singur loc.
Ușurința gestiunii cheilor poate fi privit ă cu îndrept ățire ca avantajul esen țial al
criptografiei cu chei publice.

Similar Posts