You are on page 1of 81

Elemente de criptografie / criptologie

3.1 Scurt istoric


Informaia (religioas, militar, economic, etc.) insemnat intotdeauna putere, prin urmare dorina de a o proteja, de a o face accesibil doar unor elite, unor iniiai, s-a pus din cele mai vechi timpuri. Primele texte cifrate descoperite pan in prezent dateaz de circa 4000 de ani i provin din Egiptul antic, dar existena acestora probabil c dateaz de la apariia scrierii in toate civilizaiile umane. Exist date privind utilizarea scrierii cifrate in Grecia antic inc din secolul al V-lea i.e.n. Pentru cifrare se folosea un baston in jurul cruia se infura, spiral lang spiral, o panglic ingust 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 ctre persoana care avea un baston identic cu cel utilizat la cifrare. In secolul al IV-lea i.e.n. in Grecia se cunoteau 16 scrieri cifrate. Istoricul grec Polybius (sec II i.e.n.) este inventatorul unui tabel de cifrare ptrat de dimensiune 5x5, tabel aflat la baza elaborrii unui numr mare de sisteme de cifrare utilizate i azi. In Roma antic secretul informaiilor politice i militare se fcea utilizand scrierea secret. Amintim cifrul lui Cesar, utilizat inc din timpul rzboiului galic. Exist documente ce atest existena scrierilor secrete in Asia inc din antichitate. Astfel, literatura indian d o serie de referine dintre care Artha-sstra (321-300 i.e.n.), Lalita-Vistara i Kamasutra sunt exemplele cele mai cunoscute. In China antic, documentele militare i diplomatice de mare importan erau scrise pe faii inguste de mtase sau hartie; acestea erau rulate formand mici bile care apoi se acopereau cu cear i se introduceau in rectul mesagerilor. [Deavours] Steganografia, tiina scrierilor secrete insesizabile camuflate in texte in clar, constituie o form particular de secretizare i este prezentat in detaliu in capitolul 8. Contribuia arab ([Deavours] - Al Kadif) la dezvoltarea criptologiei, mai puin cunoscut i mediatizat este de o remarcabil importan. David Kahn, unul dintre cei mai de seam istoriografi ai domeniului, subliniaz in cartea sa The Codebreakers c criptologia s-a nscut in lumea arab. Primele trei secole ale civilizaiei islamice (700-1000 e.n.) au constituit, pe lang o mare extindere politic i militar i o epoc de intense traduceri in limba arab ale principalelor opere ale antichitii greceti, romane, indiene, armene, ebraice, siriene. Unele cri surs erau scrise in limbi deja moarte, deci reprezentau in fapt texte cifrate, astfel incat traducerea lor constituie primii pai in criptanaliz, deci originile criptologiei pot fi atribuite arabilor. Cartea lui Ahmad ibn Wahshiyyah (cca. 900 e.n.) conine 93 de alfabete ale diferitelor limbi, moarte sau vii. Nou secole mai tarziu, cartea a fost tradus in limba englez i a fost publicat la Londra de ctre orientalistul Joseph von Hammer sub denumirea Ancient Alfabets and Hieroglyphic Caracters Explained, iar aceasta din urm a fost tradus i publicat la Paris in 1810 i este posibil s-l fi ajutat pe celebrul arheolog J. F. Champollion in descifrarea hieroglifelor (scrierea de la Rosseta,

aflat la British Museum). Dezvoltrile criptanalizei au fost mult sprijinite de studiile lingvistice ale limbii arabe care in primele patru secole ale imperiului islamic a constituit limba oficial unificatoare pentru un imperiu de o uria intindere i in acelai timp i limba tiinific. Arabii au preluat cunotinele matematice ale civilizaiilor greceti i indiene. Arabii sunt cei care au introdus sistemul zecimal de numeraie i cifrele "arabe". Termenii "zero", "cifru", "algoritm", "algebr" li se datorez tot lor. Manuscrise recent descoperite arat c primele scrieri in domeniul probabilitilor i statisticii dateaz cu 800 de ani inaintea celor corespunztoare ale lui Pascal i Fermat. Insui termenul de "cifru" ne vine de la arabi. El provine de la cuvantul arab "ifr" care reprezint traducerea in arab a cifrei zero din sanscrit. Conceptul de zero a fost deosebit de ambigu la inceputurile introducerii lui in Europa, in care sistemul de numeraie folosit era cel roman. De aceea se obinuia s se spun despre cineva care vorbea neclar c vorbete ambigu, ca un cifru. Acest ineles de ambiguitate a unui mesaj poart i azi denumirea de cifru. In perioada Renaterii, odat cu trezirea interesului pentru civilizaia antic, s-au redescoperit lucrrile criptografiei din antichitate. Extinderea relaiilor diplomatice dintre diferitele state feudale a determinat o puternic dezvoltare a secretizrii informaiei. Curile regale i in special statul papal dispuneau de criptologi de mare valoare dintre care amintim pe Giambattista della Porta, Vignre, Cardan (secolul XIV) i Rossignol (secolul XVIII), cel mai abil criptolog din Europa regilor Ludovic al XIII-lea i Ludovic al XIV-lea. In fapt istoria criptografiei / criptologiei urmrete indeaproape creterea i descreterea marilor imperii i civilizaii. Ea nu apare i nu se dezvolt decat acolo unde este putere ce trebuie protejat. Apariia telegrafului i a radioului in secolul al XIX-lea precum i cele dou rzboaie mondiale din secolul XX au fost stimulente puternice in dezvoltarea metodelor i tehnicilor de criptare. Apariia i dezvoltarea continu a utilizrii calculatoarelor practic in toate domeniile vieii, existena i evoluia puternic a reelelor teleinformatice la nivel naional i internaional, globalizarea comunicaiilor, existena unor baze de date puternice, apariia i dezvoltarea comerului electronic, a potei electronice, constituie premisele societii informaionale in care pim. Toate acestea indic o cretere extraordinar a volumului i importanei datelor transmise sau stocate i implicit a vulnerabilitii acestora. Protecia in aceste sisteme vizeaz: eliminarea posibilitilor de distrugere voit sau accidental

asigurarea caracterului secret al comunicrii pentru a preveni posibilitatea ca persoane neautorizate s extrag informaii autentificarea informaiei in scopul prevenirii posibilitii ca persoane neautorizate s introduc informaii in sistem in anumite situaii, cum ar fi transferurile electronice de fonduri, negocierile contractuale, este important existena unor semnturi electronice pentru a evita dispute intre emitor i receptor cu privire la mesajul transmis.

Toate aceste obiective arat o lrgire puternic a domeniului de aplicare al criptografiei de la domeniul diplomatic, militar, politic, la cel civil cu caracter economic i social. La ora actual, 99% din criptografie nu este utilizat pentru protejarea secretelor militare ci pentru carduri bancare, pli de taxe radio / TV, taxe de drumuri, acces autorizat in cldiri sau la calculatoare, terminale de loterie, instrumente electronice de pli anticipate. In aceste aplicaii rolul criptografiei este acela de a face furturile mai greu de realizat.

3.2 Terminologie de baz


Criptografia (cryptography) este tiina creerii i meninerii mesajelor secrete, in sensul imposibilitii citirii lor de ctre neautorizai (tiina mesajelor secrete). Mesaj (text) in clar (M) (plain / clear text) este mesajul ce urmeaz a fi secretizat; in criptografie M se mai numete scriere chiar dac este un document de alt natur, de exemplu voce, imagine, date. Mesaj cifrat (criptogram) (C) (cipher text) este mesajul secretizat, inaccesibil neavizailor. Criptare / cifrare (E) (encryption / enciphering) este procedeul de "ascundere" a unui mesaj in clar in mesajul secretizat. (3.1) Decriptare / descifrare (D) (decryption / deciphering) este procedeul de regsire a mesajului in clar M din mesajul cifrat C. (3.2) Observaii: decriptarea este operaia invers criptrii;

ISO 7498-2 folosete termenii de cifrare / descifrare (encipher / decipher), socotete Schneier [Scheneier], probabil pentru c primul set de termeni amintete de mori (cript). Criptograf (cryptographer) este persoana ce se ocup cu criptografia.

Algoritm criptografic / cifru (cryptographic algorithm / cipher) este funcia sau funciile matematice utilizate pentru criptare / decriptare; in general exist dou funcii: una pentru criptare (E) i alta pentru decriptare (D). Cheia criptografic (K) (key) este mrimea (in majoritatea cazurilor secret) necesar realizrii criptrii i decriptrii.

Criptosistem (cryptosystem) este sistemul format din: algoritm

toate mesajele in clar (M) toate textele cifrate (C) toate cheile (K).

Criptanaliz (cryptanalysis) este tiina spargerii cifrurilor, deci a obinerii mesajelor in clar (M) sau a cheii (K) din mesajul cifrat (C). Criptanalist (cryptanalyst) este persoana care se ocup cu criptanaliza. Atac (attack) este incercarea / tentativa criptanalitic. Criptologie (cryptology) este tiina care se ocup atat de criptografie cat i de criptanaliz. Criptolog (cryptologist) este persoana care se ocup cu criptologia. Steganografia (steganography) este tehnica ascunderii mesajelor secrete in alte mesaje, in aa fel incat existena mesajelor secrete s fie invizibil.

3.3 Criptosisteme i rolul acestora

Schema bloc a unui criptosistem este prezentat in Fig 3.1. Fig. 3.1 - Schema bloc a unui criptosistem A, B - entiti ce emit, recepioneaz sau manipuleaz informaia E - funcia de criptare (cifrare) D - funcia de decriptare (descifrare) M - spaiul mesajelor in clar

C - spaiul criptogramelor (text cifrat) K - spaiul cheilor Ke - spaiul cheilor de criptare Kd - spaiul cheilor de decriptare 3.3.1 Rolul unui criptosistem Rolul unui criptosistem este de a preveni sau detecta activitile 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 conectrile neautorizate.

deci, aa cum se precizeaz in capitolul 1, acela de "poliie informatic". Indeplinirea acestui rol presupune ca un criptosistem s realizeze: Confidenialitatea / secretul / protecia datelor (confidentiality / secrecy / privacy) asigur inaccesibilitatea coninutului informaiei transmise / stocate pentru un utilizator neavizat (in cazul canalelor / mediilor nesigure in care pot aprea intrui) Autentificarea (autentication) se aplic [Menezes] la:

entiti (persoane, terminale, cri de credit, etc.) i in acest caz se numete autentificarea entitilor / identificare (entity autentication / identification)

informaie: informaia trasmis / stocat trebuie s fie autentificat in sensul originii, coninutului datelor, timpului de transmisiune / stocare i definete autentificarea originii datelor / integritatea datelor (data origin autentication / data integrity) Semntura digital (digital signature) [Scheneier] reprezint autentificarea reciproc a datelor i en 252e44c titilor i se refer la faptul c un utilizator B este sigur c mesajul recepionat 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 ctre el ii poart semntura.

Observaie: Aceste trei cerine sunt vitale pentru interaciunea "social" in calculatoare i sunt echivalente cu interaciunile umane fa in fa. Pe lang 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), mrturia (witnessing), confirmarea (confirmation), dreptul de proprietate (ownership), anonimatul (anonimity), revocarea (revocation). Obiectivele pe care le poate realiza un criptosistem sunt cuprinse in tabelul 3.1.
Observaii:

toate aceste obiective exist natural in interaciunile umane fa in fa;

apariia reelelor de calculatoare prin care au loc interaciunile interumane pune o serie de probleme in plus: hartia se inlocuiete cu discul, unda radio, firul; scrisul are un format electronic i anume "bii" cu posibilitate extrem de uoar de copiere (copiile digitale sunt identice); utilizatorii se afl la distan, nu se pot vedea fa in fa i deci se lucreaz in condiii de neincredere criptografia este chemat astfel s soluioneze o diversitate extrem de probleme, multe de mare dificultate Nr. crt. 1 2 Obiectivul confidenialitatea autentificarea entitilor / identificare originii datelor integritii datelor 3 4 5 semntura nerepudierea autorizarea Definirea pstrarea secretului pentru neavizai legat de identitatea unei entiti (persoan, terminal, carte de credit, etc.) legat de sursa de informaie (sursa informaiei) asigur c informaia nu a fost modificat de surse neautorizate mijlocul de a lega informaia de entitate prevenirea nerecunoaterii unor aciuni comise anterior transferul ctre alt entitate a unei imputerniciri oficiale de a fi sau de a face ceva mijlocul de a permite (pentru o

validarea

anumit perioad de timp) autorizarea de a folosi sau manipula informaia sau resursele retragerea certificatului sau autorizaiei restricionarea accesului la resurse pentru entiti privilegiate (cu drept de acces) informaia de aprobare dat de o entitate de incredere (arbitru) inregistrarea timpului de creere sau de existen a informaiei verificarea creerii sau existenei unei informaii de ctre o entitate diferit decat 12 confirmarea cea creatoare recunoaterea faptului c serviciile au fost efectuate mijlocul de a inzestra o entitate cu dreptul legal de a utiliza sau transfera o surs la 14 anonimatul alii ascunderea (tinuirea) identitii unei entiti implicate intr-un anumit proces

7 8

revocarea controlul accesului

certificare

10

certificare temporal

11

mrturia

13

dreptul de proprietate

Tabelul 3.1 - Obiectivele unui criptosistem ce realizeaz securitatea informaiei

3.3.2 Clasificarea criptosistemelor Dup tipul cheilor folosite pentru criptare / decriptare, criptosistemele se clasific in dou categorii i anume in sisteme: cu chei simetrice i cu chei publice. 3.3.2.1 Criptosistemele cu chei simetrice / cu cheie secret / criptosistemele convenionale Criptosistemele cu chei simetrice sunt criptosistemele pentru care cheile folosite la criptare i decriptare sunt identice, de unde i denumirea de criptosisteme cu chei simetrice. (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 cunoate K: (3.4) (3.5) Problema ce se pune in cazul acestor sisteme este distribuia cheii K, care necesit un canal sigur. Dup tipul algoritmului folosit, criptosistemele cu chei simetrice se clasific in dou categorii: cu cifruri bloc (block ciphers) sunt cifrurile care acioneaz asupra unei diviziuni a textului in clar; blocurile de la intrare se cifreaz independent, lungimea tipic a blocurilor fiind bii. Transformrile de baz folosite pentru criptare i decriptare sunt substituiile i transpoziiile, repetate iterativ [Angheloiu et al. (1986)] [Scheneier]. cu cifruri secveniale (stream ciphers): mesajul de la intrare este considerat ca o succesiune (ir) de simboluri. Criptarea opereaz asupra textului in clar simbol cu simbol. Cheia K este generat de un registru de deplasare cu reacie (RDR) avand starea iniial 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: . (3.6)

Cheia public - aa cum ii spune i numele - poate fi accesat public (asemntor unei cri de telefon), iar cheia privata este secret. Caracteristic acestor sisteme este c funcia de criptare i cea de decriptare se realizeaz uor dac se cunosc i :

(3.7) dar aflarea lui M, dac se cunosc C i este computational nefezabil.

Observaie: E este o funcie neinversabil cu trap [Angheloiu et al. (1986)], [Patriciu (1994)], [Menezes]. este trapa care furnizeaz informaia necesar calculrii funciei inverse D. Dintre funciile neinversabile cu trap amintim: factorizarea unui produs de numere prime mari cu peste 100 de cifre zecimale (folosit in algoritmul RSA), gsirea logaritmului modulo un numr prim intr-un camp Galois GF(q) cu q foarte mare (folosit in algoritmii Rabin i Diffie-Hellman), problema rucsacului (folosit in algoritmul Merkle-Hellman).

3.4 Atacuri i modele de securitate in sisteme informatice


3.4.1 Atacuri asupra securitii sistemelor criptografice Atacul asupra securitii unui sistem criptografic definete orice aciune ce compromite securitatea acelui sistem. O ilustrare sugestiv a principalelor tipuri de atacuri asupra unui sistem informatic este fcut in fig 3.2 [Stallings]

Fig. 3.2 - Ilustrarea principalelor tipuri de atacuri la securitatea unui sistem criptografic Atacurile criptografice pot fi indreptate impotriva: 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 intercepie) : de inregistrare a coninutului mesajelor de analiz de trafic; atacuri active :

de intrerupere (atac la disponibilitate) de modificare (atac la integritate) de fabricare (atac la autenticitate).

Atacurile pasive sunt atacuri in care intrusul (persoan, calculator, program) doar ascult, monitorizeaz transmisia, deci sunt atacuri de intercepie. Ele pot fi de dou feluri: de inregistrare a coninutului mesajelor (release of message contents), de exemplu in convorbirile telefonice, in pota electronic, fapt pentru care dac mesajele nu sunt criptate, se violeaz caracterul confidenial al comunicaiei. de analiz a traficului (traffic analysis): in cazul in care mesajele sunt criptate i nu se poate face rapid criptanaliza, prin analiza traficului se pot afla o serie de date utile criptanalizei precum identitatea prilor ce comunic intre ele, frecvena i lungimea mesajelor. Caracteristicile atacurilor pasive: sunt greu de detectat pentru c datele nu sunt alterate;

msurile ce pot fi luate pentru evitarea acestor atacuri sunt acelea care fac criptanaliza extrem de grea dac nu imposibil; este necesar prevenirea i nu detecia lor.

Atacurile active sunt atacuri in care intrusul are o intervenie activ atat in desfurarea normal a traficului, cat i in configuraia datelor (modificarea datelor, creearea unor date false). Dintre atacurile active amintim [Stallings],[Menezes]:

