Sunteți pe pagina 1din 39

CRIPTARE

1. INTRODUCERE
ntotdeauna informaia (religioas, militar, economic, etc.) a nsemnat 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 pn n prezent dateaz de circa 4000 de ani i provin din Egiptul antic, dar existena acestora dateaz fr doar i poate de la apariia scrierii n toate civilizaiile umane. n Grecia antic scrierile cifrate erau folosite nc din secolul al V-lea .e.n. Pentru cifrare se folosea un baston n jurul cruia se nfura, spiral lng spiral, o panglic ngusta de piele, papirus sau pergament, pe care paralel cu axa se scriau literele mesajului. Dup scriere panglica era derulat, mesajul devenind astfel indescifrabil. Citirea mesajului putea fi fcut doar de persoana posesoare a unui baston identic cu cel utilizat n cifrare. n secolul al IV-lea .e.n. n Grecia se cunoteau 16 scrieri cifrate. Istoricul grec Polybius (sec 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 astzi. n Roma antic secretul informaiilor politice i militare se fcea utiliznd scrierea secret. Amintim cifrul lui Cesar, utilizat nc din timpul rzboiului galic. Documentele atest chiar existena nc din antichitate a scrierilor secrete n Asia. Astfel literatura indian d o serie de indicii dintre care Artha-sastra (321-300 .e.n.), Lalita-Vistara i Kamasutra sunt cele mai cunoscute. Stenografia, tiia scrierilor secrete insesizabile camuflate n texte n clar, constituie o forma particular de secretizare. De o importan remarcabil la dezvoltarea criptologiei este contribuia arab. David Kahn, unul din cei mai de seam istoriografi ai domeniului, sublinia n cartea s The Codebreakers c, de fapt criptologia s-a nscut n lumea arab. Primele trei secole ale civilizaiei islamice (700-1000 e.n) au constituit, pe lng o mare extindere politic i militar i o epoca de intense traduceri n limba arab ale principalelor opere ale antichitii greceti, romane, indiene, armene, ebraice, siriene. Unele cri surs erau scrise n limbi deja moarte, deci prezentau n fapt texte cifrate. Astfel nct primii pai n traducerea lor au fost traducerea acestora, 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. Cartea a fost tradus n limba englez i publicat la Londra nou secole mai trziu sub numele Ancient Alfabets and Hieroglyphic Caracters Explained, iar aceasta din urm a fost tradus i publicat la Paris n 1810 i este posibil s-l fi ajutat pe celebrul arheolog J. F. Champollion n descifrarea hieroglifelor (scrierea de la Rosseta, aflat la British Museum). Dezvoltrile criptanalizei au fost sprijinite de studiile lingvistice ale limbii arabe care n primele patru secole ale 1

imperiului islamic a constituit limba oficial unificatoare pentru un imperiu de o uria ntindere i, n acelai timp, i limba tiinific. Arabii au preluat cunotinele matematice ale civilizaiilor greceti i indiene. Arabii sunt cei care au introdus sistemele de numeraie zecimal i cifrele arabe drept urmare unii termeni cum ar fi zero, algebr li se datoreaz tot lor. Ultimele descoperiri demonstreaz faptul ca manuscrise referitoare la probabiliti i statistici erau realizate cu 800 de ani naintea celor scrise de Pascal i Fermat i nsui termenul de cifru provine de la arabi originea lui fiind reprezentat de cuvntul arab ifr care reprezint traducerea din sanscrit a cifrei zero. Odat trezit interesul pentru civilizaia antic, n perioada Renaterii s-au descoperit lucrrile criptografiei din antichitate. Extinderea relaiilor diplomatice dintre diferitele state feudale a determinat o dezvoltare puternic a secretizrii informaiei. Curile regale i n special statul papal dispuneau de criptologi de mare valoare cum ar fi 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. Dezvoltare sau recesiunea criptografiei / criptologiei conchide cu evoluia marilor imperii i civilizaii. Ea nu apare i nu se dezvolt dect acolo unde puterea trebuie protejata, drept urmare, apariia telegrafului i a radioului n secolul al XIX-lea precum i cele dou rzboaie mondiale din secolul XX au fost stimulente puternice n dezvoltarea metodelor i tehnicilor de criptare. Apariia i dezvoltarea continua a utilizrii calculatoarelor n practic toate domeniile de activitate, existenta i evoluia puternic a reelelor teleinformatice la nivel naional, globalizarea comunicaiilor, existenta unor baze de date puternice, apariia i dezvoltarea comerului electronic, a potei electronice, constituie premisele societii informatice n care pim. Toate acestea indic o cretere extraordinar a volumului i importanei datelor transmise sau stocate i implicit a vulnerabilitii acestora. Protecia n aceste sisteme vizeaz: eliminarea posibiltilor de distrugere voit sau accidental. asigurarea caracterului secret al comunicrii pentru a preveni posibilitatea ca persoane neautorizate s extrag informaii n sistem. n situaii cum ar fi transferurile electronice de fonduri , negocierile contractuale, este important existena unei semnturi electronice pentru a evita dispute ntre 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 cu caracter economic i social. La ora actual, 99% nu este utilizat pentru protejarea secretelor militare ci pentru carduri bancare, pli de taxe radio/TV, taxe de drumuri, acces autorizat n cldiri sau la calculatoare, terminale de loterie, instrumente electronice de pli anticipate. n aceste aplicaii rolul criptografiei este de a face furturile dac nu imposibil cel puin mai greu de realizat.

1.1 TERMINOLOGIE DE BAZ


Criptografia (cryptography) este tiina crerii i meninerii mesajelor secrete, n sensul imposibiltii citirii lor de ctre neautorizai (tiina mesajelor secrete). Mesaj (text) n clar (M) (plain / clear text) este mesajul ce urmeaz a fi secretizat; n criptografie M se numete scriere chiar dac este un document de alta natura, de exemplu voce, imagine, date. Mesaj cifrat (criptograma) (C) (cipher text) este mesajul secretizat, inaccesibil neavizailor. Criptare / cifrare (E) (encryption / enciphering) este procedeul de ascundere a unui mesaj n clar n mesajul secretizat. E(M)=C Decriptare / descifrare (D) (decryption / deciphering) este procedeul de regsire a mesajului n clar M din mesajul cifrat C. D(C) = D(E(M))=M Observaii: decriptarea este operaia invers criptrii; ISO 7498-2 folosete termenii de cifrare / descifrare (encipher / decipher), probabil pentru ca primul set de termeni amintete de mori (cript). Criptograf (cryptographer) este persoana care se ocup cu criptografia. Algoritm criptografic / cifru (cryptographic algorithm / cipher) este funcia sau funciile matematice utilizate pentru criptare / decriptare; n general exista dou funcii: una pentru criptare (E) i alta pentru decriptare (D). Cheia criptografica (K) (key) este mrimea (n majoritatea cazurilor secret) necesar realizrii criptrii i decriptrii. Criptosistem (cryptosistem) este sistemul format din: algoritm toate mesajele n clar (M) toate textele cifrate (C) toate cheile (K). Criptanaliza (cryptanalysis) este tiina spargerii cifrurilor, deci a obinerii mesajelor n clar (M) sau a cheii (K) din mesajul cifrat(C). Criptanalist (cryptanayst) este persoana care se ocup cu criptanaliza. Atac(attack) este ncercarea / tentativa criptanalitic. Criptologie(cryptology) este tiina care se ocup att de criptografie ct i de criptanaliz. Criptolog (cryptologist) este persoana care se ocup cu criptologia. Steganografia(steganography) este tehnica ascunderii mesajelor secrete n alte mesaje, n aa fel nct existenta mesajelor secrete s fie invizibil.

I.2 CRIPTOSISTEME I ROLUL ACESTORA


Schema bloc a unui criptosistem este prezentat n figura alturat: Criptanaliz M D(C)=M Kd K Figura I.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 n clar C - spaiul criptogramelor(text cifrat) K - spaiul cheilor Ke - spaiul cheilor de criptare Kd - spaiul cheilor de decriptare I.2.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. ndeplinirea acestui rol presupune ca un criptosistem s realizeze: Confidentialitatea / secretul / protecia datelor ( confidentiality / secrecy / privacy) asigura inaccesibilitatea coninutului informaiei transmise / stocate pentru un utilizator neavizat (n cazul canalelor / mediilor nesigure n care pot aprea intrui) Autentificarea(autentification) se aplica la : entiti (persoane, terminale, cri de credit, etc.) i n acest caz se numete autentificarea entitilor / identificare (entity autentification / identification) informaie: informaia transmis / stocat trebuie s fie autentificat n sensul M sau Kd D A

E Ke

C=E(M)

deci, acela de "poliie informatic"

originii, coninutul datelor, timpul de transmisiune / stocare i definete autentificarea originii datelor / integritatea datelor (data origin autentification / data integrity) Semntura digital (digital signature) reprezint autentificarea reciproc a datelor i entitilor 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 ca nimeni nu-i poate atribui un mesaj fals deoarece mesajul transmis de ctre el i poart semntura. Observaie : Aceste trei cerine sunt vitale pentru interaciunea "social" n calculatoare i sunt echivalente cu interaciunile umane fa n fa. Pe lng 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 n tabelul urmtor:

Nr. crt. 1

Obiectivul Confidenialitatea Emitor / autentificarea identificare originii datelor integritii datelor Semntur Nerepudierea Autorizare Validare

Definirea pstrarea secretului pentru neavizai legat de identitatea unei entiti (persoan, terminal, carte de credit, etc.) legat de sursa de informaie (sursa informaie ) 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 mputerniciri oficiale de a fi sau de a face ceva mijlocul de a permite (pentru o anumit perioad de timp) autorizarea de a folosi sau manipula informaia sau resursele

3 4 5

6 7 8 Revocare Controlul

retragerea certificatului sau autorizaiei restricionarea accesului la resurse pentru

accesului 9 10 11 12 13 14 Certificare Certificare temporala Mrturia confirmarea dreptul de proprietate anonimatul

entiti privilegiate (cu drept de acces) informaia de aprobare data de o entitate de ncredere (arbitru) nregistrarea timpului de creare sau de existen a informaiei verificarea crerii sau existenei unei informaii de ctre o entitate diferit dect cea creatoare recunoaterea faptului ca serviciile au fost efectuate mijlocul de a nzestra o entitate cu dreptul legal de a utiliza sau transfera o sursa la alii ascunderea (tinuirea) identitii unei entiti implicate ntr-un anumit proces

Observaii: toate aceste obiective exist natural n interaciunile umane fa n fa; apariia reelelor de calculatoare prin care au loc interaciunile interumane pune o serie de probleme n plus: hrtia se nlocuiete 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 n fa i deci se lucreaz n condiii de nencredere. criptografia este chemat s soluioneze o diversitate de probleme, multe i de mare dificultate. 1.2.2 CLASIFICAREA CRIPTOSISTEMELOR Dup tipul cheilor folosite pentru criptare / decriptare, criptosistemele se clasific n dou categorii i anume n sisteme: cu chei simetrice i cu chei publice. 1.2.2.1 Criptosisteme cu chei simetrice / cu cheie secret / criptosisteme 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. Ke = Kd = K decriptarea se realizeaz extrem de simplu dac se cunoate K :
E K (M ) = C D K (C ) = DK ( E K ( M )) = M

(1.1)

Cheia K este secret, fapt ce conduce la denumirea de sisteme cu cheie secret. Criptarea i (1.2) (1.3)

Problema ce se pune n cazul acestor sisteme este distribuia cheii K, care necesit un canal sigur. Dup tipul algoritmului folosit, criptosistemele cu chei simetrice se clasific n dou categorii: cu cifruri bloc (block ciphers) sunt cifrurile care acioneaz asupra unei diviziuni a textului n clar; blocurile de la intrare se cifreaz independent, lungimea tipic a blocurilor fiind n=32 128 bii. Transformrile de baz folosite pentru criptare i decriptare sunt substituiile i transpoziiile, repetate iterativ. cu cifruri secveniale (stream ciphers): mesajul de la intrare este considerat ca o succesiune (ir) de simboluri. Criptarea opereaz asupra textului n clar simbol cu simbol. Cheia K este generat de un registru de deplasare cu reacie (RDR) avnd starea iniial S 0 controlat de o cheie compact.

Fig.1.3. Schema de aplicare a unui algoritm simetric Deoarece algoritmul este valid n ambele direcii, utilizatorii trebuie s aib ncredere reciproc. Securitatea acestui tip de algoritm depinde de lungimea cheii i posibilitatea de a o pstra secret. Cnd comunicaiile dintre numeroi utilizatori trebuie s fie criptate, apare o mare problem a managementului cheilor; pentru n utilizatori sunt posibile n(n-1)/2 legturi bidirecionale, fiind necesare tot attea chei. Aceasta implic n general probleme dificile n generarea, distribuia i memorarea cheilor. Utilizarea calculatoarelor electronice a permis folosirea unor chei de dimensiuni mai mari, sporindu-se astfel rezistena la atacuri criptoanalitice. Cnd cheia secret are o dimensiune convenabil i este suficient de frecvent schimbat, devine practic imposibil spargerea cifrului, chiar dac se cunoate algoritmul de cifrare. I.2.2.2 Criptosistemele cu chei publice (asimetrice) n locul unei singure chei, secrete, criptografia asimetric folosete dou chei, diferite, una pentru cifrare, alta pentru descifrare. Deoarece este imposibil deducerea unei chei din cealalt, una din chei este fcut public fiind pus la dispoziia oricui dorete s transmit un mesaj cifrat.

Doar destinatarul, care deine cea de-a doua cheie, poate descifra i utiliza mesajul. n sistemele cu chei publice, protecia i autentificarea sunt realizate prin transformri distincte. Criptosistemele cu chei publice sunt criptosistemele pentru care cheile folosite la criptare i decriptare difer, de unde deriv i denumirea de sisteme asimetrice: Ke Kd (1.4) Cheia public - aa cum i spune i numele - poate fi accesata public (asemntor unei cri de telefon), iar cheia privat este secret. Caracteristic acestor sisteme este ca funcia de criptare i cea de decriptare se realizeaz uor dac se cunosc K d i K e :

E Ke (M ) = C DK d (C ) = M dar aflarea lui M, dac se cunosc C i K e este computaional nefezabil.

( 1.5)

Tehnica cheilor publice poate fi folosit i pentru autentificarea mesajelor, prin aa numita semntur digital, fapt care i-a sporit popularitatea. Folosind algoritmi cu cheie public (asimetrici), se creeaz criptosisteme cu dou chei, prin care doi utilizatori (procese) pot comunica cunoscnd fiecare doar cheia public a celuilalt.

Fig.1.4. Schema de aplicare a unui algoritm asimetric Observaie: E este o funcie neinversabil cu trap. K d 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 n algoritmul RSA), gsirea logaritmului modulo un numr prim ntr-un cmp Galois GF(q) cu q foarte mare ( folosit n algoritmii Rabin i Diffie-Hellman), problema rucsacului folosit n algoritmul (Markle-Helman).

