Curs Tsi 2014

Embed Size (px)

Citation preview

  • 8/19/2019 Curs Tsi 2014

    1/94

    1. Introducere 

    - Termenul de  securitate IT se refer ă  la chestiuni legate de securitatea informaţiilor, în speţă securitatea sistemelor şi a comunicaţiei dintre acestea.

    • Scopul  securit ăţ ii calculatoarelor este de a preveni accesul neautorizat la sistemele decalcul şi de a proteja informaţiile stocate de distrugeri intenţionate, modificare sau deconspirare.

    • Scopul  securit ăţ ii comunica ţ iilor este de a proteja datele vehiculate într-o reţea decalculatoare sau într-un sistem distribuit. Ca sinonim se foloseşte uneori termenul de  securitateare ţ elei. 

    - Termenul de vulnerabilitate se refer ă  la o slă biciune care poate fi exploatată pentru a viola unsistem sau informaţiile pe care acesta le conţine.- Termenul de amenin ţ are se refer ă la o circumstanţă, condiţie sau eveniment care are potenţialulde a viola securitatea sau de a cauza stricăciuni sistemului.

    Vulnerabilitatea reţelelor se manifestă pe două planuri:

    • posibilitatea modificării sau distrugerii informaţiilor (atac la integritatea fizică);• posibilitatea folosirii neautorizate a informaţiilor;

    Sub aspect fizic, resursele unei reţele trebuie protejate într-o manier ă adecvată:

    • restricţionarea accesului la sălile cu echipamente• protejarea la furt şi distrugere a echipamentelor de comunicaţie (routere, switch-uri,

    calculatoare, etc.)• protejarea căilor fizice de comunicaţie prin îngroparea în paturi speciale şi plasarea în locuri

    greu accesibile

    Sub aspect logic, securitatea trebuie să garanteze următoarele:

    • confidenţialitatea informaţiilor;• integritatea informaţiilor;• autenticitatea informaţiilor.Categorii de atacuri asupra sistemelor informatice:

    Ameninţările la adresa securităţii unei reţele de calculatoare pot avea următoarele origini:• dezastre sau calamităţi naturale,• defectări ale echipamentelor,

    • greşeli umane de operare sau manipulare,• fraude.

    În ameninţările datorate acţiunilor voite, se disting două categorii principale de atacuri: pasive şiactive.

    Atacuri pasive – sunt acelea în cadrul cărora intrusul observă informaţia care trece printr-un “canal de comunicaţie” f ăr ă să interfereze cu fluxul sau conţinutul mesajelor. Atacurile pasiveau următoarele caracteristici comune:

    - nu cauzează pagube (nu se şterg sau se modifică date);- încalcă regulile de confidenţialitate;- obiectivul este de a “asculta” datele schimbate prin reţea;- 

     pot fi realizate printr-o varietate de metode, cum ar fi supravegherea legăturilor telefonicesau radio, exploatarea radiaţiilor electromagnetice emise, rutarea datelor prin noduri adiţionale

  • 8/19/2019 Curs Tsi 2014

    2/94

     

    Atacuri active - sunt acelea în care intrusul se angajează  fie în furtul mesajelor, fie în

    modificarea, reluarea sau inserarea de mesaje false. Aceasta înseamnă că el poate şterge, întârzia

    sau modifica mesaje, poate să facă inserarea unor mesaje false sau vechi, poate schimba ordinea

    mesajelor, fie pe o anumită direcţie, fie pe ambele direcţii ale unui canal logic.

    Aceste atacuri sunt serioase deoarece modifică starea sistemelor de calcul, a datelor sau a

    sistemelor de comunicaţii. Există următoarele tipuri de ameninţări active:

    -  mascarada – este un tip de atac în care o entitate pretinde a fi o alt ă entitate. De exemplu,

    un utilizator încearcă să se substituie altuia sau un serviciu pretinde a fi un alt serviciu, în intenţia

    de a lua date secrete (numărul căr ţii de credit, parola sau cheia algoritmului de criptare). O

    “mascaradă” este însoţită, de regulă  de o altă  ameninţare activă, cum ar fi înlocuirea sau

    modificarea mesajelor;

    reluarea – se produce atunci când un mesaj sau o parte a acestuia este reluată (repetată),în intenţia de a produce un efect neautorizat. De exemplu este posibilă reutilizarea informaţiei de

    autentificare a unui mesaj anterior. În conturile bancare, reluarea unităţilor de date implică 

    dublări şi/sau alte modificări nereale ale valorii conturilor;

    - modificarea mesajelor – face ca datele mesajului să fie alterate prin modificare, inserare

    sau ştergere. Poate fi folosită pentru a se schimba beneficiarul unui credit. O altă utilizare poate fi

    modificarea câmpului destinatar/expeditor al poştei electronice;

    refuzul serviciului  – se produce când o entitate nu izbuteşte să  îndeplinească  propriafuncţie sau când face acţiuni care împiedică o altă entitate de la îndeplinirea propriei funcţii;

  • 8/19/2019 Curs Tsi 2014

    3/94

    -  repudierea serviciului  – se produce când o entitate refuză  să  recunoască  un serviciu

    executat. Este evident că în aplicaţiile de transfer electronic de fonduri este important să se evite

    repudierea serviciului atât de către emiţător, cât şi de către destinatar.

    -  viruşii  – reprezintă  programe inserate în aplicaţii care se multiplică  singure în alte

     programe din spaţiul rezident de memorie sau de pe discuri. Apoi fie saturează complet spaţiul de

    memorie/disc şi blochează sistemul, fie după un număr fixat de multiplicări, devin activi şi intr ă 

    într-o fază distructivă (care este de regulă exponenţială);

    -  bomba software - este o procedura sau parte de cod inclusă într-o aplicaţie "normală",

    care este activată de un eveniment predefinit. Autorul bombei anunţă evenimentul, lăsând-o să 

    "explodeze", adică să facă acţiunile distructive programate;

    -  viermii - au efecte similare cu cele ale bombelor şi viruşilor. Principala diferenţă este

    aceea că nu rezidă la o locaţie fixă sau nu se duplică singuri. Se mută in permanenţă, ceea ce îi

    face dificil de detectat.

    -  trapele - reprezintă accese speciale la sistem, care sunt rezervate în mod normal pentru

     proceduri de încărcare de la distanţă, întreţinere sau pentru dezvoltatorii unor aplicaţii. Ele permit

    însă accesul la sistem, eludând procedurile de identificare uzuale;

    -  caii troieni - este o aplicaţie care are o funcţie de utilizare foarte cunoscută şi care, într-

    un mod ascuns, îndeplineşte şi o altă  funcţie. Nu creează  copii. De exemplu, un hacker poate

    înlocui codul unui program normal de control "login" prin alt cod, care face acelaşi lucru, dar,

    adiţional, copiază  într-un fişier numele şi parola pe care utilizatorul le tastează  în procesul de

    autentificare. Ulterior, folosind acest fişier, hacker-ul va penetra foarte uşor sistemul.

    1. 1. Arhitectura OSI (Open Systems Interconnection) a securităţii 

    Arhitectura OSI este o arhitectura de reţea pe 7 nivele care a permis standardizarea

    comunicaţiei în reţele şi explozia reţelelor locale, datorita faptului ca permite producătorilor să 

     producă  produse compatibile cu ale concurenţei ascunzând in acelaşi timp inovaţiile proprii.Modelul are la baza 5 principii:

    -un nivel trebuie introdus acolo unde este necesar un grad de abstractizare superior.

    -fiecare nivel de abstractizare trebuie sa îndeplinească un set bine definit de funcţii.

    -funcţiile fiecărui nivel trebuie sa respecte indicaţiile de standardizare internaţionale.

    -un nivel trebuie ales astfel incit sa minimizeze fluxul de date intre nivele.

    -nivele trebuie sa fie suficient de mari pentru a cuprinde funcţiile ce fac prelucr ări similare si

    suficient de mici astfel incit sa nu devină o arhitectura greoaie.

  • 8/19/2019 Curs Tsi 2014

    4/94

    Acest model nu este o arhitectura de reţea pentru ca nu descrie toate serviciile si protocoalele

    folosite de către fiecare nivel, doar spune cam cum ar trebui sa fie. Cele 7 nivele sunt in ordine de

    sus in jos:

    - nivelul APLICATIE: Aplicaţia care gestionează transmiterea şi primirea datelor, de ex. FTP,

    HTTP 

    - nivelul PREZENTARE: formatează datele pentru a putea fi utilizate de către aplicaţie

    - nivelul SESIUNE: stabileşte, gestionează şi termină sesiunile între aplicaţii

    - nivelul TRANSPORT: se ocupă cu segmentarea datelor primite de la nivelul Sesiune si

    transmiterea lor in siguranţă către destinaţie

    - nivelul RETEA: determină calea cea mai scurtă de a ajunge la destinaţie; de asemenea, se ocupă 

    şi de adresarea logică 

    - nivelul PRELUCRARE DATE: asigur ă dirijarea adreselor fizice, topologiei reţelelor, notificarea

    erorilor şi a cadrelor de biţi

    - nivelul FIZIC: totalitatea de specificaţii electrice, mecanice, procedurale şi funcţionale pentru

    asigurarea conexiunii fizice a două sisteme

    Arhitectura OSI distinge cinci clase de servicii de securitate:

    - autentificarea,

    - controlul accesului,

    - confidenţialitatea datelor,

    - integritatea datelor

  • 8/19/2019 Curs Tsi 2014

    5/94

    - non-acceptul.

    Serviciile de autentificare permit autentificarea entităţilor participante la comunicaţie sau aoriginii datelor.

    • Serviciul de autentificare a entit ăţ ilor similare verifică  faptul că  o entitate dintr-o

    asociaţie apar ţine acesteia şi nu încarcă să-şi falsifice identitatea sau să retransmită copiineautorizate ale identităţilor din trecut. Acest fel de autentificare se face în faza destabilire a conexiunilor, şi ocazional în timpul fazei de transfer de date.

    • Serviciul de autentificare a originii datelor verifică sursele de date, dar nu poate oferi protecţie împotriva duplicării sau modificării datelor, în acest caz folosindu-se serviciulde la punctul anterior. Serviciul de autentificare a originii datelor se foloseşte în timpulfazei de transfer de date.

    Serviciul de control al accesului  protejează  împotriva folosirii neautorizate a resurselorsistemelor. Acest tip de serviciu conlucrează strâns cu serviciile de autentificare, deoarece

     pentru a media accesul la o resursă, utilizatorul trebuie să îşi confirme identitatea.

    Serviciul de confiden ţ ialitate a datelor protejează sistemul de divulgare neautorizată a datelor.

    • Serviciul de confiden ţ ialitate a conexiunii furnizează  confidenţialitatea tuturorinformaţiilor transmise într-o conexiune.• Serviciul de confiden ţ ialitate f ăr ă  conexiune furnizează confidenţialitatea unităţilor deinformaţie.• Serviciul de confiden ţ ialitate cu câmp selectiv furnizează confidenţialitatea câmpurilorspecifice dintr-un flux pe durata unei conexiuni sau a unei unităţi de informaţie.• Serviciul de confiden ţ ialitate a fluxului de trafic furnizează protecţie împotriva analizei

    traficului.

    Serviciile de integritate a datelor protejează datele de modificări neautorizate.

    • Serviciul de integritate a serviciului cu recuperare furnizează integritatea datelor într-oconexiune. Pierderea integrităţii este recuperată dacă acest lucru este posibil.• Serviciul de integritate a serviciului f ăr ă recuperare, ca şi în cazul precedent furnizează integritatea datelor într-o conexiune. Pierderea integrităţii nu se poate recupera.• Serviciul de integritate a unui câmp desemnat furnizează integritatea unor câmpurispecifice în cadrul conexiunii.• Serviciul de integritate f ăr ă conexiune furnizează integritatea unor unităţi de dateseparate.• Serviciul de integritate a unui câmp desemnat f ăr ă conexiune furnizează integritateaunor câmpuri specifice din unităţi de date separate.

    Serviciul non-negare furnizează  protecţie împotriva acceptării ulterioare a trimiterii saurecepţionării unui mesaj. Putem distinge două feluri de servicii:

    • Serviciul non-negare cu dovada originii, ofer ă receptorului o dovadă a originiimesajului• Serviciul non-negare cu dovada livr ării, ofer ă transmiţătorului o dovadă a recepţionăriimesajului.

     Mecanisme specifice de securitate

    OSI enumeră opt mecanisme specifice de securitate:

  • 8/19/2019 Curs Tsi 2014

    6/94

    1. Codificarea se foloseşte pentru a proteja confidenţialitatea unităţilor de informaţie şi deseori sefoloseşte complementar cu alte mecanisme.

    2. Semnăturile digitale se folosesc în analogie electronică  la semnăturile de mână, pentrudocumente electronice. Similar cu corespondentul real, semnăturile electronice nu trebuie să  se

     poată falsifica, destinatarul să o poată verifica şi emitentul să nu o poată nega mai târziu.

    3. Controlul accesului for ţează aplicarea drepturilor de acces prin utilizarea identităţii autentificatea păr ţilor. Dacă una dintre păr ţi încearcă să folosească o resursă neautorizată, serviciul blochează această tentativă şi opţional poate genera o alarmă care să apar ă în auditul de securitate.

    4.  Integritatea datelor este un mecanism care protejează unităţile de informaţie sau câmpuri dinacestea.

    5. Schimbul de autentificare verifică identitatea păr ţilor. Un mecanism de autentificare se numeşte puternic dacă se bazează pe tehnici criptografice pentru a codifica schimbul de mesaje.

    6. Completarea traficului protejează împotriva analizei datelor. Acest mecanism maschează datelereale intercalând date f ăr ă valoare, fiind efectiv în conjuncţie cu un mecanism de confidenţialitate.

    7. Controlul rut ărilor se foloseşte pentru alegerea dinamică  sau într-un mod predeterminat arutelor pentru transmiterea informaţiei. Sistemele de comunicaţie pot comanda modificarea ruteila descoperirea unui atac pasivsau activ. În mod asemănător, anumite informaţii cu etichete de securitate speciale pot fi rutate pecăi speciale.

    8.  Notarizarea se refer ă  la asigurarea transmiterii unor proprietăţi ale informaţiei, cum ar fiintegritatea, originea, timpul şi destinaţia. Asigurarea se face de către un ter ţ  într-o manier ă 

    verificabilă.

    1.2. Integrarea criptografiei în arhitectura OSI

    Datele codificate într-un fel anume pot trece prin mai multe noduri ale reţelei până  să ajungă  ladestinaţie. Putem identifica mai multe posibilităţi de integrare ale punctelor de cifrare înarhitectura unei reţele.1. Cifrarea la nivel de leg ătur ă de date presupune codificarea şi decodificarea mesajului la fiecarenod de comunicaţie. Fiecare nod are propria cheie şi posibil propriul algoritm de criptare. În acestcaz, datele sunt protejate doar pe mediul fizic de transmitere.

  • 8/19/2019 Curs Tsi 2014

    7/94

  • 8/19/2019 Curs Tsi 2014

    8/94

    1.3. Bazele matematice

    ale sistemelor criptografice

    Criptografia este studiul scrisului (graphein) secret (cryptos) care se ocupă cu dezvoltarea

    algoritmilor care pot fi folosiţi pentru:

    • 

    Ascunderea conţinutului unui mesaj faţă de oricine altcineva, mai puţin faţă de cel caretrimite sau faţă de cel care primeşte (confidenţialitate) 

    •  Verificarea identităţii celui care primeşte mesajul (autentificare) 

    Concepte de bază 

    Principalele noţiuni întâlnite sunt următoarele:

    - Criptografia: arta sau ştiinţa care foloseşte metode de transformare a unui mesaj inteligibil într-un

    mesaj criptat, şi apoi aducerea acelui mesaj la forma originală.

    - Criptanaliza = studiul principiilor şi metodelor de transformare a unui mesaj criptat pentru a se

    reveni la forma sa iniţială, f ăr ă a fi ştiută cheia.

    - Criptologia = combinaţia dintre criptografie şi criptanaliză.

    - Textul clar = mesajul inteligibil original

    - Texul criptat = mesajul transformat din mesajul inteligibil în mesajul criptat.

    - Cifrul = un algoritm pentru a transforma mesajul inteligibil într-un mesaj criptat

    - Cheia = informaţia critică folosită de cifru, ştiută numai de cel care trimite mesajul şi de cel careîl primeşte.

    - Criptare = procesul de convertire din texul inteligibil în textul criptat folosind un cifru şi o cheie.

    - Decriptare (decodare) = procedeul de convertire al textului criptat la forma iniţială folosind un

    cifru şi o cheie.

    - Cod = un algoritm de transformare a unui mesaj inteligibil într-un mesaj criptat, folosind o carte

    de coduri.

    Definiţia criptosistemului

    Un criptosistem constă în următoarele seturi finite:

    P: domeniul textului simplu

    C: domeniul textului cifrat

    K: domeniul cheilor utilizate pentru criptare şi decriptare

    Funcţia de criptare E: pentru fiecare  K k  ∈  

     K  E  : C  P  →  Funcţia de decriptare D: pentru fiecare  K k ∈  

  • 8/19/2019 Curs Tsi 2014

    9/94

     K  D :  P C  →  

    - funcţiile, K 

     E  , K  D sunt inverse una celeilalte astfel încât pentru toate  K k ∈   şi

     P ∈   ( )( )  p p E  Dk k 

      =  

    Fie p este un număr prim şi mulţimea

    Z(p)* = {1, 2, 3, 4, ..., p-2, p-1}

    •  dacă înmulţim oricare două numere din această mulţime între ele, şi reducem mod p produsul,

    rezultatul este un număr din mulţime.

    •  dacă luăm orice număr k  din mulţime, există un alt număr k -1 astfel încât1 modk k p−⋅ = ,

    orice număr din mulţime are un invers multiplicativ. 

    •  rezultă că Z(p)* este un grup faţă de înmulţirea mod p

    •  Z(p)* este un grup faţă de operaţia de înmulţire mod p, este de asemenea un grup şi faţă de

    operaţia de ridicare la putere 

    De exemplu, mulţimea Z(11)* = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

    Dacă înmulţim 5 şi 8 din mulţime, avem

    5 8 40 7 mod11⋅ = =  

    şi 7 este un element din mulţime. Avem de asemenea

    5 9 45 1mod11⋅ = =

    ,deci 9 este inversul multiplicativ al lui 5. La fel, 5 este inversul multiplicativ al lui 9. Dac ă k =5,

    atunci k -1=9

    Fiecare element are un invers multiplicativ în Z(p)* deoarece p este un număr prim. Şi cum p este

     prim, singurul divizor comun al lui p şi al fiecărui număr din mulţimea Z(p)* = {1, 2, 3, ..., p-1}

    este 1

    Cel mai mare divizor comun al lui p şi al oricărui număr din mulţime este 1. cmmdc (1,p)

    =1, cmmdc(2,p) = 1, cmmdc(3,p) = 1, . . . , cmmdc(p-1,p) = 1.

    Aceste rezultate nu mai sunt adevărate dacă  realizăm o înmulţire modular ă cu un număr

    compus (un număr care este produsul a cel puţin două numere, fiecare mai mare decât 1).

    De exemplu numărul 15=3*5, deci este compus. Să  presupunem că  realizăm înmulţirea

    mod 15, folosind numere din mulţimea {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}.

    Care este inversul numărului 6 din această mulţime?

    R ăspuns: nu există  inversul lui 6, aşa cum putem vedea prin înmulţirea lui 6 cu toate

    numerele mai mici decât 15:

    6*0 = 6*5 = 6*10 = 0 mod 156*1 = 6*6 = 6*11 = 6 mod 15

  • 8/19/2019 Curs Tsi 2014

    10/94

    6*3 = 6*8 = 6*13 = 3 mod 156*4 = 6*9 = 6*14 = 9 mod 15.

     Nu există nici un număr care înmulţit cu 6 să fie egal cu 1 mod 15. În plus, obţinem 0 ca rezultat

    al unor înmulţiri, deci mulţimea nu este închisă.

    6*5 mod 15=0 Această mulţime (a numerelor întregi de la 1 la 14) nu este un grup multiplicativ mod 15.

    Putem defini şi alte operaţii, în afar ă  de înmulţire şi ridicare la putere. Putem defini

    împăr ţirea cu k ca înmulţire cu inversul lui k , numit k -1. Astfel 18

    8 k k 

    −= ⋅   prin definiţie.

    Dacă k =9, în Z(11)*, atunci

    18 8 9 8 5 40 7 mod119

    −= ⋅ = ⋅ = = 

    La fel,

    13 3 10 3 10 30 8mod1110

    −= ⋅ = ⋅ = =  

    Definiţie: Fie g un membru al mulţimii Z(p)*. Elementul g este numit generator  mod p 

    dacă mulţimea de puteri a lui g adică puterea {g1 mod p, g2 mod p, . . ., g(p-1) mod p}, conţine într-

    o ordine oarecare toţi membri mulţimii Z(p)*:

    {g, g2, g3,..., g(p-1)} mod p= {1, 2, 3, ... , p-2, p-1}.

    Deci mulţimea Z(p)* = {1, 2, ... , p-1} reprezintă o rearanjare a mulţimii,{g, g2, g3,..., g(p-1)} când

    toate calculele sunt f ăcute mod p.

    De exemplu 3 este un generator al Z(7)*  deoarece

    3^1 = 3 mod 7

    3^2 = 2 mod 7

    3^3 = 6 mod 7

    3^4 = 4 mod 7

    3^5 = 5 mod 7

    3^6 = 1 mod 7.

    Altfel spus {3, 32, 33, 34, 35, 36} mod 7={1, 2, 3, 4, 5, 6} Când calculele sunt f ăcute mod 7 cele

    două  mulţimi au aceleaşi elemente, dar nu neapărat în aceeaşi ordine. O rearanjare a ordinii

    elementelor se numeşte permutare. Puterile generatorului 3 dau o permutare a lui Z(7)*. 

  • 8/19/2019 Curs Tsi 2014

    11/94

    Un set de generatori mod p este o mulţime de generatori k, care sunt diferiţi. Deci

    mulţimea {g1, ... ,  gk } este un set de generatori dacă  fiecare gi este un generator mod p, şi de

    asemenea gi nu este egal cu g j, dacă i este diferit de j.

    De exemplu {3, 5} este un un set de generatori pentru Z(7)*, deoarece şi 3 şi 5 sunt

    generatori ai mulţimii Z(7)*. Fiecare element din Z(7)* poate fi reprezentat fie ca putere a lui 3,

    fie ca putere a lui 5:

    6 6

    2 4

    1 5

    4 2

    5 1

    3 3

    1 = 3 mod 7 = 5 mod 7

    2 = 3 mod 7 = 5 mod 7

    3 = 3 mod 7 = 5 mod 7

    4 = 3 mod 7 = 5 mod 7

    5 = 3 mod 7 = 5 mod 7

    6 = 3 mod 7 = 5 mod 7.

     Numărul 2 nu este un generator mod 7, deoarece puterile lui 2 dau doar 1, 2 sau 4, mod 7:

    2 3{2, 2 , 2 } = {1, 2, 4}.

    Trebuie amintit totuşi că puterile lui 2 mod 7 produc o submulţime a lui Z(7)*. Mulţimea

    {1, 2, 4} este o submulţime a mulţimii {1, 2, 3, 4, 5, 6} = Z(7)*. Numărul 2 generează un subgrup

    G(3) mod 7.

     Notaţia G(3) înseamnă că sunt 3 elemente în grup. G(3) este un grup deoarece este închis prin înmulţire mod 7 :

    1*1 = 1 mod 7 2*1 = 2 mod 7 4*1 = 4 mod 71*2 = 2 mod 7 2*2 = 4 mod 7 4*2 = 1 mod 7

    1*4 = 4 mod 7 2*4 = 1 mod 7 4*4 = 2 mod 7

    deoarece fiecare element din G(3) are de asemenea un invers.

    Trebuie ţinut cont de faptul că numărul 4 este de asemenea un generator al G(3) = {1, 2, 4} mod 7,

    din moment ce

    {4, 4^2, 4^3} = {4, 2, 1} mod 7 = {1, 2, 4}

    Definiţie: Un grup generat de un element g se spune că are ordinul q mod p unde q este cea

    mai mică  putere astfel încât gq = 1 mod p.

    Cele două  generatoare ale lui Z(7)*, 3 şi 5 au ordinul 6, deoarece 6 este cea mai mică 

     putere a lui 3 sau 5 care dă 1 mod 7. Astfel,6 61=3 =5 mod 7  şi nici o altă putere mai mică nu

    are această  proprietate. Generatoarele 2 şi 4 ale lui G(3)  au ordinul 3 deoarece 

    3 32 = 4 = 1 mod 7 şi nici o putere mai mică a lui 2 sau 4 nu este egală cu 1 mod 7.

    În general pentru q număr prim, 1

  • 8/19/2019 Curs Tsi 2014

    12/94

    lui Z(p)*. Puterile lui g dau toate elementele subgrupului. Prin definiţie q este cea mai mică putere

    a lui g care dă 1. Deciq g = 1 mod p . Astfel puterile mai mari decât q generează din nou aceeaşi

    mulţime de numere.

    De exemplu 32 = 1 mod 7 . Deci puterile mai mari ale lui 2 dau aceleaşi numereîntotdeauna:

    24 = 21 = 2 mod 7

    25 = 22 = 4 mod 7

    26 = 23 = 1 mod 7

    Trebuie luat în considerare faptul că g este un element al grupului Z(p)*, deci g este un

    generator al lui Z(p)* dacă g este un element al ordinului p-1, cu condiţia ca( ) p-1g = 1  şi nici o

     putere mai mică să nu fie egală cu 1. Deci, în mod normal ar fi necesar ca puterile lui g mod p ,

    adică ( ) p-11 2g , g , ..., g , să fie trecute prin numerele 1,2,…, p-1.

    Teorema lui Fermat  spune că pentru orice număr prim p şi număr k care nu este divizibil

    cu p avem ( ) p-1k = 1 mod p .

    Bineînţeles numerele întregi 1, 2, 3,…, p-1 nu sunt divizibile cu p, deci oricare din acestenumere întregi ridicat la puterea p-1 este egal cu 1 mod p  prin teorema lui Fermat.

    De aici ne rezultă că pentru k element al Z(p)* avem( ) p-1k = 1 mod p .

    De exemplu pentru Z(11)* avem p-1=10 şi se poate verifica uşor că,10 10 10 10 10 10 10 10 10 101 = 2 = 3 = 4 = 5 = 6 = 7 = 8 = 9 = 10 = 1 mod 11

    Important este faptul că nu spunem că orice număr k

  • 8/19/2019 Curs Tsi 2014

    13/94

      Daca n=p  este număr prim, atunci toate numerele pozitive mai mici decât p sunt relativ prime cu p, astfel ϕ  (p)=p-1.

    De exemplu pentru n=p=7, numerele 1, 2, 3, 4, 5 şi 6 sunt relativ prime cu 7, deci ϕ (7)=6.

    Pentru n=4 , numerele 1 şi 3 sunt relativ prime cu 4, deci ϕ (4)=2.

    Pentru n=15, numerele 1,2,4,7,8,11,13 şi 14 sunt relativ prime cu 15, deci ϕ (15)=8. (celelalte

    numere adică 3, 5, 6, 9, 10 şi 12 au divizori comuni cu 15). 

    Teorema lui Euler afirmă că pentru oricare număr n şi oricare număr k  relativ prim cu n,avem nk  n mod1)( =ϕ   

    Trebuie reţinut că teorema lui Euler se aplică numerelor compuse n la fel ca şi numerelor prime. De exemplu fie n=15. Numărul 2 este relativ prim cu 15, deci prin teorema lui Euler avem:

    15mod122 8)15( ==ϕ   Un alt rezultat din teoria numerelor este acela că  pentru p număr prim, numărul

    generatorilor mod p este egal cu )1(   − pϕ  .Spre exemplu, numărul generatorilor mod 7 este

    )6()17(ϕ   =− .

    )6(ϕ  este prin definiţie numărul

    de întregi mai mici decât 6 ce sunt relativ primi cu 6. Există două astfel de numere şi anume 1 şi 5.Deci există doi generatori mod 7.Logaritmi

    Un logaritm este un exponent. Alt mod de a exprima că 2 ridicat la puterea 5 este 3252 2 2 2 2 2 32× × × × = =  

    Cinci este logaritmul lui 32 în baza 2

    2log 32 5=  Logaritmul este exponentul 5.Este relativ uşor să ridici numerele la o putere; de exemplu:

    20

    douazeci de factori3 3 ... 3 3486784401= × × =  Este mai greu să  găseşti logaritmul; de exemplu, care este logaritmul bazei 2 al numărului8589934592.

    ?2 8589934592=  

    Pentru numere reale ne putem „juca” cu numerele. De exemplu, 210=1024. Avem nevoie deun exponent mai mare (adică  de un logaritm mai mare). 220=1048576; mai avem nevoie de unexponent şi mai mare. 230=1073741824; in continuare avem nevoie de un logaritm mai mare deatât; 240=1099511627776  . Observăm că  acesta este prea mare. Încercăm 235=34359735368  , siacesta este prea mare. In sfâr şit vedem că  233=8589934592, deci log bazei 2 al numărului

    8589934592 este 33.

    Criptosistemul El Gamal şi sistemul cu schimb de cheie Diffie-Hellman se bazează  pedificultatea problemei logaritmului discret.

    Logaritmi discreţi

    Matematica discretă  se refer ă  la operarea cu sisteme de numere care au proprietatea cafiecare număr să fie înconjurat de o vecinătate care nu conţine nici un alt număr din sistem.

    { }1, 23, 31, 42   este discret . Nu există, de exemplu, nici un număr al mulţimii intre 1şi 23 sau intre 23 şi 31. 23 este singurul număr al sistemului in vecinătatea lui 1 şi 31.

    De fapt orice mulţime finită este discretă.

  • 8/19/2019 Curs Tsi 2014

    14/94

      Mulţimea de numere întregi este discretă. De exemplu, nu există nici un număr întreg între-1 şi 0 sau între 0 şi 1. Zero este singurul număr întreg din vecinătatea (-1,1).

    Mulţimea numerelor reale nu este discretă. Între oricare două numere reale există  un altnumăr real. Între 0 şi 1 există infinit de multe numere reale. În vecinătatea (0,1) există infinit demulte numere reale. Astfel de sistem de numere este denumit continuu.

    Problema logaritmului discret se refer ă la problema găsirii a unui logaritm modulo numărîntreg. Să  ne amintim că  atunci când oper ăm cu un număr întreg n  r ămânem cu multe numereîntregi finite – o mulţime discretă – de obicei 0, 1,2, … n-1 (sau 1 ,…,n).

     Problema logaritmului discret

    Fie g un generator al unuia din aceste două grupuri, şi fie y = gx mod p.

    Atunci, x este logaritmul discret al lui y : x = logg (y) mod p 

    Problema logaritmului discret solicită o soluţie cum ar fi:?2 9mod11≡  

    La fel ca multiplicarea modulo  p , ridicarea la puteri modulo  p amestecă rezultatele. De exemplu puterile lui 2 modulo 11 sunt:

    12 2mod11≡  22 4mod11≡  32 8mod11≡  42 5mod11≡  

    52 10mod11≡  62 9mod11≡  72 7mod11≡  8

    2 3mod11≡  92 6mod11≡  102 1mod11≡  

    Deci r ăspunsul la problema logaritmului discret este 6; 62 9mod11≡ .Deoarece puterile nu cresc aşa cum o face exponentul nu ne mai putem juca cu numerele

    aşa cum am f ăcut-o înainte. Nu se cunoaşte nici un algoritm pentru calcularea algoritmilor discreţi.Cu excepţia cazurilor speciale, singurul mod de a determina logaritmul discret este prin încercareşi eroare. Pentru valori mai ale lui  p, există prea multe posibilităţi pentru a fi posibilă folosirea„for ţei brute”.

    Se observă că în acest exemplu zece puteri ale bazei 2 sunt reprezentanţii celor zece clasede echivalenţă  nonzero modulo 11 - 1,2,3,4,5,6,7,8,9,10. Această  proprietate se poate descriespunând că  2 este element primitiv  (sau rădăcină  primitivă). Întotdeauna există  cel puţin unelement primitiv. Deoarece toate cele 10 numere întregi nonzero modulo 11 apar la ca puteri alelui 2, ar fi nevoie de 10 incercări pentru a descoperii logaritmul.

    Există tabele de elemente primitive pentru diferiţi moduli. Nu este absolut esenţial ca elementul pe care noi îl alegam pentru bază să fie primitiv. Nu

    este necesar ca toate puterile să  fie distincte, însă  dacă  există  prea multă  repetiţie , numărul deîncercări necesare pentru a determina logaritmul, ar fi în mod semnificativ micşorat. De exemplusă zicem că vrem să aflăm

    ?3 5mod11≡  Calculând puterile lui 3 modulo 11 avem:

  • 8/19/2019 Curs Tsi 2014

    15/94

    23 9mod11≡  33 5mod11≡  43 4mod11≡  53 1mod11≡  63 3mod11≡  

    73 9mod11≡  83 5mod11≡  93 4mod11≡  103 1mod11≡  

    Se observă că doar 5 dintre reprezentanţii modulo 11 apar – 3,9,5,4,1 şi fiecare se

    repetă. Când încercăm să  rezolvăm ?3 5mod11≡   , este de două  ori mai probabil să  găsimlogaritmul deoarece există  numai jumătate din numărl de puteri posibile. Ori 3 sau 8 poate fifolosit ca logaritm al lui 5 pentru baza 3 şi modulo11.

    Un exemplu de transformare prin cheie este legat de funcţia XOR folosită  în aritmetica binar ă. Funcţia XOR urmează aceste reguli de adunare binar ă:

    0+0=0

    0+1=1

    1+0=1

    1+1=0

    Folosind adunarea XOR, orice şir format din zero şi unu poate fi folosit drept cheie pentru acripta şi a decripta datele. Să  presupunem că  avem un „mesaj” care este un şir de patru cifre,

    M=1011. Să presupunem că  avem de asemenea o cheie formată  din patru cifre k=1010. Acum

     putem cripta mesajul M folosind cheia k , prin adunarea celor două  astfel încât rezultatul să  fie

    C=M ”+” k .

    M 1011

    k 1010C 0001

    Mesajul criptat C este 0001. Oricine s-ar uita la această valoare nu ar şti mesajul original

    M, deoarece ar putea fi oricare dintre cele şaisprezece combinaţii de patru cifre formate din zero şi

    unu. Dar ştiind cheia, este uşor să obţii mesajul original. Tot ceea ce trebuie f ăcut este să adăugăm

    cheia k  la mesajul criptat C, urmând regulile de adunare XOR şi obţinem mesajul original M.

    -   pentru o cheie de lungime N, există 2N chei posibile

    DES-ul comercial foloseşte chei de lungimea 56, aşa că spaţiul cheilor  are 256 

  • 8/19/2019 Curs Tsi 2014

    16/94

    2. CRIPTAREA CU CHEIE SECRETĂ 

    2.1. Cifruri cu substituţie monoalfabetică 

    1. Cifrul lui Cezar este un cifru cu substituţie în care fiecare liter ă a alfabetului este înlocuită cualtă  liter ă  aflată  la o distanţă  fixă  de litera iniţială. Astfel, pentru o deplasare cu trei poziţii, A

    devine D, B devine E, C devine F, ...., Z devine C (pentru cazul alfabetului englez format dinurmătoarele 26 de litere: ABCDEFGHIJKLMNOPQRSTUVWXYZ).Criptarea se poate deci scrie din punct de vedere matematic ca o funcţie E, astfel:

    E(P)=(P+k) mod 26

    unde P este un număr ce corespunde unei litere a alfabetului (spre exemplu A=0, B=1, ...., Z=25)iar k, numit şi cheia cifrului, este un număr întreg între 0 şi 25 (în cazul nostru 3).Folosind această metodă avem următoarea pereche text clar – text criptat:

    Text clar : AZI ESTE MARTIText criptat: DCL HVWH PDUWL

    Decriptarea se realizează cu următoarea funcţie:

    D(C)=(C-k) mod 26

    unde C este un număr corespunzător unei litere din textul cifrat iar k este cheia de cifrare.Această metodă de criptare este vulnerabilă la atacuri ce utilizează frecvenţa de apariţie a

    literelor într-un text, ştiut fiind faptul că, în orice limbă, anumite caractere sunt mai frecventutilizate decât altele.

    2. Cifrul AFIN este o generalizare a cifrului lui Cezar, cheia de criptare fiind formată din două numere (k1, k2) iar cheia de decriptare din numerele (k3, k4) astfel:

    •  criptarea:

    E(P)=(k1*P+k2) mod 26, cu condiţiile: - c.m.m.d.c (k1, 26)=1

    - 252,10   ≤≤ k k   

    •  decriptarea:

    D(C)=(k3*C-k4) mod 26 unde

    ⎩⎨⎧

    ⋅=

    =−

    26mod)21(4

    26mod131

    1

    k k k 

    k k   

    2.2. Cifruri cu substituţie polialfabetică 

    1. Cifrul VIGENERE

    Cifrul Vigenère este o generalizare a cifrului lui Cezar. Această metodă de criptare este o formă simplă  de substituţie polialfabetică  în care un grup de n caractere din textul clar este înlocuit(substituit) de un alt grup de n caractere în textul cifrat. Pentru criptarea unui text se utilizează 

  • 8/19/2019 Curs Tsi 2014

    17/94

    caractere ale alfabetului englez (ABCDEFGHIJKLMNOPQRSTUVWXYZ) aranjate astfel: pe prima linie caracterele alfabetului în ordine alfabetică, pe linia 2 se află linia 1 rotită spre stânga cuo poziţie, pe linia 3 se află linia 2 rotită spre stânga cu o poziţie ş.a.m.d.

    Tabelul Vigenère

    Fiecare linie a tabelului poate fi considerată un alfabet utilizat pentru criptare. Procesul de criptare

    utilizează diverse linii ale tabelului în funcţie de cheia utilizată.Criptarea se face astfel: Se alege drept cheie un cuvânt oarecare (de preferinţă cât mai lung) – spreexemplu cuvântul LUNI. Se scrie textul clar şi sub acesta se scrie cheia până se termină tot textul.Spre exemplu textul: AZI ESTE MIERCURI se scrie astfel:

    Text clar: A Z I E S T E M I E R C U R ICheie: L U N I L U N I L U N I L U N

    Textul criptat se obţine astfel: Se caută  în prima linie a tabelului caracterul corespunzător dintextul clar şi în prima coloană a tabelului caracterul corespunzător din cheie. Caracterul din textulcifrat se află în tabel la intersecţia dintre coloana şi linia corespunzătoare celor două caractere (dintextul clar şi respectiv, cheie). În exemplul nostru obţinem:

    Text clar: A Z I E S T E M I E R C U R ICheie: L U N I L U N I L U N I L U N Text cifrat: L T V M D N R U T Y E K F L V

    Decriptarea se face astfel: Se scrie textul criptat şi sub acesta se scrie cheia până  se termină  tottextul. Se caută  în prima coloană caracterul corespunzător din cheie. Pe linia acestui caracter secaută caracterul corespunzător din textul cifrat iar caracterul din textul clar se găseşte pe primalinie a tabelului în această coloană. În cazul exemplului nostru, avem:

    Text cifrat: L T V M D N R U T Y E K F L V Cheie: L U N I L U N I L U N I L U N 

  • 8/19/2019 Curs Tsi 2014

    18/94

    Criptarea se poate scrie din punct de vedere matematic ca o funcţie E, astfel:

    E(P)=(P+K) mod 26

    unde:P =(p1, p2, ..., pn) – grup de n caractere din textul clarK =(k 1, k 2, ..., k n) – cheia utilizată pentru criptare

    Decriptarea se poate scrie din punct de vedere matematic ca o funcţie D, astfel:

    D(C)=(C-K) mod 26

    unde:C =(c1, c2, ..., cn) – grup de n caractere din textul criptatK =(k 1, k 2, ..., k n) – cheia utilizată pentru criptare

    2.3. Cifruri cu substituţie poligrafică 

    Sunt cifruri în care textul clar este împăr ţit în blocuri de o anumită lungime care sunt substituite.Spre exemplu un cifru care criptează blocuri de câte două litere se numeşte cifru bigrafic.

    Cifrul HILL

    Fiecare liter ă  este tratată  ca o cifr ă  din baza 26: A = 0, B =1 ş.a.m.d. Un bloc de n  litere esteconsiderat ca un vector cu n dimensiuni, şi multiplicat cu o matrice n × n, modulo 26.Componentele matricei reprezintă cheia, care trebuie alese astfel încât matricea să fie inversabilă (pentru a asigura posibilitatea decriptării). Consider ăm mesajul 'ACT', şi cheia de mai jos

    (sau GYBNQKURP în litere)

    Deoarece 'A' este 0, 'C' este 2 şi 'T' este 19, mesajul este vectorul:

    Deci vectorul criptat este dat de:

    care corespunde textul criptat 'POH'. Acum, presupunem că mesajul nostru este 'CAT', sau:

    De această dată, vectorul criptat este dat de:

    care corespunde criptotextului 'FIN'. Fiecare liter ă  s-a schimbat. Cifrul Hill are proprietatea dedifuzie a lui Shannon, iar un cifru Hill n-dimensional are proprietatea de difuzie peste n simboluri

    simultan.

  • 8/19/2019 Curs Tsi 2014

    19/94

     Decriptare

    Pentru a putea decripta, transformăm criptotextul în vector şi apoi îl înmulţim cu inversa matriceicheie. (Există  metode standard de calculare a inversei unei matrici; vezi inversarea matricelor

     pentru detalii.) Găsim că, în , inversa matricei din exemplul de mai sus este:

    (IFKVIVVMI în litere)

    Luând criptotextul de mai sus, 'POH', obţinem:

    care reprezintă cuvântul 'ACT'.

    Complicaţia care poate apărea este faptul că nu toate matricele au inverse. Există o metodă directă de determinare a acestei proprietăţi. Dacă determinantul unei matrice este 0, sau are factori comunicu modulul (adică factori ca 2 sau 13, în cazul modulului 26), atunci matricea nu poate fi folosită în cifrul Hill. Din fericire, dacă baza nu are factori mici, cele mai multe matrice au inverse. Deexemplu, matricea cheie:

    25 este coprim cu 26, deci nu este nici o problemă. Riscul ca determinantul să aibă factori comunicu modulul poate fi eliminat prin alegerea unui modul prim. În consecinţă, o variantă utilă de cifru

    Hill adaugă încă 3 simboluri pentru a creşte modulul la 29.

    2.4. Cifruri cu transpoziţie 

    Un cifru cu transpoziţie este o metodă de criptare prin care poziţiile caracterelor dintr-un text suntmodificate conform unui anumit algoritm şi astfel textul criptat este o permutare a textului clar.Din punct de vedere matematic pentru criptare este folosită o funcţie bijectivă ce modifică poziţiacaracterelor din textul clar iar inversa acestei funcţii este folosită pentru decriptare.În transpoziţia pe coloane mesajul este scris pe rânduri de lungime şi apoi citite coloană  cucoloană într-o anumită ordine dată de o cheie. Spre exemplu pentru criptarea textului AZI ESTEMIERCURI folosind cheia CASTEL avem

    C A S T E L

    2 1 5 6 3 4

    A Z I E S T

    E M I E R C

    U R I

    Textul criptat obţinut este: ZMR AEU SR TC III EE.

    De obicei este folosită o dublă transpoziţie folosind aceeaşi cheie sau chei diferite. Spre exemplu,textul anterior este criptat încă o dată folosind cheia BRAD obţinem:B R A D

    2 4 1 3

  • 8/19/2019 Curs Tsi 2014

    20/94

    E U S R

    T C I I

    I E E

    Se obţine textul criptat RSIE ZETI ARI MUCE.Decriptarea se face în ordine inversă criptării.

     METODE DE CRIPTANALIZ  Ă  

    Deoarece transpoziţia nu afectează  frecvenţa de apariţie a caracterelor dintr-o anumită  limbă,textul cifrat va avea aceeaşi distribuţie a caracterelor ca şi limbajul obişnuit. Un astfel de cifru esteuşor de spart după ce se determină lungimea cheii.Transpoziţia este de obicei folosită  în combinaţie cu alte metode. Spre exemplu un cifru cusubstituţie combinat cu un cifru cu transpoziţie înlătur ă slă biciunile ambelor tipuri de criptare.Exemplu: Cifrul ADFGVX

    Cifrul ADFGVX

    Cifrul ADFGVX este o combinaţie între un cifru cu transpoziţie şi unul cu substituţie şi senumeşte astfel deoarece utilizează numai aceste 6 litere (ADFGVX) pentru criptarea unui mesajclar. Textul clar este substituit cu perechi de câte două litere după care este realizată o transpoziţiefolosind o cheie oarecare.

     Exemplu:

    Tabelul utilizat pentru substituţie este următorul:

    A D F G V X

    A K Z W R 1 F

    D 9 B 6 C L 5

    F Q 7 J P G X

    G E V Y 3 A N

    V 8 O D H 0 2

    X U 4 I S T M

    Consider ăm următorul text clar: AZI ESTE MIERCURI şi cheia CASTEL.

    Criptarea se face astfel: În tabelul de mai sus se caută caracterele care apar în textul clar.Spre exemplu caracterul A se află la intersecţia liniei G cu coloana V, deci se va înlocui cu GV.Lui Z îi corespunde perechea AD ş.a.m.d.

    Textul substituit este: G V A D X F G A X G X V G A X X X F G A A G D G X A A GX FTranspunerea se face astfel: Folosind textul anterior se creează un tabel cu şase coloane care arecheia CASTEL pe prima linie:

    C A S T E L

    G V A D X F

    G A X G X V

    G A X X X F

    G A A G D GX A A G X F 

  • 8/19/2019 Curs Tsi 2014

    21/94

    Textul cifrat se obţine prin citirea acestui tabel pe coloane în ordinea alfabetică a primei linii,astfel: prima coloană este cea care are pe prima linie litera A: VAAAA; a doua este coloanacorespunzătoare lui C: GGGGX, ş.a.m.d. Se obţine textul transpus: VAAAA GGGGX XXXDXFVFGF AXXAA DGXGG

    Această metodă de criptare (substituţie + transpoziţie) devine şi mai puternică în cazul în care estecombinată cu fracţionarea.Fracţionarea este un stagiu preliminar care divide fiecare simbol din textul clar în mai multesimboluri din textul cifrat. Un astfel de exemplu îl constituie cifrul TRIFID.

    Cifrul TRIFID

    -  Fiecare element este fracţionat în 3 elemente-  Utilizează 3 tabele

    Tabel 1 Tabel 2 Tabel 3

    1 2 3 1 2 3 1 2 3

    1  F J O 1  V Z L 1 E U Q

    2  R X C 2  G D P 2  N H A

    3  Y B S 3  M W T 3 . K I

    Teoretic, mesajul este convertit în coordonatele din aceste tabele. Practic este mai uşor de atransforma aceste tabele în următorul tabel :

    F 111 C 132 W 223 U 321

    R 112 S 133 L 231 H 322

    Y 113 V 211 P 232 K 323

    J 121 G 212 T 233 Q 331

    X 122 M 213 E 311 A 332

    B 123 Z 221 N 312 I 333

    O 131 D 222 . 313

    Textul clar este scris pe linii, sub fiecare caracter fiind scrise coordonatele corespunzătoare:

    AZI ESTE MIERCURI

    323 3123 2 33 1 13 1 3

    323 1331 1 31 1 32 1 3

    213 1331 3 31 2 21 2 3 

    Cifrele sunt citite pe linii şi sunt grupate câte 3, obţinând textul criptat:

    323 312 323 311 313 323 133 113 113 213 213 133 133 122 123K N K E . K S Y Y M M S S X B

  • 8/19/2019 Curs Tsi 2014

    22/94

    2.5. CIFRUL ” DES”(DATA ENCRYPTION STANDARD) 

    Cel mai utilizat algoritm de criptare simetric este algoritmul DES (Data EncryptionStandard) adoptat în 1977 de către Biroul Naţional de Standarde, acum Institutul Naţionalde Standarde şi Tehnologie (NIST) din SUA.• Sistemul DES este primul standard dedicat protecţiei criptografice a datelor de calculator.

    În criptografie un cifru de tip bloc este un cifru cu cheie simetrică ce operează asupra unuigrup de biţi de lungime fixă, numit bloc. La criptare textul clar este împăr ţit în blocuri de lungimefixă  (de exemplu 8 biţi) şi se obţine un text criptat de aceeaşi lungime cu textul clar folosind ocheie simetrică. Decriptarea utilizează aceeaşi cheie ca şi criptarea.Cifrul DES simplu criptează un bloc de 8 biţi folosind o cheie K de 10 biţi. Algoritmul de criptare

     presupune utilizarea a cinci funcţii executate în ordinea următoare:

    1.  O permutare iniţială PI

    2. 

    O funcţie 1 K  f   3.  O funcţie de interschimbare SW ce comută între ele cele două jumătăţi ale textului

    4.  O funcţie 2 K  f   5.  O permutare finală PF ce este inversa permutării iniţiale.Mai întâi, folosind cheia iniţială  K se generează  două  subchei K 1  şi K 2  pe 8 biţi folosind

    următorul algoritm:

    Algoritm generare subchei

    1.  Se alege o cheie K pe 10 biţi

    2. 

    Lui K i se aplică permutarea următoare (notată P10):

    ⎟ ⎞

    ⎜⎝ 

    ⎛ 

    68911047253

    10987654321:10 P   

    3.  Se împarte K în două jumătăţi: K L şi K R  4.  Se face o rotire la stânga cu o poziţie pentru K L şi K R  5.  Se unesc K L şi K R şi se obţine K’6.  Se determină subcheia K 1 din K’ conform tabelului P8:

    ⎟ ⎞

    ⎜⎝ 

    ⎛ 

    910584736

    87654321:8 P   

    7. 

    Se face o rotire la stânga cu două poziţii pentru K L şi K R  8.  Se unesc K L şi K R şi se obţine K’’9.  Se determină subcheia K 1 din K’’ conform tabelului P8

    După  ce au fost obţinute subcheile K1 şi K2, textul este împăr ţit în blocuri de 8 biţi care suntcriptaţi după următorul algoritm:

    Algoritm de criptare: 

    1.  Se face o permutare iniţială  PI a textului M:

    ⎟⎠

     ⎞⎜⎝

    ⎛ 

    75841362

    87654321: PI   

  • 8/19/2019 Curs Tsi 2014

    23/94

    2.  Se împarte textul în două jumătăţi de câte 4 biţi: M= L | R

    3.  Jumătatea R se extinde la 8 biţi conform tabelului E:

    ⎟ ⎞

    ⎝ 

    ⎛ 

    14323214

    87654321: E    Se obţine R E.

    4.  Se face operaţia XOR între K1 şi R E şi se obţine un şir de 8 biţi care se pun într-un tabel

    notat cu F format din 2 linii şi 4 coloane: ⎟ ⎠

     ⎞⎜⎝ 

    ⎛ =

    13121110

    03020100

     f  f  f  f 

     f  f  f  f  F   

    5.  Cele două linii ale lui F se utilizează pentru a adresa doua tabele S0 şi S1 numite cutii S:

    ⎟⎟⎟⎟⎟

     ⎞

    ⎜⎜⎜⎜⎜

    ⎝ 

    ⎛ 

    =

    ⎟⎟⎟⎟⎟

     ⎠

     ⎞

    ⎜⎜⎜⎜⎜

    ⎝ 

    ⎛ 

    =

    3012

    0103

    3102

    3210

    ,

    2313

    3120

    0123

    2301

    10 S S  

    Prima linie a lui F este utilizată pentru a adresa pe S0 astfel:-   perechea f 00f 03 indică linia lui S0;-   perechea f 01f 02 indică coloana lui S0.A doua linie a lui F este utilizată pentru a adresa pe S1 astfel:-   perechea f 10f 13 indică linia lui S1;-   perechea f 11f 12 indică coloana lui S1.Se obţin două numere (unul din S0  celălalt din S1) care exprimate în binar ne dau patru biţinotaţi Sk1.

    6.  Sk1 se permută conform tabelului P4: ⎟ ⎞

    ⎝ 

    ⎛ 

    1342

    4321:4 P   . Se obţine

     pk S  1 

    7.  Se face XOR între L şi  pk S  1. Rezultatul se notează tot L.

    8.  Se interschimbă L cu R (funcţia SW).

    9.  Se concatenează L cu R.

    10. Se repetă paşii de la 2 la 7.

    11. Se concatenează L cu R.

    12. Se aplică o permutare finală conform tabelului:

    ⎟ ⎞

    ⎜⎝ 

    ⎛ ==   −

    68275314

    876543211 PI  PF   

    Aceşti algoritmi poate fi sintetizaţi în următoarele figuri

  • 8/19/2019 Curs Tsi 2014

    24/94

     

    Decriptarea se face similar cu criptarea, toate operaţiile efectuându-se în ordine inversă.

    • DES este un cifru bloc, cu lungimea de 64 biţi prelucraţi în conjuncţie cu o cheie formată din 56 biţi.• Mai sunt folosiţi 8 biţi pentru detectarea erorilor de transmisie. Această cheie este păstrată de către toţi membrii grupului care, astfel, pot cifra/descifra datele transmise de la unii laalţii.• Privit în ansamblu, algoritmul DES este o combinaţie a două  tehnici elementare decriptare: confuzie şi difuzieConstrucţia fundamentală  a unui bloc DES este o combinaţie unică  a acestor tehnici (o

    substituţie urmată de o permutare) asupra textului clar, bazată pe cheie.• Această construcţie este cunoscută ca rundă. Algortimul DES este compus din 16 runde.• Algoritmul este bazat pe un set de permutări, substituţii şi sumă mod 2, aplicate iterativ de16 ori, pe un bloc de date de 64 biţi, prin folosirea de fiecare dată a unei chei diferite de 48

     biţi, extrase iniţial dintr-o cheie de 56 biţi.• Datele sunt împăr ţite în blocuri de 64 biţi şi criptate f ăr ă a modifica lungimea lor.

    Cifrarea constă din trei categorii de prelucr ări care se fac asupra blocului cu text clar de la intrare:1. Blocul de date este supus unei permutări iniţiale, IP.2. Blocul permutat trece printr-un calcul complex care depinde de cheie şi care constă din 16iteraţii funcţional identice. Considerând cei 64 biţi ai unui bloc supuşi unei iteraţii “i”, senotează cu L

    i-1 şi R 

    i-1 cele două jumătăţi de 32 de biţi, stînga şi dreapta, care-l compun. Fie K 

    icheia pentru iteraţia “i” şi un bloc de 48 de biţi aleşi din cei 56 de biţi ai cheii. Prelucr ările uneiiteraţii sunt:

  • 8/19/2019 Curs Tsi 2014

    25/94

    Li

    = R i-1

    R i

    = Li-1

    ⊕  f(R i-1

    ,K i)

    3. Ultima iteraţie este diferită de celelalte, fiind definită de ecuaţiile:L

    16= R 

    15

    R 16 = L15⊕

     f(R 15 ,K 16).

      Securitatea algoritmului DES depinde de algoritmul în sine şi de utilizarea cheii de 56 de biţi.• De-a lungul timpului, algoritmul DES a fost cel mai studiat algoritm de criptare, atât prin

    diversele lucr ări care au apărut, dar şi prin rezultatele practice efectuate.• Un interes deosebit este manifestat asupra lungimii cheii.

  • 8/19/2019 Curs Tsi 2014

    26/94

      • In 1998, Electronic Frontier Foundation (EFF) a anunţat că  cifrul DES a fost spartfolosindu-se un calculator special care a costat 250000$.• Atacul a durat mai puţin de trei zile.• Dacă un cracker  poate executa un milion de decriptări pe milisecundă, atunci codul DES

     poate fi spart în aproape 10 ore.

     Numărul de ani necesari pentru a sparge DES

    Algoritmul DES are următorii paşi:

    Pasul 1: Crearea a 16 subchei, fiecare subcheie fiind de lungime 48 de biţi. 

    Cheia de 64 de biţi este permutată conform tabelului PC-1. Deoarece primul element dintabel este „57”, înseamnă  că  al 57-lea bit din cheia originală  K   devine primul bit din cheia

     permutată K’  . Al 49-lea bit din cheia originală devine al 2-lea bit al cheii permutate. ... Al 4-ea

     bit al cheii originale devine ultimul bit în cheia permutată. De notat este faptul că numai 56 de biţiai cheii originale apar în cheia permutată.

    PC-1 

    57 49 41 33 25 17 91 58 50 42 34 26 1810 2 59 51 43 35 2719 11 3 60 52 44 3663 55 47 39 31 23 157 62 54 46 38 30 22

    14 6 61 53 45 37 2921 13 5 28 20 12 4Exemplu:

  • 8/19/2019 Curs Tsi 2014

    27/94

    Din cheia originală de 64 de biţi:

    K  = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001

    Avem permutarea pe 56 de biţi

    K’ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111

    Această cheie se împarte în două jumătăţi C0 şi D0 fiecare de câte 28 de biţi

    Exemplu:

    Din cheia K’ luăm:

    C 0 = 1111000 0110011 0010101 0101111

     D0 = 0101010 1011001 1001111 0001111

    Cu C 0  şi D0 definite creăm şaisprezece blocuri de Cn şi Dn unde 161   ≤≤ n  . Fiecare pereche de blocuri Cn  şi Dn este formată din perechile anterioare Cn-1  şi Dn-1  pentru n=1,2,…..16 utilizând

    următorul tabel de deplasări la stânga ale blocului anterior. Pentru a efectua o deplasare la stânga

    mutăm fiecare bit cu 1 la stânga cu excepţia primului bit care este transferat la sfâr şitul blocului.

    numărul numărul deiteraţiei deplasări la stânga

    1 12 1

    3 24 25 26 27 28 29 110 211 212 213 2

    14 215 216 1

    Acest lucru înseamnă de exemplu că C3 şi D3 sunt obţinute din C2 şi D2 prin două deplasări lastânga şi C16 şi D16 sunt obţinute din C15 şi D15  prin o singur ă deplasare la stânga. În toate cazurile,

     prin deplasare la stânga se înţelege o rotire cu un bit spre stânga

    Exemplu: Din perechea originală C0 şi D0 obţinem:

    C 0 = 1111000011001100101010101111 D0 = 0101010101100110011110001111C 1 = 1110000110011001010101011111

  • 8/19/2019 Curs Tsi 2014

    28/94

    C 2 = 1100001100110010101010111111 D2 = 0101010110011001111000111101C 3 = 0000110011001010101011111111

     D3 = 0101011001100111100011110101C 4 = 0011001100101010101111111100

     D4 = 0101100110011110001111010101C 5 = 1100110010101010111111110000

     D5 = 0110011001111000111101010101C 6  = 0011001010101011111111000011

     D6  = 1001100111100011110101010101C 7  = 1100101010101111111100001100

     D7  = 0110011110001111010101010110C 8 = 0010101010111111110000110011

     D8 = 1001111000111101010101011001C 9 = 0101010101111111100001100110

     D9 = 0011110001111010101010110011C 10 = 0101010111111110000110011001

     D10

     = 1111000111101010101011001100C 11 = 0101011111111000011001100101

     D11 = 1100011110101010101100110011C 12 = 0101111111100001100110010101

     D12 = 0001111010101010110011001111C 13 = 0111111110000110011001010101

     D13 = 0111101010101011001100111100C 14 = 1111111000011001100101010101

     D14 = 1110101010101100110011110001C 15 = 1111100001100110010101010111

     D15 = 1010101010110011001111000111

    C 16  = 1111000011001100101010101111 D16  = 0101010101100110011110001111

    Acum formăm cheile  K n  pentru 161   ≤≤ n , aplicând următorul tabel de permutărifiecărei perechi concatenate C n Dn . Fiecare pereche are 56 de biţi dar PC-2 foloseşte doar 48 de

     biţi dintre aceştia.

    PC-2 

    14 17 11 24 1 53 28 15 6 21 10

    23 19 12 4 26 816 7 27 20 13 241 52 31 37 47 5530 40 51 45 33 4844 49 39 56 34 5346 42 50 36 29 32

    Astfel, primul bit al lui K n  este al 14-lea bit din C n Dn, al 2-lea bit al lui K n  este al 17-lea bit din

    C n Dn şi aşa mai departe, terminându-se cu al 48-ulea bit al lui K n  fiind al 32-lea bit din C n Dn.

    Exemplu:Pentru prima cheie avem:

  • 8/19/2019 Curs Tsi 2014

    29/94

    Care, după ce aplicăm permutarea PC-2, devine

     K 1 = 000110 110000 001011 101111 111111 000111 000001 110010

    Pentru celelalte chei avem:

     K 2 = 011110 011010 111011 011001 110110 111100 100111 100101

     K 3 = 010101 011111 110010 001010 010000 101100 111110 011001

     K 4 = 011100 101010 110111 010110 110110 110011 010100 011101

     K 5 = 011111 001110 110000 000111 111010 110101 001110 101000

     K 6  = 011000 111010 010100 111110 010100 000111 101100 101111

     K 7  = 111011 001000 010010 110111 111101 100001 100010 111100

     K 8 = 111101 111000 101000 111010 110000 010011 101111 111011

     K 9 = 111000 001101 101111 101011 111011 011110 011110 000001

     K 10 = 101100 011111 001101 000111 101110 100100 011001 001111

     K 11 = 001000 010101 111111 010011 110111 101101 001110 000110

     K 12 = 011101 010111 000111 110101 100101 000110 011111 101001

     K 13 = 100101 111100 010111 010001 111110 101011 101001 000001

     K 14 = 010111 110100 001110 110111 111100 101110 011100 111010

     K 15 = 101111 111001 000110 001101 001111 010011 111100 001010

     K 16  = 110010 110011 110110 001011 000011 100001 011111 110101

    Pasul 2: Criptarea blocurilor de date de 64 de biţi.

    Mai întâi se realizează  o permutare iniţială  IP  de 64 biţi a mesajului M. Aceasta

    rearanjează biţii conform următorului tabel, unde intr ările în tabel arată noul aranjament al biţilor

    faţă de ordinea iniţială. Astfel, al 58-lea bit la lui M devine primul bit al lui IP . Al 50-lea bit bit la

    lui M devine al doilea bit al lui IP ... al 7-lea bit al lui M devine ultimul bit al lui IP.

    IP 

    58 50 42 34 26 18 10 260 52 44 36 28 20 12 462 54 46 38 30 22 14 664 56 48 40 32 24 16 857 49 41 33 25 17 9 159 51 43 35 27 19 11 361 53 45 37 29 21 13 563 55 47 39 31 23 15 7

    Exemplu:

    Aplicând permutarea iniţială blocului M obţinem

    M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

    IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010 1010

  • 8/19/2019 Curs Tsi 2014

    30/94

    Aici al 58-ulea bit al lui M este „1” care devine primul bit al lui IP. Al 50-lea bit al lui M este „1” care devine al 2-lea bit al lui IP. Al 7-lea bit al lui M este „0” care devine ultimul bit al luiIP.Următoarea operaţie constă în divizarea blocului permutat IP in două jumătăţi de 32 de biţi L0 şiR 0.Exemplu:

    Din IP obţinem L0  jumătatea stângă şi R 0 jumătatea dreptă.

     L0 = 1100 1100 0000 0000 1100 1100 1111 1111

     R0 = 1111 0000 1010 1010 1111 0000 1010 1010

    Acum se realizează 16 iteraţii pentru 161   ≤≤ n , folosind o funcţie f  care operează pe blocuri de

    date: un bloc de 32 de biţi şi o cheie K n de 48 de biţi pentru a produce un bloc de 32 de biţi. Pentru

    n luând ia valori de 1 la 16 avem:

     Ln = Rn-1 

     Rn = Ln-1 ⊕   f ( Rn-1, K n)

    Rezulta un bloc final pentru (n = 16)  L16  R16 . La fiecare iteraţie se iau cei 32 de biţi din dreapta ai

    rezultatului anterior şi îi transformăm in cei 32 de biţi din stânga ai pasului curent. Pentru cei 32 de

     biţi din pasul curent facem XOR celor 32 de biţi din stânga ai pasului anterior cu calculul lui f .

    Exemplu:

    Pentru n=1 avem:

     K 1 = 000110 110000 001011 101111 111111 000111 000001 110010

     L1 = R0 = 1111 0000 1010 1010 1111 0000 1010 1010

     R1 = L0  ⊕   f ( R0, K 1)

    unde prin simbolul ⊕  se înţelege operaţia XOR (bit + bit modulo 2).

    R ămâne de explicat cum funcţionează funcţia f . Trebuie mai întâi sa mărim fiecare bloc Rn-1  de la

    32 de biţi la 48 de biţi . Acest lucru este realizat folosind o tabelă  de selecţie care repetă  unii

    dintre biţi în  Rn-1 . Folosirea acestei tabele de selecţie o vom numi funcţia E .

    Deci E( Rn-1) are un bloc de intrare pe 32 de biţi şi un bloc de ieşire pe 48 de biţi. Fie E  cu

    48 de biţi la ieşire, pe care îi scriem in 8 blocuri de câte 6 biţi fiecare, care sunt obţinuţi selectând

     biţii din intrare în ordinea indicată de următorul tabel:

    Tabelul de selecţie al funcţiei E 

    32 1 2 3 4 54 5 6 7 8 98 9 10 11 12 13

    12 13 14 15 16 1716 17 18 19 20 2120 21 22 23 24 25

    24 25 26 27 28 2928 29 30 31 32 1

  • 8/19/2019 Curs Tsi 2014

    31/94

    Deci primii trei biţi ai E( Rn-1) sunt biţii poziţionaţi în poziţiile 32, 1 şi 2 in Rn-1 in timp ce

    ultimii 2 biţi ai E( Rn-1) sunt sunt biţii în poziţiile 32 şi 1.

    Exemplu:

    Calculăm E( R0) din R0 după cum urmează:

     R0 = 1111 0000 1010 1010 1111 0000 1010 1010

    E( R0) = 011110 100001 010101 010101 011110 100001 010101 010101

    (De notat este faptul că fiecare bloc care a avut iniţial la ieşire 4 biţi s-a mărit la 6 biţi pe

    ieşire)

    În continuare vom face XOR ieşirii E( Rn-1) cu cheia K n :

     K n  ⊕  E( Rn-1).

    Exemplu:

    Pentru  K 1 , E( R0) avem :

     K 1 = 000110 110000 001011 101111 111111 000111 000001 110010

    E( R0) = 011110 100001 010101 010101 011110 100001 010101 010101

     K 1 ⊕ E( R0) = 011000 010001 011110 111010 100001 100110 010100 100111.

    Până în acest moment am reuşit să mărim  Rn-1 de la 32 de biţi la 48 de biţi şi am aplicatXOR rezultatului cu cheia K n . Acum avem 48 de biţi sau opt grupuri de şase biţi. Acum cu fiecaregrup de 6 biţi facem următorul lucru: îi folosim ca adrese în tabele numite „cutii  S ” . Fiecareadresă de 6 biţi ne va da o adresă în altă „cutie”. La adresa respectivă se află un număr format din4 biţi. Acest număr pe 4 biţi va înlocui originalul de 6 biţi. În acest fel transformăm cele opt

    grupuri de 6 biţi în opt grupuri de patru biţi pentru a avea un total de 32 de biţi.Scriem rezultatul anterior, care are 48 de biţi, de forma:

     K n  ⊕ E( Rn-1) = B1 B2 B3 B4 B5 B6  B7  B8,Unde Bi este un grup de 6 biţi. Acum calculăm

     S 1(B1 )S 2(B2 )S 3(B3 )S 4(B4 )S 5(B5 )S 6 (B6  )S 7 (B7  )S 8(B8 ) Unde S i (Bi  ) face referire la ieşirea i a cutiei S . Fiecare funcţie S1, S2,..., S8, i-a ca intrare un bloc

     pe 6 biţi si ca ieşire un bloc pe 4 biţi.Tabelul pentru a determina S 1 se află explicat mai jos:

    S1

    Număr Coloană Nr.Rând.  0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 

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

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

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

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

    Daca S 1 este funcţia definită în acest tabel si B este un bloc pe 6 biţi , atunci  S 1 (B) să află astfel: Primul şi ultimul bit al lui B reprezintă în baza 2 raza zecimală de la 0 la 3 (în binar dela 00 la 11). Fie acel număr i  . Cei 4 biţi din mijloc ai lui B reprezintă un număr în baza 2 în raza

  • 8/19/2019 Curs Tsi 2014

    32/94

    rândul i si coloana j , este numărul raza zecimală de la 0 la 15 şi este reprezentat unic pe 4 biţi.Acel bloc este ieşirea S 1 (B) a lui S 1  pentru intrarea B.

    De exemplu pentru blocul de intrare  B = 011011 , primul bit este „0” iar ultimul este „1”indicând 01 ca rând. Acesta este rândul 1. Cei 4 biţi din mijloc sunt „1101”. Acesta esteechivalentul binar al zecimalului 13, deci coloana este coloana 13.În rândul 1 coloana 13 apare 5. Acesta determină  ieşirea; 5 in binar este 0101, deci ieşirea este0101. Deci S 1(011011) = 0101.

    Tabelele care definesc funcţiile de la  S 1 ,...,S 8 sunt următoarele:S1 

    14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 70 15 7 4 14 2 13 1 10 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 10 5 015 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

    S2 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 103 13 4 7 15 2 8 14 12 0 1 10 6 9 11 50 14 7 11 10 4 13 1 5 8 12 6 9 3 2 1513 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9

    S3 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 813 7 0 9 3 4 6 10 2 8 5 14 12 11 15 113 6 4 9 8 15 3 0 11 1 2 12 5 10 14 71 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12

    S4 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 1513 8 11 5 6 15 0 3 4 7 2 12 1 10 14 910 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4

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

    S5 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 914 11 2 12 4 7 13 1 5 0 15 10 3 9 8 64 2 1 11 10 13 7 8 15 9 12 5 6 3 0 1411 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3

    S6 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 1110 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8

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

    S7 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 113 0 11 7 4 9 1 10 14 3 5 12 2 15 8 61 4 11 13 12 3 7 14 10 15 6 8 0 5 9 26 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12

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

    1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 27 11 4 1 9 12 14 2 0 6 10 13 15 3 5 82 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11

  • 8/19/2019 Curs Tsi 2014

    33/94

    Exemplu:

    In prima rundă obţinem ca ieşire a celor 8 cutii S : K 1 + E( R0) = 011000 010001 011110 111010 100001 100110 010100 100111. S 1(B1 )S 2(B2 )S 3(B3 )S 4(B4 )S 5(B5 )S 6 (B6  )S 7 (B7  )S 8(B8 ) = 0101 1100 1000 0010 1011 0101 1001 0111

    În ultima parte în calcularea funcţiei f  facem o permutare P  a ieşirii cutiei S  şi obţinem valoarea

    finală a lui f .  f  = P( S 1(B1 )S 2(B2 )...S 8(B8 ))

    Permutarea P este definită în tabelul de mai jos. P  produce o ieşire pe 32 de biţi din o intrare pe32 de biţi, efectuând o permutare a biţilor blocului de intrare.

    16 7 20 2129 12 28 171 15 23 265 18 31 10

    2 8 24 1432 27 3 919 13 30 622 11 4 25

    Exemplu:

    Din ieşirea celor opt cutii S

     S 1(B1 )S 2(B2 )S 3(B3 )S 4(B4 )S 5(B5 )S 6 (B6  )S 7 (B7  )S 8(B8 ) = 0101 1100 1000 0010 1011 0101 1001 0111

    Obţinem:

     f  = 0010 0011 0100 1010 1010 1001 1011 1011

     R1 = L0 + f ( R0 , K 1 )

    = 1100 1100 0000 0000 1100 1100 1111 1111

    + 0010 0011 0100 1010 1010 1001 1011 1011

    = 1110 1111 0100 1010 0110 0101 0100 0100

    În următoarea parte vom avea  L2 =  R1, care este blocul pe care decât ce l-am calculat, şi acum

    trebuie să calculăm R2 = L1 + f(R1 , K 2 ), si de încă 16 ori. La sfâr şit vom avea blocurile L16   şi R16  

    Acum inversăm ordinea celor două blocuri într-un bloc de 64 de biţi  R16  L16 şi aplicăm o ultimă 

     permutare IP-1 ca în următorul tabel:

    IP-1 

    40 8 48 16 56 24 64 3239 7 47 15 55 23 63 3138 6 46 14 54 22 62 3037 5 45 13 53 21 61 2936 4 44 12 52 20 60 2835 3 43 11 51 19 59 2734 2 42 10 50 18 58 26

    33 1 41 9 49 17 57 25

  • 8/19/2019 Curs Tsi 2014

    34/94

    Exemplu:

    Dacă  procesăm toate cele 16 blocuri folosind metoda descrisă  mai sus, avem la a 16-a

    rundă:

     L16  = 0100 0011 0100 0010 0011 0010 0011 0100

     R16  = 0000 1010 0100 1100 1101 1001 1001 0101

    Inversăm ordinea celor două blocuri şi aplicăm o ultimă permutare lui

     R16  L16  = 00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100

     IP -1 = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101

    Care în format hexazecimal este

    85E813540F0AB405.

    Aceasta este forma criptată a lui M = 0123456789ABCDEF: adică, C = 85E813540F0AB405.

    Decriptarea este inversul criptării, urmărind aceiaşi paşi dar in ordine inversă, trebuind să 

    inversăm ordinea în care sunt aplicate cheile.

    Cifrul DES triplu

    Cifrul DES triplu este cifrul DES apicat de trei ori folosind două chei de 56 de biţi.-  Mai întâi textul clar este criptat folosind prima cheie ;

    -  Se urmează paşii folosiţi la decriptare folosind cea de-a doua cheie. Deoarece nu este cheiacorectă textul este încurcat şi mai mult.

    Textul obţinut este criptat din nou utilizând prima cheie rezultând textul criptat final.

    Spaţiul cheilor este de 2112.

  • 8/19/2019 Curs Tsi 2014

    35/94

     3. ALGORITMI CRIPTOGRAFICI CU CHEIE PUBLICĂ 

    Un moment important în evoluţia criptografiei moderne l-a constituit crearea, în anul 1976,de către Whitfield Diffie şi Martin Hellman, cercetători la Univeritatea Stanford din California, aunui principiu diferit de acela al cifr ării simetrice. Ei au pus bazele criptografiei asimetrice cu chei

     publice. În locul unei singure chei secrete, criptografia asimetrică foloseşte două chei diferite, una pentru cifrare, alta pentru descifrare. Deoarece este imposibilă deducerea unei chei din cealaltă,una din chei este f ăcută publică, fiind pusă la îndemâna oricui doreşte să transmită un mesaj cifrat.Doar destinatarul, care deţine cea de-a doua cheie, poate descifra şi utiliza mesajul. Tehnicacheilor publice poate fi folosită şi pentru autentificarea meajelor prin semnătur ă digitală, fapt carei-a sporit popularitatea. În continuare cele trei din cele mai utilizate tipuri de sisteme de criptare cualgoritmi cu cheie publică:-  sisteme de cifrare exponenţială RSA (Rivert-Shamir-Adleman);-  cifrul EL GAMAL (EG);-  cifrul Rabin.

    1. Cifrul RSA

    Cel mai renumit criptosistem cu cheie publică este RSA, numit astfel după numele celortrei care l-au dezvoltat: Rivest, Adi Shamir, şi Leonard Adleman. In timpul dezvoltăriialgoritmului (1977), cei trei erau cercetători la Laboratoarele de Informatică MIT .

    Algoritmul lor a fost anunţat pentru prima oar ă în Martin Gardner's "Mathematical Games"în august 1977. Articolul lor iniţial, “O metodă  pentru obţinerea semnăturilor digitale şi alecriptosistemelor de cod public” a fost publicat in 1978 Communications of the Association forComputing Machinery.

    Să ne amintim că, criptosistemele cu cheie publică sunt proiectate de funcţii matematicecare sunt relativ uşor de calculat, dar pentru care inversa este foarte dificil de determinat f ăr ă informaţii adiţionale (cheia privată).

    Pentru RSA partea relativ uşoar ă este găsirea unor numere prime mari şi a perechilor denumere care se multiplică. Partea grea o constituie factorizarea numerelor mari. Bazele matematiceau fost puse de matematicianul francez Pierre de Fermat. Un rezultat cunoscut ca  Mica teoremă alui Fermat  afirmă că pentru oricare număr prim r  şi oricare număr întreg a, care nu este divizibil

    cu r , r ar  mod11 ≡− .În prezent, ceea ce este folosit în mod direct este un corolar al acestei teoreme, şi anume un

    rezultat mai general datorat matematicianului elveţian Leonard Euler. În forma în care acesta estefolosit în criptosistemul RSA, acest corolar afirmă că dacă r  şi s sunt numere prime şi a, un număr

    întreg care nu are divizor comun cu r  sau cu s, atunci ( 1)( 1) 1modr sa rs− − ≡ .Criptosistemul RSA operează în modul următor:

    Criptarea-  Se aleg două numere prime mari, notate r  şi s.-  Produsul lui r şi  s este notat n=rs. În practică numerele prime r şi  s sunt două numere cu

    aproximativ 100 de cifre fiecare şi deci produsul lor n  are aproximativ 200 de cifre. Pentruexemplele noastre vom folosi numere prime mici, să zicem 53r  = , 61 s = , şi 3233n rs= =  

    -  Apoi se selectează un număr întreg e care are un invers modulo ( 1)( 1)r s− − . Acesta estedenumit exponent de criptare. Pentru exemplul nostru, vom alege 37e =  care are un inversmodulo (r-1)(s-1).

    ( 1)( 1) (53 1)(61 1) 52 60 3120r s− − = − − = × =  

    Apoi se construieşte inversul multiplicativ e modulo (r-1)(s-1)  număr care esteexponentul de decriptare şi este notat d  . Pentru exemplul nostru 253d  = .

    Cheia publică constă din două numere: (n e) Acestea două sunt disponibile oricui care

  • 8/19/2019 Curs Tsi 2014

    36/94

    -  Exponentul de decriptare d  secret este cheia privată.Pentru ca cineva să criptanalizeze un mesaj trimis lui A folosind cheia sa, ar trebui să  fie

    capabil să construiască cheia sa privată d  care este inversul lui e modulo (r-1)(s-1). Acest lucru poate fi f ăcut uşor daca r şi s sunt cunoscute, dar pentru a obţine r şi s, criptanalistul ar avea nevoiesă factorizeze cheia publică n, lucru foarte dificil dacă n este foarte mare, iar r şi s au aproximativacelaşi ordin de mărime.

    Să zicem că B doreşte să trimită un mesaj „midway” lui A, folosind cheia publică a lui A.La început mesajul trebuie transformat într-un şir de numere. În practică codul ASCII este folositîn mod obişnuit; noi vom folosi uzualul nostru a = 01, b = 02, …, z = 26. Astfel „midway” va fitransformat intr-un şir 130904230125. Şirul este spart în blocuri in care fiecare este mai mic decâtmodulul 3233 in cazul nostru.

    Vom avea blocuri de câte patru cifre.1309 0423 0125 

    Textul cifrat este obţinut ridicând fiecare bloc de text simplu la exponentul e modulo n.

    mode p n C =  37

    1309 mod3233 3027=  370423 mod3233 0635=  370125 mod3233 1699=  

    Mesajul pe care B il transmite lui A este

    3027 0635 1699

     Decriptarea

    Decriptarea depinde de corolarul lui Euler la teorema lui Fermat. Să ne amintim că acestcorolar afirmă că  ( 1)( 1) 1modr sa rs− − ≡ . Deoarece n=rs, aceasta înseamnă că  ( 1)( 1) 1modr sa n− − ≡ .Acum e  şi d   sunt inversele modulo ( 1)( 1)r s− − ; adică  1mod( 1)( 1)ed r s≡ − − sau

    1 ( 1)( 1)ed k r s= + − − . Textul cifrat este modeC p n≡ .

    ( )d e d ed  C p p≡ ≡ 1 ( 1)( 1) 1 ( 1)( 1)k r s k r s p p p+ − − − −≡ ≡   ( )   ( )( 1)( 1) 1 modk  k r s p p p p n− −≡ ≡ ≡  

    care este textul clar.Iată decriptarea exemplului nostru:

    modd C n p=  2533027 mod 3233 1309=  2530635 mod 3233 0423=  

    2531699 mod 3233 0125=  

    Astfel mesajul criptat 1309 0423 0125 se decriptează  in 1309 0423 0125 care in textulsimplu înseamnă „midway”.

    Aspecte practice ale RSA

    Utilitate: Cu toate îmbunătăţirile de implementare (multiplicare modular ă  rapidă, exponenţieremodular ă rapidă, aplicarea TCR pentru decriptare rapidă), RSA este mult mai lent decât algoritmiimai mult sau mai puţin clasici cu cheie simetrică.

  • 8/19/2019 Curs Tsi 2014

    37/94

     – transmitere de chei pentru algoritmi de criptare cu cheie simetrică  – criptarea unor cantităţi relativ mici de informaţieAlegerea modulului nn se alege de cel puţin 1024 de biţi pentru o securitate pe termen mai lung.Alegerea numerelor prime r si s r şi s trebuie alese astfel ca factorizarea lui n să fie practic imposibilă. Condiţii:

    (1) r şi s să fie suficient de mari şi cam de aceeaşi lungime în biţi.Dacă n are o lungime de 1024, r şi s se iau cam de 512 biţi.Aceasta pentru a evita cei mai performanţi algoritmi de factorizare.

    (2) r-s să nu fie prea mică.Dacă   sr  ≈ , atunci n p ≈   şi metoda Fermat de factorizare se poate aplica cu succes. Dacă r şi s sealeg aleator, atunci probabilitatea ca r-s să fie mică este extrem de mică. 

    (3) se recomandă alegerea unor numere prime tari, adică:(i) r-1 are un factor prim mare, notat cu t(ii) r+1 are un factor prim mare

    (iii) t-1 are un factor prim mare.Condiţiile (i) şi (ii) se cer pentru a evita factorizarea cu anumiţi algoritmi.Practic însă, numerele prime tari nu ofer ă protecţie mai mare decât numerele prime alese aleator.Alegerea exponentului de criptare e Pentru creşterea vitezei de criptare, e se alege pe cât posibil mic sau cu puţine cifre 1 în scrierea sa

     binar ă. De obicei, e = 3 (o ridicare la pătrat modular ă¸si o multiplicare modular ă). Aici r-1 şi s-1nu trebuie să se dividă cu 3. O altă valoare utilizată este e = 216 + 1 = 65537 (16 ridicări la pătratmodulare şi o multiplicare modular ă, deoarece are doar 2 cifre 1 în scrierea sa binar ă). Aceasta

     protejează şi împotriva atacurilor descrise anterior, deoarece este puţin probabil ca mesajul să fietrimis către 216 +1 utilizatori.

    2. Cifrul El Gamal

    În 1985 Tahir El Gamal a publicat un criptosistem cu cheie publică  bazat pe problemalogaritmului discret. Algoritmul este ceva mai complicat decât RSA, dar el poate fi mai uşorgeneralizat.Logaritmi

    Un logaritm este un exponent. Un alt mod de a exprima că 2 ridicat la puterea 5 este 32 este acelacă cinci este logaritmul lui 32 în baza 2

    532log222222 25 =⇔=××××  

    Logaritmul este exponentul 5.Este relativ uşor să ridici numerele la o putere; de exemplu:

    20

    douazeci de factori3 3 ... 3 3486784401= × × =  

    Este mai greu să  găseşti logaritmul; de exemplu, care este logaritmul în baza 2 al numărului8589934592?

    ?2 8589934592=  Pentru numere reale putem găsi r ăspunsul prin încercări. De exemplu, 210=1024. Avem

    nevoie de un exponent mai mare (adică de un logaritm mai mare). 220=1048576; avem nevoie deun exponent şi mai mare. 230=1073741824; în continuare avem nevoie de un logaritm mai mare deatât; 240=1099511627776  . Observăm că  acesta este prea mare. Încercăm 235=34359735368  , si

    acesta este prea mare. In sfâr şit vedem că 233

    =8589934592, deci logaritm în baza 2 al numărului8589934592 este 33.

    Criptosistemul El Gamal şi sistemul cu schimb de cheie Diffie Hellman se bazează pe

  • 8/19/2019 Curs Tsi 2014

    38/94

    Logaritmi discreţi

    Matematica discretă  se refer ă  la operarea cu mulţimi de numere care au proprietatea cafiecare număr al mulţimii să fie înconjurat de o vecinătate care nu conţine nici un alt număr dinacea mulţime. Problema logaritmului discret se refer ă la problema găsirii a unui logaritm modulo un număr întreg.

     Problema logaritmului discretProblema logaritmului discret solicită o soluţie la o problemă de genul următor:

    ?2 9mod11≡  La fel ca multiplicarea modulo  p, ridicarea la puteri modulo  p amestecă rezultatele. De exemplu

     puterile lui 2 modulo 11 sunt:12 2mod11≡  22 4mod11≡  32 8mod11≡  42 5mod11≡  5

    2 10mod11≡  62 9mod11≡  72 7mod11≡  82 3mod11≡  92 6mod11≡  102 1mod11≡  

    Deci r ăspunsul la problema noastr ă este 6: 62 9mod11≡ .Deoarece puterile nu cresc aşa cum o face exponentul nu mai putem să  facem o căutare

     prin încercări aşa cum am f ăcut mai înainte. Nu se cunoaşte nici un algoritm pentru calcularealogaritmilor discreţi. Cu excepţia cazurilor speciale, singurul mod de a determina logaritmul

    discret este prin încercare şi eroare. Pentru valori mai ale lui p, există prea multe posibilităţi pentrua fi viabilă folosirea „for ţei brute” (verificarea tuturor variantelor).

    Se observă că în acest exemplu zece puteri ale bazei 2 sunt reprezentanţii celor zece clasede echivalenţă  nonzero modulo 11 - 1,2,3,4,5,6,7,8,9,10. Această  proprietate se poate descriespunând că  2 este element primitiv  (sau rădăcină  primitivă). Întotdeauna există  cel puţin unelement primitiv. Deoarece toate cele 10 numere întregi nonzero modulo 11 apar ca puteri ale lui2, ar fi nevoie de 10 incercări pentru a descoperii logaritmul.Algoritmul de criptare este următorul:I. Generarea de cheie.

    I.1. Se alege un număr prim mare aleator p şi un generator g al grupului * p Z  .

    I.2. Se alege un număr aleator x, 21   −≤≤  p x  şi se calculează gx

    mod p.I.3. Cheia publică o constituie tripletul (p, g, q=gx mod p) iar cheia privată x.

    II. Criptarea.II.1. Se reprezintă mesajul ca un număr întreg m, 10   −≤≤  pm .II.2. Se alege un număr aleator k , 21   −≤≤  pk  .II.3. Se calculează:

    -  y= gk mod p-  z=m (gx)k mod p=m qk  mod p

    II.4. Textul cifrat îl reprezintă perechea c=(y, z).

    III. Decriptarea.

    III.1. Folosind cheia privată x, se calculează y-x mod p 

  • 8/19/2019 Curs Tsi 2014

    39/94

      y-xz mod p= g-kx m (gx)k mod p = m mod p =m Exemplu: Criptarea El Gamal

    Pentru a păstra calculul la un nivel care poate fi realizat pe calculator, vom lua un exemplucare foloseşte un text simplu.

    Vom selecta numărul prim  p=997 şi alegem g=7 ca element primitiv. Mesajul trebuie să fie un număr întreg mod p deci în exemplul nostru trebuie să fie unul din următoarele: 1,2,…,996.Mesajul nostru pe care vrem să-l criptăm este m=813.

    Cel care primeşte mesajul selectează  un număr întreg pozitiv  x  şi se calculează  p g q  x mod=  

    Să zicem x=105, rezultă  989997mod7mod 105 ===  p g q  x .

    Cheia publică este p=997, g=7 şi q=989.Cheia privată este x=105.

    Pentru valori mari ale numărului prim p, cheia privată este greu de determinat din cheia publică.Cel care trimite mesajul criptat alege un număr întreg pozitiv k  şi calculează 

     p g  yk  mod= .

     pmq z  k  mod= .Să zicem că cel care trimite alege k =87.

    877 mod997 849 y = =  87813 989 mod997 19 z  = × =  

    Mesajul cifrat trimis este ( y,  z)=( 849, 19). Decriptarea El Gamal

    Cum se decriptează mesajul?Trebuie să ţinem cont că cel care primeşte mesajul are unele informaţii adiţionale – şi anume cheia

     privată   x. Cel care trimite mesajul „posedă” această  informaţie însă  ascunsă  în numărul

     p g q

     x

    mod= . Cel care trimite mesajul criptat nu poate afla numărul x f ăr ă să rezolve problema

    logaritmului discret  p g q mod?=  

    Folosind textul cifrat şi cheia privată, cel care primeşte calculează   p zy  x mod− .

    m pm pqg m p g mq p zy k k  x xk k  x ====   −−− mod)1(mod)(mod)(modPentru exemplul nostru ,

    997mod620997mod558997mod)849(997mod849 11105105 ====   −−−− x y  

    813997mod62019   =×=− x zy  Care a fost mesajul m iniţial.

    3. Cifrul Rabin

    Se bazează  pe dificultatea determinării r ădăcinii pătrate modulo n. Pentru generarea decheie se aleg două numere prime distincte mari p şi q astfel încât p=3 mod 4 şi q=3 mod 4 şi secalculează n=p*q.Cheia publică este n iar cheia privată este formată din perechea (p, q).Criptarea se realizează în modul următor:

    -  se reprezintă mesajul ca un număr întreg m, unde 10   −≤≤ nm  -  textul cifrat se obţine cu relaţia c=m2  mod n.

    Pentru decriptare se utilizează următoarea lemă:LEMĂ: Găsirea r ădăcinilor pătrate ale lui a mod n, unde n=pq, p şi q numere prime, se face astfel:

    se determină cele două r ădăcini pătrate r şi –r ale lui a mod p şi cele două r ădăcini pătrate sşi –s ale lui a mod q;se determină u şi v astfel încât up+vq=1;

  • 8/19/2019 Curs Tsi 2014

    40/94

    -  cele patru r ădăcini pătrate ale lui a mod n sunt  x± mod n şi  y± mod n undex=r vq+usp mod n şi y=r vq- usp mod n.

    Dacă m1, m2, m3, m4 sunt cele patru r ădăcini pătrate ale lui c mod n calculate cu ajutorul lemeianterioare, se decide care dintre aceste mesaje este cel corect utilizând redundanţa (de exempluultimii k biţi ai mesajului se repetă). Redundanţa previne şi anumite atacuri.

    Exemplu: 

    Se aleg două numere prime p=7 şi q=11. (p=3 mod 4 şi q =3 mod 4).n= p*q=7*11=77Cheia publică este 77 iar cheia privată perechea (7, 11).Presupunem că avem de criptat mesajul m=20;Se calculează mesajul criptat

    c=202  mod 77 = 15.Pentru decriptare mai întâi se calculează r şi s. Se poate demonstra că 

    c mod p = 41+ p

    c  mod p

    c mod q = 41+q

    c  mod p

    Se obţine

    r= 417+

    c  mod 7=152 mod 7=1

    s= 4111+

    c  mod 11=153 mod 11=9Utilizând algoritmul extins al lui Euclid numerele u şi v astfel încât up+vq=1. Se obţin următoarelerelaţii:

    11=1*7+4 1=4-1*3;7=1*4+3; 1=4-1*(7-1*4)=2*4-7;4=1*3+1; 1=2*(11-1*7)-7=2*11-3*7;Deci u=-3 şi v=2.Acum se pot calcula x şi y:m1=x=r vq+usp mod n =1*2*11+( - 3) *9*7 mod 77 = 13 şim2=y=r vq- usp mod n=1*2*11- ( - 3) *9*7 mod 77 = 57 Celelalte două r ădăcini sunt:m3=- x=77- 13=64 m4=- y=77- 57=20 Soluţia căutată este m4=20 şi ea poate fi găsită studiind redundanţa.

    Algoritmul lui Euclid extins se foloseste pentru găsirea lui x si y astfel incat a * x + b * y = d  

  • 8/19/2019 Curs Tsi 2014

    41/94

    Sisteme de autentificare în re ţ ele de calculatoare  şi sisteme distribuite

    4 AUTENTIFICAREA SI DISTRIBUTIA CHEILOR

     

    Procesul de autentificare a păr ţilor participante la o comunicaţie presupunefolosirea tehnicilor criptografice pentru a împiedica un posibil atac. La rândul lor,

    tehnicile criptografice folosesc chei pentru codificare / decodificare, ce trebuie distribuite păr ţilor. În acest capitol vom face o descriere a celor mai importante concepte.

    Tehnici criptografice

    În general, criptologia1  se refer ă  la ştiinţa comunicării secretizate. Aceastacuprinde atât criptografia cât şi criptanaliza.

    Funcţii de dispersie cu sens unicFuncţiile cu sens unic sunt foarte importante în criptologie. Pe înţelesul tuturor,

    funcţiile cu sens unic sunt uşor de calculat dar greu de inversat. Matematic, acest lucru se

    spune astfel:Funcţia f : A → B este o funcţie cu sens unic dacă f(x) se calculează uşor pentrutoate valorile x ∈ A, dar este nefezabil din punct de vedere al timpului de calcul când sedă y ∈ f(A) = B să se găsească un x ∈ A astfel încât f(x) = y. Această definiţie nu este

     precisă  în sensul matematic deoarece nu defineşte termenii „uşor” şi „nefezabil”. Esteimportant de ar ătat că existenţa funcţiilor cu sens unic este o presupunere care nu a fostîncă dovedită.

     Nu este în general necesar ca o funcţie cu sens unic să fie injectivă, valori distincteiniţiale putând să conducă la acelaşi rezultat. O funcţie cu sens unic f : A → B pentru care|B|

  • 8/19/2019 Curs Tsi 2014

    42/94

     Introducere

    Criptografia cu chei publice

    Ideea funcţiilor cu sens unic a dus la inventarea criptografiei cu chei publice decătre Diffie şi Hellman în 1976. Din punct de vedere practic, criptografia cu chei publice

     presupune existenţa unei perechi de chei legate matematic. Una dintre ele se numeştecheie publică şi trebuie publicată – f ăr ă a afecta securitatea sistemului – iar cealaltă este

    cheia privat ă care nu trebuie să fie deconspirată în nici un fel. [DIFF88] Derivarea cheiloruna dintr-alta este nefezabilă din punct de vedere computaţional. Cel mai folosit sistem cuchei publice este RSA, inventat în 1978 de Rivest, Shamir şi Adelman la MassachusettsInstitute of Technology (MIT).

    Aplicarea criptografiei cu chei publice necesită  un cadru de autentificare careleagă cheia publică a utilizatorului de identitatea sa. Certificatul cu cheie publică este odovadă certificată de o autoritate de certificare (CA – certificate authority). Folosirea CAevită verificarea de către utilizatorii individuali a cheilor publice a altor utilizatori.

    Criptografia cu chei publice este mai convenabilă  teoretic decât criptografia