intreruperea [Stallings] / refuzul serviciului (denial of service) [Menezes]: un bloc funcional este distrus, sau se inhib funcionarea normal sau managementul facilitilor de comunicaie; acest tip de atac este un atac la disponibilitate (attack on availability) modificarea: mesajul iniial este intarziat, alterat, reordonat pentru a produce efecte neautorizate ca de exemplu: schimbare de valori in fiiere de date;

modificri in program astfel incat acesta va lucra diferit; modificarea coninutului mesajelor transmise in reea

fabricarea: un neavizat insereaz informaii false in sistem; acest atac este un atac la autenticitate. Din aceast categorie fac parte i: mascarea (masquerade): o entitate pretinde a fi alt entitate. Exemplu: secvenele de autentificare pot fi capturate i dup validarea unei autentificri se inlocuiesc, permiand astfel unei entiti s obin privilegii pe care nu le are de drept. reluarea (replay) const in capturarea prin atac pasiv a unei cantiti de informaie i transmiterea sa ulterioar pentru a produce efecte neautorizate. Caracteristicile atacurilor active: dei pot fi detectate, prevenirea lor este foarte grea, deoarece ar insemna protecie fizic permanent a intregului sistem. 3.4.2 Atacuri criptanalitice

Atacurile criptanalitice [Scheneier] sunt atacuri asupra textelor cifrate in vederea obinerii textului in 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 trebuie s obin mesajul in clar ( ) sau cheia k.

2) Atac asupra unui text cunoscut (known plain-text attack): criptanalistul are criptogramele i mesajele in clar corespunztoare i trebuie s determine cheia k sau algoritmul de determinarea lui din .

3)

Atac cu text in clar ales (chosen plain-text attack): se pot alege o serie de mesaje dup dorin i se cunosc criptogramele corespondente: . Criptanalistul trebuie s determine cheia k sau algoritmul de determinare al lui din . Atac cu text in clar ales adaptiv (adaptive chosen plain-text attack) : mesajele in clar se pot alege dup dorin i sunt adaptabile in funcie de rezultatele criptanalizelor anterioare, iar criptogramele se cunosc. Se cere cheia k sau algoritmul de determinare al lui din .

4)

Aceste patru atacuri constituie atacurile criptanalitice de baz. In afara acestora mai putem aminti: 5) Atac cu text cifrat la alegere (chosen cipher-text attack) in care se aleg i , sarcina criptanalistului fiind determinarea cheii k. Acest atac se aplic mai ales algoritmilor cu chei publice.

6)

Atacul de "cumprare" a cheii (rubber-hose cryptanalysis / purchase-key attack), in care aflarea cheii se face fr mijloace criptanalitice (se apeleaz la antaj, furt, etc.) i este unul dintre cele mai puternice atacuri.

Observaie: Atacurile 3) i 5) se numesc atacuri cu text ales (chosen text attack) i au fost folosite cu succes in cel de-al doilea rzboi mondial pentru spargerea codurilor german i japonez [Deavours]. 3.4.3 Securitatea algoritmilor [Scheneier] In secolul al XIX-lea, olandezul A. Kerckhoff a enunat conceptul fundamental al criptanalizei: secretul se rezum in intregime la cheie, algoritmul criptografic i implementarea considerandu-se cunoscute. Diferiii algoritmi pot asigura diferite grade de securitate, funcie de dificultatea cu care pot fi spari [Menezes], [Scheneier]: dac costul spargerii unui algoritm este mai mare decat valoarea datelor criptate, algoritmul este probabil sigur (PS); dac timpul necesar spargerii este mai mare decat valabilitatea datelor criptate, algoritmul este PS; dac mulimea datelor necesare spargerii este mai mare decat mulimea datelor criptate la un moment dat de o cheie, algoritmul este PS. Lars Knudsen - in teza de doctorat susinut in 1994 [Menezes] - a clasificat diferitele categorii de spargere a unui algoritm in ordine descresctoare a securitii:

1) Spargere total (total break) / securitate zero: un criptanalist gsete cheia, deci orice criptogram va fi decriptat: . 2) Deducie global (global deduction): criptanalistul gsete un algoritm alternativ echivalent cu fr a cunoate cheia k. 3) Deducie local (local deduction): un criptanalist gsete textul in clar al unui text cifrat interceptat. 4) Deducia informaional (information deduction): criptanalistul capt unele informaii privitor la cheie sau la textul in clar (de exemplu caiva bii ai cheii, anumite informaii privitoare la M, etc.). 5) Algoritm computaional puternic (computational strong) este algoritmul care nu poate fi spart cu resursele existente, atat la momentul curent, cat i intr-un viitor predictibil. 6) Algoritm necondiionat sigur (unconditional secure) este algoritmul pentru care indiferent cat text cifrat are criptanalistul, informaia nu este suficient pentru a deduce textul in clar. Privitor la aceti din urm termeni trebuie atenionat c sunt extrem de expui interpretrilor. Observaii: Doar cheia de unic folosin (one time pad), inventat in 1917 de Major J. Maubergue i Gilbert Vernon, avand aceeai lungime cu a textului in clar, este de nespart. Toi ceilali algoritmi pot fi spari cu ajutorul unui atac cu text cifrat, prin incercarea tuturor cheilor, pan cand textul descifrat are sens. Acest atac se numete atac prin for brut (brute force attack). Complexitatea unui atac (complexity) se manifest in mai multe feluri: a) b) c) Complexitatea datelor (data complexity) este volumul de date necesar pentru atac; Complexitatea procesrii / factorul de lucru (processing complexity / work factor) este timpul necesar realizrii atacului; Complexitatea stocrii (storage complexity) este cantitatea de memorie necesar atacului. Regul: Complexitatea unui atac = max . Exemplu: complexitatea de indic operaii necesare spargerii cifrului (de obicei aceasta reprezint complexitatea atacului prin for brut, deci in cazul unui algoritm necondiionat sigur, 128 indicand lungimea cheii in bii).

Observaie: Multe atacuri se preteaz paralelismului, deci complexitatea scade fa de regula anterior enunat.

3.5 Criptografie clasic (precomputaional)


Criptografia clasic este criptografia dinaintea calculatorului, de unde i denumirea de criptografie precomputaional. In criptografia clasic, algoritmii erau bazai pe caracter i constau dintr-o serie de transformri elementare (substituii, transpoziii) ale caracterelor textului in clar. Unii algoritmi aplicau aceste transformri in mod repetat, imbuntind in acest mod securitatea algoritmului. In criptografia modern bazat pe calculator (criptografie computaional), lucrurile s-au complicat, dar multe dintre ideile criptografiei clasice au rmas nemodificate. Criptografia clasic se incadreaz in clasa criptografiei cu chei simetrice. 3.5.1 Cifruri de substituie Cifrul de substituie (substitution cipher) este cifrul bloc la care fiecare caracter sau grup de caractere ale textului in clar (M) este substituit cu un alt caracter sau grup de caractere in textul cifrat (C), descifrarea facandu-se prin aplicarea substituiei inverse asupra textului cifrat. In criptografia clasic exist patru tipuri de cifruri de substituie: 1) Cifruri de substituie monoalfabetic (monoalphabetic ciphers) sunt cifrurile in care fiecare caracter al textului in clar (M) este inlocuit cu un caracter corespondent in textul cifrat (C). Vom aminti cateva dintre cifrurile de substituie cele mai cunoscute: A. Cifrul lui Cesar Este un cifru cu substituie monoalfabetic: fiecare liter a textului in clar este inlocuit cu o nou liter obinut printr-o deplasare alfabetic cheia (aceeai la criptare cat i la decriptare) const in numrul care indic deplasarea alfabetic (3.8) unde a se numete factor de amplificare, iar b coeficient de deplasare. Fcand corespondena biunivoc intre literele alfabetului latin (N = 26) i echivalentele lor numerice , cifrul lui Cesar se poate scrie conform tabelului 3.2.

(3.9)

Text clar Text

A B C D E F G H I J K L M N O P Q D E F G H I J K L M N O P

Q R S T U V W X Y Z R S T U V W X A

Y Z

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 in calitate de cheie a oricrei litere din alfabet. B. Cifrul lui Polybius Este un cifru substituie. Literele alfabetului latin sunt aezate intr-un ptrat de dimensiune 5x5. Literele I i J sunt combinate pentru a forma un singur caracter, deoarece alegerea final (intre I i J) poate fi uor decis din contextul mesajului. Rezult 25 de caractere aezate intr-un ptrat 5x5. Cifrarea oricrui caracter se face alegand perechea potrivit de numere (intersecia liniei i coloanei) corespunztoare dispunerii caracterului in ptrat.
1 2 3 4 5

1 2 3 4 5

A F L Q V

B G M R W

C H N S X

D IJ O T Y

E K P U Z

Tabelul 3.3 - Ptratul lui Polybius Exemplu: Mesajul: "A SOSIT TIMPUL", se transform dup cifrare in: "11 3443344244 444223535413". Observaie: Codul poate fi schimbat prin rearanjarea literelor in ptratul 5x5. In sistemele UNIX, programul de criptare ROT 13 este un cifru de substituie monoalfabetic; fiecare liter, in textul cifrat se rotete cu 13 caractere, de unde i denumirea de ROT 13:

(3.10) iar decriptarea se face aplicand de dou ori ROT 13, dat fiind c alfabetul latin conine N = 26 litere: (3.11) Acest cifru nu este in realitate un cifru de securitate; el se utilizeaz adesea in posturile de utilizatori de reea pentru a ascunde texte potenial ofensive [Scheneier]. Concluzie: Cifrurile de substituie monoalfabetic pot fi sparte cu uurin deoarece frecvenele literelor alfabetului nu se schimb in textul cifrat fa de textul in clar. 2) Cifruri de substituie omofonic (homophonic substitution ciphers) [Angheloiu et al. (1986)][Patriciu (1994)] sunt cifrurile de substituie in care un caracter al alfabetului mesajului in clar (alfabet primar) poate s aib mai multe reprezentri.

Ideea utilizat in aceste cifruri este uniformizarea frecvenelor de apariie a caracterelor alfabetului textului cifrat (alfabet secundar), pentru a ingreuna atacurile criptanalitice. Astfel, litera A - cu cea mai mare frecven de apariie in alfabetul primar - poate fi inlocuit cu F, * sau K. Concluzii: dei mai greu de spart decat cifrurile de substituie simple (monoalfabetice), ele nu mascheaz total proprietile statistice ale mesajului in clar. 3) in cazul unui atac cu text in clar cunoscut, cifrul se sparge extrem de uor.

atacul cu text cifrat este mai dificil, dar unui calculator ii va lua doar cateva secunde pentru a-l sparge. Cifruri de substituie poligramic (polygram substitution ciphers) [Patriciu (1994)] [Scheneier] se obin substituind blocuri de caractere ale alfabetului primar - numite poligrame - cu alte blocuri de caractere, de exemplu: ABA RTQ SLL Utilizri: ABB

Cifrul Playfair, inventat in 1854 [Stallings], a fost utilizat in Anglia, in timpul primului rzboi mondial

4)

Codul de compresie Huffman, bazat pe acelai principiu, poate fi utilizat dar este nesigur.

Cifruri de substituie polialfabetice [Patriciu (1994)][Scheneier][Patriciu (1998)] sunt formate din mai multe cifruri de substituie simple. Au fost inventate de Leon Battista, in 1568. Dintre acestea vom aminti pe dou dintre cele mai celebre i anume cele ale lui Trithemius i Vignre. A. Cifrul lui Trithemius

Este un cifru polialfabetic. Alfabetul este dispus pe 26 de linii numerotate de la 0 la 25, unde numrul de ordine al liniei indic numrul de caractere cu care se deplaseaz ciclic alfabetul spre dreapta. Linia numerotat cu 0 constituie tocmai alfabetul in ordinea iniial. Acest cifru poate fi utilizat astfel: primul caracter se cifreaz selectandu-l din linia 1, al doilea din linia a 2-a i aa 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 Vignre Acest cifru utilizeaz cifrul Trithemius i un anumit cuvant cheie. Cheia dicteaz alegerea liniilor in criptarea i decriptarea fiecrui caracter din mesaj. Exemplu: 12 14 Cuvant cheie M O Text in clar A S Text cifrat M G 13 N O B 0 A S S 12 M I U 14 O T H 13 N T G 0 A I I 12 M M Y 14 O P D 13 N U H 0 A L L

O variant a acestui cifru este cifrul Vignre cu cheie in clar (cheie de incercare). Cheia de incercare indic linia (sau liniile) de inceput pentru primul (sau primele caractere) ale textului in clar ca in exemplul urmtor. Apoi caracterele textului in clar sunt folosite drept chei pentru alegerea liniilor in criptare. Exemplu: Relum exemplul anterior, dar alegem litera M drept cheie de incercare. Obinem:
Cuvant cheie Text n clar Text cifrat M A M A S S S O G O S G S I A I T B T T M T I B I M U M P B P U J U L F

Observaie: Se remarc introducerea unei reacii in procesul de criptare, textul cifrat fiind condiionat de coninutul mesajului. O alt variant a cifrului Vignre este cifrul Vignre cu autocheie (cheie cifrat). Dup criptarea cu cheie de incercare, fiecare caracter succesiv al cheii in secven se obine de la caracterul cifrat al mesajului i nu de la textul in clar. Exemplu:
Cuvant cheie Text n clar Text cifrat M A M M S E E O S S S K K I S S T L L T E E I M M M Y Y P N N U H H L S

Observaie: Dei fiecare caracter utilizat drept cheie poate fi gsit din caracterul anterior al textului cifrat, el este funcional dependent de toate caracterele anterioare ale mesajului, inclusiv de cheia de incercare. Urmare a acestui fapt este efectul de difuziune a proprietilor statistice ale textului in clar asupra textului cifrat, ceea ce face ca analizele statistice s devin foarte grele pentru un criptanalist. In baza standardelor actuale, schemele de cifrare Vignre nu sunt foarte sigure; contribuia important a lui Vignre const in faptul c a descoperit c pot fi generate secvene nerepetitive drept cheie, prin utilizarea a insui mesajului sau a unor pri ale acestuia. 3.5.2 Cifruri de transpoziie (transposition ciphers) [Patriciu (1994)] Cifrurile de transpoziie se caracterizeaz prin faptul c textul in clar rmane acelai, doar ordinea caracterelor se schimb. Exemplu: Cifrul simplu cu transpunere in coloane: textul in clar se scrie orizontal intr-o anumit form, ca la Polybius sau ceva asemntor, iar textul cifrat se citete pe vertical (coloane): "VVVEIINDCIII" V V V E N I

I I

D C

I I

O simpl transpoziie permite pstrarea proprietilor statistice ale textului in clar i in textului cifrat; o nou transpoziie a textului cifrat mrete securitatea cifrului. Utilizri:

ADFGVX [Scheneier], utilizat de germani in timpul primului rzboi mondial are un cifru substituie combinat cu o alt substituie; dei pentru acea vreme a fost foarte complex, el a fost spart de criptanalistul francez Georges Painvin.

Muli algoritmi moderni folosesc transpoziia, dar consumul de memorie este mare comparativ cu substituia, care din acest punct de vedere este mai convenabil. 3.5.3 Maini rotor In vederea mecanizrii complicatelor metode de substituie i permutrilor repetate, in anul 1920 au fost inventate o serie de echipamente mecanice de criptare bazate pe principiul de rotor. O main 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 poziii i realizeaz o simpl substituie. Deoarece rotoarele se mic cu viteze de rotaie diferite, perioada unei maini cu n rotoare este . Cel mai celebru cifru bazat pe o main rotor este Enigma, utilizat de germani in cel de-al doilea rzboi mondial. El a fost inventat de Arthur Scherbius i Arvid Gerhard Damm in Europa i a fost patentat in SUA. Germanii au imbuntit considerabil proiectul inventatorilor si, dar a fost spart de criptanalitii polonezi care au explicat atacul lor englezilor.

3.6 Protocoale criptografice


3.6.1 Generaliti Protocolul criptografic este un protocol in care este implicat cel puin un algoritm criptografic. Scopul unui protocol criptografic este de a nu permite s se fac sau s se invee mai mult decat este specificat in protocol. Protocoale in care intervin probleme de securitate i incredere se aplic in viaa de zi cu zi aproape pentru orice situaie: cumprturi, vot, joc, etc. Forma lor este foarte simpl pentru c presupune prezena oamenilor. In momentul in care activitile de zi cu zi se transpun pe reele de calculatoare, interaciunile umane fa in fa se reduc i trebuie luate in considerare o serie de probleme noi ce complic protocolul in vederea realizrii unei anumite sarcini. Observaie: In analiza unui protocol nu intereseaz modul de implementare, el trebuind s rman acelai in orice condiii de implementare. Principalele tipuri de protocoale
Protocoalele se pot clasifica in trei categorii mari: arbitrate, adjudecate i liber consimite.

1) Protocoalele arbitrate (arbitrated protocols) - caz in care comunicaia intre cei doi corespondeni A i B se desfoar prin intermediul unui arbitru (TTP - trusted third part). Arbitrul reprezint o a treia parte implicat in protocol, constituind o persoan de incredere notat de acum inainte cu I in desfurarea protocolului. Noiunea de incredere se refer la faptul c toi partenerii din protocol accept ca adevr verdictul dat de acesta. In lumea real arbitrii sunt: bancheri, judectori, notari publici. Intr-un protocol realizat intr-un sistem informatic, un arbitru este un banal program de calculator. Arbitrii sunt necesari cand apar tranzacii intre parteneri care nu se cunosc i/sau nu au incredere unul in altul. Exemplu: Realizarea unui act de vanzare de la A la B se face conform fig 3.3 unde: A, B - partenerii tranzaciei I - arbitru (persoan de incredere).