2. ATACURI I MODELE DE SECURITATE N SISTEMELE INFORMATICE


2.1 ATACURI ASUPRA SECURITII SISTEMELOR CRIPTOGRAFICE

Atacul asupra securitii unui sistem criptografic definete orice aciune ce compromite securitatea acelui sistem. Atacurile criptografice pot fi ndreptate mpotriva : algoritmilor criptografici tehnicilor utilizate pentru implementarea algoritmilor protocoalelor protocoalelor

O ilustrare sugestiv a principalelor tipuri de atacuri asupra unui sistem informatic este prezentat succint n figura alturat:

flux normal intercepie Atac pasiv (atac la confidenialitate)

ntrerupere modificare fabricare

Atacuri active Dup modelul de atacare al unui atacator / intrus / persoan neautorizat / pirat ( attacker / intruder / pirat), aceste atacuri se pot clasifica dup cum urmeaz: atacuri pasive (de intercepie): - de nregistrare a coninutului mesajelor - de analiz de trafic; atacuri active : - de ntrerupere (atac la disponibilitate) 9

- de modificare (atac la integritate) - de fabricare(atac la autenticitate). Atacurile pasive sunt atacuri n care intrusul (persoana, calculator, program) doar ascult, monitorizeaz transmisia, deci sunt atacuri de intercepie. Ele pot fi de dou feluri: de nregistrare a coninutului mesajelor( release of message contents), de exemplu n convorbirile telefonice, n pota electronic, fapt pentru care dac mesajele nu sunt criptate, se violeaz caracterul confidenial al comunicaiei. de analiz a traficului ( trafic analysis ): n cazul n care mesajele sunt criptate i nu se poate face rapid criptanaliza, prin analiza traficului se pot afla o serie de date utile criptanalizei precum identitatea prilor ce comunica ntre 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 este necesar prevenirea i nu detecia lor.

criptanaliza extrem de grea, dac nu imposibil; Atacurile active sunt atacuri n care intrusul are o intervenie activ att n desfurarea normal a traficului, ct i n configurarea datelor (modificarea datelor, crearea unor date false). Dintre atacurile active amintim : ntreruperea / refuzul serviciului (denial of service) un bloc funcional este distrus, sau se inhib funcionarea normal sau managementul facilitailor de comunicaie; acest tip de atac este un atac la disponibilitate( attack on availability) modificarea: mesajul iniial este ntrziat, alterat, reordonat pentru a produce efecte neautorizate cum ar fi : - schimbare de valori n fiiere de date; - modificri n program astfel nct acesta va lucra diferit; - modificarea coninutului mesajelor transmise n reea fabricarea: un neavizat insereaz informaii false n sistem; acest atac este un atac de autenticitate. Din aceast categorie fac parte i: - masacrarea (masaquerade): o entitate pretinde a fi alt entitate. Exemplu: secvenele de autentificare pot fi capturate i dup validarea unei autentificri se nlocuiesc, permind astfel unei entiti s obin privilegii pe care nu le are de drept. - reluarea(replay) const n capturarea prin atac pasiv a unei cantiti de informaie i transmiterea s ulterioar pentru a produce efecte neautorizate
Caracteristicile atacurilor active:

-dei pot fi detectate, prevenirea lor este foarte grea, deoarece ar nsemna protecie fizic permanent a ntregului sistem. 10

2.2

ATACURI CRIPTANALITICE

Atacurile criptanalitice sunt atacuri asupra textelor cifrate n vederea obinerii textului n clar sau a cheilor folosite pentru decriptare . Exist mai multe tipuri de asemenea atacuri dintre care amintim: 1) 2) Atac asupra textului cifrat (cipher text-only attack): criptanalistul are criptograma Atac asupra unui text cunoscut (chiper text - only attack): criptanalistul are C i = E k ( M i ) i trebuie s obin mesajul n clar ( M i ) sau cheia k. criptogramele Ci i mesajele n clar M i corespunztoare i trebuie s determine cheia k sau algoritmul de determinare a lui M i +1 din C i +1 = E k ( M i +1 ) 3) Atac cu text n clar ales (chosen plain-text attack) : se pot alege o serie de mesaje M i dup dorina i se cunosc criptogramele corespondente : C i = E k ( M i ) . Criptanalistul trebuie s determine cheia k sau algoritmul de determinare a lui M i +1 din C i +1 = E k ( M i +1 ) . 4) Atac cu text n clar ales adaptiv (adaptive chosen plain-text attack): mesajele n clar M i se pot alege dup dorina i sunt adaptabile n funcie de rezultatele criptanalizelor anterioare, iar criptogramele C i = E k ( M i ) se cunosc. Se cere cheia k sau algoritmul de determinare a lui M i +1 din C i +1 = E k ( M i +1 ) . Aceste patru atacuri constituie atacurile criptanalitice de baz. n afara acestora mai putem aminti: 5) Atac cu text cifrat la alegere (chosen cipher-text attack) n care se aleg Ci i M i = Dk (C 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), n 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 4) se numesc atacuri cu text ales (chosen text attack) i au fost folosite cu succes n cel de-al doilea rzboi mondial pentru spargerea codurilor german i japonez.
2.3 SECURITATEA ALGORITMILOR

n secolul al XIX-lea, olandezul A. Kerckhoff a enunat conceptul fundamental al criptanalizei: Criptanaliza se rezum n ntregime la cheie, algoritmul criptografic i implementarea considerndu-se cunoscute. Diferiii algoritmi pot asigura diferite grade de securitate, funcie de dificultatea cu care pot fi spari: dac costul spargerii unui algoritm este mai mare dect valoarea datelor criptate, algoritmul este probabil sigur (PS); dac timpul necesar spargerii este mai mare dect valabilitatea datelor criptare, algoritmul 11

