zgureanu a. metode criptografice de protectie a informatiei. note de curs.pdf

149
ACADEMIA DE STUDII ECONOMICE A MOLDOVEI Zgureanu Aureliu METODE CRIPTOGRAFICE DE PROTECŢIE A INFNORMAŢIEI Note de curs CHIŞINĂU 2014

Upload: ilie-cristian

Post on 08-Nov-2015

77 views

Category:

Documents


10 download

TRANSCRIPT

  • ACADEMIA DE STUDII ECONOMICE A MOLDOVEI

    Zgureanu Aureliu

    METODE CRIPTOGRAFICE DE PROTECIE A INFNORMAIEI

    Note de curs

    CHIINU 2014

  • 2

    Notele de Curs la disciplina Criptarea i securitatea informaiei a fost examinat i aprobat la edina catedrei Tehnologii Informaionale, i la edina Comisiei metodice i de calitate a CSIE.

    Zgureanu Aureliu, 2014

  • 3

    Cuprins

    Introducere ............................................................................................................ 4

    Tema 1. Noiuni de baz ale Criptografiei. ......................................................... 6

    Tema 2. Cifruri clasice. Cifruri de substituie .................................................. 12

    Tema 3. Cifruri clasice. Cifrul de transpoziii .................................................. 25

    Tema 4. Maini rotor ........................................................................................... 30

    Tema 5. Algoritmi simetrici de criptare. Cifruri bloc. Reeaua Feistel .......... 40

    Tema 6. Algoritmul de cifrare Lucifer .............................................................. 46

    Tema 7. Algoritmul DES ..................................................................................... 59

    Tema 8. Cifrul AES ............................................................................................. 70

    Tema 9. Algoritmi simetrici de tip ir (stream cypher) ................................... 81

    Tema 10. Criptarea cu cheie public ................................................................. 92

    Tema 11. Sisteme asimetrice bazate pe curbe eliptice .................................... 101

    Tema 12. Sistemul de criptare RSA ................................................................. 108

    Tema 13. Funciile HASH criptografice .......................................................... 114

    Tema 14. Semnturi digitale. ............................................................................ 123

    Tema 15. Atacuri criptografice ........................................................................ 133

    Bibliografie ......................................................................................................... 147

  • 4

    Introducere Una dintre caracteristicile societii moderne o reprezint

    Informatizarea. Tehnologii informaionale noi sunt permanent implementate n diverse domenii ale activitii umane. Prin utilizarea calculatoarelor i a software-ului respectiv sunt dirijate procese complexe din cele mai diverse domenii de activitate. Calculatoarele stau la baza mulimilor de sisteme de prelucrare a informaiei, care nfptuiesc pstrarea, prelucrarea informaiei, distribuirea ei ctre utilizator, realiznd astfel tehnologii informaionale moderne.

    Odat cu dezvoltarea mecanismelor, metodelor i formelor de automatizare a proceselor de prelucrare a informaiei crete i dependena societii de gradul de securitate a proceselor de gestionare a informaiei, realizat prin intermediul diverselor tehnologii informaionale aplicate, de care depinde bunstarea, sau uneori i viaa multor oameni.

    n acest context un specialist modern din domeniul Tehnologiilor Informaionale este obligat s posede cunotine i aptitudini de asigurare a securitii informaiei n toate fazele de dezvoltare i de funcionare a sistemelor informaionale.

    Soluionarea problemelor legate de securitatea informaiei constituie obiectul de studiu al Criptografiei, care este o ramur a matematicii moderne, ce se ocup de elaborarea metodelor matematice capabile s asigure confidenialitatea, autentificarea i non-repudierea mesajelor, precum i integritatea datelor vehiculate. Criptografia este un set de standarde i protocoale pentru codificarea datelor i mesajelor, astfel nct acestea s poat fi stocate i transmise mai sigur. Ea st la baza multor servicii i mecanisme de securitate, folosind metode matematice pentru transformarea datelor, n intenia de a ascunde coninutul lor sau de a le proteja mpotriva modificrii. Criptografia ne ajut s avem comunicaii mai sigure, chiar i atunci cnd mediul de transmitere (de exemplu, Internetul) nu este de ncredere. Ea poate fi utilizat pentru a contribui la asigurarea integritii datelor, precum i la meninerea lor n calitate de date secrete, ne permite s verificm originea datelor i a mesajelor prin utilizarea semnturilor digitale i a certificatelor.

    Unul dintre instrumentele principale ale criptografiei este sistemul de criptare, la baza cruia se afl algoritmul de criptare.

  • 5

    Scopul acestui curs este de familiariza viitorul specialist din domeniul Tehnologiilor Informaionale cu noiunile fundamentale ale criptografiei i cu metodele moderne criptare ca instrument indispensabil al securitii informaiilor.

  • 6

    Tema 1. Noiuni de baz ale Criptografiei. Criptografia reprezint o ramur a matematicii care se ocup cu

    securizarea informaiei, precum i cu autentificarea i restricionarea accesului ntr-un sistem informatic. n realizarea acestora se utilizeaz n mare parte metode matematice, profitnd de unele probleme cu complexitate de rezolvare suficient de nalt. Termenul criptografie este compus din cuvintele de origine greac , krypts (ascuns) i , grfein (a scrie). Criptografia urmrete urmtoarele obiective:

    1. Confidenialitatea (privacy) proprietatea de a pstra secretul informaiei, pentru ca aceasta s e folosit numai de persoanele autorizate.

    2. Integritatea datelor proprietatea de a evita orice modificare (inserare, tergere, substituie) neautorizat a informaiei.

    3. Autentificare proprietatea de a identifica o entitate conform anumitor standarde. Este compus din:

    a. autentificarea unei entiti; b. autentificarea sursei informaiei;

    4. Non-repudierea proprietatea care previne negarea unor evenimente anterioare.

    Celelalte obiective legate de securitatea informaiei (autentificarea mesajelor, semnturi, autorizare, validare, controlul accesului, certificare, timestamping, confirmarea recepiei, anonimitate, revocare) pot derivate din aceste patru.

    mpreun cu Criptografia se dezvolt Criptanaliza (din greac, krypts, ascuns, i analein, a dezlega) este studiul metodelor de obinere a nelesului informaiilor criptate, fr a avea acces la informaia secret necesar n mod normal pentru aceasta. De regul, aceasta implic gsirea unei chei secrete.

    Criptografia i Criptanaliza mpreun constituie Criptologia (din greac, krypts, ascuns, i , cuvnt) tiina care se ocup cu metodele de criptare i decriptare.

    n continuare sunt date noiunile fundamentale cu care se opereaz n criptologie.

    O mulime nevid T se numete alfabet.

  • 7

    Elementele alfabetului T se numesc litere. Una i aceeai liter poate intra ntr-un cuvnt de mai multe ori.

    O consecutivitate finit de elemente din alfabetul T se numete cuvnt. Numrul de elemente ale alfabetului se numete lungimea alfabetului. Un cuvnt ce nu conine nici o liter se numete cuvnt nul. Lungimea cuvntului, notat cu w, este numrul de litere n acest

    cuvnt, unde fiecare liter se consider de cte ori se ntlnete n el. Vom nota cu T* mulimea tuturor cuvintelor alfabetului T. Submulimile mulimii T* le vom numi limbaje (formale) peste T. Un mesaj n forma sa originar se numete text clar (uneori text n

    clar, n englez plaintext) i l vom nota cu pt sau cu m (de la message - mesajul).

    Rescrierea textului clar, folosind o metod cunoscut numai de expeditor (eventual i de destinatar), se numete criptare (sau cifrare) a mesajului.

    Text criptat sau text cifrat (n englez ciphertext) se numete textul obinut n rezultatul operaiei de criptare a textului plan. Textul criptat l vom nota cu ct sau cu c (de la cipher - cifrul). Textul cifrat se mai numete criptogram.

    Procesul retransformrii criptogramei n textul original este numit decriptare.

    Un canal este o cale pentru fluxul de informaii. Destinatarul primete printr-un canal textul criptat i l decripteaz,

    tiind metoda folosit pentru criptare, obinnd mesajul iniial. n literatura de specialitate expeditorul de obicei este numit Alice iar destinatarul este numit Bob. Deci, Alice i Bob trebuie s stabileasc n prealabil detaliile modalitii de criptare i de decriptare. Aadar, criptarea este o metod de camuflare a textului clar n aa fel nct substana s nu sufere modificri semantice.

    Criptarea se folosete pentru a fi siguri c informaia este inaccesibil oricrei persoane care nu deine instrumentul necesar decriptrii, chiar dac oricine poate vedea datele n form criptografic. Oricum nu va nelege nimic, care s conduc spre descifrarea textului original.

    Persoana care intercepteaz criptograma i ncearc s obin textul clar aplicnd diverse metode, ns fr a avea cheia de decriptare, este numit criptanalist.

  • 8

    Sistemul care realizeaz operaiile de criptare i decriptare se numete sistem de criptare (sau sistem criptografic, sau criptosistem).

    n criptografia modern un sistem de criptare este definit ca o structur cu cinci componente (P, C, K, E, D):

    P = {pt / ptT*} spaiul (mulimea) textelor n clar, scrise pentru un alfabet nevid T (n mod obinuit T={0,1});

    K spaiul (mulimea) cheilor de criptare k, kK; Familia funciilor de criptare dependent de chei i de un algoritm

    de criptare E Ek : P C, Ek = {ek / ek (pt) = ct i ek este injectiv};

    Familia funciilor de decriptare dependent de chei i de un algoritm de decriptare D

    Dk : C P , Dk = { dk / dk (ek (pt))= pt pentru orice ptP}; C spaiul (mulimea) mesajelor cu text criptat unde:

    C={ct / exist k K, aP, ct = Ek (a)}. Schema aplicrii unui sistem de criptare este prezentat n Figura 1.1.

    Pentru ca un sistem de criptare s e considerat bun, el trebuie s ndeplineasc trei criterii (enunate de Francis Bacon n sec. XVII):

    1. Fiind date ek i ptP s fie uor de calculat ek (pt). 2. Fiind date dk i ctC s fie uor de determinat dk (ct). 3. S fie imposibil de determinat pt din ct, fr a cunoate dk.

    Figura 1.1. Schema aplicrii unui sistem de criptare

    Criteriile 1 i 2 implic c pentru utilizatorii legali sistemul de criptare nu trebuie s fie prea complicat (se presupune c utilizatorii au un timp acceptabil pentru calcule). n criteriul 3 imposibilitatea e nlocuit n prezent cu dificultatea de a calcula. Se presupune c un interceptor de asemenea are acces la tehnica de calcul. Ultimul criteriu definete sub o

  • 9

    form vag ideea de securitate a sistemului. La aceste criterii, Bacon aduga i o a patra regul:

    4. Textul criptat trebuie s e un text banal, fr suspiciuni.

    Aceast condiie nu mai poate fi considerat important i este utiliz astzi doar de un subdomeniu strict al criptografiei, numit steganografie tiina despre transmiterea secret a informaiei prin pstrarea secretului a nsui faptului transmiterii acestei informaii.

    Metodele de criptare pot fi divizate pe categorii n felul urmtor: a) n funcie de tipul operaiilor folosite:

    Bazate pe substituii Bazate pe transpuneri

    b) n funcie de tipul de chei folosite: Sisteme Simetrice (single-key, secret-key, private-key) Sisteme Asimetrice (two-key, public-key)

    c) Metoda prin care datele sunt procesate: Cu cifruri bloc Cu cifruri fluide (flux, ir, stream)

    Cifrurile clasice foloseau substituia sau transpoziia. Printre metodele moderne de criptare deosebim dou direcii principale: sistemele cu cheie secret (sau sisteme simetrice) n care ek este bijectiv i sisteme cu chei publice (sau sisteme asimetrice) sistemele n care ek nu este bijectiv.

    Figura 1.2. Clasificarea cifrurilor

  • 10

    Exist dou tipuri de sisteme simetrice: sisteme care se bazeaz pe algoritmi de tip bloc i sisteme care se bazeaz algoritmi de tip ir (sau flux, n englez stream cipher). Algoritmii de tip bloc acioneaz asupra blocurilor de text clar i text cifrat. Algoritmii de tip ir se aplic irurilor de text clar i text cifrat, la nivel de bit sau octet. n Figura 1.2 sunt prezentate tipurile de cifruri utilizate n trecut sau prezent.

    Algoritmii moderni de tip bloc cripteaz mesajul n blocuri de 64 265 bii. Pentru acesta se aplic o funcie matematic ntre un bloc de bii ai mesajului n clar i cheie (care poate varia ca mrime), rezultnd acelai numr de bii pentru mesajul criptat. Funcia de criptare este realizat astfel nct s ndeplineasc urmtoarele cerine:

    tiind un bloc de bii ai textului clar i cheia de criptare, sistemul s poat genera rapid un bloc al textului criptat;

    tiind un bloc de bii ai textului criptat i cheia de criptare/decriptare, sistemul s poat genera rapid un bloc al textului clar;

    tiind blocurile textului clar i ale textului criptat, s fie dificil de generat cheia.

    Cifrurile ir (sau cifruri fluide) la fel formeaz o clas important de algoritmi de criptare. Ceea ce le caracterizeaz i le difereniaz fa de cifrurile bloc este faptul c cifrurile ir proceseaz informaia n uniti orict de mici, chiar bit cu bit, aplicnd funcia XOR ntre biii cheii i biii de cifrat, iar funcia de criptare se poate modifica n cursul criptrii. Cifrurile ir sunt algoritmi cu memorie, n sensul c procesul de criptare nu depinde doar de cheie i de textul clar, ci i de starea curent. n cazul n care probabilitatea erorilor de transmisie este mare, folosirea cifrurilor ir este avantajoas deoarece au proprietatea de a nu propaga erorile. Ele se folosesc i n cazurile n care datele trebuie procesate una cte una, datorit lipsei de spaiu de memorie.

    Cifruri asimetrice utilizeaza o pereche de chei: o cheie public i o cheie privat. Un utilizator care deine o astfel de pereche i public o cheie (cheia public) astfel ncat oricine dorete s o poata folosi pentru a i transmite un mesaj criptat. Numai deintorul cheii secrete (private) este cel care poate decripta mesajul astfel criptat.

    Cele dou chei sunt legate matematic, ns cheia privat nu poate fi obinut din cheia public. n caz contrar, orcine ar putea decripta mesajele

  • 11

    destinate unui alt utilizator, fiindc oricine are acces la cheia public a acestuia. O analogie foarte potrivit pentru proces este folosirea cutiei potale. Oricine poate pune n cutia potal a cuiva un plic, dar la plic nu are acces dect posesorul cheii de la cutia potal.

    Cripografia asimetric se mai numete criptografie cu chei publice i e compus din dou mari ramuri:

    Criptarea cu cheie public un mesaj criptat cu o cheie public nu poate fi decodificat dect folosind cheia privat corespunztoare. Metoda este folosit pentru a asigura confidenialitatea.

    Semnturi digitale un mesaj semnat cu cheia privat a emitorului poate fi verificat de ctre oricine, prin acces la cheia public corespunzatoare, astfel asigurndu-se autenticitatea mesajului.

  • 12

    Tema 2. Cifruri clasice. Cifruri de substituie nc foarte demult, circa 4000 de ani n urm, n oraul Menet Khufu

    de pe malul Nilului un scrib cu experien a desenat ieroglife care relatau viaa stpnului su, devenind astfel cel care a pus bazele istoriei criptografiei. Sistemul su nu este un sistem al scrierii secrete n sens contemporan. Pentru aceasta el nu a folosit un cifru complet. Aceast nscriere, fcut circa n 1900 .Hr. pe mormntul lui Khnumphotep, numai alocuri consta din simboluri ieroglifice neobinuite n locul unora uzuale la acel moment. Marea lor parte se ntlnete n ultimele douzeci de coloane n care sunt enumerate monumentele create de ctre Khnumphotep n timpul serviciului su la faraonul Amenemhet II. Aceste nscrieri au fost fcute mai degrab pentru a da o importan textului i nu pentru a mpiedica citirea lui. Astfel scribul nu a aplicat scrierea secret dar, fr ndoial, a aplicat unul dintre elementele de baz ale criptrii transformarea deliberat a celor scrise.

    Astfel, adugarea la textele de acest fel a elementelor de secret a dat natere criptografiei. Este adevrat, acest fapt semna mai mult cu un joc, deoarece avea scopul de a amna dezlegarea ghicitorii pentru un interval de timp scurt. Deci i criptanaliza lui consta numai n rezolvarea problemei. Aadar putem afirma c criptanaliza Egiptului antic, spre deosebire de cea contemporan, foarte serioas, era numai o quasi-tiin. ns orice lucru mre are un nceput modest. Hieroglifele Egiptului antic conineau, ntr-o form departe de cea impecabil, dou dintre elementele de baz ale criptografiei secretul i transformarea textului. Astfel s-a nscut criptologia.

    n primii 3000 de ani dezvoltarea ei nu a fost una continu. n unele locuri criptologia se ntea i murea odat cu civilizaia ce i-a dat natere. n altele ea a rezistat ptrunznd n literatur pentru ca generaiile urmtoare s poat urca spre nivele mai nalte ale criptologiei. naintarea spre aceste nivele era lent i anevoioas. Mai multe erau pierdute dect pstrate. Cunotinele acumulate au cptat amploare numai la nceputul Renaterii europene.

    Criptografia clasic este criptografia dinaintea calculatorului, de unde i denumirea de criptografie pre-computaional. n criptografia clasic, algoritmii erau bazai pe caracter i constau dintr-o serie de transformri elementare (substituii, transpoziii) ale caracterelor textului clar. Unii

  • 13

    algoritmi aplicau aceste transformri n mod repetat, mbuntind n acest mod securitatea algoritmului. n criptografia modern bazat pe calculator (criptografie computaional), lucrurile s-au complicat, dar multe dintre ideile criptografiei clasice au rmas nemodificate.

    Criptografia clasic se ncadreaz n clasa criptografiei cu chei simetrice.

    Cifrul de substituie (substitution cipher) este cifrul bloc la care fiecare caracter sau grup de caractere ale textului clar m este substituit cu un alt caracter sau grup de caractere n textul cifrat c, descifrarea fcndu-se prin aplicarea substituiei inverse asupra textului cifrat. n criptografia clasic exist patru tipuri de cifruri de substituie. Deosebim cifruri cu substituie monoalfabetic i polialfabetic.

    Cifruri de substituie monoalfabetic (monoalphabetic ciphers) sunt cifrurile n care fiecare caracter al textului n clar m este nlocuit cu un caracter corespunztor n textul cifrat c. Mai jos sunt prezentate cteva dintre cele mai cunoscute cifruri de substituie monoalfabetic:

    Cifrul lui Cesar (sau Cezar). n acest cifru fiecare liter a textului clar este nlocuit cu o nou liter obinut printr-o deplasare alfabetic. Cheia secret k, care este aceeai la criptare ct i la decriptare, const n numrul care indic deplasarea alfabetic, adic k{1, 2, 3,, n1}, unde n este lungimea alfabetului. Criptarea i decriptarea mesajului pentru cifrul Cezar poate fi definit de formulele

    c = ek(x) = x + k (mod n), m = dk(y) = y k (mod n),

    unde x este reprezentarea numeric a caracterului respectiv al textului clar. Funcia numit Modulo (a mod b) returneaz restul mpririi numrului ntreg a la numrul ntreg b. Aceast metod de criptare este numit aa dup Iulius Cezar, care o folosea pentru a comunica cu generalii si, folosind cheia k = 3 (Tabelul 2.1). Pasul de criptare al cifrului lui Cezar este de obicei ncorporat n scheme mai complexe precum Cifrul Vigenre (vezi mai jos).

    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0 1 2 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C

    Tabelul 2.1. Exemplu pentru un cifru Cezar cu cheia k=3

  • 14

    De exemplu, pentru k = 3 avem ek(S) = 18 + 3 (mod 26) = 21 = V dk(V) = 21 3 (mod 26) = 18 = S

    Exemplu: Textul clar EXEMPLIFICARE CEZAR,

    prin aplicarea cheii k = 3 se transform n textul criptat HAHPSOLILFDUH FHCDU.

    Cifrul lui Cezar este foarte uor de spart, deci este un cifru foarte slab. Astfel, un criptanalist poate obine textul clar prin ncercarea celor 25 de chei. Nu se tie ct de util era cifrul Cezar n timpul cnd era folosit de ctre cel de la care i provine numele, dar este probabil ca el s fie destul de sigur, att timp ct numai civa dintre inamicii lui Cezar erau n stare s scrie i s citeasc, dar mai ales s cunoasc concepte de criptanaliz.

    Cifrul afin este o generalizare a cifrului Cezar. Cheia

    k = {(a, b) | a, b Z26 = {0, 1, 2, , 25}, cmmdc(a, 26) = 1}, iar funciile de criptare i decriptare (pentru o cheie k = (a, b)) sunt

    ek(x) = ax + b (mod 26), dk(y) = a

    1y + a 1(26 b) (mod 26). Condiia ca a s e prim cu 26 asigur existena lui a 1 n Z26.

    De exemplu, pentru a = 7, b = 16 funcia de criptare este ek(x) = 7x + 16, care poate reprezentat cu Tabelul 2.2:

    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 16 23 4 11 18 25 6 13 20 1 8 15 22 3 10 17 24 5 12 19 0 7 14 21 2 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Q X E L S Z G N U B I P W D K R Y F M T A H O V C J

    Tabelul 2.2. Exemplu pentru cifrul afin cu cheia k = (7, 16)

    Astfel, textul clar LA MULTI ANI se cripteaz n PQ WAPTU QDU. Deoarece 71 = 15 (mod 26), decriptarea se realizeaz matematic

    folosind funcia dk(y)=15y+15(2615)(mod 26)=15y+1511 (mod 26)=15y + 9 (mod 26)

    (sau practic, inversnd cele dou linii ale tabelului de mai sus). Condiia cmmdc(a, 26) = 1 asigur de asemenea injectivitatea funciei

    ek. De exemplu, pentru ek(x) = 10x + 1, A i N se transform ambele n B, iar O nu apare ca imagine n alfabetul substituiei.

  • 15

    Orice cheie k a cifrului afin este determinat complet de valorile ntregi (a, b) pentru care cmmdc(a, 26) = 1. Sunt posibile 12 valori pentru a: 1, 3, 5, 7, 9, 11, 15, 19, 21, 23, 25 i 26 valori pentru b, care se iau independent de a, cu o singur excepie a = 1, b = 0 (care se exclude deoarece nu conduce la nici o criptare). Aadar mulimea cheilor n acest caz este alctuit din

    1226 1 = 311 chei diferite, numr suficient de pentru atacul prin fora brut.

    Cifrul Polibios. Cifrul Cezar nu este cel mai vechi algoritm de criptare. Se pare c primul astfel de algoritm a fost utilizat de Polybios (istoric grec mort cu 30 ani naintea naterii lui Cezar). Iniial acesta a fost doar un sistem maritim de semnalizare cu tore iar ulterior i s-a dat o semnificaie criptografic.

    n cifrul Polibios pentru fiecare alfabet se construiete un careu aparte de cifrare, de cele mai dese ori cu numrul de coloane i linii egal (ns nu e o condiie necesar). Dimensiunile careului depind de lungimea n a alfabetului. Pentru a crea careul se iau dou numere ntregi, produsul crora e cel mai aproape de n. Liniile i coloanele se numeroteaz. Dup aceasta literele alfabetului se nscriu n acest careu n ordinea apariiei. Dac nu sunt suficiente celule pentru literele alfabetului se pot nscrie ntr-o celul 2 litere (de frecvena ct mai redus).

    Pentru alfabetul latin, putem avea careuri Polibios 55, dup cum este reprezentat n Tabelul 2.3:

    a b c d e

    a A B C D E

    b F G H I/J K

    c L M N O P

    d Q R S T U

    e V W X Y Z

    1 2 3 4 5

    1 A B C D E

    2 F G H I/J K

    3 L M N O P

    4 Q R S T U

    5 V W X Y Z

    a b c d e

    a A B C D E

    b F G H I J

    c K L M N O

    d P R S T U

    e V W X Y Z

    Tabelul 2.3. Exemple de tabele ale cifrului Polibios

  • 16

    Observaie: n al treilea careu a fost omis litera Q care este una cu frecven redus.

    n operaia de criptare, fiecare caracter m va fi reprezentat printr-o pereche de litere (x, y), unde x, y{A, B, C, D, E} (unde ABCDE este

    cheia cifrului) sau x, y{1, 2, 3, 4, 5} (cheia este 12345) care dau linia, respectiv coloana pe care se a M.

    Astfel, textul clar VENI VIDI VICI este criptat n 51 15 33 24 51 24 14 24 51 24 13 24.

    Deci sistemul de criptare Polybios este o substituie monoalfabetic cu alfabetul

    W ={AA, AB, AC, . . . , EE} sau W ={11, 12, 13, . . . , 55} de 25 caractere.

    Sunt diverse versiuni ale sistemului Polybios. Astfel, dac se folosesc drept coordonate cifrele 1, 2, 3, 4, 5 n loc de A, B, C, D, E, sistemul a fost folosit n penitenciarele ruseti i de ctre prizonierii americani din Vietnam. Este foarte simplu de nvat i poate aplicat folosind diverse semne drept coordonate-chei (cifre, puncte, guri, etc). Cifrul Polibios a fost utilizat de asemenea n cadrul altor sisteme de criptare, cum ar sistemul nihilist, cifrul ADFGVX (utilizat de armata german n primul rzboi mondial) sau sistemul Bifid, inventat de Dellastell n 1901.

    Punctul slab al sistemelor de criptare monoalfabetice const n frecvena de apariie a caracterelor n text. Dac un text criptat este suficient de lung i se cunoate limba n care este scris textul clar, sistemul poate spart printr-un atac bazat pe frecvena apariiei literelor ntr-o limb.

    Sunt construite diverse structuri de ordine relativ la frecvena apariiei literelor n fiecare limb european. De obicei, cu ct un text criptat este mai lung, cu att frecvena literelor folosite se apropie de aceast ordonare general. O comparare ntre cele dou relaii de ordine (cea a caracterelor din textul criptat i cea a literelor din alfabetul limbii curente) conduce la realizarea ctorva corespondene (liter text clar liter text criptat), ceea ce stabilete n mod univoc cheia de criptare. Pentru sistemul Cezar este suficient stabilirea unei singure perechi; pentru sistemul an trebuiesc dou perechi etc.

    Pentru limba romn frecvena literelor este prezentat n Tabelul 2.4 i Figura 2.1.

  • 17

    A B C D E F G H I J K L M

    9,95 4,06 0,91 1,07 5,28 3,45 11,47 1,18 0,99 0,47 9,96 1,40 0,24 0,11 4,48 3,10

    N O P Q R S T U V W X Y Z

    6,47 4,07 3,18 0,00 6,82 4,40 1,55 6,04 1,00 6,20 1,23 0,03 0,11 0,07 0,71

    Tabelul 2.4. Frecvena literelor limbii romne

    Figura 2.1. Frecvena literelor limbii romne

    Cifruri de substituie polialfabetic (polyalphabetic ciphers).

    Slbiciunea cifrurilor monoalfabetice este dat de faptul c distribuia lor de frecven reflect distribuia alfabetului folosit. Un cifru este mai sigur din punct de vedere criptografic dac prezint o distribuie ct mai regulat, care s nu ofere informaii criptanalistului.

    O cale de a aplatiza distribuia este combinarea distribuiilor ridicate cu cele sczute. Daca T este criptat cteodat ca a i alt dat ca b, i dac X este de asemenea cteodat criptat ca a i alt dat ca b, frecvena ridicat a lui T se combin cu frecvena sczut a lui X producnd o distribuie mai moderata pentru a i pentru b.

    Dou distribuii se pot combina prin folosirea a doua alfabete separate de criptare, primul pentru caracterele aflate pe poziii pare n text clar, al doilea pentru caracterele aflate pe poziii impare rezultnd necesitatea de

  • 18

    a folosi alternativ doua tabele de translatare, de exemplu permutrile p(a) = (3a) mod 26 i p2(a) = ((7a) +13) mod 26.

    Diferena dintre cifrurile polialfabetice i cele monoalfabetice const n faptul c substituia unui caracter variaz n text, n funcie de diveri parametri (poziie, context etc.). Aceasta conduce bineneles la un numr mult mai mare de chei posibile. Se consider c primul sistem de criptare polialfabetic a fost creat de Leon Battista n 1568. Unele aplicaii actuale folosesc nc pentru anumite seciuni astfel de sisteme de criptare.

    Cifrul Vigenere. La fel ca cifrul Cezar, cifrul Vigenere deplaseaz literele, dar, spre deosebire de acesta nu se poate sparge uor n 26 combinaii. Cifrul Vigenere folosete o deplasare multipl. Cheia nu este constituit de o singur deplasare, ci de mai multe. Cheia este constituit din civa ntregi ki, unde 0 ki 25.

    Criptarea se face n felul urmtor: ci = mi + ki (mod 26).

    Cheia poate fi, de exemplu, k = (21, 4, 2 19, 14, 17) i ar provoca deplasarea primei litere cu 21, c1 = m1 + 21 (mod 26), a celei de a doua cu 4, c2 = m2 + 4 (mod 26), .a.m.d. pn la sfritul cheii i apoi de la nceput, din nou. Cheia este de obicei un cuvnt, pentru a fi mai uor de memorat cheia de mai sus corespunde cuvntului vector. Metoda cu deplasare multipl ofer protecie suplimentar din dou motive:

    primul motiv este c ceilali nu cunosc lungimea cheii. cel de al doilea motiv este c numrul de soluii posibile

    crete; de exemplu, pentru lungimea cheii egal cu 5, numrul de combinaii care ar fi necesare la cutarea exhaustiv ar fi 265 = 11 881 376.

    Cifrul Vigenere a fost spart ns folosind altceva dect fora brut (vezi mai jos).

    Decriptarea pentru cifrul Vigenere este asemntoare criptrii. Diferena const n faptul c se scade cheia din textul cifrat,

    mi = ci ki (mod 26). Pentru simplificarea procesului de cifrare se poate utiliza urmtorul

    tabel, numit Tabula Recta (Tabelul 2.7). Aici toate cele 26 cifruri sunt situate pe orizontal i fiecrui cifru i corespunde o anumit liter din cheie, reprezentat n colana din stnga tabelului. Alfabetul corespunztor literelor textului clar se afl n prima linie de sus a tabelului. Procesul de cifrare este simplu este necesar ca avnd litera x din cheie i litera y din

  • 19

    textul clar s gsim litera textului cifrat care se afl la intersecia liniei x i coloanei y.

    a b c d e f g h i j k l m n o p q R s t u v w x y z a A B C D E F G H I J K L M N O P Q R S T U V W X Y Z b B C D E F G H I J K L M N O P Q R S T U V W X Y Z A c C D E F G H I J K L M N O P Q R S T U V W X Y Z A B d D E F G H I J K L M N O P Q R S T U V W X Y Z A B C e E F G H I J K L M N O P Q R S T U V W X Y Z A B C D f F G H I J K L M N O P Q R S T U V W X Y Z A B C D E g G H I J K L M N O P Q R S T U V W X Y Z A B C D E F h H I J K L M N O P Q R S T U V W X Y Z A B C D E F G i I J K L M N O P Q R S T U V W X Y Z A B C D E F G H j J K L M N O P Q R S T U V W X Y Z A B C D E F G H I k K L M N O P Q R S T U V W X Y Z A B C D E F G H I J l L M N O P Q R S T U V W X Y Z A B C D E F G H I J K

    m M N O P Q R S T U V W X Y Z A B C D E F G H I J K L n N O P Q R S T U V W X Y Z A B C D E F G H I J K L M o O P Q R S T U V W X Y Z A B C D E F G H I J K L M N p P Q R S T U V W X Y Z A B C D E F G H I J K L M N O q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P r R S T U V W X Y Z A B C D E F G H I J K L M N O P Q s S T U V W X Y Z A B C D E F G H I J K L M N O P Q R t T U V W X Y Z A B C D E F G H I J K L M N O P Q R S u U V W X Y Z A B C D E F G H I J K L M N O P Q R S T v V W X Y Z A B C D E F G H I J K L M N O P Q R S T U w W X Y Z A B C D E F G H I J K L M N O P Q R S T U V x X Y Z A B C D E F G H I J K L M N O P Q R S T U V W y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y

    Tabelul 2.7. Tabula Recta pentru cifrul Vigenere

    Se poate de procedat i n conformitate cu ecuaiile ce definesc cifrul ci = mi + ki (mod 26) i mi = ci ki (mod 26), aa cum este artat n exemplul ce urmeaz.

    Exemplu. De cifrat, utiliznd cifrul Vigenere, mesajul Per aspera ad

    astra folosind cheia K= SUPER.

  • 20

    Pentru a cifra sau descifra mai nti facem corespondena urmtoare:

    A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Apoi alctuim i completm tabelul:

    Textul clar M P E R A S P E R A A D A S T R A

    Cheia K S U P E R S U P E R S U P E R S Textul clar M 15 4 17 0 18 15 4 17 0 0 3 0 18 19 17 0

    Cheia K 18 20 15 4 17 18 20 15 4 17 18 20 15 4 17 18 M+K (mod 26) 7 24 6 4 9 7 24 6 4 17 21 20 7 23 8 18

    Textul cifrat C H Y G E J H Y G E R V U H X I S

    C= HYGEJHYGERVUHXIS. Pentru decriptare procedm la fel, cu excepia mi = ci ki (mod 26).

    Apoi alctuim i completm tabelul:

    Textul cifrat C H Y G E J H Y G E R V U H X I S

    Cheia K S U P E R S U P E R S U P E R S Textul cifrat C 7 24 6 4 9 7 24 6 4 17 21 20 7 23 8 18

    Cheia K 18 20 15 4 17 18 20 15 4 17 18 20 15 4 17 18 MK (mod 26) 15 4 17 0 18 15 4 17 0 0 3 0 18 19 17 0

    Textul clar M P E R A S P E R A A D A S T R A

    M = PERASPERAADASTRA. Criptanaliza sistemului Vigenere const n urmtoarele: fie

    c = c0 c1 ... cn-1 textul criptat cu cheia k = k0 k1 ... kp1; putem aranja acest text sub forma unei matrice cu p linii i pn / coloane, astfel

    0c pc pc2

    1c 1pc 12 pc

    1pc 12 pc 13 pc

  • 21

    Elementele de pe prima linie au fost criptate dup formula 0),26(mod0 kkac prpr ,

    adic cu un sistem Cezar ( 0k fiind o valoare fixat din Z26). n mod similar

    i celelalte linii. Deci, dac s-ar cunoate lungimea p a cheii, problema s-ar reduce la

    criptanaliza a p texte criptate cu Cezar sistem de criptare monoalfabetic. Sunt cunoscute dou metode pentru aflarea lungimii cheii: testul lui Kasiski i indexul de coinciden.

    Prima metod const n studiul textului criptat i aflarea de perechi de segmente de cel puin 3 caractere identice (aceast lungime este propus de Kasiski). Pentru fiecare astfel de pereche, se determin distanta dintre segmente. Dup ce s-au gsit mai multe astfel de distane, valoarea lui p va cel mai mare divizor comun al lor (sau eventual un divizor al acestuia).

    A doua metod de aare a lungimii cheii de criptare ntr-un sistem Vigenere se bazeaz pe un concept denit n 1920 de Wolfe Friedman - indexul de coinciden. Dac ncccc ...21 este o secven de n caractere

    alfabetice, probabilitatea ca dou caractere din c, alese aleator, s e identice se numete index de coinciden )(xIc al lui c.

    Cifrul omofonic (homophonic ciphers) este un cifru 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 alfabetului 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 de exemplu cu H, # sau m.

    Sistemul de criptare omofonic este un sistem intermediar ntre sistemele mono i cele polialfabetice. Principalul lui scop este de a evita atacul prin frecvena de apariie a caracterelor. Se presupune c a fost utilizat prima oar n 1401 de ctre ducele de Mantua. n cifrul omofonic fiecrui caracter ma i se asociaz o mulime H(a) c astfel nct:

    H(a) H(b) = a b; Dac a apare mai frecvent dect b n textele clare, atunci card

    ((H(a)) card(H(b)).

  • 22

    Criptarea unui caracter mx se face cu un element ales aleator din H(a). Pentru decriptarea lui cy se caut o mulime H(x) astfel ca

    y H(x). Exemplu. Pentru limba englez poate fi utilizat cifrul definit de Tabelul 2.5.

    n primele dou linii ale acestui tabel sunt aezate literele alfabetului latin i frecvenele (rotunjite) ale acestora. n coloanele de sub litera x este situat H(x). De exemplu

    H(n) = {18, 58, 59, 66, 71,91}. Pentru criptarea textului ab se poate folosi oricare din secvenele

    0948, 1248, 3348, 4748, 5348, 6748, 7848, 9248, 0981, 1281, 3381, 4781, 5381, 6781, 7881, 9281.

    Dei mai greu de spart dect cifrurile de substituie simple (monoalfabetice), cifrul omofonic nu mascheaz total proprietile statistice ale textului clar. n cazul unui atac cu text clar cunoscut (vezi Tema 15), cifrul se sparge extrem de uor. Atacul cu text cifrat este mai dificil, dar unui calculator i va lua doar cteva secunde pentru a-l sparge.

    a b c d e f g h i j k l m n o p q r s t u v w x y z 8 2 3 4 13 2 2 6 7 1 1 4 3 7 8 2 1 6 6 9 3 1 2 1 2 1

    09 48 13 01 14 10 06 23 32 15 04 26 22 18 00 38 94 29 11 17 08 34 60 28 21 02 12 81 41 03 16 31 25 39 70 37 27 58 05 95 35 19 20 61 89 52 33 62 45 24 50 73 51 59 07 40 36 30 63 47 79 44 56 83 84 66 54 42 76 43 53 46 65 88 71 72 77 86 49 67 55 68 93 91 90 80 96 69 78 57 99 75 92 64 85 74 97 82 87 98

    Tabelul 2.5. Exemplu de cifru omofonic pentru limba englez

    Cifrurile bazate pe substituie poligramic realizeaz substituirea unor blocuri de caractere (poligrame) din textul clar, distrugnd astfel semnificaia, att de util n criptanaliz, a frecvenelor diferitelor

  • 23

    caractere. Vom considera un mesaj m = m1m2...mdmd+1... i un cifru care prelucreaz poligrame de lungime d. Criptograma rezultat este c=c1...cdcd+1...cd+d. Fiecare poligram mi,d+1...mi,d+d va fi prelucrat n poligrama ci,d+1...ci,d+d prin funcia de substitute fj astfel:

    ci,d+j = fj(mi,d+1mi,d+d)

    n cazul cifrrii literelor singulare frecvena de apariie a literelor n textul cifrat este egal cu frecvena de apariie a literelor corespunztoare din textul clar. Aceast invarian a frecvenelor furnizeaz o cantitate de informaie suficient criptanalistului pentru spargerea cifrului. Pentru minimizarea informaiei colaterale furnizate de frecvena de apariie a literelor s-a utilizat cifrarea grupurilor de d litere (d-grame). n cazul cnd un grup de d litere este substituit printr-un alt grup de d litere, substituia se numete poligramic. Substituia poligramic cea mai simpl se obine pentru d =2 cnd digrama m1m2 din textul clar se substituie cu digrama c1c2 din textul cifrat.

    Un exemplu clasic pentru substituia diagramelor este cifrul lui Playfair (Tabelul 2.6).

    P L A Y F

    I R E X M

    B C D G H

    J K N O S

    T U V W Z

    Tabelul 2.6. Exemplu de cifru Playfair

    Primele litere din ptrat reprezint un cuvnt cheie k (literele care se repet se scriu o singur dat, n acest exemplu cheia fiind k=PLAYFAIR), dup care ptratul se completeaz cu literele alfabetului, fr repetarea literelor. Cifrarea se executa dup urmtoarele reguli: dac m1m2 sunt dispuse n vrfurile opuse ale unui dreptunghi, atunci

    c1c2 sunt caracterele din celelalte vrfuri ale dreptunghiului, c1 fiind n aceeai linie cu m1. De exemplu AB devine PD, deci AB PD;

    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 AF YP iar XM MI;

  • 24

    dac m1 i m2 se afl n aceeai coloan atunci c1 i c2 se obin printr-o deplasare ciclic a lui m1, m2 de sus n jos. De exemplu RC CK iar LU RL etc.;

    pentru separarea literelor identice alturate se introduc nite caractere de separare care, de regula, au frecventa de apariie redus, cum sunt de exemplu literele X, Q n limba romna. n cazul n care numrul de caractere n textul clar este impar se procedeaz la fel. La descifrare aceste litere introduse se omit.

    Descifrarea se executa dup reguli asemntoare cu cele de cifrare

    Exemplu. Folosind exemplul de mai sus (k = PLAYFAIR) textul clar VINE IARNA obinem textul cifrat TE VD EP KE YE. Aici am introdus la sfritul mesajului litera X iar AX YE. La descifrare dup sensul mesajului se omite aceast liter.

    Cifrul Playfair se folosea n scopuri tactice de ctre forele militare britanice n timpul celui de-al doilea rzboi al Burilor (1899-1902) dar i n primul rzboi mondial. La fel a fost utilizat de ctre australieni i germani n timpul celui de-al doilea rzboi mondial. El era utilizat deoarece era suficient de rapid n aplicare i nu necesita nici un utilaj special. Scopul principal al utilizrii lui era protecia informaiei importante (ns nu i secrete) pe parcursul unei lupte. La momentul cnd criptanalitii inamici sprgeau cifrul, informaia deja nu mai era util pentru inamic.

    Utilizarea cifrului Playfair n prezent nu are sens deoarece laptop-urile moderne pot sparge cu uurin cifrul n cteva secunde. Primul algoritm de spargere pentru Playfair a fost descris n anul 1914 de ctre locotenentul Iosif O. Moubornom ntr-o brour de 19 pagini.

  • 25

    Tema 3. Cifruri clasice. Cifrul de transpoziii

    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.

    Criptarea prin metoda transpoziiei este o tehnic mai eficient dect criptarea prin substituie, dar are, la rndul ei, o mulime de dezavantaje. Textul criptat prin metoda transpoziiei pstreaz toate caracterele textului iniial, dar n alt ordine obinut prin aplicarea algoritmului ce va fi prezentat n continuare.

    Criptarea prin transpoziie const n scrierea textului iniial din care s-au eliminat spaiile i semnele de punctuaie ntr-o matrice de dimensiune MN i interschimbarea anumitor linii (sau coloane) ntre ele. Textul criptat se obine prin scrierea caracterelor din noua matrice de pe fiecare coloan n parte, ncepnd cu colul din stnga-sus. Dac lungimea textului iniial este mai mic dect numrul de elemente ce pot fi scrise n matrice, atunci textul se completeaz cu elemente aleatoare, pn ajunge la dimensiunea MN.

    Pentru textul Misiunea a fost ndeplinit, care are lungimea de 24 de caractere, se pot alege mai multe matrice de dimensiune MN, o posibilitate ar fi ca matricea s aib 4 linii i 6 coloane, dar pentru ca textul s fie mai greu de decodificat trebuie s conin i caractere alese aleator, sau ntr-un mod mai inteligent, care s ngreuneze munca celui care dorete s afle coninutul secret din mesajul criptat. Fie am ales o matrice care are 5 linii i 6 coloane. Textului iniial i se adaug 6 caractere aleatoare i se obine textul Misiun eaafos tndep linit xyztwu care se scrie n matricea din partea stng, aa cum e artat n Tabelul 3.1:

    Tabelul 3.1. Exemplu de cifru cu transpoziie

  • 26

    Prin scrierea liniilor 1, 2, 3, 4, 5 n ordinea 5, 3, 4, 1, 2, se obine matricea din partea dreapt. Textul criptat care se obine este: xtlMe yiia znnsa tdiif wetuo upns.

    Transpoziie cu cheie. Pentru ca procesul de decriptare s fie mai simplu i s nu mai fie nevoie de ordinea n care au fost puse liniile din matricea creat, se folosete o versiune a criptrii prin transpoziie care se bazeaz pe o cheie.

    Pentru a cripta un text folosind o cheie i metoda transpoziiei, se alege o cheie ale crei litere determin ordinea n care se vor scrie coloanele din matricea aleas. Pentru a afla ordinea n care vor fi scrise coloanele din textul iniial, se ordoneaz alfabetic literele din cheie, i fiecrei litere i se asociaz numrul de ordine din irul ordonat.

    Lungimea cheii trebuie s fie egal cu numrul de coloane din matrice. Considerm textul anterior, scris ntr-o matrice de dimensiuni 56, i

    cheia vultur. Literele din cheie se ordoneaz alfabetic i se obine irul: l, r, t, u, u, v. Indicele 1 este asociat cu litera l, indicele 2 cu litera r, indicele 3 cu litera t, indicele 4 cu prima liter u din cheie, indicele 5 cu a doua liter u din cheie, iar indicele 6 este asociat cu litera v. Pentru a scrie coloanele, pentru fiecare indice i din irul ordonat se caut indicele j, care reprezint poziia literei cu indicele i, din cheie i se scrie coloana j, astfel:

    Tabelul 3.2. Exemplu de transpoziie cu cheie

    Textul cifrat care se obine n final este:

    sannz nspu ifdit iaiy uoetw Metlx.

    Pentru a decripta un mesaj criptat cu aceast metod, criptograma se scrie n matrice pe coloane, ncepnd cu colul stnga-sus, i apoi se realizeaz operaia invers, adic pentru fiecare indice j al literelor din cheie, se caut indicele i asociat literei din irul sortat i se scrie coloana cu

  • 27

    indicele i. Din noua matrice astfel obinut se scriu literele de pe fiecare linie, n ordine.

    O tehnic cunoscut i foarte practic de transmitere a mesajelor folosind metoda transpoziiei const n nfurarea unei panglici n jurul unui b. Mesajul se scrie pe panglic, de-a lungul bului, de la captul superior spre captul inferior, pe coloane i apoi se trimite la destinaie numai panglica, care ulterior s-a desfcut de pe b. La destinaie se nfoar panglica pe un b avnd aceeai dimensiune cu cel care a ajutat la scrierea textului i se citete textul pe coloane.

    S analizm un exemplu de text mai voluminos a transpoziiei cu cheie.

    Exemplu: De efectuat criptarea textului clar m =acestcurssipropune sprezintefacilittiledecomunicareoferitedereteleledecalculatoare, utiliznd cheia PRECIS.

    P R E C I S

    4 5 2 1 3 6

    a c e s t c

    u r s s i

    p r o p u n

    e s p r e

    z i n t e f

    a c i l i t

    t i l e d

    e c o m u n

    i c a r e o

    f e r i t e

    d e r e t e

    l e l e d e

    c a l c u l

    a t o a r e

    Tabelul 3.3. Exemplu de cifru cu transpoziie

  • 28

    Pentru criptare (dar ulterior i pentru decriptare) completm tabelul de criptare (Tabelul 3.3) prin aezarea textului clar pe linii. Citirea rezultatului pe coloane n conformitate cu cheia (n ordine alfabetic) va genera textul cifrat: c =spptllmrieecaesoniioarrllotsureieuettduraupezaeifdlcacrrsictcceeea tcineftdnoeeele.

    Spargerea unui cifru cu transpoziie ncepe cu verificarea dac acesta este ntr-adevr de acest tip prin calcularea frecventelor 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 sprezinte, 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 m acest numr de coloane.

    Pentru a descoperi modul de ordonare a coloanelor, dac m este mic, se pot considera toate posibilitile de grupare a cte dou coloane (n numr de m (m 1) ). Se verific dac ele formeaz mpreun un text corect numrnd frecventele 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 caracterele vor fi trimise la ieire (irul poziiilor din textul de intrare pentru fiecare caracter din succesiunea generat).

    De la apariia cifrurilor cu substituie i a celor cu transpoziie anii au trecut i tehnicile de criptare au evoluat foarte mult.

    Problema construirii unui cifru imposibil de spart a preocupat ndelung pe criptanaliti; ei au dat o rezolvare teoretic simpl nc de acum cteva decenii dar metoda nu s-a dovedit fiabil din punct de vedere practic, dup cum se va vedea n continuare.

  • 29

    Tehnica propus pentru un cifru perfect presupune alegerea unui ir aleator de bii pe post de cheie i aducerea textului surs n forma unei succesiuni de bii prin nlocuirea fiecrui caracter cu codul su ASCII. Apoi se aplic o operaie logic - de tip SAU exclusiv (operaia invers echivalentei: 0 xor 0 = 0, 0 xor 1 = 1, 1 xor 0 = 1, 1 xor 1 = 0) - ntre cele dou iruri de bii. Textul cifrat rezultat nu poate fi spart pentru c nu exist indicii asupra textului surs i nici textul cifrat nu ofer criptanalistului informaii. Pentru un eantion de text cifrat suficient de mare, orice liter sau grup de litere (diftong, triftong) va aprea la fel de des.

    Acest procedeu este cunoscut sub numele de metoda cheilor acoperitoare. Dei este perfect din punct de vedere teoretic, metoda are, din pcate, cteva dezavantaje practice:

    cheia nu poate fi memorat, astfel nct transmitorul i receptorul s poarte cte o copie scris a ei fiindc n caz c ar fi capturai, adversarul ar obine cheia;

    cantitatea total de date care poate fi transmis este determinat de dimensiunea cheii disponibile;

    o nesincronizare a transmitorului i receptorului care genereaz o pierdere sau o inserare de caractere poate compromite ntreaga transmisie fiindc toate datele ulterioare incidentului vor aprea ca eronate.

  • 30

    Tema 4. Maini rotor

    Sistemele de criptare pot fi aduse la un grad mai mare de securitate dac se folosesc mijloace mecanice de criptare. Astfel de mecanisme special construite vor uura operaiile de criptare/decriptare i n acelai timp vor fi capabile s creeze un numr mult mai mare de chei posibile. Primele astfel de mecanisme au aprut nc n antichitate.

    n secolul V .e.n. pentru criptarea datelor se folosea un baston, numit Schitala, n jurul cruia se nfura spir lng spir o panglic foarte ngust de piele, papirus sau pergament pe care, pe generatoare se scriau literele mesajelor. Dup ce textul era scris panglica se desfura, mesajul devenea indescifrabil, deoarece literele erau dezasamblate. Mesajul se putea descifra numai de o persoan care dispunea de un baston de grosime i lungime identice cu bastonul iniial pe care se nfura din nou panglica primit de receptor. Astfel Schitala realiza o transpoziie, aceasta fiind o prim form a acestei metode de criptare. Conform istoricilor greci, acest mod de comunicare era folosit de spartani n timpul campaniilor militare. El avea avantajul de a fi rapid i nu genera erori de transmitere. Dezavantajul ns era acela c putea fi uor de spart.

    Leon Battista Alberti (14.02.1404 25.04.1472) scriitor, arhitect,

    pictor, sculptor, matematician, criptograf, filozof italian i umanist al Renaterii a inventat Criptograful lui Alberti (Figura 4.2), care era alctuit din dou discuri concentrice cu diametre diferite, suprapuse. Fiecare disc era mprit n 24 sectoare pe care erau nscrise litere i cifre. Pe discul exterior, care rmnea static, erau scrise 20 de litere ale alfabetului italian (alfabetul italian nu avea literele H, J, K, W, X, Y) n

    Figura 4.1. Schitala

  • 31

    ordinea lor fireasc, iar apoi cifrele 1, 2, 3, 4. Pe discul interior care se rotea, erau scrise 23 de litere ale alfabetului latin (fr J, K, Y) i conjuncia ET. Ordinea lor era arbitrar. Pentru cifrare se stabilea o cheie, de exemplu G=a. Aceasta nsemna c pentru cifrare litera a de pe discul mic se aeza n dreptul literei G de pe discul mare i apoi ncepea cifrarea. Alberti recomanda schimbarea cheii dup un numr de cuvinte.

    Criptograful lui Alberti a fost perfecionat de ctre Silvester, Argenti i alii, constituind un element de baz pentru criptografele de tip disc aprute ulterior. Silvester Porta a mprit discurile n 26 sectoare (Figura 4.2) utiliznd astfel toate cele 26 litere ale alfabetului latin (nu numai italian), criptograful su realiznd astfel o substituie simpl complet literal.

    Criptograful lui Alberti avea dou particulariti care fac ca invenia sa fie un mare eveniment n criptografie. n primul rnd acest mecanism nu era altceva dect un algoritm de criptare polialfabetic. n rndul al doilea discul respectiv permitea utilizarea aa numitelor coduri cu recifrare, care au aprut abia la sfritul secolului XIX, adic peste patru secole dup invenia lui Alberti. n acest scop pe discul exterior erau scrise cifrele 1, 2, 3, 4. Alberti a compus un cod care consta din 336 grupuri de coduri numerotate de la 11 la 4444. Fiecrui cod i corespundea o oarecare fraz terminat. Cnd fraza se ntlnea n mesaj ea se nlocuia cu codul respectiv, iar cu ajutorul discului cifrele erau criptate ca nite semne ordinare ale mesajului, fiind transformate n litere.

    Leon Alberti poate fi considerat un criptogarf ilustru i din motivul c este autorul primei lucrri de criptologie din Europa (De cifris) publicat n 1946. n aceast lucrare erau prezentate exemple de versiuni posibile de cifrare dar i se argumenta necesitatea aplicrii criptografie n practic ca un instrument ieftin i sigur de protecie a informaiei.

    Ideea de main de criptare apare clar prima dat la Thomas Jefferson, primul secretar de Stat al Statelor Unite (preedinte era George Washington), care a inventat un aparat de criptat numit roat de criptare, folosit pentru securitatea corespondenei cu aliaii n special cei francezi.

    Un cilindru Jefferson (Figura 4.3) este format din n discuri de dimensiuni egale (iniial n = 26 sau n = 36) aezate pe un ax. Discurile se pot roti independent pe ax, iar pe muchia fiecruia sunt nscrise cele 26 litere ale alfabetului, ntr-o ordine aleatoare (dar diferit pentru fiecare disc).

  • 32

    Criptograful lui Alberti Criptograful lui

    Silvester Criptograful lui

    Silvester

    Figura 4.2. La criptare, textul clar se mparte n blocuri de n caractere. Fiecare

    astfel de bloc se scrie pe o linie (generatoare) a cilindrului, rotind corespunztor fiecare disc pentru a aduce pe linie caracterul cutat. Oricare din celelalte 25 linii va constitui blocul de text criptat.

    Figura 4.3. Cilindre Jefferson

  • 33

    Pentru decriptare este necesar un cilindru identic, n care se scrie pe o linie textul criptat (de n caractere) i apoi se caut printre celelalte 25 linii un text cu semnificaie semantic. Probabilitatea de a avea un singur astfel de text crete cu numrul de discuri din cilindru.

    O mic diferen apare dac textul clar nu are nici o semnificaie semantic (s-a folosit o dubl criptare). Atunci trebuie convenit dinainte o anumit distan de criptare s (1 s 25). Thomas Jefferson a folosit acest aparat n perioada 1790 1802, dup care se pare c ideea s-a pierdut. Devenit preedinte, Jefferson a fost atras de sistemul Vigenere, pe care l consider mai sigur i-l recomand secretarului su de stat James Madison ca nlocuitor al sistemului pe care l inventase anterior.

    Ordinea discurilor poate de asemenea schimbat. De exemplu, un cilindru cu n = 20 discuri poate realiza 20! = 2 432 902 008 176 640 000 texte criptate diferite pentru acelai text clar. Cilindrul Jefferson realizeaz o substituie polialfabetic de perioad n. Dac ar privit ca un sistem de criptare Vigenere, lungimea cheii este enorm (de multe ori nn, n funcie de modalitile de aranjare a alfabetelor pe discuri). Cilindrul Jefferson a fost reinventat ulterior de mai multe ori, cea mai celebr fiind se pare maina de criptat Enigma.

    O main rotor (rotor machine, Figura 4.4) 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 substituie simpl. Deoarece rotoarele se mic cu viteze de rotaie diferite, perioada unei maini cu n rotoare este n26!.

    Aplicarea practic a acestor maini a nceput numai la nceputul secolului XX. Una dintre primele maini cu rotor a fost maina german Enigma, elaborat n anul 1917 de ctre Eduard Hebern i perfectat mai trziu de mai multe ori. Din punct de vedere comercial ea a fost disponibil pe pia nc din anl 1920, ns importana ei a fost dat de utilizarea mainii de ctre diverse guverne, n mod special de ctre Germania nazist nainte i n timpul celui de-al doilea rzboi mondial.

    Dintre toate dispozitivele criptografice create de-a lungul timpului maina Enigma a fost un echipament mai special din 2 puncte de vedere:

    criptografic; istoric.

  • 34

    Importana din punct de vedere criptografic este dat de faptul c echipe de criptanaliti (matematicieni la origine) de toate naionalitile, n efort combinat, au ncercat pe de o parte perfecionarea mainii, pe de alt parte spargerea cifrurilor. Printre cei care au participat la spargerea cifrului au fcut parte i polonezul Rajewski i britanicul Turing (inventatorul mainilor Turing).

    Importana istoric rezid din rolul mare jucat de aceste maini n timpul celui de-al doilea rzboi mondial, mai precis faptul c descifrarea de ctre aliai a codului (nume de proiect ULTRA) a dus, dup unii istorici,

    la scurtarea rzboiului cu aproximativ un an. Construcia mainii. Maina Enigma era o combinaie de pri

    mecanice i electrice. Principalele ei componente erau, dup cum urmeaz:

    Tastatura (Key board): o tastatur obinuit similar cu cea pentru mainile de scris.

    Placa cu lmpi (Lamp board): asemntoare unei tastaturi cu lmpi n loc de taste. Pe lmpi erau tiprite literele alfabetului ce deveneau vizibile prin aprinderea lmpii corespunztoare.

    Placa cu comutatoare (Switch board): mufe (prize) cte una pentru fiecare liter, ce se conectau prin fire n 6 perechi (Aceast component fusese adugat de germani pentru a crete securitatea mainii).

    Trei roi (Rotating drums): se mai numeau rotoare (roi detaabile) fiecare dintre ele avnd cte un set de 26 de contacte, cte unul pentru fiecare liter a alfabetului (Figura 4.5).

    Roata reflectoare (Reflecting drum): roat fix identic cu celelalte 3, avnd un set de 26 de contacte grupate n perechi.

    Figura 4.4. Modelul militar german numit Wehrmacht Enigma

  • 35

    Cabluri (Wiring): asigurau conexiunile ntre taste i lmpi precum i ntre lmpi i primul rotor, ntre primul rotor i al doilea, al doilea i al treilea, al treilea si roata reflectoare.

    Baterie (Battery): pentru alimentarea circuitelor electrice.

    Figura 4.5. Seturi rotor

    Principiul de funcionare al mainii Enigma se prezenta conform

    schemei din Figura 4.6: Prin apsarea tastei A

    curentul era trecut prin setul de rotoare pn la reflector de unde se ntorcea napoi aprinzndu-se becul G. Litera A se cripteaz diferit (G si C) doar printr-o simpl rotire a primului rotor care face ca semnalul s circule pe o rut complet diferit.

    Pentru operarea mainii n primul rnd toi operatorii aveau maini identice (pentru asigurarea inter-operabilitii). Iniierea criptrii unui mesaj se fcea n 2 pai:

    Pasul 1: setarea mainii operaie ce consta n fixarea ordinei i poziiei fiecrui rotor precum i alegerea celor 6 perechi de conectori prin placa cu comutatoare (switch board).

    Figura 4.6. Principiul de funcionare al mainii (Enigma)

  • 36

    Pasul 2: scrierea propriu-zis a mesajului pentru criptarea mesajului operatorul apsa pe tasta corespunztoare primei litere din textul necodat (s zicem N). n acest moment se aprindea o lamp (s zicem T) corespunztoare codificrii. Repetnd i pentru celelalte litere, rezulta textul codat.

    Trebuie de menionat c toate setrile din Pasul 1 erau nscrise n manuale de operare (code books), setri ce se schimbau de regul zilnic. Fiecare operator avea cte un exemplar. De fapt, aceste setri constituiau cheia criptosistemului Enigma. Un atribut extrem de important al mainii Enigma era c cheile de cifrare i cele de decifrare erau aceleai. Cu alte cuvinte dac la transmitere N se transforma n T, la destinaie T se transforma n N (folosind bine-neles aceleai setri ale mainii).

    Utilizarea intensiv colaborat cu posibilitatea transmiterii informaiei folosind aceleai day key la care se adugau intensele activiti de contraspionaj i-au condus pe germani la teama c maina ar putea fi compromis. Efectul, a fost introducerea unui protocol. Acesta spunea: fiecare operator va transmite suplimentar, naintea mesajului propriu zis, o cheie a mesajului (message key). Aceste chei erau cuvinte (nu neaprat cu sens) formate din 3 litere alese n mod aleator de operatorul mainii. Cu alte cuvinte, operatorul trebuia s seteze maina conform instruciunilor zilnice din manualul de operare (code book), dup care trimitea cheia din cele trei litere alese aleator. n aa fel maina se seta ntr-un mod complet aleator. Condiiile radio proaste, lucrul sub presiune, precum i alte condiii de lucru nefavorabile puteau conduce la transmiterea (sau recepionarea) greit (alterat) a cheii, fapt ce ar fi fcut inutil transmiterea mesajului propriu-zis (evident, datorit faptului c mainile de la transmitor i cea de la receptor ar fi fost setate diferit). Pentru a minimiza astfel de incidente, operatorilor li s-a cerut s transmit cheia de 2 ori.

    De exmplu cheia: the se transmitea: hothot se recepiona: dugraz

    ns n mod ironic, ceea ce se dorea o msur de securitate n plus, de fapt a compromis maina.

    Matematic vorbind, mulimea cheilor posibile era att de mare nct nici nu se punea problema atacrii mainii, cel puin nu la aceea vreme,

  • 37

    prin metoda exhaustiv (brute-force). Enigma a fost elaborat astfel nct securitatea s fie pstrat chiar dac inamicul cunoate schemele rotoarelor, cu toate c n practic setrile erau secrete. Cu o schem secret de setare cantitatea total a configurrilor posibile era de ordinul 10114 (circa 380 bii) iar dac schema i alte setri operaionale erau cunoscute acest numr se reducea la 1023 (76 bii). Germanii credeau c maina Enigma este una infailibil datorit imensitii setrilor posibile ce i se puteau aplica. Era ireal s ncepi mcar s alegi o configurare posibil.

    Din punct matematic de vedere transformarea Enigmei pentru fiecare liter este rezultatul matematic a permutrilor. Pentru un aparat cu trei rotoare fie P transformarea pe tabela de prize, U - reflectorul, i L, M, R - aciunea rotorului din stnga, din mijloc, dreapta respectiv. Atunci criptarea E poate fi notat cu:

    E = PRMLUL- 1M - 1R - 1P - 1 Dup fiecare apsare de tast rotoarele se rotesc, schimbnd

    transformarea. De exemplu dac rotorul de dreapta R e rotit cu i poziii, transformarea devine: iR- i, unde este permutarea ciclic. Similar, rotorul din mijloc i cel din stnga pot fi reprezentate ca j i k rotaii respectiv a lui M i L. Funcia de criptare poate fi descris astfel:

    E = P(iR - i)(jM - j)(kL - k)U(kL - 1 - k)(jM - 1 - j)(iR - 1 - i)P - 1 Pentru elucidarea funcionrii mainii Enigma este sugestiv simularea

    (n flash) de la http://enigmaco.de/enigma/enigma.swf (Figura 4.7). Primele spargeri ale mainii Enigma au avut loc la nceputul anilor 30

    de ctre matematicienii polonezi Alicen Rejewski, Jerzy Rozycki i Henryk Zygalsk. Cu noroc i intuiie Rejewski i echipa lui au reuit s compromit maina, totul fiind posibil nu datorit vreunei scpri n proiectarea mainii ci deciziei nemilor de a transmite repetitiv (de 2 ori) cheia.

    Ulterior Enigma a fost perfecionat, spargerea ei devenind practic imposibil pentru acele timpuri. Un aport considerabil n direcia spargerii acestei maini a avut Alan Turing, care proiectase o main electromecanic (denumit Bombe dup modelul original polonez) ce putea ajuta la spargerea mainii Enigma mai rapid dect bomba din 1932 a lui Rejewski, din care s-a i inspirat. Bombe (Figura 4.8), cu o mbuntire sugerat de matematicianul Gordon Welchman, a devenit una din principalele unelte automate utilizate pentru a ataca traficul de mesaje protejat de Enigma.

  • 38

    Figura 4.7. Simulator maina Enigma

    Maina Bombe cuta setri potenial corecte pentru un mesaj

    Enigma (adic, ordinea rotoarelor, setrile rotoarelor, etc.), folosind un fragment de text clar probabil. Pentru fiecare setare posibil a rotoarelor (numrul maxim posibil fiind de ordinul a 1019 stri, sau 1022 pentru mainile Enigma de la U-boat, care aveau patru rotoare, fa de maina Enigma standard care avea doar trei). Aceasta efectua un lan de deducii logice pe baza fragmentului probabil, deducii implementate electric. Bombe detecta cnd avea loc o contradicie, i elimina setarea, trecnd la urmtoarea. Peste dou sute de astfel de maini create de Alan Turing au fost n funciune pn la sfritul rzboiului.

    Mainile cu rotor au fost folosite activ pe parcursul rzboiului II mondial. Pe lng maina german Enigma au fost folosite i Sigaba (SUA), Typex (Marea Britanie), Red, Orange, Purple (Japonia). Mainile cu rotor au fost vrful criptografiei formale deoarece realizau cifruri suficient de rezistente ntr-un mod relativ simplu.

  • 39

    Figura 4.8. Maina BOMBE (Alan Turing)

    Atacurile ncununate de succes asupra mainilor cu rotor au fost

    posibile numai la nceputul anilor 40 odat cu apariia mainilor electronice de calcul. Tot n aceast perioad criptografia devine tiinific ramur aparte a matematicii odat cu publicarea (anul 1949) articolului lui Claude Elwood Shannon Communication Theory of Secrecy Systems., care a pus bazele tiinifice ale sistemelor de criptare cu cheie secret (sistemelor simetrice).

  • 40

    Tema 5. Algoritmi simetrici de criptare. Cifruri bloc. Reeaua Feistel

    Dup cum am menionat i la sfritul temei precedente era tiinific a criptografiei a nceput odat cu publicarea n anul 1949 a articolului lui Claude Elwood Shannon (30.04.1916 24.02.2001, fondatorul teoriei informaiei) Communication Theory of Secrecy Systems. ncepnd cu acest moment criptografia devine tiinific ramur aparte a matematicii, iar articolul lui Shannon a pus bazele tiinifice ale sistemelor de criptare cu cheie secret (sistemelor simetrice).

    Criptografia modern utilizeaz n principiu aceeai algoritmi ca i criptografia tradiional (transpoziia i substituia), dar accentul cade pe complexitatea algoritmilor. Obiectivul criptografic din actuala perioad este de a concepe algoritmi de criptare att de compleci i de ireversibili nct atacatorul (sau criptanalistul), chiar i n situaia n care are la dispoziie cantiti mari de text criptat la alegerea sa, s nu poat face nimic fr cheia secret.

    Algoritmii criptografici folosii n sistemele simetrice de criptare se mpart n cifruri bloc (block ciphers) i cifruri flux sau cifruri ir (stream ciphers). Cifrurile flux pot cripta un singur bit de text clar la un moment dat, pe cnd cifrurile bloc cripteaz mai muli bii (64, 128, 256 sau alt numr de bii) la un moment dat.

    Algoritmii de tip bloc cripteaz mesajul n blocuri de n de bii. Se aplic o funcie matematic ntre un bloc de bii ai textului clar i cheie (care poate varia ca mrime), rezultnd acelai numr de bii pentru mesajul criptat. Funcia de criptare este realizat astfel nct s ndeplineasc urmtoarele cerine:

    tiind un bloc de bii ai textului clar i cheia de criptare, sistemul s poat genera rapid un bloc al textului criptat;

    tiind un bloc de bii ai textului criptat i cheia de criptare/decriptare, sistemul s poat genera rapid un bloc al textului clar;

    tiind blocurile textului clar i ale textului cifrat ale sistemului s fie dificil s genereze cheia.

    Reeaua (cifrul, schema) Feistel Algoritmii de tip bloc sunt foarte des folosii n criptografia modern,

    iar majoritatea algoritmilor tip bloc utilizai n criptarea simetric la ora

  • 41

    actual se bazeaz pe o structur numit cifru bloc Feistel sau reea (uneori schema) Feistel. Ea a fost elaborat de ctre Horst Feistel (30.01.1915 14.11.1990) unul dintre ntemeietorii criptografiei moderne. Dup cum am mai menionat, un cifru bloc opereaz asupra blocurilor de text clar de lungime n bii pentru a produce un bloc de text cifrat de aceeai lungime (n bii). Un cifru de substituie reversibil arbitrar nu este practic pentru o dimensiune mare a blocului, din punct de vedere al implementrii i al performanei. n general, pentru un cifru bloc de substituie arbitrar de n-bii, dimensiunea cheii este n2n. Pentru un bloc de 64 de bii, care e o dimensiune necesar pentru a zdrnici atacurile statistice, dimensiunea cheii este

    64264 = 270 = 1021 bii. Considernd aceste dificulti, Feistel remarc faptul c este nevoie de

    o aproximare a unui cifru bloc ideal, pentru valori mari ale lui n, construit din componente ce pot fi realizate uor.

    Feistel numete o substituie general de n-bii ca fiind cifrul bloc ideal, deoarece permite numrul maxim de criptri posibile din blocuri de text clar n blocuri de text cifrat. 4 bii la intrare produc una din cele 16 stri de intrare posibile, care sunt asociate de cifrul cu substituie ntr-o singur stare de ieire din cele 16 posibile, fiecare fiind reprezentat de 4 bii de text cifrat. Funciile de criptare i decriptare pot fi definite printr-un tabel.

    O structur Feistel are avantajul c cifrarea i decifrarea sunt foarte similare sau chiar identice n unele cazuri (ceea ce ne amintete de Enigma), cernd doar o reversie a cheii. Astfel, dimensiunea codului sau circuitului necesar pentru a implementa un astfel de cifru este practic njumtit.

    Reelele Feistel i construcii similare combin mai multe runde de operaii repetate cum ar fi:

    amestecarea de bii (numit i permutri pe cutii P), funcii simple ne-lineare (numite si substituii prin cutii S), amestecul liniar (n sensul algebrei modulare) utiliznd XOR,

    pentru a produce o funcie care conine cantiti mari de date, numite de Claude Shannon confuzie i difuzie. Amestecarea de bii creeaz difuzia iar substituia - confuzia. n criptografie confuzia se refer la a face o relaie ntre cheie i textul cifrat ct de complex i adnc posibil, iar difuzia este definit ca proprietatea c redundana n statisticele textului clar este

  • 42

    disipat n statisticele textului cifrat. Difuzia este asociata cu dependena biilor de la ieire de biii de la intrare. ntr-un cifru cu o difuzie perfecta, doar schimbarea unui bit de la intrare ar schimba ntregul text, ceea ce se mai numete i SAC (Strict Avalanche Criterion). Feistel utilizeaz cutiile P (P-box sau Permutation-box) i amestecul liniar de bii pentru a atinge o difuzie aproape perfect i se poate spune c ndeplinete condiiile SAC.

    Cutiile-S (S-box sau Substitution-box) au o importan fundamental n funcionarea schemei Feistel. Acestea sunt de obicei folosite pentru a ascunde relaia dintre cheie i textul cifrat. n general, o cutie S ia un numr m de bii de intrare i i transform ntr-un numr n de bii de ieire, unde n nu e neaprat egal cu m. O cutie Smn poate fi implementat ca un tabel de 2m cuvinte de n bii fiecare. n mod normal sunt utilizate tabele fixe, la fel ca n Data Encryption Standard (DES), dar n unele cifruri tabelele sunt generate dinamic din cheie (de exemplu, Blowfish, Twofish).

    Un exemplu elocvent de tabel fix este tabelul de 64 - bii al cutiei S (S5) din DES (Tabelul 5.1):

    S5 4 bii de mijloc ai intrrii

    0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101

    Biii exte-riori

    00 0010 1100 0100 0001 0111 1010 1011 0110 1000 0101 0011 1111 1101 0000 01 1110 1011 0010 1100 0100 0111 1101 0001 0101 0000 1111 1010 0011 1001 10 0100 0010 0001 1011 1010 1101 0111 1000 1111 1001 1100 0101 0110 0011 11 1011 1000 1100 0111 0001 1110 0010 1101 0110 1111 0000 1001 1010 0100

    Tabelul 5.1. Cutia S5 din DES Fiind dat o intrare de 6 bii, ieirea de 4 bii este gsit prin selectarea

    liniei, folosind cei doi bii exteriori (primul i ultimul bit), i a coloanei, utiliznd cei patru bii interiori. De exemplu, o intrare 011011 are biii exteriori 01 i biii interiori 1101; ieirea corespunztoare va fi 1001.

    Cutiile de permutare reprezint o metod de amestecare a biilor, utilizat pentru a permuta sau transpune biii n intrrile cutiilor S, meninnd difuzia n timpul transpunerii.

    Reele Feistel au fost introduce pentru prima dat, n domeniu comercial, n cifrul Lucifer de la IBM care a fost conceput de nsui Feistel i Don Coppersmith. Reele Feistel au ctigat respect atunci cnd guvernul SUA a adoptat standardul de securitate a datelor DES. Ca i alte

  • 43

    componente ale lui DES, exista natura iterativ a construciei Feistel care face foarte simple implementrile criptosistemului n electronic.

    Fig. 5.1. Schema unei cutii-S

    Multe cifruri simetrice de tip bloc se bazeaz pe reele Feistel i pe structura i proprietile cifrului Feistel, care a fost intens explorat de cate criptologi. n special Michael Luby i Charles Rackoff, care au analizat cifrul i au demonstrat c dac funcia round-robin (un round-robin este un aranjament prin care se aleg n ponderi egale toate elementele unui grup sau a unei liste, ntr-o ordine raional, de obicei de sus pn jos, i dup aia pornind de la nceput) este un generator criptografic sigur de numere pseudoaleatoare, cu Ki utilizat ca seed, atunci 3 runde sunt suficiente pentru a face cifrul bloc sigur, pe cnd 4 runde sunt suficiente s fac cifrul puternic sigur, nsemnnd c este sigur pentru un atac prin text cifrat ales. Din cauza acestui rezultat, cifrurile Feistel au fost uneori numite cifruri pe blocuri.

    Modul de operare al cifrului Feistel este urmtorul: 1. mparte textul clar n doua blocuri egale (L0, R0) 2. Pentru fiecare rund i=1,2,...,n, calculeaz:

    Li = Ri-1 Ri = Li-1 + f(Ri-1, Ki ),

    unde f este funcia, de obicei tot XOR, i Ki este sub-cheia. Atunci textul cifrat va fi (Ln, Rn) 3. Repeta.

    Indiferent de natura funciei f, decifrarea se face prin: Ri-1 = Li Li-1 = Ri + f(Li , Ki ).

    Un avantaj al acestui model este c funcia utilizat nu trebuie neaprat s fie inversabil i poate s fie foarte complex. Am menionat c funcia f

  • 44

    este de obicei XOR. Acest lucru nu este complet adevrat. Funcia poate s fie oricare, nsa pentru ilustrare se folosete o funcie simpl i relativ sigur, cum ar fi XOR.

    Figura 5.2. Schema reelei Feistel

    n Figura 5.2 este artat cum acest model trece textul clar n text cifrat.

    Este de notat reversia sub-cheii pentru decriptare, aceasta fiind singura diferen ntre cifrare si descifrare.

    Mai exist ns un tip de cifru Feistel, numit Feistel debalansat, care utilizeaz o structur modificat n care L0 i R0 nu sunt egale n lungime. Un exemplu de asemenea cifru este Skipjack.

    Construcia Feistel este utilizat i n algoritmi care nu sunt cifruri pe blocuri. De exemplu, Optimal Asymmetric Encryption Padding (OAEP)

  • 45

    utilizeaz o reea Feistel simpl pentru a randomiza textele cifrate n unele scheme de cifrare asimetric.

    Dat fiind natura cifrului Feistel, textul cifrat sparge orice convenie de caractere i produce numere ce corespund la caractere care nu exist. De fapt orice tip de cifru care opereaz pe blocuri de text sau pe bii individuali nu avea cum s respecte standardul de caractere. Din aceast cauz se utilizeaz la ieire un codor pentru a reda textului cifrat proprietatea de lizibilitate i implicit pentru a putea fi transmis prin sistemele informatice.

  • 46

    Tema 6. Algoritmul de cifrare Lucifer

    Algoritmul de criptare Lucifer a fost elaborat la nceputul anilor 70 i a stat la baza algoritmului DES primului standard de cifrare din SUA. Algoritmul i istoria sa sunt suficient de interesante pentru a fi studiate aparte.

    Algoritmul Lucifer este adesea numit primul algoritm de cifrare pentru aplicaii civile. n realitate Lucifer reprezint nu un singur algoritm ci o familie de algoritmi legai intre ei (care au fost elaborai n cadrul programului Lucifer al companiei IBM i care prevedea cercetri n domeniul criptografiei), care erau algoritmi de criptare de tip bloc realizai n perioade diferite de timp.

    Dup spusele vestitului criptolog american Bruce Schneier (nscut la 15.01.1963), exist cel puin doi algoritmi diferii cu acest nume i aceasta a dus la o ncrctur vizibil. Iar n Wikipedia sunt menionate 4 versiuni ale acestui algoritm.

    Versiunea iniial a algoritmului Lucifer a fost elaborat de un colectiv de specialiti ai companiei IBM sub conducerea lui Horst Feistel. Aceast versiune a algoritmului a fost brevetat de ctre compania IBM n anul 1971 (brevetul a fost eliberat n 1974 n SUA cu numrul 3798359 http://www.freepatentsonline.com/3798359.pdf).

    Aceast versiune a algoritmului cifreaz datele pe blocuri de 48 bii cu utilizarea cheii de 48 de bii.

    Algoritmul este unul bazat pe o reea de permutri i substituii. n procesul de cifrare se execut 16 runde de transformri (numr de runde recomandat de autor), n fiecare dinte ele fiind realizate aciuni n conformitate cu Figura 6.1:

    1. Asigurarea feedback-ului (conexiunii inverse). Se efectueaz operaia logic XOR ntre fiecare bit al blocului procesat i valoarea precedent a aceluiai bit n cazul n care bitul analogic al cheii de rund are valoarea 1; n caz contrar operaia nu se efectueaz. Valoarea precedent a fiecrui bit procesat se salveaz n registrul blocului de feedback. n prima rund a algoritmului blocul de feedback nu efectueaz operaia XOR ci memorizeaz doar pentru urmtoarea rund biii blocului prelucrat.

    2. Transformarea prin confuzie. Se efectueaz o transformare neliniar a datelor obinute la operaia precedent prin intermediul

  • 47

    substituiei tabelare care este n funcie de un bit concret al cheii de rund. Aceast funcie este suficient de simpl: dac valoarea bitului respectiv este 1, se efectueaz substituia tabelar S0, n caz contrar se aplic substituia S1. Fiecare niblu

    1 de date se modific independent de alte date, astfel tabele nlocuiesc valoarea de intrare de 4 bii cu o alt valoare care la fel are 4 bii. Trebuie de menionat c n acest brevet nu sunt prezentate valorile tabelelor de substituie; n calitate de exemplu este dat numai Tabelul 6.1

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

    Tabelul 6.1. Exemplu de tabel de confuzie pentru brevetul alg. Lucifer

    Aceasta nseamn c valoarea de intrare 0 se nlocuiete cu 2, valoarea 1 cu 5 .a.m.d. pn la valoarea 15 care se nlocuiete cu 11.

    3. Transformarea prin difuzie. Aceast transformare const n redirecionarea simpl a biilor de intrare n aa mod nct valorile tuturor biilor de intrare se schimb cu locul dup o anumit regul. La fel ca i valorile tabelelor de substituie, regula dup care se face difuzia datelor nu este descris n brevet. Operaia de difuziune se efectueaz absolut independent de valoarea cheii de cifrare.

    4. Aplicarea cheii. Aceast operaie se efectueaz prin aplicarea bit cu bit a operaiei XOR asupra rezultatului operaiei precedente i a biilor respectivi a cheii de rund.

    Dup cum se poate observa din descrierea de mai sus la fiecare rund

    de a cifrrii sunt necesari 108 bii: 1. 48 de bii pentru blocul de feedback; 2. 12 bii pentru blocul de substituie; 3. 48 bii pentru aplicarea cheii.

    1 Un niblu este o colecie de 4 bii cu care se pot reprezenta 16 valori diferite.

  • 48

    Figura 6.1. Schema general a Versiunii 1 Lucifer

    Pentru obinerea a 16 sub-chei de rund de 108 bii fiecare din cheia

    iniial de 48 de bii se aplic procedura de extindere a cheii (Figura 6.2): 1. Cheia de 48 de bii se nscrie n registrele cheii (Key Register)

    KR1, KR2, , KR6. 2. Din aceste registre se extrage cantitatea necesar de bii prin

    intermediul permutrii de extensie KEP (Key Extension Permutation). Operaia KEP nu efectueaz calcule, obinerea celor 108 bii de informaie din cheie din cei 48 de bii are loc prin utilizarea multipl a anumitor bii din KR1, KR2, , KR6. Permutarea KEP nu este descris n detalii n specificaiile algoritmului.

    3. Pentru obinerea din cheie a informaiei pentru runda urmtoare se efectueaz deplasarea de un bit n fiecare din registrele KR1, KR2, , KR6. Apoi din se aplic permutarea KEP. Acest pas se repet ciclic un numr necesar de ori pn la sfritul executrii algoritmului.

    Text cifrat Text clar

    Blocul de Feed-back

    Blocul de confuzie

    Blocul de difuzie

    Aplicarea cheii

    Che

    iea

    16 r

    unde

  • 49

    Figura 6.2. Procedura de extensie a cheii n Versiunea 1 Lucifer

    Trebuie de menionat c acest algoritm este strict axat pe implementare

    hardware n brevetul respectiv sunt prezentate cteva scheme amnunite care descriu realizrile hardware posibile ale algoritmului, pe cnd cifrrii software practic nu i se acord atenie n acest brevet.

    Este evident c n descrierea algoritmului exist multe pete albe. De exemplu nu sunt prezentate tabelele de substituie, nu este descris n detalii transformarea liniar utilizat, lipsete descrierea permutrii KEP etc. De fapt, brevetul stabilete un model pentru dezvoltarea pe aceast baz algoritmilor criptografici concrei cu proceduri rafinate.

    Concomitent cu brevetul depus la 30 iunie 1971 Horst Feistel a mai depus 2 cereri de brevetare, ambele propunnd aplicaii specifice ale algoritmului expus mai sus:

    protecia datelor transmise i prelucrate n sisteme cu terminale multiple cu utilizarea algoritmului Lucifer; schema brevetat presupune de asemenea i asigurarea integritii datelor dar i prezena a dou regimuri de autentificare a utilizatorilor: cu parol i solicitare-confirmare.

    cifrarea datelor pe parcursul a mai multe etape, ceea ce asigur diverse nivele de securitate la transmiterea informaiei n sistemele cu terminale multiple; aceast schem era la fel bazat pe aplicarea algoritmului Lucifer.

    Blocul de feedback

    Blocul de difuzie

    Aplicarea cheii

    KE

    P

    48

    12

    48

    KR

    1

    KR

    6

    8

    8

    8

    8

    Cheia pentru cifrare 48

  • 50

    Ca i brevetul pentru algoritmul Lucifer, brevetele menionate au fost obinute de ctre compania IBM n anul 1974.

    Versiunea a doua a algoritmului Lucifer a aprut foarte curnd dup prima n acelai an 1971. Se vede c autorii algoritmului Lucifer nelegeau c mrimea cheii de 48 de bii este insuficient (n prezent aceast mrime a cheii este nepermis) i au prezentat algoritmul care cifra cu o cheie de 64 bii. Algoritmul dat efectua ns cifrarea cu blocuri de numai 32 bii ceea ce evident este insuficient (pentru un bloc de lungime n

    bii la cifrarea a 22n

    blocuri de text clar cu aceeai cheie vor avea loc scurgeri de informaie despre datele cifrate). Aceast versiune a algoritmului a fost brevetat la fel de ctre IBM i descris n patentul nr. 3796830 n martie 1974 (http://www.freepatentsonline.com/3796830.pdf).

    Figura 6.3. Structura Versiunii 2 Lucifer

    Versiunile 1 i 2 au semnificativ mai multe discrepane dect similitudini. Versiunea a doua a algoritmului divizeaz blocul cifrat de 32 bii n dou sub-blocuri de cte 16 bii i efectueaz 16 runde de

    A B

    Cheia de rund

    Prelucrare Aplicarea cheii

    B' A'

    16 r

    unde

  • 51

    transformri, n fiecare din care se realizeaz urmtoarea consecutivitate de operaii (Figura 6.3):

    1. Blocul de 32 bii este divizat n 2 sub-blocuri A i B de 16 bii. 2. Sub-blocul A se divizeaz n 4 fragmente a cte 4 bii, fiecare

    fragment fiind prelucrat aparte (Figura 6.4), adic celelalte operaii se repet pentru fiecare fragment.

    Figura 6.4. Prelucrarea fragmentului sub-blocului A (vers. 2 Lucifer)

    3. Fiecare dintre aceste fragmente se sumeaz modulo 16 cu KAi,n un fragment de 4 bii ai cheii de rund pentru operaia de adunare (procedura de extindere a cheii de cifrare va fi expus mai jos), unde:

    n numrul de ordine al fragmentului prelucrat; i numrul de ordine a rundei curente.

    4. Asupra fiecrui fragment se aplic o substituie care este n funcie de cheie: fragmentul prelucrat se nlocuiete cu valoarea de 4 bii T0 T1 T2 T3 n conformitate cu Tabelul 6.2.

    Cheia de cifrare

  • 52

    Tabelul 6.2. Substituia aplicat fiecrui fragment al sub-blocului unde: k = KSi [n], reprezint bitul n al fragmentului de 4 bii ai

    cheii de rund, care gestioneaz substituiile (KSi ), ~k valoarea invers a lui k.

    n conformitate cu valoarea de intrare, din tabel se aleg valorile T0, T1, T2, T3 ale biilor, de exemplu pentru valoarea de intrare 14 i k = 1 se vor obine urmtoarele valori:

    T0 =1, T1 =0, T2 =0, T3 =0. 5. Se aplic operaia XOR asupra cortegiului de bii T0, T1, T2, T3

    (care nu este altceva dect rezultatul prelucrrii fragmentului sub-blocului A) i a anumitor bii ai sub-blocului B. Biii sub-blocului B care particip n aceast operaie se aleg cu ajutorul unui fragment determinat de 4 bii ai cheii de rund KXi,n n conformitate cu tabelul 6.3.

    Valoarea bitului de control KXi,n

    1 0 T0 B0,(n +1 mod 4) B0,n T1 B1,(n +2 mod 4) B1,(n +3 mod 4) T2 B2,(n +3 mod 4) B2,(n +2 mod 4) T3 B3,n B3,(n +1 mod 4)

    Tabelul 6.3. Alegerea biilor pentru cheia de rund

    Bitul de control pentru Ti este bitul nr. i al fragmentului KXi,n. De exemplu, la prelucrarea fragmentului nr. 0 i a tuturor biilor egali cu 1 din KXi,n se efectueaz urmtoarele operaii (vezi figura 6.4 toate datele incluse n prelucrarea fragmentului nr. 0 al sub-blocului pentru toi biii egali cu 1 sunt evideniate cu linii de grosime mai mare):

    B0,1 = B0,1 + T0 ; B1,2 = B1,2 + T1 ; B2,3 = B2,3 + T2 ;

    Valoarea de intrare Rezul- tatul 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    ~k ~k k 1 ~k 1 ~k 0 k k 0 k ~k k k ~k T0 1 ~k 1 0 ~k ~k 0 k k 1 0 0 k 0 ~k k T1 k 1 1 ~k 1 k k 0 ~k ~k ~k k k k 0 0 T2 k ~k ~k k k 1 ~k 0 0 k 1 ~k ~k k ~k k T3

  • 53

    B3,0 = B3,0 + T3 . Dup fiecare rund n afar de ultima sub-blocurile se schimb cu locurile.

    Extinderea cheii, adic obinerea cantitii necesare de fragmente ale cheilor de rund:

    KAi,0, KAi,1, KAi,2, KAi,3 pentru adunarea modulo 16; KSi pentru participarea la substituia tabelar; KXi,0, KXi,1, KXi,2, KXi,3 pentru controlul aplicrii rezultatului

    asupra sub-blocului B, se efectueaz ntr-un mod suficient de simplu:

    1. Cheia de cifrare de 64 bii se divizeaz n 16 pri a cte 4 bii care se numeroteaz de la 0 la 15.

    2. n caz de necesitate se alege un fragment determinat al cheii n conformitate cu Tabelul 6.4.

    Runda KSi KAi,0 KXi,0 KAi,1 KXi,1 KAi,2 KXi,2 KAi,3 KXi,3

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

    Tabelul 6.4. Tabelul pentru alegerea cheii n caz de necesitate

    Aceast versiune a algoritmului este descris mult mai amnunit dect cea precedent: n patentul respectiv (nr. 3796830) lipsesc petele albe

  • 54

    deci acest algoritm poate fi pe deplin realizat numai cu ajutorul informaiei ce se conine n patentul respectiv.

    Ca i n cazul precedent n brevetul pentru versiunea a doua a algoritmului Lucifer a fost prezentat o informaie amnunit referitoare la realizarea hardware a algoritmului, particularitile realizrii software n brevet nu sunt examinate.

    Versiunea 3 a algoritmului Lucifer este cel mai puin descris n detalii, ea fiind publicat n articolul Feistel H. Cryptography and Computer Pivacy. Scientific American, May 1973, Vol. 228, No. 5, pp. 15-23 ( http://www.apprendre-en-ligne.net/crypto/bibliotheque/feistel/). Dac s judecm dup descriere, algoritmul const dintr-o succesiune de operaii (Figura 6.5):

    Tabelele de substituie gestionate de biii de control ai cheii secrete analogic versiunii 1, n funcie de valoare bitului de control al cheii se efectueaz substituia S0 sau S1;

    Permutri fixate P ale biilor. Aplicarea multipl a acestor operaii reprezint acest algoritm de

    criptare.

  • 55

    Figura 6.5. Structura Versiunii 3 Lucifer

    n articolul menionat mai sus nu sunt indicai majoritatea covritoare a parametrilor algoritmului: nu este dat nici numrul exact de runde, nici valorile tabelelor de substituie i permutare, nu sunt indicate dimensiunile blocului i a cheii (mrimile de 128 bii ale blocului i cheii sunt indicate doar ca valori posibile). n acest mod versiunea dat a algoritmului este mult mai ablonizat dect prima versiune.

  • 56

    Figura 6.6. Structura Versiunii 4 Lucifer

    Versiunea Lucifer 4. Putem afirma c versiunea dat este asemntoare concomitent cu toate cele trei versiuni precedente. La fel ca la versiunea 2 aici fiecare bloc de 128 bii ai textul clar se divizeaz n dou sub-blocuri unul dinte care se prelucreaz n felul indicat n figura 6.6 (Savard J. Lucifer: the first block cipher, http://www.quadibloc.com/crypto/ co0401.htm):

    1. Se aplic cheia de rund prin efectuarea operaiei XOR asupra biilor sub-blocului prelucrat i a 64 bii ai fragmentului cheii de rund KXi (i numrul de ordine a rundei curente).

    2. Substituia tabelar dirijat de cheie este nfptuit ntr-un mod foarte asemntor cu versiunile 1 i 3:

    dac valoarea bitului j ( j = 0, 1, , 7) al fragmentului de 8 bii ai cheii de rund KSi este egal cu 1, atunci cei doi nibli ai octetului j care este prelucrat la moment se schimb cu locurile;

    niblului superior al fiecrui octet i se aplic tabelul de substituie S0, pe cnd niblului inferior tabelul S1. Tabelele S0 i S1 sunt definite cum este indicat n Tabelul 6.5.

    3. Se execut permutarea fix P a biilor sub-blocului n conformitate cu Tabelul 6.6. Valoarea bitului 10 de intrare se

  • 57

    nscrie n bitul de ieire 0, valoarea bitului 21 n bitul 1 etc. (se numeroteaz de la stnga la dreapta ncepnd cu bitul 0)

    Valoarea de intrare

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

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

    S1 7 2 14 9 3 11 0