Figura 3.3 - Protocol arbitrat Protocolul se desfoar 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 operaiunea (3) nu se efectueaz (cecul nu are acoperire) in timpul de ateptare specificat, A ii arat arbitrului probe de neefectuare a plii i I ii restituie lui A titlul de proprietate, deci (4) nu se efectueaz. Prezena unui arbitru intr-o reea de calculatoare are o serie de implicaii: costuri suplimentare;

intarzieri inerente in protocol;

arbitrul constituie un punct de "gatuire" a comunicaiei in cazul unui numr mare de utilizatori; pentru a evita acest dezavantaj s-ar putea crete numrul arbitrilor implicai in protocol, cu creterea evident a costurilor; faptul c arbitrul este unicul partener din reea in care trebuie avut incredere, face ca el s devin un punct vulnerabil ("coruptibil") pentru oricine dorete s distrug reeaua. 2) Protocoale adjudecate (adjudecated protocols)

Pentru a reduce costurile unui protocol arbitrat care necesit prezena permanent a unui arbitru. Se pot imagina protocoale in care prezena arbitrului este necesar doar in caz de disput, in rest protocolul desfurandu-se fr arbitru. In consecin, un asemenea protocol va conine dou subprotocoale: unul nearbitrat - executat de fiecare dat cand prile doresc executarea lui - i al doilea adjudecat, executat doar in condiiile unei dispute intre parteneri. Acest arbitru are rolul unui judector care in cazul unei dispute, in baza probelor prezentate de parteneri, va da un verdict rezolvand astfel disputa. In fig 3.4. este reprezentat un protocol adjudecat impreun cu partenerii implicai in acesta: A, B - partenerii tranzaciei; I - arbitru (numai in caz de disput); PA i PB - probe ale partenerilor A i B necesare a fi prezentate arbitrului in caz de disput.

Fig. 3.4 - Protocol adjudecat Un protocol adjudecat se desfoar dup cum urmeaz: (1) subprotocolul nearbitrat

A i B negociaz termenii contractului; (2) (3) A semneaz contractul; B semneaz contractul.

subprotocolul arbitrat (in caz de dispute) (4) A i B apar in faa arbitrului I; (5) (6) A prezint probele PA ; B prezint probele PB ;

(7)

din analiza probelor, I hotrte verdictul.

In calculatoare, protocoalele adjudecate se utilizeaz atunci cand intre parteneri relaiile se bazeaz pe cinste; dac un partener are suspiciuni de inelciune, exist posibilitatea ca o a treia parte (arbitrul I) s determine dac i cum a inelat. Deci protocoalele adjudecate nu previn inelciunea, dar o detecteaz; inevitabilitatea deteciei acioneaz ca o prevenie i descurajeaz inelciunile (ca in cazul magazinelor cu autoservire i sistem de monitorizare: nu se controleaz sacoa clientului decat in caz de inelciune). 3) Protocoale autoimpuse (self - enforcing protocols) Sunt cele mai simple i mai eficiente dintre protocoale. Fig 3.5 prezint o schem a funcionrii unui astfel de protocol.

Fig. 3.5 - Protocol autoimpus Nu exist arbitru i nici dispute pentru c protocolul insui garanteaz cinstea. Dac unul dintre parteneri incearc s inele, ceilali pot detecta inelciunea i protocolul se oprete. In [Scheneier], autorul afirm c "in cea mai bun dintre toate lumile posibile toate protocoalele ar fi autoimpuse". Rmane de vzut dac o asemenea lume este posibil i - in caz afirmativ - cand va fi aceasta. 3.6.2 Protocoale pentru comunicaii criptografice simetrice Un sistem criptografic simetric - care evideniaz i principalele atacuri - este dat in fig. 3.6 i are ca i participanti pe: A, B - parteneri ai protocolului; F, H - atacator pasiv (filaj) respectiv activ (hot);

Fig 3.6 - Criptosistem simetric cu evidenierea atacurilor posibile Un protocol de comunicaie confidenial intre A i B se desfoar 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 comunicaie; (3) A trimite lui B mesajul M criptat cu cheia k: (3.12) (4) B decripteaz mesajul criptat primit de la A, utilizand aceeai cheie k: . Se pune intrebarea: ce pot face atacatorii in acest caz? Rolul atacatorului pasiv (F): el urmrete derularea pasului (3), in vederea criptanalizei (este un atac asupra textului cifrat) ; dac algoritmul rezist la acest atac, F nu poate face criptanaliz decat prin "atacul forei brute", deci cu o cheie bine aleas i ca lungime, F nu va afla nimic. Rolul atacatorului activ (H): poate incerca intreruperea comunicaiei in pasul (3); (3.13)

poate inlocui mesajul lui A (M) cu mesajul su M' dac afl cheia k prin criptanaliz;

dac nu afl cheia k, va putea inlocui C cu , (3.14)

ceea ce va face ca B s decripteze un mesaj lipsit de sens i-l va determina 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 in secret, ceea ce pentru sisteme mari constituie o problem deosebit; in cazul compromiterii cheii prin furt sau criptanaliz, sistemul este compromis; dac se utilizeaz chei diferite pentru fiecare pereche de utilizatori, numrul cheilor crete rapid cu numrul utilizatorilor (n):

(3.15)

3.6.3 Protocoale pentru comunicaii criptografice asimetrice (cu chei publice) i hibride In cazul criptosistemelor cu chei publice, fiecare utilizator are o pereche de transformri (chei): - transformarea (cheia) public, accesibil public; - transformarea (cheia) privat, inut secret. In consecin, doi parteneri A i B ai unui protocol care utilizeaz un criptosistem cu chei publice vor avea i , unde i sunt chei publice, putand fi luate dintr-un fiier public asemntor unei cri de telefon. Protocolul de comunicare intre A i B are urmtorii pai: (1) A i B cad de comun acord asupra unui criptosistem cu chei publice i selecteaz dintr-o banc de date cheile publice ale partenerilor de comunicaie , respectiv . (2) A cripteaz mesajul su cu cheia public a lui B (3.16) i il trimite lui B.

(3) B decripteaz

utilizand cheia sa privat .

i afl pe

(3.17) cu cheia public a lui A: (3.18)

(4) B cripteaz mesajul su

i-l transmite lui A. (5) A decripteaz utilizand cheia sa privat i afl pe : (3.19) Observaii: Managementul cheilor este mult mai simplu in cazul criptosistemelor cu chei publice, numrul perechilor de chei fiind egal cu cel al utilizatorilor, iar in vederea comunicrii nu este necesar transmiterea cheii secrete intre utilizatori, ci doar a cheii publice a corespondentului care se citete uor dintr-o banc de date accesabil public. Criptosistemele cu chei publice sunt vulnerabile la atacul cu text in clar la alegere (dat fiind c cheia de criptare este public), dar atacurile sunt dificile pentru c E i D sunt funcii neinversabile cu trap [deci necunoaterea trapei face aproape imposibil deducerea lui M din E(M)]. Criptosistemele cu chei publice nu sunt un inlocuitor al criptosistemelor simetrice, in primul rand deoarece primele sunt de circa 1000 de ori mai lente.

Sisteme cu chei publice se folosesc doar la transmiterea secret a cheii de sesiune folosite pentru comunicaie in sisteme cu chei simetrice. Un asemenea sistem se numete criptosistem hibrid (hybrid cryptosistem). Protocolul de comunicaie intr-un criptosistem hibrid este alcatuit din urmatorii pasi: (1) A i B convin asupra unui criptosistem cu chei publice i obin cheile publice ale partenerului respectiv ; (2) A genereaz o cheie aleatoare de sesiune k pe care o cripteaz cu (3.20) i o transmite lui B; :

(3) B decripteaz pe

cu cheia sa privat

i obine cheia de sesiune: (3.21)

(4) In comunicaiile ulterioare, pentru confidenialitate, A i B vor folosi aceeai cheie de sesiune k i un criptosistem simetric. Concluzie: Generarea cheii de sesiune k doar cand se dorete comunicarea i distrugerea ei dup incheierea comunicrii face ca atacurile pasive s fie mult mai puin eficiente. Observaie: In cadrul acestui paragraf si in continuare, pentru a comprima scrierea s-au folosit denumirile improprii de cheie public respectiv privat pentru transformrile respective care includ cele dou tipuri de chei; avem convingerea c aceast notaie "neortodox" nu va produce confuzii de inelegere cititorului. 3.6.4. Protocoale pentru semnturi digitale 3.6.4.1 Ce este o semntur digital ? Semntura olograf este o prob a calitii de autor al unui document, sau cel puin de acord cu coninutul documentului. Proprietile unei semnturi olografe sunt: 1) 2) Semntura s fie autentic, adic s aib calitatea de a convinge destinatarul c semnatarul a semnat documentul in mod deliberat. Semntura s nu poat fi refolosit, ceea ce inseamn c semntura este parte a documentului. 3) Documentul semnat nu poate fi modificat. 4) Semntura nu poate fi repudiat.

Semnturile digitale trebuie s pstreze cerinele 1) 4), transpuse in comunicaia din reele de calculatoare. Observaie: Exist destule situaii in care cerinele 1) 4) nu se respect pentru o semntur olograf, dar aceste nerespectri sunt mult mai greu de realizat decat in cazul calculatorului, la care copy i paste sunt comenzi atat de uzuale. Cele patru cerine, transpuse in mediul digital se rezum la dou cerine de baz pentru o semntur: (1) s depind de mesaj pentru a nu fi mutat de pe un mesaj pe altul (aceast cerin nu apare in cazul semnturii olograf pentru c nu este cazul);

(2) s depind de emitor pentru a nu putea fi falsificat. Semntura digital S [Menezes] este o succesiune de bii obinut din transformarea mesajului (M) i a unei informaii secrete, tiute doar de emitor. Orice semntur digital trebuie s poat fi verificat, rezultatul acestei funcii putand fi doar "adevrat" sau "fals". In cele ce urmeaz vom folosi notaiile: - transformarea de semnare pentru entitatea A (ea este secret); - transformarea de verificare pentru entitatea A (ea este public); - perechea de transformri care definete schema (mecanismul) de semntur digital. v - rezultatul verificrii . Protocolul de semnare este: (1) A calculeaz (3.22) care este semntura mesajului M (folosind o cheie secret); (2) A transmite perechea . Protocolul de verificare: (1) Verificatorul (B) obine funcia de verificare a lui A: (2) B calculeaz funcia de verificare ; (3.23) , care este public;

(3) B accept c S apartine lui A dac v = adevrat i o refuz dac v = fals. Observaie: Transformatele i sunt tipic caracterizate de cate o cheie (secret, respectiv public).

Pentru funciile de semnare, respectiv de verificare, se cer proprietile: (a) S este o semntur valid a lui A asupra mesajului M dac i numai dac:

adevrat;

(3.24)

(b) este imposibil de determinat pentru altcineva decat A un M i S astfel incat: adevrat. (3.25)

Fig.3.7 - Reprezentarea grafic a procedurii de semnare a) i verificare b) Observaie: Semnturile trebuie s fie verificabile pentru ca in caz de conflict s nu poat fi repudiate sau reclamate in mod fraudulos; un arbitru trebuie s poat rezolva disputa fr a avea nevoie de cheia privat a lui A. Aplicaii: autentificare integritatea datelor nerepudiere

certificarea datelor publice in reele mari Realizri:

exist numeroi algoritmi pentru semnturi digitale, toi necesitand informaie secret pentru semnare i informaie public pentru verificare; in cazul algoritmilor cu chei publice, cheia privat folosit la criptare: poate fi folosit la semnare, iar cheia public folosit la criptare: poate fi folosit pentru verificare (acesta este cazul algoritmului RSA); in cazul altor algoritmi, implementrile pot fi diferite; de exemplu, pentru algoritmii bazai pe funcii hash (de rezumare) i cu certificare temporal (TS) se adaug pai suplimentari pentru semnare i verificare; 3.6.4.2 Protocol de semnare cu criptografie simetric

Fie situaia 1 in care A semneaz un mesaj digital pe care vrea s-l trimit lui B. Protocolul se desfoar astfel: (1) A trimite arbitrului I mesajul criptat cu cheia sa : (3.26) (2) I decripteaz , deci obine pe , la care adaug o declaraie de autentificare ( ) a primirii mesajului de la A i le trimite lui B, cripate cu cheia lui B: (3.27) (3) B decripteaz i poate citi pe cat i certificarea lui I: (3.28) Fie situaia 2 in care B vrea s-i arate lui C mesajul lui A. Paii algoritmului sunt: (1) B ii trimite arbitrului I mesajul lui A i certificarea sa , criptate cu cheia sa proprie: (3.29) (2) I decripteaz i gsete pe (3.30) (3) I verific in baza de date dac il are pe (4) I cripteaz cu cheia lui C mesajul precum i certificarea sa i il trimite lui C: (3.31) (5) C decripteaz i citete pe precum i certificarea (3.32) Concluzii: Aceste protocoale sunt bune, dar extrem de laborioase, totul tranzitand prin I

I trebuie s in o baz de date cu cheile tuturor utilizatorilor cat i a mesajelor certificate, astfel incat devine un punct de "strangulare" a traficului i in acelai timp extrem de vulnerabil la atac, deoarece el deine practic toate informaiile. In plus, ca orice protocol arbitrat este mai costisitor decat unul nearbitrat.

Propunem cititorului, ca exerciiu, s analizeze indeplinirea cerinelor unei semnturi digitale in cele dou cazuri prezentate. O ilustrare grafic a acestor dou situaii este prezentat in fig. 3.8.

Fig 3.8 - Ilustrarea grafic a protocolului de semnare utilizand criptosisteme simetrice 3.6.4.3 Protocol de semnare utilizand criptografie cu chei publice Protocol de semnare (fr criptare) parcurge urmatorii pai: (1) A semneaz mesajul M cu cheia sa privat ; (2) A transmite (3) B verific . Observaie: lui B (necriptat); (3.33)

folosind cheia public a lui A: (3.34)

Acest protocol este superior celui cu chei simetrice pentru c nu necesit arbitraj. Protocol de semnare cu criptare Observaii: Exist algoritmi cu chei publice care pot fi utilizai atat pentru semnturi digitale (S) cat i pentru criptare: de exemplu RSA poate fi folosit la semntur i confidenialitate, in acest caz fiind indeplinite condiiile: i . (3.35) Ali algoritmi cu chei publice, de exemplu DSA [Scheneier][Patriciu (1994)], se utilizeaz doar pentru semntur, neputand fi utilizai pentru criptare. Protocolul de semnare cu criptare se desfaoar astfel: (1) A semneaz mesajul M cu cheia privat ; (3.36)

(2) A cripteaz mesajul criptat cu cheia public a lui B i il trimite acestuia ; (3) B decripteaz C1 cu cheia privat ; (4) B verific semntura lui A cu cheia sa public . Observaii: A semna inainte de a cripta este natural. Cand A scrie o scrisoare, semneaz inainte de a pune scrisoarea in plic. Utilizarea aceleiai perechi de chei (E, D) pentru semntur i criptare nu este obligatorie (cheile pot avea dimensiuni diferite i pot expira la date diferite). (3.39) (3.38) (3.37)

Retransmiterea mesajului, ca o confirmare de primire (resending the message as a receipt) se face parcurgand urmtorii pai: (5) B, dup verificarea lui , retransmite M semnat ( ) la A cu o confirmare de primire:

; (6) A decripteaz

(3.40)

cu cheia sa privat, verific cu cheia public a lui B i dac M este acelai cu cel transmis de el, A tie c B a primit mesajul: (3.41) , identic cu cel transmis de A. (3.42)

Atacul de retransmitere (confirmare de primire) Ipotez: H (atacatorul) este un utilizator legitim al sistemului deci are o pereche de chei publicprivat . Atacul const din urmtorii pai: (1) H inregistreaz mesajul lui A ctre B in pasul (2) ; (3.43)

(2) Dup un anumit timp, H trimite acest mesaj lui B pretinzand c vine de la H (dar nesemnat) ; (3) B decripteaz mesajul (3.45) i verific semntura lui H ; (3.46) (3.44)

(4) B continu protocolul i retransmite mesajul lui H (3.47) ; (5) H decripteaz mesajul: ; (3.49) (3.48)

(6) H aplic cheia public a lui B ; (7) H decripteaz inc o dat cu cheia sa privat ; (8) H aplic cheia public a lui A i obine pe M (3.52) i aa H poate citi corespondena. Atenie: dei semnalul decriptat de ctre B la pasul (3) este fr sens, el a continuat protocolul, generand astfel insecuritate; dac B ar fi verificat mesajul inainte de a-l retransmite, acest atac nu era posibil; nu semnai niciodat mesaje arbitrare de la alte persoane, nu decriptai mesaje arbitrare i nu difuzai rezultatele obinute de alii. Contracararea atacului de retransmitere se poate face prin utilizarea de : operaii distincte (chiar dac apropiate) pentru criptare respectiv semntur; chei diferite pentru criptare i semntur; algoritmi diferii pentru criptare i semntur; (3.51) (3.50)

certificare temporal care fac ca semntura de intrare s fie diferit de cea de ieire; semnturi digitale cu funcii hash.