este PS; dac mulimea datelor necesare spargerii este mai mare dect mulimea datelor criptate la un moment dat de o cheie, algoritmul este PS; Lars Knudsen - n teza de doctorat susinut n 1944 - a clasificat diferitele categorii de spargere a unui algoritm n ordine cresctoare a securitii: 1)Spargere total (total break) / securitate zero: un criptanalist gsete cheia, deci orice criptograma va fi decriptat: Dk (C ) = M . 2)Deducie global (global deduction): criptanalistul gsete un algoritm alternativ echivalent cu Dk (C ) fr a cunoate cheia k. 3)Deducie local (local deduction): un criptanalist gsete textul n clar al unui text cifrat interceptat. 4)Deducia informaional (informaional deduction): criptanalistul capt unele informaii privitor la cheie sau la textul n clar (de exemplu civa bii ai cheii, anumite informaii privitoare la M etc.) 5)Algoritm computaional puternic (computaional strong) este algoritmul care poate fi spart cu resursele existente, att la momentul curent, ct i ntr-un viitor predictibil. 6)Algoritm necondiionat sigur (unconditional secure) este algoritmul pentru care indiferent ct text cifrat are criptanalistul, informaia nu este suficient pentru a deduce textul n 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 n 1917 de Major J. Maubergue i GilbertVernon, avnd aceeai lungime cu a textului n clar, este de nespart. Toi ceilali algoritmi pot fi spari cu ajutorul unui atac cu text cifrat, prin ncercarea tuturor cheilor, pn cnd textul descifrat are sens. Acest atac se numete atac prin for brut (brute force attack). Complexitatea unui atac (complexity) se manifesta n mai multe feluri: a) Complexitatea datelor (data complexity) este volumul de date necesar pentru un atac; b) Complexitatea procesrii / factorul de lucru (procesing complexity / work factor) este timpul necesar realizrii atacului; c) Complexitatea stocrii (storage complexity) este cantitatea de memorie necesar atacului.
Regul: Complexitatea unui atac = max {a, b, c}. Exemplu: complexitatea de 2128 indic 2128 operaii necesare spargerii cifrului(de obicei aceasta

reprezint complexitatea atacului prin fora brut, deci n cazul unui algoritm necondiionat sigur, 128 indicnd lungimea cheii n bii). Observaie: Multe atacuri se preteaz paralelismului, deci complexitatea scade fa de regula anterior enunat.

12

3. CRIPTOGRAFIE CLASIC (PRECOMPUTAIONAL, SIMETRIC)


Criptografia clasic este criptografia dinaintea calculatorului, de unde i denumirea de criptografie precomputaional. n criptografia clasic, algoritmii erau bazai pe caracter i constau dintr-o serie de transformri elementare (substituii, transpoziii) ale caracterelor textului n clar. Unii algoritmi aplicau aceste transformri n mod repetat, mbuntind n acest fel securitatea algoritmului. n criptografia modern bazat pe calculator (criptografie computaional), lucrurile s-au complicat, dar multe din ideile criptografiei clasice au rmas nemodificate. Criptografia clasic se ncadreaz n clasa criptografiei cu chei simetrice. Criptografia cu chei simetrice se refer la sistemele care folosesc aceiai cheie att la criptare ct i la decriptare. Modelul unui sistem cu chei simetrice este prezentat n figura 3.1.

C=E (M)

D (C)

Figura 3.1 Schema bloc a unui sistem de criptare cu chei simetrice k - cheie de criptare ; E - bloc de criptare ( encryption ) ; D - bloc de decriptare ( decryption ) ; M - mesaj n clar ; C - mesaj criptat .
Clasificarea metodelor simetrice n cadrul metodelor de criptografie simetric distingem 3 categorii diferite :

1. 2. 3.

Cifruri substituie; Cifruri transpoziie; Cifruri combinate.

3.1 CIFRURI DE SUBSTITUIE


Cifrul de substituie (substituion cipher ) este cifrul bloc la care fiecare caracter sau grup de caractere ale textului n clar (M) este substituit cu un alt caracter sau grup de caractere ale textului cifrat (C), descifrarea fcndu-se prin aplicarea substituiei inverse asupra textului cifrat. n criptografia clasic exist patru tipuri de cifruri de substituie:

13

3.1.1) Cifruri de substituie monoalfabetic (monoalphabetic ciphers) sunt cifruri n care

fiecare caracter al textului n clar (M) este nlocuit cu un caracter corespondent al textului cifrat (C).Vom aminti cteva dintre cifrurile de substituie cele mai cunoscute:
A. Cifrul Caesar

n cazul sistemului CAESAR substitutul unei litere se obine prin translarea s n fa natural: A 0 N B 1 O C 2 P D E 3 Q 4 R F G H 5 S 6 T 7 U I 8 V J K L Y M Z 9 10 W X 11 12

pai n alfabet. n sistemul CAESAR i n alte sisteme naturale se folosete codificarea numeric

13 14 15 16 17 18 19 20 21 22 23 24 25 Notnd literele de la 0 la 25, n CAESAR fiecare litera efectundu-se modulo 26. Numrul cheilor posibile n CAESAR este foarte mic i pe lng aceasta un alt mare dezavantaj, din punct de vedere al securitii, este acel c secvena substitutelor pstreaz ordinea alfabetic; doar poziia iniial se schimb.
B. Cifrul lui Polybius

devine + k , calculele

Este un cifru de substituie. Literele alfabetului latin sunt aezate ntr-un ptrat de dimensiune 5x5. Literele I i J sunt combinate pentru a forma un singur caracter, deoarece alegerea final (ntre I i J) poate fi uor decis din contextul mesajului. Rezult 25 de caractere aezate ntrun ptrat 5x5 cifrarea oricrui caracter fcndu-se alegnd perechea potrivit de numere (intersecia liniei i a coloanei) corespunztoare dispunerii caracterului n ptrat. 1 1 2 3 4 5 A F L Q V 2 B G M R W 3 C H N S X 4 D IJ O T Y 5 E K P U Z

Tabelul I.2 Ptratul lui Polybius Exemplu: Mesajul: AM CASTIGAT LUPTA, se transform dup cifrare n:

11233111344443221144 1354534411. Observaie: Codul poate fi schimbat prin rearanjarea literelor n ptratul 5x5.

14

n sistemele UNIX, programul de criptare ROT 13 este un cifru de substituie monoalfabetic; fiecare liter, n textul cifrat se rotete cu 13 caractere, de unde i denumirea de ROT 13: C = ROT 13 (M) iar decriptarea se face aplicnd de dou ori ROT 13, dat fiind c alfabetul latin conine N = 26 litere: M = ROT 13 (ROT 13(C)) acest cifru nu este n realitate un cifru de securitate; el se utilizeaz adesea n posturile de utilizator de reea pentru a ascunde texte potenial ofensive. Concluzie: Cifrurile de substituie monoalfabetic pot fi sparte cu uurin deoarece frecvenele literelor alfabetului nu se schimb n textul cifrat fa de textul n clar.
3.1.2. Cifruri de substituie omofonica (homophonic substitution ciphers) sunt cifrurile

de substituie n care un caracter al alfabetului mesajului n clar (alfabet primar) poate s aib mai multe reprezentri. Ideea utilizat n aceste cifruri este uniformizarea frecvenelor de apariie a caracterelor textului cifrat (alfabet secundar), pentru a ngreuna atacurile criptanalitice. Astfel, litera A cu cea mai mare frecven de apariie n alfabetul primar poate fi nlocuit cu F, * sau K. Concluzii:
3.1.3. Cifrul de substituie poligramic (polygram substitution ciphers) se obin

dei mai greu de spart dect cifrurile de substituie simple (monoalfabetice), ele nu mascheaz total proprietile statistice ale mesajului n clar. n cazul unui atac cu text n clar cunoscut, cifrul se sparge extrem de uor. atacul cu text cifrat este mai dificil, dar unui calculator i va lua doar cteva secunde pentru al sparge.

substituind blocuri de caractere ale alfabetului primar numite poligrame - cu alte blocuri de caractere, de exemplu: ABA RTQ SLL ABB Cifrurile bazate pe substituia poligramic realizeaz substituirea unor blocuri de caractere (poligrame) din textul clar, distrugnd astfel semnificaia, att de util n criptanaliz, a frecvenelor diferitelor caractere. Considerm un mesaj M=m1m2...mdmd+1... i un cifru care prelucreaz poligrame de lungime d. Criptograma rezultat este C=c1c2...cdcd+1...cd+d. Fiecare poligram mid+1...mid+d va fi prelucrat n poligrama cid+1...cid+d prin funcia de substituie fi astfel : Cid+j=fj (mid+1, ..., mid+d) . 15

n cazul cifrrii literelor singulare frecvena de apariie a acestora n textul cifrat este

aceeai cu frecvena de apariie a literelor corespondente din textul clar. Aceast lucru furnizeaz o cantitate de informaie suficient criptanalistului pentru spargerea sistemului. Pentru minimizarea informaiei furnizate de frecvena de apariie a literelor s-a procedat la cifrarea grupurilor de litere (n-grame). n cazul n care un grup de n litere este substituit printr-un alt grup de n litere, substituia se numete poligramic; cel mai simplu caz se obine pentru n=2, cnd diagrama m1m2 din textul clar se substitue cu diagrama c1c2 din textul cifrat. Un exemplu clasic pentru substituia diagramelor este cifrul lui Playfair. Metoda const n dispunerea literelor alfabetului latin de 25 de litere ntr-un ptrat de 5 linii i 5 coloane (i=j) de forma : V A G N T U B H O W L C I Q X P D K R Y E F M S Z

De regul, n prima linie a ptratului se scrie un cuvnt cheie i apoi se completeaz celelalte linii cu literele alfabetului, fr repetarea literelor din prima linie. Cifrarea se execut dup urmtoarele reguli : - dac m1, m2 sunt dispuse n vrfurile opuse ale unui dreptunghi, atunci c1, c2 sunt caracterele din celelalte vrfuri ale dreptunghiului, c1 fiind n aceeai linie cu m1. De exemplu GS devine MN. - dac m1 i m2 se gsesc ntr-o linie, atunci c1 i c2 se obin printr-o deplasare ciclic spre dreapta a literelor m1 i m2. De exemplu AD devine BF sau CF, DA. - dac m1 i m2 se afl n aceeai coloan atunci c1 i c2se obin prin deplasarea ciclic a lui m1, m2 de sus n jos. De exemplu UO devine BW, iar EZ devine FE. Descifrarea se execut dup reguli asemntoare cu cele de cifrare.
3.1.4. Cifruri de substituie polialfabetice sunt formate din mai multe cifruri de substituie

simple. Au fost inventate de Leon Battista, n 1568. Cifrurile bazate pe substituia polialfabetic constau din utilizarea unor substituii monoalfabetice diferite. Fie d alfabete de cifrare c1, c2, ..., cd, i d funcii fi care realizeaz substituia de forma: fi : ACi, 1 i d . Un mesaj clar M = m1m2...mdmd+1...m2d... va fi cifrat prin repetarea secvenelor de funcii f1, f2, ..., fd: Ek (M) = f1 (m1) ...fd (md) f (md+1).

16

Utilizarea unei secvene periodice de substitiii ale alfabetului mrete n mod semnificativ securitatea criptogramei prin nivelarea caracteristicilor statistice ale limbii. Aceeai liter din textul cifrat poate reprezenta mai multe litere din textul clar, cu diferite frecvene de apariie. n acest caz numrul cheilor posibile se mrete de la 26!, cte erau la substituia monoalfabetic, la (26!)n .
A. cifrul lui Vigenere,

In acest caz cheia k este o secven de litere de forma : k=k1k2...kd . Funciile fi de substituie se definesc astfel : fi (a) = (a+ki) mod n, unde n este lungimea alfabetului . Ca un exemplu considerm cheia de 8 litere ACADEMIE care va fi utilizat repetitiv pentru cifrarea mesajului SUBSTITUIE POLIALFABETIC. Folosind o coresponden biunivoc ntre literele alfabetului i elementele claselor de resturi modulo 26 ( A=0, B=1, ..., Z=25 ), substituia 8alfabetic conduce la urmtorul text: - text clar : SUBSTITUIE - cheia : POLIALFABETIC ;

ACADEMIEACADEMIEACADEMIEA;

S + A = 18 + 0 (mod 26) = 18 (mod 26) = 18 = S U + C = 20 + 2 (mod26) = 22 (mod 26) = 22 = W B + A = 1 + 0 (mod26) = 1 (mod26) = 1 = B ... C + E = 2 + 4 (mod 26) = 6 (mod26) = 6 = G A + A = 0 + 0 (mod26) = 0 (mod26) = 0 = A - text cifrat : SWBVXUBYTKESSXQELHAEIFQGA .
B. Sistemul Autoclave

O modificare suplimentar a sistemului Vigenere este sistemul Autoclave (cifrul Vigenere cu cheie n clar sau cheie de ncercare ). Caracterele textului n clar servesc drept cheie de criptare cu o anumit deplasare. Decriptarea se face n modul urmtor: din nceputul criptotextului, pe baza cuvntului cheie, se obine nceputul textului n clar, dup care se folosete drept cheie textul clar deja disponibil .
ntr-o alt variant a lui Autoclave (cifrul lui Vigenere cu autocheie sau cu cheie cifrat)

criptotextul deja creat folosete drept cheie adugndu-se n continuarea cuvntului cheie. 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 ncercare. Urmare a acestui fapt este efectul de fuziune a proprietilor statistice ale textului n clar asupra textului cifrat, ceea ce face ca analizele statistice s devin foarte grele pentru criptanalist. Schemele de cifrare Vignre nu sunt foarte sigure avnd n vedere standardele actuale ns contribuia important a lui Vignre const n faptul ca a descoperit ca pot fi generate secvene nerepetitive drept cheie, prin utilizarea a nsui mesajului sau a unor pri ale acestuia.

17

C. Cifrul Vernam

Cifrul Vigenere cu o perioad n, dei mult mai puternic dect un cifru bazat pe substituia monoalfabetic, poate fi spart dac criptanalistul dispune de cel puin 2n caractere din textul cifrat. O variant mai nou a acestui cifru peste un alfabet binar, este cifrul Vernam care se difereniaz prin cheia de cifrare, care este reprezentat de o secven de caractere aleatoare care nu se repet. Fie M=m1m2...mn un mesaj clar binar i K=k1k2...kn un ir binar care reprezint cheia. Criptograma C = Ek (M) = c1c2...cn se obine determinnd fiecare caracter ci astfel : Ci = (mi+ki) (mod n), i=1, 2, ... ,n . Utilizarea o singur dat a cheii ne d un exemplu de criptosistem care face ca mesajul s fie foarte rezistent la criptanaliz, practic imposibil de spart; textul clar este o secven finit de bii, s zicem cel mult 20. Cheia este i ea o secvena de 20 de bii. Ea este utilizat att pentru criptare, ct i pentru decriptare i este comunicat receptorului printr-un canal sigur. S lum cheia 11010100001100010010; un text clar, s zicem 010001101011, este criptat prin sumare bit cu bit cu biii cheii, pornind cu nceputul acesteia. 11010100001100010010 010001101011 100100101000 Deci criptotextul este 100100101000. Acesta nu d informaii criptanalistului, deoarece el nu tie nici ce bii vin din textul clar, nici care au fost schimbai de ctre cheie. Aici este esenial faptul c o cheie este folosit o singur dat, altfel, un text clar anterior mpreun cu criptotextul corespunztor ofer posibilitatea aflrii cheii sau cel puin prefixul ei. Dezavantajul evident al acestei tehnici este gestionarea dificil a cheilor. Cheia, cel puin la fel de lung ca i textul clar, trebuie comunicat printr-un canal sigur. Aceste cifruri au o larg utilizare n comunicaiile diplomatice i militare.
D.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 n ordinea iniial. Acest cifru poate fi utilizat astfel: primul caracter se cifreaz selectndu-l din linia 1, al doilea din linia a 2-a i aa mai departe.
Exemplu: 1 2 3 4 5 6 7

8 9 10 11 12 13 14 15 16 17 S I N V I N G E M ,

Mesajul: T R E B U I E

se cifreaz: UTHFZOL AJ SYHVBVUD.

18

3.2 CIFRURI DE TRANSPOZIIE


Spre deosebire de cifrurile cu substituie, care pstreaz ordinea literelor din textul surs dar le transform, cifrurile cu transpoziie ("transposition ciphers") reordoneaz literele, fr a le "deghiza". Un exemplu simplu este transpoziia pe coloane, n care textul surs va fi scris liter cu liter i apoi citit pe coloane, n ordinea dat de o anumit cheie. Ca i cheie se poate alege un cuvnt cu litere distincte, de o lungime egal cu numrul de coloane folosite n cifru. Ordinea alfabetic a literelor din cuvntul cheie va da ordinea n care se vor citi coloanele.
Exemplu:

Cifrul simplu cu transpunere n coloane: textul n clar se scrie orizontal ntr-o anumit form, ca la Polybius sau ceva asemntor, iar textul cifrat se citete pe coloane: N H F E E A E L S D P T

Atfel textul rezultat este: NHFEEAELSDPT O simpl transpoziie permite pstrarea proprietilor statistice ale textului n clar i n textul cifrat; o nou transpoziie a textului cifrat mrete securitatea cifrului. Spargerea unui cifru cu transpoziie ncepe cu verificarea dac acesta este ntr-adevr de acest tip prin calcularea frecvenelor literelor i compararea acestora cu statisticile cunoscute. Dac aceste valori coincid, se deduce c fiecare liter este "ea nsi", deci este vorba de un cifru cu transpoziie. Urmtorul pas este emiterea unei presupuneri n legtur cu numrul de coloane. Acesta se poate deduce pe baza unui cuvnt sau expresii ghicite ca fcnd parte din text. Considernd sintagma "s prezinte", cu grupurile de litere (luate pe coloane) "si", "n", "pt", "re", se poate deduce numrul de litere care le separ, deci numrul de coloane. Notm n continuare cu k acest numr de coloane. Pentru a descoperi modul de ordonare a coloanelor, dac k este mic, se pot considera toate posibilitile de grupare a cte dou coloane (n numr de k(k-1) ). Se verific dac ele formeaz mpreun un text corect numrnd frecvenele literelor i comparndu-le cu cele statistice. Perechea cu cea mai bun potrivire se consider corect poziionat. Apoi se ncearc, dup acelai principiu, determinarea coloanei succesoare perechii din coloanele rmase iar apoi - a coloanei predecesoare. n urma acestor operaii, exist anse mari ca textul s devin recognoscibil. Unele proceduri de criptare accept blocuri de lungime fix la intrare i genereaz tot un bloc de lungime fix. Aceste cifruri pot fi descrise complet prin lista care definete ordinea n care

19

caracterele vor fi trimise la ieire (irul poziiilor din textul de intrare pentru fiecare caracter din succesiunea generat).
3.3 MAINI ROTOR

Avnd n vedere faptul ca metodele de substituie i permutri repetate sunt destul de complicate s-a ncercat mecanizarea lor primele maini fiind puse la punct n jurul anului 1920 acestea fiind bazate pe pricipiul de rotor. O main rotor (rotor machine) are o tastatur i o serie de rotoare ce permit implementarea unei versiuni a cifrului Vignre. Fiecare rotor face o permutare arbitrar a alfabetului, are 26 de poziii i realizeaz o simpl substituie. Deoarece rotoarele se mic cu viteze de rotaie diferite, perioada unei maini cu n rotoare este 26 n .

Cel mai celebru cifru bazat pe o main rotor este Enigma, utilizat de germani n cel de-al doilea rzboi mondial. El a fost inventat de Arthur Scherbius i Arvid Gerhard Damm n Europa i a fost patentat n SUA. Germanii au mbuntit considerabil proiectul inventatorilor si, dar a fost spart de criptanalitii polonezi care au explicat atacul englezilor.

4. Criptografie computationala cu cheie secreta Cifrul DES: Standard de ncriptare a datelor (Data Encryption Standard) 4.1.Scurt istoric al dezvoltrii DES
Primele versiuni de DES au fost dezvoltate de IBM; n prezent, algoritmul este utilizat pe majoritatea platformelor UNIX, pentru criptarea parolelor. DES este autorizat i de NBS (National Bureau of Standards-Biroul Naional de Standarde) i de NSA (National Security Agency-Agenia Naional de Securitate). De fapt ncepnd cu 1977, DES a reprezentat metoda general acceptat pentru protejarea datelor confideniale. Figura urmtoare prezint un scurt istoric al dezvoltrii DES:

Fig.4.1. Scurt istoric al dezvoltrii DES DES a fost proiectat n principal pentru protejarea anumitor informaii secrete ce puteau exista n birourile federale.

20

Datorit inexistenei unei tehnologii criptografice generale n afara domeniului securitii naionale i deoarece produse de securitate, cum ar fi cele de criptare, erau necesare n aplicaiile secrete folosite pe calculatoarele federale i guvernamentale, NBS (National Bureau of Standards) a iniiat n 1973 un proiect pentru asigurarea securitii sistemelor de calcul, proiect care cuprindea i dezvoltarea unui standard pentru criptarea datelor din calculatoare.

4.2. Prezentarea algoritmului DES


DES ofer un algoritm implementabil n dispozitivele electronice pentru criptarea decriptarea datelor. Ideea de "standardizare" n criptografie este revoluionar. naintea publicrii lui DES, nu se cunotea o alt publicaie coninnd descrierea unui algoritm criptografic n uz. n general, cei mai muli dintre proiectanii de criptosisteme au ncercat s ascund detaliile algoritmilor folosii. DES constituie o excepie, algoritmul este publicat!. Aceasta poate constitui o veritabil provocare pentru oricine ncearc spargerea acestuia. Caracteristici: lungimea unui bloc este de 64 de bii; cheia este pe 64 de bii dintre care 8 sunt bii de paritate; flexibilitatea implementrii i utilizrii n diferite aplicaii; fiecare bloc cifrat este independent de celelalte; nu este necesar sincronizarea ntre operaiile de criptare/decriptare ale unui bloc; pentru creterea securitii se poate aplica algoritmul T-DES (triplu DES) care const n iterarea de trei ori a algoritmului DES.

Fig.4.2. Prezentarea general a algoritmului DES

21

n figura 4.2. se d o schem general pentru algoritmul DES. Exist dou intrri n algoritm i anume un bloc de text n clar de 64 de bii i o cheie de 56 de bii. Din figur se poate observa c n partea dreapt a desenului avem generarea cheilor iar n partea stng se prelucreaz textul. Intrarea n bloc se va supune nti unei permutri iniiale dup care au loc 16 iteraii succesive, o interschimbare pe 32 de bii i n ncheiere se va aplica inversa permutrii iniiale. n cazul algoritmului DES, i cheia de 56 de bii va fi supus unei permutri de tipul 1 dup care va fi mprit n dou blocuri de 28 de bii iniial. Dup aceasta, asupra ambelor pri astfel obinute se va efectua o rotaie circular spre stnga cu un numr de bii corespunztor numrului iteraiei. Prezentarea unei singure iteraii a algoritmului DES se d n figura 4.3.

Fig.4.3 Descrierea unei singure iteraii a algoritmului DES Din figur se observ faptul c algoritmul mparte blocul de 64 de bii n dou blocuri de 32 de bii pe care le denumete stng i drept i cu care va lucra n continuare separat. Chiar din schem se poate observa c blocul stng 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 nti unei permutaii de expandare care i va mri dimensiunea de la 32 la 48 de bii pentru ca apoi s poat fi supus unei operaii de SAU EXCLUSIV cheia intermediar corespunztoare iteraiei. Rezultatul obinut n urma acestor calcule va fi introdus n cutiile S de unde se va obine un bloc de 32 de bii care la rndul su va fi supus unei permutri P i apoi unei operaii de SAU EXCLUSIV cu blocul stng iniial obinndu-se blocul drept final al iteraiei. Toate operaiile de mai sus se pot rezuma n formula Di = Si-1 f(Di-1,Si) unde modulul de calculare al funciei f se poate observa n figura 4.4:

22

Fig.4.4. Operaiile care se efectueaz pentru calcularea funciei f O prezentare mai amnunit a algoritmul DES este prezentat n continuare. Operaiile de criptare i decriptare, potrivit algoritmului DES, se desfoar dup cum urmeaz. Mai nti utilizatorul alege o cheie o succesiune aleatoare de 56 bii folosit att la criptare, ct i la decriptare, pe care, bineneles, o pstreaz secret. Opt bii, n poziiile 8,16,........, 64, sunt adugai la cheie pentru a asigura faptul c fiecare octet este de paritate impar. Aceasta folosete la detectarea erorilor n timpul stocrii i distribuirii cheilor. Astfel, biii adugai sunt determinai de cei 56 bii iniiali, acum n poziiile 1, 2, ..., 7, 9, ..., 15, ...,57, ..., 63 ale cheii. Apoi, cei 56 de bii sunt permutai n modul urmtor:
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 4.1. - Permutarea de tipul 1 obinndu-se dou blocuri C0 i D0 a cte 28 de bii fiecare. Prin urmare, primii trei bii ai lui C0 (respectiv, ultimii trei ai lui D0) sunt biii 57, 49, 41 (respectiv, 20, 12, 4) ai cheii. Avnd construite blocurile Cn-1 i Dn-1, n=1,..., 16, putem construi blocurile Cn i Dn, printr-o deplasare la stnga cu una sau dou poziii, din blocurilor Cn-1 i Dn-1, n conformitate cu urmtorul tabel:

23

Iteraia Nr. bii

1 1

2 1

3 2

4 2

5 2

6 2

7 2

8 2

9 1

10 2

11 2

12 2

13 2

14 2

15 2

16 1

Tabelul 4.2. - Programul deplasrilor spre stnga pe pai O deplasare la stnga cu o poziie nseamn c secvena 1, 2, ..., 28, devine 2, 3, 28,1. Deci, potrivit tabelului, C6 i D6 sunt obinute din C5 i, respectiv, din D5, printr-o deplasare la stnga cu dou poziii. n acest moment se pot defini 16 selecii Kn, 1 n 16 de bii din cheie. Fiecare Kn const din 48 de bii, obinuti din biii lui CnDn, n urmtoarea ordine:
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 4.3. - Permutarea de tipul 2 Primii (respectiv, ultimii) trei biii n Kn sunt biii 14, 17, 11 (respectiv, 36, 29, 32) din CnDn au fost omii n Kn. Calculele de pn acum sunt preliminare: plecnd de la cheie, am produs 16 secvene Kn, constnd fiecare din cte 48 de bii. Vom arta acum cum se cripteaz un bloc w de 64 de bii din textul clar. Mai nti blocul w este supus urmtoarei permutri iniiale:
Bit ieire Bit intrare Bit ieire Bit intrare Bit ieire Bit intrare Bit ieire Bit intrare 1 58 17 62 33 57 49 61 2 50 18 54 34 49 50 53 3 42 19 46 35 41 51 45 4 34 20 38 36 33 52 37 5 26 21 30 37 25 53 29 6 18 22 22 38 17 54 21 7 10 23 14 39 9 55 13 8 2 24 6 40 1 56 5 9 60 25 64 41 59 57 63 10 52 26 56 42 51 58 55 11 44 27 48 43 43 59 47 12 36 28 40 44 35 60 39 13 28 29 32 45 27 61 31 14 20 30 24 46 19 62 23 15 12 31 16 47 11 63 15 16 4 32 8 48 3 64 7

Tabelul 4.4. - Permutarea iniial


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

Tabelul 4.5. - Inversa permutrii iniiale

24

rezultnd un nou cuvnt w, primii 3 bii ai acestuia fiind 58, 50, 42 ai lui w. Scriem acum w=L0R0, unde L0 i R0 sunt cuvinte de cte 32 de bii. Avnd definite Ln-1 i Rn-1, 1 n 16, definim Ln i Rn prin: Ln = Rn-1 Rn= Ln-1 f(Rn-1, Kn) unde semnific adunarea bit cu bit modulo 2, iar f va fi definit mai jos. Criptarea c a blocului original w se va obine prin aplicarea inversei permutri iniiale, blocului R16L16 de cte 64 de bii. nc n-am definit funcia f, dar, nainte de a o face, s vedem cum se procedeaz pentru decriptare. Scriind ecuaiile de mai sus sub forma: Rn-1= Ln Ln-1= Rn f (Ln, Kn) putem afirma c am indicat o cale de deducere recursiv a lui L0 i R0 din L16 R16, dup care decriptarea este clar. Funcia f realizeaz un bloc de 32 de bii din dou blocuri, unul de 32 bii, Rn-1 sau Ln, i altul de 48 bii, Kn, n felul urmtor:
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 4.6. - Permutarea cu expansiune Aadar, primul bit din blocul iniial de 32 bii apare de dou ori n poziiile 2 i 48 n noul bloc de 48 bii. Dup aceast expandare, cele dou blocuri a 48 bii sunt sumate bit cu bit modulo 2. Blocul rezultat B (48 bii) este mprit n blocuri B1, B2,., B8 a cte 6 bii fiecare. Fiecare din aceste 8 blocuri Bi este apoi transformat ntr-un nou bloc de 4 bii, Bi , utiliznd tabele corespunztoare SI afiate mai jos.
Cutie S1 Rnd 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 0 14 0 4 15 15 3 0 13 10 13 13 1 7 13 10 3 1 4 15 1 12 1 13 14 8 0 7 6 10 13 8 6 15 2 13 7 14 8 8 4 7 10 9 0 4 13 14 11 9 0 3 1 4 8 2 14 7 11 1 14 9 9 0 3 5 0 6 4 2 14 13 4 6 15 10 3 6 3 8 6 0 6 12 10 5 15 2 6 9 11 2 4 15 3 4 15 9 6 15 11 1 6 11 13 2 1 3 8 13 4 15 6 3 8 9 0 7 13 7 8 1 11 7 4 14 1 2 5 10 0 7 10 3 13 8 8 3 10 15 5 9 12 5 11 1 2 11 4 1 4 15 9 9 10 6 12 11 7 0 8 6 13 8 1 15 2 7 1 4 10 6 12 9 3 2 1 12 7 12 5 2 14 8 2 3 5 11 12 11 7 14 13 10 6 12 7 14 12 3 5 12 14 11 12 5 9 3 10 12 6 9 0 11 12 5 11 11 1 5 12 13 9 5 10 0 0 9 3 5 4 11 10 5 12 10 2 7 14 0 3 5 6 5 11 2 14 2 15 14 2 4 14 8 2 15 7 8 0 13 10 5 15 9 8 1 7 12 15 9 4 14

S2

S3

S4

25

S5

S6

S7

S8

0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3

2 14 4 11 12 10 9 4 4 13 1 6 13 1 7 2

12 11 2 8 1 15 14 3 11 0 4 11 2 15 11 1