Pentru a preveni atacurile in criptografia cu chei publice, cheia public trebuie s fie protejet la accesul la scriere iar pentru a prevenii inlocuirea ei in timpul transmisiei, I (autoritate de certificare a cheilor - KDC) trebuie s semneze fiecare cheie public cu cheia sa privat. Cand A primete cheia lui B, verific semntura lui I, ceea ce impiedic posibilitatea inlocuirii ei in transmisie. 3.6.4.4 Protocol de semnare i certificare temporal (TS - time stamping)

Dac A a semnat un cec ctre B, acesta poate incasa banii i apoi reutiliza o copie a contractului semnat. Prevenirea acestei situaii se poate face prin certificare temporal (TS): . 3.6.4.5 (3.53)

Protocol de semnare cu sisteme cu chei publice i funcii hash Funcii de dispersie (hash)

Funciile hash - cunoscute i sub denumirea de funcii de compresie (compression), contracie (contraction) sau de rezumat al mesajului (message digest) ori amprent digital (fingerprint) - sunt funcii care au la intrare un ir de date de lungime variabil n - numit preimagine - i la ieire dau un ir de lungime fix m (uzual 128 sau 160 de bii) numit valoarea funciei hash h (hash value - HV).

Fig. 3.9 - Ilustrarea grafic a conceptului de funcie hash Observaie: In [Patriciu (1994)] funcia hash este denumit funcie de dispersie. Proprieti:
valoarea hash constituie o amprent digital a intrrii; dac dou iruri de la intrare dau aceeai valoare hash (h) nu se poate spune cu certitudine c cele dou iruri sunt identice, dar probabilitatea ca ele sa fie diferite este extrem de mic: , deci funciile hash pot fi utilizate pentru a indica un grad destul de mare de asemnare; valoarea hash (h) se calculeaz extrem de uor;

irul de intrare (preimaginea) se determin destul de greu cand se cunoate h; aceast proprietate impreun cu cea precendent justific incadrarea funciilor hash in categoria funciilor neinversabile (one-way hash); functia hash este o funcie "fr ciocnire" (collision-free) in sensul c este greu de determinat dou preimagini care s aib aceeai valoare hash (h); funcia hash este public.

Aplicaii: in tranzacii financiare;

h este o amprent digital a fiierelor; dac vrei s verifici c cineva are acelai fiier pe care il ai i tu, fr s-l transmit, ii ceri valoarea hash. Dac valoarea hash transmis este identica cu cea calculata de tine atunci este aproape sigur c acea persoan are acel fiier; coduri de autentificare a mesajelor [Scheneier] care constau din calcularea lui h i semnarea acesteia cu o cheie secret astfel incat doar cel care deine cheia secret k poate verifica pe h: MAC - message autentication code DAC - data autentication code

Observaie: Dac documentele semnate M sunt mari, semnarea lor utiulizand chei publice este ineficient. Pentru a reduce timpul, nu se semneaz M ci h (valoarea hash a lui M). Pasii protocolului de semnare sunt: (1) A i B convin asupra algoritmului de semntur digital i a funciei hash folosite. (2) A calculeaz valoarea hash a lui M: h = H(M); (3) A semneaz pe h cu cheia sa privat: (3.55) (4) A trimite M i ctre B, criptat cu cheia public a lui B: (3.56) (5) B decripteaz i gsete M i dup care determin pe h i il compar cu cel decriptat (3.57) (3.58) (3.59) dac (a) este echivalent cu (b) atunci Avantaje: este validat. (3.54)

. (a) (b)

vitez mare;

securitate sporit: probabilitatea de a avea doua valori hash identice este valorii hash in bii;

, unde n reprezint lungimea

poate fi pstrat separat de documentul M, ocupand o memorie mult mai mic.

Utilizri:
sisteme de arhivare fr citirea documentelor;

obinerea dreptului de autor prin pstrarea secretului documentului.

3.6.4.6

Protocoale pentru semnturi multiple Fr funcii hash

A i B semneaz cate o copie (separat) a documentului M, deci mesajul rezultat, avand ambele copii, este dublu ca dimensiune. Un astfel de protocol are doi pasi: (1) A semneaz primul documentul M: ; (2) B semneaz al doilea: . Verificarea semnturii lui A: , este imposibil fr verificarea semnturii lui B. Cu funcii hash In acest caz protocolul va arata astfel: (1) A semneaz valoarea hash a lui M: (3.63) (2) B semneaz valoare hash a lui M: (3.64) (3.62) (3.61) (3.60)

(3) B trimite (4) A trimite catre C pe (5) C verific 3.6.4.7

lui A

Protocol de semnturi digitale i nerepudiere

A poate inela semnand un document i apoi pretinzand c nu l-a semnat; invoc pierderea sau furtul cheii private deci repudiaz pe . Certificarea temporal limiteaz acest efect, dar el exist dac A dateaz documentul dup dorin. Asemenea situaii sunt evitate cu protocolul: (1) A semneaz mesajul: ; , semneaz totul: (3.65) i trimite arbitrului I; (3) Arbitrul I verific i confirm informaiile de identificare AI. I adaug o certificare temporal (TS) la , semneaz totul (3.66) i trimite la A i B; (4) B verific (5) A verific , identificand pe AI i ;

(2) A genereaz un antet de identificare (AI), concateneaz antetul cu

, deci mesajul trimis de I lui B. Dac nu-i gsete propria semntur apare o disput.

Observaie: Aceast problem poate fi soluionat i de protocoale adjudecate; propunem cititorului ca exerciiu aceast a doua cale. 3.6.4.8 Semnturi in alb (blind signatures) [Scheneier] O trstur esenial a protocoalelor cu semnturi digitale este c semnatarul cunoate ceea ce a semnat. Exist situaii in care anumite persoane semneaz documente fr s fi vzut niciodat coninutul acestora. Sunt ci prin care semnatarul poate cunoate aproximativ, dar nu exact, ceea ce semneaz. Semnturi complet in alb (completely blind signatures)

Fie exemplul: B - notar public A - dorete ca B s semneze un document, dar nu dorete ca B s tie coninutul documentului; pe B nu-l intereseaz coninutul documentului, doar certific c acesta a fost notarizat. Protocolul de semnare se desfoar astfel: (1) A ia documentul i il aleatorizeaz; aceast valoare aleatoare se numete factor de ascundere (blinding factor); (2) A trimite documentul "ascuns " (blinded) lui B; (3) B semneaz documentul "ascuns"; (4) A inltur factorul de ascundere (dezaleatorizeaz documentul), obinand documentul original semnat de B. Proprietile unei semnturi complet in alb: 1) 2) semntura lui B pe document este valid ; semntura este dovada c B a semnat documentul i are toate proprietile unei semnturi digitale.

B nu poate corela documentul semnat cu actul de semnare propriu-zis ; chiar dac el ar ine o copie a tuturor semnturilor in alb acordate, el nu ar putea determina cand anume a semnat un anumit document. Riscul semnturilor complet in alb:

A il poate face pe B s semneze orice, de exemplu "B datoreaz lui A 1.000.000 $". Semnturi in alb (blind signatures)

Pentru a evita riscul menionat anterior, se va cuta o cale in care B s tie ce semneaz, meninand in acelai timp i proprietile utile ale semnturii in alb. Principiul folosit este: taie i alege (cut and choose), ilustrat de exemplul controlului vamal. Controlul se face utilizand o soluie probabilistica adic se controleaz o persoan din 10 [Scheneier] celelalte 9 nefiind controlate. Pedeapsa in cazul unei fraude este atat de mare incat s descurajeze tentativa de fraud. Semntura in alb lucreaz ca in exemplul anterior. Lui B i se va da un numar mare de documente "ascunse" la semnat. El va deschide tot, exceptand ultimul document pe care il semneaz fr a-l deschide.

Documentul ascuns se afl in plic. Procesul de ascundere echivaleaza cu punerea documentului in plic. Procesul de inlturare a factorului de ascundere poate fi comparat cu deschiderea plicului. Un alt exemplu de utilizare de semnturi in alb este agenia de contraspionaj. [Scheneier] Fie un grup de ageni de contra-spionaj; identitatea lor este secret chiar i pentru agenie. Directorul ageniei vrea s dea fiecrui agent un document semnat care s-i ofere imunitate diplomatic. Fiecare agent are propria list cu nume de acoperire i nu dorete ca agenii s o cunoasc de teama spargerii calculatorului ageniei. Pe de alt parte agenia nu dorete s semneze in alb absolut orice document pentru a preintampina situaii de genul: "Agentul X a fost pensionat i pensia anual este de 1.000.000 $". Presupunem c fiecare agent are 10 nume de acoperire cunoscute doar de el. Fie: A - computerul ageniei B - agentul sub acoperire Protocolul de semnare in alb decurge astfel: (1) B pregtete n nume, fiecare cu alt nume de acoperire, care ii 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 intamplare i ii solicit lui B factorii de ascundere. (5) B trimite lui A cei (n-1) factori de ascundere solicitai. (6) A deschide cele (n-1) plicuri, deci inltura factorul de ascundere i se asigur de coninutul acestora. (7) A semneaz ultimul document nedeschis i-l trimite lui B. (8) B inltur factorul de ascundere i citete noul nume de acoperire ce-i asigur imunitate diplomatic: Ion Ionescu. 3.6.5 Protocoale pentru schimbul de chei In tehnica criptografic uzana este de a utiliza o singur cheie pentru fiecare comunicaie criptat numit cheie de sesiune (key session). 3.6.5.1 Schimb de chei cu criptografie simetric

Pasii protocolului pentru schimb de chei in criptografia simetrica sunt: (1) A cere arbitrului I o cheie de sesiune pentru a putea comunica confidenial cu B; (2) I genereaz o cheie de sesiune k i cripteaz doua copii cu cheile secrete ale lui A, respectiv B i i le trimite lui A:

; (3) A decripteaz cu cheia sa secret i gsete k: ; (3.67) )

(4) A trimite lui B copia cheii de sesiune k, criptat cu cheia secret a lui B ( ; (5) B decripteaz cu cheia sa secret i gsete k: ; Atat A cat i B pot comunica confidenial utilizand k. (3.68)

Fig. 3.10 - Protocol de schimb de chei in criptografia simetric Observaii: A i B au fiecare de la I (centrul de distribuie a cheilor CDC) i ;

acest protocol presupune absoluta securitate a lui I, chiar dac acesta este un program de calculator;

I are copia tuturor cheilor k, deci poate citi tot traficul din reea, fiind un punct foarte vulnerabil pentru atacuri potenial I este un punct de "strangulare" a traficului in reea. Schimb de chei cu criptografie cu chei publice Principiul: A i B utilizeaz criptografia cu chei publice pentru a stabili cheia de sesiune k Comunicaia confidenial intre A i B se face cu criptografie simetric. Protocolul este:

3.6.5.2

(1) A i B ii procur de la I (CDC - centru de distribuie a cheilor, KDC - key distribution center) cheile publice i ; (2) A genereaz o cheie de sesiune aleatoare k pe care o cripteaz utilizand cheia public a lui B i o trimite la B: ; (3) B decripteaz mesajul primit de la A utilizand cheia sa privat ; (3.69) :

(4) A i B comunic confidenial intre ei folosind cheia cheia secret k.

Fig 3.11 - Protocol de schimb de chei in criptografia asimetric n cazul acestui protocol poate avea loc : Atacul "om la mijloc" (man in the middle attack), ce const in: (1) H - atacatorul activ, inlocuiete cheia public a lui A sau B cu cheia sa public: timpul transmiterii de la A la B i invers, fie intr-o baz de date a CDC); (in

(2) toate mesajele criptate in acest caz de A i B vor trece pe la H care le va decripta cu uurin; Protocolul de interblocare (interlock protocol) Pentru a contracara atacul de "om la mijloc", Ron Rivest i Adi Shamir au inventat protocolul de interblocare. Paii acestuia sunt: (1) A i B intr in posesia cheilor publice i fie de la CDC fie transmiandu-le direct unul altuia; (2) A cripteaz ; (3) B cripteaz ; (4) A trimite lui B cealalt jumtate din ; cu cu i transmite jumtate din criptograma: (3.70) i transmite jumtate din criptograma: (3.71)

(5) B pune impreun cele dou jumti recepionate de la A i le cripteaz cu cheia sa privat:

(3.72) ; (6) A procedeaz identic i obine Observaii: H nu mai poate face nimic deoarece jumatate din sau nu are utilitate deoarece jumatate din mesaj poate reprezenta, de exemplu, tot al doilea bit pentru un algoritm de tip bloc; decriptarea poate depinde de vectorul de iniializare, care se poate transmite in a doua jumtate a mesajului; prima jumtate a mesajului poate fi o funcie hash a mesajului criptat, iar cea de-a doua parte poate fi chiar mesajul criptat. 3.6.5.3 Schimb de chei cu semnturi digitale . (3.73)

Dac in schimbul de chei se utilizeaz semnturile digitale, se poate preveni atacul "om la mijloc". Exist un arbitru I (CDC) care semneaz i . Cand A i B primesc cheile, fiecare verific semntura lui I, dup care protocolul se desfoar ca in subcapitolul 3.6.5.2. Observaii: H este in imposibilitate de atac ;

si in acest caz exist riscul compromiterii lui I (CDC), dar acesta este mai mic decat in sectiunea 3.6.5.2; obinerea lui (cheia privat a lui I) este folosit doar pentru semnarea cheilor, nepermiand acestuia decriptarea cheilor de sesiune precum i a traficului din reea ; atacul poate fi reuit dac H inlocuiete pe cu , dar aceasta inseamn c H interceptez i modific datele din CDC, ceea ce este mult mai greu decat a sta pasiv intr-o reea i a privi mesajele ; intr-un canal de difuziune (reea radio) este aproape imposibil de a inlocui un mesaj cu altul fr blocarea intregii reele, in reele de calculatoare acest lucru este din ce in ce mai uor. 3.6.5.4 Transmiterea cheilor i mesajelor

Principiul: transmiterea criptat de mesaje, fr existena prealabil a unui protocol de schimb de chei. Pasii ce trebuie parcursi sunt: (1) A genereaz o cheie aleatoare de sesiune k i o folosete la criptarea lui M: (2) A selecteaz dintr-o baz de date public cheia lui B: (3) A cripteaz pe k cu cheia public a lui B: (4) A transmite lui B atat mesajul criptat: ; ; ; ;

cat i cheia criptat:

(5) B decripteaz pe k: (3.74) (6) B obine pe M folosind la criptare un algoritm simetric si cheia k:

. Observaii:

(3.75)

acest algoritm hibrid este cel mai folosit in sistemele de comunicaie; pentru mrirea securitii in cazul atacului "om la mijloc", A poate semna transmisiunea in pasul (4); algoritmul poate fi combinat cu: semntura digital certificarea temporal

alte protocoale de securitate

ceea ce conduce la imbuntirea securitii acestuia. 3.6.5.5 Difuzarea cheilor i a mesajelor

Protocolul de difuzare a cheilor si mesajelor consta in: (1) A genereaz o cheie de sesiune k i cripteaz pe M: (2) A selecteaz dintr-o baz de date cheile publice: , , (3) A difuzeaz i , ; , , ; , ;

i cripteaz cheia k:

(4) Doar B, C i D pot decripta k i apoi pot obine pe M. Observaie: Un server central poate distribui , , ; el ins nu trebuie s fie de incredere, deoarece el nu este capabil s decripteze nici un mesaj. 3.6.6 Protocoale de autentificare [Scheneier] Problema: dac A intr intr-un calculator (ex: sistemul bancar telefonic) cum tie calculatorul cine este acesta? De unde are calculatorul garania c nu este H care incearc s foloseasc identitatea lui A? Problema anterioar se rezolv tradiional prin "parole" P. A introduce parola i calculatorul verific dac este corect. Parola se cere de fiecare dat cand A dorete s acceseze calculatorul.

3.6.6.1

Autentificare cu funcii neinversabile (f)

Roger Needham i Mike Guy au artat c calculatorul nu trebuie s cunoasc parola. El trebuie doar s fac distincie intre parolele corecte i cele incorecte. Acest lucru se realizeaz uor cu funcii neinversabile f. In loc de memorarea parolelor, calculatorul memoreaz . Modul de lucru este urmatorul: (1) A trimite calculatorului parola P; (2) Calculatorul calculeaz (3) Calculatorul compar de fiecare dat ; Observaii: acest algoritm atenueaz atacul la bnci de date in care sunt memorate parolele. nu sunt utile deoarece este extrem de greu de calculat. ; cu valoarea memorat

Atacul de tip dicionar Un fiier de parole criptat cu o funcie neinversabil: este inc vulnerabil:

H poate incerca de exemplu parole (cele mai uzuale) pentru care calculeaz i memoreaz rezultatele; dac fiecare rezulta ca fiierul are 8 MB (deci nu este exagerat de mare). H fur din calculator lista i o compar cu lista calculat de el pentru a vedea potrivirile.

Acesta este atacul de tip dicionar i este surprinztor de eficient. Sufixul (salt) Sufixul(salt) este - prin definiie - un ir aleator care se concateneaz cu inaintea calcularii lui f; se memoreaz. Prezena lui diminueaz ansele unui atac de tip dicionar. Observaii: mulimea este mare;

majoritatea sistemelor UNIX utilizeaz pentru

un sir de 12 bii; ;

exist programe de "ghicit parola" (password guessing program) care sparg i pe

nu este un panaceu universal; creterea lungimii lui protejeaz la atacurile de tip dicionar asupra fiierelor parolate, nu ins asupra unui atac concentrat asupra unei singure parole; protejeaz persoanele care au aceeai parol pe maini multiple, dar nu sunt cu nimic mai bune decat parolele slab alese. 3.6.6.2 Autentificare cu chei publice [Scheneier] este vulnerabil. In pasul (1) oricine are acces , iar dac F are acces la memoria i inainte de a se calcula .

Problema: i in cazul folosirii sufixelor, pe canal poate afla i calculatorului, poate vedea

Soluia ar fi: utilizarea criptografiei cu chei simetrice : calculatorul are un fiier cu toate cheile publice iar utilizatorii ii in acas cheile private . Protocolul folosit in acest caz este: (1) Calculatorul trimite lui A un ir aleator X; (2) A cripteaz pe X cu cheia sa privat ; i il trimite calculatorului; (3.76) ;

(3) Calculatorul, utilizand cheia public a lui A decripteaz ;

(3.77)

(4) Dac X decriptat la (3) este echivalent cu X transmis la (2), A are acces la sistem. Observaii: nimeni nu cunoate A nu transmite niciodat , deci nu se poate falsifica identitatea lui A; pe canal, deci nu sunt posibile atacuri pasive;

cheia privat trebuie s fie lung i nenumeric i se calculeaz automat in hardul calculatorului sau in softul de comunicaie de unde necesitatea unui terminal inteligent de comunicaie in care A s aib incredere, in acest caz canalul i calculatorul gazd nu trebuie s fie sigure; pasul (1) este neobinuit: nimeni nu va cripta un ir arbitrar venit de nu se tie unde (calculatorul nu trebuie s fie sigur); pentru mrirea siguranei, algoritmul se modific dup cum urmeaz: (1) A genereaz un ir aleator (2) (3) , il cripteaz cu cheia sa secret i-l trimite calculatorului.

Calculatorul ii trimite lui A un ir aleator diferit: X. ) i cheia privat