4 2 1 12 10 4 15 2 2 11 11 13 8 13 4 14

1 12 11 7 15 2 5 12 14 7 13 8 4 8 1 7

7 4 10 1 9 7 2 9 15 4 12 1 6 10 9 4

10 7 13 14 2 12 8 5 0 9 3 4 15 3 12 10

11 13 7 2 6 9 12 15 8 1 7 10 11 7 14 8

6 1 8 13 8 5 3 10 13 10 14 7 1 4 2 13

8 5 15 6 0 6 7 11 3 14 10 9 10 12 0 15

5 0 9 15 13 1 0 14 12 3 15 5 9 5 6 12

3 15 12 0 3 13 4 1 9 5 6 0 3 6 10 9

15 10 5 9 4 14 10 7 7 12 8 15 14 11 13 0

13 3 6 10 14 0 1 6 5 2 0 14 5 0 15 3

0 9 3 4 7 11 13 0 10 15 5 2 0 14 3 5

14 8 0 5 5 3 11 8 6 8 9 3 12 9 5 6

9 6 14 3 11 8 6 13 1 6 2 12 7 2 8 11

Tabelul 4.7. Cutiile S din algoritmul DES Transformarea se face dup cum urmeaz. S lum, de exemplu, blocul B6=110010. Primul bit mpreun cu ultimul constituie un numr x, 0 x 3. Similar, restul de 4 bii constituie un alt numr y, 0 y 15. n exemplul nostru, x=2 i y=9. Dac privim componentele perechii (x,y) ca indicii de linii i coloane ai lui S6, acestea vor determina n mod unic un numr, n cazul nostru 15. Reprezentnd binar pe 15, obinem B7=1111. Valoarea lui f se obine acum prin aplicarea permutrii:
Bit ieire Bit intrare Bit ieire Bit intrare 1 16 17 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 4.8. - Permutarea P blocului de 32 bii rezultat B1, B2, B3, B4, B5, B6, B7, B8. Cu aceasta definiia funciei f, ca i descrierea algoritmului de criptare i decriptare DES sunt ncheiate. Cu un hard adecvat algoritmul DES este foarte rapid. Pe de alt parte, criptanaliza lui conduce la numeroase sisteme de ecuaii neliniare. Construirea unei maini care s analizeze toate cele 256 chei posibile, cu o vitez de 1012 chei pe secund, ar necesita un echipament special, cu 106 chip-uri, care s cerceteze diferite poriuni din spaiul cheii cu o vitez de o cheie pe micro-secund. Estimrile privind costul unei asemenea maini variaz considerabil. Sistemul DES posed i o alt caracteristic foarte apreciat din punctul de vedere al siguranei lui: o mic schimbare n textul clar sau n cheie provoac, o mare schimbare n criptotext.

26

5. Criptografia cu chei publice (asimetric)


ntr-un sistem cu chei simetrice, pentru un criptanalist care cunoate metoda de criptare nu exist nici un fel de dificulti n procesul de decriptare. Cheile de criptare i decriptare coincid, chiar i n cele mai sofisticate sisteme, cum ar fi DES-ul. Exist criptosisteme n care metoda de criptare poate fi fcut public. Aceasta nseamn c i criptanalistul cunoate metoda de criptare i, totui, el nu este n msur s decripteze criptotextul. n aceasta const ceea ce este cunoscut sub numele de criptografie cu chei publice: metoda de criptare poate fi fcut public. Ideea a fost realizat de ctre Diffie i Hellman, i dei revoluionar, ea este ct se poate de simpl. O astfel de idee simpl a fost luat n considerare trziu - la mijlocul anilor 70 deoarece teoria complexitii calculului s-a dezvoltat abia n ultima perioad de timp. Teoria d informaii privind complexitatea diferitelor calcule, de pild privind timpul de calcul necesar atunci cnd se folosesc cele mai bune calculatoare. O astfel de informaie este crucial n criptografie. Dei metoda de criptare este fcut public, criptarea se poate face n siguran. Dac totui unui criptanalist i vor fi necesari sute de ani pentru a deduce metoda de decriptare prin dezvluirea metodei de criptare, n aceast situaie nimic nu va fi compromis. Criptarea se poate face ntr-o singur direcie (sens unic). Dei este uor de mers n aceast direcie, totui este imposibil de urmat direcia opus: decriptarea. Pentru exemplificare s considerm cartea de telefon dintr-un mare ora. Este foarte uor s stabilim numrul de telefon al unei persoane precizate. Pe de alt parte, este foarte greu (chiar imposibil) de stabilit persoana care are un numr de telefon specificat. Acest exemplu ofer i o idee pentru un criptosistem cu chei publice. Criptarea este de tip context-free: liter cu liter. Pentru fiecare liter a textului clar este ales, din cartea de telefon, n mod aleator, un nume care ncepe cu acea liter. Numrul de telefon corespunztor constituie criptarea apariiei respective a literei n cauz. Spre exemplificare s criptm textul ACUMSTAU. Tabelul 513. - Criptarea unui text

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

Fr cunoaterea acestei trape, adic fr a poseda o copie a crii de telefon, criptanalistul va avea nevoie de un timp foarte mare pentru decriptare. Aceasta n ciuda faptului c metoda de criptare a fost fcut public i astfel criptanalistul cunoate, n principiu, cum trebuie s intercepteze secvena numeric interceptat. Cutarea exhaustiv este n mod cert mult prea lung n timp. Criptanalistul poate, de asemenea, s apeleze numerele din criptotext i s cear numele corespunztoare acestora. Succesul metodei este cel puin discutabil n foarte multe cazuri, criptanalistul poate primi un rspuns curios sau nici un rspuns. De fapt metoda devine de neaplicat dac se folosete o carte de telefon mai veche. Principiul acestui sistem este ilustrat n figura 5.1:

Fig. 3.1 Schema bloc a unui sistem de criptare cu cheie public Fiecare utilizator are o transformare de cifrare public Ek1 care poate fi memorat ntr-un fiier public i o transformare de cifrare critic Dk2. Proprietile unui sistem de criptare cu cheie public sunt: 1. pentru orice pereche de chei (K1,K2) algoritmul de descifrare cu cheia K2 : Dk2 este inversul algoritmului de descifrare cu cheia K1 : Ek1; 2. pentru orice K1, K2 i orice M, algoritmii de calcul pentru Ek1 i Dk2 sunt simpli i rapizi 3. pentru orice K1,K2 algoritmul de calcul al lui Dk2 nu poate fi obinut ntr-un interval de timp rezonabil plecnd de la Ek1 4. orice pereche K1,K2 trebuie s fie calculabil uor plecnd de la o cheie unic i secret. n sistemele cu cheie public, protecia i autentificarea sunt realizate prin transformri distincte.

Fig. 5.2 Protecia criptosistemului cu chei publice Presupunem c utilizatorul A dorete s transmit un mesaj M unui utilizator B. n acest caz, A, cunoscnd cheia public a lui B (EB), transmite criptograma C=EB(M), asigurnd astfel funcia de protecie (Fig. 5.2). La recepie, B descifreaz criptograma C utiliznd transformarea DB: DB(C)=DB(EB(M))=M. 28

Pentru autentificare se aplic lui M transformarea secret DA. Ctre B se va transmite: C=DA(M). La recepie, B va aplica transformarea public EA corespunztoare lui A: EA(C)=EA(DA(M)=M.

Fig. 3.3 Autentificarea n criptosisteme cu chei publice Autentificarea este realizat deoarece ctre B nu pot fi transmise mesaje false C=DA(M), deoarece numai A cunoate DA (cheia secret). n acest caz nu se realizeaz ns i protecia, pentru c M poate fi obinut de orice apelant EA a lui C, EA fiind public. Pentru a realiza simultan protecia i autentificarea (Fig. 5.4), spaiul M trebuie s fie echivalent spaiului C, astfel nct orice pereche (EA,DA), (EB,DB) s fie mutual inverse: EA(DA(M))=DA(EA(M))=M EB(DB(M))=DB(EB(M))=M

Fig. 3.4 Protecie i autentificare n criptosistemele cu chei publice Utilizatorul A va aplica mai nti transformarea secret DA asupra mesajului M, dup care va transmite lui B criptograma : C=EB(DA(M)). Receptorul B obine mesajul n clar aplicnd criptogramei propria-i funcie de descifrare DB i apoi transformare public a lui A, EA: EA(DB(C)=EA(DB(EB(DA(M))))=EA(DA(M))=M.
Semntura digital n criptosistemele cu chei publice

Fie mesajul semnat de A, transmis ctre receptorul B. Semntura lui A trebuie s aib urmtoarele proprieti:

B trebuie s fie capabil s valideze semntura lui A; s fie imposibil pentru oricine, inclusiv B, s falsifice semntura lui A; n cazul n care A nu recunoate semntura unui mesaj M, s existe un judector care s rezolve disputa dintre A i B.

29

Implementarea semnturii digitale este extrem de simpl n cazul sistemelor cu chei publice. n acest caz, DA poate servi ca semntura digital pentru A. Receptorul B al mesajului M, semnat de A, este sigur att de autenticitatea emitorului ct i a datelor. Protocolul semnturii digitale se desfoar astfel:

A semneaz pe M : S=DA(M); A trimite lui B criptograma : C=EB(S); B valideaz semntura lui A, verificnd dac EA(S)=M; DB(C)=DB(EB(S))=S; EA(S)=EA(DA(M))=M; Un judector rezolv eventualele dispute dintre A i B, controlnd dac EA(S) conduce la

M, n acelai mod ca i B.

5.2 Sisteme de cifrare cu chei publice exponeniale


Sistemele criptografice cu chei publice sunt sisteme de tip asimetric.Ideea care st la baza acestui concept const n faptul c, cheia de cifrare este fcut public de fiecare utilizator i poate fi folosit de ctre toi ceilali utilizatori pentru cifrarea mesajelor ce i sunt adresate. n schimb, procedura (cheia) de descifrare este inut secret. n Fig. 3.5 se prezint sistemul cu chei publice, n paralel cu un sistem clasic.

Fig. 5.5 Criptosistem cu chei publice a) i convenional b) Dac notm cu {m} mulimea mesajelor, {c} mulimea receptoarelor, E-procedura de cifrare i D-procedura de descifrare, un criptosistem cu chei publice trebuie s satisfac urmtoarele: (1) dac C=E(M), atunci M=D(C) sau D(E(M))=M, M {M}; (2) E i D sunt uor i rapid aplicabile (3) dezvluirea public a lui E nu trebuie s compromit pe D, ceea ce nseamn c obinerea lui D din E este matematic imposibil sau presupune un consum enorm de resurse. 30