A face o serie de calcule bazate pe numerele aleatoare (X i i trimite rezultatul calculatorului.

(4)

Calculatorul face o serie de calcule asupra numerelor primite de la A pentru a verifica dac A ii cunoate cheia privat. (5) Identitatea lui A este verificat, testand dac A ii cunoate cheia 3.6.6.3 Autentificarea mesajelor .

Problema: Cand B primete un mesaj de la A, de unde tie c este autentic? Soluia: semnarea mesajului de ctre A. Observaii: criptografia simetric furnizeaz o anumit autentificare cand B primete de la A un mesaj criptat cu cheia comun secret k, el tie c vine de la A, deoarece numai A cunoate cheia; 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 atat A cat i B dein aceeai cheie, deci nu exist posibilitatea identificrii emitorului.

3.7 Algoritmi criptografici (cifruri)


Algoritmul criptografic este prin definitie funcia (funciile) matematic(e) utilizat(e) pentru criptare / decriptare. in general exist dou funcii destinate pentru:

criptare (E) decriptare (D)

atat criptarea cat i decriptarea sunt controlate de una sau mai multe chei criptografice . 3.7.1 Algoritmi simetrici

Algoritmii simetrici (dup cum s-a artat in seciunea 3.1.2) se clasific in dou categorii mari: algoritmi secveniali i algoritmi bloc. 3.7.1.1 Algoritmi secveniali Caracteristici: textul in clar M este considerat ca un ir de simboluri dintr-un alfabet A; prin cifrare fiecare simbol al textului in clar este transformat intr-un alt simbol al mesajului criptat, deci la ieire se obine un ir de simboluri ale criptogramei. Notm : A - alfabetul mesajului in clar; C - alfabetul mesajului cifrat; S - cifrarea secvenial: Observaii: dac , nu se recomand criptarea; .

cifrurile secveniale sunt o variant modern a cifrului Vigenere;

cheia folosit in cazul acestor cifruri K este generat de un RDR (starea iniial i polinomul generator pot fi controlate prin chei). Criptarea consta in operaia: . iar decriptarea se realizeaza astfel: (3.79) (3.78)

unde

reprezinta suma modulo 2.

Observaie: Pentru cifruri secveniale puternice se procedeaz la schimbarea periodic a coeficientilor polinomului generator iar pe timpul pauzelor intre mesaje, se vor transmite valorile aleatoare produse de un generator de zgomot. Recomandm cititorului consultarea bibliografiei: [Angheloiu et al. (1986)] pp. 78-91; [Patriciu (1994)] pp. 85-89 i [Scheneier] cap.16; iar pentru aplicaii [Scheneier] cap.17 : RC-4, SEAL, etc. 3.7.1.2 Algoritmi (cifruri) bloc Caracteristici: mesajul in clar M este imprit in blocuri, de obicei de aceeai dimensiune, fiecare bloc fiind cifrat independent; cifrurile bloc sunt cifruri produs iterate avand la baz substituia i transpoziia; lungimile tipice ale blocurilor sunt: 32 128 bii;

anii de dezvoltare a cifrurilor bloc sunt anii '70 (la baza acestora stand lucrrile lui Shannon). Componentele de baz ale cifrurilor bloc sunt transformrile de: transpoziie - cutiile P (permutare P - box). substituie - cutiile S (sustituie S - box). Cutia P

Un exemplu de cutie P este reprezentat in fig. 3.12 unde intrarile sunt notate cu .

iar iesirile cu

Fig.3.12 - Exemplu de cutie P

transformrile operate de o cutie P sunt liniare, legturile interioare ale unei cutii P putand fi determinate prin punerea unui "1" la fiecare intrare i marcarea ieirii corespondente Cutia S

Cutia S este reprezentata fig. 3.13 si consta din doua convertoare (unul binar - zecimal (CBZ) si al doilea zecimal - binar (CZB)) precum si dintr-o cutie P. intr-o cutie S se fac atat transformri liniare (prin P) cat i neliniare (prin CBZ i CZB); Numrul de permutri posibile pentru o cutie S cu n intrri este Exemple: pentru n = 3 intrari vom avea iesiri ale CBZ, deci cutia P; permutri posibile in .

dac n = 128 atunci vom avea iesiri ceea ce face criptanaliza exhaustiv imposibil din punct de vedre tehnic.

Fig 3.13 - Exemplu de cutie S Intrare


0

1 2 3 4 5 6 7

M0 0 1 0 1 0 1 0 1

M1 0 0 1 1 0 0 1 1

M2 0 0 0 0 1 1 1 1

C0 1 1 0 0 0 0 1 1

C1 1 1 0 1 1 0 0 0

C2 0 1 0 1 0 1 1 0

Ieire 3 7 0 6 2 4 5 1

Tabelul 3.4 - Strile intrrilor i ieirilor pentru cutia S din fig. 3.13. Un cifru bloc reprezinta o alternan de cutii P i S. Un astfel de sistem de cifrare este exemplificat in fig. 3.14. Caracteristici: cutiile P sunt fixe (fr cheie) i prin permutarea pe care o fac realizeaz "difuzia"; cutiile S primesc la intrare atat informaia (4x4) cat i cheia de cifrare , care are rolul s comande substituia liniar; in acest fel cutiile S realizeaz "confuzia": bii; se folosesc cate doi bii pentru fiecare cutie S, ceea ce creaz posibilitatea selectrii uneia din 4 substituii posibile.

K''

Fig.3.14 - Sistem de cifrare bloc Aplicaiile cele mai importrante sunt concretizate in cifrurile LUCIFER, IDEA i DES. Dintre aceste aplicatii vom prezenta in continuare cifrul DES, cel mai utilizat; pentru ceilalti algoritmi recomandm consultarea bibliografiei. Sistemul DES (Data Encryption Standard) Caracteristici: lungimea unui bloc este de 64 de biti;

cheia este pe 64 de biti dintre care 8 sunt biti de paritate;

flexibilitatea implementrii i utilizrii in diferite aplicaii; fiecare bloc cifrat este independent de celelalte;

nu este necesar sincronizarea intre operaiile de criptare / decriptare ale unui bloc; pentru creterea securitii se poate aplica algoritmul T-DES (triplu DES) care const in iterarea de trei ori a algoritmului DES.

Dei d semne de "btranee" DES-ul s-a comportat excepional timp de 20 de ani la atacuri criptanalitice i este considerat inc sigur in numeroase aplicaii. Considerm c istoria apariiei sale merit a fi amintit [Scheneier], deoarece ea reprezint un model de conlucrare eficient a lumii tiinifice, a productorilor de echipamente, a consumatorilor i - in final - a factorului politic in dezvoltarea unei probleme de mare actualitate. Dezvoltarea standardului [Scheneier] La inceputul anilor 70 cercetarea criptografic nemilitar era intampltoare. Aproape c nu erau lucrri publicate in domeniu. Majoritatea oamenilor tiau c militarii utilizau coduri speciale pentru a comunica, dar puini erau cei ce inelegeau tiina criptografiei. NSA (National Security Agency) avea cunotine considerabile, dar nici nu se admitea public existenta ei. Anumite companii mici fceau i livrau echipamente criptografice, in afara SUA, diferitelor guverne. Echipamentele erau total diferite, fr posibilitate de interconectare. Nimeni nu tia mcar dac erau sigure, dat fiind c nu exista un organism independent care s certifice securitatea produselor livrate. In 1972, NBS (National Bureau of Standards) astzi NIST (National Institute of Standards and Technology), a iniiat un program pentru protecia calculatoarelor i comunicaiilor 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 in acelai timp mai ieftin de implementat i mai rapid disponibile. La data de 15 mai 1973 NBS a fcut publice cererile pentru propuneri de algoritmi criptografici pentru un standard. Criteriile specificate au fost: algoritmul trebuie s asigure un nivel ridicat de securitate algoritmul trebuie complet specificat i uor de ineles

securitatea algoritmului trebuie s fie cuprins in cheie i nu in secretul algoritmului algoritmul trebuie s fie disponibil tuturor utilizatorilor algoritmul trebuie s se poat adapta diferitelor aplicaii

algoritmul trebuie s poat fi implementat economic cu circuite electronice algoritmul trebuie s fie eficient in utilizare algoritmul trebuie s poat fi evaluat algoritmul trebuie s poat fi exportabil

Rspunsul public la prima strigare a artat c interesul pentru un standard criptografic era mare, dar existau puini specialiti (in domeniul public). Nici una dintre propuneri nu a indeplinit cerinele specificate. La data de 27 august 1974, NBS a fcut a doua cerere (Federal Register). Primiser promisiunea unei candidaturi: un algoritm descoperit de IBM la inceputul anilor 1970 (LUCIFER). IBM avea un grup de criptografi la Kingston i Yorktown Heights. Algoritmul, dei complicat, era clar. Utiliza doar operaii simple pe grupuri mici de bii i se putea implementa destul de eficient. NBS a cerut ageniei 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 fabricaie, implementare i utilizare]. La data de 17 martie 1975, Registrul Federal a publicat algoritmul dat de NBS i cerinele companiei IBM de neexclusivitate i a cerut comentarii. Comentariile au fost multe. Toi erau speriai c NSA a modificat algoritmul instaland o trap. Ei au comentat c NSA a redus cheia de la 128 la 56 de bii. In 1976, NBS a inut dou conferine pentru a evalua standardul propus. Prima conferin a discutat matematica algoritmului i posibilitatea unei trape. Cea de-a doua conferin a discutat problema creterii dimensiunii cheii. Au fost invitai: proiectanii algoritmului, evaluatorii, implementatorii, vanztorii, utilizatorii i criticii. Dup toi, conferinele au fost strlucite. La data de 26 noiembrie 1976, DES a fost adoptat ca standard federal i autorizat pentru utilizare in comunicaii guvernamentale (unclassified) secrete iar pe 15 ianuarie 1977 s-a dat o descriere oficial a standardului. In 1981 s-a publicat ghidul pentru implementarea i utilizarea DES precum i specificaiile DES pentru criptarea parolelor i pentru autentificarea datelor. Observaii: Toate aceste publicaii sunt fr precedent. Niciodat pan atunci un algoritm evaluat de NSA nu a fost fcut public NSA a gandit DES doar ca hardware; standardul DES mandata o implementare hard, dar NBS a publicat suficiente detalii, astfel incat oamenii s poat implementa DES-ul prin software.

NSA a apreciat c DES a fost una dintre cele mai mari greeli ale lor; dac ar fi tiut c atatea detalii vor fi date incat oamenii s-l poat implementa soft, nu ar fi acceptat s-l evalueze. DES a fost cel mai puternic catalizator in 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 in 1981 (ANSI X3.92). Ei l-au numit DEA (Data Encryption Algorithm). dou grupuri din ANSI reprezentand tranzaciile en-gros i en-dtail au elaborat standarde bazate pe DES grupul ANSI - grup de lucru pentru securitatea instituiilor financiare pentru vanzrile cu amnuntul (retail) - a dezvoltat un standard pentru managementul i securitatea PIN i un standard DES pentru autentificarea mesajelor in vanzrile cu amnuntul (retail) ANSI X9.19 acelai grup a fcut o propunere de standard pentru distribuia cheilor Algoritmul DES Algoritmul DES (Data Encryption Standard) este un algoritm de criptare cu chei simetrice. Structural este constituit ca o combinaie de algoritmi de tip transpoziie i substituie. Iniial sistemul a fost propus s lucreze cu un cuvant cheie de 128 de bii, dar din motive strategice s-a redus lungimea lui la 64 (de fapt la 56) bii. Experii NSA au realizat la acea vreme c o cheie de 128 de bii este prea greu de 'spart' chiar i pentru ei. Schema general de criptare a DES este reprezentat in fig 3.15. Dup cum era de ateptat, sunt dou intrri in algoritm i anume un bloc de text in clar de 64 de bii i o cheie de 56 de bii.

Fig 3.15 - Prezentarea general a algoritmului DES Se poate observa din fig. 3.15 c - in partea dreapt a desenului - avem generarea cheilor iar in stanga se prelucreaz textul. Intrarea in bloc se va supune intai unei permutri iniiale dup care au loc 16 iteraii succesive, o interschimbare pe 32 de bii i - in incheiere - se va aplica inversa permutrii iniiale. In continuare, se vor descrie pe scurt principalii pai care sunt de efectuat pentru a parcurge algoritmul. Toate operaiile descrise in aceast seciune sunt prezentate detaliat in tabelele 3.5 3.12. Bit ieire 1 Bit 58 intrare Bit ieire 17 Bit 62 intrare Bit ieire 33 Bit 57 intrare Bit ieire 49 Bit 61 intrare 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Tabelul 3.5 - Permutarea iniial Bit ieire 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

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

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

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

Tabelul 3.9 - Permutarea de tipul 1 Iteraia Nr. bii 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Tabelul 3.10 - Programul deplasrilor spre stanga pe pai Bit ieire Bit intrare Bit ieire Bit intrare Bit ieire Bit intrare 1 14 17 26 33 51 2 17 18 8 34 45 3 11 19 16 35 33 4 24 20 7 36 48 5 1 21 27 37 44 6 5 22 20 38 49 7 3 23 13 39 39 8 28 24 2 40 56 9 15 25 41 41 34 10 6 26 52 42 53 11 21 27 31 43 46 12 10 28 37 44 42 13 23 29 47 45 50 14 19 30 55 46 36 15 12 31 30 47 29 16 4 32 40 48 32

Tabelul 3.11 - Permutarea de tipul 2

Urmrind aceste tabele, se poate dovedi uor c intr-adevr permutarea final este inversa celei iniiale. Interschimbarea pe 32 de bii de care am pomenit in fig.3.15, efectueaz trecerea blocului de 32 de bii aflai pe primele poziii in blocul de intrare de 64 de bii pe ultimele poziii i invers. Detalii despre o iteraie oarecare se pot gsi in fig. 3.16. Cuti Ran e d 0 1 S1 2 3 0 1 S2 2 3 0 1 S3 2 3 0 1 S4 2 3 0 1 S5 2 3 0 1 S6 2 3 0 1 S7 2 3 0 1 S8 2 3 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 14 0 4 15 15 3 0 13 10 13 13 1 7 13 10 3 2 14 4 11 12 10 9 4 4 13 1 6 13 1 7 2 4 15 1 12 1 13 14 8 0 7 6 10 13 8 6 15 12 11 2 8 1 15 14 3 11 0 4 11 2 15 11 1 13 7 14 8 8 4 7 10 9 0 4 13 14 11 9 0 4 2 1 12 10 4 15 2 2 11 11 13 8 13 4 14 1 4 8 2 14 7 11 1 14 9 9 0 3 5 0 6 1 12 11 7 15 2 5 12 14 7 13 8 4 8 1 7 2 14 13 4 6 15 10 3 6 3 8 6 0 6 12 10 7 4 10 1 9 7 2 9 15 4 12 1 6 10 9 4 15 2 6 9 11 2 4 15 3 4 15 9 6 15 11 1 10 7 13 14 2 12 8 5 0 9 3 4 15 3 12 10 11 13 2 1 3 8 13 4 15 6 3 8 9 0 7 13 11 13 7 2 6 9 12 15 8 1 7 10 11 7 14 8 8 1 11 7 4 14 1 2 5 10 0 7 10 3 13 8 6 1 8 13 8 5 3 10 13 10 14 7 1 4 2 13 3 10 15 5 9 12 5 11 1 2 11 4 1 4 15 9 8 5 15 6 0 6 7 11 3 14 10 9 10 12 0 15 10 6 12 11 7 0 8 6 13 8 1 15 2 7 1 4 5 0 9 15 13 1 0 14 12 3 15 5 9 5 6 12 6 12 9 3 2 1 12 7 12 5 2 14 8 2 3 5 3 15 12 0 3 13 4 1 9 5 6 0 3 6 10 9 12 11 7 14 13 10 6 12 7 14 12 3 5 12 14 11 15 10 5 9 4 14 10 7 7 12 8 15 14 11 13 0 5 9 3 10 12 6 9 0 11 12 5 11 11 1 5 12 13 3 6 10 14 0 1 6 5 2 0 14 5 0 15 3 9 5 10 0 0 9 3 5 4 11 10 5 12 10 2 7 0 9 3 4 7 11 13 0 10 15 5 2 0 14 3 5 0 3 5 6 5 11 2 14 2 15 14 2 4 14 8 2 14 8 0 5 5 3 11 8 6 8 9 3 12 9 5 6 7 8 0 13 10 5 15 9 8 1 7 12 15 9 4 14 9 6 14 3 11 8 6 13 1 6 2 12 7 2 8 11