Metoda propus permite comunicaii sigure ntre utilizatorii care nu au stabilit contacte prealabile. De exemplu, dac utilizatorul A dorete s transmit un mesaj confidenial utilizatorului B, A va cuta n fiierul public EB i se va transmite la B: C=EB(M). Conform proprietii a treia, B este singurul utilizator care tie s descifreze criptograma C aplicnd cheia DB inut secret. n plus, pentru ridicarea gradului de securitate al transmisiei s-a propus ca E i D s ndeplineasc i urmtoarea proprietate adiional: (4) dac S=D(M), atunci M=E(S) sau E(D(M))=M pentru M {M}. Varianta S este numit semntur digital i reprezint o metod de autentificare reciproc. n timp ce B poate fi sigur c mesajul recepionat a venit de la adevratul A, A poate fi sigur c nimeni nu va putea s-i atribuie un mesaj fals. Utilizatorul A poate semna mesajul ctre B astfel: S=DA(M), apoi, trimind criptograma: C=EB(S). n aceste condiii numai B poate recunoate pe S din C calculnd: DB(C)=DB(EB(S))=S. Apoi mesajul se poate obine calculnd : EA(S)=EA(DA(M))=M. Diffie i Hellman sugereaz o metod de implementare practic a conceptului propus. Se indic utilizarea unor funcii greu inversabile. O funcie este greu inversabil dac este inversabil i uor de calculat, dar pentru aproape toate valorile y din codomeniu este imposibil computaional s se calculeze x=f-1(y). Cu alte cuvinte este imposibil s se calculeze f-1 dac se dispune de o descriere complet a lui f. n concluzie, o funcie este greu inversabil dac:

este uor s se calculeze y din x, y=f(x); exist inversa funciei; este computaional imposibil determinarea inversei funciei. O funcie greu inversabil se spune c este cu trap atunci cnd f-1 este uor de calculat

numai dac se dispune de o informaie numit trap; necunoaterea acestei informaii face ca funcia s fie greu inversabil. O astfel de pereche de funcii (f, f-1) poate constitui perechea (E, D) a unui criptosistem cu chei publice. n general pentru procedurile E i D se indic scheme bazate pe operaii modulo n cu elemente din inelul claselor de resturi modulo n. Securitatea algoritmilor implementai prin metoda cifrrii asimetrice au la baz dificultatea calculului logaritmului modulo numr prim. Fie q un numr prim i un ntreg X, X [1, q-1]. Se pot calcula: Y=ax(mod q), unde a este un element primitiv al cmpului Galois GF(q). Dup cum se tie, clasele de resturi modulo q formeaz un inel; dac q este un numr prim acesta formeaz un cmp Galois GF(q). ntr-un cmp Galois GF(q) exist (q-1) numere care se

31

numesc elemente primitive ale cmpului. Dac a,a2,...,a(q) sunt puterile lui a, acestea au ca resturi modulo q pe 1,2,...,(q), unde (q) este indicatorul lui Euler, (q)=q-1. Fiecare utilizator A alege n mod aleator un numr XA, XA={1,2,...,q-1} i se calculeaz YA=aXA(mod q). Numrul XA este inut secret n timp ce YA se face public. Dac utilizatorii A i B doresc s comunice, ei utilizeaz urmtoarea cheie de comunicaie:
XA XAXB (mod q). KAB=Y XB A =Y B =Y B

n timp ce utilizatorii A i B pot calcula cheia KAB pornind de la x propriu(secret) i y public al partenerului, un criptanalist trebuie s calculeze KAB pornind de la YA i YB, singurele fcute publice; se procedeaz astfel: KAB=YAlogYB(mod q). Acest lucru face ca sistemul s fie deosebit de greu de spart datorit imposibilitii calculului logaritmului modulo q.
5.2.1. Cifrul Rivest-Shamir Adleman (RSA)

Cel mai larg utilizat i verificat criptosistem cu chei publice a fost cel introdus de Rivest, Shamir i Adleman, care este acum cunoscut ca RSA. Acest cifru reprezint standardul n domeniul semnturilor digitale i al confidenialitii cu chei publice. Sub diferite forme de implementare, prin programe sau dispozitive hardware speciale, RSA este astzi recunoscut ca cea mai sigur metod de cifrare i autentificare disponibil comercial. Acest cifru se bazeaz pe o idee uimitor de simpl din teoria numerelor i totui a rezistat la toate atacurile criptanalitilor de pn acum.Ideea se bazeaz pe faptul c, dei este uor s nmuleti dou numere prime mari, este ns extrem de greu s se factorizeze produsul lor.Astfel, produsul poate fi fcut cunoscut i utilizat ca o cheie de criptare.Numerele prime nsele nu pot fi reconstituite din produsul lor.Pe de alt parte, numerele prime sunt necesare pentru decriptare. n continuare voi prezenta detalii despre sistemul RSA.Fie p i q dou numere prime mari distincte i aleatoare(avnd aproximativ 100 cifre zecimale fiecare).Se noteaz : n = pq i (n) = (p-1)(q-1) unde este funcia Euler.Se alege un numr aleator mare D>1 astfel nct (D,(n)) = 1 i se calculeaz numrul E,1<E<(n) care s satisfac congruena: ED = 1(mod(n)). Numrul n este modulul, E este exponentul de criptare i D exponentul de decriptare.Numerele n i E formeaz cheia public de criptare, iar p, q, (n) i D formeaz trapa secret.Evident c informaia despre trapa secret nu const n patru parametri independeni.De exemplu, cunoaterea lui p conduce imediat la aflarea i a celorlali trei parametri.

32

Metoda de criptare implic calcul exponenial ntr-un cmp finit(modulo n). Mesajul cifrat se obine din mesajul n clar printr-o transformare(codare) bloc. Fie unul din aceste blocuri din mesaj M, bloc ce are proprietatea M (0, n-1); proprietate care se obine prin modul de mprire a mesajului n blocuri. Blocul cifrat, C, corespunztor blocului n clar, se obine calculnd exponeniala: C=ME(mod n), E i n reprezentnd astfel cheia secret de decriptare. Decriptarea se face prin operaia : M=CD(mod n), unde D este cheia secret de decriptare. Cele dou chei E i D trebuie s satisfac relaia: M=CD(mod n)=MED(mod n), pentru ca algoritmul s poat fi ntr-adevr folosit. Pentru aceasta plecm 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 un numr prim n, pentru orice bloc n (0,1) avem proprietatea de la care pornim M(n)(mod n)=1, Dac E i 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= M(n)M(n)M(n)...M(mod n). Deci ED(mod (n))=1 MED=M(mod n). Astfel am asigurat o transformare reversibil de criptare pe baza unei exponeniale ntr-un cmp finit. Mai rmne s asigurm securitatea cheii de criptare, iar n cazul de mai sus este uor de determinat avnd la dispoziie E i n, tiind c ED(mod (n))=1 i (n)=n-1. Securitatea se bazeaz pe ideea 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 nct indicatorul lui Euler, (n)=(p-1)(q-1), devine mult mai greu de determinat avnd la dispoziie n. Folosind aceast 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;

Un criptanalist care are la dispoziie perechea (E, n) va trebui s determine D innd cont c ED(mod (n))=1. Pentru aceasta trebuie determinat (n)=(p-1)(q-1), deci implicit p i q, problem care se reduce la a factoriza numrul n, problem practic imposibil pentru un numr n mare.
Exemplu

Vom utiliza un cifru cu p=47 i q=79 n=pq=4779=3713. Alegnd D=47, E va fi 37 pentru a satisface relaia: ED mod((p-1)(q-1))=1, E=[(p-1)(q-1)+1]/D Astfel, pentru a coda mesajul A sosit timpul vom coda mai nti fiecare liter a alfabetului. De exemplu: A=00, B=01,...,Y=25, blanc=26. Mesajul va deveni: M=0018 1418 0819 1908 1215 2011. n continuare vom coda fiecare numr de 4:

33

0018E mod(n)= 001837 mod (3713)=3091 1418E mod(n)= 141837 mod (3711)=0943 0819E mod(n)= 081937 mod (3713)=3366 1908E mod(n)= 190837 mod (3713)=2545 1215E mod(n)= 121537 mod (3713)=0107 2011E mod(n)= 201137 mod (3713)=2965 Astfel mesajul cifrat devine: 3091 0943 3366 2545 0107 2965. La decriptare se vor calcula pe rnd: 3091E mod(n)= 309137 mod(3713)=0018 0943E mod(n)= 081937 mod(3713)=1418, , obinnd mesajul iniial. O problem care apare n 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 securizare mare. Se poate spune ca lucrnd cu operanzi pe 512 bii sistemul este deocamdat imposibil de spart.

5.2.2. Cifrul EL GAMAL (EG)

El Gamal propune n o nou metod de semntur bazat pe schema de distribuie a cheilor a lui Diffie i Hellman. Schema presupune c A i B doreau stabilirea unei chei secrete kAB, A folosind informaia secret xA iar B pe xB. De asemenea exist un ntreg prim mare p i un element a primitiv modulo p. A va calcula yA=axA mod p i va emite la B pe yA. Similar B va emite la A: yB=axB mod p. Ca urmare fiecare poate acum calcula cheia secret comun: kAB=(axA)xB mod p=(yA)xB mod p=(axB)xA mod p=(yB)xA mod p. Pentru ca A s transmit un mesaj m cifrat la B, 0mp-1, A va putea alege un k [0, p-1] care va servi drept cheie secret xA. El va calcula apoi cheia: kAB=yBk mod p, unde yB a fost obinut direct de la B sau dintr-un fiier cu chei publice. A va pute emite la B perechea (c1, c2), unde: c1=ak mod p, i c2=kAB m mod p. Descifrarea se face i ea n dou etape. Mai nti se obine kAB: kAB=(ak)xB=(c1)xB mod p. Apoi se va obine mesajul clar prin mprirea lui c2 la kAB. El Gamal propune pe baza acestei scheme o nou metod de semntur. Fie m un document semnat, 0mp-1. Fiierul public va conine cheia y=ax mod p pentru fiecare utilizator. Pentru a semna un document, A va folosi cheia

34

sa secret xA ntr-o astfel de manier nct semntura s poate fi verificat de orice alt utilizator pe baza cheii publice yA.
1) Procedura de semnare