Tabelul 3.12 - Cutiile S din algoritmul DES

Fig 3.16 - Descrierea unei singure iteraii a algoritmului DES In fig 3.16 de mai sus se poate observa c algoritmul imparte blocul de 64 de bii in dou blocuri de 32 de bii pe care le denumete stang i drept i cu care va lucra in continuare separat. Chiar din schem se poate observa c blocul stang care va fi regsit la ieirea dintr-o iteraie va fi identic cu cel drept de la intrare deci Si = Di-1. Blocul iniial drept va fi supus intai unei permutaii cu rol i de expandare care ii va mri dimensiunea de la 32 la 48 de bii pentru ca apoi s poate s fie supus unei operaii de SAU EXCLUSIV cheia intermediar corespunztoare iteraiei. Rezultatul obinut in urma acestor calcule va fi introdus in cutiile S de unde se va obine un bloc de 32 de bii care la randul su va fi supus unei permutri P i apoi unei operaii de SAU EXCLUSIV cu blocul stang iniial obinandu-se blocul drept final al iteraiei. Toate operaiile de mai sus se pot rezuma in formula Di = Si-1 f(Di-1,Si) unde modul de calculare al funciei f se poate observa in fig 3.17.

Fig 3.17 - Operaiile care se efectueaz pentru calcularea funciei f Din fig 3.15 se poate observa c in cazul algoritmului DES, i cheia de 56 de bii va fi supus unei permutri de tipul 1 dup care va fi imprit in dou blocuri de 28 de bii iniial. Dup aceasta, asupra ambelor pri astfel obinute se va efectua o rotaie circular spre stanga cu un numr de bii corespunztor numrului iteraiei, numr ce se poate gsi in tabelul 3.10 prezentat anterior in aceast seciune. Cele dou blocuri care s-au obinut anterior se vor introduce ca i blocuri de intrare in viitoarea iteraie dar i intr-un bloc de permutare de tip 2 din care se va obine de altfel i cheia intermediar a iteraiei curente. Observaie : La ora actual o cheie de 56 de bii nu mai este considerat sigur in multe aplicaii, fapt pentru care in aceste cazuri se utilizeaz ali algoritmi cum ar T-DES sau IDEA. 3.7.2 Algoritmi asimetrici (cu chei publice) Principiul: utilizarea a dou chei diferite: E - cheia public pentru criptare

D - cheia secret / privat pentru decriptare

cele dou funcii E i D sunt funcii greu inversabile cu trap.

Conceptul a fost inventat de Whitfield Diffie i Martin Hellman in 1976 (cand au prezentat o lucrare la National Computer Conference publicata cateva luni mai tarziu in lucrarea New Directions in Cryptography). Ralph Merkle a inventat - independent - acelai principiu, dar lucrarea i-a aprut doar in 1978 (datorit unui proces prelungit de publicare). NSA a susinut c deine principiul din 1976, dar nu a putut aduce probe ca urmare paternitatea criptografiei cu chei asimetrice este atribuita lui Diffie si lui Hellman. Dintre numeroii algoritmi propui, numai trei lucreaz bine atat pentru criptare cat i pentru semnturi digitale: RSA, El Gamal i Rabin. [Schneier] Utilizarea cea mai mare o au in sisteme hibride pentru transmiterea cheilor de sesiune. Dezavantajul esenial al algoritmilor asimetrici este c sunt de circa 1000 de ori mai leni decat algoritmii simetrici. Diffie i Hellman au propus ca cele dou funcii E i D s indeplineasc i urmtoarele proprieti adiionale: i , ,

de unde posibilitatea utilizrii acestora in semnturi digitale. Principiul algoritmilor asimetrici const in folosirea unor funcii greu inversabile. Pentru acestea calculul funciei directe f trebuie s se fac uor, iar inversa functiei f ( ) se va calcula uor doar dac exist o trap (informaie secret). Perechea este echivalenta cu perechea unde E este functia de criptare iar D cea de decriptare. Dintre funciile greu inversabile folosite in algoritmii cu chei publice amintim : factorizarea unui produs de numere prime mari (100 de cifre zecimale) utilizata in cazul algoritmului RSA gsirea logaritmului modulo numr prim dintr-un GF(q) cu q foarte mare folosit la algoritmului Rabin (logaritmi discrei) problema rucsacului care sta la baza algoritmului Merkle-Hellman (MH). Exemplu:

Fie q un numr prim, un intreg x,

i campul Galois [Angheloiu(1972)] [Borda] generat de acesta : , unde este un element primitiv al campului GF(q)

Funcia

se calculeaz uor . care constituie astfel cheia

Utilizatorul A alege in mod aleator un numr sa privat; A calculeaz

(3.80) i o face public; Dac A i B doresc s comunice intre ei, se utilizeaz: ; In consecin, A i B pot calcula pornind de la cheia privat public a partenerului yB / yA . (3.81) i de la cheia

Comunicaia este confidenial, dat fiind c nu se poate calcula dac nu se cunoate cheia privat xB/xA. Calcularea lui KAB : (3.82) este computaional imposibil. 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 fiecruia.

Dintre algoritmii cu chei publice vom prezenta pe scurt pe cel mai popular i anume RSA (RivestShamir-Adleman). Algoritmul Rivest Shamir Adleman (RSA)

Acest algoritm apare publicat pentru prima dat in 1978. Securitatea acestui algoritm se bazeaz pe faptul c - dei gsirea unor numere prime mari este din punct de vedere computaional uoar - factorizarea produsului a dou astfel de numere este in prezent foarte greu de rezolvat intr-un timp acceptabil. Problema de factorizare este o problem veche in matematic, Fermat i Legendre dezvoltand o serie de algoritmi de factorizare, cei mai eficieni folosii la ora actual bazandu-se pe cei elaborai de Legendre. Metoda de criptare implic calculul exponenial intr-un camp finit (modulo n). Mesajul cifrat se obine din mesajul in 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 obine prin modul de imprire a mesajului in blocuri). Blocul criptat C corespunztor blocului in clar se obine calculand exponeniala C = ME(mod n), E i n reprezentand astfel cheia public de criptare. Decriptarea se face prin operaia M = CD(mod n), D fiind cheia secret de decriptare. Cele dou chei E i D trebuie s satisfac relaia: M = CD(mod n) = MED(mod n), (3.83)

pentru ca algoritmul s poat fi intr-adevr folosit.Pentru aceasta vom pleca de la: Teorema Euler-Fermat : p este un numr prim dac ap-1= 1(mod p) oricare ar fi a,a[1,p]. Astfel dac am ales n un numr prim, pentru orice bloc M(0, n-1) avem proprietatea de la care vom porni: M
(n)

mod (n) = 1, unde

(3.84)

(n) = n 1 este numit indicatorul lui Euler Dac E si D satisfac relaia: ED(mod (n)) = 1 putem scrie: ED = k (n)+1= (n)+ (n)+ (n)+ (n)+1, MED = M
(n)+ (n)+ (n)+ (n)+1

(3.85)

(3.86)

(3.87) (3.88)

= M

(n)

(n)

(n)

.M(mod n),

deci:

ED(mod (n)) = 1 MED = M(mod n).

(3.89)

Astfel am asigurat o transformare reversibil de criptare pe baza unei exponeniale intr-un camp finit. Mai rmane s asigurm securitatea cheii de decriptare. Aceast cheie D trebuie s fie aproape imposibil de determinat din cheia de criptare, iar in cazul de mai sus este uor de determinat avand la dispoziie E i n tiind c ED(mod (n)) = 1 i (n) = n 1. Securitatea se bazeaz pe idea de factorizare a unui numr mare. Pornind de la aceast idee, numrul n se poate obine prin produsul a dou numere prime mari p i q: n = pq astfel incat indicatorul Euler, in acest caz: (n) = (p-1)(q-1) (3.91) devine mult mai greu de determinat avand la dispoziie n. Folosind acest schem se poate obine un sistem performant de criptare cu chei publice. Un sistem care asigur confidenialitatea va avea ca elemente urmtoarele perechi: (E,n) cheia public (D,n) cheia secret (3.90)

Un criptanalist care are la dispoziie perechea (E,n) va trebui s determine D inand 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 numrul 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 alegand D = 97, E va fi 37 pentru a satisface relaia 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 inainte fiecare liter a alfabetului. De exemplu 'A'= 00,'B'= 01. Mesajul va deveni: 0018 1418 0819 1908 1215 2011 In continuare, vom coda fiecare numr de 4 cifre, avand grij s fie mai mic decat 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 rand: 3091Dmod(n) = 309197mod(3713) = 0018 obinand mesajul iniial. Dac pan acum ne-am referit doar la secretizare, odat principial metoda ineleas, se poate intui uor aplicabilitatea ei in autentificare i in domeniul semnturilor digitale. Totui, o problem care mai apare in dezvoltarea unui astfel de algoritm este cea a calculului valorilor sistemului: a numrului n, i a celor dou chei E i D, calcul care se va face la nivel de zeci de digii pentru a asigura un nivel de scretizare mare. Se poate spune c lucrand cu operanzi pe 512 bii 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 in domeniul semnturilor digitale. RSA este recunoscut ca cea mai sigur metod de cifrare i autentificare disponibil comercial, imposibil de spart, chiar i de ageniile guvernamentale. Metoda are un mare avantaj prin faptul c nu sunt disponibile 'ci furiate' de atac la sistemul de criptare, cum sunt cunoscute la alte metode. Algoritmul este utilizat pentru protejarea i autentificarea datelor, parolelor, fiierelor de ctre o serie de firme productoare de sisteme de programare i echipamente ca DEC, Lotus, Novell, Motorola precum i o serie de instituii importante (Department of Defense SUA, Boeing, reeua bancar SWIFT, guvernul Belgiei) [Patriciu (1994)]. 3.7.3 Algoritmi bazai pe funcii hash neinversabile [Scheneier] O funcie hash (H) opereaz asupra unui mesaj pre-imagine de lungime variabil M i d la ieire o valoare hash (h) de lungime constant (128 sau 160 de bii). [m bii- lungimea valorii lui h] O funcie hash neinversabil (one way hash) trebuie s mai indeplineasc urmtoarele proprieti: Dac se d M, se calculeaz uor. , este foarte dificil. , deci

Dac se d h, determinarea lui M astfel incat

Dac se d M este greu de gsit un alt mesaj M' astfel incat: transformarea este rezistenta la "ciocnire" (collusion free).

Aceast ultim cerin este necesar pentru a evita "atacul zilei de natere" (birthday attack), bazat pe determinarea a dou mesaje aleatoare M i M' astfel incat .[Scheneier] Protocol cu atacul zilei de natere descris de Gideon Yuval [Schneier] Pasii protocolului sunt: (1) A pregtete dou versiuni ale unui contract: unul favorabil lui B, al doilea de escrocare. (2) A face cateva modificri subtile la fiecare document i calculeaz pe h (de exemplu: SPACE se inlocuiete cu SPACE-BACKSPACE-SPACE, ducerea lui SPACE inainte sau dup intoarcerea carului). In acest fel A poate genera documente diferite dac in document sunt 32 de linii). (3) A compar valoarea h pentru toate modificrile, pentru a vedea dou identice. Dac h are 64 bii, cele modificri vor conduce la valori h identice. (4) A face ca B s semneze o versiune a contractului favorabil lui, utilizand un document de semnare cu valoarea hash (h). (5) Mai tarziu, A inlocuiete contractul semnat de B cu altul, defavorabil dar avand aceeai valoare h. In acest mod poate convinge un arbitru c B a semnat noua variant. Morala: este bine s se fac intotdeauna unele modificri cosmetice ale documentelor care se semneaz. Dintre algoritmii cei mai utilizai la ora actual bazai pe funcii hash amintim : MD (Message Digest) 4 i 5 i SHA(Secure Hash Algorithm) utilizat in standardul de semnturi digitale DSS respectiv SHS. [Schneier] [Stallings] 3.7.4 Utilizarea algoritmilor [Scheneier] In cele ce urmeaz vom discuta situaia aplicaiilor criptografice din lumea civil: carduri bancare, carduri de acces in cldiri i la calculatoare, pli pentru diferite servicii, taxe de drumuri, etc., care in fapt constituie imensa majoritate a aplicaiilor criptografice (cca 99%). In aceste cazuri nu se utilizeaz o criptografie de maxim securitate ca in cazul aplicaiilor militare, diplomatice, etc. iar atacurile care au loc nu sunt atacuri criptanalitice in adevratul sens al cuvantului, ci sunt mai degrab cauzate de angajai necinstii, de implementri deficitare, de gafe i erori intampltoare. Cei mai buni criptologi consider c majoritatea cderilor din criptosisteme se datoresc deficienelor de implementare i "inventivitii protilor", i nu sunt cauzate de algoritmi sau protocoale. 3.7.4.1 Cum alegem un algoritm? [Scheneier]