a) Se alege aleator un ntreg k, k [0, p-1], astfel ca c.m.m.d.c.(k, p-1) = 1; b) Se calculeaz: r=ak mod p. Semntura lui m este perechea (r,s), 0r, sp-1, care satisface condiia: m=yrrs (mod p) (*); c) acum condiia (*) poate fi scris: am=axraks mod p, prin rezolvarea ecuaiei m=xr+ks mod p, care are soluie dac se respect procedura a).
2) Verificarea semnturii

Fiind dai m,r,s, este uor s se verifice autenticitatea semnturii calculnd am (mod p), yrrs (mod p) i verificnd apoi dac sunt egale. Este indicat ca valoarea lui k, aleas aleator, s fie folosit o singur dat. Se poate folosi n acest scop un generator de k bazat pe un model DES (generator cu contor). Generalizare a schemei El Gamal: - cheia public: EA=a DA (mod n), unde a = este o constant a sistemului cunoscut de ctre toi parametrii; n = este un numr prim; - cheia secret: DA, un numr natural. (1) Semnarea unui mesaj M se face dup urmtorul algoritm:
generez aleator ki n [0, n-1] astfel nct pentru i=1,p-1 execut

c.m.m.d.c. (ki, n-1)=1


calculez ai=aki (mod n) din ecuaia:

M=DAa1+k1a2+...+kp-1ap (mod n-1)


sfrit

Ca urmare semntura lui M realizat cu nivelul de securitate p este reprezentat de: S=(a1,a2,...,ap). (2) i Valoarea 2 = eAa1a1a2...ap-1ap mod n i comparndu-le dac sunt egale. Aceast schem introduce un factor de complexitate suplimentar prin nivelul p de securitate, ceea ce sporete rezistena schemei la atac criptanalitic. Criptanalistul este confruntat cu necesitatea inversrii tuturor funciilor exponeniale ai=aki (mod n) n cmp finit, ceea ce reprezint o problem grea computaional dac n este mare (128,256,512 bii). Verificarea semnturii se face calculnd separat: Valoarea 1 = aM mod n

35

5.2.3. Sisteme de cifrare cu chei publice de tip rucsac

Metoda de cifrare cu cheie public MH este bazat pe cunoscuta problem a rucsacului, care const n a determina ntr-o mulime de numere ntregi, o submulime de o sum dat. Merkle i Hellman propun o metod a crei securitate depinde de dificultatea rezolvrii urmtoarei probleme: fiind dat un ntreg pozitiv C i un vector A=(a1,a2,...,an) de ntregi pozitivi, s se gseasc o submulime a lui A a crei sum s fie C. Cu alte cuvinte este necesar s se determine un vector binar M=(m1,...,mn), astfel c C=AM sau: C = ai m i . Intuitiv problema este urmtoarea: cunoscnd greutatea unui rucsac nchis i greutile mai multor obiecte care s-ar putea afla n interiorul su, s se determine setul de obiecte aflate n rucsac, fr a se face deschiderea lui. Cel mai bun algoritm cunoscut pentru rezolvarea ei n cazul n care dimensiunea rucsacului este n cere (2n/2) timp i o memorie de (2n/2). Exist totui o clas special de probleme de un asemenea tip, numit rucsac simplu, ce pot fi rezolvate ntr-un timp ce depinde liniar de n. ntr-un rucsac simplu elementele ai (i=1,...,n) sunt n relaie de dominan, adic ai > a j , j=1,...,i. Relaia de dominan simplific soluia rucsacului, ea putndu-se face dup urmtoarea procedur: Procedura RUCSAC-SIMPLU (C,A,M)
Pentru j=N,1 execut Dac caj atunci mj=1 altfel atribuie c=c-ajmj dac c=0 atunci Soluia este M altfel sfrit.

mj=0

Nu exist soluie

n [MERK 78] se prezint 2 variante ale metodei, ambele utilizabile doar n secretizare, nu i n autentificare.
1) Algoritmul MH cu trap aditiv

n proiectarea unui astfel de criptosistem trebuie convertit mesajul simplu ntr-un mesaj cu trap (trapdoor knapsack), care este greu de rezolvat. Mai nti se selecteaz un vector rucsac simplu A=(a1,a2,...,an). Acesta permite o soluie simpl a problemei C=AM.

36

Apoi se alege un ntreg n astfel ca n>2an> ai , i=1,n. n continuare se alege un alt ntreg w, astfel ca c.m.m.d.c (n,w)=1 i se calculeaz inversa lui w mod n. n final vectorul A este transformat ntr-un vector rucsac greu: A=wA mod n ai=wai mod n Acum rezolvarea problemei C=AM este dificil, dac nu se dispune de o informaie trap (inversa lui w i n), cu ajutorul creia calculul se simplific: C=W-1C mod n=W-1AM mod n=W-1(WA)M mod n=AM mod n=AM Transformarea de cifrare EA (public) folosete cheia public care este vectorul rucsac greu, A. Se obine criptograma: C=EA(M)=AM. Transformarea de descifrare DA folosete cheia secret (A,n,W-1) calculnd pe baza funciei rucsac simplu: DA(C)=(rucsac_simplu ) (W-1C mod n, A) (W-1C mod n, A)=M.
Exemplu. Fie A=(1,3,5,10) vectorul rucsac simplu, n=20, w=7. Inversul multiplicativ al lui

w este w=3. Acest rucsac simplu este transformat ntr-unul cu trap A: A=(71 mod 20, 73 mod 20, 75 mod 20, 710 mod 20)=(7,1,15,20). Considerm urmtorul mesaj M care va fi cifrat: (M)10=13 deci (M)2=(1101). Criptograma C este obinut cu ajutorul vectorului trap A: C=EA(M)=7+1+10=18 C=(10010). La descifrare se obine mesajul clar cu vectorul simplu A care este secret: M=DA(C)=DA(18)=RUCSAC_SIMPLU(318 mod 20, A)= = RUCSAC_SIMPLU(14,A)=(1101)=13. Cifrul Merkle Hellman este folosit n sistemul de operare UNIX pentru protecia confidenialitii scrisorilor n comenzile enroll, xget i xsend.
2) Algoritmul MH cu trap multiplicativ

Un rucsac cu trap multiplicativ este uor de rezolvat dac elementele vectorului A sunt relativ prime. Fiind date A=(6,11,35,43,169) i M=2838, este uor de determinat c M=61143, deoarece 6,11 i 43 divid pe M, n timp ce 35 i 169 nu. Un rucsac multiplicativ este transformat ntr-unul aditiv prin folosirea logaritmilor. Pentru ca ambii membri s aib valori rezonabile, logaritmii sunt luai peste cmpul Galois GF(n), unde n este un numr prim.
Exemplu. Fie m=4 (numrul de componente ale rucsacului), n=257, A'=(2,3,5,7) i b=131

baza logaritmului. Informaiile secrete sunt n,A' i b. Rezolvnd ecuaiile: 131a1=2(mod 257) 37

131a2=3(mod 257) 131a3=5(mod 257) 131a4=7(mod 257) rezult a1=80, a2=183, a3=81, a4=195 i deci A=(80,183,81,195) este vectorul fcut public. Gsirea logaritmilor peste GF(n) este relativ uoar dac (n-1) are numai factori primi mici (aceasta nseamn valori de ordinul a 106 pn la 1012). Presupunem c avem dat criptograma C=183+81=264 i vrem s gsim soluia C=AX. Cunoscnd informaia trap n, A' i b putem calcula c'=bc(mod n).n exemplul C'=131264 (mod 257)=15=(20)(31)(51)(70). Rezult c X=(0,1,1,0), deoarece b c = b( ai xi ) = ai acest caz este necesar ca
`xi

(mod n). n

ai <n pentru a se asigura c ai

`xi

(mod n) este egal cu

ai

`xi

mulimea numerelor ntregi. O variant este s se utilizeze primele n numere prime ca ai', caz n care la m=100, n are lungimea de 730 de bii. Orice variant aleas trebuie s fac un compromis ntre securitatea i extensia datelor.
5. 2.4.Avantajele evidente ale cheilor publice

Avantajele criptografiei cu chei publice sunt extraordinare, cu condiia ca aceasta s poat fi realizat practic fr nici un fel de urmri secundare negative. O inovaie adus de cheile publice privete gestiunea cheilor: cum se pot mnui i transmite chei. S considerm un criptosistem clasic (simetric). Cheia de criptare o furnizeaz i pe cea de decriptare i, prin urmare, prima nu poate fi fcut public. Aceasta nseamn c cele dou pri legale (emitorul i receptorul) trebuie s cad de acord n avans asupra metodei de criptare. Aceasta poate avea loc fie prin ntlnirea dintre cele dou pri, fie prin transmiterea cheii de criptare pe un anumit canal sigur. Dac se folosete un criptosistem cu chei publice, nu este obligatoriu ca cele dou pri s se fi ntlnit ele pot chiar s nu se cunoasc una cu alta sau chiar s nu fi comunicat ntre ele vreodat. Aceasta ester un avantaj uria, de exemplu, n cazul unei mari bnci de date, unde exist numeroi utilizatori i unul dintre ei vrea s comunice numai cu anumit utilizator. Atunci el poate realiza acest lucru introducnd informaii n nsi baza de date. Criptosistemele cu chei publice i cele clasice se pot compara i n ce privete lungimea cheii. Deoarece fiecare cheie trebuie descris ntr-un fel sau altul, descrierea fiind o secven de litere ale unui anumit alfabet (adic un cuvnt), pare foarte natural s vorbim despre lungimea unei chei. Exist o diferen considerabil ntre criptosistemele cu chei publice i cele clasice. S considerm la nceput un criptosistem clasic. Dac cheia este mai lung dect textul clar, realmente nu s-a obinut nimic. Deoarece cheia trebuie transmis pe un canal sigur am putea transmite textul clar n locul cheii pe acelai canal sigur. Evident, n anumite situaii cheia se transmite n avans n ateptarea unui moment crucial.

38

S considerm acum i criptosistemul cu chei publice. Lungimea cheii de criptare este n mare msur irelevant. Cheia este oricum public. Aceasta nseamn c i lungimea cheii de decriptare este irelevant, receptorul trebuind s o stocheze ntr-un singur loc. Uurina gestiunii cheilor poate fi privit cu ndreptire ca avantajul esenial al criptografiei cu chei publice.

39