Pentru lumea civil care nu deine specialiti i centre de testare pe msur (invitm cititorul, pentru a-i face o imagine sumar despre ceea ce inseamn 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 in aceast alegere. Acestea se rezum la: alegerea unui algoritm fcut public pe considerentul c dac a fost fcut public i nu se tie c a fost spart, are ans s fie aproape sigur (pretty good); increderea intr-un consultant privat pe considerentul c fiind dezinteresat va face o evaluare imparial a algoritmilor; increderea intr-un productor de marc, in baza presupunerii c acesta nu ii risc reputaia vanzand un echipament ce utilizeaz un algoritm deja depit; increderea in sfatul dat de guvern in acest tip de alegere;

increderea doar in forele proprii, deci craerea unui algoritm propriu. Toate aceste variante suport discuii.

Muli aa-zii consultani in probleme de securitate (chiar de la firme reputate) tiu in general foarte puin despre criptografie i acelai lucru este valabil i in cazul productorilor 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 in concordan cu cele ale cetenilor[Scheneier]. In aceste condiii, chiar dac eti un geniu, a scrie propriul algoritm i a-l utiliza fr a avea nici o verificare, este dup cum consider B.S. Schneier, curat nebunie. Acelai autor afirm c organizaiile militare de securitate sunt probabil mai bune decat cele academice pentru c au tradiie in domeniu i sunt mai bine finanate. Se pune intrebarea: ce algoritmi poate sparge NSA? Tot Schneier afirm c pentru majoritatea dintre noi nu exist cale real de a tii. Informaia privitoare la ce algoritmi pot fi spari 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 selecie a intelor. In situaia descris, acelai autor afirm c cea mai bun alegere este cea a unui algoritm public. Nu trebuie uitat c SUA este cel mai mare productor 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 exportai de SUA, trebuie s fie aprobai de guvernul SUA (astzi NSA). Credina este c aceti algoritmi pot fi spari de cre NSA [Scheneier], deci cumprtorii de asemenea produse trebuie s aib grij in aceste cumprturi de riscurile asumate. 3.7.4.2 Comparaie intre criptografia cu chei simetrice i cea cu chei publice

Comparaia intre cele dou tipuri de baz de algoritmi criptografici poate fi cuprins in tabelul 3.13. Nr. Parametrul crt 1 viteza Algoritmi simetrici mare (sute Mbps) pentru hard (1 10 Mbps) pentru soft lungimea tipul K manage-mentul schimbare 3 semntura digital - nesit protocoale arbitrate verificarea semnturii este de lungime mare pentru confidenialitate Algoritmi cu chei publice mai mic de cca 1000 de ori

relativ mic (ex: 64, 128 bii) secret (necesit canal sigur) greoi, necesit un centru de distribuie a cheilor (CDC) foarte des (cheie de sesiune) - nu necesit arbitraj - verificarea semnturii este de lungime mic - pentru semnturi digitale - pentru managementul cheilor

mare (ex. RSA:1024) - public, privat uor, nu necesit CDC rar, la ani de zile

eficiena

utilizarea

- in criptografia clasic - in standarde moderne (DES, LUCIFER, IDEA)

- RSA - Rabin - El Gamal etc.

Tabelul 3.13 - Comparaia algoritmilor simetrici i cu chei publice 3.7.4.3 Modaliti de criptare a canalelor de comunicaie [Scheneier]

Teoretic, criptarea poate fi fcut la nivelul oricrui strat OSI (Open System Interface) al modelului de comunicaie.

Practic, criptarea se face la nivelul fizic, caz in care se numete criptare legtur la legtur (link-by-link encryption) sau la nivelele inalte, caz in care poart denumirea de criptare capt la capt (end-to-end encryption). Criptarea legtur la legtur

Fig. 3.18 - Criptarea legtur la legtur Caracteristici: Criptarea se face la nivel fizic.

Echipamentul de criptare se pune dup interfaa stratului fizic, care este standardizat; aceste echipamente hard cripteaz toate datele ce trec prin ele: date, informaii de rutare, informaii corespunztoare protocolului. Datorit acestui fapt se realizeaz o protecie a traficului (traffic flow security), ceea ce constituie un avantaj. Comutatoarele inteligente i nodurile cu memorie dintre emitor i receptor necesit decriptare inainte de procesare (vezi nodurile 2 i 3 din fig. 3.18) ceea ce constituie un dezavantaj, nodurile devenind vulnerabile din punct de vedere al securitii. Managementul cheilor este simplu, numai nodurile terminale ale unei legturi necesitand o cheie comun, ele putand s-i schimbe cheia independent de restul reelei. Securitatea nu depinde de managementul cheilor. Criptarea este online.

Criptarea capt la capt

Fig 3.19 - Criptarea capt la capt (end-to-end) Caracteristici: criptarea se face la nivelul transport, echipamentul de criptare punandu-se intre nivelul reea i nivelul transport; informaiile de rutare nu sunt criptate, ceea ce permite analiza traficului i constituie dezavantajul principal al acestui tip de criptare; managementul cheilor este mai dificil (dezavantaj), deoarece utilizatorii individuali trebuie s fie siguri c au aceeai cheie; criptarea este offline (dezavantaj);

asigur un nivel sporit de securitate (avantaj), in noduri semnalele fiind criptate; criptarea avand loc la nivel inalt, este independent de tipul reelei, de codurile de linie folosite, de sincronizarea dintre modemuri, de interfeele fizice, etc. ceea ce constituie un avantaj;

criptarea la nivelele inalte interacioneaz cu softul utilizatorului, care poate diferi de la un calculator la altul (dezavantaj); 3.7.4.4 echipamentul de criptare poate fi realizat soft sau hard.

Modaliti de criptare a datelor pentru stocare [Scheneier]

Criptarea, in cazul stocrii datelor, are cerine diferite fa de criptarea in cazul transmisiunii acestora. Probleme in transmisiune: Dac apar erori in transmisiune, acestea pot fi corectate prin retransmisie.

Cheile utilizate sunt valabile doar pentru o singur transmisiune (cheie de sesiune), dup care existena lor nu mai este necesar. Probleme in stocare: Datele stocate trebuie s fie protejate prin coduri corectoare de erori deoarece retransmisia este imposibil. Cheile trebuie s se pstreze atata timp cat se pstreaz datele stocate (ani de zile in multe situaii).

Datele in clar trebuie s existe pe alt disc sau alt suport, de exemplu hartie (de aici posibilitatea unor atacuri cu text in clar). In aplicaii cu baze de date, datele pot fi mai mici decat lungimea blocului majoritii algoritmilor, ceea ce face ca textul cifrat s fie mai mare decat textul in clar. Viteza dispozitivelor de I/O cer criptri / decriptri de mare vitez, deci criptare hard, iar in unele aplicaii se cer algoritmi de mare vitez. Managementul cheilor este mult mai complicat, deoarece utilizatori diferii necesit acces la diferite fiiere sau poriuni de fiiere.

Cand este necesar criptarea pentru stocare a datelor de pe un suport de date cu o capacitate mare (de exemplu un disc dur) apar nite probleme suplimentare cum ar fi: problema numrului de chei folosite la criptare i cea a criptrii datelor la nivel de disc sau la nivel de fiier. Caracteristici ale criptrii informaiei de pe un disc cu o singur cheie este simpl deoarece nu implic reinerea de ctre utilizatori a unui numr mare de chei de criptare (avantaj); nivelul de securitate este redus deoarece un eventual criptanalist ar avea la dispoziie o cantitate imens de text criptat (dezavantaj); nu se poate restriciona accesul utilizatorilor doar la anumite fiiere (dezavantaj). Caracteristici ale criptrii datelor folosind mai multe chei este greoaie deoarece fiecare utilizator care dorete s aib acces la informaia din mai multe fiiere trebuie s cunoasc cheile cu care acestea sunt criptate (dezavantaj - deoarece trebuiesc reinute un numr mare de chei); dezavantajul de mai sus poate fi contracarat dac se copiaz cheile de criptare intr-un fiier separat care va fi la randul su cifrat cu o cheie care va fi cunoscut de toi utilizatorii; utilizatorii au acces doar la acele fiiere la care cunosc cheia de criptare (avantaj - din punt de vedere al nivelului de securitate). 3.7.4.5 Comparaii dintre criptarea hard i soft [Scheneier] Una dintre problemele cele mai importante in implementarea algoritmilor criptografici este aceea care se refer la modul in 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 implementri se face dac se cunosc bine avantajele i dezavantajele pe care acestea le au. Caracteristici ale implementrii hard este extrem de avantajoas din puntul de vedere al vitezei de lucru;

nivelul de securitate este ridicat deoarece circuitele pot fi protejate la modificri sau se pot folosi cipuri VLSI speciale care nu permite modificri ale schemei; din moment ce radiaia electromagnetic emis de un circuit poate da informaii nedorite despre ceea ce se intampl in el, cutiile de criptare specializate pot fi ecranate; sunt uor de instalat ele putand fi conectate fr probleme la diferitele dispozitive care se doresc a fii protejate. Caracteristici ale implementrii soft au o vitez de lucru mult mai mic decat implementrile hard;

sunt mai puin sigure deoarece un program de codare sau decodare ce ruleaz pe un calculator nespecializat nu are nici un fel de protecie fizic; o protejare mai eficient a unei implementri soft ar presupune introducerea criptrii la nivelul sistemului de operare; este avantajoas din punctul de vedere al portabilitii i flexibilitii in cazul folosirii de limbaje de programare care au versiuni ce ruleaz sub diferite sisteme de operare; utilizarea i upgrade-ul se pot face foarte uor in cazul unei astfel de implementri.

Ca o concluzie in acest sens s-ar putea spune c pentru un sistem criptografic necesar in aplicaii militare, diplomatice sau alte domenii cu grad maxim de securitate, sunt indicate clar implementrile hard (NSA de exemplu nu autorizeaz decat acest tip de implementare), pe cand in celelalte aplicaii din domeniul civil sau comercial se pot folosi implementrile sub form de program (soft). 3.7.5. Lungimea cheilor [Scheneier]

Pentru a vedea ce lungime a cheii ar fi de dorit intr-un sistem criptografic, cel care il proiecteaz trebuie s rspund in prealabil la cateva intrebri cum ar fi: Cat valoreaz informaiile care trebuie protejate? Cat timp trebuie s fie aceste informaii confideniale?

Care ar fi categoriile de persoane interesate in datele care trebuie protejate? De ce resurse dispun aceti oponeni?

Prima dintre intrebrile de mai sus se refer la natura datelor de protejat. Astfel, unele date cum ar fi nite e-mail-uri simple pot valora pan la 100$, o list a clienilor cu adresele lor in jur de 1.000$, situaiile financiare ale clienilor unei bnci 100.000$ pe cand o cheie care permite accesul liber la conturile unei banci de renume poate valora miliarde de dolari. Aceste detalii sunt bine de cunoscut de ctre proiectant deoarece este greu de crezut c un oponent ar folosi resurse in valoare de 100.000$ pentru a sparge un cod care protejeaz informaii care pentru el ar valora 1.000$ dar, in mod sigur, acelai oponent i-ar folosi resursele mai sus amintite dac acele informaii ar valora s zicem 10.000.000$. Tot referitoare la natura datelor este i intrebarea a doua. tirile senzaionale ale unui post de televiziune sunt confideniale doar pe un timp foarte scurt (maximum o zi) ele fiind apoi publicate, o list de invitai la o serat poate fi de actualitate pe perioada catorva sptamini pe cand diferite documente de la arhivele statului trebuiesc protejate pe perioade mari de timp. In acest sens, dac dorim s protejm date pe o perioad mare de timp trebuie s inem seama de faptul c cheile de criptare de o anumit lungime care in momentul actual sunt considerate extrem de greu de spart pot deveni uor de spart in viitor pe msur ce se descoper tehnologii i metode matematice noi i se mrete viteza echipamentelor de lucru. A-i cunoate oponenii i anume persoanele sau organizaiile care sunt interesate de datele pe care doreti s le protejezi i a cunoate resursele pe care acetia le au i pe care ar fi dispui s le aloce pentru a avea acces la aceste date este de asemenea un aspect pe care orice utilizator sau proiectant al unui sistem criptografic trebuie s-l ia in seam cand alege lungimea cheii folosite la criptare. 3.7.5.1 Lungimea cheilor in sisteme cu chei simetrice Intr-un criptosistem bazat pe chei simetrice, securitatea datelor depinde de doi factori importani i anume securitatea algoritmului i lungimea cheii. Dac primul dintre aceti doi factori este mai important (este inutil folosirea unei chei de dimensiuni mari in cazul unui algoritm despre care sa demonstrat c este slab), cel de-al doilea este mai uor de demonstrat. Un algoritm criptografic simetric, dup cum s-a artat in subcapitolele anterioare, const intr-o secven de substituii i permutri, puterea sa stand in cheie i nu in secretul algoritmului. Pentru a testa securitatea unui astfel de algoritm, acesta este supus ateniei opiniei publice i specialitilor ateptandu-se reaciile acestora. Dac acesta rezist atacurilor i criticilor un timp suficient se poate considera c este puternic. Oricum, nimeni nu poate garanta c pe viitor nu pot aprea noi tipuri de atacuri criptanalitice care s compromit securitatea unui algoritm considerat sigur in prezent. Dac, dup cum s-a artat mai sus, testarea securitatea unui algoritm este o sarcin dificil, calcularea complexitii unui atac bazat pe for brut dac se cunoate lungimea cheii este

extrem de simpl. S lum ca i exemplu pentru aceasta cazul DES-ului: lungimea cheii fiind de 56 de bii trebuie s se incerce maximum variante pan la gsirea celei corecte existand 50% anse de a reui dup incercri. In [Scheneier] sunt amintite cateva atacuri posibile bazate pe for brut asupra unui sistem protejat de o cheie simetric. Se arat c cele mai de succes atacuri sunt cele hard realizate cu ajutorul unor maini special concepute pentru a sparge codurile, viteza atacului depinzand de doi factori: numrul cheilor ce trebuiesc testate viteza fiecrui test.

Cel mai important dintre acestea este numrul cheilor care este in cazul in care lungimea unei chei este n. Cel de-al doilea factor este mai puin important deoarece, chiar dac testarea unei chei pentru un algoritm se face de 10 ori mai incet decat in cazul altuia, aceast cifr este infim in comparaie cu numrul extrem de mare de chei cu care se lucreaz. Complexitatea unui atac prin for brut este liniar ea crescand odat cu creterea lungimii cheii iar datorit acestui fapt un astfel de atac se preteaz excelent unei procesri paralele folosind mai multe procesoare. Cu cat tehnologia este mai performant (viteza de lucru a unui procesor este mai mare) i resursele ce se aloc sunt mai ridicate (se folosesc mai multe procesoare care lucreaz in paralel), cu atat mai mare este necesitatea utilizrii de chei de lungime mai mare. Astfel, in [Scheneier] se arat c la tehnologia anului 1995 cu o main care ar costa in jur de 1.000.000$ o cheie de 40 de bii s-ar sparge in 0,2 secunde, una de 56 de bii in 3,5 ore, una de 64 de bii in 37 de zile, una de 80 de bii in 7000 de ani pe cand una de 128 de bii in ani (de 100 de milioane de ori varsta universului). Un exemplu concludent in sensul celor artate anterior a aprut in literatura de specialitate in anul 1998 i se referea la un record de spargere a algoritmului DES stabilit de o echip de criptanaliti de la Electronic Frontier Foundation din care fcea parte i renumitul criptograf Paul Kocher. Echipa mai sus amintit a reuit descifrarea unei criptograme care fusese obinut prin criptarea DES unui mesaj-test scris in limba englez in doar 56 de ore. Ceea ce este de asemenea interesant cu privire la acest record este faptul c maina cu care s-a realizat acest lucru este de fabricaie proprie i a fost construit in mai puin de un an, costul ei ridicandu-se la mai puin de 250.000$. Din cele artate anterior, cititorul s-ar putea intreba ce rost are s se mai discute amnuntele de mai sus in loc s se foloseasc o cheie de lungime extrem de mare (de exemplu 3 Kb) care ar fi de nespart printr-un atac bazat pe fora brut. Din pcate, lucrurile nu stau atat de simplu, lungimea unei chei nu poate fi oricat de mare deoarece in acest caz apar probleme reale referitoare la viteza de lucru a algoritmilor iar managementul unor chei de asemenea dimensiune este extrem de dificil.

O a doua abordare a problemei atacului prin for brut pe lang cea hard amintit anterior este cea soft. O astfel de abordare este cam de 1000 de ori mai lent ([Scheneier]) dar are totui un avantaj i anume acela c nu il cost pe atacator nimic. Un program care s ruleze pe un calculator i care s testeze mulimea de chei este extrem de uor de realizat i chiar dac este foarte posibil ca atacatorul s nu poat sparge codul intr-un timp rezonabil, cel puin acesta va ti c aceast incercare nu l-a costat altceva dacat timp. Dac ansele de reuit in cazul unui atac software de pe un calculator sunt foarte mici datorit vitezei slabe, acestea cresc dac atacul se rafineaz prin folosirea mai multor staii de lucru care vor avea fiecare de verificat o parte din spaiul de chei i care vor lucra in acelai timp pentru a sparge codul. Astfel, se poate calcula c o reea de 400 de calculatoare capabile s execute 32.000 de criptri pe secund pot finaliza cu succes un atac prin for brut in mai puin de o zi. Dac numrul de calculatoare ar fi mai mare (de ordinul milioanelor) i viteza de lucru a acestora ar crete, rezultatele ar fi mult mai bune. Ca i un exemplu in acest sens a aminti tentativa incununat de succes a proprietarilor site-ului www.distributed.net care au reuit in februarie 1998 s criptanalizeze un mesaj protejat prin intermediul algoritmului DES in 39 de zile cu ajutorul a peste 22.000 de utilizatori ai Internet-ului din intreaga lume. Din cele artate anterior, s-ar putea deduce c singurele probleme intr-un atac software eficient bazat pe folosirea mai multor calculatoare care s lucreze in acelai timp ar fi cele ale numrului de calculatoare folosite i a vitezei de lucru a acestora dar, de fapt, cea mai mare dificultate intalnit este aceea de a convinge pe milioanele de proprietari ai calculatoarelor de care este nevoie s permit folosirea lor in scopul dorit. Aceast dificultate se concretizeaz in enormul timp care s-ar pierde cu munca de lmurire i in posibilele refuzuri care pot aprea iar ea poate fi combtut i prin mijloace neortodoxe. Unul dintre acestea ar consta in folosirea unui virus special conceput ([Scheneier]) care s se propage i s infesteze un numr mare de calculatoare i care, odat ajuns pe un calculator gazd, il va determina pe acesta s lucreze la testarea de chei (munc de criptanaliz) pe perioada in care este in ateptare. 3.7.5.2 Lungimea cheilor in sisteme cu chei publice Aa cum am artat i in seciunea 3.3.2.2 in cazul criptosistemelor cu chei publice, cifrarea i descifrarea nu se bazeaz pe o secven de substituii i transpoziii ci pe folosirea funciilor neinversabile cu trap. Acestea sunt de fapt funcii matematice greu inversabile (a cror inversare este o problem considerat dificil) dintre care amintim: factorizarea numerelor mari (st la baza celor mai cunoscui algoritmi asimetrici: RSA, LUC etc.) i logaritmii discrei. In cele ce urmeaz voi avea in vedere doar factorizarea dar cititorul poate face extrapola consideraiile mele i in cazul logaritmilor discrei. Din cele artate anterior se poate deduce c un atac bazat pe for brut pentru astfel de criptosisteme nu presupune iterarea spaiului cheilor posibile (lucru imposibil de altfel datorit dimensiunii mari ale cheilor) ci incercarea de factorizare a unor numere de dimensiuni foarte mari. i in acest caz, avand in vedere c algoritmul este presupus a fi sigur in lipsa unor dovezi contrare, securitatea se bazeaz extrem de mult pe lungimea cheii. Dac sistemele criptografice simetrice se folosesc la protejarea datelor pentru un timp relativ scurt (cheia simetric este folosit ca i cheie de sesiune dup care ii pierde valabilitatea), cele asimetrice sunt adeseori folosite

pentru a proteja date de mare valoare pe timp indelungat (perechea de chei public-privat se schimb mult mai rar decat cea secret) de unde i necesitatea imperioas de a alege chei de o lungime suficient de mare pentru a le face sigure atat in prezent cat i pe un viitor predictibil. Metodele de factorizare i tehnologia folosit sunt in plin dezvoltare in ultimul timp ceea ce face ca dimensiunile necesare pentru o cheie s cresc de la an la an. Totui, la fel ca i in cazul cheilor simetrice, lungimea nu poate nici s fie exagerat de mare din cauza vitezei de calcul slabe i a faptului c o cheie prezumptiv de 15 Kb ar fi greu de manipulat. In tabelul 3.14 se prezint o lungime recomandat a cheilor intr-un sistem criptografic asimetric prognozat pe urmtorii 15 ani([Scheneier]). Anul
1995

2000 2005 2010 2015

Individual 768 1024 1280 1280 1536

Versiunea Comercial Guvernamental 1280 1536 1280 1536 1536 2048 1536 2048
2048 2048

Tabelul 3.14 - Lungimi recomandate ale cheilor dintr-un criptosistem asimetric O alt problem legat de lungimea cheilor de criptare se refer la cazul folosirii unui criptosistem hibrid (folosete chei asimetrice la distribuia cheilor i o cheie secret ca i cheie de sesiune la transmiterea datelor). In acest caz, trebuie s se acorde o atenie deosebit corelrii lungimii cheii secrete cu cea a cheilor asimetrice (folosirea unei perechi de chei asimetrice de o lungime suficient este inutil dac cheia de sesiune are o lungime mic i invers). Acest lucru este o urmare a faptului c in orice sistem trebuie s ne ateptm ca atacul s se efectueze in zona cea mai expus. 3.7.5.3 Lungimea rezumatului (valorii) unei funcii hash Avand in vedere utilitatea funciilor hash i folosirea acestora in aplicaii sensibile de genul semnturilor digitale, este de ateptat c acestea vor fi supuse atacurilor criptanalitice din partea unor categorii diferite de oponeni specialiti sau nespecialiti motiv pentru care nivelul de securitate oferit de ele trebuie s fie ridicat. In mod normal, pentru a se realiza o protecie eficient a informaiei in faa celor dou atacuri, rezumatul trebuie s fie pe o lungime cat mai mare. Dac rezumatul este de lungime m atunci efortul calculaional trebuie s fie de ordinul 2m. Atacurile la securitatea rezumatului pot fi de dou feluri: atacuri in cazul crora se pornete de la un rezumat unui alt mesaj astfel incat dat i se incearc gsirea ,

atacuri in care se caut gsirea a dou mesaje care s aib acelai rezumat.

Atacurile din cea de-a doua categorie sunt cunoscute i sub numele de atacurile zilei de natere iar efortul computaional va scdea la doar . 3.7.6 Managementul cheilor [Scheneier] Managementul cheilor constituie cea mai grea parte din criptografie. Astfel, dac algoritmii i protocoalele prezentate anterior in aceast lucrare au la baz o munc asidu de cercetare i au fost testate impotriva diferitelor atacuri, partea cea mai slab a unui sistem criptografic este cea legat de activitatea uman. De exemplu, este mult mai rentabil din punctul de vedere al resurselor ce se cheltuiesc s mituieti un funcionar sau s obii date confideniale cu fora de la o persoan decat s contruieti o main care s gseasc o cheie secret prin for brut intr-un timp rezonabil. De asemenea, utilizarea unor parole simple sau a unor anumite chei slabe in cazul diferiilor algoritmi criptografici pot diminua drastic securitatea acestora. In continuare vom prezenta cititorului principalele probleme legate de managementul cheilor cum ar fi generarea, transferul, verificare, utilizarea, actualizarea, stocarea, durata de via i distrugerea acestora. 3.7.6.1 Generarea cheilor

Pentru a obine o securitate bun a datelor cu ajutorul unui algoritm criptografic trebuiesc evitate posibilele chei slabe. Primul pas in acest sens il constituie generarea cheilor. Exist multe aplicaii care folosesc un spaiu redus al cheilor, de exemplu cheia poate fi alctuit doar din caractere alfanumerice (in cazul DES care are cheie pe 56 de bii - 7 octei dac se utilizeaz doar 26 de litere mici dimensiunea spaiului cheilor ar fi drastic redus de la la ceea ce l-ar face uor de spart). Astfel de aplicaii, dei se bazeaz pe algoritmi puternici nu asigur un grad potrivit de securitate datorit folosirii improprii a acestora. O alt problem apare cand utilizatorii trebuie s-i aleag cheia secret. S-a constatat c in aceste cazuri, in locuri unor combinaii fr sens de litere mici, mari i cifre care s poat fi ghicite mai greu, marea majoritate a utilizatorilor aleg propriul nume sau prenume, data naterii, adresa sau alte combinaii care ei consider c sunt fr sens pentru orice altcineva decat propria persoan. Astfel de chei pot fi sparte extrem de uor prin intermediul atacurilor bazate pe dicionar. Aplicaiile specializate bazate pe acest tip de atac testeaz o serie de cuvinte i combinaii uzuale. Motivul pentru care oamenii aleg parole i chei slabe de genul celor prezentate anterior este acela c sunt mult mai uor de reinut. Generarea de chei aleatoare se poate face prin intermediul calculatorului folosind metode criptografice sau necriptografice descrise pe larg in [Stallings] i [Scheneier]. Dup generare trebuie inut seama de faptul c exist un numr mic de chei slabe in cazul fiecrui algoritm. Dei aa cum am artat, numrul lor este extrem de mic in comparaie cu dimensiunea spaiului cheilor i probabilitatea ca s se genereze aleator tocmai una dintre acestea este foarte mic, este de dorit ca aplicaiile s testeze cheia dac nu este cumva slab. De exemplu, algoritmul DES are mai multe categorii de chei slabe:

chei care determin dup prima permutare din algoritm numai bii de 1 sau numai bii de 0 prin urmare cele 16 chei interne vor fi egale K1 = K2 = = K16. De asemenea, aceste chei au proprietatea c nu exist nici o diferen intre operaiile efectuate la criptare i cele de la decriptare (4 la numr); chei care au proprietatea c formeaz doar dou tipuri diferite de chei interne fiecare aprand de cate 8 ori (12 chei); chei care genereaz doar patru tipuri de chei interne pe parcursul aplicrii algoritmului DES (48 de chei).

Pentru detalii despre cheile slabe din cazul algoritmului DES, cititorul este rugat s consulte [Seberry]. 3.7.6.2 Transferul cheilor O alt problem in managementul cheilor este aceea a transferului acestora. Intr-un criptosistem simetric cele dou pri implicate in transmisiune folosesc aceeai cheie. Dup ce una dintre pri genereaz cheia, trebuie s o transfere. A transmite pur i simplu cheia pe canal ar fi total greit deoarece un prezumptiv atacator poate avea acces la ea i dup aceea ar putea descifra cu ajutorul ei toate mesaje pe care le schimb prile intre ele. Dac cele dou pri se pot intalni intr-un loc sigur sau dac au un canal secret special pentru transmiterea cheii, transferul se face uor dar in caz contrar apar probleme. Soluia viabil pentru transferul cheilor ar fi folosirea criptosistemelor cu chei asimetrice dar exist situaii cand acestea nu se pot utiliza. O alta tehnic utilizeaz distribuia cheii prin canale paralele. Aceast metod presupune imprirea cheii in mai multe buci, transmiterea fiecreia in parte pe un alt canal i recompunerea ei la destinaie. Avantajul const in faptul c atacatorul trebuie s intercepteze toate componentele pentru a gsi cheia. 3.7.6.3 Verificarea cheilor Dup ce cheia secret a fost transmis i a ajuns la destinaie, cel care a recepionat-o trebuie s o verifice pentru a se asigura c aceasta provine de la persoana care trebuie i c nu au intervenit erori in transmisie. Prima dintre cele dou probleme de mai sus se rezolv uor dac transferul s-a efectuat fa in fa sau printr-un curier sau canal sigur. Dac s-a folosit un sistem criptografic asimetric, trebuie verificat faptul c cheia public care se va folosi la decriptare aparine chiar transmitorului legitim i nu unui atacator. Acest lucru se poate face prin telefon sau se poate folosi o autoritate de certificare in care s se aib incredere. Pentru a combate erorile care pot aprea in transferul cheii se folosesc coduri detectoare i corectoare de erori iar pentru verificare se cripteaz cu aceasta o valoare constant primii 2 sau 4 bii ai textului cifrat urmand a fi transmii impreun cu cheia.

3.7.6.4

Utilizarea cheilor

Utilizarea cheilor in criptarea propriu-zis prezint probleme in cazul in care cifrarea se face din soft. Aceasta se datoreaz faptului c sistemele de operare moderne - fiind multitasking - folosesc discul hard ca i memorie extins, salvand datele de fiecare dat cand au nevoie de memorie suplimentar i reincrcandu-le cand au nevoie de ele. Dup astfel de operaii, este posibil ca buci de text in clar sau chiar cheia s fie salvate pe disc de unde ele pot fi recuperate ulterior de ctre un atacator. Aceste probleme nu apar ins in cazul unei implementri hard, folosirea unor cartele care au cheia imprimat permiand chiar distrugerea cheii in cazul unei incercri de fraud. In cazul in care se dorete utilizarea controlat a unei chei (de exemplu se dorete utilizarea ei doar in cazul unei anumite maini sau doar la anumite momente de timp) se poate folosi un vector de control (VC) care s conin restriciile dorite [Scheneier]. 3.7.6.5 Actualizarea cheilor Actualizarea cheilor se face in sistemele care trebuie s-i modifice cheia secret foarte des datorit problemelor care ar aprea la fiecare distribuie a cheilor. Astfel, in loc s se genereze zilnic cate o nou cheie de ctre una dintre pri i s se transfere aceasta, ambele pri implicate vor genera noua cheie pornind de la cea veche printrun algoritm reciproc convenit. Metoda are avantajul operativitii sporite dar nu este deloc mai sigur datorit faptului c atacatorul poate face i el actualizarea dac reuete s obin o cheie. 3.7.6.6 Stocarea cheilor Stocarea cheilor este simpl dac sistemul are un singur utilizator. Intr-o astfel de situaie, de multe ori cheia este pstrat doar in mintea respectivei persoane nefiind nevoie ca s existe duplicate ale ei pe disc. Este cazul sistemului IPS [Scheneier] care permite utilizatorului s introduc direct cei 64 de bii ai cheii sau un ir mai lung de caractere din care se obine cheia prin o tehnic special de generare. O modalitate practic de stocare a cheii o constituie inscripionarea acestora pe cartele magnetice (smart card). Cand se dorete criptarea sau decriptarea, se introduce cartela intr-un cititor ataat calculatorului. Avantajul acestei metode de stocare este acela c materializeaz cheia prin faptul c pstrarea ei se poate face ca i in cazul unei chei obinuite ceea ce uureaz inelegerea conceptului de protecie a acesteia pentru utilizatori. Dac se dorete s nu existe un singur utilizator care s posede cheia se pot folosi dou cartele, fiecare avand inscripionat jumtate din aceasta. Prin aceasta nici unul dintre cei doi utilizatori nu vor cunoate cheia, la criptare trebuind s fie introduse ambele carduri in acelai timp. 3.7.6.7 Copii de siguran (backup)

S presupunem c o persoan X deine o cheie secret pe care o folosete la criptarea unor documente importante. Dac acea persoan uit cheia nu va mai fi in stare s mai descifreze coninutul acestor documente. Aceeai situaie apare dac X este angajatul unei firme i sufer un accident dup ce a folosit cheia la criptarea documentele firmei respective. In cazurile de mai sus, problemele pot fi rezolvate doar dac s-a fcut iniial copii de siguran ale cheilor (backup). O prim metod in acest sens este aceea de a se pstra copii de siguran ale tuturor cheilor salariailor unei firme intr-un seif sub paz i in caz de nevoie s se aib acces la ele. Problema care apare este c trebuie s se aib incredere in paznicul care are acces la ele, paznic care poate fi corupt. O imbuntire a acestei metode const in existena a mai multor paznici (seifuri) fiecare dintre ei cunoscand sau avand acces la o parte din fiecare cheie. Astfel, prin mituirea unui paznic un atacator nu obine suficiente date pentru a periclita securitatea sistemului. 3.7.6.8 Durata de via a cheilor Din motive de securitate, cheile nu trebuie s aib o perioad de via nedefinit. Cu cat aceast perioad este mai mare cu atata sunt mai mari ansele ca un atacator s reueasc spargerea ei avand mai mult timp i text cifrat la dispoziie. O cheie folosit pe o perioad indelungat in general a fost utilizat la criptarea mai multor documente, ceea ce crete puternic costurile care apar in cazul pierderii ei. Diferitele chei trebuie s aib durate de via diferite. Cheile secrete din sistemele simetrice ar trebui s aib perioada de via mic (tendina actual este de folosire a lor sub forma de chei de sesiune). Chiar i aici s-ar putea face o difereniere dup viteza de transfer care este caracteristic canalului de transmisie (cheile folosite pentru criptare in transmisiuni rapide trebuie schimbate mai des cantitatea de date codat fiind mai mare). Cheile publice sau cele folosite in criptarea cheilor de sesiune vor fi schimbate mai rar datorit dimensiunii lor i a faptului c sunt folosite asupra unor cantiti mici de date. 3.7.6.9 Distrugerea cheilor In seciunea anterioar am artat c cheile trebuie s aib o perioad de via limitat dup care ele trebuie distruse. Modul de distrugere al acestora depinde de mediul pe care au fost stocate. Dac cheia era scris pe suport de hartie, foaia respectiv trebuie ars sau distrus, dar trebuie avut grij la aparatul de mrunire a hartiei deoarece unele modele din comer sunt de calitate proast i exist posibilitatea ca un atacator s poat recupera coninutul ei. Un EEPROM sau un disc coninand cheia trebuie rescris de mai multe ori succesiv pentru a fi siguri c nici un bit din aceasta nu se mai pstreaz pe cand EPROM-urile sau PROM-urile se distrug. Observaie: In seciunea 3.7.6.4 am prezentat problemele care apar in cazul criptrii i decriptrii soft sub sisteme de operare moderne care folosesc tehnica de swapping. Dac totui se folosesc

implementri soft, atunci cand se dorete distrugerea cheii vor trebui terse toate fiierele swap de pe discul hard pe care s-a lucrat i se va folosi un program ce suprascrie date de multiple ori. Nici in acest mod nu va fi eliminate total posibilitatea ca anumite pri ale cheii s mai existe pe undeva pe hard dar cel puin probabilitatea de gsire a ei de ctre un atacator va scdea.

3.8 Bibliografie
Angheloiu, I., Gyorfi, E., Patriciu, V.V. (1986): Securitatea i protecia informaiei in sistemele electronice de calcul, Editura Militar, Bucureti Angheloiu, I.(1972) :Teoria codurilor, Editura Militar, Bucureti Borda, M. (1999): Teoria transmiterii informaiei, Dacia, Cluj-Napoca Deavours, C.A., Kahn, D. (1998): Selections from Cryptologia, Artech House Deitel, H.M., Deitel, P.J., Nieto, T.R. (2001): E-Business and E-Commerce. How to program, Prentice Hall. Fc 9, Franklin, M. (1999): Financial Cryptography : Proceedings of the Third International Conference, Fc'99, Anguilla, Springer Verlag, Nov. Hankerson, D. R., Hoffman, D. G., Leonard, D. A., Linder, C.(2000): Coding Theory and Cryptography: The Essentials (Pure and Applied Mathematics, Vol 234), Marcel Dekker, Rev&ex, 2nd edition, Sep. India International Conference in Cryptology in India 2000 Calcutta (2000): Progress in Cryptology : Indocrypt 2000 Proceedings of the First International Conference in Cryptology Calcutta, Springer Verlag, Dec. Jalal, F., Williams, P. (1998): Digital Cerificates: Applied Internet Security, Addison Wesley Pub. Co. Keyes, J. (1998): Securities Technology Handbook, CRC Press, Dec. Kranakis, E., Van Oorschot, P. C.(1997) : Selected Areas in Cryptography, Kluwer Academic Publishers, Sep. McCurley, K. S., Ziegler, C. D. (1999): Advances in Cryptology, 1981-1997 : Electronic Proceedings and Index of the Crypto and Eurocrypt Conferences 1981-1997 (Lecture Notes in Computer Science), Springer Verlag, Jun. Menezes, A., Orschot, P., van, Vanstone, S. (1997): Handbook of Applied Cryptography, CRC Press Inc. Patriciu V. V. (1998): Securitatea informatic in UNIX i Internet, Editura Tehnic, Bucureti

Patriciu, V. V. (1994): Criptografia i securitatea reelelor de calculatoare, Edittura Tehnic, Bucureti Ribenboim, P. (1996): The New Book of Prime Number Records, 3 edition, Springer Verlag, May Schmied, G. (1998): High Quality Messaging and Electronic Commerce: Technical Foundations, Standards and Protocols, Springer Verlag, Nov. Schneier, B. (1996): Applied cryptography. Protocols, Algorithms and Source Code in C, J. Willey & Sons, New York Seberry, J.,Pieprzyk, J. (1993): Cryptography: An Introduction to Computer Security, Prentice Hall, Sydney Seroussi, G. Smart N. et al. (2000): Eliptic Curve an Cryptography, Cambrige University Press. Stallings, W. (2001): Business Data Communications, Prentice Hall, 4th edition, Jan. Stallings, W. (1999): Cryptography and Network Security - Principles and Practice, Prentice Hall, Second Edition Stallings, W. (1995): Network and Internetwork Security. Principles and Practice, Prentice Hall Swanson, M.D., Kobayashi, M., Tewfik, A. (1998): Multimedia Data - Embedding and Watermarking Technologies, Proceedings of the IEEE, Vol. 86, No. 6, June Tilborg, H.C.A, van.: Fundamentals of Cryptology(1999): A Professional Reference and Interactive Tutorial (Kluwer International Series in Engineering and Computer Science, Secs), Kluwer Academic Pub, nov. Wiener M. (1999): Advances in Cryptology - Crypto '99 : Proceedings of the 19th Annual International Cryptology Conference, Santa Barbara, California, Usa, Springer Verlag, Sep.

You might also like